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

L’acquittement et la couche 2 (acknowledgment)

Présentations similaires


Présentation au sujet: "L’acquittement et la couche 2 (acknowledgment)"— Transcription de la présentation:

1 L’acquittement et la couche 2 (acknowledgment)
Chapitre 3 L’acquittement et la couche 2 (acknowledgment) w3.uqo.ca/luigi INF6263 Chap 3

2 Protocoles Procédures concernant la communication
Afin que deux ou plusieurs parties puissent communiquer, ils doivent utiliser un protocole commun P.ex. pour communiquer par la poste, il faut informer les autres de votre adresse, il faut regarder dans la boîte aux lettres périodiquement, poster aux boîtes rouges, utiliser des enveloppes, des timbres, etc. INF6263 Chap 3

3 L’incertitude dans les systèmes répartis
INF6263 Chap 3

4 Deux généraux qui doivent prendre une ville…
Seulement agissant ensemble peuvent-ils gagner… Un général n’attaquera que s’il est certain que l’autre attaquera aussi Le seul moyen de communication est un pigeon… INF6263 Chap 3

5 Un dialogue sans espoir…
Général A envoie un message à B: attaquons à 6h demain Attaqueront-ils? Non, A attendra confirmation car le pigeon aurait pu ne pas arriver à B Général B envoie une réponse: d’accord à 6h demain (two-way handshake) Non, B attendra confirmation Général A répond encore: d’accord à 6 h demain (three-way handshake) Non, A attendra confirmation Etc… INF6263 Chap 3

6 Preuve (informelle): Supposez qu’un protocole existe
Quand le milieu n’est pas fiable, Il n’y a pas de protocole pour achever la certitude mutuelle! Preuve (informelle): Supposez qu’un protocole existe Il doit impliquer au moins un message Il doit être tel que si le dernier message est perdu, les généraux seront certains et attaqueront Donc le dernier message ne serait pas nécessaire Enlevons le dernier message pour un protocole plus efficace Le même raisonnement s’applique récursivement à tout message, y inclus le premier! Aucun message ne serait nécessaire contradiction INF6263 Chap 3

7 Retards non-bornés Observez que le même résultat est valable dans le cas où Tous les pigeons arrivent, Mais ils pourraient retarder pour un temps inconnu Heures, jours ou plus … Ceci pourrait aussi impliquer la possibilité que les pigeons se croisent, dans la même direction ou dans directions opposées INF6263 Chap 3

8 Résultat théorique Théorème
In any run of a distributed system that displays unbounded message delays, it can never be common knowledge that a message has been delivered. J. Y. Halpern and Y. Moses. Knowledge and common knowledge in a distributed environment. Journal of the ACM, 37(3):549–587, 1990. INF6263 Chap 3

9 Cas de communication sans pertes (si le temps est favorable …)
INF6263 Chap 3

10 Erreurs résiduelles On découvre que ce résultat s’applique à n’importe quel protocole! Il n’est pas possible d’établir l’accord certain dans le cas de canaux avec perte Un aspect fondamental de la preuve est que nous ne savons pas combien de fois le milieu va échouer Si nous savons que sûrement il y aura succès au pire après 9 tentatives, alors l’envoi de 10 pigeons suffira Étant donné que normalement il est impossible d’établir ce type de borne, il n’est pas possible d’établir la certitude globale dans les systèmes répartis N’importe la complexité du protocole et la fiabilité du milieu, il y a toujours la possibilité d’erreurs résiduelles On parle donc de taux d’erreur 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 Et nous avons aussi des applications pour lesquelles la fiabilité absolue n’est pas nécessaire Si un paquet est perdu dans la transmission de la parole, de la musique, d’une image de télévision, l’usager pourrait ne pas s’en rendre compte INF6263 Chap 3

11 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… Ceci est tout un domaine de recherche, les protocoles de sécurité Cours disponible … INF6263 Chap 3

