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 Chapitre 4 Lacquittement (acknowledgment) Auteur des transparents: L. Logrippo w3.uqo.ca/luigi.

Présentations similaires


Présentation au sujet: "1 Chapitre 4 Lacquittement (acknowledgment) Auteur des transparents: L. Logrippo w3.uqo.ca/luigi."— Transcription de la présentation:

1 1 Chapitre 4 Lacquittement (acknowledgment) Auteur des transparents: L. Logrippo w3.uqo.ca/luigi

2 INF6001 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.

3 INF6001 Chap 3 3 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…

4 INF6001 Chap 3 4 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 …

5 INF6001 Chap 3 5 Il ny a pas de protocole pour résoudre ce problème! Preuve (informelle): (v. notes de cours du Prof. Pelc pour une preuve plus générale) 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

6 INF6001 Chap 3 6 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 milieu 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 Et nous avons aussi des applications pour lesquelles la fiabilité absolue nest pas nécessaire Si un paquet est perdu dans la transmission de la parole, de la musique, dune image de télévision, lusager pourrait ne pas sen rendre compte

7 INF6001 Chap 3 7 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…

8 INF6001 Chap 3 8 Fonctionnalité des acquittements Dans les systèmes télématiques, les acquittements peuvent avoir deux fonctions différentes Simplement faire savoir que le message a été reçu Surtout dans la couche liaison de données Répondre à la requête Surtout dans la couche application Cest la première fonction qui nous préoccupe en ce chapitre

9 INF6001 Chap 3 9 La détection derreurs dans les modèles à couche Quelle couche est la plus appropriée pour la détection derreurs? Dans l OSI, la détection derreurs 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 ny a pas de couche préférable Chaque couche doit en quelque sorte se préoccuper derreurs à son niveau Détectable p.ex. comme réception non spécifiée Même dans les applications nous devons nous préoccuper de la possibilité derreurs P.ex. une application de base de données qui reçoit une requête dans un format non valable

10 INF6001 Chap 3 10 Protocoles à trois étapes – Three-way handshake Utilisé dans TCP, connexion et déconnexion Et dans un grand nombre dautres protocoles Invitation Accept (ou non) Confirm.

11 INF6001 Chap 3 11 Avec ré-essai Chaque côté renvoie après un certain temps Ici aussi, il ny a pas certitude après lenvoi 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 ? accept tempor. ! conf ? invit ! accept tempor. ? conf Peut commencer à envoyer sans être certain….

12 INF6001 Chap 3 12 Le protocole du bit alterné (BA) Le protocole BA fut le 1er 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 lUQO sur 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 possible, 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

13 INF6001 Chap 3 13 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 Effet désiré: comment lobtenir?

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

15 INF6001 Chap 3 15 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 dinitialiser le comptage Étant donné quil faut pas gaspiller les bits pour le comptage, essayons avec le plus petit compteur possible: 1 bit

16 INF6001 Chap 3 16 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 0 Message 0 Message bit=0 1 0 Attend 0, OK Attend 1, reçoit 0 Erreur

17 INF6001 Chap 3 17 Deux méthodes Le récepteur peut envoyer un message NACK 0, signalant le fait que le message 0 na pas été reçu Cependant ce message pourra lui-même être perdu Une solution équivalente est dexiger 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 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

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

19 INF6001 Chap 3 19 Perte de message dans arrêt-attente (si lattente nest pas assez longue) Message n Attend bit 0: accepté D0 D1 n-1 messages déjà transmis, n pair Ack Retransmet DO et pense que lacquittement est pour le 2ème D0 Ceci est lacquittement du 2ème DO mais il paraît être pour D1 Ack D0 Ne sait pas si ce D0 est une retransmission du 1 er ou sil sagit dun nouveau message… Etc.

20 INF6001 Chap 3 20 Protocole du bit alterné: Bit dans lacquittement Il faut donc que lacquittement contienne lidentification du message reçu Message n Attend bit 0: accepté D0 D1 n-1 messages déjà transmis, n pair A0 D0 acquitté D0 Écarte ceci et il saura quil doit retransmettre D1 A0 D1 OK A1

21 INF6001 Chap 3 21 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

22 INF6001 Chap 3 22 Protocole bit alterné: Arrêt et attente Cas de perte dacquittement (OK) n Temporisation Doit renvoyer n D0 Positionne Minuterie A0 Attend 1: écarté n-1 messages déjà transmis, n pair A0 D1 Continue denvoyer lacquittement du dernier msg bien reçu

23 INF6001 Chap 3 23 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

24 INF6001 Chap 3 24 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

25 INF6001 Chap 3 25 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) 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

26 INF6001 Chap 3 26 Bit alterné unidirectionnel, diagramme de transition Données de lusager !D0 To, ?A1 To: temporisation A: Ack ?A0 Données de l usager !D1 !D0 To, ?A0 !D1 ?A1 ?D1 !A1 Données à usager ?D0 Données à usager !A0 ?D1 ?D0 !A0 émetteur récepteur

27 INF6001 Chap 3 27 Usagers émetteur et recepteur Donner message à lémetteur Prendre message du récepteur

28 INF6001 Chap 3 28 Architecture globale: 4 machines à états Usager émetteur ÉmetteurRécepteur Usager récepteur

29 INF6001 Chap 3 29 Messages altérés - Erreurs Nous navons pas considéré le cas de réception de messages altérés (messages avec erreur détectée) Lhypothèse étant quun message altéré est comme un message non-reçu Dans le diagramme de transition nous pourrions ajouter ce cas derreur aux transitions 3 7 et 6 8 dans lémetteur 6 7 et 1 8 dans le récepteur

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

31 INF6001 Chap 3 31 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

32 INF6001 Chap 3 32 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

33 INF6001 Chap 3 33 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 dun tiers

34 INF6001 Chap 3 34 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 lack du message précédent dans la direction opposée

35 INF6001 Chap 3 35 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 lusager, 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 à lusager !D ?Dm, To ?Db N U A B

36 INF6001 Chap 3 36 Architecture globale: 4 machines à états Usager émetteur ÉmetteurRécepteur Usager récepteur N U

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

38 INF6001 Chap 3 38 Terminologie Simplex = Unidirectionnel Half-Duplex ou alternat = bidirectionnel alternative Canal qui peut fonctionner dans une direction ou lautre, mais pas simultanément Full duplex = bidirectionnel simultané

39 INF6001 Chap 3 39 Propriété qui peut être prouvée pour le BA Dans le cas dun milieu avec possibilité derreur mais sans double chevauchement, il est possible de prouver que le BA préserve lordre 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

40 INF6001 Chap 3 40 Auto-stabilisation (Self-synchronisation) Le protocole du BA a aussi la propriété dêtre capable de retourner au fonctionnement normal après nimporte quelle situation derreur Il pourra cependant avoir envoyé à lusager les mauvaises données (ce que nous avons vu)

41 INF6001 Chap 3 41 Protocoles à fenêtre danticipation (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à lacquittement, donc 2 n -1 messages En général, pour un compteur de n bits, lémetteur doit garder au plus les derniers 2 n -1 messages jusquà leur acquittement 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

42 INF6001 Chap 3 42 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 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

43 INF6001 Chap 3 43 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) Exercice: combien de messages faut-il garder?

44 INF6001 Chap 3 44 Comment choisir le temps dattente 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 sapercevra quun message a été perdu Aussi le protocole pourrait retourner à numéroter un message n avant quon se soit aperçu que le message n précédent a été perdu…

45 INF6001 Chap 3 45 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 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

46 INF6001 Chap 3 46 Taille du tampon Des exemples quon trouve dans les livres et dans les sites web montrent des tampons de taille 2 N pour numéros de séquences de N bits En réalité, lémetteur ne peut transmettre plus de 2 N -1 message à lavance Considérez le cas où lémetteur envoie 2 N 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 quil sagit de la séquence suivante! Donc il est nécessaire que lémetteur sarrête après avoir envoyé 2 N -1 messages, sil ne reçoit aucun acquittement à ce moment là, il doit reprendre la séquence courante à partir du début Et le récepteur saura quil sagit encore de la séquence courante

47 INF6001 Chap 3 47 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 sil y a beaucoup derreurs (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

48 INF6001 Chap 3 48 Et encore une autre technique Dans chaque acquittement, le récepteur déclare être prêt à recevoir k paquets à partir dun certain numéro Lémetteur doit garder dans un tampon tous les paquets non acquittés Pourraient devoir être retransmis Il peut réutiliser lespace libéré par les paquets déjà acquittés Réduit le nombre dacquittements Paquets déjà transmis Paquets qui pourraient être transmis

49 INF6001 Chap 3 49 Contrôle de flux Ces mécanismes 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 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 (exemple précédent) Ou il envoie un message demandant à lémetteur de suspendre Implicite: le récepteur naccepte pas (p.ex. nenvoie plus dacquittements) Ceci peut forcer lémetteur à retransmettre

50 INF6001 Chap 3 50 Les deux fonctions des acquittements 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)

51 INF6001 Chap 3 51 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 d efficacité et simplicité, beaucoup dapplications sont bâties sur des protocoles comme UDP, un protocole de «transport » qui ne garantit pas de préserver lordre des messages 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 qui consulte une base de données peut reconnaître lerreur car les données ne sont pas reçues dans le format approprié et peut donc répéter la requête

52 INF6001 Chap 3 52 Pour en savoir davantage Un vieux livre de Gerhard Holzmann contient beaucoup dinformations que jai utilisé pour ce chapitre V. Surtout Chapitre 4.


Télécharger ppt "1 Chapitre 4 Lacquittement (acknowledgment) Auteur des transparents: L. Logrippo w3.uqo.ca/luigi."

Présentations similaires


Annonces Google