📄 rfc823.txt
字号:
routing updates to its neighbors. The gateway sends new updates to its neighbors if every one of the following three conditions occurs: 1) one of the gateway's interfaces changes state, 2) one of the gateway's neighbor gateways changes state, and 3) the gateway receives a routing update from a neighbor that is different from the update that it had previously received from that neighbor. The gateway sends routing updates only to neighbors that are currently in the "up" state. The gateway requests a routing update from neighbors that are in the "up" state, but from which it has yet received a -21- DARPA Internet Gateway September 1982 RFC 823 routing update. Routing updates are requested by setting the appropriate bit in the routing update being sent [Appendix A]. Similarly, if a gateway receives from a neighbor a routing update in which the bit requesting a routing update is set, the gateway sends the neighbor the most recent routing update. 4.4.5 Non-Routing Gateways A Non-routing Gateway is a gateway that forwards internet traffic, but does not implement the GGP routing algorithm. Networks that are behind a Non-routing Gateway are known a-priori to Routing Gateways. There can be one or more of these networks which are considered to be directly connected to the Non-routing Gateway. A Routing Gateway will forward a datagram to a Non- routing Gateway if it is addressed to a network behind the Non- routing Gateway. Routing Gateways currently do not send Redirects for Non-routing Gateways. A Routing Gateway will always use another Routing Gateway as a path instead of a Non- routing Gateways if both exist and are the same number of hops away from the destination network. The Non-routing Gateways path will be used only when the Routing Gateway path is down; when the Routing Gateway path comes back up, it will be used again. -22- DARPA Internet Gateway September 1982 RFC 823 4.4.6 Adding New Neighbors and Networks Gateways dynamically add routing information about new neighbors and new networks to their tables. The gateway maintains a list of neighbor gateway addresses. When a routing update is received, the gateway searches this list of addresses for the Internet source address of the routing update message. If the Internet source address of the routing update is not contained in the list of neighbor addresses, the gateway adds this address to the list of neighbor addresses and sets the neighbor's connectivity status to "down." Routing updates are not accepted from neighbors until the GGP polling mechanism has determined that the neighbor is up. This strategy of adding new neighbors requires that one gateway in each pair of neighbor gateways must have the neighbor's address configured in its tables. The newest gateway can be given a complete list of neighbors, thus avoiding the need to re-configure older gateways when new gateways are installed. Gateways obtain routing information about new networks in several steps. The gateway has a list of all the networks for which it currently maintains routing information. When a routing update is received, if the routing update contains information -23- DARPA Internet Gateway September 1982 RFC 823 about a new network, the gateway adds this network to the list of networks for which it maintains routing information. Next, the gateway adds the new network to its distance matrix. The distance matrix comprises the is the matrix of distances (number of hops) to networks as reported in routing updates from the neighbor gateways. The gateway sets the distance to all new networks to "infinity," and then computes new routes and new routing updates as outlined above. 4.5 Exterior Gateway Protocol The Exterior Gateway Protocol (EGP) is used to permit other gateways and gateway systems to pass routing information to the DARPA Internet gateways. The use of the EGP permits the user to perceive all of the networks and gateways as part of one total Internet system, even though the "exterior" gateways are disjoint and may use a routing algorithm that is different and not compatible with that used in the "interior" gateways. The important elements of the EGP are: o Neighbor Acquisition The procedure by which a gateway requests that it become a neighbor of another gateway. This is used when a gateway wants to become a neighbor of another in order to pass -24- DARPA Internet Gateway September 1982 RFC 823 routing information. This includes the capability to accept or refuse the request. o Neighbor Up/Down The procedure by which a gateway decides if another gateway is up or down. o Network Reachability Information The facility used to pass routing and neighbor information between gateways. o Gateway Going Down The ability of a gateway to inform other gateways that it is going down and no longer has any routes to any other networks. This permits a gateway to go down in an orderly way without disrupting the rest of the Internet system. A complete description of the EGP can be found in IEN-209, the "Exterior Gateway Protocol" [10]. -25- DARPA Internet Gateway September 1982 RFC 823 5 GATEWAY SOFTWARE The DARPA Internet Gateway runs under the MOS operating system [9] which provides facilities for: o Multiple processes o Interprocess communication o Buffer management o Asynchronous input/output o Shareable real-time clock There is a MOS process for each network that the gateway is directly connected to. A data structure called a NETBLOCK contains variables of interest for each network and pointers to local network routines. Network processes run common gateway code while network-specific functions are dispatched to the routines pointed to in the NETBLOCK. There are also processes for gateway functions which require their own timing, such as GGP and HMP. 5.1 Software Structure The gateway software can be divided conceptually into three parts: MOS Device Drivers, Network software, and Shared Gateway software. -26- DARPA Internet Gateway September 1982 RFC 823 5.1.1 Device Drivers The gateway has a set of routines to handle sending and receiving data for each type of hardware interface. There are routines for initialization, initiation, and interruption for both the transmit and receive sides of a device. The gateway supports the following types of devices: a) ACC LSI-11 1822 b) DEC IMP11a 1822 c) ACC LHDH 1822 d) ACC VDH11E e) ACC VDH11C f) Proteon Ring Network g) RSRE HDLC h) Interlan Ethernet i) BBN Fibernet j) ACC XQ/CP X.25 ** k) ACC XQ/CP HDH ** 5.1.2 Network Software For each connected network, the gateway has a set of eight routines which handle local network functions. The network routines and their functions are described briefly below. _______________ ** Planned, not yet supported. -27- DARPA Internet Gateway September 1982 RFC 823 Up.net Perform local network initialization such as flapping the 1822 ready line. Sg.net Handle specific local network timing functions such as timing out 1822 Destination Deads. Rc.net A message has been received from the network interface. Check for any input errors. Wc.net A message has been transmitted to the network interface. Check for any output errors. Rs.net Set up a buffer (or buffers) to receive messages on the network interface. Ws.net Transmit a message to the network interface. Hc.net Check the local network header of the received message. Perform any local network protocol tasks. Hb.net Rebuild the local network header. There are network routines for the following types of networks: o Arpanet (a,b,c,k) o Satnet (d,e,k) o Proteon Ring Network (f) o Packet Radio Network (a,b,c) o Rsre HDLC Null Network (g) o Ethernet (h) o Fibernet (i) o Telenet X.25 (j) ** Note: The letters in parentheses refer to the device drivers used _______________ ** Planned, not yet supported. -28- DARPA Internet Gateway September 1982 RFC 823 for each type of network as described in the previous section. 5.1.3 Shared Gateway Software The internet processing of a datagram is performed by a body of code which is shared by the network processes. This code includes routines to check the IP header, perform IP fragmentation, calculate the IP checksum, forward a datagram, and implement the routing, monitoring, and error reporting protocols. 5.2 Gateway Processes 5.2.1 Network Processes When the gateway starts up, each network process calls its local network initialization routine and read start routine. The read start routine sets up two maximum network size buffers for receiving datagrams. The network process then waits for an input complete signal from the network device driver. When a message has been received, the MOS Operating System signals the appropriate network process with an input complete signal. The network process wakes up and executes the net read -29- DARPA Internet Gateway September 1982 RFC 823 complete routine. After the message has been processed, the network process waits for more input. The net read complete routine is the major message processing loop in the gateway. The following actions are performed when a message has been received: o Call Local Network Read Complete Routine o Start more reads o Check local Network Header o Check Internet header o Check if datagram is for the gateway o Forward the datagram if necessary o Send ICMP error message if necessary. 5.2.2 GGP Process The GGP process periodically sends GGP echos to each of the gateway's neighbors to determine neighbor connectivity, and sends interface status messages addressed to itself to determine network connectivity. The GGP process also sends out routing updates when necessary. The details of the algorithms currently implemented by the GGP process are given in Section 4.4, Gateway-to-Gateway Protocol, and in Appendix C. -30- DARPA Internet Gateway September 1982 RFC 823 5.2.3 HMP Process The HMP process handles timer-based gateway statistics collection and the periodic transmission of traps. -31- DARPA Internet Gateway September 1982 RFC 823 APPENDIX A. GGP Message Formats Note that the GGP protocol is currently undergoing extensive changes to introduce the Exterior Gateway Protocol facility; this is the vehicle needed to permit gateways in other systems to exchange routing information with the gateways described in this document. Each GGP message consists of an Internet header followed by one of the messages explained below. The values (in decimal) in the Internet header used in a GGP message are as follows. Version 4. IHL Internet header length in 32-bit words. Type of Service 0. Total Length Length of Internet header and data in octets. ID, Flags, Fragment Offset 0. Time to Live Time to live in seconds. This field is decremented at least once by each machine that processes the datagram. Protocol Gateway Protocol = 3.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -