User Datagram Protocol
User Datagram Protocol (UDP) - minimales, verbindungsloses Netzwerkprotokoll der Transportschicht der Internetprotokolle
Beschreibung
Anwendung | DNS | DHCP | … | ||
Transport | UDP | ||||
Internet | IP (IPv4, IPv6) | ||||
Netzzugang | Ethernet | TokenBus | TokenRing | FDDI | … |
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
- Internetprotokollfamilie
- Verbindungslose Übertragungvon Daten über das Internet
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 |