R02 - Modèle OSI, TCP/IP, ports, TCP/UDP, ICMP
Objectif
Savoir ranger chaque protocole et chaque équipement dans sa couche, comprendre l’encapsulation, la différence TCP/UDP, les ports, et ICMP (ping/traceroute).
1. Le modèle OSI en un schéma
| Couche | Rôle en une phrase | Question qu’elle règle |
|---|---|---|
| 7 Application | Services pour l’utilisateur | « Je veux une page web » |
| 6 Présentation | Format, chiffrement, compression | « En quel format ? Chiffré ? » |
| 5 Session | Ouvre/maintient/ferme le dialogue | « On garde la conversation ouverte » |
| 4 Transport | Découpe, numérote, fiabilise, ports | « Quel programme ? Tout est arrivé ? » |
| 3 Réseau | Adressage IP et routage | « Par où passer pour arriver ? » |
| 2 Liaison | Adressage MAC, trames, VLAN | « À quelle carte réseau voisine ? » |
| 1 Physique | Bits sur le support | « 0 ou 1 sur le câble ? » |
Le modèle OSI (7 couches) sert à raisonner et dépanner. Le modèle TCP/IP (4 couches) est celui qu'Internet utilise vraiment.
2. L’encapsulation
À l’envoi, chaque couche ajoute un en-tête devant les données de la couche du dessus. À la réception, chaque couche retire le sien (désencapsulation).
flowchart LR subgraph Emetteur["Émetteur (on descend)"] direction TB E7[Données] --> E4["+ en-tête TCP = Segment"] --> E3["+ en-tête IP = Paquet"] --> E2["+ en-tête Ethernet = Trame"] --> E1[Bits] end subgraph Recepteur["Récepteur (on remonte)"] direction BT R1[Bits] --> R2[Trame] --> R3[Paquet] --> R4[Segment] --> R7[Données] end E1 ==>|câble| R1
3. Les ports : à quel programme parler ?
L’IP désigne la machine, le port désigne le programme sur cette machine. Un port est un nombre de 0 à 65535.
| Plage | Nom | Usage |
|---|---|---|
| 0 – 1023 | Ports bien connus | Services standards (root requis sous Linux pour écouter) |
| 1024 – 49151 | Ports enregistrés | Applications (MariaDB 3306, SQL Server 1433…) |
| 49152 – 65535 | Ports dynamiques | Ports source choisis au hasard par le client |
Ports à connaître par cœur
| Port | Protocole | Transport | Service |
|---|---|---|---|
| 20/21 | FTP | TCP | Transfert de fichiers (non chiffré) |
| 22 | SSH / SFTP | TCP | Accès distant chiffré, transfert sécurisé |
| 23 | Telnet | TCP | Accès distant non chiffré (à bannir) |
| 25 / 587 | SMTP | TCP | Envoi de mails |
| 53 | DNS | UDP (et TCP) | Résolution de noms |
| 67 / 68 | DHCP | UDP | Attribution d’IP (67 serveur, 68 client) |
| 80 | HTTP | TCP | Web non chiffré |
| 110 / 143 | POP3 / IMAP | TCP | Réception de mails |
| 123 | NTP | UDP | Synchronisation de l’heure |
| 161 / 162 | SNMP | UDP | Supervision |
| 389 / 636 | LDAP / LDAPS | TCP | Annuaire (Active Directory) |
| 443 | HTTPS | TCP | Web chiffré (TLS) |
| 445 | SMB | TCP | Partage de fichiers Windows |
| 1433 | SQL Server | TCP | Base de données Microsoft |
| 3128 | Squid | TCP | Proxy web |
| 3306 | MySQL / MariaDB | TCP | Base de données |
| 3389 | RDP | TCP | Bureau à distance Windows |
Une connexion est identifiée par le quintuplet : IP source, port source, IP destination, port destination, protocole.
# Voir les ports en ÉCOUTE sur ta machine Linux
sudo ss -tulpn # t=TCP u=UDP l=écoute p=programme n=numérique# Équivalent Windows
netstat -ano | findstr LISTENING4. TCP ou UDP ?
| Critère | TCP | UDP |
|---|---|---|
| Connexion | Oui (poignée de main en 3 temps) | Non (on envoie direct) |
| Fiabilité | Accusés de réception, retransmission | Aucune garantie |
| Ordre | Remis dans l’ordre | Pas garanti |
| Vitesse / légèreté | Plus lent, en-tête 20 octets min. | Rapide, en-tête 8 octets |
| Usages | Web, SSH, mail, transfert de fichiers | DNS, DHCP, VoIP, streaming, jeux en ligne |
La poignée de main TCP (three-way handshake)
sequenceDiagram participant C as Client participant S as Serveur (port 443) C->>S: SYN (seq = x) S->>C: SYN-ACK (seq = y, ack = x+1) C->>S: ACK (ack = y+1) Note over C,S: Connexion établie → échange de données C->>S: FIN S->>C: ACK + FIN C->>S: ACK (fermeture)
5. ICMP : le protocole de diagnostic
ICMP (couche 3) transporte des messages de contrôle et d’erreur. Il n’a pas de port.
| Type ICMP | Message | Utilisé par |
|---|---|---|
| 8 | Echo Request | ping (aller) |
| 0 | Echo Reply | ping (réponse) |
| 3 | Destination Unreachable | Routeur qui ne connaît pas la route / port fermé |
| 11 | Time Exceeded (TTL = 0) | traceroute / tracert |
| 5 | Redirect | Routeur qui indique un meilleur chemin |
ping -c 4 8.8.8.8 # Linux : 4 essais (sinon ça tourne à l'infini, Ctrl+C)
traceroute 8.8.8.8 # chemin routeur par routeur (paquet "traceroute" à installer)
mtr 8.8.8.8 # ping + traceroute en continu (très pratique)ping 8.8.8.8
tracert 8.8.8.8Sécurité
Beaucoup de pare-feux bloquent ICMP. Un ping qui échoue ne prouve donc pas que la machine est éteinte. Inversement, laisser tout ICMP ouvert facilite la cartographie du réseau par un attaquant.
6. Ranger les protocoles et équipements
| Couche | Protocoles | Équipements |
|---|---|---|
| 7 | HTTP(S), DNS, DHCP, SSH, FTP, SMTP, SNMP | Proxy, pare-feu applicatif (WAF) |
| 4 | TCP, UDP | Pare-feu (filtrage par port) |
| 3 | IPv4, IPv6, ICMP, OSPF, RIP | Routeur, switch de niveau 3 |
| 2 | Ethernet, ARP*, 802.1Q (VLAN), STP, Wi-Fi 802.11 | Switch, point d’accès |
| 1 | Signaux, câbles, connecteurs | Câble, hub, répéteur |
* ARP fait le lien entre couche 2 et 3 ; on le range souvent en couche 2 ou « 2,5 ».
7. À retenir
- 7 couches OSI, 4 couches TCP/IP ; PDU : données → segment → paquet → trame → bits.
- IP = machine, port = programme.
- TCP = fiable avec connexion, UDP = rapide sans connexion.
- ICMP = ping et traceroute, pas de port.