The initial value of search_low to be used by the packetization layer

$cat /proc/sys/net/ipv4/tcp_base_mss
512
$
tcp_base_mss - INTEGER
        The initial value of search_low to be used by the packetization layer
        Path MTU discovery (MTU probing).  If MTU probing is enabled,
        this is the initial MSS used by the connection.
grepping through linux kernel source 2.6.32

sysctl_net_ipv4.c:              .procname       = "tcp_base_mss",
sysctl_net_ipv4.c:              .data           = &sysctl_tcp_base_mss,

tcp_output.c:int sysctl_tcp_base_mss __read_mostly = 512;

scale factor for portion of window reserved for buffering overhead

$cat /proc/sys/net/ipv4/tcp_app_win
31
$

Scale factor for portion of window reserved for buffering overhead. Reserve max(window / 2 ^ tcp_app_win, mss) of window for application buffer. Value 0 is special, it means that nothing is reserved. The default value is 31.
[ wireshark ]
Frame 1 (1496 bytes on wire, 1496 bytes captured)
Ethernet II, Src: Netgear_b4:91:1a (00:1f:33:b4:91:1a), Dst: Giga-Byt_f2:71:b6 (00:1a:4d:f2:71:b6)
Internet Protocol, Src: 122.166.110.18 (122.166.110.18), Dst: 10.0.0.2 (10.0.0.2)
Transmission Control Protocol, Src Port: http (80), Dst Port: 51385 (51385), Seq: 1, Ack: 1, Len: 1430
Flags: 0x10 (ACK)

Window size: 514

Checksum: 0x9e3e [validation disabled]
Options: (12 bytes)
SEQ/ACK analysis
Hypertext Transfer Protocol
grepping through linux kernel source 2.6.32

sysctl_net_ipv4.c:              .procname       = "tcp_app_win",
sysctl_net_ipv4.c:              .data           = &sysctl_tcp_app_win,

tcp_input.c:int sysctl_tcp_app_win __read_mostly = 31;

scaling factor for calculating application portion of window

$cat /proc/sys/net/ipv4/tcp_adv_win_scale
2
$

Scaling factor for calculating application portion of window. Count buffering overhead as bytes / 2 ^ tcp_adv_win_scale (if tcp_adv_win_scale > 0) or bytes – bytes / 2 ^ (-tcp_adv_win_scale), if it is <= 0. The default value is 2.

Copyright © 2002 by Oskar Andreasson Under GNU FDL.

linux kernel source 2.6.32
 {
                .ctl_name       = NET_TCP_ADV_WIN_SCALE,
                .procname       = "tcp_adv_win_scale",
                .data           = &sysctl_tcp_adv_win_scale,
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = proc_dointvec
        },
linux kernel source 2.6.32
int sysctl_tcp_adv_win_scale __read_mostly = 2;

names of targets and files being debugged

