Aller au contenu

Chapitre 10.2 : Le modèle TCP/IP et le protocole du bit alterné⚓︎

Le modèle TCP/IP et ses protocoles⚓︎

A savoir

La transmission des données sur un réseau nécessite un ensemble de protocoles qui garantissent leur intégrité et leur acheminement au bon destinataire. Les bits transmis d'un ordinateur à un autre contiennent, en plus des données utiles, une multitude de données qui vont aider à l'acheminement de ces bits au bon endroit, puis au bon ordinateur, puis au bon logiciel.

Un protocole informatique est un ensemble de règles que les ordinateurs suivent pour communiquer entre eux. Les protocoles définissent comment les données doivent être formatées, transmises et interprétées.

La gestion des données sur internet suit les règles données par le modèle TCP/IP aussi appelé modèle Internet.

Ce modèle est organisé en 4 couches.

Couches du modèle TCP/IP
Les couches du modèle TCP/IP

▶️ Capsule : Du modèle OSI au modèle TCP/IP

1. La couche application⚓︎

La couche Application est la couche où les applications (navigateur web, client email, etc.) interagissent avec le réseau.

Elle permet la collecte et le formatage des données par les applications pour assurer que les données soient dans un format compréhensible par les applications de destination.

La couche application
La couche application

2. La couche transport⚓︎

La couche Transport s'assure que les données sont envoyées de manière fiable et dans le bon ordre. Elle utilise pour cela le protocole TCP (Transfer Control Protocol) qui :

  • divise les données en segments plus petits pour la transmission et les réassemble à la réception ce qui permet une gestion plus efficace des données sur le réseau.

Découpage en paquets
Découpage en paquets

  • établit, maintient et termine les connexions entre les applications grâce à une "poignée de main à trois voies" (SYN = Synchronisation et ACK = accusé de réception)

