Nowadays, it is common for an Internet connected device to have multiple network interfaces. For example, smartphones have a 3G/LTE connection along with an active WiFi access. If you are on a call with another person and walk into your home, you might want to automatically switch from your mobile network (3G/LTE) to your home WiFi.
Over the years, there have been several proposals to solve this problem: ICE mobility, which transformed into solving a particular case for TURN mobility, and Peter Thatcher’s proposal for dynamically switching between paths. Lastly, at IETF 97 in Seoul (November 2016), Pål-Erik Martinsen presented an interesting slide-set on ICE and multipath opportunities. While there are several proposals, there is desire to solve the problem.
Multipath protocols (MPTCP and MPRTP) allow utilizing multiple network interfaces simultaneously, and offer three distinct benefits to the end-user: resource pooling, offloading, and load balancing.
Pooling the resource capacity of multiple Internet paths allows higher bit-rate and higher quality codecs to be used. From the application perspective, the overall available capacity between the two endpoints increases as the bandwidth of the two paths can be combined.
The bandwidth per path can vary, which would require the sending rate to change accordingly. If congestion is observed on one path, the algorithm would reallocate media onto the other paths when needed. Seamlessly offloading a flow from one path to another allows for some gains, such as, reduced energy consumption, reduced access costs, or reduced network latency. Hence, outages on one path have less impact on the overall perceived quality of the stream. This can also enable seamless handover in the case of mobility, i.e., moving from one network to another. For example, switching from LTE/3G to WiFi.
Apart from offloading all the media traffic from one path to another, the endpoint could perform load balancing, i.e., splitting a single media stream over multiple paths reduces the load on a particular path, which in turn reduces the impact of the media stream on other traffic on that path.
Multipath RTP (MPRTP) extends RTP, which is a network protocol for delivering audio and video over IP networks used by WebRTC, so that a single session can take advantage of the availability of multiple paths between two endpoints. Multipath RTP splits an RTP Stream into several subflows. Each sublow is identified by a distinct
SubflowID (the sublow maps 1:1 to multiple paths). Each subflow has its own sequence numbering and an extension to the RTCP protocol provides feedback for each subflow.
Exploiting multipath characteristics for TCP has been studied extensively and standardized as MPTCP. The most notable use of MPTCP is Apple’s Siri, which seemlesly uses MPTCP for offloading between WiFi and LTE/3G.
By the way, we are one of the co-authors of MPRTP. If you get excited about complex networking problems, we are hiring!