THINK Home Digital Archive Search Feedback




A Technical History of the ARPANET -
A Technical Tour


Historical Overview

The ARPANET was the first truly successful large scale packet-switched network. It was a project that would have far reaching effects and change the way humans interact. The results of the ARPANET pioneers can still be felt today in the form of the Internet. Reliability and efficiency were the core foci of the founders of the ARPANET. These same principles guide engineers in the area of network design today.

ARPA, the Advanced Research Projects Agency under the Department of Defense, was formed by President Eisenhower during the first couple of months of 1958 in response to the Soviet's launching of the first Sputnik in October, 1957. Popular opinion once held that the ARPANET was built in direct response to nuclear threat. This is not true. It's design was built around reliability and redundancy so as to allow communication to continue between major nodes in the case of an attack, but was not originally designed under the threat of nuclear war.

ARPA awarded the contract to build the switch to this large scale computer network to Bolt Beranek and Newman (BBN), a small company based in Cambridge, Massachusetts. This switch was called the Interface Message Processor, or IMP. The "IMP Guys", as the six engineers at BBN dubbed themselves, developed the first IMP in only nine months following the contract award. The first IMP was installed at UCLA. Future IMPs followed at a rate of about one a month following the initial installation. Protocols were developed and many accidental discoveries were made along the way, including email.


Technical Overview

The ARPANET's purpose was to provide fast, reliable communication between heterogeneous host machines. "The goal of the computer network is for each computer to make every local resource available to any computer in the net in such a way that any program available to local users can be used remotely without degradation." [Computer network..., Roberts]  To accomplish this goal, ARPA determined that the use of the currently established line switching facilities would be economically and technically inefficient. Unlike the line switched network, the ARPANET would be a message switched network. The ARPA network is designed so that messages may traverse any of several paths to reach their destination. The path a message takes from source to destination is not established in advance; each message simply holds the address of its destination. In the ARPA network, each node stores a copy of the message until it is safely received at the following node (a store and forward system). This design requires that certain problems must be dealt with, such as "routing, buffering, synchronization, error control, reliability, and other related issues." [The interface..., Heart]  ARPA decided to place small, identical processors at each node, then connect these processors to leased common-carrier circuits to form a subnet. The research computers at each node would be connected to these identical processors, which are called Interface Message Processors, or IMPs.

Other goals were laid out before any work on the ARPANET even began. All of the goals mentioned here were documented in ARPANET/IMP Software History [Levin, 1978]. The ARPANET was designed to have a reliable communications subnetwork. It was to have a transmission delay between hosts of less than second. Hosts will transmit messages, each with a size up to 8095 bits. The IMPs will segment messages into packets, each of size up to 1008 bits. These packets will be transmitted in parallel via routes determined by a distributed adaptive routing algorithm to reduce delay. All of this is described in their sections in the tour.

Because of the IMPs, the ARPANET can be thought of as two distinct parts. The first being the IMP subnet and the second being the protocols and "sensible utilization" [The interface..., Heart] of the subnet by the hosts. The IMP subnet provided an invisible means of transmitting messages from a source host to a destination host.

ARPANET Architecture Overview
A plausible layout of the ARPANET
Hosts and terminals "talk" with each other via the IMP-subnet.

Hosts communicate with each other via messages.  The IMP-subnet provides the illusion that the hosts are talking directly to one another.  When a host sends a message, it is broken down into packets by the source IMP (which is the IMP directly attached to the host).  The IMP then routes each packet, individually through the IMP-subnet, to the destination IMP.  Each packet will be sent along the path which is estimated to be the shortest, and the path taken by each packet may be different.  The destination IMP, upon receiving all packets for a message, will reassemble an exact replica of the original message and forward the message on to the destination host.  The following picture presents an overview of message/packet communication, details are left out.

Click on the component you are interested in.



The structure of the ARPANET logically appears as a layering of protocols. These protocols would be the IMP-IMP (not shown in the diagram), the Host-IMP, and the Host-Host protocols.

The way that processes within the hosts communicated with one another through the network was known as the "host to host protocol". The host to host protocol was the second level protocol above the Host-IMP protocol. This protocol was implemented by the NCP (network control program) which was part of a host's operating system. The NCP was responsible for connection establishment, connection termination and flow control. "NCP" eventually became synonymous with the host to host protocol. The NCP was the first transport layer protocol of the ARPANET (TCP later succeeded it). Links were used for exchanging information about connections. Specific links were designated. For example, link 1 between each pair of hosts was originally designed as the control link (later became link 0). The control link allowed the NCP to accomplish its functions. Every connection had a control link. Traffic (messages) on the control link consisted only of control commands. Multiple commands were allowed to be sent at one time. Another major task of the NCP was to break down the interprocess communication into messages. These messages were then sent to the NCP of the receiving host where the receiving NCP would put back together the messages into the original interprocess communication.

The way the host and IMP communicated was considered the host-IMP protocol. A host wishing to send messages to another host would send the messages to its IMP. The intermediate IMP would handle the nitty-gritty of sending actual data. The destination IMP would then send acknowledgements back to the host on the status of the messages. If a message was successfully received by the destination host, the destination IMP would send a RFNM (ready for next message) and if a message was lost in the network the destination IMP would send an incomplete transmission message. The destination IMP was responsible for the reassembly of the received packets into the original message and sending that fully assembled message to its host.

The IMP-IMP protocol is quite possibly the most interesting of the three mentioned here. This protocol was responsible for routing of packets, error detection, error recovery, and flow control (via a sliding window protocol), among other things. This "protocol", along with the other two, are given more attention on the tour page.




Written by the THINK Protocols team, CS Dept, UT Austin
Please direct comments to Chris Edmondson-Yurkanan.