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 | IETF | ||
Formats | plain text html xml pdf htmlized bibtex | ||
Reviews | |||
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) | |
Consensus Boilerplate | Yes | ||
Telechat date | |||
Responsible AD | Mirja Kühlewind | ||
Send notices to | Philip Eardley <philip.eardley@bt.com> | ||
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 Abstract 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 https://www.rfc-editor.org/info/rfc8684. 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 (https://trustee.ietf.org/license-info) 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 TFOShow full document text