⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1577.txt

📁 <VC++网络游戏建摸与实现>源代码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
   more individual ATM endpoint addresses.  Note: this does not   necessarily mean different End System Identifiers (ESIs) when NSAPAs   are used.  The last octet of an NSAPA is the NSAPA Selector (SEL)   field which can be used to differentiate up to 256 different LISs for   the same ESI. (Refer to Section 5.1.3.1, "Private Networks" in [9].)4.  Packet Format   Implementations MUST support IEEE 802.2 LLC/SNAP encapsulation as   described in [2].  LLC/SNAP encapsulation is the default packet   format for IP datagrams.   This memo recognizes that other encapsulation methods may be used   however, in the absence of other knowledge or agreement, LLC/SNAP   encapsulation is the default.Laubach                                                         [Page 6]RFC 1577             Classical IP and ARP over ATM          January 1993   This memo recognizes the future deployment of end-to-end signalling   within ATM that will allow negotiation of encapsulation method on a   per-VC basis.  Signalling negotiations are beyond the scope of this   memo.5.  MTU Size   The default MTU size for IP members operating over the ATM network   SHALL be 9180 octets. The LLC/SNAP header is 8 octets, therefore the   default ATM AAL5 protocol data unit size is 9188 octets [2].  In   classical IP subnets, values other than the default can be used if   and only if all members in the LIS have been configured to use the   non-default value.   This memo recognizes the future deployment of end-to-end signalling   within ATM that will allow negotiation of MTU size on a per-VC basis.   Signalling negotiations are beyond the scope of this document.6.  Address Resolution   Address resolution within an ATM logical IP subnet SHALL make use of   the ATM Address Resolution Protocol (ATMARP) (based on [3]) and the   Inverse ATM Address Resolution Protocol (InATMARP) (based on [12]) as   defined in this memo.  ATMARP is the same protocol as the ARP   protocol presented in [3] with extensions needed to support ARP in a   unicast server ATM environment.  InATMARP is the same protocol as the   original InARP protocol presented in [12] but applied to ATM   networks.  All IP stations MUST support these protocols as updated   and extended in this memo.  Use of these protocols differs depending   on whether PVCs or SVCs are used.6.1 Permanent Virtual Connections   An IP station MUST have a mechanism (eg. manual configuration) for   determining what PVCs it has, and in particular which PVCs are being   used with LLC/SNAP encapsulation.  The details of the mechanism are   beyond the scope of this memo.   All IP members supporting PVCs are required to use the Inverse ATM   Address Resolution Protocol (InATMARP) (refer to [12]) on those VCs   using LLC/SNAP encapsulation.  In a strict PVC environment, the   receiver SHALL infer the relevant VC from the VC on which the   InATMARP request (InARP_REQUEST) or response (InARP_REPLY) was   received.  When the ATM source and/or target address is unknown, the   corresponding ATM address length in the InATMARP packet MUST be set   to zero (0) indicating a null length, otherwise the appropriate   address field should be filled in and the corresponding length set   appropriately. InATMARP packet format details are presented later inLaubach                                                         [Page 7]RFC 1577             Classical IP and ARP over ATM          January 1993   this memo.   Directly from [12]: "When the requesting station receives the InARP   reply, it may complete the [ATM]ARP table entry and use the provided   address information.  Note: as with [ATM]ARP, information learned via   In[ATM]ARP  may be aged or invalidated under certain circumstances."   It is the responsibility of each IP station supporting PVCs to re-   validate [ATM]ARP table entries as part of the aging process.  See   Section 6.5 on "ATMARP Table Aging".6.2 Switched Virtual Connections   SVCs require support for ATMARP in the non-broadcast, non-multicast   environment that ATM networks currently provide. To meet this need a   single ATMARP Server MUST be located within the LIS. This server MUST   have authoritative responsibility for resolving the ATMARP requests   of all IP members within the LIS.   The server itself does not actively establish connections.  It   depends on the clients in the LIS to initiate the ATMARP registration   procedure.  An individual client connects to the ATMARP server using   a point-to-point VC. The server, upon the completion of an ATM   call/connection of a new VC specifying LLC/SNAP encapsulation, will   transmit an InATMARP request to determine the IP address of the   client.  The InATMARP reply from the client contains the information   necessary for the ATMARP Server to build its ATMARP table cache. This   information is used to generate replies to the ATMARP requests it   receives.   The ATMARP Server mechanism requires that each client be   administratively configured with the ATM address of the ATMARP Server   atm$arp-req as defined earlier in this memo. There is to be one and   only one ATMARP Server operational per logical IP subnet. It is   RECOMMENDED that the ATMARP Server also be an IP station. This   station MUST be administratively configured to operate and recognize   itself as the ATMARP Server for a LIS. The ATMARP Server MUST be   configured with an IP address for each logical IP subnet it is   serving to support InATMARP requests.   This memo recognizes that a single ATMARP Server is not as robust as   multiple servers which synchronize their databases correctly. This   document is defining the client-server interaction by using a simple,   single server approach as a reference model, and does not prohibit   more robust approaches which use the same client-server interface.Laubach                                                         [Page 8]RFC 1577             Classical IP and ARP over ATM          January 19936.3 ATMARP Server Operational Requirements   The ATMARP server accepts ATM calls/connections from other ATM end   points. At call setup and if the VC supports LLC/SNAP encapsulation,   the ATMARP server will transmit to the originating ATM station an   InATMARP request (InARP_REQUEST) for each logical IP subnet the   server is configured to serve. After receiving an InATMARP reply   (InARP_REPLY), the server will examine the IP address and the ATM   address. The server will add (or update) the <ATM address, IP   address> map entry and timestamp into its ATMARP table.  If the   InATMARP IP address duplicates a table entry IP address and the   InATMARP ATM address does not match the table entry ATM address and   there is an open VC associated with that table entry, the InATMARP   information is discarded and no modifications to the table are made.   ATMARP table entries persist until aged or invalidated. VC call tear   down does not remove ATMARP table entries.   The ATMARP server, upon receiving an ATMARP request (ARP_REQUEST),   will generate the corresponding ATMARP reply (ARP_REPLY) if it has an   entry in its ATMARP table.  Otherwise it will generate a negative   ATMARP reply (ARP_NAK).  The ARP_NAK response is an extension to the   ARMARP protocol and is used to improve the robustness of the ATMARP   server mechanism.  With ARP_NAK, a client can determine the   difference between a catastrophic server failure and an ATMARP table   lookup failure.  The ARP_NAK packet format is the same as the   received ARP_REQUEST packet format with the operation code set to   ARP_NAK, i.e., the ARP_REQUEST packet data is merely copied for   transmission with the ARP_REQUEST operation code reset to ARP_NAK.   Updating the ATMARP table information timeout, the short form: when   the server receives an ATMARP request over a VC, where the source IP   and ATM address match the association already in the ATMARP table and   the ATM address matches that associated with the VC, the server may   update the timeout on the source ATMARP table entry: i.e., if the   client is sending ATMARP requests to the server over the same VC that   it used to register its ATMARP entry, the server should examine the   ATMARP requests and note that the client is still "alive" by updating   the timeout on the client's ATMARP table entry.   Adding robustness to the address resolution mechanism using ATMARP:   when the server receives an ARP_REQUEST over a VC, it examines the   source information.  If there is no IP address associated with the VC   over which the ATMARP request was received and if the source IP   address is not associated with any other connection, then the server   will add the <ATM address, IP address> entry and timestamp into its   ATMARP table and associate the entry with this VC.Laubach                                                         [Page 9]RFC 1577             Classical IP and ARP over ATM          January 19936.4 ATMARP Client Operational Requirements   The ATMARP client is responsible for contacting the ATMARP server to   register its own ATMARP information and to gain and refresh its own   ATMARP entry/information about other IP members.  This means, as   noted above, that ATMARP clients MUST be configured with the ATM   address of the ATMARP server. ATMARP clients MUST:      1. Initiate the VC connection to the ATMARP server for         transmitting and receiving ATMARP and InATMARP packets.      2. Respond to ARP_REQUEST and InARP_REQUEST packets received on         any VC appropriately.  (Refer to Section 7, "Protocol Operation"         in [12].)      3. Generate and transmit ARP_REQUEST packets to the ATMARP server         and to process ARP_REPLY and ARP_NAK packets from the server         appropriately.  ARP_REPLY packets should be used to         build/refresh its own client ATMARP table entries.      4. Generate and transmit InARP_REQUEST packets as needed and to         process InARP_REPLY packets appropriately.  InARP_REPLY packets         should be used to build/refresh its own client ATMARP table         entries.  (Refer to Section 7, "Protocol Operation" in [12].)      5. Provide an ATMARP table aging function to remove its own old         client ATMARP tables entries after a convenient period of time.   Note: if the client does not maintain an open VC to the server, the   client MUST refresh its ATMARP information with the server at least   once every 20 minutes.  This is done by opening a VC to the server   and exchanging the initial InATMARP packets.6.5 ATMARP Table Aging   An ATMARP client or server MUST have knowledge of any open VCs it has   (permanent or switched), their association with an ATMARP table   entry, and in particular, which VCs support LLC/SNAP encapsulation.   Client ATMARP table entries are valid for a maximum time of 15   minutes.   Server ATMARP table entries are valid for a minimum time of 20   minutes.   Prior to aging an ATMARP table entry, an ATMARP server MUST generate   an InARP_REQUEST on any open VC associated with that entry. If an   InARP_REPLY is received, that table entry is updated and not deleted.Laubach                                                        [Page 10]RFC 1577             Classical IP and ARP over ATM          January 1993   If there is no open VC associated with the table entry, the entry is   deleted.   When an ATMARP table entry ages, an ATMARP client MUST invalidate the   table entry. If there is no open VC associated with the invalidated   entry, that entry is deleted. In the case of an invalidated entry and   an open VC, the ATMARP client must revalidate the entry prior to   transmitting any non address resolution traffic on that VC. In the   case of a PVC, the client validates the entry by transmitting an   InARP_REQUEST and updating the entry on receipt of an InARP_REPLY. In   the case of an SVC, the client validates the entry by transmitting an   ARP_REQUEST to the ATMARP Server and updating the entry on receipt of   an ARP_REPLY. If a VC with an associated invalidated ATMARP table   entry is closed, that table entry is removed.6.6 ATMARP and InATMARP Packet Format   Internet addresses are assigned independently of ATM addresses.  Each   host implementation MUST know its own IP and ATM address(es) and MUST   respond to address resolution requests appropriately.  IP members   MUST also use ATMARP and InATMARP to resolve IP addresses to ATM   addresses when needed.   The ATMARP and InATMARP protocols use the same hardware type   (ar$hrd), protocol type (ar$pro), and operation code (ar$op) data   formats as the ARP and InARP protocols [3,12].  The location of these   fields within the ATMARP packet are in the same byte position as   those in ARP and InARP packets.  A unique hardware type value has   been assigned for ATMARP.  In addition, ATMARP makes use of an   additional operation code for ARP_NAK.  The remainder of the   ATMARP/InATMARP packet format is different than the ARP/InARP packet   format.   The ATMARP and InATMARP protocols have several fields that have the   following format and values:   Data:     ar$hrd     16 bits  Hardware type     ar$pro     16 bits  Protocol type     ar$shtl     8 bits  Type & length of source ATM number (q)     ar$sstl     8 bits  Type & length of source ATM subaddress (r)     ar$op      16 bits  Operation code (request, reply, or NAK)     ar$spln     8 bits  Length of source protocol address (s)     ar$thtl     8 bits  Type & length of target ATM number (x)     ar$tstl     8 bits  Type & length of target ATM subaddress (y)     ar$tpln     8 bits  Length of target protocol address (z)     ar$sha     qoctets  source ATM number     ar$ssa     roctets  source ATM subaddressLaubach                                                        [Page 11]RFC 1577             Classical IP and ARP over ATM          January 1993     ar$spa     soctets  source protocol address     ar$tha     xoctets  target ATM number     ar$tsa     yoctets  target ATM subaddress     ar$tpa     zoctets  target protocol address   Where:     ar$hrd  -  assigned to ATM Forum address family and is                19 decimal (0x0013) [4].     ar$pro  -  see Assigned Numbers for protocol type number for                the protocol using ATMARP. (IP is 0x0800).     ar$op   -  The operation type value (decimal):                ARP_REQUEST   = 1                ARP_REPLY     = 2

⌨️ 快捷键说明

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