Frame check sequence
|This article needs additional citations for verification. (January 2008)|
A frame check sequence (FCS) refers to the extra checksum added to a frame in a communications protocol for error detection. Frames are used to send upper-layer data and ultimately the user application data from a source to a destination. The data package includes the message to be sent, or user application data. Extra bytes may be added so frames have a minimum length for timing purposes. LLC bytes are also included with the Data field in the IEEE standard frames. The LLC sublayer takes the network protocol data, which is an IP packet, and adds control information to help deliver the packet to the destination node. Layer 2 communicates with the upper layers through LLC. (OSI model)
Note that detection does not also mean error recovery. Ethernet defines that the errored frame should be discarded, but Ethernet takes no action to cause the frame to be retransmitted. Other protocols, notably TCP, can notice the lost data and cause error recovery to occur.
All frames and the bits, bytes, and fields contained within them, are susceptible to errors from a variety of sources. The FCS field contains a number that is calculated by the source node based on the data in the frame. This number is added to the end of a frame that is sent. When the destination node receives the frame the FCS number is recalculated and compared with the FCS number included in the frame. If the two numbers are different, an error is assumed, the frame is discarded. The sending host computes a checksum on the entire frame and appends this as a trailer to the data. The receiving host computes the checksum on the frame using the same algorithm, and compares it to the received FCS. This way it can detect whether any data was lost or altered in transit. It may then discard the data, and request retransmission of the faulty frame.
The FCS is often transmitted in such a way that the receiver can compute a running sum over the entire frame, including the trailing FCS, and expect to see a fixed result (such as zero) when it is correct. Such an FCS generally appears immediately before the frame-ending delimiter.
By far the most popular FCS algorithm is a cyclic redundancy check (CRC), used in the Ethernet with 32 bits, X.25 16 or 32 bits, HDLC 16 or 32 bits, Frame Relay 16 bits, Point-to-Point Protocol (PPP) 16 or 32 bits, and other data link layer protocols.