← Retour au portail

Fiche 9 - Protocoles TCP, UDP et ICMP

Comprendre les protocoles de transport TCP et UDP, le protocole ICMP, et savoir analyser les échanges réseau courants.

Débutant — SISR 1ère année ⏱️ 20 min 📁 Réseau

🎯 Objectifs de la fiche

  1. Le modèle TCP/IP — 4 couches, comparaison avec OSI
  2. TCP — Transport fiable — Handshake 3 voies, numéros de séquence, ACK
  3. UDP — Transport rapide — Sans connexion, usages typiques
  4. ICMP — Messages de contrôle — ping, traceroute, messages d'erreur
  5. Ports et sockets — Ports bien connus, éphémères, ss/netstat

Prérequis

Connaître les bases de l'adressage IP. Avoir lu la fiche sur le modèle OSI.

1. Le modèle TCP/IP

Couche TCP/IPÉquivalent OSIProtocoles
ApplicationCouches 5, 6, 7HTTP, HTTPS, FTP, SSH, DNS, SMTP, DHCP
TransportCouche 4TCP, UDP
InternetCouche 3IP, ICMP, ARP
Accès réseauCouches 1 et 2Ethernet, Wi-Fi, PPP

2. TCP — Transport fiable

TCP (Transmission Control Protocol) garantit la livraison ordonnée et sans erreur des données. Il établit une connexion avant tout échange (connexion orientée).

2.1 Le handshake TCP en 3 voies

CLIENT                          SERVEUR
  |                               |
  |--- SYN (seq=x) -----------→   |   Étape 1 : client demande connexion
  |                               |
  |   ←-- SYN-ACK (seq=y, ack=x+1)|  Étape 2 : serveur accepte
  |                               |
  |--- ACK (ack=y+1) ----------→  |   Étape 3 : client confirme
  |                               |
  |=== Connexion établie ==========|
  |                               |
  | --- DATA (requête HTTP) ----→  |   Échange de données
  |   ←-- DATA (réponse HTTP) ---  |
  |                               |
  |--- FIN --------------------→  |   Fermeture (4 voies)
  |   ←-- FIN-ACK ---------------  |
Flag TCPSignificationUsage
SYNSynchronizeInitialisation de connexion
ACKAcknowledgeAccusé de réception
FINFinishFermeture propre de connexion
RSTResetFermeture brutale, port refusé
PSHPushEnvoyer les données immédiatement
URGUrgentDonnées urgentes

3. UDP — Transport rapide

UDP (User Datagram Protocol) envoie des datagrammes sans établir de connexion et sans garantie de livraison. Il est plus rapide que TCP.

CritèreTCPUDP
ConnexionOui (SYN/ACK)Non
FiabilitéGarantie (ACK + retransmission)Aucune garantie
Ordre des paquetsGarantiNon garanti
Contrôle de fluxOui (fenêtrage)Non
VitessePlus lentPlus rapide
En-tête20 octets minimum8 octets seulement
UsagesHTTP, SSH, FTP, SMTPDNS, DHCP, VoIP, streaming, jeux

4. ICMP — Messages de contrôle

ICMP (Internet Control Message Protocol) est utilisé pour envoyer des messages d'erreur et de diagnostic. Il fonctionne au niveau IP (couche 3), pas TCP ou UDP.

Type ICMPCodeSignification
Echo Request8Ping — demande de réponse
Echo Reply0Pong — réponse au ping
Destination Unreachable3Destination inaccessible (réseau, hôte, port)
Time Exceeded11TTL expiré — utilisé par traceroute
Redirect5Meilleure route disponible
# Ping simple
ping 8.8.8.8
ping -c 4 google.fr     # 4 paquets seulement

# Traceroute (utilise TTL décroissant + messages ICMP Time Exceeded)
traceroute 8.8.8.8
# ou sous Debian :
sudo apt install traceroute
traceroute -n 8.8.8.8   # -n = pas de résolution DNS (plus rapide)

# MTR — combinaison ping + traceroute en temps réel
sudo apt install mtr -y
mtr 8.8.8.8

5. Ports et sockets

Un port est un numéro (0-65535) qui identifie une application sur un hôte. Un socket est la combinaison IP:port.

Plage de portsTypeExemples
0 – 1023Well-known ports (ports bien connus)80 HTTP, 443 HTTPS, 22 SSH, 25 SMTP
1024 – 49151Registered ports (ports enregistrés)3306 MySQL, 5432 PostgreSQL, 8080 HTTP alt
49152 – 65535Dynamic/ephemeral ports (éphémères)Ports clients assignés dynamiquement
# Voir les ports en écoute sur le serveur
ss -tlnp          # TCP en écoute
ss -ulnp          # UDP en écoute
ss -tlnp | grep :80

# Voir toutes les connexions établies
ss -tnp

# Tester si un port est ouvert depuis le client
nc -zv 192.168.1.10 80    # netcat
telnet 192.168.1.10 80    # telnet (si installé)
Combien d'étapes comporte le handshake TCP ?
  • 2 (SYN + ACK)
  • 3 (SYN + SYN-ACK + ACK)
  • 4 (SYN + SYN-ACK + ACK + DATA)
  • 1 (SYN uniquement)

✅ Réponse : 3 (SYN + SYN-ACK + ACK)

Quel protocole de transport utilise DNS pour les requêtes standard ?
  • TCP port 53
  • UDP port 53
  • ICMP
  • TCP port 443

✅ Réponse : UDP port 53

Quel message ICMP est utilisé par traceroute ?
  • Echo Request (type 8)
  • Destination Unreachable (type 3)
  • Time Exceeded (type 11)
  • Redirect (type 5)

✅ Réponse : Time Exceeded (type 11)

Quelle plage de ports est réservée aux ports bien connus (well-known) ?
  • 0 – 65535
  • 1024 – 49151
  • 0 – 1023
  • 49152 – 65535

✅ Réponse : 0 – 1023

Quelle commande liste les ports TCP en écoute sur un serveur Linux ?
  • netstat -all
  • ss -tlnp
  • ifconfig -ports
  • ip route show

✅ Réponse : ss -tlnp