Couche liaison de données
Les codes correcteurs d’erreurs
Chapitre 4:
1
Sommaire
❑Introduction ❑Contrôle d’erreur ❑Détection d’erreur ❑La détection par écho et la détection par répétition ❑ La détection par clé calculée (VRC, CRC…) ❑ La détection et correction d’erreur par code (code de
Hamming,…) ❑ Protocole HDLC
2
Introduction
Nous avons étudié jusque là, tous les mécanismes à mettre en œuvre pour transmettre un flot de bits entre deux systèmes distants Cependant, il ne suffit pas d’envoyer seulement l’information, mais il faut encore contrôler l’échange de données
On appelle protocole, un ensemble de conventions préétablies pour réaliser un échange fiable de données entre deux entités:
❑le contrôle de l’intégrité des données reçues ❑l’organisation et le contrôle de l’échange ❑éventuellement le contrôle de la liaison
3
Introduction
▪ Contrôle d’intégrité:
Lors d’une transmission de données, on doit assurer que les données reçues n’ont pas été altérées durant la transmission (fiabilité de transmission) Plusieurs facteurs peuvent modifier le contenu des données, les uns sont d’origine humaine: →le contrôle d’intégrité concerne alors la sécurité des données Les autres sont d’origine physique: →le contrôle d’intégrité porte alors le nom de contrôle d’erreur
- Les rayonnements électromagnétiques
- Les perturbations propres au système (bruit… )
Peuvent modifier les Informations transmises (bits erronés)
4
Contrôle d’erreur
▪ Notion d’erreur
On appelle taux d’erreur binaire ou BER(Bit Error Rate) le rapport entre le nombre d’informations (bits) erronées reçues et le nombre d’informations (bits) transmises
BER = Nb_bitsErronnés / Nb_bitsTransmises
Exemple:
o La suite transmise est : o La suite reçue est : o Nombre de bites transmise est: 24 o Nombre de bites erroné est: 3
Donc, BER = 3/24 = 0,125
→ Le taux d’erreur binaire varie en pratique de 10e–4 à 10e–9 (réseaux locaux)
5
Détection d’erreur
La détection d’erreur est les mécanismes mis en œuvre pour que le système destinataire puisse vérifier la validité des données reçues. La détection d’erreur repose sur l’introduction d’une certaine redondance dans l’information transmise
Pourquoi ? Des canaux de transmission imparfait entraînant des erreurs lors des échanges de données. Probabilité d’erreur sur une ligne téléphonique : P=10e-4 (cela peut même atteindre 10e-7). →Utilisation de méthodes de détection des erreurs et éventuellement de correction des erreurs.
6
Détection d’erreur
Méthodes mises en place au niveau de la couche 2 OSI (« liaison de données » ) Principe général :
❖Chaque suite de bits (trame) à transmettre est augmentée par une autre suite de bit dite de redondance ou de contrôle.
❖Pour chaque suite de k bits transmis, on ajoute r bits. On dit alors que l’on utilise un code C(n; k) avec n = k + r.
❖À la réception, on effectue l’opération inverse et les bits ajoutés ❖permettent d’effectuer des contrôles à l’arrivée.
→Quatre techniques peuvent être mises en œuvre pour détecter et éventuellement corriger les erreurs:
❖ La détection par écho
❖ La détection par répétition
❖ La détection par clé calculée (VRC, CRC…)
❖ La détection et correction d’erreur par code (code de Hamming,…)
7
Détection d’erreur
▪Détection par écho:
Principe Le récepteur renvoie en écho le message reçu à l’émetteur Si le message est différent de celui émis, l’émetteur retransmet le message Utilisation Cette technique est utilisée dans les terminaux asynchrones (Telnet,…)
▪Détection par répétition :
Principe Chaque message émis est suivi de sa réplique Si les deux messages sont différents, le récepteur demande une
retransmission Utilisation
Cette technique est utilisée dans les milieux sécurisés très perturbés et
dans certaines applications dites temps réel
8
Détection d’erreur
▪DÉTECTION PAR CLÉ CALCULÉE
Principe – Une information supplémentaire (clé) déduite des informations transmises est ajoutée à celles-ci – L’émetteur calcule une séquence de contrôle CTL1 par une opération mathématique appliquée au message à émettre et envoyée avec le message – Le récepteur recalcule la clé CTL2 en utilisant la même opération.
➢ si CTL1 identique à CTL2, ,alors le bloc est exact: ➢ sinon le bloc est rejeté
9
Détection d’erreurs par VRC
▪ Vertical Redundancy Check : ajout d’un bit de parité à chaque mot de code.
– Il consiste à ajouter un bit supplémentaire (appelé bit de parité) à un
certain nombre de bits de données appelé mot de code (généralement
7 bits, pour former un octet avec le bit de parité) dont la valeur (0 ou 1)
est telle que le nombre total de bits à 1 soit pair.
– Si le nombre de 1 dans le mot de code est impair, on ajoute un 1, sinon
on ajoute un 0.
– Vérification par redondance verticale ne permet de détecter que les
erreurs portant sur un nombre impair de bits. Cette méthode détecte les
erreurs dans 50% des cas.
10
Détection d’erreurs par VRC
– Toutefois, si deux bits (ou un nombre pair de bits) venaient à se modifier simultanément lors du transport de données, aucune erreur ne serait alors détectée… – Ce système de détection d’erreurs possède également l’inconvénient majeur de ne pas permettre de corriger les erreurs détectées (le seul moyen est d’exiger la retransmission de l’octet erroné…).
11
Détection d’erreurs par LRC
Longitudinal Redundancy Check : à partir de blocs de caractères munis de
leurs bits de parité, rangés dans les lignes d’un tableau, on calcule la parité
des colonnes et on transmet le résultat avec le message.
– Consiste non pas à contrôler l’intégrité des données d’un caractère,
mais à contrôler l’intégrité des bits de parité d’un bloc de caractères.
– Le LRC est lui-même protégé par un bit de parité VRC
12
Détection d’erreurs par LRC&VRC
– Soit « HELLO » le message à transmettre, en utilisant le code ASCII
standard. Voici les données telles qu’elles seront transmises avec les
codes de contrôle de parité croisé :
– Cette méthode détecte les erreurs dans 90% des cas.
13
Détection d’erreurs par LRC
14
Exemples 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 Parité longitudinale
1 1 1 0 1 0 0 Parité
verticale
Transmission sans erreurs
Parité 0 1 0 1 1 1 0
verticale
Parité 0 1 0 1 1 1 0
verticale 1 1 1 0 1 0 0
1 1 1 0 1 0 0 0 1 1 0 1 0 1
0 1 1 0 1 0 1 1 1 0 1 0 1 1
erreur
1 1 0 1 1 1 1 1 1 1 0 1 0 0
1 1 1 1 1 0 0 1 1 1 0 0 1 1
erreur
1 1 1 0 1 1 1 1 1 1 0 1 1 1
1 1 1 0 1 1 1
Parité
1 1 1 0 1 0 0
Parité
1 1 1 0 1 0 0 longitudinale
longitudinale
Détection mais pas de correction
Détection et Correction
erreur
erreur
15
Code polynomiaux ou cyclic redundancy code (CRC)
▪Redondance cyclique CRC (Cyclic Redundancy Check) parfois appelé aussi FCS
(Frame Check Sequence) : 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
16
▪ 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
1 1 0 1 0 1 1 0 1 1 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
17
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
18
▪ Exemple de codage CRC
1 1 0 1 0 1 1 0 1 1 0 0 0 0
1 0 0 1 1
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 0 0 1 1
1 1 0 0 0 0 1 0 1 0
1 1 0 1 0 1 1 0 1 1 1 1 1 0 Bits transmis
19
▪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
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
1 0 0 1 1
1 1 0 0 0 0 1 0 1 0
Pas d’erreur car le reste est nul
20
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
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
1 0 0 1 1
1 1 0 0 0 0 1 0 0 0
Erreur de transmission car le reste n’est pas nul
21
▪ Exemple:
Le plus simple est encore de prendre un exemple : prenons le message M de 14 bits suivant : 11010011101100
Prenons G(X) = X3 +X+ 1 (représenté en binaire par 1011).
Etant donné que G(X) est de degré 3, il s’agit d’ajouter 3 bits nuls à M :
M’ =11010011101100 000. Le CRC est égal au reste de la division de M’ par G :
Je viens de recevoir le code CRC suivants 100, est-il correct ?
22
Détection par code de Hamming
□ Structure d’un mot de code de Hamming:
❑ Le code de Hamming C(n,k) est constitué des k bits d’information et des r bits de redondance (de contrôle): c’est la séquence qui va être transmise. ❑ k appelé dimension du code = la taille du message
d’information. ❑ n appelé longueur du code = la taille du mot de code.code de Hamming
23
code de Hamming
❑ Les bits de contrôle de code transmis, ❑ Exemple: Code C(7,4)
❑ Efficacité=4/7=57% ❑ Le mot de code est:
Ci sont .
en position dans le mot
❑ Les bits du message Dj occupe le reste du code. ❑ On appelle efficacité ou rendement ou taux d’un
code le rapport:
2 iR =k nD3 D2 D1 C2 D0 C1 C0 Sens de la
transmission
24
code de Hamming
25
□ Construction du code de Hamming:
❑ On construit la matrice H appelée matrice de
contrôle comme suit:
= H ⎛ │││││⎝1 0 0
0 1 0
1 1 ⎞ │││││⎠(n-k) lignes
n colonnes ❑ Le mot de code est tel que:C
∙ H t= 0
code de Hamming
26
❑ Exemple: Code C(7,4)
H =
⎛ │││⎝10 0100011010101110111⎞
│││⎠⇒
C ∙ H t
= ( ) ∙ ⎧ │⎨│⎩=
C 0 C 1 D 0 C 2 D 1 D 2 D 3 ⎛│││││││││⎝0 1
0 1 1 1 ⎞ │││││││││⎠+ + 0 1 0 0 1 1 1 0 0 1 0 1 C
= D + D + D ⇒
0 0 1 3 C2 est calculé par rapport aux bits d’indices 5, 6, 7. ⇒
C1 est calculé par rapport aux bits d’indices 3, 6, 7. C0 est calculé par rapport aux bits d’indices 3, 5, 7. 2
1 2 3 1 1 0 C
1
= D 0 + D 2 + D 3 C D D D
code de Hamming
27
□ Détection et correction d’erreurs avec le code de Hamming:
❑ A la réception, on reçoit la séquence de code . On
effectue le produit:
❑ Si le produit est nul, alors la séquence de code a été
correctement transmise .
❑ Sinon, il y a des erreurs de transmission .
Et le résultat du produit indique la position de l’erreur en décimal.
C~
C ~
∙H t( C ~
= C ) ( C ~
≠ C )
code de Hamming
28
□ Exercice 1: On souhaite envoyer le message 1010. Quel est le mot de de Hamming à transmettre ?
⇒ k=4 → n=7 → On codera avec le code C(7,4).
⇒ C = D3 D2 D1 C2 D0 C1 C0 = 1 0 1 – 0 – –
⇒ C = 1 0 1 0 0 1 0
= + + = + + = On
a : 0
1 1 0 ⎧ │⎨│⎩C C C
1 2
0
= =
0 D 1 D 1 0 1 0 D 0 + D + 1 3 D 2 3 D 2 + D 3 = 0 + 0 + 1 = 1 D + D = + + =
code de Hamming
29
□ Exercice 2: Y-a-t-il une erreur dans le mot reçu suivant 1 0 1 0 1 1 0 ?
⇒ n=7 → le code qui a été utilisé est C(7,4). ⇒ La matrice de parité est la suivante:
H
=
⎛ │││⎝10 0100011010101110111⎞ │││⎠⇒ En effectuant le produit , on trouve un
reste non nul.
⇒ Il y a donc des erreurs.
C ~
∙H t
( code de Hamming 30
⇒ C~ ∙ H t= 001 ) , c’est à dire 1 en base 10.
⇒ Il y a donc une erreur à la position 1 du mot
reçu.
⇒ Le mot de code correct est: 1 0 1 0 1 1 1
1ier bit corrigé
code de Hamming
▪ Application:
Soit un mot de Hamming de longueur 15
❑Quels sont les bits de contrôle de parité ? ❑Quel est le message reçu ? ❑Est-ce que le message reçu correspond au message transmis ? ❑Quel a été le message transmis ?
31
code de Hamming
32
Application :
□ Soit le code de Hamming reçu suivant de longueur 15: 101101111011011 ❑ Quels sont les bits de contrôle de parité ?
1 0 1 1 0 1 1 1 1 0 1 1 0 1 1
D10 D9 D8 D7 D6 D5 D4 C3 D3 D2 D1 C2 D0 C1 C0
⇒ Les bits de contrôle sont: 1111.
❑ Quel est le message d’information reçu ?
⇒ Le message reçu est : 10110111010.
code de Hamming
33
❑ Est-ce que le message reçu correspond au message
transmis ?
⇒ La matrice de parité est de taille H(n-
k,n)=H(4,15). Le produit
⇒ Il y a une erreur dans le message reçu dans la
position 15.
C ~ ∙ H t= ( 1111 )
Code de bloc linéaires systématiques (m,n) 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.
34
– 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 ≤ d m1- 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
x
≤ d m 2
– 1
– 1
– 1
35
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 G Tavec
G T= [ Id m ]P La matrice G
Tde 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).
36
Au niveau réception:
1ere étape: Calcule du vecteur syndrome ST
S T = y T H avec H =
[ IdP r ] et y Tle 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
– Déduire la capacité de correction
x ≤ d( m – 1 /) 2 – Déduire les vecteurs erreurs possibles de poids x3eme é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é
37
Exemple:
Au niveau émission:
▪ Mot d’information: xT = [ x1 x2 x3 ] = [ 1 1 0 ]
G
T=
⌈│││││⌊0
1 1 ⌉ │││││⌋G T1 0 1 ▪ Matrice génératrice du code: =[ Id3 P] avec
p
1 1 0 ▪ Mot code YT correspondant au mot information xT
YT=XT
=
⌈ │││││⌊0
0 1 0 1 1 ⌉
│││││⌋Mot information Bits de redondance ▪ Calcule du vecteur syndrome ST ST = [ 1 1 1 0 1 1 ] 1 0 0 1 0 1 Y Tx T0
1 0 1 1 0 Y T = [ 1 1 0 0 1 1 ] Au niveau réception:
▪ Le mot de code reçu
Y T= [ 1 1 1 0 1 1 ] ⌈
│││││⌊101 001 011 110 010 100 ⌉ │││││⌋=[
0 1 1 ] 38
▪ Calcule de la distance de Hamming minimale dm
Mots informations
Mots codes
Poids de x1 x2 x3
x1 x2 x3 a1 a2 a3
Hamming dm = 30 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 1 1 3
0 1 0 0 1 0 1 1 0 3
1≤x
0 1 1 0 1 1 1 0 1 4
1 0 0 1 0 0 1 0 1 3
1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 4 4
3
Dans cette exemple le code de bloc ne peut corriger qu’une seule erreur
▪ Relier chaque syndrome à l’erreur correspondante
Vecteur erreurs Syndrome
1 0 0 0 0 0 1 0 1
▪ Déduire à partir du mot de code reçu mot code envoyé
0 1 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1 1
YT = [ mot code + Vecteur erreur ] mod(2)
0 0 0 1 0 0 1 0 0
0 0 0 0 1 0 0 1 0
= [ 1 1 1 0 1 1 ] + [ 0 0 1 0 0 0 ] mod(2)
0 0 0 0 0 1 0 0 1
= [ 1 1 0 0 1 1 ]
39
Couche Liaison de Données
❖Se place au dessus de la couche physique ❖Gère la liaison entre au moins 2 nœuds ayant la même couche
physique ❖Si plus de 2 ordinateurs, la liaison est multipoints ❖Son rôle consiste à émettre et recevoir des trames (suite de bits
structurée)
Services Possibles
→Service sans connexion, sans accuse de réception : souvent offert quand taux d’erreur faible, notamment dans les réseaux locaux (ex: Ethernet) →Service avec connexion, avec accuse de réception : les paquets seront reçus dans l’ordre d‘émission et une seule fois (ex:HDLC) →Service sans connexion, avec accuse de réception (optionnel) : plutôt offert quand la liaison est peu fiable (ex: transmission sans fil)
40
Couche Liaison de Données
▪ Contrôle de Flux
Réguler le flux de données entre un émetteur et un récepteur
❑Capacité de stockage ❑Capacité de traitement Plusieurs variantes de contrôle de flux à savoir : Protocole de type «envoyer et attendre»(Send and Wait)
❑Les données ne circulent que dans un sens ❑Une seule trame est envoyée à la fois ❑Le récepteur informe l’émetteur de son état par un acquittement
41
▪SEND AND WAIT:
Send and Wait Ou Envoyer et attendre
Retransmission Time Out (RTO) Ou Correction d’erreur sur temporisation
42
42
HDLC (High- Level Data Link Control)
HDLC exemple d’un protocole de niveau 2 Protocole point-à-point de référence normalisé par l’ISO. Utilisé dans de nombreux réseaux: LAN, Internet, GSM, …
Caractéristiques:
➢ Transmission synchrone ➢ Orienté bit ➢ Liaisons point-à-points ou multi-points ➢ Full Duplex ➢ Service offert: avec connexion Fonctions
➢ Etablissement et rupture de connexion ➢ L’échange de données ➢ Gestion des temporisateurs ➢ Gestion des erreurs ➢ Gestion du contrôle du flux
43
HDLC : Format de Trame
44
HDLC (High- Level Data Link Control)
01111110 Adresse Commande Données FCS 01111110 Fanion 8 bits 8 bits n bits 16 bits ou 32 bits Fanion Fanion (Flag) : Le fanion est un délimiteur de trame pour la synchronisation. Sa valeur est pour HDLC : 01111110. Les trames HDLC peuvent être envoyées les unes derrière les autres : dans ce cas, le fanion de fin de la première trame peut être mis en commun et servir de fanion de début pour la trame suivante.
Adresse : identifie la ou les stations concernées par l’échange. L’adresse est celle du destinataire à qui est envoyée la trame. Cette adresse était utilisée lorsque la communication était de type maître- esclave, l’adresse étant celle de l’esclave. En communication point-à- point, elle n’est pas utilisée.
45
HDLC (High- Level Data Link Control)
01111110 Adresse Commande Données FCS 01111110 Fanion 8 bits 8 bits n bits 16 bits Fanion 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) contient les données à envoyer 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 X^16 + x^12 + x^5 + 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 réalise l’opération lors de l’émission inverse.
un 0 dés qu’on lit cinq 1 de suite. A la réception 46
on
HDLC : Type de Trames
HDLC distingue trois types de trames, identifieés par le champ de commande:
❑trames I de données (Information) : données à transmettre,
❑trames S de supervision (Supervisory) : gestion des erreurs et du flux
❑trames U non numérotées (Unnumbered) : établissement et libération de la liaison.
47
HDLC : Trame 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:
3 bits 1 bit 2 bits 1 bit 1 bit
M5 M4 M3
P/F M2 M1 1 1 • La séquence M5M4M3M2M1 possède 32 valeurs possibles dont :
– 00111 signifie SABM (Set Asynchronous Balanced Mode) : établit une liaison en mode
équilibré.
– 10000 signifie SNRM (Set Normal Response Mode) : établit une liaison en mode de
réponse normale.
– 00011 signifie SARM (Set Asynchronous Response Mode) : établit une liaison en
mode de réponse asynchrone.
– 01000 signifie DISC (Disconnected) : demande de déconnexion.
– 01100 signifie UA (Unnumbered Acknowledgement) : acquitte une trame non
numérotée.
48 48
HDLC : Trame U
Connexion ➢ Le primaire demande l’établissement d’une liaison par l’envoi de trames non numérotées (U) de type SABM (Set Asynchronous Balanced Mode) , P=1 ➢ Le secondaire, s’il accepte la connexion, répond par la trame non numérotée UA (Unnumbered Acknowledgement), F=1 identique à celui du bit P. ➢La liaison est établie, l’échange d’informations peut donc commencer. Déconnexion ➢ Le primaire émet une demande de déconnexion DISC (DISConnect) , P est positionné indifféremment à 1 ou à 0. ➢ Le secondaire accuse la réception avec UA, F prend la même valeur du bit P de la trame DISC ➢ La liaison est rompue. ➢ L’échange de fanions se poursuit pour maintenir la synchronisation tant que la liaison physique n’est pas rompue.
49
HDLC : Trame U
50
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: 3 bit 1 bits 3bit 1bits
N (R) P/F N(S) T
– N(S) correspond au numéro de la trame émise (Sent Frame). – N(R) représente un acquittement indiquant le numéro de la prochaine trame attendue (Requested Frame).
– P/F signifie
Trame provenant de
P=0 L’initiateur n’attend pas de réponse à cette trame
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
51
TRAMES I
V(s): indique le numéro de la trame à émettre,
V(r): indique le numéro de la trame attendue
Après la phase de connexion les compteurs sont initialisés à zéro de chaque côté
N(S): numéro de la trame émise
N(R): acquittement des trames reçues indiquant le numéro de la prochaine trame attendue
52
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:
3 bits 1 bit 2 bits 1 bit 1 bit
N(R) P/F
S2 S1
0 1
0 1
- Le champ S2 S1 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) – 01 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) – 10 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)
53
TRAMES I et S
La temporisation de retransmission (T1 ou RTO, Retransmission Time Out), →A chaque trame I émise l’émetteur initialise le temporisateur T1. →Si, à l’échéance de ce temporisateur, l’émetteur n’a pas reçu de trame d’information ou d’acquittement de son correspondant, alors il réémet la trame supposée perdue. La temporisation d’acquittement (T2) →Correspond au délai maximum au bout du quel, le récepteur, s’il n’a pas de données à transmettre (il n’y a pas de trame I), doit envoyer un une trame S indique RR (Receive Ready) à son correspondant.
54
Gestion des Erreurs (TRAMES S)
Exemple de la reprise sur erreur ❑Supposons la trame 2 erronée, elle est ignorée par le récepteur.
❑La trame 3 est alors reçue hors séquence, elle est rejetée.
❑La machine B émet alors une trame de supervision de rejet (REJ: Reject) en indiquent à A à partir de quelle trame il doit reprendre la transmission [N(r) = 2].
❑Toutes les trames dont la valeur de Ns est supérieure à 2 sont alors rejetées (rejet simple).
❑La machine A reprend la transmission à partir de la trame2 (N(s)=2).
❑Si, suite à la trame erronée, A n’avait plus de données à émettre, alors B n’aurait pas détecté le déséquencement.
❑Dans ce cas, c’est A qui à l’échéance du temporisateur T1, aurait pris l’initiative de retransmettre la trame 2.
55
Le N° de la trame envoyé est Différent du N° de la trame attendue ⇒ B détecté le dé-séquencement ⇒ la trame sera rejetée
Gestion des Erreurs (TRAMES S)
A n’a pas des trames à envoyer après la trame erronée ⇒ A et après T1 retransmette la trame
56
Gestion de Flux (TRAMES S)
❑HDLC utilise le contrôle de flux implicite.
❑La fenêtre est paramétrée à l’installation du logiciel ou négociée lors de la connexion par le protocole de niveau supérieur.
❑En cas de saturation des tampons de réception, le récepteur, (la machine B) rejette la trame en excès et informe A de son incapacité temporaire à accepter de nouvelles données.
❑Il émet la trame S indique RNR (Receive Not Ready) avec le compteur Nr positionné au numéro de la trame reçue et rejetée.
57
Gestion de Flux (TRAMES S)
58
télécharger gratuitement Couche liaison de données Les codes correcteurs d’erreurs