Definition

UDP (User Datagram Protocol)

Beim User Datagram Protocol (UDP) handelt es sich um ein Kommunikationsprotokoll, das in erster Linie dazu dient, Verbindungen mit geringer Latenz und Verlusttoleranz zwischen Anwendungen im Internet herzustellen.

UDP beschleunigt Übertragungen, indem es den Transfer von Daten ermöglicht, bevor eine Zustimmung des Empfängers vorliegt. Daher ist UDP vorteilhaft für zeitkritische Kommunikation, wie Voice over IP (VoIP), DNS-Lookup (Domain Name System) sowie Video- oder Audiowiedergabe.

UDP ist eine Alternative zum Transmission Control Protocol (TCP). Sowohl UDP als auch TCP setzen auf dem Internet Protocol (IP) auf und werden manchmal als UDP/IP oder TCP/IP bezeichnet. Es gibt jedoch wichtige Unterschiede zwischen den beiden. So ermöglicht UDP beispielsweise die Prozess-zu-Prozess-Kommunikation, während TCP die Host-zu-Host-Kommunikation unterstützt.

TCP sendet einzelne Pakete und gilt als zuverlässiges Transportmedium. UDP hingegen sendet Nachrichten, sogenannte Datagramme, und gilt als Best-Effort-Kommunikationsverfahren. Das bedeutet, dass UDP keine Garantien dafür bietet, dass die Daten zugestellt werden. Zudem fehlen dem Protokoll spezielle Funktionen für die erneute Übertragung verloren gegangener oder beschädigter Nachrichten.

UDP bietet zwei Dienste, die von der IP-Schicht nicht bereitgestellt werden. Es arbeitet mit Port-Nummern, um verschiedene Benutzeranfragen zu unterscheiden. Außerdem verfügt es über eine optionale Prüfsummenfunktion, um zu verifizieren, ob die Daten vollständig angekommen sind.

User Datagram Protocol: Merkmale

Das User Datagram Protocol besitzt Eigenschaften, die nützlich sind, wenn es um das Zusammenspiel mit Anwendungen geht, die Datenverluste tolerieren können. Nachfolgend finden Sie einige Beispiele:

  • Das Protokoll erlaubt, Pakete zu verwerfen und in einer anderen Reihenfolge zu empfangen, als sie gesendet wurden. Dadurch eignet es sich für Echtzeitanwendungen, bei denen Latenz ein Problem darstellen könnte.
  • Es kann für transaktionsbasierte Protokolle, zum Beispiel DNS oder das Network Time Protocol (NTP), verwendet werden.
  • Es lässt sich nutzen, wenn eine große Anzahl von Clients verbunden sind und keine Fehlerkorrektur in Echtzeit erforderlich ist, wie bei Spielen, Sprach- oder Videokonferenzen und Streaming-Medien.

Aufbau des UDP-Headers

UDP verwendet Header, um Nachrichtendaten für die Übertragung über Netzwerkverbindungen zu verpacken. UDP-Header enthalten eine Reihe von Parametern – sogenannte Felder –, die in den technischen Spezifikationen des Protokolls festgelegt sind.

Der Header des User Datagram Protocols besteht aus vier Feldern, die jeweils 2 Byte groß sind. Es handelt sich hierbei um die:

  • Quell-Port-Nummer: die Nummer des Senders.
  • Ziel-Port-Nummer: der Port, an den das Datagramm adressiert ist.
  • Länge: die Länge des UDP-Headers und der gekapselten Daten in Byte.
  • Prüfsumme: wird bei der Fehlerkontrolle genutzt. Deren Verwendung ist bei IPv6 vorgeschrieben und bei IPv4

Abbildung 1: Die vier Felder, aus denen sich der UDP-Header zusammensetzt: Quell-Port, Ziel-Port, UDP-Länge und Prüfsumme.
Abbildung 1: Die vier Felder, aus denen sich der UDP-Header zusammensetzt: Quell-Port, Ziel-Port, UDP-Länge und Prüfsumme.

