Leçon 1 sur 13 · Fondamentaux
Le modèle OSI et TCP/IP, l'encapsulation et les ports
Objectif
Savoir décrire ce qui se passe quand un poste d'agence envoie une requête au serveur du siège : quelles couches interviennent, ce qu'on ajoute au message à chaque étape, et sur quel port le serveur répond. C'est le vocabulaire de base de toute la formation.
L'essentiel
- Le modèle OSI découpe la communication en 7 couches ; le modèle TCP/IP, celui qu'on utilise vraiment, en 4.
- Chaque couche ajoute un en-tête au message de la couche du dessus : c'est l'encapsulation. À l'arrivée, chaque couche retire le sien.
- IP (couche 3) achemine les paquets d'une machine à l'autre ; TCP et UDP (couche 4) les livrent à la bonne application grâce au port.
- TCP est fiable et ordonné (connexion, accusés de réception) ; UDP est léger et sans connexion (DNS, DHCP, VoIP, WireGuard).
- Retenez une poignée de ports : 22 SSH, 53 DNS, 80/443 HTTP(S), 25/587 SMTP, 67/68 DHCP, 3306 MySQL, 51820 WireGuard.
Pourquoi des couches ?
Imaginez la Banque Atlas (banque fictive qui nous suivra tout au long du cours) : un siège à Casablanca, des agences à Fès et à Tanger, des conseillers en télétravail. Quand un guichetier de Fès consulte un compte, il se passe beaucoup de choses : le navigateur fabrique une requête HTTPS, le système la découpe, la carte réseau la transforme en signaux électriques ou radio, des routeurs d'opérateur la transportent jusqu'à Casablanca…
Personne ne pourrait concevoir tout cela d'un bloc. On a donc découpé le problème en couches : chacune rend un service à celle du dessus et utilise celle du dessous, sans connaître les détails des autres. Le navigateur ne sait pas si la liaison passe par la fibre ou la 4G ; la carte Wi-Fi ne sait pas qu'elle transporte du HTTPS.
Le modèle OSI (7 couches)
| N° | Couche | Rôle | Exemples | Unité de données |
|---|---|---|---|---|
| 7 | Application | Le service vu par l'utilisateur | HTTP, DNS, SSH, SMTP | message |
| 6 | Présentation | Format, chiffrement, compression | TLS (en partie), encodage UTF-8 | message |
| 5 | Session | Ouvrir, maintenir, fermer un dialogue | reprise de session TLS | message |
| 4 | Transport | Livrer à la bonne application, fiabilité | TCP, UDP | segment (TCP), datagramme (UDP) |
| 3 | Réseau | Adresser et acheminer entre réseaux | IPv4, IPv6, ICMP | paquet |
| 2 | Liaison | Transmettre sur un même réseau local | Ethernet, Wi-Fi, VLAN 802.1Q | trame |
| 1 | Physique | Les signaux sur le support | câble cuivre, fibre, ondes radio | bits |
Moyen mnémotechnique (de 1 à 7) : « Pour Le Réseau, Tout Se Passe Automatiquement ».
Les couches 5 et 6 existent surtout sur le papier : dans la pratique, l'application les gère elle-même. Les techniciens parlent pourtant tous les jours en numéros de couche : « un problème de couche 1 » (câble débranché), « un commutateur de niveau 3 » (qui sait aussi router), « un répartiteur de charge de couche 7 » (qui lit les URL).
Le modèle TCP/IP (4 couches)
| TCP/IP | Correspond à OSI | Ce que vous configurez |
|---|---|---|
| Application | 5, 6, 7 | serveur web, DNS, SSH |
| Transport | 4 | ports TCP/UDP, pare-feu |
| Internet | 3 | adresses IP, routes, passerelle |
| Accès réseau | 1, 2 | interface, VLAN, Wi-Fi, câble |
C'est ce modèle que suivent Linux, Windows et le cloud. Dans Azure, par exemple, un réseau virtuel vous laisse choisir des adresses IP, des sous-réseaux et des routes (couche 3) et filtrer par ports (couche 4) ; la couche physique, elle, est entièrement gérée par Microsoft.
L'encapsulation, étape par étape
Le guichetier de Fès ouvre https://compte.atlas.lan. Voici comment le message descend les couches :
[ Données HTTP chiffrées par TLS ] couche 7
[ En-tête TCP | Données ] port source 51544 → port 443 couche 4
[ En-tête IP | En-tête TCP | Données ] 10.21.10.25 → 10.20.1.10 couche 3
[ En-tête Ethernet | IP | TCP | Données | FCS ] MAC du poste → MAC du routeur couche 2
0101100101… signaux sur le câble couche 1
À chaque saut (routeur d'agence, réseau de l'opérateur, routeur du siège), la trame (couche 2) est retirée puis refaite pour le lien suivant ; le paquet IP (couche 3), lui, voyage de bout en bout. Au serveur, le chemin se fait à l'envers : chaque couche lit son en-tête, le retire et passe le reste à la couche du dessus. C'est la désencapsulation.
Des tailles à connaître
| Élément | Taille habituelle |
|---|---|
| MTU Ethernet (données utiles d'une trame) | 1500 octets |
| En-tête IPv4 sans option | 20 octets |
| En-tête IPv6 | 40 octets |
| En-tête TCP sans option | 20 octets |
| En-tête UDP | 8 octets |
Le plus gros morceau de données TCP qui tient dans une trame s'appelle le MSS : 1500 − 20 − 20 = 1460 octets en IPv4. Ces calculs reviendront avec les VPN : un tunnel ajoute ses propres en-têtes, il faut donc réduire la MTU à l'intérieur du tunnel, sinon les gros paquets sont fragmentés ou perdus. Les clouds publics publient d'ailleurs leurs recommandations de MTU pour les machines virtuelles.
TCP ou UDP ?
| TCP | UDP | |
|---|---|---|
| Connexion | oui : poignée de main SYN, SYN-ACK, ACK | non |
| Fiabilité | accusés de réception, retransmission | aucune : l'application s'en charge si besoin |
| Ordre | garanti | non garanti |
| Coût | plus lourd | très léger |
| Usages | web, SSH, courrier, bases de données | DNS, DHCP, VoIP, vidéo, WireGuard, IPsec NAT-T |
La poignée de main TCP en trois temps :
Poste de Fès Serveur du siège
SYN (je veux parler, port 443) ─────────►
◄───────── SYN-ACK (d'accord)
ACK (c'est parti) ─────────►
… données …
FIN / ACK pour fermer
Pourquoi WireGuard choisit UDP ? Parce qu'il transporte lui-même du TCP : mettre du TCP dans du TCP provoque des retransmissions en cascade dès que la 4G d'un télétravailleur perd quelques paquets.
Les ports
Une adresse IP désigne une machine ; un port (0 à 65535) désigne une application sur cette machine. Le couple « adresse IP + port + protocole » est une socket.
- 0 à 1023 : ports bien connus, réservés aux services standard (il faut être root pour les ouvrir sous Linux).
- 1024 à 49151 : ports enregistrés (3306 MySQL, 5432 PostgreSQL, 1194 OpenVPN…).
- 49152 à 65535 : ports éphémères, choisis au hasard par le client pour chaque connexion sortante.
| Port | Protocole | Service |
|---|---|---|
| 20/21 | TCP | FTP (à éviter : non chiffré) |
| 22 | TCP | SSH, SFTP, SCP |
| 25 / 587 / 465 | TCP | SMTP (envoi de courrier) |
| 53 | UDP (et TCP) | DNS |
| 67 / 68 | UDP | DHCP (serveur / client) |
| 80 / 443 | TCP | HTTP / HTTPS (443 aussi en UDP pour HTTP/3) |
| 123 | UDP | NTP (heure) |
| 143 / 993 | TCP | IMAP / IMAPS |
| 389 / 636 | TCP | LDAP / LDAPS |
| 445 | TCP | partage Windows (SMB) |
| 500 / 4500 | UDP | IKE et IPsec NAT-T |
| 1194 | UDP | OpenVPN |
| 3389 | TCP | Bureau à distance Windows (RDP) |
| 3306 / 5432 | TCP | MySQL / PostgreSQL |
| 51820 | UDP | WireGuard (valeur habituelle) |
Sur un système Linux, le fichier /etc/services donne la correspondance nom ↔ numéro :
grep -w 443 /etc/services # https 443/tcp
getent services ssh # ssh 22/tcp
Voir les couches sur une machine Linux
ip link show # couche 2 : interfaces, adresses MAC, MTU
ip address show # couche 3 : adresses IP de chaque interface
ip route show # couche 3 : par où partent les paquets
ss -tulpn # couche 4 : ports TCP/UDP en écoute et programmes associés
curl -I https://exemple.ma # couche 7 : une vraie requête HTTP
Un dépannage efficace suit les couches de bas en haut : le câble ou le Wi-Fi est-il connecté (1-2) ? La machine a-t-elle une adresse et une route (3) ? Le port répond-il (4) ? Le service fonctionne-t-il (7) ? Cette méthode est détaillée dans la leçon 4.1.
Exercice guidé : nommer les couches
Pour chaque situation de l'agence de Tanger, dites la couche concernée.
- Le câble du poste de la caissière a été arraché par une chaise. → couche 1.
- Deux machines ont la même adresse IP. → couche 3.
- Le pare-feu bloque le port 3389. → couche 4.
- Le site interne répond « 404 page introuvable ». → couche 7.
- Le poste est branché sur le mauvais VLAN du commutateur. → couche 2.
Les protocoles courants en un coup d'œil
| Protocole | Couche | À quoi il sert | Où vous le croiserez |
|---|---|---|---|
| Ethernet | 2 | trames sur le réseau local câblé | chaque prise RJ45 de l'agence |
| Wi-Fi (802.11) | 1-2 | réseau local sans fil | bornes du hall, Wi-Fi invités |
| ARP | 2-3 | trouver l'adresse MAC qui porte une IP | leçon 2.1 |
| IPv4 / IPv6 | 3 | adresser et router les paquets | leçons 1.2 et 1.3 |
| ICMP | 3 | messages d'erreur et ping |
dépannage, leçon 4.1 |
| TCP / UDP | 4 | livrer aux applications | pare-feu, leçon 2.4 |
| DHCP | 7 (sur UDP) | distribuer les adresses | leçon 2.1 |
| DNS | 7 (sur UDP/TCP) | traduire les noms en adresses | leçon 1.4 |
| TLS | 5-6 | chiffrer HTTPS, OpenVPN, LDAPS | leçon 3.3 |
| IPsec | 3 | chiffrer des paquets IP entiers | leçon 3.4 |
Exercice : lire un paquet
Voici, simplifié, ce qu'affiche un outil de capture pour un paquet capturé au siège, juste devant le serveur :
Ethernet src 52:54:00:aa:10:25 dst 52:54:00:bb:00:01
IPv4 src 10.21.10.25 dst 10.20.1.10 ttl 63 proto TCP
TCP sport 51544 dport 443 flags [S]
Questions et réponses :
- Quelle machine a envoyé le paquet ? →
10.21.10.25(un poste de l'agence). - Quel service est demandé ? → port de destination 443, donc HTTPS.
- Que signifie le drapeau
[S]? → SYN : c'est le premier paquet de la poignée de main TCP. - Le port 51544 est-il un service ? → non, c'est un port éphémère choisi par le client.
- Le TTL vaut 63 : que s'est-il passé ? → le poste l'a envoyé avec un TTL de 64 (valeur habituelle sous Linux) ; chaque routeur traversé retire 1 : un routeur l'a déjà fait suivre. Dans un VPN, tout le trajet chez l'opérateur est caché dans le tunnel et ne compte pas.
Pièges fréquents
- Confondre adresse et port :
10.20.1.10:443désigne le service HTTPS de la machine 10.20.1.10. Ouvrir le port sur le pare-feu ne sert à rien si le service n'écoute pas. - Croire que DNS n'utilise que UDP : les grosses réponses et les transferts de zone passent en TCP 53. Un pare-feu qui ne laisse passer que UDP 53 crée des pannes étranges.
- Oublier la MTU dans un tunnel : le site s'ouvre mais les gros fichiers bloquent. C'est presque toujours une MTU trop grande.
- Penser « OSI » pour configurer : on raisonne avec OSI, mais on configure avec TCP/IP (interface, IP, route, port, service).
Lab
Vous allez écrire vos fiches de révision dans /root/reseau : la liste des sept couches, les ports à connaître, le calcul du MSS à partir de la MTU, puis un petit script shell qui donne la couche d'un protocole. Le script est vraiment exécuté par la vérification : il doit afficher le bon numéro pour chaque protocole.
Quiz
- Combien de couches comptent le modèle OSI et le modèle TCP/IP ?
- À quelle couche travaillent un commutateur classique et un routeur ?
- Qu'est-ce que l'encapsulation ?
- Pourquoi le DNS utilise-t-il surtout UDP, et dans quel cas passe-t-il en TCP ?
- Quel est le MSS habituel d'une connexion TCP en IPv4 sur Ethernet ?
Réponses
- 7 pour OSI, 4 pour TCP/IP.
- Le commutateur à la couche 2 (il lit les adresses MAC), le routeur à la couche 3 (il lit les adresses IP).
- Chaque couche ajoute son propre en-tête aux données de la couche supérieure avant de les passer à la couche inférieure ; à l'arrivée, chaque couche retire son en-tête.
- Parce qu'une question et sa réponse tiennent souvent dans un seul petit paquet : UDP évite le coût d'une connexion. Il passe en TCP pour les réponses trop grosses et les transferts de zone.
- 1460 octets (1500 de MTU − 20 d'en-tête IPv4 − 20 d'en-tête TCP).
Sources de référence : documentations officielles Microsoft Learn (Windows Server, Azure) et Red Hat. Texte original MasterLinux.