RFC-89

by Darius Kazemi, March 30 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.

Historic moments

RFC-89 is titled “Some Historic Moments in Networking”, authored by Bob Metcalfe of MIT's Project MAC, who would eventually go on to co-invent Ethernet among many other notable achievements. The RFC is dated January 19th, 1971.

The technical content

This RFC outlines some of the accomplishments of Project MAC. I'll write in the past tense rather than my usual present tense because the RFC is discussing past events.

They connected the MIT MAC Dynamic Modeling/Computer Graphics PDP-6/10 System (MITDG for short) to a Multics terminal. Essentially, they managed to get a PDP-10 connecting to a Multics OS and acting as a remote terminal for Multics. Though there were some problems; for example, their interface uses only ASCII characters to communicate, but in Multics a QUIT command is not natively an ASCII command in the same way that LINE FEED is, for example. They suggest that maybe an interrupt signal could stand in for QUIT. There is also no support for RUBOUT (what we call the “delete” key today).

They connected their MITDG to the PDP-10 at Harvard University. This is historic because the MITDG system is line-oriented, but the Harvard system is character-oriented. The complexities of incompatibilities between these types of systems were discussed at length at the November NWG meetings, and I think Metcalfe wants to show that they managed to overcome this in one case. Metcalfe reports the connection and the overall interactive experience to be as fast as sitting at the terminal in person, which is exciting considering the complexity of “two time-sharing systems, three user level processes, and three IMPs, all connected in series”.

And finally, they “received graphics programs and 3D data from Harvard's PDP-10, processed them repeatedly using our Evans & Sutherland Line Drawing System (the E&S), and transmitted 2D scope data to Harvard's PDP-1 for display.” This is pretty cool, coordinating 3 different machines to generate, transform, and display 3D data over the network! Unlike the previous experiment mentioned, it was apparently a very slow connection.

Analysis

All of these experiments were conducted on the “interim interim NCP” (IINCP) while they waited for the “interim NCP” (INCP) to be completed! I think that's what we'd called a pre-release alpha today but I think I'm going to start using “interim interim” from now on.

The bit about QUIT and RUBOUT not working via remote terminals is amusing to me, because I still sometimes encounter a variant of this problem. If you've ever SSH'ed to a a remote computer, especially on Windows via PuTTY, sometimes “delete” and “ctrl+c” to quit a process aren't correctly processed by the connection and you have to mess around in your settings to fix it.

There is a note at the end that they had to “bend over backwards” to implement message marking, so that is still a big big point of contention. The author is in favor of double padding rather than padding and marking.

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.