Multipath TCP (MPTCP) : Key advantages and disadvantages
Advertisement
Introduction : In comparing MPTCP (Multipath TCP) to standard TCP (Transmission Control Protocol), the differences stem primarily from how data is routed and managed across network paths. While TCP operates over a single path per connection which limits throughput and resilience. MPTCP extends TCP by enabling traffic to be split across multiple simultaneous paths. This architectural shift brings new advantages and trade-offs. MPTCP can yield better performance and fault tolerance, but at the cost of greater complexity, overhead and compatibility challenges.
TCP vs MPTCP
The figure depicts use of single path and multiple paths between client device (i.e. mobile phone) and cloud server (i.e. remote host) in traditional TCP and MPTCP respectively. As shown, in TCP either 5G or Wi-Fi is used between the two. In MPTCP, both the technologies are used between them which allows higher throughput, resilient connection and seamless handover between two networks.
TCP Basics
- TCP is connection oriented transport protocol.
- A session is established via 3-way handshake before data is exchanged.
- The figure depicts fields used in TCP header.
- It guarentees reliable, in-order delivery of data by using acknowledgments, sequence numbers and retransmissions.
- Implements flow control and congestion control to regulate how much data is sent and avoid overwhelming network or endpoints.
Image Courtesy (IETF) : RFC 9293
- Efficiently handles typical internet traffic (e.g. web browsing, email, file transfer) due to widespread support and mature ecosystem.
- Because it relies on a single path between endpoints, the performance can be limited by the weakest link in the path (e.g. one congested or lossy route).
What is MPTCP?
- It is an extension to TCP which allows single logical connection to be used by multiple network paths (i.e. subflows) simultaneously (e.g. Wi-Fi + cellular + Ethernet).
- It negotiates whether MPTCP can be applied or not before data transmission. If the other endpoint or a middlebox does not support MPTCP, it can fall back to regular TCP.
Image Courtesy (IETF) : RFC 8684
- The figure depicts TCP stack and MPTCP stack layers. From the application’s perspective the stack looks like as follows :
- From the network’s perspective, each subflow appears just like a regular TCP connection so that existing routers/NATs treat it like TCP.
Image Courtesy (IETF) : RFC 8684
MPTCP Option Field | Description |
---|---|
Kind | 8 bit in size, identifies that it it an MPTCP option. |
Length | 8 bit in size, total length of this option (in bytes), it depends on subtype and data included. |
Subtype | 4 bit in size, it tells which MPTCP message this is (e.g. MP_CAPABLE, MP_JOIN etc. ) |
Subtype specific data | Varies depending on subtype |
Row 5, C1 | Row 5, C2 |
MPTCP Option Subtypes fields are mentioned in the following table. These are mentioned in RFC8684.
Value | Symbol | Name |
---|---|---|
0x0 | MP_CAPABLE | Multipath Capable, Used in the very first subflow’s handshake to indicate that both endpoints support MPTCP, exchange keys/flags. |
0x1 | MP_JOIN | Joint Connection, Used to start a new subflow (on an existing MPTCP connection). Contains tokens, random nonces, address identifier, etc. |
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 |
Advabtages of MPTCP (Multipath TCP)
Following are some of the benefits of MPTCP protocol.
- Aggregates bandwidth from multiple interfaces (e.g. Wi-Fi, Cellular), increasing total available data rate or throughput.
- MPTCP offers reliability and fault tolerence. If one path fails, the other path provides the connectivity without interrupting the session. For example, if wi-fi disconnects, cellular will provide the connectivity and vice versa.
- It offers seamless handover i.e. enables smooth transision between networks (e.g. Wi-fi to Cellular or vice versa) without dropping connections.
- MPTCP protocol offers better resource utilization as it makes use of all available network resources more efficiently, balancing load between paths.
- MPTCP is backward compatible with traditional TCP. Hence it can communicate with standard TCP endpoints.
- It can choose fastest path or use parallel transmission to reduce response time in certain cases.
Disadvabtages of MPTCP (Multipath TCP)
Following are some of the drawbacks of MPTCP protocol.
- It increases complexity as managing multiple paths require complex algorithms for congestion control, scheduling and re-ordering.
- It incurs higher overhead as additional headers and control information increase processing and bandwidth overhead.
- There may be middlebox compatibility issues. Some NATs, firewalls, or load balancers may not properly handle MPTCP subflows.
- Differences in delay, bandwidth or packet loss across paths can cause packet reordering and performance inefficiencies.
- Using multiple interfaces simultaneously (e.g. Wi-Fi & 4g-LTE cellular) can increase power usage.
- Although supported in Linux, iOS and some servers, MPTCP is not yet universally implemented across all systems.
Conclusion:
Overall, MPTCP offers significant benefits over traditional TCP in multi-interface or dynamic network environments by aggregating bandwidth, providing seamless failover and improving robustness. The choice between TCP and MPTCP hinges on whether the deployment context justifies the additional overhead and complexity in exchange for enhanced flexibility and resilience.
Advertisement