Détection et correction des erreurs
Les réseaux doivent pouvoir transférer des données d'un appareil à un autre avec une précision acceptable. Pour la plupart des applications, un système doit garantir que les données reçues sont identiques aux données transmises. Chaque fois que des données sont transmises d'un nœud à l'autre, elles peuvent être corrompues au cours du passage. De nombreux facteurs peuvent modifier un ou plusieurs éléments d'un message. Certaines applications nécessitent un mécanisme de détection et de correction des erreurs.
Au niveau de la couche liaison de données, si une trame est corrompue entre les deux nœuds, elle doit être corrigée avant de poursuivre son voyage vers d'autres nœuds. Cependant, la plupart des protocoles de couche liaison rejettent simplement la trame et laissent les protocoles de couche supérieure gérer la retransmission de la trame. Certaines applications multimédia tentent cependant de corriger la trame corrompue.
Types d'erreurs
Chaque fois que des bits circulent d'un point à un autre, ils sont sujets à des changements imprévisibles en raison des interférences. Cette interférence peut changer la forme du signal. Le terme erreur sur un seul bit signifie que seul 1 bit d'une unité de données donnée (telle qu'un octet, un caractère ou un paquet) passe de 1 à 0 ou de 0 à 1. Le terme erreur de rafale signifie que 2 bits ou plus dans l'unité de données est passée de 1 à 0 ou de 0 à 1.
Une erreur en rafale est plus susceptible de se produire qu'une erreur sur un seul bit car la durée du signal de bruit est normalement plus longue que la durée de 1 bit, ce qui signifie que lorsque le bruit affecte les données, il affecte un ensemble de bits. Le nombre de bits affectés dépend du débit de données et de la durée du bruit. Par exemple, si nous envoyons des données à 1 kbps, un bruit de 1/100 seconde peut affecter 10 bits ; si nous envoyons des données à 1 Mbps, le même bruit peut affecter 10 000 bits.
Redondance
Le concept central dans la détection ou la correction des erreurs est la redondance. Pour pouvoir détecter ou corriger les erreurs, nous devons envoyer des bits supplémentaires avec nos données. Ces bits redondants sont ajoutés par l'expéditeur et supprimés par le destinataire. Leur présence permet au récepteur de détecter ou de corriger les bits corrompus.
Détection vs Correction
La correction des erreurs est plus difficile que la détection. Dans la détection d'erreurs, nous cherchons uniquement à voir si une erreur s'est produite. La réponse est un simple oui ou non. Nous ne sommes même pas intéressés par le nombre de bits corrompus. Une erreur sur un seul bit est la même pour nous qu'une erreur en rafale. En correction d'erreurs, nous avons besoin de connaître le nombre exact de bits qui sont corrompus et, surtout, leur emplacement dans le message. Le nombre d'erreurs et la taille du message sont des facteurs importants. Si nous devons corriger une seule erreur dans une unité de données de 8 bits, nous devons considérer huit emplacements d'erreur possibles ; si nous devons corriger deux erreurs dans une unité de données de même taille, nous devons considérer 28 (permutation de 8 par 2) possibilités. Vous pouvez imaginer la difficulté du récepteur à trouver 10 erreurs dans une unité de données de 1000 bits.