Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
1.5. UDP<br />
verb<strong>in</strong>dungsloses Protokoll ist. Somit bietet UDP ke<strong>in</strong>erlei Schutz gegen den Verlust von Datenpaketen,<br />
gegen Paketduplikate oder die Auslieferung von Paketen <strong>in</strong> e<strong>in</strong>er anderen Reihenfolge.<br />
Der Vorteil liegt <strong>in</strong> der wesentlich e<strong>in</strong>facheren Implementierung von UDP, was besonders <strong>Systemen</strong><br />
mit knappen Ressourcen zugute kommt. Der zweite Grund für die Existenz von UDP liegt dar<strong>in</strong>, daß<br />
für Anwendungen, die die volle Funktionalität von TCP nicht benötigen, e<strong>in</strong> e<strong>in</strong>faches Protokoll bereitgestellt<br />
wird. So besteht die Möglichkeit, die notwendige Funktionalität nur im für die Anwendung<br />
benötigten Umfang anzufordern. Die folgende Abbildung 1.11 zeigt schematisch den Aufbau e<strong>in</strong>es<br />
UDP-Paketes.<br />
0 16 31<br />
SENDER-PORTNUMMER<br />
EMPFÄNGER-PORTNUMMER<br />
LÄNGE<br />
PRÜFSUMME<br />
DATEN<br />
Abbildung 1.11: UDP Paketformat (aus [Santi 1998, S. 68])<br />
Das Längenfeld gibt die Länge des UDP-Paketes <strong>in</strong> Bytes an und das Prüfsummenfeld wird wie<br />
bei IP und TCP nur dazu benutzt, die Integrität der Datenfelder im Protokollkopf sicherzustellen,<br />
nicht jedoch die der Nutzdaten. Im Gegensatz zu TCP bezieht UDP auch Felder des IP-Kopfes <strong>in</strong> die<br />
Prüfsummenberechnung mit e<strong>in</strong>, so daß hier von e<strong>in</strong>er „Pseudoprüfsumme“ gesprochen wird. Hier<br />
zeigt sich e<strong>in</strong> weiterer Vorteil von UDP gegenüber TCP, nämlich der wesentlich ger<strong>in</strong>gere Overhead,<br />
e<strong>in</strong> UDP-Kopf ist nur acht Byte lang, gegenüber 20 (oder mehr bei Verwendung von Optionen) Byte<br />
bei TCP.<br />
Analog zu TCP benutzt UDP das Konzept der Portnummern, um die verschiedenen Anwendungen unter<br />
e<strong>in</strong>er IP-Adresse anzusprechen. Wie unter TCP werden 16 Bit große Zahlen für die Portnummern<br />
des Absenders und Empfängers verwendet. TCP und UDP Portnummern s<strong>in</strong>d nicht identisch, e<strong>in</strong>e<br />
unter TCP bereits vergebene Portnummer kann unter UDP nochmals verwendet werden und u.U. e<strong>in</strong>e<br />
völlig andere Anwendung identifizieren.<br />
1.5.1 UDP-API<br />
Das 4-Tupel (SenderIP, SenderPort, EmpfängerIP, EmpfängerPort) abstrahiert unter UDP nicht e<strong>in</strong>e<br />
Verb<strong>in</strong>dung wie unter TCP, sondern e<strong>in</strong>e Kommunikationsbeziehung. Der Unterschied wird aus Sicht<br />
der Programmierer<strong>in</strong> deutlicher, wenn das API der UDP-Sockets betrachtet wird.<br />
UDP-Sockets werden wie TCP-Sockets mit dem Aufruf socket() vom Betriebssystem bereitgestellt,<br />
lediglich die Parameter s<strong>in</strong>d anders. Der connect() Aufruf kann entfallen, da UDP e<strong>in</strong> verb<strong>in</strong>dungsloses<br />
Protokoll ist. Ebenso kann der accept() Aufruf für Sockets entfallen, die von Servern benutzt<br />
werden. Zw<strong>in</strong>gend notwendig bleibt für Server jedoch der Aufruf von b<strong>in</strong>d(), um dem Betriebssystem<br />
mitzuteilen, unter welcher IP-Adresse und Portnummer das Programm ansprechbar ist.<br />
Die Funktion sendto() kann dazu benutzt werden, auch an verschiedene Empfänger Daten zu versenden,<br />
allerd<strong>in</strong>gs müssen die Empfängeradressen beim Aufruf übergeben werden. Mit TCP-Sockets ist<br />
SS 99, Sem<strong>in</strong>ar 18.416: <strong>Sicherheit</strong> <strong>in</strong> <strong>vernetzten</strong> <strong>Systemen</strong> 17