Quand vous saisissez une adresse dans votre navigateur, votre requête traverse plusieurs équipements réseau avant d’atteindre le serveur, puis la page web fait le chemin inverse. Tout cela se passe en quelques millisecondes. Comment les données sont-elles organisées pour réussir ce voyage ? C’est le rôle des protocoles réseau, et en particulier du modèle TCP/IP.
Faire communiquer deux machines, c’est résoudre plein de problèmes : comment transmettre les bits sur le câble ? Comment trouver le destinataire à travers plusieurs réseaux ? Comment vérifier que rien n’a été perdu en route ? Comment comprendre le message ?
Principe. On découpe ces problèmes en couches : chaque couche résout un problème bien délimité et s’appuie sur les services de la couche du dessous.
Avantage. Chaque couche peut évoluer indépendamment des autres. On peut changer de Wi-Fi à Ethernet sans rien changer à la façon dont une page web est demandée.
Le modèle TCP/IP organise la communication en quatre couches, du plus proche de l’utilisateur au plus proche du matériel.
| Couche | Rôle | Protocoles typiques |
|---|---|---|
| 4. Application | protocoles utilisés par les logiciels | HTTP, HTTPS, DNS, SMTP |
| 3. Transport | fiabilité et acheminement de bout en bout | TCP, UDP |
| 2. Internet | adressage et routage entre réseaux | IP (IPv4, IPv6) |
| 1. Accès réseau | transmission physique sur le support | Ethernet, Wi-Fi |
Les protocoles « parlent » horizontalement (entre couches de même niveau sur les deux machines) mais passent verticalement (chaque couche rend service à celle du dessus).
À la couche Transport, deux protocoles très différents cohabitent :
TCP (Transmission Control Protocol) garantit que les données arrivent dans l’ordre et sans perte. Il découpe le message en morceaux numérotés et attend un accusé de réception pour chacun. Si un morceau est perdu, il est retransmis. C’est le protocole utilisé par HTTP, par les e-mails, par les transferts de fichiers.
UDP (User Datagram Protocol) envoie les données sans vérification : pas de numérotation, pas d’accusé de réception. C’est plus rapide, mais on accepte de perdre quelques données. C’est le protocole utilisé par les appels vidéo et les jeux en ligne, où la vitesse prime sur la fiabilité.
Chaque programme est identifié par un numéro de port : 80 pour HTTP, 443 pour HTTPS, 53 pour DNS. Ce numéro permet à la machine de savoir à quel programme remettre les données reçues.
Comment un émetteur peut-il s’assurer qu’un paquet est bien arrivé alors que le réseau peut en perdre ? Le protocole du bit alterné est la réponse la plus simple ; TCP en utilise une version élaborée.
Le bit permet de distinguer un nouveau paquet d’une répétition : si le récepteur reçoit deux fois de suite un paquet portant le bit 0, il sait que c’est un doublon (l’accusé de réception s’était perdu), il l’ignore et renvoie l’accusé.
Exemple 1 : perte d’un paquet.
| Émetteur | Réseau | Récepteur |
|---|---|---|
| envoie A, bit 0 | → | reçoit A, bit 0 ; renvoie ACK 0 |
| reçoit ACK 0 ; envoie B, bit 1 | → perdu | |
| délai écoulé ; renvoie B, bit 1 | → | reçoit B, bit 1 ; renvoie ACK 1 |
| reçoit ACK 1 ; envoie C, bit 0 | → | reçoit C, bit 0 ; renvoie ACK 0 |
Exemple 2 : perte d’un accusé de réception.
| Émetteur | Réseau | Récepteur |
|---|---|---|
| envoie A, bit 0 | → | reçoit A, bit 0 ; renvoie ACK 0 |
| ← perdu | ||
| délai écoulé ; renvoie A, bit 0 | → | reçoit A, bit 0 : doublon, ignoré ; renvoie ACK 0 |
| reçoit ACK 0 ; envoie B, bit 1 | → | reçoit B, bit 1 ; renvoie ACK 1 |
Dans les deux cas, chaque paquet finit par arriver une seule fois et dans l’ordre. Le prix à payer : l’émetteur attend l’accusé avant d’envoyer le paquet suivant, ce qui limite le débit. TCP généralise l’idée avec des numéros de séquence sur 32 bits et l’envoi de plusieurs paquets avant le premier accusé.
Lorsqu’un logiciel envoie un message, chaque couche ajoute son propre en-tête autour du contenu reçu de la couche supérieure. C’est l’encapsulation. À l’arrivée, la machine destinataire fait l’opération inverse (la désencapsulation), couche par couche.
Image à retenir. On enferme une lettre dans une enveloppe, qu’on glisse dans un carton, qu’on met dans un conteneur. À l’arrivée, on ouvre le conteneur, puis le carton, puis l’enveloppe.
| Couche | En-tête ajouté | Nom du résultat | Identifiant clé |
|---|---|---|---|
| Application | en-tête HTTP (ou autre) | données | nom de domaine, protocole |
| Transport | en-tête TCP ou UDP | segment | port (ex. 80, 443) |
| Internet | en-tête IP | paquet | adresse IP |
| Accès réseau | en-tête Ethernet | trame | adresse MAC |
Vous tapez google.com dans votre navigateur. Mais votre ordinateur a besoin d’une adresse IP pour contacter le serveur. C’est le rôle du DNS de faire la conversion.
DNS (Domain Name System) : un service distribué qui traduit les noms de domaine (
google.com) en adresses IP (142.250.179.110), et inversement.
Une URL (Uniform Resource Locator) est l’adresse complète d’une ressource sur le web :
HTTP ou HTTPS (version sécurisée).HTTP (HyperText Transfer Protocol) est le protocole d’application utilisé par les navigateurs pour demander des pages web aux serveurs.
Un échange HTTP suit le schéma requête → réponse :
GET pour demander une page, POST pour envoyer des données…) ;200 = OK, 404 = page introuvable) et le contenu de la page.HTTPS est la version sécurisée de HTTP : la communication est chiffrée de bout en bout. C’est aujourd’hui la norme.
GET, POST) → réponse (code de statut + contenu). HTTPS chiffre la communication de bout en bout.