Chapitre 3 Couche Liaison
Transcription
Chapitre 3 Couche Liaison
Description Chapitre 3 • 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. Couche Liaison : Principes 05/12/03 Couche liaison Page 1 05/12/03 Couche liaison Plan • • • • Description Introduction Dé limitation de trames Dé tection/Correction d’erreurs Contrôle de flux couche ré seau couche ré seau paquet paquet couche liaison couche liaison trame trame couche physique bits Couche liaison Page 2 05/12/03 couche physique Ré cepteur Emetteur 05/12/03 Page 5 Couche liaison Page 6 Services offerts • • • • Introduction 05/12/03 Couche liaison Page 3 05/12/03 Gestion (dé limitation) de trames Contrôle d’erreurs Contrôle de flux Contrôle d'accè s à un canal partagé (MAC) Couche liaison Page 7 Couche liaison • Cette couche doit assurer une transmission exempte d'erreurs sur un canal de communication. Dé limitation de trames • Les donné es sont fractionné es en trames. 05/12/03 Couche liaison Page 4 05/12/03 Couche liaison Page 8 Dé limitation des trames Exemple • Il existe trois mé thodes : • Fanion : 01111110 – Compter les caractè res – Utiliser des champs dé limiteurs de trame • Bit de transparence : 0 insé ré aprè s toute sé quence de cinq 1 successifs dans la trame. • Technique utilisé e dans : • Ils se situent en dé but et en fin de trame • Des bits (ou caractè res) de transparence sont né cessaires – HDLC – PPP – Violer le codage normalement utilisé dans la couche physique 05/12/03 Couche liaison Page 9 05/12/03 Couche liaison Page 13 Exemple 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 Donné es : 01011001111110 • Problè me : si la valeur du champ est modifié e au cours de la transmission Trame : 01111110 010110011111010 01111110 • Mé thode rarement utilisé e seule 05/12/03 Couche liaison Page 10 05/12/03 Page 14 Utiliser des fanions Exemple Trames é mises • Avantages – permet toujours de retrouver la synchronisation – permet l'envoi de trames de tailles quelconques – technique la plus simple 06 ‘S’‘U’‘P’ ‘E’‘R’ 03 ‘L’ ‘E’ 06 ‘C’‘O’‘U’‘R’‘S’ Trames reç ues • Cette technique est utilisé e é galement en considé rant des caractè res de dé limitation et des caractè res de transparence. 06 ‘S’‘U’‘P’ ‘E’‘R’ 04 ‘L’ ‘E’ 06 43 ‘O’‘U’‘R’‘S’ code ASCII de ‘C’ 05/12/03 Couche liaison Couche liaison Page 11 05/12/03 Utiliser des dé limiteurs Couche liaison Page 15 Violer le codage • Un fanion (dé limiteur) est placé : • Utilisable lorsque le codage sur le support physique contient des redondances • Par exemple : – au dé but de chaque trame – à la fin de chaque trame (en fait, au dé but de la suivante) – 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 • 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. • Utilisé e dans la norme 802 05/12/03 Couche liaison Page 12 05/12/03 Couche liaison Page 16 Types d’erreurs de transmission • Erreurs isolé es Dé tection/Correction d’erreurs 05/12/03 Couche liaison • Erreurs en rafales – simples à dé tecter – simples à corriger – proportion é levé e de blocs affecté s Page 17 05/12/03 – difficiles à dé tecter – difficiles à corriger – proportion faible de blocs affecté s Couche liaison Transmission d’information Page 21 Exemple • taille des blocs é changé s : 1000 bits • taux d’erreur : 1/1000 canal bruit • erreurs isolé es é metteur ré cepteur – la plupart des blocs en erreur • erreurs en rafale (de longueur 100) – un bloc sur 100 en erreur en moyenne 05/12/03 Couche liaison Page 18 05/12/03 Causes d’erreurs sur un canal Couche liaison Page 22 Deux straté gies possibles • rayonnement é lectromagné tique La destination peut : • dé tecter les erreurs, puis demander une retransmission – relais – é metteurs • câblage mal isolé • effet de distorsion – code dé tecteurs d’erreurs • dé tecter et corriger les erreurs – codes correcteurs d’erreur 05/12/03 Couche liaison Page 19 05/12/03 Taux d’erreur sur un canal taux d' erreur = nombre de bits erroné s nombre de bits é mis Couche liaison Page 23 Principe des codes • Exploiter la redondance d’informations ⇒ ajouter des bits de contrôle aux bits de donné es • 10-9 pour les ré seaux locaux • 10-5 pour le RTC • taux é levé pour le té lé phone sans fil 05/12/03 Couche liaison • Corriger est plus difficile que dé tecter ⇒ plus de bits de contrôle Page 20 05/12/03 Couche liaison Page 24 Supré matie des codes dé tecteurs Capacité d’un code • Pour qu’un code soit capable de dé tecter d erreurs, sa distance de Hamming doit ê tre é gal à d+1. Les codes dé tecteurs sont plus souvent utilisé s que les codes correcteurs mais : – lorsque le canal est unidirectionnel – lorsque la distance est é levé e (satellite) – lorsque les erreurs sont isolé es • Pour qu’un code soit capable de corriger d erreurs, sa distance de Hamming doit ê tre é gal à 2*d+1. les codes correcteurs peuvent (ou doivent) ê tre utilisé s. 05/12/03 Couche liaison Page 25 05/12/03 Couche liaison Mot de code Page 29 Exercice d bits de donné es + c bits de contrôle = n bits d’information (à transmettre) 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 ? Un tel mot de n bits est appelé un mot de code 05/12/03 Couche liaison Page 26 05/12/03 Distance de Hamming de 2 mots Couche liaison Page 30 Diffé rents codes • Code de contrôle de parité Il s’agit du nombre de bits qui diffè rent entre deux mots de code x et y. • Code de Hamming 1000 1001 ⊕1011 0001 = 0011 1000 • Codes polynomiaux • … Dist(x,y) = 3 05/12/03 Couche liaison Page 27 05/12/03 Distance de Hamming d’un code Principe : un seul bit (dit de parité ) est ajouté aux bits de donné es. Dist(C) = min { Dist(x,y) x∈C ∧ y ∈C } • parité paire : le nombre de bits à 1 du mot formé doit ê tre pair. Il s’agit de la distance minimale entre 2 mots du code Couche liaison Page 31 Code de contrôle de parité Soit C un code (dé tecteur et/ou correcteur) 05/12/03 Couche liaison • parité impaire : le nombre de bits à 1 du mot formé doit ê tre impair. Page 28 05/12/03 Couche liaison Page 32 Exemple Exemple 1/5 • parité paire 1001000 + c 3 c 2 c1 c0 100 0001 : bits de donné es +0 : bit de contrôle = 0100 0001 : mot de code ⇒ • parité impaire 11 10 9 8 7 6 5 4 3 2 1 101 1001 : bits de donné es +1 : bit de contrôle = 1101 1001 : mot de code 05/12/03 Couche liaison Page 33 05/12/03 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 • 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 Code dé tecteur Couche liaison Page 34 05/12/03 • 810 = 10002 le bit 8 est contrôlé par c 3 (lui-mê me) – la position d’un bit en erreur (soit d+c valeurs) – ou l’absence d’erreur (soit 1 valeur) • 710 = 01112 le bit 7 est contrôlé par c 2, c1 et c0 • ... Il faut donc : 2c ≥ d+c+1 Page 35 05/12/03 On numé rote les bits de chaque mot de code à partir de 1 : Page 39 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} – les bits de contrôle sont placé s aux positions repré sentant des puissances de 2 – les bits de donné es sont intercalé s Couche liaison Couche liaison Exemple 4/5 Mot de code de Hamming 05/12/03 Page 38 • 910 = 10012 le bit 9 est contrôlé par c 3 et c0 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 : Couche liaison Couche liaison Exemple 3/5 Code de Hamming 05/12/03 Page 37 La liste des bits de parité contrôlant un bit donné est fourni par sa repré sentation binaire Distance de Hamming = 2 05/12/03 Couche liaison Exemple 2/5 Code de contrôle de parité – – – – 1 0 0 c 3 1 0 0 c 2 0 c 1 c0 Page 36 05/12/03 Couche liaison Page 40 Exemple 5/5 Exercice Le mot transmis est donc (en parité paire) : 1 0 0 1 1 0 0 1 0 0 0 Le codage de Hamming est utilisé . Un ré cepteur reç oit : 111 0101 11 10 9 8 7 6 5 4 3 2 1 05/12/03 Couche liaison Que peut-on en conclure ? Page 41 05/12/03 Test à la ré ception 1/2 Couche liaison Code polynomial • A la ré ception, les diffé rents test de parité sont effectué s. • On considè re que les bits d’une sé quence binaire sont les coefficients d ’un polynôme. • Un mot binaire m (de contrôle) constitué d ’autant de bits que de bits de contrôle est construit. • Exemple : 05/12/03 Couche liaison p = 110001 ⇒ p(x) = x5 + x4 + x0 degré de p = 5 Page 42 05/12/03 Test à la ré ception 2/2 Page 46 Arithmé tique modulo 2 (i.e. sans retenue) • addition et soustraction = ou exclusif • division m[i] ← 0 Sinon m[i] ← 1 11 0101 1011 0000 / 1 0011 quotient = 11 0000 1010 reste = 1110 Fin si La valeur de m indique la position du bit en erreur ou 0. Couche liaison Couche liaison Arithmé tique utilisé e Si le contrôle de parité de ci est OK alors 05/12/03 Page 45 Page 43 05/12/03 Code de Hamming Couche liaison Page 47 Division Deux mé thodes pour l’effectuer à la main : Distance de Hamming = 3 • division binaire – peut dé tecter 1 ou 2 erreurs – peut corriger 1 erreur • division polynomiale Code dé tecteur 05/12/03 Couche liaison Page 44 05/12/03 Couche liaison Page 48 Code polynomial 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 : Principe : l’é metteur et le ré cepteur se mettent d’accord sur le choix d’un polynôme dit gé né rateur G(x). Si T′(x) / G(x) donne un reste é gal à 0 alors Le codage consiste à ajouter des bits de contrôle appelé s : pas d’erreur sinon le total (ou somme) de contrôle checksum 05/12/03 Couche liaison une erreur fin si Page 49 05/12/03 Emetteur Couche liaison Page 53 Normalisation • Soit D(x) les donné es à envoyer et k le degré de G(x) 1) calculer D(x)*xk Plusieurs polynômes ont fait l’objet d’une norme car possé dant de bonnes proprié té s CRC 12 = x12 + x11 + x3 + x2 + x +1 revient à ajouter k zé ros (poids faibles) à D(x) 2) calculer D(x)*xk / G(x) CRC 16 = x16 + x15 + x2 + 1 on obtient le quotient Q(x) et le reste R(x) CRC CCITT = x16 + x12 + x5 + 1 3) calculer T(x) = D(x)*xk - R(x) revient à remplacer les k zé ros par R(x) 05/12/03 Couche liaison Page 50 05/12/03 Exemple Les codes utilisant CRC 16 et CRC CCITT donnent des champs de contrôle d’erreur sur 16 bits. • G(x) = 1 1000 0101 0101 1100 0000 0000 • R(x) = 0100 1101 • T(x) = 0101 1100 0100 1101 05/12/03 Couche liaison Ils permettent de dé tecter : – toutes les erreurs simples et doubles – toutes les rafales de longueur ≤ 16 – les rafales de longueur > 17 avec une probabilité supé rieure à 99,99% Page 51 05/12/03 Proprié té Couche liaison • Les calculs né cessaires pour obtenir un champ de contrôle semblent complexes. Illustration en base 10 : • En pratique, on utilise presque toujours des circuits é lectroniques pour le codage et dé codage polynomial. • Or un simple registre à dé calage suffit. 210 278 / 10 941 donne un reste é gal à 2399 210 278 - 2399 est divisible par 10 941 Couche liaison Page 55 Ré alisation T(x) est toujours divisible par G(x) Le dividende moins le reste est toujours divisible par le diviseur. 05/12/03 Page 54 Normalisation • D(x) = 0101 1100 • D(x)*xk = Couche liaison Page 52 05/12/03 Couche liaison Page 56 Ré cepteur Tant que vrai ré pé ter t ← couchePhysique.donnerTrame() p ← extrairePaquet(t) coucheReseau.prendrePaquet(p) Fin tant que Contrôle de flux 05/12/03 Couche liaison Page 57 05/12/03 Couche liaison Protocole 2 Contrôle de flux • • • • • Protocole de type « envoyer et attendre » Utilisation d'acquittements Gestion de temporisateurs Numé rotation des trames Limitation du nombre de trames pouvant ê tre envoyé es par l'é metteur 05/12/03 Couche liaison • Hypothè se levé e : mé moire tampon infinie • Principe – le ré cepteur envoie une trame d'acquittement aprè s chaque trame reç ue – l'é metteur attend de recevoir un acquittement avant d'é mettre la trame suivante Page 58 05/12/03 • Hypothè ses • un é metteur • un ré cepteur Page 59 05/12/03 Page 63 Tant que vrai ré pé ter t ← couchePhysique.donnerTrame() p ← extrairePaquet(t) coucheReseau.prendrePaquet(p) couchePhysique.envoyerAcquittement() Fin tant que Tant que vrai ré pé ter p ← coucheReseau.donnerPaquet() t ← construireTrame(p) couchePhysique.prendreTrame(t) Fin tant que Couche liaison Couche liaison Ré cepteur Emetteur 05/12/03 Page 62 Tant que vrai ré pé ter p ← coucheReseau.donnerPaquet() t ← construireTrame(p) couchePhysique.prendreTrame(t) couchePhysique.attendreAquittement() Fin tant que – mé moire tampon infinie – canal parfait (pas de pertes ni d'erreurs) – protocole mono-directionnel Couche liaison Couche liaison Emetteur Protocole 1 05/12/03 Page 61 Page 60 05/12/03 Couche liaison Page 64 Protocole 3 Solution • Hypothè se levé e : canal parfait • En considé rant le problè me pré cé dent : ⇒ des trames peuvent ê tre erroné es ⇒ des trames peuvent ê tre perdues – il s’avè re né cessaire de numé roter les trames pour distinguer deux trame successives. • Principe • De plus, comme on le verra en TD : – 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é 05/12/03 Couche liaison – il est pré fé rable que la trame d'acquittement contienne le numé ro de la trame qui est acquitté e. Page 65 05/12/03 Emetteur Couche liaison • 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 Page 66 05/12/03 Couche liaison Ré cepteur Fenê tre d’é mission Tant que vrai ré pé ter t ← couchePhysique.donnerTrame() Si estCorrecte(t) alors p ← extrairePaquet(t) coucheReseau.prendrePaquet(p) couchePhysique.envoyerAcquittement() Fin si Fin tant que • La fenê tre d’é mission indique la liste des numé ros de trames dont on attend l’acquittement. 05/12/03 Couche liaison • Elle possè de une taille courante variable curE de valeur infé rieure ou é gale à maxE. On a toujours : 0 ≤ curE ≤ maxE Page 67 05/12/03 couche ré seau – 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 ack paquet 1 ack paquet 1 trame 1 05/12/03 É metteur Couche liaison Page 71 • La fenê tre est repré senté e par deux frontiè res (bornes). trame 1 bruit Couche liaison Bornes paquet 1 ∆ Page 70 • Elle possè de une taille maximale maxE indiquant le nombre maximal de trames qui peuvent ê tre envoyé es sans se pré occuper des acquittements. Problè me couche ré seau Page 69 Protocole 4 Tant que vrai ré pé ter p ← coucheReseau.donnerPaquet() t ← construireTrame(p) boolé en ack ← faux Tant que ack = faux ré pé ter couchePhysique.prendreTrame(t) ack ← couchePhysique.attendreAquittement() Fin Tant que Fin tant que 05/12/03 Couche liaison Ré cepteur Page 68 05/12/03 Couche liaison Page 72 Mé moires tampons Bornes • 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. • 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. 05/12/03 Couche liaison Page 73 05/12/03 Couche liaison Exemple Page 77 Exemple • Considé rons que : 7 0 6 5 – les trames soient numé roté s de 0 à 7 (sur 3 bits) – maxE = 3 – curE = 0 (initialement) 7 1 2 4 3 7 7 1 2 4 r1) 0 6 5 3 0 6 5 1 2 4 r2) 3 r3) 0 6 5 1 2 4 3 r4) 05/12/03 Couche liaison Page 74 05/12/03 7 0 7 1 2 4 3 7 4 0 3 e4) 05/12/03 3 7 1 2 4 7 1 2 4 3 e3) 0 6 5 • 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. 0 6 5 e2) 1 2 4 7 1 2 e1) 6 5 0 6 5 3 e5) 0 6 5 1 2 4 3 e6) Couche liaison Page 75 05/12/03 Page 79 • 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 T t = temps né cessaire au ré cepteur pour traiter une trame. • 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). Couche liaison Couche liaison Calcul de l’efficacité Fenê tre de ré ception 05/12/03 Page 78 Pipelinage Exemple 6 5 Couche liaison Page 76 05/12/03 Couche liaison Page 80 Acquittement « individuel » 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ù : trame 0 trame 1 ack 0 trame 2 ack 1 – 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 05/12/03 Couche liaison temps ack 2 Emetteur Page 81 05/12/03 Ré cepteur Couche liaison Page 85 Acquittement « collectif » Efficacité • Efficacité : trame 0 trame 1 100% si Tem >= Ta Tem/Ta sinon trame 2 temps • NB : calcul thé orique ne prenant en compte ack 2 – ni les erreurs de transmission – ni les problè mes de surcharge du ré cepteur Emetteur 05/12/03 Couche liaison Page 82 05/12/03 Page 83 05/12/03 Acquittements Page 87 maxE = 8 et n =8 • L’é metteur envoie un sé rie de trames numé roté es de 0 à 7, • L’é metteur reç oit un acquittement « collectif » avec le numé ro 7, • L’é metteur envoie une nouvelle sé rie de trames numé roté es de 0 à 7, • L’é metteur reç oit un acquittement « collectif » avec le numé ro 7. – d’envoyer un acquittement « individuel » pour chaque trame – d’envoyer un acquittement « collectif » en indiquant • le plus grand numé ro de trame parmi celles qui sont acquitté es • ou le numé ro de la prochaine trame attendue. Couche liaison Couche liaison Exemple • Lorsque plusieurs trames doivent ê tre acquitté es, il est possible : 05/12/03 Page 86 • Il est né cessaire que : maxE < n où n repré sente le nombre de numé ros de trames (allant de 0 à n-1) pouvant ê tre utilisé s. • En effet, comme le ré cepteur peut envoyer plusieurs fois le mê me acquittement, une ambiguïté peut apparaître. • 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 Couche liaison Couche liaison Contrainte Exercice 05/12/03 Ré cepteur Page 84 05/12/03 Couche liaison Page 88 Erreurs de transmission Exemple • Si une trame situé e au milieu d'une sé rie est perdue ou erroné e ? • Deux techniques de rejet sont possibles : – technique du rejet total – technique du rejet sé lectif 05/12/03 Couche liaison Page 89 05/12/03 Technique de rejet total • La technique de rejet sé lectif impose une nouvelle contrainte sur la valeur de maxE : il faut choisir une valeur au plus é gale à n/2 • En effet, un problè me survient lorsque une nouvelle fenê tre au niveau de l'é metteur se superpose à une ancienne. – inconvé nient : le canal est mal exploité – avantage : pas besoin de mé moires tampons • Cette technique correspond à l’utilisation d’une fenê tre de ré ception de taille 1. Couche liaison Page 93 Technique de rejet sé lectif • Le ré cepteur rejettent toutes les trames qui suivent celle qui est erroné e. 05/12/03 Couche liaison Page 90 05/12/03 Couche liaison Page 94 Superposition Exemple • Lorsque la communication est bidirectionnelle (un é metteur et un ré cepteur de chaque côté ), il est possible d’utiliser un champ des trames de donné es pour indiquer un acquittement. • Il s’agit d’une technique de superposition (piggybacking) • Avantage : quelques bits versus une trame • Inconvé nient : attendre une trame de donné es • NB : si pas de trames de donné es à envoyer dans un certain dé lai, envoyer une trame de contrôle. 05/12/03 Couche liaison Page 91 Technique de rejet sé lectif • Le ré cepteur accepte les suivantes (en les stockant) jusqu'à une certaine limite donné e par R. – avantage : le canal est mieux exploité – inconvé nient : besoin de mé moires tampons • Cette technique correspond à l’utilisation d’une fenê tre de ré ception de taille supé rieure à 1. • Le ré cepteur utilise un acquittement « collectif ». 05/12/03 Couche liaison Page 92 05/12/03 Couche liaison Page 95