Введение
Фреймирование на основе CRC — это метод синхронизации кадров, используемый в режиме асинхронной передачи (ATM) и других аналогичных протоколах. Концепция фреймирования на основе CRC была разработана компанией StrataCom, Inc. для повышения эффективности протокола канала связи, предшествовавшего стандарту ATM. Эта технология в конечном итоге была применена в основных протоколах канала связи ATM и стала одним из важнейших достижений StrataCom. Усовершенствованная версия фреймирования на основе CRC использовалась в процедуре Generic Framing Procedure (GFP) ITU-T SG15 G.7041, которая, в свою очередь, применяется в нескольких протоколах канального уровня.
Обзор CRC-образования
Метод CRC Based framing использует циклический избыточный код (CRC) заголовка, который присутствует в ATM и других подобных протоколах, для обеспечения кадрирования на линии связи без дополнительных накладных расходов. В ATM это поле известно как поле контроля ошибок заголовка (HEC). Оно состоит из остатка от деления 32 бит заголовка (рассматриваемых как коэффициенты полинома над полем из двух элементов) на полином. Шаблон 01010101 складывается по XOR с 8-битным остатком перед вставкой в последний октет заголовка. Постоянно проверяемый в процессе передачи данных, этот метод способен исправлять однобитные ошибки и обнаруживать множество многобитных ошибок. Руководство и пример вычисления CRC можно найти в разделе "Математика циклических проверок избыточности". CRC/HEC заголовка необходим для другой цели в системе ATM – повышения надежности доставки ячеек. Использование того же поля CRC/HEC для второй цели – кадрирования линии связи – обеспечило значительное повышение эффективности линии связи по сравнению с другими методами кадрирования, поскольку для этой второй цели не требовались дополнительные биты. Приемник, использующий кадрирование на основе CRC, выполняет побитовый сдвиг по принятому битовому потоку, пока не обнаружит позицию, в которой CRC заголовка верен несколько раз. После этого приемник объявляет, что кадр найден. Для поддержания устойчивой работы приемника при умеренной частоте ошибок применяется функция гистерезиса. В линиях связи, где уже присутствует механизм синхронизации по байтам, например, в E-линиях или кадрах SDH, приемнику достаточно выполнять байтовый сдвиг (вместо побитового) по принятому потоку данных для установления синхронизации.
Длина/Образование на основе HEC
Усовершенствованная версия кадрирования на основе CRC с переменным размером кадра используется в каналах ITU-T SG15 G.7041 GFP, где она известна как кадрирование на основе длины/HEC. Смещение до следующего допустимого заголовка присутствует в фиксированной позиции относительно CRC/HEC. Приемник ищет позицию в принимаемом потоке данных, руководствуясь правилами, согласно которым CRC/HEC заголовка корректен, а байтовое смещение правильно указывает на CRC/HEC следующего допустимого заголовка.
Изобретение CRC-основанного рамки
StrataCom выпустила первый (предстандартный) коммерческий продукт ATM – IPX. IPX использовал 24-байтные ячейки вместо 53-байтных ячеек ATM, и определения полей были несколько иными, но основная идея использования коротких ячеек фиксированной длины оставалась прежней. Первый продукт StrataCom использовал линии на основе T1 (1,544 Мбит/с), которые включали 5-битный CRC, аналогичный 8-битному CRC в ATM. T1 – это протокол мультиплексирования с разделением по времени (TDM) с 24-байтными полезными данными, передаваемыми в 193-битном кадре. Первый бит каждого кадра содержит один бит из специальной последовательности. Приемник находит эту последовательность, последовательно определяя позицию бита в принимаемых данных, где бит из этой последовательности появляется каждые 193 байта. Для StrataCom было удобно сделать длину ячейки равной длине кадра T1, поскольку на рынке была доступна полезная интегральная схема формирования кадров T1 от Rockwell. Это устройство обнаруживало 193-битный кадр TDM и выдавало 24 байта в формате, который можно было эффективно использовать. Когда пришло время разработки европейского продукта, преимущество использования 24-байтных кадров превратилось в недостаток. Европейский формат E1 имеет 32-байтный кадр, из которых 30 байтов могут нести данные. Первое предложение команды разработчиков заключалось в использовании протокола HDLC для инкапсуляции последовательности 24-байтных ячеек в байтовый поток, собранный из 30-байтных полезных данных E1. Это было крайне неэффективно, поскольку HDLC имеет значительные и зависящие от данных накладные расходы. Впоследствии команда проекта пришла к выводу, что может строить структуру кадров на основе CRC. Была разработана схема, которая анализировала входящий байтовый поток, поступающий с устройства формирования кадров E1, и находила позицию байта, для которой значение CRC заголовка было постоянно верным. Эта команда также разработала более устойчивую к ошибкам версию этой методики. Смежная методика была запатентована в 1984 году. Эта методика использует CRC для поиска начала 50-битных кадров, состоящих из 36-битной полезной нагрузки данных, 13-битного CRC и однобитного индикатора начала кадра.
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.