The History of TCP/IP

A shared gateway couples unlike network connectors in the history of TCP/IP.

Turn this article into takeaways for your work.

Each assistant summarizes the article only for you and suggests best practices for your work.

The problem was a seam. In the early 1970s the Advanced Research Projects Agency (ARPA) was funding packet radio and satellite networks beside ARPANET. Each had its own addressing, packet size and timing, as a Request for Comments memo and the paper below describe. Getting a message across the seam between them was the job nobody had solved.

TCP/IP began as a design that Robert Kahn and Vint Cerf worked out in 1973. It appeared in print in May 1974 and was split into two layers in 1978. It was issued as the Department of Defense standard (RFC 791 and RFC 793) in September 1981. ARPANET switched to it on 1 January 1983. The throughline: every step was a rule that let unlike networks cooperate without changing the networks themselves. The rules that survived were the ones people could already run.

For the bigger picture, see The History of the Internet, the Internet timeline and who invented the Internet. For the network that came first, see The History of ARPANET.

An older seam is a useful precursor, though not the concept itself. In 1865, representatives of twenty mostly European countries signed the first International Telegraph Convention in Paris on 17 May. The ITU's account says international telegrams could be subject to several sets of regulations that were not wholly uniform, and the new rules fixed a common charging system, a single monetary unit (the French franc) for tariffs, and Morse code and its instruments for international service. Nobody called that internetworking, and it carried no packets. But it was the same move TCP/IP would make a century later: leave each national system alone and agree on the rules at the border.

A few terms first. A "protocol" is an agreed set of rules for talking. A "datagram" is a self-contained block of data that travels on its own. A "gateway" is a machine that passes traffic between two networks (today we say router). TCP, the Transmission Control Protocol, makes a conversation reliable. IP, the Internet Protocol, only addresses and forwards.

Timeline at a Glance

Year Milestone Why It Mattered
17 May 1865 International Telegraph Convention signed in Paris A precursor: shared rules across separate national systems.
Dec 1970 Network Working Group finishes NCP ARPANET's first host-to-host protocol, built for one network.
Sep 1973 Kahn and Cerf's first written design, INWG#39, at Sussex The idea of one end-to-end protocol across networks goes public.
May 1974 Cerf and Kahn publish the paper in IEEE Transactions on Communications The design is on the record.
Dec 1974 RFC 675 specifies the Internet Transmission Control Program The first detailed specification.
15 Aug 1977 Postel's IEN 2 argues TCP is doing two jobs The case for splitting TCP from IP.
Jun and Sep 1978 IEN 40 and 41, then IEN 54 and 55, specify version 4 Separate TCP and IP specifications appear.
28 Aug 1980 RFC 768, the User Datagram Protocol Applications get IP without TCP's guarantees.
Sep 1981 RFC 791 and RFC 793 The standards the Internet still descends from.
Nov 1981 RFC 801, the NCP/TCP transition plan A date and a bridge for the switch.
1 Jan 1983 ARPANET moves from NCP to TCP/IP Every host changes at once.
Aug 1983 4.2BSD ships with TCP/IP The protocols reach the research community's everyday computers.
Oct 1986 First congestion collapse Scale exposes how TCP behaves under load.
Aug 1990 GOSIP due to become a federal procurement requirement The OSI challenge reaches its peak.
3 Feb 2011 IANA allocates its last five /8 blocks The central supply of IPv4 addresses ends.
Aug 2022 RFC 9293 replaces RFC 793 The original TCP specification is replaced after 41 years.

The NCP Years (1969-1972)

One network, one host protocol, and a limit nobody planned for

Early 1970 is a season of numbered notes about how a host should open a connection. The turning point is the first host-to-host protocol. RFC 33, "New HOST-HOST Protocol," was dated 12 February 1970 and carried the names of Steve Crocker, Stephen Carr and Vint Cerf. By June, RFC 54 was offering an official protocol for comment until 13 July, with a decision to follow. The Internet Society says the Network Working Group finished the Network Control Protocol, NCP, in December 1970, and that sites implemented it during 1971 and 1972.

