Anwendungsprotokolle
  UDP
 


UDP – User Datagram Protocol

Das UDP ist ein minimales, verbindungsloses Netzprotokoll. Es dient dazu Daten, die über das Internet übertragen werden, der richtigen Anwendung zukommen zu lassen.
1977 begann die Entwicklung von UDP, denn man benötigte für die Übertragung der Sprache ein einfacheres als TCP. Das benötigte Protokoll sollte nur für die Adressierung, ohne die Datenübertragung zu sichern, zuständig sein. Dadurch kommt es nicht zu Verzögerungen bei der Sprachübertragung.
 
Funktionsweise
 
Bei UDP werden Ports verwendet, um Daten mit dem richtigen Programm auf dem Zielrechner zukommen zu lassen. Dazu wird die Portnummer des Dienstes mit gesendet, der die Daten erhalten soll. Hier gibt es eine Erweiterung der Host-zu-Host- auf eine Prozess-zu-Prozess-Übertragung, dies wird als Anwendungsmultiplexen und –demultiplexen bezeichnet.
Zudem bietet UDP die Möglichkeit einer Integritätsprüfung, durch mit senden der Prüfsumme, an.
 
Eigenschaften
 
UDP ist ein verbindungsloser, nicht-zuverlässiger Übertragungsdienst. Es gibt somit keine Garantie, dass ein gesendetes Paket auch ankommt, oder das Pakete in der gesendeten Reihenfolge ankommen oder ob ein Paket nur einmal beim Empfänger ankommt. So muss eine Anwendung, die UDP nutzt, unempfindlich gegenüber verloren gegangenen und unsortierten Paketen sein oder selbst Korrekturmaßnahmen enthalten.
 
Da nicht erst eine Verbindung aufgebaut werden muss, können Hosts schneller mit dem Datenaustausch beginnen. Vor allem bei Anwendungen mit kleinen Datenmengen ist dies auffällig. DNS, einfache Frage-Antwort-Protokolle, verwendet UDP, um die Netzwerkbelastung gering zu halten und damit wird der Datendurchsatz erhöht. Hier würde der Drei-Wege-Handshake, vom TCP, einen unnötigen Overhead erzeugen.
Die ungesicherte Übertragung bietet den Vorteil von geringen Übertragungsverzögerungsschwankungen. Bei einer TCP-Verbindung werden verloren gegangene Pakete neu angefordert, das nimmt viel Zeit in Anspruch. Dadurch kommt zu Schwankungen in der Übertragungsdauer, dies ist wiederum schlecht für Multimediaanwendungen (z.B. würde es bei VoIP zu plötzlichen Aussetzern kommen). Verloren gegangene Pakete bringen, bei verbindungslosen Kommunikationsdiensten, die gesamte Übertragung nicht ins stocken, sondern vermindern lediglich die Qualität.
 
UDP übernimmt auch die Eigenschaften der darunter liegenden Netzwerkschicht. Im Internet Protocol können Datenpakete 65535 Byte lang sein, davon belegen der IP-Header und der UDP-Header mindestens 28 Byte. So haben UDP-Datagramme maximal 65507 Nutzdatenbytes. Dies wird jedoch vom IP fragmentiert übertragen.
Da IP bei Übertragungsfehlern oder Überlast Pakete löscht, können Datagramme daher fehlen. Hierfür bietet das UDP keine Erkennungs- oder Korrekturmechanismen, wie das TCP. Wenn es mehrere mögliche Routen gibt, kann das IP bei Bedarf neue Wege wählen. So kann es auch möglich sein, dass später gesendete Daten früher gesendete überholen, zudem aber auch, dass die Daten mehrmals beim Empfänger eintreffen können.

UDP-Datagramm

Neben den Nutzdaten werden auch noch andere Informationen mit gesendet, im so genannten Header:

0
8
16
24
31
Quell-Port
Ziel-Port
Länge
Prüfsumme
Daten

Ein UDP-Header besteht aus vier Datenfeldern und ist jeweils 16 Bit groß.
 
  • Quell-Port: Dieser gibt die Portnummern des sendenden Prozesses an. Das wird benötigt, damit der Empfänger auf das Paket antworten kann. Der Quell-Port ist optional und kann auf Wert „0“ gesetzt werden, da UDP verbindungslos ist.
  • Zielport: Hiermit wird der Prozess angegeben, der das Paket empfangen soll.
  • Längenfeld: Die Größe des Pakets wird in Oktetten angegeben. Es besteht aus den Daten und dem Header. 8 Oktette sind der kleinstmögliche Wert.
  • Prüfsummenfeld: Es kann eine 16 Bit große Prüfsumme mit gesendet werden. Die Prüfsumme wird über den Header (Pseudo-Header) und die Daten gebildet. Auch die Prüfsumme ist optional, wird aber fast immer genutzt.
 
Pseudo-Header
 
Das Internet Protocol ist für die Übertragung des UDP-Paketes vorgesehen. So wird vor das UDP-Paket ein weiterer Header gesetzt, indem sich, vom IP, benötigte Daten befinden:



Der Pseudo-Header übernimmt Teile des IP-Headers für die Erzeugung der Prüfsumme. Er dient nur zur Erzeugung der Prüfsumme und wird nicht übertragen. Bei IPv4 hat er eine Größe von 12 Byte und setzt sich aus der IP-Quelladresse (32 Bit), IP-Ziel-Adresse (32 Bit), 8 Bit Leerfeld, 8 Bit Protokoll-ID und der Länge des UDP-Datagramms (16 Bit):
 
 
0
8
16
24
31
Quell-IP-Adresse
Ziel-IP-Adresse
0
Protokoll
UDP Länge
 
 
Beim IPv6 hat der Header eine Größe von 40 Byte und setzt sich folgendermaßen zusammen:
 
0
8
16
24
31

Quell-IP-Adresse (128 Bit)

Ziel-IP-Adresse (128 Bit)
Upper-Layer Packet Length
Null (24 Bit)
Next Header
 
Zur Erzeugung der Prüfsumme werden der Pseudo-Header und das UDP-Paket in 16 Bit große Teile unterteilt. Es werden die Einerkomplementen dieser Teile vom Sender addiert, hiervon wird wieder das Einerkomplement gebildet. Das Ergebnis ist die zu übertragende Prüfsumme. Auch der Empfänger addiert die Einerkomplementen der Teile vom Pseudo-Header, UDP-Paket und dazu dann die Prüfsumme. Von dieser Summe wird wiederum das Einerkomplement gebildet. Es ergibt sich das Ergebnis 0, wenn die Übertragung korrekt war.
 
 
  Heute waren schon 12 Besucher (13 Hits) hier!  
 
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden