TCP Protokoll
10. Verbindunsglose Kommunikation mit UDP
UDP ist ein verbindungsloses Transport-Protokoll und arbeitet auf der 4. Schicht, der Transportschicht, des OSI-Schichtenmodells. Die Entwicklung von UDP begann 1977, als man für die Übertragung von Sprache ein einfacheres Protokoll benötigte als das bisherige verbindungsorientierte TCP.
Es hat damit eine vergleichbare Aufgabe, wie das verbindungsorientierte TCP. Allerdings arbeitet es verbindungslos und damit unsicher. Das bedeutet, der Absender weiß nicht, ob seine verschickten Datenpakete angekommen sind. Während TCP Bestätigungen beim Datenempfang sendet, verzichtet UDP darauf. Das hat den Vorteil, dass der Paket-Header viel kleiner ist.
Eine UDP-Verbindung ist Grundsätzlich simplex, d.h. eine Datenübertragung ist nur in Richtung vom Sender zum Empfänger möglich.
UDP hat nur einen minimalen Protokollmechanismus und garantiert weder die Ablieferung eines Datagrammes beim Zielpartner, noch sind Vorkehrungen gegen eine Duplizierung oder eine Reihenfolgevertauschung getroffen. Der Funktionsumfang des UDP-Protokolls ist daher gegenüber dem TCP-Protokoll eingeschränkt. Er beschränkt sich auf den Transportdienst, das Multiplexen von Verbindungen.
Durch Verwendung von Ports können in einem Rechner mehrere Kommunikationsziele ausgewählt werden. Die Ports werden durch Portnummern identifiziert, wobei diese Nummern teilweise für bestimmte Prozesse reserviert sind.
Anwendungen (Prozesse) können über UDP-Datagramme von maximal 65507 Bytes Länge versenden. Jede Ausgabeoperation eines Prozesses erzeugt ein eigenes UDP-Paket, das in ein eigenes IP-Paket eingebettet wird.
Das UDP-Protokoll stellt keine Mechanismen bereit,
- um zu prüfen, ob ein Datagramm sein Ziel erreicht hat, oder
- um eine Flusskontrolle zu gewährleisten.
In der Regel wird UDP für Anwendungen und Dienste verwendet, die mit Paketverlusten umgehen können oder sich selber um das Verbindungsmanagement kümmern. Typisch sind DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming
Das bleibt der Anwendung überlassen, die UDP verwendet. Der Vorteil von UDP liegt darin, dass es im Gegensatz zum zuverlässigen TCP das Multicasting ermöglicht. Entsprechend einfach ist der Protokollkopf:
Abbildung: Der UDP-Header
Die UDP-Portnummerierung ist prinzipiell unabhängig von der TCP-Port-Nummerierung
De facto werden aber einem Dienst gleiche TCP- und UDP-Portnummern zugeordnet.
Abbildung: Die wichtigsten UDP-Ports