Réseaux - Informatiques-Partie 3

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 37

La couche liaison de données

niveau trame
Liaison de données : Fonctionnalités

• Niveau OSI = 2
- Fournit les procédures et les moyens fonctionnels nécessaires à :
• Établir une connexion (ex: choix du mode de fonctionnement)
• Maintenir (transferts uni ou bidirectionnels) et libérer la connexion
- Achemine des trames sur la liaison physique
- Détecte et corrige les erreurs de transmission, provoque des
retransmissions en cas d'anomalie
- Contrôle de flux entre les nœuds du réseau permet de cadencer la
capacité d’émission à celle du récepteur.
- Contrôle d’accès au support, si le support est partagé, il faut un
mécanisme pour gérer le droit à l’accès au support(cas des LAN)
La couche liaison de données
Liaison de données : Fonctionnalités

La couche 2 d’OSI est découpée en :


✓Une couche "basse" : MAC (Medium Access Control):
Contrôle la méthode d'accès au support physique partagé
✓ Une couche "haute" : LLC (Logical Link Control)
(IEEE 802.2)Liaison de données à proprement parler
pour le contrôle la qualité de la transmission

LLC Bloc de Données


OSI = 2
= TRAMES
MAC

OSI = 1 Support Physique Trains de bits


Contrôle d’erreurs
• Pourquoi? Taux moyen d'erreurs de transmission sur un
circuit de données de l'ordre de 10-5 (lignes analogiques
de faible qualité)
• Convient pour la transmission de la voix ou des images
• 10-10 nécessaire pour la transmission des données

• Comment: le contrôle d’erreurs consiste à savoir:


✓ Comment détecter une erreur sur le flux binaire?
✓Comment la localiser?
✓ Comment la corriger?
Deux stratégies possibles
• Principes des codes:
– Exploiter la redondance d’informations
• Ajouter des bits de contrôle aux bits de données
• Pour chaque suite de m bits transmise, on ajoute r bits. On dit
• alors que l’on utilise un code C(n,m) avec n = m +r lel que:
– r << m et les r bits =f(m bits)

– Corriger est plus difficile que détecter


• plus de bits de contrôle
• Il existe deux catégories de codes:
• Détecter les erreurs, puis demander une retransmission
• Code détecteurs
• Correction par retransmission (ARQ : Automatic Repeat Request)
• Détecter et corriger les erreurs
– codes correcteurs d’erreur : auto-correcteurs
Parité simple ou VRC
• Approche: ajouter des bits de redondance aux bits d’information
•Bit_info + bits_ctrle; bits_ctrle = f(bit_info)
➢Code de Parité: paire ou impaire (le nbre de bits à 1 est pair ou
impair)
➢ A l’émission, on calcule p = b0b1…  bn : ou exclusif
➢ A la réception on calcule la somme de tous les bits y compris le
bit de parité
➢Exemple:
O S I
b0 1 1 1
b1 1 1 0
b2 1 0 0
b3 1 0 1
b4 0 1 0
b5 0 0 0
b6 1 1 1
b7 (P) 1 0 1
Code de parité simple
Le message envoyé est: 11001111(1) 01010011(2) 11001001(3)
Inconvénients:
– Ce code ne détecte que les erreurs en nombre impair
– est dépendant du codage interne
• Utilisée pour les communications asynchrones
Code de parité simple (exemple)
• Soit le message composé de la chaîne : "NET", le contrôle de transmission de
chaque caractère est assuré par un bit de parité impair.

• Donnez la représentation binaire du message transmis. On suppose que les


caractères sont codés selon le code ASCII, en utilisant 7 bits. On rappel que le
code ASCII des caractères transmis sont :

✓N : 01001110,
✓E :01000101,
✓T : 01010011.
Code de parité simple (exemple)

Expliquer le tableau suivant :


Parité double: LRC
• LRC: Longitudinal Redundancy Check
Calcul de la partie verticale et horizontale sur chaque caractère et
sur le mot. Il permet de détecter et de localiser certaines erreurs.
Par exemple:
0 S I Parité LRC
• b0 1 1 1 1
• b1 1 1 0 0
• b2 1 0 0 1
• b3 1 0 1 0
• b4 0 1 0 1
• b5 0 0 0 0
• b6 1 1 1 1
• P 1 0 1 0

• Le message envoyé est: OSI LRC


01010101(4) 11001001(3) 01010011 (2) 11001111(1)
• Ne détecte pas un nombre pair d’erreurs dans le même rang.
Parité double: LRC
Parité double: LRC
Soit « HELLO » le message à transmettre, en utilisant le code ASCII
standard. Voici les données telles qu'elles seront transmises avec les codes
de contrôle de parité paire :
Parité double: LRC (exemple)

• On souhaite transmettre le message M=”Bonjour”. Les


codes ASCII (sur 7 bits) des caractères sont (en
hexadécimal) :

• Quel est le message transmis en utilisant un LRC pair ?


Code cyclique ou polynômial
• Codes à redondance cyclique (codes polynomiaux)
➢ ajouter des bits qui sont des combinaisons linéaires des bits
d’information
➢ utiliser un polynôme générateur G(x): connu par l’émetteur et le
récepteur
• A l’émission: n est le nbre de bits de l’information
➢ M(x)= Un-1xn-1 + Un-2xn-2 +……+ U0x0 avec Ui: (bits du plus faible au
plus fort poids; les plus à gauche)
➢ E(x)= xr*M(x) avec r: degré du polynôme G(x)
➢ Diviser E(x) par G(x): division entière, le reste de la division est R(x).
➢ Les coefficients associés à ce reste constituent les bits du CRC( r bits)
➢ Méthode binaire: On ajoute r zéros au mot binaire à transmettre où r est le
degré du polynôme générateur.
➢ 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.
Code cyclique ou polynômial (exemple)

•Calculez le Code de Redondance Cyclique de la séquence


binaire 11110110010110 avec les polynômes générateurs
suivant:

1. 100101
2. 1001
Code CRC
➢ G(x)= x16+x12+x5+1 est le polynôme normalisé par l’UIT-T pour
HDLC(WAN)
➢ G(x) = x32 + x26+ x23+x16+x12+x10+x8+x7+x5+x4+x2+1 pour LAN

• A la réception:
➢ le récepteur divise le polynôme associé au message reçu par G(x)
➢ Si le reste de la division est nul alors pas d’erreurs
➢ Sinon détection d’erreurs
➢ En algèbre modulo 2, l’addition et la soustraction sont identiques
➢Ce code permet de détecter toutes les erreurs
➢Il est indépendant de la taille de la donnée
➢ Il ne permet pas la localisation de l’erreur (code détecteur)
➢ Si erreur sur le CRC, l’information est considérée comme erronée.
➢ Le code le plus utilisé pour la détection des erreurs sur les réseaux
informatiques au niveau de la couche liaison, connu aussi sous le nom de
FCS(Frame Sequence Check).
Code CRC (exemple)

•Un récepteur a reçu les messages T1 et T2 avec un


générateur égal à : 10011, vérifier si les trames T1 et T2
sont bien reçues.
1. T1= 10110111100
2. T2= 10110101100
Correction d’erreurs

Code de Hamming
•Principe : c bits de contrôle (de parité) sont ajoutés
aux d bits de données de telle sorte que la séquence
des c bits de parité puisse coder :
• la position d’un bit en erreur (soit d+c valeurs)
• ou l’absence d’erreur (soit 1 valeur)
•Il faut donc : 2c ≥ d+c+1
Mot de code de Hamming
•On numérote les bits de chaque mot de code à
partir de 1 :
• les bits de contrôle sont placés aux positions
représentant des puissances de 2
• les bits de données sont intercalés
Exemple
1001000
+ c3 c2 c1 c 0
----------------------------------------------------------
⇒ 1 0 0 c3 1 0 0 c 2 0 c1 c0
11 10 9 8 7 6 5 4 3 2 1
Exemple Suite

La liste des bits de parité contrôlant un bit donné


est fourni par sa représentation binaire
1110 = 10112 le bit 11 est contrôlé par c3 , c1 et c0
1010 = 10102 le bit 10 est contrôlé par c3 et c1
910 = 10012 le bit 9 est contrôlé par c3 et c0
810 = 10002 le bit 8 est contrôlé par c3
710 = 01112 le bit 7 est contrôlé par c2 , c1 et c0
Exemple Suite

La liste des bits contrôlée par chaque bit de parité


est donc sur notre exemple :
•c0 : {1,3,5,7,9,11}
•c1 : {2,3,6,7,10,11}
•c2 : {4,5,6,7}
•c3 : {8,9,10,11}
Le mot transmis est donc (en parité paire) :
1 0 0 11001000
11 10 9 8 7 6 5 4 3 2 1
Exemple Suite

1. Le codage de Hamming avec une parité paire est utilisé dans la


couche liaison d'un réseau LAN. Si le poste P1 veut émettre
l'octet "11010110", quelle sera la série de bits réellement émise ?

2. La couche liaison du poste P1 reçoit le message 0100110, que


peut-elle conclure si le code de Hamming est utilisé avec une parité
paire ?
Trames HDLC : Type et Format

• Toutes les transmissions se font à l'intérieur de trames


• Trame de données : lecture des bits : b7b6… b0 (de droite
vers la gauche)
• Trame de supervision (40 bits ou 5 octets sans le fanion
de fin) :

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

8 bits 8 bits 8 bits 16 bits 8 bits


Fanion Adresse Contrôle FCS Fanion
Fanion

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

• Fanion (8 bits) : Délimiteur de trame (01111110 ou 7E)


– Permet la synchronisation de l'horloge du récepteur
– Eviter de retrouver le fanion dans le flux de données.
– A chaque séquence de 5 bits à 1 successifs ajouter un 0; le
récepteur enlèvera un 0 après une séquence de 5 1.
• Bits de transparence pour assurer l’unicité du fanion dans la rame
Adresse

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

• Adresse (8bits) : caractérise le destinataire de la trame


– LAP-B (mode équilibré) : adresses variables
• S’il s'agit de commandes ou des réponses:
– ETTD → ETCD 0x01 pour @ du réseau
– ETCD → ETTD 0x03 pour @ de la station
– LLC: pour les LAN ce champs à une autre signification
Contrôle

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

• Contrôle : type de la trame


– Information, Supervision, non nUméroté I NR P/F NS 0
• NS : N° de Séquence
• P/F : invitation à émettre (Pull) (commande) S NR P/F SS 0 1
• P/F : bit Final pour une réponse
• NR : N° de la trame attendue
U MMM P/F MM 1 1
• S : Bit de fonction de Supervision
• M : Bit de fonction de Modification
Trame d'information (I)

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

NR P/F NS 0

• Trame contenant les données


• N(S) codé sur 3 bits : fenêtre d'anticipation de 8 trames au maximum
• N(R) acquitte les trames reçues (convention:N° de trame attendue)
• P/F (Pull/Final)
– P :Permet l'invitation à émettre (forcer le récepteur à répondre immédiatement)
– F : Indique une réponse à la requête précédente
• La taille des champs V(r) et V(s) peut être augmentée à 7 bits; ceci sera
défini à l’ouverture de la connexion par une trame d’ouverture spécifique:
SABME: ouverture en mode étendu)
Trame de supervision (S)

8 bits 8 bits 8 bits 16 bits 8 bits

Fanion Adresse Contrôle FCS Fanion

NR P/F SS 0 1

• Supervision de la liaison (sans données)


• Contrôle l'échange des données (Accusé de réception, demande
de retransmission et de suspension temporaire des trames I)
Supervision de la liaison (1)

8 bits 8 bits 8 bits 16 bits 8 bits

Fanion Adresse Contrôle FCS Fanion

NR P/F SS 0 1

• RR(00) : Commande/Réponse prêt à recevoir (Receive Ready)


– ETTD prêt à recevoir une trame I
– Acquitte positivement les trames I dont N° de séquence ≤ NR -1
• RNR(01) : Commande/Réponse non prêt à recevoir (Receive
Not Ready)
– Indique l'état d'occupation de l'ETTD(Ctrl-Flux)
– Doit acquitter trame I dont N° de séquence ≤ NR -1
Supervision de la liaison (2)

8 bits 8 bits 8 bits 16 bits 8 bits


Fanion Adresse Contrôle FCS Fanion

NR P/F SS 0 1

• REJ (10) : Commande/Réponse rejet (REJect)


– ETTD demande la retransmission de trame(s) I à partir de N(r)
– Doit acquitter trame I dont N° de séquence ≤ NR - 1
• SREJ (11) : Commande/Réponse rejet sélectif (Selective
REJect)
– ETTD demande la retransmission de la trame I de numéro NR
– Acquitte trame I dont N° de séquence ≤ NR - 1
Supervision de la liaison (3)

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

NR P/F SS 0 1

• Chaque station maintient des compteurs :


– Compteur V(S) : N°de séquence des trames I transmises à une
station.
– Compteur V(R) : N°de séquence des trames I reçues sans erreur de
la part d'une station
Trames non numérotées(1)

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

MMM P/F MM 1 1
• Trame non numérotée (U)
• Les 5 bits M permettent de définir des fonctions supplémentaires (32) de
supervision de la liaison (tous ne sont pas utilisés)
• Les principales :
– SABM, SARM, SNRM : Initialisation et sélection du mode (Set ABM ...)
(Commande)
– SABME: ouverture de connexion SABM en mode étendu : le champs contrôle est
étendu sur 2 octets, donc numérotation sur 7 bits
– DISC : Libération de la liaison (DISConnect) (Commande)
– UA(Unnumbered Ack) : Acquittement positif d'une trame U (Réponse)
– DM(Disconnect Mode): acquittement négatif d’une trame U( Réponse)
– FRMR (FRameError): informe l’émetteur de la réception d’une trame invalide
Codes des trames

Trame Type Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Trames I N(R) P/F N(S) 0

RR N(R) P/F 0 0 0 1
Trames S
RNR N(R) P/F 0 1 0 1
REJ N(R) P/F 1 0 0 1
SREJ N(R) P/F 1 1 0 1
SABM 0 0 1 P/F 1 1 1 1

Trames U SABME 0 1 1 P/F 1 1 1 1


UA 0 1 1 P/F 0 0 1 1
DISC 0 1 0 P/F 0 0 1 1
DM 0 0 0 P/F 1 1 1 1
FRMR 1 0 0 P/F 0 1 1 1
Données

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

• Les données utiles à transmettre ...


• De taille variable : 128 à 512 octets
• Règles à respecter :
– Insertion d'un 0 après une séquence de 5 bit codé
à 1 => différentiation du fanion
– Désinsertion de ce 0 par le récepteur
FCS

8 bits 8 bits 8 bits taille variable 16 bits 8 bits


Fanion Adresse Contrôle Données FCS Fanion

• FCS : Frame Check Sequence (16bits)


• Détection des informations transmises de façon erronée,
• Calcul pour l'émetteur et le récepteur d'une trame
• Constitué du reste de la division polynomiale des N bits de la
trame par un polynôme « générateur » normalisé de degré 16
• Reste = 0, on admet que la transmission s'est passée
correctement
Exemple d’échange: chronogramme

V(s)=0 SABM, P
UA, F V(s)=0
V(R)=0 0,0,P
RR,1,F V(R)=0

1,0
2,0,P
Station A SREJ,2,F Station B
2,0,P
0,3,F
1,3,P
RR,2,F

DISC,P
UA,F

Vous aimerez peut-être aussi