--- 1/draft-ietf-tcpm-2140bis-06.txt 2020-12-28 11:13:18.054150023 -0800 +++ 2/draft-ietf-tcpm-2140bis-07.txt 2020-12-28 11:13:18.114151549 -0800 @@ -1,19 +1,19 @@ TCPM WG J. Touch Internet Draft Independent Intended status: Informational M. Welzl Obsoletes: 2140 S. Islam -Expires: May 2021 University of Oslo - November 25, 2020 +Expires: June 2021 University of Oslo + December 28, 2020 TCP Control Block Interdependence - draft-ietf-tcpm-2140bis-06.txt + draft-ietf-tcpm-2140bis-07.txt Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow @@ -34,21 +34,21 @@ months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html - This Internet-Draft will expire on May 25, 2021. + This Internet-Draft will expire on June 28, 2021. 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 @@ -138,34 +138,35 @@ This document updates RFC 2140's discussion of TCB state sharing and provides a complete replacement for that document. This state sharing affects only TCB initialization [RFC2140] and thus has no effect on the long-term behavior of TCP after a connection has been established nor on interoperability. Path information shared across SYN destination port numbers assumes that TCP segments having the same host-pair experience the same path properties, irrespective of TCP port numbers. The observations about TCB sharing in this document apply similarly to any protocol with congestion state, including SCTP [RFC4960] and DCCP [RFC4340], as well as for - individual subflows in Multipath TCP [RFC6824]. + individual subflows in Multipath TCP [RFC8684]. 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. - However, this document is intended to describe behavior that is - already permitted by TCP standards. As a result, it provides - informative guidance but does not use such normative language, - except when quoting other documents. + The core of this document describes behavior that is already + permitted by TCP standards. As a result, it provides informative + guidance but does not use normative language, except when quoting + other documents. Normative language is used in Appendix C as + examples of requirements for future consideration. 3. Terminology The following terminology is used frequently in this document. Items preceded with a "+" may be part of the state maintained as TCP connection state in the associated connections TCB and are the focus of sharing as described in this document. +cwnd - the TCP congestion window size [RFC5681] @@ -543,21 +544,21 @@ highly congested link. There are several ways to initialize the congestion window in a new TCB among an ensemble of current connections to a host. Current TCP implementations initialize it to four segments as standard [rfc3390] and 10 segments experimentally [RFC6928]. These approaches assume that new connections should behave as conservatively as possible. The algorithm described in [Ba12] adjusts the initial cwnd depending on the cwnd values of ongoing connections. It is also possible to use sharing mechanisms over long timescales to adapt TCP's initial - window automatically, as described further in Appendix A. + window automatically, as described further in Appendix C. 8. Compatibility Issues Here, we discuss various types of problems that may arise with TCB information sharing. For the congestion and current window information, the initial values computed by TCB interdependence may not be consistent with the long-term aggregate behavior of a set of concurrent connections between the same endpoints. Under conventional TCP congestion @@ -683,21 +684,21 @@ layer but could be shared at the network layer. 9.2. Other possibilities Per-host-pair associations are not the limit of these techniques. It is possible that TCBs could be similarly shared between hosts on a subnet or within a cluster, because the predominant path can be subnet-subnet, rather than host-host. Additionally, TCB interdependence can be applied to any protocol with congestion state, including SCTP [RFC4960] and DCCP [RFC4340], as well as for - individual subflows in Multipath TCP [RFC6824]. + individual subflows in Multipath TCP [RFC8684]. There may be other information that can be shared between concurrent connections. For example, knowing that another connection has just tried to expand its window size and failed, a connection may not attempt to do the same for some period. The idea is that existing TCP implementations infer the behavior of all competing connections, including those within the same host or subnet. One possible optimization is to make that implicit feedback explicit, via extended information associated with the endpoint IP address and its TCP implementation, rather than per-connection state in the TCB. @@ -707,21 +708,21 @@ The observation that some TCB state is host-pair specific rather than application-pair dependent is not new and is a common engineering decision in layered protocol implementations. Although now deprecated, T/TCP [RFC1644] was the first to propose using caches in order to maintain TCB states (see Appendix A). The table below describes the current implementation status for some TCB temporal sharing in Linux kernel version 4.6, FreeBSD 10 and Windows as of October 2016. Ensemble sharing is not yet implemented. - CURRENT IMPLEMENTATION STATUS (as of 2016) + KNOWN IMPLEMENTATION STATUS TCB data Status ------------------------------------------------------------ old_MMS_S Not shared old_MMS_R Not shared old_sendMSS Cached and shared in Linux (MSS) old_PMTU Cached and shared in FreeBSD and Windows (PMTU) @@ -910,24 +911,20 @@ [RFC4340] Kohler, E., Handley, M., Floyd, S., "Datagram Congestion Control Protocol (DCCP)," RFC 4340, Mar. 2006. [RFC4960] Stewart, R., (Ed.), "Stream Control Transmission Protocol," RFC4960, Sept. 2007. [RFC5925] Touch, J., Mankin, A., Bonica, R., "The TCP Authentication Option," RFC 5925, June 2010. - [RFC6824] Ford, A., Raiciu, C., Handley, M., Bonaventure, O., "TCP - Extensions for Multipath Operation with Multiple - Addresses," RFC 6824, Jan. 2013. - [RFC6928] Chu, J., Dukkipati, N., Cheng, Y., Mathis, M., "Increasing TCP's Initial Window," RFC 6928, Apr. 2013. [RFC7231] Fielding, R., J. Reshke, Eds., "HTTP/1.1 Semantics and Content," RFC-7231, June 2014. [RFC7323] Borman, D., B. Braden, V. Jacobson, R. Scheffenegger (Ed.), "TCP Extensions for High Performance," RFC 7323, Sept. 2014. @@ -935,36 +932,44 @@ B., "Mechanisms for Optimizing Link Aggregation Group (LAG) and Equal-Cost Multipath (ECMP) Component Link Utilization in Networks", RFC 7424, Jan. 2015 [RFC7540] Belshe, M., Peon, R., Thomson, M., "Hypertext Transfer Protocol Version 2 (HTTP/2)", RFC 7540, May 2015. [RFC7661] Fairhurst, G., Sathiaseelan, A., Secchi, R., "Updating TCP to Support Rate-Limited Traffic", RFC 7661, Oct. 2015. + [RFC8684] Ford, A., Raiciu, C., Handley, M., Bonaventure, O., + Paasch, C., "TCP Extensions for Multipath Operation with + Multiple Addresses," RFC 8684, Mar. 2020. + 15. Acknowledgments The authors would like to thank for Praveen Balasubramanian for information regarding TCB sharing in Windows, and Yuchung Cheng, Lars Eggert, Ilpo Jarvinen and Michael Scharf for comments on earlier versions of the draft. Earlier revisions of this work received funding from a collaborative research project between the University of Oslo and Huawei Technologies Co., Ltd. and were partly supported by USC/ISI's Postel Center. This document was prepared using 2-Word-v2.0.template.dot. 16. Change log This section should be removed upon final publication as an RFC. + ietf-07: + + - Update per id-nits and normative language for consistency + ietf-06: - Address WGLC comments ietf-05: - Correction of typographic errors, expansion of terminology ietf-04: