Was ist UDP? Funktionsweise und Einsatz

Autor: Veröffentlicht

Kurz gesagt: UDP ist ein Netzwerkprotokoll, das kleine Datenportionen überträgt, ohne vorher eine Verbindung aufzubauen. Es bestätigt selbst keinen Empfang, sendet verlorene Pakete nicht erneut und gewährleistet keine Zustellung in der richtigen Reihenfolge. Es ist dort nützlich, wo aktuelle Daten und geringe Verzögerungen wichtiger sind als die Wiederherstellung jeder fehlenden Datenportion — etwa bei Sprachgesprächen und Onlinespielen.

Wie funktioniert UDP und was ist ein Datagramm?

UDP, ausgeschrieben User Datagram Protocol, ist ein Protokoll der Transportschicht: Es legt fest, wie Daten zwischen Anwendungen über ein Netzwerk übertragen werden. Es baut auf IP auf, dem Protokoll für die Adressierung und Übertragung von Paketen zwischen Geräten. IP hilft dabei, den richtigen Host zu erreichen. UDP nutzt Portnummern, um die Daten an den passenden Dienst oder die passende Anwendung weiterzuleiten.

Eine einzelne UDP-Nachricht heißt Datagramm. Sie enthält die Anwendungsdaten sowie einen Header mit Angaben wie Quellport, Zielport und Nachrichtenlänge. Der UDP-Header ist 8 Byte groß; für die Übertragung über das Netzwerk kommen noch die Header anderer Schichten hinzu, darunter IP.

Der Absender sendet das Datagramm an eine bestimmte IP-Adresse und Portnummer. UDP führt vorher keinen Verbindungsabgleich mit dem Empfänger durch, den sogenannten Handshake. Das bedeutet jedoch nicht, dass eine Anwendung, die UDP nutzt, keine Anmeldung, Sitzungen oder einen eigenen Schritt zur Abstimmung der Kommunikation haben kann.

UDP bewahrt die Nachrichtengrenzen: Zwei gesendete Datagramme werden nicht zu einem einzigen Bytestrom. Der Empfänger kann sie allerdings in umgekehrter Reihenfolge erhalten, ein Duplikat bekommen oder keines von beiden empfangen.

Was garantiert UDP nicht?

Wenn eine Anwendung ein Datagramm erfolgreich sendet, ist das kein Beweis dafür, dass der Empfänger es erhalten hat. Ein Paket kann unter anderem durch Netzwerküberlastung, eine Firewall oder das Fehlen eines Programms verloren gehen, das auf dem betreffenden Port lauscht. UDP selbst behebt eine solche Situation nicht.

Das Protokoll bietet auch keine Flusskontrolle, also keine Anpassung der Senderate an die Möglichkeiten des Empfängers, und keine Überlastkontrolle für das Netzwerk. Benötigt eine Anwendung diese Funktionen, muss sie zusätzliche Mechanismen nutzen. Immer mehr Daten zu senden, ohne auf Verluste zu reagieren, kann die Kommunikation verschlechtern statt beschleunigen.

UDP verschlüsselt keine Daten und bestätigt nicht die Identität des Absenders. Vertraulichkeit und Authentifizierung können darüberliegende Protokolle gewährleisten, etwa DTLS oder QUIC. Dass UDP selbst diese Funktionen nicht besitzt, bedeutet also nicht, dass jeder darauf aufbauende Dienst Informationen ungeschützt überträgt.

UDP und TCP: Wann ist der Unterschied wichtig?

TCP, ausgeschrieben Transmission Control Protocol, ist ein weiteres weit verbreitetes Transportprotokoll. Es baut eine Verbindung auf und stellt der Anwendung einen geordneten Bytestrom bereit. Verlorene Daten werden automatisch erneut übertragen. Lässt sich die Kommunikation nicht fortsetzen, kann sie mit einem Fehler enden — auch TCP garantiert nicht den Erfolg eines gesamten Geschäftsvorgangs, etwa das Speichern einer Bestellung.

EigenschaftUDPTCP
VerbindungsaufbauIm Protokoll selbst nicht vorgesehenErforderlich
DatenübertragungEinzelne DatagrammeBytestrom
Erneute Übertragung verlorener DatenKeine automatische WiederholungIntegriert
Reihenfolge der DatenNicht garantiertIm Datenstrom gewahrt
ÜberlastkontrolleIn UDP selbst nicht vorhandenIntegriert

Die Aussage „UDP ist schneller als TCP“ ist eine Vereinfachung. UDP hat einen kleineren Header und wartet nicht auf Bestätigungen, doch die tatsächlichen Verzögerungen hängen auch vom Netzwerk und vom Aufbau der Anwendung ab. Muss das Programm den Empfang selbst bestätigen und jede Nachricht bei Verlust erneut senden, kann ein Teil dieses Vorteils entfallen.

Stell dir ein Spiel vor, in dem der Client regelmäßig die Position eines Gegners erhält. Geht eine Aktualisierung verloren, kann eine neuere nützlicher sein als die erneute Übertragung der alten. Die Information über den Kauf eines Gegenstands erfordert dagegen eine Bestätigung und Schutz vor einer doppelten Ausführung — UDP allein bietet das nicht.

Wo begegnet dir UDP in der Praxis?

UDP wird in vielen Diensten eingesetzt, wobei die Einzelheiten vom jeweiligen Programm und den Netzwerkbedingungen abhängen:

HTTP/3 zeigt, dass „baut auf UDP auf“ nicht bedeutet, dass Seiteninhalte ohne Folgen verloren gehen dürfen. Garantien, die UDP nicht bietet, können durch die darüberliegende Schicht gewährleistet werden.

Wie prüfst du, ob eine Anwendung UDP benötigt?

Wenn du einen Router oder eine Firewall konfigurierst, prüfe in der Dokumentation der Anwendung, welches Protokoll, welcher Port und welche Verkehrsrichtung erforderlich sind. Ein TCP-Port und ein UDP-Port mit derselben Nummer sind getrennte Kommunikationsendpunkte: Die Freigabe von TCP schaltet nicht automatisch UDP frei.

Gib nicht beide Protokolle „vorsichtshalber“ frei. Eine gewöhnliche ausgehende Verbindung erfordert in der Regel keine manuelle Portweiterleitung. Wenn du dagegen einen Server aus deinem Heimnetz zugänglich machst, kann sie erforderlich sein. Kläre zunächst, ob das Programm lediglich eine Verbindung zu einem Dienst aufbaut oder Datenverkehr aus dem Internet annehmen soll — davon hängt die richtige Konfiguration ab.

Siehe auch: Was ist GitLab?

Lesen Sie auch

Wie PHP-FPM PHP-Anfragen verarbeitet, sich vom Webserver unterscheidet und wie du Prozesse an Last und Hosting-Ressourcen anpasst.
BIND ist offene DNS-Serversoftware. Erfahre, welche Aufgaben sie übernimmt und wann sich der Betrieb eines eigenen Servers lohnt.
Was Polens REGON-Register und seine Kennnummer bedeuten, wie sie sich von NIP und KRS unterscheiden und wie Sie Unternehmensdaten prüfen.