I'm having a strange problem with a data dependent error. Downloads of certain files never complete. Tcpdump (or netmon or ethereal) show a packet being received with a TCP checksum error. The retransmits of this packet also have a TCP checksum error. If I try to download the same file from a different mirror, it too stops in the same place with a TCP checksum error. Attempts to restart the download hang immediately with the first data packet having a TCP checksum error. This happens with both ftp and http!
This is one thing that TCP can't handle. Sure the packet gets retransmitted - many times - but every time it gets corrupted.
I went as far as getting a good copy of the file via a roundabout route (an encrypted VPN connection) and comparing the data in the file with that in the bad packet. A single byte at offset 0x1E0 in the packet was 0x20 when it should have been 0x00. Every time.
Playing with the MTU sometimes helps - dropping it to 472 obviously lets the above transfer restart as packets aren't 0x1E0 long. It doesn't cure the problem though.
Hardware. This was first seen with a Westell 2200 on a Verizon DSL line to a local ISP. It's running bridged ethernet only. I also tried an older Westell Wirespeed. Same problem. Different computer connected directly to the Westell. Same problem (no surprise, but when the ISP started blaming my computers...).
The 2200 reports no errors. Verizon have checked the line, found no errors and say it's clean.
So, anyone seen anything similar?
FWIW, I put an ethereal trace of a failure at