Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Sicherheit in vernetzten Systemen - RRZ Universität Hamburg
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
KAPITEL 1. GRUNDLAGEN: INTERNET-PROTOKOLLE<br />
1.4.5 TCP-Verb<strong>in</strong>dungsabbau<br />
Soll die Verb<strong>in</strong>dung zwischen zwei Rechnern wieder abgebaut werden, so sendet der Rechner, der<br />
die Verb<strong>in</strong>dung abbauen will, e<strong>in</strong> Datenpaket, <strong>in</strong> dem das FIN-Flag (FIN: F<strong>in</strong>ish) gesetzt ist, wie <strong>in</strong><br />
Abbildung 1.10 gezeigt. Der TCP-Zustandsautomat dieses Rechners bef<strong>in</strong>det sich dann um Zustand<br />
FIN-WAIT-1 (siehe 1.6) Derandere Rechner nimmt dieses FIN-Flag zur Kenntnis (se<strong>in</strong> Zustandsautomat<br />
geht <strong>in</strong> den Zustand CLOSE-WAIT, vgl. 1.6) und sendet e<strong>in</strong> Datenpaket mit dem ACK-Flag zum<br />
Zeichen, daß das Paket mit dem FIN-Flag angekommen ist.<br />
Rechner A<br />
Rechner B<br />
shutdown(s,1)<br />
SEQ=x, FLAGS=FIN, ACK<br />
SEQ=y, ACK=x+1, FLAGS=ACK<br />
SEQ=y, ACK=x+1, FLAGS+ACK, DATA=5<br />
write(...)<br />
read(...)<br />
SEQ=x+1, ACK=y+5, FLAGS+ACK<br />
SEQ=y+5, ACK=x+1, FLAGS=FIN, ACK<br />
SEQ=x+1, ACK=y+5, FLAGS=ACK<br />
shutdown(s,2)<br />
oder<br />
close(s)<br />
shutdown(s,0)<br />
Abbildung 1.10: Abbau e<strong>in</strong>er TCP-Verb<strong>in</strong>dung<br />
Das FIN-Flag signalisiert lediglich, daß e<strong>in</strong>e Seite das Senden von Daten beendet hat. Die andere Seite<br />
kann weiterh<strong>in</strong> Daten senden, bis auch sie mit dem FIN-Flag das Ende ihres Datenstroms signalisiert.<br />
Erst nachdem beide Seiten jeweils e<strong>in</strong> Datenpaket mit FIN-Flag gesendet und den Empfang des FIN-<br />
Flags der Gegenseite bestätigt haben, ist die Verb<strong>in</strong>dung vollständig abgebaut. Solange bef<strong>in</strong>det sich<br />
der TCP-Automat <strong>in</strong> e<strong>in</strong>em der Zustände FIN-WAIT-1, FIN-WAIT-2, CLOSING oder TIMED-WAIT<br />
(siehe Abbildung 1.6).<br />
Zum Abbau der Verb<strong>in</strong>dung stehen der Programmierer<strong>in</strong> zwei Systemaufrufe zur Verfügung. Entweder<br />
kann die Verb<strong>in</strong>dung mittels shutdown() e<strong>in</strong>seitig geschlossen werden oder die Verb<strong>in</strong>dung<br />
kann mit close() vollständig abgebaut werden. Im letzteren Fall nimmt das aufrufende Programm<br />
ke<strong>in</strong>e Daten mehr an, ihr Empfang wird jedoch vom Betriebssystem quittiert und die Daten werden<br />
verworfen, bis die Gegenseite ihrerseits die Verb<strong>in</strong>dung abbaut. Dem Programm wird beim Aufruf<br />
signalisiert, ob sich noch ungelesene Daten <strong>in</strong> den Puffern des Betriebssystems bef<strong>in</strong>den. Der Aufruf<br />
wird <strong>in</strong> diesem Falle ohne weitere Aktionen abgebrochen, es sei denn, die Programmierer<strong>in</strong> signalisiert<br />
explizit, daß die Daten verworfen werden sollen.<br />
1.5 UDP<br />
Im Gegensatz zu TCP ist UDP e<strong>in</strong> sehr e<strong>in</strong>fach aufgebautes Protokoll. UDP weist daher auch beträchtlich<br />
weniger Funktionalität auf als TCP. Der wichtigste Unterschied zu TCP ist, daß UDP e<strong>in</strong><br />
16 SS 99, Sem<strong>in</strong>ar 18.416: <strong>Sicherheit</strong> <strong>in</strong> <strong>vernetzten</strong> <strong>Systemen</strong>