Having Multipath TCP inside the operating system allows all applications to automatically benefit from its features without forcing each application to reinvent the wheel. Operating system services help application developers by providing them with reusable services through standard APIs. In the case of Multipath TCP, at least on Linux, the standard API is the socket API.
MOSH only works with ssh, while Multipath TCP works with any unmodified application that runs on top of TCP. ssh is one of them of course.
SCTP is cleaner than Multipath TCP, but unfortunately there are on today's Internet many devices such as NATs that do not understand SCTP and simply block SCTP packets.
The main benefit of Multipath TCP when used in multihoming scenarios compared to BGP-based multihoming is that Multipath TCP capable hosts can use different paths simultaneously while BGP-based multihoming would provide one path for each client server pair.
With Multipath TCP, multihoming must be exposed to the server. For example, consider a small enterprise network connected to two different providers, A and B. With BGP-based multihoming, you assign address C to your server and advertise it through the two providers via BGP. BGP decides which path will be used and the ASPath metric used by BGP is far from being the most accurate metric to evaluate the quality of a path.
With Multipath TCP, you should ask a block of addresses from both A and B and assign one address from each provider you your server, say A.1 and B.1. Both addresses are advertised in the DNS. Address A.1 is always reachable via provider A and B.1 always reachable via provider B. When a TCP connection reaches the server, say over A.1, it will also advertise address B.1 using Multipath TCP and a second subflow will be established. Multipath TCP will then regulate the usage of the two paths in function of the amount of congestion on each path. If one path fails, Multipath TCP will perform failover automatically.
Multipath TCP traverses NAT and other types of middleboxes without problems.
Multipath TCP works in this use case and supports seamless handover. See http://inl.info.ucl.ac.be/publications/exploring-mobilewifi-handover-multipath-tcp for a detailed explanation. See https://github.com/mptcp-nexus/android for the MPTCP port on the google nexus
This works. The video used on the front page of the Multipath TCP website runs over ssh with 3G,WiFi and Ethernet.
Once a TCP connection has been established through one IP address,
the other packets of the connection must be sent from this address. This
makes mobility and load balancing difficult. Multipath TCP is
a new extension that solves these old problems by decoupling TCP from
the underlying IP. A Multipath TCP connection can send packets over
several interfaces/addresses simultaneously while remaining backward
compatible with existing TCP applications. Multipath TCP has several use
cases including smartphones that can use both WiFi and 3G or servers
that can pool multiple high-speed interfaces. Christoph Paasch, Gregory
Detal and their colleagues who develop the implementation of
Multipath TCP in the Linux kernel have achieved 50 Gbps for a single TCP
connection by pooling together six 10 Gbps interfaces. See here for
technical details and full source code.
Link to Original Source