Beruflich Dokumente
Kultur Dokumente
MPTCP: An extension to the TCP protocol that supports usage of multiple paths between
two end points. (Where we assume that one or more end points are already multi homed
in order to facilitate use of multiple paths).
Multi homed: A host having two or more network addresses.
Congestion: Too many sources sending too much data too fast for network to handle.
Network Resources: Any physical component of the network.
Sub Flow: A flow of packets operating over a single path, and part of a larger connection.
Introduction: Flow control and Congestion control have always been a major issue in network
and protocol design. Stream Control Transmission Protocol (SCTP) is one notable protocol in the
present day which makes use of effective multi homing techniques for better flow control.
However it faces a major roadblock on the issue of being deployable with middleboxes such as
NAT, firewall etc. Even the usage of Concurrent Multipath Transfer (CMT) in SCTP does not
ensure fairness to existing TCP. In such a scenario MPTCP with its “coupled congestion control
algorithms” appears to be an effective measure for congestion control and rate control. MPTCP
which is a strict end-to-end protocol makes use of resource pooling to spread out network traffic
between two end points over multiple paths. Figure 1 shows a typical MPTCP scenario where
traffic from host 1 is transmitted to host 2 via multiple network addresses at both ends. Here we
assume that one or more of the end points in the network are multi homed.
In this report we take a look at the Congestion Control Algorithm that MPTCP uses and some of
the issues to be addressed in the future for the successful deployment of MPTCP.
The network must prevent new packets from traversing the congested flow until those
already present are processed.
The congested destination nodes can remove queued packets to make room for those that
are waiting to be served.
In either case data at some point or the other is lost and this is precisely the problem that most
congestion control algorithms in the present day seek to address. MPTCP is no different. In
MPTCP multiple paths are so organized as to achieve resource pooling for all the subflows from
one host to the other i.e. traffic is shifted away from congested paths so that the loss rate on the
now lesser congested path that is being used increases and that on the congested path decreases.
However merely running TCP’s congestion avoidance algorithm on each subflow does not help.
Rather it results in a subflow grabbing N times as much bandwidth as it should (if N subflows
share a common bottleneck). As such one design goal of congestion control algorithms for
MPTCP should be to achieve a fair allocation of resources.
This leads us to observe that the algorithm is implemented only for the increase in the congestion
window stages of the congestion avoidance state. The decrease phase is similar to that of normal
TCP (it uses unmodified TCP New Reno in case of a drop). The parameter “alpha” here is used
to adjust the total rate of the multipath flows to the rate that the data would get on a single path
best flow. However this does not mean that “alpha” controls resource pooling. Resource pooling
takes place in the linkage of the flows itself.
Alpha can be computed as follows:
α = wtotal * [maxr {(wr*mssr2)/rttr2}] / {∑rwr*mssr/rttr} 2 (Refer to [1]).
Subflow 1
Host A Host B
Subflow 2
Figure 2: Two subflows between the two paths having same RTT and same MSS
To illustrate the working of this algorithm let us consider the following scenario:
Say we have two subflows between two hosts and the subflows have the same MSS, RTT and
loss rate. (Where MSS= Maximum segment size and RTT=Round trip time). Hence the total
window wtotal would be 2*wr, where wr=congestion window of subflow r as defined in the
algorithm. Now considering the case where both subflows share a common bottleneck link, if a
drop occurs on a particular subflow only that particular subflow halves its window. The other
subflows remain unaffected. So effectively the aggregate window comes down to 3w/4 which is
much less aggressive than normal TCP (which would have brought down its window by 50%).
Since the decrease is less aggressive than normal TCP hence we also need to scale the increase
factor (else it would result in the subflow grabbing more bandwidth). This is where alpha which
is the aggressiveness factor helps by letting the subflow increase its window by α*wr/wtotal. In this
case the increase comes to be ¼. Hence we see that the slower increase and the lesser aggressive
decrease balance out each other thus giving the same performance as a normal TCP flow would
on a single path.
Similarly we can extend this argument when there are more than two subflows on the same link,
with each subflow getting a window of 1/N (if there are N subflows with same RTT same MSS
and same loss rate on all subflows). All the subflows will eventually experience a drop (as at one
point of time or the other they will have a higher congestion window state wr) and hence balance
out their increase and decrease respectively.
Issues with the congestion control algorithm of MPTCP in the current implementation:
As resilient as MPTCP might appear to congestion on its subflows and middleboxes that might
attempt to rewrite the TCP options, there are several questions that still remain to be answered
with the current algorithm some of which are as follows:
1. What happens when a particular subflow goes down? (say in case of a link failure)
2. What is the upper bound on the number of subflows that can be opened?
3. When do we start a new subflow?
4. What happens when we retransmit the same data but on a different subflow?
5. What is the deciding condition to stop a particular subflow?
6. Where should Path management be implemented, in the protocol specifications itself or
in the implementation of the protocol?
7. What happens when both hosts attempt to open subflows simultaneously?
There are also a few other disadvantages which need to be taken care of in the present
implementation of MPTCP:
1. MPTCP is rather inefficient when it comes to transferring small amounts of data. It only
excels in transferring a huge amount of data by spreading it out over multiple subflows.
However this can be remedied in the future by introducing some sort of identification for
the payload field to ensure that it probably switches over to normal TCP for small data.
2. Hosts using MPTCP have no initial exchange of information about each other’s state. For
example a multi homed host trying to connect to another node has no idea about whether
the other node is multi homed or not. In such cases it ends up wasting time as well as
network resources until it receives a reply from the other node.
3. MPTCP, albeit efficient, does not achieve perfect resource pooling. When the loss rates
are same all subflows get an equal share of the total congestion window as illustrated in
the example above. However when loss rate differs, the subflow with the lesser loss rate
gets the bigger share of the window in contrast to the perfect resource pooling principle.
4. There is the cost involved of the host having to be multihomed in order to be MPTCP
capable. Unless a host is multihome it cannot create the requisite multipaths required for
transfering data over multiple subflows. However considering the fact that several large
providers are nowadays already multihomed, it might be possible with a little
reconfiuration to make efficient use of MPTCP.
References:
1. C. Raiciu, M. Handley, and D. Wischik, “Coupled Multipath-Aware Congestion Control”,
IETF Internet-Draft, draft-raiciu-mptcp-congestion- 01, 2010. (Work in progress).
http://datatracker.ietf.org/doc/draft-ietf-mptcp-congestion/
2. A. Ford, and C. Raiciu, “TCP Extensions for Multipath Operation with Multiple
Addresses”, IETF Internet-Draft, draft-ford-mptcpmultiaddressed- 03, 2010.(Work In
progress). (http://datatracker.ietf.org/doc/draft-ietf-mptcp-multiaddressed/)
5. Alexandros Kostopoulos, Henna Warma, Tapio Levä, Bernd Heinrich, Alan Ford, and
Lars Eggert “Towards Multipath TCP Adoption:Challenges and Opportunities”.
6. Costin Raiciu, Christopher Plunkte, Sebastien Barre, Adam Greenhalgh, Damon Wishcik,
Mark Handley University College London, Universite Catholique de Louvain. “ Data
center Networking with Multipath TCP”.
7. Tapio Leva, Henna Warma, Alan Ford, Alexandros Kostopoulos, Bernd Heinrich, Ralf
Widera, and Philip Eardley “Business Models in a Multipath World”.