|  | 6.4 | Framing
| 6.4.9 | Frame error problems and solutions

All frames (and the bits, bytes, and fields contained within them) are susceptible to errors from a variety of sources. You need to know how to detect them. An effective, but inefficient way to do this is to send every frame twice, or to have the destination computer send a copy of the original frame back to the source computer before it can send another frame.

Fortunately, there is a more efficient and effective way, one in which only the bad frames are discarded and retransmitted. The Frame Check Sequence (FCS) field contains a number that is calculated by the source computer and is based on the data in the frame. When the destination computer receives the frame, it recalculates the FCS number and compares it with the FCS number included in the frame. If the two numbers are different, an error is assumed, the frame is discarded, and the source is asked to retransmit.

There are three primary ways to calculate the Frame Check Sequence number:

- cyclic redundancy check (CRC) - performs polynomial calculations on the data
- two-dimensional parity - adds an 8th bit that makes an 8 bit sequence have an odd or even number of binary 1's
- Internet checksum - adds the values of all of the data bits to arrive at a sum