TCP/UDP und Varianten Seminar ... - Informatik 4
TCP/UDP und Varianten Seminar ... - Informatik 4
TCP/UDP und Varianten Seminar ... - Informatik 4
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
es unterscheidbar, ob die Checksum 0 (es sind dann alle Bits gesetzt) ist oder gar keine Berechnung<br />
stattgef<strong>und</strong>en hat (kein Bit gesetzt). Man sieht, dass die Länge zweimal in die Berechnung<br />
der Checksum eingeht.<br />
Ist die Checksum fehlerhaft, so wird das Paket verworfen <strong>und</strong> es findet keinerlei Rückmeldung<br />
statt. Obwohl die Checksum optional ist, sollte sie jedoch immer berechnet werden, da<br />
durch sie Modifikationen (durch fehlerhafte Verbindung o.ä.) erkannt werden können. Allerdings<br />
kann eine Vertauschung von 16-Bit Wörtern nicht erkannt werden, ein Nachteil der recht<br />
einfachen Berechnung.<br />
3.2 Fragmentierung durch IP<br />
Die Datenmenge, die in einem Paket im Netzwerk verschickt werden kann, ist durch die in der Link-<br />
Schicht festgelegte Maximum Transfer Unit (MTU) [2] beschränkt. Daher wird ein sehr grosses Datagramm<br />
unweigerlich zu einer Fragmentierung durch IP in der Vermittlungsschicht führen. Da diese<br />
Fragmentierung, d.h. eine Aufteilung des Datagramms in mehrere IP-Datagramme, im Normalfall zu<br />
einem Overhead, bedingt durch zusätzlichen Platz für IP-Header, führt, sollte sie vermieden werden 1 .<br />
Da eine Fragmentierung an jedem Punkt, den das Datagramm passieren muss, geschehen kann, ist die<br />
kleinste MTU in der Verbindung zwischen den Hosts zu bestimmen, um die Fragmentierung unterbinden<br />
zu können. Dies kann durch setzen des DF-Bit (Do not fragment) im IP-Header <strong>und</strong> senden eines<br />
Datagramms der Grösse der ausgehenden MTU geschehen. Kommt eine Fehlerrückmeldung durch<br />
ICMP, so kann man es mit einem Datagramm der im ICMP Paket angegebenen MTU des nächsten<br />
Hop erneut versuchen. Sollte die Angabe im ICMP Paket nicht erfolgt sein, so setzt man die Grösse<br />
des Datagramms beliebig herab.<br />
Durch Fragmentierung kann ein weiterer Effekt zwischen <strong>UDP</strong> <strong>und</strong> ARP auftreten. Wenn der ARP<br />
Cache leer ist, dann impliziert ein verschicktes Datagramm einen ARP-Request, <strong>und</strong> es wird ein Reply<br />
erwartet, um den anderen Host adressieren zu können. Da IP die Fragmente sehr schnell generiert,<br />
wird zu jedem Fragment ein ARP-Request abgeschickt (ARP-flooding). Nach der ersten Antwort auf<br />
eine Anfrage wird das letzte Fragment gesendet, da ein Fragment im Puffer überschrieben wird, wenn<br />
ein neues ankommt. Es treten keine Fehlermeldungen durch ICMP auf, da ICMP den Benutzerprozess<br />
nicht darüber informieren kann. IP muss nach dem Ablauf eines Timeouts das empfangene Segment<br />
verwerfen, damit es nicht zu einem Überlauf des Empfangspuffers kommt. Das fragmentierte Datagramm<br />
muss danach erneut vom Benutzerprozess gesendet werden.<br />
Aus dem Obigem erkennt man, das <strong>UDP</strong> keine Verbindungssicherheit garantieren kann, <strong>und</strong> deshalb<br />
für Dienste, die dies erfordern, nicht sehr geeignet 2 ist. So eignet sich <strong>UDP</strong> wegen des geringen<br />
Verwaltungsaufwand eher für Anwendungen, die eine schnelle Verbindung erfordern, aber bei denen<br />
Verluste von Daten nicht sehr bedeutend ist.<br />
1 Im Prinzip ist es hier egal, wer die Fragmentierung durchführt, klar ist, dass sie durchgeführt werden muss, da ein zu<br />
grosses Datagram nicht von der Link-Schicht nicht versendet wird<br />
2 nicht sehr geeignet heisst, es ist möglich, jedoch nötigt es dem Programmierer nur zusätzliche Arbeit auf<br />
6