logo

UDP-Protokoll

In Computernetzwerken steht UDP für User Datagram Protocol. David P. Reed entwickelte 1980 das UDP-Protokoll. Es ist in RFC 768 definiert und Teil des TCP/IP-Protokolls, also ein Standardprotokoll über das Internet. Das UDP-Protokoll ermöglicht es Computeranwendungen, Nachrichten in Form von Datagrammen von einem Computer an einen anderen Computer über das Internet Protocol (IP)-Netzwerk zu senden. Das UDP ist ein alternatives Kommunikationsprotokoll zum TCP-Protokoll (Transmission Control Protocol). Wie TCP stellt UDP eine Reihe von Regeln bereit, die regeln, wie die Daten über das Internet ausgetauscht werden sollen. Das UDP funktioniert, indem es die Daten in das Paket einkapselt und dem Paket seine eigenen Header-Informationen bereitstellt. Anschließend wird dieses UDP-Paket in das IP-Paket eingekapselt und an sein Ziel gesendet. Beide TCP und UDP Protokolle senden die Daten über das Internet-Protokoll-Netzwerk, daher wird es auch als bezeichnet TCP/IP und UDP/IP. Es gibt viele Unterschiede zwischen diesen beiden Protokollen. UDP ermöglicht dem Prozess die Verarbeitung der Kommunikation, während TCP die Host-zu-Host-Kommunikation ermöglicht. Da UDP die Nachrichten in Form von Datagrammen sendet, gilt es als die beste Kommunikationsart. TCP versendet die einzelnen Pakete und ist somit ein zuverlässiges Transportmedium. Ein weiterer Unterschied besteht darin, dass TCP ein verbindungsorientiertes Protokoll ist, während UDP ein verbindungsloses Protokoll ist, da für die Datenübertragung keine virtuelle Verbindung erforderlich ist.

UDP stellt außerdem eine unterschiedliche Portnummer bereit, um verschiedene Benutzeranfragen zu unterscheiden, und bietet außerdem die Prüfsummenfunktion, um zu überprüfen, ob die vollständigen Daten angekommen sind oder nicht. Die IP-Schicht stellt diese beiden Dienste nicht bereit.

Funktionen des UDP-Protokolls

Im Folgenden sind die Merkmale des UDP-Protokolls aufgeführt:

Rekha-Indianer
    Transportschichtprotokoll

UDP ist das einfachste Kommunikationsprotokoll der Transportschicht. Es enthält ein Minimum an Kommunikationsmechanismen. Es gilt als unzuverlässiges Protokoll und basiert auf Best-Effort-Lieferdiensten. UDP bietet keinen Bestätigungsmechanismus, was bedeutet, dass der Empfänger keine Bestätigung für das empfangene Paket sendet und der Sender auch nicht auf die Bestätigung für das von ihm gesendete Paket wartet.

    Verbindungslos

Das UDP ist ein verbindungsloses Protokoll, da es keinen virtuellen Pfad zur Datenübertragung erstellt. Der virtuelle Pfad wird nicht verwendet, sodass Pakete auf unterschiedlichen Pfaden zwischen Sender und Empfänger gesendet werden, was zum Verlust von Paketen oder zum Empfang von Paketen in der falschen Reihenfolge führt.

Java-Array zum Auflisten

Eine geordnete Zustellung der Daten ist nicht garantiert.

Im Fall von UDP werden die Datagramme in einer bestimmten Reihenfolge gesendet und in derselben Reihenfolge empfangen. Dies kann nicht garantiert werden, da die Datagramme nicht nummeriert sind.

    Häfen

Das UDP-Protokoll verwendet unterschiedliche Portnummern, damit die Daten an das richtige Ziel gesendet werden können. Die Portnummern sind zwischen 0 und 1023 definiert.

    Schnellere Übertragung

UDP ermöglicht eine schnellere Übertragung, da es sich um ein verbindungsloses Protokoll handelt, d. h. es ist kein virtueller Pfad zur Übertragung der Daten erforderlich. Es besteht jedoch die Möglichkeit, dass das einzelne Paket verloren geht, was sich auf die Übertragungsqualität auswirkt. Geht das Paket hingegen in der TCP-Verbindung verloren, wird es erneut gesendet, sodass die Zustellung der Datenpakete gewährleistet ist.

    Bestätigungsmechanismus

Das UDP verfügt über einen Bestätigungsmechanismus, d. h. es findet kein Handshaking zwischen dem UDP-Sender und dem UDP-Empfänger statt. Wenn die Nachricht in TCP gesendet wird, bestätigt der Empfänger, dass ich bereit bin, und der Absender sendet die Daten. Bei TCP findet der Handshake zwischen Sender und Empfänger statt, während es bei UDP keinen Handshake zwischen Sender und Empfänger gibt.

    Segmente werden unabhängig voneinander behandelt.

Jedes UDP-Segment wird individuell von den anderen behandelt, da jedes Segment einen anderen Weg nimmt, um das Ziel zu erreichen. Die UDP-Segmente können verloren gehen oder nicht in der richtigen Reihenfolge zugestellt werden, um das Ziel zu erreichen, da keine Verbindung zwischen dem Sender und dem Empfänger aufgebaut wird.

    Staatenlos

Es handelt sich um ein zustandsloses Protokoll, was bedeutet, dass der Absender keine Bestätigung für das gesendete Paket erhält.

Java-Vergleich

Warum benötigen wir das UDP-Protokoll?

Da wir wissen, dass UDP ein unzuverlässiges Protokoll ist, benötigen wir in einigen Fällen dennoch ein UDP-Protokoll. UDP wird dort eingesetzt, wo die Pakete neben den eigentlichen Daten eine große Bandbreite erfordern. Beim Video-Streaming ist beispielsweise die Bestätigung Tausender Pakete mühsam und verschwendet viel Bandbreite. Beim Videostreaming stellt der Verlust einiger Pakete kein Problem dar und kann auch ignoriert werden.

UDP-Header-Format

UDP-Protokoll

Bei UDP beträgt die Headergröße 8 Byte und die Paketgröße bis zu 65.535 Byte. Diese Paketgröße ist jedoch nicht möglich, da die Daten im IP-Datagramm eingekapselt werden müssen und die Headergröße eines IP-Pakets 20 Byte betragen kann; Daher wäre das Maximum von UDP 65.535 minus 20. Die Größe der Daten, die das UDP-Paket transportieren kann, wäre 65.535 minus 28, also 8 Bytes für den Header des UDP-Pakets und 20 Bytes für den IP-Header.

Der UDP-Header enthält vier Felder:

    Quellportnummer:Es handelt sich um 16-Bit-Informationen, die identifizieren, welcher Port das Paket senden wird.Zielportnummer:Es identifiziert, welcher Port die Informationen akzeptieren wird. Es handelt sich um 16-Bit-Informationen, die zur Identifizierung von Diensten auf Anwendungsebene auf dem Zielcomputer verwendet werden.Länge:Es handelt sich um ein 16-Bit-Feld, das die gesamte Länge des UDP-Pakets angibt, einschließlich des Headers. Der Mindestwert wäre 8 Byte, da die Größe des Headers 8 Byte beträgt.Prüfsumme:Es ist ein 16-Bit-Feld und ein optionales Feld. Dieses Prüfsummenfeld prüft, ob die Informationen korrekt sind oder nicht, da die Möglichkeit besteht, dass die Informationen während der Übertragung beschädigt werden können. Es handelt sich um ein optionales Feld, das heißt, es hängt von der Anwendung ab, ob sie die Prüfsumme schreiben möchte oder nicht. Wenn die Prüfsumme nicht geschrieben werden soll, sind alle 16 Bits Null; andernfalls wird die Prüfsumme geschrieben. Bei UDP wird das Prüfsummenfeld auf das gesamte Paket angewendet, d. h. sowohl auf den Header als auch auf den Datenteil, während bei IP das Prüfsummenfeld nur auf das Header-Feld angewendet wird.

Konzept der Warteschlange im UDP-Protokoll

UDP-Protokoll

Im UDP-Protokoll werden Zahlen verwendet, um die verschiedenen Prozesse auf einem Server und einem Client zu unterscheiden. Wir wissen, dass UDP einen Prozess zur Verarbeitung der Kommunikation bereitstellt. Der Client generiert die Prozesse, die Dienste benötigen, während der Server die Prozesse generiert, die Dienste bereitstellen. Die Warteschlangen sind für beide Prozesse verfügbar, d. h. zwei Warteschlangen für jeden Prozess. Die erste Warteschlange ist die Eingangswarteschlange, die die Nachrichten empfängt, und die zweite ist die Ausgangswarteschlange, die die Nachrichten sendet. Die Warteschlange funktioniert, wenn der Prozess ausgeführt wird. Wenn der Prozess beendet wird, wird auch die Warteschlange zerstört.

gültige Bezeichner in Java

UDP wickelt das Senden und Empfangen der UDP-Pakete mit Hilfe der folgenden Komponenten ab:

    Eingabewarteschlange:Die UDP-Pakete verwenden für jeden Prozess eine Reihe von Warteschlangen.Eingabemodul:Dieses Modul übernimmt das Benutzerdatagramm von der IP und findet dann die Informationen aus der Steuerblocktabelle desselben Ports. Wenn der Eintrag in der Steuerblocktabelle denselben Port wie das Benutzerdatagramm hat, werden die Daten in die Warteschlange gestellt.Steuerblockmodul:Es verwaltet die Steuerblocktabelle.Steuerblocktabelle:Die Steuerblocktabelle enthält den Eintrag der offenen Ports.Ausgabemodul:Das Ausgabemodul erstellt und sendet das Benutzerdatagramm.

Mehrere Prozesse möchten die Dienste von UDP nutzen. Das UDP multiplext und demultiplext die Prozesse, sodass mehrere Prozesse auf einem einzigen Host ausgeführt werden können.

Einschränkungen

  • Es bietet einen unzuverlässigen Verbindungsbereitstellungsdienst. Es stellt keine IP-Dienste bereit, mit Ausnahme der Prozess-zu-Prozess-Kommunikation.
  • Die UDP-Nachricht kann verloren gehen, verzögert werden, dupliziert werden oder fehlerhaft sein.
  • Es bietet keinen zuverlässigen Transportlieferdienst. Es bietet keinen Bestätigungs- oder Flusskontrollmechanismus. Es bietet jedoch bis zu einem gewissen Grad eine Fehlerkontrolle.

Vorteile

  • Es verursacht eine minimale Anzahl an Gemeinkosten.