Re: 2.6.17: networking bug??

John Heffner
2006-06-13T18:28:13Z

Linus Torvalds wrote:
>
> On Tue, 13 Jun 2006, John Heffner wrote:
>> The best thing you can do is try to find this broken box and inform its owner
>> that it needs to be fixed. (If you can find out what it is, I'd be interested
>> to know.) In the meantime, disabling window scaling will work around the
>> problem for you.
>
> Well, arguably, we shouldn't necessarily have defaults that use window
> scaling, or we should have ways to recognize automatically when it
> doesn't work (which may not be possible).
>
> It's not like there aren't broken boxes out there, and it might be better
> to make the default buffer sizes just be low enough that window scaling
> simply isn't an issue.
>
> I suspect that the people who really want/need window scaling know about
> it, and could be assumed to know enough to raise their limits, no?
>
> Linus

Unfortunately, there's really no way to detect this, at least not until
it's too late. You can't un-negotiate window scale after the connection
is initiated.

64k buffers, the largest you can use without window scaling, are
adequate for most home users on DSL or cable modems (good to about 10
Mbps across the US, not quite that over trans-oceanic links).
Unfortunately, that's about a factor of ten too small for that average
university user, and a factor of 100-1000 too small for high end use.
Check out the figure at
<http://people.internet2.edu/~ghb/pmwiki/pmwiki.php/BridgingTheGap/BtGWizGap>,
which has some data points. (The bottom line is the best "normal" users
can get with system default buffers, the top line is what high-end users
have gotten with tuned systems over the wide area. Note that this gap
is increasing at an exponential rate.)

In the last couple years, we've added code that can automatically size
the buffers as appropriate for each connection, but it's completely
crippled unless you use a window scale. Personally, I think it's not a
question of *whether* we have to start using a window scale by default,
but *when*. I don't know that we want to let a small number of
unambiguously broken middleboxes kill our forward progress.

Though I haven't gotten my hands on it, I believe Windows will soon have
this capability, too. I'm sure Windows is big enough that whenever they
turn this on, it will flush out all these boxes pretty quickly. We
could wait for them to do it first, that that's not my favored approach.

BTW, as one data point, I've been personally running with a large window
scale for about 5 years, and only seen a small handful of problems, most
of which were corrected fairly quickly after I sent email to the admin
of the box in question. No "big" sites have been an issue.

Thanks,
-John