RFC 9002 - QUIC Loss Detection and Congestion Control
Publication Date: May 2021
Status: Standards Track
Authors: J. Iyengar (Fastly), I. Swett (Google)
Abstract
This document describes loss detection and congestion control mechanisms for QUIC.
Table of Contents
- 1. Introduction
- 2. Conventions and Definitions
- 3. Design of the QUIC Transmission Machinery
- 4. Relevant Differences between QUIC and TCP
- 4.1 Separate Packet Number Spaces
- 4.2 Monotonically Increasing Packet Numbers
- 4.3 Clearer Loss Epoch
- 4.4 No Reneging
- 4.5 More ACK Ranges
- 4.6 Explicit Correction for Delayed Acknowledgments
- 4.7 Probe Timeout Replaces RTO and TLP
- 4.8 The Minimum Congestion Window Is Two Packets
- 4.9 Handshake Packets Are Not Special
- 5. Estimating the Round-Trip Time
- 5.1 Generating RTT Samples
- 5.2 Estimating min_rtt
- 5.3 Estimating smoothed_rtt and rttvar
- 6. Loss Detection
- 6.1 Acknowledgment-Based Detection
- 6.2 Probe Timeout
- 6.3 Handling Retry Packets
- 6.4 Discarding Keys and Packet State
- 7. Congestion Control
- 7.1 Explicit Congestion Notification
- 7.2 Initial and Minimum Congestion Window
- 7.3 Congestion Control States
- 7.4 Ignoring Loss of Undecryptable Packets
- 7.5 Probe Timeout
- 7.6 Persistent Congestion
- 7.7 Pacing
- 7.8 Underutilizing the Congestion Window
- 8. Security Considerations
- 8.1 Loss and Congestion Signals
- 8.2 Traffic Analysis
- 8.3 Misreporting ECN Markings
- 9. References
Appendices
Related Resources
- Official Text: RFC 9002
- Official Page: RFC 9002 DataTracker
- Errata: RFC Editor Errata