Vous êtes sur la page 1sur 16

Chapitre 4 : LIAISON DE DONNEES

Chapitre 4 : LIAISON DE DONNEES

Après avoir étudié ce chapitre, l’étudiant sera en mesure de :

- Discuter de la structure et de l’utilité des trames de données.


- Connaître les techniques pour identifier et corriger les erreurs de
transmission.
- Décrire les différents protocoles de liaison de données.
- Expliquer deux cas pratiques de protocoles de liaison de données : les
protocoles BSC et HDLC.

Page 60
Chapitre 4 : LIAISON DE DONNEES

1. Présentation
La couche liaison de données fournit les moyens fonctionnels et procéduraux nécessaires à
l'établissement, au maintien et à la libération des connexions de liaison de données entre
entités du réseau. Elle détecte et corrige, si possible, les erreurs dues au support physique et
signale à la couche réseau les erreurs irrécupérables. Elle supervise le fonctionnement de la
transmission et définit la structure syntaxique des messages, la manière d'enchaîner les
échanges selon un protocole normalisé ou non (voir Fig.4.1.).

Fig.4.1. : Le rôle de la couche liaison de données

La couche liaison de donnée assure les fonction suivantes :

• Elle est responsable des transfert sans erreurs des trames, ce qui nécessite l’implantation
de code de détection et/ou de correction d’erreurs.
• Elle est responsable du contrôle de flux de protocole en proche (entre deux voisins
directs).
• Elle assure le séquencement des informations (numérotation des trames).

La fonction de cette couche est alors de transmettre des données entre les entités homologues
d’un système source et d’un système destinataire adjacents de manière fiable et efficace (voir
Fig.4.2.).

Utiliser un circuit de transmission de données et le transformer en une liaison de


données efficace qui paraît exempte d’erreurs de transmission

Page 61
Chapitre 4 : LIAISON DE DONNEES

Fig.4.2. : Transmission des données entre les couches liaison de données homologues à
travers un chemin virtuel

Cette couche établit une liaison de données entre systèmes adjacents primitivement reliés par
un circuit de données. Généralement au sein de chaque système (ETTD), les fonctions de la
couche Liaison de données sont réalisées par une carte spécifique appelée contrôleur de
communication. Par exemple : carte HDLC, carte Ethernet, etc.

2. Organisation de la couche liaison de données


Les caractéristiques de la couche liaison de données dépendent :
- Du mode d’exploitation de la ligne / duplex, full duplex, simplex.
- Du mode de détection d’erreurs.
- Du format des trames.
- Du principe d’acquittement utilisé (acquittement : ack).

Ø L’ack systématique : protocole de type “envoyer – attendre”.


Ø L’ack par anticipation avec rejet simple : on émet un certain nombre de trames
sans recevoir d’ack, puis on attend un ack groupé de type :

a) “la trame n est correcte, envoyer le trame n+1”


ð ack positif pour toutes les trames i ≤ n.
b) “ la trame j est incorrecte”
ð ack positif pour toutes les trames < j
ð ack négatif pour toutes les trames ≥ j et ≤ n.

Ø L’ack par anticipation avec rejet sélectif : la trame j est incorrecte, seule la
trame j doit être réémise.

Le protocole de niveau 2 définit dans quel ordre les trames doivent être échangées : on parle
aussi de gestion de tour de parole.

Définitions :

1) Station primaire : station primaire ou permanente responsable de la gestion de la liaison


de données. Elle assure l’allocation de la voie et la supervision de la liaison.

2) Station secondaire : exécute des ordres reçus de la station primaire.

Page 62
Chapitre 4 : LIAISON DE DONNEES

Pour le transfert de texte, la station primaire ou secondaire qui est en possession du tour de
parole prend l’état de temporaire maître et l’autre devient esclave. Par convention le texte
circule de la station source à la station puits. La figure 4.3. représente le dialogue entre la
station primaire et secondaire.

Texte
Source Puits
Ack

Fig.4.3. : Circulation du texte de la source vers le puits

Il existe plusieurs types de dialogues :


• Invitation à recevoir (type sélection) représentée par la figure suivante :

Primaire Sélection / texte Secondaire


Source Puits
Ack

Prêt à recevoir (oui / non)


Réponse
Texte
ack

Fig.4.4. : Dialogue type sélection

• Invitation à émettre (polling)


• Liaison point à point dissymétrique : transfert bidirectionnel de texte en combinant deux
liaisons unidirectionnelles de sens opposées.
Une liaison se fait en mode sélection et l’autre en mode polling.
• Liaison point symétrique : superposition de deux lignes unidirectionnelles en mode
polling.
• Liaison par compétition : chaque station peut émettre de manière indépendante.

3. La trame
C’est l’unité de données du protocole de niveau Liaison de données (L- PDU).
La trame (voir Fig4.5.) est une suite de bits d’une longueur variable mais bornée. Le début et
la fin de trame sont souvent identifiés par des délimiteurs.
La trame est composée d’un certain nombre de champs ayant chacun une signification
précise.
On distingue souvent 3 ensembles : l’entête (header), le champ de données et la terminaison
(tailer).

Page 63
Chapitre 4 : LIAISON DE DONNEES

Fig.4.5. : Format général d’une trame

Remarques :

• Suivant le type de protocoles, une trame peut :


- être de taille fixe ou de taille variable (jusqu’à une certaine taille maximale)
- ne pas avoir de fin de trame explicite.

• Suivant le rôle qui lui est attribué : une trame peut ne pas comporter de champ
information. Par exemple : un simple acquittement

4. Techniques de contrôle

4.1. Utilité
“S’assurer que le récepteur a reçu correctement, en un seul exemplaire, et dans l ordre les
trames émises”.

Deux phénomènes viennent perturber la transmission :


- La corruption de trames : transformation de la suite binaire transmise
- La perte de trames : due à la non- transmission ou la non- reconnaissance de la trame. ex :
corruption du délimiteur
- une corruption se traduit par une perte lorsque le récepteur détruit la trame corrompue.

4.2. Détection et correction d'erreurs


A. Problématique
Indépendamment des supports de communication et des techniques de transmission utilisés,
des perturbations vont se produire entraînant des erreurs (voir Fig.4.6.).

Fig.4.6. : Risque d’erreurs lors du transfert des données

Dans ces conditions, la suite binaire reçue ne sera pas identique à la suite émise.

Page 64
Chapitre 4 : LIAISON DE DONNEES

• Comment B peut détecter l'occurrence d’une erreur ?


• Comment B peut localiser une erreur ?
• Comment B peut corriger une erreur ?
Il faut mettre en uvre, alors, des techniques de protection contre les erreurs de transmission.

B. Stratégies de protection contre les erreurs de transmission


Le principe général pour la détection des erreurs de transmission est le suivant :
- Un émetteur veut transmettre un message (suite binaire quelconque) à un récepteur
- L’émetteur transforme le message initial à l’aide d’un procédé de calcul spécifique qui
génère une certaine redondance des informations au sein du message codé.
- Le récepteur vérifie à l’aide du même procédé de calcul que le message reçu est bien le
message envoyé grâce à ces redondances.

C. Solutions envisageables pour la détection des erreurs

• Approche naïve : la répétition

§Détection d’erreurs :
* Le message envoyé est constitué du double du message initial.
* Envoyer 10010011001001 au lieu de 1001001.
* Le récepteur détecte une erreur si les exemplaires ne sont pas identiques.
§Auto- correction :
* Le message envoyé est constitué du triple du message initial.
* Envoyer 100100110010011001001 au lieu de 1001001
* Le message correct correspond aux 2 exemples identiques.

Remarque :

1. La détection et la correction des erreurs nécessitent d’introduire de la redondance dans


les messages transmis.
2. Certaines erreurs ne peuvent pas être détectées. Exemple : la même erreur sur les deux
exemplaires.
3. Certaines erreurs détectées ne peuvent pas être corrigées. Exemple : Une erreur différente
sur au moins deux exemplaires.
4. Certaines erreurs sont mal corrigées. Une même erreur sur deux exemplaires
simultanément.
5. L’auto- correction nécessite plus de redondance que la simple détection.

• Code de parité
La parité ajoute à chaque bloc de i bits (i=7 ou 8) émis un bit de parité de telle sorte que
parmi les (i+1) bits émis le nombre de bits à 1 soit toujours pair (ou impair). À la réception, le
décodeur calcule le nombre de bits à 1 et dans le cas d'une parité paire si ce nombre de bits est
pair on suppose qu'il n'y a pas eu d'erreur. Sinon, on sait alors qu'il y a eu une erreur de
transmission mais on ne sait pas la localiser et il faut alors demander la réémission du bloc
(voir Fig.4.7.).

Page 65
Chapitre 4 : LIAISON DE DONNEES

La technique de parité est simple à mettre en uvre cependant elle ne permet pas de détecter
2n erreurs dans le même bloc de bits transmis, car dans ce cas la parité ne sera pas changée.

Fig.4.7. : Détection d’erreurs avec le code de parité

• Code polynomial
Un code polynômial est un code linéaire systématique dont chacun des mots du code est un
multiple du polynôme générateur (noté g(x)).
Les lignes de la matrice génératrice sont engendrées par le polynôme générateur.
Le degré du polynôme définit la longueur du champ de contrôle d’erreur.
A toute séquence de bits on associe un polynôme U = <u 0 , u 1 , u 2 ,..., u n > .
U( x) = u 0 +u 1 x + u 2 x2 +...+ u n x n

Ex. : 1001001 ⇔ X 6 +X 3 +1

Les séquences envoyées (codées) doivent être un multiple d’un polynôme g(x) dit polynôme
générateur. Le polynôme g(x) est connu à l’avance par l’émetteur et le récepteur.

Procédure de codage :

- Soit g(x) le polynôme générateur de degré k.


- On calcule P’(X) = P(X).X k : Ceci équivaut à un décalage de P(X) k positions vers la
gauche.
- On divise P’(X) par g(X).
- P’(X) = Q(X).g(X)+R(X)
- Le message envoyé est : P’(X) + R(X)
- P’(X) + R(X) = Q(X).g(X) est multiple de g(X).

Procédure de décodage :

- Soit M(X) le message reçu.


- On divise M(X) par g(X).
- Si le reste de la division est non nul alors détection d’une erreur.
- Sinon il y a une forte probabilité que la transmission est correcte.
- Pour restituer le message initial, on divise M(X) par X k.

Page 66
Chapitre 4 : LIAISON DE DONNEES

Exemple :

Soit la séquence 1101 à envoyer


g(x) = x3 + x + 1
P(x) = x3 + x2 + 1
P’(x)=P(x).x3 = x6 + x5 + x3

Le message à envoyer est : 1101001

D. Solutions envisageables pour la correction des erreurs

Deux approches :
• Utilisation de code auto- correcteurs
Exemple : code de Hamming
• Correction par retransmission
Si détection d’une erreur alors demander à l’émetteur de renvoyer le même message.
La figure 4.8. présente les différents problèmes rencontrés lors d’une transmission et les
approches pour les corriger.

Fig.4.8. : Deux approches pour le correction : autocorrection ou correction par retransmission

• Correction par retransmission

- L’émetteur conserve une copie des données qu’il envoie.


- Le récepteur applique une méthode de détection des erreurs.
- Le récepteur informe l’émetteur de la bonne (ou mauvaise) réception en lui retournant un
paquet spécifique : acquittement positif "ack" (ou négatif "nack").

Dans le cas d’un acquittement négatif, l’émetteur doit renvoyer le paquet erroné.

Page 67
Chapitre 4 : LIAISON DE DONNEES

Un temporisateur bornant la durée d’attente des acquittements est nécessaire pour assurer la
correction du mécanisme lors des pertes de paquets de données.
L’identification des paquets (de données et d’acquittements) est nécessaire pour assurer la
correction du mécanisme lors des pertes d’acquittements.

§ Selon "Send and Wait"


L’émetteur doit attendre l’acquittement du récepteur avant d’envoyer les données : alternance
entre l’émetteur et le récepteur (voir 4.9.). Les protocoles simples comme par exemple “send
and wait” ont comme principal inconvénient de n’autoriser que la transmission d’une seule
trame à la fois. La liaison de données est mal exploitée (pour le transfert de données utiles) la
plupart du temps. De même, l’émetteur (ou le récepteur) passe son temps à attendre
l’acquittement du récepteur (ou la trame de données de l’émetteur).

Fig.4.9. : Retransmission selon la méthode Send and Wait

§ Selon la fenêtre coulissante (“ sliding window”)


Contrairement à la méthode précédente, on autorise l’émission (ou la réception) de plusieurs
trames d’information consécutives sans attendre l’acquittement de la première (ou avant
d’envoyer l’acquittement). On remarque que la source et le puits émettent et reçoivent
simultanément et que la liaison est utilisée de manière bidirectionnelle (voir Fig.4.10.). Le
nombre maximum de trames consécutives que l’on peut ainsi émettre (ou recevoir) est la
largeur de la fenêtre d’anticipation W d’émission (ou de réception). Dans l’exemple la
largeur W ≥ 3.

1
0 0
1
2

3
1
4

Fig.4.10. : Retransmission selon la méthode de la fenêtre coulissante

Page 68
Chapitre 4 : LIAISON DE DONNEES

4.3. Identification des trames


Une numérotation permet d’identifier les trames et leur acquittement.
Plus l’unité est petite plus l’identification est précise mais plus c’est coûteux (taille du champ)
Ex : HDLC = 3 bits (ou 7 bits).
La numérotation se fait modulo N (= 2 la_ taille_ du_ champ_ de_ numérotation )

Au cours d’une même connexion le même numéro va être réutilisé pour identifier plusieurs
trames différentes.

L’identification permet :
- de détecter la perte des trames.
- de détecter la duplication de trames.
- le reséquensement des trames n’arrivant pas en ordre

4.4. Contrôle de flux


Pour éviter la congestion du récepteur (c’est- à- dire le débordement de son espace de
stockage qui entraînerait la destruction de trames), la largeur de la fenêtre doit correspondre à
la capacité de stockage du récepteur :

- Dans le cas d’une fenêtre de largeur fixe :


ÄLe contrôle s’effectue sur la totalité de la fenêtre.
Ä La fenêtre est ouverte ou fermée.
Exemple : XON/ XOFF ou RR/ RNR de HDLC.

- Dans le cas d’une fenêtre de largeur variable :


ÄLa largeur (le crédit) est adaptée à la capacité de stockage du récepteur.
Ä Les PDU doivent comporter alors un champ supplémentaire pour acheminer le crédit du
récepteur de données à l’émetteur de données.

5. Protocoles de liaison de données


5.1. Rôle
Le protocole de liaison de données est un ensemble de règles qui définit la construction et la
reconnaissance des trames ainsi que les règles d'initialisation et de fermeture de la
transmission et celles de reprise sur erreur. Les procédures orientées caractères (BSC d’IBM)
sont assez anciennes et sont utilisées pour des communications à l'alternat sur le principe send
and wait. Les procédures orientées bits (HDLC) sont prévues pour des transmissions full-
duplex et à haut débits.

5.2. Le protocole BSC (Binary Synchronous Communications)


Il est basé sur la transmission de blocs de caractères représentés principalement en ASCII (7
bits) ou EBCDIC (8 bits de chez IBM) avec acquittement à l'alternat. Il utilise à la fois des
messages d'information pour transporter les données et des messages de service pour
superviser ces échanges.

Page 69
Chapitre 4 : LIAISON DE DONNEES

Les erreurs sont donc détectées et corrigées par demande de répétition. La gestion des
échanges se fait grâce à l'ensemble de caractères de commandes du tableau suivant.

Tableau: Caractères de commande BSC

utilisé pour la synchronisation caractère et émis


SYN synchronous idle
en début de séquence de caractères
ENQ enquiry invite une station à émettre ou recevoir
SOH start of heading début d'en-tête
STX start of text fin d'en-tête et début de texte
ETB end of transmission block fin de bloc de données
fin du texte et début des caractères de contrôle
ETX end of text
nécessaires à la détection des erreurs
ACK acknowledgement accusé de réception positif
NACK negative acknowledgement accusé de réception négatif
DLE data link escape caractère d'échappement de transmission
EOT end of transmission fin d'un transfert de données

