Visual RFC.
ALL RFCs / RFC 9000
Read the RFC ↗
RFC 9000 / MECHANISMS

Establish a protected connection

03

QUIC integrates a cryptographic handshake and transport-parameter negotiation. The cryptographic details are in RFC 9001.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 7 ↗
RFC 9000 · § 7EXAMPLE
3 / 3
Establish a protected connectionCRYPTO messages progress through Initial and Handshake protection to application-data keys.clientserverInitial / CRYPTOHandshake / CRYPTO1-RTT / stream dataApplication-data keys protect established trafficInitial keys are publicly derivable; not payload secrecy
03
Protect established-connection traffic.

The connection can now carry application streams under application-data keys.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 9000 · QUIC version 1RFC 9369 § 3.2 · version 2

Version 2 changes long-header type encodings: Initial=01, 0-RTT=10, Handshake=11, Retry=00. These are wire-version differences, not RFC revision numbers.

Read the updated RFC section ↗
KEY POINT

Handshake progress establishes keys and transport context.

  • Initial, Handshake, and 1-RTT packets have different protection contexts.
  • Initial protection does not provide secrecy from an observer who can derive the public Initial keys.
  • Before address validation, a server limits bytes sent to an address to three times bytes received from it.
DETAILS

0-RTT can reduce startup latency on resumed connections, but replay risks need application handling. Client Initial datagrams are padded to at least 1200 bytes.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. Streams progress independently
  2. Stream IDs describe direction
  3. Establish a protected connection
  4. Limit data and stream counts
  5. Recover data, not packets
  6. Move a connection to a new path
RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