TCP Extensions for Multipath Operation with Multiple Addresses
RFC 8684

Document Type RFC - Proposed Standard (March 2020; No errata)
Obsoletes RFC 6824
Authors Alan Ford  , Costin Raiciu  , Mark Handley  , Olivier Bonaventure  , Christoph Paasch 
Last updated 2020-03-30
Replaces draft-bonaventure-mptcp-exp-option
Stream Internet Engineering Task Force (IETF)
Formats plain text html xml pdf htmlized (tools) htmlized bibtex
Stream WG state Submitted to IESG for Publication
Document shepherd Philip Eardley
Shepherd write-up Show (last changed 2019-05-09)
IESG IESG state RFC 8684 (Proposed Standard)
Action Holders
Consensus Boilerplate Yes
Telechat date
Responsible AD Mirja K├╝hlewind
Send notices to Philip Eardley <>
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack

Internet Engineering Task Force (IETF)                           A. Ford
Request for Comments: 8684                                         Pexip
Obsoletes: 6824                                                C. Raiciu
Category: Standards Track                    U. Politehnica of Bucharest
ISSN: 2070-1721                                               M. Handley
                                                       U. College London
                                                          O. Bonaventure
                                                U. catholique de Louvain
                                                               C. Paasch
                                                             Apple, Inc.
                                                              March 2020

     TCP Extensions for Multipath Operation with Multiple Addresses


   TCP/IP communication is currently restricted to a single path per
   connection, yet multiple paths often exist between peers.  The
   simultaneous use of these multiple paths for a TCP/IP session would
   improve resource usage within the network and thus improve user
   experience through higher throughput and improved resilience to
   network failure.

   Multipath TCP provides the ability to simultaneously use multiple
   paths between peers.  This document presents a set of extensions to
   traditional TCP to support multipath operation.  The protocol offers
   the same type of service to applications as TCP (i.e., a reliable
   bytestream), and it provides the components necessary to establish
   and use multiple TCP flows across potentially disjoint paths.

   This document specifies v1 of Multipath TCP, obsoleting v0 as
   specified in RFC 6824, through clarifications and modifications
   primarily driven by deployment experience.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at

Copyright Notice

   Copyright (c) 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   ( in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction
     1.1.  Design Assumptions
     1.2.  Multipath TCP in the Networking Stack
     1.3.  Terminology
     1.4.  MPTCP Concept
     1.5.  Requirements Language
   2.  Operation Overview
     2.1.  Initiating an MPTCP Connection
     2.2.  Associating a New Subflow with an Existing MPTCP Connection
     2.3.  Informing the Other Host about Another Potential Address
     2.4.  Data Transfer Using MPTCP
     2.5.  Requesting a Change in a Path's Priority
     2.6.  Closing an MPTCP Connection
     2.7.  Notable Features
   3.  MPTCP Operations: An Overview
     3.1.  Connection Initiation
     3.2.  Starting a New Subflow
     3.3.  MPTCP Operation and Data Transfer
       3.3.1.  Data Sequence Mapping
       3.3.2.  Data Acknowledgments
       3.3.3.  Closing a Connection
       3.3.4.  Receiver Considerations
       3.3.5.  Sender Considerations
       3.3.6.  Reliability and Retransmissions
       3.3.7.  Congestion Control Considerations
       3.3.8.  Subflow Policy
     3.4.  Address Knowledge Exchange (Path Management)
       3.4.1.  Address Advertisement
       3.4.2.  Remove Address
     3.5.  Fast Close
     3.6.  Subflow Reset
     3.7.  Fallback
     3.8.  Error Handling
     3.9.  Heuristics
       3.9.1.  Port Usage
       3.9.2.  Delayed Subflow Start and Subflow Symmetry
       3.9.3.  Failure Handling
   4.  Semantic Issues
   5.  Security Considerations
   6.  Interactions with Middleboxes
   7.  IANA Considerations
     7.1.  TCP Option Kind Numbers
     7.2.  MPTCP Option Subtypes
     7.3.  MPTCP Handshake Algorithms
     7.4.  MP_TCPRST Reason Codes
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Appendix A.  Notes on Use of TCP Options
   Appendix B.  TCP Fast Open and MPTCP
     B.1.  TFO Cookie Request with MPTCP
     B.2.  Data Sequence Mapping under TFO
Show full document text