UDP - User Datagram Protocol

Das UDP ist ein verbindungsloses Transport-Protokoll, welches auf der 4. Schicht des OSI-Schichtenmodell arbeitet, der Transport-Schicht. Es ist mit dem verbindungsorientierten TCP (Transmission Control Protocol) zu vergleichen. Das UDP arbeitet jedoch verbindungslos und ist damit wesentlich unsicherer. Der Absender hat keinerlei Informationen darüber, ob sein Datenpaket angekommen ist. Im Gegenzug prüft TCP den Datenempfang mit dem Three-Way-Handshake. Der Vorteil von UDP ist daher, dass der Paket-Header viel kleiner ist und keine Bestätigungen der Übertragungsstrecke benötigt werden. Im Regelfall wird UDP bei DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming verwendet.

UDP im TCP/IP-Protokollstapel

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

Funktionsweise von UDP

UDP hat nahezu genau die gleiche Funktion wie das TCP, nur fehlen beim UDP alle Kontrollfunktionen. Deshalb ist das Datenpaket kleiner und einfacher für die Anwendung zu verarbeiten. UDP verfügt über keine Funktion, die sicherstellt, dass das Paket beim Empfänger angekommen ist. Ebenso entfällt die Nummerierung der Datenpakete, deswegen ist UDP nicht in der Lage eine Reihenfolge der Datenpakete zu ermitteln. Die Pakete werden der Anwendung direkt übergeben. Für eine sichere Übertragung ist die Anwendung selber verantwortlich.

Das UDP wird für Anwendungen und Dienste verwendet, welche mit Datenverlust umgehen können und für das Verbindungsmanagement selbst verantwortlich sind.

Header des UDP

Quell-Port Ziel-Port
Gesamtlänge Checksumme
Daten

Im Header des UDP befinden sich alle nötigen Informationen, die zur Erkennung des Protokolls als UDP benötigt werden und eine Datenübertragung überhaupt erst ermöglichen. Der Header ist insgesamt 32-Bit lang und besteht aus den Teilen Quell-, Ziel-Port, Gesamtlänge des Protokolls und Checksumme. Der Header ist damit insgesamt nur 8 Byte groß und lässt sich dadurch mit nur wenig Rechenleistung schnell verarbeiten.

  • Quell-Port (Source-Port) 16 Bit, hier steht der Quell-Port, den die Anwendung verwendet hat.Bei 16 Bit ist der höchste Port 65535.
  • Ziel-Port (Destination-Port) 16 Bit, hier steht der Ziel-Port, den die Anwendung definiert hat. Bei 16 Bit ist der höchste Port 65535.
  • Gesamtlänge 16Bit, hier wird angegeben, wie groß das UDP-Paket ist, wird verwendet um die Vollständigkeit des Protokolls zu prüfen.
  • Checksumme 16Bit, wird verwendet, um zu kontrollieren ob das UDP-Paket fehlerfrei übertragen wurde, bietet jedoch keinen Schutz vor Datenverlust.

Anwendung von UDP

Allgemein gesehen wird UDP bei Diensten und Anwendungen eingesetzt, welche mit Datenverlust umgehen können oder sich um das Verbindungsmanagement selber kümmern. Ein paar Beispiele dafür sind DNS-Anfragen, Audio- und Video-Streaming, Online Gaming (MMORPG). Das Protokoll eignet sich ebenfalls für Anwendungsprotokolle, deren Umfang an Daten in das Paket hineinpassen.
Ein Beispiel einer DNS-Abfrage: Es lohnt überhaupt nicht diese Verbindung auf- und abzubauen, wenn das Datenpaket der Anfrage verloren gehen würde, stellt man die Anfrage einfach erneut.
Ein weiteres Beispiel ist die Audio- und Videoübertragung: Diese Anwendungen sind hochgeschwindigkeitsorientiert, dies ist mit TCP auf Grund kontinuierlicher Datenübertragung nicht möglich, hier fließen nur Daten. Für Hochgeschwindigkeitverbindungen ist UDP viel besser geeignet, da kein begrenztes Verbindungsmanagement vorhanden ist.

Problem UDP und MTU

Die MTU beträgt standardmäßig 1500 Bytes. Bei dieser Größe kann es gerne mal zu Problemen kommen, wenn ein UDP größer ist. Dann muss es fragmentiert werden und das aufgeteilte Protokoll kann zwei unterschiedliche Wege zum Empfänger gehen. Wenn nun aber nur ein Teil des fragmentierten UDP auf diesem Weg verloren geht, ist das komplette UDP verloren. Da es nicht mehr zusammengesetzt werden kann und eine erneute Sendung des Protokolls ist nicht vorgesehen.