Vous êtes sur la page 1sur 48

ACADEMIE MILITAIRE FONDOUK JEDID

DIRECTION DE L’ENSEIGNEMENT
UNIVERSITAIRE 
Département : Télécommunications
Enseignante : Mme Faïza Tabbana
Année Universitaire : 2020-2021

Module : Transmission de données


Chapitre 3 : Couche liaison
1
Plan

• Généralités et Présentation
• Détection/correction d’erreurs :
– Code de Hamming
– Code CRC
– Contrôle de flux : gestion des ACK
• Efficacité du Protocole
• Protocole HDLC
2
Partie I
Généralités
Présentation
3
4
Objectifs (1)
• Utiliser les services fournis par la couche physique.
• Les bits à envoyer sont regroupés en trames suivant un schéma
précis :
– taille de la chaîne binaire à envoyer,
– champ de contrôle sur ces données,
– formes des adresses des émetteurs et des récepteurs.
• La détection d’erreurs permet de vérifier si une trame est
arrivée sans avoir subi de modifications sur le média de
transport.
• Certaines méthodes permettent de corriger les erreurs
détectées.

5
Objectifs (2)

• Le récepteur doit être capable de reconstituer les


trames à partir d’une chaîne binaire provenant du
support physique.
• Pour cela, il faut convenir d’un format de trames entre
l’émetteur et le récepteur.
• Plusieurs techniques peuvent être utilisées :
– la taille en bits d’une trame est fixée
– la taille de la trame est transmise au destinataire
– des fanions sont utilisés pour repérer le début et la fin de la
trame
6
Fonctions
• Fournir les services nécessaires pour établir, maintenir et libérer les connexions
• Formatage de données sous forme de trames : car la couche physique
transmet une succession continue de bitssans connaître leur signification.
• Contrôle des erreurs : utilisation conjointe de codes détecteurs d'erreurs.
• Contrôle de flux : éviter la perte de trames à cause de la limitation des
ressources allouées. d'un mécanisme d'acquittement et de retransmission
en cas d'erreur
• Gestion de la liaison : pour un service avec connexion (choix du sens de
transmission, choix des paramètres de communication, réinitialisation de
la connexion en cas d'erreur).

7
Services
• Trois types de services prévus pour la couche liaison :
– Service sans connexion et sans acquittement : utilisé quand
le support est très fiable et le contrôle des erreurs est assuré
par une couche supérieure ou quand le trafic est isochrone.
– Service sans connexion et avec acquittement : plus fiable
que le précédent (la livraison est assurée), mais des trames
peuvent être dupliquées et/ou arriver dans un mauvais ordre.
– Service avec connexion : canal fiable entre deux machines
offert à la couche réseau ; livraison garantie, pas de
duplication de trames, respect de l'ordre.
8
Protocole de liaison de données

• Rappel un protocole définit


Le format des trames échangées
la sémantique des trames échangés
Les règles d’échanges
• Messages échangés appelées trames :
Trame = LPDU
LPDU = LSDU + LPCI

9
Trames quelques généralités
• Une trame est une suite de bits
• Selon le protocole elle peut être de taille fixe ou variable, mais
bornée
 Ethernet de taille variable
 ATM de taille fixe (53 octets)
• Délimitation explicite ou implicite
 Utilisation de fanions de début et de fin de trames
• La structure varie selon le protocole mais souvent divisée en trois
parties : entête, données et terminaison
• L’entête et la terminaison forment le LPCI

10
Gestion des erreurs de transmission

• Objectif : rendre transparentes les erreurs de transmission de


trames aux couches supérieures.
• Détection des erreurs :
– Signaler qu’une trame reçue est différente de celle envoyée.
– Bit de parité simple ou croisée
– Code CRC (Code de Redondance Cyclique)
• Correction des erreurs :
– Transmettre des données supplémentaires qui permettront
éventuellement de corriger les trames erronées.
– Code de Hamming.
11
Présentation (2)
• Il existe deux catégories de code :
– les codes détecteurs d’erreurs,
– les codes correcteurs d’erreurs.
• Le code de Hamming :
– un code détecteur et correcteur d’erreurs.
• Le CRC (Cycle Redundancy Check) :
– un code détecteur d’erreurs.
12
Code de Hamming : Présentation (1)

• Des canaux de transmission imparfaits entraînant des erreurs


lors des échanges de données.
• Probabilité d’erreur sur une ligne téléphonique : P=10−4.
 Méthodes de détection et de correction des erreurs (couche 2).
• Principe général :
– Chaque suite de bits (trame) à transmettre est augmentée par une
autre suite de bits dite de redondance ou de contrôle.
– Pour chaque suite de m bits transmis, on ajoute n bits. On dit
alors que l’on utilise un code C(l, m) avec l = m+n .
– À la réception, on effectue l’opération inverse et les bits ajoutés
permettent d’effectuer des contrôles à l’arrivée.
13
Le code de Hamming (2)
• Structure d’un mot de code de Hamming
– m bits du message à transmettre et n bits de parité.
– longueur totale du bloc de données : l=2n −1
– longueur du message : m = (2n −1)−n
 on parle de code x −y où x = n+m et y = m.
• Exemple de code de Hamming :
– Les nombres de bits de correction, de données pour
différentes valeurs de n :
– Exemple 1: n=3, m=4, l=7 ; Exemple 2 : n=4 m=11 l=15;
Exemple 3 : n=5 m=26 l=31
14
Le code de Hamming (3)

• Bits de contrôle de parité Ci : en


position 2i pour i=0,1,2,...
• Les bits du message Dj occupent le
reste du message.

15
Code de Hamming :
Retrouver l’erreur

• Si les bits de contrôle de réception C’2C’1C’0 valent 0, il n’y a


pas d’erreurs sinon la valeur des bits de contrôle indique la
position de l’erreur entre 1 et 7.
• Si C’0 vaut 1, les valeurs possibles de C’2C’1C’0 sont 001, 011,
101, 111, c’est-à-dire 1, 3, 5, 7.
• Si C’1 vaut 1, les valeurs possibles de C’2C’1C’0 sont 010, 011,
110, 111, c’est-à-dire 2, 3, 6, 7.
• Si C’2 vaut 1, les valeurs possibles de C’2C’1C’0 sont 100, 101,
110, 111, c’est-à-dire 4, 5, 6, 7.

16
Code de Hamming :
Exercice 1
• Y a-t-il une erreur dans le mot de Hamming suivant :
1010110?

17
Code de Hamming : Exercice 2:
Émission pour un contrôle de parité pair

– C2 est calculé par rapport aux bits d’indice 7, 6, 5 et


4.
– C1 est sa valeur calculé par rapport aux bits
d’indice 7, 6, 3 et sa position 2.
– C0 est calculé par rapport aux bits d’indice 7, 5, 3 et
sa position 1.
• On souhaite envoyer le message 1010,
compléter le mot de Hamming correspondant :
101_0_ _
18
Code de Hamming : Exercice 3

Soit un mot de Hamming de longueur 15


1 0 1 1 0 1 111011011
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
1.Quels sont les bits de contrôle de parité?
2.Quel est le message reçu?
3.Est-ce que le message reçu correspond au message
transmis?
4.Quel a été le message transmis?
19
Code de Hamming : Exercice 4
On utilise un code correcteur de Hamming 7/4
(on transmet 7 bits utiles avec 4 bits de contrôle)
pour transmettre 1010101.
1.Quelle est la suite effectivement transmise ?
2.Sachant que la valeur reçue : 10100101011,
contient une seule erreur, retrouver où elle a eu
lieu et la suite de bits initialement transmise.

20
Code CRC (1)

• Représentation sous forme polynomiale des suites de bits à


transmettre : M =m1m2...mn
 représentée par le polynôme I(x) = mn +mn−1x +...+m1xn−1
• Exemple : La suite 11000101 est représentée par le polynôme
x7+x6+0x5+0x4+0x3+x2+0x +1 = x7+x6+x2+1
• Utilisation de polynômes générateurs possédant des propriétés
mathématiques particulières :
– CRC-12 = x12+x11+x3+x2+x +1
– CRC-16 = x16+x15+x2+1
– CRC-CCITT = x16+x12+x5+1
– CRC-32 = x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x +1
21
Code CRC (2)

• En émission :
– on ajoute au message à émettre un code de contrôle tel que
le polynôme correspondant au message plus le code de
contrôle soit divisible par le polynôme générateur choisi.
• En réception :
– Le message reçu qui contient les données et le CRC doit
être divisible par le polynôme générateur.
– On vérifie donc par une division euclidienne en base 2 que
le reste de la division est nul.

22
Code CRC (3)
• Émission d’un mot :
– On choisit un polynôme générateur puis on le transforme en un mot binaire.
– Exemple : avec le polynôme générateur x4+x2+x, on obtient 10110.
– On ajoute m zéros au mot binaire à transmettre où m est le degré du
polynôme générateur.
– Exemple : on souhaite transmettre le mot 11100111 en utilisant le
polynôme générateur x4+x2+x, on obtient alors 111001110000.
– On va ajouter itérativement à ce mot, le mot correspondant au polynôme
générateur jusqu’à ce que le mot obtenu soit inférieur au polynôme
générateur. Ce mot obtenu correspond au CRC à ajouter au mot avant de
l’émettre.
– On effectue donc une division euclidienne binaire dans laquelle on ne tient
pas compte du quotient.

23
Code CRC (4)
Exemple d’émission d’un mot
• Exemple du calcul du CRC avant émission d’un mot :

• Le CRC est donc 1110 et le mot à transmettre 11100111 1110.

24
Code CRC (5)
Réception d’un mot
• Vérification du mot à la réception d’un mot :

• Le reste de la division est nul, il n’y a donc pas d’erreurs.


25
Code CRC ()

26
Exercice

On utilisera le polynôme générateur x4+x2+x.


1. On souhaite transmettre le message suivant :
1111011101, quel sera le CRC à ajouter ?
2. Même question avec le mot 1100010101.
3. Je viens de recevoir les messages suivants :
1111000101010, 11000101010110, sont-ils corrects
?

27
Exercice
On désire se protéger contre des erreurs bit assez
fréquente. On va utiliser un code polynomial pour
protéger chaque mots de 8 bits d'information avec 3
bits de contrôle placés à la fin du groupe. On veut
utiliser le polynôme suivant : G(x) = x3+x2+1.
Question : Donner le mot de code généré pour le
groupe 0101011011011001.

28
Gestion des acquittements (1)

• Problèmes des erreurs :


– Deux types d’erreurs peuvent se produire :
détection d’une erreur de transmission et perte
d’une trame.
– Comment être sûr que les trames sont arrivées
(ou pas) correctement au destinataire => par
l’envoi d’un message d’acquittement à
l’émetteur.
29
Gestion des acquittements (2)

• Protocole d’attente/réponse (Stop and Wait) : envoi


d’une trame jusqu’à la réception d’un acquittement.

30
Gestion des acquittements (3)

• Transmission avec anticipation, retransmission en


continu
– trames envoyées les unes après les autres
– une trame arrive sans erreur => envoi d’un acquittement
pour la trame
– une trame arrive erronée => pas d’envoi d’acquittement et
les trames suivantes ignorées jusqu’à la réémission de la
trame erronée
– même ordre de traitement des trames côté émetteur et côté
récepteur

31
Gestion des acquittements (4)

32
Gestion des acquittements (5)

• Transmission avec anticipation, retransmission sélective


– une trame arrive erronée => envoi d’un acquittement
négatif
– on ne ré-émet que les trames erronées

33
Efficacité du protocole

34
Le protocole HDLC (1)

• Exploitation full duplex de la liaison


• Basé sur l’élément binaire:
 pas d’interprétation du contenu
 transparence par rapport aux codes éventuellement
utilisés
• Protocole synchrone
• Fenêtre d’anticipation de taille 8 (sur 3 bits)
• Protocoles dérivés: LAP (Link Access Protocol) A, B,
D
35
Le protocole HDLC (2)

• Fanion: 01111110
=>Ajout d’un 0 après cinq 1 consécutifs dans les données
• Adresse: identifie l’ETTD destinataire.
• Commande: informations nécessaires à l’interprétation de la
trame.
• Données: n’importe quelle information (longueur arbitraire)
• Contrôle: Le Contrôle d’erreur est réalisé par un code CRC

36
Types de trames

• 3 sortes de trames identifiées par le champ de


commande:

37
Trame information

• Sert à l’envoi des données provenant de la couche


supérieure.
• Format du champ Commande:

38
Trame Supervision

• P/F = invitation à émettre s’il provient d’une commande, fin lorsqu’il provient
d’une réponse
• N(R) = numéro de séquence en réception

39
Le champ «type»

• RR (Receive Ready): utilisé pour


– indiquer que le récepteur est prêt à recevoir
– Accuser réception des trames reçues de numéro de séquence
N(R)-1
• RNR (Receive Not Ready): indiquer un état
d’occupation du récepteur + ack trames N(R)-1
• Rej (Reject): demande de retransmission des trames à
partir de N(R)
• Srej (Selective Reject): Idem Rej mais uniquement pour
trame n° N(R)
40
Trame Unnumbered

• Trame non numérotée, ou de gestion

41
Sous-niveaux de la couche
Liaison
• Pour les réseaux locaux, la norme IEEE divise la
couche liaison en 2 sous-couches :

– Les technologies d’accès au support (Medium Access


Control = MAC). Commun à toutes les stations connectées
sur le réseau local.
– Procédure de communication : niveau de commande du lien
logique (Logical Link Control = LLC). Cela décrit la
manière de prélever les informations du support bit par bit.

42
LLC : Logical Link Control
Les classes
• 3 classes de services rendus par la couche LLC aux
couches supérieures :
– LLC1 : service sans connexion et sans acquittement. Le
travail est fait dans les couches supérieures ou on accepte de
perdre des données (ex : visio conf et temps réel)les couches
supérieures assurent la reprise en cas d’erreur).
– LLC2 : service avec connexion (pour les transmissions
longues de fichiers,).
– LLC3 : service sans connexion et avec acquittement pour
éviter de maintenir une table active : datagramme. On
écoute en permanence car il y a des diffusion d’écoute.
43
LLC: caractéristiques

