Welcome to the Linux Kernel MultiPath TCP project

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 given by 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

If you use the implementation in scientific papers, please indicate in the paper the version of the implementation that you use and cite it as :

C. Paasch, S. Barre, et al., Multipath TCP in the Linux Kernel, available from https://www.multipath-tcp.org





Stable Release

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





Commercial support for Multipath TCP

Sébastien Barré and Gregory Detal, two of the key contributors to the Multipath TCP implementation in the Linux kernel, are creating a company that will develop innovative products based on this technology.

If you are working on a commercial application on top of Multipath TCP and need commercial-grade support, new features or backport to previous kernel releases, just contact Gregory Detal (Tessares) and Sébastien Barré (Praos) directly to discuss with them about the services that they can offer.





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.de

https://www.tessares.net

http://ixit.cz

http://technosrix.com

http://watchy.in

http://hsh.link/

http://apt.tetaneutral.net

http://www.hchs.de/

http://www.neurocode-ag.com/

http://www.ip-mobilphone.net/

http://www.usenet-replayer.com/



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 as well as the F5 BIG-IP also support Multipath TCP!

Samsung's Galaxy S6 and S6 Edge support MPTCP in Korea's KT network.





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 last partner:

We are also grateful to our previous partners:

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.