365 RFCs

Commenting on one RFC a day in honor of the 50th anniversary of the first RFC.

by Darius Kazemi, December 1 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.

Upgrading the rat's nest

RFC-335 is titled “New Interface – IMP/360”. It's authored by Roland F. Bryan of the UCSB Computer Research Lab and dated May 1, 1972.

The technical content

A new interface between the IBM 360/75 and their local IMP has been installed. It is more “production-ready” than their previous interfaces and they would like to hear if anyone encounters issues connecting to UCSB services now that it's installed.

Analysis

The early physical wiring connections between Host computers and their IMPs were all more or less hacked together and were highly specific to their individual site installation. Recall that since there is no computer networking to speak of at this time,and basically no hardware standardization between computers made by different vendors. So it's not like you can go to the store and buy commercial cables!

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

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

ARPA stress test

RFC-334 is titled “Network Use on May 8”. It's authored by Alex McKenzie of BBN and dated May 1, 1972.

The technical content

In advance of the IMP system software upgrade described in RFC-331, the UCLA Network Measurment Center is planning to run a stress test on the network. Because of this, network users should expect poor to nonexistent service on May 8.

Interestingly, this is all because of a decree from ARPA. We don't often hear about ARPA's needs in the RFC series. It's almost like they aren't there. Yet here they are, effectively shutting down the network for a day and in the process reminding everyone that, yes, this is an ARPA project.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 29 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.

Messaging switching: not just for IMPS anymore

RFC-333 is titled “A proposed experiment with a Message Switching Protocol”. It's authored by Bob Bressler of MIT's Dynamic Modeling group, Dan Murphy of BBN's TENEX group, and Dave Walden of BBN's IMP group. It's dated May 15, 1972.

The technical content

In this RFC the authors propose an entirely new paradigm for the Network Control Program (NCP): a message switching protocol. This would require changes in the core Host-Host protocol that has been foundational to the ARPANET since RFC-107 in March 1971. This is still in experimental stage and is not to be construed by readers as a formal proposal or specification.

Message switching is something that has powered the ARPANET since day one, but only between Interface Message Processors. On the Host side of things, that is to say the computers that the end users actually use, the Host-Host Protocol is based on something called line switching.

Line switching is when you open a line of communication between two points in a communcation system. When the line is being used, it is reserved and cannot be used by anyone else. When the number of lines that you have available to you are limited (as in the case of ARPANET with its 256 lines, or “links” in Network Working Group lingo), you run into massive problems with scaling communication and avoiding a traffic jam situation where all the useful lines are tied up while other lines lay empty.

As reported in RFC-317, ARPANET links 192, 193, 194, and 195 have been reserved for use in “the Message Switching Protocol experiment”. This RFC contains the results of that experiment.

Dave Walden's RFC-62, “A System for Interprocess Communication in a Resource Sharing Computer Network”, is listed as required reading before someone dives into this RFC. In that paper, which is truly one of my favorite computer science papers I've ever read, Walden lays out what interprocess communication (aka communication between programs) looks like on a single computer. He then generalizes it to a distributed set of computers, with individual processes running on individuall computers, with a Network Controller acting as a kind of operating system supervisor in between them all.

This RFC states that the Message Switching Protocol “is essentially a generalization of the interprocess communication system outlined in Section 3” of RFC-62.

The paper lays out a vision where communication happens like so:

  • the sender sends to a “rendezvous host” (an intermediary process either on the local computer or a well-known remote computer):
    • the destination port for its message
    • the port the message originates from on the sender
  • the receiver sends to the rendezvous host:
    • the port it's expecting to get a message from
    • the port it's expecting to receive a message on

The rendezvous host determines if these ports match up, and if they do, it forwards the message on to the receiver and sends an acknowledgment to the sender.

Of note is that “port” is a network-wide unique identifier, so you can think of it as the modern combination of hostname and port, rather than just the four-digit numbers we think of today. Though really it's independent of any host and can “live” on any physical computer on the network and do its job. This gives you the option to move a port from computer to computer as needed.

