by Darius Kazemi, July 6 2019
An experimental network
RFC-187 is titled “A Network/440 Protocol Concept”. It's authored by Douglas B. McKay and Donald P. Karp of the IBM Thomas J. Watson Research Center. It's not dated but we can assume it's from late July 1971.
The technical content
This document opens with a note heretofore unseen on an RFC:
This RFC is being circulated as an information RFC. Its intent is to convey some of the thinking and philosophy that went into IBM's network protocol and overall network design.
So right at the start we understand that this is not a proposal but rather an informational document for the edification of RFC readers.
Network/440 is an IBM Research project where they built an internal network at IBM in order to learn about computer networks as a concept and figure out where IBM could provide solutions for a market that was yet to exist.
Their primary approach is
"to treat all systems involved in the network as a part of a single (large) multiprocessor system". So, essentially, in the view of the Network/440 team, the network is simply a very distributed supercomputer.
IBM also says that they have two major operational networks. One of these is in a
"distributed configuration", and the other is in a
"star configuration". By the latter they mean a network with a central hub that all computers are connected to (in the last section of the document they describe what sounds like a basic timesharing system with terminals connected to a single central computer).
(Their system is completely different from the ARPANET and does not use IMPs or the Host-Host protocol. I'm not going to be able to learn all of this from just one paper, so I'm going to do my best to summarize what's in here given my incomplete understanding.)
They begin by breaking the network up conceptually. The ARPANET team did this with their “levels” model. IBM's model breaks things at the abstract into two big pieces: “net control” functionality, which manages job execution over the network, and “communication control” functionality, which manages the efficient movement of packets across the network. By breaking things up this way, they can say things like: a switch is something with communication control but no net control, and an end user terminal is something with net control but no communication control. And there are nodes that have both as well, for example in a centralized network where a monitoring process might examine all network traffic and then reassign jobs based on some sort of centralized algorithm.
The definition of a logical message on this network is that it's a header followed by text. An “action code” in the header tells network nodes whether they should shunt this message over to a net control, or just pass it on to the communication control system for forwarding. Each message, as it passes through nodes, is modified by the node to insert the node's station number, in order to provide a kind of paper trail for where the message has been. (I'm unsure if this number is appended, or overwritten: the verb used in the document is “overlaying”, which is unclear to me.) Messages also contain a job identifier and some state information about the job. They also contain information about the originating node and user in the network, a transmission priority value, information about the intended destination node, and of course identifying information about the payload of the message including its length and also any metadata required to connect it to other message payloads. The reason for the last one is that payloads can be split across multiple messages, so a receiving computer needs to have enough information to be able to reconstruct the full payload from multiple messages.
The document describes a File Transmission Protocol on this network. The protocol is similar to ARPANET's FTP in many ways, including the ability to execute files on a remote system.
We can see by looking at the IETF Datatracker references that this RFC was essentially never cited by future RFCs, so this entire document is kind of an informational “aside” in the history of ARPANET.
The transcription of this RFC in 1997, perhaps aided by optical character recognition technology, means that the canonical document is full of references to
"Network/44O", that is, with a letter “O” instead of a number “0”.
I also love that they use the term “computer netting” instead of “computer networking”.
Network/440 remains fairly obscure. Aside from this RFC, there's a lot of information in MITRE's Survey of Computer Networks from September 1971, beginning on page 38 of that PDF. This document contains more technical details about the hardware and software. The document says that IBM's system uses homogenous computers, meaning every computer on the network is running the same operating system, the same software, and extremely similar hardware (all variations on the IBM 360).
That document, by the way, is a great overview of the various networks in operation in 1971. ARPANET was not the only operational network at this point in time. For example, CYBERNET is a “nationwide commercial network offering computing services to the general public” by the Control Data Corporation, that provided timesharing services over telephone lines. And we've heard about MERIT, which at this point connects a bunch of computer systems at different Michigan-based universities.
How to follow this blog
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.