Subject: Re: README: new callout code committed
To: None <current-users@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: current-users
Date: 03/23/2000 14:48:19
On Thu, Mar 23, 2000 at 01:48:58PM -0800, Jonathan Stone wrote:
> Using a timing-wheel based callout for TCP timers is better than what
> we have, but it has its own problems. One of them is that most TCP
> timeouts never fire; they get canceleld. Another is timer management
> for TIME_WAIT. The state of the art here is already better than simply
> using the Costello & Vargese techniques. (ISTR a Usenix paper, but I
> couldnt find the title by grepping my bibilography).
Right, well, there's one nasty little problem. Twice a second, we
currently traverse *ALL* open TCP connections, and doing the following
for each of the 4 timers:
if (timer is enabled) {
decrememnt counter;
if (counter is zero) {
fire off timer;
}
}
This simply does not scale very well.
> The second, which dates to Tahoe TCP, is that for "typical" wide-area
> TCP connections, you dont want too fine a timer granularity; that can
> interact with RTT estimation in ways that are counter-intuitive, at
> first. Whehter still that applies to New-Reno, I forget. I'll try
> and remember to check with some of Dave Clark's former group members.
> ( might be worth asking tcp-impl, too).
>
> Jason may well have already taken all this into consideration, tho'.
Right, so I was aware of this problem, too. My thought was to not use
the finer granularity, just the better timer mechanism. This can be
easily achieved by rounding up, although I guess what actually happens
now is that we round down :-)
--
-- Jason R. Thorpe <thorpej@zembu.com>