[opensource] Router(s) on OSU network may be breaking TCP window scaling

Jim Dinan dinan at cse.ohio-state.edu
Thu Sep 7 10:08:49 EDT 2006

Wesley Haines wrote:
>> Does it make a difference if you disable window scaling?
>> echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
> Oops, I forgot to mention that in my e-mail. Yes, doing the above allows
> me to connect to all of the websites I mentioned. However, disabling
> window scaling reduces throughput especially on high-speed lines... so I
> really don't want to leave it that way simply for a couple of websites.

Hey Wes,

I did a little more reading on the topic and apparently the issue is
(and you may have said this already, I can't remember) that older/buggy
TCP implementation will treat the window scale as a signed value (rather
than unsigned as it should be) and will see a window size greater than
32767 as a negative number.  Which is bad.

There is a workaround for this in newer versions of the kernel.  There
is a sysctl flag, /proc/sys/net/ipv4/tcp_workaround_signed_windows which
will disable the use of larger windows to force compatibility.

As you said though, this would only be a temporary fix and these systems
on campus that are causing hiccups should probably be upgraded since
they don't comply with the standard.  Anyway, hope this helps for now!

For more info, you can refer to net/ipv4/tcp_output.c in your linux
kernel source.  There are some helpful comments in there.  :)

 - jim.

James Dinan <dinan at cse.ohio-state.edu>

Graduate RA - Computer Science and Engineering
              The Ohio State University

More information about the Opensource mailing list