Keep application choices in control
03The option has local control variables. Enabling it permits sending and receiving suggestions; a separate flag decides whether received advice may change the local timeout.
A peer suggests 900 seconds, but CHANGEABLE is false. Keep USER_TIMEOUT = 500 seconds; notifying the application is SHOULD, not automatic adoption.
Key idea: Explicitly setting USER_TIMEOUT MUST make CHANGEABLE false.
Terms
- ENABLED
- Whether sending and receiving this option is enabled for the connection.
- CHANGEABLE
- Whether received advice may change the local USER_TIMEOUT.
- ADV_UTO
- The value this endpoint advertises to its peer.
Rules & examples
Explicitly setting USER_TIMEOUT MUST make CHANGEABLE false.
- ENABLED defaults to false and controls both sending and receiving UTO options. CHANGEABLE defaults to true; ADV_UTO is the value advertised to the peer and defaults to the system-wide USER_TIMEOUT if unspecified.
- An application enables the option before active or passive open if it wants initial SYN/SYN-ACK advertisements. Implementations MAY provide system-wide defaults for ENABLED, ADV_UTO and CHANGEABLE.
- When an application explicitly sets USER_TIMEOUT, CHANGEABLE MUST become false. This prevents peer advice from overriding the application’s requested local timeout. The application may explicitly set or clear CHANGEABLE through an API.
- When CHANGEABLE is false, USER_TIMEOUT MUST NOT change because of a received UTO. TCP SHOULD notify the application of the peer’s suggested value (§3.1); that notification is not adoption.
- Adaptation to received advice requires both ENABLED and CHANGEABLE to be true. Even then the option is not a binding negotiation and local policy/limits still apply. Setting ADV_UTO is distinct from explicitly setting USER_TIMEOUT.
- The API in RFC 5482 is abstract (§5). A similarly named operating-system socket option is not proof that its implementation transmits this wire option.
The fixture starts from a chosen local timeout of 300 seconds; it does not assert a universal operating-system default. The 500-second application choice and 900-second peer advice are separate values, not a handshake agreement.
Sources
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.