Protocoles de contrôles de transmission


Objectifs:

Simuler un réseau.

Etude du déroulement du fonctionnement d’un protocole simple de récupération de perte de paquets (bit alterné).


Protocole de contrôles de transmission des réseaux TCP/IP


Lors d'une communication client-serveur sur un réseau TCP/IP,  les données sont découpées en petits paquets de 1500 octets max appelés des segments, chaque segment est numéroté puis encapsulé dans un paquet IP (paquet d’octets compréhensible par le protocole IP) qui contient l’adresse IP du destinataire et celle de l’envoyeur; éventuellement en fonction du trafic réseau, chaque segment va emprunter une route différente et les segments vont se perdre ou arriver dans le désordre. Le rôle du protocole de contrôle de transmission est la reconstitution des segments et la remise de l’information reconstituée à l’application concernée.


Il existe deux protocoles de contrôle de transmission appelés UDP et TCP qui interviennent au niveau la couche transport du modèle TCP/IP ( au niveau de la couche 4  du modèle théorique OSI).





UDP (User Datagram Protocol ): ce protocole permet la transmission sans vérification que tous les paquets ont bien été reçus, UDP est utilisé pour des communications peu critiques. Plusieurs applications (logiciels) d’une même machine peuvent communiquer par le réseau au même moment, pour identifier l’application destinataire, le protocole UDP utilise un identifiant appelé port. Un port est juste un numéro qui identifie le logiciel qui envoie les données ou le logiciel qui doit les recevoir; un  segment contient  le port de communication de l’envoyeur qui identifie l’application sur la machine source (un navigateur web qui demande une page web par exemple) et le port de communication de l’application destinataire (le serveur web à qui s’adresse la demande par exemple).

Certains ports sont réservés à des services réseaux clairement identifiés. Par exemple le port 80 est réservé pour le protocole http des échanges web.



TCP ( transmission control protocol) : TCP est un protocole orienté connexion, c'est-à-dire qu'il permet à deux machines qui communiquent de contrôler l'état de la transmission. Les applications peuvent communiquer de façon sûre (grâce à un système d'accusé de réception), comme UDP, TCP utilise des segments (des petits paquets) et les mêmes ports qu’UDP pour identifier les applications.


Exemple de transmission avec accusé de réception :


Le client choisit aléatoirement un numéro (1234 dans l’exemple ci-dessous) et envoie un paquet TCP étiqueté  SYN ( synchronized)  avec le numéro 1234. Le serveur se choisit aussi un nombre aléatoirement (301 dans l’exemple) puis répond au client qu'il veut bien communiquer avec un paquet étiqueté (SYN-ACK : synchronized acknowledgement), le paquet SYN-ACK  contient le numéro du client incrémenté de 1  soit 1235 et son propre numéro ( 301) , sur réception de ce paquet le client considère sa connexion établie. Le client renvoie un  paquet ACK avec son numéro et celui du client incrémenté (1235, 202) , sur réception de ce paquet le serveur se considère comme connecté.


figure 1


Le client et le serveur peuvent alors s'envoyer les paquets de données en poursuivant la numérotation (incrémentation du numéro de séquence).


Question C.1


- Depuis un client du réseau 192.168.0.0  demandez la page d'accueil "http://Serveur" avec un navigateur web.

- cliquez droit sur ce client puis choisissez "Afficher les échanges de données" (192.168.0...)"

- Analyser l'échange au niveau de la couche TCP entre le serveur web et le client web. Vous préciserez:

  • le numéro de port du client, le numéro de port du serveur
  • le numéro de séquence initial du client
  • le numéro de séquence  initial  du serveur

- reproduisez ensuite l'échange avec un schéma comme celui de la figure 1 ci-dessus en indiquant les numéros de séquence et leur évolution lors des acquittements.



Protocole du bit alterné


Nous avons vu  que le protocole TCP propose un mécanisme d'accusé de réception afin de s'assurer qu'un paquet est bien arrivé à destination. Le processus d'acquittement permet de détecter les pertes de paquets au sein d'un réseau, l'idée étant qu'en cas de perte, l'émetteur du paquet renvoie le paquet perdu au destinataire. Nous allons ici étudier un protocole simple de récupération de perte de paquet : le protocole de bit alterné.

Le protocole de bit alterné est implémenté au niveau de la couche accès réseau du modèle TCP/IP ( la couche n° 2 dite de "liaison de données" du modèle théorique OSI ), il ne concerne donc pas les paquets IP, mais les trames échangées par l'électronique (on parle de paquets uniquement à partir de la couche internet du modèle TCP/IP  (couche 3 "Réseau" du modèle théorique OSI).


Le principe de ce protocole est simple, considérons 2 ordinateurs en réseau : un ordinateur A qui sera l'émetteur des trames et un ordinateur B qui sera le destinataire des trames. Au moment d'émettre une trame, A va ajouter à cette trame un bit (1 ou 0) appelé drapeau (flag en anglais). B va envoyer un accusé de réception (acknowledge en anglais souvent noté ACK) à destination de A dès qu'il a reçu une trame en provenance de A. À cet accusé de réception on associe aussi un bit drapeau (1 ou 0).

La règle est relativement simple : la première trame envoyée par A aura pour drapeau 0, dès cette trame reçue par B, ce dernier va envoyer un accusé de réception avec le drapeau 1 (ce 1 signifie "la prochaine trame que A va m'envoyer devra avoir son drapeau à 1").

Dès que A reçoit l'accusé de réception avec le drapeau à 1, il envoie la 2e trame avec un drapeau à 1, et ainsi de suite...

Le système de drapeau est complété avec un système d'horloge côté émetteur. Un "chronomètre" est déclenché à chaque envoi de trame, si au bout d'un certain temps, l'émetteur n'a pas reçu un acquittement correct (avec le bon drapeau), la trame précédemment envoyée par l'émetteur est considérée comme perdue et est de nouveau envoyée.


Examinons quelques cas :


La trame est perdue, au bout d'un certain temps ("TIME OUT"),  A n'a pas reçu d'accusé de réception, la trame est considérée comme perdue, elle est donc renvoyée.


L'accusé de réception est perdu, A ne reçoit pas d'accusé de réception avec le drapeau à 1, il renvoie donc la trame 1 avec le drapeau 0. B reçoit donc cette trame avec un drapeau à 0 alors qu'il attend une trame avec un drapeau à 1 (puisqu'il a envoyé un accusé de réception avec un drapeau 1), il "en déduit" que l'accusé de réception précédent n'est pas arrivé à destination : il ne tient pas compte de la trame reçue et renvoie l'accusé de réception avec le drapeau à 1. Ensuite, le processus peut se poursuivre normalement.




Question C.2


Copiez l'image ci-dessous  de l'échange  entre A et B dans votre compte rendu puis complétez le bit alterné:  


Question C.3


Copiez l'image ci-dessous dans votre compte rendu puis complétez le bit alterné suite à un TIME OUT:  


Créé avec HelpNDoc Personal Edition: Générateur d'aide complet