| rfc9002v4.txt | rfc9002.txt | |||
|---|---|---|---|---|
| skipping to change at line 49 ¶ | skipping to change at line 49 ¶ | |||
| 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 | 1. Introduction | |||
| 2. Conventions and Definitions | 2. Conventions and Definitions | |||
| 3. Design of the QUIC Transmission Machinery | 3. Design of the QUIC Transmission Machinery | |||
| 4. Relevant Differences Between QUIC and TCP | 4. Relevant Differences between QUIC and TCP | |||
| 4.1. Separate Packet Number Spaces | 4.1. Separate Packet Number Spaces | |||
| 4.2. Monotonically Increasing Packet Numbers | 4.2. Monotonically Increasing Packet Numbers | |||
| 4.3. Clearer Loss Epoch | 4.3. Clearer Loss Epoch | |||
| 4.4. No Reneging | 4.4. No Reneging | |||
| 4.5. More ACK Ranges | 4.5. More ACK Ranges | |||
| 4.6. Explicit Correction For Delayed Acknowledgments | 4.6. Explicit Correction for Delayed Acknowledgments | |||
| 4.7. Probe Timeout Replaces RTO and TLP | 4.7. Probe Timeout Replaces RTO and TLP | |||
| 4.8. The Minimum Congestion Window Is Two Packets | 4.8. The Minimum Congestion Window Is Two Packets | |||
| 4.9. Handshake Packets Are Not Special | 4.9. Handshake Packets Are Not Special | |||
| 5. Estimating the Round-Trip Time | 5. Estimating the Round-Trip Time | |||
| 5.1. Generating RTT Samples | 5.1. Generating RTT Samples | |||
| 5.2. Estimating min_rtt | 5.2. Estimating min_rtt | |||
| 5.3. Estimating smoothed_rtt and rttvar | 5.3. Estimating smoothed_rtt and rttvar | |||
| 6. Loss Detection | 6. Loss Detection | |||
| 6.1. Acknowledgment-Based Detection | 6.1. Acknowledgment-Based Detection | |||
| 6.1.1. Packet Threshold | 6.1.1. Packet Threshold | |||
| skipping to change at line 188 ¶ | skipping to change at line 188 ¶ | |||
| performance of the QUIC handshake and use shorter timers for | performance of the QUIC handshake and use shorter timers for | |||
| acknowledgment. | acknowledgment. | |||
| * Packets containing frames besides ACK or CONNECTION_CLOSE frames | * Packets containing frames besides ACK or CONNECTION_CLOSE frames | |||
| count toward congestion control limits and are considered to be in | count toward congestion control limits and are considered to be in | |||
| flight. | flight. | |||
| * PADDING frames cause packets to contribute toward bytes in flight | * PADDING frames cause packets to contribute toward bytes in flight | |||
| without directly causing an acknowledgment to be sent. | without directly causing an acknowledgment to be sent. | |||
| 4. Relevant Differences Between QUIC and TCP | 4. Relevant Differences between QUIC and TCP | |||
| Readers familiar with TCP's loss detection and congestion control | Readers familiar with TCP's loss detection and congestion control | |||
| will find algorithms here that parallel well-known TCP ones. | will find algorithms here that parallel well-known TCP ones. | |||
| However, protocol differences between QUIC and TCP contribute to | However, protocol differences between QUIC and TCP contribute to | |||
| algorithmic differences. These protocol differences are briefly | algorithmic differences. These protocol differences are briefly | |||
| described below. | described below. | |||
| 4.1. Separate Packet Number Spaces | 4.1. Separate Packet Number Spaces | |||
| QUIC uses separate packet number spaces for each encryption level, | QUIC uses separate packet number spaces for each encryption level, | |||
| skipping to change at line 256 ¶ | skipping to change at line 256 ¶ | |||
| implementations on both sides and reducing memory pressure on the | implementations on both sides and reducing memory pressure on the | |||
| sender. | sender. | |||
| 4.5. More ACK Ranges | 4.5. More ACK Ranges | |||
| QUIC supports many ACK ranges, as opposed to TCP's three SACK ranges. | QUIC supports many ACK ranges, as opposed to TCP's three SACK ranges. | |||
| In high-loss environments, this speeds recovery, reduces spurious | In high-loss environments, this speeds recovery, reduces spurious | |||
| retransmits, and ensures forward progress without relying on | retransmits, and ensures forward progress without relying on | |||
| timeouts. | timeouts. | |||
| 4.6. Explicit Correction For Delayed Acknowledgments | 4.6. Explicit Correction for Delayed Acknowledgments | |||
| QUIC endpoints measure the delay incurred between when a packet is | QUIC endpoints measure the delay incurred between when a packet is | |||
| received and when the corresponding acknowledgment is sent, allowing | received and when the corresponding acknowledgment is sent, allowing | |||
| a peer to maintain a more accurate RTT estimate; see Section 13.2 of | a peer to maintain a more accurate RTT estimate; see Section 13.2 of | |||
| [QUIC-TRANSPORT]. | [QUIC-TRANSPORT]. | |||
| 4.7. Probe Timeout Replaces RTO and TLP | 4.7. Probe Timeout Replaces RTO and TLP | |||
| QUIC uses a probe timeout (PTO; see Section 6.2), with a timer based | QUIC uses a probe timeout (PTO; see Section 6.2), with a timer based | |||
| on TCP's retransmission timeout (RTO) computation; see [RFC6298]. | on TCP's retransmission timeout (RTO) computation; see [RFC6298]. | |||
| End of changes. 4 change blocks. | ||||
| 4 lines changed or deleted | 4 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/ | ||||