Internet Engineering Task Force T. Ayar Internet-Draft B. Rathke Intended status: Informational L. Budzisz Expires: August 20, 2012 A. Wolisz Technical University Berlin February 17, 2012 A Transparent Performance Enhancing Proxy Architecture To Enable TCP over Multiple Paths for Single-Homed Hosts draft-ayar-transparent-sca-proxy-00 Abstract This draft complements the work of MPTCP by defining a TCP Splitter/ Combiner Architecture (SCA) that enables non-MPTCP-capable single- homed hosts to benefit from the multiple paths within Internet by means of performance enhancing proxies (PEPs) placed in the access networks. SCA Proxies (SCAPs) make use of multiple paths in a way which is completely transparent to end-hosts. Since the existence of the SCAPs is shielded from the TCP end-points, they can be deployed in the Internet as well as on the end-systems. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on August 20, 2012. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Ayar, et al. Expires August 20, 2012 [Page 1] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Reference Scenario . . . . . . . . . . . . . . . . . . . . 4 2. SCA Design . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1. SCA Protocol-Stack Transparency . . . . . . . . . . . . . 5 2.2. SCA End-Point Transparency . . . . . . . . . . . . . . . . 6 3. SCA Components . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Packet Classifier . . . . . . . . . . . . . . . . . . . . 7 3.2. Connection Handler . . . . . . . . . . . . . . . . . . . . 7 3.3. Multiple Pipes Adapter . . . . . . . . . . . . . . . . . . 7 3.4. Data/ACK Processor . . . . . . . . . . . . . . . . . . . . 11 3.5. Signaling Unit . . . . . . . . . . . . . . . . . . . . . . 11 3.6. Configuration and Management Unit . . . . . . . . . . . . 12 4. SCA Deployment Scenarios . . . . . . . . . . . . . . . . . . . 13 4.1. Standalone SCAP . . . . . . . . . . . . . . . . . . . . . 13 4.2. SCAP Peer . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3. SCAP Chain . . . . . . . . . . . . . . . . . . . . . . . . 15 5. SCA Extensions . . . . . . . . . . . . . . . . . . . . . . . . 15 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.1. Normative References . . . . . . . . . . . . . . . . . . . 17 8.2. Informative References . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18 Ayar, et al. Expires August 20, 2012 [Page 2] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 1. Introduction Despite the fact that, the number of end-systems with multiple interfaces increases every day, usually only one interface is used to connect to the Internet, as for the single-interface hosts. This is motivated, among others, by the energy consumption. That is, the use of multiple interfaces drastically increases the power consumption and thus decreases the battery lifetime. When only one IP address is assigned to the end-system, the end-system is single-addressed. Single addressed end-hosts may not benefit from the MPTCP [2] [3] [4] even if they are MPTCP-capable. MPTCP uses IP address pairs of the end-hosts to create the subflows. When two MPTCP-capable single- addressed end-systems transfer data via MPTCP, they will use regular TCP [5] like the non-MPTCP-capable hosts. Moreover, the fact that an end-system is MPTCP-capable does not mean that MPTCP MUST be used by TCP connections. MPTCP MAY be disabled with TCP_MULTIPATH_ENABLE socket option on MPTCP-capable hosts [6]. Nevertheless, single-addressed end-hosts may benefit from multiple paths within the Internet by means of proxies located within the access networks. Such a proxy is described in this document and called further SCA Proxy (SCAP). It detects the TCP connection and then splits and shapes TCP traffic over multiple paths. If the access network is connected to the Internet via multiple gateway (GW) links, then TCP traffic may be distributed within the access network so that the packets will leave the network from different GW links. Thus, the bandwidth aggregation of the links may be achieved. If an access network is connected to the Internet via only one GW link, the SCAP may distribute TCP traffic to multiple paths within the access network and then another SCAP on the path may combine the packets before they leave the access network. This document describes a splitter/combiner architecture (SCA) that may be used to develop transparent proxies for TCP over multiple paths solutions. SCA is a thin layer on top of IP which captures all the TCP packets. SCA distributes data/ACK packets of a TCP connection to the multiple paths and/or combines the distributed data/ACK packets of a TCP connection from multiple paths. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1]. Ayar, et al. Expires August 20, 2012 [Page 3] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 1.2. Terminology Single-addressed end-system: An end-system, either with single or multiple interfaces, which is assigned only one IP address to connect to the Internet. Network Device: An access point (AP) or router located in between a TCP sender and receiver. SCA Proxy (SCAP): A running instance of the SCA. SCAP Device: A network device on which an instance of SCA runs. Pipe: A network path between a network interface of a SCAP device and a network interface of another SCAP device. Pipe is uniquely identified by the IP address pair of two SCAP device interfaces. 1.3. Reference Scenario Figure 1 shows a reference scenario for two SCAP devices in different access networks. Host A and B are single-addressed non-MPTCP-capable hosts. They are connected to the Internet via network devices which have multiple (i.e., N) GW links to the Internet. The multiple interfaces of the network devices have IP addresses A-1..N and B-1..N. When there is a TCP connection between an application on Host A and an application on Host B, TCP packets will follow a single path (e.g., via A-1<->Pipe-1<->B-1). If the GW links have low capacities (e.g., T1 links or DSL lines), then they constitute the bottleneck for the TCP connection. As shown in Figure 1, when network devices are used as SCAP devices they may use multiple GW links to aggregate the capacity of the links for the TCP connection: o SCAP-1 splits TCP data packets from Host A to Host B via its interfaces A-1 to A-N. Similarly, SCAP-2 splits TCP data packets from Host B to Host A via its interfaces B-1 to B-N. o On the other side, SCAP-1 combines the packets split by SCAP-2. That is, it buffers and reorders the packets before they reach to the Host A. Similarly, SCAP-2 combines the packets split by SCAP-1. Ayar, et al. Expires August 20, 2012 [Page 4] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 <--Access Network 1--><-------Internet-----><--Access Network 2--> ______ +--------+ ( ) +--------+ +------+ | |_______(........)_______| | +------+ | | | Access |A-1 ( Pipe-1 ) B-1| Access | | | | Host | | Point | : ( : ) : | Point | | Host | | |---| or | : ( : ) : | or |---| | | A | | Router | : ( : ) : | Router | | B | | | | |______(..........)______| | | | +------+ |(SCAP-1)|A-N ( Pipe-N ) B-N|(SCAP-2)| +------+ +--------+ (______) +--------+ Figure 1: SCAPs on Multiple Access Networks 2. SCA Design In addition to increasing the TCP throughput, SCA aims at high deployment and adoption. To achieve that, the existence of the SCA MUST be shielded locally (i.e., from the applications and TCP on the TCP end-points) as well as on end-to-end (i.e., end points SHOULD NOT need to know which network devices are SCAP devices). Thus, SCA is designed as protocol-stack and end-host transparent. 2.1. SCA Protocol-Stack Transparency In order to provide protocol-stack transparency, SCA MUST be located underneath the TCP. All the TCP multiple path related issues MUST be handled in the SCA which MAY be implemented as a thin layer. SCA SHOULD be located on top of the IP on the network devices. Alternatively, SCA MAY be located between the IP and data link layer. In both cases, all the TCP packets MUST pass through the SCA. In order to recognize TCP connection establishment/release requests and TCP data/ACK packets, SCA MUST access and read the content of the TCP header. Thus, SCA SHOULD NOT be used on network devices if TCP headers can not be read. SCA SHOULD NOT access and read TCP payload. Network devices MAY access TCP headers to work as middleboxes (i.e., performance-enhancing proxies (PEPs), firewalls, or NATs) [2]. As a kind of middlebox, SCAP devices function as PEPs that split and combine TCP traffic while preserving TCP end-to-end semantics (Figure 2). Ayar, et al. Expires August 20, 2012 [Page 5] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 +-------------+ +-------------+ | | | | | Application |<-------------End-to-End-------------->| Application | | | | | +-------------+ +-------------+ | |<-------------End-to-End-------------->| | | TCP | +-------------+ +-------------+ | TCP | | | | SCAP |<->| SCAP | | | +-------------+ +-------------+ +-------------+ +-------------+ | | | | | | | | | IP |<->| IP |<->| IP |<->| IP | | | | | | | | | +-------------+ +-------------+ +-------------+ +-------------+ TCP SCAP Device SCAP Device TCP End Host (PEP) (PEP) End Host Figure 2: SCAPs as PEPs In Between TCP End Hosts 2.2. SCA End-Point Transparency SCAPs MUST work without any support from TCP end hosts. Neither TCP sender nor TCP receiver MUST be aware of the presence of any SCAPs. Thus, TCP end-hosts SHALL NOT be configured to find SCAPs. Instead, SCAPs SHOULD find other SCAPs to collaborate with. 3. SCA Components SCA includes the following components to solve TCP problems [7] when multiple pipes are used: o Packet Classifier that captures TCP packets and classifies them based on the header information. o Connection Handler that reacts to new TCP connections by creating records of the new TCP connection and discarding connection information in case of a TCP connection release. o Multiple Pipes Adapter that provides a common interface to use pipes in the network layer. o Data/ACK Processors that process the data/ACK packets of the TCP connections. o Signaling Unit that processes the SCA signaling packets. o Configuration and Management Unit that is used to configure parameters used by the components. Ayar, et al. Expires August 20, 2012 [Page 6] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 3.1. Packet Classifier Packet Classifier is responsible for looking at the TCP header to determine the packet type. An admission control policy MAY be applied to packets (Section 3.6) before accepting them into the SCAP. The packets that are not admitted MUST be passed to the lower/upper layer without SCAP processing. SCAP-accepted TCP packets MUST be passed to the related SCA component: o SCA signaling packets are used for detecting other SCAPs and exchanging control information among the SCAPs. All the signaling packets MUST be handled by the Signaling Unit. o TCP connection establishment packets (i.e., packets with the SYN flag set) MUST be passed to the Connection Handler to construct connection record entries. o TCP connection release packets MUST be passed to Connection Handler to remove entries of the connection records. o Data/ACK packets MUST be passed to the Data/ACK Processor. 3.2. Connection Handler Connection Handler manages the records of the TCP connections. TCP connection establishment procedure is followed to detect the TCP connections. TCP connection requests are detected by means of TCP segments with SYN flag. TCP connection records MUST contain a unique connection identifier (tcp_conn_id) that is generated based on the TCP sender and receiver end-points (i.e., sender and receiver IP addresses and port numbers). When TCP connection release packets (i.e., packets with the FIN or RST flag set) are received, the TCP connection release procedure is followed. When the connection tear-down is complete, all the connection related records MUST be deleted. 3.3. Multiple Pipes Adapter MPTCP uses IP addresses of the end-hosts in the subflow end-points. Similarly, SCAPs SHOULD use IP address pairs of SCAP devices as pipes. In that case, the peer MUST be informed about the used addresses, as MPTCP informs its peer by means of ADD_ADDR option. Ayar, et al. Expires August 20, 2012 [Page 7] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 TCP packets MAY be sent over these pipes to the SCAP peer by means of: o IP source routing [8]: TCP packets may be requested to follow a specific path. IP Loose/ Strict Source and Record Route option MAY be used to specify the path they must follow. o IP-in-IP encapsulation [9]: The source and destination SCAP IP addresses may be specified in the outer IP header to create tunnels between the SCAP peers. o IP-in-IP tunneling [10]: SCAPs may use special headers to exchange signaling information. Tunnel Headers in the IP-in-IP tunneling may be used to carry SCA signaling information. Since different methods may be used to send/receive data via SCA pipes, Multiple Pipes Adapter is defined as a component that interacts via specified APIs with other components of the SCA and handles interaction with IP. Multiple Pipes Adapter interacts with IP to access and use the available pipes. Other SCA components use the Multiple Pipes Adapter APIs to get information about the pipes that may be used and to send data via them. Multiple Pipes Adapter provides following APIs to the SCA components: 1. PIPE-ID-LIST find_pipes(tcp_conn_id, destination_address) is used to find pipes that may be used to send TCP data packets to the destination_address and returns the list of them, if any. tcp_conn_id is used to identify the connection that needs the pipes to be assigned. Multiple Pipes Adapter may access information about the connection (e.g., source/destination TCP end-point) by using the tcp_conn_id. The API also associates the list of pipes found with the connection. The PIPE-ID-LIST contains pipe_ids which are assigned by the Multiple Pipes Adapter to the available pipes (i.e., each pipe has a unique pipe_id). Ayar, et al. Expires August 20, 2012 [Page 8] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 Pipe implementation is shielded from the other components by means of pipe_ids: other components only know pipe_ids and Multiple Pipe Adapter handles pipes. 2. PIPE-PROPERTIES get_pipe_properties(tcp_conn_id, pipe_id) is used to probe for characteristics of a pipe. PIPE-PROPERTIES includes the required pipe parameters by the SCA instance (e.g., bandwidth, delay, utilization, packet loss rate, etc.). In order to get pipe parameters, following methods may be used [7]: packet-pair based estimation of the pipe delays and capacities, tracking the TCP timestamps [11], SACK [12] or D-SACK [13] to estimate packet arrivals at the receiver, or probing pipe capacities with TCP-like cwnd increase and decrease [3]. In addition, the local MIB information (e.g., [14] [15] [16] [17]) may be used to set the initial values just after the pipes are found by Multiple Pipes Adapter. If tcp_conn_id is NULL, then the total pipe characteristics are returned. Otherwise, tcp_conn_id is used to get pipe characteristics relevant to a TCP connection. For example, the bandwidth used by a TCP connection may be asked as well as the total bandwidth of the pipe. 3. PIPE-ID-LIST employ_pipes(tcp_conn_id, pipe_id_list) is used by Multiple Pipes Adapter to associate pipes which become available after the connection establishment. For example, an interface becomes active or a host associates with an AP/router after the pipes were assigned to the TCP connection by use of the find_pipes() API. Pipes in the pipe_id_list are associated with the connection with tcp_conn_id. 4. PIPE-ID-LIST withdraw_pipes(tcp_conn_id, pipe_id_list) is used when a connection terminates or connection doesn't need some pre-assigned pipes. Pipes in the pipe_id_list are disassociated from the connection with tcp_conn_id. Ayar, et al. Expires August 20, 2012 [Page 9] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 It MUST be called after the connection termination and MAY be called during the connection to cancel the use of some pipes which are previously assigned to the connection. In addition, Multiple Pipes Adapter may use this API to disassociate some pipes which become unavailable during the connection. For example, an interface becomes inactive or a host looses its connection to an AP/router. 5. PIPE-ID-LIST select_pipes(tcp_conn_id, pipe_id_list) is used to select a subset from a set of pipes based on a pipe selection policy (Section 3.6). tcp_conn_id is used to determine the pipe selection policy for the connection. The API uses withdraw_pipes() API to disassociate filtered pipes by the pipe selection policy and returns back the remaining pipes. 6. send_mp_packet(tcp_packet, tcp_conn_id, pipe_id) is used to send a packet via one of the multiple pipes. Since other SCA components only know the pipe_ids and do not know what the real pipes are, they use this API to send a tcp_packet which belongs to the connection with tcp_conn_id by using the the pipe with pipe_id. tcp_conn_id is supplied to enable update for pipe characteristics related with the TCP connections. For example, if a pipe is assigned to more than one TCP connection, what proportion of the pipe is used by the assigned TCP connections. 7. TCP-PACKET check_encapsulation(tcp_packet) is used to check whether tcp_packet is encapsulated or not. Packets may be sent/received encapsulated. Since other components are shielded from the use of encapsulation, only the Multiple Pipes Adapter knows about the encapsulation. send_mp_packet() API encapsulates packets before sending them when encapsulation is necessary. When packets are received by the Packet Classifier, it uses check_encapsulation() to get decapsulated packets, if encapsulation is used for the connection. It returns the packet immediately if encapsulation is not used. Ayar, et al. Expires August 20, 2012 [Page 10] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 3.4. Data/ACK Processor Data/ACK Processor is responsible for handling data/ACK packets. It shapes TCP traffic and decides on the scheduling of packets to the pipes. Data/ACK Processor may apply to a TCP data/ACK packet one of the following operations (called 4-D) [7]: 1. duplicate: TCP packets may be (one or more times) duplicated and scheduled to multiple pipes to create robustness against packet losses. 2. delay: TCP packets may be buffered and delivered later, based on a timer or a condition. For example, some packets of a TCP flow may be intentionally delayed to shape the TCP traffic (e.g., to reduce number of out-of-order packet arrivals at the receiver side, or to separate sent packets by a given interval). Another example is to buffer and reorder out-of-order packets before they are passed to the TCP receiver. 3. deliver: TCP packets may be released immediately after their capture, or after the delay or duplicate operation. Delivery may be done locally for the incoming packets or over any available pipe to outgoing packets. For outgoing packets, one of the available pipes must be selected to efficiently utilize the pipes. 4. drop: TCP packets may be dropped by SCAP. For example, assume that a packet is buffered for early retransmission purposes. If the ACK for that packet arrived and the buffered packet is not needed to be kept any more, it may be dropped. 3.5. Signaling Unit SCAPs on different SCAP devices MAY exchange signaling information by means of the following methods: 1. in-band signaling, by means of TCP options as in MPTCP. The SCAP that wants to send a signaling information will generate an SCA option and add it to the TCP packet. The peer SCAP will use the content of the SCA control option and remove it from the packet. The main drawback of the in-band signaling is that its size is limited by the TCP option space allowed. 16-21 bytes of space is left for the SCA options when the most common TCP options are encountered [4]. Ayar, et al. Expires August 20, 2012 [Page 11] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 2. out-of-band signaling that may use signaling channels established between the SCAPs. SCAPs may use a well-known port number to exchange signaling packets (e.g, RIP routing processes use UDP port 520 [18] or BGP systems use TCP port 179 [19]). 3. hybrid signaling that may use in-band signaling to carry out-of- band signaling channel end-point information between SCAPs. First a connection between the signaling channel end-points will be established. Then, out-of-band signaling over the connection may be used to exchange the signaling data. Details of the signaling mechanism are out-of-scope of this document. 3.6. Configuration and Management Unit Configuration and Management Unit is used to set parameters for the SCA components. The configuration parameters may be defined for each component: o Packet Classifier may accept packets into the SCAP or reject them based on an admission control policy. Based on the TCP end-points, some applications or hosts may not benefit from the SCA: * Splitting the traffic may not be necessary for some applications. For example, short-lived flows like web traffic may be carried over only one path instead of multiple paths as they will most likely end within a couple of packets anyway. Thus, they may not be accepted for the SCA processing. * SCA may be provided as a service for some set of users. The users may be identified from the IP addresses they use to connect to the Internet. Thus, an admission policy may be applied based on the IP addresses of the TCP end-points. o Connection Handler may configure the number of acceptable connections based on the current number of connections or the total number of pipes used by the connections. o Multiple Pipes Adapter may use a pipe selection policy to select a subset of the pipes from the set of available pipes. Using different policies in pipe selection gives additional flexibility to the SCA. Ayar, et al. Expires August 20, 2012 [Page 12] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 Pipe selection policy may be based on the pipe parameters (e.g., delay, loss rate, throughput, etc.) to decide which pipes will be selected. For example, only the pipes that have close RTT values may be selected or some pipes with high BERs may be excluded. In addition, pipe selection policy may be based on the TCP end- points. For example, some privileged flows (e.g., flows originated from some IP addresses) may be assigned more pipes and some other flows may be penalized and forced to use only a single pipe. 4. SCA Deployment Scenarios SCAPs may work in three modes: 1. Standalone SCAP: If there is only one SCAP on the path between the TCP sender and the receiver, SCAP must work alone 2. SCAP Pair: If there are two SCAPs on the path, then they may work as a peer 3. SCAP Chain: If there are multiple SCAPs on the path, then they may be used as cascaded chains 4.1. Standalone SCAP As shown in Figure 3, SCA may still be used when there is only one SCAP on the path between the TCP end-hosts. +-----------+ +-----------+ | | | | |Application|<---------------End-to-End-------------->|Application| | | | | +-----------+ +-----------+ | |<---------------End-to-End-------------->| | | TCP | +--------+ | TCP | | | | SCAP | | | +-----------+ +--------+ +--------+ +-------+ +-----------+ | | | | | | | | | | | IP |<->| IP |<->| IP |<->| IP |<->| IP | | | | | | | | | | | +-----------+ +--------+ +--------+ +-------+ +-----------+ TCP Network SCAP Network TCP End Host Device Device Device End Host Figure 3: Single SCAP Between TCP End Hosts Ayar, et al. Expires August 20, 2012 [Page 13] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 If there are multiple pipes from the SCAP to the TCP end-hosts, the SCAP may split and shape TCP traffic over them (e.g., [20]). Since there is only one SCAP, it must work without any feedback via the signaling messages of the peer SCAP. Therefore, SCAP MUST NOT use signaling information during data transfer. TCP end-hosts MUST NOT notice the existence of the SCAP. The TCP end-hosts will only see the effects of TCP traffic shaping. 4.2. SCAP Peer As shown in Figure 2, SCAPs MAY work as a peer. The SCAP device peer may be located on the same access network as well as different access networks. Section 1.3 discusses a scenario of SCAP devices located on different access networks. Figure 4 shows two SCAP devices within the same access network. A TCP connection is established between an application on the single- homed Host A to an application on single-homed Host B. In the data flow from Host A to Host B, SCAP-1 may split TCP packets via Pipe-1 and Pipe-2. This distribution may be used for load balancing purposes within the access network. In addition, if Pipe-1 and Pipe-2 are the bottleneck, then bandwidth aggregation of the pipes may be achieved. SCAP-2 combines the distributed packets, re- orders them and sends them in-order to the Internet. Similarly, for the data flow from Host B to Host A, SCAP-2 may split packets over Pipe-1 and Pipe-2 while SCAP-1 may combine them. _____________________________ ____ | +---------------+ | ( ) +------+ | | Pipe-2 | | ( ) +------+ | | | +------+ +------+ | ( ) | | | Host |---|-|SCAP-1|--------|SCAP-2|--|----( )---| Host | | | | +------+ Pipe-1 +------+ | ( INTERNET ) | | | A | | | ( ) | B | | | | | ( ) | | +------+ | Access Network | ( ) +------+ |___________________________| (____) Figure 4: SCAPs on The Same Access Network Ayar, et al. Expires August 20, 2012 [Page 14] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 4.3. SCAP Chain As shown in Figure 5, more than two SCAPs may be available on the path between the TCP end-hosts. In that case, SCAP peers constitute a SCAP chain. A SCAP distributes TCP packets over multiple pipes, and its peer combines them. This split/combine process is then repeated between each SCAP pair. +-----------+ +-----------+ | | | | |Application|<---------------End-to-End-------------->|Application| | | | | +-----------+ +-----------+ | |<---------------End-to-End-------------->| | | TCP | +--------+ +--------+ +-------+ | TCP | | | | SCAP |<->| SCAP |<->| SCAP | | | +-----------+ +--------+ +--------+ +-------+ +-----------+ | | | | | | | | | | | IP |<->| IP |<->| IP |<->| IP |<->| IP | | | | | | | | | | | +-----------+ +--------+ +--------+ +-------+ +-----------+ TCP SCAP SCAP SCAP TCP End Host Device Device Device End Host Figure 5: A SCAP Chain Between TCP End Hosts 5. SCA Extensions Since SCA is a thin layer underneath the TCP, it MAY also be placed on multi homed TCP end-hosts. SCA SHOULD be located in between the TCP and IP when it is used on the TCP end-hosts. Alternatively, SCA MAY be located between the IP and data link layer. Figure 6 shows a SCAP peer on TCP end-hosts. SCA may be also used in the standalone setting (i.e., only on one TCP end-host). Neither TCP nor IP SHOULD perceive the intervention of the SCAP: o TCP sends outgoing TCP packets to its lower layer entity. o IP passes incoming TCP packets to its upper layer entity. In both cases, SCAP captures packets and processes them without TCP or IP having knowledge about that. Ayar, et al. Expires August 20, 2012 [Page 15] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 +-------------+ +-------------+ | Application |<-------------End-to-End-------------->| Application | +-------------+ +-------------+ | TCP |<-------------End-to-End-------------->| TCP | +-------------+ +-------------+ | SCAP |<------------SCAP-to-SCAP------------->| SCAP | +-------------+ +-------------+ +-------------+ +-------------+ | IP |<->| IP |<->| IP |<->| IP | +-------------+ +-------------+ +-------------+ +-------------+ TCP End Host Network Network TCP End Host (SCAP Device) Device Device (SCAP Device) Figure 6: SCAPs on TCP End-Hosts Finally, in the most general case, SCAPs on TCP end-hosts MAY collaborate with the SCAPs on network devices as shown in Figure 7. +-------------+ +-------------+ | Application |<-------------End-to-End-------------->| Application | +-------------+ +-------------+ | TCP |<-------------End-to-End-------------->| TCP | +-------------+ +-------------+ +-------------+ +-------------+ | SCAP |<->| SCAP |<->| SCAP |<->| SCAP | +-------------+ +-------------+ +-------------+ +-------------+ | IP |<->| IP |<->| IP |<->| IP | +-------------+ +-------------+ +-------------+ +-------------+ TCP End Host SCAP SCAP TCP End Host (SCAP Device) Device Device (SCAP Device) Figure 7: SCAPs as End-Hosts and Routers 6. IANA Considerations This draft includes no IANA considerations. 7. Security Considerations Will be added in a later version of this document. 8. References Ayar, et al. Expires August 20, 2012 [Page 16] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 8.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 8.2. Informative References [2] Ford, A., Raiciu, C., Handley, M., Barre, S., and J. Iyengar, "Architectural Guidelines for Multipath TCP Development", RFC 6182, March 2011. [3] Raiciu, C., Handley, M., and D. Wischik, "Coupled Congestion Control for Multipath Transport Protocols", RFC 6356, October 2011. [4] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, "TCP Extensions for Multipath Operation with Multiple Addresses", draft-ietf-mptcp-multiaddressed-06 (work in progress), January 2012. [5] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981. [6] Scharf, M. and A. Ford, "MPTCP Application Interface Considerations", draft-ietf-mptcp-api-03 (work in progress), November 2011. [7] Ayar, T., Rathke, B., Budzisz, L., and A. Wolisz, "A Splitter/ Combiner Architecture for TCP over Multiple Paths", TKN Technical Report Series TKN-12-001, February 2012, . [8] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [9] Perkins, C., "IP Encapsulation within IP", RFC 2003, October 1996. [10] Simpson, W., "IP in IP Tunneling", RFC 1853, October 1995. [11] Jacobson, V., Braden, B., and D. Borman, "TCP Extensions for High Performance", RFC 1323, May 1992. [12] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP Selective Acknowledgment Options", RFC 2018, October 1996. [13] Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An Ayar, et al. Expires August 20, 2012 [Page 17] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 Extension to the Selective Acknowledgement (SACK) Option for TCP", RFC 2883, July 2000. [14] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000. [15] Raghunarayan, R., "Management Information Base for the Transmission Control Protocol (TCP)", RFC 4022, March 2005. [16] Routhier, S., "Management Information Base for the Internet Protocol (IP)", RFC 4293, April 2006. [17] Mathis, M., Heffner, J., and R. Raghunarayan, "TCP Extended Statistics MIB", RFC 4898, May 2007. [18] Malkin, G., "RIP Version 2", STD 56, RFC 2453, November 1998. [19] Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC 1771, March 1995. [20] Ayar, T., Rathke, B., Budzisz, L., and A. Wolisz, "TCP over Multiple Paths Revisited: Towards Transparent Proxy Solutions", Accepted by The IEEE International Conference on Communications 2012 (IEEE ICC'12), June 2012. Authors' Addresses Tacettin Ayar Technical University Berlin Telecommunication Networks Group, Sekr. FT5, Einsteinufer 25, Berlin 10587 Germany Phone: +49 30 314 28225 Email: ayar@tkn.tu-berlin.de Ayar, et al. Expires August 20, 2012 [Page 18] Internet-Draft Multi Path TCP PEP For Single Homed Hosts February 2012 Berthold Rathke Technical University Berlin Telecommunication Networks Group, Sekr. FT5, Einsteinufer 25, Berlin, 10587 Germany Phone: +49 30 314 23832 Email: rathke@tkn.tu-berlin.de Lukasz Budzisz Technical University Berlin Telecommunication Networks Group, Sekr. FT5, Einsteinufer 25, Berlin, 10587 Germany Phone: +49 30 314 23836 Email: budzisz@tkn.tu-berlin.de Adam Wolisz Technical University Berlin Telecommunication Networks Group, Sekr. FT5, Einsteinufer 25, Berlin, 10587 Germany Phone: +49 30 314 22911 Email: awo@ieee.org Ayar, et al. Expires August 20, 2012 [Page 19]