User Datagram Protocol

Aus Foxwiki
Subpages:

User Datagram Protocol (UDP) - minimales, verbindungsloses [Netzwerkprotokoll]] der Transportschicht der Internetprotokolle

Beschreibung

UDP ermöglicht Anwendungssoftware Anwendungen den Versand von Datagramm en in Internet Protocol IP-basierten Rechnernetzen

  • Die Entwicklung von UDP begann 1977, als man für die IP-Telefonie|Übertragung von Sprache ein einfacheres Protokoll benötigte als das bisherige verbindungsorientierte Transmission Control Protocol TCP.
  • Es wurde ein Protokoll benötigt, das nur für die Adressierung zuständig war, ohne die Datenübertragung zu sichern, da dies zu Verzögerungen bei der Sprachübertragung führen würde.

Funktionsweise

UDP verwendet Port (Protokoll)Ports, um versendete Daten dem richtigen Computerprogramm Programm auf dem Zielrechner zukommen zu lassen.
  • Dazu enthält jedes Datagramm die Port Nummer des Dienstes, der die Daten erhalten soll.
  • Diese Erweiterung der Host-zu-Host-Übertragung des Internets Protokoll auf eine Prozess-zu-Prozess-Übertragung wird als Anwendungsmultiplexen und -demultiplexen bezeichnet.
  • Zusätzlich bietet UDP die Möglichkeit einer Integritätsüberprüfung an, indem eine Prüfsumme mitgesendet wird.
  • Dadurch können fehlerhaft übertragene Datagramme erkannt und verworfen werden.

Eigenschaften

UDP ist eine Nachrichtenverbindung verbindungsloses
  • Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Datenpaket|Paket auch ankommt, dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden, oder dass ein Paket nur einmal beim Empfänger eintrifft.
  • Es gibt auch keine Gewähr dafür, dass die Daten unverfälscht oder unzugänglich für Dritte beim Empfänger eintreffen.
  • Eine Anwendung, die UDP nutzt, muss daher gegenüber verloren gegangenen und unsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmaßnahmen und ggfs. auch Sicherungsmaßnahmen vorsehen.
  • Daneben bietet die ungesicherte Übertragung auch den Vorteil von geringen Übertragungsverzögerungsschwankungen: Geht bei einer TCP-Verbindung ein Paket verloren, wird es automatisch neu angefordert.
  • Das braucht Zeit, die Übertragungsdauer kann daher schwanken, was für Multimediaanwendungen schlecht ist.
  • Bei IP-Telefonie VoIP z. B.  käme es zu plötzlichen Aussetzern, beziehungsweise die Wiedergabepuffer müssten größer angelegt werden.
  • Bei verbindungslosen Kommunikationsdiensten bringen verloren gegangene Pakete dagegen nicht die gesamte Übertragung ins Stocken, sondern vermindern lediglich die Qualität.
  • Die maximale Größe eines UDP-Datagrammes beträgt theoretisch 65.535 Bytes, da das Length-Feld des UDP-Headers 16 Bit lang ist und die größte mit 16 Bit darstellbare Zahl gerade 65.535 (= 216−1) ist.
  • Solch große Segmente werden jedoch von IP fragmentiert übertragen.
  • In der Praxis unterliegt die maximal mögliche Länge eines UDP-Datagramms #Längenfeld|weiteren Einschränkungen.
  • UDP ermöglicht Anwendungssoftware Anwendungen den Versand von Datagramm en in Internet Protocol IP-basierten Rechnernetz en.
  • Die Entwicklung von UDP begann 1977, als man für die IP-Telefonie|Übertragung von Sprache ein einfacheres Protokoll benötigte als das bisherige verbindungsorientierte Transmission Control Protocol TCP.
  • Es wurde ein Protokoll benötigt, das nur für die Adressierung zuständig war, ohne die Datenübertragung zu sichern, da dies zu Verzögerungen bei der Sprachübertragung führen würde.

Eigenschaften

UDP ist eine Nachrichtenverbindung verbindungsloses
  • Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Datenpaket|Paket auch ankommt, dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden, oder dass ein Paket nur einmal beim Empfänger eintrifft.
  • Es gibt auch keine Gewähr dafür, dass die Daten unverfälscht oder unzugänglich für Dritte beim Empfänger eintreffen.
  • Eine Anwendung, die UDP nutzt, muss daher gegenüber verloren gegangenen und unsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmaßnahmen und ggfs.
  • auch Sicherungsmaßnahmen vorsehen.
  • Daneben bietet die ungesicherte Übertragung auch den Vorteil von geringen Übertragungsverzögerungsschwankungen: Geht bei einer TCP-Verbindung ein Paket verloren, wird es automatisch neu angefordert.
  • Das braucht Zeit, die Übertragungsdauer kann daher schwanken, was für Multimediaanwendungen schlecht ist.
  • Bei IP-Telefonie VoIP z. B. 
  • käme es zu plötzlichen Aussetzern, beziehungsweise die Wiedergabepuffer müssten größer angelegt werden.
  • Bei verbindungslosen Kommunikationsdiensten bringen verloren gegangene Pakete dagegen nicht die gesamte Übertragung ins Stocken, sondern vermindern lediglich die Qualität.
  • Die maximale Größe eines UDP-Datagrammes beträgt theoretisch 65.535 Bytes, da das Length-Feld des UDP-Headers 16 Bit lang ist und die größte mit 16 Bit darstellbare Zahl gerade 65.535 (= 216−1) ist.
  • Solch große Segmente werden jedoch von IP fragmentiert übertragen.
  • In der Praxis unterliegt die maximal mögliche Länge eines UDP-Datagramms #Längenfeld|weiteren Einschränkungen.

UDP-Datagramm

  • Neben den zu übertragenden Nutzdaten werden weitere Informationen mitgesendet, die sich immer am Anfang einer UDP-Botschaft befinden, im sogenannten Header.
  • Der UDP-Header besteht aus vier Datenfeldern, die alle jeweils 16 Bit groß sind:
Bit 0 15 16 31
Quell-Port Ziel-Port
Länge Prüfsumme
Daten
UDP-Datagramm Header Format
Quell-Port
gibt die Port-Nummer des sendenden Prozesses an.
  • Diese Information wird benötigt, damit der Empfänger auf das Paket antworten kann.
  • Da UDP verbindungslos ist, ist der Quell-Port optional und kann auf den Wert „0“ gesetzt werden (für den Fall, dass keine Antwortpakete erwartet werden und nur Pakete zum Empfänger gesendet werden sollen).
Ziel-Port
gibt an, welcher Prozess das Paket empfangen soll.
Längenfeld
gibt die Länge des Datagramms, bestehend aus den Daten und dem Header, in Oktett (Informatik)|Oktetten an.
  • Der kleinstmögliche Wert sind 8 Oktette (beziehungsweise Byte).
  • Das Längenfeld legt eine theoretische Obergrenze von 216−1 = 65.535 Bytes (8 Byte Header + 65.527 Bytes Nutzdaten) fest.
  • Die tatsächlich verfügbare Länge der Nutzdaten ist bedingt durch das zugrundeliegende IP-Protokoll jedoch auf 65.507 Bytes (65.535 – 8 Byte UDP Header – 20 Byte IP Header) bei Verwendung von IPv4 und 65.527 Bytes bei Nutzung von IPv6 beschränkt.
Prüfsummenfeld
es kann eine 16 Bit große Prüfsumme mitgesendet werden.
  • Die Prüfsumme wird über den sogenannten Pseudo-Header, den UDP-Header und die Daten gebildet.
  • Die Prüfsumme ist optional, wird aber in der Praxis fast immer benutzt, falls nicht, wird diese auf „0“ gesetzt.
Datenfeld
es enthält die eigentlichen Nutzdaten, auch Payload genannt.
  • Das Feld ist optional und kann theoretisch auch komplett fehlen, was in der Praxis aber eigentlich nie vorkommt.
Das Datenfeld besteht immer aus einer geraden Anzahl Oktette.
  • Am Ende freibleibende Oktette werden mit Nullen aufgefüllt.

Pseudo-Header

Datei:Udp-package-scheme.svg|UDP-Datagramm-Schema|alternativtext=|rechts|332x332px

  • Für die Übertragung des UDP-Paketes ist das Internet Protocol|Internet-Protokoll (IP) vorgesehen.
  • Dieses Protokoll setzt vor das UDP-Paket seinerseits einen weiteren Header, in dem sich die von IP benötigten Daten befinden:
  • Für die Erzeugung der UDP-Prüfsumme werden Teile dieses IP-Headers in einen sogenannten „Pseudo-Header“ übernommen.
  • Er dient nur zur Erzeugung der Prüfsumme und wird nicht übertragen.

IPv4

Der Pseudo-Header hat bei IPv4 eine Größe von 12 Oktett (Informatik)Oktetts (96 Bit) und setzt sich zusammen aus Quell-IP-Adresse (32 Bit), Ziel-IP-Adresse (32 Bit), 8 Bit Leerfeld, 8 Bit Protokoll-ID (UDP hat die ID 17) und der Länge des UDP-Datagramms (16 Bit):

Bit 0 32 64 72 80 96
Quell-IP-Adresse Ziel-IP-Adresse 00000000 Protokoll-ID UDP-Datagramm-Länge
IPv4 Pseudo-Header

IPv6

Bei IPv6 besitzt der Pseudo-Header eine Größe von 40 Oktetts (320 Bit).

  • Er setzt sich dabei folgendermaßen zusammen:
Bit 0 128 256 288 312 320
Quell-IP-Adresse Ziel-IP-Adresse Upper-Layer Packet Length 0
(24 Bit)
Next Header
IPv6 Pseudo-Header


Anhang

Siehe auch

Dokumentation

RFC
RFC Titel
768 User Datagram Protocol
3828 The Lightweight User Datagram Protocol (UDP-Lite)
5405 Unicast UDP Usage Guidelines

Links

Weblinks
  1. https://de.wikipedia.org/wiki/User_Datagram_Protocol