4 ms·
> Idle but half-dead TCP connections will eventually time out. It can take hours, though, on some systems. This is not true, in general. I think you're descri
by dap 10y ago
> Idle but half-dead TCP connections will eventually time out. It can take hours, though, on some systems.
This is not true, in general. I think you're describing connections which have TCP KeepAlive enabled on them.
- bluejekyll 10y agoCorrect. Connection read/write timeouts only apply when, wait for it, reading or writing. All TCP keep alive does is send a packet every so often, which is actually something which is rarely actually set.
- Animats 10y agoSee RFC 763, page 77, "User Timeout". This is a bit ambiguous, and there's an attempt to clarify it in RFC 5482. [1] https://tools.ietf.org/html/rfc0793 https://tools.ietf.org/html/rfc0793 [2] https://tools.ietf.org/html/rfc5482 https://tools.ietf.org/html/rfc5482
- dap 10y agoFrom RFD 5482's abstract: > The TCP user timeout controls how long transmitted data may remain > unacknowledged before a connection is forcefully closed. As I understand it, this only applies if there is data outstanding. In the puzzler, there was no data outstanding. You're right that if there had been, the side with data outstanding would eventually notice the problem and terminate the connection. The default timeout on most systems I've seen is 5-8 minutes. By contrast, the previous article you linked was about KeepAlive, which will always eventually detect this condition, but by default usually not for at least two hours.
- colanderman 10y agoI find that usually, long-lived idle TCP connections get killed by stateful firewalls, of which there are often several along any given path through the Internet. e.g. my home router has a connection timeout of 24 hours.
- noselasd 10y agoThere's quite a number of stateful firewalls that just silently drop the connection with out sending a RST though, meaning TCP connections are idling forever, if it does not employ any tcp or application level keep-alives.
- noselasd 10y agoThere's quite a number of stateful firewalls that just silently drop the connection with out sending a RST though, meaning TCP connections are idling forever, if it does not employ any tcp or application level keep-alives or timeouts.