Sommaire
Comprendre les protocoles de transport TCP et UDP, le protocole ICMP, et savoir analyser les échanges réseau courants.
🎯 Objectifs de la fiche
- Le modèle TCP/IP — 4 couches, comparaison avec OSI
- TCP — Transport fiable — Handshake 3 voies, numéros de séquence, ACK
- UDP — Transport rapide — Sans connexion, usages typiques
- ICMP — Messages de contrôle — ping, traceroute, messages d'erreur
- 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 OSI | Protocoles |
|---|---|---|
| Application | Couches 5, 6, 7 | HTTP, HTTPS, FTP, SSH, DNS, SMTP, DHCP |
| Transport | Couche 4 | TCP, UDP |
| Internet | Couche 3 | IP, ICMP, ARP |
| Accès réseau | Couches 1 et 2 | Ethernet, 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 TCP | Signification | Usage |
|---|---|---|
| SYN | Synchronize | Initialisation de connexion |
| ACK | Acknowledge | Accusé de réception |
| FIN | Finish | Fermeture propre de connexion |
| RST | Reset | Fermeture brutale, port refusé |
| PSH | Push | Envoyer les données immédiatement |
| URG | Urgent | Donné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ère | TCP | UDP |
|---|---|---|
| Connexion | Oui (SYN/ACK) | Non |
| Fiabilité | Garantie (ACK + retransmission) | Aucune garantie |
| Ordre des paquets | Garanti | Non garanti |
| Contrôle de flux | Oui (fenêtrage) | Non |
| Vitesse | Plus lent | Plus rapide |
| En-tête | 20 octets minimum | 8 octets seulement |
| Usages | HTTP, SSH, FTP, SMTP | DNS, 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 ICMP | Code | Signification |
|---|---|---|
| Echo Request | 8 | Ping — demande de réponse |
| Echo Reply | 0 | Pong — réponse au ping |
| Destination Unreachable | 3 | Destination inaccessible (réseau, hôte, port) |
| Time Exceeded | 11 | TTL expiré — utilisé par traceroute |
| Redirect | 5 | Meilleure 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 ports | Type | Exemples |
|---|---|---|
| 0 – 1023 | Well-known ports (ports bien connus) | 80 HTTP, 443 HTTPS, 22 SSH, 25 SMTP |
| 1024 – 49151 | Registered ports (ports enregistrés) | 3306 MySQL, 5432 PostgreSQL, 8080 HTTP alt |
| 49152 – 65535 | Dynamic/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é)
- ☐ Différence TCP / UDP maîtrisée
- ☐ Handshake TCP 3 voies connu et dessiné
- ☐ ping fonctionnel (ICMP Echo Request/Reply)
- ☐ traceroute exécuté et résultat analysé
- ☐ ss -tlnp utilisé pour lister les ports ouverts
- ☐ Au moins 5 ports TCP bien connus mémorisés
Combien d'étapes comporte le handshake TCP ?
✅ Réponse : 3 (SYN + SYN-ACK + ACK)
Quel protocole de transport utilise DNS pour les requêtes standard ?
✅ Réponse : UDP port 53
Quel message ICMP est utilisé par traceroute ?
✅ Réponse : Time Exceeded (type 11)
Quelle plage de ports est réservée aux ports bien connus (well-known) ?
✅ Réponse : 0 – 1023
Quelle commande liste les ports TCP en écoute sur un serveur Linux ?
✅ Réponse : ss -tlnp