Date: Fri, 16 Aug 2002 15:16:39 -0700 (PDT) From: Matt Dillon <dillon@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet tcp_subr.c tcp_timer.c tcp_timer.h Message-ID: <200208162216.g7GMGd6i085952@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
dillon 2002/08/16 15:16:39 PDT
Modified files: (Branch: RELENG_4)
sys/netinet tcp_subr.c tcp_timer.c tcp_timer.h
Log:
MFC sysctls to control the TCP retransmit timer. Temporarily default
net.inet.tcp_rexmit_min to 1000ms (1 second) to maintain prior -stable
behavior. The default net.inet.tcp_rexmit_slop (extra time always added to
the timeout calculation) is 200ms, but effectively obscured by the 1000ms
minimum. Setting net.inet.tcp_rexmit_min to a low value such as 12 will
get you -current's behavior.
This can be somewhat confusing. The minimum is an unconditional lower bound
on the retransmit timeout calculation. The slop is unconditionally added
to the retransmit timeout calculation PRIOR to the minimum being enforced.
On faster networks the SRTT calculation becomes less dependable as a means
of preventing unnecessary retransmissions. The best protection against this
is to use the slop parameter to control your nominal interactive
responsiveness/recovery-base in the face of non-congestion related packet
loss (e.g. on a wireless network).
Generally speaking current RFCs regarding TCP retransmit behavior want
a 1 second minimum, but they are so focused on streaming behavior that they
completely ignore the disaster this causes on faster ( < 500ms ping )
connections operating interactively, such as when typing in a remote shell
over a wireless network. Linux uses a far more reasonable 200ms minimum
and our -current now does the equivalent (or better) by using 200ms of slop.
Hopefully -stable will follow with a change to 200ms of slop in the
near future. For the moment, if you care, please set net.inet.tcp.rexmit_min
to a low value (such as 12) in your /etc/sysctl.conf.
Revision Changes Path
1.73.2.27 +3 -1 src/sys/netinet/tcp_subr.c
1.34.2.13 +8 -0 src/sys/netinet/tcp_timer.c
1.18.2.1 +15 -3 src/sys/netinet/tcp_timer.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208162216.g7GMGd6i085952>