D'autres caractères spécifiques ont été ajoutés par des constructeurs mais ils ne sont pas
détaillés ici.

Le rôle du caractère DLE est primordial car il permet d'obtenir une transmission transparente
au code. En effet, si les données peuvent contenir des caractères de commande des confusions
deviennent possibles. Pour éviter cela, tous les caractères de commande sont précédés de DLE
lorsque l'alphabet est tel que les codes de commande sont susceptibles d'apparaître dans les
données transmises. De plus, si l'on doit transmettre dans les données le caractère DLE lui-
même, il sera alors lui-même précédé de DLE de manière à ce que le caractère qui le suit ne
soit pas pris à tort pour une commande.

Les messages (données de taille quelconque) émis selon le protocole BSC sont émis sous
forme de blocs de taille appropriée aux possibilités de la ligne. Ainsi un message constitué
d'une en-tête et d'un texte de données, le tout ne constituant qu'un seul bloc sera émis de la
manière suivante :
SYN SYN SYN SYN SOH ...en-tête... STX ...texte... ETX BCC EOT BCC (Block Check
Character) est en fait un ensemble de caractères de contrôle pour détecter les
erreurs de transmission.

5.3. Le protocole HDLC (High level Data Link Control)


A. Présentation
HDLC est un protocole orienté bit et définit un ensemble de procédures normalisées par l'ISO
pour des communications, aussi bien point à point que multipoint, half ou full-duplex, mais
toujours entre une machine primaire et une (ou plusieurs) machine(s) secondaires. Les
différents modes sont les suivants :

Page 70
Chapitre 4 : LIAISON DE DONNEES

• le mode SNRM (Set Normal Response Mode) est utilisé sur une liaison half duplex et ici
le secondaire ne peut transmettre que sur invitation du primaire.
• le mode SARM (Set Asynchronous Response Mode, connu également sous le nom LAP)
est utilisé sur une liaison half duplex également, mais le secondaire peut émettre sans que
le primaire l'ait sollicité. Ceci peut alors provoquer des problèmes si primaire et
secondaire veulent simultanément émettre des données.
• le mode SABM (Set Asynchronous Balanced Mode, connu aussi sous le nom LAP-B) est
un mode de réponse asynchrone équilibré utilisé sur une liaison full duplex entre 2
machines uniquement (liaison point à point) qui ont chacune le statut de primaire et de
secondaire. Le secondaire peut émettre sans avoir reçu de permission du primaire.

Les trames échangées ont l'allure suivante :

Fig.4.11. : La trame HDLC

- Le fanion est égal à 01111110 et pour que la transparence au code soit possible, c'est-à-dire
pour que la présence d'une suite de 6 bits à 1 dans les données ne soit pas interprétée comme
un fanion, l'émetteur insère un 0 après chaque suite de 5 bits à 1, appelé bit de transparence.
Le récepteur supprime ce 0 supplémentaire après 5 bits à 1 consécutifs de manière à restaurer
le caractère réellement émis.
- FCS : Frame Check Sequence. Le contrôle est assuré par la technique du polynôme
générateur. Lorsque l'utilisateur cesse d'émettre des données vers le coupleur, celui-ci envoie
le FCS (qu'il calcule au fur et à mesure) puis le fanion de fermeture.
Une séquence de contrôle de trame (FCS) contient un code de redondance cyclique (CRC)
créé par l’unité émettrice et recalculé par l’unité réceptrice afin de s’assurer qu’aucune trame
n’a été endommagée. La corruption d’un seul bit, où que ce soit entre le début de l’adresse de
destination et la fin du champ FCS, entraînera une différence dans la somme de contrôle.
- L’adresse : utilisée lorsque la communication est de type maître-esclave. En
communication point à point, elle n’est pas utilisée.
- Identification de la station à laquelle la commande est destinée
- commande de l’ETCD vers l’ETTD : @stationA = 11000000
- commande de l’ETTD vers l’ETCD : @stationB = 10000000
- Identification de la station qui émet la réponse à la commande
- réponse de l’ETCD vers l’ETTD : @B
- réponse de l’ETTD vers l’ETCD : @A
Adresse fictive : 00000000
Adresse de diffusion totale (“ broadcast”): 1111111
Le champ d’adresse étendu est une suite quelconque d’octets dont le premier bit est = 0, sauf
pour le dernier octet de la suite.

Page 71
Chapitre 4 : LIAISON DE DONNEES

B. Les différents types de trames

Il existe trois types de trames qui se distinguent notamment par leur champ Commande (voir
Fig.4.12) :

- Les trames d’information (I : Information ) contiennent des données en provenance, ou à


destination, des couches supérieures.

- Les trames de supervision (S : Supervisory ) assurent le contrôle d'erreur et de flux.

- Les trames non numérotées (U : Unnumbered ) servent à l'initialisation de la liaison et aux


problèmes de reprise sur erreur non réglés à la couche 2.

Note :
Deux formats du champ Commande existent :
- le format normal (8 bits)
- le format étendu (16 bits) : négocié lors de l’établissement de la connexion pour avoir un
champ de commande plus grand et ainsi effectuer la numérotation modulo 128.

Fig.4.12. : Le champ de commande

a) Les trames d'informations :


