RFC-36

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

Updates to the protocol

RFC-36 is titled “Protocol Notes”, authored by Steve Crocker, and dated March 16th, 1970. It contains updates to RFC-33. This RFC is dated one day before a scheduled network meeting; presumably this RFC was published the day before the meeting and distributed as a handout the next day.

The technical content

Section I is an overview and contains some general information about updates to RFC-33.

The method for opening a connection is slightly simplified from how it was previously outlined.

There's also a new kind of message that a HOST can send to its IMP that says “let any computer trying to open connections with me know that I am not accepting connections right now”. Basically if the HOST is overwhelmed with requests it can pull the emergency brake.

Finally, there is a reconnection method that Crocker has devised.

Section II outlines the data tables involved in the protocol. It is what a modern developer might think of as a database schema, although it wasn't a database. It says “this piece of data takes this form and is stored in this way in this part of memory”.

Section III lists control command for establishing and closing connections. It's pretty common sense stuff, though there is one command called “Final End” (FND) which is in place to prevent a “short circuit” style loop where a computer connects one of its own send sockets to one of its own receive sockets.

Analysis

Right off the bat, Crocker admits he lacks the technical experience to communicate concepts about the protocol in a holistic way. I wish more technical communication would acknowledge the author's own shortcomings. Instead we end up getting people pretending to know things that they don't for fear of being laughed at.

We get some terminology collision in this document. We are of course reading an RFC, which stands for “request for comment”, but there is something called an “RFC command” which is a “request for connection command”. This seems unnecessarily confusing, but what is engineering if not a bucket of unnecessarily confusing acronyms?

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.