Was ist UDP?

UDP ist ein Transportschicht-Kommunikationsprotokoll und ein sehr verbreitetes Protokoll für Sprach- und Video-Traffic.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Sie können UDP/IP definieren
  • Sie können Anwendungsfälle für UDP beschreiben

Link zum Artikel kopieren

Was ist das User Datagram Protocol (UDP/IP)?

Das User Datagram Protocol, kurz UDP, ist ein Kommunikationsprotokoll, das im Internet für besonders zeitkritische Übertragungen wie die Wiedergabe von Videos oder DNS-Abfragen verwendet wird. Es beschleunigt die Kommunikation, indem es vor der Datenübertragung keine formelle Verbindung herstellt. Dadurch können Daten sehr schnell übertragen werden, aber es kann auch dazu führen, dass Pakete während der Übertragung verloren gehen – und Gelegenheiten für DDoS-Angriffe schaffen.

Wie funktioniert UDP?

Wie alle Netzwerkprotokolle ist auch UDP ein standardisiertes Verfahren zur Datenübertragung zwischen zwei Computern in einem Netzwerk. Im Vergleich zu anderen Protokollen führt UDP diesen Prozess auf einfache Weise durch: Es sendet Pakete (Datenübertragungseinheiten) direkt an einen Zielcomputer, ohne vorher eine Verbindung herzustellen, die Reihenfolge der Pakete anzugeben oder zu überprüfen, ob sie wie vorgesehen angekommen sind. (UDP-Pakete werden als „Datagramme“ bezeichnet.)

UDP ist schneller, aber weniger zuverlässig als TCP, ein anderes gängiges Transportprotokoll. Bei einer TCP-Kommunikation bauen die beiden Computer zunächst eine Verbindung über einen automatisierten Prozess auf, der „Handshake“ genannt wird. Erst wenn dieser Handshake abgeschlossen ist, überträgt ein Computer die Datenpakete an den anderen.

Bei der UDP-Kommunikation findet dieser Prozess nicht statt. Ein Computer kann einfach damit beginnen, Daten an den anderen zu senden:

TCP- vs. UDP-Kommunikation

Außerdem gibt die TCP-Kommunikation die Reihenfolge an, in der die Datenpakete empfangen werden sollen, und bestätigt, dass die Pakete wie vorgesehen ankommen. Wenn ein Paket nicht ankommt – z. B. aufgrund von Staus in zwischengeschalteten Netzwerken – verlangt TCP, dass es erneut gesendet wird. Die UDP-Kommunikation umfasst keine dieser Funktionen.

Diese Unterschiede bringen einige Vorteile mit sich. Da UDP keinen „Handshake“ benötigt und nicht überprüft, ob die Daten ordnungsgemäß ankommen, kann es Daten viel schneller übertragen als TCP.

Diese Geschwindigkeit kommt mit Kompromissen. Wenn ein UDP-Datagramm bei der Übertragung verloren geht, wird es nicht erneut gesendet. Daher müssen Anwendungen, die UDP verwenden, Fehler, Datenverluste und Duplikate tolerieren können.

(Technisch gesehen ist ein solcher Paketverlust weniger ein Fehler von UDP als vielmehr eine Folge des Aufbaus des Internets. Die meisten Netzwerk-Router führen von vornherein keine Paketreihenfolge und Ankunftsbestätigungen durch, da dies eine unzumutbare Menge an zusätzlichem Speicher erfordern würde. TCP ist eine Möglichkeit, diese Lücke zu füllen, wenn eine Anwendung dies erfordert).

Welche Art von Diensten basiert auf UDP?

UDP wird häufig bei zeitkritischer Kommunikation verwendet, bei der es besser ist, gelegentlich Pakete zu verlieren, als zu warten. Sprach- und Video-Traffic werden mit diesem Protokoll gesendet, da sie sowohl zeitkritisch sind als auch ein gewisses Maß an Verlust bewältigen können. Beispielsweise arbeitet VOIP (Voice over IP), das von vielen internetbasierten Telefondiensten verwendet wird, über UDP. Dies liegt daran, dass ein Telefongespräch mit Rauschen einem kristallklaren, aber stark verzögerten vorzuziehen ist.

Dies macht UDP auch zum idealen Protokoll für Online-Gaming. Da sowohl DNS- als auch NTP-Server schnell und effizient sein müssen, arbeiten sie in ähnlicher Weise über UDP.

Wie wird UDP bei DDoS-Angriffen verwendet?

UDP-„Risiken“ wie Paketverluste sind in den meisten Anwendungsfällen kein ernstes Problem. UDP kann jedoch für böswillige Zwecke ausgenutzt werden. Da bei UDP kein Handshake erforderlich ist, können Angreifer einen Zielserver mit UDP-Traffic „überfluten“, ohne zuvor die Erlaubnis des Servers zur Kommunikationsaufnahme einzuholen.

Ein typischer UDP-Flood-Angriff sendet eine große Anzahl von UDP-Datagrammen an zufällige Ports auf dem Zielcomputer. Dadurch wird das Ziel gezwungen, mit einer ebenso großen Anzahl von ICMP-Paketen zu antworten. (Die ICMP-Pakete zeigen an, dass diese Ports nicht erreichbar waren.) Die für die Beantwortung jedes betrügerischen Datagramms erforderlichen Rechenressourcen können das Ziel erschöpfen, was zu einem Denial-of-Service für legitimen Traffic führt. (Mehr dazu erfahren Sie in unserem Artikel über UDP-Flood-Angriffe.) Unternehmen können sich gegen UDP-Flood-Angriffe mit einer Reihe von Methoden schützen. Eine dieser Methoden besteht darin, die Antwortrate von ICMP-Paketen zu begrenzen, obwohl bei diesem Ansatz auch legitime Pakete herausgefiltert werden können. Eine andere Methode ist der Empfang und die Beantwortung von UDP-Traffic über ein zwischengeschaltetes Netzwerk aus vielen verteilten Rechenzentren. So wird verhindert, dass ein einzelner Ursprungsserver mit betrügerischen Anfragen überschwemmt wird. Erfahren Sie mehr darüber, wie Cloudflare diese Strategie einsetzt, um Unternehmen bei der Bekämpfung von DDoS-Angriffen zu unterstützen.