RFC-107

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

An ultimatum

RFC-107 is titled “Output of the Host-Host Protocol Glitch Cleaning Committee” and is authored by a committee of six, with Steve Crocker as Chairman. It's dated March 23rd, 1971.

The technical content

This RFC contains the results of the second meeting of the Glitch Cleaning Committee. The first meeting was covered in RFC-102. This second meeting happened on March 8-9, 1971.

This document is “an official modification of Document #1”, which is not an RFC document but rather a separate series of documents, with Document #1 being the actual spec for the Host-Host protocol.

The introduction closes with a note exhorting programmers to switch their network control program (NCP) over to these new specifications as soon as possible, and to even provide estimates to the committee as to when they expect this task to be completed.

Changes to the protocol

One change made to the Host-Host protocol is that we now explicitly deal with byte streams instead of bit streams, where a byte can range from 1 bit to 255 bits in length, as long as that byte length remains constant for the duration of a connection.

The header format is changed; notably it contains padding, but no marking.

There are to be no message data types on the host-host protocol, but higher level protocols are welcome to introduce them.

The RESET and RESET REPLY messages proposed by Kraley and Newkirk in RFC-57 in case of a computer crash are to be implemented.

A new memory allocation system is instituted, requiring the NCP to keep track of two different quantities, resulting in a maximum message allocation of (2^16)-1 (or 65,535) messages and a maximum bit allocation of (2^32)-1 bits (or 500 megabytes).

The control link, which has been physical link 1 since the beginning, is now physical link 0. Link 1 is now reserved for “old-style” host-host protocol connections, allowing both kinds of traffic to flow on the network, at least for now.

And some commands and command formats have changed somewhat.

Discussion of byte streams

Half of this Glitch Cleaning Committee meeting was spent codifying the above changes; the rest was spent discussing issues with byte streams. Basically there's a tension between flexible byte streams and efficient byte streams, which is what the arguments were mostly about. The more formats a byte stream can be in, the more complicated the decoding mechanism must be at a receiving site.

There is discussion of turning the byte streams into “transmission units”, which sound an awful lot like modern packets. The IMPs operated by breaking things into packets (hence this being the first packet-switched network), but that's just the IMP protocol. The Host-Host protocol had no notion of this up until this point.

Analysis

This is a major revision of one of the most fundamental ARPANET protocols and is the first RFC that feels like a true ultimatum. “Get on this new protocol or get left behind” is the clear message given!

Further reading

You can read the Host-Host Protocol Document No. 1. It was written by Steve Crocker on August 3rd, 1970 and was the closest thing to an official Host-Host standard that existed until the publication of this RFC.

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 both ActivityPub and the Dat Project. You can support my work via my Patreon.