UDP (User Datagram Protocol)
Was ist das User Datagram Protocol (UDP)?
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:
- Portnummern: Helfen bei der Unterscheidung verschiedener Benutzeranfragen.
- Prüfsumme: Eine optionale Funktion, die verifiziert, ob die Daten intakt angekommen sind.
UDP-Funktionen
Die Eigenschaften von UDP sind vorteilhaft für Anwendungen, die Datenverluste verkraften können. Zu den Merkmalen von UDP gehören:
- Pakete können verworfen und in einer anderen Reihenfolge empfangen werden, als sie gesendet wurden. Das ist für Echtzeitanwendungen nützlich, bei denen Latenzzeiten ein Problem darstellen könnten.
- Transaktionsbasierte Protokolle wie DNS oder Netzwerk Time Protocol (NTP) können UDP für die Kommunikation verwenden.
- UDP eignet sich für Anwendungen mit einer großen Anzahl von Clients, bei denen eine Fehlerkorrektur in Echtzeit nicht erforderlich ist, zum Beispiel bei Spielen, Sprach- oder Videokonferenzen und Medien-Streaming.
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:
Wie UDP funktioniert
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 ohne Warnung 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.
Anwendungsfälle für UDP
Zu den Anwendungsbereichen von UDP gehören:
- Verlustfreie Datenübertragung.
- Spiele, Sprache und Video.
- Dienste, die keine feste Paketübertragung benötigen.
- Multicasting und Routing-Update-Protokolle.
- Schnelle Anwendungen.
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.
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.