Leçon 3 / 6
Leçon 03 · Partie 1 — Les bases

TCP vs UDP

Deux façons d'envoyer des données

Sur internet, quand deux appareils s'échangent des données, ils doivent s'entendre sur comment les envoyer. Il existe deux grands protocoles de transport : TCP et UDP.

Ils servent tous les deux à transporter des paquets de données — mais avec des priorités différentes. TCP privilégie la fiabilité. UDP privilégie la vitesse.

📦

TCP et UDP sont des protocoles de transport — ils définissent les règles d'envoi des paquets entre deux appareils. Ils font partie de la suite TCP/IP qui est la base d'internet.

TCP — le courrier recommandé

TCP (Transmission Control Protocol) est fiable. Il garantit que tous les paquets arrivent, dans le bon ordre, sans erreur.

C'est comme envoyer un colis avec accusé de réception : le transporteur confirme chaque étape, et si quelque chose est perdu, il renvoie.

La poignée de main TCP (3-way handshake)

Avant d'envoyer des données, TCP établit une connexion avec un échange en 3 étapes :

// TCP — Établissement de connexion (3-way handshake)

Client  ──── SYN ──────────→  Serveur
        // "Je veux parler avec toi"

Client  ←─── SYN-ACK ────────  Serveur
        // "Ok, je t'entends, tu m'entends ?"

Client  ──── ACK ──────────→  Serveur
        // "Oui, parfait. On peut commencer."

Client  ⟺──── données ────⟺  Serveur
        // Échange sécurisé et ordonné

SYN = synchronisation (demande de connexion). ACK = acknowledgement (confirmation de réception).

Après chaque paquet reçu, le destinataire envoie un ACK. Si l'expéditeur ne reçoit pas d'ACK, il renvoie le paquet. Rien ne se perd.

TCP garantit : livraison complète (aucun paquet perdu), ordre correct (les paquets arrivent dans l'ordre d'envoi), détection d'erreurs (les données corrompues sont redemandées).

UDP — le flyer dans la boîte aux lettres

UDP (User Datagram Protocol) est rapide mais sans garantie. On envoie les paquets, et on espère qu'ils arrivent. Pas de connexion préalable, pas d'accusé de réception, pas de renvoi.

C'est comme glisser des flyers sous les portes : tu envoies en masse, vite, mais tu ne sais pas si quelqu'un les a lus. Peu importe — la vitesse est l'objectif.

// UDP — envoi direct, sans vérification

Client  ──── paquet 1 ─────→  Serveur  // arrivé
Client  ──── paquet 2 ─────→  Serveur  // perdu... pas de renvoi
Client  ──── paquet 3 ─────→  Serveur  // arrivé

// Pas de handshake. Pas d'ACK. Juste "feu et oublie".
⚠️

Avec UDP, des paquets peuvent être perdus, arriver dans le mauvais ordre, ou être dupliqués. L'application doit gérer ça elle-même si c'est important. Mais pour beaucoup d'usages, quelques paquets perdus ne posent aucun problème.

TCP vs UDP — comparaison

// Comparaison TCP vs UDP

                   TCP              UDP
                   ─────            ─────
Connexion       : Oui (handshake)   Non
Fiabilité       : Garantie         Aucune
Ordre des paquets: Garanti         Non garanti
Vitesse         : Plus lent        Plus rapide
Surcoût réseau  : Plus élevé       Minimal
Cas d'usage     : Web, email, SSH  Jeux, vidéo, DNS

Quand utiliser quoi ?

Le choix dépend de ce qui est prioritaire : la fiabilité ou la vitesse.

📬

TCP — pour la précision

Chargement de pages web (HTTP/HTTPS), emails, transferts de fichiers, SSH, bases de données. Chaque bit doit arriver intact.

Fiabilité
🎮

UDP — pour la rapidité

Jeux en ligne, streaming vidéo/audio, appels VoIP, DNS. Mieux vaut une image un peu floue que 2 secondes de lag.

Vitesse
💡

Dans un jeu en ligne, si un paquet de position est perdu, on s'en fout — la prochaine position arrivera dans 16ms de toute façon. Mais pour un virement bancaire, perdre un paquet n'est pas acceptable. TCP le renverrait automatiquement.

// À retenir
  • TCP = fiable, ordonné, avec connexion (handshake). Plus lent.
  • UDP = rapide, sans garantie, sans connexion. Léger.
  • TCP : web, email, SSH, fichiers — tout ce qui doit être complet et intact.
  • UDP : jeux, streaming, VoIP, DNS — tout ce qui préfère la vitesse à la perfection.
  • Handshake TCP = SYN → SYN-ACK → ACK. Connexion établie avant tout échange.