User Datagram Protocol (UDP) ist ein Transportschichtprotokoll in der Internet Protocol Suite. Es bietet einen einfachen und verbindungslosen Kommunikationsdienst zwischen Hosts in einem Netzwerk. UDP sendet Datenpakete, sogenannte Datagramme, ohne eine Verbindung herzustellen oder eine Zustellungsbestätigung sicherzustellen, was es zu einem leichten und effizienten Protokoll für die Datenübertragung macht, bei dem Geschwindigkeit und minimaler Overhead Vorrang vor Zuverlässigkeit haben.
UDP ist ein Protokoll, das es Anwendungen ermöglicht, kurze Nachrichten, sogenannte Datagramme, an andere Hosts in einem IP-Netzwerk zu senden, ohne dass eine vorherige Kommunikation zum Einrichten spezieller Übertragungskanäle oder Datenpfade erforderlich ist.
Ein Beispiel für die Verwendung von UDP sind DNS-Abfragen (Domain Name System). Wenn Ihr Computer einen Domänennamen (wie www.example.com) in eine IP-Adresse auflösen muss, sendet er eine UDP-Anfrage an einen DNS-Server. Der Server antwortet mit einem UDP-Paket, das die entsprechende IP-Adresse enthält. Dieser Prozess ist schnell und effizient und eignet sich ideal für die DNS-Auflösung, bei der Geschwindigkeit entscheidend ist und gelegentlicher Paketverlust akzeptabel ist.
UDP verfügt über mehrere Hauptfunktionen:
- Verbindungslos: UDP stellt vor dem Senden von Daten keine Verbindung her und garantiert keine Zustellung oder Reihenfolge der Pakete.
- Geringer Overhead: Im Vergleich zu TCP ist der Header-Overhead minimal, was die Übertragung kleiner Datenmengen schneller und effizienter macht.
- Keine Überlastungskontrolle: UDP führt keine Überlastungskontrolle durch, was in einigen Szenarien zu einer potenziellen Netzwerküberlastung führen kann.
- Unzuverlässig: Es wird keine Zustellung, Bestätigung oder Fehlerbeseitigung garantiert. Anwendungen, die UDP verwenden, müssen diese Aspekte bei Bedarf auf der Anwendungsebene behandeln.
Die Protokollnummer von UDP im IPv4-Header ist 17 und bei IPv6 ist sie dieselbe. Diese Nummer identifiziert UDP im IP-Paket-Header und wird vom empfangenden Host verwendet, um zu bestimmen, an welches Protokoll die empfangenen Daten weitergeleitet werden sollen, nachdem die IP-Schicht sie verarbeitet hat.