Multipath TCP
Multipath TCP
O l i v i e r B o n av e n t u r e , M a r k H a n d l e y, a n d C o s t i n R a i c i u
Olivier Bonaventure is TCP has remained mostly unchanged for 20 years, even as its uses and the net-
a Professor at Catholic works on which it runs have evolved. Multipath TCP is an evolution of TCP that
University of Louvain, Belgium. allows it to run over multiple paths transparently to applications. In this article, we
His research focus is primarily explain how Multipath TCP works, and why you should want to start using it.
on Internet protocols. Bonaventure is the
author of the open source textbook Computer Introduction and Motivation
Networking: Principles, Protocols and Practice.
The Transmission Control Protocol (TCP) is used by the vast majority of applica-
[email protected]
tions to transport their data reliably across the Internet. TCP was designed in
the 1970s, and neither mobile devices nor computers with many network inter-
Mark Handley is Professor
faces were an immediate design priority. On the other hand, the TCP designers
of Networked Systems at
knew that network links could fail, and they chose to decouple the network-layer
University College London.
protocols (Internet Protocol) from those of the transport layer (TCP) so that the
Handley is the author of
network could reroute packets around failures without affecting TCP connections.
32 RFC Internet Standards
This ability to reroute packets is largely due to the use of dynamic routing proto-
documents, including those for the Session
cols, and their job is made much easier because they don’t need to know anything
Initiation Protocol (SIP) and PIM Sparse Mode
about transport-layer connections.
multicast routing. He was one of the co-
inventors of distributed hash tables and was Today’s networks are multipath: mobile devices have multiple wireless interfaces,
the recipient of the 2012 IEEE Internet Award. datacenters have many redundant paths between servers, and multihoming has
[email protected] become the norm for big server farms. Meanwhile, TCP is essentially a single-path
protocol: when a TCP connection is established, the connection is bound to the IP
Costin Raiciu is currently an addresses of the two communicating hosts. If one of these addresses changes, for
Assistant Professor at the whatever reason, the connection will fail. In fact, a TCP connection cannot even be
Computer Science Department load balanced across more than one path within the network, because this results
of University Politehnica of in packet reordering, and TCP misinterprets this reordering as congestion and
Bucharest. In 2011, Raiciu slows down.
received a PhD from University College
This mismatch between today’s multipath networks and TCP’s single-path design
London, working under the supervision of
creates tangible problems. For instance, if a smartphone’s WiFi loses signal, the
Mark Handley and David Rosenblum. Raiciu’s
TCP connections associated with it stall; there is no way to migrate them to other
research interests are mainly in networking; in
working interfaces, such as 3G. This makes mobility a frustrating experience for
recent years, he has been working on designing
users. Modern datacenters are another example: many paths are available between
and implementing Multipath TCP.
two endpoints, and multipath routing randomly picks one for a particular TCP
[email protected]
connection. This can cause collisions where multiple flows get placed on the same
link, thus hurting throughput to such an extent that average throughput is halved
in some scenarios.
Congestion Control
One of the most important components in TCP is its congestion controller, which
enables it to adapt its throughput dynamically in response to changing network
conditions. To perform this functionality, each TCP sender maintains a congestion
window, which governs the amount of packets that the sender can send without
waiting for an acknowledgment. The congestion window is updated dynamically,
growing linearly when there is no congestion and halved when packet loss occurs.
TCP congestion control ensures fairness: when multiple connections utilize the
same congested link, each of them will independently converge to the same average
value of the congestion window.
What is the equivalent of TCP congestion control for multipath transport? To
answer this question, we define three goals that multipath congestion control must
obey. First, we want to ensure fairness to TCP. If several subflows of the same
Figure 3: (Datacenter load balancing) This graph compares standard TCP with two- and four-
flow MPTCP, when tested on an EC2 testbed with 40 instances. Each host uses iperf sequen-
tially to all other hosts. We plot the performance of all flows (x axis) in increasing order of their
throughputs (y axis).
Next, we show results from running Multipath TCP in the Amazon EC2 datacen-
ter. Like most datacenters today, EC2 uses a redundant network topology, where
many paths are available between any pair of endpoints, and where connections
are placed randomly onto available paths. In EC2, we rented 40 machines (or
instances) and ran the Multipath TCP kernel. We conducted a simple experiment
in which every machine tested the throughput sequentially to every other machine
using first TCP, then Multipath TCP with two and with four subflows. Figure 3
shows the sorted throughputs measured over 12 hours and demonstrates that Mul-
tipath TCP brings significant improvements compared to TCP in this scenario.
Because the EC2 network is essentially a black-box to us, we cannot pinpoint the
root cause for these improvements; however, we have performed a detailed analysis
of the cases where Multipath TCP can help and why [5].
References