From gdb.
info files -- Names of targets and files being debugged
Local exec file:
        `/usr/bin/xine', file type elf64-x86-64.
        Entry point: 0x409e30
        0x0000000000400200 - 0x000000000040021c is .interp
        0x000000000040021c - 0x000000000040023c is .note.ABI-tag
        0x000000000040023c - 0x0000000000400260 is .note.gnu.build-id
        0x0000000000400260 - 0x0000000000400dac is .hash
        0x0000000000400db0 - 0x0000000000400e6c is .gnu.hash
        0x0000000000400e70 - 0x0000000000403960 is .dynsym
        0x0000000000403960 - 0x00000000004053f8 is .dynstr
        0x00000000004053f8 - 0x000000000040578c is .gnu.version
        0x0000000000405790 - 0x0000000000405860 is .gnu.version_r
        0x0000000000405860 - 0x0000000000405920 is .rela.dyn
        0x0000000000405920 - 0x0000000000408278 is .rela.plt
        0x0000000000408278 - 0x0000000000408290 is .init
        0x0000000000408290 - 0x0000000000409e30 is .plt
        0x0000000000409e30 - 0x00000000004a0ed8 is .text
        0x00000000004a0ed8 - 0x00000000004a0ee6 is .fini
        0x00000000004a0f00 - 0x00000000004c5098 is .rodata
        0x00000000004c5098 - 0x00000000004c8334 is .eh_frame_hdr
        0x00000000004c8338 - 0x00000000004d47ec is .eh_frame
        0x00000000006d47f0 - 0x00000000006d4800 is .ctors
        0x00000000006d4800 - 0x00000000006d4810 is .dtors
        0x00000000006d4810 - 0x00000000006d4818 is .jcr
        0x00000000006d4818 - 0x00000000006d4a88 is .dynamic
        0x00000000006d4a88 - 0x00000000006d4a90 is .got
        0x00000000006d4a90 - 0x00000000006d5870 is .got.plt
        0x00000000006d5880 - 0x00000000006d68f0 is .data
        0x00000000006d6900 - 0x00000000006d9ac0 is .bss
$objdump -h /usr/bin/xine | grep .text
 13 .text         000970a8  0000000000409e30  0000000000409e30  00009e30  2**4
$objdump -h /usr/bin/xine | grep .init
 11 .init         00000018  0000000000408278  0000000000408278  00008278  2**2
$

objdump – display information from object files.
-h switch = Display summary information from the section headers of the object file.

x87 set of registers

The x87 family does not use a directly addressable register set such as the main registers of the x86 processors; instead the x87 registers form a 8-level deep stack structure ranging from st0 to st7, where st0 is the top.
x87 is a floating point-related subset (originally an extension) of the x86 architecture instruction set.

Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply
gdb dump.

st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            1000000  (raw 0x4012f424000000000000)
st3            6        (raw 0x4001c000000000000000)
st4            736255   (raw 0x4012b3bff00000000000)
st5            -66.666666666666671403618238400667906    (raw 0xc0058555555555555800)
st6            736264   (raw 0x4012b3c0800000000000)
st7            736275   (raw 0x4012b3c1300000000000)

tcp tuning tcp_abort_on_overflow

$cat /proc/sys/net/ipv4/tcp_abort_on_overflow
0
$
The tcp_abort_on_overflow variable tells the kernel to reset new connections if the system is currently overflowed with new connection attempts that the daemon(s) can not handle. What this means, is that if the system is overflowed with 1000 large requests in a burst, connections may be reset since we can not handle them if this variable is turned on. If it is not set, the system will try to recover and handle all requests.

This variable takes an boolean value (ie, 1 or 0) and is per default set to 0 or FALSE. Avoid enabling this option except as a last resort since it most definitely harm your clients. Before considering using this variable you should try to tune up your daemons to accept connections faster.

Copyright © 2002 by Oskar Andreasson Under GNU FDL.

 code snippet from linux kernel source  sysctl_net_ipv4.c

                .ctl_name       = NET_TCP_ABORT_ON_OVERFLOW,
                .procname       = "tcp_abort_on_overflow",
                .data           = &sysctl_tcp_abort_on_overflow,
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = proc_dointvec

 code snippet from linux kernel source  tcp_minisocks.c

listen_overflow:
        if (!sysctl_tcp_abort_on_overflow) {
                inet_rsk(req)->acked = 1;
                return NULL;
        }

windows registry

regedit is the command to invoke registry editor.
it can be used for windows TCP tuning.

The Windows Registry is a hierarchical database that stores
configuration settings and options on Microsoft Windows operating
 systems. It contains settings for low-level operating system
 components as well as the applications running on the platform: the
 kernel, device drivers, services, SAM, user interface and third party
 applications all make use of the Registry. The registry also provides a
 means to access counters for profiling system performance.


From Wikipedia, the free encyclopedia

tcp tuning tcp_reordering

[:--:]cat /proc/sys/net/ipv4/tcp_reordering
3
[:--:]
The tcp_reordering variable tells the kernel how much a TCP packet may be reordered in a stream without assuming that the packet was lost somewhere on the way. If the packet is assumed lost, the TCP stack will automatically go back into a slow start since it believes packets may have been lost due to congestion somewhere. The TCP stack will also fall back from using the FACK algorithm for this specific host in the future.

This variable takes an integer variable and is per default set to 3. This should in general be a good value and you should not touch it. If this value is lowered, it may result in bad network performance, especially if packets often get reordered in connections.

Copyright © 2002 by Oskar Andreasson under GNU FDL.

tcp tuning tcp_abc

echo 1 > /proc/sys/net/ipv4/tcp_abc
From RFC 3465.

A Modified Algorithm for Increasing the Congestion Window

   As originally outlined in [Jac88] and specified in [RFC2581], TCP
   uses two algorithms for increasing the congestion window.  During
   steady-state, TCP uses the Congestion Avoidance algorithm to linearly
   increase the value of cwnd.  At the beginning of a transfer, after a
   retransmission timeout or after a long idle period (in some
   implementations), TCP uses the Slow Start algorithm to increase cwnd
   exponentially.  According to RFC 2581, slow start bases the cwnd
   increase on the number of incoming acknowledgments.  During
   congestion avoidance RFC 2581 allows more latitude in increasing
   cwnd, but traditionally implementations have based the increase on
   the number of arriving ACKs.  In the following two subsections, we
   detail modifications to these algorithms to increase cwnd based on
   the number of bytes being acknowledged by each arriving ACK, rather
   than by the number of ACKs that arrive.  We call these changes
   "Appropriate Byte Counting" (ABC) [All99].


Read more: http://www.faqs.org/rfcs/rfc3465.html#ixzz0mJkZPK7k