Suchen

Definition Was ist UDP (User Datagram Protocol)?

Das User Datagram Protocol (UDP) ist ein Protokoll aus der TCP/IP-Welt. Es baut auf dem Internet Protokoll auf und ist im OSI-Schichtenmodell auf Schicht 4, der Transportschicht, angesiedelt. Im Gegensatz zu TCP (Transmission Control Protocol) handelt es sich um ein verbindungsloses, ungesichertes Protokoll. Die zentralen Funktionen sind der Transport von Daten und das Multiplexen von Verbindungen.

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Die Abkürzung UDP steht für User Datagram Protocol. Es handelt sich um ein Kommunikationsprotokoll aus der TCP/IP-Welt, das als verbindungslose, ungesicherte Alternative zum Transmission Control Protocol Verwendung findet. UDP eignet sich für Anwendungen, die fehlertolerant sind und Daten mit niedriger Latenz senden und empfangen möchten. UDP-Datagramme haben einen geringen Overhead und lassen sich ohne vorherigen Verbindungsaufbau senden und empfangen.

Im OSI-Schichtenmodell ist UDP auf dem Layer 4, der Transportschicht, angesiedelt. UDP arbeitet mit Protokollen höherer Schichten wie dem Trivial File Transfer Protocol (TFTP) oder dem Real Time Streaming Protocol (RTSP) zusammen. Auch das Domain Name System (DNS), virtuelle private Netze (VPN) und viele weitere Protokolle höherer Ebenen nutzen das verbindungslose UDP.

Wie das Transmission Control Protocol basiert UDP auf so genannten Ports. Sie ermöglichen zwischen verschiedenen Anwendungen und Benutzeranfragen zu unterscheiden. Für die Prüfung, ob Datenpakete fehlerfrei angekommen sind, kommen Prüfsummen zum Einsatz. Mechanismen zur Prüfung, ob Pakete verloren gegangen sind, in der falschen Reihenfolge eintreffen oder dupliziert wurden, bietet das User Datagram Protocol nicht. Der Absender wird nicht darüber informiert, ob ein Datenpaket tatsächlich am Ziel angekommen ist, da keine Bestätigungen versendet werden. Definiert ist UDP im RFC 768 aus dem Jahr 1980.

Funktionsweise des User Datagram Protocols

Das User Datagram Protocol arbeitet ungesichert und verbindungslos. Nur Anwendungen, die gegenüber verlorenen oder nicht in korrekter Reihenfolge empfangenen Paketen unempfindlich sind, können UDP uneingeschränkt nutzen. Haben die Anwendungen Anforderungen an eine gesicherte Übertragung, müssen sie das Transmission Control Protocol verwenden oder eigene Sicherungsmechanismen implementieren.

Der Datenaustausch zwischen Sender und Empfänger startet bei UDP direkt ohne einen vorherigen Verbindungsaufbau und beginnt dadurch schneller. Im Vergleich zu TCP nicht notwendige Quittierungsmechanismen für empfangene Pakete reduzieren das Datenaufkommen auf der Netzwerkverbindung und minimieren Schwankungen in den Übertragungszeiten. Maximal kann ein UDP-Paket eine Länge von 65.535 Bytes haben. Große Datagramme werden vom darunterliegenden IP fragmentiert. Kommt es im IP-Netz zu Änderungen von Routen, ist es theoretisch möglich, dass UDP-Datagramme sich überholen und in veränderter Reihenfolge am Ziel eintreffen.

Abgrenzung zwischen TCP und UDP

Das Transmission Control Protocol ist für Anwendungen vorgesehen, die auf eine gesicherte, vollständige Übertragung von Daten angewiesen sind. TCP sorgt dafür, dass verlorengegangene Pakete erneut versendet werden und die Reihenfolge beim Eintreffen korrekt ist. Durch diese zusätzlichen Kontrollmechanismen im Vergleich zu UDP hat das Protokoll einen größeren Protokolloverhead. Gleichzeitig erhöht sich durch die Quittierungsmechanismen und das gegebenenfalls erneute Versenden von Datenpaketen die Latenz und die Netzwerkbelastung.

Gemeinsam haben beide Protokolle, dass Ports für das Multiplexen von Datenverbindungen zum Einsatz kommen. Da bei UDP nahezu alle Kontrollmechanismen von TCP fehlen, ist das Protokoll einfacher und schlanker. Datenpakete müssen weder nummeriert noch quittiert werden. Beim Empfänger angekommen erfolgt anhand der Portnummer die direkte Weiterleitung zur Anwendung.

Die Bedeutung des UDP-Ports

Sowohl das User Datagram Protocol als auch das Transmission Control Protocol nutzen Portnummern, um sicherzustellen, dass Datenpakete die richtige Anwendung erreichen. Ein TCP- oder UDP-Port ist eine eindeutige Nummer, die das Datenpaket einer Anwendung oder einem Dienst zuordnet. Auf einem System installierte Anwendungen oder Services hören ihre Ports ab und nehmen Daten auf diesen entgegen.

Die Nummern 0 bis 1.023 sind definiert und fest einer bestimmten Anwendung zugeordnet. Beispielsweise nutzt das Trivial File Transfer Protocol den UDP-Port 69. DNS arbeitet mit den Portnummern 53 oder 853. Portnummern von 1.024 bis 49.151 sind für registrierte Anwendungen und Dienste vorgesehen. Die Ports darüber von 49.152 bis 65.535 vergeben Betriebssysteme dynamisch an Clientprogramme und sind frei nutzbar.

Aufbau eines UDP-Pakets

Ein UDP-Paket besteht aus dem UDP-Header und dem Datenbereich. Der Header beinhaltet die Informationen über den Quell- und den Ziel-UDP-Port sowie über die Länge des gesamten UDP-Pakets. Auch eine Checksumme ist vorhanden, mit der sich die Fehlerfreiheit des UDP-Datagramms überprüfen lässt. Die Prüfsumme wird über den Header und die Daten gebildet.

Insgesamt hat der Header lediglich eine Länge von acht Byte. Die Verarbeitung des schlanken Headers erfordert nur wenig Rechenleistung. Direkt nach dem Header schließt sich der Datenteil mit der eigentlichen Nutzlast an. Er besteht immer aus einer ganzzahligen Anzahl an Oktetten, die im Bedarfsfall am Ende mit Nullen gefüllt wird. Das für die Übertragung von UDP verwendete Internet Protokoll fügt einen weiteren Header hinzu. In diesem befinden sich die vom Internet Protokoll benötigten Informationen wie IP-Absender- und -Zieladressen.

Die Variante UDP-Lite

UDP-Lite (Lightweight User Datagram Protocol) ist eine Variante von UDP, die im RFC 3828 standardisiert ist. Es handelt sich um ein Protokoll, das für Anwendungen vorgesehen ist, die kleine Datenfehler tolerieren, aber geringe Latenzen voraussetzen wie das Live-Streaming von Video- oder Audiodaten. Im Gegensatz zu UDP führen einzelne Bitfehler hier nicht zum Verwerfen des kompletten Datenpakets. UDP-Lite verwendet hierfür eine alternative Checksummen-Prüfung. Die Prüfsumme bezieht sich im Vergleich zu UDP in der Regel nur auf den Header und nicht auf das komplette UDP-Paket. Mögliche einzelne Übertragungsfehler sind durch den verwendeten Codec der Audio- oder Videoübertragung größtenteils nicht hörbar oder sichtbar. Andere Anwendungen schwächen die Auswirkungen von fehlerhaft empfangene Daten durch Interpolation ab.

Typische UDP-Anwendungen und -Services

Anwendungen, die sich selbst um das Verbindungsmanagement kümmern oder gegenüber Paketverlusten tolerant sind, verwenden oft das User Datagram Protocol. Beispiele für solche Anwendungen sind das Streaming von Audio- und Videodaten. Ebenfalls sinnvoll ist UDP für Services, die kleine Datenmengen in einem einzigen Datenpaket versenden wie das Domain Name System (DNS). In diesen Fällen lohnt es sich nicht, eine dedizierte Verbindung aufzubauen. Ein DNS-Request wird in einem einzigen Datenpaket versendet. Erfolgt keine Antwort, wird der Request einfach wiederholt.

Virtuelle private Netze (VPN) verwenden UDP als Transportprotokoll, da die eigentlichen Nutzdaten der Clients innerhalb des verschlüsselten Tunnels bereits in TCP-Paketen transportiert werden. Das Einpacken dieser gesicherten TCP-Verbindungen in eine weitere TCP-Verbindung macht wenig Sinn. Weitere Protokolle und Anwendungen, die auf UDP basieren, sind das Trivial File Transfer Protocol (TFTP), das Bootstrap Protocol (BOOTP) oder das Network Time Protocol (NTP).

(ID:45681650)

Über den Autor