A Technical History of the ARPANET -
A Technical Tour
IMP-to-IMP
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:
- The finite delay and finite bandwidth, which were a property of
the circuits.
- Duplicate or lost packets, which were a property of the 'ack'
system.
- Disordering of packets, which was a property of the 'ack' system
and routing.
- The factors specific to the source IMP and destination IMP:
- Finite storage in the IMPs
- 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.