How do you know whether the data received is in error? If you had a copy of the intended transmission for comparison, of course you will. But how if you do not have a copy of original? Decode it and discover an error only if you cannot understand it?
One of the solution is to send every data unit twice. Then bit-for-bit comparison between the two versions of the data is performed. Any discrepancy would indicate an error. However this method is slow because of double transmission time and bit-for-bit comparison time.
A more effective method for error detection is called redundancy, which means adding extra bits for detecting errors at the destination. The extra bits are discarded as soon as the accuracy of the transmission has been determined.
Four types of redundancy checks: