draft-ietf-quic-recovery-21.txt | draft-ietf-quic-recovery-22.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: January 9, 2020 Google | Expires: January 10, 2020 Google | |||
July 08, 2019 | July 09, 2019 | |||
QUIC Loss Detection and Congestion Control | QUIC Loss Detection and Congestion Control | |||
draft-ietf-quic-recovery-21 | draft-ietf-quic-recovery-22 | |||
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 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 January 9, 2020. | This Internet-Draft will expire on January 10, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 | 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 | |||
3. Design of the QUIC Transmission Machinery . . . . . . . . . . 5 | 3. Design of the QUIC Transmission Machinery . . . . . . . . . . 5 | |||
3.1. Relevant Differences Between QUIC and TCP . . . . . . . . 5 | 3.1. Relevant Differences Between QUIC and TCP . . . . . . . . 6 | |||
3.1.1. Separate Packet Number Spaces . . . . . . . . . . . . 6 | 3.1.1. Separate Packet Number Spaces . . . . . . . . . . . . 6 | |||
3.1.2. Monotonically Increasing Packet Numbers . . . . . . . 6 | 3.1.2. Monotonically Increasing Packet Numbers . . . . . . . 6 | |||
3.1.3. Clearer Loss Epoch . . . . . . . . . . . . . . . . . 6 | 3.1.3. Clearer Loss Epoch . . . . . . . . . . . . . . . . . 7 | |||
3.1.4. No Reneging . . . . . . . . . . . . . . . . . . . . . 7 | 3.1.4. No Reneging . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.1.5. More ACK Ranges . . . . . . . . . . . . . . . . . . . 7 | 3.1.5. More ACK Ranges . . . . . . . . . . . . . . . . . . . 7 | |||
3.1.6. Explicit Correction For Delayed Acknowledgements . . 7 | 3.1.6. Explicit Correction For Delayed Acknowledgements . . 7 | |||
4. Generating Acknowledgements . . . . . . . . . . . . . . . . . 7 | 4. Generating Acknowledgements . . . . . . . . . . . . . . . . . 7 | |||
4.1. Crypto Handshake Data . . . . . . . . . . . . . . . . . . 8 | 4.1. Crypto Handshake Data . . . . . . . . . . . . . . . . . . 8 | |||
4.2. ACK Ranges . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. ACK Ranges . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.3. Receiver Tracking of ACK Frames . . . . . . . . . . . . . 8 | 4.3. Receiver Tracking of ACK Frames . . . . . . . . . . . . . 8 | |||
4.4. Measuring and Reporting Host Delay . . . . . . . . . . . 8 | 4.4. Measuring and Reporting Host Delay . . . . . . . . . . . 9 | |||
5. Estimating the Round-Trip Time . . . . . . . . . . . . . . . 9 | 5. Estimating the Round-Trip Time . . . . . . . . . . . . . . . 9 | |||
5.1. Generating RTT samples . . . . . . . . . . . . . . . . . 9 | 5.1. Generating RTT samples . . . . . . . . . . . . . . . . . 9 | |||
5.2. Estimating min_rtt . . . . . . . . . . . . . . . . . . . 10 | 5.2. Estimating min_rtt . . . . . . . . . . . . . . . . . . . 10 | |||
5.3. Estimating smoothed_rtt and rttvar . . . . . . . . . . . 10 | 5.3. Estimating smoothed_rtt and rttvar . . . . . . . . . . . 10 | |||
6. Loss Detection . . . . . . . . . . . . . . . . . . . . . . . 11 | 6. Loss Detection . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
6.1. Acknowledgement-based Detection . . . . . . . . . . . . . 11 | 6.1. Acknowledgement-based Detection . . . . . . . . . . . . . 12 | |||
6.1.1. Packet Threshold . . . . . . . . . . . . . . . . . . 12 | 6.1.1. Packet Threshold . . . . . . . . . . . . . . . . . . 12 | |||
6.1.2. Time Threshold . . . . . . . . . . . . . . . . . . . 12 | 6.1.2. Time Threshold . . . . . . . . . . . . . . . . . . . 12 | |||
6.2. Crypto Retransmission Timeout . . . . . . . . . . . . . . 13 | 6.2. Crypto Retransmission Timeout . . . . . . . . . . . . . . 13 | |||
6.3. Probe Timeout . . . . . . . . . . . . . . . . . . . . . . 14 | 6.3. Probe Timeout . . . . . . . . . . . . . . . . . . . . . . 14 | |||
6.3.1. Computing PTO . . . . . . . . . . . . . . . . . . . . 14 | 6.3.1. Computing PTO . . . . . . . . . . . . . . . . . . . . 15 | |||
6.3.2. Sending Probe Packets . . . . . . . . . . . . . . . . 15 | 6.3.2. Sending Probe Packets . . . . . . . . . . . . . . . . 15 | |||
6.3.3. Loss Detection . . . . . . . . . . . . . . . . . . . 16 | 6.3.3. Loss Detection . . . . . . . . . . . . . . . . . . . 16 | |||
6.4. Retry and Version Negotiation . . . . . . . . . . . . . . 16 | 6.4. Retry and Version Negotiation . . . . . . . . . . . . . . 16 | |||
6.5. Discarding Keys and Packet State . . . . . . . . . . . . 17 | 6.5. Discarding Keys and Packet State . . . . . . . . . . . . 17 | |||
6.6. Discussion . . . . . . . . . . . . . . . . . . . . . . . 17 | 6.6. Discussion . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7. Congestion Control . . . . . . . . . . . . . . . . . . . . . 17 | 7. Congestion Control . . . . . . . . . . . . . . . . . . . . . 17 | |||
7.1. Explicit Congestion Notification . . . . . . . . . . . . 18 | 7.1. Explicit Congestion Notification . . . . . . . . . . . . 18 | |||
7.2. Slow Start . . . . . . . . . . . . . . . . . . . . . . . 18 | 7.2. Slow Start . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
7.3. Congestion Avoidance . . . . . . . . . . . . . . . . . . 18 | 7.3. Congestion Avoidance . . . . . . . . . . . . . . . . . . 18 | |||
7.4. Recovery Period . . . . . . . . . . . . . . . . . . . . . 18 | 7.4. Recovery Period . . . . . . . . . . . . . . . . . . . . . 18 | |||
skipping to change at page 3, line 40 ¶ | skipping to change at page 3, line 40 ¶ | |||
Appendix B. Congestion Control Pseudocode . . . . . . . . . . . 33 | Appendix B. Congestion Control Pseudocode . . . . . . . . . . . 33 | |||
B.1. Constants of interest . . . . . . . . . . . . . . . . . . 33 | B.1. Constants of interest . . . . . . . . . . . . . . . . . . 33 | |||
B.2. Variables of interest . . . . . . . . . . . . . . . . . . 34 | B.2. Variables of interest . . . . . . . . . . . . . . . . . . 34 | |||
B.3. Initialization . . . . . . . . . . . . . . . . . . . . . 35 | B.3. Initialization . . . . . . . . . . . . . . . . . . . . . 35 | |||
B.4. On Packet Sent . . . . . . . . . . . . . . . . . . . . . 35 | B.4. On Packet Sent . . . . . . . . . . . . . . . . . . . . . 35 | |||
B.5. On Packet Acknowledgement . . . . . . . . . . . . . . . . 35 | B.5. On Packet Acknowledgement . . . . . . . . . . . . . . . . 35 | |||
B.6. On New Congestion Event . . . . . . . . . . . . . . . . . 36 | B.6. On New Congestion Event . . . . . . . . . . . . . . . . . 36 | |||
B.7. Process ECN Information . . . . . . . . . . . . . . . . . 36 | B.7. Process ECN Information . . . . . . . . . . . . . . . . . 36 | |||
B.8. On Packets Lost . . . . . . . . . . . . . . . . . . . . . 37 | B.8. On Packets Lost . . . . . . . . . . . . . . . . . . . . . 37 | |||
Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 37 | Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 37 | |||
C.1. Since draft-ietf-quic-recovery-20 . . . . . . . . . . . . 37 | C.1. Since draft-ietf-quic-recovery-21 . . . . . . . . . . . . 37 | |||
C.2. Since draft-ietf-quic-recovery-19 . . . . . . . . . . . . 37 | C.2. Since draft-ietf-quic-recovery-20 . . . . . . . . . . . . 37 | |||
C.3. Since draft-ietf-quic-recovery-18 . . . . . . . . . . . . 38 | C.3. Since draft-ietf-quic-recovery-19 . . . . . . . . . . . . 38 | |||
C.4. Since draft-ietf-quic-recovery-17 . . . . . . . . . . . . 38 | C.4. Since draft-ietf-quic-recovery-18 . . . . . . . . . . . . 38 | |||
C.5. Since draft-ietf-quic-recovery-16 . . . . . . . . . . . . 39 | C.5. Since draft-ietf-quic-recovery-17 . . . . . . . . . . . . 38 | |||
C.6. Since draft-ietf-quic-recovery-14 . . . . . . . . . . . . 39 | C.6. Since draft-ietf-quic-recovery-16 . . . . . . . . . . . . 39 | |||
C.7. Since draft-ietf-quic-recovery-13 . . . . . . . . . . . . 40 | C.7. Since draft-ietf-quic-recovery-14 . . . . . . . . . . . . 40 | |||
C.8. Since draft-ietf-quic-recovery-12 . . . . . . . . . . . . 40 | C.8. Since draft-ietf-quic-recovery-13 . . . . . . . . . . . . 40 | |||
C.9. Since draft-ietf-quic-recovery-11 . . . . . . . . . . . . 40 | C.9. Since draft-ietf-quic-recovery-12 . . . . . . . . . . . . 40 | |||
C.10. Since draft-ietf-quic-recovery-10 . . . . . . . . . . . . 40 | C.10. Since draft-ietf-quic-recovery-11 . . . . . . . . . . . . 40 | |||
C.11. Since draft-ietf-quic-recovery-09 . . . . . . . . . . . . 40 | C.11. Since draft-ietf-quic-recovery-10 . . . . . . . . . . . . 40 | |||
C.12. Since draft-ietf-quic-recovery-08 . . . . . . . . . . . . 41 | C.12. Since draft-ietf-quic-recovery-09 . . . . . . . . . . . . 41 | |||
C.13. Since draft-ietf-quic-recovery-07 . . . . . . . . . . . . 41 | C.13. Since draft-ietf-quic-recovery-08 . . . . . . . . . . . . 41 | |||
C.14. Since draft-ietf-quic-recovery-06 . . . . . . . . . . . . 41 | C.14. Since draft-ietf-quic-recovery-07 . . . . . . . . . . . . 41 | |||
C.15. Since draft-ietf-quic-recovery-05 . . . . . . . . . . . . 41 | C.15. Since draft-ietf-quic-recovery-06 . . . . . . . . . . . . 41 | |||
C.16. Since draft-ietf-quic-recovery-04 . . . . . . . . . . . . 41 | C.16. Since draft-ietf-quic-recovery-05 . . . . . . . . . . . . 41 | |||
C.17. Since draft-ietf-quic-recovery-03 . . . . . . . . . . . . 41 | C.17. Since draft-ietf-quic-recovery-04 . . . . . . . . . . . . 41 | |||
C.18. Since draft-ietf-quic-recovery-02 . . . . . . . . . . . . 41 | C.18. Since draft-ietf-quic-recovery-03 . . . . . . . . . . . . 41 | |||
C.19. Since draft-ietf-quic-recovery-01 . . . . . . . . . . . . 41 | C.19. Since draft-ietf-quic-recovery-02 . . . . . . . . . . . . 41 | |||
C.20. Since draft-ietf-quic-recovery-00 . . . . . . . . . . . . 42 | C.20. Since draft-ietf-quic-recovery-01 . . . . . . . . . . . . 42 | |||
C.21. Since draft-iyengar-quic-loss-recovery-01 . . . . . . . . 42 | C.21. Since draft-ietf-quic-recovery-00 . . . . . . . . . . . . 42 | |||
C.22. Since draft-iyengar-quic-loss-recovery-01 . . . . . . . . 42 | ||||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 42 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
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 22, line 38 ¶ | skipping to change at page 22, line 38 ¶ | |||
9. IANA Considerations | 9. IANA Considerations | |||
This document has no IANA actions. Yet. | This document has no IANA actions. Yet. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[QUIC-TLS] | [QUIC-TLS] | |||
Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | |||
QUIC", draft-ietf-quic-tls-21 (work in progress), July | QUIC", draft-ietf-quic-tls-22 (work in progress), July | |||
2019. | 2019. | |||
[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", draft-ietf-quic- | Multiplexed and Secure Transport", draft-ietf-quic- | |||
transport-21 (work in progress), July 2019. | transport-22 (work in progress), July 2019. | |||
[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>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
skipping to change at page 37, line 37 ¶ | skipping to change at page 37, 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-20 | C.1. Since draft-ietf-quic-recovery-21 | |||
o No changes | ||||
C.2. Since draft-ietf-quic-recovery-20 | ||||
o Path validation can be used as initial RTT value (#2644, #2687) | o Path validation can be used as initial RTT value (#2644, #2687) | |||
o max_ack_delay transport parameter defaults to 0 (#2638, #2646) | o max_ack_delay transport parameter defaults to 0 (#2638, #2646) | |||
o Ack Delay only measures intentional delays induced by the | o Ack Delay only measures intentional delays induced by the | |||
implementation (#2596, #2786) | implementation (#2596, #2786) | |||
C.2. Since draft-ietf-quic-recovery-19 | C.3. Since draft-ietf-quic-recovery-19 | |||
o Change kPersistentThreshold from an exponent to a multiplier | o Change kPersistentThreshold from an exponent to a multiplier | |||
(#2557) | (#2557) | |||
o Send a PING if the PTO timer fires and there's nothing to send | o Send a PING if the PTO timer fires and there's nothing to send | |||
(#2624) | (#2624) | |||
o Set loss delay to at least kGranularity (#2617) | o Set loss delay to at least kGranularity (#2617) | |||
o Merge application limited and sending after idle sections. Always | o Merge application limited and sending after idle sections. Always | |||
skipping to change at page 38, line 22 ¶ | skipping to change at page 38, line 30 ¶ | |||
packet is ack-eliciting but the largest_acked is not (#2592) | packet is ack-eliciting but the largest_acked is not (#2592) | |||
o Don't arm the handshake timer if there is no handshake data | o Don't arm the handshake timer if there is no handshake data | |||
(#2590) | (#2590) | |||
o Clarify that the time threshold loss alarm takes precedence over | o Clarify that the time threshold loss alarm takes precedence over | |||
the crypto handshake timer (#2590, #2620) | the crypto handshake timer (#2590, #2620) | |||
o Change initial RTT to 500ms to align with RFC6298 (#2184) | o Change initial RTT to 500ms to align with RFC6298 (#2184) | |||
C.3. Since draft-ietf-quic-recovery-18 | C.4. Since draft-ietf-quic-recovery-18 | |||
o Change IW byte limit to 14720 from 14600 (#2494) | o Change IW byte limit to 14720 from 14600 (#2494) | |||
o Update PTO calculation to match RFC6298 (#2480, #2489, #2490) | o Update PTO calculation to match RFC6298 (#2480, #2489, #2490) | |||
o Improve loss detection's description of multiple packet number | o Improve loss detection's description of multiple packet number | |||
spaces and pseudocode (#2485, #2451, #2417) | spaces and pseudocode (#2485, #2451, #2417) | |||
o Declare persistent congestion even if non-probe packets are sent | o 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) | |||
o Move pseudocode to the appendices (#2408) | o Move pseudocode to the appendices (#2408) | |||
o What to send on multiple PTOs (#2380) | o What to send on multiple PTOs (#2380) | |||
C.4. Since draft-ietf-quic-recovery-17 | C.5. Since draft-ietf-quic-recovery-17 | |||
o After Probe Timeout discard in-flight packets or send another | o After Probe Timeout discard in-flight packets or send another | |||
(#2212, #1965) | (#2212, #1965) | |||
o Endpoints discard initial keys as soon as handshake keys are | o Endpoints discard initial keys as soon as handshake keys are | |||
available (#1951, #2045) | available (#1951, #2045) | |||
o 0-RTT state is discarded when 0-RTT is rejected (#2300) | o 0-RTT state is discarded when 0-RTT is rejected (#2300) | |||
o Loss detection timer is cancelled when ack-eliciting frames are in | o Loss detection timer is cancelled when ack-eliciting frames are in | |||
skipping to change at page 39, line 15 ¶ | skipping to change at page 39, line 26 ¶ | |||
controller (#2138, 2187) | controller (#2138, 2187) | |||
o Process ECN counts before marking packets lost (#2142) | o Process ECN counts before marking packets lost (#2142) | |||
o Mark packets lost before resetting crypto_count and pto_count | o Mark packets lost before resetting crypto_count and pto_count | |||
(#2208, #2209) | (#2208, #2209) | |||
o Congestion and loss recovery state are discarded when keys are | o Congestion and loss recovery state are discarded when keys are | |||
discarded (#2327) | discarded (#2327) | |||
C.5. Since draft-ietf-quic-recovery-16 | C.6. Since draft-ietf-quic-recovery-16 | |||
o Unify TLP and RTO into a single PTO; eliminate min RTO, min TLP | o 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) | |||
o Redefine how congestion avoidance in terms of when the period | o Redefine how congestion avoidance in terms of when the period | |||
starts (#1928, #1930) | starts (#1928, #1930) | |||
o Document what needs to be tracked for packets that are in flight | o Document what needs to be tracked for packets that are in flight | |||
(#765, #1724, #1939) | (#765, #1724, #1939) | |||
skipping to change at page 39, line 42 ¶ | skipping to change at page 40, line 4 ¶ | |||
o Disable RTT calculation for packets that don't elicit | o Disable RTT calculation for packets that don't elicit | |||
acknowledgment (#2060, #2078) | acknowledgment (#2060, #2078) | |||
o Limit ack_delay by max_ack_delay (#2060, #2099) | o Limit ack_delay by max_ack_delay (#2060, #2099) | |||
o Initial keys are discarded once Handshake are avaialble (#1951, | o Initial keys are discarded once Handshake are avaialble (#1951, | |||
#2045) | #2045) | |||
o Reorder ECN and loss detection in pseudocode (#2142) | o Reorder ECN and loss detection in pseudocode (#2142) | |||
o Only cancel loss detection timer if ack-eliciting packets are in | o Only cancel loss detection timer if ack-eliciting packets are in | |||
flight (#2093, #2117) | flight (#2093, #2117) | |||
C.6. Since draft-ietf-quic-recovery-14 | C.7. Since draft-ietf-quic-recovery-14 | |||
o Used max_ack_delay from transport params (#1796, #1782) | o Used max_ack_delay from transport params (#1796, #1782) | |||
o Merge ACK and ACK_ECN (#1783) | o Merge ACK and ACK_ECN (#1783) | |||
C.7. Since draft-ietf-quic-recovery-13 | C.8. Since draft-ietf-quic-recovery-13 | |||
o Corrected the lack of ssthresh reduction in CongestionEvent | o Corrected the lack of ssthresh reduction in CongestionEvent | |||
pseudocode (#1598) | pseudocode (#1598) | |||
o Considerations for ECN spoofing (#1426, #1626) | o Considerations for ECN spoofing (#1426, #1626) | |||
o Clarifications for PADDING and congestion control (#837, #838, | o Clarifications for PADDING and congestion control (#837, #838, | |||
#1517, #1531, #1540) | #1517, #1531, #1540) | |||
o Reduce early retransmission timer to RTT/8 (#945, #1581) | o Reduce early retransmission timer to RTT/8 (#945, #1581) | |||
o Packets are declared lost after an RTO is verified (#935, #1582) | o Packets are declared lost after an RTO is verified (#935, #1582) | |||
C.8. Since draft-ietf-quic-recovery-12 | C.9. Since draft-ietf-quic-recovery-12 | |||
o Changes to manage separate packet number spaces and encryption | o Changes to manage separate packet number spaces and encryption | |||
levels (#1190, #1242, #1413, #1450) | levels (#1190, #1242, #1413, #1450) | |||
o Added ECN feedback mechanisms and handling; new ACK_ECN frame | o Added ECN feedback mechanisms and handling; new ACK_ECN frame | |||
(#804, #805, #1372) | (#804, #805, #1372) | |||
C.9. Since draft-ietf-quic-recovery-11 | C.10. Since draft-ietf-quic-recovery-11 | |||
No significant changes. | No significant changes. | |||
C.10. Since draft-ietf-quic-recovery-10 | C.11. Since draft-ietf-quic-recovery-10 | |||
o Improved text on ack generation (#1139, #1159) | o Improved text on ack generation (#1139, #1159) | |||
o Make references to TCP recovery mechanisms informational (#1195) | o Make references to TCP recovery mechanisms informational (#1195) | |||
o Define time_of_last_sent_handshake_packet (#1171) | o Define time_of_last_sent_handshake_packet (#1171) | |||
o Added signal from TLS the data it includes needs to be sent in a | o Added signal from TLS the data it includes needs to be sent in a | |||
Retry packet (#1061, #1199) | Retry packet (#1061, #1199) | |||
o Minimum RTT (min_rtt) is initialized with an infinite value | o Minimum RTT (min_rtt) is initialized with an infinite value | |||
(#1169) | (#1169) | |||
C.11. Since draft-ietf-quic-recovery-09 | C.12. Since draft-ietf-quic-recovery-09 | |||
No significant changes. | No significant changes. | |||
C.12. Since draft-ietf-quic-recovery-08 | C.13. Since draft-ietf-quic-recovery-08 | |||
o Clarified pacing and RTO (#967, #977) | o Clarified pacing and RTO (#967, #977) | |||
C.13. Since draft-ietf-quic-recovery-07 | C.14. Since draft-ietf-quic-recovery-07 | |||
o Include Ack Delay in RTO(and TLP) computations (#981) | o Include Ack Delay in RTO(and TLP) computations (#981) | |||
o Ack Delay in SRTT computation (#961) | o Ack Delay in SRTT computation (#961) | |||
o Default RTT and Slow Start (#590) | o Default RTT and Slow Start (#590) | |||
o Many editorial fixes. | o Many editorial fixes. | |||
C.14. Since draft-ietf-quic-recovery-06 | C.15. Since draft-ietf-quic-recovery-06 | |||
No significant changes. | No significant changes. | |||
C.15. Since draft-ietf-quic-recovery-05 | C.16. Since draft-ietf-quic-recovery-05 | |||
o Add more congestion control text (#776) | o Add more congestion control text (#776) | |||
C.16. Since draft-ietf-quic-recovery-04 | C.17. Since draft-ietf-quic-recovery-04 | |||
No significant changes. | No significant changes. | |||
C.17. Since draft-ietf-quic-recovery-03 | C.18. Since draft-ietf-quic-recovery-03 | |||
No significant changes. | No significant changes. | |||
C.18. Since draft-ietf-quic-recovery-02 | C.19. Since draft-ietf-quic-recovery-02 | |||
o Integrate F-RTO (#544, #409) | o Integrate F-RTO (#544, #409) | |||
o Add congestion control (#545, #395) | o Add congestion control (#545, #395) | |||
o Require connection abort if a skipped packet was acknowledged | o Require connection abort if a skipped packet was acknowledged | |||
(#415) | (#415) | |||
o Simplify RTO calculations (#142, #417) | o Simplify RTO calculations (#142, #417) | |||
C.19. Since draft-ietf-quic-recovery-01 | C.20. Since draft-ietf-quic-recovery-01 | |||
o Overview added to loss detection | o Overview added to loss detection | |||
o Changes initial default RTT to 100ms | o Changes initial default RTT to 100ms | |||
o Added time-based loss detection and fixes early retransmit | o Added time-based loss detection and fixes early retransmit | |||
o Clarified loss recovery for handshake packets | o Clarified loss recovery for handshake packets | |||
o Fixed references and made TCP references informative | o Fixed references and made TCP references informative | |||
C.20. Since draft-ietf-quic-recovery-00 | C.21. Since draft-ietf-quic-recovery-00 | |||
o Improved description of constants and ACK behavior | o Improved description of constants and ACK behavior | |||
C.21. Since draft-iyengar-quic-loss-recovery-01 | C.22. Since draft-iyengar-quic-loss-recovery-01 | |||
o Adopted as base for draft-ietf-quic-recovery | o Adopted as base for draft-ietf-quic-recovery | |||
o Updated authors/editors list | o Updated authors/editors list | |||
o Added table of contents | o Added table of contents | |||
Acknowledgments | Acknowledgments | |||
Authors' Addresses | Authors' Addresses | |||
End of changes. 34 change blocks. | ||||
54 lines changed or deleted | 59 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |