Multipath TCP

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)
  • 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

cisco logo

This project has been made possible in part by grants from the Cisco University Research Program Fund at Community Foundation Silicon Valley.

[an error occurred while processing this directive]