Détection et correction des erreurs de transmission Les erreurs existent Inductions électromagnétiques Qualité des composants Les lignes peuvent avoir un taux d’erreurs de à Ces erreurs sont inacceptables, On peut protéger les données (blindage) On peut vérifier à la réception
La parité (appelée parfois VRC, pour Vertical Redundancy Check) Parité paire : on ajoute un bit (0 ou 1) pour que le nombre de 1 d’une transmission soit pair. Parité impaire : on ajoute un bit pour que le nombre de 1 d’une transmission soit impair. Ce système ne détecte qu’une partie des erreurs.
Un exemple de code correcteur : la double parité Chaque caractère est codé sur une ligne d’un tableau, on effectue ensuite sur chaque bloc de k caractères, un contrôle de parité sur chaque ligne et chaque colonne. S’il y a une erreur, alors les bits de parité de la ligne et de la colonne correspondantes seront faux, donc l’erreur sera à la fois détectée et localisée, donc corrigée.
Une erreur a été détectée dans la première ligne, mais également dans la quatrième colonne. Le bit en rouge a donc été altéré, il faut le corriger en 0. S’il y a deux erreurs sur la même ligne (ou colonne), alors on ne peut plus corriger !
Un code détecteur plus efficace : CRC(Cyclic Redondant Coding) Un message de m bits est vu comme la liste des coefficients d’un polynôme de degré m -1. La théorie des polynômes va nous permettre d’effectuer des opérations sur le message et ainsi de détecter d’éventuelles erreurs de transmission. Exemple:
Méthode de codage et de décodage Choix d’un polynôme, dit polynôme générateur, noté G(x), dont on notera le degré r soit m le message et M(x) le polynôme correspondant.
CRC-12 : X 12 + X 11 + X 3 + X 2 + X + 1 CRC-16 : X 16 + X 15 + X CRC CCITT V41 : X 16 + X 12 + X (Ce code est notamment utilisé dans la procédure HDLC.) CRC-32 (Ethernet) : = X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1 CRC ARPA : X 24 + X 23 + X 17 + X 16 + X 15 + X 13 + X 11 + X 10 + X 9 + X 8 + X 5 + X 3 + 1