CS PAPERS DEEP-READ · PAPER 65

A Protocol for Packet Network Intercommunication (the origin of TCP/IP)

Vinton G. Cerf & Robert E. Kahn · IEEE Transactions on Communications · May 1974

中文 →

What did this paper do?

In 1974 two people — Vint Cerf and Bob Kahn — wrote a paper answering a question nobody then had a good answer to: how do you stitch several mutually incompatible networks into one network? Their answer later acquired a name you have certainly heard: TCP/IP. Every message you send from your phone and every web page you open still follows the rules laid down in this paper. The reason the internet is an inter-net starts here.

The pain of the old world

By the early 1970s there was more than one working network: the military research network ARPANET, a packet radio network that carried data over the air, a satellite network spanning the Atlantic. Each ran perfectly well inside itself, and not one byte could pass between them.

Think of railways: several countries each built one, but the track gauges differ, the ticketing differs, the signalling differs — so a train reaching the border simply stops. Networks differed even more. One could carry about a thousand bytes per packet, another barely a hundred. One guaranteed that whatever you handed it would arrive; another dropped things and never mentioned it. And each had its own way of writing house numbers.

The idea

The obvious move is to standardize: make every network adopt the same design. That road was closed — each network had its own owner, its own equipment and its own temperament, and nobody had the authority to make everyone start over.

Cerf and Kahn went the other way: nobody has to change anything. Just put a relay station at the border between two networks (they called it a gateway), and agree on one inner envelope that everybody recognizes.

Whatever you are sending goes into that common inner envelope, addressed in a format the whole internet understands. Whichever network it enters then wraps its own local envelope around the outside, in its own style. At the border the gateway strips off the local envelope and puts on a new one in the next network's style — and the inner envelope is never opened from one end of the journey to the other. Every network keeps speaking its own dialect; there is simply a translator at the border.

Then who guarantees delivery?

Here comes the stranger decision: the networks and gateways in the middle are not responsible for delivery at all.

They only try their best: deliver if they can, drop it when overloaded, never mind the order — and a gateway does not even remember how far along any given conversation is. It glances at the address and throws the packet onward. All responsibility sits at the two ends.

It works like mailing a stack of postcards: the sender numbers every card; the receiver writes back "I have everything up to number k"; and if that acknowledgement never comes back in time, the sender simply mails the unacknowledged ones again. The receiver also adds "I have room for N more, don't send faster than that" — that is the speed limit.

Why design it this way? Because a middle that remembers nothing can be simple and fast, and if one gateway dies you swap it out without disturbing conversations in flight. And whether everything actually arrived is something only the two ends can really know anyway.

What it made possible

This network of networks can grow outward without limit: build a new network and you need nobody's permission and no changes to anyone's existing equipment — hang a gateway off the side, honor that inner envelope, and you are in. Wi-Fi, 4G, fiber, satellite broadband are all networks invented decades later, and every one of them drops straight into the picture drawn in 1974.

One honest cost: this design places all trust at the two ends, and the paper contains no mechanism whatsoever against impersonation or eavesdropping — a great deal of today's internet insecurity traces back to a design written when everyone on the network knew everyone else and nobody was thought of as an adversary.

The one-line takeaway

Don't try to unify the networks. Put a translating gateway at each border, wrap the data in one inner envelope everyone recognizes, let the middle do its best and keep no records, and rebuild reliability at the two ends out of numbering, acknowledgements and retransmission — so any new network can join at any time. That is the internet.

Want the gateway and encapsulation diagrams, the address format, and the potholes it left behind? → Switch to the deep read