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 + -
显示快捷键?