From owner-cvs-all Fri Aug 16 15:16:44 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 38EE237B400; Fri, 16 Aug 2002 15:16:40 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id EE40643E6E; Fri, 16 Aug 2002 15:16:39 -0700 (PDT) (envelope-from dillon@FreeBSD.org) Received: from freefall.freebsd.org (dillon@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7GMGdJU085953; Fri, 16 Aug 2002 15:16:39 -0700 (PDT) (envelope-from dillon@freefall.freebsd.org) Received: (from dillon@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7GMGd6i085952; Fri, 16 Aug 2002 15:16:39 -0700 (PDT) Message-Id: <200208162216.g7GMGd6i085952@freefall.freebsd.org> From: Matt Dillon Date: Fri, 16 Aug 2002 15:16:39 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet tcp_subr.c tcp_timer.c tcp_timer.h X-FreeBSD-CVS-Branch: RELENG_4 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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