Table Of ContentChapter 24 messagecarries an address. In this domain the project portends a
possible major change in the character of data communication
services in the United States.
The Interface Message Processor In a nationwide computer network, economic considerations
for the ARPA Computer Network^ also mitigate against a wideband leased line configuration that is
topologically fully connected. In a non-fiilly connected network,
messages must normally traverse several network nodes in going
F. E. Heart / R. E. Kahn / S. M. Omstein / from sourcetodestination. TheARPANetworkisdesignedonthis
W. R. Crowther / D. C. Walden principleand, ateachnode, acopyofthemessageisstoreduntilit
is safely received at the following node. The network is thus a
store and forward system and as such must dealwith problems of
Introduction routing, buffering, synchronization, errorcontrol, reliability, and
otherrelated issues. To insulate the computercenters from these
For many years, small groups ofcomputers have been intercon- problems, and to insulate the network from the problems ofthe
nected in various ways. Only recently, however, has the interac- computer centers, ARPA decided to place identical small proces-
tionofcomputersandcommunicationsbecomean importanttopic sors ateach networknode, to interconnect these small processors
initsownright.^ In 1968,afterconsiderablepreliminaryinvestiga- with leased common-carrier circuits to form a subnet, and to
tion and discussion, the Advanced Research Projects Agency of connect each research computer center into the net via the local
the DepartmentofDefense(ARPA)embarkedontheimplementa- small processor. In this arrangement the research computer
tionofanewkindofnationwidecomputerinterconnectionknown centers are called Hosts and the small processors are called
as the ARPA Network. This network will initially interconnect Interface Message Processors, or /MPs. (See Fig. 1.) This
many dissimilar computers at ten ARPA-supported research approachdividesthegenesisoftheARPA Networkintotwoparts:
centerswith50-kilobitcommon-carriercircuits. Thenetworkmay (1) design and implementation ofthe IMPsubnet, and (2) design
beextendedtoincludemanyotherlocationsandcircuitsofhigher
bandwidth.
The primary goal ofthe ARPA project is to permit persons and
programs at one research center to access data and use interac-
tively programs that exist and run in other computers of the
network. This goal may represent a major step down the path HOST
taken by computer time-sharing in the sense that the computer
resources of the various research centers are thus pooled and
directly accessible to the entire community of network partici-
pants.
Study ofthe technologyand tariffs ofavailable communications
facilities showed that use ofconventional line switching facilities
wouldbe economicallyandtechnicallyinefficient. The traditional
method of routing information through the common-carrier
switched network establishes adedicated path foreach conversa- HOST
tion. Withpresenttechnology, thetimerequiredforthistaskison
the order of seconds. For voice communication, that overhead
time is negligible, but in the case ofmany short transmissions,
such as may occur between computers, that time is excessive.
Therefore, ARPAdecidedto buildanewkindofdigitalcommuni-
cation system employing wideband leased lines and message
switching, wherein a path is not established in advance and each
'Proc. AFIPS SJCC, 1970, pp. 551-567.
*Abibliographyofrelevantreferencesisincludedattheendofthispaper;
amore extensive list may be found in Cuadra [1968].
Chapter24 The Interface Message ProcessorfortheARPAComputerNetwork 403
and implementation ofprotocols and techniques for the sensible Network Design
utilization ofthe network by the Hosts.
Implementation of the subnet involves two major technical The design ofthe networkisdiscussed intwoparts. The firstpart
activities: providing 50-kilobit common-carrier circuits and the concerns therelationsbetweenthe Hostsandthesubnet, andthe
associated modems; and providingIMPs, alongwith softwareand secondpart concerns the design ofthe subnet itself
interfaces to modems and Host computers. For reasons of
economic and political convenience, ARPA obtained common- Host-Subnet Considerations
carriercircuitsdirectlythroughgovernmentpurchasingchannels;
AT&T (Long Lines) is the central coordinator, although the The basicnotion ofasubnet leads directlyto aseries ofquestions
General Telephone Company is participating at some sites and about the relationship between the Hosts and the subnet: What
other common carriers may eventually become involved. In tasks shall be performed by each? What constraints shall each
January 1969, Bolt Beranekand Newman Inc. (BEN) began work place on the other? What dependence shall the subnet have on
on the design and implementation of IMPs; a four-node test the Hosts?Inconsideringthesequestions, wewereguidedbythe
network was scheduled for completion by the end of 1969 and followingprinciples: (1)Thesubnetshouldfunctionasacommuni-
plans were formulated to include a total often sites by mid-1970. cationssystemwhose essentialtaskis totransferbits reliablyfrom
This paper discusses the design ofthe subnet and describes the a source location to a specified destination. Bit transmission
hardware, the software, and the predicted performance of the should be sufficiently reliable and error free to obviate the need
IMP. The issues ofHost-to-Host protocol and network utilization for special precautions (such as storage for retransmission) on the
are barely touched upon; these problems are currently being partofthe Hosts; (2)The averagetransittimethrough the subnet
consideredbytheparticipatingHostsandmaybeexpectedtobea should be under a halfsecond to provide for convenient interac-
subject oftechnical interest for many years to come. tive use ofremote computers; (3)The subnet operation shouldbe
At this time, in late 1969, the test network has become an completelyautonomous. Sincethesubnetmustfunctionasastore
oapnedraitmipnlgemreeanltiatyt.ioInMoPfsIhMaPvsefaolrrseiaxdayddbieteinonailnsstiatlelsedisaptrfoocueredsiitnegs., aHnosdt.forTwhaerdIsMyPstemmu,satncIoMntPinmuuesttonootpebreadteepwehnedtehnetrupthoeniHtossltocails
The common carriers have installed 50-kilobit leased service functioningproperlyornotand must notdepend upon a Hostfor
connecting the first four sites and are preparing to install circuits buffer storage or other logical assistance such as program reload-
at six additional sites. ing. The Hostcomputermustnotinanywaybeabletochangethe
The design of the network allows for the connection of logical characteristics of the subnet; this restriction avoids the
additional Hostsites. Amapofaprojectedeleven-nodenetworkis mischievous or inadvertent modification of the communication
shown in Fig, 2. The connections between the first four sites are system by an individual Host user; (4) Establishment ofHost-to-
indicated by solid lines. Dotted lines indicate planned connec- Host protocol and the enormous problem ofplanning to commu-
tions. nicate between different computers should be an issue separated
from the subnet design.
Messages, Links, and RFNMs In principle, a single transmis-
sionfrom one Hosttoanothermayrangefromafewbits, aswitha
single teletype character, up to arbitrarily many bits, as in avery
long file. Because ofbufferinglimitations in the subnet, an upper
limit was placed on the size ofan individual Host transmission;
8095 bits was chosen for the maximum transmission size. This
Hostunitoftransmission iscalledamessage. Thesubnetdoesnot
impose any pattern restrictions on messages; binary text may be
transmitted. Messages may be ofvariable length; thus, a source
Host must indicate the end ofa message to the subnet.
A major hazard in a message switched network is congestion,
whichcanariseeitherduetosystemfailuresortopeaktrafficflow.
Congestion typically occurs when a destination IMP becomes
flooded with incoming messages for its Host. If the flow of
messages to this destination is not regulated, the congestion will
Fig. 2. Network map (from the ARPANET Directory). back up into the network, affectingotherIMPs and degradingor
404 Part2 RegionsofComputerSpace Section5 ' Networics
I
even completely clogging the communication service. To solve present, this delay is set to 10 ^.sec. Anydelay introducedbythe
this problem we developed a quenching scheme that limits the Host in the handshake procedure further slows the rate.
flowofmessages to agivendestinationwhen congestionbegins to
occur or, more generally, when messages are simply not getting System Failure Considerable attention has been given to the
through. possible efiects on a Host ofsystem failures in the subnet. Minor
Thesubnettransmitsmessagesoverunidirectionallogicalpaths system failures (e.g., temporary line failures) will appear to the
between Hosts known as links. (A link is a conceptual path that Hosts only in the form ofreduced rate ofservice. Catastrophic
has no physical reality; the term merely identifies a message failuresmay, however, resultinthelossofmessagesoreveninthe
sequence.) The subnet accepts only one message at a time on a loss ofsubnet communication. IMPs inform a Host ofall relevant
given link. Ensuing messages on that link will be blocked from system failures. Additionally, should a Host computer go down,
enteringthe subnetuntilthe source IMPlearns thatthe previous the information is propagated throughout the subnet to all IMPS
messagehasarrivedatthedestinationHost. WhenaUnkbecomes sotheymaynotifytheirlocal Host ifitattemptstosendamessage
unblocked, the subnet notifies the source Host by sending it a to that Host.
special control message known as Ready for Next Message (or
RFNM), which identifies the newly unblocked link. The source Specific Subnet Design
Host may utilize its connection into the subnet to transmit
messages overother links, whilewaitingto send messages on the The overriding consideration that guided the subnet design was
blocked links. Up to 63 separate outgoing links may exist at any reliability. Each IMP must operate unattended and reliably over
tHhoestdessittei.naWtihoennHogsitviangndthaelsinukbnneutmabemresisnagteh,e tfihrestH3o2stbitsspeocfiftihees WloengwpeerrieodcsonwviitnhcmeidnithmaatlidtowwanstiimmpeofrotranmtaifnotreneaacnhceIaMnPdrienpatihr.e
message (known as the leader). The IMPs then attend to route subnettooperateautonomously, notonlyindependentlyofHosts,
selection, delivery, and notification ofreceipt. This use oflinks but insofar as possible from other IMPs as well; any dependency
and RFNMs also provides for IMP-to-Host deliveryofsequences between one IMP and another would merely broaden the area
ofmessages in proper order. Because the subnet allows only one jeopardized by one IMF's failure. The need for reliability and
message at a time on a given link, Hosts never receive messages autonomybears directly upon theform ofsubnetcommunication.
out ofsequence. This section describes the process of message communication
within the subnet.
Host-IMF Interfacing Each IMP will initially service a single
Host. However, we have made provision (both in the hardware Message Handling Hosts communicate with each other via a
and software) for the IMP to service up to four Hosts, with a sequence ofmessages. An IMP takes in a message from its Host
corresponding reduction in the number ofpermitted phone line computer in segments, forms these segments into packets (whose
connections. Connecting an IMP to a wide variety of difierent maximum size is approximately 1000 bits), and ships the packets
Hosts requires ahardware interface, some part ofwhich must be separatelyintothenetwork. ThedestinationIMPreassemblesthe
custom tailored toeach Host. We decided, therefore, to partition packetsanddelivers them in sequencetothe receivingHost, who
the interface such that a standard portion would be built into the obtains them as a single unit. This segmentation ofa message
IMP, andwouldbe identical forall Hosts, while aspecialportion during transmission is completely invisible to the Host comput-
ofthe interface would be unique to each Host. The interface is ers. Figures 3, 4, and 5 illustrate aspects ofmessage handling.
designed to allow messages to flow in both directions at once. A The transmitting Host attaches an identifying leader to the
bit serial interface was designed partly because it requiredfewer beginning ofeach message. The IMP forms a header by adding
lines for electrical interfacingand was, therefore, less expensive, further information for network use and attaches this header to
and partly to accommodate conveniently the variety of word each packet ofthe message.
lengths inthedifierent Hostcomputers. Thebitraterequirement Each packet is individually routed from IMP-to-IMP through
on the Host line is suSiciently low that parallel transfers are not the network toward the destination. At each IMPalong the way,
necessary. the transmitting hardware generates initial and terminal framing
TheHostinterfeceoperatesasynchronously, eachdatabitbeing charactersandparitycheckdigitsthatareshippedwiththepacket
passed across the interface viaa Ready ForNext Bit/There's Your and are used forerrordetectionbythe receivinghardwareofthe
Bit handshake procedure. This technique permits the bit rate to next IMP.
adjust to the rate of the slower member ofthe pair and allows Errors in transmission can afiect a packet by destroying the
necessary interruptions, when words must be stored into or framing and/or by modifying the data content. Ifthe framing is
retrieved from memory. The IMP introduces between bits a disturbed in anyway, the packet eitherwill not be recognizedor
(manually) adjustable delay that Hmits the maximum data rate; at will be rejected by the receiver. In addition, the check digits
Chapter24 ' TheInterfaceMessageProcessorfortheARPAComputerNetwork 405
406 Part2 RegionsofComputerSpace Section5 Networks
I
tablebycombiningitsneighbors'estimateswithitsownestimates Messages intended for dead Hosts (which are not the same as
of the delay to that neighbor. The estimated delay to each dead IMPs) cannot be delivered; therefore, these messages
neighbor is based upon both queue lengths and the recent require special handling to avoid indefinite circulation in the
performance ofthe connecting communication circuit. For each network and spurious arrival at a later time. Such messages are
destination, the table is then made to specifythat selectedoutput purged from the network either at the source IMP or at the
lineforwhich thesumoftheestimateddelaytotheneighborplus destination IMP. Dead Host information is regularly transmitted
the neighbor's delay to the destination is smallest. with the routing information. A Host computer is notified about
The routing table is consistently and dynamically updated to anotherdeadHostonlywhenattemptingtosendamessagetothat
adjust for changing conditions in the network. The system is Host.
adaptive to the ups and downs oflines, IMPs, and congestion; it An IMP may detect a major failure in one ofthree ways: (1) A
does not require theIMPto know the topologyofthenetwork. In packetexpectedforreassemblyofamultiple packetmessagedoes
particular, an IMP need not even know the identity of its notarrive. Ifamessageisnotfullyreassembledin 15minutes, the
immediate neighbors. Thus, the leased circuits could be reconfi- system presumes a failure. The message is discarded by the
gured to a new topology without requiring any changes to the destination IMPandboththesourceIMPandthesourceHostare
IMPs. notifiedviaaspecial RFNM. (2)TheHostdoesnottakeamessage
from its IMP. If the Host has not taken a message after 15
SubnetFailures Thenetworkisdesignedtobelargelyinvulner- minutes, thesystem presumesthatitwillnevertakethemessage.
abletocircuitorIMPfailureaswellastooutagesformaintenance. Therefore, as in thepreviouscase, themessage isdiscardedanda
Special status and test messages are employed to help cope with special RFNM is returned to the source Host. (3) A link is never
variousfailures. Intheabsenceofregularpacketsfortransmission unblocked. Ifa Unk remains blocked for longer than 20 minutes,
over a line, the IMP program transmits special hello packets at the system again presumes a failure; the link is then unblocked
half-secondintervals. Theacknowledgmentforahellopacketisan and an error message is sent to the source Host. (This last time
/ heard you packet. interval is slightly longer than the others so that the failure
Adeadline is defined by the sustained absence (approximately mechanisms for the first two situations will have a chance to
2.5 seconds) on that line of either received regular packets or operate and unblock the link.)
acknowledgments; no regular packets will be routed into a dead
line, and any packets awaiting transmission will be rerouted. Reliability and Recovery Procedures For higher system re-
Routingtables inthenetworkareadjustedautomaticallytoreflect liability, special attention was placed on intrinsic reliability,
the loss. We require acknowledgment ofthirty consecutive hello hardware test capabilities, hardware/software failure recovery
packets (an event which consumes at least 15 seconds), before a techniques, and proper administrative mechanisms for &ilure
dead line is defined to be alive once again. management.
A dead line may reflect trouble either in the communication To improve intrinsic reliability, we decided to ruggedize the
facilities or in the neighboring IMP itself. Normal line errors IMP hardware, thus incurring an approximately ten percent
causedbydropouts, impulsenoise, orotherconditions shouldnot hardware cost penalty. For ease in maintenance, debugging,
result in adead line, because such errors typically lastonlyafew program revision, and analysis ofperformance, all IMPs are as
miliseconds, and only occasionally as long as a few tenths ofa similaras possible; theoperationalprogram andthehardwareare
second. Therefore, we expect that a line will be defined as dead nearly identical in all IMPs.
only when serious trouble conditions occur. Ifdead lines elimi- To improve hardware test capabilities, we built special cross-
nate all routes between two IMPs, the IMPs are said to be patching features into the IMP's interface hardware; these
disconnected and each of these IMPs will discard messages features allow program-controlled connection ofoutput lines to
destined for the other. Disconnected IMPs cannot be rapidly corresponding input lines. These crosspatching features have
detected from the delay estimates that arrive from neighboring been invaluable in testing IMPs before and during field installa-
IMPs. Consequently, additional information is transmitted be- tion, and they should continue to be very useful when troubles
tween neighboringIMPs to helpdetectthiscondition. Each IMP occur in the operatingnetwork. These hardware test featuresare
transmits to its neighbors the length ofthe shortest existingpath employed by a special hardware test program and may also be
(i.e., number of IMPs) from itself to each destination. To the employed by the operational program when a line difiBculty
smallest such received number per destination, the IMP adds occurs.
one. This incremented number is the length ofthe shortest path The IMP includes a 512-word block ofprotected memory that
from that IMP to the destination. Ifthe length ever exceeds the secures special recovery programs. An IMP can recover from an
number ofnetwork nodes, the destination IMP is assumed to be IMP failure in two ways: (1) In the event of power failure, a
unreachable and therefore disconnected. power-fail interruptpermits the IMP to reachaclean stopbefore
Chapter24 TheInterface Message ProcessorfortheARPAComputerNetwork 407
|
the program is destroyed. When power returns, a special selected Host every ten seconds. In addition, a record ofactual
automatic restart feature turns the IMP back on and restarts the packet arrival times on modem lines allows for the modeling of
program. (We considered several possibilities for handling the line traffic. (As part ofits research activity, the group at UCLA is
packets found in an IMP during a power failure and concluded acting as a network measurement center; thus, statistics for
that no plan to salvage the packets was both practical and analysis will normally be routed to the UCLA Host.)
foolproof For example, we cannot know whether the packet in Perhaps the most powerfulcapabilityfornetworkintrospection
transmission at the time offailure successfully left the machine is tracing. Any Host message sent into the network may have a
before the powerfailed. Therefore, we decided simply to discard "tracebit" set in the leader. Wheneveritprocesses apacketfrom
all the packets and restart the program.) (2) The second recovery suchamess—age, theIMPkeepsspecial recordsofwhathappensto
mechanism is a "watchdog timer," which transfers control to thatpacket e.g., howlongthepacketisonvariousqueues,when
protected memory whenever the program neglects this timerfor it comes in and leaves, etc. Each IMP that handles the traced
about one minute. In the event ofsuch transfer, the program in packet generates special trace report messages that are sent to a
unprotected memoryispresumedtobedestroyed(eitherthrough specified Host; thus, acompleteanalysis ofwhat hashappenedto
a hardware transient or a software failure). The program in that message can be made. When used in an orderly way, this
protected memory sends a reload request down a phone line tracing facility will aid in understanding at a very detailed level
selectedat random. The neighboring IMP responds by sendinga the behavior of routing algorithms and the behavior of the
copyofitswhole program backon the phone line. Anormal IMP network under changing load conditions.
would discard this message because it is too long, but the
recovering IMP can use it to reload its program. Flexibility Flexibility for modifications in IMP usage has been
Everything unique to a particular IMP must thus reside in its provided by several built-in arrangements: (1) provision within
protected memory. Only one register (containing the IMP the existingcabinetforanadditional4Kcorebank; (2) modularity
number) currently diflFers from IMP-to-IMP. The process of ofthe hardware interfaces; (3) provision for operation with data
reloading, which requires a few seconds, can be tried repeatedly circuits of widely different rates; (4) a program organization
untilsuccessful; however, ifafterseveralminutestheprogramhas involving many nearly self-contained subprograms in the IMP
not resumed operation, a laterphase ofthewatchdogtimer shuts program structure.
ofiFall power to the IMP. This last aspect offlexibility presents asomewhat controversial
Inadditiontoprovidingrecoverymechanismsforbothnetwork design choice. There are many advantages to keeping all IMP
and IMP failures, we have incorporated into the subnetacontrol software nearly identical. Because ofthe experimental nature of
center that monitors network status and handles trouble reports. thenetwork, however, wedonotyetknowwhetherthisluxuryof
The control center, located at a network node, initiates and identical programs will be an optimal arrangement. Several
follows up any corrective actions necessary for proper subnet potential ap—plications of"Host-unique" IMP software have been
functioning. Furthermore, this centercontrols and schedules any considered e.g., using ASCII conversion routines in each IMP
modifications to the subnet. to establish a "Network ASCII" and possibly to simplify the
protocol problems ofeach Host. As ofnow, the operational IMP
Introspection Because the network is experimental in nature, programincludesastructurethatpermitsuniquesoftwareplug-in
considerableefforthasbeenallocatedtodevelopingtoolswhereby packages at each Host site, but no plug-ins have yet been
the network can supply measures of its own performance. The constructed.
operational IMPprogram is capable oftaking statisticson its own
performance on a regular basis; this function may be turned on
and offremotely. The various kinds ofresulting statistics, which The Hardware
are sent via the network to a selected Host for analysis, include
"snapshots," ten-second summaries and packet arrival times. We selected a Honeywell DDP-516 for the IMP processor
Snapshots are summaries ofthe internal status ofqueue lengths because we wanted a machine that could easily handle currently
and routing information. A synchronization procedure allows anticipated maximum traffic and that had already been proven in
these snapshots, which are taken every halfsecond, to occur at the field. We considered only economic machines with fast cycle
roughlythe same time inallnetworkIMPs;a Hostreceivingsuch times and good instruction sets. Furthermore, we needed a
snapshot messages could presumably build up an instantaneous machine with a particularly good I/O capability and that was
picture ofoverall network status. Ten-second summaries include available in a ruggedized version. The geographical proximity of
such IMP-generatedstatisticsasthenumberofprocessedmessag- the supplier to BBN was also a consideration.
es ofeach kind, the number ofretransmissions, the traffic to and The basic machine has a 16-bit word length and a 0.96-jjisec
from the local Host, and so forth; this statistical data is sent to a memory cycle. The IMP version is packaged in a single cabinet.
408 Part2 RegionsofComputerSpace SectionS Networlcs
I
and includes a 12K memory, a set of 16 multiplexed channels
(which implement a 4-cycle data break), a set of 16 priority
interrupts, a 100-^Jlsec clock, and a set of programmable status
lights. Also packaged within this cabinet are special modular
interfaces for connecting the IMP to phone line modems and to
Hostcomputers; these interfaces usethe samekindof1 MHzand
5 MHz DTL packs from which the main machine is constructed.
In addition, a number of features that have been incorporated
make the IMP somewhat resilient to a variety offailures.
Teletypes and high-speed paper tape readers which are at-
tached to the IMPs are used only for maintenance, debugging,
and system modification; in normal operation, the IMP runs
without any moving parts except fans. Within the cabinet, space
has been reserved for an additional 4K memory. Figure 6 is a
picture ofan IMP, and Figure 7 shows its configuration.
Ruggedization ofcomputer hardware for use in friendly envi-
ronments is somewhat unusual; however, we felt that the consid-
erable difficulty that IMP failures can cause the networkjustified
this step. Although the ruggedized unit is notfully "qualified" to
MIL specs, it does have greater resistance to temperature
variance, mechanical shock and vibration, radio frequency inter-
Chapter24 TheInterface MessageProcessorfortheARPAComputerNetwork 409
]
sync pattern that keeps them in character sync. Bit sync is (512 words per page). These programs communicate primarily
maintained by the modems themselves, which provide both throughcommonregistersthatreside inpagezeroofthemachine
transmit and receive clockingsignals to the interfaces. When the andthataredirectlyaddressablefromallpagesofmemory. Amap
program initiates transmission, thehardware firsttransmitsapair ofcore storage is shown in Fig. 8. Seven ofthe twelve programs
of initial framing characters (DLE, STX). Next, the text ofthe are directly involved in the flow ofpackets through the IMP: the
packet is taken word by word from the memory and shifted taskprogramperformsthemajorportionofthepacketprocessing,
seriallyonto the phone line. Atthe end ofthedata, thehardware includingthe reassemblyofHost messages; themodemprograms
generates a pair ofterminal framing characters (DLE, ETX) and (IMP-to-Modem and Modem-to-IMP) handle interrupts and
shifts them onto the phone line. After the terminal framing resetting ofbufiers for the modem channels; the Host programs
characters, the hardware generates and transmits 24 check bits. (IMP-to-Hostand Host-to-IMP)handleinterruptsandresettingof
Finally, the interface returns to idle (sync) mode. bufiers for the Hostchannels, build packetheaders during input,
The hardware doubles any DLE characters within the binary andconstructRFNMs thatarereturnedtothesource Hostduring
data train (that is, transmits them twice), thereby permitting the output;thetime-outprogrammaintainsasoftwareclock, timesout
receivinginterface hardware to distinguish them from the termi- unacknowledged packets for retransmission,^ and attends to
nal framing characters and to remove the duplicate. Transmitted infrequent events; the link program assigns and verifies message
packets are ofa known maximum size; therefore, any overflowof numbersandkeeps trackoflinks. Abackgroundloopcontains the
inputbufierlength is evidenceoferroneous transmission. Format remaining five programs anddealswith initialization, debugging.
errors in the framing also register as errors. Check bits are
computedfrom thereceiveddataandcomparedwiththereceived
checkbitstodetecterrorsinthetext. Anyoftheseerrorssetaflag COMMON STORAGE
and cause a program interrupt. Before processing a packet, the RESTART^
program checks the error flag to determine whether the packet INITIALIZATION BACKGROUND
was received correctly. TASK
MODEM TO IMP
IMP Software IMP TO MODEM
HOST TO IMP
Implementation of the IMPs required the development of a IMP TO HOST
sophisticatedoperationalcomputerprogramandthedevelopment TIMEOUT
of several auxiliary programs for hardware tests, program con-
struction, and debugging. This section discusses in detail the LINK (with table)
24 PAGES
design of the operational program and briefly describes the
auxiliary software. TABLES
DEBUG
OperationalProgram
The principal function ofthe operational program is the process-
ing of packets. This processing includes segmentation of Host
messages into packets for routing and transmission, building of
headers, receiving, routingand transmittingofstore and forward
packets, retransmittingofunacknowledgedpackets, reassembling
received packets into messages for transmission to the Host, and
generating of RFNMs and acknowledgments. The program also
monitors network status, gathers statistics, and performs on-line
testing. This real-time program is an efficient, interrupt-driven,
involute machine language program that occupies about 6000 1 PAGE = 512 WORDS
BUFFER SPACE
words ofmemory. It was designed, constructed, and debugged I
over a period ofabout a year by three programmers. PROTECTED PAGE
The entire program is composed oftwelve iunctionally distinct
pieces;eachpieceoccupiesnomorethanoneortwopagesofcore Fig. 8. Map of core storage.
410 Part2 RegionsofComputerSpace Section5 Networl(s
I
testing, statisticsgatheringandtracing. Afterabriefdescriptionof Output: A separate output queue is constructed for each
datastructures, wewill discuss packet processingin some detail. modem channel and each Host channel. Each modem output
queue issRubFdNivMided intoanacknowledgmentqueue, apriority
Buffer Allocation, Queues, and Tables The major system data queue, a queue, and a regular message queue, which
structures (see Table 1) consist of bufiFers and tables. The are serviced in that order. Each Host output queue is
buffer-storage space is partitioned into about 70 fixed length subdividedintoacontrolmessagequeue, apriorityqueue, and
buffers, each of which is used for storing a single packet. An aindriecgautleadrormdeesrs.age queue, which are also serviced in the
unused buffer is chained onto a free buffer list and is removed
from this list when it is needed to store an incoming packet. A Sent: A separate queue for each modem channel contains
packet, oncestoredinabuffer, isnevermoved. Afterapackethas packets thathavealreadybeen transmitted on that linebutfor
been successfiilly passed along to its Host or to another IMP, its which no acknowledgment has yet been received.
bufferis returnedtothefreelist. Thebufferspaceispartitionedin Reassembly:The reassemblyqueuecontainsthosepacketsthat
such a way that each process (store and forward traffic. Host are being reassembled into messages for the Host.
traffic, etc.) is always guaranteed some buffers. For the sake of
program speedand simplicity, no attemptis made to retrievethe Tablesincoreareallocatedforthestorageofqueuepointers,for
space wasted by partially filled buffers. trace blocks, for reassembly information, for statistics, and for
In handling store and forward traffic, all processing is on a per links. Most noteworthy ofthese is the link table, which is usedat
packet basis. Further, although traffic to and from Hosts is the source IMP for assignment of message numbers and for
composed olmessages, the IMP rapidly converts to dealingwith blocking and unblocking links, and at the destination IMP to
packets;the HosttransmitsamessageasasingleunitbuttheIMP verify message numbers for sequence control.
takes it one bufferat a time. As each buffer is filled, the program
selects another bufferfor input until theentire message has been Packet Flow and Program Structure Figure 9 is a schematic
provided for. These successive buffers will, in general, be drawing of packet processing; the processing programs are
scattered throughout the memory. An equivalent inverse process described below.
occurson output to the Hostafterallpackets ofthe message have The Host-to-IMP routine (H -^ I) handles messages being
arrivedatthedestinationIMP. Noattemptisevermadetocollect transmitted from the local site. The routine uses the leader to
thepacketsofamessageintoacontiguousportionofthememory. construct aheader that is prefixed to each packet ofthe message.
Buffers currently in use are eitherdedicated to an incomingor It also creates alink forthe message ifnecessary, blocks the link,
an outgoing packet, chained on a queue awaiting processing by puts thepacketsofthemessageonthe Hosttaskqueueforfurther
the program, or being processed. Occasionally, a buffer may be processing by the task routine, and triggers the programmable
simultaneously found on two queues; this situation can occur task interrupt. The routine thenacquiresafreebufferandsets up
when a packet is waiting on one queue to be forwarded and on a new input. The routine tests a hardware trouble indicator,
another to be acknowledged.
There are four principal types ofqueues:
10 <*f)S' / ~*"« \
Task: Packetsreceivedon Hostchannelsareplacedonthe Host rr-
task queue. All received acknowledgments, dead Host and
routing information, / heard you and hello packets are placed ^'- •'^' P kit
on the system task queue; all otherpackets from the modems
are placed on the modem task queue. The program services — ^''t*^"«r"
the system task queue first, then the Host task queue, and ^OtBuG« BilL—
finally the modem task queue. .^^ •OOctmtINHCfB(- / UuBAtlSNir
BAcTGrOuND
Table 1 Program Data Structures
—
5010200 wwoorrddss——qmueesuseagpeoibnutfefresrstorage MHQDfM OUrl-J ^ y»
300 words—trace blocks
100 words—reassembly blocks
150 words—routing tables I I • OUIUl 1 J- fOV
400 words—lini< tables
300 words statistics tables
Fig. 9. Internal packetflow.
Chapter24 TheInterface Message ProcessorfortheARPAComputerNetwork 411
verifies the message format, and checks whether or not the The time-out routine is started every 25.6 msec (called the
destination is dead, the linktable is full, or the linkblocked. The time-out period) by a clock interrupt. The routine has three
routine is serially reentrant and services all Hosts connected to sections: thefast time-out routine, which "wakes up" any Hostor
the IMP. modem interrupt routine that has languished (for example, when
The Modem-to-IMP routine (M -^ I) handles inputs from the the Hostinputcouldnotimmediatelystartanewinputbecauseof
modems. This routine consists ofseveral identical routines, one a shortage in buffer space); the middle time-out routine, which
for each modem channel. (Such duplication is useful to obtain retransmitsany packets that havebeen toolongonamodem sent
higher speed.) This routine sets up an input buffer (normally queue; and the slow time-out routine, which marks lines as alive
obtained from the free Ust), places the received packet on the or dead, updates the routing tables and does long term garbage
appropriate task queue, and triggers the programmable task collection ofqueues and other data structures. (For example, it
interrupt. Should nofree bufiersbeavailableforinput, thebuflFer protectsthesystemfrom thecumulativeeffectofsuchfailuresasa
attheheadofthemodemtaskqueueispreempted. Ifthemodem lostpacketofamultiplepacketmessage, wherebuffersaretiedup
task queue is also empty, the received packet is discarded by inmessage reassembly.) Italsodeleteslinksautomaticallyalter15
setting up its buffer for input. However, a sufficient number of seconds ofdisuse, after 20 minutes ofblocking, orwhen an IMP
free buffers are specifically reserved to assure that received goes down.
acknowledgments, routing packets, and the like are rarely These three routines are executed in the followingpattern:
discarded. FFFF FFFF FFFF FFFF FFFF FFFF
The task routine uses the header information to direct packets M M M M M . . .
to theirproperdestination. The task routine is drivenby the task
interrupt, which is setwheneverapacket is put on a task queue. and, althoughtheyrunoffacommoninterrupt, areconstructedto
The task routine routes packets from the Host taskqueueontoan allow faster routines to interrupt slower ones should a slower
output queue determined from the routing algorithm. routine not complete execution before the next time-out period.
Foreachpacketonthemodem taskqueue, thetaskroutinefirst The link routineenters, examines, anddeletesentriesfromthe
determineswhethersufficientbufferspaceisavailable. IftheIMP linktable. Atablecontainingaseparatemessagenumberentryfor
has a shortage of store and forward buffers, the buffers on the many links to every possible Host would be prohibitively large.
modem task queue are simply returned to the free list without Therefore, the table contains entries only for each of 63 total
further processing. Normally, however, an acknowledgment outgoinglinksatany Hostsite. Hashingisusedtospeedaccessing
packet is constructed and put near the front ofthe appropriate ofthis table, butthelinkprogram isstillquitecostly; itusesabout
modem output queue. The destination of the packet is then tenpercentofbothspeedandspaceinaconceptuallytrivialtask.
inspected. If the packet is not for the local site, the routing
algorithm selects a modem output queue for the packet. If a Initialization and Background Loop The IMPprogram starts in
packet for the local site is a RFNM, the corresponding link is an initialization section that builds the initial data structures,
unblocked and the RFNM is put on a queue to the Host. Ifthe preparesforinputsfrom modemand Hostchannels, andresetsall
packetisnotaRFNM, itisjoinedwithothersofthesamemessage program switches to their nominal state. The program then falls
on the reassembly queue. Whenver a message is completely into thebackground loop, whichisanendlesslyrepeatedseriesof
reassembled, the packets of the message are put on an output low-priority subroutines that are interrupted to handle normal
queue to the Host for processingby the IMP-to-Host routine. traffic.
Inprocessingthe system taskqueue, thetaskroutine returnsto The programs in the IMPbackgroundloopperformavarietyof
the free list those buffers from the sent queue that have been functions: TTY is used to handle the IMP Teletype traffic;
referenced by acknowledgments. Anypackets skippedoverbyan DEBUG, to inspect or change IMP core memory; TRACE, to
acknowledgment are designated for retransmission. Routing, 7 transmitcollected informationabouttracedpackets;STATISTICS,
heard you, and hello packets are processed in a straightforward to take and transmit network and IMP statistics; PARAMETER-
fashion. CHANGE, to alter the values ofselected IMP parameters; and
—
The IMP-to-Modem routine (I > M) transmits successful pack- DISCARD, to throw away packets. Selected Hosts and IMPs,
ets from the Modem output queue. Aftercompleting the output, particularly the Network Measurement Center and the Network
this routine places any packet requiring acknowledgment on the Control Center, will find it necessary or useful to communicate
sent queue. with one or more of these background loop programs. So that
—
The IMP-to-Host routine (I » H) sets up successive outputs of theseprogramsmaysendandreceivemessagesfromthenetwork,
packets on the Host output queues and constructs a RFNM for they are treatedas"fake Hosts." Ratherthanduplicatingportions
eachnon-controlmessagedeliveredtoaHost. RFNM packetsare of the large IMP-to-Host and Host-to-IMP routines, the back-
returned to the system via the Host task queue. ground loop programs are treatedas fftheywere Hosts, and they
Description:on the design and implementation of IMPs; a four-node test network was At this time, inlate 1969, the test network has become an .. Honeywell DDP-516 for the IMP and includes a 12K memory, a set of 16 multiplexed channels .. very important because the economics ofcarrier many classes.