home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2170 < prev    next >
Text File  |  1997-07-02  |  23KB  |  564 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     W. Almesberger
  8. Request for Comments: 2170                                  J. Le Boudec
  9. Category: Informational                                      P. Oechslin
  10.                                                LRC, DI-EPFL, Switzerland
  11.                                                                July 1997
  12.  
  13.  
  14.               Application REQuested IP over ATM (AREQUIPA)
  15.  
  16. Status of this Memo
  17.  
  18.    This memo provides information for the Internet community.  This memo
  19.    does not specify an Internet standard of any kind.  Distribution of
  20.    this memo is unlimited.
  21.  
  22. IESG Note:
  23.  
  24.    This RFC has not had the benefit of the rigorous peer review that is
  25.    part of the process in an IETF working group.  The technology it
  26.    describes has been implemented and is now undergoing testing. It
  27.    would be wise to analyze the results of this testing as well as to
  28.    understand alternatives before committing to this approach for IP
  29.    over ATM with QoS guarantees.
  30.  
  31. Abstract
  32.  
  33.    This document specifies a method for allowing ATM-attached hosts that
  34.    have direct ATM connectivity to set up end-to-end IP over ATM
  35.    connections within the reachable ATM cloud, on request from
  36.    applications, and for the exclusive use by the requesting
  37.    applications. This allows the requesting applications to benefit in a
  38.    straightforward way from ATM's inherent ability to guarantee the
  39.    quality of service (QoS).
  40.  
  41.    Given a mapping from service classes, as defined by INTSERV[6], to
  42.    ATM traffic descriptors, Arequipa can be used to implement integrated
  43.    services over ATM link layers. Usage of Arequipa to provide
  44.    integrated services even if ATM is only available for intermediate
  45.    links is not discussed in this document but should be straight-
  46.    forward.
  47.  
  48.    The major advantage of using an approach like Arequipa is that it
  49.    needs to be implemented only on the hosts using it. It requires no
  50.    extra service (eg. NHRP or RSVP) to be deployed on the switches or
  51.    routers of the ATM cloud.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Almesberger, et. al.         Informational                      [Page 1]
  59.  
  60. RFC 2170                        AREQUIPA                       July 1997
  61.  
  62.  
  63.    We discuss the implementation of Arequipa for hosts running IPv4 and
  64.    IPv6. As an illustration, we also discuss how World-Wide-Web
  65.    applications can use Arequipa to deliver documents with a guaranteed
  66.    quality of service.
  67.  
  68.    In particular we show how
  69.  
  70.      - Arequipa can be implemented in IPv4 by slightly modifying the
  71.      - Arequipa can be implemented in IPv6[3] by the appropriate use of
  72.        flow labels and the extension of the neighbour cache,
  73.      - Arequipa can be used in the Web by adding extra information in
  74.        the headers of HTTP requests and responses.
  75.  
  76.    Finally, we address safety and security implications.
  77.  
  78. 1. Introduction
  79.  
  80.    QoS guarantees are important for delivery of multi-media data and
  81.    commercial services on the Internet. When two applications on
  82.    machines running IP over ATM need to transfer data, all the necessary
  83.    gears to guarantee QoS can be found in the ATM layer.  We consider
  84.    the case where it is desired to use end-to-end ATM connections
  85.    between applications residing on ATM hosts that have end-to-end ATM
  86.    connectivity.
  87.  
  88.    Opening direct ATM connections between two applications is possible,
  89.    but then the already available transport protocols, like TCP, can not
  90.    be reused.
  91.  
  92.    This is why we propose Application REQuested IP over ATM (AREQUIPA).
  93.    Arequipa allows applications to request that two machines be
  94.    connected by a direct ATM connection with given QoS at the link
  95.    level. Arequipa makes sure that only data from the applications that
  96.    requested the connection actually goes through that connection. After
  97.    setup of the Arequipa connection, the applications can use the
  98.    standard IP protocol suite to exchange data.
  99.  
  100. 2. API semantics
  101.  
  102.    We now define a semantical API for Arequipa. Note that an actual API
  103.    may perform additional functions (eg.  mapping of a given service
  104.    specification to ATM traffic descriptors)
  105.  
  106.    We define the three new API functions for the TCP/IP stack:
  107.  
  108.    Arequipa_preset (socket_descriptor, destination IP address,
  109.                     destination protid/port, destination ATM Address,
  110.                     ATM service and QoS parameters)
  111.  
  112.  
  113.  
  114. Almesberger, et. al.         Informational                      [Page 2]
  115.  
  116. RFC 2170                        AREQUIPA                       July 1997
  117.  
  118.  
  119.      Arequipa_preset establishes or prepares establishment of a new ATM
  120.      connection to the given address with the given ATM service and QoS.
  121.      It makes sure that any further data sent on the specified socket
  122.      will use the new ATM connection.
  123.  
  124.      Arequipa_preset is invoked before a TCP/IP connection is
  125.      established or before sending data(grams), respectively. (Active
  126.      open.)
  127.  
  128.    Arequipa_expect (socket_descriptor, allow)
  129.  
  130.      Arequipa_expect prepares the system to use an expected incoming
  131.      Arequipa connection for outgoing traffic of a given socket. If
  132.      allow equals TRUE then, as soon as the socket receives data from an
  133.      incoming Arequipa connection, all its return traffic is sent over
  134.      that Arequipa connection. If allow equals FALSE the traffic from
  135.      that socket is always sent over the standard IP route. Note that
  136.      Arequipa_expect is only applicable to connection oriented sockets,
  137.      eg. TCP sockets or connected UDP sockets.
  138.  
  139.      Arequipa_expect is invoked by the peer which is expecting
  140.      data(grams) or accepting connections. (Passive open.) It is
  141.      typically called immediately after a socket has been created. It
  142.      may also be called when a data transfer is already going on.
  143.  
  144.    Arequipa_close (socket_descriptor)
  145.  
  146.      Closes the corresponding ATM connection. Any further traffic
  147.      between the endpoints is routed like other traffic. Arequipa_close
  148.      is implied when closing the socket.
  149.  
  150.    Note that the use of Arequipa_expect or _preset only reflects the
  151.    direction of the initial dialog in the Arequipa connection. Actual
  152.    data can flow in both directions.
  153.  
  154.    An actual implementation may use less arguments for Arequipa_preset
  155.    if some of the information is already passed by other networking
  156.    operations.
  157.  
  158. 3. Implementation with IPv4
  159.  
  160.    To implement Arequipa with IPv4, ATMARP must be able not only to
  161.    handle associations of ATM addresses and IP addresses, but also
  162.    associations of one ATM address with an IP address plus endpoint
  163.    (socket). This allows to dedicate an ATM connection for the traffic
  164.    between two endpoints.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Almesberger, et. al.         Informational                      [Page 3]
  171.  
  172. RFC 2170                        AREQUIPA                       July 1997
  173.  
  174.  
  175.    For the active open, a destination ATM address must be associated
  176.    with a socket. In systems using per-socket route and ARP caching,
  177.    this can be done by presetting the caches with the appropriate
  178.    values. Establishment of the SVC is delegated to ATMARP. Care must be
  179.    taken that routing and ARP information obtained through Arequipa does
  180.    not leak to other parts of the system.
  181.  
  182.    For the passive open, an incoming SVC must be associated with the
  183.    socket that terminates the corresponding connection or data flow.
  184.    Most of this functionality is already available in the existing
  185.    protocol stack. To avoid an incoming Arequipa SVC to be mistaken for
  186.    an IP-over-ATM SVC, the setup message uses a specific Broadband High
  187.    Layer Identifier (BHLI), see below. Seeing the BHLI, ATMARP knows
  188.    that the SVC is of the dedicated type. The socket to which it has to
  189.    be associated is identified as soon as a datagram is received through
  190.    the SVC. If an Arequipa_expect has been done for that socket, then
  191.    the SVC is used for all return traffic of that socket.
  192.  
  193.    If application A1 on host H1 wants a direct ATM connection to
  194.    application A2 on host H2 it does the following:
  195.  
  196.    Both applications first get in contact using the standard IP over ATM
  197.    to exchange the ATM address of the receiver (atm2) and the endpoints
  198.    (S1, S2) (i.e. protocol and port number; we assume that a protocol
  199.    with ports, such as TCP or UDP, is used) at both hosts between which
  200.    communication will occur. How this is performed depends on the
  201.    application protocols. In Section 5 we give an example for HTTP.
  202.  
  203.    A2 invokes Arequipa_expect to indicate that it wants to make use of
  204.    an expected incoming ATM connection.
  205.  
  206.    A1 invokes Arequipa_preset to open or prepare opening of an ATM
  207.    connection to H2 using ATM address atm2 and the QoS desired by A1 as
  208.    soon as data is sent through S1. The connection is associated with S1
  209.    such that no other traffic  (e.g. generated by other applications)
  210.    uses the new ATM connection.
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Almesberger, et. al.         Informational                      [Page 4]
  227.  
  228. RFC 2170                        AREQUIPA                       July 1997
  229.  
  230.  
  231.    An Arequipa connection shall be signaled by using the procedures and
  232.    codings described in RFC1755 [7], with the addition that the BHLI
  233.    information element be included in the SETUP message, with the
  234.    following coding:
  235.  
  236.     ------------------------------------------------------------------
  237.     | bb_high_layer_information                                      |
  238.     ------------------------------------------------------------------
  239.     |  high_layer_information_type    3            (vendor-specific  |
  240.     |                                               application id.) |
  241.     |  high_layer_information         00-60-D7     (EPFL OUI)        |
  242.     |                                 01-00-00-01  (Arequipa)        |
  243.     ------------------------------------------------------------------
  244.  
  245.    As soon as data arrives from H1:S1 at H2:S2, the ATM connection the
  246.    data has arrived on is identified as the dedicated connection for
  247.    this data flow and S2 is changed to exclusively send on that
  248.    connection.
  249.  
  250.    From this point on all traffic exchanged between S1 of A1 and S2 of
  251.    A2 will use the new ATM connection with the desired QoS.
  252.  
  253.    Note that it is possible for H1 and H2 to belong to the same LIS [2]
  254.    and still decide to use an Arequipa connection between applications,
  255.    in addition to one or several other, non-Arequipa ATM connections
  256.    between hosts H1 and H2. There may also exist several Arequipa
  257.    connections between two hosts.
  258.  
  259. 4. Implementation with IPv6
  260.  
  261.    With IPv6, sources take advantage of the Flow Label field in the IPv6
  262.    header [3].
  263.  
  264.    We assume as in [4] that the conceptual host model uses, among
  265.    others, a neighbour cache and a destination cache. The destination
  266.    cache holds entries about destinations to which traffic has been sent
  267.    recently, while the neighbour cache holds entries about neighbours to
  268.    which traffic has been sent recently. With the classical IP over ATM
  269.    model [1], entries in the neighbour cache can only refer to systems
  270.    in the same LIS; we propose to go beyond this limitation and allow
  271.    systems beyond the LIS to appear there and be treated as neighbours,
  272.    in the case where a direct link level connection (here, an ATM
  273.    connection) can be established.
  274.  
  275.    The destination is keyed in [4] by the IP (destination) address. We
  276.    replace this by the IP (destination) address and flow label.
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Almesberger, et. al.         Informational                      [Page 5]
  283.  
  284. RFC 2170                        AREQUIPA                       July 1997
  285.  
  286.  
  287.    We assume that with IPv6, a mechanism will be provided for
  288.    applications to request flow labels which, at the host, form a unique
  289.    flow-label/destination-address pair. This will prevent two different
  290.    flows which go to the same destination from accidentally using the
  291.    same flow label. Such a uniqueness requirement is also desirable for
  292.    other applications which rely on flow-label/destination-address
  293.    pairs, like for example RSVP.
  294.  
  295.    A typical scenario is:
  296.  
  297.    Application A1 on host H1 and application A2 on host H2 first get in
  298.    contact using the standard IP over ATM to exchange their ATM address
  299.    (atm1, atm2) and to define a protocol, port number pair (S1, S2) and
  300.    flow labels (L1, L2) for the communication over the ATM connection.
  301.    (We assume that a protocol with ports, such as TCP or UDP, is used).
  302.    How this is performed depends on the application protocols. In
  303.    Section 5 we give an example for HTTP.
  304.  
  305.    A2 tells its networking entity that it wants to send its outgoing
  306.    packets with flow label L2 over an expected incoming ATM connection.
  307.    A1 tells its data link entity to open an ATM connection to H2 using
  308.    ATM address atm2, with the QoS desired by A1. The connection is
  309.    associated with L1 and L2 as explained below so that no other traffic
  310.    generated by other applications uses the new ATM connection.
  311.  
  312.    From this point on all traffic exchanged between applications A1 on
  313.    H1 and application A2 on H2 will use this ATM connection.
  314.  
  315.    An example of destination and neighbour cache entries at H1 is given
  316.    below.
  317.  
  318.   Destination Cache
  319.            IPAddr    flowLabel   neighbourCache   pathMTU
  320.             H2         L1          ptr1             (1)
  321.             H2         *           ptr2             (2)
  322.  
  323.   Neighbour Cache
  324.    IPAddr  linkLayerAddr  isRouter  reachabilityState  invalidationTimer
  325.    H2      v2              no        (3)                t2
  326.    R3      v3              yes       REACHABLE          t3
  327.  
  328.  
  329.    In the example, the route to destination H2 for all traffic other
  330.    than the one using the ATM connection requested between application
  331.    A1 and A2 uses the default route (perhaps set up by the classical IP
  332.    model), with router R3 as the next hop; v2 is a pointer to an ATM
  333.    interface and a VPCI/VCI that identifies the Arequipa connection.
  334.    Similarly, v3 points to the ATM connection to router R3. ptr1 points
  335.  
  336.  
  337.  
  338. Almesberger, et. al.         Informational                      [Page 6]
  339.  
  340. RFC 2170                        AREQUIPA                       July 1997
  341.  
  342.  
  343.    to the first line in Neighbour Cache, and ptr2 to the second one.
  344.    Path MTUs (1) and (2) are obtained by ATM signaling; they may be
  345.    different. Reachability state (3) is determined as usual by the
  346.    reachability protocol [4].
  347.  
  348.    Host H1 must restrict the use of this ATM connection to datagrams
  349.    with flow label L1. Other traffic from H1 to H2 must use the generic
  350.    entry in the destination table (flow label = "*").  Host H1 must
  351.    restrict the use of flow label L1 for destination H2 to traffic
  352.    generated by application A1 on port S1. (The same holds by analogy
  353.    for host H2).
  354.  
  355.    On the receiving side, host H2 may use label L1 for routing
  356.    internally the IP packets to the appropriate entity.
  357.  
  358. 5. Example: Arequipa for the Web
  359.  
  360.    This is a brief explanation of how Web [5] servers and browsers can
  361.    use Arequipa to transmit documents with a guaranteed QoS.
  362.  
  363.    What we describe below does not violate the standards of HTML and
  364.    HTTP but makes use of their built-in extensibility. The server and
  365.    client we describe can thus interact seamlessly with non-modified
  366.    servers or clients. A similar extension could be used if Web
  367.    documents were to be exchanged using RSVP.
  368.  
  369.    Browsers add one extra field in all their requests or responses to
  370.    indicate their ATM address. Web documents are extended with meta
  371.    information to describe the ATM service and corresponding QoS needed
  372.    to transmit them. Note that this information could be in form of an
  373.    intserv flowspec and mapped to ATM traffic descriptors.
  374.  
  375.    If a browser always wants documents with QoS meta-information to be
  376.    delivered using Arequipa, it adds an additional field in its request
  377.    to indicate the port on which it is expecting the data.
  378.  
  379.    If a browser wants to decide whether Arequipa should be used or not,
  380.    it does not give the port on which the server should send the data.
  381.  
  382.    When a server gets a request with an ATM address, it checks whether
  383.    the requested document has QoS meta-information. If this is not the
  384.    case, it delivers the document like a standard server. If the
  385.    document has QoS meta-information, the server looks for a port
  386.    information in the request. If it finds a port, it opens an Arequipa
  387.    socket (Arequipa_preset) to the ATM address of the client with the
  388.    QoS given in the document. It sends the reply through this new
  389.    connection. If the server finds no port information, it sends only
  390.    the header of the reply (which includes meta-information) over the
  391.  
  392.  
  393.  
  394. Almesberger, et. al.         Informational                      [Page 7]
  395.  
  396. RFC 2170                        AREQUIPA                       July 1997
  397.  
  398.  
  399.    standard HTTP connection, as if the client had issued a HEAD or GET-
  400.    IF-MODIFIED request.
  401.  
  402.    When a client receives the header of a document it can decide whether
  403.    it wants the document to be transmitted using Arequipa or not. A
  404.    client without a priori knowledge about the document, may therefore
  405.    always want to retrieve the header before requesting the full
  406.    document.
  407.  
  408.    Illustration:
  409.  
  410.    A client requests some documents but wants to decide if QoS sensitive
  411.    documents should be sent using Arequipa or not. Thus it adds to its
  412.    requests its ATM address but not the socket information.
  413.  
  414.      GET batman.mpeg
  415.      UserAgent: MyAgent/1.0
  416.      ATM-address: my_public_address.my_private_address
  417.  
  418.    The server checks batman.mpeg for QoS meta info. It finds the meta
  419.    info and sees an ATM address, but no socket pragma in the request. It
  420.    only returns the header of the document, which includes the meta-
  421.    information:
  422.  
  423.  
  424.                                         HTTP/1.0 200 OK
  425.                                         Server: MyAgent/1.0
  426.                                         ATM-Service: CBR
  427.                                         ATM-QoS-PCR: 2000
  428.                                         Content-type: video/mpeg
  429.  
  430.  
  431.    The client sees the QoS info and decides that it wants to download
  432.    the document using Arequipa. It opens a TCP socket for listening,
  433.    makes the Arequipa_expect call and sends the following request:
  434.  
  435.      GET batman.mpeg
  436.      UserAgent: MyAgent/1.0
  437.      ATM-address: my_public_address.my_private_address
  438.      Pragma: socket=TCP.8090
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Almesberger, et. al.         Informational                      [Page 8]
  451.  
  452. RFC 2170                        AREQUIPA                       July 1997
  453.  
  454.  
  455.    Again the server checks batman.mpeg for QoS meta info. It finds the
  456.    meta info and sees the ATM address and the socket pragma in the
  457.    request. It creates a TCP socket, makes the Arequipa_preset call,
  458.    connects its TCP socket to the one of the client and sends the
  459.    response over the new TCP connection:
  460.  
  461.                                         HTTP/1.0 200 OK
  462.                                         Server: MyAgent/1.0 ATM.address
  463.                                         ATM-Service: CBR
  464.                                         ATM-QoS-PCR: 2000
  465.                                         Content-type: video/mpeg
  466.  
  467.                                         <mpeg data>
  468.  
  469.    When the server sends the data over the new TCP connection it also
  470.    sends a copy of the response header over the TCP connection on which
  471.    the request was made. For example, this allows a browser to spawn a
  472.    viewer before requesting the data, to give the Arequipa connection to
  473.    the viewer and to still get the status of the request over the normal
  474.    TCP connection.
  475.  
  476. 6. Safety considerations (loops)
  477.  
  478.    A major concern about ATM shortcuts in IP networks are routing loops.
  479.    Arequipa is not prone to such dangers since it establishes
  480.    connections between applications and not between hosts. All datagrams
  481.    traveling through an Arequipa connection are destined for a given
  482.    socket on the machine at the end of the connection and don't need to
  483.    be forwarded by the IP layer. Therefore, neither hosts nor routers
  484.    implementing Arequipa as described in this document must ever forward
  485.    IP packets received over Arequipa connections.
  486.  
  487. 7. Security considerations
  488.  
  489.    The main security problem we see with Arequipa is that it could be
  490.    used to bypass IP firewalls.
  491.  
  492.    IP firewalls are used to protect private networks connected to
  493.    untrusted IP networks. The network is configured such that all
  494.    traffic going into or coming from the protected network has to go
  495.    through the machine(s) acting as a firewall.
  496.  
  497.    If hosts in a network protected by a firewall are able to establish
  498.    direct ATM connections to hosts outside the protected network, then
  499.    Arequipa could be used to bypass the firewall. To avoid this, hosts
  500.    inside a protected network should not be given direct connectivity to
  501.    the outside of the network.
  502.  
  503.  
  504.  
  505.  
  506. Almesberger, et. al.         Informational                      [Page 9]
  507.  
  508. RFC 2170                        AREQUIPA                       July 1997
  509.  
  510.  
  511.    Arequipa can be used in a safe way by machines inside and outside a
  512.    protected network, if an application proxy is installed on the
  513.    firewall. In the Web, this is a typical scenario. Proxy HTTP servers
  514.    are often found on firewalls, not only for security reasons, but also
  515.    for caching. If an application proxy is used, each host can establish
  516.    an Arequipa connection to the proxy which can then relay and monitor
  517.    the traffic across the firewall.
  518.  
  519.    Note that hosts can easily identify (and refuse) unsolicited Arequipa
  520.    connections by the BHLI identifier that is passed at connection
  521.    setup.
  522.  
  523. 8. References
  524.  
  525.    [1] Laubach, M., Classical IP and ARP over ATM, RFC1577,
  526.        January 1994.
  527.  
  528.    [2] Cole, R. G., D. H. Shur, C. Villamizar, IP over ATM: A Framework
  529.        Document, RFC1932, April 1996.
  530.  
  531.    [3] Hinden, R. and S. Deering, Internet Protocol Version (IPv6)
  532.        Addressing Architecture, RFC1884, December 1995.
  533.  
  534.    [4] Narten, T., E. Nordmark and W.A. Simpson, Neighbour Discovery for
  535.        IPv6 (IPv6), RFC1970, August 1996.
  536.  
  537.    [5] Berners-Lee, T., R. Fielding, H. Nielsen, Hypertext Transfer
  538.        Protocol -- HTTP/1.0, RFC1945, May 1996.
  539.  
  540.    [6] Shenker, S./J. Wroclawski, Network Element Service Specification
  541.        Template, Work in Progess, November, 1995.
  542.  
  543.    [7] Perez, M., F.-C. Liaw, A. Mankin, E. Hoffman, D. Grossman, A.
  544.        Malis, ATM Signaling Support for IP over ATM, RFC1755, February
  545.        1995.
  546.  
  547. 9.  Authors' Address
  548.  
  549.       Werner Almesberger,
  550.       Jean-Yves Le Boudec,
  551.       Philippe Oechslin (contact author)
  552.  
  553.       Laboratoire de Reseaux de Communication
  554.       Swiss Federal Institute of Technology (EPFL)
  555.       1015 Lausanne
  556.       Switzerland
  557.  
  558.       email: {almesber, leboudec, oechslin}@di.epfl.ch
  559.  
  560.  
  561.  
  562. Almesberger, et. al.         Informational                     [Page 10]
  563.  
  564.