94 lines
3.2 KiB
Plaintext
94 lines
3.2 KiB
Plaintext
Internet Engineering Task Force (IETF) J. Iyengar, Ed.
|
|
Request for Comments: 9000 Fastly
|
|
Category: Standards Track M. Thomson, Ed.
|
|
ISSN: 2070-1721 Mozilla
|
|
May 2021
|
|
|
|
|
|
QUIC: A UDP-Based Multiplexed and Secure Transport
|
|
|
|
Abstract
|
|
|
|
This document defines the core of the QUIC transport protocol. QUIC
|
|
provides applications with flow-controlled streams for structured
|
|
communication, low-latency connection establishment, and network path
|
|
migration. QUIC includes security measures that ensure
|
|
confidentiality, integrity, and availability in a range of deployment
|
|
circumstances. Accompanying documents describe the integration of
|
|
TLS for key negotiation, loss detection, and an exemplary congestion
|
|
control algorithm.
|
|
|
|
Status of This Memo
|
|
|
|
This is an Internet Standards Track document.
|
|
Information about the current status of this document, any errata,
|
|
and how to provide feedback on it may be obtained at
|
|
https://www.rfc-editor.org/info/rfc9000.
|
|
|
|
Copyright Notice
|
|
|
|
Copyright (c) 2021 IETF Trust and the persons identified as the
|
|
document authors. All rights reserved.
|
|
|
|
Table of Contents
|
|
|
|
1. Overview
|
|
1.1. Document Structure
|
|
1.2. Terms and Definitions
|
|
1.3. Notational Conventions
|
|
2. Streams
|
|
2.1. Stream Types and Identifiers
|
|
2.2. Sending and Receiving Data
|
|
2.3. Stream Prioritization
|
|
2.4. Operations on Streams
|
|
3. Stream States
|
|
3.1. Sending Stream States
|
|
3.2. Receiving Stream States
|
|
3.3. Permitted Frame Types
|
|
3.4. Bidirectional Stream States
|
|
3.5. Solicited State Transitions
|
|
4. Flow Control
|
|
4.1. Data Flow Control
|
|
4.2. Increasing Flow Control Limits
|
|
4.3. Flow Control Performance
|
|
4.4. Handling Stream Cancellation
|
|
4.5. Stream Final Size
|
|
4.6. Controlling Concurrency
|
|
5. Connections
|
|
5.1. Connection ID
|
|
5.2. Matching Packets to Connections
|
|
5.3. Operations on Connections
|
|
6. Version Negotiation
|
|
7. Cryptographic and Transport Handshake
|
|
7.1. Example Handshake Flows
|
|
7.2. Negotiating Connection IDs
|
|
7.3. Authenticating Connection IDs
|
|
7.4. Transport Parameters
|
|
7.5. Cryptographic Message Buffering
|
|
8. Address Validation
|
|
9. Connection Migration
|
|
10. Connection Termination
|
|
11. Error Handling
|
|
12. Packets and Frames
|
|
13. Packetization and Reliability
|
|
14. Datagram Size
|
|
15. Versions
|
|
16. Variable-Length Integer Encoding
|
|
17. Packet Formats
|
|
18. Transport Parameter Encoding
|
|
19. Frame Types and Formats
|
|
20. Error Codes
|
|
21. Security Considerations
|
|
22. IANA Considerations
|
|
23. References
|
|
|
|
[NOTE: This file contains the header, abstract, and table of contents
|
|
of RFC 9000. The full specification text is available at:
|
|
https://www.rfc-editor.org/rfc/rfc9000
|
|
https://www.rfc-editor.org/rfc/rfc9000.txt (text)
|
|
https://www.rfc-editor.org/rfc/rfc9000.pdf (PDF)
|
|
|
|
Full document: 151 pages, May 2021
|
|
Authors: Jana Iyengar (Fastly), Martin Thomson (Mozilla)
|
|
DOI: 10.17487/RFC9000]
|