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

CoucheRôle en une phraseQuestion qu’elle règle
7 ApplicationServices pour l’utilisateur« Je veux une page web »
6 PrésentationFormat, chiffrement, compression« En quel format ? Chiffré ? »
5 SessionOuvre/maintient/ferme le dialogue« On garde la conversation ouverte »
4 TransportDécoupe, numérote, fiabilise, ports« Quel programme ? Tout est arrivé ? »
3 RéseauAdressage IP et routage« Par où passer pour arriver ? »
2 LiaisonAdressage MAC, trames, VLAN« À quelle carte réseau voisine ? »
1 PhysiqueBits 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.

PlageNomUsage
0 – 1023Ports bien connusServices standards (root requis sous Linux pour écouter)
1024 – 49151Ports enregistrésApplications (MariaDB 3306, SQL Server 1433…)
49152 – 65535Ports dynamiquesPorts source choisis au hasard par le client

Ports à connaître par cœur

PortProtocoleTransportService
20/21FTPTCPTransfert de fichiers (non chiffré)
22SSH / SFTPTCPAccès distant chiffré, transfert sécurisé
23TelnetTCPAccès distant non chiffré (à bannir)
25 / 587SMTPTCPEnvoi de mails
53DNSUDP (et TCP)Résolution de noms
67 / 68DHCPUDPAttribution d’IP (67 serveur, 68 client)
80HTTPTCPWeb non chiffré
110 / 143POP3 / IMAPTCPRéception de mails
123NTPUDPSynchronisation de l’heure
161 / 162SNMPUDPSupervision
389 / 636LDAP / LDAPSTCPAnnuaire (Active Directory)
443HTTPSTCPWeb chiffré (TLS)
445SMBTCPPartage de fichiers Windows
1433SQL ServerTCPBase de données Microsoft
3128SquidTCPProxy web
3306MySQL / MariaDBTCPBase de données
3389RDPTCPBureau à 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 LISTENING

4. TCP ou UDP ?

CritèreTCPUDP
ConnexionOui (poignée de main en 3 temps)Non (on envoie direct)
FiabilitéAccusés de réception, retransmissionAucune garantie
OrdreRemis dans l’ordrePas garanti
Vitesse / légèretéPlus lent, en-tête 20 octets min.Rapide, en-tête 8 octets
UsagesWeb, SSH, mail, transfert de fichiersDNS, 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 ICMPMessageUtilisé par
8Echo Requestping (aller)
0Echo Replyping (réponse)
3Destination UnreachableRouteur qui ne connaît pas la route / port fermé
11Time Exceeded (TTL = 0)traceroute / tracert
5RedirectRouteur 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.8

Sé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

CoucheProtocolesÉquipements
7HTTP(S), DNS, DHCP, SSH, FTP, SMTP, SNMPProxy, pare-feu applicatif (WAF)
4TCP, UDPPare-feu (filtrage par port)
3IPv4, IPv6, ICMP, OSPF, RIPRouteur, switch de niveau 3
2Ethernet, ARP*, 802.1Q (VLAN), STP, Wi-Fi 802.11Switch, point d’accès
1Signaux, câbles, connecteursCâ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.

Voir aussi