GCC Version : 4.1.2 OS Version : Red Hat Enterprise Linux Server release 5.4 Machine : Dell R710 & Dell 2950 On above specified machine & gcc.. I have built an server application which has TCP socket set with 256K SNDBUF & 1460 TCP_MAXSEG and sends data to other End in multiples of packets of size 4096 bytes each. I have set these flag values before listen & accept. But my application still sending 10% of TCP packets of length < 1460 to other End, which I observed in collected tcpdump. Collected multiple tcpdumps and found that starting SYN & SYN ACK packets exchanged MSS with 1460 but still seeing the issue on Redhat Linux 5. Didn't seen the above issue on Redhat Linux 4. Observing the above issue only on Redhat Linux 5 for large objects ( > 200KB ). Collected tcpdumps for both RH4 & RH5. If required.. I will provide to you. Rechecked sysctl configuration on both RH4 & RH5 for below params and found correct - net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 65536 4194304 net.ipv4.tcp_mem = 1310720 1310720 1310720 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_window_scaling = 1 Please let me know, if any information needed or anything I need to further recheck etc.
Created attachment 4686 [details] TCP Dump collected on RH5 Dell R710 TCP dump collected on RH5 Dell R710
Created attachment 4687 [details] TCP Dump collected on RH4 Dell R710 TCP Dump collected on RH4 Dell R710
This has nothing to do with the C library. Talk to the kernel people.