Couche Liaison de données
10/11/2020 Couche liaison Page 1
Plan
• Introduction
• Délimitation de trames
• Détection d’erreurs
• Contrôle de flux
• Le protocole Ethernet
10/11/2020 Couche liaison Page 2
Introduction
10/11/2020 Couche liaison Page 3
Couche liaison
• Cette couche doit assurer une transmission
exempte d'erreurs sur un canal de
communication.
• Les données sont fractionnées en trames.
LLC
MAC
Couche Physique
10/11/2020 Couche liaison Page 4
Description
• La couche liaison récupère des paquets de la
couche réseau.
• Pour chaque paquet, elle construit une (ou
plusieurs) trame(s).
• La couche liaison envoie chaque trame à la
couche physique.
10/11/2020 Couche liaison Page 5
Description
couche réseau couche réseau
paquet paquet
couche liaison couche liaison
trame trame
bits
couche physique couche physique
Emetteur Récepteur
10/11/2020 Couche liaison Page 6
Services offerts
• Gestion (délimitation) de trames
• Contrôle d’erreurs
• Contrôle de flux
• Contrôle d'accès à un canal partagé (MAC)
10/11/2020 Couche liaison Page 7
Délimitation de trames
10/11/2020 Couche liaison Page 8
Délimitation des trames
• Il existe trois méthodes :
– Compter les caractères
– Utiliser des champs délimiteurs de trame
• Ils se situent en début et en fin de trame
• Des bits (ou caractères) de transparence sont
nécessaires
– Violer le codage normalement utilisé dans la
couche physique
10/11/2020 Couche liaison Page 9
Compter les caractères
• On utilise un champ dans l'en-tête de la
trame pour indiquer le nombre de caractères
de la trame
• Problème : si la valeur du champ est
modifiée au cours de la transmission
• Méthode rarement utilisée seule
10/11/2020 Couche liaison Page 10
Exemple
Trames émises
06 ‘S’ ‘U’ ‘P’ ‘E’ ‘R’ 03 ‘L’ ‘E’ 06 ‘C’ ‘O’ ‘U’ ‘R’ ‘S’
Trames reçues
06 ‘S’ ‘U’ ‘P’ ‘E’ ‘R’ 04 ‘L’ ‘E’ 06 43 ‘O’ ‘U’ ‘R’ ‘S’
code ASCII de ‘C’
10/11/2020 Couche liaison Page 11
Utiliser des délimiteurs
• Un fanion (délimiteur) est placé :
– au début de chaque trame
– à la fin de chaque trame (en fait, au début de la
suivante)
• Un fanion (flag) = séquence particulière de bits
• Des bits de transparence sont alors nécessaires
pour qu’une séquence binaire dans la trame ne
corresponde accidentellement au fanion.
10/11/2020 Couche liaison Page 12
Exemple
• Fanion (ou Préambule) : 01111110
• Bit de transparence : 0 inséré après toute
séquence de cinq 1 successifs dans la trame.
• Technique utilisée dans :
– HDLC
– PPP
10/11/2020 Couche liaison Page 13
Exemple
Données :
01011001111110
Trame :
01111110 010110011111010 01111110
10/11/2020 Couche liaison Page 14
Utiliser des fanions
• Avantages
– permet toujours de retrouver la synchronisation
– permet l'envoi de trames de tailles quelconques
– technique la plus simple
• Cette technique est utilisée également en
considérant des caractères de délimitation et
des caractères de transparence.
10/11/2020 Couche liaison Page 15
Violer le codage
• Utilisable lorsque le codage sur le support
physique contient des redondances
• Par exemple :
– 0 = impulsion positive puis négative
– 1 = impulsion négative puis positive
– On peut donc utiliser les combinaisons
positive-positive et négative-négative pour
délimiter les trames
• Utilisée dans la norme 802
10/11/2020 Couche liaison Page 16
Détection d’erreurs
10/11/2020 Couche liaison Page 17
Transmission d’information
canal
bruit
émetteur récepteur
10/11/2020 Couche liaison Page 18
Causes d’erreurs sur un canal
• rayonnement électromagnétique
– relais
– émetteurs
• câblage mal isolé
• effet de distorsion
10/11/2020 Couche liaison Page 19
Taux d’erreur sur un canal
nombre de bits erronés
taux d' erreur
nombre de bits émis
• 10-9 pour les réseaux locaux
• 10-5 pour le RTC
• taux élevé pour le téléphone sans fil
10/11/2020 Couche liaison Page 20
Types d’erreurs de transmission
• Erreurs isolées • Erreurs en rafales
– simples à détecter – difficiles à détecter
– simples à corriger – difficiles à corriger
– proportion élevée de – proportion faible de
blocs affectés blocs affectés
10/11/2020 Couche liaison Page 21
Mot de code
d bits de données
+
c bits de contrôle
=
n bits d’information (à transmettre)
Un tel mot de n bits est appelé un mot de code
10/11/2020 Couche liaison Page 22
Distance de Hamming de 2 mots
Il s’agit du nombre de bits qui diffèrent entre
deux mots de code x et y.
1000 1001
1011 0001
= 0011 1000
Dist(x,y) = 3
10/11/2020 Couche liaison Page 23
Distance de Hamming d’un code
Soit C un code (détecteur et/ou correcteur)
Dist(C) = min { Dist(x,y) xC y C }
Il s’agit de la distance minimale entre 2 mots
du code
10/11/2020 Couche liaison Page 24
Capacité d’un code
• Pour qu’un code soit capable de détecter d
erreurs, sa distance de Hamming doit être
égal à d+1.
• Pour qu’un code soit capable de corriger d
erreurs, sa distance de Hamming doit être
égal à 2*d+1.
10/11/2020 Couche liaison Page 25
Exercice
Soit le code C = { 0000 0000, 0000 1111,
1111 0000, 1111 1111 }
– quel est sa distance ?
– si un récepteur reçoit 0000 0111, que peut-il en
conclure ?
– est-il certain de pouvoir reconnaître le mot
original ?
10/11/2020 Couche liaison Page 26
Différents codes
• Code de contrôle de parité
• Codes polynomiaux
• …
10/11/2020 Couche liaison Page 27
Code de contrôle de parité
Principe : un seul bit (dit de parité) est ajouté
aux bits de données.
• parité paire : le nombre de bits à 1 du mot
formé doit être pair.
• parité impaire : le nombre de bits à 1 du mot
formé doit être impair.
10/11/2020 Couche liaison Page 28
Exemple
• parité paire
100 0001 : bits de données
+0 : bit de contrôle
= 0100 0001 : mot de code
• parité impaire
101 1001 : bits de données
+1 : bit de contrôle
= 1101 1001 : mot de code
10/11/2020 Couche liaison Page 29
Code de contrôle de parité
Distance de Hamming = 2
– peut détecter une erreur simple
– ne peut détecter un nombre pair d’erreurs
– peut détecter un nombre impair d’erreurs
– ne peut corriger une erreur simple
Code détecteur
10/11/2020 Couche liaison Page 30
Code polynomial
• On considère que les bits d’une séquence
binaire sont les coefficients d ’un polynôme.
• Exemple :
p = 110001
p(x) = x5 + x4 + x0
degré de p = 5
10/11/2020 Couche liaison Page 31
Arithmétique utilisée
Arithmétique modulo 2 (i.e. sans retenue)
• addition et soustraction = ou exclusif
• division
11 0101 1011 0000 / 1 0011
quotient = 11 0000 1010
reste = 1110
10/11/2020 Couche liaison Page 32
Division
Deux méthodes pour l’effectuer à la main :
• division binaire
• division polynomiale
10/11/2020 Couche liaison Page 33
Code polynomial
Principe : l’émetteur et le récepteur se mettent
d’accord sur le choix d’un polynôme dit
générateur G(x).
Le codage consiste à ajouter des bits de
contrôle appelés :
le total (ou somme) de contrôle (checksum)
CRC
10/11/2020 Couche liaison Page 34
Emetteur
• Soit D(x) les données à envoyer et k le
degré de G(x)
1) calculer D(x)*xk
revient à ajouter k zéros (poids faibles) à D(x)
2) calculer D(x)*xk / G(x)
on obtient le quotient Q(x) et le reste R(x)
3) calculer T(x) = D(x)*xk - R(x)
revient à remplacer les k zéros par R(x)
10/11/2020 Couche liaison Page 35
Exemple
• D(x) = 0101 1100
• G(x) = 1 1000 0101
• D(x)*xk =
0101 1100 0000 0000
• R(x) = 0100 1101
• T(x) = 0101 1100 0100 1101
10/11/2020 Couche liaison Page 36
Propriété
T(x) est toujours divisible par G(x)
Le dividende moins le reste est toujours
divisible par le diviseur.
Illustration en base 10 :
210 278 / 10 941 donne un reste égal à 2399
210 278 - 2399 est divisible par 10 941
10/11/2020 Couche liaison Page 37
Récepteur
• T(x) est le mot transmis par l’émetteur
• T(x) est le mot reçu par le récepteur
• Le récepteur effectue le test suivant :
Si T(x) / G(x) donne un reste égal à 0 alors
pas d’erreur
sinon
une erreur
fin si
10/11/2020 Couche liaison Page 38
Contrôle de flux
10/11/2020 Couche liaison Page 39
Contrôle de flux
• Utilisation d'acquittements
• Gestion de temporisateurs
• Numérotation des trames
• Limitation du nombre de trames pouvant
être envoyées par l'émetteur
10/11/2020 Couche liaison Page 40
Protocole « send and wait »
• Principe
– Utiliser une méthode de détection d’erreurs
– Le récepteur émet une trame d'acquittement si la trame
arrivée est correcte.
– L'émetteur ré-émet une trame si aucun ack reçu et si un
certain délai de temporisation a expiré
10/11/2020 Couche liaison Page 41
Problème
paquet 1
couche couche
réseau réseau
trame 1
bruit
ack paquet 1
trame 1
ack paquet 1
10/11/2020
Émetteur Couche liaison
Récepteur Page 42
Solution
• En considérant le problème précédent :
– il s’avère nécessaire de numéroter les trames
pour distinguer deux trame successives.
• De plus :
– il est préférable que la trame d'acquittement
contienne le numéro de la trame qui est
acquittée.
10/11/2020 Couche liaison Page 43
Protocole à fenêtre d’anticipation
• Protocole à fenêtres d’anticipation (sliding
windows).
• Deux fenêtres sont gérées par chaque entité
de couche liaison. En effet :
– Toute entité émettrice possède une fenêtre
d'anticipation appelée fenêtre d’émission
– Toute entité réceptrice possède une fenêtre
d'anticipation appelée fenêtre de réception
10/11/2020 Couche liaison Page 44
Fenêtre d’émission
• La fenêtre d’émission indique la liste des numéros
de trames dont on attend l’acquittement.
• Elle possède une taille maximale maxE indiquant
le nombre maximal de trames qui peuvent être
envoyées sans se préoccuper des acquittements.
• Elle possède une taille courante variable curE de
valeur inférieure ou égale à maxE. On a toujours :
0 curE maxE
10/11/2020 Couche liaison Page 45
Bornes
• La fenêtre est représentée par deux
frontières (bornes).
– la frontière droite (borne supérieure) est
incrémentée de 1 à chaque envoi
– la frontière gauche (borne inférieure) est
incrémentée de 1 à chaque acquittement reçu
correspondant à la trame associée à cette
frontière
10/11/2020 Couche liaison Page 46
Mémoires tampons
• Coté émetteur, maxE mémoires tampons
sont nécessaires pour stocker les trames.
• En effet, il est possible qu’il faille envoyer à
nouveau une ou plusieurs trames.
10/11/2020 Couche liaison Page 47
Exemple
• Considérons que :
– les trames soient numérotés de 0 à 7 (sur 3 bits)
– maxE = 3
– curE = 0 (initialement)
10/11/2020 Couche liaison Page 48
Exemple
7 0 7 0 7 0
6 1 6 1 6 1
5 2 5 2 5 2
4 3 4 3 4 3
e1) e2) e3)
7 0 7 0 7 0
6 1 6 1 6 1
5 2 5 2 5 2
4 3 4 3 4 3
e4) e5) e6)
10/11/2020 Couche liaison Page 49
Fenêtre de réception
• La fenêtre de réception indique la liste des
numéros de trame attendus.
• La fenêtre de réception possède une taille R
qui ne varie pas (sauf cas particuliers).
10/11/2020 Couche liaison Page 50
Bornes
• La fenêtre est représentée par deux
frontières (bornes).
• les deux frontières sont toutes deux
incrémentées de 1 chaque fois qu’une trame
correcte correspondant à la frontière droite
(borne inférieure) est reçue.
10/11/2020 Couche liaison Page 51
Exemple
7 0 7 0 7 0
6 1 6 1 6 1
5 2 5 2 5 2
4 3 4 3 4 3
r1) r2) r3)
7 0
6 1
5 2
4 3
r4)
10/11/2020 Couche liaison Page 52
Pipelinage
• Utiliser des fenêtre d’anticipation permet
d’utiliser la technique de pipelinage.
• Cela consiste à envoyer plusieurs trames
successivement sans attendre de recevoir les
trames d'acquittement.
• Il est important de bien régler la largeur des
fenêtres pour améliorer l'efficacité du
pipelinage.
10/11/2020 Couche liaison Page 53
Calcul de l’efficacité
• Temps d’émission Te(t) = temps nécessaire pour
que la trame t passe sur le canal.
Te(t) = length(t)/d où :
d = débit du canal (en bits/s)
length(t) = longueur de la trame t (en bits)
• Temps de propagation Tp = temps nécessaire pour
qu’un bit passe de l’émetteur au récepteur.
• Temps de traitement Tt = temps nécessaire au
récepteur pour traiter une trame.
10/11/2020 Couche liaison Page 54
Calcul de l’efficacité
• Hypothèse : toutes les trames sont de longueur m.
• Temps d’attente Ta = temps nécessaire pour
recevoir l’acquittement d’une trame émise.
Ta = Te(t) + Tp + Tt + Te(ack) + Tp où :
– t désigne une trame quelconque
– ack désigne une trame quelconque d’acquittement.
• Temps d’émission maximale Tem = temps
maximal pendant lequel il est possible d’émettre
des trames. Tem = maxE*m/d
10/11/2020 Couche liaison Page 55
Efficacité
• Efficacité :
100% si Tem >= Ta
Tem/Ta sinon
• NB : calcul théorique ne prenant en compte
– ni les erreurs de transmission
– ni les problèmes de surcharge du récepteur
10/11/2020 Couche liaison Page 56
Exercice
• Soient d= 50kbits/s, m = 1000 bits, Tp =
250ms, Tt et ack considérés comme
négligeables (nuls)
• Calculer l’efficacité pour maxE = 1
• Calculer l’efficacité pour maxE = 25
10/11/2020 Couche liaison Page 57
Le protocole Ethernet
10/11/2020 Couche liaison Page 58
Ethernet : les raisons du succès
• Toutes les stations sont égales vis-à-vis du réseau : il n'y a
pas de notion de maître/esclave
•La méthode d'accès employée est distribuée entre tous les
équipements connectés
• On peut relier ou retirer une machine du réseau sans
perturber le fonctionnement de l'ensemble
• Une évolution constante
. Ethernet et IEEE 802.3 : la définition d'origine à
10Mbps
• Fast Ethernet l'extension à 100Mbps
• Gigabit Ethernet l'extension à 1000Mbps ou 1Gbps
• Et aujourd'hui le 10 GBE l'extension à 10Gbps
Trame de données Ethernet
10/11/2020 Couche liaison Page 60
Le préambule
• Il ne fait pas partie de la trame
• Permet à l'horloge du récepteur de se synchroniser sur
l'émetteur
• Possible de perdre une partie du préambule lors de la
transmission
• 2 derniers bits du préambule à 1 pour la trame ethernet (eq
au SOF)
• Préambule : 7 octets
– 10101010 = AAh
– Donnée régulière
synchronisation des horloges
• Start Frame Delimitor : 1 octet
– 10101011 = ABh
– Fin du préambule, début des données
Les adresses MAC
• Taille de 6 octets
• Les 3 premiers font référence au
constructeur et sont attribués par l'IEEE
• @source est unicast
• @destination est unicast, multicast,
broadcast([Link])
Le champ longueur/type
• Taille de 2 octets
• Type de protocole de niveau 3 pour
Ethernet
Valeur du champ protocole Protocole
0x0800 IP
0x0806 ARP
0x86DD IPv6
0x8863 Découverte PPP
0x8864 Session PPP
Les données
• Informations transmises strictement
• De 46 à 1500 octets
• Padding éventuel à 64 octets
• La norme IP impose :
– Maximum Transfer Unit octets par paquets.
– Le MTU dépend du réseau
• Internet ≥ 576 octets
• Ethernet = 1500 octets
Le FCS
• Frame check sequence (4 octets)
• Valide l'intégrité de la trame à 1 bit près
• CRC qui englobe tous les champs de la
trame (du préambule exclu au FCS exclu)
• Si erreur simple, correction automatique
Exercice
• Analyser la trame Ethernet suivant:
AA AA AA AA AA AA AA AB ff ff ff ff ff
ff 09 ab 14 d8 05 48 08 06 00 01 08 00 06
04 00 01 09 ab 14 d8 05 48 7d 05 30 0a 00
00 00 00 00 00 7d 12 6e 03 00 00 00 00 00
00 00 0000 00 00 00 00 00 00 00 00 00 XX
XX XX XX
Ou XXXXXX est le champ FCS
10/11/2020 Couche liaison Page 66
Trames erronées
• Runt = trame trop courte (<64 octets)
• Jabber = trame trop longue (>1518 octets)
• Misaligned Frame= nb de bits non
divisibles par 8
• Bad FCS= mauvais CRC
• Les collisions (réseau sain<1%)
Acquisition du canal
• Le problème :
– Chaque machine peut utiliser le canal
– Pas d’arbitre donnant la parole
– Comment ne pas parler simultanément ?
• La solution Ethernet/802.3
– CSMA : Carrier Sensing Multiple Access
– « Conversation civilisée »
– On n’interrompt pas une communication
– On écoute, on attend la fin, et on enchaîne
68
Collision, vous avez dit collision ?
DTE1 DTE2
Collision !
DTE2 voit la collision
DTE1 ne voit rien !
69
Collision inaperçue
• Dans l’exemple:
– DTE2 voit la collision
– DTE1 ne voit rien
– DTE2 ré-émet sa trame, puisque collision
– DTE1 en reçoit une deuxième copie !!!
• Eviter les collisions discrètes
– Eviter les trames trop courtes
– Limiter la longueur du réseau
70
Collision
Les techniques d’accès au
medium ont pour but d’interdire
deux stations d’utiliser le
medium au même temps.
Collision
Le time-slot est le temps mis
pour qu’un message
envoyé d’une des extrémités de
la ligne face un aller et retour.
Le Ts doit être:
Avec Mmin est le nombre min
des bits par trame
La solution Ethernet
• La norme impose :
– Round-Trip-Delay < 50 ms.
• A 10 Mbit/s, 50 ms 62,5 octets
• >64 octets Détection de collision garantie
• 1 trame contient au moins 72 octets
• 26 octets de protocole
• 46 octets de données minimum
• Si moins de 46 octets à envoyer :
– Padding (ajout d’octets de bourrage)
– Ex : requête ARP = 28 octets + 18 padding
72
La méthode d’accès CSMA/CD
• La méthode d'accès CSMA/CD :Carrier Sense Multiple Access
with Collision Detect;
• Chaque station est libre de communiquer à n'importe quel
moment.
• Chaque station envoyant un message vérifie qu'aucun autre
message n'a été envoyé en même temps par un autre maitre (pas
de collision).
• Si c'est le cas, les deux maitres patientent pendant un temps
aléatoire avant de recommencer à émettre.
• Principe:
– Emission
– Si collision
• Arrêt d’émission
• Attente aléatoire
• Ré-émission