Введение

Код обнаружения ошибок, используемый в протоколах связи

Последовательность проверки фрейма (FCS) — это код обнаружения ошибок, добавляемый к фрейму в протоколе связи. Фреймы используются для передачи данных полезной нагрузки от отправителя к получателю.

Цель

Все кадры, а также биты, байты и поля, содержащиеся в них, подвержены ошибкам, возникающим из различных источников. Поле FCS содержит число, которое исходный узел вычисляет на основе данных в кадре. Это число добавляется в конец отправляемого кадра. Когда целевой узел получает кадр, число FCS пересчитывается и сравнивается с числом FCS, включенным в кадр. Если эти два числа не совпадают, предполагается наличие ошибки, и кадр отбрасывается. FCS обеспечивает только обнаружение ошибок. Восстановление после ошибок должно выполняться другими способами. Например, Ethernet определяет, что поврежденный кадр следует отбросить, и не предусматривает никаких действий для его повторной передачи. Другие протоколы, в частности протокол управления передачей (TCP), могут обнаружить потерю данных и инициировать повторную передачу и восстановление ошибок.

Реализация

FCS часто передается таким образом, что приемник может вычислять накопленную сумму по всему кадру, включая завершающий FCS, и ожидать фиксированный результат (например, ноль) при корректной передаче. Для Ethernet и других протоколов IEEE 802 стандарт определяет, что данные передаются, начиная с младшего бита, а FCS – с старшего бита (бит 31). Альтернативным подходом является генерация инверсии битов FCS, чтобы инвертированный FCS также можно было передавать, начиная с младшего бита (бит 0). Подробную информацию можно найти в [ссылка].

Типы

Самым популярным алгоритмом FCS является циклический избыточный код (CRC), используемый в Ethernet и других протоколах IEEE 802 с 32 битами, в X.25 с 16 или 32 битами, в HDLC с 16 или 32 битами, в Frame Relay с 16 битами, в протоколе Point-to-Point (PPP) с 16 или 32 битами, а также в других протоколах канального уровня. Протоколы семейства интернет-протоколов обычно используют контрольные суммы.