• Assure le contrôle de flux sans connexion pour LLC3.


Mécanisme de type « fenêtre » (buffer d’anticipation) avec
connexion pour LLC2.
• Assure le contrôle d’erreurs à l’aide d’un CRC (contrôle
de redondance cyclique) de 32 bits qu’il rajoute au niveau
MAC.
• NOTE : En Ethernet, c’est la couche MAC qui détecte les
collisions et qui demande la ré-émission.

44
MAC :Medium Acces Control

• Cette sous-couche a pour rôle de :


– gérer l’accès au support physique car il s’agit d’une
liaison multipoint,
– structurer les bits d’information en trames,
– gérer les adresses physiques (dites MAC) des cartes
réseaux.
• Elle est indépendante du support de transmission :
câble cuivre, fibre optique, onde hertzienne …

45
Adresse physique
• Dans le cas d’une liaison multipoint, il est nécessaire
de disposer d’une adresse physique pour chaque
machine.
• Les réseaux Ethernet, Token Ring et FDDI utilisent le
même type d’adressage : l’adressage MAC.
• Cette adresse (sur 48 bits) permet d’identifier de
manière unique un nœud dans le monde: 24 bits pour
le constructeur et 24 bits pour la carte elle-même

46
Soit une liaison de données entre deux stations A et B
utilisant le protocole HDLC (cf. Annexe). La suite ci-
dessous arrive à la station B. S =
0111111000000010001010011101111101001111100
0010101100111110000101000111111001111110011
1111000000010100010010010111011111010101111
110
1. Quelles sont les trames ?
2. Quels sont les éléments binaires après traitement de la
transparence binaire ?
3. Quels sont les champs et leurs signification ?
47
CRC, Hamming

On veut transmettre le message composé du mot


binaire : 11001100110
1. Code de Hamming : Quels sont les bits de contrôle à
ajouter pour obtenir un message complet ? Quel est
le mot complet qu'on transmettra alors ? Justifier.
2. CRC : Quel code CRC doit-on lui adjoindre si on
utilise le polynôme générateur x4+x2+x ? Quel mot
obtiendra-t-on alors ?

48

Vous aimerez peut-être aussi