Vous êtes sur la page 1sur 20

Département Architecture des systèmes et des réseaux ISI

Chapitre 3:

Couche liaison de
données

1
Sommaire

 Codes détecteur et correcteur d’erreurs


 Codes de bloc linéaires systématiques
 Codes polynomiaux
 Protocole HDLC

2
Contrôle d’erreur
 Problème:
Les données peuvent être modifiées (ou perdues) pendant le transport

 La détection d’erreur:

Comment se rendre compte de la modification/pertes des données à


l’arrivée des trames ?

 La correction d’erreur, deux techniques :


– Comment corriger à l’arrivée les données erronées ? Apporter de la
redondance dans le message transmis afin que le récepteur régénère le
signal original en cas d’erreur
– Faire en sorte que l’émetteur, renvoie les trames erronées/perdues: la
récupération d’erreurs
3
Définitions et propriétés
 Définitions:
- Code (n,m): On fait correspondre à un message d’information formé de m
symboles une suite de n symboles constituant le mot code avec n> m.
- Code systématique: Si les mots codes sont representés par les m bits de
données plus r bits de contrôle (redondance) tel que m+r=n.
- Code de bloc: Si les bits de redondance sont calculés uniquement à partir des
bits d’information du bloc au quel ils appartiennent.
- Code de convolution ou de récurrence: Si les bits de redondance sont
calculés à partir des bits d’information appartenant à plusieurs blocs.
-Distance de Hamming: Étant donné deux mots codes de n bits m1 et m2, le
nombre de bits dont ils diffèrent est appelé leur distance de Hamming.
- Le poids de Hamming d'un mot code est le nombre d'éléments "1" qu‘il
contient. 4
- vecteur erreur: Les erreurs subies par un mot code peuvent être
représentées par un vecteur eT=[ e1, e2,, …, en ] ou ei prend la valeur 0 s’il n’y

pas d’erreur sur le bit d’indice i du mot code et la valeur 1 dans le cas contraire.
 Propriétés:
Capacité de détection: Un code de bloc est capable de détecter des
erreurs de poids x tels que x  dm 1
où dm désigne la distance de Hamming minimale entre les différents mots codes

Exemples:
Si dm=1 xmax = 0 ( car une erreur portant sur ce bit transforme un mot
de code valide en un autre mot de code valide )
Si dm=2 xmax = 1
( Possibilité de détection d’une erreur unique )

Capacité de correction: Un code de bloc est capable de corriger des erreurs


de poids x tels que dm 1
x
2
5
Code de bloc linéaires
systématiques (m,n)
Au niveau émission:

Si on designe par xT le mot information et yT le mot code associé on a:

y T  x T GT avec GT Idm P 

La matrice GT de dimension (m,n) appelée matrice génératrice du code est


composée d’une matrice identité (m,m) et d’une matrice P (m,r).

6
Au niveau réception:

1ere étape: Calcule du vecteur syndrome ST


S  yT H
T
avec  
P et
H  Id r

yT le mot code reçu

2eme étape (lorsque S T 0) : Détermination des vecteurs d’erreurs eT possibles

- Calculer la distance de Hamming minimale dm


x  ( dm 1) / 2
- Déduire la capacité de correction
- Déduire les vecteurs erreurs possibles de poids x

3eme étape: Détermination du vecteur erreur correspondant au syndrome ST

- Relier chaque syndrome à l’erreur correspondante S T e T H


- Déduire à partir du mot de code reçu le mot code envoyé

7
Exemple:
Au niveau émission:

 Mot d’information: xT = [ x1 x2 x3 ] = [ 1 1 0 ] 1 0 1



T
 Matrice génératrice du code: G =[ Id3 P] avec p  1 1 0
 
0 1 1
 Mot code YT correspondant au mot information xT 

1 0 0 1 0 1
YT T

 x 0 1 0 1 1 0
YT   1 1 0 0 1 1 
Y =X
T T GT
 
0 0 1 0 1 1 Mot information Bits de redondance

Au niveau réception:
T
 Le mot de code reçu Y  1 1 1 0 1 1  101
110
T 011
 Calcule du vecteur syndrome ST S [ 1 1 1 0 1 1 ] 10 0[ 0 1 1 ]
010
001
 
8
 Calcule de la distance de Hamming minimale dm
Mots informations Mots codes Poids de
x1 x 2 x 3 x1 x 2 x 3 a 1 a 2 a 3 Hamming dm = 3

000 000000 0
001
010
001011
010110
3
3
x1
011 011101 4
100 100101 3
101 101110 4 Dans cette exemple le code de bloc ne
110 110011 4 peut corriger qu’une seule erreur
111 111000 3

 Relier chaque syndrome à l’erreur correspondante

Vecteur erreurs Syndrome  Déduire à partir du mot de code


100000 101 reçu mot code envoyé
010000 110
001000 011 YT = [ mot code + Vecteur erreur ] mod(2)
000100 100
000010 010
= [ 1 1 1 0 1 1 ] + [ 0 0 1 0 0 0 ] mod(2)
000001 001
=[110011]
9
Code polynomiaux ou cyclic
redundancy code (CRC)

Codes les plus utilisés (à la fois dans les LAN et WAN)

Idée de base

– A toute séquence de « k » bits, on peut faire correspondre un polynôme de

degré « k - 1 » et de coefficients « 0 » ou « 1 » (ou inversement)

Exemple: Soit la séquence de k = 10 bits 1 1 0 1 0 1 1 0 1 1

Le Polynôme de degré k -1 = 9 associé à cette séquence est donné par

1x9+1x8+0x7+1x6+0x5+1x4+1x3+0x2+1x+1 =x9 + x8 + x6 + x4 + x3 + x + 1
10
 Supposons que les données soient transmises par bloc de « k » bits

– A chaque bloc correspond un polynôme M(x) de degré « k »

– Exemple pratique

1101011011 M(x) = x9 + x8 + x6 + x4 + x3 + x + 1
 Au départ, un émetteur et un récepteur doivent choisir un polynôme

générateur G(x) de degré inférieur à « k »

– Ce polynôme sera utilisé pendant toute la durée de la transmission

– Exemple de polynôme générateur G(x) = x4 + x + 1

– Polynôme générateur normalisés par le C.C.I.T.T:

» G(x) = x16 + x12 + x5 + 1

» Permet de détecter des erreurs de transmission avec une probabilité

supérieure à 0.999

11
Détection d’erreurs par le code CRC
 Codage à l’émission pour un bloc de « k » bits de données

– Multiplier M(x) par xr où « r » est le degré de G(x)


– Calculer le reste R(x) de la division modulo 2 de xr.M(x) par G(x)
– Ajouter R(x) à xr.M(x)
– Transmettre la séquence de « k + r » bits correspondante au polynôme
T(x) = xr.M(x) + R(x)

 Détection d’erreurs de transmission à la réception

– Soit U(x) le polynôme correspondant à la séquence de « k + r » bits reçus


– Calculer le reste de la division modulo 2 de U(x) par G(x)
– Si le reste est nul Pas d’erreur de transmission
– Si le reste est non nul Une erreur de transmission est détectée
12
 Exemple de codage CRC

1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1

1 0 0 1 1 1 1 0 0 0 0 1 0 1 0
0 1 0 0 1 1

1 0 0 1 1

0 0 0 0 0 1 0 1 1 0

1 0 0 1 1

0 0 1 0 1 0 0

1 0 0 1 1

0 0 1 1 1 0

1 1 0 1 0 1 1 0 1 1 1 1 1 0 Bits transmis

13
Exemple de décodage CRC ( Sans erreur de transmission )

1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1

1 0 0 1 1 1 1 0 0 0 0 1 0 1 0
0 1 0 0 1 1

1 0 0 1 1

0 0 0 0 0 1 0 1 1 1

1 0 0 1 1

0 0 1 0 0 1 1

1 0 0 1 1

0 0 0 0 0 0

Pas d’erreur car le reste est nul

14
Exemple de décodage CRC ( Avec erreur de transmission)

1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1

1 0 0 1 1 1 1 0 0 0 0 1 0 0 0
0 1 0 0 1 1

1 0 0 1 1

0 0 0 0 0 1 0 0 1 1

1 0 0 1 1

0 0 0 0 0 1 1 0

Erreur de transmission
car le reste n’est pas nul

15
Protocole HDLC
 Le protocole normalisé le plus classique rencontré dans la couche liaison
de données est le protocole HDLC ( High-level Data Link Control).
 Trois modes de fonctionnement spécifient la manière dont la
communication est gérée dans ce protocole:
 Le mode de réponse normale (NRM): la station secondaire ne peut
émettre que si elle a reçu l’autorisation de la station primaire.
 Le mode de réponse asynchrone (ARM): la station secondaire peut
