Vous êtes sur la page 1sur 13

Ce cours est construit à partir d’un certains nombres de support de cours disponibles sur le net.

Riveil, Cousin,
Grimaud, Lecoutre, Jean sont les principales sources d’inspiration. L’usage de ce composite ne peut être
qu’académique.
Couche liaison
 Cette couche doit assurer une
transmission exempte d'erreurs sur
Couche Liaison un canal de communication.

 Les donné
données sont fractionné
fractionnées en
trames.

Description Description
 La couche liaison ré
récupè
cupère des
paquets de la couche réréseau. couche réseau couche réseau
 Pour chaque paquet, elle construit paquet paquet
une (ou plusieurs) trame(s).
couche liaison couche liaison
 La couche liaison envoie chaque trame
trame
trame à la couche physique. bits
couche physique couche physique

Emetteur Récepteur

Services offerts
 Gestion (dé
(délimitation) de trames
 Contrôle d’
d’erreurs
 Contrôle de flux Délimitation de trames
 Contrôle d'accè
d'accès à un canal partagé
partagé
(MAC)

1
Délimitation des trames Compter les caractè
caractères
 Il existe trois mé
méthodes :  On utilise un champ dans l'en-
l'en-tête de
• Compter les caractè
caractères la trame pour indiquer le nombre de
• Utiliser des champs dé
délimiteurs de caractè
caractères de la trame
trame
 Ils se situent en dé
début et en fin de trame  Problè
Problème : si la valeur du champ est
 Des bits (ou caractè
caractères) de transparence modifié
modifiée au cours de la transmission
sont né
nécessaires
• Violer le codage normalement utilisé
utilisé  Méthode rarement utilisé
utilisée seule
dans la couche physique

Exemple Utiliser des dé


délimiteurs
Trames émises
 Un fanion (dé
(délimiteur) est placé
placé :
• au dé
début de chaque trame
06 ‘S’ ‘U’ ‘P’ ‘E’ ‘R’ 03 ‘L’ ‘E’ 06 ‘C’ ‘O’ ‘U’ ‘R’ ‘S’ • à la fin de chaque trame (en fait, au dé
début de
la suivante)

Trames reçues  Un fanion (flag) = sé


séquence particuliè
particulière
de bits
06 ‘S’ ‘U’ ‘P’ ‘E’ ‘R’ 04 ‘L’ ‘E’ 06 43 ‘O’ ‘U’ ‘R’ ‘S’
 Des bits de transparence sont alors
nécessaires pour qu’
qu’une sé
séquence binaire
code ASCII de ‘C’
dans la trame ne corresponde pas
2/13/2007 9 accidentellement au fanion.

Exemple Exemple
 Fanion : 01111110
Données :
 Bit de transparence : 0 insé
inséré aprè
après 01011001111110
toute sé
séquence de cinq 1 successifs
dans la trame.
Trame :
 Technique utilisé
utilisée dans : 01111110 010110011111010 01111110
• HDLC High-
igh-Level Data Link Control
• PPP Point to Point Protocol

2/13/2007 12

2
Utiliser des fanions Violer le codage
 Avantages  Utilisable lorsque le codage sur le
• permet toujours de retrouver la support physique contient des
synchronisation redondances
• permet l'envoi de trames de tailles  Par exemple :
quelconques
• 0 = impulsion positive puis nénégative
• technique la plus simple
• 1 = impulsion nénégative puis positive
 Cette technique est utilisé
utilisée • On peut donc utiliser les combinaisons
également en considé
considérant des positive-
positive-positive et né
négative-
gative-négative
caractè
caractères de dé
délimitation et des pour dé
délimiter les trames
caractè
caractè res de transparence.  Utilisé
Utilisée dans la norme 802

Transmission d’
d’information

Détection/Correction
d’erreurs canal
bruit

émetteur récepteur

Causes d’
d’erreurs sur un canal Taux d’
d’erreur sur un canal
 rayonnement électromagné
lectromagnétique nombre de bits erronés
• relais taux d' erreur =
nombre de bits émis
• émetteurs
 10-9 pour les ré
réseaux locaux
 câblage mal isolé
isolé -5
 10 pour le RéRéseau Téléphonique
 effet de distorsion Commuté
Commuté
 taux élevé
levé pour le té
téléphone sans fil

3
Types d’
d’erreurs de transmission Exemple
 Erreurs isolé
isolées  Erreurs en rafales
• un ou quelques bits • plusieurs mots  taille des blocs échangé
changés : 1000
en erreur successifs en erreur
bits
• simples à détecter • difficiles à corriger
• simples à corriger • proportion faible de  taux d’d’erreur : 1/1000
• proportion élevé
levée blocs affecté
affectés
de blocs affecté
affectés erreurs isolé
 isolées
• la plupart des blocs en erreur
 erreurs en rafale (de longueur 100)
• un bloc sur 100 en erreur en moyenne

Deux straté
stratégies possibles Principe des codes
La destination peut :  Exploiter la redondance
 détecter les erreurs, puis demander d’informations
une retransmission ⇒ ajouter des bits de contrôle aux bits de
• code dé
détecteurs d’
d’erreurs donné
données

 détecter et corriger les erreurs


 Corriger est plus difficile que dé
détecter
• codes correcteurs d’
d’erreur
⇒ plus de bits de contrôle

Définitions générales Supré


Suprématie des codes
détecteurs
 Un code (k, n) transforme (code) tout bloc Les codes dédétecteurs sont plus souvent
initial de k bits d’information en un bloc utilisé
utilisés que les codes correcteurs
codé de n bits. mais :
• Le code introduit une redondance puisque
n>=k. • lorsque le canal est unidirectionnel
 Le code est systématique si les k • lorsque la distance est élevé
levée (satellite)
premiers bits du bloc codé sont égaux aux • lorsque les erreurs sont isolé
isolées
bits du bloc initial. Alors les r (r=n-k) les codes correcteurs peuvent (ou
derniers bits forment un champ de doivent) être utilisé
utilisés.
contrôle d’erreur.

4
Mot de code Diffé
Différents codes
d bits de donné
données  Code de contrôle de parité
parité
+
c bits de contrôle  Code de Hamming
=
n bits d’  Codes polynomiaux
d’information (à(à transmettre)

Un tel mot de n bits est appelé  …


appelé un mot
de code

Code de contrôle de parité


parité Le contrôle de parité
Principe : un seul bit (dit de parité
parité) est  Exemple :
• Transmission de caractères utilisant un code de
ajouté
ajouté aux bits de donné
données. représentation (le code ASCII sur 7 bits).

parité
parité paire : le nombre de bits à 1
du mot formé
formé doit être pair.

parité
parité impaire : le nombre de bits à 1
du mot formé
formé doit être impair.  Ce code est capable de détecter toutes les
erreurs en nombre impair. Il ne détecte pas les
erreurs en nombre pair !

Capacité de détection et
Parité longitudinale et transversale
d’autocorrection :
 (LRC : Longitudinal Redundancy Check)  Principe : Une erreur simple modifie
 Le bloc de données est disposé sous une forme simultanément la parité d’un ligne et d’une
colonne.
matricielle (k=a.b). On applique la parité
(uniquement paire) sur chaque ligne et chaque  Correction : inverser le bit situé à l’intersection
de la ligne et de la colonne ayant une parité
colonne. incorrecte.
 On obtient une matrice (a+1, b+1).

5
Distance de Hamming de 2 Distance de Hamming d’un
mots code
Soit C un code (dé
(détecteur et/ou
Il s’
s’agit du nombre de bits qui correcteur)
diffè
diffèrent entre deux mots de code x
et y. Dist(C) Dist(x,y)  x∈C ∧ y
Dist(C) = min { Dist(x,y)
∈C }
1000 1001
⊕ 1011 0001 Il s’
s’agit de la distance minimale entre
= 0011 1000 2 mots du code

Dist(x,y)
Dist(x,y) = 3

Code de Hamming Mot de code de Hamming


Principe : c bits de contrôle (de parité
parité) On numé
numérote les bits de chaque mot
sont ajouté
ajoutés aux d bits de donné
données de de code à partir de 1 :
telle sorte que la sé
séquence des c bits • les bits de contrôle sont placé
placés aux
de parité
parité puisse coder : positions repré
représentant des puissances
• la position d’
d’un bit en erreur (soit d+c de 2
valeurs) • les bits de donné
données sont intercalé
intercalés
• ou l’
l’absence d’
d’erreur (soit 1 valeur)

Il faut donc : 2c ≥ d+c+1

Exemple 1/5 Exemple 2/5


1001000 La liste des bits de parité
parité contrôlant un
+ c3 c2 c1 c0 bit donné
donné est fourni par sa
repré
représentation binaire
⇒ 1 0 0 c3 1 0 0 c2 0 c1 c0  1110 = 10112
le bit 11 est contrôlé
contrôlé par c3, c1 et
11 10 9 8 7 6 5 4 3 2 1 c0

 1010 = 10102
le bit 10 est contrôlé
contrôlé par c3 et c1

6
Exemple 3/5 Exemple 4/5
 910 = 10012 La liste des bits contrôlé
contrôlée par chaque
le bit 9 est contrôlé
contrôlé par c3 et c0 bit de parité
parité est donc sur notre
 810 = 10002 exemple :
le bit 8 est contrôlé
contrôlé par c3 (lui-
(lui-même)  c0 : {1,3,5,7,9,11}

 710 = 01112  c1 : {2,3,6,7,10,11}

le bit 7 est contrôlé


contrôlé par c2, c1 et c0  c2 : {4,5,6,7}

 ...  c3 : {8,9,10,11}

Exemple 5/5 Test à la ré


réception 1/2
Le mot transmis est donc (en parité
parité  A la ré
réception, les diffé
différents test de
paire) : parité
parité sont effectué
effectués.

1 0 0 1 1 0 0 1 0 0 0  Un mot binaire m (de contrôle)


constitué
constitué d ’autant de bits que de
11 10 9 8 7 6 5 4 3 2 1 bits de contrôle est construit.

c0 : {1,3,5,7,9,11}
c1 : {2,3,6,7,10,11}
c2 : {4,5,6,7}
c3 : {8,9,10,11}

Test à la ré
réception 2/2 Code polynomial
Si le contrôle de parité
parité de ci est OK  On considè
considère que les bits d’
d’une
alors séquence binaire sont les coefficients
m[i] ← 0 d ’un polynôme.
Sinon
m[i] ← 1  Exemple :
Fin si p = 110001
⇒ p(x) = x5 + x4 + x0
La valeur de m indique la position du degré
degré de p = 5
bit en erreur ou 0.

7
Arithmé
Arithmétique utilisé
utilisée Division
Arithmé
Arithmétique modulo 2 (i.e. sans retenue) Deux mé
méthodes pour l’
l’effectuer à la
 addition et soustraction = ou exclusif main :

 division binaire
 division
11 0101 1011 0000 / 1 0011  division polynomiale
11000010100000
quotient = 11 0000 1010
11000010100
reste = 1110 1100001010
1110

Code polynomial Emetteur


Principe : l’é
l’émetteur
metteur et le ré
récepteur se Soit D(x) les donné
données à envoyer et k
mettent d’
d’accord sur le choix d’
d’un le degré
degré de G(x)
polynôme dit gégénérateur G(x). D(x)*xk
1) calculer D(x)*x
revient à ajouter k zé
zéros (poids faibles) à
Le codage consiste à ajouter des bits D(x)
de contrôle appelé
appelés : D(x)*xk / G(x)
2) calculer D(x)*x
le total (ou somme) de contrôle on obtient le quotient Q(x) et le reste
checksum R(x)
D(x)*xk - R(x)
3) calculer T(x) = D(x)*x
revient à remplacer les k zé
zéros par R(x)

Exemple Proprié
Propriété
 D(x) = 0101 1100 T(x) est toujours divisible par G(x)
 G(x) = 1 1000 0101 Le dividende moins le reste est
toujours divisible par le diviseur.
 D(x)*xk =
D(x)*x 0101 1100 0000 0000

Illustration en base 10 :
 R(x) = 0100 1101 210 278 / 10 941 donne un reste égal à
2399
 T(x) = 0101 1100 0100 1101 210 278 - 2399 est divisible par 10 941

8
Récepteur Normalisation
 T(x) est le mot transmis par Plusieurs polynômes ont fait l’
l’objet
l’émetteur
’émetteur d’une norme car possé
possédant de bonnes
 T′(x) est le mot reç
reçu par le ré
récepteur proprié
propriétés
 Le ré
récepteur effectue le test suivant:
CRC 12 = x12 + x11 + x3 + x2 + x +1
T′(x) / G(x) donne un reste égal à 0
Si T′
alors CRC 16 = x16 + x15 + x2 + 1
pas d’
d’erreur
sinon CRC CCITT = x16 + x12 + x5 + 1
une erreur
fin si

Normalisation Réalisation
Les codes utilisant CRC 16 et CRC  Les calculs né
nécessaires pour obtenir un
CCITT donnent des champs de champ de contrôle semblent complexes.
contrôle d’
d’erreur sur 16 bits.
 Or un simple registre à décalage suffit.
Ils permettent de dé
détecter :
 En pratique, on utilise presque toujours
• toutes les erreurs simples et doubles des circuits électroniques pour le codage
• toutes les rafales de longueur ≤ 16 et dé
décodage polynomial.
• les rafales de longueur > 17 avec une
probabilité
probabilité supé
supérieure à 99,99%

CRC exemple
 Exemple : CRC sur
4 bits
• M = 1101011011
• G(x) = x4 + x + 1
Contrôle de flux
 CRC = 1110
 Message transmis :
1101011011 1110

9
Contrôle de flux Protocole 1
 Utilisation d'acquittements  Hypothè
Hypothèses
 Gestion de temporisateurs • mémoire tampon infinie
 Numé
Numérotation des trames • canal parfait (pas de pertes ni d'erreurs)
• protocole mono-
mono-directionnel
 Limitation du nombre de trames
 un émetteur
pouvant être envoyé
envoyées par un ré
 récepteur
l'é
l'émetteur

Emetteur Récepteur
Tant que vrai ré
répéter Tant que vrai ré
répéter
p ← coucheReseau.donnerPaquet() t ← couchePhysique.donnerTrame()
t ← construireTrame(p)
construireTrame(p) p ← extrairePaquet(t)
extrairePaquet(t)
couchePhysique.prendreTrame(t) coucheReseau.prendrePaquet(p)
Fin tant que Fin tant que

Protocole 2 Emetteur
 Protocole de type « envoyer et attendre » Tant que vrai ré
répéter
Hypothè
p ← coucheReseau.donnerPaquet()
 Hypothèse levé
levée : mé
mémoire tampon infinie
t ← construireTrame(p)
construireTrame(p)
 Principe couchePhysique.prendreTrame(t)
• le ré
récepteur envoie une trame d'acquittement couchePhysique.attendreAquittement
aprè
après chaque trame reç reçue
()
• l'é
l'émetteur attend de recevoir un acquittement
avant d'é
d'émettre la trame suivante Fin tant que

10
Récepteur Protocole 3
Tant que vrai ré
répéter  Hypothè
Hypothèse levé
levée : canal parfait
t ← couchePhysique.donnerTrame() ⇒ des trames peuvent être erroné
erronées
p ← extrairePaquet(t)
extrairePaquet(t) ⇒ des trames peuvent être perdues

coucheReseau.prendrePaquet(p)  Principe
• Utiliser une mé
méthode de dédétection d’
d’erreurs
couchePhysique.envoyerAcquittemen
• Le ré
récepteur émet une trame d'acquittement si
t() la trame arrivé
arrivée est correcte.
Fin tant que • L'é
L'émetteur ré
ré-émet une trame si aucun ack
reç
reçu et si un certain dé
délai de temporisation a
expiré
expiré

Emetteur Récepteur
Tant que vrai rérépéter
Tant que vrai ré
répéter t ← couchePhysique.donnerTrame()
p ← coucheReseau.donnerPaquet()
Si estCorrecte(t)
estCorrecte(t) alors
t ← construireTrame(p)
construireTrame(p)
booléen ack ← faux
boolé p ← extrairePaquet(t)
extrairePaquet(t)
Tant que ack = faux ré
répéter coucheReseau.prendrePaquet(p)
couchePhysique.prendreTrame(t) couchePhysique.envoyerAcquittement()
ack ← couchePhysique.attendreAquittement() Fin si
Fin Tant que Fin tant que
Fin tant que

Problè
Problème Solution

paquet 1
 En considé
considérant le problè
problème
couche couche pré
précédent :
réseau réseau
• il s’
s’avè
avère né
nécessaire de numé
numéroter les
trame 1 trames pour distinguer deux trame
∆ ack paquet 1 successives.
bruit
trame 1  il est pré
préférable que la trame
ack paquet 1 d'acquittement contienne le numé
numéro
de la trame qui est acquitté
acquittée.

Émetteur Récepteur

11
Fenêtre d’é
d’émission
mission
Protocole 4
 La fenêtre d’é
d’émission
mission indique la liste des
 Protocole à fenêtres d’
d’anticipation numé
numéros de trames dont on attend
(sliding windows).
windows). l’acquittement.

 Deux fenêtres sont gé


gérées par 7 0 7 0 7 0
chaque entité
entité de couche liaison. En 6 1 6 1 6 1
5 2 5 2 5 2
effet : 4 3 4 3 4 3
• Toute entité
entité émettrice possè
possède une e1) e2) e3)
fenêtre d'anticipation appelé
appelée fenêtre
d’émission
’émission 7 0 7 0 7 0
6 1 6 1 6 1
• Toute entité
entité réceptrice possè
possède une 5 2 5 2 5 2
fenêtre d'anticipation appelé
appelée fenêtre de 4 3 4 3 4 3
réception e4) e5) e6)

Pipelinage
Fenêtre de ré
réception
 La fenêtre de ré
réception indique la  Utiliser des fenêtre d’d’anticipation
liste des numé
numéros de trame attendus. permet d’d’utiliser la technique de
pipelinage.
pipelinage.
7 0 7 0 7 0  Cela consiste à envoyer plusieurs
6 1 6 1 6 1
5 2 5 2 5 2 trames successivement sans
4 3 4 3 4 3 attendre de recevoir les trames
r1) r2) r3) d'acquittement.
7 0
6 1
5 2
4 3
r4)

Acquittements Acquittement « individuel »


 Lorsque plusieurs trames doivent
trame 0
être acquitté
acquittées, il est possible :
trame 1
• d’envoyer un acquittement ack 0
trame 2
« individuel » pour chaque trame
• d’envoyer un acquittement « collectif » ack 1 temps
en indiquant ack 2

 le plus grand numé


numéro de trame parmi celles
qui sont acquitté
acquittées
 ou le numé
numéro de la prochaine trame
attendue. Emetteur Récepteur

12
Acquittement « collectif » Erreurs de transmission

trame 0
 Si une trame situé
située au milieu d'une
trame 1
série est perdue ou erroné
erronée ?
trame 2
 Deux techniques de rejet sont
temps
possibles :
ack 2
• technique du rejet total
• technique du rejet sé
sélectif

Emetteur Récepteur

Technique de rejet total Exemple


 Le ré
récepteur rejettent toutes les
trames qui suivent celle qui est
erroné
erronée.
• inconvé
inconvénient : le canal est mal exploité
exploité
• avantage : pas besoin de mé mémoires
tampons

Technique de rejet sé
sélectif Exemple
 Le ré
récepteur accepte les suivantes (en les
stockant) jusqu'à
jusqu'à une certaine limite
donné
donnée par R.
• avantage : le canal est mieux exploité
exploité
• inconvé
inconvénient : besoin de mé
mémoires tampons

13