RFC-49

by Darius Kazemi, Feb 18 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.

Levels

RFC-49 is by Edwin W. Meyer, Jr. of MIT's Project MAC. It's dated April 25th, 1970 and titled “Conversations with Steve Crocker (UCLA)”.

The technical content

This document is a summary of two telephone conversations between Meyer, Crocker, and Thomas P. Skinner (also of Project MAC).

First off, Meyer explains that Crocker believes dynamic reconnection will eventually be accepted as necessary by everyone, which is consistent with Crocker's assertions in RFC-48. Crocker allowed dynamic reconnection to be temporarily set aside in the interest of cooperation with the other participants.

Next, Meyer talks about the interrupt (INT) command on the network. This was proposed by Meyer in RFC-46, Crocker supported it in RFC-48, and now Meyer is expanding on it a little bit and giving some more rationale for it. The details have already mostly been covered in previous RFCs.

There is some splitting hairs of whether including certain identifiers on sockets would be duplicating unnecessary information or not.

The fundamental design idea is repeated that the Network Control Program (basically, how you encode messages to send to the IMP) needs to send freeform data around. There will be no formal restrictions on character encoding or on message length.

Once again, preferences on how to deal with “word boundaries” (which I described in a little detail in yesterday's article are put forth.

Next we have a horrible name collision, as the document simultaneously refers to RFCs as Request For Comment and Request For Connection. It leads to a “who's on first” kind of situation where sometimes an RFC is a paper document and sometimes an RFC is a command that is sent over the network. Anyway, they talk about how they have now been convinced that a request for connection shouldn't be immediately rejected if a socket is busy; rather it should be queued for a little bit of time, and if the socket clears up in that time, it will be accepted.

The User Control and Communication protocol (UCC) that Meyer discussed in RFC-46 is (rightly, in my opinion) shot down by Crocker as far too complex. If you'll recall, this is supposed to be a way for a computer at one physical site to request that a computer at a different site start up a process/program. There is a significant discussion of several possible implementations of this idea. The main issue seems to be that they are highly concerned with keeping implementation of different “levels” of the network distinct. For example, Crocker offered a potential solution but Meyer and Skinner rejected it because caused a kind of leakage into the NCP level of things that should remain elsewhere. (The NCP is supposed to be fast, so the less responsibility it has, the better.)

Analysis

In addition to the tension in not causing overlap between different “levels” of the network, there is also a tension in keeping things standardized versus letting everyone do what they want. According to this document, Crocker proposed that everyone could implement their own UCC or UCC-type thing. Project MAC wants everyone on the same network software so every computer can talk to every other computer. These tensions are not resolved in this document.

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 a Mozilla Fellow and I do a lot of work on the decentralized web with both ActivityPub and the Dat Project.