Rechnernetze (7) : User Datagram Protocol (UDP)

avatar

UDP (User Datagram Protocol) ist ein einfaches Transportprotokoll. UDP ist ein verbindungsloser Dienst, d. h. ein Senderprozess kann direkt UDP-Segmente verschicken, ohne vorher eine Verbindung mit dem Empfängerprozess aufgebaut zu haben. Dies entspricht der Briefzustellung per Post, bei der ein Absender auch einen Brief verschicken kann, ohne dass der Empfänger etwas davon weiß. UDP realisiert einen unzuverlässigen Transportdienst, d. h

  1. Nachrichten können verloren gehen

  2. Nachrichten, die in einer Reihenfolge vom Senderprozess an den Empfängerprozess gesendet werden, können in einer anderen Reihenfolge beim Empfängerprozess abgeliefert werden

UDP macht keine Aussage über die Übertragungsverzögerung bei der Nachrichtenübertragung. UDP wird bevorzugt für einmalige Abfragen und Anwendungen in Client/Server-Umgebungen benutzt, in denen die Schnelligkeit der Zustellung wichtiger ist als die Genauigkeit, z. B. die Übertragung von Video.
Ein Beispiel für die Anwendung von UDP ist das Senden von DNS-Anfragen. Nach der DNS-Spezifikation kann DNS auch über TCP laufen, aber es wird fast immer über UDP realisiert, da eine DNS-Anfrage relativ klein ist und in ein UDP Segment passt. So kann ein DNS-Server jede hereinkommende Anfrage gleich beantworten und sofort wieder vergessen. Wenn eine DNS-Anfrage erfolglos ist, kann der DNS-Client die Anfrage bei einem anderen Name-Server versuchen oder die anfragende Anwendung informieren, dass der Server nicht erreichbar ist.

Die folgende Abbildung 1 zeigt eine typische Client-Server-Anwendung, die UDP zur Kommunikation verwendet. Ein Anwendungsprozess erzeugt zuerst einen Dienstzugangspunkt zum UDP-Dienst. Dies ist üblicherweise ein Socket vom Typ Datagramm-Socket, der dem Anwendungsprozess eine eindeutige IP-Adresse und Portnummer zuordnet. Der Anwendungsprozess kann nun von dem Socket Nachrichten empfangen oder verschicken. Bei Ende des Anwendungsprozesses wird der Socket wieder freigegeben.

Abbildung 1 : Client-Server-Anwendung

rn7a.png

UDP-Segmente bestehen aus einem Header mit vier Feldern und einem Datenfeld mit den Anwendungsdaten. Im Header (Abbildung 2) stehen die Source-Portnummer (2 Byte) und die Destination-Portnummer (2 Byte) zur Identifikation von Sender- und Empfängerprozess. Hinzu kommen die Länge des Segmentes (inklusive Header) in Byte (2 Byte) und eine Prüfsumme (checksum), die zur Fehlererkennung bei fehlerhafter Übertragung des Headers bzw. des Datenfeldes dient.

Abbildung 2 : UDP-Header

rn7b.png

UDP führt eine simple Fehlererkennung ein, da nicht alle Vermittlungsprotokolle eine Fehlererkennung oder -korrektur aufweisen. Falls UDP einen Fehler erkennt, dann wird das Segment entweder verworfen oder mit einer Warnung an den Anwendungsprozess weitergereicht. Zur Fehlererkennung speichert UDP eine Prüfsumme (2 Byte) im Header des UDP-Segments. Die UDP-Prüfsumme wird berechnet als 1er-Komplement der 1er-Komplement-Summe aller 16-Bit-Wörter des Segments.
Das UDP-Protokoll auf dem Empfänger-Host wird dann die gleiche Operation auf dem Segment durchführen, aber inklusive der Prüfsumme; hier sollte dann das Resultat 1111111111111111 herauskommen. Ist dagegen mindestens ein Bit gleich 0, dann ist ein Übertragungsfehler aufgetreten.

Quelle
https://www.patrick-canterino.de/artikel/pdf/tcp-udp-handout.pdf [letzter Zugriff: 20.12.2019 17:48]



0
0
0.000
1 comments