1

For a Link Layer frame, it's common to include some bits for redundancy. Suppose we have a frame with X bits of actual data, and want Y bits of error-correction bits.

What size do we need to choose for Y to guarantee that we can have a 100% chance of an intact message at the receiving end, free of errors?

  • 2
    You could even have a duplicate of the data as the CRC, but you will never guarantee error-free. A CRC is simply a quick way to give you a reasonable chance of detecting an error. – Ron Maupin Mar 15 at 5:40
2

A CRC in general isn't well suited for error correction, just detection.

Any redundancy you add to an original data block is limited in the amount of errors it can detect (or correct).

Any practical transmission channel has a statistical error rate greater than zero. Cleverly constructed redundant data can decrease the probability of an error by several orders of magnitude, but no amount of redundancy can reduce that probability to zero.

In practice, you might want to reduce an error rate to an amount that doesn't matter much any more - most Ethernet variants are designed to guarantee a bit error rate of 10-12 or better. Detecting an error is much easier than correcting it, so in some situations it might be more reasonable to drop erroneous data and try again. Ethernet doesn't try again on FCS errors but some higher-layer protocols resend lost data.

For an example on forward error correction, check out https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.