365 RFCs

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

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

File Transfer Protocol revisions

RFC-265 is titled “The File Transfer Protocol”. It's dated November 17, 1971. It's authored by Bhushan, Braden, Crowther, Harslem, Heafner, McKenzie, Melvin, Sundberg, Watson, and White.

The technical content

This RFC is an update to RFC-172, which is the specification for the File Transfer Protocol. As in RFC-264, the authors include an overview of exactly what was changed in this revision. Unfortunately some key information is missing from the transcription so I had to go digging.

Basically they added a “create file” request and an “append to file and create if it doesn't exist” request, which addresses some of Braden's concerns in RFC-238. There are also new error codes related to those new requests.

Analysis

This is a pretty straightforward revision of the FTP spec, not too much to see here if you've already read RFC-171.

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

Data Transfer Protocol revisions

RFC-264 is titled “The Data Transfer Protocol”. It's dated November 15, 1971. It's authored by Bhushan, Braden, Crowther, Harslem, Heafner, McKenzie, Melvin, Sundberg, Watson, and White.

The technical content

This RFC is an update to RFC-171, which is the specification for the Data Transfer Protocol. Recall that the Data Transfer Protocol is a generic protocol for moving chunks of data across the network that is intended to power other protocols like FTP, which tend to handle things like file systems.

This is a long RFC but thankfully the authors include an overview of exactly what was changed in RFC-171!

The sequence number fields are now all 16 bits long. This addresses Brodie's complain in RFC-250 about ambiguity of field length. It also does not reduce the field length to 8 bits as Brodie suggested, which I believe is entirely the right call.

Information separators now have a sequence number, which addresses Braden's concern in RFC-238.

The modes-available transaction is no longer sent in simplex connections and have been simplified to only advertise receiving modes. This also addresses Braden's concern in RFC-238.

Information separators and error messages now tell you their associated sequence number, which I think is intended to address the objection from both Braden and Brodie that you can never tell when you've received a complete message. The idea is that a full message will end with a separator, so if you don't get the separator at the end of your file, and in particular if you know the file starts at sequence 10, and you get a separator at 14, but only have messages 10, 11, 12, and 14, you know you haven't received the whole message.

Analysis

I doubt the authors of this RFC expected that writing their TL;DR would save the time of some random guy writing 50 years in the future but they absolutely did and I'm grateful for it.

Also I'm impressed that they quickly (within about a month) and efficiently addressed nearly every concern brought to them about this protocol.

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

Long distances

RFC-263 is titled “'Very Distant' Host Interface”. It's authored by Alex McKenzie of BBN and dated December 17, 1971.

The technical content

Recap time: the ARPANET consists of host computers conencted to Interface Message Processors (IMPs). Each IMP is its own computer that is sort of like combination routers and modems that connect you to a network of all the other IMPs. Physically speaking, this means that a host site, like UCLA, would have an IMP installed on site, and any network-enabled computers would be hooked up to the IMP via wires.

The IMPs are pretty close to the computers they serve. The wired connections are usually not more than 2,000 feet long. The (simplified) reason for this short distance is that the longer your wires are, the more chance there is of interference and other natural phenomena to introduce errors in your transmission.

In this RFC, McKenzie presents a design for a longer-distance connection that meets these criteria:

  • low amount of natural error introduced over the wire
  • decent bandwidth
  • should be able to carry on multiple connversations over one connection

The connection will use something called a cyclic redundancy check (CRC). I'm not an expert in this stuff but it seems to me like a souped-up checksum, and like a checksum it's used for error detection. The IMP will retransmit messages where errors are detected.

The host computer's Network Control Program (or perhaps some specialized hardware) will need to provide the same level of CRC and retransmission functionality.

The design is preliminary but this RFC is a kind of early warning to the Network Working Group that these changes are in the works and comments are, well, requested.

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

Not issued

RFC-262 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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

Not issued

RFC-261 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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

Not issued

RFC-260 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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

Not issued

RFC-259 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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

Not issued

RFC-258 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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, September 14 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.

Not issued

RFC-257 was never issued. It's part of a run of six unissued RFCs from RFC-257 to RFC-262.

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, September 13 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.

IMP tests you

RFC-256 is titled “IMPSYS Change Notification”. It's authored by Bernie Cosell of BBN and dated November 3, 1971.

The technical content

This notification says that a new version of the IMP will be installed soon. There is an increase in the amount of time a host has to wait after connecting to an IMP before sending messages over the network, and the IMP can now remotely test a host connection under the direction of the Network Control Center at BBN.

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.

Enter your email to subscribe to updates.