UDP (User Datagram Protocol)

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.

UDP-Pakete von einem Client verwenden diesen als Service Access Point (SAP), um die Sitzung auf dem lokalen Client anzugeben, von dem das Paket ausgeht. UDP-Pakete von einem Server tragen den Server SAP in diesem Feld.
UDP-Pakete, die von einem Client kommen, verwenden diesen als Service Access Point (SAP), um den vom Remote-Server benötigten Service anzugeben. UDP-Pakete von einem Server tragen in diesem Feld den Client SAP.

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.

Dieses Header-Feld enthält eine Prüfsumme, um zu verifizieren, dass die Ende-zu-Ende-Daten nicht durch Router oder Brücken im Netzwerk oder durch die Verarbeitung in einem Endsystem beschädigt wurden. UDP-Prüfsummen schützen Nachrichtendaten vor Manipulationen. Der Prüfsummenwert stellt eine Codierung der Datagrammdaten dar, die zuerst vom Sender und später vom Empfänger berechnet werden. Sollte ein einzelnes Datagramm manipuliert werden oder während der Übertragung beschädigt werden, erkennt das UDP-Protokoll eine Nichtübereinstimmung bei der Prüfsummenberechnung. Der Algorithmus zur Berechnung der Prüfsumme ist der Standard Internet Checksum-Algorithmus.

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?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte