September 24th, 2013
iOS 7 first large-scale, commercial use of resilient TCP extension
Apple’s iOS 7 is the first large-scale use of a newly-minted Internet protocol, called multipath TCP. It lets computers send and receive data across different network paths and interfaces at the same time, such as Ethernet, Wi-Fi and 3G.
There is evidence [see screen shot below that Apple is using the new protocol for iOS 7 device links to Siri, Apple’s cloud-based, natural language voice command and navigation service. MPTCP is intended to create more robust connections, resistant to path failures, and to improve performance, especially for delay-sensitive applications such as voice. It’s part of an ambitious, global effort to transform the Internet from a mainly data network today to one that supports far more demanding applications such as telephony and IP TV.
The new protocol has been in the works for several years, and became an “experimental standard” of the IETF in January, as RFC 6824. Six months later, three implementations had been developed, including one for the Linux kernel. The Linux implementation is a project of the IP Networking Lab, part of the department of computing science and engineering at the Université Catholique de Louvain in Louvain-la-Neuve, Belgium.
This week, completely unheralded, Apple’s iOS 7 became the first big commercial release of MPTCP.
Researchers have been working for years on creating “disruption tolerant” networks, which can automatically work around failures, sometimes multiple failures, and adapt to changing network conditions. [See from 2008 “Disruption-tolerant nets set for large-scale test”]
Today TCP is a single path protocol: if that path should fail for any reason, the session ends, and the connection has to be re-established.
By contrast, 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. For more details in MPTCP design see “How hard can it be? Designing and implementing a deployable multipath TCP”
The Linux MCTCP implementers posted a video of the protocol in action, running over Ethernet, Wi-Fi, and 3G. The demo starts with the launch of an SSH session. The traffic monitor at right in the video shows the session active over, from top to bottom, Ethernet, Wi-Fi and 3G. The researchers turn off Ethernet, then Wi-Fi, and the active session – visible at the left – continues running without interruption or problems over the 3G connection.
“Without our MPTCP Linux Kernel, the session would simply stop working and the user would need to restart the ssh-session,” according to the post.
Apple’s use of MPTCP was discovered by one of the researchers active in the protocol development process, Professor Olivier Bonaventure, with the IP Networking Lab, in Belgium.
“Packet traces collected on an iPad running iOS7 reveal that it uses Multipath TCP to reach some destinations that seem to be directly controlled by Apple,” he wrote in a blog post. “You won’t see Multipath TCP for regular TCP connections from applications like Safari, but if you use SIRI, you might see that the connection with one of the apple servers runs uses Multipath TCP.”
We don’t yet know how Apple is using MPTCP. “At this stage, the actual usage of Multipath TCP by iOS 7 is unclear….” says Bonaventure. “The next step will, of course, be the utilization of Multipath TCP by default for all applications running over iOS7.”