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

📄 rfc1735.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
   code and data structures may be realized differently.   Each NAS has a forwardingTable consisting of entries with the fields:       <networkLayerAddrPrefix, type, outIf, outIfAddr>   The networkLayerAddrPrefix field identifies a set of IP addresses   known to the NAS.  It consists of two subfields <ipAddr, mask>.   The type field indicates the type of the networkLayerAddrPrefix.  The   possible values are:   - locallyServed: The NAS is itself serving the     networkLayerAddrPrefix.  The outIf field denotes the NBMA interface     via which the served terminals can be reached and the outIfAddr     field has no meaning.  Such a forwardingTable entry has been     created by manual configuration.   - nasLearned: The NAS has learned about the networkLayerAddrPrefix     from another NAS.  The outIf and outIfAddr fields, respectively,     denote the NBMA interface and IP address of this next hop NAS.     Such a forwardingTable entry is a result of network layer address     prefix information exchange with one of the NAS' peer NASs.Heinanen & Govindan                                             [Page 6]RFC 1735                    NBMA ARP (NARP)                December 1994   - externallyLearned: The NAS has learned about the     networkLayerAddrPrefix from a peer router outside the served NBMA.     The outIf and outIfAddr fields, respectively, denote the NBMA     interface and IP address of this next hop NAS.  Such a     forwardingTable entry is a result of network layer address prefix     information exchange with one of the NAS' peer routers.   The protocol used to exchange networkLayerAddrPrefix information   among the NASs can be any regular IP intra-domain or inter-domain   routing protocol.   In addition to the forwardingTable, each NAS has an NARP cacheTable   consisting of entries with the fields:       <networkLayerAddr, nbmaAddr, timeStamp>   The entries in the cacheTable are learned from NARP replies   traversing the NAS.  In case of a negative cache entry the nbmaAddr   is empty.  The timeStamp field records the time when the cacheTable   entry has been created or updated.  It is used to determine if an   entry is a very recent one and to age old entries after a certain   hold period.   The following pseudocode defines how NBMA NARP requests and replies   are processed by an NAS.  procedure processRequest(request);    let bestMatch == matchForwardingTable(request.dIPa) do       if bestMatch then          if bestMatch.type == locallyServed then             let nbmaAddr == arp(request.dIPa) do                if nbmaAddr then                   genPosAuthReply(request.sIPa, request.dIPa, nbmaAddr)                else                   genNegAuthReply(request.sIPa, request.dIPa)                end             end          elseif bestMatch.type == nasLearned then             if not requestForAuthInfo?(request) or                   realBusyRightNow?() then                let cacheMatch == matchCacheTable(request.dIPa) do                   if cacheMatch and                         (not requestForAuthInfo?(request) or                            realRecentCacheEntry?(cacheMatch)) then                      if cacheMatch.nbmaAddr == EMPTY then                         genNegNonAuthReply(request.sIPa, request.dIPa)                      else                         genPosNonAuthReply(request.sIPa, request.dIPa,Heinanen & Govindan                                             [Page 7]RFC 1735                    NBMA ARP (NARP)                December 1994                            cacheMatch.nbmaAddr)                      end                   else /* no cache match */                      forwardRequest(request, bestMatch.OutIf,                         bestMatch.OutIfAddr)                   end                end             else /* request for authoritative information */                forwardRequest(request, bestMatch.OutIf,                   bestMatch.OutIfAddr)             end          else /* bestMatch.type == externallyLearned */             genNegAuthReply(request.sIPa, request.dIPa)          end       else /* no match in forwardingTable */          genNegAuthReply(request.sIPa, request.dIPa)       end    end  end  procedure processReply(reply);    addCacheTableEntry(reply.dIPa, reply.nbmaAddr, currentTime);    if reply.sIPa == selfIpAddr then       /* reply is to the NAS itself */    else       let bestMatch == matchForwardingTable(reply.sIPa) do          if bestMatch then             forwardReply(reply, bestMatch.outIf, bestMatch.outIfAddr)          end       end    end  end   The semantics of the procedures used in the pseudocode are explained   below.   matchForwardingTable(ipAddress) returns the forwardingTable entry   whose networkLayerAddrPrefix field is the longest match for ipAddress   or FALSE if no match is found.   arp(ipAddress) resolves the NBMA address corresponding to ipAddress.   It returns FALSE if the resolution fails.   genPosAuthReply(sourceIpAddr, destIpAddr, destNbmaAddr) and   genPosNonAuthReply(sourceIpAddr, destIpAddr, destNbmaAddr) generate a   positive, authoritative and non-authoritative reply with   sourceIpAddr, destIpAddr, and destNbmaAddr in Source IP address,   Destination IP address, and NBMA Address fields, respectively.Heinanen & Govindan                                             [Page 8]RFC 1735                    NBMA ARP (NARP)                December 1994   genNegAuthReply(sourceIpAddr, destIpAddr) and   genNegNonAuthReply(sourceIpAddr, destIpAddr) respectively generate a   negative, authoritative and non-authoritative reply with sourceIpAddr   and destIpAddr in Source IP address and Destination IP address   fields, respectively.   requestForAuthInfo?(request) tests if request is a Request for   authoritative information.   realBusyRightNow?() returns TRUE if the NAS is heavily loaded and   FALSE otherwise.   realRecentCacheEntry?(cacheTableEntry) returns TRUE if the   cacheTableEntry is very recently updated and FALSE otherwise.   matchCacheTable(ipAddr) returns a cacheTable entry whose   networkLayerAddr field is equal to ipAddr or FALSE if no match is   found.   forwardRequest(request, interface, ipAddr) decrements the Hop count   field of request, recomputes the NARP Checksum field, and forwards   request to ipAddr of interface provided that the value of the Hop   count field remains positive.   addCacheTableEntry(ipAddr, nbmaAddr, time) adds a new entry to the   cacheTable or overwrites an existing entry whose networkLayerAddr   field is equal to ipAddr.   forwardReply(reply, interface, ipAddr) decrements the Hop count field   of request, recomputes the NARP Checksum field, and forwards reply to   ipAddr of interface provided that the value of the Hop count field   remains positive.   Like NASs, each NBMA terminal has a forwardingTable and a cacheTable.   The forwardingTable is either manually configured or filled via   reachability information exchange with the terminal's NASs or peer   routers.   When the terminal wishes to find out the NBMA address of a particular   destination terminal, it first checks if a matching entry is found in   the forwardingTable.  If not, the destination is unreachable and the   terminal gives up.  If a forwardingTable entry is found, and if the   next hop belongs to one of the terminal's NASs, the terminal next   consults its cacheTable to obtain the NBMA address.  If no cache   match is found, the terminal generates a NARP request to the next hop   NAS.  If the reply to the NARP request is positive, the terminal   learns the NBMA address and updates its cacheTable with the new   information.Heinanen & Govindan                                             [Page 9]RFC 1735                    NBMA ARP (NARP)                December 19946. Discussion   The NARP semantics resembles closely the ATMARP semantics described   in [2].  The only actual differences are:   - NARP requests and replies include a hop count to prevent them from     looping forever in case of misconfigured NAS routing.   - NARP request and replies distinguish between authoritative and     non-authoritative information.   In order to keep the NBMA terminals as simple as possible, it would   be desirable to extend the the ATMARP protocol a little further so   that it could be also used as the terminal-NAS protocol.  This could   be easily accomplished just by adding three new operation codes to   ATMARP to cover the different kinds of queries and responses.  NARP   would then become the NAS-NAS protocol.  Finally, if the NASs are   co-located with the "classical" ATM ARP servers, the terminals would   not need to make any distinction between between local and foreign IP   subnetworks.   The NASs can also act as "connectionless servers" for the terminal by   advertizing to it all destinations no matter if they are inside or   outside the served NBMA.  Then, the terminal could choose either to   try to resolve the NBMA address of the destination or just to send   the IP packets to the NAS.  The latter option may be desirable if   communication with the destination is short-lived and/or doesn't   require much network resources.   NARP supports portability of NBMA terminals.  A terminal can be moved   anywhere within the NBMA network and still keep its original IP   address as long as its NAS(s) remain the same.  Requests for   authoritative information will always return the correct NBMA   address.References   [1] Plummer, D., "An Ethernet Address Resolution Protocol - or -       Converting Network Protocol Addresses to 48.bit Ethernet Address       for Transmission on Ethernet Hardware", STD 37, RFC 826, MIT,       November 1982.   [2] Laubach, M., "Classical IP and ARP over ATM", RFC 1577, Hewlett-       Packard Laboratories, January 1994.   [3] Piscitello, D., and J. Lawrence, "Transmission of IP Datagrams       over the SMDS Service, RFC 1209, Bell Communications Research,       March 1991.Heinanen & Govindan                                            [Page 10]RFC 1735                    NBMA ARP (NARP)                December 1994Acknowledgements   We would like to thank John Burnett of Adaptive, Dennis Ferguson of   ANS, Joel Halpern of Network Systems, and Paul Francis of Bellcore   for their valuable insight and comments to earlier versions of this   draft.Security Considerations   Security issues are not discussed in this memo.Authors' Addresses   Juha Heinanen   Telecom Finland   PO Box 228   SF-33101 Tampere   Finland   Phone: +358 49 500 958   EMail: Juha.Heinanen@datanet.tele.fi   Ramesh Govindan   USC/Information Sciences Institute   4676 Admiralty Way   Marina del Rey, CA 90292   Phone: +1 310-822-1511   EMail: govindan@isi.eduHeinanen & Govindan                                            [Page 11]

⌨️ 快捷键说明

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