Aller au contenu

TCP vs UDP

TCP et UDP sont les deux protocoles de la couche transport (couche 4 du modèle OSI) utilisés pour faire circuler des données entre deux machines au-dessus d’IP. Ils répondent à des besoins opposés : fiabilité contre rapidité.

TCP établit une connexion avant tout échange de données, via une poignée de main en trois temps (le fameux three-way handshake : SYNSYN-ACKACK).

Caractéristiques :

  • Fiable : chaque paquet (segment) est numéroté et acquitté ; un segment perdu est retransmis.
  • Ordonné : les données arrivent dans l’ordre d’émission, même si les paquets réseau ne le sont pas.
  • Contrôle de flux et de congestion : TCP adapte son débit à la capacité du réseau et du destinataire.
  • Plus lourd : l’établissement de connexion et les accusés de réception ajoutent de la latence.

Utilisé quand la perte ou le désordre d’un seul paquet casse l’application : HTTP/HTTPS, SSH, FTP, SMTP, la plupart des bases de données.

UDP envoie des datagrammes indépendants, sans connexion préalable et sans garantie de livraison ni d’ordre.

Caractéristiques :

  • Pas de handshake : premier paquet envoyé, premier paquet arrivé (ou pas).
  • Pas de retransmission automatique : un paquet perdu est perdu, à l’application de gérer si besoin.
  • Très faible latence et faible overhead (en-tête de 8 octets contre 20+ pour TCP).

Utilisé quand la fraîcheur de la donnée compte plus que sa complétude : DNS (requêtes simples), streaming vidéo/audio, VoIP (RTP), jeux en ligne, VPN comme WireGuard (qui gère lui-même la fiabilité au-dessus).

Besoin Protocole
Aucune perte de données tolérée (transfert de fichier, page web) TCP
Latence minimale, perte ponctuelle acceptable (voix, vidéo live) UDP
Requête simple avec réponse courte (résolution DNS) UDP (avec repli TCP si réponse trop grande)
Débit très élevé, l’application gère elle-même la fiabilité UDP