<<On Mon, 9 Jul 2001 23:05:13 +0100, Richard Smith <[EMAIL PROTECTED]> said:

> Looking at the comments in tcp_var.h, it should be 
> keepintvl that sets this interval. Otherwise, why
> have such a large value for keepidle?

FreeBSD contains a kluge wherein all TCP connections have a form of
keepalive enabled by default.  This is supposed to be separate from
the explicitly-requested SO_KEEPALIVE, but it's possible that
something got broken along the way.  I think the intended behavior is
as follows:

- If the connection is idle for more than `keepidle', then we always
send a keepalive (unless this behavior is disabled).

- If SO_KEEPALIVE has been enabled on the socket, then send a
keepalive every `keepintvl' of idle time.

The reason `keepidle' is so long is that it was a compromise between
one group which wanted keepalives at very long intervals so that one
could temporarily disconnect -- or even suspend -- one's system
without getting all of one's connections killed, and another group
which wanted short intervals to quickly flush broken connections
resulting from unclean shutdown of Windows clients.

-GAWollman


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to