Here are some other things to look at:
Use netstat -s to see if there are a lot of TCP retransmissions. TCP retransmits usually indicate network congestion, but can also happen with bad network hardware, or misconfigured networks. You may also see some TCP retransmissions if the sending host is much faster than the receiving host, but TCP flow control should make the number of retransmits relatively low.
Some useful commands in Linux include:
- netstat -s | grep retrans : show TCP retransmits
- netstat -s | grep reorder : Look for out of order packets (run this on the sender)
- netstat -s 4 | grep reorder : show out of order packets every 4 second
- ifconfig ethN, and look for "overruns" : This means the receiving NIC is dropping packets. This can happen if the sender host is faster than the receive host. ( or ethtool -S ethN | grep rx_over_errors, which shows the same thing). Unfortunately this only seems to work with some NICs.
Check the Duplex Mode A common source of LAN trouble with 100BT networks is that the host is set to full duplex, but the Ethernet switch is set to half-duplex, or visa versa. Most newer hardware will auto-negotiate this, but with some older hardware, auto-negotiation will sometimes fail, with the result being a working but very slow network (typically only 1-2 Mbps).
Check if TCP-Offloading is enabled. Some NICs use TCP-Offloading to reduce the load on the CPU. But the NIC does not have enough memory for this to work well for WAN transfers. For some NICs such as the Intel e1000, you can disable this by using 'ethtool' (e.g.: ethtool -K eth0 tso off). For some other NICs such as Chelsio, you will need to recompile the network driver with TCP-offloading disabled.