| rfc9937v4.txt | rfc9937.txt | |||
|---|---|---|---|---|
| skipping to change at line 353 ¶ | skipping to change at line 353 ¶ | |||
| could, in some cases, be worse than [RFC6675] recovery, which simply | could, in some cases, be worse than [RFC6675] recovery, which simply | |||
| sets cwnd to ssthresh at the start of recovery. This behavior of | sets cwnd to ssthresh at the start of recovery. This behavior of | |||
| setting cwnd to ssthresh at the end of recovery has been implemented | setting cwnd to ssthresh at the end of recovery has been implemented | |||
| since the first widely deployed TCP PRR implementation in 2011 | since the first widely deployed TCP PRR implementation in 2011 | |||
| [First_TCP_PRR] and is similar to [RFC6675], which specifies setting | [First_TCP_PRR] and is similar to [RFC6675], which specifies setting | |||
| cwnd to ssthresh at the start of recovery. | cwnd to ssthresh at the start of recovery. | |||
| Since [RFC6937] was written, PRR has also been adapted to perform | Since [RFC6937] was written, PRR has also been adapted to perform | |||
| multiplicative window reduction for non-loss-based congestion control | multiplicative window reduction for non-loss-based congestion control | |||
| algorithms, such as for Explicit Congestion Notification (ECN) as | algorithms, such as for Explicit Congestion Notification (ECN) as | |||
| described in [RFC3168]. This can be done by using some parts of the | specified in [RFC3168]. This can be done by using some parts of the | |||
| loss recovery state machine (in particular, the RecoveryPoint from | loss recovery state machine (in particular, the RecoveryPoint from | |||
| [RFC6675]) to invoke the PRR ACK processing for exactly one round | [RFC6675]) to invoke the PRR ACK processing for exactly one round | |||
| trip worth of ACKs. However, note that using PRR for cwnd reductions | trip worth of ACKs. However, there can be interactions between using | |||
| for the [RFC3168] variant of ECN has been observed, with some | PRR and approaches to Active Queue Management (AQM) and ECN; guidance | |||
| approaches to Active Queue Management (AQM), to cause an excess cwnd | on the development and assessment of congestion control mechanisms is | |||
| reduction during ECN-triggered congestion episodes, as noted in | provided in [RFC9743]. | |||
| [VCC]. | ||||
| 5. Relationships to Other Standards | 5. Relationships to Other Standards | |||
| PRR MAY be used in conjunction with any congestion control algorithm | PRR MAY be used in conjunction with any congestion control algorithm | |||
| that intends to make a multiplicative decrease in its sending rate | that intends to make a multiplicative decrease in its sending rate | |||
| over approximately the time scale of one round-trip time, as long as | over approximately the time scale of one round-trip time, as long as | |||
| the current volume of in-flight data is limited by a congestion | the current volume of in-flight data is limited by a congestion | |||
| window (cwnd) and the target volume of in-flight data during that | window (cwnd) and the target volume of in-flight data during that | |||
| reduction is a fixed value given by ssthresh. In particular, PRR is | reduction is a fixed value given by ssthresh. In particular, PRR is | |||
| applicable to both Reno [RFC5681] and CUBIC [RFC9438] congestion | applicable to both Reno [RFC5681] and CUBIC [RFC9438] congestion | |||
| skipping to change at line 802 ¶ | skipping to change at line 801 ¶ | |||
| require any changes at data receivers or in networks. This allows | require any changes at data receivers or in networks. This allows | |||
| data senders using PRR to work correctly with any existing data | data senders using PRR to work correctly with any existing data | |||
| receivers or networks. PRR does not require any changes to or | receivers or networks. PRR does not require any changes to or | |||
| assistance from routers, switches, or other devices in the network. | assistance from routers, switches, or other devices in the network. | |||
| 11.2. Fairness | 11.2. Fairness | |||
| PRR is designed to maintain the fairness properties of the congestion | PRR is designed to maintain the fairness properties of the congestion | |||
| control algorithm with which it is deployed. PRR only operates | control algorithm with which it is deployed. PRR only operates | |||
| during a congestion control response episode, such as fast recovery | during a congestion control response episode, such as fast recovery | |||
| or response to the [RFC3168] variant of ECN, and only makes short- | or when there is a step reduction in the cwnd from the TCP ECN | |||
| term, per-acknowledgment decisions to smoothly regulate the volume of | reaction defined in [RFC3168], and only makes short-term, per- | |||
| in-flight data during an episode such that at the end of the episode | acknowledgment decisions to smoothly regulate the volume of in-flight | |||
| it will be as close as possible to the slow start threshold | data during an episode such that at the end of the episode it will be | |||
| (ssthresh), as determined by the congestion control algorithm. PRR | as close as possible to the slow start threshold (ssthresh), as | |||
| does not modify the congestion control cwnd increase or decrease | determined by the congestion control algorithm. PRR does not modify | |||
| mechanisms outside of congestion control response episodes. | the congestion control cwnd increase or decrease mechanisms outside | |||
| of congestion control response episodes. | ||||
| 11.3. Protecting the Network Against Excessive Queuing and Packet Loss | 11.3. Protecting the Network Against Excessive Queuing and Packet Loss | |||
| Over long time scales, PRR is designed to maintain the queuing and | Over long time scales, PRR is designed to maintain the queuing and | |||
| packet loss properties of the congestion control algorithm with which | packet loss properties of the congestion control algorithm with which | |||
| it is deployed. As noted above, PRR only operates during a | it is deployed. As noted above, PRR only operates during a | |||
| congestion control response episode, such as fast recovery or | congestion control response episode, such as fast recovery or | |||
| response to ECN, and only makes short-term, per-acknowledgment | response to ECN, and only makes short-term, per-acknowledgment | |||
| decisions to smoothly regulate the volume of in-flight data during an | decisions to smoothly regulate the volume of in-flight data during an | |||
| episode such that at the end of the episode it will be as close as | episode such that at the end of the episode it will be as close as | |||
| skipping to change at line 982 ¶ | skipping to change at line 982 ¶ | |||
| [RFC3517] Blanton, E., Allman, M., Fall, K., and L. Wang, "A | [RFC3517] Blanton, E., Allman, M., Fall, K., and L. Wang, "A | |||
| Conservative Selective Acknowledgment (SACK)-based Loss | Conservative Selective Acknowledgment (SACK)-based Loss | |||
| Recovery Algorithm for TCP", RFC 3517, | Recovery Algorithm for TCP", RFC 3517, | |||
| DOI 10.17487/RFC3517, April 2003, | DOI 10.17487/RFC3517, April 2003, | |||
| <https://www.rfc-editor.org/info/rfc3517>. | <https://www.rfc-editor.org/info/rfc3517>. | |||
| [RFC6937] Mathis, M., Dukkipati, N., and Y. Cheng, "Proportional | [RFC6937] Mathis, M., Dukkipati, N., and Y. Cheng, "Proportional | |||
| Rate Reduction for TCP", RFC 6937, DOI 10.17487/RFC6937, | Rate Reduction for TCP", RFC 6937, DOI 10.17487/RFC6937, | |||
| May 2013, <https://www.rfc-editor.org/info/rfc6937>. | May 2013, <https://www.rfc-editor.org/info/rfc6937>. | |||
| [RFC9743] Duke, M., Ed. and G. Fairhurst, Ed., "Specifying New | ||||
| Congestion Control Algorithms", BCP 133, RFC 9743, | ||||
| DOI 10.17487/RFC9743, March 2025, | ||||
| <https://www.rfc-editor.org/info/rfc9743>. | ||||
| [Savage99] Savage, S., Cardwell, N., Wetherall, D., and T. Anderson, | [Savage99] Savage, S., Cardwell, N., Wetherall, D., and T. Anderson, | |||
| "TCP Congestion Control with a Misbehaving Receiver", ACM | "TCP Congestion Control with a Misbehaving Receiver", ACM | |||
| SIGCOMM Computer Communication Review, vol. 29, no. 5, pp. | SIGCOMM Computer Communication Review, vol. 29, no. 5, pp. | |||
| 71-78, DOI 10.1145/505696.505704, October 1999, | 71-78, DOI 10.1145/505696.505704, October 1999, | |||
| <https://doi.org/10.1145/505696.505704>. | <https://doi.org/10.1145/505696.505704>. | |||
| [TCP-RH] Mathis, M., Mahdavi, J., and J. Semke, "The Rate-Halving | [TCP-RH] Mathis, M., Mahdavi, J., and J. Semke, "The Rate-Halving | |||
| Algorithm for TCP Congestion Control", Work in Progress, | Algorithm for TCP Congestion Control", Work in Progress, | |||
| Internet-Draft, draft-mathis-tcp-ratehalving-00, 30 August | Internet-Draft, draft-mathis-tcp-ratehalving-00, 30 August | |||
| 1999, <https://datatracker.ietf.org/doc/html/draft-mathis- | 1999, <https://datatracker.ietf.org/doc/html/draft-mathis- | |||
| tcp-ratehalving-00>. | tcp-ratehalving-00>. | |||
| [VCC] Cronkite-Ratcliff, B., Bergman, A., Vargaftik, S., Ravi, | ||||
| M., McKeown, N., Abraham, I., and I. Keslassy, | ||||
| "Virtualized Congestion Control (Extended Version)", | ||||
| SIGCOMM '16: Proceedings of the 2016 ACM SIGCOMM | ||||
| Conference pp. 230-243, DOI 10.1145/2934872.2934889, | ||||
| August 2016, <http://www.ee.technion.ac.il/~isaac/p/ | ||||
| sigcomm16_vcc_extended.pdf>. | ||||
| Appendix A. Strong Packet Conservation Bound | Appendix A. Strong Packet Conservation Bound | |||
| PRR-CRB is based on a conservative, philosophically pure, and | PRR-CRB is based on a conservative, philosophically pure, and | |||
| aesthetically appealing Strong Packet Conservation Bound, described | aesthetically appealing Strong Packet Conservation Bound, described | |||
| here. Although inspired by the packet conservation principle | here. Although inspired by the packet conservation principle | |||
| [Jacobson88], it differs in how it treats segments that are missing | [Jacobson88], it differs in how it treats segments that are missing | |||
| and presumed lost. Under all conditions and sequences of events | and presumed lost. Under all conditions and sequences of events | |||
| during recovery, PRR-CRB strictly bounds the data transmitted to be | during recovery, PRR-CRB strictly bounds the data transmitted to be | |||
| equal to or less than the amount of data delivered to the receiver. | equal to or less than the amount of data delivered to the receiver. | |||
| Note that the effects of presumed losses are included in the inflight | Note that the effects of presumed losses are included in the inflight | |||
| End of changes. 5 change blocks. | ||||
| 21 lines changed or deleted | 18 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||