On Fri, Oct 06, 2006 at 09:47:50AM +0100, cl@isbd.net wrote:
On Fri, Oct 06, 2006 at 09:40:09AM +0100, Brett Parker wrote:
OK - alarm bells just went off in my head... just a simple, really easy question here... is this a 2.6.17 kernel? If so, can you try the following: echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
It's a 2.6.18 kernel (rc5 I think), but the above *does* fix the problem - what arcane art is that?! :-)
Brilliant, thanks.
OK - the basic problem is that in the 2.6.17 kernel the window scaling was actually "fixed" to conform to the specification, and now uses a percentage of available ram for the window sizes... the unfortunate part is that half the routers in the world are completely broken wrt the spec, which is a pain...
So, the "long term" fix for now is to add to /etc/sysctl.conf the following:
net.ipv4.tcp_rmem=4096 87380 174760 net.ipv4.tcp_wmem=4096 16384 131072
Which are the old defaults for the window sizes.
To test that you can do: sysctl -w net.ipv4.tcp_rmem="4096 87380 174760" sysctl -w net.ipv4.tcp_wmem="4096 16384 131072" sysctl -w net.ipv4.tcp_window_scaling=1
If you want to check that these are set, cat the corresponding files in /proc/sys, so for example: cat /proc/sys/net/ipv4/tcp_window_scaling
And check that's back to 1, and the other 2 are set as I've put in here... and long live the tcp connection :)
I'm expecting this sort of problem really, I'm pushing the edge of drivers available in Linux which is why I'm using a 2.6.18 kernel, the SuSE 10.2 alpha (it'll be beta very soon I think) was one of the few that has the drivers I want in it.
I'm fairly sure that 2.6.18 has been released, Noodles probably knows better than I... *looks at kernel.org* - yup, it's been released, 2006-09-20 was the release date :)
Cheers,