Etablissement d'une liaison
Etablissement d'une liaison : la principe de la poignée de main à 3 étapes voies

  • détecte et corrige les erreurs et assure la fiabilité lors de la transmission des données. (Exemple de protocole de contr^le d'erreur : le protocole du bit alterné plus loin dans ce cours).

3. La couche internet⚓︎

La couche Internet est responsable de l'adressage et du routage des paquets de données. Elle utilise les adresses le protocole IP (et les adresses IP) pour :

  • déterminer le meilleur chemin pour acheminer les paquets de données de la source à la destination.

    Routage de paquets
    Routage de paquets

  • encapsuler les segments de données provenant de la couche transport dans des paquets IP.

Encapsulation dans la couche internet
Encapsulation dans la couche internet

4. La couche réseau⚓︎

La couche Accès Réseau gère la transmission physique des données sur le réseau (câbles, des ondes Wi-Fi ...) grâce aux adresses MAC (protocole ARP ou Adress Resolution Protocol) et peut inclure des mécanismes de détection et de correction d'erreurs pour garantir l'intégrité des données transmises.

Elle encapsule les paquets IP dans des trames.

Encapsulation dans la couche réseau
Encapsulation dans la couche réseau : la trame éthernet

5. Découpage des données⚓︎

Chaque couche du modèle TCP/IP (notamment le protocole TCP) fragmente les données de la couche application en fragments plus petits.

Ce découpage présente plusieurs intérêts :

  • Les petits paquets sont plus faciles à gérer pour les équipements réseau.
  • Si un paquet est perdu, seul celui-ci doit être retransmis.
  • Les paquets peuvent emprunter différents chemins en fonction de la congestion du réseau.

Découpage des données par chaque couche du modèle TCP/IP
Découpage des données par chaque couche du modèle TCP/IP

6. Principe de l'encapsulation⚓︎

▶️ Capsule : Le principe de l'encapsulation

Lorsqu'une machine envoie un message à une autre, chaque couche rajoute les données correspondant à son protocole à celles de la couche supérieure : on parle d'encapsulation, puisque les données d'une couche de protocole sont incluses dans une couche de protocole de niveau inférieur avec ajout des en-têtes spécifiques à chaque couche :

Encapsulation des données
Encapsulation des données

Lors de la réception du message, l'ordinateur destinataire procède de manière inverse, selon les mêmes protocoles, en désencapsulant les données avant de les donner à la couche supérieure jusqu'à l'application censé recevoir les données.

Désencapsulation des données
Désencapsulation des données

▶️ Capsule : le principe de l'encapsulation en animation

Le protocole du bit alterné⚓︎

A savoir

▶️ Capsule : Le protocole du bit alterne

La couche Transport gère les flux de données, c'est donc à ce niveau que des protocoles sont mis en oeuvre pour s'assurer de la fiabilité des transmissions de données.

Contexte⚓︎

  • Alice veut envoyer à Bob un message M, qu'elle a prédécoupé en sous-messages M0, M1, M2,...
  • Alice envoie ses sous-messages au fur et à mesure

Situation réelle⚓︎

Les messages sont envoyés par Alice à une cadence Δt fixée :

Dans cette situation, les sous-messages arrivent tous à destination dans le bon ordre. La transmission est correcte.

Situation réelle⚓︎

Mais parfois, les choses ne se passent pas toujours aussi bien. Car si on maîtrise parfaitement le timing de l'envoi des sous-messages d'Alice, on ne sait pas combien de temps vont mettre ces sous-messages pour arriver, ni même s'ils ne vont pas être détruits en route.

Le sous-message M0 est arrivé après le M1, le message M2 n'est jamais arrivé...

Que faire ?

Solution naïve...⚓︎

Pourquoi ne pas demander à Bob d'envoyer un signal pour dire à Alice qu'il vient bien de recevoir son sous-message ? Nous appelerons ce signal ACK (comme acknowledgement, traduisible par «accusé de réception»). Ce signal ACK permettra à Alice de renvoyer un message qu'elle considérera comme perdu :

N'ayant pas reçu le ACK consécutif à son message M1, Alice suppose (avec raison) que ce message n'est pas parvenu jusqu'à Bob, et donc renvoie le message M1.

Cette solution est peu efficace...

Le deuxième ACK de Bob a mis trop de temps pour arriver et donc Alice a supposé que son sous-message M1 n'était pas arrivé. Elle l'a donc renvoyé, et Bob se retrouve avec deux fois le sous-message M1.

Le protocole du bit alterné⚓︎

Bob va maintenant intégrer une méthode de validation du sous-message reçu. Il pourra décider de le garder ou de l'écarter. Le but est d'éviter les doublons.

Pour réaliser ceci :

  • Alice va rajouter à chacun de ses sous-messages un bit de contrôle, que nous appelerons FLAG (drapeau). Au départ, ce FLAG vaut 0.
  • Quand Bob reçoit un FLAG, il renvoie un ACK égal au FLAG reçu.
  • Alice va attendre ce ACK contenant le même bit que son dernier FLAG envoyé :
    • tant qu'elle ne l'aura pas reçu, elle continuera à envoyer le même sous-message, avec le même FLAG.
    • dès qu'elle l'a reçu, elle peut envoyer un nouveau sous-message en inversant (« alternant ») le bit de son dernier FLAG (d'où le nom de ce protocole).
    • Bob, de son côté, va contrôler la validité de ce qu'il reçoit : il ne gardera que les sous-messages dont le FLAG est égal à l'inverse de son dernier ACK. C'est cette méthode qui lui permettra d'écarter les doublons.

Observons ce protocole dans plusieurs cas pour voir qu'il résout les problèmes identifiés précédemment :

Cas où le sous-message est perdu⚓︎

Cas où le ACK est perdu⚓︎

Cas où un sous-message est en retard⚓︎

Conclusion⚓︎

Le protocole du bit alterné a longtemps été utilisé au sein de la couche 2 du modèle OSI (distribution des trames Ethernet). Simple et léger, il peut toutefois être facilement mis en défaut, ce qui explique qu'il ait été remplacé par des protocoles plus performants, mais plus complexes, comme TCP (qui intervient au niveau de la couche Transport quant à lui).

Cette partie est tirée du cours de Germain Becker(Lycée Mounier Angers)