Start, restart and stop the timer
03The 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.
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 ↗
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.
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.
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 ↗