In January 2013, the IETF published the Multipath specification as an Experimental standard in . It was replaced in March 2020 by the Multipath TCP v1 specification in RFC .
Where Multipath TCP leads. Every connection below has a source: a link in this article, a shared Wikipedia category, or CirrusSearch text similarity. Articles already on your trail are left out.
Multipath TCP (MPTCP) is an ongoing effort of the Internet Engineering Task Force's (IETF) Multipath TCP working group, that aims at allowing a Transmission Control Protocol (TCP) connection to use multiple paths to maximize throughput and increase redundancy.
Terms the article defines in bold, quoted in context.
Categories:
TCP extensions
1,819 words · 43 references · revision 1381649185 · CC BY-SA 4.0
The redundancy offered by Multipath TCP enables inverse multiplexing of resources, and thus increases TCP throughput to the sum of all available link-level channels instead of using a single one as required by standard TCP. Multipath TCP is backward compatible with standard TCP.
Multipath TCP is particularly useful in the context of wireless networks;2 using both Wi-Fi and a mobile network is a typical use case.3 In addition to the gains in throughput from inverse multiplexing, links may be added or dropped as the user moves in or out of coverage without disrupting the end-to-end TCP connection.4
The problem of link handover is thus solved by abstraction in the transport layer, without any special mechanisms at the network or link layers. Handover functionality can then be implemented at the endpoints without requiring special functionality in the subnetworks - in accordance to the Internet's end-to-end principle.
Multipath TCP also brings performance benefits in datacenter environments.5 In contrast to Ethernet channel bonding using 802.3ad link aggregation, Multipath TCP can balance a single TCP connection across multiple interfaces and reach very high throughput.6
Multipath TCP causes a number of new issues. From a network security perspective, multipath routing causes cross-path data fragmentation that results in firewalls and malware scanners becoming inefficient when they only see one path's traffic. In addition, SSL decryption will become inefficient by way of the end-to-end encryption protocols.7
User interface
In order to facilitate its deployment, Multipath TCP presents the same socket interface as TCP. This implies that any standard TCP application can be used above Multipath TCP while in fact spreading data across several subflows.8
Multipath TCP in the protocol stack
Some applications could benefit from an enhanced API to control the underlying Multipath TCP stack. Two different APIs have been proposed to expose some of features of the Multipath TCP stack to applications: an API that extends Netlink on Linux9 and an enhanced socket API.10
Implementations
In July 2013, the MPTCP working group reported five independent implementations of Multipath TCP,11 including the initial reference implementation8 in the Linux kernel.1213
Multipath TCP was designed to be backward compatible with regular TCP. As such, it can support any application. However, some specific deployments26 leverage the ability of simultaneously using different paths.
Apple uses Multipath TCP to support the Siri application on iPhone. Siri sends voice samples over an HTTPS session to Apple servers. Those servers reply with the information requested by the users. According to Apple engineers, the main benefits27 of Multipath TCP with this application are:
User-feedback (Time-to-First-Word) 20% faster in the 95th percentile
5x reduction of network failures
Other deployment use Multipath TCP to aggregate the bandwidth of different networks. For example, several types of smartphones, notably in Korea, use Multipath TCP to bond WiFi and 4G through SOCKS proxies.28 Another example are the Hybrid Access Networks that are deployed by network operators willing to combine xDSL and LTE networks. In this deployment, Multipath TCP is used to efficiently balance the traffic over the xDSL and the LTE network.29
In the standardisation of converged fixed and mobile communication networks, 3GPP and BBF are interoperating to provide an ATSSS (Access Traffic Selection, Switching, Splitting) feature to support multipath sessions, e.g., by applying Multipath TCP both in the User Equipment (UE) or Residential Gateway (RG) and on the network side.30
Multipath TCP options
Multipath TCP uses options that are described in detail in RFC 8684. All Multipath TCP options are encoded as TCP options with Option Kind 30, as reserved by IANA.31
The Multipath TCP option consists of the standard Option-Kind (in this case 30) and Length values, followed by a 4-bit subtype field, for which the IANA maintains a sub-registry entitled "MPTCP Option Subtypes" under the "Transmission Control Protocol (TCP) Parameters" registry. This subtype field indicates the MPTCP header type, and its values are defined as follows:
Value
Symbol
Name
0x0
MP_CAPABLE
Multipath Capable
0x1
MP_JOIN
Join Connection
0x2
DSS
Data Sequence Signal (Data ACK and Data Sequence Mapping)
0x3
ADD_ADDR
Add Address
0x4
REMOVE_ADDR
Remove Address
0x5
MP_PRIO
Change Subflow Priority
0x6
MP_FAIL
Fallback
0x7
MP_FASTCLOSE
Fast Close
0x8
MP_TCPRST
Subflow Reset
0xf
MP_EXPERIMENTAL
Reserved for Private Use
Values 0x9 through 0xe are currently unassigned.
Protocol operation
Simplified description
Difference between TCP and MPTCP
The core idea of multipath TCP is to define a way to build a connection between two hosts and not between two interfaces (as standard TCP does).
For instance, Alice has a smartphone with 3G and WiFi interfaces (with IP addresses 10.11.12.13 and 10.11.12.14) and Bob has a computer with an Ethernet interface (with IP address 20.21.22.23).
In standard TCP, the connection is established between two IP addresses. Each TCP connection is identified by a four-tuple (source and destination addresses and ports). Given this restriction, an application can only create one TCP connection through a single link. Multipath TCP allows the connection to use several paths simultaneously. For this, Multipath TCP creates one TCP connection, called subflow, over each path that needs to be used.
The purpose of the different protocol operations (defined in RFC 6824) are:
to handle when and how to add/remove paths (for instance if there's a connection lost or some congestion control)
to be compatible with legacy TCP hardware (such as some firewalls that can automatically reject TCP connections if the sequence number aren't successive)
to define a fair congestion control strategy between the different links and the different hosts (especially with those that don't support MPTCP)
Example of a full MPTCP session
Multipath TCP adds new mechanisms to TCP transmissions:
Congestion control
Several congestion control mechanisms have been defined for Multipath TCP. Their main difference with classical TCP congestion control schemes is that they need to react to congestion on the different paths without being unfair with single path TCP sources that could compete with them on one of the paths.3 Four Multipath TCP congestion control schemes are currently supported by the Multipath TCP implementation in the Linux kernel.
The IETF is currently developing the QUIC protocol that integrates the features that are traditionally found in the TCP, TLS and HTTP protocols. It can be extended to support the same use cases as Multipath TCP. A first design for Multipath QUIC has been proposed,36 implemented and evaluated.37
Stream Control Transmission Protocol (SCTP) is a reliable in-order datagram stream transport protocol originally intended for telecommunication signaling. It supports concurrent use of multiple access links and allows the application to influence the access interface selections on a datagram stream basis. It also supports mobility via access renegotiation. Hence, SCTP is also a transport layer solution. It offers type 3 flow granularity with concurrency, but with more flow scheduling control than Multipath TCP. It also fully supports mobility in a fashion similar to Multipath TCP.38
Within the (IMS) architecture, (SIP) can support the concurrent use of multiple contact IP addresses for the registration of one or more IMS user agents. This allows for the creation of multiple IMS signaling paths. On these signaling paths, signaling messages carry (SDP) messaging to negotiate media streams. SDP allows for the (re-)negotiation of the streams of one media session over multiple paths. In turn, this enables application layer multipath transport. From this point of view, IMS can therefore offer application layer multipath support with flow granularity and concurrent access. A multipath extension to (RTP) has been under discussion within the IETF. Multipath RTP can offer flow granularity with concurrent access and mobility (via IMS, SDP signaling or the RTP control protocol). Very recently in addition a proposal to extend also (Datagram Congestion Control Protocol) by a multipath feature is discussed at IETF in TSVWG (Transport Area Working Group) dubbed as MP-DCCP.
RFC
RFC 6181 - Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses
RFC 6182 - Architectural Guidelines for Multipath TCP Development
RFC 6356 - Coupled Congestion Control for Multipath Transport Protocols
RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses (v0; replaced by RFC 8684)
2Paasch, Christoph; Detal, Gregory; Duchene, Fabien; Raiciu, Costin; Bonaventure, Olivier (2012). "Exploring mobile/WiFi handover with multipath TCP". Proceedings of the 2012 ACM SIGCOMM workshop on Cellular networks: Operations, challenges, and future design - Cell Net '12. ACM SIGCOMM workshop on Cellular Networks (Cellnet'12). p. 31. doi:10.1145/2342468.2342476. ISBN 9781450314756.
3S. Pokhrel; M. Panda; H. Vu (2017-02-24). "Analytical Modeling of Multipath TCP Over Last-Mile Wireless". IEEE/ACM Transactions on Networking. 25 (3): 1876–1891. doi:10.1109/TNET.2017.2663524. S2CID21518823.
4S. Pokhrel; M. Mandjes (2019-03-24). "Improving Multipath TCP Performance over WiFi and Cellular Networks: an Analytical Approach". IEEE Transactions on Mobile Computing. 25 (3): 1876–1891. doi:. .
AppleiOS 7, released on September 18, 2013 is the first large scale commercial deployment of Multipath TCP.19 Since iOS 7, any application can use Multipath TCP.
Alcatel-Lucent released MPTCP proxy version 0.9 source code on October 26, 20122122
In July 2014, Oracle reported that an implementation on Solaris was being developed. In June 2015, work is in progress.23 There is also an ongoing effort to push a new Multipath TCP implementation in the mainline Linux kernel.24
During the MPTCP WG meeting at IETF 93, SungHoon Seo announced that KT had deployed since mid June a commercial service that allows smartphone users to reach 1 Gbit/s using a MPTCP proxy service.25 Wavenet uses the Linux kernel implementation (developed by Tessares) to deploy Hybrid Access Networks.
The subflow system, used to gather multiple standard TCP connections (the paths from one host to another). Subflows are identified during the TCP three-way handshake. After the handshake, an application can add or remove some subflows (subtypes 0x3 and 0x4).
The MPTCP DSS option contains a data sequence number and an acknowledgement number. These allow receiving data from multiple subflows in the original order, without any corruption (message subtype 0x2)
A modified retransmission protocol handles congestion control and reliability.
Detailed specification
The detailed protocol specification is provided in RFC 8684. Several survey articles provide an introduction to the protocol.3233
A deep reinforcement learning (DRL) framework for joint congestion control and packet scheduling uses policy gradients to learn congestion control and scheduling strategies from experience. 41 DRL-based Multipath TCP has been used in distributed edge learning applications.42
Other protocols and experiments
At the session layer, the Mobile Access Router project experimented in 2003 with the aggregation of multiple wireless accesses with heterogeneous technologies, transparently balancing traffic between them in response to the perceived performance of each of them.43
Parallel access schemes38 used to accelerate transfers by taking advantage of HTTP range requests to initiate connections to multiple servers of a replicated content, are not equivalent to Multipath TCP as they involve the application layer and are limited to content of known size.
7Afzal, Zeeshan (2020). Life of a Security Middlebox Challenges with Emerging Protocols and Technologies (PhD). ISBN 978-91-7867-103-8. OCLC1139703033.
9Hesmans, B.; Detal, G.; Barre, S.; Bauduin, R.; Bonaventure, O. (2015). "SMAPP". SMAPP towards smart Multipath TCP-enabled applications. pp. 1–7. doi:10.1145/2716281.2836113. ISBN 9781450334129. S2CID9940025.
10Hesmans, Benjamin; Bonaventure, Olivier (2016). "An enhanced socket API for Multipath TCP". Proceedings of the 2016 workshop on Applied Networking Research Workshop - ANRW 16. pp. 1–6. doi:10.1145/2959424.2959433. ISBN 9781450344432. S2CID13799560.
41S. Pokhrel; A. Walid (2023-02-01). "Learning to Harness Bandwidth With Multipath Congestion Control and Scheduling". IEEE Transactions on Mobile Computing. 22 (2): 996–1009. arXiv:2105.14271. doi:10.1109/TMC.2021.3085598. S2CID69245415.
42S. Pokhrel; J. Choi; A. Walid (2023). "Fair and Efficient Distributed Edge Learning With Hybrid Multipath TCP". IEEE/ACM Transactions on Networking. 31 (4): 1582–1594. arXiv:2211.09723. doi:10.1109/TNET.2022.3219924. S2CID98245675.
43R. Chakravorty; I. Pratt; P. Rodriguez (2003-07-01). "Mobile Access Router". University of Cambridge, Microsoft Research.
In computer networking, the transport layer is an abstraction layer in a network protocol stack that provides communication services between applications.
The Internet Engineering Task Force (IETF) is a standards organization for the Internet responsible for the technical standards of the Internet protocol suite (TCP/IP).
Principal protocol used to stream data across an IP network
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite, providing reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network.
Rate at which data is processed in communication networks
Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel in a communication network, such as Ethernet or packet radio.
A data center is a facility (typically a building or room) dedicated to housing computer equipment for the storage, manipulation, and transmission of digital information.
The Internet Assigned Numbers Authority (IANA) is a standards organization that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name…
In cellular telecommunications, handover, or handoff, is the process of transferring an ongoing call or data session from one channel connected to the core network to another channel.
Family of technologies that are used to transmit digital data over telephone lines
Digital subscriber line (DSL), originally digital subscriber loop, is a family of technologies that are used to transmit digital data over telephone lines.
Deakin University is a public research university in the state of Victoria, Australia. Its largest campus is in Victoria's state capital Melbourne, with regional campuses in Geelong and Warrnambool.
Wi-Fi is a family of wireless network protocols based on the IEEE 802.11 family of standards, which are commonly used for local area networking of devices and Internet access, allowing nearby digital devices to exchange data by radio waves.