NCP worked because ARPANET was the only network. The same history notes that NCP had no way to address networks or machines beyond the destination IMP, and that it relied on ARPANET for end-to-end reliability: if packets were lost, the protocol and the applications on it would come to a grinding halt. Its authors had assumed ARPANET would be the only network in existence. That assumption was fine for 1970. It fell apart as soon as ARPA funded a second kind of network. For the packet-network side of this story, see the history of packet switching.

For teams today: a protocol, like a process, inherits the assumptions of the world it was written in. Write down what yours assumes, because the day it stops being true is the day it breaks.

The Paper Years (1973-1977)

Two engineers write down how unlike networks could meet

In September 1973 the International Network Working Group met at the University of Sussex and received a document labelled INWG#39. The turning point is the idea of open-architecture networking, which the Internet Society's history credits to Kahn, who introduced it soon after arriving at DARPA in 1972, first as part of the packet radio program. Packet radio needed a reliable end-to-end protocol that could survive jamming and dropped signals, and NCP could not provide one. Kahn set four ground rules: each network stands on its own with no internal changes, communication is best effort with retransmission from the source, gateways keep no memory of individual flows, and there is no global control at the operations level.

In spring 1973 Kahn asked Cerf, then at Stanford and already experienced with NCP, to work on the detailed design. Their first written version went out as INWG#39 at Sussex in September 1973. The refined version appeared as "A Protocol for Packet Network Intercommunication" in IEEE Transactions on Communications, Vol. COM-22, No. 5, May 1974. Two sentences from its opening show the whole idea. The paper defines a protocol as a set of agreed upon conventions, and it lists four ways networks differ: addressing, maximum packet size, delivery timing, and how they recover from lost or damaged data. The answer was a common address scheme, a gateway between networks, and end-to-end checks at the hosts. In the paper, TCP stood for "transmission control program," not protocol.

By December 1974, RFC 675 by Cerf, Yogen Dalal and Carl Sunshine gave the first detailed specification. It credits Ray Tomlinson with the three-way handshake and initial sequence number selection, and it introduced ports and sockets: a socket name joined a network identifier, a TCP identifier and a port name so that it would be unique across all connected networks. DARPA then paid three teams to build it. The Internet Society records contracts to Stanford (Cerf), BBN (Tomlinson) and University College London (Peter Kirstein), and says that within about a year three independent implementations could interoperate.

Two design choices from this era caused trouble later. The first address was 32 bits, with 8 bits naming the network and 24 naming the host, because the planners expected only national-scale networks and thought 256 would do. And the original TCP bundled all transport and forwarding into one protocol. The Internet Society notes that Kahn had meant to support a range of services, but the first implementation allowed only reliable virtual circuits, which suited file transfer and remote login and did not suit packet voice.

For teams today: the first specification of anything bakes in a guess about scale. Note the guess, and revisit it before growth makes it expensive.

The Layering Fix (1977-1981)

Jon Postel splits one protocol into two

On 15 August 1977, Jon Postel of ISI circulated a short note. The turning point is IEN 2, "Comments on Internet Protocol and TCP." Postel wrote that TCP was being asked to do two things, serve as a host-level end-to-end protocol and serve as an internet packaging and routing protocol, and that this was violating the principle of layering. He proposed a separate hop-by-hop internet protocol, and used ARPANET as the analogy: hosts talk to hosts, while IMPs relay hop by hop under their own rules.

TCP delivery confirmation beside IP packet forwarding.

The documents followed within a year. The IEN index lists a Draft Internetwork Protocol Specification in February 1978 (IEN 28), then Postel's Version 4 specifications for TCP and IP in June 1978 (IEN 40 and 41), then revisions in September 1978 (IEN 54 and 55). The Internet Society describes the result: a simple IP that handles addressing and forwarding of individual packets, and a separate TCP for flow control and recovery from lost packets, plus an alternative for applications that don't want TCP's services. That alternative became the User Datagram Protocol, RFC 768, dated 28 August 1980.

