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

Stream IDs describe direction

02

The low two bits encode the initiator and whether the stream is bidirectional or unidirectional.

Related RFCs and changes

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

DIAGRAM§ 2.1 ↗
RFC 9000 · § 2.1EXAMPLE
3 / 3
Stream IDs describe directionBit columns reveal initiator and direction before a sequence of IDs of one type is allocated.STREAM ID · TWO LOWEST BITS00clientbidirectional01serverbidirectional10clientunidirectional11serverunidirectionalClient bidirectional IDs: 0 → 4 → 8 → …Low bit: initiator · next-lowest bit: direction
03
Allocate the next ID of a type.

Client-initiated bidirectional streams use IDs 0, 4, 8, and so on.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

IDs distinguish four stream types.

  • Client-initiated IDs are even; server-initiated IDs are odd.
  • The next-lowest bit distinguishes bidirectional from unidirectional streams.
  • Successive IDs of one type increase by four; IDs are not reused within a connection.
DETAILS

Limits on how many streams may be opened are separate from a stream’s direction and ID.

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

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