One method that is highly reliable but too complicated for us to study here is called the cyclic redundancy code, or CRC. It uses some interesting number theory involving division of polynomials to come up with the checksums and is extremely accurate. A 16-bit long CRC code can catch all single and double errors in an arbitrarily long transmission sequence, and all burst errors of length 1 through 16, and 99.997% of 17-bit error bursts and 99.998 percent of 18-bit and longer error bursts! Obviously, it is the preferred error code, but it is somewhat complicated to compute in software, which is why it is not used everywhere. Special chips have been developed which can compute it using fast hardware called shift registers. |