Visual RFC.
ALL RFCs / RFC 5482
Read the RFC ↗
RFC 5482 / TCP USER TIMEOUT

Apply local upper and lower limits

04

Long waits consume connection state; very short waits can abort useful connections before an acknowledgment arrives. Both endpoints keep their own limits.

RFC 5482 · § 3.1EXAMPLE
4 / 4
04
Allow different endpoint results

One endpoint’s cap is 900 seconds; the other’s is 450. Their adopted timeouts may differ even when both use the recommended calculation.

Apply local upper and lower limitsOne endpoint’s cap is 900 seconds; the other’s is 450. Their adopted timeouts may differ even when both use the recommended calculation.Allow different endpoint resultsSame suggestions; different local capsEndpoint ACap 900 slocal policyAdopt 900 sEndpoint BCap 450 slocal policyAdopt 450 sThe endpoints need not agree

Key idea: Limits are mandatory; min(U_LIMIT, max(ADV_UTO, REMOTE_UTO, L_LIMIT)) is the RECOMMENDED scheme.

Terms
L_LIMIT
The locally imposed lower limit on accepted user timeouts.
U_LIMIT
The locally imposed upper limit.
REMOTE_UTO
The last user-timeout suggestion received from the peer.

Look up a term in the glossary ↗

Rules & examples
  • Hosts MUST impose upper and lower limits on accepted and used user timeouts. With ENABLED and CHANGEABLE true, hosts SHOULD adjust the local timeout; RFC 5482 gives a RECOMMENDED limiting formula, not the only possible policy.
  • The lower limit L_LIMIT MUST be larger than the connection’s current RTO. When following the recommended scheme, L_LIMIT SHOULD be at least 100 seconds. “Larger” is strict; equality with the RTO does not satisfy it.
  • The valid illustrative configuration uses ADV_UTO = 300, REMOTE_UTO = 600, L_LIMIT = 100, U_LIMIT = 900 and current RTO = 5, all in seconds. max(300,600,100) = 600, then min(900,600) = 600.
  • In a separate high-advice fixture, REMOTE_UTO = 1800 with the same 900-second upper limit yields 900. The limit caps the result even though the peer advertised a larger value.
  • A different endpoint with an upper limit of 450 can adopt 450 while its peer adopts 900. Endpoints do not necessarily adopt the same user timeout. This is advice, not a binding common deadline.
  • Limits MAY be system-wide or more specific and need not be static. Dynamic resource/attack status may affect them. A sender may close or abort at its own discretion; a long advertised value is no guarantee.

Only the RFC’s recommended calculation is modeled. Inputs are finite integer-second fixtures with a consistent lower/upper interval; this helper rejects invalid configurations instead of modeling arbitrary system policy. No application API or TCP implementation is exercised.

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

Suggest how long to keep waiting

Imagine two people holding a shared call open during a brief outage. Telling the other person your waiting limit can help, but they still choose their own limit. This analogy is not a promise that the network or either endpoint will stay available.

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.

All chapters in RFC 5482

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 ↗