Visual RFC.
ALL RFCs / RFC 6298
Read the RFC ↗
RFC 6298 / TCP retransmission timer

Start and take a first sample

01

TCP keeps a retransmission timeout, or RTO, for recovering when acknowledgments do not arrive. It estimates round-trip time rather than using one fixed timeout for every connection.

RFC 6298 · § 2EXAMPLE
4 / 4
Start and take a first sampleSeparate first sample 100 ms gives raw 300 ms; adopting the recommended lower floor gives 1000 ms. Diagram explicitly preserves SHOULD rather than making it a mandatory fixed value.Wait using an estimate, not a universal constantSeparate first RTT: 100 msSRTT 100 · RTTVAR 50 · G 10Raw RTO: 100 + max(10, 200) = 300recommended floorChosen RTO: 1000 ms · SHOULDDo not upgrade SHOULD to MUSTMilliseconds · sample values and G are chosen
04
Apply the recommended lower floor

Separate first-sample example: SRTT 100 ms, RTTVAR 50 ms and raw RTO 300 ms. Adopting the recommended 1 second floor makes the chosen RTO 1000 ms. The floor is SHOULD, not an invented MUST.

Source for this drawing: RFC 6298 · Read RFC section 2 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

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

What changed
RFC 2988RFC 6298 § 2

The recommended initial RTO changes from 3 seconds to 1 second; a more conservative initial value remains permitted. RFC 6298§5.7 adds the conditional 3 second fallback after a SYN timeout. This is a publication update, not a new TCP version.

Read the updated RFC section ↗
KEY POINT

An initial timeout is a recommendation; the first valid RTT sample initializes two required estimator variables.

  • RTO is the retransmission timeout; RTT is a round-trip measurement from sending data to its acknowledgment. SRTT is smoothed RTT and RTTVAR tracks RTT variation. G represents clock granularity; all worked numbers in this guide use milliseconds (ms).
  • Before any RTT measurement, RTO SHOULD be 1 second. An implementation MAY still use 3 seconds or another value greater than 1 second (§2.1). This is not a universal mandatory fixed timeout. Exponential backoff still applies before a measurement.
  • For the first valid sample R, a sender MUST set SRTT=R and RTTVAR=R/2, then RTO=SRTT+max(G,4×RTTVAR) (§2.2). The illustration chooses G=10 ms and a clean, never-retransmitted 800 ms sample.
  • Whenever a computed RTO is below 1 second, it SHOULD be rounded up to 1 second (§2.4). The guide adopts that recommended floor for its teaching model; it does not rewrite SHOULD as MUST.
  • RFC 6298 updates RFC 1122’s algorithm-support requirement from SHOULD to MUST and obsoletes RFC 2988 (§1). It does not replace TCP congestion control. Implementations may be more conservative but MUST NOT be more aggressive than the specified timer algorithms allow.
  • A TCP implementation MUST take at least one RTT measurement per RTT unless Karn’s algorithm prevents it (§3). Historical path statistics in Appendix A motivate the change; they are not current Internet measurements or guarantees.
DETAILS

Chosen G=10 ms. Segment A is not retransmitted before its first 800 ms ACK; it arrives before the recommended initial 1000 ms timeout.

Read the RFC section ↗

All chapters in RFC 6298

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 ↗