A Protocol for Packet Network Intercommunication
One common protocol to weave separate networks into a single internet.
Before this paper there were networks; after it there was the internet — one set of rules that lets every separate network behave as one.
The idea, unpacked
By the early 1970s several packet-switched networks existed — the ARPANET, packet radio, satellite links — but each was an island with its own rules; a computer on one could not talk to a computer on another. Cerf and Kahn's idea was not to merge them but to leave each alone and lay a common language on top.
Break every message into small numbered packets, let any network carry them however it likes, and have the two end computers take responsibility for putting the pieces back in order and asking again for anything lost. The networks in the middle can stay simple and even unreliable; the cleverness lives at the ends.
Where it came from
Bob Kahn, who had helped build the ARPANET, brought the internetworking problem to Vint Cerf at Stanford in 1973; over a draft famously sketched in a San Francisco hotel lobby they worked out the design and published it in 1974. It drew on a wide community — packet switching from Paul Baran and Donald Davies, the 'datagram' from Louis Pouzin's French CYCLADES network — and was refined for years by an international working group. On 1 January 1983 the ARPANET switched over to it, and the internet as we know it began to run.
Why it mattered
The genius was where they put the smarts. Keep the networks in the middle simple and best-effort — allowed to drop or jumble packets — and make the computers at the ends do the careful work of ordering and re-requesting. That one decision is why the internet could grow without anyone's permission: any new network, any new kind of link, just had to speak the common header at its edge, and it was in. The web, email, streaming, and video calls all ride on the design laid out here.
A way to picture it
Think of mailing a long letter as a stack of numbered postcards. You drop them in the post; some take fast routes, some slow, a few get lost, and they arrive jumbled. The reader at the other end lays them out by number, sees that card 5 never came, and sends back a note: 'resend 5.' Once every number is present, the letter reads in order. The postal system never had to understand your letter — that is exactly how TCP treats the network. Try it in the widget below.
Where it sits
This is a third pillar of the information age, beside Shannon's bit (shannon-1948) and the stored-program computer (von-neumann-1945): Shannon showed how to measure and protect a message, von Neumann how to build the machine, and Cerf and Kahn how to make the machines talk to one another across any network. Public-key cryptography (diffie-hellman-1976) and Bitcoin (nakamoto-2008) are later layers built on top of the internet this paper made possible.
A protocol that supports the sharing of resources that exist in different packet switching networks is presented.
The protocol provides for variation in individual network packet sizes, transmission failures, sequencing, flow control, end-to-end error checking, and the creation and destruction of logical process-to-process connections.
Some implementation issues are considered, and problems such as internetwork routing, accounting, and timeouts are exposed.