Frame check sequence
Le frame check sequence (FCS, Séquence de vérification de trame) est un code de détection d'erreurs ajouté à la fin des trames d'un protocole de communication à commutation de paquets, par exemple une trame Ethernet.
Le FCS détecte de possible erreurs lors de la transmission de trames, cependant ce n'est pas un code correcteur. Dans le cas d'Ethernet (norme IEEE 802.3), si des erreurs sont détectées, elles ne sont pas corrigées, la trame entière est rejetée et aucun message de demande de retransmission n'est envoyé. Ces fonctions devront être effectuées par d'autres protocoles, par exemple par Transmission Control Protocol (TCP).
Le FCS peut être de différents types, le plus souvent un contrôle de redondance cyclique (CRC). Mathématiquement, c'est le reste de la division modulo 2 de la trame par un polynôme de degré N (par exemple pour le protocole HDLC, un polynôme de degré 16, d'où un FCS de 16 bits). Le récepteur effectue la division de la trame reçue (trame + FCS) par le même polynôme. Si le reste de cette division est 0, il n'y a pas eu d'erreur dans la transmission.
C. Berrou et A. Glavieux décident d’associer de manière originale deux codes simples et déjà connus, mais alors considérés comme ayant peu d’intérêt. Ils obtiennent ainsi un code composite à deux dimensions, qui va se révéler être d’une grande efficacité pour la correction d’erreurs. Pour décoder le code composite, ils procèdent en plusieurs étapes. Ils décodent d’abord chaque code élémentaire puis, en s’inspirant du principe de la contre-réaction, ils renouvellent le processus de décodage. Ils constatent alors qu’à chaque étape ou itération supplémentaire de décodage de nouvelles erreurs sont corrigées. Après environ une vingtaine d’itérations, la limite théorique de Shannon est pratiquement atteinte.