Académique Documents
Professionnel Documents
Culture Documents
Remarque :
Les données binaires transmises peuvent contenir la suite correspondant au fanion. Dans ce
cas on va masquer toutes les suites bain aires semblables au fanion en insérant lors de
l’émission un 0 dés que l’on lit cinq 1de suite. Cette méthode est appelée traitement de la
transparence binaire.
Exemple :
Chaîne binaire à émettre : 001101111110101111101
Chaîne binaire à émettre après traitement de la transparence binaire :
00110111110101011111001
Message binaire émis par l’interface réseau émettrice après ajout des fanions de début et de
fin : 011111100011011111010101111100101111110
Chaîne binaire avant traitement de la transparence binaire :
00110111110101011111001
Chaîne binaire transmise à la couche de niveau supérieur :
001101111110101111101
Le support physique n’est pas parfait et des problèmes (pertes, corruption) peuvent survenir
au cours de la transmission d’une trame entre deux machines. La couche liaison de données
est donc chargée de rendre ces problèmes d’erreurs transparents aux couches de niveau
supérieurs.
Remarque : La trame est formée alors de m bits de données et de r bits de contrôle. Si n (n =
m+r) est la longueur de la trame, l’ensemble des n bits sera appelé mot de code.
1
2.1. Méthode bit de parité :
Cette méthode utilise un seul bit de contrôle de la chaîne binaire. Elle consiste à envoyer des
trames qui contiennent toujours un nombre de 1 pair. Si avant d’émettre on constate que ce
n’est pas le cas, le bit de parité est positionné à 1. Dans le cas contraire, il reste à 0.
C’est la méthode utilisée dans la majeure partie des réseaux locaux. Ce code est basé sur le
fait que toute chaîne binaire permet de construire un polynôme, chacun des bits donnant sa
valeur au coefficient polynomial correspondant.
La mise en place du code CRC nécessite de choisir un polynôme dit générateur noté G(x) de
degré r qui va permettre le contrôle.
L’algorithme :
- Ajouter r zéros après le bit de poids faible du bloc de données (P r(x) contient ainsi
m+r bits).
- Avant émission de données binaires, l’émetteur effectue une division polynomiale
du polynôme correspondant à ces données (après l’ajout des r zéros) par le
générateur G(x).
- Le reste de cette division est alors concaténé aux données : ce reste est appelé
champ de contrôle d’erreur.
- A la réception de la trame, le polynôme constitué à partir des données et du champ
de contrôle est divisé par le générateur G(x) :
o si le résultat de cette division présente un reste nul, le récepteur en déduit
qu’aucune erreur n’est survenue ;
o dans le cas contraire, il demande à l’émetteur de lui transmettre à nouveau la
trame.
Remarque :
L’arithmétique polynomiale est faite modulo 2. Il n’y a pas de retenue dans l’allocation ni
dans la soustraction. Faire une addition ou une soustraction équivaut à effectuer un OU
EXCLUSIF entre les opérandes.
Exemple : la suite 0101 sera associée au polynôme 0x3 + 1x2 + 0x1 + 1x0 c'est-à-dire x2 + 1.
Soit la chaîne binaire 10111 à émettre. On veut calculer le champ de contrôle d’erreur selon le
codage CRC. Avec un polynôme générateur G(x)= x3 + 1: 1001.
G(x) est de degré 3 : on ajoute donc 3 bits de valeur 0
2
10111000 |1001
1001 |--------
0101 | 10101
0000 |
1010 |
1001 |
0110 |
0000 |
1100 |
1001 |
101 |
Le reste de la division est la chaîne 101 : la trame émise par l’émetteur sera 10111101.
Supposons ici qu’une erreur est apparue sur la 5 ième bit : la chaîne binaire reçue est
10110101. Pour détecter une éventuelle erreur, la chaîne reçue est divisée par G(x).
10110101 | 1001
1001 |-------
0100 | 10100
0000 |
1001 |
1001 |
0000 |
0000 |
0001 |
0000 |
001 |
Le reste 001 n’est pas nul, une erreur est donc apparue : une demande de retransmission est
donc soumise à l’émetteur.
Distance de Hamming
Etant donné deux mots de code (d bits de données + c bits de contrôle), pour trouver combien
de bits ils diffèrent il suffit d’effectuer un OU EXCLUSIF entre les deux mots de code et de
compter le nombre de 1 du résultat. Ce nombre de bits de différence est appelé distance de
Hamming.
Exemple : 10001001 et 10000001 => distance de Hamming = d = 1.
La distance de Hamming d’un code C est la distance minimale entre deux mots du code
= min {Dist(x,y) / x € C et y € C}
Principe du code de Hamming
– On ajoute les c bits de contrôle (de parité) aux d bits de données.
– les bits de contrôle sont placés aux positions représentant des puissances de 2
– les bits de données sont intercalés
– On numérote les bits de chaque mot de code à partir de 1.
3
Calcul des bits de contrôle
–Le bit de donnée sj est contrôlé par les bits dont les positions sont les coefficients de la
décomposition binaire de j.
–Le bit de contrôle ci (en position i) est choisi de telle sorte que la somme des bits qu'il
contrôle (ainsi que lui-même) fasse 0 modulo 2 (contrôle de parité).
Exemple :
La liste des bits de parité contrôlant un bit donné est fournie par sa représentation binaire
•1110 =10112
Le bit 11 est contrôlé par c3 , c1 et c0
•1010 =10102
Le bit 10 est contrôlé par c3 et c1
•910 =10012
Le bit 9 est contrôlé par c3 et c0
•810 =10002
Le bit 8 est contrôlé par c3 (lui-même)
•710 =01112
Le bit 7 est contrôlé par c2 , c1 et c0
•...
La liste des bits contrôlée par chaque bit de parité est donc sur notre exemple :
•c0 :{1,3,5,7,9,11}
•c1 :{2,3,6,7,10,11}
•c2 :{4,5,6,7}
•c3 :{8,9,10,11}
4
Apres refaire le test de parité : On aura
c0 :1 faux
c1 : 1 faux
c2 :1 ok
c3 :1 ok
La position du bit en erreur est 20 + 21 = 3.