Subject: Re: TCP/SACK support.
To: Perry E. Metzger <perry@piermont.com>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 01/06/2005 14:48:36
In message <87llb68b2x.fsf@snark.piermont.com>,
"Perry E. Metzger" writes:
>Jonathan Stone <jonathan@dsg.stanford.edu> writes:
>> But there are a number of other implementations of SACK for the BSD
>> TCP stack, some of which have been widely tested, deployed, and not
>> least, had some review by leading members TCP/IP research community.
>
>SACK is not like slow start or what have you -- it doesn't need
>careful tuning and there aren't subtle bugs you can introduce in
>careful calculations.
Nope. For starters, you should re-read the message Pavel already
cited, describing problems in OpenBSD-3.1's TCP performance due to
SACK. Then, take a look at RFC-3517. A modern SACK implementation
does in fact, require as much care as [sic] ``slow start or what have you''.
Another way to say the same thing is that these days, SACK implies not
just SACK, but SACK+FACK or SACK-plus-son-of-SACK.
I've read Kurahone-san's patch. They are very clean.
But they represent only very modest receiver-side changes. By far the
bulk of the work needed for SACK is in the TCP sender-side --- where
SACK retransmission and scoreboarding intimately affect the
transmission-policy portions of TCP. That's the part where I suggest
we don't reinvent wheels if we can re-lathe an existing wheel.
[[Hmmm. Looking ahead in my inbox, I see Kurahone-san says much the
same thing.]]
>If the implementation works and is clean there is little harm in
>adopting it.
Yes, exactly. So I assume that you have no objection in principle to
committing a clean version of SACK scoreboarding derived from, say, FreeBSD-5?