The Birth of the Internet:
Bob Kahn had for some time during the development of the IMP been worrying about congestion in the network. He theorized that the flow control algorithms would, in some circumstances, allow the queues in an IMP to fill to capacity, causing upstream IMPs to in turn fill their queues. Such cascading congestion would cause the network to lock up. But his colleagues at BBN, despite Kahn’s nagging, were too busy with engineering to spend time on abstractions. They just wanted to get the network up and running; refinement could come later.
So in January 1970, after the first four sites were up, Kahn made a trip to the NMC to test his theories. There he met Vint Cerf, who along with Crocker, Postel, and others helped with the testing. In Cerf’s words: “Bob came out to UCLA to kick the tires of the system in the long-haul environment, and we struck up a very productive collaboration. He would ask for software to do something, I would program it overnight, and we would do the tests.
Kahn was able to easily push the fledgling ARPANET into congestive failure in exactly the ways he predicted. He returned to Cambridge with his theories vindicated, and the problems were quickly corrected. But much more significantly, a collaborative friendship with Vint Cerf had begun; within a few years, that friendship would have a profound impact on networking.
Larry Roberts had for some time been interested in packet radio networks; the military applications were obvious. Kahn moved from BBN to DARPA in 1972, and Roberts put him to work studying packet radio networks. Kahn began looking at a network called ALOHANET.
In 1969, ARPA had funded an experimental packet radio network at the University of Hawaii, directed by Professor Norman Abramson. ALOHANETconnected sites spread around the Hawaiian Islands to a central time-sharing computer on the U of H campus. Abramson whimsically named his version of an IMP Menehune (a mischievous Hawaiian elf). ALOHANET users could connect to the ARPANET through a TIP attached to the Menehune. But this access through the TIP meant that from the ARPANET perspective ALOHANET was just a terminal connection. Kahn was interested in finding a way to make ARPANET and ALOHANET, or any diverse networks, full peers with transparent access between hosts. From this, DARPA’s Internetting Project was begun to explore open network architectures.
While this was happening, the first public demonstration of the ARPANET at the ICCC that Kahn had organized took place in October 1972. At that event, a new working group called the International Network Working Group (INWG) was organized. Several packet switching projects had sprung up in Europe, and the mission of the INWG was to find a way to connect ARPANET and these other diverse networks, making an international network of networks. Vint Cerf was the INWG chairman.
Cerf and Kahn began a lengthy series of discussions to find a solution to their mutual challenges. Their model was an internetworking of the ARPANET with a packet radio network and a satellite network (SATNET)each of which used different protocols and different interfaces, optimized for that particular network’s needs.
Early in 1973, Cerf proposed linking the three networks by adding a routing computer he called a “gateway” between each network. The gateway would understand the protocols and procedures of each of the attached networks and be able to pass packets between them by providing the correct interfaces, procedures, and packet encapsulations to each connected network.
But there were other challenges. ARPANET was designed for a very high degree of reliability, and NCP depended upon that. Packet radio and satellite links could not guarantee that kind of reliability. Another problem was addressing. NCP addressed only next-hop nodes, something like modern MAC addresses, and could not address on a widermuch less globalscale. Also, each network had its own maximum packet sizes, and adjusting packet sizes from one network to another was required. So Kahn undertook the development of a new host-to-host protocol with global addressing, the ability to recover from lost packets, fragmentation and reassembly, end-to-end checksums, and host-to-host flow control. He asked Cerf, who was by this time a professor at Stanford University, to help because of his experience designing NCP. Cerf ran a series of seminars at Stanford for students and visitors to discuss and challenge their ideas as they formed.
Cerf and Kahn presented their first version of the new protocol at a meeting of the INWG at Sussex University in the United Kingdom in September 1973. They called it the Transmission Control Protocol (TCP).
Over the next five years, the protocol went through four iterations, with modifications such as the addition of a three-way handshake and a lengthening of the address from the originally proposed 24 bits to 32 bits. The term datagram also comes into usage during these modifications.
The first demonstration of the new protocol came in July 1977. A van driving on the San Francisco Bayshore Freeway was linked into a packet radio system, which linked through a gateway to the ARPANET. The ARPANET was then linked through another gateway to a point-to-point transatlantic satellite link to Norway and then by land line to the University College London. Packets then recrossed the Atlantic on another SATNET link, and back through the ARPANET to a host at the University of Southern California’s Information Sciences Institute (ISI). Cerf writes, “Since the Defense Department was paying for this, we were looking for demonstrations that would translate to militarily interesting scenarios. So the packets were traveling 94,000 miles round trip, as opposed to what would have been an 800-mile round trip directly on the ARPANET. We didn’t lose a bit!”
In August 1977, Jon Postel wrote: “We are screwing up in our design of internet protocols by violating the principle of layering. Specifically we are trying to use TCP to do two things: serve as a host level end to end protocol, and serve as an Internet packaging and routing protocol. These two things should be provided in a layered and modular way.” Postel proposed moving the hop-by-hop portion of TCP into a separate protocol called Internet Protocol (IP). In the same paper, he proposed the IP header as we know it today. Cerf and Postel then wrote the specifications for splitting TCP, and TCP/IP came into being. User Datagram Protocol (UDP) was then specified by Postel to provide direct access to IP, when best-effort service is desired.
In 1980, the U.S. military adopted TCP/IP as a networking standard, and a “flag day” transition from NCP to TCP/IP was scheduled for the ARPANET on January 1, 1983. The transition went reasonably smoothly, and marks the beginning of the Internet and the beginning of the end for the ARPANET.