Vous êtes sur la page 1sur 48

Couche Liaison de données

! Introduction
" La couche Physique
La couche Liaison
" MAC: contrôle d’accès au canal
" La couche Réseau
" La couche Transport
" La couche Application
Hiver 2004 IFT-14165
1
Plan

" Fonctions de la couche Liaison


" Détection et correction d’erreurs
" Protocoles élémentaires
" Protocoles avec fenêtre d’anticipation
" Exemple de protocole de couche
Liaison: HDLC

Hiver 2004 IFT-14165


2
Liaison de données
Cette couche est rendue nécessaire par
la nature < non–idéale > des liens de
communications et de l’environnement:
perturbations atmosphériques, bruits
électriques, etc.

Hiver 2004 IFT-14165


3
Fonctions de la couche Liaison
" Cette couche permet essentiellement:
" Le formatage des données:
" Le flot de bits entrant doit être segmenté en trames.
" Le début et la fin de chaque bloc doivent être clairement
identifiés.
" Le contrôle des erreurs: Le protocole doit fournir:
" Une technique permettant la détection des erreurs.
" La possibilité de retransmission des trames dans le cas ou les
erreurs ne peuvent pas être corrigées.
" Le contrôle de flux: Le protocole doit fournir des
mécanismes pour s'assurer que l’émetteur ne transmette
pas plus vite que ce que peut absorber le récepteur.
" Partage du support physique.
Hiver 2004 IFT-14165
4
Trame
" Le flot de bits entrant doit être segmenté en blocs
appelés trames.
" Pourquoi?
" Si une erreur se produit lors de la transmission, l’unité de
retransmission sera la trame (au lieu de retransmettre toute
l’information, on renvoie simplement une trame).
" Certains types de réseaux imposent une limite sur la taille de
trames
" Problème: Comment délimiter une trame (le
récepteur doit être capable de savoir le début et la
fin de chaque trame) ?

Hiver 2004 IFT-14165


5
Délimitation de trames
" Insérer des silences entre les trames :

Inconvénient : Les réseaux garantissent rarement


les délais # Possibilité de destruction de certains
temps de silence ou de créer d’autres à l’intérieur des
trames.

Hiver 2004 IFT-14165


6
Délimitation de trames
" Compter les caractères : Ajouter un caractère dans
l’en-tête d’une trame indiquant le nombre de
caractères qu’elle contient
" Inconvénient : Si lors de la transmission une erreur se
produit dans le champ indiquant le nombre de
caractères, le récepteur ne serait plus capable de
délimiter correctement les trames.

Hiver 2004 IFT-14165


7
Délimitation de trames
" Ajouter des caractères de début de trame, de fin de
trame et de transparence :
" Début de trame= DLE STX (Data Link Escape, Start of TeXt)
" Fin de trame= DLE ETX (Data Link Escape, End of TeXt).

" Pour éviter que la séquence DLE STX ou DLE ETX se trouve
parmi les données à envoyer, on ajoute un caractère DLE
devant tout caractère DLE apparaissant dans les données à
transmettre.

Hiver 2004 IFT-14165


8
Délimitation de trames

Inconvénient : Les séquences de bits associées aux


délimiteurs de trames dépendent du mécanisme de
codage de caractère utilisé.
Hiver 2004 IFT-14165
9
Délimitation de trames
" Utiliser des fanions et des bits de transparence :
" Début de trame= 01111110 (fanion)
" Fin de trame= 01111110 (fanion)

" Pour éviter qu’un fanion se retrouve parmi les


données à envoyer, on ajoute des bits de
transparence. Plus précisément, on insère un bit 0
après chaque séquence de cinq « 1 » consécutifs
trouvés dans les données à transmettre.

Hiver 2004 IFT-14165


10
Délimitation de trames

Hiver 2004 IFT-14165


11
Délimitation de trames

" Violer le codage normale de la couche


physique :
" Dans certains réseaux locaux, une suite de deux états
physiques est utilisée pour coder un bit.
"0= impulsion positive suivie d’une
impulsion négative.
"1= impulsion négative suivie d’une

impulsion positive.
"Les suites positive-positive et

négative-négative ne sont pas


utilisées : On peut s’en servir afin de
délimiter les trames.
Hiver 2004 IFT-14165
12
Plan

" Fonctions de la couche Liaison


Détection et correction d’erreurs
" Protocoles élémentaires
" Protocoles avec fenêtre d’anticipation
" Exemple de protocole de couche
Liaison: HDLC

Hiver 2004 IFT-14165


13
Détection et correction d’erreurs
…. a1 a2 …. â1 â2
Émetteur Récepteur
Récepteur
Émetteur Canal
Canal de transmission
de transmission

" Erreur de transmission : ∃ i∈ {1,2, …}| âi – ai ≠ 0.


" Taux d’erreur binaire : Le nombre de bits erronés sur le
nombre total de bits reçus pendant un intervalle de temps.
" Erreurs indépendantes : On dit que les erreurs âi –ai sont
indépendantes, si la suite des variables aléatoires {âi –ai } est
une suite indépendante, i.e., P(âi –ai-/ âj –aj)= P(âi –ai-).
" Paquet d’erreurs de longueur k : k bits consécutifs dont
le premier et le dernier au moins sont erronés. Si les erreurs ont
tendance à arriver en groupes, on dit qu’on a des erreurs en
rafale.
Hiver 2004 IFT-14165
14
Détection et correction d’erreurs
" Les codes détecteurs :
" Détecter des erreurs
" Ajouter aux données transmises des informations
de contrôle.

Information utileutile
Information contrôle
contrôle

transmission

" Une fois qu’une erreur est détectée, on demande


la retransmission de la trame erronée.

Hiver 2004 IFT-14165


15
Détection et correction d’erreurs
" Détection par parité verticale (VRC: Vertical
Redundancy Check):
" Information utile = b .b ….b
1 2 n
" Contrôle

" Parité paire = 0, si b1+b2+…+bn est pair (1 sinon)


" Parité impaire = 0, si b1+b2+…+bn est impair (1 sinon)
" information de contrôle = 1 bit.
" Cette méthode permet de détecter des blocs qui
contiennent un nombre impair de bits erronés.
" Si les erreurs se produisent en rafales (un bloc peut
comporter plusieurs bits erronés), il y aura une
chance sur 2 que cette erreur soit détectée.
Hiver 2004 IFT-14165
16
Détection et correction d’erreurs
" Détection par parité longitudinale (LRC: Longitudinal
Redundancy Check)
" Regrouper les données sous forme de blocs pour effectuer un
codage VRC pair selon les lignes et les colonnes.
" Message à envoyer:
" HELLO!= 1001000 1000101 1001100
1001100 1001111 0100001

" Message transmis:


" 10010000 10001011 10011001 10011001 10011111 01000010
11000110
" Cette méthode permet de détecter toutes les erreurs simples,
doubles ou triples.

Hiver 2004 IFT-14165


17
Détection et correction d’erreurs
" Détection par code cyclique (CRC: Cyclic Redundancy
Check)
" Connu aussi sous le nom de codes polynomiaux.

" Le principe est simple :

" L’ émetteur et le récepteur se mettent d’accord sur un


diviseur. Exemple: 84
" Information de contrôle = le reste de la division de message
sur diviseur.
" Message 57268
" Contrôle = 57268/84 = 64
" Message transmis = 5726864

Hiver 2004 IFT-14165


18
Détection et correction d’erreurs
" CRC (Généralisation)
" Avant la communication:

" L’émetteur et le récepteur se mettent d’accord sur un


polynôme générateur G(x) de degré r.
" Message à envoyer:
" B=bk-1.bk-2…b1.b0 de k bits est traité comme un polynôme
M(x)= bk-1xk-1+bk-2 xk-2+…+b1 x1+b0 x0 de degré k-1.
" Contrôle
" C’est le reste de la division de xr M(x) par G(x)
" Message transmis:
" T(x)= xr M(x)- (xr M(x)/G(x))= xr M(x)+ (xr M(x)/G(x))
" L’arithmétique polynomiale est faite modulo 2:
" T(X)=xr M(x)+ (xr M(x)/G(x))# divisible par G(x)
Hiver 2004 IFT-14165
19
Détection et correction d’erreurs
" CRC: Exemple

Hiver 2004 IFT-14165


20
Détection et correction d’erreurs
" CRC: Le choix de G(x)
" Le récepteur reçoit T(x) + E(x) avec E(x) est un polynôme
qui reflète les erreurs.
" Détection d’erreurs:
" L’erreur n’est pas détectée (erreur résiduelle) si T(x) + E(x) est
divisible par G(x), i.e., E(x) est divisible par G(x).
" Erreurs simples: si le bit i est erroné alors E(x)=xi # On peut
choisir G(x) de sorte qu’il contienne au moins deux termes.
" Erreurs doubles: Supposant que le bit i et le bit j sont erronés
avec i < j, alors E(x)=xi + xj =xj (xi-j+1) # on peut choisir G(x) de
sorte qu’il ne soit pas divisible par x et par (xk+1) pour tout k
inférieur à la valeur maximale de i-j.
" Les polynômes générateurs qui ont été normalisés sont :
" CRC-12 = x12 + x11 + x3 + x2 + x1 + 1
" CRC-16 = x16 + x15 + x2 + 1
" CRC-CCITT = x16 + x12 + x5 + 1
Hiver 2004 IFT-14165
21
Détection et correction d’erreurs
" Correction des erreurs :
" Mots de code = les blocs envoyés
(information utile + contrôle).
" Distance de Hamming entre deux mots de
code m1 et m2 = de combien de bits m1 et
m2 diffèrent = m1 ⊕ m2.
" Si la distance entre m1 et m2 est d alors il
faut d erreurs simples pour transformer m1
en m2 ou vice versa.

Hiver 2004 IFT-14165


22
Plan

" Fonctions de la couche Liaison


" Détection et correction d’erreurs
Protocoles élémentaires
" Protocoles avec fenêtre d’anticipation
" Exemple de protocole de couche
Liaison: HDLC

Hiver 2004 IFT-14165


23
Stratégies de retransmission
" Envoyer et attendre (Stop and Wait):
" Hypothèses:
" Les données utiles circulent dans un seul sens.
" Les trames envoyées contiennent l’information nécessaire (CRC
par exemple) pour que le récepteur puisse détecter les erreurs
éventuelles.
" Côté récepteur :
" Si la trame reçue ne contient pas d’erreur, il envoie un message
d’acquittement ACK.
" Si la trame reçue contient des erreurs, il n’envoie rien.
" Côté émetteur :
" Il envoie une trame et il attend une durée τ (τ ≥ au temps
requis pour qu’une trame fasse un aller retour).
" Si au bout de τ unité de temps, il ne reçoit pas un acquittement
ACK, il retransmet la trame.
Hiver 2004 IFT-14165
24
Stratégies de retransmission
" Envoyer et attendre:
Émetteur Récepteur

Trame(n)

t<τ Pas d’erreur


ACK

Trame(n+1)

Erreur ou trame perdu


perdue
τ

Trame(n+1)

Pas d’erreur
ACK

temps temps
Hiver 2004 IFT-14165
25
Stratégies de retransmission
" Envoyer et attendre:
Émetteur Ré ce pteur

Trame(n)

τ Pas d’erreur
ACK

Problème : Si l’acquittement Trame(n)

d’une trame(n) est perdu, Pas d’erreur:


considérée comme n+1
ACK
l’émetteur va la retransmettre
mais le récepteur va la Trame(n+1)

considérer comme une nouvelle ACK


Pas d’erreur:
considérée comme n+2
trame!.

temps temps

Hiver 2004 IFT-14165


26
Stratégies de retransmission
" Envoyer et attendre:
Émetteur Ré ce pteur

Solution : Il suffit de numéroter les trames Trame( n, 0 )


No de l a tr ame attendue=0
pour résoudre le problème précédent. À cette τ Pas d’erreur ⇒
ACK
fin, on va ajouter un champ dans l’en-tête de Trame acce ptée

chaque trame pour mettre leurs numéros. Trame( n, 0 )


No de l a tr ame attendue=1
Question: Quelle est la longueur du champ Trame reje té
ACK
numéro?
Réponse: la seule ambiguïté du coté de Trame( n+1, 1)
No de l a tr ame attendue=1
récepteur est de savoir s’il s’agit de la trame Pas d’erreur ⇒
ACK Trame acceptée
précédente ou d’une nouvelle trame, donc un
seul bit suffira pour la numérotation des
trames. La première trame porte le numéro 0,
te mps te mps
la deuxième 1, la troisième 0, la quatrième 1,
etc.
Hiver 2004 IFT-14165
27
Stratégies de retransmission
" Envoyer et attendre:
" Avantages:
" Simplicité : Facile à comprendre et à implanter.
" Il ne demande pas beaucoup de mémoire : Le récepteur
utilise un tampon qui peut contenir une seule trame.
" Contrôle de flux : L’émetteur n’envoie pas plus que ce
que le récepteur peut traiter. Il envoie une trame et il
s’assure qu’elle a été traitée par le récepteur avant
d’envoyer la suivante.
" Inconvénients :
" Les données utiles circulent dans un seul sens.
" Le canal de transmission n’est pas exploité comme il faut.
Durant à peu près la moitié du temps, l’émetteur chôme.

Hiver 2004 IFT-14165


28
Stratégies de retransmission
" Envoyer et attendre:
Émetteur Ré ce pteur
Robustesse : Avec le protocole Trame( n, 0 )
précédent, si l’émetteur ne règle No de l a trame attendue=0
τ Pas d’erreur ⇒
pas convenablement son ACK
Trame acceptée
temporisateur (plus petit que la Trame( n, 0 )
valeur convenable), Il y aura la Trame( n+1, 1) No de la trame attendue=1
Trame rejetée
possibilité que le récepteur ACK
rejette des trames en les croyant Trame( n+2, 0)
No de la trame attendue=1
des retransmissions. ACK Trame rejetée

Trame( n+3, 1)
No de la trame attendue=1
Pas d’erreur ⇒
ACK Trame acceptée

Hiver 2004 IFT-14165 temps temps 29


Stratégies de retransmission
" Envoyer et attendre:
Émetteur Ré cepteur

Trame( n, 0 )
No de l a trame atte ndue=0
τ Pas d’erreur ⇒
Protocole plus robuste : On veut ACK(0)
Trame acceptée
un protocole qui fonctionne Trame( n, 0 )
convenablement même si Trame( n+1, 1) No de la trame attendue=1
Trame reje tée
l’émetteur ne règle pas ACK(0)
convenablement son Trame( n+1, 1)
No de la trame attendue=1
temporisateur. ACK(1) Pas d’erreur ⇒
Trame acceptée
Solution : numéroter les Trame( n+2, 0)
No de la trame attendue=0
acquittements. Pas d’erreur ⇒
ACK(0) Trame acceptée

temps temps
Hiver 2004 IFT-14165
30
Plan

" Fonctions de la couche Liaison


" Détection et correction d’erreurs
" Protocoles élémentaires
Protocoles avec fenêtre d’anticipation
" Exemple de protocole de couche
Liaison: HDLC

Hiver 2004 IFT-14165


31
Stratégies de retransmission
" Protocoles avec fenêtre d’anticipation (sliding window):
" But: Transmettre les données dans les deux sens.

" Canaux de transmission et leur utilisation:


" On dispose de deux canaux de transmission: un pour
l’émetteur et l’autre pour le récepteur.
" Chacune des deux entités utilise son canal pour envoyer les
données utiles aussi bien que les acquittements.
" Pour mieux exploiter le canal, une trame peut transmettre à
la fois des données utiles et des acquittements des trames
déjà reçues.
" <Flag> <ACK> <Paquet><CRC> <Flag>
" <Flag> <ACK> <CRC> <Flag>

Hiver 2004 IFT-14165


32
Stratégies de retransmission
" Protocoles avec fenêtre d’anticipation:
" Amélioration: Pour A B
permettre une
meilleure utilisation de
la bande passante du Trame
Temps de propag ati on

Temps d’attente
canal de transmission, Temps de transmission d’une trame
Temps de vérification de la trame +
on va permettre à un Temps de transmission d’un acqui ttement

émetteur d’envoyer ACK Temps de propag ati on

plusieurs trames avant


de recevoir un
acquittement.

Hiver 2004 IFT-14165


33
Stratégies de retransmission
" Protocoles avec fenêtre d’anticipation:
" Les trames sont numérotées.
" L’émetteur détient une liste de numéros indiquant les
trames qu’il peut envoyer.
" Les trames envoyées et non acquittées sont stockées dans
un tampon pour une éventuelle retransmission causée par
des erreurs de transmission ou des pertes de trames.
" Le récepteur détient une liste de numéros indiquant les
trames qu’il peut recevoir.
" Il détient également un tampon dans lequel il stocke les
trames reçues et non acquittées.
" Les trames reçues correctement vont être acquittées, les
paquets qu’elles renferment vont être acheminés vers la
couche supérieure et elles seront éliminées du tampon.
Hiver 2004 IFT-14165
34
Stratégies de retransmission
" Protocoles avec fenêtre d’anticipation:
" Il est clair que l’envoi de plusieurs trames

avant la réception d’un acquittement va


augmenter le taux d’utilisation du canal de
transmission.
" Cependant, il faut trouver une solution

efficace aux trames perdues ou erronées .

Hiver 2004 IFT-14165


35
Stratégies de retransmission
" Protocoles avec fenêtre d’anticipation:
" Retransmission continue (Go-Back-N):

" L’émetteur reprend sa transmission à partir de


la trame erronée.
" Toutes les trames envoyées après une trame
erronée ou perdue seront ignorées par le
récepteur.

Hiver 2004 IFT-14165


36
Stratégies de retransmission
" Retransmission continue (Go-Back-N):
A B
Tampon= 0 Trame(n, 0)

Tampon= 0,1 Trame(n+1, 1)

Tampon= 0, 1, 2 Trame(n+2, 2) ACK(0)

Tampon= 1, 2, 3 Trame(n+3, 3) ACK(1) Erreur ou trame perdue


τ2
Tampon= 2, 3, 4 Trame(n+4, 4) ACK(1) Trame ignorée

Tampon= 2, 3, 4 Trame(n+2, 2) ACK(1) Trame ignorée

Tampon= 2, 3, 4 Trame(n+3, 3) ACK(1)

Tampon= 2, 3, 4 Trame(n+4, 4) ACK(2)

ACK(3)

Hiver 2004 IFT-14165


37
Stratégies de retransmission
" Retransmission continue (Go-Back-N):
" Remarque : Face à la réception d’une trame erronée, on
peut envisager l’une des solutions suivantes :
" Ne rien envoyer#déclenchement du temporisateur.
" Acquitter la dernière trame correctement reçue.
" Envoyer un acquittement négatif portant le numéro de la
trame erronée. Exemple : NACK(2) veut dire que la trame 2
n’a pas été correctement reçue.
" Pour plus d’efficacité:
" On suppose que ACK(k) acquitte non seulement la trame k,
mais toutes les trames inférieures ou égales à k.
" Une fois ACK(k), k>0, est reçu alors ACK(k-1) ne sera pas
retransmis dans le cas où il n’arrive pas convenablement à
sa destination.

Hiver 2004 IFT-14165


38
Stratégies de retransmission
" Retransmission continue (Go-Back-N):
" La taille de la fenêtre :
" Si on utilise un champ de m bits pour numéroter les trames, alors
la taille de la fenêtre, W, doit être inférieure ou égale à 2m-1.
" Si W = 2m, certains problèmes peuvent apparaître.
A B
Tampon= 0 Trame(n, 0)
Tampon= 0, 1 Trame(n+1, 1)
Tampon= 0, 1, 2 τ0 Trame(n+2, 2)
ACK(0)
Tampon= 0, 1, 2, 3 τ1 Trame(n+3, 3)
ACK(1)
Tampon= 0, 1, 2, 3 τ2 Trame(n, 0)
ACK(2)
Tampon= 0, 1, 2, 3 τ3 Trame(n+1, 1)
ACK(3) Considérée n+4
Tampon= 0, 1, 2, 3 Trame(n+2, 2) ACK(0) Considérée n+5
Trame(n+3, 3)
ACK(1) Considérée n+6
Trame(n+4, 0)
ACK(2)
Trame(n+5, 1)

Hiver 2004 IFT-14165


