Chapitre 6.9Le modèle TCP/IP

Les couches qui font fonctionner Internet.

2 minutes de lecture

On a vu qu'envoyer une lettre à mamie mobilisait une cascade de protocoles, chacun ignorant tout du travail des autres. Cette organisation porte un nom, et c'est sans doute l'idée la plus élégante de toute l'informatique en réseau.

Un empilement de couches

On représente ces protocoles sous forme de couches, de la plus proche du client (celui qui écrit la lettre) à la plus proche du support physique (la route). Chaque couche rend un service à celle du dessus et n'a aucune idée de la façon dont celle du dessous s'y prend. Tu écris ta lettre sans te demander si elle voyagera en camion ou en avion.

Internet a été fondé sur le modèle TCP/IP, maintenant appelé "suite des protocoles Internet".

Ce modèle se divise en 4 couches :

  • 4 - Application : cette couche représente les protocoles très proches de toi. Ce sont les protocoles les plus connus par le grand public : HTTP (web), FTP (transfert de fichiers), DNS (résolution des noms de domaine), SSH (connexion à distance sur une machine), SMTP (email) etc...

    Pour charger une page web, nous utilisons le protocole HTTP. Dans l'exemple : tu es le client, mamie est le serveur, ta lettre est la requête.
  • 3 - Transport : c'est la couche qui contrôle les flux et gère les erreurs. C'est le suivi du recommandé placé sur ta lettre. Pour une page web, il s'agit du protocole TCP. D'autres usages, comme la visioconférence ou les jeux en ligne, lui préfèrent UDP, qui privilégie la rapidité au détriment de la fiabilité. Perdre une image au passage les dérange moins que d'attendre qu'on la renvoie. C'est d'ailleurs ce choix que tu vois à l'oeuvre quand une visio se pixellise une seconde puis reprend, le réseau a perdu quelques paquets et personne n'a attendu qu'on les renvoie.
  • 2 - Internet : c'est la poste. À partir de l'adresse de ta grand-mère, ta lettre est routée de centre de tri en centre de tri. IP (Internet Protocol) se sert des adresses IP, que nous verrons juste après, pour envoyer des messages partout dans le monde.
  • 1 - Accès réseau : le transporteur. Il organise physiquement le déplacement des lettres entre les protagonistes : par camion, train, avion...

    Ethernet et ses dérivés sont utilisés entre deux machines reliées par un câble à paires torsadées ou une fibre optique. Wi-Fi et ses potes servent pour les communications sans fil.

    L'adresse que tu donnes ici au transporteur n'est pas celle de mamie, c'est celle du prochain relais sur la route. On parle d'adresse MAC, un identifiant unique gravé dans chaque carte réseau à la fabrication. Elle change à chaque étape du trajet, alors que l'adresse IP de destination, elle, ne bouge pas de bout en bout.

L'emboîtement des messages

Sur la route circulent des camions, contenant des paquets, contenant des enveloppes recommandées, contenant des lettres.
Côté machine, sur le câble à paires torsadées circule le signal électrique représentant des trames Ethernet, contenant des paquets IP, contenant des segments TCP, contenant des messages HTTP.

L'emboîtement, couche par couche
┌─ trame Ethernet ───────────────────────┐  accès réseau (le camion)
│ ┌─ paquet IP ──────────────────────┐   │  internet (le paquet postal)
│ │ ┌─ segment TCP ──────────────┐   │   │  transport (le recommandé)
│ │ │ ┌─ message HTTP ───────┐   │   │   │  application (la lettre)
│ │ │ │ GET /recette-crepes  │   │   │   │
│ │ │ │ Host: mamie.bzh      │   │   │   │
│ │ │ └──────────────────────┘   │   │   │
│ │ └────────────────────────────┘   │   │
│ └──────────────────────────────────┘   │
└────────────────────────────────────────┘



Le facteur sonne chez mamie pour lui remettre l'enveloppe. Elle l'ouvre et lit la lettre, la montre à ses copines car elle est contente puis répond dans une autre lettre qui va faire le trajet inverse.
De la même façon, le serveur reçoit une trame Ethernet, remonte jusqu'à la requête HTTP, la traite puis répond avec le contenu du site web.

Chaque couche ajoute son propre en-tête autour du message qu'on lui confie, puis le retire à l'arrivée. C'est ce qu'on appelle l'encapsulation, et c'est ce qui permet de remplacer une couche sans toucher aux autres. Passer du câble au Wi-Fi ne change rien à ta requête HTTP.

Tu remarqueras que le chiffrement n'apparaît dans aucune des quatre couches. Le HTTPS que tu vois partout, c'est HTTP glissé dans une enveloppe scellée, une couche de sécurité qui s'intercale entre le transport et l'application. Le transporteur voit toujours l'adresse de mamie, plus le contenu de la lettre.

À quoi ça sert de le savoir

Les couches sont une grille de diagnostic. Quand "Internet ne marche plus", le problème est forcément à un étage précis, et le trouver évite d'appeler la mauvaise personne.

  • Rien ne passe, même pas la box : couche accès réseau. Le Wi-Fi, le câble, la borne.
  • La box répond mais aucun site : couche Internet, ou plus souvent le DNS, l'annuaire qui traduit les noms. Les autres sites sont-ils joignables par leur adresse IP ?
  • Tous les sites marchent sauf un : couche application. Le problème est chez eux, pas chez toi, et ton opérateur n'y peut rien.

L'adresse MAC introduite plus haut a une histoire de vie privée. Unique et gravée en usine, elle permettait de reconnaître un téléphone d'un réseau Wi-Fi à l'autre, et des centres commerciaux s'en sont servis pour suivre les déplacements de leurs visiteurs. Les téléphones modernes en tirent désormais une au hasard pour chaque réseau, ce qui rejoint les techniques d'empreinte décrites dans le chapitre sur le User-Agent.

Tu croiseras aussi le modèle OSI et ses 7 couches. C'est le modèle théorique de référence, plus détaillé, enseigné dans les écoles. TCP/IP est le modèle réellement implémenté sur Internet. Quand un ingénieur réseau parle d'un "problème en couche 7", il fait référence à OSI et désigne la couche applicative, donc typiquement le HTTP.

PrécédentFrameworks et bibliothèques Tous les chapitres