Meanwhile the specifications moved toward standards. RFC 760, titled "DoD Standard Internet Protocol," is dated January 1980, and the Internet Society says TCP/IP was adopted as a defense standard in 1980. RFC 801 of November 1981 says the Department of Defense had "recently adopted" the internet concept and IP and TCP as standards. So the adoption date depends on the document: 1980 for the first DoD-standard specifications, late 1981 for the declared transition.

In September 1981, Postel edited the two documents that matter most. RFC 791, the Internet Protocol, says it is based on six earlier editions of the ARPA specification. It describes a "catenet," a system of interconnected packet networks, gives every host a fixed-length address of four octets (32 bits), and provides no mechanisms for reliability, flow control or sequencing. RFC 793, the Transmission Control Protocol, builds on nine earlier editions and contains one sentence that outlived the era: be conservative in what you do, be liberal in what you accept from others. Both were prepared by ISI for DARPA's Information Processing Techniques Office.

For teams today: split a process when one step is doing two jobs and neither job can change without disturbing the other. The test Postel applied is still a good one: can each part be replaced independently?

Flag Day and Berkeley (1982-1989)

A switch on one date, and a Unix release that carried it everywhere

In November 1981 a single date went into a memo: 1 January 1983. The turning point is RFC 801, Postel's NCP/TCP transition plan. It set the goal of a complete switch from NCP to IP/TCP by that date, asked every host organization to begin implementing by 1 January 1982, and designated relay hosts that spoke both protocols to bridge Telnet, FTP and mail in the meantime. Its milestones had the last NCP-only host starting conversion in January 1982 and finishing in November 1982.

A calendar, transition bridge and software case represent the planned 1983 TCP/IP migration and BSD distribution.

The Internet Society describes the move on 1 January 1983 as a "flag-day style transition," with all hosts converting at once or being left to ad hoc workarounds, planned carefully over several years, and it adds that the community handed out buttons reading "I survived the TCP/IP transition." RFC 2555 says the Internet protocols were mandated on ARPANET and other DARPA-sponsored networks in January 1983, and that SATNET converted before then. The Internet Society adds that the switch let the network split into MILNET, for operations, and ARPANET, for research.

What carried TCP/IP into everyday use was an operating system. Kirk McKusick's account of Berkeley Unix says DARPA gave Berkeley a new contract with the goal of integrating networking support so that machines could take part in ARPANET, and that Duane Adams of DARPA formed a steering committee that met from April 1981 to June 1983. When Rob Gurwitz of BBN released an early TCP/IP implementation to Berkeley, Bill Joy integrated it and tuned its performance. The release was named 4.2BSD, in August 1983, and within eighteen months more than 1,000 site licenses had been issued. Many Unix vendors shipped it instead of AT&T's System V because System V had neither networking nor Berkeley's fast file system. A Berkeley tutorial says the idea of the new interface was to make interprocess communication similar to file I/O, which is why a programmer could treat a network connection like a file. The Internet Society calls the move into a supported operating system one of the key elements in the protocols' spread.

Scale brought new failures. John Nagle's RFC 896 of 6 January 1984 named "congestion collapse," a risk when gateways joined networks of very different speeds. It arrived in practice in October 1986. Van Jacobson and Michael Karels wrote that throughput between two sites 400 yards apart dropped from 32 Kbps to 40 bps, and their 1988 paper put seven new algorithms into 4BSD's TCP. In October 1989, RFC 1122, "Requirements for Internet Hosts," gathered, corrected and supplemented the host standards. Local networks changed the address plan too: the Internet Society says the arrival of Ethernet and many small networks led to the three address classes (A, B and C). See the history of Ethernet and the history of DNS, which grew out of the same scaling problem.

