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
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.
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.
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.
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.
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.
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.
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
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:
Konzept der Warteschlange im 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:
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.