THINK Home Digital Archive Search Feedback




A Technical History of the ARPANET -
A Technical Tour


Overview of IMP-to-IMP protocols

Details of IMP-to-IMP protocols

According to ARPANET designers, the key to the design of the IMP was defining a relationship between the IMP subnet and the Hosts to partition responsibilities so that reliable and efficient operation would be achieved. The decision was made to build an autonomous subnet, independent (as much as possible) of the operation of any Host.

The message transmission procedures of the subnet grew out of the ARPANET designers assessment of factors central to the message processing plan they had developed. The factors fell into two categories:

  • Factors describing the store-and-forward subnetwork, which affected any IMPs along the path between the source Host and destination Host, including the source IMP and destination IMP
  • Factors specific to the source IMP and destination IMP

It is important to distinguish between the IMPs of the store-and-forward subnetwork and the source and destination IMPs. In any Host-to-Host connection, the IMPs at the respective Host sites were the source and destination IMPs for that connection, and the IMPs in the network path between the Host sites comprised the store-and-forward subnetwork. The IMPs of the subnetwork received packets, performed error control, determined the route and forwarded them to the next IMP in the network path. In addition to these tasks, the source IMP and destination IMP were responsible for end-to-end connection management and message processing procedures for the duration of the connection. These procedures included flow control, storage allocation and message fragmentation and reassembly.


Factors dictating the message processing requirements:
  • The factors describing the store and forward subnetwork:
    1. The finite delay and finite bandwidth, which were a property of the circuits.
    2. Duplicate or lost packets, which were a property of the 'ack' system.
    3. Disordering of packets, which was a property of the 'ack' system and routing.
  • The factors specific to the source IMP and destination IMP:
    1. Finite storage in the IMPs
    2. Differing bandwidths at the source and destination, which was largely a property of the Hosts.

Factor 1:
The finite bandwidth warranted pipelining the messages through the network by breaking them up into packets in order to decrease delay. Using a fragmentation and reassembly procedure, the source was able to forward the first packets of the message through the network ahead of the later ones while the destination stored the packets and reassembled the message.

Factor 2:
Error control procedures were implemented to deal with duplicate and missing packets. Duplicate packets were generated when an IMP would receive a packet, forward it to the next IMP and go down before sending an acknowledgement. The previous IMP would then retransmit a duplicate packet. Packets were lost when an IMP would receive a packet, send an acknowledgement and go down before successfully forwarding the packet to the next IMP.

Factor 3:
Disordering of packets could result from packets being routed along different paths in the subnetwork, causing them to arrive out of order at the destination. The ARPANET designers realized the need for a sequence number technique at the destination to deliver messages in the correct order and to keep packets in order within messages.


To explore further, tour the details of the IMP protocols:

  • Protocols specific to just the source IMP and destination IMP
  • Protocols specific to all IMPs:
    • Interface Message Processor -- General description of IMP hardware and software.
    • Addressing - Accomplished with routing tables.
    • Routing - Used a distributed adaptive routing algorithm.
    • Error Detection - Used checksums, RFNMs and sequence numbers to detect bit errors, duplicate and missing messages.
    • Error Recovery - Used watch-dog timer for hardware recovery, and retransmission of messages to recover from damaged, missing or duplicate messages.
    • Communication - Packets are sent delimited by synchronization and checksum information.




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