C'est quoi un protocole ?

illustration conversation

Nous avons ici une personne A et une personne B, qui communiquent.

Ce que nous pouvons comprendre dans cet exemple, c'est que ces 2 personnes semblent parler le même langage. Et c'est ce point qui permet la bonne communication entre ces 2 personnes.

illustration conversation

Voici la même situation que dans la première illustration sauf que maintenant, la personne A ne parle pas le même langage que la personne B, et inversement.

Il y a donc ici, un conflit. Les 2 personnes ne peuvent pas communiquer (si on entend communiquer par "se faire comprendre", pour s'échanger des informations), car elles ne parlent pas le même langage.

Pourquoi parler de tout ça ? Parce qu'en informatique et plus précisément dans un réseau on retrouve exactement le même principe. Ici, on ne parle pas de langage mais de protocole.

Un protocole, c'est un ensemble de règles qui définissent comment se déroule une conversation entre 2 machines dans un réseau.

Nous l'avons vu dans les exemples plus haut, pour que 2 entités puissent communiquer et se comprendre, il faut qu'elles "parlent le même langage". En réseau c'est la même chose. Pour que 2 machines puissent communiquer et donc s'échanger des données, il faut qu'elles "parlent le même langage" et donc qu'elles aient un protocole.

Reprenons le même exemple vu en haut mais en remplaçant les êtres humains par des machines. Imaginons que A souhaite envoyer un mail à B.

illustration communication illustration communication illustration communication illustration communication

Vous venez d'apprendre un protocole très important en réseau ; le protocole TCP. En réalité c'est plus complexe que cela, mais voici une vulgarisation de ce protocole.

Ce qu'il faut retenir c'est que nous avons ici 2 machines qui souhaitent communiquer, donc s'échanger des données. Pour cela elles vont utiliser un même protocole (= un même langage) dans lequel il y a un ensemble de règles, qui définissent leur manière de communiquer.

On parle alors de protocole de communication.

Les "fonctions vitales" d'un protocole

Pour qu'une communication se déroule au mieux entre 2 entités d'un réseau, il faut un protocole de communication (nous l'avons dit). Mais il faut aussi que le protocole assure plusieurs fonctions. Voici les principales :

La gestion du format des données -> S'il y a communication, alors il y a partage de données. Une donnée est composée de 2 éléments : un en-tête (header) et son contenu (payload). L’en-tête contient des informations définies par le protocole, qui permettent de structurer la donnée. Chaque protocole impose un format spécifique, à la donnée. (qui dépend de la couche dans le modèle OSI).

-> Analogie : C’est comme envoyer une lettre : l’en-tête = l'adresse sur l’enveloppe, le contenu = le message à l’intérieur.

La gestion du format d'adresses -> Pour qu'une donnée arrive bien à destination, il faut savoir d'où elle vient ? et où elle va ? Donc il faut connaître l'expéditeur et le destinataire. Tout cela se trouve encore dans l'en-tête.

-> Analogie : L’adresse sur l’enveloppe indique l’expéditeur et le destinataire.

La correspondance d'adresses -> Le protocole doit "faire le lien" entre adresses logiques (IP) et adresses physiques (MAC). Il doit faire correspondre les deux (= address mapping).

-> Analogie : A envoie une lettre à B. Pour ce faire, A va mettre sur la lettre l'adresse physique de B. Mais cette adresse sur l'enveloppe reste une adresse logique. C'est-à-dire que B n'habite pas sur l'enveloppe. Donc l'adresse de l'enveloppe (adresse logique) indique l'adresse physique (adresse physique) de B. Un protocole assure donc cette fonction ; faire le lien entre adresses logiques et physiques.

Le routage -> Un protocole permet de "diriger" une donnée entre 2 réseaux différents.

-> Analogie : Comme un GPS qui choisit l’itinéraire pour aller d’une ville à une autre.

La détection d'erreurs de transmission -> Comme le nom l'indique, il faut qu'un protocole puisse détecter des erreurs dans la transmission des données, pour que 2 machines puissent bien communiquer.

-> Analogie : Comme un puzzle dont on vérifie que toutes les pièces sont présentes avant de le finir.

L'accusé de réception -> Certains protocoles permettent que le récepteur (des données envoyées) puisse informer son émetteur qu'il a bien reçu les données (pour ne pas qu'elles soient renvoyées).

-> Analogie : Exactement comme un accusé de réception à la poste, on envoie une lettre et on sait si le destinataire l'a reçu ou pas.

La gestion de pertes d'informations -> Un protocole doit gérer les pertes de données. Si le récepteur ne "donne pas de réponse" après x secondes, l'émetteur doit considérer que les données se sont perdues.

-> Analogie : Le facteur n’arrive pas à livrer un colis, il essaie de le renvoyer à un autre moment.

La direction du flux d'information -> A et B communiquent comment ? Simultanément ? Dans ce cas c'est un système de communication Full Duplex. Chacun leur tour ? Dans ce cas c'est un système de communication Half Duplex et donc un protocole doit dicter la direction du flux dans la communication (= "qui parle quand ?").

-> Analogie : Une conversation au téléphone (full duplex) vs un talkie-walkie (half duplex).

Le contrôle de séquences -> Sur un réseau, les données sont ségmentées et envoyées en séquences. Elles peuvent donc arriver en désordre. Grâce au contrôleur de séquences on peut "numéroter" les morceaux et le récepteur pourra les "remettre dans le bon ordre".

-> Analogie : Un livre envoyé page par page par courrier : chaque page est numérotée pour reconstituer le livre correctement.

La gestion des flux -> Le protocole doit "laisser le temps qu'il faut" au récepteur de comprendre ce qu'on lui envoie.

-> Analogie : Comme un professeur qui parle lentement pour que tous les élèves comprennent avant de continuer.

Voilà pour une introduction aux protocoles. Bien évidemment toutes ces "fonctions" ne sont pas gérées par un seul et même protocole, mais sont réparties entre différents protocoles qui collaborent pour assurer une communication fiable et efficace sur le réseau.