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>