CoursDocuments

transmission des données : Couche liaison de données Les codes correcteurs d’erreurs

 

 

Couche liaison de données 

Les codes correcteurs d’erreurs 

Chapitre 4: 

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 

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 

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) 


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) 


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


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,…) 


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 

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é 

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:

H t= 0 

code de Hamming 

26 

Exemple: Code C(7,4) 

H

⎛ │││⎝10 0100011010101110111⎞ 

│││⎠⇒ 

C H

= ( ) ⎧ │

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

= 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.

1 2 3 1 1 0

= 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 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: 

⎛ │││⎝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

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 C

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 

d m

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

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 S

S T = y T H avec H

[ IdP r ] et yTle mot code reçu 2eme étape (lorsque

T≠0) : Détermination des vecteurs d’erreurs eT possibles 

– Calculer la distance de Hamming minimale d

– 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 S

– 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 ] 

T

⌈│││││⌊

1 1 ⌉ │││││⌋G T1 0 1 ▪ Matrice génératrice du code: =[ Id3 P] avec 

1 1 0 ▪ Mot code YT correspondant au mot information x

YT=X

⌈ │││││⌊

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 T

1 0 1 1 0 Y T = [ 1 1 0 0 1 1 ] Au niveau réception: 

▪ Le mot de code reçu 

YT= [ 1 1 1 0 1 1 ] ⌈ 

│││││⌊101 001 011 110 010 100 ⌉ │││⌋=

0 1 1 ] 38 

▪ Calcule de la distance de Hamming minimale d

Mots informations 

Mots codes 

Poids de x1 x2 x

x1 x2 x3 a1 a2 a

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≤

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 

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

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

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

50 

TRAMES

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

  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

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

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

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité