Why we need more than one path
Single lanes limit performance
"Normal" TCP connections pick one route between two endpoints. If that is congested or fails, your data slows down or stops. The internet, however, has many routes between the same devices, and most modern devices have multiple network interfaces (Wi-Fi, 4G/5G, wired, etc.).
MPTCP's designers realised that using more than one link simultaneously could improve throughout and resilience.
Mobile devices use multiple networks
In this era, your phone talks over Wi‑Fi at home and 4G/5G when you leave. With classic TCP, moving out of Wi‑Fi range tears down the connection and forces your apps to reconnect.
MPTCP is designed for this reality: it lets a connection migrate seamlessly between networks or use them simultaneously. MPTCP introduces “subflows”, separate TCP flows over different interfaces, so a single connection can ride over both Wi‑Fi and cellular.
More resilience and resource pooling
By spreading traffic across different paths, MPTCP keeps your session alive if one path fails or becomes congested. MPTCP can maintain a stable connection even when a path fails because other paths can take over. This redundancy is valuable for real‑time applications like streaming, gaming or voice assistants.
An analogy
Imagine a courier company delivering a package from London to Edinburgh. Traditional TCP is like sending a parcel via a single courier van on the motorway. If there’s a traffic jam, the delivery slows down or fails. MPTCP is like splitting the parcel into several smaller parcels and sending them simultaneously via multiple vans on different roads (motorway, A‑roads, maybe even rail). Even if one route is congested, the others keep moving, and the package arrives faster. Later, these small parcels are reassembled at the destination.
How Multipath TCP works
MPTCP is not a brand‑new protocol; it’s an extension to TCP defined in RFC 8684. It aims to provide the same reliable, ordered byte‑stream as TCP while allowing multiple routes. Here’s a simplified view of how it operates:
- Initial subflow: The client initiates a normal TCP handshake with the server. During this handshake, it advertises that it supports MPTCP.
- Establish additional subflows: Once the initial subflow exists, the peers exchange additional IP addresses and negotiate new subflows. Each subflow is a regular TCP connection over a different network interface or path.
- Scheduling and data distribution: A scheduler in the operating system splits the application’s byte stream into chunks and assigns them to subflows. It monitors congestion, latency and path quality to decide how much data to send over each path. MPTCP also includes a connection‑level sequence number so the receiver can reorder data from multiple subflows.
- Fail‑over and mobility: If a subflow experiences packet loss, high latency or a link failure, the scheduler can reduce or stop sending on that subflow and instead use others. The connection remains intact, and applications don’t notice the change. This ability to create and destroy subflows over the lifetime of a single connection means MPTCP can survive network changes such as moving from Wi‑Fi to cellular without interrupting the session.
- Graceful close: When the application finishes, MPTCP closes all subflows gracefully, ensuring that outstanding data is delivered.
MPTCP is backward compatible with TCP: if the other endpoint doesn’t support it, the connection simply falls back to classic TCP.
Benefits of MPTCP
- Improved performance
- Because MPTCP can distribute data across multiple paths, it can achieve higher throughput and lower latency. MPTCP combines bandwidth from multiple network paths, accelerating file transfers, streaming and video calls.
- Increased resilience
- With multiple subflows, a connection can survive path failures and congestion. If one path fails, MPTCP automatically uses another, keeping the session alive.
- Better resource utilisation
- Spreading traffic across several links prevents congestion on a single path and makes full use of available bandwidth.
- Seamless mobility
- Mobile devices can switch between Wi‑Fi and cellular networks without losing connections. Apple’s iOS has supported MPTCP since IOS7, allowing Siri requests to continue seamlessly as a user moves from home Wi‑Fi to 4G/ 5G.
- Compatibility
- MPTCP is designed to co‑exist with classic TCP and works across both IPv4 and IPv6. Applications rarely need to change, since the OS handles the protocol.
- Potential privacy benefits
- Using multiple paths can obscure traffic patterns and reduce reliance on a single network provider. Security researchers note that mixing networks can help avoid throttling and improve privacy.
Trade‑offs and challenges
MPTCP isn’t always a free win. Some of the main trade‑offs include:
- Complexity and limited support
- Both client and server must support MPTCP. While Linux and iOS have implementations, other operating systems and network devices may not.
- Fairness and congestion control
- MPTCP must be careful not to starve regular TCP flows. Coupled congestion algorithms attempt to be fair, but misconfiguration can still lead to unfair bandwidth grabs.
- Security inspection
- Because an MPTCP connection is split across multiple network paths, intrusion prevention systems (IPS) or firewalls may struggle to reconstruct the full session. Existing security tools can’t always reassemble multipath sessions, creating blind spots.
- Packet reordering and head‑of‑line blocking
- Differences in delay between paths can cause out‑of‑order arrivals. Schedulers have to mitigate this; otherwise, network performance may suffer.
- Not universally available
- The protocol is still maturing; Apple uses it for Siri and a few applications, but most internet services don’t yet support it.
Where is Multipath TCP used today?
The first widespread deployment of MPTCP was on Apple’s iOS devices. Apple uses it for Siri voice assistant traffic, allowing Siri requests to continue when you leave Wi‑Fi and switch to cellular.
Linux added MPTCP support in kernel 5.6, although practical use typically requires kernel 6.1 and configuration. Some research projects and routers use MPTCP for link aggregation or to improve cloud traffic flows, and the IETF standard defines how any compliant OS can support it.
FAQ
Does MPTCP replace regular TCP?
No. MPTCP is an extension to TCP. If both endpoints support it, they can use multiple paths; otherwise they fall back to classic single‑path TCP. Applications still see the same reliable byte stream.
Do I need special hardware to use MPTCP?
Not usually. You need an operating system with MPTCP support (e.g. recent Linux, MacOS, etc.) and a server configured to accept MPTCP connections.
Can I use MPTCP with IPv6?
Yes. MPTCP operates over both IPv4 and IPv6, and a connection can mix addresses from both families.
Does MPTCP introduce security risks?
Multipath operation can complicate network monitoring. Security tools may not yet reassemble sessions spread across multiple addresses. As the protocol matures, vendors are updating tools to handle it.