La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 La couche Liaison et ses problèmes de contrôle du flux de données Azza Ouled Zaid Institut Supérieur dInformatique 2 ème année Cycle Ingénieur.

Présentations similaires


Présentation au sujet: "1 La couche Liaison et ses problèmes de contrôle du flux de données Azza Ouled Zaid Institut Supérieur dInformatique 2 ème année Cycle Ingénieur."— Transcription de la présentation:

1 1 La couche Liaison et ses problèmes de contrôle du flux de données Azza Ouled Zaid Institut Supérieur dInformatique 2 ème année Cycle Ingénieur

2 2 Deux généraux qui doivent prendre une ville… Seulement en agissant ensemble peuvent-ils gagner… Un général nattaquera que sil est certain que lautre attaquera aussi Le seul moyen de communication est un pigeon…

3 3 Un dialogue sans espoir… Général A envoie un message: attaquons à 6h demain Attaqueront-ils? Non, A attendra confirmation Général B envoie une réponse: daccord à 6h demain Attaqueront-ils? Non, B attendra confirmation Général A répond encore: daccord à 6 h demain Attaqueront-ils? Non, A attendra confirmation Etc…

4 4 Il ny a pas de protocole pour résoudre ce problème! Preuve (informelle): Supposez quun protocole existe Il doit impliquer au moins un message Il doit être tel que si le dernier message est perdu, les généraux attaquent Donc le dernier message ne serait pas nécessaire Enlevons le dernier message pour un protocole plus efficace Le même raisonnement sapplique inductivement à tout message, y inclus le premier! Aucun message ne serait nécessaire contradiction

5 5 Erreurs résiduels Après analyse, on découvre que ce résultat sapplique à nimporte quel protocole! Il nest pas possible détablir laccord certain dans le cas de canaux avec perte Un aspect fondamental de la preuve est que nous ne savons pas combien de fois le système va échouer Si nous savons que sûrement il y aura succès au moins 1 fois sur 10, alors lenvoi de 10 pigeons suffira Étant donné que normalement il est impossible détablir ce type de borne, il nest pas possible détablir la certitude globale dans les systèmes répartis Nimporte la complexité du protocole et la fiabilité du milieu, il y a toujours la possibilité derreurs résiduels On parle donc de taux derreur résiduel (residual error rate) Il est vrai cependant que dans les supports de communication modernes (fibres optiques, etc.) la fiabilité est extrêmement élevée

6 6 Problèmes de sécurité Considérez aussi la possibilité que le pigeon puisse être intercepté et remplacé par un autre pigeon avec un message différent…

7 7 Position du problème 1. Synchronisation entre la vitesse de transmission et celle de propagation et réception 2. Optimiser lutilisation du canal 3. Éviter la congestion Le 2 ème et 3 ème objectifs sont complémentaires Lémission lente est pénalisante Lémission rapide introduit la congestion La capacité de stockage des nœuds intermédiaires est limitée pour supporter les messages échangés par plusieurs pairs emetteur-recepteur

8 8 Objectif du cours Établir un système de contrôle de flux complet à partir dune séquence de modifications apportées à un modèle basique simple Les règles de procédures de ces protocoles sont définies par un langage de spécification basé sur lSDL

9 9 Contrôle de flux Le contrôle de flux est un mécanisme pour empêcher lémetteur denvoyer plus que le récepteur ne peut recevoir (à cause de lespace de tamponnage disponible) Il y a deux formes fondamentales de contrôle de flux: Explicite: le récepteur dit à lémetteur quil est prêt à recevoir x paquets Implicite: le récepteur naccepte pas (p.ex. nenvoie plus dacquittements)

10 10 Notations mesg:o dans une instruction dentrée ou sortie indique le message du type mesg avec le champs de données o est émit ou reçu next:o lextraction interne de donnée o qui sera transmise dans le prochain (next) message de sortie accept:i stockage i comme donnée reçue acceptée

11 11 Structure dun organigramme Les actions dun processus sont spécifiées par des symboles. Six types de symboles : Ces symboles représentes : Déclarations, e.g, affectations (statement) Tests booléens, e.g., expressions (test) Conditions dattente, e.g., récepteurs (wait) Événements internes, e.g., timeouts (delais) Les messages entrant et sortant (input, output)

12 12 Structure dun organigramme Les tests booléens sont évalués sans délais Les conditions dattente sont utilisées pour modéliser la synchronisation du processus Elles indiquent que lexécution naura lieu que si une condition donnée soit vraie Les éléments restants dun organigramme sont : Les arêtes directionnelles Les connecteurs

13 13 Structure dun organigramme Les arêtes directionnelles indiquent que le contrôle du flux converge uniquement vers les connecteurs Elles peuvent diverger aux conditions dattentes et aux tests booléens

14 14 Structure dun organigramme File dattente de capacité infinie : Associée à un organigramme du processus Utilisée pour stocker les messages qui arrivent Déclarations output : les messages sont insérés dans la file dattente Déclarations input : les messages sont extrait de la file dattente

15 15 Structure dun organigramme Les outputs, déclarations, conditions dattente, événements internes et les tests booléens peuvent apparaître à nimporte quelle localisation dans lorganigramme Les inputs doivent suivre les symboles dattente que nous désignons par receive.

16 16 Structure dun organigramme Une condition dattente (receive) suspend lexécution du processus jusqua se que le type du message contenu dans la première trame de la file dattente soit défini dans lune des entrées (inputs) qui suit le symbole dattente Si le message dans la première trame de la file est dun autre type, il sagit dune erreur de protocole Un délai dattente (timeout) est une condition de synchronisation interne représentée par un événement interne. Lexécution sera suspendue tant que lexpression (une fois évaluée) donne la valeur booléenne vrai (une valeur non nulle).

17 17 Structure dun organigramme Deux actions internes pour modéliser les accès : next et accept next:a,b indique lextraction interne des éléments a et b dune base de données interne accept:a,b le stockage des données dans une base de données interne Les deux actions next et accept inclus touts les processus associés respectivement à lextraction et le stockage des données

18 18 Modèle de protocole basique Ce protocole est fiable ssi le récepteur est plus rapide que lémetteur Violation dune règle basique de la conception des systèmes répartis: Ne jamais imposer une hypothèse sur les vitesses des processus concurrents

19 19 Synchronisation émetteur-récepteur Rôle du récepteur : 1. interpréter les données 2. décider ce quil doit faire avec 3. allouer la mémoire 4. orienter les données vers un destinataire approprié Consommation dun temps considérable Rôle de lémetteur : 1. trouver le fournisseur des données à transférer 2. il est en arrêt tant quil ny a pas de données à transférer 3. libérer de la mémoire après le transfert moins de temps à consommer Le goulot dans le protocole est le processus de réception

20 20 Première technique de contrôle de flux: protocole X-on X-off Plus ancien, moins fiable Deux messages de contrôle : suspend : suspendre le trafic resume : réinitialiser le trafic Hypothèses : canal est idéal (pas derreurs de transmission) vocabulaire du protocole : V = { mesg, suspend, resume } Les messages de contrôle "suspend" et "resume" sont utilisés pour implémenter la méthode de contrôle de flux

21 21 Protocole X-on X-off : Processus démission

22 22 Protocole X-on X-off : Processus de réception Le message de données passe du compteur vers le processus dacceptation à travers une file dattente interne

23 23 Limites du protocole X-on X-off Le fonctionnement correcte dun protocole dépend des caractéristiques du canal La perte ou le retard dun message suspend introduit un problème de dépassement Le fonctionnement du protocole doit être indépendant du temps que métrera le message de contrôle pour atteindre lémetteur Même problème dans le cas dune perte dun message resume

24 24 Limites du protocole X-on X-off Deux problèmes à résoudre : 1. Protection contre les erreurs de dépassement dune manière plus fiable 2. Protection contre la perte des messages Solution au premier problème Lémetteur attend explicitement un acquittement pour transférer les messages Protocole ping-pong ou stop and wait

25 25 Protocole stop and wait Résout le problème de dépassement mais pas celui de la perte des données

26 26 Limites du protocole X-on X-off t : temps de propagation a : temps de réception (traitement et acceptation) p : temps de transmission Lémetteur nécessite un délai de ( 2t + a – p ) pour chaque message transmit (retard) Le message dacquittement (ack) a donc deux fonctions reliées: Faire savoir que le message a été reçu correctement (contrôle derreur) Faire savoir que le récepteur est prêt à recevoir un ou plusieurs nouveaux messages (contrôle de flux) Cette idée conduit à une solution au problème du retard Protocole à fenêtre.

27 27 Protocole à fenêtre Dans la phase dinitiation dappel, le récepteur peut informer lémetteur de lespace mémoire réservé aux messages entrants Lémetteur dispose alors dun budget pour un nombre fixe des messages sortants Le budget peut être mis à jour dynamiquement lorsque la quantité despace mémoire disponible change

28 28 Protocole à fenêtre : canal idéal W : budget initial alloué (nombre de messages fixé) W-n : le budget non utilisé

29 29 Perte des messages Lémetteur sera en attente si seulement si le budget était réduit à 0 Durant le transfert le budget varie entre 0 et W suivant la rapidité de lémetteur et le récepteur Optimisation des communications : lémetteur peut continuer denvoyer des paquets même si un certain nombre de paquets déjà transmis na pas été acquitté Mais, le problème de perte, effacement, duplication, désordre sera maintenu La perte dune séquence de messages dacquittement bloquera les deux entités

30 30 Délais dattente : timeouts ARRÊT ET ATTENTE: Stop and Wait Protocol Lémetteur envoie, attend acquittement Si lacquittement arrive, continue avec proch. message Sinon (le message ou lacquittement pourraient être perdus!) renvoie message précédent Problème: combien de temps attendre Solution: établir un temps sur la base du temps dallée/retour du message et son acquittement (le double?) Minuterie: positionner, annuler

31 31 Faute usuelle, lémetteur et le récepteur utilisent tout les deux des délais dattente Diagramme de séquence dune erreur

32 32 Faute usuelle, Lémetteur et le récepteur décident de retransmettre le dernier message émit (cas dun effacement) Lorsque le premier acquittement atteint lémetteur, ce dernier ne peut pas savoir sil acquitte le message perdu ou retransmit

33 33 Solutions proposées Leçon n°1 La retransmission est initiée par lune des deux entités (émetteur ou récepteur) En général la retransmission est à la responsabilité de lémetteur lémetteur (seul) sait avec certitude quand une nouv donnée a été transmise Leçon n°2 Lacquittement doit indiquer quel message a été acquitté, même dans le cas de lémission dun message par période Ajouter le numéro de séquence pour chaque message de données ou de contrôle

34 34 Numérotation des séquences Le numéro de séquence appartient à un intervalle fini, il faut vérifier que le recyclage des numéros ne perturbe pas le bon fonctionnement du protocole Nous allons voir que la numérotation des séquences est utilisée en combinaison avec le protocole à fenêtre Avant détablir la combinaison, protocole à fenêtre danticipation, nous allons nous familiariser avec lutilisation des délais dattente et la numérotation des séquences ( protocole du bit alterné)

35 35 Le protocole du bit alterné (BA) Le protocole BA est le 1 er protocole qui fut spécifié en utilisant la notion de modèle de transitions détat Article de Bartlett et Scantlebury dans Comm. ACM May 1969, disponible à partir de Excellent et fameux article, 2 pages seulement! Parfois cité comme 1er article dans lingénierie des protocoles BA est un des plus simples protocoles de liaison données, mais il Démontre les principes fondamentaux de tous les protocoles de liaison de données Réussit à récupérer des erreurs de transmission Dans certaines limites… Il a été utilisé dans un grand nombre détudes sur la validation des protocoles Cependant chaque étude dépend dun formalisme particulier

36 36 Découvrons le protocole du bit alterné Exigence: un protocole qui accepte une séquence de paquets de données et les remet à lautre côté dans le même ordre Message

37 37 Contrôle derreurs Problème, le canal peut perdre des données Le récepteur a perdu lordre des messages

38 38 Compter les messages Chaque message contient son numéro, de façon à ce que le récepteur sache quel message il vient de recevoir Besoin de connexion: les deux côtés doivent initialiser une connexion, ce qui permet dinitialiser le comptage Étant donné quil faut pas gaspiller les bits pour le comptage, essayons avec le plus petit compteur possible: 1 bit (numéro du message mod 2)

39 39 Utilisation du bit alterné Au début, les deux se mettent daccord pour commencer à 0 Pour pouvoir reprendre, il faut donner au récepteur la possibilité de demander le renvoi du message perdu 0 Message 0 Message bit=0 1 0 Attend 0, OK Attend 1, reçoit 0 Erreur

40 40 Deux méthodes Le récepteur peut envoyer un message NACK 0, signalant le fait que le message 0 na pas été reçu Mais le message NACK pourrait aussi se perdre, donc la solution préférée est dexiger un ACK pour chaque message reçu ARRÊT ET ATTENTE: Stop and Wait Protocol

41 41 Protocole bit alterné: Arrêt et attente cas normal Message n Attend bit 0: accepté OK minuterie t annulée D0 A positionne minuterie t t t n-1 messages déjà transmis, n pair n messages transmis D0, D1: messages avec bit 0 ou 1 A: acquittement

42 42 Bit dans lacquittement Il faut que lacquittement contienne lidentification du message reçu, sinon… A retransmet DO et pense que lacquittement est pour le 2ème Message n Attend bit 0: accepté D0 D1 n-1 messages déjà transmis, n pair n messages transmis A D0 Ceci est lacquittement du 2ème DO que A croit être pour D1 A

43 43 Protocole bit alterné: Arrêt et attente Cas de perte de message (OK) Message n Temporisation Doit renvoyer n B0 Positionne Minuterie n n-1 messages déjà transmis, n impair A0

44 44 Protocole bit alterné: Arrêt et attente Cas de perte dacquittement (OK) Attend 1: écarté n Temporisation Doit renvoyer n D0 Positionne Minuterie A0 n-1 messages déjà transmis, n pair A0

45 45 Protocole bit alterné: Arrêt et attente Chevauchement de message! (OK) n Temporisation Doit renvoyer D0 Positionne Minuterie n Attend 1, reçoit 0 Écarter A0 n-1 messages déjà transmis, n pair

46 46 Protocole bit alterné: Arrêt et attente Chevauchement dack! (OK) Temporisation Doit renvoyer D0 Positionne Minuterie Attend 1, écarter A0 Attend ack de 0, OK n+1 D1 n+1 A1 n-1 messages déjà transmis, n pair n

47 47 Bit alterné unidirectionnel, diagramme de transition A Origine du message Numéro de séquence : bit alterné 0 Les actions denvoi sont soulignées A B

48 48 Organigramme du protocole de bit alterné

49 49 Notations Deux type de messages : mesg et ack Format : { mesg, data, sequence number } { ack, sequence number } mesg:o:s spécifie un message mesg avec un champ de données o et un numéro de séquence s. Quatre variables binaires : a, e, r, et s. s : utilisé par lémetteur pour enregistrer le numéro de la dernière séquence envoyée r : numéro de la dernière séquence reçue e : numéro de la prochaine séquence attendu par le récepteur a : numéro de la séquence qui vient dêtre reçue Toutes les variables sont initiées à zéro

50 50 Problèmes (montrant que ce protocole nest pas parfait, comme attendu) Double chevauchement de message! Un vieux message échoué avec un bit égal à ce qui est attendu sera considéré bon… D0 n n A0 D1 A1 OK! (croit avoir reçu n+2) n+1 n A0 Acquitte vieille donnée

51 51 Réceptions non spécifiées dans BA Que va faire lenvoyeur avec un A0 après avoir reçu un A1 lorsquil na rien envoyé? Il pourrait lécarter le récepteur recevra un deuxième D0 quil acquittera et ignorera Ou il pourrait lire dans le canal seulement après avoir envoyé D0 Il considérera son dernier D0 acquitté Et il répondra avec !D1 à lA0 que le récepteur lui enverra Dans les deux cas, le protocole retournera enfin à la normalité Mais la mauvaise donnée a été livrée à lusager

52 52 Et aussi… Double chevauchement dACK n D0 A0 n+1 A0 D1 A1 D0 A0 D1 D0 na pas été reçu, D1 sera écarté n n n+1

53 53 Protocoles à fenêtre danticipation (sliding window) Le protocole du BA peut être généralisé en utilisant un compteur de plusieurs bits: p. ex. 4 bits Nous avons donc un tampon borné de 2 n bits, où n est le nombre de bits Dans ce cas, il y a plus de liberté concernant la vitesse relative de lémetteur et du récepteur Lémetteur peut continuer denvoyer des paquets même si un certain nombre de paquets déjà transmis na pas été acquitté Les protocoles à fenêtre ont été utilisés dans la couche 2 de X.25, couche 2 de lOSI et dans TCP HDLC: High-level Data Link Control

54 54 Fenêtre danticipation Au moment de lenvoi dun message, lémetteur positionne une minuterie spécifique à ce message Si lack nest pas reçu dans le délai, le message doit être retransmis, avec tous les messages qui lont suivi jusquà la détection de lerreur Lémetteur doit être prêt à renvoyer tous les messages non acquittés dans une fenêtre ou tampon dont la dimension est reliée à lintervalle de la minuterie Il peut réutiliser lespace des messages acquittés La dimension de la fenêtre doit être telle que le transmetteur puisse être sûr de pouvoir retransmettre toutes les trames non acquittées Lintervalle de temporisation et la dimension du tampon doivent être soigneusement choisis

55 55 Fenêtre danticipation Erreur 3 écarté 2 émetteurrécepteur Lémetteur sest enfin aperçu que 2 na pas été acquitté (temporisation) 4 4 Émetteur doit garder en mémoire un certain nombre de messages pour pouvoir éventuellement les retransmettre (dans ce cas, de 2 à 6)

56 56 Quelques calculs, par exemple… Avec un numéro de séquence de 16 bits, nous pouvons numéroter messages Si un message est de 2 7 = 128 bits, ceci demande une zone tampon de 2 16 x2 7 = 2 23 = bits À la modeste vitesse de bps, tous les numéros seront utilisés dans 15 minutes Donc si un message retarde plus de 15 minutes, il pourrait être interprété comme appartenant à la séquence suivante

57 57 Modèle de protocole de fenêtre danticipation Soit M lintervalle des numéros de séquences disponibles et W le budget initial des messages. M est suffisamment large pour éviter les problèmes de confusion dus au recyclage Lémetteur doit mémoriser les messages non acquittés dans cette fenêtre. Deux vecteurs de valeurs binaires sont utilisés à ces fins : busy[s] = true si le message avec le numéro de séquence s est émit mais pas acquitté store[s] = true si le message avec le numéro de séquence s est le dernier message émit Initialement, busy[s] = store[s] = true

58 58 Fonctionnement du protocole : niveau émetteur Lobjectif peut être découpé en 3 sous objectifs 1. Transmission des messages 2. Traitements des acquittements 3. Retransmission des messages non acquittés Quatre variables supplémentaires (initialisées à 0) sont utilisées s, num de séquence du message à envoyer window, le nombre des messages émis et non acquittés n, num de séquence du premier message envoyé et non acquitté m, num de séquence du dernier message acquitté

59 59 Organigramme BA coté émetteur

60 60 Fonctionnement du protocole : niveau récepteur Le récepteur est divisé en 2 processus : 1. Processus de réception : reçoit et stocke les messages 2. Processus dacceptation : accepte et acquitte les messages en utilisant les num de séquences pour les remettre dans lordre Les messages sont acquittés que sils sont acceptés éviter les problèmes de bourrage recvd [ M ] : variable booléenne pour mémoriser les num des séquences de messages reçus mais non encore acceptés buffer [ M ] : mémorise le contenu de ces messages p : num de séquence du prochain message à accepter (initialiser à 0)

61 61 Fonctionnement du protocole : niveau récepteur Deux raison peuvent provoquer larrivée dun message dupliqué : 1. Message reçu mais pas encore acquitté. 2. Message reçu et acquitté, lacquittement na pas atteint lémetteur. Lacquittement est retransmit que dans le cas 2. la décision est en fonction de p valid (m) = ( 0 < p -mW )| |( 0 < p +M -mW ) Le protocole à fenêtre garanti quun message retransmit ne peut pas avoir un numéro de séquence supérieur à W et inférieur au dernier message qui a été acquitté

62 62 Organigramme BA coté récepteur

63 63 Terminologie le contrôle de flux utilisant des acquittements pour contrôler la retransmission est désigné par ARQ ( Automatic Repeat Request ). Trois variantes : Stop-and-wait ARQ Selective repeat ARQ Go-back-N continuous ARQ Le protocole Ping-Pong fait partie de la classe stop-and-wait ARQ. Après chaque envoie dun message, lémetteur doit attendre un acquittement (positif ou negatif) ou un timeout Lutilisation des acquittements dans un protocole à fenêtre danticipation est une méthode ARQ à répétition sélective. Seules les premiers messages non acquittées seront transmis

64 64 La couche liaison aujourdhui La couche liaison était très importante à lépoque où les réseaux étaient lents et peu fiables (contrôle derreurs) et les ressources de mémoire des noeuds étaient limitées (contrôle de flux) Aujourdhui les réseaux sont très rapides, très fiables, et les ressources de mémoire sont importantes À fins defficacité et simplicité, beaucoup dapplications sont bâties directement sur la couche physique (typiquement, IP) Chose qui navait pas été prévue par les concepteurs de larchitecture OSI! Quel est le résultat dans le cas derreur? Certaines applications ne sont pas sensible aux erreurs occasionnels p.ex. voix sur IP, multimédia Lapplication peut être bâtie pour détecter et récupérer des erreurs à son niveau p.ex. un programme de consultation de bases de données peut reconnaître lerreur car les données ne sont pas reçues dans le format approprié et peut donc demander retransmission


Télécharger ppt "1 La couche Liaison et ses problèmes de contrôle du flux de données Azza Ouled Zaid Institut Supérieur dInformatique 2 ème année Cycle Ingénieur."

Présentations similaires


Annonces Google