views:

337

answers:

2

TCP and UDP(sometimes) use a simple checksum to make sure the contents are correct.

What I want to know is any empirical data or estimate, of how often a packet is corrupted, but has the correct checksum for a person with a standard computer and internet connection.

Now I know that this probably all varies widely with ISP quality, hardware quality, and more, but I just want to hear any information on this.

+1  A: 

You're asking how long a piece of rope is. In general, unless there's something wrong, the error rate should be less than 10-7. On the other hand, wireless, 3G, and such can have significantly higher error rates.

This Google search will show you there's a lot of literature.

Charlie Martin
I think 10-7 is a little too high. 1-(1-10^-7)^(5 gigabytes / 1500 bytes) in Google, seems to indicate a 30% probability of failure when transferring 5 gigabytes. I have never seem to have encountered such an error.
Unknown
Well, that's less than. But then it depends on the hardware, too. An Ethernet connection may well have more than that but catch them at the hardware layer and never propagate them to the network at all.
Charlie Martin
A: 

From Microsoft Research,

Traces of Internet packets from the past two years show that between 1 packet in 1,100 and 1 packet in 32,000 fails the TCP checksum, even on links where link-level CRCs should catch all but 1 in 4 billion errors. For certain situations, the rate of checksum failures can be even higher: in one hour-long test we observed a checksum failure of 1 packet in 400. We investigate why so many errors are observed, when link-level CRCs should catch nearly all of them.

http://academic.research.microsoft.com/Paper/22436.aspx

Basically transmit 100MB+ over a typical Internet connection and you are very likely to see a silent failure.

Steve-o
That's the numbers of ckecksum errors though, i.e. a packet has a wrong TCP checksum, possibly due to transmission errors (and it will be discarded and retransmitted.)
nos