12 Les acquittements et leur fonctionnalité
Dans les systèmes télématiques, les acquittements peuvent avoir fonctions différentes Simplement faire savoir que le message a été reçu Surtout dans la couche liaison de données Contrôle de flux Programmant l’envoyeur de ne pas envoyer des nouveaux messages si les précédents n’ont pas été acquittés Répondre à la requête (l’ack contient alors des infos additionnelles) Surtout dans la couche application Les deux premières fonctions nous préoccupent en ce chapitre INF6263 Chap 3

13 La détection d’erreurs dans les modèles à couche
Quelle couche est la plus appropriée pour la détection d’erreurs? Dans l’ OSI, la détection d’erreurs se fait un peu partout dans les premières 4 couches surtout dans la couche 2: Liaison de données pas du tout après la couche Transport Dans le TCP/IP, elle se fait à la couche TCP (Transport) Cependant en principe il n’y a pas de couche préférable Chaque couche doit en quelque sorte se préoccuper d’erreurs à son niveau Détectable p.ex. comme ‘réception non spécifiée’ v. Chap 2. Même dans les applications nous devons nous préoccuper de la possibilité d’erreurs P.ex. une application de bases de données qui reçoit une requête SQL dans un format non valable INF6263 Chap 3

14 Protocoles à trois étapes – Three-way handshake
Utilisé dans TCP, connexion et déconnexion Et dans un grand nombre d’autres protocoles Invitation Accept (ou non) Confirm. Pour les raisons mentionnées, il n’y a pas certitude que les deux côtés soient vraiment prêts à échanger les données INF6263 Chap 3

15 Avec ré-essai après un temps
Chaque côté renvoie après un certain temps Ici aussi, il n’y a pas certitude mutuelle après l’envoi de conf. Afin de chercher à la créer, on pourrait avoir une temporisation et boucle pour conf, ce qui demanderait une 2ème conf, etc. ! invit ? invit tempor. ? accept ! accept tempor. ! conf ? conf Peut commencer à envoyer sans être certain…. INF6263 Chap 3

16 Le protocole du bit alterné (BA)
Le protocole BA fut le 1er protocole qui fut spécifié utilisant la notion de modèle de transitions d’état Article de Bartlett et Scantlebury dans Comm. ACM May 1969, disponible à partir de l’UQO sur Excellent et fameux article, 2 pages seulement! Parfois cité comme 1er article dans l’ingénierie des protocoles BA est un des plus simples protocoles de liaison données possibles, 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, nous verrons… Il a été utilisé dans un grand nombre d’études sur la validation des protocoles INF6263 Chap 3

17 Rédécouvrons le protocole du bit alterné
Exigence: un protocole qui accepte une séquence de paquets de données et les remet à l’autre côté dans le même ordre Message 0 1 1 2 2 3 3 Effet désiré: comment l’obtenir? INF6263 Chap 3

18 Contrôle d’erreurs Problème, le canal peut perdre des données 1
1 Le récepteur a perdu l’ordre des messages 2 1 3 2 INF6263 Chap 3

19 Compter les messages Chaque message contient son numéro, afin 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 d’initialiser le comptage Étant donné qu’il faut pas gaspiller les bits pour le comptage, essayons avec le plus petit compteur possible: 1 bit INF6263 Chap 3

20 Utilisation du bit alterné
Le protocole commence le comptage à 0 Pour pouvoir reprendre, il faut donner au récepteur la possibilité de demander le renvoi du message perdu bit=0 Attend 0, OK Message 0 1 Message 1 Attend 1, reçoit 0 Erreur 2 3 INF6263 Chap 3

21 Deux méthodes Le récepteur peut envoyer un message NACK 0, signalant le fait que le message 0 n’a pas été reçu Cependant ce message pourra lui-même être perdu Une solution équivalente est d’exiger un ACK pour chaque message reçu Qui peut lui aussi être perdu ARRÊT ET ATTENTE: Stop and Wait Protocol L’émetteur envoie, attend acquittement Si l’acquittement arrive, continue avec proch. message Sinon (le message ou l’acquittement pourraient être perdus!) renvoie message précédent Problème: combien de temps attendre Solution: établir un temps sur la base du temps d’allée/retour du message et son acquittement (le double?) Minuterie: positionner , annuler INF6263 Chap 3

22 Arrêt et attente (stop-and-wait)
contexte partagé (connexion) Cas normal n-1 messages déjà transmis, n pair Message n D0 Attend bit 0: accepté positionne minuterie t t Ack OK minuterie t annulée t Message n+1 D1 positionne minuterie t t Etc. INF6263 Chap 3

23 Perte de message dans arrêt-attente (si l’attente n’est pas assez longue)
n-1 messages déjà transmis, n pair Message n D0 Attend bit 0: accepté Ack D0 Retransmet D0 et peut penser que l’acquittement est pour le 2ème Ack D1 Ceci est l’acquittement du 2ème D0 mais il pourrait être pour D1 Ce D0 est-il une retransmission du 1er ou est-il un nouveau message… (étant donné que tous les ack pourraient avoir été perdus) D0 Pense que D1 a été reçu et envoie D0 Etc. INF6263 Chap 3

24 Protocole du bit alterné
Le protocole que nous avons vu n’est pas capable d’apparier les messages avec les acquittements en présence de pertes de messages et retards Peut fonctionner seulement quand les délais maximaux sont connus et certains Besoin de numéroter non seulement les messages, mais aussi les acquittements Le protocole résultant est assez résistant aux erreurs comme nous verrons Il est la base pour autres protocoles plus puissants comme “sliding window” (“fenêtre d’anticipation”) etc. INF6263 Chap 3

25 Questions importantes
Il n’y a pas de question sur quel message ou acquittement envoyer si un message ou acquittement avec le ‘bon’ bit a été reçu Quand un message est reçu et il n’a pas le ‘bon’ bit, quel sera le bit dans l’acquittement? Quand un acquittement est reçu et il n’a pas le ‘bon’ bit, quel sera le bit dans le prochain message envoyé? INF6263 Chap 3

26 Protocole bit alterné: Arrêt et attente
Cas de perte de message n-1 messages déjà transmis, n impair Message n D0 Positionne Minuterie Temporisation Doit renvoyer n D0 n A0 OK INF6263 Chap 3

27 Protocole bit alterné: Arrêt et attente
Chevauchement de message! n-1 messages déjà transmis, n pair n D0 D0 n Attend 1, reçoit 0; Écarter A0 Ack le dernier msg bien reçu OK INF6263 Chap 3

28 Protocole bit alterné: Arrêt et attente
Chevauchement d’ack! n-1 messages déjà transmis, n pair D0 A0 D0 Attend 1, écarter Attend ack de 0, OK D1 OK A1 INF6263 Chap 3

29 Protocole bit alterné: Arrêt et attente
Cas de perte d’acquittement n-1 messages déjà transmis, n pair D0 A0 D0 Attend 1: écarté A0 Continue d’envoyer l’acquittement du dernier msg bien reçu D1 OK INF6263 Chap 3

30 Sans pertes mais avec retards
n-1 messages déjà transmis, n pair Message n D0 Attend bit 0: accepté A0 D0 D0 acquitté A0 Continue d’acquitter le dernier msg bien reçu D1 Écarte ceci et il retransmet D1 D1 Écarté A1 OK D0 INF6263 Chap 3

31 Protocole du bit alterné avec pertes et retards
n-1 messages déjà transmis, n pair Message n D0 Attend bit 0: accepté A0 D0 D0 acquitté A0 D1 Écarte ceci et il retransmet D1 D1 OK A1 INF6263 Chap 3

32 Exercice Exécutez le bit alterné dans plusieurs scénarios de votre invention pour bien comprendre comment il fonctionne La compréhension de ce protocole est la base pour la compréhension de tous les autres protocoles de la couche ‘liaison de données’ INF6263 Chap 3

33 Collision Nous venons de voir un cas de collision, cad une situation où deux entités envoient des messages ‘en même temps’ (D0-A0) Ceci ne veut pas dire exactement en même temps, mais il se croisent Les collisions ne sont pas nécessairement des erreurs, cependant elles doivent être prises en considération dans la conception P.ex. deux entités qui demandent connexion ou déconnexion indépendamment Deux données qui voyagent en direction opposée dans les protocoles bi-directionnels INF6263 Chap 3

34 Bit alterné unidirectionnel, diagramme de transition
émetteur récepteur ?D1 !D1 8 8 ?A1 !A1 To, ?A0 !A1 1 6 1 4 Données de l’usager ?D0 !D1 Données à usager 2 5 2 5 Données à usager Données de l’ usager !D0 ?D1 ?A0 3 4 3 6 !A0 To, ?A1 !A0 !D0 ?D0 7 7 Cas normal et cas d’erreur To: temporisation A: Ack INF6263 Chap 3

35 Usagers émetteur et recepteur
Donner message à l’émetteur Prendre message du récepteur INF6263 Chap 3

36 Architecture globale: 4 machines à états
Usager émetteur Usager récepteur Compos. synchrone Compos. synchrone Protocole émetteur Protocole récepteur Compos asynch Le canal est plus compliqué que ceux que nous avons vu: il permet perte et réarrangement de messages. Pour le réprésenter, il faut compliquer considérablement la machine … INF6263 Chap 3

37 Messages altérés - Erreurs
Nous n’avons pas considéré le cas de réception de messages altérés (messages avec erreur détectée) L’hypothèse étant qu’un message altéré est comme un message non-reçu Supposant un mécanisme de contrôle d’intégrité qui jette les messages altérés Dans le diagramme de transition nous pourrions ajouter ce cas d’erreur aux transitions 3 7 et 6  8 dans l’émetteur 67 et 18 dans le récepteur INF6263 Chap 3

38 Problèmes (montrant que ce protocole n’est pas parfait, comme attendu)
Double chevauchement de message! Un vieux message échu avec un bit égal à ce qui est attendu sera considéré bon… D0 13 n 37 D0 73 n n 13 A0 34 36 D1 46 n+1 n+1 64 A1 61 41 13 OK! (croit avoir reçu n+2) A0 Acquitte vieille donnée 36 D0 Pense que ceci est un msg répété par erreur! 67 INF6263 Chap 3

39 Réceptions non spécifiées dans BA
Que fera l’envoyeur avec un A0 après avoir reçu un A1 lorsqu’il n’a rien envoyé? Il pourra l’écarter le récepteur recevra un deuxième D0 qu’il acquittera et ignorera Ou il pourra lire dans le canal seulement après avoir envoyé D0 Il considérera son dernier D0 acquitté Et il répondra avec !D1 à l’A0 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 à l’usager INF6263 Chap 3

40 Et aussi… Double chevauchement d’ACK D0 13 n 13 n A0 36 37 D0 n
73 67 A0 34 76 D1 46 64 n+1 n+1 A1 61 41 D0 13 A0 34 18 D1 46 D0 n’a pas été reçu, D1 sera écarté INF6263 Chap 3

41 Considération Est-il possible qu’une des deux entités se trouve coincée dans une des différentes boucles sans pouvoir en sortir? P.ex. considérons la possibilité que, après avoir fait un !D1, le récepteur reçoive un A0 et puis se trouve coincé à jamais dans: (6)!A0(8)!D1(6)To(8)!D1(6)To(8) etc. (on appellerait ceci ‘livelock’) NON, car le récepteur enfin devra se trouver dans l’état 8, et son prochain message sera donc !A1. Quand ceci sera reçu il forcera l’émetteur à faire plus tard un !D0 SI un ou plusieurs !A1 sont perdus, la boucle continuera dans l’émetteur et dans le récepteur jusqu’au point où, enfin, un !A1 sera reçu Hypothèse d’équité (fairness): quand un événement est possible, il sera enfin réalisé INF6263 Chap 3

42 Problèmes de sécurité Nous aurons évidemment des problèmes semblables si nous admettons que le milieu puisse générer par lui-même des mauvais messages, Ou si ceci serait possible par intervention d’un tiers, l’intrus V. cours sur les protocoles de sécurité INF6263 Chap 3

43 Transmission bidirectionnelle
Le protocole que nous venons de donner est pour transmission dans 1 direction seulement (simplex) Le protocole BA original pouvait fonctionner dans les 2 directions (alternat ou half-duplex) Piggybacking: un seul paquet sert pour transférer les nouvelles données en même temps que l’ack du message précédent dans la direction opposée Dans le transparent suivant, supposons que: A est un client qui envoie des requêtes SQL à B B est un serveur (base de données) qui acquitte ces requêtes tout en répondant INF6263 Chap 3

44 Protocole BA alternat bidirectionnel, compacté…
Deux stations A et B, chacune garde son propre bit local Bit local=1 au début pour les deux A commence en état 1 B commence en état 3 N=Données de l’usager, bit local est renversé !D envoi données avec bit local ?Db réception de données avec Pour A, bit = local de A Pour B, bit ≠ local de B ?Dm réception opposée (erreur) U=données à l’usager A 1 N U 2 !D ?Dm, To 4 3 ?Db B INF6263 Chap 3

45 Exercice Avec deux copies de ce protocole, essayer des échanges de messages dans les deux directions et avec pertes A 1 1 N N U U 2 2 !D ?Dm, To 4 !D ?Dm, To 4 3 ?Db 3 ?Db B INF6263 Chap 3

46 Architecture globale: 4 machines à états
Usager émetteur Usager récepteur U N Émetteur Récepteur INF6263 Chap 3

47 Mais... La vitesse des deux usagers doit être ± la même:
Quoi faire si A envoie un message, B doit acquitter mais son usager n’a pas de données prêtes à envoyer? A devra donc attendre, ou sinon des messages vides pourraient être livrés avec certains acquittements... INF6263 Chap 3

48 Terminologie Simplex = Unidirectionnel
Half-Duplex ou alternat = bidirectionnel alternative Transmission qui peut fonctionner dans une direction ou l’autre, mais pas simultanément C’est le cas pour le protocole précédent Full duplex = bidirectionnel simultané INF6263 Chap 3

49 Propriété qui peut être prouvée pour le BA
Dans le cas d’un milieu avec possibilité d’erreur mais sans double chevauchement, il est possible de prouver que le BA préserve l’ordre des données, c.-à-d. La chaîne des messages reçus est dans le même ordre de la chaîne des messages envoyés Moins évidemment les messages envoyés et pas encore arrivés La condition ‘sans double chevauchement’ peut être obtenue choisissant des temps d’attentes suffisamment longs Mais le coût sera un système plus lent Et comment déterminer ce qui est suffisant? INF6263 Chap 3

50 Auto-stabilisation (Self-synchronisation)
Le protocole du BA a aussi la propriété d’être capable de retourner au fonctionnement normal après n’importe quelle situation d’erreur Il pourra cependant avoir livré à l’usager les mauvaises données (ce que nous avons vu) INF6263 Chap 3

51 Protocoles à fenêtre d’anticipation (sliding window)
Le protocole du BA peut être généralisé en utilisant un compteur de plusieurs bits n bits Dans le cas de n=1, l’émetteur devait garder le dernier message jusqu’à l’acquittement, donc 2n -1 = 1 messages En général, pour un compteur de n bits, l’émetteur doit garder au plus les derniers 2n -1 messages jusqu’à leur acquittement Persuadez-vous de ceci! Dans ce cas, il y a plus de liberté concernant la vitesse relative de l’émetteur et du récepteur L’émetteur peut continuer d’envoyer des paquets même si un certain nombre de paquets déjà transmis n’a pas été acquitté Les protocoles à fenêtre sont utilisés dans TCP Ainsi que couche 2 de l’OSI, couche 2 de X.25 etc HDLC: High-level Data Link Control INF6263 Chap 3

52 Fenêtre d’anticipation
Au moment de l’envoi d’un message, l’émetteur positionne une minuterie spécifique à ce message Si l’ack n’est pas reçu dans le délai, le message doit être retransmis, avec tous les messages qui l’ont suivi jusqu’à la détection de l’erreur 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 à l’intervalle de la minuterie Peut réutiliser l’espace 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 L’intervalle de temporisation et la dimension du tampon doivent être soigneusement choisis INF6263 Chap 3

53 Fenêtre d’anticipation
émetteur récepteur 1 2 3 1 Erreur 4 écarté 5 L’émetteur s’est enfin aperçu que 2 n’a pas été acquitté (temporisation) écarté 6 écarté 2 3 écarté 4 2 3 4 Émetteur doit garder en mémoire un certain nombre de messages pour pouvoir éventuellement les retransmettre (dans ce cas, de 2 à 6) INF6263 Chap 3

54 Comment choisir le temps d’attente pour un acquittement?
Ce temps est déterminé par la vitesse du réseau Doit être choisi judicieusement: Si trop petit, beaucoup de messages pourraient être renvoyés inutilement Si trop grand, trop de message devront être renvoyés quand on s’apercevra qu’un message a été perdu Aussi le protocole pourrait retourner à numéroter un message n avant qu’on se soit aperçu que le message n précédent a été perdu… INF6263 Chap 3

55 Quelques calculs, par exemple (contrôlez!)
Avec un numéro de séquence de 16 bits, nous pouvons numéroter messages Si un message est de 27 = 128 bits, ceci demande une zone tampon de 216x27 = 223 = bits À la très modeste vitesse de bps, tous les numéros seront utilisés dans 15 minutes Plus exactement mins Donc si un message retarde plus de ça, il pourrait être mal placé dans la séquence suivante Il doit cependant arriver au moment où un message avec le même no de séquence est attendu INF6263 Chap 3

56 Dans TCP: constatations historiques
TCP utilise un No de séquence de 32 bits À l’époque où TCP fut inventé, les réseaux transmettaient à des vitesses de l’ordre de 10Mbps À cette vitesse, transmettre 232 octets prenait approx 3,400 secs, (approx. 1h), donc un numéro de séquence n’était pas répété plus souvent que ça (nous ignorons la taille des paquets) Mais aujourd’hui avec des réseaux à 10Gbps, ce temps est réduit à 3,4 secondes TCP devrait être révisé pour avoir un No de séq de 64 bits, alors même à la vitesse de 100Gbps il faudrait 46 ans pour transmettre 264 octets. Source: CommACM 55, 12 (Dec. 2012), 32 . INF6263 Chap 3

57 Taille du tampon Des exemples qu’on trouve dans les livres et dans les sites web montrent des tampons de taille 2N pour numéros de séquences de N bits En réalité, l’émetteur ne peut transmettre plus de 2N-1 message à l’avance Considérez le cas où l’émetteur envoie 2N messages et tous les acquittements sont perdus! L’émetteur essaiera de renvoyer la même séquence Le receveur, ne sachant pas que tous ses acquittements sont perdus, pensera qu’il s’agit de la séquence suivante! Donc il est nécessaire que l’émetteur s’arrête après avoir envoyé 2N-1 messages, s’il ne reçoit aucun acquittement à ce moment là, il doit reprendre la séquence courante à partir du début Et le récepteur saura qu’il s’agit encore de la séquence courante INF6263 Chap 3

58 Plus grande independence de vitesse
Dans le protocoles « arrêt et attente » la vitesse de l’envoyeur et du récepteur sont étroitement dépendantes Plus le tampon est grand, plus il y a independence Cependant en tout cas à longue échéance les vitesses doivent être comparables Le tampon ne peut pas être infini INF6263 Chap 3

59 Laisse courte: petite fenêtre peu d’indépendance entre homme et chien
Laisse longue: grande fenêtre plus d’indépendance (Mais à longue échéance les vitesses sont les mêmes) INF6263 Chap 3

60 Technique alternative
Seulement les messages erronés sont retransmis Le récepteur doit donc stocker tous les messages suivant une erreur et être prêt à insérer les retransmissions dans le bon ordre Meilleure utilisation de bande passante s’il y a beaucoup d’erreurs (rare aujourd'hui) Mais moins utilisé car il demande un stockage tant pour l’émetteur que pour le récepteur Donc stockage double pour une station relais INF6263 Chap 3

61 Inévitabilité de messages ‘hors d’ordre’
Aucune technique ne peut empêcher la possibilité de messages en retard, mais encore acceptés… émetteur récepteur Le premier 2 n’arrive pas tout de suite, il est probablement retransmis. Mais il arrive plus tard quand le récepteur attend un 2 et donc est mis à la mauvaise place. Le 2 suivant, qui est à la bonne place, sera probablement considéré une erreur. 1 2 3 1 2 4 3 4 1 2 1 3 2 ? 3 INF6263 Chap 3 4

62 Sans utiliser la minuterie
La minuterie peut être évitée en exigeant qu’un message avec no de séquence X ne peut être envoyé que si l’envoyeur a reçu l’acquittement de l’X précédent Dans ce cas, la taille du tampon n’a pas besoin d’être fonction de la vitesse du milieu, cependant elle pourrait être non-optimale INF6263 Chap 3

63 Et encore une autre technique (TCP)
Dans chaque acquittement, le récepteur déclare être prêt à recevoir K paquets à partir d’un certain numéro L’émetteur doit garder dans un tampon tous les paquets non acquittés Pourraient devoir être retransmis Il peut réutiliser l’espace libéré par les paquets déjà acquittés Réduit le nombre d’acquittements Paquets qui pourraient être transmis Paquets déjà transmis 3 4 5 6 7 1 2 3 4 5 6 7 1 2 INF6263 Chap 3

64 Example détaillé dans le livre:
W. Stallings, Wireless Communications and Networks, Prentice-Hall INF6263 Chap 3

65 Contrôle de flux Les mécanismes d’acquittement sont étroitement reliés au problème de contrôle de flux Le contrôle de flux est un mécanisme pour empêcher l’émetteur d’envoyer plus que le récepteur ne peut recevoir (à cause de l’espace de tamponnage disponible) Il y a deux formes fondamentales de contrôle de flux: Explicite: le récepteur dit à l’émetteur qu’il est prêt à recevoir K paquets (exemple précédent) Ou il envoie un message demandant à l’émetteur de suspendre Implicite: le récepteur n’accepte pas (p.ex. n’envoie plus d’acquittements) Ceci peut forcer l’émetteur à retransmettre INF6263 Chap 3

66 Les deux fonctions des acquittements
Le message d’acquittement (ack) a donc deux fonctions reliées: Faire savoir que certains messages ont été reçus correctement (contrôle d’erreur) Faire savoir que le récepteur est prêt à recevoir un ou plusieurs nouveaux messages (contrôle de flux) INF6263 Chap 3

67 La couche liaison aujourd’hui
La couche liaison était très importante à l’époque où les réseaux étaient lents et peu fiables (contrôle d’erreurs) et les ressources de mémoire des noeuds étaient limitées (contrôle de flux) Aujourd’hui les réseaux sont très rapides, très fiables, et les ressources de mémoire sont importantes À fins d’efficacité et simplicité, beaucoup d’applications sont bâties sur des protocoles comme UDP, un protocole de «transport » qui ne garantit pas de préserver l’ordre des messages Chose qui n’avait pas été prévue par les concepteurs de l’architecture OSI! Quel est le résultat dans le cas d’erreur? Certaines applications ne sont pas sensible aux erreurs occasionnels p.ex. voix sur IP, multimédia L’application peut être bâtie pour détecter et récupérer des erreurs à son niveau p.ex. un programme qui consulte une base de données peut reconnaître l’erreur car les données ne sont pas reçues dans le format approprié et peut donc répéter la requête INF6263 Chap 3

68 Deux couches possibles en dessus de IP
TCP: avec connexion: cette couche Établit la connexion avec un handshake En transmission, ajoute la numérotation aux messages En réception assure que les msg soient reçu dans le même ordre qu’envoyés UDP: sans connexion: ne fait rien de ça, Beaucoup plus simple, donc beaucoup plus efficace TCP l’un ou l’autre UDP IP INF6263 Chap 3

69 Terminologie TCP: Transmission Control Protocol
UDP: User Datagram Protocol “Datagramme” est presque un synonyme de “paquet”, mais l’utilisation du nom veut dire que la livraison, le temps d’arrivée et l’ordre ne sont pas garantis L’ordre et la livraison sont garantis par TCP, mais pas par UDP INF6263 Chap 3

70 Pour en savoir davantage
Un vieux livre de Gerhard Holzmann contient beaucoup d’informations que j’ai utilisé pour ce chapitre V. Surtout Chapitre 4. INF6263 Chap 3

71 Concepts importants du Chapitre 3
Incertitude dans les systèmes répartis avec pertes de messages Erreurs résiduelles Délai d’attente (timeout) Acquittement (acknowledgment) Le protocole du bit alterné Auto-stabilisation Protocoles à fenêtre Contrôle de flux et relation avec l’acquittement Protocoles avec connexion ou non Importance pratique INF6263 Chap 3

72 Question Est-il possible d’utiliser les méthodes d’analyse d’accessibilité étudiées au chapitre précédent pour analyser le comportement des protocoles étudiés dans ce chapitre? OUI! Et ceci se fait Cependant l’automate global résultant est de dimensions importantes et pour le générer il est nécessaire d’utiliser des outils P.ex. nous parlerons de l’outil SPIN qui se prête bien à ce type d’analyse INF6263 Chap 3

73 Question Comment savoir quelle est la taille d’un canal dans un protocole? Deux méthodes: Une longueur maximale théorique pourrait être déterminée par analyse d’accessibilité, comme montré dans les exemples donnés Nous avons vu des canaux de longueur max 1, 2 … ou infinie Sinon, et particulièrement dans le cas où l’analyse d’accessibilité dit que la taille théorique est infinie, par décision de l’implémenteur, qui pourra dire que l’implémentation ne contiendra pas plus de X positions de mémoire P.ex. dans TCP la grandeur du tampon peut être quelconque, mais l’implémenteur devra décider une taille, en fonction de la mémoire disponible INF6263 Chap 3

74 Exemple d’automate qui représente un canal
M,N Cet automate représente un canal de capacité 2 qui peut recevoir une série de messages M, N, M, N ….. de longueur arbitraire Il peut les sortir dans le même ordre ou dans l’ordre inverse. Il peut aussi perdre l’un ou l’autre message (transitions sans étiquettes) Persuadez-vous que cet automate réalise ce comportement. M et N seraient les deux places dans la mémoire du protocole. INF6263 Chap 3

75 Exercice Réfléchissez sur comment cet automate peut être combiné avec le protocole du Bit Alterné pour obtenir un service plus fiable INF6263 Chap 3


Télécharger ppt "L’acquittement et la couche 2 (acknowledgment)"

Présentations similaires


Annonces Google