UDP - User Datagram Protocol

UDP ist ein verbindungsloses Transport-Protokoll und arbeitet auf der Schicht 4, der Transportschicht, des OSI-Schichtenmodells. Es hat damit eine vergleichbare Aufgabe, wie das verbindungsorientierte TCP. Allerdings arbeitet es verbindungslos und damit unsicher. Das bedeutet, der Absender weiß nicht, ob seine verschickten Datenpakete angekommen sind. Während TCP Bestätigungen beim Datenempfang sendet, verzichtet UDP darauf. Das hat den Vorteil, dass der Paket-Header viel kleiner ist und die Übertragungsstrecke keine Bestätigungen übertragen muss.

Das User Datagram Protocol (UDP) im TCP/IP-Protokollstapel

Schicht Dienste / Protokolle / Anwendungen
Anwendung HTTP IMAP DNS SNMP
Transport TCP UDP
Internet IP (IPv4 / IPv6)
Netzzugang Ethernet, ...

Funktionsweise von UDP

UDP hat die selbe Aufgabe wie TCP, nur das nahezu alle Kontrollfunktionen fehlen, dadurch schlanker und einfacher zu verarbeiten ist.
So besitzt UDP keinerlei Methoden die sicherstellen, dass ein Datenpaket beim Empfänger ankommt. Ebenso entfällt die Nummerierung der Datenpakete. UDP ist nicht in der Lage den Datenstrom in der richtigen Reihenfolge zusammenzusetzen. Statt dessen werden die UDP-Pakete direkt an die Anwendung weitergeleitet. Für eine sichere Datenübertragung ist deshalb die Anwendung zuständig.
In der Regel wird UDP für Anwendungen und Dienste verwendet, die mit Paketverlusten umgehen können oder sich selber um das Verbindungsmanagement kümmern. Typisch sind DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming.

Port-Struktur

Port-Struktur von UDP
Die Gemeinsamkeit von UDP und TCP ist die Port-Struktur, die mehreren Anwendungen gleichzeitig mehrere Verbindungen über das Netzwerk ermöglicht.
In jedem UDP-Datenpaket ist eine Nummer hinterlegt, die einen Port definiert, hinter dem sich eine Anwendung oder ein Dienst befinden, die diesen Port abhören und die Daten von UDP entgegennehmen. Die Port-Nummern beginnen von 0 an zu zählen und sind bis zur Port-Nummer 1.023 fest einer Anwendung zugeordnet. Alle anderen Port-Nummern, die darüber liegen, können frei von anderen Programmen verwendet werden. Z. B. nehmen Programme einen freien Port, um damit Kontakt zu einem Server aufzunehmen. Der Server schickt dann die Datenpakete an den frei gewählten Port zurück.
Mit der Port-Struktur ist es möglich, dass mehrere Anwendungen gleichzeitig über das Netzwerk Verbindungen zu mehreren Kommunikationspartner aufbauen. Mit UDP wird sichergestellt, dass die Datenpakete an die richtige Anwendung übergeben werden.

Beispiele für UDP-Ports

Port-NummerProtokollAnwendung
53DNSDomain Name Server
69TFTPTrivial File Transfer Protocol
137NetBIOS-nsNetBIOS Nameserver
138NetBIOS-DGMNetBIOS-Datagramm-Dienst
161SNMP Simple Network Management Protocol

Aufbau des UDP-Headers

Aufbau des UDP-Headers
UDP-Pakete setzen sich aus dem Header-Bereich und dem Daten-Bereich zusammen. Im Header sind alle Informationen enthalten, die eine einigermaßen geordnete Datenübertragung zulässt und die ein UDP-Paket als ein solches erkennen lassen. Der UDP-Header ist in 32-Bit-Blöcke unterteilt. Er besteht aus zwei solcher Blöcke, die den Quell- und Ziel-Port, die Länge des gesamten UDP-Pakets und die Check-Summe enthalten. Der UDP-Header ist mit 8 Byte sehr schlank und lässt sich mit wenig Rechenleistung verarbeiten.

Bedeutung der Felder im UDP-Header

FeldinhaltBitBeschreibung
Quell-Port
(Source-Port)
16 Hier steht der Quell-Port, von der die Anwendung das UDP-Paket verschickt. Bei einer Stellenanzahl von 16 Bit beträgt der höchste Port 65535.
Ziel-Port
(Destination-Port)
16 Hier steht der Ziel-Port, über welchen das UDP-Paket der Anwendung zugestellt wird. Bei einer Stellenanzahl von 16 Bit beträgt der höchste Port 65535.
Länge16 In diesem Feld wird angegeben, wie lang das gesamte UDP-Paket ist. Über diesen Wert kann die Vollständigkeit des UDP-Paketes ermittelt werden.
Check-Summe16 Über dieses Feld wird kontrolliert, ob das UDP-Paket fehlerfrei übertragen wurde. Die Check-Summe bietet keinen Schutz vor Datenverlust.