UDP (User Datagram Protocol) bietet einen verbindungslosen und unzuverlässigen Transportmechanismus für die Datenübertragung über IP-Netzwerke. So funktioniert UDP:
UDP arbeitet auf der Transportschicht des TCP/IP-Protokollstapels und wird von Anwendungen verwendet, die keine garantierte Datenübermittlung oder strikte Reihenfolge der Pakete erfordern. Wenn eine Anwendung Daten über UDP senden möchte, kapselt sie die Daten in ein UDP-Datagramm. Jedes UDP-Datagramm enthält Header mit Quell- und Zielportnummern sowie eine Prüfsumme zur Fehlererkennung (eine Fehlerkorrektur ist jedoch nicht vorgesehen).
Sobald das UDP-Datagramm erstellt ist, wird es an die Netzwerkschicht (IP-Schicht) übergeben, wo es Teil eines IP-Pakets wird. Das IP-Paket enthält zusätzliche Header mit Quell- und Ziel-IP-Adressen, sodass Router es über verschiedene Netzwerke an sein Ziel weiterleiten können.
Bei der Ankunft am Zielhost wird das IP-Paket an die Transportschicht weitergeleitet, wo es von UDP verarbeitet wird. UDP extrahiert die Datennutzlast aus dem IP-Paket basierend auf der im UDP-Header angegebenen Zielportnummer. Im Gegensatz zu TCP stellt UDP vor der Datenübertragung keine Verbindung her, noch behält es den Sitzungsstatus bei und gewährleistet keine zuverlässige Zustellung. Stattdessen übermittelt UDP die Daten einfach an die angegebene Anwendung oder den angegebenen Dienst, der auf dem Zielhost ausgeführt wird.
Ein Datagramm bezieht sich auf eine unabhängige, in sich geschlossene Dateneinheit, die über ein Netzwerk übertragen wird.
UDP, ein Datagramm besteht aus dem UDP-Header, gefolgt von der Datennutzlast. Jedes Datagramm wird als separate Einheit behandelt und unabhängig von anderen Datagrammen übertragen. Das bedeutet, dass UDP-Datagramme möglicherweise in der falschen Reihenfolge ankommen oder verloren gehen, ohne dass UDP Mechanismen zur erneuten Übertragung oder Sequenzierung bereitstellt. Anwendungen, die UDP nutzen, müssen diese Bedingungen verarbeiten, wenn dies für ihren spezifischen Anwendungsfall erforderlich ist.
Ein Beispiel für ein UDP-basiertes Protokoll ist DNS (Domain Name System). DNS verwendet UDP für die schnelle und einfache Übertragung von DNS-Anfragen und -Antworten zwischen Clients (Resolvern) und DNS-Servern. DNS-Abfragen, die nach Zuordnungen von Domänennamen zu IP-Adressen fragen, sind in der Regel klein und profitieren vom geringen Overhead und den schnellen Übertragungseigenschaften von UDP. DNS-Antworten, die die angeforderten Zuordnungen bereitstellen, werden ebenfalls über UDP gesendet. DNS-Server überwachen den UDP-Port 53 auf eingehende Anfragen und antworten mit UDP-Datagrammen, die die angeforderten Informationen enthalten. DNS nutzt UDP hauptsächlich wegen seiner Effizienz bei der Auflösung von Domänennamen und IP-Adressen ohne den Aufwand für den Aufbau und die Aufrechterhaltung von Verbindungen.