






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Absfract-A protocol that supports the sharing of resources that exist in different packet switching networks is presented. The proto-.
Typology: Schemes and Mind Maps
1 / 12
This page cannot be seen from the preview
Don't miss anything!
I E E E TR.INSACTIOSS O X COMMUNIC~LTIOKS, VOL. COM-22, NO. 5, MAY 1974
637
Absfract-A protocol that supports the sharing of resources that exist in different packet switching networksis presented. Theproto- col provides for variation in individual network packet sizes, trans- mission failures, sequencing,flow control, end-to-end error checking, and the creation and destruction of logical process-to-process con- nections. Some implementation issues are considered, and problems such as internetwork routing,accounting, and timeouts areexposed.
I"
expended on the design and implementation of packet
for developing such not\vorks has been to facilitatethe
network includes a transportation mechanism for dcliver- ing data between computers or between computersand terminals. To make the data meaningful, computers and tcrminals share a common protocol (i.c.,a set of agreed upon conventions). Several protocols havealready been developed for this purpose [S]-[12],[16]. However, these protocols have addressed only the problem of com- munication on the same nct\vork. I n this paper we prcscnt a protocol design and philosophy that supports thesharing of resources that exist in different packct switching net- works. Aftera brief introduction to internetwork protocol issues, we describe the function of a GATEWAY as an intcr- face bctwccn nctn-orks and discuss its role in the protocol.
includingaddressing, formatting, buffering, scquoncing, floxv control, error control, and so forth. Wc close with a description of an interprocess communication nxchanism and show how i t can be supported by the internet\-ork protocol. Eventhoughmany different and complex problems must be solved inthe design of an individualpacket switchingnetwork, these problems are manifestly com- poundedwhen dissimilar networks arc interconnected. Issues arise which may have no direct counterpart in an individual network and which strongly influence the way in which internetwork communication can take place. A typicalpacket switching network is composed of a
tions of the IEEE Communications Society for publication without
Paper approvedby the Associate Isditor for Data Communica- oral presentation.Manuscript received Novemtxr 5, 1973. The research reported in this paper was supported in part hy the Ad- vancedResearch Projects Agency of theDepartment of Ihfense under Contract DAHC 15-73-C-0370. trim1 Engineering, Stanford University, Stanford, Calif.
V. G. Cerf is with the Department of (^) Computer Science and Elec- It. E. Kahn is with theInformation Processing Technology Office, AdvancedResearch Projects Agency, Department of De- fense, Arlington, Va.
set of computer resources called HOSTS, a set of one or
media thatinterconnectthe packct switches. Within each HOST, wc assume thatthere exist processes which must communicate with processes in their own or other HOSTS. Any current definition of a process will be adequate for our purposes [13]. These processes are generally the ultimate source and destination of data in the network. Typically, within an individual network,there exists a protocol for communicationbetween any source and destination process. Only the source anddestination processes require kno\-ledge of this convention for com- munication to talx place. Processes in two distinct nct- works would ordinarily use different protocols forthis purpose. The ensemble of packetswitches and com- municationmedia is called the paclxt'switchingsubnet. Fig. 1 illustrates these idcas. In a typical packetswitching subnet,data of a fixed maximum size arc accepted from a source HOST, togethcr with a formatteddestinationaddress which is used to route the data ina store and forwardfashion. The transmit time for thisdata is usually dependent upon internal net\-orkparamctcrs such as communicationmedia dat>a ratcs, buffering and signaling strategies,routing, propa- gation delays, etc. In addition, somc mechanism is gen- erallyprcscnt for errorhandling anddetermination of status of the networkscomponents. Individual pacltct switching nctn;orl<s maydifferin their implementations asfollows.
smallestmaximum size (which may he impractically small) or requiring procedures which allow data crossing a network boundarytobcrcformattedinto smaller picccs. 3 ) The success or failure of a transmission and its pcr- formancc in eachnetwork is governed by different time dclays in accepting, delivering, and transporting the data. This requires careful development of intersetwork timing procedures to insurc thatdatacan be successfully dc- livcred through tho variousnctworlts. 4) Within each nct\vorl;, communication may be dis- ruptcddueto unrccoverahlc mStation of thedata or missing data. End-to-cnd restoration proccduros are desirable to allow complete recovery from these con- ditions.
636 IEEE TRAKSACTIONS ON COMMUNICATIONS. MAY 1074
intact the internal operation of each individual network This is easily achieved if twonetworksinterconnect a: ifeach were a HOST to the other network, but withoul utilizingorindeedincorporating anyelaborate H O S ~ protocol transformations.
must play a central role in the development of any net
this interface that performs these functions and call it : GATEWAY.
T H E GATEWAYNOTION
P A C K E T - S W i T C H I N GN E T W O R K PSSWITCH = PACKET Fig. 1. Typicalpacket switchingnetwork.
5 ) Status ,information,rout,ing,faultdetection,and isolation are typically different in each network. Thus, to obtain verification of certainconditions,suchas an in- accessible ordeaddestination,variouskinds of coordi- nation must be invoked between the communicating net- works.
betweennetworks could be economically resolved by suitableinterfacing a t .thenetworkboundaries.For many of the differences, this objective can be achieved. However, both economic and technical considerations lead us to prefer that the interface be as simple and reliable as possible and deal primarily with passing data between networks that use differentpacketswitchingstrategies. The question now arises asto whether the interface ought to account for differences in HOST or process level protocols by transforming thesource conventions into the correspondingdestinationconventions.Weobviously wantto allow convcrsion betweenpacketswitching strategies at the interface, to permitinterconnection of existing and planncd networks. However, the complcxity and dissimilarity of the Hosl7 or process level protocols makes it desirable to avoid having to transform between them at the interface,even if thistransformation were always possiblc. Rather,,compatible HOST and process levcl protocols must bc developed to achicvceffective intcrnctxork resourcc sharing. The unacceptable al- ternative is for every HOST or process to implcmcnt every protocol (a potentially unbounded number) that may be needed to cornmunicatc with other networks.Wethere- fore assume that a comnmn protocol is to be used between HOST'S or processes i n diffcrcntnetworks andthatthe interface bctn-ccn networks should takc as small a role as possiblc in this protocol. To allow nc:tworl<s under diffcrcnt ownership to inter- cunncct, somc accounting will undoubtedly be needed for traffic that passcs across the interface. Inits simplest tcrnms, this involves an accounting of packets handled by mch not for n-hich chargesarb passcd from nettonet until thc buck finally stops at the user or his rcprescnta- tivcb. Ihrthcrmorc~,the interconnection must prcserve
I n Fig. 2 we illustrate three individual networkslabelec
assume that an individual network may have more t,ha~
more than one GATEWAY path to use in going between I pa,ir of networks. The responsibility for properly routin data resides in the GATEWAY. I n practice, a GATEWAY between two networks may b composed of twohalves,eachassociatedwith it,s ow
WAY so it need only embed internetwork packets in loca packetformat or extractthem. We propose thatth GATEWAYS handleinternetworkpacket,sinastandarc format, but me arenot proposing anyparticulartrans mission procedure between GATEWAY halves.
connectednetworks.Weassume a packet of data fron
its HOST, or one of thc packet switches in network -4. Thl packet traverses network A until it reaches GATEWAY iI At the GATEWAY, the packet is reformatted to meet thl
of flow between A and B, and the GATEWAY delivers ths packettonetwork B. Again the dcrivation of the nex GATEWAY address is accomplished based on the address o
Thc packettraverscsnetwork R until it finally rcache GATEWAY N whcrc it is formattcd tomcet the requirement
resides and there itis delivered to its ultimatedesbination Since the GATEWAY must understand the address of t h source anddestination HOSTS, thisinformationmust b availableina standardformatin everypacket whicl arrives at the GATEWAY..This information is containec in an internetzoork header prefixed to the packet by t h source HOST. The packetformat, including the internet
G40 IEEE TRANSACTIONS ON COMMUNICATIONS, MAY 1974
the one me suggest) are adopted,differences in cost can be used as an economic lever towardoptimization of indi- vidual network performance.
We suppose that processes wish to communicate in full duplexwiththeir correspondent’s usingunbounded but
versa. An entire page of characters might constitute the text of a message from a file to a process.- A data stream (e.g.,acontinuouslygeneratedbitstring)canbe repre- sented as a sequence of finite length messages. Within a HOST we assume theexistence of .a transmission controlprogram (TCP) whichhandlesthetransmission and acceptance of messages on behalf of the processes it serves. The TCP is in turn served by one or more packet switches connected to the HOST in which the TCP resides. Processes thatwantto communicatepresentmessages
messages totheappropriatedestination processes. We allow the TCP to break up messages into segments be- cause the destination may restrict the amountof data that mayarrive, because the local networkmaylimitthe maximumtransmission size, or because theTCPmay need toshareits resources amongmany processes con- currently.Furthermore, me constrain thelength of a segment to an integral number of 8-bit bytes. This uni- formity is mosthelpful in simplifying the software needed with HOST machines of differentnatural wordlengths. Provision at the process level can be made for padding a message that is not an integral number of bytes and for idcntifyingwhich of the arrivingbytes of text contain information of interest t o the receiving process. Multiplexinganddemultiplexing of segmentsamong processes arefundamental t.asks of the TCP. On trans- mission, a TCP must multiplextogethersegmentsfrom different source processes andproduceinternetwork packets for delivery to one of it.s serving packet switches. On reception, a TCP will accept a sequence of packets fromitsservingpacketswitch(es).Fromthis sequence of arrivingpackets(generallyfromdifferent HOSTS), the TCP must beable to reconstruct anddeliver messages to the proper destinationprocesses. We assume that every segment is augmented with ad- ditionalinformation that allows transmittingand re- ceiving TCP’s t o identify destination andsource processes, respectively.Atthispoint, we must face a major issue. How should the source TCI’ format segments destined for the same destination TCP? We consider two cases. Case 1) : If we take t.he position that segment boundaries are immaterial and that a byte stream can be formed of segments destined for the same TCP, then we may gain improvcd transmission efficiency and resource sharing by arbitrarily parceling the stream into packets, permitting manystgments t o sharea single internetworkpacket headcr.Howcver, this position results in the need to re-
construct exactly, and in order, the stream of text bytes
stream must first be parsed intosegmentsandthese in turn must be used to reconstruct messages for delivery to the appropriate processes. Therearefundamental problems associated withthis strategy due to thepossible arrival of packets out of order atthe destination.Themostcritical problem appears to be the amountof interference that processes sharing the sameTCP-TCPbytestreammaycauseamongthem- selves. This is especially so at the receiving end.First, the TCP may be put tosome trouble to parse the stream back into segments and then distribute them to buffers
parentthat all of a segmenthasarrived(remember,it may come as severalpackets),the receiving TCP may have to suspendparsingtemporarily until more packets have arrived. Second, if a packet is missing, it may not be clear whether succeeding segments, evenif they are identi- fiable, can be passed on to thereceiving process, unless the TCP has knowledge of some process level sequencing scheme. Such knowledge would permit the TCP to decide whether a succeedingsegmentcould be delivered toits waiting process. Finding the beginning of a segment when there are gaps in the byte stream mayalso be hard.
the destination TCP should be able to determine, upon its arrival and without additional information, for which process or processes a received packet is intended, and if so, whether it should be delivered then.
packet is intended, every packet must contain a proces header (distinct from the internetwork header) that com- pletely identifies thc destination process. For simplicity, we assume that each packet contains text from a single process which is destined for a single process. Thus each packet needcontainonlyone process header. To decide whether the arriving datais deliverable to the destination process, the TCP must be a.ble to determine whether the data is intheproper sequence(wecan make provision for the destination process to instruct its TCP to ignore sequencing, but thisis considered a special case). Withthc assumption that eacharrivingpacketcontainsa process header, the necessary sequencing and destination procesf ident)ification is immediately available to the destinatior TCP. Both Cases 1) and 2) provideforthe demultiplexing and delivery of segments todestination processes, but only Case 2 ) does so without the introductionof potential interprocess interference. Furthermore, Case 1) introduceE extramachinery to handle flow controlon a HOST-to- HOST basis! since there must also be someprovision for proccss level control, and this machineryis little used since the probability is small thatwithin a given HOST, two processes d l be coincidentally scheduled to send messages to the same destination HOST. For this reason, we select
CERFANDKAHN:PACKETNETWORKINTISRCOMMUNICATION
ADDRESSFORMATS The selection of address formats is a problem between networksbecause the local networkaddresses of TCP's may vary substantially in format and size. A uniform in- ternetwork TCP addressspace,understood by each GATEWAY and TCP, isessential to routingand delivery of internetwork packets. Similartroublesareencountered when we dealwith process addressing and, more generally, port addressing. We .introduce the notion of ports inordertopermit a process to distinguish between multiple message streams. The port is simplya designator of one suchmessage stream associated with a process. The meansfor identifying a port are generally different in different operating systems, and therefore, to obtain uniform addressing, a standard port address format is also required. A port address designates a full duplex message stream. TCP ADDRESSING TCP addressing is intimatelyboundupinrouting issues, since a HOST or GATEWAY must choose asuitable destination HOST or GATEWAY for an outgoing int,ernetworl< packet. Let us postulate the following address format for the TCP address (Fig. 4). The choice for network identi- fication (8 bits) allows up to 256 distinct networks. This size seems sufficient for the forseeable future. Similarly, theTCP identifier field permits upto 65 536 distinct TCP's to be addressed, which seems more than sufficient for any given network. As each packet passes through a GATEWAY, the GATEWAY observes the destinationnetwork I D to determine how toroutethepacket. If the destinationnetwork is con- nected to the GATEWAY, the lower 16 bits of the TCPaddress are used to produce a local T C P address in the destination network. If the destination network is not connectedto the GATEWAY, the upper S bits are used to select a subsequent GATEWAY. We malx noeffort to specify how each in- dividualnetworkshallassociate the internetwork T C P
out the possibility that the local network understands the internetworkaddressingschemeandthusalleviates the GATEWAY of the routing responsibility. PORT ADDRESSING A receiving T C P is faced with the task of demultiplex- ing thestream of internetworkpackets it receives and reconstructing the original messages for each destination process. Eachoperatingsystemhasits own internal
16 bits aresufficient to serve as intcrnctwork portidentifiers. Asending process nccd not know how the destination
will beablc to parse thisnumberappropriately to find the proper buffer into which it will place arriving packets. We permit a large port number field to support processcs which wantto distinguishbctween many different messages streams concurrently. I n reality, we do not care how the 16 bits are sliced up by the TCP'sinvolved.
641
8 16 NETWORK TCP IDENTIFIER Fig. 4. ',TCPaddress.
Even though the transmitted port name field is large, it is still a compact external name for the internal repre- sentation of the port. The use of short names for port identifiers is often desirable to reduce transmission over- head and possibly reducepacket processing time at the dehnationTCP. Assigning short names to each port, however,requires an initialnegotiationbetweensource and destination to agree on a suitable short name assign- ment, the subsequentmaintenance of conversion tables a t both the source and the destination, and a final trans- action to release the short name. For dynamic assignment of port names, this negotiation is generally necessary in any case.
SEGMENTANDPACKETFORMATS
into segments whose formatis shown in moredetailin Fig. 6. The field lengths illustrated are merely suggestive. The first two fields (source port and destination port in the figure) have already been discussed in the preceding sectiononaddressing. The uses of t.he third and fourth fields (window and acknowledgmentin the figure) will be discussed laterinthe sectiononretransmission and duplicate detection.
tains both a sequence number and a byte count, aswell as a flag field and a check sum. The USCS of these fields are explained in the following section.
REASSEMBLYANDSEQUENCING The reconstruction of a message at the receiving T C P clearly requires' that eachinternetworkpacketcarry a sequence number which is unique to its particular desti- nation port message stream. The sequence numbers must bemonotonic increasing (or decreasing) since thcyare
mcssage. If the space of sequence numbers were infinite, we could simply assign the next one to each new packet. Clearly, this space cannot be infinite, andwe will consider what problems a finite sequence number space will cause when we discuss retransmission andduplicatedetection in the next section. We propose the following scheme for performing the sequencing of packets and hence the re- construction of messages by the destination TCP. A pair of ports will exchange one or more messages over
producedbyone port as if it were embedded in an in- finitely longstream of bytes. Each byteof the message has a unique sequence number which we takc to be its byte location relativc to the beginning of the stream. When a
Inthe case of encryptedpackets, a preliminary stage of re- assembly may be required prior to decryption.
CRRF AND KAHX: PACKET NETWORK INTERCOMMUNICATION 643
RETRANSMISSIONANDDUPLICATE DETECTION
proposea timeout and positive acknowledgment mecha- nism which will allow TCP’s torecover from packet losses from one HOST to another. A TCP transmits packets and waits for replies (acknowledgements) that are carried in
particularpacket is received, theTCP will retransmit.
mechanism,which is described inthe following para- graphs, will notbe called uponveryofteninpractice. Evidence already exists2 that individual networks can be effectively constructed without this feature. However, the
possible to recover from occasional network problems and allows a wide range of HOST protocol strategies to be in- corporated. We envision it will occasionally be invoked to allow HOST accommodation to infrequent overdemandsfor limited buffer resources, and otherwise not used much. Anyretransmission policy requiressomemeans by which the receiver can detect duplicate arrivals. Even if an infinitenumber of distinct packet sequencenumbers were available, the receiver mould still have the problem of knowing how long to rememberpreviouslyreceived
cated by the fact that only a finite number of distinct sequencenumbers areinfactavailable,and if they are reused, the receiver must be able to distinguish between new transmissions and retransmissions.
CYCLADES system (voie virtuelle transmission mode [SI) andthe ARPANET verydistant HOST connection [lS],
Suppose that the sequence number field in the inter- network header permits sequence numbers to range from
more than w bytes without receiving an acknowledgment. The w bytes serve as the window (see Fig. 11). Clearly, w must be less than n. The rules for sender and receiver are as follows.
the left window edge.
Left Window Edge I 0 a a+w- 1 n- 1
I< packet sequence number space^ - Fig. 10. The windowconcept.
Source Address
I Address
Destination I
6 7 8 9 10
Next Read Position End ReadPosition
Timeout
Fig. 11. Conceptual TCBformat.
expected. This effectively acknowledges bytes in between. The left windowedge is advanced to the next sequence number expected.
discarded, and the current leftwindow edge isreturned as acknowledgment. 3) Packets whosesequencenumbers lie withinthe receiver’s window but do not coinicide with the receiver’s leftwindowedge areoptionallykept ordiscarded, but are notacknowledged. This is the case when packets arrive out of order. We make some observations on this strategy. First, all computations with sequence numbers and window edges must be mademodulo n (e.g., byte 0 follows byte n - 1). Second, w must be less than n / Y ; otherwisea retrans- mission mayappeartothe receiver to bea new trans- mission in the case thatthe receiver hasaccepteda window’s worth of incoming packcts, but all acknowledg- ments havc been lost. Third, the receiver can either save ordiscardarrivingpackets whose!sequence numbersdo not coincide with the receiver’s left window. Thus, in the simplestimplementation,the receiver need notbuffer more than onepacketpermessagestream if space is critical. Fourth,multiplepacketscan be aclrnowledgcd simultaneously.Fifth,the receiver is ableto deliver messages t o processes in their proper order as a natural result of the reassemblymechanism. Sixth, whendupli- catesarcdetected,the acknowledgmentmethodused naturally works t o rcsynchronizcscndcr and receiver. Furthermore, if the rcccivcr acceptspackets whose sequcncenumbcrs lie withinthecurrent window but
The ARPANET is one such example. (^) required that a retransmission not appear to be a new transmission. Actually n / 2^ ismerely^ a convenient number^ t o^ use;^ it^ is^ only
644 IEEE TRANSACTIOM ON COMMUNICATIONS, MAY 1974
which are not coincident with the left window edge, an acknowledgment consisting of thecurrentleft window edge wouldact as a stimulus tocause retransmission of the unacknowledgedbytes.Finally, we mention an overlap problemwhichresultsfromretransmission, packet splitting,andalternaterouting of packetsthrough dif- ferent GATEWAYS. A600-byte packetmight pass through one GATEWAY andbebrokenintotwo300-bytepackets. On retrans- mission, the samepacketmight bebrokenintothree 200-byte packets going throughadifferent GATEWAY. Since each byte has a sequence number, there is no con- fusion at the receiving TCP. We leave for later the issue of initiallysynchronizing thesenderand receiver left window edges and the window size.
Every segment that arrives at the destination TCP is ultimately acknowledged byreturningthe sequence number of the next segment which must be passed to the process (it may not yet have arrived). Earlier we described the use of asequence number spaceand window to aidinduplicatedetection. Ac- knowledgments are carried in the processheader(see Fig. 6)and- along withthemthere is proviqion for a “suggested window”.which the receiver can use to control the flow of data from the sender. This is intended to be the main component of the process flow controlmecha- nism. The receiver is frcc to vary the windo& size accord-
size never exceeds half thc sequence number space. This flow controlmechanism is exceedinglypowerful and flexible and does notsuffer fromsynchronization troubles that may be encountered by incremental buffer allocationschemes [9],[lO]. Hoivever, it relies heavily on an effective retransmission strategy. The receiver can reduce the window even while packets are en route from the senderwhosewindow is presentlylarger.Thenet effect of thisreduction will be thatthe receiver may discardincomingpackets (theymaybeoutsidethc window) and reiterate thc currentwindow size along with a current window edge as acknowledgment.’By the same token, the sender can, uponoccasion, choose to send more than a window’s worth of data on the possibility that the reccivcr will expand the window to accept it (of course, the sender must notsend more,than half the sequence number space at any time).Normally, we would expect the sender toabidebythc window limitation.Expansion of the window by the rcccivcr mcrcly allows more data to be ac- cepted. Vor the receiving HOST witha small amount of buffer space,astrategy of discardingallpacketswhose scqucnccnumbersdo not coincide with the currcnt left cdgc of the window is probably necessary, but itwill incur thc cxpcnsc of cxtra delay and overhead for retransmis- sion.
The TCP has a component which handles input/output
rived, it validatesthe addresses and places the packet onaqueue.A pool of buffers canbesetup t o handle arrivals, andif all available buffers areused up, succeeding arrivalscanbediscarded since unacknowledgedpacket will be retransmitted. On output,a smaller amount of buffering is needed, since process buffers can hold the data to be transmitted Perhaps double buffering mill be adequate. We make nc attemptto specify how the bufferingshould bedone except to require that it be able to service the network with as little overhead as possible. Packet sized buffers one or morering buffers, or anyothercombination art possible candidates. When a packet arrivesat thedestination TCP, itis placec on a queuewhich the TCP services frequently. For ex ample, the TCPcould be interrupted when a queue place ment occurs. The TCP then attempts toplace the packel textintothe properplace in’theappropriate proces!
it canbechecksummed and acknowledged.Placemeni may fail for several reasons.
receive from the.etated source, or the destination port 11 may not exist. 2 ) There may be insufficient buffer space for the text 3) The beginningsequence number of thetext ma not coincide with the nextsequence number to bedeliverec to the process (e.g., the packet has arrived out of order) In the first case, the TCP shouldsimplydiscard thf packet(thusfar, noprovisionhasbeen made for err acknowledgments). Inthe second andthird cases, thc packet sequence numbercanbeinspectedto determinc whether the,packet textlies within the legitimate ivindow for reception. If it does, the TCP mayoptionally keep thc
can discard thepacket. I n either case theTCP car optionally acknowledgewith the current leftwindow edge
present in the active memoryof the HOST, but is stored or
the scheduler to’bring in the appropriate buffer and thc packet can be queued for latcr processing.
for temporary queueing of ‘incomingpackets, and ifthc TCI’ cannotquicklyusethearriving data (c.g., a TCI to TCP message) , then thc packet is discarded. Assuminf a sensibly functioning system, no other processes than thc one for which the packet was intended should be affectec
Thiscomponent canserve tohandleotherprotocols whoss associated control programs are designated by internetwork destina tion address.
646 COMMUNICATIONS, ON IEEE TRANSACTIONS MAY 1974
. Current Message /
Sent. Acked Sent. Not Acked Not Sent Partial Next Message Current Ack Next Seq. No. iw,ndowNext’Read E n d i e a d 1 Next Write^ t
. Sire Transmit Buffet
Fig. 12. Transmit buffer layout.
ordering of delivered messages is also desired, both TCP’smustmaintain sufficient infornmtion to allow proper sequencing. When this information is also present at bothends, t,hen an association is said to have occurred. Note that we have not said anything about a path, nor anything which implies that eitherendbeaware of the condition of theother. Only when bothpartnersare prepared to communicate with’ each other has an associ- ation occurred, andit is possible that neitherpartner may be able to verify that anassociation exists until some data flows between them.
CONNECTION-FREE PROTOCOLS WITH ASSOCIATIONS Inthe ARPANET, the interface message processors (IMP’S) do not have to open and close connections from source to destination. The reasonfor this is that con- nectionsare, in effect,alwaysopen, since the addresk of everysource and destination is never5 reassigned. When the name and the place are static and unchanging, it is only necessary to label a packetwithsourceanddesti- nation to transmit it through the network.I n our parlance, every source and destination forms an association. I n thc casc of processes, however, we find thatport addresses are continually being used and reused. Some ever-present processes could be assigned fixed addresses
posed, however, that every T C P had an infinite supply of port addresses so that no old address would ever be reused, then any dynamically created port would be assigned the nextunusedaddress. I n such an environment,there could neverbe any confusion by source and destination T C P as to theintended recipient or implied source of each message, and all ports would bc associates. Unfortunately,,TCP’s (or moreproperly,operating systems) tend not to have an infinitesupply of internal port addresses.Thcse internal addresscs are reassigned aft‘er the demise of each port. Walden [ l Z ] suggests that a set of uniqueuniformexternal port addresses could be supplied by a ccntralrcgistry. A newly createdport could apply to the central registry for an address which the central registry would guarantee to beunused by any HOST system in thc network. Each TCY could maintain tablcsmatchingexternal names withinternal ones, and use the external ones for communicationwithother
HOST is connected to a different IMP.
5 Unless the IMP is physicallymoved toanothersite, or the
processes. This idea violates t.he premise that interprocess communica,tionshould not requirecentralizedcontrol. One would have to extend the central registry service to includeall HOST’S in all the interconnectednetworks to apply this idea to our situation, and we therefore do not att’empt to adopt it. Let us consider the situationfrom the standpointof the
the window size and left window edge for both. On thc receive side, thistaskmight even be delayed until the firstpacketdestined for a given port arrives. By con- vention, the firstpacketshouldbemarked so that tht receiver will synchronize to thereceived sequence number On the send side, the firstrequest totransmit coulc cause a TCBto be setupwith some initial sequenct number(say, zero) andan assumed window size. Thc receiving ‘I’CP canreject the packet if it wishes anc notify the sending TCP of the correct window size via thc acknowledgment mechanism, but only if either
size and left window edge can be accomplished withou what would ordinarily’be called a connection setup. The firstpacket referencing a newly created RCE sent from ‘one associate to another can be marked with : bit which requests that the receiver synchronize his lef window edge with the sequencenumber of the arrivint
source and destination port addresses in the packet an( intheRCBto decide whether to accept or ignore thc request.
specify that it is willing to LISTEN to a specific port o “any” port. This last idea permits processes such as thl logger process to accept data arrivingfrom unspecifiec sources. This is purely a HOST hatter, however. The initial packet may contain datawhich can be store( or discarded by the destination, depending on the avail ability of destination buffer spaceat thetime. In the othe direction, acknowledgment is returned for receipt of datr which also specifies the receiver’s window size. If the receiving T C P should wanttorejectthesyn chronization request, it merely transmits an acknowledg ment carrying a release (REL) bit (see Fig. 8 ) indicatini
sible. The sending HOST waits for the acknowledgmen (after accepting or rejecting the synchronization request before sending the nestmessage or segment. This rejectiol is quite different from a negative data acknowledgment
acknowledgment is returned, the sending HOST ma:
CICRF AND K A H N : , PACKET 1\1<T\VORKINTICRCOMMUNICATION
retransmit without introducing confusion if, for example, the left window edgeis not changed onthe retransmission. I Because messages may be broken up into many packets ‘for transmission or during transmission, it will be neces- sary t o ignore the REL flag except in the case that the EM flag is also set’. This couldbeaccomplished either by t’heTCP or by the GATEWAY which could reset the flag
Fig. 9). At the end of an association, the TCP sends a packet with ES, EM, and REL flags set.Thepacket sequence number scheme will alert the receiving TCP if there are .;till outstandingpacketsintransit which havenotyet arrived, so a prcmaturc dissociation cannot occur. To assure that both TCP’s are aware that the associ- ation has ended,wc insist that the rcceiving TCP respond
own. Suppose now that a process sendsa single message to an associate including an RELalong with the data.Assuming
accept the data, the TCI’ will accumulate the incoming packets until the one marked ES, EM, BEL arrives, a t which point a REL is returned to the sender. The associ- ation is therebyterminatedandtheappropriateTCB and RCB are destroyed. If the first packet of a message
~ES, EM, and REL bits, then datawill flow “one message at a time.” This mode is very similar to the scheme de- scribed byWalden [12], since eachsucceedingmessage can only be accepted at the receiver after a new LISTEN (likeWalden’s RECEIVE) command is issued bythe receiving process to itsserving TCP. Note thatonly if the acknowledgment is received by the sender can the associ-
thatthe receiver mayerroneouslyacceptduplicate transmissions if the sender does not receive the acknowl- edgment.Thismayhappen if thesendertransmitsa
destinationhasalreadydestroyedanyrecord of the previous transmission. One wayof preventing this problem is todestroythe record of the association at the desti- nation only aftersome knownand suitablychosen timeout. However, this implies that a new association withthe same source and destination port identifiers could not be established until this timeout had expired. This problem
and REL bits are separated into different internetwork packets. We recognize that this problem must be solved, but do not go into further detail herc. Alternatively,both processes cansendonemessage, causing the respective TCP’s t o allocate RCB/TCB pairs at both ends which rendezvous with the exchanged data and then disappear. If the overhead of creating and dcstroyingRCB’sandTCB’s is small, suchaprotocol
S. Crocker of ARPA/IPT.
647
might be adequatefor most low-bandwidthuses. This idea might also form the basis for a relativelysecuretrans- mission system. If the communicating processes agree to change their external port addresses in some way known only to eachother(i.c.,pseudorandom),theneach message will.appear to the outside world asif it is part of a different association message stream. Even if the data is interceptedby a thirdparty,he will have no way of knowing that the datashould in fact be considered part of a sequence of messages. We have described the way in which processes develop associations with each other, thereby becoming associates for possible exchange of data. These associations need not involve the transmission of data prior to their formation and indeed two associates need not be able t o determine that they are associates until they attempt to communi- cate.
CONCLUSIONS
We have discussed some fundamental issues related to the interconnection of packetswitchingnetworks. I n particular, we have described a simple but very powerful and’ flexible protocolwhichprovides for variationin individualnetworkpacket sizes, transmission failures, sequencing, flow control, and the creation and destruction of process-to-process associations. Wehave considered some of the inlplementation issues that ariseandfound that the proposedprotocol is implementableby HOST’S of widely varying capacity. The next important step is to produce a detailed speci- fication of the protocol so that some initialexperinlents with it can be performed. These experiments are needed to determinesome of theoperationalparameters(e.g., how often and how far out of order do packets actually arrive;whatsort of delay is .there betweensegment acknowledgments;whatshouldberetransmissiontime- outs be?) of the proposed protocol.
ACI<NOWLEDGMENT
The authors wish t o thank a number of colleagues for helpful comments during earlydiscussions of international network protocols, especially R.Metcalfe,R.Scantle-
Pouzin who constructively commented on the fragmenta-
mented on the creation and destruction of associations.
REFERENCES L. Robertsand B. Wessler, “Computernetworkdevelopment to achieveresource sharing,”in 1970 SpringJointComputer Conf..AFIPSConf. Proc.. vol. 36. Montvale. N. J.: AFIPS Press: 1970, p p. ~545-549. L. Pouzin,“Presentationandmajor designaspects of the CYCLADEScomputernetwork,” in Proc. 3rd Data Com-
, - ~I ~
munications Symp., 1973. F. It. E. Dell, “Features of a proposed synchronous data net- work,” in Proc. 2nd Syrnp. Problems in the Optimization of Data Communications Systems, 1971, pp. 50-57.