📄 rfc891.txt
字号:
Network Working Group D.L. MillsRequest for Comments: 891 December 1983 DCN Local-Network ProtocolsThis RFC is a description of the protocol used in the DCN localnetworks to maintain connectivity, routing, and timekeepinginformation. These procedures may be of interest to designers andimplementers of other networks.1. Introduction This document describes the local-net architecture and protocolsof the Distributed Computer Network (DCN), a family of local netsbased on Internet technology and an implementation of PDP11-basedsoftware called the Fuzzball. DCN local nets have been in operationfor about three years and now include clones in the USA, UK, Norwayand West Germany. They typically include a number of PDP11 or LSI-11Fuzzballs, one of which is elected a gateway, and often include otherInternet-compatible hosts as well. The DCN local-net protocols are intended to provide connectivity,routing and timekeeping functions for a set of randomly connectedpersonal computers and service hosts. The design philosophy guidingthe Fuzzball implementation is to incorporate complete functionalityin every host, which can serve as a packet switch, gateway and servicehost all at the same time. When a set of Fuzzballs are connectedtogether using a haphazard collection of serial, parallel andcontention-bus interfaces, they organize themselves into a networkwith routing based on minimum delay. The purpose of this document is to describe the local-netprotocols used by the DCN to maintain connectivity, routing andtimekeeping functions. The document is an extensive revision andexpansion of Section 4.2 of [1] and is divided into two parts, thefirst of which is an informal description of the architecture,together with explanatory remarks. The second part consists of asemi-formal specification of the entities and protocols used todetermine connectivity, establish routing and maintain clocksynchronization and is designed to aid in the implementation of cohortsystems. The link-level coding is described in the appendix.2. Narrative Description The DCN architecture is designed for local nets of up to 256hosts and gateways using the Internet Protocol (IP) and clientprotocols. It provides adaptive routing and clock synchronizationfunctions in an arbitrary topology including point-to-point links andmultipoint bus systems. It is intended for use in connecting personalcomputers to each other and to service machines, gateways and otherhosts of the Internet community. However, it is not intended for usein large, complex networks and does not support the sophisticatedrouting and control algorithms of, for example, the ARPANET. A brief description of the process and addressing structure usedin the DCN may be useful in the following. A DCN physical host is aPDP11-compatible processor which supports a number of cooperatingsequential processes, each ofDCN Local-Network Protocols Page 2D.L. Millswhich is given a unique 8-bit identifier called its port ID. EveryDCN physical host contains one or more internet processes, each ofwhich supports a virtual host given a unique 8-bit identifier calledits host ID. Each virtual host can support multiple internet protocols,connections and, in addition, a virtual clock. Each physical hostcontains a physical clock which can operate at an arbitrary rate and,in addition, a 32-bit logical clock which operates at 1000 Hz and isassumed to be reset each day at 0000 hours UT. Not all physical hostsimplement the full 32-bit precision; however, in such cases theresolution of the logical clock may be somewhat less. There is a one-to-one correspondence between Internet addressesand host IDs. The host ID is formed from a specified octet of theInternet address to which is added a specified offset. The octetnumber and offset are selected at configuration time and must be thesame for all DCN hosts sharing the local net. For class-B and class-Cnets normally the fourth octet is used in this way for routing withinthe local net. In the case of class-B nets, the third octet isconsidered part of the net number by DCN hosts; therefore, this octetcan be used for routing between DCN local nets. For class-A netsnormally the third octet (ARPANET logical-host field) is used forrouting where necessary. Each DCN physical host is identified by a host ID for the purposeof detecting loops in routing updates, which establish theminimum-delay paths between the virtual hosts. By convention, thephysical host ID is assigned as the host ID of one of its virtualhosts. A link to a neighbor net is associated with a special virtualhost, called a gateway, which is assigned a unique host ID. The links connecting the various physical hosts together and toforeign nets can be distributed in arbitrary ways, so long as the netremains fully connected. If full connectivity is lost, due to a linkor host fault, the virtual hosts in each of the surviving segments cancontinue to operate with each other and, once connectivity isrestored, with all of them. Datagram routing is determined entirely by internet address -there is no local leader as in the ARPANET. Each physical hostcontains two tables, the Host Table, which is used to determine theoutgoing link to each other local-net host, and the Net Table, whichis used to determine the outgoing host (gateway) to each other net.The Host Table contains estimates of roundtrip delay and logical-clockoffset for all virtual hosts in the net and is indexed by host ID.For the purpose of computing these estimates the delay and offset ofeach virtual host relative to the physical host in which it resides isassumed zero. The single exception to this is a special virtual hostassociated with an NBS radio time-code receiver, where the offset iscomputed relative to the broadcast time. The Net Table contains an entry for every neighbor net that maybe connected to the local net and, in addition, certain other netsthat are notDCN Local-Network Protocols Page 3D.L. Millsneighbors. Each entry contains the net number, as well as the host IDof the local-net gateway to that net. The routing function simplylooks up the net number in the Net Table, finds the host ID of thegateway and retrieves the port ID of the net-output process from theHost Table. Other information is included in the Host Table and NetTable as described below. The delay and offset estimates are updated by HELLO messagesexchanged on the links connecting physical-host neighbors. The HELLOmessages are exchanged frequently, but not so as to materially degradethe throughput of the link for ordinary data messages. A HELLOmessage contains a copy of the delay and offset information from theHost Table of the sender, as well as information to compute theroundtrip delay and logical-clock offset of the receiver relative tothe sender. The routing algorithm is similar to that (formerly) used in theARPANET and other places in that the roundtrip (biased) delay estimatecalculated to a neighbor is added to each of the delay estimates givenin its HELLO message and compared with the corresponding delayestimates in the Host Table. If a delay computed in this way is lessthan the delay already in the Host Table, the routing to thecorresponding virtual host is changed accordingly. The detailedoperation of this algorithm, which includes provisions for hostup-down logic and loop suppression, is summarized in a later section. DCN local nets are self-configuring for all hosts and neighbornets; that is, the routing algorithms will find minimum-delay pathsbetween all hosts and gateways to neighbor nets. In addition,timekeeping information can be exchanged using special HELLO messagesbetween neighboring DCN local nets. For routing beyond neighbor netsadditional entries can be configured in the Net Tables as required.In addition, a special entry can be configured in the Net Tables whichspecifies the host ID of the gateway to all nets not explicitlyincluded in the table. For routing via the ARPANET and its reachable nets a selectedlocal-net host is equipped with an IMP interface and configured with aGGP/EGP Gateway process. This process maintains the Net Table of thelocal host, including ARPANET leaders, dynamically as part of theGGP/EGP protocol interactions with other ARPANET gateways. GGP/EGPprotocol interactions are possibly with non-ARPANET gateways as well. The portable virtual-host structure used in the DCN encourages arather loose interpretation of addressing. In order to minimizeconfusion in the following, the term "host ID" will be applied only tovirtual hosts, while "host number" will be applied to the physicalhost, called generically the DCN host.2.1. Net and Host Tables There are two tables in every DCN host which control routing ofInternet Protocol (IP) datagrams: the Net Table and the Host Table.The Net Table is used to determine the host ID of the gateway on theroute to a foreign net,DCN Local-Network Protocols Page 4D.L. Millswhile the Host Table is used to determine the link, with respect tothe DCN host, on the route to a virtual host. The Host Table ismaintained dynamically using updates generated by periodic HELLOmessages. The Net Table is fixed at configuration time for all DCNhosts except those that support a GGP/EGP Gateway process. In thesecases the Net Table is updated as part of the gateway operations. Inaddition, entries in either table can be changed by operator commands. The Net Table format is shown in Figure 1. 1 0 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Net Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Net(2) | Net(1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Index | Net(3) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hops | Gateway ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Gateway Leader | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1. Net Table Entry The "Net Name" field defines a short (RAD50) name for the net,while the "Net" fields define the class A/B/C net number. The"Gateway ID" field contains the host ID of the first gateway to thenet and the "Hops" field the number of hops to it. The remainingfields are used only by the GGP/EGP Gateway process and include the"Index" field, which contains an index into the routing matrix. andthe "Gateway Leader" field, which contains the (byte-swapped)local-net leader for the gateway on a neighbor net. The Net Table contains an indefinite number of entries and isterminated by a special entry with all "Net" fields set to zero. Ifthe "Hops" field of this entry is less than 255, the "Gateway ID"field of this entry is used for all nets not in the table. If the"Hops" field is 255 all nets not explicitly mentioned in the tableappear unreachable. The Host Table format is shown in Figure 2.DCN Local-Network Protocols Page 5D.L. Mills 1 0 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | Port ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | Local Leader | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Update Timestamp + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2. Host Table Entry The ordinal position of each Host Table entry corresponds to itshost ID. The "Name" field contains a short (RAD50) name forconvenient reference. The "Port ID" field contains the port ID of thenet-output process on the shortest path to this virtual host and the"Delay" field contains the measured roundtrip delay to it. The"Offset" field contains the difference between the logical clock ofthis host and the logical clock of the local host. The "Local Leader"field contains information used to construct the local leader of theoutgoing packet, for those nets that require it. The "UpdateTimestamp" field contains the logical clock value when the entry waslast updated and the "TTL" field the time (in seconds) remaining untilthe virtual host is declared down. All fields except the "Name" field are filled in as part of therouting update process, which is initiated upon arrival of a HELLOmessage from a neighboring DCN host. This message takes the form ofan IP datagram carrying the reserved protocol number 63 and a datafield as shown in Figure 3.DCN Local-Network Protocols Page 6D.L. Mills 1 0 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -