« TCP est le protocole des sites web et UDP celui du streaming. »
Ces exemples sont utiles, mais insuffisants. La vraie différence porte sur la connexion, l’ordre, la retransmission et le coût de contrôle. Tu vas l’observer.
Recrée le laboratoire routé de la leçon 4 et conserve les adresses suivantes :
pc1 : 10.10.10.11
r1 : 10.10.10.1 / 10.20.20.1
pc2 : 10.20.20.12
Installe les outils :
sudo apt update
sudo apt install -y tcpdump curl netcat-openbsd python3
01Lancer un service TCP
Fais de pc2 un serveur HTTP
Dans un premier terminal :
sudo ip netns exec pc2 python3 -m http.server 8080 --bind 10.20.20.12Dans un second terminal, vérifie l’écoute :
sudo ip netns exec pc2 ss -lntp02Capturer la connexion TCP
Observe le début de la conversation
Dans un terminal de capture :
sudo ip netns exec r1 tcpdump -ni any 'tcp port 8080'Depuis pc1 :
sudo ip netns exec pc1 curl -v http://10.20.20.12:8080/Observe10.10.10.11.random > 10.20.20.12.8080: Flags [S]
10.20.20.12.8080 > 10.10.10.11.random: Flags [S.]
10.10.10.11.random > 10.20.20.12.8080: Flags [.]Comprends SYN, SYN-ACK, ACK
Avant les données HTTP, TCP établit une connexion avec un three-way handshake. Les deux extrémités synchronisent leur état et leurs numéros de séquence. TCP pourra ensuite détecter les pertes, remettre les données dans l’ordre et retransmettre si nécessaire.
03Lire les ports
Distingue client et serveur
Le serveur utilise le port connu 8080. Le client choisit un port source temporaire. La paire suivante identifie une extrémité de communication :
adresse IP + protocole + portAvec les deux extrémités, le système distingue cette connexion de toutes les autres.
04Créer un échange UDP
Écoute sur pc2 sans établir de connexion
Arrête le serveur HTTP avec Ctrl+C. Dans un premier terminal :
sudo ip netns exec pc2 nc -u -l 9999Dans un terminal de capture :
sudo ip netns exec r1 tcpdump -ni any 'udp port 9999'Depuis pc1 :
printf 'bonjour UDP
' | sudo ip netns exec pc1 nc -u -w 1 10.20.20.12 999905Comparer les propriétés
| Propriété | TCP | UDP |
|---|---|---|
| Établissement | Connexion préalable | Pas de connexion |
| Ordre | Conservé | Non garanti |
| Perte | Détection et retransmission | À gérer par l’application si nécessaire |
| Unité courante | Segment | Datagramme |
| Coût de contrôle | Plus élevé | Plus faible |
Le choix ne se résume pas à « rapide contre fiable ». Une application temps réel peut préférer une information récente à la retransmission d’une information devenue inutile. Une application de transfert de fichier exige au contraire l’intégrité et l’ordre.
Prouve la différence sans regarder le filtre
- capture successivement les échanges TCP et UDP dans deux fichiers
.pcap; - ouvre-les avec Wireshark si disponible ;
- identifie le handshake dans le premier ;
- montre son absence dans le second ;
- rédige deux besoins où TCP est préférable et deux où UDP est pertinent.
06Nettoyer
sudo ip netns del pc1
sudo ip netns del pc2
sudo ip netns del r1
✓Ce que tu retiens
TCP établit et maintient un état de connexion afin de fournir ordre, contrôle et retransmission. UDP envoie des datagrammes sans cette mécanique. Les deux utilisent des ports pour remettre les données à la bonne application.