Visual RFC.
ALL RFCs / RFC 9293
Read the RFC ↗
RFC 9293 / RELIABLE TRANSFER

Initial sequence numbers

05

Initial sequence numbers help distinguish connection incarnations and make blind guessing harder.

Related RFCs and changes

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

RFC 9293 · § 3.4.1EXAMPLE
3 / 3
Initial sequence numbersTuple, secret, and changing clock visibly feed the ISN calculation, then the SYN.Connection tuplelocal IP:port + remote IP:portSecret inputClock componentISN = clock + PRF(tuple, secret)Arithmetic modulo 2³²SYN carries the computed initial sequence number
03
Start sequence synchronization.

The peer learns the starting sequence through the handshake.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 793 § 3.3RFC 9293 § 3.4.1

The base specification now incorporates the stronger RFC 6528 initial-sequence-number algorithm; RFC 9293 § 5 identifies this change.

Read the updated RFC section ↗
KEY POINT

Do not use an easily predictable starting point.

  • Generate ISNs using a clock component combined with a pseudorandom function of the connection tuple and a secret.
  • Keep the secret difficult to predict and manage its lifetime appropriately.
  • Sequence defenses reduce some attacks; they do not provide cryptographic peer authentication.
DETAILS

RFC 9293 incorporates RFC 6528. The consolidation records accumulated improvements rather than introducing every one for the first time in 2022.

Read the RFC section ↗

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

Privacy
All chapters in this RFC
  1. A reliable byte stream
  2. Headers & connections
  3. Three-way handshake
  4. Sequence & acknowledgment
  5. Initial sequence numbers
  6. Loss & retransmission
  7. Flow control
  8. Congestion control
  9. Segments & small writes
  10. Graceful close
  11. Resets & idle probes
  12. Security & the consolidated spec
RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