Network Working Group R. Carlson
Request for Comments: 2583 ANL
Category: Informational L. Winkler
ANL
May 1999
Guidelines for Next Hop Client (NHC) Developers
1. Abstract
This document provides guidelines for developers of the Next Hop Resolution Protocol Clients (NHC). It assumes that the clients are directly connected to an ATM based NBMA network. The same principles will apply to clients connected to other types of NBMA networks. The intent is to define the interaction between the NHC code and the TCP/IP protocol stack of the local host operating system. The NHC is capable of sending NHRP requests to a Next Hop Resolution Protocol Server (NHS) to resolve both inter and intra LIS addresses. The NHS reply may be positive (ACK) indicating a short-cut path is available or negative (NAK) indicating that a shortcut is not available and the routed path must be used. The NHC must cache (maintain state) for both the ACK and NAK replies in order to use the correct shortcut or routed path. The NAK reply must be cached to avoid making repeated requests to the NHS when the routed path is being used.
2. Overview
In the Classical IP over ATM model [1], an ATM attached host communicates with an ATMARP server to resolve IP to ATM address semantics. This model supports the concept of a Logical IP Subnet (LIS) with intra LIS communications using direct PVCs/SVCs and inter LIS communications using IP routers to forward packets. This model easily maps to the conventional LAN model of subnets and routers. The Next Hop Resolution Protocol (NHRP) [2] defines how the LIS model can be modified to allow direct ATM SVCs (shortcut paths) for inter LIS traffic. With NHRP, nodes directly attached to an ATM network can bypass the IP routers and establish a direct switched virtual circuit to improve performance when needed.
Carlson & Winkler Informational [Page 1]
RFC 2583 Guidelines for NHC Developers May 1999
The NHS code replaces the ATMARP code in the ATMARP server. Each NHS serves a set of destination client hosts and cooperates with other NHSs to resolve NHRP next hop requests within their own logical ATM network. The NHC to NHS and NHS to NHS protocol interactions are described in [2]. Other documents in the NHRP series define the general applicability [3] and the transition from ATMARP servers to NHSs [4].
3. IP Processing
In the Classical IP LIS model [1] the TCP/IP protocol stack treats the ATM network as a simple data link layer protocol. When an application sends data using the Classical IP protocol, IP performs a routing table lookup to determine if the destination is reachable via a local interface or whether an intermediate router is the next hop to the IP destination.
Carlson & Winkler Informational [Page 2]
RFC 2583 Guidelines for NHC Developers May 1999
The ATMARP service functions exactly as the existing ARP service provided on Ethernet broadcast networks. Since the ARP service will only try and resolve addresses for nodes that are in a single IP subnet, the ARP table only needs to keep positive answers. No state information is retained about failed mappings.
4. NHC Processing
In this section we briefly describe what is required in order for a host to take advantage of shortcuts through the ATM network. On the host, a NHC process initiates various NHRP requests in order to obtain access to the NHRP service. Within the ATM subnetwork, the ATMARP server is replaced with a NHS. As defined in [4] the NHS is required to respond to both ATMARP and NHRP Resolution requests. In the nodes wishing to take advantage of shortcut paths across the ATM subnetwork, the ATMARP client code must be replaced with NHC code. This allows the source node to ask for the ATM AESA of both local and remote nodes. Finally the source node must be modified to know when it should ask for the ATM AESA of a remote node and when the local LIS router should be used. These modifications are described in the remainder of this document.
Carlson & Winkler Informational [Page 3]
RFC 2583 Guidelines for NHC Developers May 1999
4. Allow user application to override system default operation and explicitly request a shortcut or routed path for a flow.
5. Need for State
It is obvious that the IP to ATM AESA mappings should be maintained in a local cache to improve network performance. This soft state is maintained in today's ARP and ATMARP systems using timers to purge old or unused data. The NHC will maintain both inter and intra LIS IP to ATM Address mappings in the same manner. It may be less obvious that an NHC will also need to maintain this same soft state for inter LIS mappings using the routed path. If this state is not maintained, the source node will send requests to the NHS asking if a shortcut path can be setup every time a packet is sent over the routed path.
Carlson & Winkler Informational [Page 4]
RFC 2583 Guidelines for NHC Developers May 1999
3. Store state in an ATM MIB structure. This is the traditional location for storing ATM VCC data. It also provides a system wide service that is geared toward ATM services. This avoids munging the `ARP' table to hold negative data.
5.1 Using TCP
TCP is a connection orientated protocol that provides per-process state information using a TCP Protocol Control Block (PCB). This PCB can be used to save the shortcut/routed path state information. Using a quad-state flag that shows the USE_SHORT_CUT, TRY_SHORT_CUT, USE_ROUTED_PATH, or TRY_ROUTED_PATH states would allow each process to use the service it chooses. The advantage of this approach is that it allows per flow control over the use of the shortcut or routed path. The disadvantage is that this PCB is only created for TCP connections. UDP connections will only use the system default action.
Carlson & Winkler Informational [Page 5]
RFC 2583 Guidelines for NHC Developers May 1999 5.2 Using UDPUDP is a connectionless orientated protocol that doesn't provide any support for state information. It relies on the application to provide the necessary state information. In this case where should the state be stored? The user application could store this itself and pass this down to the kernel in some manner. Another option is to store this information in an ATM MIB structure. A third option is to allow a socket option (setsockopt) that the user application can set to override the default behavior.
5.3 Using ICMP
In keeping with the tradition of using ICMP echo packets for Internet management functions (e.g. ping, traceroute) then it will be necessary to allow these applications to run over the shortcut and routed paths. The user will need to be able to specify which path to use and a default action needs to be defined too.
6. Conclusions
NHRP provides new services and functionality for IP nodes using ATM networks. To use these services the client must store state information that describes whether a destination node is reachable via a shortcut or a routed path.
Carlson & Winkler Informational [Page 6]
RFC 2583 Guidelines for NHC Developers May 1999
To support this capability a new socket option will be created to allow the user application to control the operation of a particular connection (flow). This option will allow the user to specify that a connection use one of the following:
7. Security
The security issues for NHRP are addressed in other NHRP documents [2,3]. Some specific security issues for the NHC developer are discussed below.
Carlson & Winkler Informational [Page 7]
RFC 2583 Guidelines for NHC Developers May 1999 8. Authors' AddressesRichard Carlson Argonne National Laboratory
9. References:
[1] Laubach, M. and J. Halpern, "Classical IP and ARP over ATM", RFC
Carlson & Winkler Informational [Page 8]
RFC 2583 Guidelines for NHC Developers May 1999 10. Full Copyright StatementCopyright (C) The Internet Society (1999). All Rights Reserved.