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

Adaptive mechanisms

RFC-80 is called “Protocols and Data Formats”, authored by Eric Harslem and John Heafner of RAND, dated December 1st 1970.

The technical content

The first thing this RFC does is repeat the information in RFC-79, that there's a conflict between RFC-66 and RFC-54 (or some variant of it referred to as Protocol Document 1). I assume it's because they did not receive RFC-79 before submitting this RFC.

However, this document goes further than RFC-79, in that it provides a correction for the documentation in RFC-66, with the correct sequence required for an NCP to negotiate initial communication with a remote Host.

Next, they offer a streamlined tweak on the initial connection process, one that collapses four steps of the handshaking process into two, reducing redundant information transfer in the process.

The next section turns away from NCP stuff and gets into uses for message data types as proposed by Ancona in RFC-42 (recall this is something like MIME types for HTTP messages today). First, they reference the concept of “adaptable mechanisms”, referring to something called the “Adaptive Communicator Project”, a RAND machine learning project funded by ARPA. More on this in the Further Reading section below.

They go on to describe the “Form Machine”, which is reducible to a subset of regular expressions. These expressions are capable of defining data formats, and parsing data formats. I might very well have this wrong but seems to be a way of describing a set of rules that transform different streams of data in different formats into a universal compiled language that can then be executed upon. This will be discussed in much more detail in RFC-83. They ask for input from the community on this concept.

Futher reading

The “Adaptive Communicator Project” referenced in this December 1970 document was eventually described in the March 1972 paper, “A New Approach to Programming Man-Machine Interfaces”, which is available on RAND's website today. Heafner, a co-author of this RFC, is thanked in the paper for early discussions on this. I assume these early discussions were happening at the time of this document being written in late 1970.

Here's a diagram of what an adaptive communicator is for, from this paper:

a flow diagram with CRT, microphone, tablet, keyboard, and computer network communicating with an adaptive communicator, which then communicates with a computer program

Having read the paper, this is what it looks like at first glance: a machine learning module where you can specify behaviors you want in a high level language that then adapts to whatever inputs it receives and kind of “intuits” (my language here) what the inputs mean via a set of heuristics (rules of thumb). This is some 2019-sounding stuff but in 1972. As always, we have a lot to learn from the past.

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.