rfc2170.txt
来自「<VC++网络游戏建摸与实现>源代码」· 文本 代码 · 共 564 行 · 第 1/2 页
TXT
564 行
Network Working Group W. AlmesbergerRequest for Comments: 2170 J. Le BoudecCategory: Informational P. Oechslin LRC, DI-EPFL, Switzerland July 1997 Application REQuested IP over ATM (AREQUIPA)Status of this Memo This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution of this memo is unlimited.IESG Note: This RFC has not had the benefit of the rigorous peer review that is part of the process in an IETF working group. The technology it describes has been implemented and is now undergoing testing. It would be wise to analyze the results of this testing as well as to understand alternatives before committing to this approach for IP over ATM with QoS guarantees.Abstract This document specifies a method for allowing ATM-attached hosts that have direct ATM connectivity to set up end-to-end IP over ATM connections within the reachable ATM cloud, on request from applications, and for the exclusive use by the requesting applications. This allows the requesting applications to benefit in a straightforward way from ATM's inherent ability to guarantee the quality of service (QoS). Given a mapping from service classes, as defined by INTSERV[6], to ATM traffic descriptors, Arequipa can be used to implement integrated services over ATM link layers. Usage of Arequipa to provide integrated services even if ATM is only available for intermediate links is not discussed in this document but should be straight- forward. The major advantage of using an approach like Arequipa is that it needs to be implemented only on the hosts using it. It requires no extra service (eg. NHRP or RSVP) to be deployed on the switches or routers of the ATM cloud.Almesberger, et. al. Informational [Page 1]RFC 2170 AREQUIPA July 1997 We discuss the implementation of Arequipa for hosts running IPv4 and IPv6. As an illustration, we also discuss how World-Wide-Web applications can use Arequipa to deliver documents with a guaranteed quality of service. In particular we show how - Arequipa can be implemented in IPv4 by slightly modifying the - Arequipa can be implemented in IPv6[3] by the appropriate use of flow labels and the extension of the neighbour cache, - Arequipa can be used in the Web by adding extra information in the headers of HTTP requests and responses. Finally, we address safety and security implications.1. Introduction QoS guarantees are important for delivery of multi-media data and commercial services on the Internet. When two applications on machines running IP over ATM need to transfer data, all the necessary gears to guarantee QoS can be found in the ATM layer. We consider the case where it is desired to use end-to-end ATM connections between applications residing on ATM hosts that have end-to-end ATM connectivity. Opening direct ATM connections between two applications is possible, but then the already available transport protocols, like TCP, can not be reused. This is why we propose Application REQuested IP over ATM (AREQUIPA). Arequipa allows applications to request that two machines be connected by a direct ATM connection with given QoS at the link level. Arequipa makes sure that only data from the applications that requested the connection actually goes through that connection. After setup of the Arequipa connection, the applications can use the standard IP protocol suite to exchange data.2. API semantics We now define a semantical API for Arequipa. Note that an actual API may perform additional functions (eg. mapping of a given service specification to ATM traffic descriptors) We define the three new API functions for the TCP/IP stack: Arequipa_preset (socket_descriptor, destination IP address, destination protid/port, destination ATM Address, ATM service and QoS parameters)Almesberger, et. al. Informational [Page 2]RFC 2170 AREQUIPA July 1997 Arequipa_preset establishes or prepares establishment of a new ATM connection to the given address with the given ATM service and QoS. It makes sure that any further data sent on the specified socket will use the new ATM connection. Arequipa_preset is invoked before a TCP/IP connection is established or before sending data(grams), respectively. (Active open.) Arequipa_expect (socket_descriptor, allow) Arequipa_expect prepares the system to use an expected incoming Arequipa connection for outgoing traffic of a given socket. If allow equals TRUE then, as soon as the socket receives data from an incoming Arequipa connection, all its return traffic is sent over that Arequipa connection. If allow equals FALSE the traffic from that socket is always sent over the standard IP route. Note that Arequipa_expect is only applicable to connection oriented sockets, eg. TCP sockets or connected UDP sockets. Arequipa_expect is invoked by the peer which is expecting data(grams) or accepting connections. (Passive open.) It is typically called immediately after a socket has been created. It may also be called when a data transfer is already going on. Arequipa_close (socket_descriptor) Closes the corresponding ATM connection. Any further traffic between the endpoints is routed like other traffic. Arequipa_close is implied when closing the socket. Note that the use of Arequipa_expect or _preset only reflects the direction of the initial dialog in the Arequipa connection. Actual data can flow in both directions. An actual implementation may use less arguments for Arequipa_preset if some of the information is already passed by other networking operations.3. Implementation with IPv4 To implement Arequipa with IPv4, ATMARP must be able not only to handle associations of ATM addresses and IP addresses, but also associations of one ATM address with an IP address plus endpoint (socket). This allows to dedicate an ATM connection for the traffic between two endpoints.Almesberger, et. al. Informational [Page 3]RFC 2170 AREQUIPA July 1997 For the active open, a destination ATM address must be associated with a socket. In systems using per-socket route and ARP caching, this can be done by presetting the caches with the appropriate values. Establishment of the SVC is delegated to ATMARP. Care must be taken that routing and ARP information obtained through Arequipa does not leak to other parts of the system. For the passive open, an incoming SVC must be associated with the socket that terminates the corresponding connection or data flow. Most of this functionality is already available in the existing protocol stack. To avoid an incoming Arequipa SVC to be mistaken for an IP-over-ATM SVC, the setup message uses a specific Broadband High Layer Identifier (BHLI), see below. Seeing the BHLI, ATMARP knows that the SVC is of the dedicated type. The socket to which it has to be associated is identified as soon as a datagram is received through the SVC. If an Arequipa_expect has been done for that socket, then the SVC is used for all return traffic of that socket. If application A1 on host H1 wants a direct ATM connection to application A2 on host H2 it does the following: Both applications first get in contact using the standard IP over ATM to exchange the ATM address of the receiver (atm2) and the endpoints (S1, S2) (i.e. protocol and port number; we assume that a protocol with ports, such as TCP or UDP, is used) at both hosts between which communication will occur. How this is performed depends on the application protocols. In Section 5 we give an example for HTTP. A2 invokes Arequipa_expect to indicate that it wants to make use of an expected incoming ATM connection. A1 invokes Arequipa_preset to open or prepare opening of an ATM connection to H2 using ATM address atm2 and the QoS desired by A1 as soon as data is sent through S1. The connection is associated with S1 such that no other traffic (e.g. generated by other applications) uses the new ATM connection.Almesberger, et. al. Informational [Page 4]RFC 2170 AREQUIPA July 1997 An Arequipa connection shall be signaled by using the procedures and codings described in RFC1755 [7], with the addition that the BHLI information element be included in the SETUP message, with the following coding: ------------------------------------------------------------------ | bb_high_layer_information | ------------------------------------------------------------------ | high_layer_information_type 3 (vendor-specific | | application id.) | | high_layer_information 00-60-D7 (EPFL OUI) | | 01-00-00-01 (Arequipa) | ------------------------------------------------------------------ As soon as data arrives from H1:S1 at H2:S2, the ATM connection the data has arrived on is identified as the dedicated connection for this data flow and S2 is changed to exclusively send on that connection. From this point on all traffic exchanged between S1 of A1 and S2 of A2 will use the new ATM connection with the desired QoS. Note that it is possible for H1 and H2 to belong to the same LIS [2] and still decide to use an Arequipa connection between applications, in addition to one or several other, non-Arequipa ATM connections between hosts H1 and H2. There may also exist several Arequipa connections between two hosts.4. Implementation with IPv6 With IPv6, sources take advantage of the Flow Label field in the IPv6 header [3]. We assume as in [4] that the conceptual host model uses, among others, a neighbour cache and a destination cache. The destination cache holds entries about destinations to which traffic has been sent recently, while the neighbour cache holds entries about neighbours to which traffic has been sent recently. With the classical IP over ATM model [1], entries in the neighbour cache can only refer to systems in the same LIS; we propose to go beyond this limitation and allow systems beyond the LIS to appear there and be treated as neighbours, in the case where a direct link level connection (here, an ATM connection) can be established. The destination is keyed in [4] by the IP (destination) address. We replace this by the IP (destination) address and flow label.Almesberger, et. al. Informational [Page 5]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?