Was ist UDP (User Datagram Protocol)?
Verbindungsloses Protokoll der Transportschicht. Sein Header ist 8 Byte lang und enthält nur Portnummern, eine Länge und eine Prüfsumme. Es gibt keinen Verbindungsaufbau, keine Bestätigungen oder Sendewiederholung und keine Reihenfolgesicherung, daher ist die Verzögerung gering. Verwendet wird es unter anderem für DNS-Abfragen, Sprach- und Videoanrufe, Onlinespiele, DHCP und QUIC.
Japanische Bezeichnung: UDP
„UDP (User Datagram Protocol)“ kommt in 4 Übungsfragen aus 2 Themen vor, z. B. Grundlagen der Computernetzwerke, Grundlagen der Webtechnologien.
Fachgebiet: Grundlagen der Computernetzwerke
Header und Datagramme
Der UDP-Header besteht aus vier 16-Bit-Feldern – der Portnummer der Quelle, der Portnummer des Ziels, der Länge und der Prüfsumme – mit insgesamt 8 Byte. Jeder Datenblock, den die Anwendung auf einmal sendet, wird zu einem Datagramm, und der Empfänger erhält ihn mit denselben Grenzen, anders als beim Bytestrom von TCP. Die Prüfsumme ist bei IPv4 optional, bei IPv6 aber Pflicht. Große Datagramme werden auf IP-Ebene fragmentiert und gehen leichter verloren, daher hält man sie normalerweise so klein, dass sie in die MTU passen.
Wann UDP die richtige Wahl ist
Bei Telefonaten und Live-Streaming sind verspätet eintreffende Daten nutzlos, und das Warten auf Sendewiederholungen lässt Ton und Bild stocken. Bei Kommunikation, die aus einer einzigen Frage und Antwort besteht, etwa DNS-Abfragen, verkürzt der Verzicht auf den Verbindungsaufbau die Wartezeit. UDP eignet sich außerdem für Broadcast und Multicast an viele Empfänger, weshalb auch DHCP, das von Geräten ohne IP-Adresse genutzt wird, über UDP läuft. Anwendungen, die Zuverlässigkeit brauchen, bauen Sendewiederholung und Reihenfolgesicherung selbst auf UDP auf, wie es QUIC tut.
Worauf zu achten ist
UDP-Datagramme können verloren gehen, dupliziert werden oder in anderer Reihenfolge ankommen, sodass die Anwendung damit umgehen muss, etwa indem sie ihre Daten nummeriert. UDP selbst hat keine Überlastkontrolle; eine Anwendung, die viele Daten sendet, muss ihr Sendetempo selbst regeln. NAT-Zuordnungen verschwinden nach einer Weile ohne Verkehr, daher senden Anwendungen manchmal kleine Keepalive-Pakete, um sie offen zu halten. Weil es keinen Handshake gibt und sich die Absenderadresse leicht fälschen lässt, werden UDP-Dienste wie DNS, die auf kleine Anfragen große Antworten zurückgeben, für Reflexions- und Verstärkungs-DDoS-Angriffe missbraucht.
Häufige Fragen
Warum verwendet man UDP, obwohl es unzuverlässig ist?
Es wartet weder auf einen Verbindungsaufbau noch auf Sendewiederholungen, verursacht daher wenig Verzögerung und hat einen kleinen Header. Das passt zu Telefonaten und Spielen, bei denen geringe Verzögerung wichtiger ist als ein paar fehlende Daten, und zu DNS-Abfragen, die mit einem Umlauf erledigt sind. Wird Zuverlässigkeit gebraucht, implementieren Protokolle wie QUIC die Sendewiederholung auf UDP.
Kommen mit UDP gesendete Daten in der gesendeten Reihenfolge an?
Das ist nicht garantiert. Datagramme können etwa über verschiedene Wege in anderer Reihenfolge ankommen, verloren gehen oder doppelt eintreffen. Ist die Reihenfolge wichtig, nummeriert die Anwendung ihre Daten und sortiert sie neu.