UDP (User Datagram Protocol)
Inhaltsverzeichnis
Was ist UDP (User Datagram Protocol)?
UDP ist Teil der Internet Protocol-Suite, die zur Datenübertragung zwischen Programmen verwendet wird, die auf verschiedenen Computern in einem Netzwerk ausgeführt werden. UDP wird verwendet, um kurze Nachrichten zu senden, die Datagramme genannt werden, und ist insgesamt ein im Vergleich zu TCP weniger zuverlässiges, verbindungsloses Protokoll. UDP ist offiziell in RFC 768 definiert und wurde von David P. Reed formuliert. Das Benutzer-Datagramm-Protokoll ist ein OSI-Transportschicht-Protokoll (Open System Interconnection) für Client-Server-Netzwerkanwendungen. UDP verwendet ein einfaches Übertragungsmodell, verzichtet jedoch auf Handshake-Dialoge, die Zuverlässigkeit, Kontinuität und Datenintegrität garantieren. Das Protokoll geht davon aus, dass eine Fehlerprüfung und -korrektur nicht erforderlich ist, wodurch eine dahingehende Prüfung auf der Netzwerkschnittstellenebene vermieden wird.
Ist UDP besser als TCP?
Die Antwort auf diese Frage hängt vom Kontext ab, da UDP zwar eine bessere Leistung, aber möglicherweise auch eine schlechtere Qualität als TCP bewirkt. Ein gutes Beispiel dafür, wann UDP gegenüber TCP bevorzugt wird, sind Anwendungen, die mit weniger Latenz besser laufen, wie zum Beispiel Online-Spiele, Video-Chats oder Sprachübertragungen. Pakete können zwar verloren gehen, aber insgesamt entstehen weniger Verzögerungen, die die Qualität beeinträchtigen – insofern wird oft kein spürbarer Qualitätsverlust wahrgenommen. Um eine höhere Leistung zu erreichen, erlaubt das Protokoll, dass einzelne Pakete fallen gelassen werden (ohne Wiederholung der Übertragung) und UDP-Pakete in einer anderen Reihenfolge empfangen werden können als sie gesendet wurden, sofern die Anwendung dies zulässt oder verlangt. Diese Übertragungsart ermöglicht im Vergleich zu TCP geringeres Datenvolumen und kleinere Verzögerungen. Da die Pakete grundsätzlich immer gesendet werden und keine Fehlerprüfung stattfindet, führt dies zu weniger Bandbreitenlast.
UDP als Tunnelprotokoll
Eine zunehmend beliebte Verwendung von UDP ist dessen Einsatz als Tunnelprotokoll, bei dem ein Tunnelendpunkt die Pakete eines anderen Protokolls in UDP-Datagramme kapselt und an einen anderen Tunnelendpunkt überträgt. Dieser Punkt entkapselt die UDP-Datagramme und die in der Nutzlast enthaltenen ursprünglichen Pakete werden weitergeleitet. Durch Tunnel werden virtuelle Verbindungen hergestellt, die scheinbar direkt mit Standorten verbunden sind, die in der physischen Internettopologie entfernt sind, und können zum Erstellen virtueller (privater) Netzwerke verwendet werden. Die Verwendung von UDP als Tunnelprotokoll ist attraktiv, wenn das Payload-Protokoll nicht von Middleboxen unterstützt wird, welche entlang des Pfades existieren können, da viele Middleboxen UDP-Übertragungen unterstützen. UDP bietet keine Kommunikationssicherheit. Anwendungen, die ihre Kommunikation vor Abhören, Manipulation oder Nachrichtenfälschung schützen müssen, müssen daher Sicherheitsdienste unter Verwendung zusätzlicher Protokollmechanismen separat bereitstellen.
UDP Protokolllheader
Ein Computer kann UDP-Pakete senden, ohne zuerst eine Verbindung zum Empfänger herzustellen. Ein UDP-Datagramm wird in einem einzelnen IP-Paket übertragen und ist daher auf eine maximale Nutzlast von 65,507 Byte für IPv4 und 65,527 Byte für IPv6 beschränkt. Die Übertragung großer IP-Pakete erfordert normalerweise eine IP-Fragmentierung. Fragmentierungen verringern die Zuverlässigkeit und Effizienz der Kommunikation und sollten daher vermieden werden. Um ein UDP-Datagramm zu übertragen, vervollständigt ein Computer die entsprechenden Felder im UDP-Header (PCI) und leitet die Daten zusammen mit dem Header zur Übertragung durch die IP-Netzwerkschicht weiter. Der UDP-Protokoll-Header besteht aus 8 Bytes an Protocol Control Information (PCI).
UDP Header-Felder
Der UDP-Header besteht aus vier Feldern mit je 2 Byte Länge.
Das Size-Feld enthält Anzahl an Bytes, die die kombinierten UDP-Headerinformationen und Nutzdaten umfassen. Da die Headerlänge konstant ist, beschreibt dieses Feld effektiv die Länge des Datenabschnitts variabler Größe (manchmal auch Nutzlast beziehungsweise Payload genannt).
Die Größe von Datagrammen variiert abhängig von der Betriebsumgebung, beträgt aber maximal 65535 Bytes.
Anforderungen an UDP (User Datagram Protocol) Anwendungen
Anwendungsentwicklern ist allgemein bekannt, das User Datagram Protocol keine Zuverlässigkeit bietet, da zum Beispiel mit dem UDP-Protokoll keine verlorenen Pakete erneut übertragen werden. Oft ist dies ein Hauptgrund, UDP für die Datenübermittlung nicht in Betracht zu ziehen. Anwendungen, die eine zuverlässige Nachrichtenübermittlung unbedingt erfordern, müssen daher geeignete Protokollmechanismen in ihren Routinen implementieren (beispielsweise tftp). Der Best-Effort-Dienst von UDP schützt nicht vor Datagrammduplizierung, das bedeutet eine Anwendung kann mehrere Kopien desselben UDP-Datagramms empfangen. Anwendungsentwickler müssen daher sicherstellen, dass ihre Anwendung die Datagrammduplizierung ordnungsgemäß verarbeitet, und müssen gegebenenfalls geeignete Mechanismen zum Erkennen von Duplikaten implementieren. Die Notwendigkeit, alle diese Protokollmechanismen zu codieren, kann durch Verwendung von TCP vermieden werden.
UDP Ports
Im Allgemeinen legen Clients den Quell-Port auf eine eindeutige Zahl fest, die sie selbst wählen – normalerweise basierend auf dem Programm, das die Verbindung gestartet hat. Da diese Nummer vom Server in dessen Antworten zurückgegeben wird, kann der Absender wissen, an welche “Konversation” eingehende Pakete gesendet werden sollen. Der Zielport von Paketen, die vom Client gesendet werden, wird normalerweise auf einen der sogenannten Well-Known Ports gesetzt. Diese entsprechen üblicherweise bestimmten weit verbreiteten Anwendungsarten, so wird Port 23 gerne für Telnet und Port 80 für Webserver verwendet. Ein Serverprozess (Programm) überwacht UDP-Pakete, die für eine bestimmte Well-Known Portnummer empfangen wurden, und teilt seiner lokalen UDP-Schicht mit, dass Pakete mit dieser Zielportnummer an das Serverprogramm gesendet werden sollen.
Tipp
Wenn Sie noch Fragen bezüglich eines Online Marketing Themas haben, dann können Sie gerne unseren Glossar besuchen und sich über das Thema informieren, wo Sie noch speziell Fragen haben.
Sie haben noch Fragen?