Linux Cable Tweaking Problems

Get help and discuss anything related to tweaking your internet connection, as well as the different tools and registry patches on the site. TCP Optimizer settings and Analyzer results should be posted here.
Post Reply
Metal414
Member
Posts: 25
Joined: Mon Apr 17, 2000 12:00 am
Location: Scottsdale, AZ

Linux Cable Tweaking Problems

Post by Metal414 »

I have Linux Mandrake 8.2 installed and I'm trying to increase my RWIN settings but I'm not having any luck.

I've followed the instructions in the FAQ here at Speedguide.net with putting the net.core.rmem_default, etc in the /etc/sysctl.conf and I changed the actual files too in the proc/sys/net/core/, plus I changed them in the proc/sys/net/ipv4/. I did all during many rounds of change, reboot and test. But for some reason my RWIN still shows up on here as only 5840. I checked the files in the ipv4 and core and they show my changes (and I have rebooted).

Here's what the test shows:
MTU = 1500
MTU is fully optimized for broadband.

MSS = 1460
Maximum useful data in each packet = 1448, which is less than MSS because of Timestamps, or other TCP/IP options used.

Default Receive Window (RWIN) = 5840
RWIN Scaling (RFC1323) = 2 bits
Unscaled Receive Window = 1460
RWIN is a multiple of MSS
Other values for RWIN that might work well with your current MTU/MSS:
513920 (MSS x 44 * scale factor of 8)
256960 (MSS x 44 * scale factor of 4)
128480 (MSS x 44 * scale factor of 2)
64240 (MSS x 44)

bandwidth * delay product:
Your RcvWindow limits you to: 233.6 kbps (29.2 KBytes/s) @ 200ms
Your RcvWindow limits you to: 93.44 kbps (11.68 KBytes/s) @ 500ms
Consider increasing your RWIN value to optimize TCP/IP for broadband.

MTU Discovery (RFC1191) = ON

Time to live left = 43 hops
TTL value is ok.

Timestamps (RFC1323) = ON
Note: Timestamps add 12 bytes to the TCP header of each packet, reducing the space available for useful data.

Selective Acknowledgements (RFC2018) = ON

IP type of service field (RFC1349)= 00000000

Any ideas on what else there is to try?
Andrew
Regular Member
Posts: 217
Joined: Wed Sep 13, 2000 12:00 am
Location: Canada

Post by Andrew »

Here is a couple of links. it helped me in the past tweaking my Cable settings in linux. Hope it helps.

http://www.enteract.com/~lspitz/linux.html
http://www.linuxjournal.com/article.php?sid=5310

you will also find some linux tweaking here as well.

http://www.extremetech.com/article2/0,3973,671,00.asp
What are you waiting for ? Go here http://www.speedguide.net/Cable_modems/cable_patches.shtml And grab some tweaks :)

My webpage services
http://www.ajpgraphix.com
Stu
Regular Member
Posts: 341
Joined: Tue Aug 10, 1999 12:00 am

Post by Stu »

Okay, here's what's wrong. The SpeedGuide FAQ that covers tweaking Linux is absolutely correct--for kernel 2.2.x. However, It's incomplete for kernel 2.4.x. There are some additional things that need to be added to /etc/sysctl.conf to get it to work properly--this is do to the fact that 2.4.x uses auto-tuning.

You have your original (I'm showing my config, and I use a 512 Kb RWIN for both the default and the max--it'll scale down to the min if need be, so, default = max will do no harm and besides it's less math to do!):

net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_window_scaling = 1

You also need to enable sack (I enable fack too).

net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1

You need to set the send and receive vectors. The last number in the tuple is the one you are interested in, it should be one half the value of its corresponding net.core.Xmem_max value.

net.ipv4.tcp_wmem = 4096 87380 262144
net.ipv4.tcp_rmem = 4096 87380 262144

Finally you need to enable flushing, otherwise any changes you make take ten minutes after you restart your network card to take effect.

net.ipv4.route.flush = 1

Once that's entered into your /etc/sysctl.conf, run:

sysctl -p
/etc/init.d/network restart

Now the settings are in effect.

Here's the kicker... Your RWIN size is still going to show up in the SG TCP/IP Analyser as 5840. This is because of the auto-tuning, it sends packets of size 5840 to a new destination until the destination replies with a packet that exceeds 5840, at that point it increases the packet size--in effect growing to the receiver's window size. But, by the time that happens the analyser has completed its evaluation.
Post Reply