Wireless:TCP
From TIER
TCP Tuning
http://www-didc.lbl.gov/TCP-tuning/linux.html
Like all operating systems, the default maximum Linux TCP buffer sizes are way too small. I suggest changing them to the following settings:
# increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # increase Linux autotuning TCP buffer limits # min, default, and max number of bytes to use net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216
Another thing you can try that may help increase TCP throughput is to increase the size of the interface queue. To do this, do the following:
ifconfig eth0 txqueuelen 1000
2.4
The value for ssthresh for a given path is cached in the routing table. This means that if a connection has has a retransmition and reduces its window, then all connections to that host for the next 10 minutes will use a reduced window size, and not even try to increase its window. The only way to disable this behavior is to do the following before all new connections (you must be root):
sysctl -w net.ipv4.route.flush=1
2.6
Starting with version 2.6.13, Linux supports pluggable congestion control algorithms . The congestion control algorithm used is set using the sysctl variable net.ipv4.tcp_congestion_control, which is set to Reno by default. The current set of congestion control options are:
- reno: Traditional TCP used by almost all other OSes. (default)
- bic: BIC-TCP
- highspeed: HighSpeed TCP: Sally Floyd's suggested algorithm
- htcp: Hamilton TCP
- hybla: For satellite links
- scalable: Scalable TCP
- vegas: TCP Vegas
- westwood: optimized for lossy networks
