05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.3 <strong>Sockets</strong> 203<br />

CLOSED<br />

passive open<br />

close()<br />

LISTEN<br />

in: rst<br />

in: syn<br />

out: syn, ack<br />

active open<br />

out: syn<br />

SYN_RCVD<br />

in: ack<br />

in: fin<br />

out: ack<br />

in: syn<br />

out: syn, ack<br />

ESTABLISHED<br />

close()<br />

out: fin<br />

SYN_SENT<br />

in: syn, ack<br />

out: ack<br />

CLOSE_WAIT<br />

close()<br />

out: fin<br />

in: ack<br />

FIN_WAIT_1<br />

in: fin, ack<br />

out: ack<br />

in: fin<br />

out: ack<br />

LAST_ACK<br />

in: ack<br />

FIN_WAIT_2<br />

in: fin<br />

out: ack<br />

TIME_WAIT<br />

CLOSING<br />

in: ack<br />

passive close<br />

active close<br />

2MSL timeout<br />

Abb. 4.14. TCP-Zustandsübergangsdiagramm<br />

bringt den Socket in den horchenden Zustand LISTEN <strong>und</strong> der Server wartet<br />

schließlich <strong>mit</strong> accept() auf eingehende Verbindungsanfragen. Der Client<br />

durchläuft dagegen den <strong>mit</strong> der durchgezogenen Linie markierten aktiven<br />

Pfad. Während des aktiven Öffnens <strong>mit</strong>tels connect() durchlaufen Client<br />

<strong>und</strong> Server auf ihren jeweiligen Pfaden die Zustände SYN SENT (Client)<br />

bzw. SYN RCVD (Server) <strong>und</strong> tauschen dabei die im Rahmen des Drei-Wege-<br />

Handshakes notwendigen SYN- <strong>und</strong> ACK-Pakete aus. Wenn die beiden Parteien<br />

schließlich den TCP-Zustand ESTABLISHED erreicht haben, besteht<br />

zwischen ihnen eine komplett aufgebaute TCP-Verbindung. In diesem Zu-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!