RFC-58

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

A big box of paper

RFC-58 is titled “Logical Message Synchronization”, and authored by Thomas P. Skinner of MIT's Project MAC.

The technical content

This document is primarily an attempt to urge the NWG to settle an unsettled matter. The matter in question is that of physical versus logical message boundaries. I'm a bit out of my depth here but I think I understand the basics and will attempt to summarize.

A physical message is a certain number of bits of data. Imagine a piece of standard office printer paper that can only hold so many typewritten characters: that piece of paper is the physical message. The paper may contain dozens of sentences, or it may contain the word “hi”, but one piece of paper is still one piece of paper and is the same size as another piece of paper from the same box.

The logical message is the actual information that is being conveyed. So a large piece of paper (the physical message) may contain a very short message like “hi” (the logical message). Or on the other extreme, a single logical message may span multiple physical messages (imagine an entire novel delivered over multiple pieces of paper).

Continuing the paper metaphor: assume we've put a bunch of paper documents in a cardboard box and mailed them to our friend. It is easy for the friend to see the boundaries of a physical message. The boundary is just the pieces of paper themselves. But where do we draw boundaries of logical messages? In our paper example we'd need to agree on some kind of notice to the reader that you've reached the end of my message. Maybe we type “END OF MESSAGE” at the end of our document, or maybe we number our pages 1 of 3, 2 of 3, 3 of 3. Maybe in case the pages get mixed up in the box with other documents, we need to put a unique ID on our document so that I can tell my 1 of 3 from someone else's 1 of 3. And so on.

Ultimately these solutions are rather technical but they actually boil down to the same kinds of solutions you'd use in an office filing system, and I won't belabor them here. The important bit of this document is at the end:

I have not intended to suggest a solution to the problem, but merely bring it to light. If we want to restrict logical messages to begin on physical boundaries we must plan this early in the game. (It probably works out that way in most cases anyway.) Other schemes can be tried later. We must, however, face up to this problem fairly soon.

Mostly, Skinner just wants everyone to agree on a solution as soon as possible.

Analysis

I think Skinner is right and they need to agree ASAP on a solution. I think he is also right when he says

I can think of several solutions to the problem at the moment. None of them seems to be very good.

I don't think there will ever be a good solution to this kind of problem. Just good enough. And that's okay.

Further reading

I've linked it here before, but this is a good background on MIT's Project MAC, which is where the Multics operating system was initially created.

This is Thomas Skinner's website.

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.