www.wikidata.de-de.nina.az
UDP User Datagram Protocol Familie InternetprotokollfamilieEinsatzgebiet Verbindungslose Ubertragungvon Daten uber das InternetUDP im TCP IP Protokollstapel Anwendung DNS DHCP Transport UDPInternet IP IPv4 IPv6 Netzzugang Ethernet TokenBus TokenRing FDDI Standards RFC 768 1980 1 Das User Datagram Protocol UDP ist ein minimales verbindungsloses Netzwerkprotokoll das zur Transportschicht der Internetprotokollfamilie gehort UDP ermoglicht Anwendungen den Versand von Datagrammen in IP basierten Rechnernetzen Die Entwicklung von UDP begann 1977 als man fur die Ubertragung von Sprache ein einfacheres Protokoll benotigte als das bisherige verbindungsorientierte TCP Es wurde ein Protokoll benotigt das nur fur die Adressierung zustandig war ohne die Datenubertragung zu sichern da dies zu Verzogerungen bei der Sprachubertragung fuhren wurde Inhaltsverzeichnis 1 Funktionsweise 2 Eigenschaften 3 UDP Datagramm 3 1 Pseudo Header 3 1 1 IPv4 3 1 2 IPv6 3 2 Berechnung der Prufsumme 4 UDP Lite 5 Spezifikationen 6 Siehe auch 7 Weblinks 8 EinzelnachweiseFunktionsweise BearbeitenUDP verwendet Ports um versendete Daten dem richtigen Programm auf dem Zielrechner zukommen zu lassen Dazu enthalt jedes Datagramm die Portnummer des Dienstes der die Daten erhalten soll Diese Erweiterung der Host zu Host Ubertragung des Internet Protocols auf eine Prozess zu Prozess Ubertragung wird als Anwendungsmultiplexen und demultiplexen bezeichnet Zusatzlich bietet UDP die Moglichkeit einer Integritatsuberprufung an indem eine Prufsumme mitgesendet wird Dadurch konnen fehlerhaft ubertragene Datagramme erkannt und verworfen werden Eigenschaften BearbeitenUDP ist ein verbindungsloses nicht zuverlassiges und ungesichertes wie auch ungeschutztes Ubertragungsprotokoll Das bedeutet es gibt keine Garantie dass ein einmal gesendetes Paket auch ankommt dass Pakete in der gleichen Reihenfolge ankommen in der sie gesendet wurden oder dass ein Paket nur einmal beim Empfanger eintrifft Es gibt auch keine Gewahr dafur dass die Daten unverfalscht oder unzuganglich fur Dritte beim Empfanger eintreffen Eine Anwendung die UDP nutzt muss daher gegenuber verlorengegangenen und unsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmassnahmen und ggf auch Sicherungsmassnahmen vorsehen Da vor Ubertragungsbeginn nicht erst eine Verbindung aufgebaut werden muss kann ein Partner oder konnen beide Partner schneller mit dem Datenaustausch beginnen Das fallt vor allem bei Anwendungen ins Gewicht bei denen nur kleine Datenmengen ausgetauscht werden mussen Einfache Frage Antwort Protokolle wie DNS das Domain Name System verwenden zur Namensauflosung hauptsachlich UDP um die Netzwerkbelastung gering zu halten und damit den Datendurchsatz zu erhohen Ein Drei Wege Handschlag wie bei TCP dem Transmission Control Protocol fur den Aufbau der Verbindung wurde in diesem Fall unnotigen Overhead erzeugen Daneben bietet die ungesicherte Ubertragung auch den Vorteil von geringen Ubertragungsverzogerungsschwankungen Geht bei einer TCP Verbindung ein Paket verloren wird es automatisch neu angefordert Das braucht Zeit die Ubertragungsdauer kann daher schwanken was fur Multimediaanwendungen schlecht ist Bei VoIP z B kame es zu plotzlichen Aussetzern bzw die Wiedergabepuffer mussten grosser angelegt werden Bei verbindungslosen Kommunikationsdiensten bringen verlorengegangene Pakete dagegen nicht die gesamte Ubertragung ins Stocken sondern vermindern lediglich die Qualitat Die maximale Grosse eines UDP Datagrammes betragt theoretisch 65 535 Bytes da das Length Feld des UDP Headers 16 Bit lang ist und die grosste mit 16 Bit darstellbare Zahl gerade 65 535 216 1 ist Solch grosse Segmente werden jedoch von IP fragmentiert ubertragen In der Praxis unterliegt die maximal mogliche Lange eines UDP Datagramms weiteren Einschrankungen IP loscht Pakete etwa bei Ubertragungsfehlern oder bei Uberlast Datagramme konnen daher fehlen UDP bietet hierfur keine Erkennungs oder Korrekturmechanismen wie etwa TCP Im Falle von mehreren moglichen Routen zum Ziel kann IP bei Bedarf neue Wege wahlen Dadurch ist es in seltenen Fallen moglich dass spater gesendete Daten fruher gesendete uberholen Ausserdem kann ein einmal abgesendetes Datenpaket mehrmals beim Empfanger eintreffen UDP Datagramm BearbeitenNeben den zu ubertragenden 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 gross sind Bit 0 15 16 31Quell Port Ziel PortLange PrufsummeDatenUDP Datagramm Header FormatQuell Port gibt die Port Nummer des sendenden Prozesses an Diese Information wird benotigt damit der Empfanger auf das Paket antworten kann Da UDP verbindungslos ist ist der Quell Port optional und kann auf den Wert 0 gesetzt werden fur den Fall dass keine Antwortpakete erwartet werden und nur Pakete zum Empfanger gesendet werden sollen Ziel Port gibt an welcher Prozess das Paket empfangen soll Langenfeld gibt die Lange des Datagramms bestehend aus den Daten und dem Header in Oktetten an Der kleinstmogliche Wert sind 8 Oktette bzw Byte Das Langenfeld legt eine theoretische Obergrenze von 216 1 65 535 Bytes 8 Byte Header 65 527 Bytes Nutzdaten fest Die tatsachlich verfugbare Lange 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 487 Bytes 65 535 8 Bytes UDP Header 40 Bytes IPv6 Header bei Nutzung von IPv6 beschrankt 2 Prufsummenfeld es kann eine 16 Bit grosse Prufsumme mitgesendet werden Die Prufsumme wird uber den sogenannten Pseudo Header den UDP Header und die Daten gebildet Die Prufsumme ist optional wird aber in der Praxis fast immer benutzt Wird die Prufsumme nicht genutzt wird diese auf 0 gesetzt 1 Datenfeld es enthalt 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 aufgefullt Pseudo Header Bearbeiten nbsp UDP Datagramm SchemaFur die Ubertragung des UDP Paketes ist das Internet Protokoll IP vorgesehen Dieses Protokoll setzt vor das UDP Paket seinerseits einen weiteren Header in dem sich die von IP benotigten Daten befinden Fur die Erzeugung der UDP Prufsumme werden Teile dieses IP Headers in einen sogenannten Pseudo Header ubernommen Er dient nur zur Erzeugung der Prufsumme und wird nicht ubertragen IPv4 Bearbeiten Der Pseudo Header hat bei IPv4 eine Grosse von 12 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 Lange des UDP Datagramms 16 Bit Bit 0 32 64 72 80 96Quell IP Adresse Ziel IP Adresse 00000000 Protokoll ID UDP Datagramm LangeIPv4 Pseudo HeaderIPv6 Bearbeiten Bei IPv6 besitzt der Pseudo Header eine Grosse von 40 Oktetts 320 Bit Er setzt sich dabei folgendermassen zusammen Bit 0 128 256 288 312 320Quell IP Adresse Ziel IP Adresse Upper Layer Packet Length 0 24 Bit Next HeaderIPv6 Pseudo HeaderBerechnung der Prufsumme Bearbeiten Die Berechnung der Prufsumme beim Sender erfolgt nach folgendem Algorithmus Setze das Prufsummenfeld im UDP Header auf 0000 0000 0000 0000 Erzeuge eine vorzeichenlose 32 Bit Zahl fur die Prufsumme initialisiere sie mit Nullen Fasse direkt benachbarte Bytes des UDP Paketes zu 16 Bit Blocken zusammen Falls der letzte Block weniger als 16 Bit hat dann fulle ihn von hinten mit Nullen auf bis er 16 Bit hat Speichere das Ergebnis der Addition aller 16 Bit Blocke mit Ubertrag in der Prufsumme Fasse direkt benachbarte Bytes des Pseudo Headers zu 16 Bit Blocken zusammen Speichere das Ergebnis der Addition dieser 16 Bit Blocke und der bisherigen Prufsumme mit Ubertrag in der Prufsumme Fasse direkt benachbarte Bytes der Prufsumme zu zwei 16 Bit Blocken zusammen addiere diese und speichere das Ergebnis mit Ubertrag in der Prufsumme bis kein Ubertrag mehr bei der Addition entsteht Die signifikantesten 16 Bit der 32 Bit Prufsumme sind nun Nullen Die weniger signifikanten Bits sind die eigentliche Prufsumme speichere diese als vorzeichenlose 16 Bit Zahl Wenn diese 16 Bit Zahl nicht nur aus Einsen besteht dann speichere ihr Einerkomplement im UDP Header sowohl 1111 1111 1111 1111 und das Einerkomplement hiervon 0000 0000 0000 0000 symbolisieren die Zahl 0 In IPv4 UDP wird 0000 0000 0000 0000 auch verwendet um zu signalisieren dass keine Prufsumme berechnet wurde IPv6 UDP Pakete mit der Prufsumme 0000 0000 0000 0000 sind ungultig RFC 6935 3 Der Empfanger pruft zunachst ob das Prufsummenfeld des empfangenen Paketes nur aus Nullen besteht Wenn ja kann er das Paket als richtig empfangen werten da keine Prufsumme vorhanden ist Wenn nicht so wendet er den oben beschriebenen Algorithmus auf das empfangene Paket und den zugehorigen Pseudo Header an lasst den letzten Schritt weg und addiert die selbst berechnete Prufsumme auf die im Prufsummenfeld empfangene was durch die Einerkomplementdarstellung einer Subtraktion entspricht Erhalt der Empfanger 0 als Ergebnis der Addition bzw Subtraktion so wertet er die empfangenen Daten als mit den gesendeten ubereinstimmend UDP Lite BearbeitenDas Lightweight User Datagram Protocol UDP Lite nach RFC 3828 4 ist eine Variation von UDP speziell fur die Ubertragung von Daten bei denen es auf geringe Verzogerung ankommt kleinere Fehler jedoch toleriert werden konnen Das ist etwa bei Liveaudio und videoubertragungen der Fall die oft UDP als Transportprotokoll verwenden Ist ein Bit in einem UDP Datenpaket fehlerhaft so werden alle Daten des Pakets d h bis zu mehreren tausend Bits verworfen Wurde das Paket mit dem fehlerhaften Bit dagegen verwendet ware der Fehler je nach Codec unhorbar bzw unsichtbar Durch die Verwendung von UDP Lite sollte die Uberprufung bestimmter Teile der Datenpakete durch die unteren Schichten effektiv nur fur UDP Lite Pakete unterdruckt werden Auf Ethernet Ebene betrifft dies die CRC Uberprufung der Pakete UDP Lite ist kompatibel zu UDP interpretiert jedoch das Langenfeld als Lange uber die die Prufsumme berechnet wird checksum coverage Ein normales UDP Paket entspricht immer auch den Spezifikationen von UDP Lite Dies ist umgekehrt nicht zwingend so da UDP Lite einen hoheren Freiheitsgrad definiert Die Lange eines UDP bzw UDP Lite Pakets kann mit Hilfe der Information aus dem Internet Protocol Layer berechnet werden die IP Lange ist die Summe aus IP Headergrosse und UDP Paketgrosse Ergibt sich bei UDP Lite eine grossere Lange aus dem IP Header als im Langenfeld des UDP Lite Headers so enthalt das Paket zusatzliche ungeprufte Daten Ein Langenfeld von acht bedeutet zum Beispiel dass die Prufsumme nur uber den Header berechnet wird Mit dem Wert Null wird die Prufsumme uber das gesamte Paket berechnet Die Werte 1 7 sind nicht erlaubt d h der UDP Lite Header ist immer in der Prufsumme enthalten Die Beschrankung der maximalen Paketgrosse aus UDP 65 535 Bytes entfallt Die Prufsumme kann in diesem Fall entweder uber das gesamte Paket oder maximal uber die ersten 65 535 Bytes berechnet werden Spezifikationen BearbeitenRFC 768 User Datagram Protocol 1980 englisch RFC 3828 The Lightweight User Datagram Protocol UDP Lite englisch Siehe auch BearbeitenListe der standardisierten Ports mit allen von der IANA standardisierten und inoffiziellen UDP Ports Stream Control Transmission Protocol SCTP Datagram Congestion Control Protocol DCCP Weblinks BearbeitenBeispielcode fur ein einfaches UDP Client Server Paar unter Unix abc seEinzelnachweise Bearbeiten a b RFC 768 User Datagram Protocol 1980 englisch RFC 5405 Unicast UDP Usage Guidelines englisch RFC 6935 IPv6 and UDP Checksums for Tunneled Packets April 2013 englisch RFC 3828 The Lightweight User Datagram Protocol UDP Lite englisch Abgerufen von https de wikipedia org w index php title User Datagram Protocol amp oldid 235871664