net.ipv4.tcp differences from 2.2 to 2.4.x kernel

net.ipv4.tcp differences from 2.2 to 2.4.x kernel

Post by Paul Lourenc » Tue, 20 Aug 2002 17:28:23



Could anyone explain to me what are the tcp/ip differences in the kernel
upgrade from 2.2 to 2.4?

I have some software running on a 2.2 kernel to communicate to a remote
embedded system. To get this to communicate I had to disable the
tcp_window_scaling/tcp_sack options.

Now I'm trying to repeat the process on a 2.4 kernel. I've disabled the
options again, but there are still differences in the implementation,
and communication is unsuccessful!

I've used the ethereal sniffer software to compare the tcp/ip traffic
of the two kernels. I notice subtle differences. Firstly, on the SYN
packet, only 58 bytes are sent over the wire. On the 2.2 kernel, the
same 58 bytes are sent + 2 bytes of trailer (60 bytes total) which is
what you would expect!?

Also, the window size of the packets sent with the 2.4 kernel are about
5k. On the 2.2 kernel, the window size sets itself to 32k. I need a
large window size as the software sends large data to the embedded
system. The target advertises its window size as 8760 bytes. By my
understanding, the sender should detect the window size of the receiver
and adjust itself to suit?

I have tried to disable as many net.ipv4.tcp_* options as possible in
the /etc/sysctl.conf file but have not had any luck yet. I also feel as
though I'm stabbing in the dark. Has anyone had similar experience?

any suggestions/opinions welcome

Paul L

 
 
 

1. net.ipv4.tcp differences from 2.2 to 2.4.x kernel

Could anyone explain to me what are the tcp/ip differences in the kernel
upgrade from 2.2 to 2.4?

I have some software running on a 2.2 kernel to communicate to a remote
embedded system. To get this to communicate I had to disable the
tcp_window_scaling/tcp_sack options.

Now I'm trying to repeat the process on a 2.4 kernel. I've disabled the
options again, but there are still differences in the implementation,
and communication is unsuccessful!

I've used the ethereal sniffer software to compare the tcp/ip traffic
of the two kernels. I notice subtle differences. Firstly, on the SYN
packet, only 58 bytes are sent over the wire. On the 2.2 kernel, the
same 58 bytes are sent + 2 bytes of trailer (60 bytes total) which is
what you would expect!?

Also, the window size of the packets sent with the 2.4 kernel are about
5k. On the 2.2 kernel, the window size sets itself to 32k. I need a
large window size as the software sends large data to the embedded
system. The target advertises its window size as 8760 bytes. By my
understanding, the sender should detect the window size of the receiver
and adjust itself to suit?

I have tried to disable as many net.ipv4.tcp_* options as possible in
the /etc/sysctl.conf file but have not had any luck yet. I also feel as
though I'm stabbing in the dark. Has anyone had similar experience?

any suggestions/opinions welcome

Paul L

2. dma will not work

3. Please help understanding ulimit

4. Q:SCSI Devices/Processors

5. ipv4: move proc stuff from net/ipv4/af_inet.c to net/ipv4/proc.c

6. rpc.nfsd

7. 2.2 -> 2.4: /proc/net/tcp 10x slower ?

8. ipv4 /proc/net/route bug in 2.4 and 2.5 kernels

9. Upgrading kernel 2.2.x to 2.4.x and GLibc 2.1.3 to 2.2.x

10. when not to use net.ipv4.tcp_{sack,fack,dsack}

11. 2.2 -> 2.4 differences