Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jul 2001 13:12:07 -0400 (EDT)
From:      Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
To:        Richard Smith <rdls@satamatics.com>
Cc:        net@FreeBSD.ORG
Subject:   sysctls keepidle and keepintvl
Message-ID:  <200107101712.f6AHC7503088@khavrinen.lcs.mit.edu>
In-Reply-To: <20010709230512.A918@gaia.home.rdls.net>
References:  <20010709230512.A918@gaia.home.rdls.net>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Mon, 9 Jul 2001 23:05:13 +0100, Richard Smith <rdls@satamatics.com> 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107101712.f6AHC7503088>