Oracle Audio Technologies A86828-01 User Manual
Page 45
TCP Tuning
Optimizing HTTP Server Performance
4-5
You will find some other possibilities to tune TCP in
/proc/sys/net/ipv4/
:
■
tcp_timestamps
■
tcp_windowscaling
■
tcp_sack
There is a brief description of TCP parameters in
/Documentation/networking/ip-sysctl.txt.
Tuning at Compile Time
All the above TCP parameter values are set default by a header file in the Linux
kernel source directory
/LINUX-SOURCE-DIR/include/linux/skbuff.h
These values are default. This is run time configurable.
# ifdef CONFIG_SKB_LARGE
#define SK_WMEM_MAX 65535
#define SK_RMEM_MAX 65535
# else
#define SK_WMEM_MAX 32767
#define SK_RMEM_MAX 32767
#endif
You can change the MAX-WINDOW value in the Linux kernel source directory
/LINUX-SOURCE-DIR/include/net/tcp.h.
#define MAX_WINDOW 32767
#define MIN_WINDOW 2048
The
MIN_WINDOW
definition limits you to using only 15bits of the window field in
the TCP packet header.
For example, if you use a 40kB window, set the
rmem_default
to 40kB. The stack
will recognize that the value is less than 64 kB, and will not negotiate a winshift. But
due to the second check, you will get only 32 kB. So, you need to set the
rmem_default
value at greater than 64 kB to force a winshift=1. This lets you
express the required 40 kB in only 15 bits.
Note:
Never assign values greater than 32767 to windows,
without using window scaling.