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


RFC-171 is titled “The Data Transfer Protocol”. It's authored by Abhay Bhushan, Bob Braden, Will Crowther, Alex McKenzie, Eric Harslem, John Heafner, John Melvin, Dick Watson, Bob Sundberg, and Jim White. It's dated June 23rd, 1971.

The technical content

RFCs 171 and 172 form a pair. This RFC, 171, describes something called the “Data Transfer Protocol”, which is a low-level protcol for transferring data. It is essentially the file transfer protocol proposed in RFC-114 but without file system specific stuff, so it can be used for any sort of data transfer, not just files.

RFC-172 will be based on this document and will add the file system specific stuff on top of it.

DTP offers three operating modes.

  1. A bit stream that simply opens a connection, sends bits, and then closes the connection.
  2. A “block” transaction that begins with a transaction type byte and ends with a special series of character codes denoting the end of a transaction
  3. A count transaction that begins with a header containing the length of the data in the transaction. This is exactly the mode described in RFC-114 under the “Transactions” section.


This is a weird proposal that seems very design-by-committee, and each of the operating modes seems like it needs to be its own protocol. It really looks like half the RFC is just an abstraction of the FTP proposal in RFC-114, and then it has operating modes 1 and 2 (bit stream and block mode) kind of bolted on to it.

I suppose one reason this could be good is that there are error codes shared among all three operating modes.

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.