DCN - Détection et correction d'erreur
Il existe de nombreuses raisons telles que le bruit, la diaphonie, etc., qui peuvent aider les données à être corrompues pendant la transmission. Les couches supérieures fonctionnent sur une vue généralisée de l'architecture du réseau et ne sont pas conscientes du traitement réel des données matérielles. Par conséquent, les couches supérieures s'attendent à une transmission sans erreur entre les systèmes. La plupart des applications ne fonctionneraient pas comme prévu si elles recevaient des données erronées. Les applications telles que la voix et la vidéo peuvent ne pas être affectées et, avec certaines erreurs, elles peuvent toujours fonctionner correctement.
La couche liaison de données utilise un mécanisme de contrôle d'erreur pour garantir que les trames (flux de bits de données) sont transmises avec un certain niveau de précision. Mais pour comprendre comment les erreurs sont contrôlées, il est essentiel de savoir quels types d'erreurs peuvent survenir.
Types d'erreurs
Il peut y avoir trois types d'erreurs:
Single bit error
Dans une trame, il n'y a qu'un seul bit, n'importe où cependant, qui est corrompu.
Multiple bits error
La trame est reçue avec plus d'un bit dans un état corrompu.
Burst error
La trame contient plus de 1 bits consécutifs corrompus.
Le mécanisme de contrôle des erreurs peut impliquer deux manières possibles:
Détection d'erreur
Correction des erreurs
Détection d'erreur
Les erreurs dans les trames reçues sont détectées au moyen du contrôle de parité et du contrôle de redondance cyclique (CRC). Dans les deux cas, quelques bits supplémentaires sont envoyés avec les données réelles pour confirmer que les bits reçus à l'autre extrémité sont identiques à ceux qu'ils ont été envoyés. Si la contre-vérification à l'extrémité du récepteur échoue, les bits sont considérés comme corrompus.
Contrôle de parité
Un bit supplémentaire est envoyé avec les bits d'origine pour faire un nombre de 1 soit pair en cas de parité paire, soit impair en cas de parité impaire.
L'expéditeur lors de la création d'un cadre compte le nombre de 1 qu'il contient. Par exemple, si une parité paire est utilisée et que le nombre de 1 est pair, un bit avec la valeur 0 est ajouté. De cette façon, le nombre de 1 reste pair. Si le nombre de 1 est impair, pour le rendre pair un peu avec la valeur 1 est ajouté.
Le récepteur compte simplement le nombre de 1 dans une trame. Si le compte de 1 est pair et que la parité paire est utilisée, la trame est considérée comme non corrompue et acceptée. Si le compte de 1 est impair et que la parité impaire est utilisée, la trame n'est toujours pas corrompue.
Si un seul bit bascule en transit, le récepteur peut le détecter en comptant le nombre de 1. Mais lorsque plus d'un bit est erroné, il est alors très difficile pour le récepteur de détecter l'erreur.
Contrôle de redondance cyclique (CRC)
CRC est une approche différente pour détecter si la trame reçue contient des données valides. Cette technique implique une division binaire des bits de données envoyés. Le diviseur est généré à l'aide de polynômes. L'expéditeur effectue une opération de division sur les bits envoyés et calcule le reste. Avant d'envoyer les bits réels, l'expéditeur ajoute le reste à la fin des bits réels. Les bits de données réels plus le reste sont appelés un mot de code. L'expéditeur transmet des bits de données sous forme de mots de code.
A l'autre extrémité, le récepteur effectue une opération de division sur les mots de code en utilisant le même diviseur CRC. Si le reste contient tous les zéros, les bits de données sont acceptés, sinon il est considéré comme une corruption de données s'est produite en transit.
Correction des erreurs
Dans le monde numérique, la correction d'erreur peut être effectuée de deux manières:
Backward Error Correction Lorsque le récepteur détecte une erreur dans les données reçues, il demande à l'expéditeur de retransmettre l'unité de données.
Forward Error Correction Lorsque le récepteur détecte une erreur dans les données reçues, il exécute un code de correction d'erreur, ce qui l'aide à récupérer automatiquement et à corriger certains types d'erreurs.
La première, la correction d'erreur en arrière, est simple et ne peut être utilisée efficacement que lorsque la retransmission n'est pas coûteuse. Par exemple, la fibre optique. Mais en cas de transmission sans fil, la retransmission peut coûter trop cher. Dans ce dernier cas, la correction d'erreur directe est utilisée.
Pour corriger l'erreur dans la trame de données, le récepteur doit savoir exactement quel bit de la trame est corrompu. Pour localiser le bit en erreur, des bits redondants sont utilisés comme bits de parité pour la détection d'erreur.Par exemple, nous prenons des mots ASCII (données 7 bits), puis il pourrait y avoir 8 types d'informations dont nous avons besoin: sept premiers bits pour nous dire quel bit est une erreur et un bit de plus pour dire qu'il n'y a pas d'erreur.
Pour m bits de données, r bits redondants sont utilisés. r bits peuvent fournir 2r combinaisons d'informations. Dans le mot de code m + r bits, il est possible que les r bits eux-mêmes soient corrompus. Ainsi, le nombre de r bits utilisés doit informer sur m + r emplacements de bits plus des informations sans erreur, c'est-à-dire m + r + 1.