couche liaison

13
1 Couche Couche Liaison Liaison 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 Couche liaison Cette couche doit assurer une Cette couche doit assurer une transmission exempte d'erreurs sur transmission exempte d'erreurs sur un canal de communication. un canal de communication. Les donn Les données sont fractionn es sont fractionnées en es en trames. trames. Description Description La couche liaison r La couche liaison récup cupère des re des paquets de la couche r paquets de la couche réseau. seau. Pour chaque paquet, elle construit Pour chaque paquet, elle construit une (ou plusieurs) trame(s). une (ou plusieurs) trame(s). La couche liaison envoie chaque La couche liaison envoie chaque trame trame à la couche physique. la couche physique. Description Description couche réseau couche liaison couche physique couche réseau couche liaison couche physique paquet trame bits paquet trame Emetteur Récepteur Services offerts Services offerts Gestion (d Gestion (délimitation) de trames limitation) de trames Contrôle d Contrôle d’ erreurs erreurs Contrôle de flux Contrôle de flux Contrôle d'acc Contrôle d'accès s à un canal partag un canal partagé (MAC) (MAC) limitation de trames limitation de trames

Upload: babacar-ngom

Post on 28-Oct-2015

14 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Couche Liaison

1

CoucheCouche LiaisonLiaison

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 liaisonCouche liaison

�� Cette couche doit assurer une Cette couche doit assurer une transmission exempte d'erreurs sur transmission exempte d'erreurs sur un canal de communication. un canal de communication.

�� Les donnLes donnéées sont fractionnes sont fractionnéées en es en trames.trames.

DescriptionDescription

�� La couche liaison rLa couche liaison réécupcupèère des re des paquets de la couche rpaquets de la couche rééseau.seau.

�� Pour chaque paquet, elle construit Pour chaque paquet, elle construit une (ou plusieurs) trame(s).une (ou plusieurs) trame(s).

�� La couche liaison envoie chaque La couche liaison envoie chaque trame trame àà la couche physique.la couche physique.

DescriptionDescription

couche réseau

couche liaison

couche physique

couche réseau

couche liaison

couche physique

paquet

trame

bits

paquet

trame

Emetteur Récepteur

Services offertsServices offerts

�� Gestion (dGestion (déélimitation) de trameslimitation) de trames

�� Contrôle dContrôle d’’erreurserreurs

�� Contrôle de fluxContrôle de flux

�� Contrôle d'accContrôle d'accèès s àà un canal partagun canal partagéé(MAC)(MAC)

DDéélimitation de trameslimitation de trames

Page 2: Couche Liaison

2

DDéélimitation des trameslimitation des trames

�� Il existe trois mIl existe trois mééthodes :thodes :

•• Compter les caractCompter les caractèèresres

•• Utiliser des champs dUtiliser des champs déélimiteurs de limiteurs de trametrame�� Ils se situent en dIls se situent en déébut et en fin de tramebut et en fin de trame

�� Des bits (ou caractDes bits (ou caractèères) de transparence res) de transparence sont nsont néécessairescessaires

•• Violer le codage normalement utilisVioler le codage normalement utiliséédans la couche physiquedans la couche physique

Compter les caractCompter les caractèères res

�� On utilise un champ dans l'enOn utilise un champ dans l'en--tête de tête de la trame pour indiquer le nombre de la trame pour indiquer le nombre de caractcaractèères de la trameres de la trame

�� ProblProblèème : si la valeur du champ est me : si la valeur du champ est modifimodifiéée au cours de la transmissione au cours de la transmission

�� MMééthode rarement utilisthode rarement utiliséée seulee seule

2/13/20072/13/2007 99

ExempleExemple

‘S’ ‘P’‘U’ 03 ‘L’‘R’‘E’ ‘E’ ‘C’06 ‘R’ ‘S’‘U’‘O’06

Trames émises

Trames reçues

‘S’ ‘P’‘U’ 04 ‘L’‘R’‘E’ ‘E’ 4306 ‘R’ ‘S’‘U’‘O’06

code ASCII de ‘C’

Utiliser des dUtiliser des déélimiteurslimiteurs

�� Un fanion (dUn fanion (déélimiteur) est placlimiteur) est placéé ::

•• au dau déébut de chaque tramebut de chaque trame

•• àà la fin de chaque trame (en fait, au dla fin de chaque trame (en fait, au déébut de but de la suivante)la suivante)

�� Un fanion (flag) = sUn fanion (flag) = sééquence particuliquence particulièère re de bits de bits

�� Des bits de transparence sont alors Des bits de transparence sont alors nnéécessaires pour qucessaires pour qu’’une sune sééquence binaire quence binaire dans la trame ne corresponde pas dans la trame ne corresponde pas accidentellement au fanion.accidentellement au fanion.

ExempleExemple

�� Fanion : 01111110Fanion : 01111110

�� Bit de transparence : 0 insBit de transparence : 0 inséérréé apraprèès s toute stoute sééquence de cinq 1 successifs quence de cinq 1 successifs dans la trame.dans la trame.

�� Technique utilisTechnique utiliséée dans :e dans :

•• HDLC HDLC HHighigh--Level Level DData ata LLink ink CControlontrol

•• PPP PPP PPoint to oint to PPoint oint PProtocol rotocol

2/13/20072/13/2007 1212

ExempleExemple

01111110 01111110

01011001111110

Données :

Trame :

010110011111010

Page 3: Couche Liaison

3

Utiliser des fanionsUtiliser des fanions

�� AvantagesAvantages

•• permet toujours de retrouver la permet toujours de retrouver la synchronisationsynchronisation

•• permet l'envoi de trames de tailles permet l'envoi de trames de tailles quelconques quelconques

•• technique la plus simpletechnique la plus simple

�� Cette technique est utilisCette technique est utiliséée e éégalement en considgalement en considéérant des rant des caractcaractèères de dres de déélimitation et des limitation et des caractcaractèères de transparence.res de transparence.

Violer le codageVioler le codage

�� Utilisable lorsque le codage sur le Utilisable lorsque le codage sur le support physique contient des support physique contient des redondancesredondances

�� Par exemple : Par exemple :

•• 0 = impulsion positive puis n0 = impulsion positive puis néégative gative

•• 1 = impulsion n1 = impulsion néégative puis positivegative puis positive

•• On peut donc utiliser les combinaisons On peut donc utiliser les combinaisons positivepositive--positive et npositive et néégativegative--nnéégative gative pour dpour déélimiter les trameslimiter les trames

�� UtilisUtiliséée dans la norme 802e dans la norme 802

DDéétection/Correction tection/Correction dd’’erreurserreurs

Transmission dTransmission d’’informationinformation

canal

émetteur récepteur

bruit

Causes dCauses d’’erreurs sur un canalerreurs sur un canal

�� rayonnement rayonnement éélectromagnlectromagnéétiquetique

•• relaisrelais

•• éémetteursmetteurs

�� câblage mal isolcâblage mal isoléé

�� effet de distorsioneffet de distorsion

Taux dTaux d’’erreur sur un canalerreur sur un canal

�� 1010--99 pour les rpour les rééseaux locauxseaux locaux

�� 1010--55 pour le Rpour le Rééseauseau TTééllééphoniquephoniqueCommutCommutéé

�� taux taux éélevlevéé pour le tpour le tééllééphone sans filphone sans fil

émis bits de nombre

erronés bits de nombreerreurd'taux =

Page 4: Couche Liaison

4

Types dTypes d’’erreurs de transmissionerreurs de transmission

�� Erreurs isolErreurs isolééeses

•• un un ouou quelquesquelques bits bits en en erreurerreur

•• simples simples àà ddéétectertecter

•• simples simples àà corrigercorriger

•• proportion proportion éélevlevéée e de blocs affectde blocs affectééss

�� Erreurs en rafalesErreurs en rafales

•• plusieursplusieurs motsmotssuccessifssuccessifs en en erreurerreur

•• difficiles difficiles àà corrigercorriger

