page_title: Multipath TCP
section_title: Simplified description
hierarchical_section_title: Multipath TCP / Protocol operation / Simplified description
caption_attribution_description: English: Example of a full multipath TCP session. We'll assume that Alice is talking to Bob. Alice is connected on 3G. She activates WiFi and then, she loses 3G connectivity.
context_page_description: Multipath TCP is an ongoing effort of the Internet Engineering Task Force's Multipath TCP working group, that aims at allowing a Transmission Control Protocol connection to use multiple paths to maximize resource usage and increase redundancy.
  In January 2013, the IETF published the Multipath specification as an Experimental standard in RFC 6824. Currently, the IETF works on an update to version 1 of the MPTCP protocol which will obsolete RFC 6824 if approved in 2019.
context_section_description: 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 should be 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 of 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 doesn't support MPTCP)
  Multipath TCP adds new mechanisms to TCP transmissions:
  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.
caption: Example of a full MPTCP session
exif: {}