Visual RFC.
ALL RFCs / RFC 9293
Read the RFC ↗
RFC 9293 / CONTROLLING THE RATE

Segments & small writes

09

TCP chooses segment sizes using peer limits, the path, available windows, and small-write handling.

Related RFCs and changes

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

DIAGRAM§ 3.7 ↗
RFC 9293 · § 3.7EXAMPLE
4 / 4
Segments & small writesA stream is cut into illustrated payload ranges after combining the peer and path constraints.ILLUSTRATIVE PAYLOAD SIZINGApplication byte streamABCDEFGHPeer MSSreceive payload limitPath MTUincludes headersSelected segment payloadsABCDEFGHThe stream is split to fit the effective limit
04
Send a suitable byte range.

Segment construction also respects flow and congestion constraints.

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

An MSS is a payload limit, not a packet size.

  • The MSS option describes the largest TCP payload the sender of that option can receive.
  • Path MTU discovery helps avoid IP fragmentation.
  • Nagle coalesces small writes when data is outstanding; applications must be able to disable it per connection.
DETAILS

Nagle and silly-window avoidance solve related but different problems. Neither creates application message boundaries.

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 ↗