•• proportion faible de proportion faible de blocs affectblocs affectééss

ExempleExemple

�� taille des blocs taille des blocs ééchangchangéés : 1000 s : 1000 bitsbits

�� taux dtaux d’’erreur : 1/1000erreur : 1/1000

�� erreurs isolerreurs isolééeses

•• la plupart des blocs en erreurla plupart des blocs en erreur

�� erreurs en rafale (de longueur 100)erreurs en rafale (de longueur 100)

•• un bloc sur 100 en erreur en moyenneun bloc sur 100 en erreur en moyenne

Deux stratDeux stratéégies possiblesgies possibles

La destination peut :La destination peut :

�� ddéétecter les erreurs, puis demander tecter les erreurs, puis demander une retransmissionune retransmission

•• code dcode déétecteurs dtecteurs d’’erreurserreurs

�� ddéétecter et corriger les erreurstecter et corriger les erreurs

•• codes correcteurs dcodes correcteurs d’’erreur erreur

Principe des codesPrincipe des codes

�� Exploiter la redondance Exploiter la redondance dd’’informationsinformations

⇒⇒ ajouter des bits de contrôle aux bits de ajouter des bits de contrôle aux bits de donndonnééeses

�� Corriger est plus difficile que dCorriger est plus difficile que déétectertecter

⇒⇒ plus de bits de contrôleplus de bits de contrôle

Définitions générales

� Un code (k, n) transforme (code) tout bloc initial de k bits d’information en un bloc codé de n bits. • Le code introduit une redondance puisquen>=k.

� Le code est systématique si les k premiers bits du bloc codé sont égaux aux bits du bloc initial. Alors les r (r=n-k) derniers bits forment un champ de contrôle d’erreur.

SuprSupréématie des codes matie des codes ddéétecteurstecteurs

Les codes dLes codes déétecteurs sont plus souvent tecteurs sont plus souvent utilisutiliséés que les codes correcteurs s que les codes correcteurs mais :mais :

•• lorsque le canal est unidirectionnellorsque le canal est unidirectionnel

•• lorsque la distance est lorsque la distance est éélevlevéée (satellite)e (satellite)

•• lorsque les erreurs sont isollorsque les erreurs sont isolééeses

les codes correcteurs peuvent (ou les codes correcteurs peuvent (ou doivent) être utilisdoivent) être utiliséés.s.

Page 5: Couche Liaison

5

Mot de codeMot de code

d bits de donnd bits de donnééeses

++

c bits de contrôlec bits de contrôle

= =

n bits dn bits d’’information (information (àà transmettre)transmettre)

Un tel mot de n bits est appelUn tel mot de n bits est appeléé un mot un mot de codede code

DiffDifféérents codesrents codes

�� Code de contrôle de paritCode de contrôle de paritéé

�� Code de Code de HammingHamming

�� Codes polynomiaux Codes polynomiaux

�� ……

Code de contrôle de paritCode de contrôle de paritéé

Principe : un seul bit (dit de paritPrincipe : un seul bit (dit de paritéé) est ) est ajoutajoutéé aux bits de donnaux bits de donnéées.es.

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

�� paritparitéé impaire : le nombre de bits impaire : le nombre de bits àà 1 1 du mot formdu mot forméé doit être impair.doit être impair.

Le contrôle de parité

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

� Ce code est capable de détecter toutes les erreurs en nombre impair. Il ne détecte pas les erreurs en nombre pair !

Parité longitudinale et transversale

� (LRC : Longitudinal Redundancy Check)

� Le bloc de données est disposé sous une formematricielle (k=a.b). On applique la parité(uniquement paire) sur chaque ligne et chaquecolonne.

� On obtient une matrice (a+1, b+1).

Capacité de détection et d’autocorrection :

� Principe : Une erreur simple modifiesimultanément la parité d’un ligne et d’unecolonne.

� Correction : inverser le bit situé à l’intersectionde la ligne et de la colonne ayant une paritéincorrecte.

Page 6: Couche Liaison

6

Il sIl s’’agit du nombre de bits qui agit du nombre de bits qui diffdiffèèrent entre deux mots de code x rent entre deux mots de code x et y.et y.

1 0 0 0 1 0 0 11 0 0 0 1 0 0 1

⊕⊕ 1 0 1 1 0 0 0 11 0 1 1 0 0 0 1

Distance de Distance de HammingHamming de 2 de 2 motsmots

= 0 0 = 0 0 1 1 11 1 1 0 0 00 0 0

DistDist(x,y) = 3(x,y) = 3

Distance de Distance de HammingHamming dd’’un un code code

Soit C un code (dSoit C un code (déétecteur et/ou tecteur et/ou correcteur)correcteur)

DistDist(C) = min { (C) = min { DistDist(x,y) (x,y) xx∈∈C C ∧∧ y y ∈∈C }C }

Il sIl s’’agit de la distance minimale entre agit de la distance minimale entre 2 mots du code2 mots du code

Code de Code de HammingHamming

Principe : c bits de contrôle (de paritPrincipe : c bits de contrôle (de paritéé) ) sont ajoutsont ajoutéés aux d bits de donns aux d bits de donnéées de es de telle sorte que la stelle sorte que la sééquence des c bits quence des c bits de paritde paritéé puisse coder :puisse coder :

•• la position dla position d’’un bit en erreur (soit d+c un bit en erreur (soit d+c valeurs)valeurs)

•• ou lou l’’absence dabsence d’’erreur (soit 1 valeur)erreur (soit 1 valeur)

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

Mot de code de Mot de code de HammingHamming

On numOn numéérote les bits de chaque mot rote les bits de chaque mot de code de code àà partir de 1 :partir de 1 :

•• les bits de contrôle sont placles bits de contrôle sont placéés aux s aux positions reprpositions repréésentant des puissances sentant des puissances de 2de 2

•• les bits de donnles bits de donnéées sont intercales sont intercalééss

Exemple 1/5Exemple 1/5

11 10 9 8 7 6 5 4 3 2 1 11 10 9 8 7 6 5 4 3 2 1

1 0 0 1 0 0 01 0 0 1 0 0 0

+ c+ c33 cc22 cc11 cc00

⇒⇒ 1 0 0 c1 0 0 c33 1 0 0 c1 0 0 c22 0 c0 c11 cc00

Exemple 2/5Exemple 2/5

La liste des bits de paritLa liste des bits de paritéé contrôlant un contrôlant un bit donnbit donnéé est fourni par sa est fourni par sa reprrepréésentation binairesentation binaire

�� 11111010 = 1011= 101122

le bit 11 est contrôlle bit 11 est contrôléé par cpar c33, c, c11 et et cc00

�� 10101010 = 1010= 101022

le bit 10 est contrôlle bit 10 est contrôléé par cpar c33 et cet c11

Page 7: Couche Liaison

7

Exemple 3/5Exemple 3/5

�� 991010 = 1001= 100122

le bit 9 est contrôlle bit 9 est contrôléé par cpar c33 et cet c00

�� 881010 = 1000= 100022

le bit 8 est contrôlle bit 8 est contrôléé par cpar c33 (lui(lui--même)même)

�� 771010 = 0111= 011122

le bit 7 est contrôlle bit 7 est contrôléé par cpar c22, c, c11 et cet c00

�� ......

Exemple 4/5Exemple 4/5

La liste des bits contrôlLa liste des bits contrôléée par chaque e par chaque bit de paritbit de paritéé est donc sur notre est donc sur notre exemple :exemple :

�� cc00 : {1,3,5,7,9,11}: {1,3,5,7,9,11}

�� cc11 : {2,3,6,7,10,11}: {2,3,6,7,10,11}

�� cc22 : {4,5,6,7}: {4,5,6,7}

�� cc33 : {8,9,10,11}: {8,9,10,11}

Exemple 5/5Exemple 5/5

Le mot transmis est donc (en paritLe mot transmis est donc (en paritéépaire) :paire) :

1 0 0 1 1 0 0 1 0 0 01 0 0 1 1 0 0 1 0 0 0

11 10 9 8 7 6 5 4 3 2 1 11 10 9 8 7 6 5 4 3 2 1

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

Test Test àà la rla rééception 1/2ception 1/2

�� A la rA la rééception, les diffception, les difféérents test de rents test de paritparitéé sont effectusont effectuéés.s.

�� Un mot binaire m (de contrôle) Un mot binaire m (de contrôle) constituconstituéé dd ’’autant de bits que de autant de bits que de bits de contrôle est construit.bits de contrôle est construit.

Test Test àà la rla rééception 2/2ception 2/2

Si le contrôle de paritSi le contrôle de paritéé de cde cii est OK est OK alorsalors

m[i] m[i] ←← 00

SinonSinon

m[i] m[i] ←← 11

Fin siFin si

La valeur de m indique la position du La valeur de m indique la position du bit en erreur ou 0.bit en erreur ou 0.

Code polynomialCode polynomial

�� On considOn considèère que les bits dre que les bits d’’une une ssééquence binaire sont les coefficients quence binaire sont les coefficients dd ’’un polynôme.un polynôme.

�� Exemple : Exemple :

p = 110001p = 110001

⇒⇒ p(x) = xp(x) = x55 + x+ x44 + x+ x00

degrdegréé de p = 5de p = 5

Page 8: Couche Liaison

8

ArithmArithméétique utilistique utilisééee

ArithmArithméétique modulo 2 (i.e. sans retenue)tique modulo 2 (i.e. sans retenue)

�� addition et soustraction = ou exclusifaddition et soustraction = ou exclusif

�� divisiondivision

11 0101 1011 0000 / 1 001111 0101 1011 0000 / 1 0011

quotient = 11 0000 1010quotient = 11 0000 1010

reste = 1110reste = 1110

1100001010000011000010100000

1100001010011000010100

11000010101100001010

11101110

DivisionDivision

Deux mDeux mééthodes pour lthodes pour l’’effectuer effectuer àà la la main :main :

�� division binairedivision binaire

�� division polynomialedivision polynomiale

Code polynomialCode polynomial

Principe : lPrincipe : l’é’émetteur et le rmetteur et le réécepteur se cepteur se mettent dmettent d’’accord sur le choix daccord sur le choix d’’un un polynôme dit gpolynôme dit géénnéérateur G(x).rateur G(x).

Le codage consiste Le codage consiste àà ajouter des bits ajouter des bits de contrôle appelde contrôle appeléés :s :

le total (ou somme) de contrôlele total (ou somme) de contrôle

checksumchecksum

EmetteurEmetteur

�� Soit D(x) les donnSoit D(x) les donnéées es àà envoyer et k envoyer et k le degrle degréé de G(x)de G(x)

1) calculer D(x)*1) calculer D(x)*xxkk

revient revient àà ajouter k zajouter k zééros (poids faibles) ros (poids faibles) ààD(x)D(x)

2) calculer D(x)*2) calculer D(x)*xxkk / G(x)/ G(x)on obtient le quotient Q(x) et le reste on obtient le quotient Q(x) et le reste R(x) R(x)

3) calculer T(x) = D(x)*3) calculer T(x) = D(x)*xxkk -- R(x)R(x)revient revient àà remplacer les k zremplacer les k zééros par R(x)ros par R(x)

ExempleExemple

�� D(x) = 0101 1100D(x) = 0101 1100

�� G(x) = 1 1000 0101G(x) = 1 1000 0101

�� D(x)*D(x)*xxkk == 0101 1100 0000 0000

�� R(x) =R(x) = 0100 1101

�� T(x) =T(x) = 0101 1100 0100 1101

PropriPropriééttéé

T(x) est toujours divisible par G(x)T(x) est toujours divisible par G(x)

Le dividende moins le reste est Le dividende moins le reste est toujours divisible par le diviseur.toujours divisible par le diviseur.

Illustration en base 10 :Illustration en base 10 :

210 278 / 10 941 donne un reste 210 278 / 10 941 donne un reste éégal gal àà23992399

210 278 210 278 -- 2399 est divisible par 10 9412399 est divisible par 10 941

Page 9: Couche Liaison

9

RRéécepteurcepteur

�� T(x) est le mot transmis par T(x) est le mot transmis par ll’é’émetteurmetteur

�� TT′′(x) est le mot re(x) est le mot reççu par le ru par le réécepteurcepteur

�� Le rLe réécepteur effectue le test suivant:cepteur effectue le test suivant:Si TSi T′′(x) / G(x) donne un reste (x) / G(x) donne un reste éégal gal àà 0 0 alorsalorspas dpas d’’erreurerreur

sinonsinonune erreurune erreur

fin sifin si

NormalisationNormalisation

Plusieurs polynômes ont fait lPlusieurs polynômes ont fait l’’objet objet dd’’une norme car possune norme car posséédant de bonnes dant de bonnes propripropriééttééss

CRC 12 = xCRC 12 = x1212 + x+ x1111 + x+ x33 + x+ x22 + x +1+ x +1

CRC 16 = xCRC 16 = x1616 + x+ x1515 + x+ x22 + 1+ 1

CRC CCITT = xCRC CCITT = x1616 + x+ x1212 + x+ x55 + 1+ 1

NormalisationNormalisation

Les codes utilisant CRC 16 et CRC Les codes utilisant CRC 16 et CRC CCITT donnent des champs de CCITT donnent des champs de contrôle dcontrôle d’’erreur sur 16 bits.erreur sur 16 bits.

Ils permettent de dIls permettent de déétecter :tecter :

•• toutes les erreurs simples et doublestoutes les erreurs simples et doubles

•• toutes les rafales de longueur toutes les rafales de longueur ≤≤ 1616

•• les rafales de longueur > 17 avec une les rafales de longueur > 17 avec une probabilitprobabilitéé supsupéérieure rieure àà 99,99%99,99%

RRééalisationalisation

�� Les calculs nLes calculs néécessaires pour obtenir un cessaires pour obtenir un champ de contrôle semblent complexes.champ de contrôle semblent complexes.

�� Or un simple registre Or un simple registre àà ddéécalage suffit.calage suffit.

�� En pratique, on utilise presque toujours En pratique, on utilise presque toujours des circuits des circuits éélectroniques pour le codage lectroniques pour le codage et det déécodage polynomial. codage polynomial.

CRC CRC exempleexemple

� Exemple : CRC sur4 bits• M = 1101011011

• G(x) = x4 + x + 1

� CRC = 1110

� Message transmis :

1101011011 1110

Contrôle de fluxContrôle de flux

Page 10: Couche Liaison

10

Contrôle de fluxContrôle de flux

�� Utilisation d'acquittementsUtilisation d'acquittements

�� Gestion de temporisateursGestion de temporisateurs

�� NumNuméérotation des tramesrotation des trames

�� Limitation du nombre de trames Limitation du nombre de trames pouvant être envoypouvant être envoyéées par es par l'l'éémetteurmetteur

Protocole 1Protocole 1

�� HypothHypothèèsesses

•• mméémoire tampon infiniemoire tampon infinie

•• canal parfait (pas de pertes ni d'erreurs)canal parfait (pas de pertes ni d'erreurs)

•• protocole monoprotocole mono--directionneldirectionnel�� un un éémetteurmetteur

�� un run réécepteurcepteur

Emetteur Emetteur

Tant que vrai rTant que vrai rééppééterterp p ←← coucheReseau.donnerPaquet()coucheReseau.donnerPaquet()t t ←← construireTrameconstruireTrame(p)(p)couchePhysique.prendreTrame(t)couchePhysique.prendreTrame(t)

Fin tant queFin tant que

RRéécepteurcepteur

Tant que vrai rTant que vrai rééppéétertert t ←← couchePhysique.donnerTrame()couchePhysique.donnerTrame()p p ←← extrairePaquetextrairePaquet(t)(t)coucheReseau.prendrePaquet(p)coucheReseau.prendrePaquet(p)

Fin tant queFin tant que

Protocole 2 Protocole 2

�� Protocole de type Protocole de type «« envoyer et attendreenvoyer et attendre »»

�� HypothHypothèèse levse levéée : me : méémoire tampon infiniemoire tampon infinie

�� PrincipePrincipe

•• le rle réécepteur envoie une trame d'acquittement cepteur envoie une trame d'acquittement apraprèès chaque trame res chaque trame reççueue

•• l'l'éémetteur attend de recevoir un acquittement metteur attend de recevoir un acquittement avant d'avant d'éémettre la trame suivantemettre la trame suivante

Emetteur Emetteur

Tant que vrai rTant que vrai rééppééterterp p ←← coucheReseau.donnerPaquet()coucheReseau.donnerPaquet()t t ←← construireTrameconstruireTrame(p)(p)couchePhysique.prendreTrame(t)couchePhysique.prendreTrame(t)couchePhysique.attendreAquittementcouchePhysique.attendreAquittement()()

Fin tant queFin tant que

Page 11: Couche Liaison

11

RRéécepteur cepteur

Tant que vrai rTant que vrai rééppéétertert t ←← couchePhysique.donnerTrame()couchePhysique.donnerTrame()p p ←← extrairePaquetextrairePaquet(t)(t)coucheReseau.prendrePaquet(p)coucheReseau.prendrePaquet(p)couchePhysique.envoyerAcquittemencouchePhysique.envoyerAcquittement()t()

Fin tant queFin tant que

Protocole 3 Protocole 3

�� HypothHypothèèse levse levéée : canal parfaite : canal parfait

⇒⇒ des trames peuvent être errondes trames peuvent être erronééeses

⇒⇒ des trames peuvent être perduesdes trames peuvent être perdues

�� Principe Principe

•• Utiliser une mUtiliser une mééthode de dthode de déétection dtection d’’erreurserreurs

•• Le rLe réécepteur cepteur éémet une trame d'acquittement si met une trame d'acquittement si la trame arrivla trame arrivéée est correcte.e est correcte.

•• L'L'éémetteur rmetteur réé--éémet une trame si aucun met une trame si aucun ackackrereççu et si un certain du et si un certain déélai de temporisation a lai de temporisation a expirexpiréé

Emetteur Emetteur

Tant que vrai rTant que vrai rééppééterterp p ←← coucheReseau.donnerPaquet()coucheReseau.donnerPaquet()t t ←← construireTrameconstruireTrame(p)(p)boolboolééen en ackack ←← fauxfauxTant que Tant que ackack = faux r= faux rééppéétertercouchePhysique.prendreTrame(t)couchePhysique.prendreTrame(t)ackack ←← couchePhysique.attendreAquittement()couchePhysique.attendreAquittement()Fin Tant queFin Tant que

Fin tant queFin tant que

RRéécepteur cepteur

Tant que vrai rTant que vrai rééppéétertert t ←← couchePhysique.donnerTrame()couchePhysique.donnerTrame()Si Si estCorrecteestCorrecte(t) alors(t) alorsp p ←← extrairePaquetextrairePaquet(t)(t)coucheReseau.prendrePaquet(p)coucheReseau.prendrePaquet(p)couchePhysique.envoyerAcquittement()couchePhysique.envoyerAcquittement()

Fin siFin siFin tant queFin tant que

Émetteur Récepteur

ProblProblèèmeme

coucheréseau

trame 1

bruitack∆

trame 1

paquet 1

paquet 1ack

coucheréseau

paquet 1

Solution Solution

�� En considEn considéérant le problrant le problèème me prprééccéédent :dent :

•• il sil s’’avavèère nre néécessaire de numcessaire de numééroter les roter les trames pour distinguer deux trame trames pour distinguer deux trame successives.successives.

�� il est pril est prééfféérable que la trame rable que la trame d'acquittement contienne le numd'acquittement contienne le numééro ro de la trame qui est acquittde la trame qui est acquittéée.e.

Page 12: Couche Liaison

12

Protocole 4Protocole 4�� Protocole Protocole àà fenêtres dfenêtres d’’anticipation anticipation ((slidingsliding windowswindows).).

�� Deux fenêtres sont gDeux fenêtres sont géérréées par es par chaque entitchaque entitéé de couche liaison. En de couche liaison. En effet :effet :•• Toute entitToute entitéé éémettrice possmettrice possèède une de une fenêtre d'anticipation appelfenêtre d'anticipation appeléée fenêtre e fenêtre dd’é’émissionmission

•• Toute entitToute entitéé rrééceptrice possceptrice possèède une de une fenêtre d'anticipation appelfenêtre d'anticipation appeléée fenêtre de e fenêtre de rrééception ception

Fenêtre dFenêtre d’é’émissionmission�� La fenêtre dLa fenêtre d’é’émission indique la liste des mission indique la liste des numnumééros de trames dont on attend ros de trames dont on attend ll’’acquittement. acquittement.

012

3

7

456

e1)

012

3

7

456

e2)

012

3

7

456

e4)

012

3

7

456

e5)

012

3

7

456

e3)

012

3

7

456

e6)

Fenêtre de rFenêtre de rééceptionception�� La fenêtre de rLa fenêtre de rééception indique la ception indique la liste des numliste des numééros de trame attendus.ros de trame attendus.

012

3

7

456

r4)

012

3

7

456

r1)

012

3

7

456

r3)

012

3

7

456

r2)

PipelinagePipelinage

�� Utiliser des fenêtre dUtiliser des fenêtre d’’anticipation anticipation permet dpermet d’’utiliser la technique de utiliser la technique de pipelinagepipelinage..

�� Cela consiste Cela consiste àà envoyer plusieurs envoyer plusieurs trames successivement sans trames successivement sans attendre de recevoir les trames attendre de recevoir les trames d'acquittement.d'acquittement.

AcquittementsAcquittements

�� Lorsque plusieurs trames doivent Lorsque plusieurs trames doivent être acquittêtre acquittéées, il est possible :es, il est possible :•• dd’’envoyer un acquittement envoyer un acquittement «« individuelindividuel »» pour chaque tramepour chaque trame

•• dd’’envoyer un acquittement envoyer un acquittement «« collectifcollectif »»en indiquant en indiquant �� le plus grand numle plus grand numééro de trame parmi celles ro de trame parmi celles qui sont acquittqui sont acquittééeses

�� ou le numou le numééro de la prochaine trame ro de la prochaine trame attendue.attendue.

Acquittement Acquittement «« individuelindividuel »»

trame 0

trame 1

trame 2 ack 0

ack 1

ack 2

temps

Emetteur Récepteur

Page 13: Couche Liaison

13

Acquittement Acquittement «« collectifcollectif »»

trame 0

trame 1

trame 2

ack 2

temps

Emetteur Récepteur

Erreurs de transmissionErreurs de transmission

�� Si une trame situSi une trame situéée au milieu d'une e au milieu d'une sséérie est perdue ou erronrie est perdue ou erronéée ?e ?

�� Deux techniques de rejet sont Deux techniques de rejet sont possibles :possibles :

•• technique du rejet totaltechnique du rejet total

•• technique du rejet stechnique du rejet séélectiflectif

Technique de rejet totalTechnique de rejet total

�� Le rLe réécepteur rejettent toutes les cepteur rejettent toutes les trames qui suivent celle qui est trames qui suivent celle qui est erronerronéée.e.

•• inconvinconvéénient : le canal est mal exploitnient : le canal est mal exploitéé

•• avantage : pas besoin de mavantage : pas besoin de méémoires moires tamponstampons

ExempleExemple

Technique de rejet sTechnique de rejet séélectiflectif

�� Le rLe réécepteur accepte les suivantes (en les cepteur accepte les suivantes (en les stockant) jusqu'stockant) jusqu'àà une certaine limite une certaine limite donndonnéée par R.e par R.

•• avantage : le canal est mieux exploitavantage : le canal est mieux exploitéé

•• inconvinconvéénient : besoin de mnient : besoin de méémoires tamponsmoires tampons

ExempleExemple