365 RFCs

Commenting on one RFC a day in honor of the 50th anniversary of the first RFC.

by Darius Kazemi, August 23 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.

Mostly dead

RFC-235 is titled “Site Status” and authored by Ellen Westheimer of BBN. It's dated September 27, 1971.

The technical content

This RFC is the first of what is to be a series of reports from BBN on the status of hosts on the ARPANET. They plan to randomly attempt to connect to hosts from a Terminal IMP and collect data on whether they are able to connect, what sorts of errors were returned if not, etc.

They will not attempt to connect to hosts that are simply clients and not servers, hosts that are known to be offline, and hosts that are only meant to collect statistical data on network performance.

There are two lists included in the RFC.

The first is a list of each host, the computer at the host, the name of the site, the main person to contact at the site, and the host site number.

The second is a list of dates and times that BBN attempted to connect to a given host, and they note the following statuses of each host at the time:

  • Open (online)
  • Dead (totally inaccessible)
  • Refused (host refused the request to connect, issuing a “close” in response)
  • Timed out (no response but not dead)
  • Half open (connection was made but nothing worked after that)

Analysis

Slightly less than half of the 120 connection attempts that BBN made to remote hosts are labeled “D”, for dead! Here's my count:

  • 56 dead
  • 33 open
  • 17 timed out
  • 10 half open
  • 4 refused

Only 33 out of 120 connection attempts, or a measly 27.%, resulted in a successful connection.

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 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.

by Darius Kazemi, August 22 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.

Map of MIT

RFC-234 is titled “Network Working Group Meeting Schedule”. It's authored by Al Vezza of MIT and dated October 5, 1971.

The technical content

This RFC is a detailed schedule for the Network Working Group meeting, which begins in 5 days' time at Project MAC in Cambridge.

All the information in here is contained in previous RFCs, in particular RFC-212 and RFC-222.

Analysis

A map of MIT was included along with this RFC but was never scanned. I found a copy at the Computer History Museum's archives.

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 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.

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

Four characters is enough

RFC-233 is titled “Standardization of Host Call Letters”. It's authored by Abhay Bhushan and Bob Metcalfe of MIT and dated September 28, 1971.

The technical content

This RFC is a response to RFC-226. As with RFC-229, it offers up an alternative naming scheme for host site mnemonics. The authors suggest that 4 characters is enough for a good mnenomic, and also offer an 8 character alternative. Compare this to Postel in RFC-229 who says that 6 characters is not enough.

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 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.

by Darius Kazemi, August 20 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.

Postponement

RFC-232 is titled “Postponement of Network Graphics Meeting”. It's authored by Al Vezza of MIT and dated September 23, 1971.

The technical content

The fact that the big Network Working Group meeting was moved to mid-October means that the current dates for the Network Graphics Meeting nearly overlap. The meeting is being postponed and a new date will be announced for November or December.

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 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.

by Darius Kazemi, August 19 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.

Let's keep standardizing

RFC-231 is titled “Service Center Standards for Remote Usage—A User's View”. It's by Heafner and Harslem of RAND and dated September 21, 1971.

The technical content

This RFC proposes a set of standards for service centers. A service center is a computer or set of computers on the ARPANET that can be accessed remotely and provides useful services to users. RAND believes that there should be standard services offered by these centers, and that it would enable the community of users to expand.

RAND's network user community right now is research scientists and their “support programmers”. That is to say, the scientists don't access the network directly. They give marching orders to programmers who then interact with the computers and then give the data back to the scientists. RAND would like to make the system easy enough to use that programmers are removed from this loop, “eliminating the buffer”, in their words.

RAND also says that standards will save users both time and money. Keep in mind that network usage is metered! It's almost never mentioned directly in these RFCs but the primary reason each site asks for a user name when you log in is so that they can charge you money for using their computer services. (More on this in “Further reading” below.)

The authors highlight the following areas for standardization:

  • Remote job entry. These are the systems that let you submit general computing work to a remote computer. There are two totally different protocols, one at UCSB and one at UCLA, that do basically the same thing but require entirely different input from the user.
  • Login procedure. While the Initial Connection Protocol handles the technicalities of a computer connecting to a remote computer, once you're connected, every single site has a different set of questions it asks you to identify who you are.
  • Accounting protocol. The different sites use all sorts of measures to determine how much money they're going to charge you, usually a combination of: how much storage you're using, CPU time, time simply connected to the system, I/O, and more. It's extremely difficult for a user to understand some of these formulas, and to predict what their costs are going to look like.
  • Procedures for “off-line” services like printer output, tape backup, and so on.
  • Some kind of quality-of-service mechanism, where a user can spend extra money to bump up the priority of their computation jobs.
  • Documentation formats.
  • Schedules for when services will be available.
  • Long-term storage of files.

Analysis

Fifty years later, the accounting protocol problem has not been solved. It is notoriously difficult to figure out how, for example, Amazon Web Services charges for remote computer usage. Check out this 2017 article that spends 4,000 words trying to explain to you how you might figure out what Amazon is charging you money for.