If your port ID is set to 0 it means “ANY”, which lets you say things to the rendezvous host like “I will receive messages from any port to this specific port”.

While the model presented here sets up the “rendezvous host” as a generic intermediary process on some generic intermediary host, the authors expect the sender to act as the rendezvous most of the time, simplifying the overall process.

The RFC includes a large section devoted to discussion of how a local computer could generate a guaranteed unique identifier. The authors postulate an “information operator” that handles all the association and routing of port IDs. It is strikingly similar to a modern DNS resolver in function, in that you can give it a symbolic identification for a foreign process and receive the port ID of the foreign process. The authors say that the information operator will operate in “RECEIVE ANY” mode on a well-known port, and that this port “could in general be the only well-known port in existence”. This is basically how DNS works today for most end users. Generally speaking the only time you ever have to know a specific IP address is when you put the IP address of your DNS service into network settings.

There is a diagram missing from the canonical online version of the RFC, illustrating a “completely local rendezvous”. I snapped a photo at the Comptuer History Museum and have supplied it here.

Analysis

What this all means is that you no longer have to reserve a physical link to communicate between two different hosts. You just say “here is my message, I want to send it to this location, please get it there”. Again, this is how the IMP network internally always worked (this is why BBN's IMP is considered the birth of the practical packet-switched network) but to date the Host-Host Protocol has not worked this way. You needed to know both your destination and reserve a path to get there.

The scheme discussed in this paper works more like the modern internet than anything we've seen in the RFC series so far.

This RFC, while it has three authors, has Walden's stamp all over it, including little asides like this one:

(Don't panic now about buffering in an intermediate Host.  The time to panic is afer you've read and understood the rest of our arguments.)

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 28 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.

Network status

RFC-332 is titled “Network Host Status”. It's authored by Ellen Westheimer of BBN and dated April 25, 1972.

The technical content

This is another report from BBN on the status of various ARPANET hosts in the same series as RFC-330, RFC-326, RFC-319, RFC-315, RFC-306, RFC-298, RFC-288, RFC-287, RFC-267, RFC-266, RFC-255, RFC-252, RFC-235, and RFC-240.

The numbers, from April 10 to April 21:

  • 76 dead
  • 84 open
  • 9 half open
  • 16 timed out
  • 1 refused
  • 4 full/busy

We are at about 52% online status for the longest-running ARPANET servers, and 44% online overall. This is the first time (I think) we see a “full” status on a server, which basically means there are too many people already connected to the server so it closed the connection when the measurement was taken.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 27 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.

Distant hosts

RFC-331 is titled “IMP System Change Notification”. It's authored by John M. McQuillan of BBN and dated April 19, 1972.

The technical content

BBN is announcing with this RFC that there will be a gradual network rollout of new Interface Messaging Processor software across the network. Every IMP site will be mailed a tape with the new software on it, and asks that on May 15, IMP site operators upgrade the software.

The big changes are more network statistics gathering and also the inclusion of the Very Distant Host option. As described in RFC-263, this option lets you enable more error checking for a given connection, which in turn lets you connect a machine to the IMP with a cable of length more than about 2,000 feet.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 26 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.

Network status

RFC-330 is titled “Network Host Status”. It's authored by Ellen Westheimer of BBN and dated April 13, 1972.

The technical content

This is another report from BBN on the status of various ARPANET hosts in the same series as RFC-326, RFC-319, RFC-315, RFC-306, RFC-298, RFC-288, RFC-287, RFC-267, RFC-266, RFC-255, RFC-252, RFC-235, and RFC-240.

The numbers, from March 27 to April 7:

  • 71 dead
  • 91 open
  • 19 half open
  • 9 timed out

We are at about 59% online status for the longest-running ARPANET servers, and 47% online overall.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 25 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.

List management

RFC-329 is titled “ARPA Network Mailing Lists”. It's dated May 17, 1972 and authored (presumably) by Jeanne North of the SRI NIC.

The technical content

This RFC updates RFC-303, and consists of three different distribution list for documents related to ARPANET. As in RFC-303, RFC-300, RFC-211, and RFC-168, List A is essentially the critical sites that need information as soon as possible, and lists B and C are for secondary sites.

Analysis

Of special note (to me at least) is that this is the first mention of Xerox PARC as a full-fledged participant in the Network Working Group. RFC-190 is authored by L Peter Deutsch of Xerox PARC but seemed like a one-off at the time.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 24 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.

Simplifying Telnet

RFC-328 is titled “Suggested Telnet Protocol Changes”. It's authored by Jon Postel of UCLA and dated April 29, 1972.

The technical content

Postel opens this RFC with a declaration: the suggestions he makes in this document will be assumed to be official if there is not “substantial negative responne” in the next two weeks.

He proposes that the concept of a “minimum Telnet implementation” as described in RFC-318 be dropped. Essentially, he argues that having a minimum implementation means that there are two standards, which has massive knock-on effects on the whole network.

He proposes that you shouldn't be able to switch away from ASCII as your data type, because if you do, then you're no longer communicating with Telnet! You might as well just hang up at that point; there is “no way to specify how to get back to ASCII or Telnet thus the conversation is "out of control"”.

He proposes getting rid of the HIDE YOUR INPUT signal. It's supposed to be sent to the client as a way to hint that further input should be “hidden” in whatever way makes sense for your terminal. Remember some of these terminals are physical typewriters, hiding input is hard! Basically Postel is saying that this is too complex and not really all that helpful and it should be axed.

Analysis

I generally approve of any set of proposals where all of the proposals involve simplification of a protocol by removal of features.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 23 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.

Bye DTP

RFC-327 is titled “Data and File Transfer workshop notes”. It's authored by Abhay Bhushan of MIT Project MAC and dated April 27, 1972.

The technical content

This RFC collects notes from the data and file transfer workshop that was announced in RFC-309. The meeting was well-attended by Network Working Group members from both coasts.

The first day of the workshop featured a series of talks, which I will pithily summarize here:

  • Steve Crocker (UCLA): network standardization is good and saves everyone lots of work, here is some mathematical proof thereof
  • Richard Winter (Computer Corporation of America): the Datacomputer exists, and it's meant for other computer programs to use rather than individual human users
  • Alex McKenzie (BBN): TIP users exist and have unique limitations, please do not forget them
  • Bob Braden (UCLA CCN): 1% of our total computation load is from ARPANET users, and we promise there will be an official protocol for all of this very soon
  • Ray Tomlinson (BBN): description of CPYNET
  • Abhay Bhushan (MIT Project MAC): we need a way to evaluate which protocols are best, here is my set of criteria for doing just that

The second day was a big discussion and there was a lot of consensus reached on data formats, transfer modes, and restarting in case of connection loss. The big takeaway for me is that the Data Transfer Protocol of RFC-171 is no longer its own protocol, and its functionality can be duplicated by using certain combinations of FTP modes and procedures.

Analysis

As I said in my post on the first Data Transfer Protocol RFC:

This is a weird proposal that seems very design-by-committee, and each of the operating modes seems like it needs to be its own protocol. It really looks like half the RFC is just an abstraction of the FTP proposal in RFC-114, and then it has operating modes 1 and 2 (bit stream and block mode) kind of bolted on to it.

I'm glad that my analysis at the time wasn't off: they did in fact acknowledge that DTP was really just a couple extra FTP-like operating modes in its own “protocol”.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

by Darius Kazemi, November 22 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.

Network status

RFC-326 is titled “Network Host Status”. It's authored by Ellen Westheimer of BBN and dated April 3, 1972.

The technical content

This is another report from BBN on the status of various ARPANET hosts in the same series as RFC-319, RFC-315, RFC-306, RFC-298, RFC-288, RFC-287, RFC-267, RFC-266, RFC-255, RFC-252, RFC-235, and RFC-240.

The numbers, from March 13 to March 24:

  • 84 dead
  • 81 open
  • 21 half open
  • 4 timed out

We are at about 66% online status for the longest-running ARPANET servers, and 42% online overall. Still showing an upward trend in availability, at least on the core servers.

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.

Enter your email to subscribe to updates.