Multipath TCP (MPTCP) is an ongoing effort from the Internet Engineering Task Force (IETF), aiming to allow a Transmission Control Protocol (TCP) connection to utilize multiple paths, improving resource usage and redundancy. Driven by the IETF's Multipath TCP working group, MPTCP enables the simultaneous use of multiple IP addresses/interfaces separating data into multiple subflows by modifying TCP while still presenting a regular TCP interface to applications.
The Internet Protocol (IP) is the computer networking model used on the Internet and similar computer networks, containing a set of communication protocols. First designed in the 1970s, TCP is a key internet protocol providing a reliable stream of data that is used by applications such as the web, email, file transfer, video streaming, and many more. Statistics show TCP drives around 90 to 95 percent of total internet traffic. An important feature of TCP is its congestion control scheme, which determines the available bandwidth in the network and adjusts the transmission of data accordingly. This scheme enables TCP to be used across a wide range of networks, including dial-up modems, high-speed ethernet, and wireless networks such as WiFi, 3G, and 4G.
However, a significant limitation of TCP is that it is tightly coupled with IP and can only use one of a device's communications interfaces. Modern networks are multipath, mobile devices have multiple wireless interfaces, data centers use many redundant paths between servers, and multihoming is now the norm for big server farms. In contrast, TCP is effectively a single-path protocol. Once a TCP connection is established, it is bound to the IP addresses of the two communications hosts. If one of these addresses changes, the connection fails.
The mismatch between multipath networks and the single-path TCP introduces problems. For example, if a smartphone loses the TCP connections, it will stall without a way of migrating them to other working interfaces (e.g., the mobile network). Data centers have many paths available between two endpoints, but once a particular one is chosen, it is fixed. This can cause issues if multiple flows are placed on the same link, reducing throughput.
A major modification, MCTCP allows multiple paths to simultaneously support a single transport connection.
Multiple MPTCP use cases have been explored by researchers. The majority build upon MPTCP implementations in the Linux kernel. This implementation has been verified by vendors such as Apple, Oracle, and Citrix to ensure interoperability.
Large data centers use networks that include many redundant links. Theoretical and experimental research show MCTCP allows data center operators to improve performance by spreading the load over multiple links.
MCTCP has shown good results when implemented with smartphones. Apple utilizes MCTCP for its voice recognition app.
Hybrid networks utilize both DSL and 4G to connect users. DSL routers with both DSL and 4G interfaces provide higher bandwidth for users.
A number of companies are developing products based on MCTCP, and many more utilize the protocol. Two key contributors to MCTP's implementation in the Linux kernel, Gregory Detal (Tessares) and Sébastien Barré (Praos), have created their own companies to offer support and features for commercial applications built on top of MCTCP.