User Datagram Protocol (UDP) is a connectionless transport layer protocol defined in RFC 768 that enables low-overhead delivery of independent messages between applications without establishing connections, acknowledgments, or retransmission guarantees. DNS and DHCP rely on UDP because typical lookups involve single small requests and responses where avoiding connection handshakes and per-connection state reduces latency and server load, though DNS falls back to TCP for truncated responses and zone transfers. Operationally, UDP failures manifest as silent timeouts and intermittent resolution issues rather than explicit connection errors, making packet loss and filtering difficult to diagnose without checking interface counters and server logs.
So funktioniert UDP
UDP verpackt Anwendungsdaten in ein kleines Datagramm und übergibt es an IP. Auf der Transportschicht findet kein Verbindungsaufbau, keine Bestätigung und keine erneute Übertragung statt.
- Anwendung erstellt eine Nachricht: Die Anwendung, beispielsweise ein DNS-Resolver, erstellt eine vollständige Anfrage, die in ein Datagramm passt.
- UDP fügt einen Header hinzu: UDP stellt einen 8-Byte-Header voran, der den Quellport, den Zielport, die Länge und die Prüfsumme enthält.
- IP übermittelt das Datagramm: Das Datagramm wird als IP-Paket übertragen. Jedes Datagramm wird unabhängig geroutet und kann verloren gehen, doppelt übertragen oder in einer anderen Reihenfolge ankommen.
- Der Empfänger leitet die Daten an die Anwendung weiter: Der empfangende Host verwendet den Zielport, beispielsweise 53 für DNS, um die Nutzdaten an den richtigen Dienst weiterzuleiten.
- Die Anwendung behandelt den Datenverlust: Wenn keine Antwort eintrifft, entscheidet die Anwendung, wie weiter vorgegangen werden soll – in der Regel erfolgt ein Timeout, gefolgt von einem erneuten Versuch, möglicherweise bei einem anderen Server.
UDP bietet keine Überlastungskontrolle, keine Reihenfolgegarantie und keine garantierte Zustellung. DNS weicht auf TCP aus, wenn eine Antwort abgeschnitten wird oder wenn eine Übertragung wie beispielsweise ein Zonentransfer eine zuverlässige Zustellung erfordert. DHCP nutzt UDP, da ein Client ohne Adresse keine TCP-Verbindung aufrechterhalten kann.
Häufige UDP-Probleme
Eine Regel, die nur TCP 53 zulässt, ermöglicht Zonentransfers, während normale Lookups in die Zeitüberschreitung gehen. Bei Clients treten zeitweise Fehler bei der Namensauflösung auf, und Paketaufzeichnungen zeigen, dass Anfragen ohne Antwort versendet werden.
Antworten, die größer sind als die vom Client angegebene UDP-Nutzlastgröße, werden abgeschnitten, und der Client muss den Vorgang über TCP wiederholen. Ist TCP-Port 53 blockiert, schlagen große Antworten wie DNSSEC-signierte Einträge fehl, während kleine erfolgreich sind.
Große UDP-Datagramme, die die Pfad-MTU überschreiten, werden fragmentiert, und viele Firewalls und Middleboxen verwerfen Fragmente. Das Symptom ist, dass nur bestimmte Abfragen eine Zeitüberschreitung aufweisen, häufig solche mit großen Antworten.
Firewalls und NAT-Geräte verfolgen UDP-Flows mit kurzen Leerlauf-Timern. Eine langsame Antwort vom Upstream kann erst nach Ablauf der Zuordnung eintreffen und wird dann verworfen, sodass der Client ein Timeout feststellt.
UDP liefert keine Zustellungsrückmeldung, sodass eine Überlastung oder eine volle Schnittstellenwarteschlange sich lediglich in Wiederholungsversuchen der Anwendung und Latenz äußert. Techniker müssen daher die Drop-Zähler der Schnittstellen und die Serverprotokolle überprüfen, anstatt mit Transportfehlern zu rechnen.