RFC 1568
Simple Network Paging Protocol - Version 1(b)
Simple Network Paging Protocol - Version 1(b) ๐ (part 1 of 2)
Okay bestie, the header is giving very official doc energy, so here's the tea ๐ซถ. This is RFC 1568, written by A. Gwinn from Southern Methodist University ๐. It's in the Informational category, which basically means "here's some info, not a standard" ๐ . It came out in January 1994 ๐ฆ, and it's from the Network Working Group. The header doesn't list anything it obsoletes or updates, so no drama there โจ.
Status of this Memo
This memo is just giving info to the Internet community ๐ธ. It does not specify an Internet standard of any kind, so don't get it twisted ๐. Distribution is unlimited, so share away ๐.
Abstract
This RFC suggests a simple way to deliver both alphanumeric and numeric pages (one-way) to radio paging terminals ๐. Gateways supporting this protocol, as well as SMTP, have been in use for several months at one nationwide paging firm ๐ฅ. Another paging firm is in the process of adopting it ๐.
Earlier versions were reviewed by IESG members and the IETF's "822 Extensions" Working Group. They preferred an alternate strategy, as discussed under "Relationship to Other IETF Work", below ๐ค.
1. Introduction โจ
Beepers are as much a part of computer nerdom as X-terminals (perhaps, unfortunately, more) ๐. The whole vibe of Simple Network Paging Protocol (SNPP) is giving a standard way to deliver pages to individual paging terminals ๐. The most obvious perk is no more modems needed to produce alphanumeric pages, plus it's way easier to deliver pages to terminals in other cities or countries ๐. Automatic page delivery should also be somewhat more simplified ๐ง.
2. System Philosophy ๐ง
Radio paging is kinda taken for granted because it's everywhere ๐. But the actual delivery, especially in wider-area paging, is somewhat complicated ๐ญ. When a user starts a page by dialing a number on a telephone, or types an alphanumeric page into some input device, the page has to eventually reach some paging terminal, somewhere ๐บ๏ธ.
Most of the time, this delivery uses TAP (Telocator Alphanumeric input Protocol, also known as IXO) ๐ . TAP can be a somewhat convoluted, complicated protocol ๐. It uses older-style ASCII control characters and a non-standard checksumming routine to help validate the data. One note: even though TAP allows a password for sending simple pages, those are rarely used (especially in commercial markets). So support for them hasn't been implemented in this version of the protocol ๐.
Even though TAP is widely used in the industry, there are plans on the table to move to a more flexible "standard" protocol. (The proposal is honestly more convoluted than most Internet RFCs ๐ญ.) Still, the end user function is super simple: deliver a page from point-of-origin to someone's beeper ๐. That's the simple, real-time job this protocol tries to address ๐ฆ. Validation of the paging information is left completely up to the TAP/IXO paging terminal, which makes an SNPP gateway a direct "shim" between a paging terminal and the Internet ๐ซถ.
3. Why not just use Email and SMTP? ๐ง
Email is pretty reliable, but it's not always timely ๐ข. A good example is deferred messaging when a gateway is down. Say Mary Ghoti (fish@hugecompany.org) sends a message to Zaphod Beeblebrox's beeper (5551212@pager.pagingcompany.com). Hugecompany's gateway to the Internet is down, so Mary's message gets deferred ๐ฌ. Mary isn't notified of the delay, because her message hasn't actually failed to reach its destination. Three hours later the link is restored, and (as soon as sendmail wakes up) the message goes out ๐ด. Obviously, if Mary's page was about a meeting that was supposed to happen 2 hours ago, Mary and Zaphod have some minor administrative details to work out ๐!
On the flip side, if Mary had used her SNPP client (or simply telnetted to the SNPP gateway), she would have immediately discovered the network problem ๐. She could then invoke plan "B" and call Zaphod's pager on the telephone, ringing him that way ๐.
The obvious difference here isn't page delivery. It's the immediate notification of a problem that affects your message ๐จ. Standard email and SMTP, while quite reliable in most cases, cannot be positively guaranteed between all nodes at all times. That makes them less desirable for emergency or urgent paging ๐ค. The other consideration is how simple SNPP is for manual Telnet sessions, versus someone trying to manually hack a mail message into a gateway ๐ง.
4. The Future of SNPP ๐ฎ
While the current form of SNPP is designed for use with TAP/IXO, it's meant to provide a porting base for the newer TME (TDP) protocol ๐. Future releases of SNPP will also allow multiple recipient messages, with individual "envelope" options and specifications as allowed by TME ๐ . For example, the protocol should let the user send an urgent message to Zaphod in Denver while carbon-copying Mary in Des Moines at a lower priority ๐.
5. The Protocol ๐
SNPP is a sequence of commands and replies, and it's based on the philosophy of many other Internet protocols currently in use ๐. SNPP has six input commands (only the first 4 characters of each are significant ๐). They solicit various server responses in three categories: (1) successful, (2) failed-but-continue, and (3) failed-with-connection-terminated. The first character of every server response code is a digit showing the category: '2xx', '5xx', and '4xx' respectively ๐ข. The text portion of the response can be altered to suit individual applications ๐.
The session is actually quite simple (hence the name) ๐ซ . The client initiates the connection with the listening server. When the connection opens, the server issues a greeting followed by "250 READY" (indicating the server is willing to accept SNPP commands) โจ. The client passes pager ID information and a message, then issues a "SEND" command. The server feeds the information to the TAP paging terminal, gathers a response, and reports success or failure to the client ๐ฌ.
6.1 A Typical Successful Connection
Client Server
Open Connection -->
<-- 220 SNPP Gateway Ready
PAGE 5551212 -->
<-- 250 OK
MESS Your network is hosed -->
<-- 250 OK
SEND -->
<-- 250 Page Sent
QUIT -->
<-- 221 OK, Goodbye
6.2 Commands
6.2.1 PAGEr <Pager ID>
The PAGEr command sets the pager ID (PID) number for the transaction into the gateway ๐. The PID used has to reside in the TAP terminal, and that's where it should be validated. Limited validation may optionally be done on the server (like all numeric, and ID length), or it can all be done by the TAP terminal at the time the page is sent ๐. Duplicating the PAGEr command before SENDing the message should produce an "503 ERROR, Already Entered" message, and allow the user to continue ๐
.
In the future, a series of PAGEr commands may be specified to allow for multiple recipients of the same message ๐ฏ. Right now, though, TAP/IXO only validates the PID at the time the message is accepted by the paging terminal. That makes "pre" validation of PID's currently difficult ๐ค.
6.2.2 MESSage <Alpha or Numeric Message>
The MESSage command sets the numeric or alphanumeric message for the transaction into the gateway ๐ฌ. Limited validation of the message may be done on the SNPP server (such as length), but type-of-message validation should be done by the TAP/IXO paging terminal. Duplicating the MESSage command before SENDing the message should produce an "503 ERROR, Already Entered" message, and allow the user to continue โจ.
6.2.3 RESEt
The RESEt command clears the PAGEr and MESSage fields, and lets the client start over ๐งน. This is provided mainly as a way to reset info accidentally entered during a manual session ๐. Upon a successful reset, the server should respond "250 RESET OK".
6.2.4 SEND
The SEND command processes the page to the TAP terminal ๐ค. Before processing, the PAGEr and MESSage fields should be checked for the existence of information. If one of these required fields is missing, the server should respond "503 Error, Incomplete Information" and allow the user to continue. If all the fields are filled in, the SNPP server should format and send the page to the TAP terminal, and await a response. Upon receiving a reply, the server should respond as follows:
250 Page Sent - successful delivery
554 Failed, <reason> - unsuccessful, and gives a reason
Or, in the case of an illegal or non-existent pager ID, or some other administrative reason for rejecting the page, the server should respond:
550 Failed, Illegal Pager ID (or other explanation)
After processing a SEND command, the server should remain online so the client can enter another page ๐.
6.2.5 QUIT
The QUIT command terminates the current session ๐. The server should respond "221 OK, Goodbye" and close the connection.
6.2.6 HELP
The HELP command (optional) displays a screen of information about commands that are valid on the SNPP server ๐. This is primarily to assist manual users of the gateway. Each line of the HELP screen (responses) is preceded by a code "214". At the end of the HELP sequence, a "250 OK" is issued.
6.3 Illegal Commands
Should the client issue an illegal command, the server should respond "421 ERROR, Goodbye" and close the connection immediately ๐ซ. Optionally, the server may respond "502 Command Error, try again" should it be desirable to leave the connection open ๐.
6.4 Timeouts
The SNPP server can, optionally, have an inactivity timeout implemented โฐ. When the allotted time expires, the server responds "421 Timeout, Goodbye" and closes the connection.
6.5 Rigidity of Command Structure
The commands from client to server should remain constant ๐. However, since the first character of the response indicates success or failure, the text of the server responses could be altered should one desire ๐. The following is a hunk of C code that's used currently in an SNPP gateway ๐ป. The only response that hasn't been discussed is "421 SERVER DOWN, Goodbye". It's used when the gateway is administratively down, or when there are communication problems with the TAP/IXO paging terminal ๐.
/* SNPP Client Commands */
#define PAGER "PAGE"
#define MESSAGE "MESS"
#define SEND "SEND"
#define QUIT "QUIT"
#define RESET "RESE"
#define HELP "HELP"
/* Responses from SNPP server to client */
#define SNPP_OK "250 OK"
#define SNPP_RESET "250 Reset OK"
#define SNPP_SENT "250 Page Sent"
#define SNPP_BADPIN "550 Failed,"
#define SNPP_NOTSENT "554 Failed,"
#define SNPP_ENTERR "503 Error, Already Entered"
#define SNPP_ERRINC "503 Error, Incomplete Info"
#define SNPP_OKCLOS "221 OK, Goodbye"
#define SNPP_TIMEOUT "421 Timeout, Goodbye"
#define SNPP_ERRCLOS "421 ERROR, Goodbye"
#define SNPP_DOWN "421 SERVER DOWN, Goodbye"
7. Revision History ๐
Okay so the very first draft was giving POP2 vibes ๐
. The author originally used POP2 style result/response codes, but the Internet community was like, "what if we did numeric response codes instead, like SMTP does?" ๐ง So the + and - style theory got a glow-up, and this spec is the version the protocol has been since the first proposed draft โจ. Main character energy!
When a bad pager ID message (IXO/TAP administrative failure) came back from the paging terminal, the server used to send a 554 series (general failure) response ๐. That got changed to a 550 failure code so people can actually tell the two cases apart. Iconic distinction ๐.
8. Relationship to Other IETF Work ๐ฆ
So an IETF Working Group and three IESG members reviewed the strategy of this spec and a bunch of the details ๐ซถ. Their verdict: using the existing email infrastructure was the move ๐. Why? Deploying a brand new protocol is ridiculously expensive ๐ญ, and email is one of the most widely-distributed applications protocol infrastructures on the whole Internet, so why reinvent the wheel? Most reviewers thought no new protocol was needed at all, because SNPP's special "deliver immediately or fail" requirement could be handled by carefully configuring clients and servers ๐ง. The experimental network printing protocol [3] was pointed out as an example of an existing infrastructure approach to an existing problem ๐จ๏ธ. Other reviewers were like, "okay, a case could be made for new protocol details so paging clients and servers can identify each other and negotiate transaction details," but they thought it'd be more sensible to handle that as extensions to SMTP [1,2] instead of a whole new protocol structure ๐ค.
The author gets where all those people are coming from, but they still think a separate protocol is worth it ๐. The point is to isolate the details of TAP/IXO and its evolving successors from users, and honestly from mail-based approaches too. Those mail-based approaches might reach systems that act as SMTP/MIME [4] to SNPP gateways, and those systems and gateways are actually being designed and developed right now, at the same time as this work ๐ ๏ธ. For more on the author's take on the classic electronic email approach, check the section "Why not just use Email and SMTP?" ๐ฌ.
9. References ๐
[1] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821, USC/Information Sciences Institute, August 1982. ๐
[2] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D. Crocker, "SMTP Service Extensions", United Nations University, Innosoft, Dover Beach Consulting, Inc., Network Management Associates, Inc., The Branch Office, February 1993. โจ
[3] Rose, M., and C. Malamud, "An Experiment in Remote Printing", RFC 1486, Dover Beach Consulting, Inc., Internet Multicasting Service, July 1993. ๐จ๏ธ
[4] Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1521, Bellcore, Innosoft, September 1993. ๐
10. Security Considerations ๐
Plot twist ๐ฑ: this memo does not discuss security issues at all. Not one word! Bestie, that is a very big deal, so please take it seriously ๐. Don't skip past this part ๐ซถ.
11. Author's Address ๐ธ
The author is R. Allen Gwinn, Jr. ๐ง Here's how to reach them:
R. Allen Gwinn, Jr.
Associate Director, Computing Services
Business Information Center
Southern Methodist University
Dallas, TX 75275
Phone: 214/768-3186
EMail: allen@mail.cox.smu.edu or allen@sulaco.lonestar.org
๐ฆ where this page comes from
- ietf: rfc1568 1994-01
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms