Vous êtes sur la page 1sur 5

Ministère de l’Enseignement Supérieur, de la

Recherche Scientifique et des Technologies de Niveau 1 ére L.BI


l’Information et de la Communication *******************
Université Libre de Tunis A.U. 2019-2020, Semestre 2
*******************

Fondements des Réseaux

Chapitre4: Les procédures de liaison

1. Constitution des trames :


Les données reçues de la couche réseau sont des paquets de données complexes provenant
d’une application de la machine émettrice et destinés à une application ciblée du récepteur. La
couche liaison de données a donc pour premier rôle de mettre ces paquets sous une forme
acceptable par la couche physique. Ces entités élémentaires sont appelées trames.
Pour que le récepteur soit capable de reconstituer les trames à partir d’une chaîne binaire
provenant du support physique, il faut convenir d’un format de trame entre les deux
extrémités. Plusieurs techniques sont, ou ont été utilisés :
- La taille en bits d’une trame est fixée.
- La taille de la trame est transmise au destinataire
- Des fanions sont utilisés pour repérer le début et la fin de la trame : une suite
binaire particulière, connue de l’émetteur et du récepteur, est placée aux deux
extrémités de la trame. Le fanion le plus classique est 01111110.

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

2. Gestion des erreurs de transmission :

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.

Avantage : limiter la quantité de données insérées (un seul bit)


Inconvénient : elle n’est pas très fiable.
- Si par exemple, un bit à 0 est modifié à 1, et un autre bit passe de 1 à 0, le
récepteur ne détecte pas d’erreur. Plus généralement, si plusieurs erreurs
surviennent dans la trame, le contrôle est difficile.
- Si une erreur survient sur le bit de parité, la vérification est faussée.

2.2. Code CRC (Code de redondance cyclique ou code polynomial) :

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

On obtient alors le polynôme 10111000.

On réalise alors la division du polynôme résultant par le polynôme générateur.

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.

2.3. Code de Hamming : (code correcteur) :

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é).

Détection et correction d'erreur


–à la réception d'un message, on effectue le contrôle de parité sur les bits de contrôle
–Capacité de détection et de correction d'une seule erreur !

A la réception, les différents tests de parité sont effectués.


Lors de la réception d‘un message, le contrôle de parité se fait de la même manière et la
somme des numéros d‘ordre des bits de contrôle qui sont en erreur donne le numéro d‘ordre
du bit en erreur.

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}

On suppose à la réception on a: 10011001100

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.

Vous aimerez peut-être aussi