Apple’s MPTCP Story So Far

  • Analysis
  • 0 comments

Apple’s WWDC2020 Multipath TCP update

MPTCP is a way of using more than one TCP connection at the same time, typically over different physical networks. This can:

  • Protect the connection from drop outs

  • Choose the best network available

  • Provide a speed boost when both networks are available.

Tessares uses MPTCP to:

  1. Combine DSL with 4G to give a ‘Fixed First’ speed boost. The fixed network is prioritised but cellular can be used to provide a speed boost when necessary. We already have commercial deployments in six countries in Europe. Typically operators are using Tessares’ solution to boost rural ADSL by 20 or 30 Mbps or topping up VDSL customers to the speed their customers actually signed up for. For example customers getting below 50 Mbps can now get the full 75 Mbps they signed for.

  2. Combine two different wireless networks for eg. Wi-Fi and 4G / 5G to allow mobile users to move between networks without losing their connections. For operators this can enable offloading as much data as possible to Wi-Fi.

In 2013 Apple started using MPTCP for Siri. Siri can use your device’s Wi-Fi connection or 4G depending on which one gives the lowest latency. Siri does all the processing in the Cloud so using the best available network interface improves performance and usability.

Fig. 1 – Siri icon when introduced in iOS 7

In iOS 9, Apple introduced Wi-Fi assist. This only works at the flow level, at the point where we need to create a connection, iOS can decide whether to make that connection over Wi-Fi or over wireless. Wi-Fi assist was used for Apple’s own apps like Safari, Music, Mail and Maps. Wi-Fi assist does not work in the background and some 3rd party apps for fear of using too much mobile data. Apple Music can benefit from Wi-Fi assist but Spotify cannot.

Fig. 2 – Wi-Fi assist was enabled by default in iOS 9

At WWDC 2017, Apple revealed that MPTCP made Siri 20% faster and reduced network failures by a factor of five. In iOS 11, MPTCP became open and is usable through a public API.  You can read more about that in our 2017 blog post.  Unlike Wi-Fi assist which worked at the flow level, MPTCP works at the packet level, allowing real time path selection decisions.

Fig. 3 – MPTCP update from WWDC 2017

Fig. 4 – Apple uses MPTCP to reduce stalls and stall duration since iOS 13

In iOS 13, Apple expanded their use of MPTCP to more of their own apps. You can read more about that in this blog post from 2019. Apple started using MPTCP for Maps and Music. You have probably experienced the frustration of trying to use Maps outside your house, just beyond the useful reach of your Wi-Fi connection but not enough for the Wi-Fi to be dropped. With MPTCP using both paths, this is no longer a problem. For Apple Music the issue is with stalls. You leave one network and your phone automatically connects to another but the session has to be re-established creating a gap in your playback. This can happen again and again as your mobile device connects to public Wi-Fi hotspots prompting some users to switch off Wi-Fi. They forget to turn it back on again, use a lot of data, even when home. High and unlimited data accounts have made this less of a problem for consumers but it has become a big problem for MNOs and especially for MVNOs who pay for the data they use.

At WWDC 2020 Apple announced that using MPTCP for Music had resulted in a 13% reduction in music stalls and a 22% reduction in stall duration and they encouraged other app developers to consider taking advantage of MPTCP. This involves enabling MPTCP in their apps and also installing MPTCP on their content server.

Fig. 5 – Apple uses MPTCP to reduce stalls and stall duration since iOS 13

Does this mean that MPTCP has to be enabled for all apps and that it only works with iOS? No, in fact we can put MPTCP on the device and in the operator network so that customers can seamlessly move between Wi-Fi and cellular without developers having to do anything, without customer intervention and without ever having to turn off Wi-Fi.

The basis of this work is 3GPP ATSSS which uses MPTCP. ATSSS stands for Access Traffic Steering, Switching & Splitting. It works as a rules engine where operators’ policies can be specified based on business drivers, technical drivers or a combination of both.  For more information on ATSSS see the Tessares ATSSS solution page or download our ATSSS whitepaper.


Author: Graham Turnbull

  • Share