Skip site navigation (1)Skip section navigation (2)
Date:      18 Aug 2002 18:32:33 -0400
From:      Joe Marcus Clarke <marcus@marcuscom.com>
To:        Matt Dillon <dillon@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/netinet tcp_subr.c tcp_timer.c tcp_timer.h
Message-ID:  <1029709953.354.7.camel@shumai.marcuscom.com>
In-Reply-To: <200208162216.g7GMGd6i085952@freefall.freebsd.org>
References:  <200208162216.g7GMGd6i085952@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-N8s2wdH6i5hPgdSem7/F
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Fri, 2002-08-16 at 18:16, Matt Dillon wrote:
> dillon      2002/08/16 15:16:39 PDT
>=20
>   Modified files:        (Branch: RELENG_4)
>     sys/netinet          tcp_subr.c tcp_timer.c tcp_timer.h=20
>   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 adde=
d to
>   the timeout calculation) is 200ms, but effectively obscured by the 1000=
ms
>   minimum.  Setting net.inet.tcp_rexmit_min to a low value such as 12 wil=
l
>   get you -current's behavior.

Matt, maybe I'm missing something, but I find on -stable,
net.inet.tcp.rexmit_min is 10 by default, and setting it to 12 has no
effect (i.e. keeps the value at 10).  net.inet.tcp.rexmit_slop is 200 by
default on -stable already.

On -CURRENT rexmit_min is 30 by default and rexmit_slop is 200.  My test
machines are:

FreeBSD shumai.marcuscom.com 4.6-STABLE FreeBSD 4.6-STABLE #1: Sun Aug
18 18:14:07 EDT 2002   =20
marcus@shumai.marcuscom.com:/usr/obj/usr/src/sys/SHUMAI  i386

and

FreeBSD jclarke-pc.cisco.com 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Mon Aug
12 15:14:07 EDT 2002   =20
marcus@jclarke-pc.cisco.com:/usr/obj/usr/src/sys/JCLARKE-PC  i386

Joe

>  =20
>   This can be somewhat confusing.  The minimum is an unconditional lower =
bound
>   on the retransmit timeout calculation.  The slop is unconditionally add=
ed
>   to the retransmit timeout calculation PRIOR to the minimum being enforc=
ed.
>   On faster networks the SRTT calculation becomes less dependable as a me=
ans
>   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 pack=
et
>   loss (e.g. on a wireless network).
>  =20
>   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 sh=
ell
>   over a wireless network.  Linux uses a far more reasonable 200ms minimu=
m
>   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.rexm=
it_min
>   to a low value (such as 12) in your /etc/sysctl.conf.
>  =20
>   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
>=20


--=-N8s2wdH6i5hPgdSem7/F
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iD8DBQA9YCCBb2iPiv4Uz4cRAq16AKCCMAW9Vg8K2WTCgh/13QQUAdNdEQCggzPN
Gl3h32psXZ8qv+dqxSnXyNk=
=h5/R
-----END PGP SIGNATURE-----

--=-N8s2wdH6i5hPgdSem7/F--


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?1029709953.354.7.camel>