For teams today: a flag day works when it has a date, a long run-up and a bridge. The version of this plan for your own systems is in the data migration cutover day checklist. And ship the change inside the tool people already use, as Berkeley did.

The Protocol Wars (1984-1995)

Standards committees meet running code

This era overlaps the last one and the next one, because the contest ran in parallel with TCP/IP's growth. The turning point is the international Open Systems Interconnection effort. ISO 7498, the OSI Basic Reference Model, was published on 30 September 1984. The US Government OSI Profile, GOSIP, followed. RFC 1169 records that the first version of GOSIP was published in August 1988, adopted as Federal Information Processing Standard 146 in February 1989, and due to become a federal procurement requirement in August 1990.

Some of the bridging came from engineers on the TCP/IP side. In May 1987, Marshall Rose and Dwight Cass wrote RFC 1006, which specified ISO transport service on top of TCP, offering a "graceful convergence and transition" from TCP/IP-based networks to ISO-based ones. And in August 1990, Cerf and K. Mills of NIST published RFC 1169 as the official view of the Internet Activities Board. It said GOSIP was not exclusive and that other protocols could be used in the same network. It also addressed a common misunderstanding that GOSIP required an immediate total move to OSI. The reasons it gave for why that was unrealistic were the large installed base of TCP/IP users, the limited deployment of commercial OSI products, and unfinished OSI standards for routing, network management and directory services.

What decided the contest was less a vote than a pile of working code and money. The Internet Society says NSF chose TCP/IP as mandatory for the NSFNET program under Dennis Jennings in 1985, and that the program's ecumenism and funding ($200 million from 1986 to 1995) meant that by 1990, when ARPANET was decommissioned, TCP/IP had supplanted or marginalized most other wide-area protocols. In a 1992 plenary talk, Dave Clark gave the IETF its aphorism: rough consensus and running code, as RFC 7282 recounts. By June 1996, the Internet Architecture Board could say that connectivity is its own reward, and that intelligence belongs at the ends of the network, in RFC 1958. The NSFNET backbone was defunded in April 1995.

One OSI idea did not die. When the IETF later looked for a successor to IP, one of the candidate proposals, TUBA, would have kept TCP and UDP but replaced IP with OSI's connectionless network protocol, as RFC 1752 records. It was not chosen: the Area Directors recommended a revised proposal from another working group.

For teams today: when a standard backed by procurement meets a tool already in use, build a bridge to the standard (RFC 1006 did) and let the installed base show what works. Mandates are strong, but running systems are stronger.

The Address Squeeze (1990-present)

Thirty-two bits were enough until they were not

This era overlaps the last, because the first warning came in 1990. In August of that year at the Vancouver IETF, Frank Solensky, Phill Gross and Sue Hares projected that the current rate of assignment would exhaust the Class B address space by March 1994, according to RFC 1752. The IETF began searching for a successor in late 1990 and formed the IPng Area in late 1993. In November 1991 it also formed the Routing and Addressing (ROAD) group, whose March 1992 report recommended adopting CIDR route aggregation.

A nearly empty address drawer and larger archive cabinet illustrate IPv4 exhaustion and IPv6 capacity.

The short-term fixes arrived first. RFC 1519, Classless Inter-Domain Routing, appeared in September 1993. In May 1994, RFC 1631 described the Network Address Translator and called CIDR the short-term answer to address depletion, with new protocols with larger addresses as the long-term one. The long-term one is IPv6. The IPng Area Directors' recommendation, RFC 1752 of January 1995, proposed a simplified header and a hierarchical address structure. It grew the address from 32 bits to 128. The specification was first published as RFC 1883 in December 1995, revised as RFC 2460 by Steve Deering and Robert Hinden in December 1998, and published as Internet Standard STD 86 in RFC 8200 in July 2017.

