Simula Research Laboratory / Center for Resilient Networks and Applications / NorNet
Homepage of Thomas Dreibholz / Thomas Dreibholz's Multi-Path TCP (MPTCP) Page


Welcome to Thomas Dreibholz's
Multi-Path TCP Page
Multi-Path TCP (MPTCP) Page



📰 News


💡 What is the Multi-Path TCP?

Background

The Transmission Control Protocol (TCP) has been standardised by the IETF more than 30 years ago in RFC 793. Clearly, a lot of improvements have been made to TCP during these years. However, one major property did not change: a TCP connection is established between two IP-addresses (client and server). These addresses must remain fixed over the whole connection lifetime. A change of an address – which is not unlikely in mobility scenarios – breaks the connection. Also, even if an endpoints has multiple addresses (e.g.  a smartphone connected to 3G/4G and WLAN simultaneously, or a system connected to two providers) can just use the selected address. Any change requires to reestablish the connection with another address.

Multi-Homing and Multi-Path Transfer

A Multi-Homing Scenario
Click here for full size!

Multi-Path TCP (MPTCP), defined in RFC 6824, is a relatively new extension to TCP that adds multi-homing and multi-path transport capabilities to TCP. That is, instead of just connecting an endpoint to one network – corresponding to a single Internet Service Provider (ISP) – it is possible to have connectivity to multiple networks (usually: multiple ISPs) simultaneously. Then, in case of a failure within some of the networks, an MPTCP connection can still remain active unless all networks stop working. This so-called multi-homing feature is particularly necessary for redundancy. The example figure above shows a setup with Endpoint A being connected to three networks and Endpoint B being connected to three networks. Also, MPTCP is able to modify addresses during the connection lifetime (e.g. on handover in mobility scenarios).

Of course, having multiple network connections – and having to pay for them – leads to the motivation of using all connections simultaneously, by distributing the data over all possible paths. This is denoted as Concurrent Multipath Transfer (CMT) or shortly multi-path transfer; this is the most important feature of MPTCP.

MPTCP has many mechanisms in common with the Stream Control Transmission Protocol (SCTP) and its extensions. SCTP has been delevoped earlier, but – as a new protocol – requires acceptance by middleboxes like firewalls or Network Address Translation (NAT) with Port Address Translation (PAT) to work in many Internet setups (e.g. at a home user's site). MPTCP, on the other hand, has been developed to work around these issues: MPTCP packets look, from the perspective of a middlebox, like regular TCP flows. That is, existing firewalls and NAT/PAT devices can handle them without any change.

Research and Standardisation

MPTCP is still under development, with ongoing research work on how to handle the scheduling of data to multiple paths, how to efficiently perform congestion control and how to achieve fairness of resource sharing. This research is currently ongoing – also of course with help of the NorNet Testbed – and contributes knowledge and insights to the ongoing standardisation process within the IETF MPTCP Working Group. If you are interested in MPTCP performance evaluation, also have a look at the NetPerfMeter application!


🖋️ Publications

The complete BibTeX references in a single file can be found here!

2024

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010


📖 Standardisation

The complete BibTeX references in a single file can be found here!

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009