RFC 196

Mail Box Protocol

๐Ÿ“… published July 1971, from ietf

Okay so RFC 196 is from the Network Working Group ๐ŸŒธ, numbered Request for Comments #196 (NIC 7141). Richard W. Watson at SRI-ARC wrote it on July 20, 1971 ๐Ÿ—“๏ธ. It's filed under categories A.5 and D.7, it obsoletes nothing (Obsoletes: none), and it updates nothing (Updates: none) โœจ. Iconic that it's from 1971 btw ๐Ÿ˜ญ.

A MAIL BOX PROTOCOL ๐Ÿ’Œ

So the whole point of this protocol is giving every site one standard way to receive sequential files ๐Ÿ“ฌ, whether they're for printing right now, printing later, or something else. Files meant for later would probably live in intermediate disk files, but how a site stores, handles, manipulates, or prints a file is not this protocol's business ๐Ÿ™….

Also, we're assuming there'd be a program on the sending side that sends the file in the format below, adding the optional control codes when it makes sense ๐ŸŽ€. It could probably be accessed as a subcommand of the Telnet program ๐Ÿ’ป.

Why do we even need this? The Network Information Center (NIC) needs to deliver messages and documents to remote sites, and it also needs to receive documents from remote sites for cataloging, redistribution, and other purposes ๐Ÿ“š. The big win is that nobody has to know the path name conventions or file system commands at each site ๐Ÿงš. Multiple mail boxes (128) are allowed at each site ๐Ÿฆ‹, and they're identified as described below. Mail box number 0 is the default, used with the standard mail printer defined below ๐Ÿ–จ๏ธ.

A mail box, as we see it, is basically just a sequential file where messages and documents get appended, separated by an appropriate site dependent code ๐ŸŒˆ.

Here's the tea โ˜•: this protocol lets people send messages directly without going through the NIC, but we really want everyone to use the NIC as much as possible ๐Ÿซถ. That way the dialogue gets recorded, cataloged, and available for online viewing at NIC, using the powerful facilities of the ARC on Line System (NLS) ๐Ÿ’….

This protocol uses established network conventions, specifically the Network Control Program, Initial Connection Protocol, and Data Transfer Protocol, NIC 7104 ๐Ÿงฉ.

The normal transmission is full 7-bit ASCII in 8-bit bytes, with the high order bit set to zero ๐Ÿ”ค.

The standard receiving mail printer for mail box number 0 is assumed to have a print line 72 characters wide, and a page of 66 lines ๐Ÿ–จ๏ธ๐Ÿ“„. The new line convention is carriage return (X'OD') followed by line feed (X'OA'), as per the Telnet Protocol RFC 158, NIC 6768 ๐Ÿ’ซ. The standard printer will accept form feed (X'OC') as meaning move paper to the top of a new page ๐Ÿ“ƒ.

It's the sender's responsibility to control the length of the print line and page ๐Ÿ™‹. If more than 72 characters per line are sent, or if more than 66 lines are sent without a form feed, then the receiving site can handle those situations as appropriate for them ๐Ÿคท. These conventions can be changed by control codes, as described below ๐ŸŽ›๏ธ.

A message or document sent to any mail box is a string of 8 bit bytes ๐Ÿงƒ.

At the head of a message or document sent to mail box number 0, there is to be an initial address string terminated by a form feed ๐Ÿ“ฎ. That address string is to contain the sender's name and address, plus the receiver's name and address, formatted in some reasonable, easy-to-read form so a clerk can read and distribute it ๐Ÿ‘ฉโ€๐Ÿ’ผ. Comments could also be included in the address string ๐Ÿ’ฌ.

The format of information in mail boxes other than mail box number 0 is not explicitly defined by this protocol ๐Ÿค.

Initial Connection

Initial Connection will be as per the Official Initial Connection Protocol, Documents #2, NIC 7101, to a standard socket not yet assigned ๐Ÿ”Œ. A candidate socket number would be socket #5 โœจ.

Data Transmission

Data Transmission will be as per the Data Transfer Protocol, RFC 171, NIC 6793 ๐Ÿ“ก. Basically there's a Modes Available handshake, and then special control information and data get transmitted ๐Ÿค. A message or document is defined to be a block of data ๐Ÿ“ฆ.

Control information is global. Once a control mode is set, it's assumed to apply for the life of the connection unless explicitly changed ๐Ÿ”’. More than one document may be sent during the life of the connection, unless the infinite bit stream mode is used ๐ŸŒŠ. In that latter case, there's one message or document per connection ๐Ÿ’Œ.

A reasonable convention for control information sent using the infinite bit stream mode seems to be assuming it applies only to the next data stream connection from the host that sent the control stream ๐Ÿง .

Control Information

The sending process should be capable of letting the user indicate the control codes associated with the transmission of a mail item ๐ŸŽ›๏ธ. The control codes can be used with any mail box number ๐Ÿ’œ.

Mail Box Number

A site may find, as is the case at NIC, that it's useful to have more than one receiving mail box, each one associated with a different process ๐Ÿงšโ€โ™€๏ธ. The mail box number for material to be printed by the standard mail printer is mail box number 0, and it's used by default โœจ.

  • Code X'DO'
    • Meaning: A seven bit binary number in an eight bit field with the high order bit set to zero is to follow, indicating the receiving mail box number. ๐Ÿ“ฎ

Transmission Code Type

The default code type is 7-bit ASCII in an 8 bit field, high order bit to zero ๐Ÿ”ค.

  • Code X'AO'
    • Meaning: A Data Type signal indicating that the transmission code is 7-bit ASCII in an 8-bit field, high order set to zero. ๐Ÿ’–
  • Code X'A1'
    • Meaning: Transparency, i.e. a stream of 8 bit bytes. ๐Ÿฆ‹
  • Code X'A2'
    • Meaning: EBCDIC ๐Ÿงถ

Other character codes could be added in the future ๐Ÿ”ฎ.

Printer Control Codes

The default settings are a print line of 72 characters and a print page of 66 lines ๐Ÿ–จ๏ธ.

  • Code X'D1'
    • Meaning: Set line width to 72 characters. ๐Ÿ“
  • Code X'D2'
    • Meaning: Use the full width of your printer. ๐Ÿ–จ๏ธ
  • Code X'D3'
    • Meaning: Set page size to 66 lines. ๐Ÿ“„
  • Code X'D4'
    • Meaning: Set page size to infinite. โ™พ๏ธ

Other virtual printer control codes can be added in the future ๐ŸŒธ. Other classes of control codes can be added as the need arises ๐Ÿ’….


       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by BBN Corp. under the   ]
       [ direction of Alex McKenzie.                   12/96   ]
๐Ÿ“ฆ where this page comes from