émettre sans avoir reçu l’autorisation de la station primaire.
 Le mode de réponse asynchrone équilibré (ABM): les stations
concernées sont tour à tour primaire et secondaire, donc chaque
station participante peut à son tour être responsable de la gestion de la
transmission.

16
Structure des trames HDLC
01111110 Adresse Commande Données FCS 01111110

8 bits 8 bits n bits 16 bits ou 32 bits


Fanion Fanion

Champs de la trame
• Fanions : délimiteurs de trame
• Adresse : identifie la ou les stations concernées par l’échange
• Commande : contient l’information nécessaire à l’interprétation de la trame (voir plus loin)
• Données : une suite de bits généralement groupée en octets (128 à 512 pour Transpac)
• FCS (Frame Check Sequence) : séquence de détection d’erreurs égale au reste de la division du polynôme
associé aux différents champs de la trame par X16 + x12 + x5 + 1.
Rq: Pour assurer l’unicité de la configuration binaire du fanion à l’intérieur de la trame, on doit réaliser le
traitement de la transparence, qui consiste à insérer lors de l’émission un 0 dés qu’on lit cinq 1 de suite. A
la réception on réalise l’opération inverse.

17
TRAMES I
Les trames d’informations (I) sont utilisées pour le transfert de données et pour
l’acquittement de l’information, c’est le seul type de trame pour le quel le champ
de données n’est pas vide. Son champ commande est structuré de la manière
suivante: 1 bit 3 bits 1bit 3bits

0 N(S) P/F N (R)


- N(S) correspond au numéro, modulo 8, de la trame émise (Sent Frame).
- N(R) représente un acquittement « collectif » en indiquant le numéro de la
prochaine trame attendue (Requested Frame).

- P/F signifie
P=0 L’initiateur n’attend pas de réponse à cette trame
Trame provenant de
l’initiateur de l’échange P=1 L’initiateur attend une réponse à cette trame

Trame transmise à F=0 Le secondaire n’a pas terminé d’émettre des trames
l’initiateur de l’échange F=1 Le secondaire a terminé ses envois de trames

18
TRAMES S
Les trames de supervision (S) sont utilisées pour acquitter les trames
d’information, pour la gestion des erreurs et pour le contrôle de flux. Le champ
données est vide et le champ commande set structurée de la manière suivante:
1 bit 1 bit 2 bits 1 bit 3 bits

1 0 S1 S2 P/F N(R)
• Le champ S1 S2 possède 4 valeurs :
– 00 signifie RR (Received & Ready) : prêt à recevoir de nouvelles trames.
 confirme la réception des trames de données de n°< N(R) et demande la réception
des trames suivantes (trame d’acquittement)
– 10 signifie RNR (Received & Not Ready) : pas prêt à recevoir de nouvelles trames.
 confirme la réception des trames de données de n°< N(R) et interdit la transmission
des trames suivantes (trame de contrôle de flux)
– 01 signifie REJ (Reject) : rejet non sélectif
 confirme la réception des trames de données de n°< N(R) et demande la
retransmission des trames de n°>= N(R) (trame de protection contre les erreurs)
– 11 signifie SREJ (Selctive Reject) :rejet sélectif
 confirme la réception des trames de données de n°< N(R) et demande la
retransmission de la trame n°= N(R) (trame de protection contre les erreurs) 19
TRAMES U
Les trames non numérotées (U) ont pour rôle de gérer la mise en place et le
relâchement de la connexion. Elles sont sans champ N(S) ou N(R) et ne
permettent pas de faire un acquittement. Leur champ données est vide et leur
champ commande est structuré de la manière suivante:
1 bit 1 bit 2 bits 1 bit 3 bits

1 1 M1 M2 P/F M3 M4 M5
• La séquence M1M2M3M4M5 possède 32 valeurs possibles dont :
– 11100 signifie SABM (Set Asynchronous Balanced Mode) : établit une liaison en mode équilibré.
– 00001 signifie SNRM (Set Normal Response Mode) : établit une liaison en mode de réponse
normale.
– 11000 signifie SARM (Set Asynchronous Response Mode) : établit une liaison en mode de
réponse asynchrone.
– 00010 signifie DISC (Disconnected) : demande de déconnexion.
– 00110 signifie UA (Unnumbered Acknowledgement) : acquitte une trame non numérotée.

20

Vous aimerez peut-être aussi