Start and take a first sample
01TCP 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.
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 ↗
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.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
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 ↗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.
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 ↗