User Datagram Protocol
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.[1]
- 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.[2]
- 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
Sicherheit
Dokumentation
RFC
RFC | Titel |
---|---|
768 | User Datagram Protocol |
3828 | The Lightweight User Datagram Protocol (UDP-Lite) |
Links
Projekt
Weblinks
- Liste der standardisierten Ports mit allen von der IANA standardisierten und inoffiziellen UDP-Ports
- Stream Control Transmission Protocol (SCTP)
- Datagram Congestion Control Protocol (DCCP)
- Beispielcode für ein einfaches UDP-Client-Server-Paar unter Unix bei abc.se
- ↑ RFC 5405 – Unicast UDP Usage Guidelines.
- ↑ RFC 768 – User Datagram Protocol. (englisch, PDF: tools.ietf.org).