Welcome to the Linux Kernel MultiPath TCP project

Are you talking MPTCP ?

Checkout this website to see if you are using MPTCP.

Breaking News

20. February 2013: Read Olivier Bonaventure's blog about Multipath TCP, covering recent papers and news about MPTCP.

31. October 2013: The stable release MultiPath TCP v0.88 is available on our release page.

20. September 2013: Apple just released iOS7. This is the first commercial implementation of Multipath TCP. Apple uses MPTCP for its traffic generated by Siri.

MultiPath TCP (MPTCP) is an effort towards enabling the simultaneous use of several IP-addresses/interfaces by a modification of TCP that presents a regular TCP interface to applications, while in fact spreading data across several subflows. Benefits of this include better resource utilization, better throughput and smoother reaction to failures. Slides - explaining MultiPath TCP - are available in .pdf and .pptx format. You can also have a look at our Google Techtalk about MPTCP, or the MultiPath TCP tutorial from Olivier Bonaventure at the IETF87.

The IP Networking Lab is implementing MPTCP in the Linux Kernel and hosting it on this website for users, testers and developers.

For questions, feedback,... please contact us at the mptcp-dev Mailing-List

Stable Release

MultiPath TCP v0.88 is available on our release page.

Open position

Multipath TCP is a TCP extension standardised by the IETF that enables a TCP connection to use several paths during the lifetime of the connection. Multipath TCP is attracting a growing interest from both the research community and industry. Smartphones can use Multipath TCP to provide better quality of experience and higher performance with both WiFi and 3G/4G. Hundreds of millions of iPhones and iPads are already using Multipath TCP. Datacenters can use Multipath TCP to improve their network utilisation and performance. Other use cases will emerge in the coming years.

The reference implementation of Multipath TCP in the Linux kernel is developed within the IP Networking Lab at UCL in Louvain-la-Neuve, Belgium. To expand the use cases of Multipath, we seek talented postdocs or software engineers having a proven experience in either of the following domains :

  • Network protocol implementation in the Linux kernel
  • virtualisation technologies (Xen, KVM, VMWare, ...)
  • Filesystems and storage technologies

The research will be carried out in the framework of research projects funded by the European Commission. The main objective of the project is to explore ways to combine resources like bandwidth, storage and CPU/processing to form a "Liquid Net". This would allow an efficient usage of all these resources to provide the best performance and user experience. Multipath TCP is already pooling the resources of the network. This capability can also be used to improve the sharing of storage and CPU.

For additional information, please contact Prof. Olivier Bonaventure by email

The fastest TCP connection with Multipath TCP

Breaking the record of the fastest TCP connection - have a look here how we can achieve 51.8 Gbit/second with Multipath TCP.

Who is using MultiPath TCP?

Check out on our map, who has visited our website with MPTCP enabled. Statistics since September 2012.

The following websites are using the Linux MPTCP implementation. If you are using MPTCP on a public website, let us know at mptcp-dev Mailing List.

http://multipath-tcp.org
http://amiusingmptcp.com
http://ixit.cz
http://mapserver.flightgear.org
http://scenemodels.flightgear.org
http://technosrix.com
http://watchy.in

If you are using MultiPath TCP (personnally or for business), let us know and share your experience on the mptcp-dev Mailing List.

Apple's iOS7 supports Multipath TCP for its traffic generated by Siri. Congratulations to Apple for pushing the first wide-spread deployment of MPTCP.

Citrix's Netscaler also supports Multipath TCP!

Linux Kernel MultiPath TCP in action

We did a little demo of MultiPath TCP used over Ethernet/WiFi/3G on our Linux Kernel implementation.

We start an ssh-session with X-redirection and launch xscreensaver demo on the distant MPTCP-capable server.

We then turn off Ethernet and WiFi and thanks to MultiPath TCP the ssh-session is able to handover the traffic to 3G without interrupting the user-experience. Without our MPTCP Linux Kernel the session would simply stop working and the user would need to restart the ssh-session.

In the video you see a trafficmonitor on the right, displaying the instantaneous amount of traffic going over each interface. Top is Ethernet, middle is WiFi and bottom is 3G.

The authors

The initial MPTCP implementation and architecture for the Linux OS is from Sébastien Barré. Sébastien started this project around 2009, based on his shim6-implementation and continued working on the MPTCP-implementation until he finished his thesis.

Since then, several people have joined the project. Current active developers are Christoph Paasch, Fabien Duchêne and Gregory Detal.

For an overview of the current and past contributions have a look here (generated with gitstats)


Thanks to our current partner:

Trilogy2 Project

We are also grateful to our previous partners:

CHANGE European FP7 ProjectTrilogy European FP7 ProjectGoogleNokia

Thanks to all the people who have used and reported their experience of using MPTCP, sometimes even helping in the debugging process: Joerg Wagner (NEC), Bruno Mongazon-Cazavet (Alcatel-Lucent), Andreas Seelinger (RWTH-Aachen), Vijay Subramanian, Alan P. Smith (BT), Ramakrishna Sura, Ovidiu Popa (University of Cambridge), Sergio Lembo (Aalto University), Piers O'Hanlon (UCLondon), Costin Raiciu (UCLondon).

Costin Raiciu has also written a userspace prototype that he kindly sent us as a help to start the development of this project.

A special thank to Adam Greenhalgh (UCLondon) for maintaining the HEN platform, which is a precious tool for thoroughly testing MPTCP in a wide range of scenarios. We specially appreciate his very fast action to solve problems on the platform. Prof. Mark Handley (UCLondon) also manages the platform and solved several tricky problems on it.