Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jul 2001 19:06:31 +0100
From:      "Richard Smith" <rdls@satamatics.com>
To:        "Garrett Wollman" <wollman@khavrinen.lcs.mit.edu>
Cc:        <net@FreeBSD.ORG>
Subject:   RE: sysctls keepidle and keepintvl
Message-ID:  <703AB71471B6024CB86D219058DB64FB02E143@matrix.satamatics.net>

next in thread | raw e-mail | index | archive | help
> -----Original Message-----
> From: Garrett Wollman [mailto:wollman@khavrinen.lcs.mit.edu]
> Sent: 10 July 2001 18:12
> To: Richard Smith
> Cc: net@FreeBSD.ORG
> Subject: sysctls keepidle and keepintvl
>=20
>=20
> <<On Mon, 9 Jul 2001 23:05:13 +0100, Richard Smith=20
> <rdls@satamatics.com> said:
>=20
> > Looking at the comments in tcp_var.h, it should be=20
> > keepintvl that sets this interval. Otherwise, why
> > have such a large value for keepidle?
>=20
> 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:
>=20
> - If the connection is idle for more than `keepidle', then we always
> send a keepalive (unless this behavior is disabled).
>=20
> - If SO_KEEPALIVE has been enabled on the socket, then send a
> keepalive every `keepintvl' of idle time.

Answering my own question almost: The SO_KEEPALIVE and the sysctl
net.inet.tcp.always_keepalive are logically ORed. The keepalive
is sent after 'keepidle' and thereafter at 'keepintvl' intervals
unless a response is received, in which case it goes back to
using 'keepidle'.

> 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.

I understand, but 2 hours ??? :-)

Anyway, I have added my own value of 240s to sysctl.conf which is
sufficiently below the 300s value of net.inet.ip.fw.dyn_ack_lifetime
to serve my purposes.

Thanks,
Rich.

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

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?703AB71471B6024CB86D219058DB64FB02E143>