LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Retrorfctcpvint-cerfinternet-historysocketsarpanet

The 1974 TCP Spec, RFC 675, Says "Internet" Only in Its Title and Explains Sockets as a Mail-Order House's Post Office Box

Vinton Cerf, Yogen Dalal and Carl Sunshine's December 1974 RFC 675 is headed "Specification of Internet Transmission Control Program," while every sentence underneath says "internetwork" and describes data as letters, fragments and gateways.

Chris, sculpted in red sealing wax, stands at a wall of small post office boxes and slides a letter cut into three pieces into one open box.
Illustration: LockerGnome

The word sits at the top of the page in capitals: “SPECIFICATION OF INTERNET TRANSMISSION CONTROL PROGRAM.” The running header on every page shortens it again, to “Specification of Internet TCP.” Then the first sentence of the introduction goes back to the long form, calling the thing “the internetwork Transmission Control Program [TCP],” and the body never uses the short word on its own.

The vocabulary underneath is the post office’s. “Processes exchange finite length LETTERS as a way of communicating,” the spec says, and a letter too long to send “must be broken into FRAGMENTS.” Each fragment rides in an “INTERNETWORK PACKET,” which rides in a “LOCAL PACKET” for the network it’s on. When a packet reaches a “GATEWAY” between networks, it’s unwrapped, rewrapped for the next network and passed on, and the gateway may chop the fragment smaller on the way.

Section 2.1 is titled “The TCP as a POST OFFICE,” and it holds the spec’s best image. A service doesn’t know in advance who will write to it. “The analogy can be drawn with a mail order house which opens a post office box which can accept mail from any source,” the authors wrote. Then the analogy breaks on purpose: “once a letter from a particular correspondent arrives, a port becomes specific to the correspondent until the owner of the port declares otherwise.”

The socket is defined two paragraphs earlier, as an address built to survive many networks at once. Port names get picked by each operating system and may clash, so the spec glues on “a NETWORK identifier, and a TCP identifier” to make “a SOCKET name which will be unique throughout all networks connected together.” A socket of all zeros is “UNSPECIFIED,” a “general delivery” slot for logger-type services.

The acknowledgments credit Ray Tomlinson for the “three way handshake and Initial Sequence Number Selection,” and the authors thank their helpers for good ideas that had “a beneficial effect (we hope) on this protocol design.” What the spec never explains is why the title took the short word and the sentences didn’t.

Fifty-two years on, the long word is what people forgot and the short one is what they kept. The spec reads like people describing a thing that didn’t exist yet in terms of the thing that did, which is why it’s full of letters and post boxes and why “socket” was, in its own words, “borrowed” from ARPANET terminology. It’s a document where the future vocabulary is already in the header and the present one is still doing all the work in the paragraphs.

More Retro

Every Retro story →