Direkt zum Inhalt

Meinels Web-Tutorial: UDP oder wenn es mal schnell gehen muss

Für den normalen Datenverkehr im Netz ist Sorgfalt oberstes Gebot. Skype und Streaminganwendungen sind dafür aber zu ungeduldig. Dann schlägt die Stunde des UDP.
Highspeed im Internet verlangt nach UDP

Das Transmission Control Protocol (TCP) gehört zum Kernstück des Internets und stellt über seine Funktionalitäten bereit, dass Daten über einen verbindungsorientierten Dienst immer sicher und vollständig dort ankommen, wo sie empfangen werden sollen. TCP spielt damit eine ganz zentrale Rolle unter den Bestandteilen der Internetprotokollsuite. Für eine Reihe spezieller Anwendungen allerdings kostet der Datentransfer mit TCP zu viel Performance. Das gilt für Anwendungen, bei denen der Datenaustausch sehr schnell gehen soll – so schnell, dass man dafür auch den einen oder anderen Fehler in Kauf nimmt, was die garantiert korrekte und vollständige Übertragung anbelangt. Dann kommt statt TCP das »User Datagram Protocol« (UDP) ins Spiel.

Bei der Vorstellung von TCP haben wir gesehen, dass die Datenübertragung per TCP recht aufwändig ist. Um einen sicheren Datenaustausch zu ermöglichen, muss TCP erst eine Verbindung und die digitalen Anlegestellen in den Endsystemen aufbauen sowie einen Quittierungsmechanismus einrichten, um mit Übertragungsfehlern und Engpässen bei den Ein- und Ausgangspuffern von Sender und Empfänger umgehen und die Last auf der Internetschicht zwischen den Systemen regulieren zu können. Für bestimmte Datentransfers ist dieser Aufwand zu hoch. Gerade wenn es um sehr kurze Nachrichten geht oder um Informationen, bei denen Datenpaketverluste wie beim Streaming verkraftbar sind, braucht es einfachere und schnellere Verfahren.

UDP ist angesiedelt auf der Transportschicht und bietet ein solches vereinfachtes Verfahren. Statt den aufwändigen Verbindungsauf- und abbau zu durchlaufen, mit Handshakes und Verkehrskontrollen, definiert das Protokoll lediglich die Anlegestellen in den Endsystemen, also die Ports, die angesteuert werden sollen. So wird ein verbindungsloser Transferdienst bereitgestellt, bei dem keine Quittierung erfolgt. UDP setzt also auf den Protokollen der Internetschicht (IP) auf und bietet als zusätzliche Funktionalität bloß vordefinierte UDP-Ports, die gekapselt in IP-Paketen versendet werden. Von den Anwendungen auf der darüber liegenden Anwendungsschicht können vermittels von UDP-Nachrichten vor allem einfache Frage/Antwort-Interaktionen realisiert werden. Auch bei UDP gibt es festgelegte Portnummern wie beispielsweise für das Datenübertragungsprotokoll TFTP (Port 69), den Domain Name Service (Port 53) und viele mehr. Und wie auch mit TCP kann ein Rechner über UDP-Multiplexing mehrere Anwendungen und ihre Ports ansteuern. Weiterhin können TCP-Verbindungen und UDP-Interaktionen gleichzeitig und parallel laufen und Daten über das jeweils passende Protokoll komplementär übertragen. Dabei muss nur darauf geachtet werden, dass die Portnummern identisch sein müssen, wenn beide Protokolle bei einer gemeinsamen Datenübertragung im Spiel sind.

Auf Grund seiner simplen Funktionalität sind UDP-Header und UDP-Datagramm entsprechend simpel aufgebaut. Über maximal 64 Bit werden Quell-Port, Empfänger-Port, Datagrammlänge und Prüfsumme definiert. Der Rest ist Nutzlast.

Das schlanke UDP-Protokoll wird von vielen Diensten benutzt, um den reibungslosen und schnellen Datenverkehr im Alltag zu ermöglichen. Zu den wichtigsten Anwendungen gehört das »Dynamic Host Configuration Protocol« (DHCP), welches neue Rechner in Netzwerken mit IP-Adressen versorgt; außerdem der »Domain Name Service« (DNS) und das »Network Time Protocol« (NTP), mit dem Rechner im Netzwerk ihre Uhren vergleichen. Weiterhin kommt UDP bei Übertragungen zum Einsatz, wo Paketverluste verkraftbar sind, weil andere Mechanismen für eine Korrektur sorgen, oder weil, wie beim Streaming von Videos oder Audiodaten (zum Beispiel bei Voice-over-IP), einzelne Paketverluste bei der großen übertragenen Datenmenge kaum ins Gewicht fallen. Bei Paketverlusten kommt es nur zu ganz geringfügigen Beeinträchtigung von Bild oder Ton und auch ohne Segmentierung kann die Nachricht verstanden oder rekonstruiert werden.

Ein Nachteil bei der Nutzung von UDP besteht darin, dass Daten in der Regel nicht verschlüsselt übertragen werden. Denn ohne Verbindungsaufbau müsste jedes einzelne Paket neu verschlüsselt werden, und das widerspricht dem angestrebten Effizienzziel. Andererseits gibt es bereits heute erste Überlegungen, wie eine effiziente Verschlüsselung auch mit UDP gelingen kann, Kandidaten dafür werden unter den Namen »SRTP-« und »DTLS-Protokoll« untersucht.

Kurz: UDP wird immer dann genutzt, wenn ein Verbindungsaufbau sich nicht lohnt und die Abwägung zwischen Geschwindigkeit und Datenqualität zum Ersteren tendiert, weil die Datenmenge gering oder der Verlust verkraftbar ist.

Schreiben Sie uns!

Beitrag schreiben

Wir freuen uns über Ihre Beiträge zu unseren Artikeln und wünschen Ihnen viel Spaß beim Gedankenaustausch auf unseren Seiten! Bitte beachten Sie dabei unsere Kommentarrichtlinien.

Tragen Sie bitte nur Relevantes zum Thema des jeweiligen Artikels vor, und wahren Sie einen respektvollen Umgangston. Die Redaktion behält sich vor, Zuschriften nicht zu veröffentlichen und Ihre Kommentare redaktionell zu bearbeiten. Die Zuschriften können daher leider nicht immer sofort veröffentlicht werden. Bitte geben Sie einen Namen an und Ihren Zuschriften stets eine aussagekräftige Überschrift, damit bei Onlinediskussionen andere Teilnehmende sich leichter auf Ihre Beiträge beziehen können. Ausgewählte Zuschriften können ohne separate Rücksprache auch in unseren gedruckten und digitalen Magazinen veröffentlicht werden. Vielen Dank!

Partnerinhalte

Bitte erlauben Sie Javascript, um die volle Funktionalität von Spektrum.de zu erhalten.