Cyklická redundantní kontrola
(Cyclic Redundance Check - CRC)

Ke k-bitovému rámci generuje vysílač n-bitovou posloupnost (kontrolní posloupnost rámce FCS) tak, aby celých k+n bitů (FCS se připojí za původní rámec a přenáší se k+n bitová posloupnost) bylo beze zbytku dělitelných stanoveným číslem (nenulový zbytek je indikace chyby).
Generování FCS jakožto i kontrola na přijímací straně se obvykle provádí hardwarově.


Následující výklad je spíše populární (má velmi zjednodušený matematický aparát), pro úvod do problému ale snad postačuje.

M i P jsou posloupnosti bitů, na každý bit se nahlíží jako na koeficient polynomu proměnné x.

Např.: pro zprávu M=11001001 bude polynom

a pro stanovený n+1 bitový dělitel P=1101 bude polynom

Pro uvedenou zprávu vysílač vygeneruje R:
M se vynásobí 2 n (posune o n bitů doleva) výsledek se vydělí P, podíl je Q (ten není pro náš účel zajímavý) a zbytek R (ten je n-bitový, v tomto konkrétním příkladě 3-bitový) se použije jako FCS.
Formálně: a pro konkrétní příklad: Vysílá se posloupnost T, kterou lze formálně zapsat jako konkrétně: Na přijímací straně kontrolujeme, zda T je beze zbytku dělitelné P. Nenulový zbytek po dělení přijatého bloku dat smluveným polynomem signalizuje chybu při přenosu.

Pro Ethernet je podle IEEE 802 předepsáno používání polynomu:

tento polynom generuje FCS o délce 32 bitů. (Pro diskety se dle CCITT používá 10001000000100001, pro magnetické pásky 10001000000000101.)

Lze dokázat, že pomocí CRC se detekují:


© Roupec 4.4.1998