Notion de protocole

Sommaire :

Modélisation et protocoles
Exemples

Modélisation et protocoles

Un réseau de transmission de données est souvent exprimé sous la forme d'un modèle en couches. Pour faire comprendre ce concept, imaginons une modélisation de la poste internationale. Deux correspondants A, à Paris, et B, à Pékin s'envoient du courrier postal. Comme A ne parle pas le chinois et que B ne parle pas le français, la langue anglaise, supposée compréhensible par un nombre suffisant de personnes, sera choisie pour correspondre. Admettons aussi que ces deux correspondants envoient leur courrier à partir de leur lieu de travail (entreprise par exemple) : leur courrier partira donc en même temps que le courrier de leur entreprise qui est géré par un service courrier.

Imaginons alors la succession d'événements pour que A envoie une lettre à B.

On peut résumer par un schéma la succession des évènements afin de mettre en évidence un modèle en couches et les noeuds du réseau:

La dénomination des couches est conforme à un standard appelé OSI (Open System Interconnect) qui sera étudié plus loin. Sur cet exemple, à but uniquement pédagogique, basé sur un réseau postal (imaginaire !), explicitons les fonctionnalités de chaque couche.

Dans cette modélisation, chaque couche est bâtie sur la couche inférieure. Par exemple, le transport routier (couche liaison) a besoin de l'infrastructure routière (couche physique).

Pour chacune des couches, des fonctionnalités (ici très résumées) sont définies qui sont des services rendus aux couches supérieures. Les lignes rouges du schéma indiquent la suite de services rendus par les différentes couches. Par ailleurs, les fonctionnalités de chaque couche correspondent à des règles appelées protocoles

Prenons maintenant un exemple plus "télécommunications" en envisageant un transfert de fichier entre un ordinateur X et un ordinateur Y reliés par un câble série. On peut envisager une modélisation à 3 couches :

A : couche application
B : couche gestion de messages
C : couche physique

L'information est transmise par une voie de communication plus ou moins complexe et chemine, au niveau du destinataire dans le sens inverse de ce qui vient d'être décrit: émetteur et récepteur possède des couches identiques.

On notera aussi que les unités d'information différent suivant les trois couches. Pour la couche A, l'unité est un fichier, c'est à dire une suite importante de bits. Pour la couche B, l'unité d'information est la trame qui possède une structure définie (information utile + information de service). Pour la couche C, l'unité d'information est le signal transmis sur le support physique de communication.

 

Exemples

Prenons comme étude de cas l'envoi de trames sur une liaison entre 2 noeuds A et B consécutifs d'un réseau. On admettra que l'information est envoyée sous forme de blocs successifs appelés trames. On suppose que ces trames ont une longueur fixe L, que les noeuds sont distants de d , que la vitesse de propagation des signaux sur le support de communication est v , que le débit est D, que chaque signal transporte 1 bit.

exemple 1 : la voie de communication est parfaite et il ne peut y avoir d'erreur de transmission ; on suppose que la transmission est unidirectionnelle de A vers B ; les noeuds ont des capacités de traitement et de mémoire infinies : ils peuvent envoyer ou recevoir à tout moment. Les trames sont envoyées les unes après les autres. La chronologie des événements est indiquée ci-dessous :

Une trame est émise (et est reçue) en un temps te = L/D. Le temps nécessaire à l'envoi de N trames est donc Nte

Mais la dernière trame étant émise, il faut laisser le temps aux signaux de se propager jusqu'à B, d'où le temps de propagation d'un bit (ou d'un signal) : tp = d/v

En définitive, le temps total de transmission de N trames est 

T = Nte + tp

Le protocole est ici réduit à sa plus simple expression : définition de la longueur d'une trame et envoi successif des trames.

 

exemple 2 : On reprend les hypothèses de l'exemple précédent avec les modifications suivantes :

  • on suppose maintenant qu'il peut y avoir des erreurs de transmission et que ces erreurs peuvent être détectées par le destinataire. Le mécanisme de détection suppose qu'un champ erreur soit incorporé à la trame. 

  • un acquittement est envoyé de B vers A sous forme d'un message de 1 bit (0 si la trame est correcte, 1 si la trame est erronée). A n'envoie de trame que si l'acquittement de la trame précédente a été reçu.

  • si un acquittement négatif revient vers A, celui-ci doit ré-envoyer de nouveau la trame. 

  • les trames comporte un champ dont la valeur est le numéro de trame.

  • le temps de traitement (vérification de la trame) est supposé constant et égal à tv

Le schéma chronologique est maintenant le suivant (dans l'hypothèse où il n'y a pas d'erreur).

Le temps nécessaire à l'acheminement complet d'une trame est te + 2 tp + tv où te et tp ont les mêmes définitions que dans l'exemple 1. Le temps nécessaire à l'acheminement de N trames est donc 

T = N(te + 2 tp + tv)

On notera que puisque l'acquittement ne comporte qu'un seul bit, le temps d'émission de cet acquittement est négligeable.

Questions : Le protocole ci-dessus possède un inconvénient majeur ; lequel ? Quelle doit être la longueur du champ relatif à la numérotation des trames ?

 

exemple 3 : On modifie maintenant les hypothèses de la manière suivante
  • la transmission est bi-directionnelle ; chacun son tour X et Y envoient des trames
  • chaque trame comporte, outre le champ détecteur d'erreur, un champ comportant 2 numéros : le numéro de trame Ns et le numéro de la prochaine trame attendue Nr de la part du correspondant. Si X reçoit une trame avec Nr = 5, il doit émettre la trame numéro 5 et il est sûr que la trame 4 a été reçue sans erreur (et situation analogue pour Y).
  • on néglige le temps de vérification des erreurs de transmission.

Le chronologie des évènements est indiquée ci-dessous dans le cas où il n'y a pas d'erreur de transmission.

Le temps nécessaire d'envoi d'une trame est te + 2 tp, mais on doit attendre un temps te ( le temps de recevoir une trame) avant d'envoyer la prochaine trame ; le temps nécessaire à l'envoi de N trames est donc

T = 2N(te + tp)

Questions : Quel est l'intérêt de la double numérotation des trames ? Ce protocole possède-t-il un inconvénient ?

 

Application numérique : Examinons les performances  de ces trois protocoles sous les hypothèses suivantes : 
  • valeurs des paramètres de base : d= 1000 m ; L = 1024 bits ; D = 64 Kbits/s et 155 Mbits/s ; v = 3.108 m/s ; 
  • pour l'exemple 2, les champs numérotation et erreurs ont une longueur totale de 11 octets , le temps de vérification des erreurs est de 10-5 secondes; pour l'exemple 3, ces champs ont une longueur totale de 12 octets.

On s'intéressera aux critères de performance suivants : temps nécessaire à l'acheminement d'un message de longueur 1 Mo et temps d'occupation en émission par X de la voie de communication.

le tableau ci-dessous donne les résultats des calculs :

exemples temps d'acheminement taux d'occupation
D = 64 Kbits/s D = 155 Mbits/s D = 64 Kbits/s D = 155 Mbits/s
exemple 1 125 s 0,05 s 1 1
exemple 2 133 s 0,28 s 0,99 0,28
exemple 3 269 s 0,17 s 0,50 0,33

Le cas de l'exemple 1 est sans intérêt car non réaliste (liaison parfaite) ; dans l'exemple 2, on a de bonnes performances pour un débit de 64 Kbits/s, par contre pour le débit de 155 Mbits/s, le taux d'occupation devient assez mauvais (ne pas oublier que les liaisons ne sont pas gratuites !) ; pour l'exemple 3, le taux d'occupation n'est pas extraordinaire, mais il faut prendre en considération que la ligne est bidirectionnelle et, en fait, le taux devrait être multiplié par 2.

 

Exercices et tests : Exercice 33, Exercice 34, Exercice 37, Exercice 41, QCM31, QCM32, QCM33, QCM34, QCM35, QCM36, QCM37