TCP vs UDP : quelle est la différence ?
Une comparaison claire de TCP et UDP : poignées de main, fiabilité, en-têtes, cas d'usage réels et pourquoi UDP alimente les attaques DDoS par amplification.
TCP et UDP sont les deux protocoles de transport qui acheminent presque tout sur internet. Ils se situent juste au-dessus d'IP et décident comment vos données passent d'un hôte à un autre. Choisir le bon — ou reconnaître lequel un service utilise — est fondamental pour le travail réseau et sécurité. Ce guide explique la différence et pourquoi elle compte.
Orienté connexion vs sans connexion
TCP (Transmission Control Protocol) est orienté connexion. Avant qu'aucune donnée ne circule, les deux hôtes effectuent une poignée de main en trois temps : SYN → SYN-ACK → ACK. Ce n'est qu'une fois cet échange terminé que la charge utile réelle se déplace. La connexion est une session suivie et à état pendant toute sa durée de vie.
UDP (User Datagram Protocol) est sans connexion. Il n'y a ni poignée de main ni session. Un hôte envoie simplement un datagramme et espère qu'il arrive. Il n'existe aucun accusé de réception intégré, donc l'expéditeur ne sait jamais si le paquet a été reçu, sauf si la couche applicative ajoute sa propre vérification.
Fiabilité et ordre
C'est le compromis central :
- TCP garantit la livraison et l'ordre. Les segments perdus sont retransmis, les doublons sont écartés, et les octets sont réassemblés dans l'ordre exact où ils ont été envoyés. Le contrôle de flux et le contrôle de congestion empêchent l'expéditeur de submerger le récepteur ou le réseau.
- UDP ne garantit rien. Les paquets peuvent être perdus, dupliqués ou arriver dans le désordre, et UDP ne corrigera rien. Cela paraît mauvais, mais pour certaines charges c'est exactement ce qu'il faut — une image perdue dans un appel vidéo vaut mieux qu'un blocage le temps d'une retransmission.
En-têtes
La taille des en-têtes reflète la philosophie. Un en-tête UDP est compact, 8 octets : port source, port de destination, longueur et somme de contrôle. Un en-tête TCP fait au moins 20 octets car il transporte des numéros de séquence, des numéros d'accusé de réception, des tailles de fenêtre et des drapeaux de contrôle — toute la machinerie nécessaire pour suivre une session fiable.
Comparaison rapide
| Caractéristique | TCP | UDP |
|---|---|---|
| Connexion | Poignée de main d'abord | Aucune |
| Fiabilité | Garantie | Au mieux |
| Ordre | Ordonné | Non garanti |
| Taille d'en-tête | 20+ octets | 8 octets |
| Vitesse | Plus lent | Plus rapide |
| Usage typique | Web, e-mail, SSH | DNS, VoIP, streaming |
Quand utiliser chacun
TCP est le choix dès que l'exactitude compte plus que la latence. Le trafic web sur le port 80 et le port 443, le shell sécurisé sur le port 22, et l'e-mail via le port 25, le port 587, le port 465, le port 110, le port 143 et le port 993 reposent tous sur TCP. Les bases de données comme le port 3306 et le port 5432 et le bureau à distance sur le port 3389 aussi — un résultat de requête corrompu ou une mise à jour d'écran brouillée est inacceptable.
UDP l'emporte là où la vitesse et la faible surcharge priment sur une livraison parfaite. Le DNS utilise le port 53 pour des résolutions rapides, le DHCP distribue les adresses sur le port 67, et la synchronisation de l'heure passe par NTP sur le port 123. La signalisation VoIP sur le port 5060, la gestion réseau avec SNMP sur le port 161, et la découverte de services locaux via mDNS sur le port 5353 et SSDP sur le port 1900 privilégient toutes la latence minimale d'UDP. Vous pouvez parcourir tous les ports pour voir quel protocole chaque service utilise.
Pourquoi UDP alimente le DDoS par amplification
L'absence de poignée de main d'UDP est aussi sa plus grande faiblesse de sécurité. Comme aucune connexion n'est établie, un attaquant peut falsifier l'adresse IP source et envoyer une petite requête qui déclenche une réponse bien plus grande — envoyée à la victime usurpée. C'est la réflexion et amplification.
Les pires coupables sont les services UDP qui renvoient de grosses réponses à de minuscules requêtes : DNS sur le port 53, NTP sur le port 123 (la commande monlist), SNMP sur le port 161, SSDP sur le port 1900, et mDNS sur le port 5353. Quelques octets en entrée peuvent produire des dizaines ou des centaines d'octets en sortie, multipliant la bande passante d'un attaquant contre une cible. La poignée de main de TCP rend cela bien plus difficile, puisque la victime usurpée devrait compléter la connexion.
Conclusion
TCP achète la fiabilité au prix d'une surcharge ; UDP achète la vitesse en renonçant aux garanties. Aucun n'est « meilleur » — ils répondent à des besoins différents, et les bons ingénieurs adaptent le protocole à la charge. Souvenez-vous simplement que la simplicité d'UDP a un coût en sécurité : les services UDP exposés sont des cibles d'amplification de choix, alors verrouillez-les ou gardez-les hors de l'internet public.