Architecture et protocole des réseaux

Réseaux, Protocoles de communication · textbook

Voir tous les documents en réseaux

Architecture et protocole des réseaux

Couche liaison de données

Inès MOUAKHER-ABDELMOULA

2ème LFIG

PLAN

 Introduction  Délimitation de trames  Détection/Correction d’erreurs  Contrôle de flux

2

Introduction

 La couche liaison de données établie,

maintient, et relâche la liaison physique entre deux nœuds adjacents dans un réseau.

 La couche liaison est en charge des

communications entre des machines situées dans le même sous-réseau. Elle transporte donc les messages sur un lien entre 2 nœuds.

 La couche liaison elle se charge du transport sur le support physique, mais pas de l'envoi des bits, qui se fait à la couche physique.

3

Introduction

 La trame est l’unité de base que gère le protocole de

liaison de données.

 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.

 Généralement au sein de chaque système (ETTD), les

fonctions de la couche Liaison de données sont réalisées par une carte spécifique appelée contrôleur de communication.  Par exemple : carte HDLC, carte Ethernet, etc.

4

Introduction

5

Protocole de liaison de données

 Définir un protocole de liaison de données consiste donc à préciser principalement:  le format des trames,

 le critère de début et de fin de trames,

 la place et la signification des différents champs

dans une trame,

 la technique de détection d’erreur utilisée,

 les règles de dialogue : les procédures après

détection d’erreur ou de panne et la supervision de la liaison.

6

Quelques protocoles de couche 2

7

Trame

 C'est l'unité de données du protocole de niveau

Liaison de données (L-PDU)

 Suivant le type de protocoles, elle peut être:

 de taille fixe, ex: trame d'HDLC

 de taille variable (jusqu'à une certaine taille maximum), ex : cellule d'ATM (53 octets)

8

Trame

 Composée d'un certain nombre de champs

ayant chacun une signification précise

 On distingue souvent 3 ensembles de champs : l'entête ("header"), le champ de données, la terminaison ("trailer")

9

Adressage physique

 Les réseaux Ethernet, Token Ring et FDDI

utilisent le même type d’adressage : l’adressage MAC.

 Chaque machine d'un réseau dispose d'un numéro unique, généralement une adresse MAC (sur 48 bits) qui la désigne sans ambigüité.

 Ce sont des adresses physiquement

enregistrées dans une mémoire de la carte réseau lors de sa construction

10

Adressage physique

 Les trames émises sur un réseau contiennent à la fois l'adresse du destinataire et celle de la machine ayant émis la trame.

 Pour connaitre l'adresse MAC d’un PC sous

Windows, taper « ipconfig /all » ou «getmac » dans l’invité de commande MS- DOS

11

Temps d'acheminement

 Temps de propagation Tp : Temps nécessaire à un

signal pour parcourir un support d'un point à un autre  Temps de transmission Tt : Délai qui s'écoule entre le début et la fin de la transmission d'un message sur une ligne

 Temps d'acheminement : Ta = Tp + Tt

12

DÉLIMITATION LIMITATION DES TRAMES

13

Délimitation 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

14

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

15

Exemple

16

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 pas accidentellement au fanion.

17

Utiliser des délimiteurs - Exemple

 Fanion : 01111110  Bit de transparence : 0 inséré après toute

séquence de cinq 1 successifs dans la trame.

 Technique utilisée dans :

 HDLC Hiigh-Levell Data Liink Controll

 PPP Poiint to Poiint Protocoll

18

Utiliser des délimiteurs

 Avantage

 permet toujours de retrouver la synchronisation

 permet l'envoi de trames de tailles quelconques

 technique la plus simple

19

Violer le codage

 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

20

DÉTECTION/CORRECTION D’ERREURS

21

Taux d’erreur sur un canal

 10-9 pour les réseaux locaux  10-5 pour le Réseau Téléphonique Commuté  taux élevé pour le téléphone sans fil

22

émis bits de nombreerronés bits de nombreerreurd'taux 

Détection d’erreur

 Le mécanisme mis en œuvre par le système

Publicité

destinataire pour vérifier la validité des données reçu:  La détection par écho

 La détection par répétition

 La détection d’erreur par clé calculé : une

information supplémentaire (clé) déduite des informations transmises est ajoutée à celles-ci

 La détection et correction d’erreur par code

23

Détection d’erreur par clé calculée

 Exploiter la redondance d’informations ⇒ ajouter des bits de contrôle aux bits de

données

 Code de contrôle de parité

 VRC (Vertical Redundancy Check)

 LRC (Longitudinal Redundancy Check)

 Code cyclique

 CRC (Cyclic Redundancy Check)

24

Méthode VRC (Vertical Redundancy Check)

 C'est la méthode de la parité verticale.  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

25

Méthode VRC (Vertical Redundancy Check)

 La détection d'erreur avec le VRC consiste à : recalculer le bit de parité à la réception et vérifier que le nombre total de 1 correspond à la parité choisie.

 parité paire lorsque le nombre de 1 est paire  parité impaire lorsque le nombre de 1 est

impaire.

 La méthode VRC n'est pas très fiable (si deux

bits sont erronés, la détection échoue).  Son taux d’efficacité est estime a 50 %

26

Méthode VRC (Vertical Redundancy Check)

Exemple :  Transmission de caractères utilisant un code de représentation (le code ASCII sur 7 bits).

27

Parité longitudinale LRC (Longitudinal Redundancy Check)

 Elle permet de tester l'ensemble d'un bloc de

données.

 Le résultat obtenu est appelé BCC (Block

Check Character) ou clé de fin de message, il est transmis comme dernier caractère du message à émettre.

28

Parité longitudinale LRC (Longitudinal Redundancy Check)

 Exemple : LRC avec parité paire (sur 7 bits)  Caractère A (code 41 en ASCII) 1 0 0 0 0 0 1

 Caractère C (code 43 en ASCII) 1 0 0 0 0 1 1

 LRC 0 0 0 0 0 1 0

29

Parité longitudinale et transversale

 Le bloc de données est disposé sous une forme matricielle (k=a.b). On applique la parité (uniquement paire) sur chaque ligne et chaque colonne.

 On obtient une matrice (a+1, b+1).  Le récepteur fait la même opération et

compare les deux clés.

 Cette méthode atteint un taux d'efficacité de

98%.

30

Code polynomial CRC (Cyclic Redundancy Check)

 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 et degré de p = 5

 Principe : l’émetteur et le récepteur se mettent d’accord sur le choix

d’un polynôme dit générateur G(x) (ex: x4+x+1)

 Soit P(x) les données à envoyer et k le degré de G(x). L’émetteur

calculer (P(x)*xk) / G(x) le reste de cette division R(x) est le CRC

 Le message à Transmettre est P(x)+R(x)

 Le récepteur calcule P(x)+R(x) / G(x) si le reste de la division est égal

à zéro il estime que le message est correct

 Les calculs nécessaires semblent complexes mais en pratique on utilise

des circuits électroniques

31

Exemple CRC

 Exemple : CRC sur 4 bits

 P(x) = 1101011011

 P(x)* x4 = 11010110110000

 G(x) = x4 + x + 1

 CRC = 1110

 Message transmis :  1101011011 1110

32

Les codes autocorrecteur

 Dans les systèmes autocorrecteurs, on

substitue au mot à transmettre (mot naturel) un nouveau mot tel que deux mots successif diffèrent de  bits où  est appelé distance de Hamming  Détecter les erreurs pourtant ( -1) bit

 Corriger toute erreur portant sur ( -1)/2 bit

33

Les codes autocorrecteur

Nous considérons la table de codage de Hamming suivante

Mots naturels

Mots codes

00 01 10 11

10011 10100 01001 01110

Dans ce code il y a au moins 3 bit qui diffèrent d’un mot code à un autre donc ce code permet de :

•détecter des erreurs portant sur 2 ( -1) bits •corriger les erreurs sur 1 (( -1)/2) bits

34

Les codes autocorrecteur

Emetteur :Soit le mot 00, on transmet 10011 Récepteur : reçoit 11011 ne correspond à aucun des mots du code On retient le mot dont la distance de hamming est de 1 avec le mot reçu

10011

 =1

 =2

01001

11011

10100

 =4

 =3

01110

35

CONTRÔLE DE FLUX

36

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

37

Le mode Send and Wait

 Chaque trame envoyée doit être acquittée par

le récepteur.

 L’acquittement peut être positif (ACK) ou

négatif (NACK)

A

B

A

B

I1

ACK

I2

Publicité

I1

NACK

I1

38

Reprise sur temporisation

 Problème A

I

?

B

A

B

I

ACK

?

 Solution: Armer un temporisateur T1 après

l’envoi d’une trame d’information.  Si T1 expire avant la réception d’un

acquittement (+ ou -), l’émetteur renvoi la même trame d’information

39

Reprise sur temporisation(Solution)

A

I

T1

I

B

A

B

T1

I

ACK

I

40

Numérotation des blocs de données

 Problème : En cas de perte de l’ACK, l’émetteur retransmet le même bloc alors que le récepteur l’a déjà reçu : il y a duplication d’un bloc.

A

B

A

B

T1

I

ACK

I

solution

T1

I1

ACK

I1

 Solution : Numérotation de trames

(identification)

41

Numérotation des ACK

 Problème : le second ACK du premier bloc est

interprété comme celui du second bloc de données

A

B

A

B

T1

I1

I1

ACK

I2

ACK

I3

T1

solution

I1

I1

ACK1

T1

ACK1

I2

I2

 Solution : Pour éviter cette confusion d’interprétation 42

il est aussi nécessaire de numéroter les ACK.

Problème 3

 Les protocoles qui mettent en œuvre les principes

précédents sont appelés protocoles en mode de base  Les faibles performances du mode « Stop and Wait » sont essentiellement dues au temps d’attente entre les ACK.

 Si chaque trame doit être acquittée par une trame

spécifique et d’une manière individuelle l’efficacité de la liaison sera très faible.

 La plupart de temps les extrémités de la liaison

seront en état d’attente d’acquittement

43

Solution

 Piggypacking : dans des échanges

bidirectionnels, le récepteur peut acquitter une trame d’information reçue par l ’envoi d’une autre trame d’information.

 Protocole à fenêtres d’anticipation :

l’émetteur peut envoyer W trames sans avoir un acquittement.

44

Protocole à fenêtres d’anticipation (sliding windows )

 Une amélioration substantielle est obtenue en émettant les blocs suivants, sans attendre la réception des ACK

 Cette possibilité d’émettre sans acquittement

s’appelle l’anticipation.

 On appelle fenêtre d’anticipation le nombre maximum de blocs (trames) qui peuvent être envoyés sans acquittement (en attente de ACK)

 Plus la fenêtre est importante, plus le nombre de

tampons nécessaires à la conservation des blocs en attente d’acquittement est important

45

Protocole à fenêtres d’anticipation (sliding windows ).

 Deux fenêtres sont gérées par chaque entité

de couche liaison.  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

46

Modes de gestion de la fenêtre

 Deux modes de fonctionnement :

 chaque bloc est acquitté. lors de la réception d’un

ACK, l’émetteur libère un buffer et émet le suivant: la fenêtre est dite glissante

 le bloc n’est pas nécessairement besoin d’être

acquitté individuellement. L’acquittement peut être différé et concerne plusieurs blocs: la fenêtre est dite sautante

47

La fenêtre d’anticipation : fenêtre glissante(sliding window)

 Fenêtre dynamique: elle évolue au fur et à mesure des émissions et des acquittements de blocs :

 L’émission de blocs sans ACK fait progresser la borne inférieure jusqu’au blocage éventuel de l’émission (fenêtre fermée).

Publicité

 L’acquittement de blocs par le récepteur fait

progresser la borne supérieure: fenêtre glissante

48

La fenêtre d’anticipation : fenêtre glissante

49

La fenêtre d’anticipation : fenêtre glissante (w=3)

A

B

A

B

(a,0)

(b,1)

(a) (b) (c)

I0 I1 I2

ACK0

ACK1

ACK2

(a)

(b)

I0

ACK0

I1

ACK1

I2

ACK2

(a,0) (b,1) (c,2)

50

Protocole à fenêtre sautante

 L’acquittement concerne plusieurs blocs (acquittement collectif ou global): un seul ACK acquitte N blocs (ainsi ACK2 signifie « j’ai bien reçu 3 blocs de données (0, 1, et 2».  N est la fenêtre d’anticipation  Fenêtre d’émission : nombre de blocs

en attente d'acquittement

A

B

I0 I1 I2

ACK2

I3

(w=3)

51

Problème

 Transmettre un message de A à B, en tenant

compte  Des erreurs

 Des pertes

 Du temps de traitement (couches supérieures. . . )

 La réception d’un NACK (acquittement

négatif) ou l’échéance d’un temporisateur

52

La politique de reprise sur erreur

 Deux modes de fonctionnement, selon la

technique de reprise sur erreur :

 reprise depuis le bloc erroné (rejet simple)

« GO-BACK-N »

 reprise du bloc erroné seulement (rejet sélectif)

« Selective Repeat »

53

Le rejet simple

 La réception d’un NACK (acquittement négatif) ou

l’échéance d’un temporisateur provoque :  l’arrêt des émissions en cours,

 la reprise depuis le bloc erroné ou perdu

 l’élimination par le récepteur des blocs reçus

postérieurement.

 le séquencement est conservé, et le récepteur n’aura pas à trier les blocs pour les remettre en séquence.  L’émetteur doit posséder N tampons (pour conserver

les N blocs émis jusqu’à ce qu’ils aient été tous confirmés) et le récepteur 1 seul tampon.

54

Exemple de la retransmission simple avec fenêtre glissante (w=3)

A

B

I0 I1 I2

ACK0

ACK1

NACK2

Rejet(erroné)

I3

I4

Rejet

Rejet

I2 I3

I4

ACK2

ACK3

ACK4

55

Le rejet sélectif

 Seul le bloc erroné est retransmis. Cela implique la mémorisation des blocs hors séquence (non rejetés s’ils ont été confirmés).

 L’anticipation est cependant limitée par les possibilités de comptage des blocs émis.

 le récepteur devra exécuter un programme de tri

pour rétablir le séquencement initial.

56

Exemple de la retransmission sélective avec fenêtre glissante (w=3)

A

B

A

B

I0 I1 I2

I0 I1 I2

ACK0

ACK1

NACK2

Rejet(erroné)

ACK0

ACK1

NACK2

Rejet(erroné)

I3

I4

I2

ACK4

Mettre dans Buffer

Mettre dans Buffer

Réordonnacement 2,3,4

I2

ACK3

ACK4

ACK2

I3

I4

Mettre dans Buffer

Mettre dans Buffer

Réordonnacement 2,3,4

57