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

Error and status

RFC-39 is yet another response to RFC-36. This is authored by John Heafner and Eric Harlsem at RAND, and it proposes some changes to the new HOST-HOST protocol. It's dated March 25th, 1970.

The technical content

Our authors propose some key additions to the protocol, including:

They also believe that Crocker's dynamic reconnection algorithm is too resource-intensive but are also kind of apologetic that they don't have a better solution yet.

There are 3 types of error messages they specify: content errors, status errors, and resource errors. A content error is something like “you asked me to close a link but it's not actually open in the first place” or “your message to me was malformed”. A status error could be a message like “you tried to send a message over link 5 but that link is currently reserved”. A resource error is “we ran out of memory” or “the program you are trying to run doesn't exist.”


Error messages and status codes are a really great idea! One of the most common pieces of feedback I send (and get sent) in code review is “uhh maybe add some error messages and a way to query the system status” so. Yeah. This is an early example of a very common piece of programming feedback.

Further reading

Before working on ARPANET, Heafner was involved in the GRAIL Project (GRAphical Input Language) at RAND. It was an early formal investigation into using CRT monitors for human-computer interfaces. The paper even begins stating that when they started the project, they realized there was a mismatch between the 2D display of a monitor and the linear input of a keyboard so figured they needed to invent a tablet/pen for 2D input! There is a fascinating post mortem of the project that was published in 1969 and you can read the whole thing on RAND's website. Here's a blurry scan of the tablet and monitor interface from the paper:

a person holding a pen over a tablet surface looking at a monitor with flow charts on it

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.