TCP vs. UDP — worin unterscheiden sie sich und wann wählt man welches?
Kurzantwort
TCP ist verbindungsorientiert: es macht einen Handshake, nummeriert Bytes, überträgt Verluste neu und steuert die Überlastung, was eine zuverlässige geordnete Zustellung auf Kosten von Latenz und Overhead bietet. UDP ist verbindungslos und nach dem Prinzip senden-und-vergessen — kein Handshake, keine Neuübertragung, keine Ordnung. Nutzen Sie TCP, wenn Korrektheit zählt (Web, E-Mail, Dateiübertragung), und UDP, wenn Geschwindigkeit mehr zählt als Perfektion (DNS, VoIP, Gaming, Video).
TCP und UDP sind die beiden wichtigsten Protokolle der Transportschicht, und die Wahl zwischen ihnen ist ein Kompromiss zwischen Zuverlässigkeit und Latenz. Zu verstehen, wann welches gewinnt, ist grundlegendes Netzwerkwissen.
Was TCP Ihnen gibt
TCP ist verbindungsorientiert. Bevor Daten fließen, führt es einen Drei-Wege-Handshake durch. Es nummeriert jedes Byte, damit der Empfänger den Strom in der richtigen Reihenfolge wieder zusammensetzen kann, bestätigt, was es empfängt, überträgt Verlorenes neu und nutzt Fluss- und Überlastungssteuerung, um Empfänger oder Netz nicht zu überfordern. Der Preis dafür ist Overhead und zusätzliche Latenz — Roundtrips für den Aufbau, Wartezeiten auf Bestätigungen, Head-of-Line-Blocking, wenn ein Segment verloren geht.
Was UDP Ihnen gibt
UDP ist verbindungslos: es packt Ihre Nutzlast einfach in einen kleinen Header mit Quell-/Zielports und einer Prüfsumme und sendet sie. Kein Handshake, keine Neuübertragung, keine Ordnung, keine Überlastungssteuerung. Geht ein Paket verloren, ist es weg, sofern die Anwendung sich nicht darum kümmert. Das macht UDP schnell und zustandslos, mit winzigem Overhead.
Die Wahl zwischen beiden
Nutzen Sie TCP, wenn jedes Byte korrekt und in der richtigen Reihenfolge ankommen muss: HTTP(S), SSH, E-Mail, Dateiübertragung. Nutzen Sie UDP, wenn Rechtzeitigkeit Vollständigkeit schlägt: Echtzeit-Sprache und -Video, Online-Spiele und DNS, wo eine verlorene Anfrage einfach erneut versucht wird. Moderne Protokolle verwischen die Grenze — QUIC betreibt zuverlässige, gemultiplexte, verschlüsselte Ströme auf Basis von UDP, um das Head-of-Line-Blocking von TCP zu vermeiden.
Sicherheitshinweis
Die Zustandslosigkeit von UDP macht es zum bevorzugten Vektor für Reflection- und Amplification-DDoS (DNS, NTP, memcached), weil eine gefälschte Quelladresse dafür sorgt, dass eine große Antwort an das Opfer gesendet wird.
Interviewer erwarten die Einordnung Zuverlässigkeit vs. Geschwindigkeit sowie ein paar korrekte Beispielprotokolle auf jeder Seite.
Wahrscheinliche Anschlussfragen
- Warum nutzt DNS UDP für die meisten Anfragen, wechselt aber bei großen Antworten zu TCP?
- Wie verschafft QUIC TCP-ähnliche Zuverlässigkeit auf Basis von UDP?
- Was bedeutet die Zustandslosigkeit von UDP für Spoofing- und Amplification-Angriffe?