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

Start, restart and stop the timer

03

The recommended timer-management algorithm follows outstanding data. Starting a timer, restarting it for an ACK that advances delivery, and turning it off are different events.

RFC 6298 · § 5EXAMPLE
4 / 4
Start, restart and stop the timerAt 1200 ms all remaining B is acknowledged. Outstanding documents and running-timer bar disappear; timer is off, not restarted for empty data.Outstanding data controls the timerRTO stays 2400 ms in this example01000200030004000Now: 1200 msAll acknowledged · timer OFFNo outstanding segmentsACK remaining B: turn timer off
04
Stop when everything is acknowledged

At 1200 ms the remaining data is acknowledged. The outstanding set becomes empty and the retransmission timer is turned off, rather than restarted for an empty flight.

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

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.

KEY POINT

New data sent while a timer runs does not restart it under the recommended algorithm; a new-data ACK does.

  • §5 requires timer management that never retransmits a segment too early under this timer algorithm. The following lifecycle is the RECOMMENDED timer-management algorithm (§§5.1–5.3), not the only possible internal timer architecture.
  • When data is sent, including a retransmission, start a timer for the current RTO only if it is not already running (§5.1). Sending another segment while it runs does not restart it under this algorithm.
  • When an ACK acknowledges new data, restart the timer to expire one current RTO later if data remains outstanding (§5.3). A duplicate ACK that advances no data is not this restart trigger. When all outstanding data is acknowledged, turn the timer off (§5.2).
  • Worked RTO 2400 ms: send A at 0→deadline 2400; send B at 500→still 2400; ACK A at 1000 while B remains→deadline 3400; ACK all remaining data at 1200→off. These labels identify whole example segments, not actual TCP sequence-number fields.
  • The timer recovery described here does not prohibit separate fast retransmit before an RTO expires. RFC 5681§3.2 describes that different recovery trigger; RFC 6298§1 does not alter congestion-control behavior.
  • RTT measurement and ACK-triggered timer restart are separate jobs. Later chapters show that an ACK can acknowledge data even when retransmission ambiguity prevents using it as a timing sample.
DETAILS

Toy sender has segments A then B; ACK A advances new data while B remains. Clock positions use actual elapsed milliseconds on a 0–4000 ms scale.

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 ↗