Networks must be able to transfer data from one device to another with acceptable accuracy.
Any time data are transmitted from one node to the next,
they can become corrupted in passage. Many factors can
alter one or more bits of a message.
Some applications require a mechanism for detecting and
correcting errors.
Some applications can tolerate a small level of error. For example,
random errors in audio or video transmissions may be tolerable, but
when we transfer text, we expect a very high level of accuracy.
At the data-link layer, if a frame is corrupted between the
two nodes, it needs to be corrected before it continues its
journey to other nodes. However, most link-layer
protocols simply discard the frame and let the upperlayer
protocols handle the retransmission of the frame.