MultiPath TCP: Linux Kernel Implementation

Video in TIB AV-Portal: MultiPath TCP: Linux Kernel Implementation

Formal Metadata

MultiPath TCP: Linux Kernel Implementation
An open source implementation of MultiPath TCP in the Linux Kernel
Alternative Title
Multipath TCP
Linux Kernel MultiPath TCP
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
MultiPath TCP, a major extension to TCP, allows the simultaneous use of a smartphone's 3G and WiFi interface to increase throughput and better resilience. We implement MultiPath TCP in the Linux Kernel, publicly available at TCP, the most used Transport Protocol on the Internet, does not allow the simultaneous usage of multiple Interfaces. Smartphones with 3G and WiFi interfaces would benefit from a simultaneous use of both interfaces. MultiPath TCP is a major extension to TCP, allowing the use of multiple Interfaces for a single data-stream, without the need to modify the applications. This allows an increased throughput and better resilience to failures. The IP Networking Lab of the Université Catholique de Louvain is implementing MultiPath TCP in the Linux Kernel. The publicly available source-code modifies/adds about 10000 lines to the Linux Kernel's TCP-stack. The implementation has shown very good performance. For example, a throughput of up to 15 Gbps across two 10 Gig interfaces, whereas regular TCP can only use a single interface and thus 10 Gbps. We are now considering inclusion in the mainline kernel and would like to encourage people to test our implementation and/or submit patches to help improving it.
Implementation Kernel (computing) Service (economics) Software Link (knot theory) Data center
Server (computing) Link (knot theory) Server (computing) Mobile Web Source code IP address Connected space Number Database normalization Internetworking Software Internetworking Telecommunication
Multiplication Internetworking Source code IP address Address space Connected space
Band matrix Data stream Arithmetic mean Internetworking Server (computing) Multiplication sign Mobile Web Connected space
Standard deviation Link (knot theory) Server (computing) Structural load Mobile Web Client (computing) Überlastkontrolle Überlastkontrolle Connected space Band matrix Internetworking Software Data center Lastteilung
Laptop Presentation of a group Implementation Presentation of a group Server (computing) Demo (music) Validity (statistics) Open source Code Line (geometry) Demo (music) Code Line (geometry) Performance appraisal Performance appraisal Kernel (computing) Different (Kate Ryan album) Kernel (computing) Feasibility study Website Information Implementation Extension (kinesiology)
Anwendungsschicht Standard deviation Socket-Schnittstelle Multiplication Network socket Multiplication sign Network socket
Metre Point (geometry) Standard deviation Dataflow Implementation Multiplication Netzwerkschicht View (database) Virtual machine Computer network Cartesian coordinate system Flow separation System call Connected space Anwendungsschicht Data stream Message passing Kernel (computing) Different (Kate Ryan album) Personal digital assistant Network socket Network socket Transportschicht Data structure
Standard deviation Server (computing) Multiplication Torus Netzwerkschicht Patch (Unix) Firewall (computing) Regular graph Cartesian coordinate system Network socket Transportschicht Communications protocol Routing
Standard deviation Meta element Implementation Socket-Schnittstelle Standard deviation Netzwerkschicht Firewall (computing) Cartesian coordinate system System call Anwendungsschicht Network socket Network socket Sieve of Eratosthenes Right angle Scheduling (computing)
Metre Data stream Scheduling (computing) Network socket Moment (mathematics) Queue (abstract data type)
Metre Standard deviation Dataflow Netzwerkschicht Insertion loss Streaming media Cartesian coordinate system Software Different (Kate Ryan album) Network socket Network socket Order (biology) Queue (abstract data type) Transportschicht
Testbed Link (knot theory) Queue (abstract data type) Virtual machine Software testing Resultant
Regular graph Patch (Unix) Client (computing) Cartesian coordinate system
Pairwise comparison Dependent and independent variables Heat transfer Line (geometry) Cartesian coordinate system Regular graph 2 (number)
Source code Asynchronous Transfer Mode Implementation Computer file Computer-generated imagery Code 2 (number) Band matrix Medical imaging Message passing Kernel (computing) Repository (publishing) Repository (publishing) Website Software testing Asynchronous Transfer Mode
Source code Asynchronous Transfer Mode Kernel (computing) Demo (music) Code Projective plane Repository (publishing) Code Software testing Software bug
Demon Server (computing) Proxy server Internetworking Forcing (mathematics) Demo (music) Website Software testing Proxy server Connected space
Greatest element Image warping Website Correlation and dependence Software testing Dreizehn Total S.A. Local ring Connected space Chi-squared distribution
Band matrix Wrapper (data mining) Multiplication sign Resultant Connected space
Server (computing) Demo (music) Multiplication sign Moment (mathematics) Sound effect Proxy server Connected space
Execution unit Multiplication Multiplication sign Internetradio IP address Modem
Multiplication Multiplication sign Streaming media Hacker (term)
Open source Content (media) XML
I'm Christoph Bosch I will present you multipass TCP our implementation in a Linux kernel so to start off you all have a few mobile phones with Wi-Fi and 3G interface and you can connect for example while you are here you can connect to the FOSDEM network and you can also connect to a 3G network but unfortunately you will always only be using one of these interfaces potentially only the Wi-Fi interface and so you are not using all the resources you have available to your phone the same holds for data centers whether they have a huge and large redundant infrastructure and even if the service deploy ok so um yeah the Anila in the data centers where you have a large redundant infrastructure even if you have link bonding for example installed
on your servers potentially you are not using your infrastructure and your redundant links in the best manner and there's so why is in fact this happening like this it is because while TCP is
used for 95 percent of the communications over the Internet and TCP identifies a connection by the so called 5 topple every host has an IP address when he is connecting to a network and TCP also used the port numbers so TCP uses the IP source IP and destination IP
addresses and the source port and destination ports to identify this connection and as an IP address is identified by is attached to an interface you cannot use TCP across
multiple interfaces because while TCP uses these IP addresses to to identify the connection and an IP address is linked to an attached to an interface so that's the reason why you cannot use
your mobile phone as you want it meaning
using Wi-Fi and 3G at the same time if you could use Wi-Fi and 3G at the same time well you would have a higher bandwidth and potentially you can you can benefit from failover meaning when you'll when you have your Wi-Fi connection running your data stream going over Wi-Fi then you'll lose your Wi-Fi connection well without any problem you could then switch over to free to 3G
which is not possible with TCP nowadays whose TCP nowadays you would have to restart the connection and also if you could use all the interfaces available data centers would benefit a lot too so of course at the IETF
there's a solution being standardized it's multipath TCP and in fact multipass tcp allows you to use several interfaces for the same data connection that way while you are pulling all your resources and you have potentially higher bandwidth and you can also benefit from the failover capabilities I explained earlier and especially for data centers you have a better load balancing due to a fair couple congestion control which will schedule the traffic among the interfaces in such a way that that the load is fairly distributed over the links in your in your data center so what have we done at the IP networking
lab in at UCL we have implemented MP TCP
in the Linux kernel it's a very extensive implement extension to TCP it uses about 10,000 lines of code we have done a lot of performance evaluations and validations to prove the feasibility of our design it's presented in different research papers I will show you at the end of this demo at the end of this presentation a live demo because I have installed our kernel on our on my notebook and then I will connect to our MP TCP server at the University and show you how can you 3G and Wi-Fi at the same time and of course our implementation is open source and publicly available on our website you can see there so I'll
try to explain you now how MP TCP achieves these achieves it to use several interfaces at the same time basically
you have the standard socket API so the implication is still talking to regular socket as it is for TCP then you have a multi pass TCP layer which creates
several TCP sub flows and each of these sub flows is using one of these the interfaces for example the left sub flow you can see is running over Wi-Fi the
one in the middle is running over 3G and then the data stream that's coming from the application will then be distributed over the different TCP sub flows and that way it is possible to use all the interfaces available to your machine so from an implementation point of view what we have done is that when the application is creating the socket and calling the system call connect to establish the connection to another machine we create the first TCP sub flow which is the so called master sub socket and this one will detect if the other side is also MP TCP cable if that's the case well then our kernel will create the structures necessary to handle multi pass TCP there we have the so-called meter socket which is the interface between the different TCP sub flows and the application and we create the different TCP sub flows going over the different interfaces also so the
advantage of having standard socket API and you're using regular TCP bernie's is that we don't need to change the applications meaning the applications on our server we have running a patch and we didn't have to modify it so - for it to be able to use multipath TCP the use
of TCP subfloors allows multi pass TCP in fact to bypass firewalls so even if the firewall does not support and you because usually one let's say usually firewalls do not support the deployment of new protocols but as a regular TCP is
known to every firewall multipass tcp is able to pass by these firewalls so coming back to the implementation when we have established the socket and the application wants to send data it will
through this standard socket API it will call the sand or the right system call
and all the the data stream will be
pushed into the sand queue from that moment on the moment on the meter socket well then distribute with the multipath TCP scheduler will distribute the traffic over this one different sub flows at a reception we we are maintaining different queues notably the
out of order Q per sub flowed which are which are necessary if you have for example losses in the network or reordering in the network and you have to store your packets so that you still have the same reliable byte stream you have to we have two queues at a meter socket the out of our queue and to
receive queue out of our queue is again to hold reordering across to reorder the packets whereas they are coming in from the different sub flows and the receive queue is accessible by the application and the application will read out of the
receive queue of the packets so to show you some performance results we have
done with it in our test bed where we have two machines interconnected with one gigabit links and you know test but what I what
what I am doing we do a patch benchmarking which means we run one are not parallel clients doing HTTP requests to the server and
what I am plotting here is on the x-axis
you can see the transfer size meaning the size of the of the response from the HTTP GET and we on the y-axis we I show the ratio of requests per second in
comparison to regular TCP so the red line here is regular TCP of course
regular TCP compared to regular TCP is one at 100% and you will see that when I use when we use multipass TCP we will be able to use both passes available and for files coming from 500 kilobytes upwards we managed to get twice as much requests per seconds just because the the second pass is all will also be used by multipass TCP and so we have in fact about the bandwidth when we have smaller file sizes it's not performing as much as with the bigger
files because multipass TCP is doing more work and especially our implementation has still room for improvement so there it may still be may still be a performance increase meant possible so you can get MP TCP from our website you can download it and compile it yourself we have an apt repository with Debian packages we can we have explained how to set up on the VirtualBox image user mode Linux I have it on my Nokia n9 50 maybe if there are Android people here if they want to pour our Linux kernel to the Android kernel it would be nice to and we can we can
give you some advices well contribute to the project some missing features still need to be supported the code can still be optimized we want to refactor it because currently it's not yet in the official Linux kernel so there's still we want to push it in the future we want
to push it in a Linux kernel but there's refractory to be done and of course it's always good to have people trying it out and testing it and reporting bugs so um I will show you now the live demo I'm
here at force them I have the Wi-Fi connection to to first name is Wi-Fi 3G unfortunately the 3G here is not very good so we will see if the Deemer will work because i only don't have only have an edge network so um yeah we will see if the demon works well I have the MP TCP a capable server which
is running our website and an empty speak proxy which means in fact I can bypass traffic over this proxy doing MP TCP to the public Internet so I will in my first test I will show you a connection to the empty speed server and later on I will run a radio streaming and you will see the failover
of MPCP so I'm here I'm on our website and here
on the right side the top is the been quite used by the Wi-Fi interface and the bottom is the 3G interface so I have on our website we have an speed test and you will see now if I click on starting the test and if my 3G connection is not down hopefully okay there are this so my
3G you can see here now traffic is going over the Wi-Fi connection and the 3G connection at the same time so this is not possible with regular TCP and you have an potentially increased bandwidth of course now while it's hard to reproduce this results because well a lot of people are using here the Wi-Fi connection so so this showed a similar the simultaneous usage of both
interfaces I will now disable my Wi-Fi interface and loungin wrapper radio and you will
see the failover from 3G to Wi-Fi take some time until it finds so as you can see resolving amputees P it means I'm going over our HTTP proxy server now of course 3G connection is pretty bad at the moment here let's try it again okay well that's the demo effect I'm sorry okay maybe yeah there we are going okay now I got the connection so now you can see the traffic going over 3G maybe you couldn't even yeah traffic is going only over 3G because I've disabled Wi-Fi so that's the scenario you hoping moving with your mobile phone at you are for example using Spotify and listening to radio now you are entering Wi-Fi coverage so let's
imagine I enable Wi-Fi one click so it
takes some time until I get an IP address so we have again to wait so there we are okay now I got the IP address and you can see how the Wi-Fi interface starts being used and basically I can now remove my 3G dongle if you would be using regular TCP you would now need to restart your your your web radio but with multi pass TCP I did didn't hear too so thank you very much
so basically that's it you visit our
website so yeah questions sorry
UDP well UDP is completely different because it's not a reliable byte stream and currently there's no effort as far as I know in standardizing multi pass UDP but it may be possible to do something like this but that's times