Cyclic Redundancy Check – Clé de contrôle permettant de déterminer si la transmission a subi une erreur (contrôle de parité).
Le CRC donne une indication sur la validité d’une trame. La valeur du champ CRC de chaque trame est le résultat d’un calcul effectué sur l’ensemble des bits de la trame. Le récepteur effectue le calcul puis compare le résultat obtenu avec la valeur du champ CRC reçu. S’il y a divergence, la trame est considérée comme corrompue et une réémission est requise par le récepteur. Le taux de CRC est directement lié à la qualité du câblage mis en oeuvre dans la liaison. A titre de repère, un réseau qui accuse un taux d’erreur de trame (taux de CRC) de 1% est un réseau qui n’atteint que 20% de son débit maximal. La dégradation des performances en fonction du taux d’erreur CRC n’est pas proportionnelle mais exponentielle.
Le contrôle de redondance cyclique consiste à protéger des blocs de données. A chaque trame est associé un bloc de données, appelé code de contrôle. Le principe du CRC consiste à traiter les séquences binaires comme des polynômes binaires, c’est-à-dire des polynômes dont les coefficients correspondent à la séquence binaire.
Dans ce mécanisme de détection d’erreur, un polynôme prédéfini (appelé polynôme générateur et noté G(X)) est connu de l’émetteur et du récepteur. La détection d’erreur consiste pour l’émetteur à effectuer un algorithme sur les bits de la trame afin de générer un CRC, et de transmettre ces deux éléments au récepteur. Il suffit alors au récepteur d’effectuer le même calcul afin de vérifier que le CRC est valide.
Les polynômes générateurs les plus couramment employés sont CRC-12, CRC-16, CRC CCITT V41 (LDLC), CRC-32 (Ethernet) et CRC ARPA.
