Celebrating the Birthday of the Internet
January 1, 1983, the Cutover from NCP to TCP/IP
As the first of January, 2003 approached, several news accounts and posts appeared on the Internet heralding New Year's Day as the 20th birthday of the Internet. This was the anniversary of the cutover on the ARPANET from NCP (Network Control Protocol) to TCP/IP (Transmission Control Protocol/Internet Protocol).
The ARPANET had been created to prove large scale feasibility of the technology of packet switching. On January 1, 1983, the host computers on the ARPANET were required to complete their transition from the protocol NCP to the TCP/IP protocol. Ten months later, in October 1983, the ARPANET would be split into two different networks, the ARPANET and MILNET, communicating across gateways (now called routers). These developments marked the change from the ARPANET as a single network, connecting different computers and operating systems, to TCP/IP enabling host computers on the ARPANET to communicate with host computers on other networks, as an Internet.
Ten years earlier, the need was recognized for an architecture for a computer communications system to connect diverse computer networks. By 1973, researchers in several countries were creating or planning to create their own packet switching networks. In Great Britain, researchers were working on the NPL network. In France, on Cyclades. In Norway, researchers had agreed to collaborate with US and British researchers to create a protocol to link networks in their different countries via a packet satellite network. The design of the host protocol of the ARPANET had not provided for linking it to different networks.1 Researchers working on networks in different countries recognized the need to create a means for the interconnection of diverse networks. These networks would differ technically, politically, and administratively depending on the requirements of the sponsors of each network.
In response to this challenge, a number of researchers discussed and worked on the problem. In the U.S. Robert Kahn had helped to design the ARPANET as part of the Bolt Beranek and Newman (BBN) team creating the ARPANET's IMP subnetwork. In November 1972, Kahn left BBN and went to work at the Information Processing Techniques Office (IPTO), the office in the U.S. Department of Defense's Agency known as ARPA, which provided leadership for computer and networking research in the U.S. In 1972, before coming to IPTO, Kahn had written a memo about his thinking about a communications-oriented set of operating system principles titled "Communications Principles for Operating Systems."2
Kahn had been thinking about a new networking architecture, an architecture he was to call "open architecture." This architecture would make it possible for diverse networks to be interconnected. The NCP protocol relied on the ARPANET's IMP subnetwork to do the communication functions like breaking messages into packets, routing the packets to their destination, flow control, error checking, and reassembling the packets. NCP made it possible to take a user's message from a host computer and transmit it to the IMP subnetwork for processing and transmitting to the destination IMP. The reassembled messages would be passed to the destination host computer and delivered to a user. Since it would not be possible to rely on an IMP subnetwork, when transmitting messages between diverse networks, NCP was not adequate for the challenge of connecting networks. Kahn was planning to take over the packet satellite program at IPTO called SATNET and to create a packet radio program. NCP would not be adequate for the challenge of connecting such diverse packet switching networks, as Kahn explains:
"Well, for starters NCP addressed a particular output line on the ARPANET. If that line went to another network, how would one further specify the end user or his/her machine. Thus the need for global addressing and hence IP..... NCP assumed everything sent would arrive and be reassembled by the net before the next message would be sent. If this did not happen, something was broken....In a packet radio mode, for example, packets could be lost for many reasons. Jamming, in a tunnel, behind a mountain, etc. Further, gateways (now called routers) could overflow and lose packets. Then there are the other network variations - different packet sizes, etc. lead to resizing packets to fit, possibly generating duplicates via different routes - all of which has to be sorted out at the destination host. NCP didn't know anything about this."
In his PhD thesis, Robert Metcalfe, who invented ethernet, enumerates some of the issues that Kahn had identified to create the architecture for the Internet and for the protocol that would make an Internet possible. Metcalfe writes:
Among these issues were optimal packet and message size, message fragmentation and reassembly, flow and congestion control, naming, addressing, and routing, store-and-forward delay, error control, and the texture of interprocess communication.
Robert M. Metcalfe, Packet Communication, Peer-to-Peer Communication, Inc., San Jose, 1996, page xx
While many of these issues had been taken up in terms of creating a single network by BBN when it designed the IMP subnetwork on the ARPANET, they could be taken up in different ways on each of the other networks that would be part of an Internet. An internetworking protocol would have to provide for the differences among the networks.
An internetworking protocol would need to be a communications protocol. As such it would specify where in the software and hardware to do flow control, error checking, to break a message into packets in the sending host computers, to provide for packet reassembly in the destination host computers, to provide a means of addressing computers on other packet networks and other needed functions. The protocol would specify the role for the gateways. These were the issues to be resolved to create an Internet.
In 1973, Kahn asked Vinton Cerf to help him with the design of a protocols. By September 1973, Bob Kahn and Vint Cerf were able to present a draft paper for the philosophy and design for such a protocol which has subsequently become known as TCP/IP. In May 1974, their paper was published in the IEEE Transactions on Communications. The title of the paper was "A Protocol for Packet Network Intercommunication".3
A 10 year period followed during which a number of researchers from the U.S. collaborated with researchers from Great Britain and Norway to create TCP/IP implementations. Researchers from other countries made contributions to the process, particularly French researchers. By 1982, there were working implementations of TCP/IP for different computers and operating systems. January 1, 1983 was set as the target date to change the protocol on the hosts on the ARPANET from the old protocol NCP to the Internet enabling protocol TCP/IP. A significant documentation of these milestones has been created on the mailing list called the TCP/IP Digest.4
The essence of the ARPANET, when NCP was its protocol, was the connection of computers. The essence of the Internet is the connection of networks, not of computers. While the transition to TCP/IP on the ARPANET may not appear to be a significant development, the cutover from NCP to TCP/IP was a necessary first step for the ARPANET hosts to participate in the Internet. The basis was now set for hosts on the ARPANET to connect via gateways to TCP/IP enabled hosts on other networks.
The change from one big packet switching network under the control of one administrative or political structure to an open architecture allowing for communication among dissimilar networks under diverse forms of political or administrative structures, is the change that has made it possible to have an international Internet today.
January 1 is indeed an anniversary for the Internet deserving celebration.5