Summary

  • RFC 6298 updates RTTVAR with the old SRTT before the same RTT sample updates SRTT.
  • The resulting RTO combines the smoothed mean, clock granularity and four times the estimated variation, then applies a one-second floor.

Two memories from one observation

Once TCP has an RTT measurement, it no longer relies on the unmeasured initial timer. The first sample R initializes two different memories: SRTT becomes R, while RTTVAR becomes R/2. The retransmission timeout is then SRTT + max(G, 4*RTTVAR), where G is clock granularity.

Later samples cannot simply replace those values. A new measurement R' contributes one quarter of the update to variation and one eighth to the smoothed mean. The unequal gains let the centre move slowly while deviation reacts more quickly.

Why sequence became normative

RFC 6298 specifies a detail that looks like implementation bookkeeping but changes the estimate. RTTVAR must first use |SRTT-R'|, with SRTT still holding its previous value. Only afterward may SRTT absorb the new sample.

If the mean moved first, the distance between the observation and the baseline would already be smaller. The sample would help redefine normal before the estimator finished measuring how abnormal it was. The standard therefore makes ordering part of interoperability, not an optional coding style.

Floors, ceilings and the boundary of the rule

After recomputation, a value below one second should be rounded up to one second. An implementation may also impose a maximum, but that maximum must be at least 60 seconds. Those bounds sit around the estimator; they do not replace its history or variation terms.

The source does not establish what every current TCP stack implements or whether the constants are optimal for every modern path. It fixes a common algorithm and an auditable order. It also leaves separate questions separate: Karn's rule decides whether a sample may enter; this mechanism decides what an accepted sample does.

Sources