From owner-cvs-all Wed Jul 17 22:44: 5 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 EB8D937B400; Wed, 17 Jul 2002 22:43:56 -0700 (PDT) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DB6843E64; Wed, 17 Jul 2002 22:43:56 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.12.5/8.12.4) with ESMTP id g6I5huCV016041; Wed, 17 Jul 2002 22:43:56 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.12.5/8.12.4/Submit) id g6I5hu0k016040; Wed, 17 Jul 2002 22:43:56 -0700 (PDT) (envelope-from dillon) Date: Wed, 17 Jul 2002 22:43:56 -0700 (PDT) From: Matthew Dillon Message-Id: <200207180543.g6I5hu0k016040@apollo.backplane.com> To: Mike Silbersack Cc: cvs-committers@FreeBSD.ORG, Subject: Re: cvs commit: src/sys/netinet tcp_timer.h References: <20020718001924.J83856-100000@patrocles.silby.com> 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 My new calculation is: max(rttmin, rtt) + 4 * srtt + slop where rttmin and slop are programmable. I have rttmin set at 3 ticks for algorithmic stability, and slop set to 50ms in my current patch set. Keep in mind that variance due to ethernet collisions will be reflected in the srtt. So if latency is on the order of 1 ms (LAN) and a tick is 10ms, the retransmission timeouts will be: 50 + 10 (ms) (rto = 1) 50 + 10 (ms) (rto = 2 backed off) 50 + 10 (ms) (rto = 4 backed off) 50 + 10 (ms) (rto = 8 backed off) 50 + 16 (rto = 16 backed off) ... And if latency is on the order of 10 ms (WAN) we get: 50 + 10 (ms) (rto = 10) 50 + 20 (ms) (rto = 20 backed off) 50 + 40 (ms) (rto = 40 backed off) 50 + 80 (ms) (rto = 80 backed off) And if we are running over a modem and latency is 120 ms: 50 + 120 (ms) 50 + 240 (ms) ... All of these numbers look quite reasonable to me, even the LAN, because even on a congested LAN 50ms is a *LONG* time. The protocol backoff is still working, it's just being hidden by the minimum latency (which is what was happening before anyway). -Matt Matthew Dillon :I'm starting to warm up to it, though a little higher would be nice. : :What's really bugging me is the subsequent retransmissions... perhaps we :could constrain them such that the second or third had lower bounds as :well? : :I still think retransmissions at: :30 :60 :120 :240 :480 : :would be bad, but maybe: :30 :530 :1530 :(doubling from there) :wouldn't be so bad. : :If you did that, then you wouldn't have to worry about significantly :shortening the overall retranmission timeout period, or worry about :repeatedly retransmitting before the link has time to recover from :whatever caused the original and the first retransmission to be lost. : :Is that making any sense? I should probably get some sleep before I :comment more. :) : :Mike "Silby" Silbersack To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message