Die Funktionsweise von UDP

UDP verwendet IP, um ein Datagramm von einem Computer zu einem anderen zu übertragen. UDP sammelt die Daten in einem UDP-Paket und fügt dem Paket seine eigenen Header-Informationen hinzu. Diese Daten bestehen aus den Quell- und Ziel-Ports, über die kommuniziert werden soll, der Paketlänge und einer Prüfsumme. Nachdem die UDP-Pakete in ein IP-Paket gekapselt wurden, werden sie an ihr Ziel gesendet.

Im Gegensatz zu TCP garantiert UDP nicht, dass die Pakete an das richtige Ziel gelangen. Das bedeutet, dass UDP keine direkte Verbindung zum empfangenden Computer herstellt, wie dies bei TCP der Fall ist. Vielmehr verschickt es die Daten und verlässt sich darauf, dass die Geräte zwischen dem sendenden und dem empfangenden Computer die Information korrekt an den richtigen Ort weiterleiten.

Die meisten Anwendungen warten auf Antworten, die sie als Ergebnis von mit UDP gesendeten Paketen erwarten. Erhält eine Anwendung innerhalb eines bestimmten Zeitrahmens keine Antwort, sendet sie das Paket erneut, oder sie stellt den Versuch ein.

UDP verwendet ein einfaches Übertragungsmodell, das keine Handshaking-Dialoge beinhaltet, um Zuverlässigkeit, die korrekte Reihenfolge oder Datenintegrität zu gewährleisten. Infolgedessen ist der UDP-Dienst nicht zuverlässig. Pakete können in falscher Reihenfolge ankommen, doppelt vorhanden sein oder einfach so verschwinden.

Dieses Übertragungsverfahren garantiert zwar nicht, dass die gesendeten Daten ihr Ziel erreichen. Aber es besitzt einen geringen Overhead und ist beliebt für Dienste, die nicht unbedingt beim ersten Mal funktionieren müssen.

Anwendungen von UDP

Verlustfreie Datenübertragung

UDP kann bei Anwendungen genutzt werden, die eine verlustfreie Datenübertragung erfordern. Eine Anwendung, die so konfiguriert ist, dass sie den Prozess der erneuten Übertragung verloren gegangener Pakete verwaltet und empfangene Pakete korrekt anordnet, könnte beispielsweise UDP verwenden. Dieser Ansatz kann dazu beitragen, die Datentransferrate von großen Dateien im Vergleich zu TCP zu verbessern.

Im OSI-Kommunikationsmodell (Open Systems Interconnection) befindet sich UDP in Layer 4, der Transportschicht. UDP arbeitet mit übergeordneten Protokollen zusammen, um die Verwaltung von Datenübertragungsdiensten zu unterstützen, darunter das Trivial File Transfer Protocol (TFTP), Real Time Streaming Protocol (RTSP) und Simple Network Management Protocol (SNMP).

Spiele, Sprache und Video

UDP ist ein ideales Protokoll für Netzwerkanwendungen, bei denen die wahrgenommene Latenz entscheidend ist, wie bei Spielen sowie Sprach- und Videokommunikation. Bei diesen Beispielen kann ein gewisser Datenverlust auftreten, ohne die wahrgenommene Qualität zu beeinträchtigen. In einigen Fällen werden jedoch zusätzlich zu UDP Verfahren für Forward Error Correction (FEC) eingesetzt, um die Audio- und Videoqualität trotz eines gewissen Verlustes zu verbessern.

Dienste, die keine feste Paketübertragung benötigen

UDP lässt sich auch für Anwendungen nutzen, die auf den zuverlässigen Austausch von Informationen angewiesen sind, aber über eigene Methoden zur Beantwortung von Paketen verfügen sollten. Diese Dienste haben den Vorteil, dass sie nicht an feste Muster gebunden sind, um die Vollständigkeit und Richtigkeit der gesendeten Datenpakete zu gewährleisten. Die Benutzer können selbst entscheiden, wie und wann sie auf nicht korrekte oder ungeordnete Informationen reagieren.

Multicasting und Routing-Update-Protokolle

UDP kann auch für Multicasting verwendet werden, da es Paketvermittlung unterstützt. Darüber hinaus wird UDP für einige Routing-Update-Protokolle eingesetzt, zum Beispiel für das Routing Information Protocol (RIP).

Schnelle Anwendungen

UDP kann für Anwendungen genutzt werden, bei denen es mehr auf Geschwindigkeit als auf Zuverlässigkeit ankommt. So kann es sinnvoll sein, UDP für eine Anwendung zu verwenden, die Daten bei einer schnellen Erfassung sendet, wo es in Ordnung ist, einige Datenpunkte zu verlieren.

TCP versus UDP

TCP und UDP sind Teil der TCP/IP-Protokollsuite, die eine Reihe von Protokollen für die Netzwerkkommunikation umfasst.

Einige der Hauptunterschiede zwischen TCP und UDP im Vergleich.
Abbildung 2: Einige der Hauptunterschiede zwischen TCP und UDP im Vergleich.

TCP hat sich aufgrund seiner Fähigkeit, große Datenmengen in einzelne Pakete aufzuteilen, verloren gegangene Pakete zu suchen und erneut zu senden sowie Pakete in der richtigen Reihenfolge wieder zusammenzusetzen, als das vorherrschende Protokoll für den Großteil der Internetkonnektivität durchgesetzt. Diese zusätzlichen Dienste haben jedoch ihren Preis in Form von zusätzlichem Daten-Overhead und größerer Latenz.

Im Gegensatz dazu gilt UDP als verbindungsloses Protokoll, da es keine virtuelle Verbindung benötigt, bevor eine Datenübertragung stattfindet. Das Kommunikationsprotokoll sendet lediglich die Pakete, was bedeutet, dass der Bandbreiten-Overhead und die Latenz wesentlich geringer ausfallen. Bei UDP können die Pakete unterschiedliche Wege zwischen Sender und Empfänger nehmen. Somit ist es möglich, dass einige Pakete verloren gehen oder in falscher Reihenfolge empfangen werden.

UDP zeichnet sich durch folgende Merkmale aus:

  • Es handelt sich um ein verbindungsloses Protokoll.
  • Es wird für VoIP, Video-Streaming, Spiele und Live-Übertragungen verwendet.
  • Es ist schneller und benötigt weniger Ressourcen.
  • Die Pakete kommen nicht unbedingt in der richtigen Reihenfolge an.
  • Es erlaubt fehlende Pakete – der Sender kann nicht wissen, ob ein Paket empfangen wurde.
  • Es eignet sich besser für Anwendungen, die eine schnelle, effiziente Übertragung benötigen, etwa Spiele.

TCP besitzt die folgenden Eigenschaften:

  • Es handelt sich um ein verbindungsorientiertes Protokoll.
  • Es ist das am weitesten verbreitete Protokoll im Internet.
  • Es garantiert, dass keine Pakete verloren gehen und alle gesendeten Daten den vorgesehenen Empfänger erreichen.
  • Es sendet Pakete der Reihe nach, so dass sie leicht wieder zusammengefügt werden können.
  • Es ist langsamer und benötigt mehr Ressourcen.
  • Es besitzt einen größeren Header als UDP.
  • Es eignet sich am besten für Anwendungen, die eine hohe Zuverlässigkeit benötigen und bei denen die Übertragungszeit relativ unkritisch ist.

Diese Definition wurde zuletzt im November 2021 aktualisiert

Erfahren Sie mehr über LAN-Design und Netzwerkbetrieb

ComputerWeekly.de
Close