by Darius Kazemi, May 3 2019
Leading by example
RFC-123 is titled “A Proferred Official ICP”, authored by Steve Crocker of UCLA on April 20th, 1971.
The technical content
This is an attempt at an official Initial Connection Protocol. This protocol has been referenced in previous RFCs (RFC-66 and RFC-80), but even then the protocol has only been sketched out. A full specification hasn't existed in the RFC series up until now.
The ICP is a third-level protocol, which means it's on a higher level of abstraction than the Host-Host protocol or the IMPs. It can be used for Telnet to log in to a remote server, or other uses like connecting directly to something like the Simple-Minded File System of RFC-122.
Initial connections are established between a local socket and a remote socket, and a byte size is communicated on that initial connection. Recall that popular computers in 1971 had all sorts of native byte sizes they worked in — this protocol supports byte lengths of up to 255 bits! Along with the remote socket number, the site number for the remote host needs to be sent along as well. Also, the sum of the local socket and the foreign socket must be odd, which I believe is related to the common network practice of send sockets being odd and receive sockets being even. An odd number plus an even number is always an odd number, so “the sum of these two sockets must be odd” is just a terse way to say “one even and one odd, please”.
As in many other third-level protocols before this, the general procedure goes:
- remote host is always listening on a “well-advertised” socket (meaning the listen socket is written down in a reference manual and doesn't ever change)
- local host sends a request to connect
- remote host sends back a new socket for local host to connect to
- local host then connects to that new socket on the remote, which frees up the “well-advertised” socket for the next new user to come along
This is published as an RFC with the intent for it to be discussed (and ideally adopted) at the May NWG meeting at the Spring Joint Computer Conference.
This is also an example of Steve Crocker practicing what he preaches: he asked people to submit papers in advance of the NWG meeting, and he's leading by example doing exactly that.