A Technical History of the ARPANET -
A Technical Tour
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
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.
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.
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
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
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