by Darius Kazemi, May 3 2019

In 2019 I'm reading one RFC a day in chronological order starting from the very first one. More on this project here. There is a table of contents for all my RFC posts.

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:


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.

How to follow this blog

You can subscribe to this blog's RSS feed or if you're on a federated ActivityPub social network like Mastodon or Pleroma you can search for the user “@365-rfcs@write.as” and follow it there.

About me

I'm Darius Kazemi. I'm an independent technologist and artist. I do a lot of work on the decentralized web with both ActivityPub and the Dat Project. You can support my work via my Patreon.