summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2170.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2170.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2170.txt')
-rw-r--r--doc/rfc/rfc2170.txt563
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc2170.txt b/doc/rfc/rfc2170.txt
new file mode 100644
index 0000000..fc4c56f
--- /dev/null
+++ b/doc/rfc/rfc2170.txt
@@ -0,0 +1,563 @@
+
+
+
+
+
+
+Network Working Group W. Almesberger
+Request for Comments: 2170 J. Le Boudec
+Category: 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]
+
+RFC 2170 AREQUIPA July 1997
+
+
+ We assume that with IPv6, a mechanism will be provided for
+ applications to request flow labels which, at the host, form a unique
+ flow-label/destination-address pair. This will prevent two different
+ flows which go to the same destination from accidentally using the
+ same flow label. Such a uniqueness requirement is also desirable for
+ other applications which rely on flow-label/destination-address
+ pairs, like for example RSVP.
+
+ A typical scenario is:
+
+ Application A1 on host H1 and application A2 on host H2 first get in
+ contact using the standard IP over ATM to exchange their ATM address
+ (atm1, atm2) and to define a protocol, port number pair (S1, S2) and
+ flow labels (L1, L2) for the communication over the ATM connection.
+ (We assume that a protocol with ports, such as TCP or UDP, is used).
+ How this is performed depends on the application protocols. In
+ Section 5 we give an example for HTTP.
+
+ A2 tells its networking entity that it wants to send its outgoing
+ packets with flow label L2 over an expected incoming ATM connection.
+ A1 tells its data link entity to open an ATM connection to H2 using
+ ATM address atm2, with the QoS desired by A1. The connection is
+ associated with L1 and L2 as explained below so that no other traffic
+ generated by other applications uses the new ATM connection.
+
+ From this point on all traffic exchanged between applications A1 on
+ H1 and application A2 on H2 will use this ATM connection.
+
+ An example of destination and neighbour cache entries at H1 is given
+ below.
+
+ Destination Cache
+ IPAddr flowLabel neighbourCache pathMTU
+ H2 L1 ptr1 (1)
+ H2 * ptr2 (2)
+
+ Neighbour Cache
+ IPAddr linkLayerAddr isRouter reachabilityState invalidationTimer
+ H2 v2 no (3) t2
+ R3 v3 yes REACHABLE t3
+
+
+ In the example, the route to destination H2 for all traffic other
+ than the one using the ATM connection requested between application
+ A1 and A2 uses the default route (perhaps set up by the classical IP
+ model), with router R3 as the next hop; v2 is a pointer to an ATM
+ interface and a VPCI/VCI that identifies the Arequipa connection.
+ Similarly, v3 points to the ATM connection to router R3. ptr1 points
+
+
+
+Almesberger, et. al. Informational [Page 6]
+
+RFC 2170 AREQUIPA July 1997
+
+
+ to the first line in Neighbour Cache, and ptr2 to the second one.
+ Path MTUs (1) and (2) are obtained by ATM signaling; they may be
+ different. Reachability state (3) is determined as usual by the
+ reachability protocol [4].
+
+ Host H1 must restrict the use of this ATM connection to datagrams
+ with flow label L1. Other traffic from H1 to H2 must use the generic
+ entry in the destination table (flow label = "*"). Host H1 must
+ restrict the use of flow label L1 for destination H2 to traffic
+ generated by application A1 on port S1. (The same holds by analogy
+ for host H2).
+
+ On the receiving side, host H2 may use label L1 for routing
+ internally the IP packets to the appropriate entity.
+
+5. Example: Arequipa for the Web
+
+ This is a brief explanation of how Web [5] servers and browsers can
+ use Arequipa to transmit documents with a guaranteed QoS.
+
+ What we describe below does not violate the standards of HTML and
+ HTTP but makes use of their built-in extensibility. The server and
+ client we describe can thus interact seamlessly with non-modified
+ servers or clients. A similar extension could be used if Web
+ documents were to be exchanged using RSVP.
+
+ Browsers add one extra field in all their requests or responses to
+ indicate their ATM address. Web documents are extended with meta
+ information to describe the ATM service and corresponding QoS needed
+ to transmit them. Note that this information could be in form of an
+ intserv flowspec and mapped to ATM traffic descriptors.
+
+ If a browser always wants documents with QoS meta-information to be
+ delivered using Arequipa, it adds an additional field in its request
+ to indicate the port on which it is expecting the data.
+
+ If a browser wants to decide whether Arequipa should be used or not,
+ it does not give the port on which the server should send the data.
+
+ When a server gets a request with an ATM address, it checks whether
+ the requested document has QoS meta-information. If this is not the
+ case, it delivers the document like a standard server. If the
+ document has QoS meta-information, the server looks for a port
+ information in the request. If it finds a port, it opens an Arequipa
+ socket (Arequipa_preset) to the ATM address of the client with the
+ QoS given in the document. It sends the reply through this new
+ connection. If the server finds no port information, it sends only
+ the header of the reply (which includes meta-information) over the
+
+
+
+Almesberger, et. al. Informational [Page 7]
+
+RFC 2170 AREQUIPA July 1997
+
+
+ standard HTTP connection, as if the client had issued a HEAD or GET-
+ IF-MODIFIED request.
+
+ When a client receives the header of a document it can decide whether
+ it wants the document to be transmitted using Arequipa or not. A
+ client without a priori knowledge about the document, may therefore
+ always want to retrieve the header before requesting the full
+ document.
+
+ Illustration:
+
+ A client requests some documents but wants to decide if QoS sensitive
+ documents should be sent using Arequipa or not. Thus it adds to its
+ requests its ATM address but not the socket information.
+
+ GET batman.mpeg
+ UserAgent: MyAgent/1.0
+ ATM-address: my_public_address.my_private_address
+
+ The server checks batman.mpeg for QoS meta info. It finds the meta
+ info and sees an ATM address, but no socket pragma in the request. It
+ only returns the header of the document, which includes the meta-
+ information:
+
+
+ HTTP/1.0 200 OK
+ Server: MyAgent/1.0
+ ATM-Service: CBR
+ ATM-QoS-PCR: 2000
+ Content-type: video/mpeg
+
+
+ The client sees the QoS info and decides that it wants to download
+ the document using Arequipa. It opens a TCP socket for listening,
+ makes the Arequipa_expect call and sends the following request:
+
+ GET batman.mpeg
+ UserAgent: MyAgent/1.0
+ ATM-address: my_public_address.my_private_address
+ Pragma: socket=TCP.8090
+
+
+
+
+
+
+
+
+
+
+
+Almesberger, et. al. Informational [Page 8]
+
+RFC 2170 AREQUIPA July 1997
+
+
+ Again the server checks batman.mpeg for QoS meta info. It finds the
+ meta info and sees the ATM address and the socket pragma in the
+ request. It creates a TCP socket, makes the Arequipa_preset call,
+ connects its TCP socket to the one of the client and sends the
+ response over the new TCP connection:
+
+ HTTP/1.0 200 OK
+ Server: MyAgent/1.0 ATM.address
+ ATM-Service: CBR
+ ATM-QoS-PCR: 2000
+ Content-type: video/mpeg
+
+ <mpeg data>
+
+ When the server sends the data over the new TCP connection it also
+ sends a copy of the response header over the TCP connection on which
+ the request was made. For example, this allows a browser to spawn a
+ viewer before requesting the data, to give the Arequipa connection to
+ the viewer and to still get the status of the request over the normal
+ TCP connection.
+
+6. Safety considerations (loops)
+
+ A major concern about ATM shortcuts in IP networks are routing loops.
+ Arequipa is not prone to such dangers since it establishes
+ connections between applications and not between hosts. All datagrams
+ traveling through an Arequipa connection are destined for a given
+ socket on the machine at the end of the connection and don't need to
+ be forwarded by the IP layer. Therefore, neither hosts nor routers
+ implementing Arequipa as described in this document must ever forward
+ IP packets received over Arequipa connections.
+
+7. Security considerations
+
+ The main security problem we see with Arequipa is that it could be
+ used to bypass IP firewalls.
+
+ IP firewalls are used to protect private networks connected to
+ untrusted IP networks. The network is configured such that all
+ traffic going into or coming from the protected network has to go
+ through the machine(s) acting as a firewall.
+
+ If hosts in a network protected by a firewall are able to establish
+ direct ATM connections to hosts outside the protected network, then
+ Arequipa could be used to bypass the firewall. To avoid this, hosts
+ inside a protected network should not be given direct connectivity to
+ the outside of the network.
+
+
+
+
+Almesberger, et. al. Informational [Page 9]
+
+RFC 2170 AREQUIPA July 1997
+
+
+ Arequipa can be used in a safe way by machines inside and outside a
+ protected network, if an application proxy is installed on the
+ firewall. In the Web, this is a typical scenario. Proxy HTTP servers
+ are often found on firewalls, not only for security reasons, but also
+ for caching. If an application proxy is used, each host can establish
+ an Arequipa connection to the proxy which can then relay and monitor
+ the traffic across the firewall.
+
+ Note that hosts can easily identify (and refuse) unsolicited Arequipa
+ connections by the BHLI identifier that is passed at connection
+ setup.
+
+8. References
+
+ [1] Laubach, M., Classical IP and ARP over ATM, RFC1577,
+ January 1994.
+
+ [2] Cole, R. G., D. H. Shur, C. Villamizar, IP over ATM: A Framework
+ Document, RFC1932, April 1996.
+
+ [3] Hinden, R. and S. Deering, Internet Protocol Version (IPv6)
+ Addressing Architecture, RFC1884, December 1995.
+
+ [4] Narten, T., E. Nordmark and W.A. Simpson, Neighbour Discovery for
+ IPv6 (IPv6), RFC1970, August 1996.
+
+ [5] Berners-Lee, T., R. Fielding, H. Nielsen, Hypertext Transfer
+ Protocol -- HTTP/1.0, RFC1945, May 1996.
+
+ [6] Shenker, S./J. Wroclawski, Network Element Service Specification
+ Template, Work in Progess, November, 1995.
+
+ [7] Perez, M., F.-C. Liaw, A. Mankin, E. Hoffman, D. Grossman, A.
+ Malis, ATM Signaling Support for IP over ATM, RFC1755, February
+ 1995.
+
+9. Authors' Address
+
+ Werner Almesberger,
+ Jean-Yves Le Boudec,
+ Philippe Oechslin (contact author)
+
+ Laboratoire de Reseaux de Communication
+ Swiss Federal Institute of Technology (EPFL)
+ 1015 Lausanne
+ Switzerland
+
+ email: {almesber, leboudec, oechslin}@di.epfl.ch
+
+
+
+Almesberger, et. al. Informational [Page 10]
+