39
Stratégies de retransmission
" Rejet sélectif :
" Cette stratégie consiste à ignorer seulement les
trames erronées.
" Les trames correctement reçues après une
erreur seront toutes stockées.
" Une fois, la trame erronée est retransmise, la
couche liaison réceptrice remet les paquets à
sa couche supérieure dans le bon ordre.

Hiver 2004 IFT-14165


40
Stratégies de retransmission
" Rejet sélectif :
" Exemple m = 4, W=7
A B
Tampon= 0 Trame(n, 0)

Tampon= 1 Trame(n+1, 1) Trame n

Tampon= 0, 1, 2 Trame(n+2, 2) ACK(0) Trame n+1

Tampon= 1, 2, 3 Trame(n+3, 3) ACK(1) Erreur ou trame perdu


τ2
Tampon= 2, 3, 4 Trame(n+4, 4) NACK(2) Trame n+3

Tampon= 2, 3, 4 Trame(n+2, 2) ACK(1) Trame n+4

Tampon= 2, 3, 4, 5 Trame(n+5, 5) ACK(1) Trame n+2

Tampon= 2, 3, 4, 5, 6 Trame(n+6, 6) ACK(4) Trame n+5

Tampon= 5, 6, 7 Trame(n+7, 7) ACK(5) Trame n+6

Trame n+7

Hiver 2004 IFT-14165


41
Stratégies de retransmission
" Rejet sélectif :
" La taille de la fenêtre :
" Si on utilise un champ de m bits pour numéroter les
trames, alors la taille de la fenêtre, W, doit être
inférieure ou égale à 2m-1.
" Autrement, certains problèmes peuvent apparaître.

Hiver 2004 IFT-14165


42
Plan

" Fonctions de la couche Liaison


" Détection et correction d’erreurs
" Protocoles élémentaires
" Protocoles avec fenêtre d’anticipation
Exemple de protocole de couche
Liaison: HDLC

Hiver 2004 IFT-14165


43
Exemple de protocole de couche Liaison

" HDLC (High-level Data Link Control):


" IBM développe le protocole SDLC (Synchronous
Data Link Control), l’utilise dans SNA et le
propose à l’ANSI comme norme pour les Etats-
Unis et à l’ISO comme norme internationale.
" L’ANSI a adopté ADCCP (Advanced Data
Communication Control Protocol)
" ISO a adopté HDLC.
" CCITT de sa part adopte LAP (Link Access
Procedure) issue de HDLC.

Hiver 2004 IFT-14165


44
Exemple de protocole de couche Liaison
" HDLC (High-level Data Link Control):
" Structure d’une trame
01111110 8 bits 8 bits variable ≥0 16 bits 01111110
Fanion Adresse Commande Données Contrôle Fanion

" Le contenu du champ commande distingue trois classes de


trames comme le montre le tableau suivant :

Les bits du champ commande


Type de trame Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8
Trame d’information 0 N( S) P/F N(R)
Trame de supervision 1 0 S1 S2 P/F N(R)
Trame non numérotée 1 1 M1 M2 P/F M3 M4 M5

" N(S) est le numéro de la trame émise.


" N(R) le numéro de la trame attendue.
" S1 et S2 permettent d’avoir plusieurs types de trames de supervision :

Hiver 2004 IFT-14165


45
Exemple de protocole de couche Liaison
" HDLC (High-level Data Link Control):

Hiver 2004 IFT-14165


46
Exemple de protocole de couche Liaison
" HDLC (High-level Data Link Control):
" M1, …, M5 permettent d’avoir plusieurs types de trames non
numérotées. Entre autres, on a:

Hiver 2004 IFT-14165


47
Exemple de protocole de couche Liaison
" HDLC (High-level Data Link Control):
" P/F (Poll/Final Invitation à émettre/Fin).

Ce bit a plusieurs utilisations.


" Entre autres, il permet de fixer des points de
vérification.
" Normalement, le bit P/F est mis à P par une
station primaire pour inviter une station
secondaire à émettre.
" La dernière trame envoyée par la station
secondaire doit avoir le bit P/F mis à F.

Hiver 2004 IFT-14165


48

Vous aimerez peut-être aussi