Internet DRAFT - draft-ayar-transparent-sca-proxy
draft-ayar-transparent-sca-proxy
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, <http://
www.tkn.tu-berlin.de/menue/publications/
tkn_technical_report_series/>.
[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]