rfc1504.txt

来自「<VC++网络游戏建摸与实现>源代码」· 文本 代码 · 共 1,548 行 · 第 1/5 页

TXT
1,548
字号
   Once the data receiver opens a connection using the underlying   transport, the data receiver sends an Open Request packet, or Open-   Req, to the data sender. An Open-Req packet includes the following   information:   Send update information flags:  The states of the four send update   information (SUI) flags indicate whether the data sender should send   various types of update information over the connection. Typically,   the four SUI flags are set to 1.   Version number:  The version number field indicates the version of   AURP used by the data receiver. The current version number of AURP is   1.   Data field:  The optional data field allows exterior routers with   capabilities beyond those described in this document to notify other   exterior routers about such options, by initiating option   negotiation.  An exterior router that has similar capabilities   indicates that it accepts the options, completing option negotiation.   An exterior router that lacks such options ignores the information in   the data field.   Open Response Packet   When an exterior router receives an Open-Req, it becomes the data   sender and responds with an Open Response packet, or Open-Rsp, as   follows:      If the exterior router accepts the connection, it returns      information about its setup in the Open-Rsp. An Open-Rsp also      contains an optional data field. This data field indicates whether      the exterior router accepts the options in the data field of the      Open-Req to which it is responding.      If the exterior router cannot accept the connection-for example,      because the Open-Req does not contain the correct version number-it      returns an error in the Open-Rsp and closes the transport-layer      connection.   Figure 3-6 shows a connection-opening dialog between a data sender   and a data receiver.                 <<Figure 3-6  Connection-opening dialog>>Oppenheimer                                                    [Page 23]RFC 1504        Appletalk Update-Based Routing Protocol      August 1993   Routing Information Request Packet   Under AURP, once two exterior routers establish a connection, the   data receiver can request the data sender to send its routing   information by sending it a Routing Information Request packet, or   RI-Req.   Routing Information Response Packets   When the data sender receives an RI-Req, it reliably sends a sequence   of Routing Information Response packets, or RI-Rsp, to the exterior   router requesting the information.   The RI-Rsp packets provide a list of exported networks on the data   sender's local internet and the distance of each network from the   data sender. The data sender must finish sending RI-Rsp packets to   the exterior router requesting routing information before it can send   any other sequenced data over the connection. Figure 3-7 shows a   routing-information request/response dialog between a data sender and   a data receiver.        <<Figure 3-7  Routing-information request/response dialog>>   Zone Information Request Packet   The data receiver can obtain zone information for known networks on   the data sender's local internet at any time, by sending it a Zone   Information Request packet, or ZI-Req. A ZI-Req lists the numbers of   networks for which the data receiver is requesting zone information.   IMPORTANT: To prevent other exterior routers on a tunnel from sending   endless streams of ZI-Req packets across the tunnel-causing what is   referred to as a ZIP storm-an exterior router must not export   information about a network until it has a complete zone list for   that network.   Zone Information Response Packets   When the data sender receives a ZI-Req, it responds by sending   unsequenced Zone Information Response packets, or ZI-Rsp, to the data   receiver. Zone information is transaction data-thus, its reliable   delivery is not guaranteed. Figure 3-8 shows a zone-information   request/response dialog between a data sender and a data receiver.         <<Figure 3-8  Zone-information request/response dialog>>Oppenheimer                                                    [Page 24]RFC 1504        Appletalk Update-Based Routing Protocol      August 1993   Recovering Lost Zone Information   A data receiver enters a network-to-zone list association in its   routing table for each network for which it receives a ZI-Rsp packet.   If a data receiver that requested zone information for a network does   not receive a complete zone list for that network, it must retransmit   ZI-Req packets, requesting zone information for that network, until   it receives that network's complete zone information.   To determine if any ZI-Rsp packets were lost, the data receiver   periodically scans its routing table for networks for which the   associated zone lists are incomplete-that is, for zone lists that do   not include all zones associated with the networks. The data receiver   sends a ZI-Req to each data sender from which it received incomplete   zone information, listing the numbers of networks for which it has   incomplete zone lists. The data sender responds to zone information   requests by sending ZI-Rsp packets containing the requested   information to the data receiver.   Using AURP-Tr for Initial Information Exchange   The following sections describe the use of AURP-Tr-the default   transport-layer service for AURP-for initial information exchange.   OPEN REQUEST PACKET: An exterior router sends an Open-Req packet to      request that an AURP-Tr one-way connection with another exterior      router be established      specify the connection ID for that connection      pass the AURP version number, SUI flags, and optional data to the      other exterior router   If the exterior router does not receive an Open-Rsp from the exterior   router to which it sent an Open-Req, it must retransmit the Open-Req.   OPEN RESPONSE PACKET: When using AURP-Tr, an exterior router sends an   Open-Rsp to      acknowledge that a one-way connection has been established      reject a connection      return information about its environment, as well as any optional      data, to the exterior router from which it received an Open-ReqOppenheimer                                                    [Page 25]RFC 1504        Appletalk Update-Based Routing Protocol      August 1993   If an exterior router receives an Open-Req on a one-way connection   that is already open-that is, if it receives an Open-Req with the   same connection ID as an open one-way connection-an Open-Rsp sent   previously may have been lost. The exterior router receiving the   duplicate Open-Req should send a duplicate Open-Rsp to the sending   exterior router, unless it has already received some other packet on   the connection-such as an RI-Req-indicating the existence of a fully   established connection.   ROUTING INFORMATION RESPONSE PACKETS: When responding to a request   for routing information using AURP-Tr, an exterior router sends a   sequence of RI-Rsp packets to the exterior router requesting the   information.  However, an exterior router's complete list of network   numbers often fits in a single RI-Rsp packet. Each RI-Rsp packet   contains the following information:   Connection ID:  The connection ID identifies the specific one-way   connection to which a packet belongs.   Sequence number:  The sequence number identifies an individual packet   on a connection. Packets on a connection are numbered starting with   the number 1.   The data sender sending routing information must wait for the data   receiver to acknowledge that it has received each RI-Rsp packet in   the sequence-by sending an RI-Ack packet-before sending the next RI-   Rsp packet. Each RI-Rsp contains a flag that indicates whether it is   the last packet in the sequence. In the last RI-Rsp in the sequence,   this flag is set to 1. If the data sender receives no acknowledgment   of an RI-Rsp from the data receiver within a specified period of   time, it must retransmit the RI-Rsp.   ROUTING INFORMATION RESPONSE PACKETS: When an exterior router   receives an RI-Rsp, it verifies the packet's connection ID and   sequence number.  The connection ID must be the same as that in the   Open-Req. The sequence number must be either      the last sequence number received, indicating that the previous      acknowledgment was lost or delayed, and that this is a duplicate      RI-Rsp the next number in the sequence, indicating that this      RI-Rsp contains new routing information   If the connection ID or sequence number is invalid, the data receiver   discards the packet. Figure 3-9 shows a dialog between a data sender   and a data receiver in which the data receiver requests routing   information, the data sender responds by sending its routing   information, and the data receiver acknowledges the data sender's   response. If the data sender receives no acknowledgment, it sendsOppenheimer                                                    [Page 26]RFC 1504        Appletalk Update-Based Routing Protocol      August 1993   duplicate RI-Rsp packets until the data receiver responds with an   acknowledgment.     <<Figure 3-9 Routing-information request/response/acknowledgment                                 dialog>>   Once the data receiver has verified the information in the RI-Rsp, it   responds with a Routing Information Acknowledgment packet, or RI-Ack,   which contains the following information:   Connection ID:  The connection ID is the same as that in the RI-Rsp   packet.   Sequence number:  The sequence number is the same as that in the RI-   Rsp packet.   Send zone information flag:  The state of the send zone information   (SZI) flag in an RI-Ack packet indicates whether the RI-Ack packet   doubles as a ZI-Req packet. If the SZI flag is set to 1, the data   receiver sends the zone information associated with the networks   about which it sent routing information in the previous RI-Rsp.   Figure 3-10 shows a data receiver sending zone information to a data   sender in response to a ZI-Req and in response to an RI-Ack, which   optimizes the data flow.   When the data sender receives an RI-Ack, it verifies that the RI-Ack   corresponds to the outstanding RI-Rsp-that is, both packets have the   same connection ID and sequence number. Once the data sender has   verified the information in the RI-Ack, it responds by sending the   next RI-Rsp in the sequence, if any.   <<Figure 3-10  Nonoptimized and optimized flows of zone information>>   ZONE INFORMATION RESPONSE PACKETS: If the data sender receives an   RI-Ack with its SZI flag set to 1, it responds by sending ZI-Rsp   packets that contain the zone information associated with the   networks about which it sent routing information in the RI-Rsp being   acknowledged-just as it would if it received a ZI-Req for those   networks.   The data sender sends RI-Rsp and ZI-Rsp packets as independent data   streams. It sends RI-Rsp packets as sequenced data and ZI-Rsp packets   as transaction data. If the data sender receives an RI-Ack with its   SZI flag set to 1, it sends an unsequenced series of ZI-Rsp packets   that contain the following information:   Connection ID:  The connection ID is the same as that in theOppenheimer                                                    [Page 27]RFC 1504        Appletalk Update-Based Routing Protocol      August 1993   associated RI-Req.   Network number and zone list tuples: The exterior router sends the   zone information associated with each network number in the   corresponding RI-Rsp.   Reobtaining Routing Information   An exterior router can reobtain another exterior router's complete   routing information at any time, by sending an RI-Req packet. An   exterior router might need to reobtain complete routing information   for a one-way connection on which it is the data receiver under the   following circumstances:      During the initial routing-information exchange, the exterior      router set the SUI flags in the Open-Req to disable updates. The      exterior router can subsequently poll the other exterior router on      the connection by sending an RI-Req to that exterior router to      determine whether any of its routing information has changed.      The exterior router set the SUI flags to request updates, but      suspects that the routing information for the other exterior router      on the connection is incorrect or obsolete. The exterior router      should send an RI-Req to the other exterior router to obtain its      complete, updated routing information.   Whenever an exterior router receives an RI-Req from an exterior   router requesting updated routing information, it responds by sending   RI-Rsp packets, just as it does when it first receives an RI-Req. The   data sender also 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?