Back in the days when Internet was dialup and was slow, several proprietary technologies were developed. One such technologies was to combine two dial-up modems to boost connection speed by sending packets across both networks for the same download request.
Eventually, the need to combine multiple network connections was meant to be standardized across industry and that’s when Multipath TCP came into being.
Android had ability to combine 3G, 4G with Wifi speeds to boost download speeds since a while, with limited ROM support, and only available to ROOTed users. All this is made possible by Multipath TCP.
As its name implies, Multipath TCP allows for a connected device, such as a PC, Android, iOS device to transmit data over multiple pathways simultaneously. For example, the technology allows for compatible devices to transfer data over both 4G and Wi-Fi networks. One of Multipath TCP’s benefits over traditional TCP extensions is the protocol’s ability to push data through the most efficient network, which leads to fewer dropouts. If one channel fails, another will take over in matter of milliseconds, unnoticeable to the user.
Some of the source code for MP-TCP for Android are available here.
iOS 7 is taking MPTCP to the next level by integrating it into the system core. iOS 7, by default, makes MPTCP connections to supported Apple servers for applications like Facetime, Push notifications, iTunes streaming, Siri. However, Apple has limited it pretty much to its own services. It won’t work with Safari or 3rd party apps. When you use Facetime, SIRI, iCloud. Its evident that Apple didn’t wanted to boost network speeds but only reduce the network latency if you happen to have one Flaky network.
Even though Multipath TCP standard was specced in 2008, it hasn’t been shipped in a consumer device. iOS 7 could be the first of its kind. Of course Android had it available for years, but never shipped in AOSP.
MCTCP is a TCP extension that enables the simultaneous use of several IP addresses or interfaces. Existing applications – completely unmodified — see what appears to be a standard TCP interface. But under the covers, MPTCP is spreading the connection’s data across several subflows, sending it over the least congested paths.
The benefits of this include improved network utilization, higher throughput, and greater resiliency by letting the network automatically and smoothly react to path failures. The Linux MCTCP implementers posted a video of the protocol in action, running over Ethernet, Wi-Fi, and 3G.