Elles acheminent les informations données ou commandes.
Ø N( S) : numéro de la trame d’information sur 3 bits, donc la numérotation est modulo 8.

Ø N( R) :
- numéro de la prochaine trame d’information attendue sur 3 bits, donc la numérotation est
modulo 8.
- acquitte toutes les trames de numéros strictement inférieurs à N( R)
- la perte d’un acquittement peut ainsi être compensée par le prochain acquittement.
Ø Le bit P/ F (“ Poll/ Final”) :
- Dans le mode équilibré du protocole : LAP- B
Ä dans une commande, il vaut P : demande de réponse immédiate
Ä dans une réponse, il vaut F : réponse à la demande de réponse immédiate
- Dans le mode normal (historique) du protocole : LAP
Ä code le passage de l’alternance du droit d’émission (maître/ esclave)

Page 72
Chapitre 4 : LIAISON DE DONNEES

b) Les trames de supervision :


Il existe 4 types de trames de supervision, codées dans le sous- champ "Type du champ
Commande" et, commande ou réponse :

Ø RR (“ Received & Ready”) - 00 : acquittement


- confirme la réception des trames de données de nº < N( R)
- demande la transmission des trames suivantes.
- Le récepteur est prêt à recevoir.

Ø RNR (“ Received & Not Ready”) - 10 : contrôle de flux


- confirme la réception des trames de données de nº < N( R)
- interdit la transmission des trames suivantes.
- Le récepteur est débordé.

Ø REJ (“ Reject”) - 01 : protection contre les erreurs


- confirme la réception des trames de données de nº < N( R)
- demande la retransmission des trames de nº ≥ N( R)

Ø SREJ (“ Selective Reject”) - 11 : protection contre les erreurs


- confirme la réception des trames de données de nº < N( R)
- demande la retransmission de la trame de nº = N( R)
- non- utilisée par LAP- B

c) Les trames non- numérotées :


Elles représentent toutes les autres trames nécessaires à la gestion de la connexion.
MMMMM code le type des trames non- numérotées.
Les différentes formes de cette trame sont les suivantes :

Ø Trame d’établissement de la connexion - commande :


SABM (Set asynchronous balanced mode) - en format normal
MM = 11 MMM = 001
SABME (Set asynchronous balanced mode extended) - en format étendu
MM = 11 MMM = 011

Ø Trame de libération de la connexion - commande :


DISC (Disconnection)
MM = 00 MMM = 011

Ø Trame de confirmation - réponse : acquittement de trame non-numérotée.


UA (“ Unnumbered acknowledgment”)
MM = 00 MMM = 110

Ø Trame de récupération des erreurs -réponse : rejet de trame.


FRMR (“ Frame reject”)
MM = 01 MMM = 100

Ø Trame d’indication de connexion libérée


DM (“ Disconnected mode”)
MM = 11 MMM = 000

Page 73
Chapitre 4 : LIAISON DE DONNEES

C. Scénarios d’établissement et de rupture d’une connexion

Page 74
Chapitre 4 : LIAISON DE DONNEES

Page 75

Vous aimerez peut-être aussi