# CRC-based framing

CRC-based framing is a kind of frame synchronization used in Asynchronous Transfer Mode (ATM) and other similar protocols.
The concept of CRC-based framing was developed by StrataCom, Inc. in order to improve the efficiency of a pre-standard Asynchronous Transfer Mode (ATM) link protocol. This technology was ultimately used in the principal link protocols of ATM itself and was one of the most significant developments of StrataCom. An advanced version of CRC-based framing was used in the ITU-T SG15 G.7041 Generic Framing Procedure (GFP), which itself is used in several packet link protocols.

## Overview of CRC-based framing

The method of CRC-Based framing re-uses the header cyclic redundancy check (CRC), which is present in ATM and other similar protocols, to provide framing on the link with no additional overhead. In ATM, this field is known as the Header Error Control/Check (HEC) field. It consists of the remainder of the division of the 32 bits of the header (taken as the coefficients of a polynomial over the field with two elements) by the polynomial $x^{8}+x^{2}+x+1$. The pattern 01010101 is XORed with the 8-bit remainder before being inserted in the last octet of the header.
Constantly checked as data is transmitted, this scheme is able to correct single-bit errors and detect many multiple-bit errors. For a tutorial and an example of computing the CRC see mathematics of cyclic redundancy checks.
The header CRC/HEC is needed for another purpose within an ATM system, to improve the robustness in cell delivery. Using this same CRC/HEC field for the second purpose of link framing provided a significant improvement in link efficiency over what other methods of framing, because no additional bits were required for this second purpose.
A receiver utilizing CRC-based framing bit-shifts along the received bit stream until it finds a bit position where the header CRC is correct for a number of times. The receiver then declares that it has found the frame. A hysteresis function is applied to keep the receiver in lock in the presence of a moderate error rate.
In links where there is already a byte lock mechanism present such as within an E-carrier or SDH frame, the receiver need only byte-shift (rather than of bit-shifting) along the receive data stream to find lock.

## Length/HEC-Based Framing

An advanced, variable frame size version of CRC-Based framing is used in ITU-T SG15 G.7041 GFP links where it is known as Length/HEC-based framing. An offset to the next valid header is present in a fixed position relative to the CRC/HEC. The receiver looks for a position in the receive data stream following the rules that the header CRC/HEC is correct and the byte offset correctly points to the next valid header CRC/HEC.

## Invention of CRC-based framing

StrataCom produced the first (pre-standard) ATM commercial product, the IPX. The IPX used 24 byte cells instead of ATM's 53 byte cells, and the field definitions were slightly different, but the basic idea of using short, fixed length cells was identical. StrataCom's first product had T1 (1.544 Mbit/s) based links which included a 5 bit header CRC, similar to ATM's 8 bit header CRC.
T1 is a time-division multiplexing (TDM) protocol with 24 byte payloads carried in a 193 bit frame. The first bit of each frame carries one bit out of a special pattern. A receiver finds this special pattern by sequentially looking for the bit position in the receive data where a bit from this pattern shows up every 193rd byte. It was convenient for StrataCom to make the length of one cell equal to the length of one T1 frame because a useful T1 framer Integrated Circuit from Rockwell was on the market. This device found the 193 bit long TDM frame and put out the 24 bytes in a form that could be used effectively.
When it came time to produce a European product, the benefit of using 24 byte frames became a liability. The European E-carrier (E1) format has a 32 byte frame of which 30 bytes could carry data. The development team's first proposal used the HDLC protocol to encapsulate a sequence of 24 byte cells into a byte stream collected from the 30 byte E1 payloads. This was highly inefficient because HDLC has a heavy and data-dependent overhead. The project team subsequently realized they could base the framing on the CRC. A circuit was designed which examined the incoming byte stream emerging from the E1 framer device and found a byte position for which the header CRC value was consistently correct. This team also went on to create a more error tolerant form of the technique.
A related technique was patented in 1984. That technique uses the CRC to find the start of 50 bit frames composed of a 36 bit data payload, a 13 bit CRC, and a single 1 bit start-of-frame indicator.