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