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.