The old supply ran out on a schedule. At a ceremony on 3 February 2011, IANA allocated its last five /8 blocks of IPv4 space to the regional registries, after which the central free pool was empty. On 15 April 2011, APNIC reached its final /8. On 24 September 2015, ARIN reached depletion of its general IPv4 free pool and said it would keep satisfying IPv6 requests as normal. World IPv6 Launch took place on 6 June 2012, aiming to make IPv6 the default for providers, device makers and users. The shift is slow but real: Google's IPv6 statistics showed 45.59% of its users reaching it over IPv6 on 20 October 2026.

TCP itself is still being rewritten in place. RFC 9293 of August 2022 is a consolidated specification that obsoletes RFC 793 and several documents that had patched it. At the same time, the layer Postel split off is carrying new transports: QUIC, RFC 9000 of May 2021, runs over UDP datagrams, and HTTP/3, RFC 9114 of June 2022, runs over QUIC. The layering Postel argued for is part of why that is possible. For the application side, see API architecture, and for how email rides the same protocols, the history of email.

For teams today: any identifier space you create, from customer IDs to ticket numbers, has a run-out date. Decide the replacement plan while the old scheme still works, because the transition will take longer than the exhaustion.

Key People

Name Role Contribution Year
Robert Kahn DARPA program manager Conceived open-architecture networking and its four ground rules 1972-1973
Vint Cerf Stanford, later DARPA Co-authored the 1974 paper and led the RFC 675 specification team 1973-1976
Yogen Dalal and Carl Sunshine Stanford Co-authored RFC 675 1974
Ray Tomlinson BBN Credited with the three-way handshake and initial sequence numbers 1974
Jon Postel USC ISI Argued for the TCP and IP split; edited RFC 791, 793, 801 1977-1981
Steve Crocker UCLA Led the NCP effort that came before 1970
Bill Joy and Sam Leffler UC Berkeley Put TCP/IP and the networking interface into 4.2BSD 1981-1983
Van Jacobson and Michael Karels LBL and UC Berkeley Congestion control for TCP after the 1986 collapses 1986-1988
Dennis Jennings NSF Helped make TCP/IP mandatory for NSFNET 1985
Steve Deering and Robert Hinden IETF Authors of the IPv6 specification 1995-2017

Key Facts

The Pattern Behind the History

Five moves recur through the TCP/IP story. We call the sequence the Seam and Flag Pattern. It is our synthesis of the history above, not a research finding.

  1. Standardize the seam, not the networks. Kahn's first ground rule was that no network had to change internally.
  2. Write it down in the open, early. Drafts, IENs and RFCs let a design be argued over before it was frozen.
  3. Split when one layer does two jobs. Postel's note in 1977 turned one protocol into two.
  4. Ride the tool people already use. Berkeley carried TCP/IP inside an operating system researchers ran every day.
  5. Switch on a date, with a bridge. RFC 801 gave more than a year's notice and relay hosts, and the deferred limit (32 bits) became the next problem.

What It Teaches Teams Today

  • Agree on the interface, not the internals. Integrations succeed when each system can stay as it is.
  • Draft in public. Early, tentative documents drew the criticism that improved the design.
  • Split by job. If a component serves two purposes, it will be hard to change either.
  • Meet people where they work. Distribution mattered as much as design.
  • Announce the date and build the bridge. Flag days work with notice and a fallback.
  • Log your assumptions about scale. The early address-size guess took until 2011 to run out, and the fix is still rolling out.

For adjacent history, read Internet vs World Wide Web.

TCP/IP is a story of rules written at the seams, in public, by people who then had to run them. Ask which seam in your own systems is next to break, and whether the rule that spans it has been written down.

About the author

Victor Hoang

Victor Hoang

Co-Founder, Rework.com

Victor Hoang is Co-Founder and CMO of Rework. He spent 12+ years scaling B2B SaaS growth, building a lead engine that generated over 1 million leads and $10M+ in annual recurring revenue. Today he builds AI agents and MCP servers into Rework's products to empower customers across growth and operations. He writes about what actually works.