Overview
The IETF’s Multipath
TCP (MPTCP) working group is focused on
an idea that has emerged in various forms over
recent years – namely, that a single transport
session as seen by the application layer might
be striped or otherwise multiplexed across
multiple IP layer paths between the session’s
two endpoints. An over-arching expectation is
that TCP-based applications see the
traditional TCP API, but gain performance
benefits when their session transparently
utilises multiple, potentially divergent
network layer paths. These benefits include
being able to stripe data over parallel paths
for additional speed (where multiple similar
paths exist concurrently), or seamlessly
maintaining TCP sessions when an individual
path fails (or becomes too ‘expensive’) or as
a mobile device’s multiple underlying network
interfaces come and go. The parts of an MPTCP
session flowing over different network paths
are known as subflows.
Much MPTCP work prior 2012 has been supported
by the EU’s Trilogy
Project, with key groups
at University College London (UK) and Université
catholique de Louvain in
Louvain-la-Neuve (Belgium) publishing code,
working group documents and research papers.
These two groups are responsible for public
implementations of MPTCP under Linux
userland, the Linux
2.6 kernel and a simulation environment
(htsim).
In 2012 CAIA began a two related research
efforts into multipath TCP (MPTCP).
- Multipath TCP for FreeBSD (with support
from Cisco Systems and The FreeBSD Foundation)
- Evaluating the use of dynamic path cost
for sub-flow selection in loss-based
Multipath TCP sessions
The first project has two aims -- develop a
prototype implementation of MPTCP for FreeBSD,
then utilise that implementation to experiment
with blending loss-based and delay-based
congestion control (CC) algorithms across
sub-flows making up MPTCP connections or
sessions.
The second project has a focus on the
potential for regular loss-based MPTCP in
mobile devices to make intelligent sub-flow
selections based on path costs.
Outcomes
- Released an experimental kernel patch that enables
Multipath TCP support for FreeBSD-10.x and provides the framework for
congestion control research over multipath connections. This was a non-trivial
change to the FreeBSD TCP stack that required a range of modifications within the TCP input/
output paths and associated subroutines.
Program Members
Alumni
This project has been made possible in part by grants
from: