Protocole de Communication Bidirectionnelle

 Exercice : Protocole de Communication Bidirectionnelle avec Anticipation, Acquittement Positif et Contrôle de Flux

On désire programmer un protocole de communication répondant aux caractéristiques suivantes :

  • Bidirectionnel.
  • Avec anticipation.
  • Acquittement positif porté par les trames.
  • et tel que le récepteur n'accepte les messages qu' en séquence.
  1. À quelles conditions d'erreurs sur la liaison de données correspondent les spécifications précédente correspondent-elles ?
  2. Montrer plusieurs situations d'utilisation de l'acquittement dans un échange d'information bidirectionnel. Rappeler le principe du piggybacking.
  3. A quoi sert le mecanisme de temporisation ?
  4. Rappeler le principe du contrôle de flux dans la liaison de données. À quoi sert-il?
  5. Rappeler brièvement pour les protocoles de liaison le principe de la gestion des fenêtres en émission. On suppose que chaque émetteur peut utiliser au maximum Maxseq+1 numéros de séquence différents numérotés de 0 à Maxseq (numérotation en modulo Maxseq+1). Expliquer pourquoi la taille de la fenêtre en émission doit rester inférieure à Maxseq lorsque la taille de la fenêtre en réception vaut 1. Mettre en évidence un cas d'ambiguïté.
  6. Quelle est la taille de la fenêtre en réception pour le protocole en question?

Correction :

  1.  Quelques situations :

  Explication :

 

Le "piggy-backing" : est une technique de communication dans les échanges bidirectionnels où les trames d'information (trames I) sont utilisées pour véhiculer à la fois les données à transmettre et les acquittements des trames reçues précédemment. (Basée sur le support de cours de l’enseignant , source : Pandacodeur.com)

Piggybacking : est la technique qui consiste à retarder l'accusé de réception sortant et à l'attacher au prochain paquet de données. 

  1. Le mécanisme de temporisation sert à garantir la fiabilité de la transmission des données en attendant les acquittements, à réémettre les trames en cas de non-acquittement dans le délai imparti, et à éviter les boucles infinies de réémission en définissant une limite de répétition autorisée. Cela contribue à maintenir une communication efficace dans un environnement de transmission sujette à des erreurs et à des perturbations.

  1. Le contrôle de flux dans la liaison de données est un mécanisme utilisé pour gérer et réguler le flux de données entre un émetteur (l'équipement A) et un récepteur (l'équipement B). Son principe repose sur l'ajustement du rythme d'envoi des trames d'information de manière à éviter la saturation de la mémoire du récepteur et la perte d'informations.

Un Cas d’utilisation tire du site Pandacodeur.com, le contrôle de flux sert à :

  1. Éviter la saturation de la mémoire : Lorsque l'équipement récepteur (B) a une capacité mémoire limitée pour stocker les données en attente d'impression ou de traitement, le contrôle de flux garantit qu'il ne reçoit pas de données à un rythme plus rapide que celui auquel il peut les traiter. Cela évite la surcharge de mémoire et la perte de données.
  2. Réguler le débit : Le contrôle de flux permet de réguler le débit de données entre l'émetteur et le récepteur en fonction de la capacité de traitement du récepteur. Lorsque le récepteur est prêt à recevoir davantage de données, il envoie une trame RR (Receiver Ready) pour indiquer que l'émetteur peut continuer à envoyer des données. En revanche, s'il est sur le point d'atteindre sa capacité maximale, il envoie une trame RNR (Receiver Not Ready) pour demander temporairement l'arrêt de l'envoi de nouvelles données.
  3. Établir une communication efficace : Le contrôle de flux permet de maintenir une communication fluide entre l'émetteur et le récepteur, en évitant les situations de congestion et de perte de données. Il garantit que les données sont transmises et traitées de manière fiable.

En résumé, le contrôle de flux dans la liaison de données est essentiel pour coordonner la transmission de données entre deux équipements lorsque le récepteur a une capacité limitée de stockage ou de traitement. Il permet d'optimiser l'efficacité de la communication en régulant le flux de données de manière à éviter les pertes et les congestions.

  1. Rappel :  Pour les protocoles de liaison utilisant la gestion des fenêtres en émission, le principe fondamental est d'autoriser l'émetteur à envoyer plusieurs trames consécutives sans attendre l'acquittement de chaque trame individuellement. Au lieu de cela, l'émetteur reçoit un acquittement global pour un groupe de trames, appelé fenêtre, qui se suivent sans erreur. La taille de cette fenêtre est limitée par une valeur k, qui représente le nombre maximum de trames que l'émetteur peut envoyer avant de devoir attendre des acquittements.

Le fonctionnement de base est le suivant :

  1. Lorsque l'émetteur envoie une trame, il enregistre son numéro de séquence (N(S)), incrémente ce numéro, et le mémorise dans une variable interne (V(R)).
  2. L'émetteur continue d'envoyer des trames tant qu'il n'a pas atteint le nombre maximum de trames autorisées dans la fenêtre (k), sauf s'il a déjà atteint ce seuil.
  3. Une temporisation est armée pour chaque trame émise, et elle est désarmée dès que l'acquittement correspondant est reçu.

Ce principe de gestion des fenêtres en émission permet d'augmenter l'efficacité du dialogue en réduisant le temps d'attente entre l'envoi de trames successives. Il est important de noter que ce protocole suppose généralement que les équipements fonctionnent en mode duplex intégral, car les acquittements sont reçus pendant l'émission des trames, ce qui nécessite une communication bidirectionnelle simultanée entre les deux parties du dialogue.

Explication :

Dans un protocole de liaison de données où chaque émetteur peut utiliser au maximum Maxseq + 1 numéros de séquence différents, numérotés de 0 à Maxseq en utilisant une numérotation en modulo Maxseq + 1, il est important que la taille de la fenêtre en émission reste inférieure à Maxseq lorsque la taille de la fenêtre en réception vaut 1 pour éviter des ambiguïtés.

Lorsque la taille de la fenêtre en réception est égale à 1, cela signifie que le récepteur n'accepte qu'une seule trame à la fois. Si la taille de la fenêtre en émission dépasse Maxseq, il peut y avoir un cas d'ambiguïté. Voici comment cela peut se produire :

Prenons l'exemple où Maxseq = 7 (numéros de séquence de 0 à 7). Si la taille de la fenêtre en émission (W) est égale à Maxseq + 1 (soit 8), et que le récepteur n'accepte qu'une seule trame à la fois (fenêtre en réception de taille 1), voici ce qui peut se passer :

  • L'émetteur envoie 8 trames avec les numéros de séquence de 0 à 7.
  • Le récepteur commence à recevoir ces trames une par une.
  • Le récepteur envoie un accusé de réception (ACK) pour la trame 0.
  • Cependant, avant que l'émetteur ne reçoive l'ACK pour la trame 0, il peut avoir terminé l'envoi des trames 1 à 7.
  • Le récepteur, qui ne peut gérer qu'une trame à la fois, commence à traiter la trame 1 et envoie un ACK pour celle-ci.
  • Maintenant, l'émetteur reçoit l'ACK pour la trame 0, mais il peut considérer à tort que la trame 1 a été dupliquée car le numéro de séquence est le même que celui de la trame précédente.
  • L'émetteur peut alors ignorer la trame 1 et continuer avec la trame 2.

Cela crée de l'ambiguïté car la trame 1 a été correctement reçue, mais l'émetteur l'ignore à tort. Par conséquent, pour éviter ce type d'ambiguïté, la taille de la fenêtre en émission doit rester inférieure ou égale à Maxseq lorsque la taille de la fenêtre en réception est égale à 1. Cela garantit que chaque numéro de séquence est traité de manière non ambiguë par l'émetteur et le récepteur.

 

Reseau informatique

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam