Originally posted by aeyoun:
They are not corrupt. If the problem really persists, you may be loosing packets due to faulty network equipement.
Dropped packets are normal, an excessive amount is a different story. Since packets are expected to be dropped and TCP will try to use as much bandwidth as possible (up until the window size) it uses a drop as a way to see if there is congestion. TCP does not know the transfer rate allowed, so it will just send more and more data until a drop is observed and thus will back off. It will try to go higher again though and when a drop is observed, back off again. This is standard TCP behavior and also why it is considered reliable is that any dropped packets can be resent. Why do you think TCP has ack's and sequence numbers whereas UDP does not? TCP is fully capable of recovering from dropped packets.
Some reading for you:
RFC 675
RFC 793
RFC 1122
RFC 2581
RFC 5681
So you better check your network as you will have drops as well.