Transmission Données Chapitre4 PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 58

Chapitre 4:

Couche liaison de données


Les codes correcteurs d’erreurs

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 Peuvent modifier les Informations
• Les perturbations transmises (bits erronés)
propres au système
(bruit... )
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…)
7
 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
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
Parité
Exemples 0
1
1
1
0
1
1
0
1
1
1
0
0
0 verticale
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

Transmission sans erreurs


Parité Parité
0 1 0 1 1 1 0 verticale 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 erreur
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
1 1 1 0 1 0 0 1 1 1 0 1 0 0
Parité Parité
longitudinale longitudinale
erreur
Détection mais pas de correction Détection et Correction
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

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

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

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

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

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

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

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

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
code de Hamming
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.

23
code de Hamming
 Les bits de contrôle Ci sont en position 2i dans le mot
de code transmis, .
 Les bits du message Dj occupe le reste du code.
 On appelle efficacité ou rendement ou taux d’un
code le rapport:
k
R
n
 Exemple: Code C(7,4)

 Efficacité=4/7=57%
 Le mot de code est:
Sens de la
D3 D2 D1 C2 D0 C1 C0 transmission
24
code de Hamming
25

 Construction du code de Hamming:

 On construit la matrice H appelée matrice de


contrôle comme suit:

 0 0  1
 
 0   
H  (n-k) lignes
 1  
 
 1 0  1
 
n colonnes
 Le mot de code est tel que:

CHt  0
code de Hamming
26

 Exemple: Code C(7,4) 0 0 1


 
0 1 0
 0 0 0 1 1 1 1 0 1 1
   
H   0 1 1 0 0 1 1  C  H t  C0 C1 D0 C2 D1 D2 D3    1 0 0
 1 0 1 0 1 0 1 1
   0 1 
C2  D1  D2  D3 1 1 0
  
 C1  D0  D2  D3 1 1 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.
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 C . On
effectue le produit:
~ t
CH
 Si le produit est nul, alors la séquence de code a été
correctement transmise C~  C .
 
~

 Sinon, il y a des erreurs de transmission C  C . 
Et le résultat du produit indique la position de l’erreur
en décimal.
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
=101–0––

C2  D1  D2  D3  1  0  1  0

On a : C1  D0  D2  D3  0  0  1  1
C  D  D  D  0  1  1  0
 0 0 1 3

 C=1010010
code de Hamming
29

 Exercice 2: Y-a-t-il une erreur dans le mot reçu suivant


1010110?

 n=7  le code qui a été utilisé est C(7,4).


 La matrice de parité est la suivante:
 0 0 0 1 1 1 1
 
H   0 1 1 0 0 1 1
 1 0 1 0 1 0 1
 
~ t
 En effectuant le produit C  H , on trouve un
reste non nul.

 Il y a donc des erreurs.


code de Hamming
30

~ t
 C  H  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-


~ t
k,n)=H(4,15). Le produit C  H  0000

 Il n’y a pas d’une erreur dans le message reçu.


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  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
d m  1
x 
2
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 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).

36
Au niveau réception:

1ere étape: Calcule du vecteur syndrome ST

 
S  yT H
T
avec  
H  IdP r et yT le mot code reçu

2eme étape (lorsque S T 0) : Détermination des vecteurs d’erreurs e T 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 x

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

- Relier chaque syndrome à l’erreur correspondante S T eT 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 ] 1 0 1



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

1 0 0 1 0 1
T T

Y  x 0 0
YT   1 1 0 0 1 1 
YT=XT GT 1 0 1 1
 
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 10 1
11 0
T 011
 Calcule du vecteur syndrome ST S [ 1 1 1 0 1 1 ] 10 0[ 0 1 1 ]
010
001
 
38
 Calcule de la distance de Hamming minimale d m
Mots informations Mots codes Poids de
x1 x2 x3 x1 x2 x3 a1 a2 a3 Hamming dm = 3

000 000000 0
001 001011 3
010 010110 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
= [ 1 1 1 0 1 1 ] + [ 0 0 1 0 0 0 ] mod(2)
000010 010
000001 001 =[110011]
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 Retransmission Time Out (RTO)


Ou Ou
Envoyer et attendre Correction d’erreur sur temporisation 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

8 bits 8 bits n bits 16 bits ou 32 bits


Fanion 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-à-
45
point, elle n'est pas utilisée.
HDLC (High- Level Data Link Control)
01111110 Adresse Commande Données FCS 01111110

8 bits 8 bits n bits 16 bits


Fanion 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 lors de l’émission un 0 dés qu’on lit cinq 1 de suite. A la réception on
46
réalise l’opération inverse.
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
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
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

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
• 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
Gestion des Erreurs (TRAMES S)

Le N° de la trame envoyé est


A n’a pas des trames à envoyer après la
Différent du N° de la trame attendue
trame erronée
⇒ B détecté le dé-séquencement
⇒ A et après T1 retransmette la trame
⇒ la trame sera rejetée 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

Vous aimerez peut-être aussi