Communication channels have a range of characteristics.
Some channels, like optical fiber in telecommunications networks, have
tiny error rates so that transmission errors are a rare occurrence. But other channels,
especially wireless links and aging local loops, have error rates that are orders
of magnitude larger. For these links, transmission errors are the norm. They cannot be avoided at a reasonable expense or cost in terms of performance. The
conclusion is that transmission errors are here to stay. We have to learn how to
deal with them.
Network designers have developed two basic strategies for dealing with errors. Both add redundant information to the data that is sent. One strategy uses error-correcting codes to deduce what the transmitted data must have been. The other uses error-detecting codes to deduce that an error has occurred (but not which error). We will examine Hamming code for error detection and CRC (