| draft-ietf-quic-recovery-26.txt | draft-ietf-quic-recovery-27.txt | |||
|---|---|---|---|---|
| QUIC J. Iyengar, Ed. | QUIC J. Iyengar, Ed. | |||
| Internet-Draft Fastly | Internet-Draft Fastly | |||
| Intended status: Standards Track I. Swett, Ed. | Intended status: Standards Track I. Swett, Ed. | |||
| Expires: 24 August 2020 Google | Expires: 10 September 2020 Google | |||
| 21 February 2020 | 9 March 2020 | |||
| QUIC Loss Detection and Congestion Control | QUIC Loss Detection and Congestion Control | |||
| draft-ietf-quic-recovery-26 | draft-ietf-quic-recovery-27 | |||
| Abstract | Abstract | |||
| This document describes loss detection and congestion control | This document describes loss detection and congestion control | |||
| mechanisms for QUIC. | mechanisms for QUIC. | |||
| Note to Readers | Note to Readers | |||
| Discussion of this draft takes place on the QUIC working group | Discussion of this draft takes place on the QUIC working group | |||
| mailing list (quic@ietf.org), which is archived at | mailing list (quic@ietf.org), which is archived at | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 24 August 2020. | This Internet-Draft will expire on 10 September 2020. | |||
| 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 3, line 32 ¶ | skipping to change at page 3, line 32 ¶ | |||
| Appendix B. Congestion Control Pseudocode . . . . . . . . . . . 31 | Appendix B. Congestion Control Pseudocode . . . . . . . . . . . 31 | |||
| B.1. Constants of interest . . . . . . . . . . . . . . . . . . 31 | B.1. Constants of interest . . . . . . . . . . . . . . . . . . 31 | |||
| B.2. Variables of interest . . . . . . . . . . . . . . . . . . 32 | B.2. Variables of interest . . . . . . . . . . . . . . . . . . 32 | |||
| B.3. Initialization . . . . . . . . . . . . . . . . . . . . . 33 | B.3. Initialization . . . . . . . . . . . . . . . . . . . . . 33 | |||
| B.4. On Packet Sent . . . . . . . . . . . . . . . . . . . . . 33 | B.4. On Packet Sent . . . . . . . . . . . . . . . . . . . . . 33 | |||
| B.5. On Packet Acknowledgement . . . . . . . . . . . . . . . . 33 | B.5. On Packet Acknowledgement . . . . . . . . . . . . . . . . 33 | |||
| B.6. On New Congestion Event . . . . . . . . . . . . . . . . . 34 | B.6. On New Congestion Event . . . . . . . . . . . . . . . . . 34 | |||
| B.7. Process ECN Information . . . . . . . . . . . . . . . . . 34 | B.7. Process ECN Information . . . . . . . . . . . . . . . . . 34 | |||
| B.8. On Packets Lost . . . . . . . . . . . . . . . . . . . . . 35 | B.8. On Packets Lost . . . . . . . . . . . . . . . . . . . . . 35 | |||
| Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 35 | Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 35 | |||
| C.1. Since draft-ietf-quic-recovery-25 . . . . . . . . . . . . 35 | C.1. Since draft-ietf-quic-recovery-26 . . . . . . . . . . . . 35 | |||
| C.2. Since draft-ietf-quic-recovery-24 . . . . . . . . . . . . 35 | C.2. Since draft-ietf-quic-recovery-25 . . . . . . . . . . . . 35 | |||
| C.3. Since draft-ietf-quic-recovery-23 . . . . . . . . . . . . 35 | C.3. Since draft-ietf-quic-recovery-24 . . . . . . . . . . . . 35 | |||
| C.4. Since draft-ietf-quic-recovery-22 . . . . . . . . . . . . 36 | C.4. Since draft-ietf-quic-recovery-23 . . . . . . . . . . . . 36 | |||
| C.5. Since draft-ietf-quic-recovery-21 . . . . . . . . . . . . 36 | C.5. Since draft-ietf-quic-recovery-22 . . . . . . . . . . . . 36 | |||
| C.6. Since draft-ietf-quic-recovery-20 . . . . . . . . . . . . 36 | C.6. Since draft-ietf-quic-recovery-21 . . . . . . . . . . . . 36 | |||
| C.7. Since draft-ietf-quic-recovery-19 . . . . . . . . . . . . 36 | C.7. Since draft-ietf-quic-recovery-20 . . . . . . . . . . . . 36 | |||
| C.8. Since draft-ietf-quic-recovery-18 . . . . . . . . . . . . 37 | C.8. Since draft-ietf-quic-recovery-19 . . . . . . . . . . . . 36 | |||
| C.9. Since draft-ietf-quic-recovery-17 . . . . . . . . . . . . 37 | C.9. Since draft-ietf-quic-recovery-18 . . . . . . . . . . . . 37 | |||
| C.10. Since draft-ietf-quic-recovery-16 . . . . . . . . . . . . 38 | C.10. Since draft-ietf-quic-recovery-17 . . . . . . . . . . . . 37 | |||
| C.11. Since draft-ietf-quic-recovery-14 . . . . . . . . . . . . 38 | C.11. Since draft-ietf-quic-recovery-16 . . . . . . . . . . . . 38 | |||
| C.12. Since draft-ietf-quic-recovery-13 . . . . . . . . . . . . 38 | C.12. Since draft-ietf-quic-recovery-14 . . . . . . . . . . . . 38 | |||
| C.13. Since draft-ietf-quic-recovery-12 . . . . . . . . . . . . 39 | C.13. Since draft-ietf-quic-recovery-13 . . . . . . . . . . . . 38 | |||
| C.14. Since draft-ietf-quic-recovery-11 . . . . . . . . . . . . 39 | C.14. Since draft-ietf-quic-recovery-12 . . . . . . . . . . . . 39 | |||
| C.15. Since draft-ietf-quic-recovery-10 . . . . . . . . . . . . 39 | C.15. Since draft-ietf-quic-recovery-11 . . . . . . . . . . . . 39 | |||
| C.16. Since draft-ietf-quic-recovery-09 . . . . . . . . . . . . 39 | C.16. Since draft-ietf-quic-recovery-10 . . . . . . . . . . . . 39 | |||
| C.17. Since draft-ietf-quic-recovery-08 . . . . . . . . . . . . 39 | C.17. Since draft-ietf-quic-recovery-09 . . . . . . . . . . . . 39 | |||
| C.18. Since draft-ietf-quic-recovery-07 . . . . . . . . . . . . 39 | C.18. Since draft-ietf-quic-recovery-08 . . . . . . . . . . . . 39 | |||
| C.19. Since draft-ietf-quic-recovery-06 . . . . . . . . . . . . 40 | C.19. Since draft-ietf-quic-recovery-07 . . . . . . . . . . . . 39 | |||
| C.20. Since draft-ietf-quic-recovery-05 . . . . . . . . . . . . 40 | C.20. Since draft-ietf-quic-recovery-06 . . . . . . . . . . . . 40 | |||
| C.21. Since draft-ietf-quic-recovery-04 . . . . . . . . . . . . 40 | C.21. Since draft-ietf-quic-recovery-05 . . . . . . . . . . . . 40 | |||
| C.22. Since draft-ietf-quic-recovery-03 . . . . . . . . . . . . 40 | C.22. Since draft-ietf-quic-recovery-04 . . . . . . . . . . . . 40 | |||
| C.23. Since draft-ietf-quic-recovery-02 . . . . . . . . . . . . 40 | C.23. Since draft-ietf-quic-recovery-03 . . . . . . . . . . . . 40 | |||
| C.24. Since draft-ietf-quic-recovery-01 . . . . . . . . . . . . 40 | C.24. Since draft-ietf-quic-recovery-02 . . . . . . . . . . . . 40 | |||
| C.25. Since draft-ietf-quic-recovery-00 . . . . . . . . . . . . 40 | C.25. Since draft-ietf-quic-recovery-01 . . . . . . . . . . . . 40 | |||
| C.26. Since draft-iyengar-quic-loss-recovery-01 . . . . . . . . 41 | C.26. Since draft-ietf-quic-recovery-00 . . . . . . . . . . . . 40 | |||
| C.27. Since draft-iyengar-quic-loss-recovery-01 . . . . . . . . 41 | ||||
| Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 41 | Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 41 | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 41 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 1. Introduction | 1. Introduction | |||
| QUIC is a new multiplexed and secure transport atop UDP. QUIC builds | QUIC is a new multiplexed and secure transport atop UDP. QUIC builds | |||
| on decades of transport and security experience, and implements | on decades of transport and security experience, and implements | |||
| mechanisms that make it attractive as a modern general-purpose | mechanisms that make it attractive as a modern general-purpose | |||
| transport. The QUIC protocol is described in [QUIC-TRANSPORT]. | transport. The QUIC protocol is described in [QUIC-TRANSPORT]. | |||
| skipping to change at page 21, line 28 ¶ | skipping to change at page 21, line 28 ¶ | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document has no IANA actions. Yet. | This document has no IANA actions. Yet. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | [QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | |||
| QUIC", Work in Progress, Internet-Draft, draft-ietf-quic- | QUIC", Work in Progress, Internet-Draft, draft-ietf-quic- | |||
| tls-26, 21 February 2020, | tls-27, 9 March 2020, | |||
| <https://tools.ietf.org/html/draft-ietf-quic-tls-26>. | <https://tools.ietf.org/html/draft-ietf-quic-tls-27>. | |||
| [QUIC-TRANSPORT] | [QUIC-TRANSPORT] | |||
| Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | |||
| Multiplexed and Secure Transport", Work in Progress, | Multiplexed and Secure Transport", Work in Progress, | |||
| Internet-Draft, draft-ietf-quic-transport-26, 21 February | Internet-Draft, draft-ietf-quic-transport-27, 9 March | |||
| 2020, <https://tools.ietf.org/html/draft-ietf-quic- | 2020, <https://tools.ietf.org/html/draft-ietf-quic- | |||
| transport-26>. | transport-27>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | |||
| Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | |||
| March 2017, <https://www.rfc-editor.org/info/rfc8085>. | March 2017, <https://www.rfc-editor.org/info/rfc8085>. | |||
| skipping to change at page 22, line 11 ¶ | skipping to change at page 22, line 11 ¶ | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [FACK] Mathis, M. and J. Mahdavi, "Forward Acknowledgement: | [FACK] Mathis, M. and J. Mahdavi, "Forward Acknowledgement: | |||
| Refining TCP Congestion Control", ACM SIGCOMM , August | Refining TCP Congestion Control", ACM SIGCOMM , August | |||
| 1996. | 1996. | |||
| [RACK] Cheng, Y., Cardwell, N., Dukkipati, N., and P. Jha, "RACK: | [RACK] Cheng, Y., Cardwell, N., Dukkipati, N., and P. Jha, "RACK: | |||
| a time-based fast loss detection algorithm for TCP", Work | a time-based fast loss detection algorithm for TCP", Work | |||
| in Progress, Internet-Draft, draft-ietf-tcpm-rack-05, 26 | in Progress, Internet-Draft, draft-ietf-tcpm-rack-07, 17 | |||
| April 2019, <http://www.ietf.org/internet-drafts/draft- | January 2020, <http://www.ietf.org/internet-drafts/draft- | |||
| ietf-tcpm-rack-05.txt>. | ietf-tcpm-rack-07.txt>. | |||
| [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
| of Explicit Congestion Notification (ECN) to IP", | of Explicit Congestion Notification (ECN) to IP", | |||
| RFC 3168, DOI 10.17487/RFC3168, September 2001, | RFC 3168, DOI 10.17487/RFC3168, September 2001, | |||
| <https://www.rfc-editor.org/info/rfc3168>. | <https://www.rfc-editor.org/info/rfc3168>. | |||
| [RFC4653] Bhandarkar, S., Reddy, A. L. N., Allman, M., and E. | [RFC4653] Bhandarkar, S., Reddy, A. L. N., Allman, M., and E. | |||
| Blanton, "Improving the Robustness of TCP to Non- | Blanton, "Improving the Robustness of TCP to Non- | |||
| Congestion Events", RFC 4653, DOI 10.17487/RFC4653, August | Congestion Events", RFC 4653, DOI 10.17487/RFC4653, August | |||
| 2006, <https://www.rfc-editor.org/info/rfc4653>. | 2006, <https://www.rfc-editor.org/info/rfc4653>. | |||
| skipping to change at page 35, line 37 ¶ | skipping to change at page 35, line 37 ¶ | |||
| if (InPersistentCongestion(largest_lost_packet)): | if (InPersistentCongestion(largest_lost_packet)): | |||
| congestion_window = kMinimumWindow | congestion_window = kMinimumWindow | |||
| Appendix C. Change Log | Appendix C. Change Log | |||
| *RFC Editor's Note:* Please remove this section prior to | *RFC Editor's Note:* Please remove this section prior to | |||
| publication of a final version of this document. | publication of a final version of this document. | |||
| Issue and pull request numbers are listed with a leading octothorp. | Issue and pull request numbers are listed with a leading octothorp. | |||
| C.1. Since draft-ietf-quic-recovery-25 | C.1. Since draft-ietf-quic-recovery-26 | |||
| No changes. | ||||
| C.2. Since draft-ietf-quic-recovery-25 | ||||
| No significant changes. | No significant changes. | |||
| C.2. Since draft-ietf-quic-recovery-24 | C.3. Since draft-ietf-quic-recovery-24 | |||
| * Require congestion control of some sort (#3247, #3244, #3248) | * Require congestion control of some sort (#3247, #3244, #3248) | |||
| * Set a minimum reordering threshold (#3256, #3240) | * Set a minimum reordering threshold (#3256, #3240) | |||
| * PTO is specific to a packet number space (#3067, #3074, #3066) | * PTO is specific to a packet number space (#3067, #3074, #3066) | |||
| C.3. Since draft-ietf-quic-recovery-23 | C.4. Since draft-ietf-quic-recovery-23 | |||
| * Define under-utilizing the congestion window (#2630, #2686, #2675) | * Define under-utilizing the congestion window (#2630, #2686, #2675) | |||
| * PTO MUST send data if possible (#3056, #3057) | * PTO MUST send data if possible (#3056, #3057) | |||
| * Connection Close is not ack-eliciting (#3097, #3098) | * Connection Close is not ack-eliciting (#3097, #3098) | |||
| * MUST limit bursts to the initial congestion window (#3160) | * MUST limit bursts to the initial congestion window (#3160) | |||
| * Define the current max_datagram_size for congestion control | * Define the current max_datagram_size for congestion control | |||
| (#3041, #3167) | (#3041, #3167) | |||
| C.4. Since draft-ietf-quic-recovery-22 | C.5. Since draft-ietf-quic-recovery-22 | |||
| * PTO should always send an ack-eliciting packet (#2895) | * PTO should always send an ack-eliciting packet (#2895) | |||
| * Unify the Handshake Timer with the PTO timer (#2648, #2658, #2886) | * Unify the Handshake Timer with the PTO timer (#2648, #2658, #2886) | |||
| * Move ACK generation text to transport draft (#1860, #2916) | * Move ACK generation text to transport draft (#1860, #2916) | |||
| C.5. Since draft-ietf-quic-recovery-21 | C.6. Since draft-ietf-quic-recovery-21 | |||
| * No changes | * No changes | |||
| C.6. Since draft-ietf-quic-recovery-20 | C.7. Since draft-ietf-quic-recovery-20 | |||
| * Path validation can be used as initial RTT value (#2644, #2687) | * Path validation can be used as initial RTT value (#2644, #2687) | |||
| * max_ack_delay transport parameter defaults to 0 (#2638, #2646) | * max_ack_delay transport parameter defaults to 0 (#2638, #2646) | |||
| * Ack Delay only measures intentional delays induced by the | * Ack Delay only measures intentional delays induced by the | |||
| implementation (#2596, #2786) | implementation (#2596, #2786) | |||
| C.7. Since draft-ietf-quic-recovery-19 | C.8. Since draft-ietf-quic-recovery-19 | |||
| * Change kPersistentThreshold from an exponent to a multiplier | * Change kPersistentThreshold from an exponent to a multiplier | |||
| (#2557) | (#2557) | |||
| * Send a PING if the PTO timer fires and there's nothing to send | * Send a PING if the PTO timer fires and there's nothing to send | |||
| (#2624) | (#2624) | |||
| * Set loss delay to at least kGranularity (#2617) | * Set loss delay to at least kGranularity (#2617) | |||
| * Merge application limited and sending after idle sections. Always | * Merge application limited and sending after idle sections. Always | |||
| skipping to change at page 37, line 13 ¶ | skipping to change at page 37, line 16 ¶ | |||
| packet is ack-eliciting but the largest_acked is not (#2592) | packet is ack-eliciting but the largest_acked is not (#2592) | |||
| * Don't arm the handshake timer if there is no handshake data | * Don't arm the handshake timer if there is no handshake data | |||
| (#2590) | (#2590) | |||
| * Clarify that the time threshold loss alarm takes precedence over | * Clarify that the time threshold loss alarm takes precedence over | |||
| the crypto handshake timer (#2590, #2620) | the crypto handshake timer (#2590, #2620) | |||
| * Change initial RTT to 500ms to align with RFC6298 (#2184) | * Change initial RTT to 500ms to align with RFC6298 (#2184) | |||
| C.8. Since draft-ietf-quic-recovery-18 | C.9. Since draft-ietf-quic-recovery-18 | |||
| * Change IW byte limit to 14720 from 14600 (#2494) | * Change IW byte limit to 14720 from 14600 (#2494) | |||
| * Update PTO calculation to match RFC6298 (#2480, #2489, #2490) | * Update PTO calculation to match RFC6298 (#2480, #2489, #2490) | |||
| * Improve loss detection's description of multiple packet number | * Improve loss detection's description of multiple packet number | |||
| spaces and pseudocode (#2485, #2451, #2417) | spaces and pseudocode (#2485, #2451, #2417) | |||
| * Declare persistent congestion even if non-probe packets are sent | * Declare persistent congestion even if non-probe packets are sent | |||
| and don't make persistent congestion more aggressive than RTO | and don't make persistent congestion more aggressive than RTO | |||
| verified was (#2365, #2244) | verified was (#2365, #2244) | |||
| * Move pseudocode to the appendices (#2408) | * Move pseudocode to the appendices (#2408) | |||
| * What to send on multiple PTOs (#2380) | * What to send on multiple PTOs (#2380) | |||
| C.9. Since draft-ietf-quic-recovery-17 | C.10. Since draft-ietf-quic-recovery-17 | |||
| * After Probe Timeout discard in-flight packets or send another | * After Probe Timeout discard in-flight packets or send another | |||
| (#2212, #1965) | (#2212, #1965) | |||
| * Endpoints discard initial keys as soon as handshake keys are | * Endpoints discard initial keys as soon as handshake keys are | |||
| available (#1951, #2045) | available (#1951, #2045) | |||
| * 0-RTT state is discarded when 0-RTT is rejected (#2300) | * 0-RTT state is discarded when 0-RTT is rejected (#2300) | |||
| * Loss detection timer is cancelled when ack-eliciting frames are in | * Loss detection timer is cancelled when ack-eliciting frames are in | |||
| skipping to change at page 37, line 49 ¶ | skipping to change at page 38, line 4 ¶ | |||
| * Loss detection timer is cancelled when ack-eliciting frames are in | * Loss detection timer is cancelled when ack-eliciting frames are in | |||
| flight (#2117, #2093) | flight (#2117, #2093) | |||
| * Packets are declared lost if they are in flight (#2104) | * Packets are declared lost if they are in flight (#2104) | |||
| * After becoming idle, either pace packets or reset the congestion | * After becoming idle, either pace packets or reset the congestion | |||
| controller (#2138, 2187) | controller (#2138, 2187) | |||
| * Process ECN counts before marking packets lost (#2142) | * Process ECN counts before marking packets lost (#2142) | |||
| * Mark packets lost before resetting crypto_count and pto_count | * Mark packets lost before resetting crypto_count and pto_count | |||
| (#2208, #2209) | (#2208, #2209) | |||
| * Congestion and loss recovery state are discarded when keys are | * Congestion and loss recovery state are discarded when keys are | |||
| discarded (#2327) | discarded (#2327) | |||
| C.10. Since draft-ietf-quic-recovery-16 | C.11. Since draft-ietf-quic-recovery-16 | |||
| * Unify TLP and RTO into a single PTO; eliminate min RTO, min TLP | * Unify TLP and RTO into a single PTO; eliminate min RTO, min TLP | |||
| and min crypto timeouts; eliminate timeout validation (#2114, | and min crypto timeouts; eliminate timeout validation (#2114, | |||
| #2166, #2168, #1017) | #2166, #2168, #1017) | |||
| * Redefine how congestion avoidance in terms of when the period | * Redefine how congestion avoidance in terms of when the period | |||
| starts (#1928, #1930) | starts (#1928, #1930) | |||
| * Document what needs to be tracked for packets that are in flight | * Document what needs to be tracked for packets that are in flight | |||
| (#765, #1724, #1939) | (#765, #1724, #1939) | |||
| skipping to change at page 38, line 39 ¶ | skipping to change at page 38, line 41 ¶ | |||
| * Limit ack_delay by max_ack_delay (#2060, #2099) | * Limit ack_delay by max_ack_delay (#2060, #2099) | |||
| * Initial keys are discarded once Handshake keys are available | * Initial keys are discarded once Handshake keys are available | |||
| (#1951, #2045) | (#1951, #2045) | |||
| * Reorder ECN and loss detection in pseudocode (#2142) | * Reorder ECN and loss detection in pseudocode (#2142) | |||
| * Only cancel loss detection timer if ack-eliciting packets are in | * Only cancel loss detection timer if ack-eliciting packets are in | |||
| flight (#2093, #2117) | flight (#2093, #2117) | |||
| C.11. Since draft-ietf-quic-recovery-14 | C.12. Since draft-ietf-quic-recovery-14 | |||
| * Used max_ack_delay from transport params (#1796, #1782) | * Used max_ack_delay from transport params (#1796, #1782) | |||
| * Merge ACK and ACK_ECN (#1783) | * Merge ACK and ACK_ECN (#1783) | |||
| C.12. Since draft-ietf-quic-recovery-13 | C.13. Since draft-ietf-quic-recovery-13 | |||
| * Corrected the lack of ssthresh reduction in CongestionEvent | * Corrected the lack of ssthresh reduction in CongestionEvent | |||
| pseudocode (#1598) | pseudocode (#1598) | |||
| * Considerations for ECN spoofing (#1426, #1626) | * Considerations for ECN spoofing (#1426, #1626) | |||
| * Clarifications for PADDING and congestion control (#837, #838, | * Clarifications for PADDING and congestion control (#837, #838, | |||
| #1517, #1531, #1540) | #1517, #1531, #1540) | |||
| * Reduce early retransmission timer to RTT/8 (#945, #1581) | * Reduce early retransmission timer to RTT/8 (#945, #1581) | |||
| * Packets are declared lost after an RTO is verified (#935, #1582) | * Packets are declared lost after an RTO is verified (#935, #1582) | |||
| C.13. Since draft-ietf-quic-recovery-12 | C.14. Since draft-ietf-quic-recovery-12 | |||
| * Changes to manage separate packet number spaces and encryption | * Changes to manage separate packet number spaces and encryption | |||
| levels (#1190, #1242, #1413, #1450) | levels (#1190, #1242, #1413, #1450) | |||
| * Added ECN feedback mechanisms and handling; new ACK_ECN frame | * Added ECN feedback mechanisms and handling; new ACK_ECN frame | |||
| (#804, #805, #1372) | (#804, #805, #1372) | |||
| C.14. Since draft-ietf-quic-recovery-11 | C.15. Since draft-ietf-quic-recovery-11 | |||
| No significant changes. | No significant changes. | |||
| C.15. Since draft-ietf-quic-recovery-10 | C.16. Since draft-ietf-quic-recovery-10 | |||
| * Improved text on ack generation (#1139, #1159) | * Improved text on ack generation (#1139, #1159) | |||
| * Make references to TCP recovery mechanisms informational (#1195) | * Make references to TCP recovery mechanisms informational (#1195) | |||
| * Define time_of_last_sent_handshake_packet (#1171) | * Define time_of_last_sent_handshake_packet (#1171) | |||
| * Added signal from TLS the data it includes needs to be sent in a | * Added signal from TLS the data it includes needs to be sent in a | |||
| Retry packet (#1061, #1199) | Retry packet (#1061, #1199) | |||
| * Minimum RTT (min_rtt) is initialized with an infinite value | * Minimum RTT (min_rtt) is initialized with an infinite value | |||
| (#1169) | (#1169) | |||
| C.16. Since draft-ietf-quic-recovery-09 | C.17. Since draft-ietf-quic-recovery-09 | |||
| No significant changes. | No significant changes. | |||
| C.17. Since draft-ietf-quic-recovery-08 | C.18. Since draft-ietf-quic-recovery-08 | |||
| * Clarified pacing and RTO (#967, #977) | * Clarified pacing and RTO (#967, #977) | |||
| C.18. Since draft-ietf-quic-recovery-07 | C.19. Since draft-ietf-quic-recovery-07 | |||
| * Include Ack Delay in RTO(and TLP) computations (#981) | * Include Ack Delay in RTO(and TLP) computations (#981) | |||
| * Ack Delay in SRTT computation (#961) | * Ack Delay in SRTT computation (#961) | |||
| * Default RTT and Slow Start (#590) | * Default RTT and Slow Start (#590) | |||
| * Many editorial fixes. | * Many editorial fixes. | |||
| C.19. Since draft-ietf-quic-recovery-06 | C.20. Since draft-ietf-quic-recovery-06 | |||
| No significant changes. | No significant changes. | |||
| C.20. Since draft-ietf-quic-recovery-05 | C.21. Since draft-ietf-quic-recovery-05 | |||
| * Add more congestion control text (#776) | * Add more congestion control text (#776) | |||
| C.21. Since draft-ietf-quic-recovery-04 | C.22. Since draft-ietf-quic-recovery-04 | |||
| No significant changes. | No significant changes. | |||
| C.22. Since draft-ietf-quic-recovery-03 | C.23. Since draft-ietf-quic-recovery-03 | |||
| No significant changes. | No significant changes. | |||
| C.23. Since draft-ietf-quic-recovery-02 | C.24. Since draft-ietf-quic-recovery-02 | |||
| * Integrate F-RTO (#544, #409) | * Integrate F-RTO (#544, #409) | |||
| * Add congestion control (#545, #395) | * Add congestion control (#545, #395) | |||
| * Require connection abort if a skipped packet was acknowledged | * Require connection abort if a skipped packet was acknowledged | |||
| (#415) | (#415) | |||
| * Simplify RTO calculations (#142, #417) | * Simplify RTO calculations (#142, #417) | |||
| C.24. Since draft-ietf-quic-recovery-01 | C.25. Since draft-ietf-quic-recovery-01 | |||
| * Overview added to loss detection | * Overview added to loss detection | |||
| * Changes initial default RTT to 100ms | * Changes initial default RTT to 100ms | |||
| * Added time-based loss detection and fixes early retransmit | * Added time-based loss detection and fixes early retransmit | |||
| * Clarified loss recovery for handshake packets | * Clarified loss recovery for handshake packets | |||
| * Fixed references and made TCP references informative | * Fixed references and made TCP references informative | |||
| C.25. Since draft-ietf-quic-recovery-00 | C.26. Since draft-ietf-quic-recovery-00 | |||
| * Improved description of constants and ACK behavior | * Improved description of constants and ACK behavior | |||
| C.26. Since draft-iyengar-quic-loss-recovery-01 | C.27. Since draft-iyengar-quic-loss-recovery-01 | |||
| * Adopted as base for draft-ietf-quic-recovery | * Adopted as base for draft-ietf-quic-recovery | |||
| * Updated authors/editors list | * Updated authors/editors list | |||
| * Added table of contents | * Added table of contents | |||
| Appendix D. Contributors | Appendix D. Contributors | |||
| The IETF QUIC Working Group received an enormous amount of support | The IETF QUIC Working Group received an enormous amount of support | |||
| End of changes. 39 change blocks. | ||||
| 65 lines changed or deleted | 71 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||