Further reading

This is a couple years in the future but there's an entry on the SRI ARC Journal from 1973 that demonstrates the cost issues around Network access. There's a short paper posted by Jacques Vallee, Elizabeth Michael, Linda Lane, and Kirk Kelley called “The Economics of Text-Editing Functions”, accesssible on page 76 of this PDF. They connected to several different ARPANET systems and carried out the same text entry, proofing, editing, and viewing tasks, measuring the time it took to carry out each sub task and the total time. Costs in 1973 for accessing a PDP-10 were $4/hour of connect time and $8/hour of CPU time. In 2019 dollars that is $23/hour for the connection and $46/hour for CPU usage. Other systems charged similar rates. The purpose of the paper is to identify the text-editing systems that let a user work fastest: this provides information to help current network users pick the most efficient system, but also helps text editor designers compare what's working and not working between the different systems that are out there.

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 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.

by Darius Kazemi, August 18 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.

Enter the minicomputer

RFC-230 is titled “Toward Reliable Operation of Minicomputer-Based Terminals on a TIP”. It's authored by Thomas N. Pyke, Jr. of the National Bureau of Standards.

The technical content

This RFC is about the Terminal IMP (TIP). Recall that the TIP is an Interface Message Processor that a teletype terminal can connect to in order to access services on the ARPANET, such that a user doesn't need to own a gigantic, expensive computer in order to do so.

The author's issue with the TIP is:

  1. that it only allows for character-oriented transmission, as opposed to line-oriented (see RFC-89 and RFC-139 for more on this problem)
  2. it offers no error control

In 1971 teletype terminals are starting to be replaced with “minicomputers”, which are more like the personal computers that we use today in that they contain, well, an actual computer inside them and they aren't just a souped-up typewriter. You can write programs on a minicomputer and everything.

A terminal user is expected to enter a command, see the result, and then determine if there was an error. But if the user is a minicomputer, the human may simply write a piece of software that then talks to the TIP. This data is going to be processed so quickly by the minicomputer that a human can't really debug every single interaction. Hence the need for error control.

Similarly, if the flow of data is going to be (human → minicomputer → TIP) instead of (human → terminal → TIP), then it makes sense for the TIP to accept huge blocks of data at once instead of getting a character-by-character transmission. Character-by-character makes a lot of sense when a human is typing things, but again, we are now in a situation where a computer is talking to a computer and there is no point in pretending that one of the computers is as slow at processing data as a human.

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 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.

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

Eight characters are better than six

RFC-229 is titled “Standard Host Names”, authored by Jon Postel of UCLA and dated September 22, 1971.

The technical content

This RFC is Jon Postel offering up an alternative to Peggy Karp's host mnemonic table in RFC-226. Postel's table has 37 entries compared to Karp's 20, and proposes 8-letter names for sites instead of Karp's 6-letter names.

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 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.

by Darius Kazemi, August 16 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.

Someone's been reading the code

RFC-228 is titled “Clarification”. It's by Dave Walden of BBN, and dated September 22, 1971.

The technical content

This RFC is a correction to RFC-70. There's an error in some source code provided by Steve Crocker, and Walden provides a missing line of code.

Analysis

When someone corrects your code like this, it can be a good thing. In this case it means that BBN was at least trying to read and maybe run some of Crocker's code!

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 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.

by Darius Kazemi, August 15 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.

Transfer speed

RFC-227 is titled “Data Transfer Rates (RAND/UCLA)”. It's by Heafner and Harslem of RAND and dated September 17, 1971.

The technical content

RAND has been using the Remote Job Service at UCLA. This RFC contains information on the speed of the RAND/UCLA connection for the service. They seem to be getting anywhere from 8-16 kbps sending to UCLA, and 14-19 kbps receiving.

They note that transfering data in 10x larger block sizes can result in a 2x speed improvement.

Analysis

Their network speed in 1971 was about equivalent to what I used to get on my shitty dialup connection in 1998.

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 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.

by Jim E. White, May 11, 1973

NOTE: This was transcribed from a scan at the Computer History Museum by Darius Kazemi (me) on September 18, 2019. The scan should be considered the “real” version of this document, but I decided I wanted a nice text version to refer to online. This is part of my research on early RFC documents and is related to RFC-226. If you like this kind of stuff, consider backing my Patreon!

The following are thoughts on the subject of host designation, prompted by Jean's (16331,1) and Jake's (16300,1).

Numeric Host Designations

A word about the terms 'site' and 'host'. I distinguish sharply between these two terms, and part of the confusion about designating hosts in the Network stems from their misuse.

A host is either a computer attached to an IMP, or the terminal-handling portion of a TIP.

A site, for my money, designates an installation at which an IMP is located.

The crucial point is that hosts bear a many-to-one relation to sites, since up to four host computers can be connected to a single IMP.

I recognize that it's a hopeless task at this point to try to get everyone speaking the same language, but I suggest that maintaining that distinction in your own mind will buy you much in the long run.

The following three numbers used in designating ARPANET hosts appear throughout the literature:

  1. IMP Number. Every IMP (and TIP) has an 'IMP number', assigned by BBN, and used by the IMPs themselves in intercommunication. IMP numbers fall in the range, decimal 0-63, and are unique within the Network.

  2. Host Number. Each host at each IMP has a number by which it's distinguished from the zero to three other hosts attached to the same IMP. Host numbers fall in the range, decimal 0-3, and are unique within the sphere of an IMP.

  3. Host Address or Network Address. IMP number and Host number are combined to form a Host or Network address:

Host address = IMP number + decimal 64 * Host number

That is, a host address can be constructed in an eight-bit field by storing the host number in the left-most two bits, and the INP number in the right-most six bits. Given the Host address, one can readily infer both Host and IMP numbers; and given both Host and IMP numbers, one can readily infer the host address.

Host addresses are what host systems (NCPs) use internally to designate other hosts in the Network, and are what are stored with standard host names and nicknames in the (TENEX) monitor's system tables.

A HOST ADDRESS, EXPRESSED IN DECIMAL, IS WHAT TIPS REQUIRE OF THE USER IN CONNECTING TO ANOTHER HOST.

The very existence of these three types of host designations (which appear primarily In BBN Report # 1822), and the fact that the names of these three designations are often misused, makes life much more complicated than it need be.

I recommend that the ONLY host designations that appear ANYWHERE but in the most esoteric, low-level Network specs (such as 1822) be HOST ADDRESS and STANDARD HOST NAME. This goes then, of course, for the Resource Notebook.

Alphameric [sic] Host Names

Standard host names, as originally defined back in '71 by Dick Watson (see — 7837,1), stand in one-to-one correspondence (forgetting nicknames) with Host addresses.

Some comments on Jake's memo (see — 16300,1).

  1. I believe that hosts DO care what their host names are. In fact, if one peruses the early dialog on this subject, one finds it was an EXTREMELY controversial issue.

  2. I think that host names in general DO follow a fairly coherent scheme. Dick Watson's early spec (see — 7837,1) declared that a standard host name be of the form: <site> - <host> Note here that the site-host distinction is crucial. <Host> was to describe either a suborganization (like 'ARC' in 'SRI-ARC'), or a project, or a machine (like '67' in 'LL-67', or 'TIP' in 'MITRE-TIP').

  3. About the suggestion that host names be: <site> - ['T / 'U] <host address> The purpose of host names is specifically NOT to provide a place where 'everything needed to address a site' can be stored. Host names should be a convenient, user-oriented way of distiguishing [sic] host computers. The fact that, at the lowest level, Network software employs numbers to designate hosts, is purely an artifact of the existing implementation of the Network, and is something that the human user should NEVER see or even know about.

It's relatively simple to remember a mnemonic (like #BBN-TENEX), but considerably harder to remember an arbitrary number (decimal 69). If one embeds host addresses within host names, then the user must remember BOTH. That's clearly the wrong way to go.

The fact that the human user in fact DOES, in some circumstances, have to know about host addresses, is largely (if not wholly) because TIP users have to use them (rather than host names) in connecting to other hosts. This is an artifact of the TIP's current core limitations, and should not become the forcing function in ANY discussion of host naming conventions.

My personal opinion about naming conventions is that there should be none (except for some common sense ones like imposing a reasonable upper bound on their length, and restricting them to printable, ASCII characters). It seems to me that it is perfectly appropriate for the NIC to have 'NIC' as it's [sic] official host name, if it so chooses, even though that name provides no information about the host's location or computer type. The Network is a network of resources, and, in general, the user should only have to call to mind the RESOURCE he desires, not its geographical location. I think that geographical location and machine type should more and more be suppressed whenever possible, not emphasized.

About Changing Host Names

It seems to me necessary that a host have the option of changing its host name. If machine names are embedded in host names, then a host MUST have this option if its machine changes. The name 'MITRE-TIP' is ludicrous if MITRE replaces its TIP wth a PDP-11.

I think I understand some of the unpleasant implications of a hostjname [sic] change — like obsoleted group names in Journal files, and a transition period during which many people don't know how to properly address that host — but it seems necessary nonetheless.

The system CAN, I think, help out here some. For example, the Ident system can retain a record of previous names and recognize them when given by the user.

Keeping Track

As I'm sure Jean North can attest, it's an almost impossible job to get hold of an accurate and complete list of host names and addresses. Even if that much WERE possible, 'FNWC', for example, doesn't meaningfully identify that host to the average user (or most anyone else).

There needs to be maintained at the NIC in its Ident file an accurate and complete list of Network hosts, containing for each:

  • It's [sic] standard host name
  • It's [sic] host address
  • A meaningful organization name
  • A physical location
  • A telephone number

This list should always be exactly that set of hosts which are actually and physically attached to the Network.

This requires cooperation from BBN and/or whoever else sees installations into and out of the Net. It requires that they contact the NIC when the status of the Net changes.

BBN should be requested to use standard host names in Report #1822, rather than the ad hoc and often cryptic character strings they currently employ.

Enter your email to subscribe to updates.