31.10.2012 Aufrufe

Datenkommunikation - FET

Datenkommunikation - FET

Datenkommunikation - FET

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Aktive<br />

Instanz<br />

(Client)<br />

Client Server<br />

SYN (S = x)<br />

SYN + ACK (S = y, A = x+1)<br />

ACK (S = x+1, A = y+1)<br />

Passive<br />

Instanz<br />

(Server)<br />

• 3-Wege-Handshake zum Verbindungsaufbau<br />

• Austausch von Start-Sequenznummern<br />

(Möglicherweise wurde Verbindung mit gleichen Port-Nummern<br />

kürzlich beendet und es befinden sich noch Pakete im Netz.)<br />

Bild: Öffnen einer TCP-Verbindung<br />

t<br />

Verbindungsaufbau<br />

Der Verbindungsaufbau wird als Drei-Wege-Handshake bezeichnet,<br />

da drei TCP-Segmente auszutauschen sind. Der<br />

Sender wählt eine Sendefolgenummer (SEQ = x) und setzt das<br />

SYN-Flag. Der Empfänger antwortet - sofern er den Verbindungswunsch<br />

annehmen will - mit gesetzten Flags ACK und<br />

SYN, mit einer eigenen Sendefolgenummer (SEQ = y) und der<br />

Empfangsfolgenummer (ACK = x + 1). Diese gibt die nächste,<br />

vom Sender erwartete Sendefolgenummer an. Ein drittes<br />

Segment zeigt an, dass die Verbindung aufgebaut ist<br />

Der Aufbau einer TCP-Verbindung läuft wie folgt ab. Die<br />

TCP-Protokoll-Instanz im Rechner A generiert ein TCP-<br />

Segment, in dem das Flag SYN gesetzt ist. Somit wird dieses<br />

Segment hier als SYN-Segment bezeichnet. Der Verbindungsaufbau<br />

beginnt damit, dass die beiden Kommunikationspartner<br />

einen Anfangswert für die jeweiligen Sequenznummern festlegen.<br />

Dieser Anfangswert für eine Verbindung wird als Initial<br />

Sequence Number (ISN) bezeichnet.<br />

Detaillierte Beschreibung:<br />

Die TCP-Instanz im Rechner A sendet dazu an den Rechner B ein SYN-Segment mit u.a. folgenden Informationen:<br />

• SYN-Flag im TCP-Header wird gesetzt (SYN-Segment),<br />

• frei zugeteilte Nummer des Quell-Ports,<br />

• Zielport als Well-Known Port,<br />

• SEQ: Sequenznummer der Quell-TCP-Instanz (hier SEQ = x).<br />

Das gesetzte SYN-Bit bedeutet, dass die Quell-TCP-Instanz eine Verbindung aufbauen (synchronisieren) möchte. Mit der<br />

Angabe des Zielports (als Well-Known Port) wird die gewünschte Standardanwendung TCP im Rechner B gefordert.<br />

Die Ziel-TCP-Instanz befindet sich im sogenannten Listenmodus, so dass sie auf ankommende SYN-Segmente wartet. Nach<br />

dem Empfang eines SYN-Segments leitet die Ziel-TCP-Instanz ihrerseits den Verbindungswunsch an den Ziel-<br />

Anwendungsprozess (z.B. den FTP-Prozess) gemäß der empfangenen Nummer des Zielports weiter und generiert eigene<br />

Initial Sequence Number (ISN) für die Richtung zum Rechner A.<br />

Im zweiten Schritt des Verbindungsaufbaus sendet Rechner B ein TCP-Segment im mit folgendem Inhalt an den Rechner A:<br />

• Die beiden Flags SYN und ACK im TCP-Header werden gesetzt,<br />

• Die beiden Quell- und Ziel-Port-Nummern werden angegeben,<br />

• Die Sequenznummer SEQ der Ziel-TCP-Instanz (hier SEQ = y) wird mitgeteilt.<br />

Das ACK-Bit signalisiert, dass die Quittungsnummer in ACK-Bit diesem SYN/ACK-Segment von Bedeutung ist. Die Quittungsnummer<br />

ACK enthält die nächste von der TCP-Instanz im Rechner B erwartete Sequenznummer (SEQ = x +1).<br />

Die TCP-Instanz im Rechner A bestätigt den Empfang des SYN/ACK-Segments mit einem ACK-Segment, in dem das ACK-<br />

Flag gesetzt wird. Mit der Quittungsnummer ACK = y + l wird der TCP-Instanz in Rechner B bestätigt, dass die nächste<br />

Sequenznummer SEQ = y+1 erwartet wird.<br />

Eine TCP-Verbindung ist aus zwei unidirektionalen Verbindungen zusammensetzt. Jede dieser gerichteten Verbindungen<br />

wird im Quellrechner durch die Angabe der Ziel-IP-Adresse und von beiden Quell- und Zielports eindeutig identifiziert.<br />

Host 1 Host 2<br />

S = 112<br />

A = ?<br />

S = 113<br />

A = 526<br />

SYN (S = 112)<br />

S: Sequence Number<br />

A: Acknowledgement Number<br />

SYN, ACK (S = 525, A = 113)<br />

ACK (S = 113, A = 526)<br />

ACK: ACK-Flag = 1<br />

SYN: SYN-Flag = 1<br />

Bild: Öffnen einer TCP-Verbindung<br />

S = 525<br />

A = ?<br />

S = 525<br />

A = 113<br />

S = 526<br />

A = 114<br />

Host 1 Host 2<br />

S: Sequence Number<br />

A: Acknowledgement Number<br />

ACK: ACK-Flag = 1<br />

SYN: SYN-Flag = 1<br />

Institut für Kommunikationsnetze - TU Wien o. Univ. Prof. Dr. Harmen R. van As Vorlesung <strong>Datenkommunikation</strong> Teil 3.3 11<br />

S = 112<br />

A = ?<br />

S = 112<br />

A = 526<br />

S = 113<br />

A = 526<br />

SYN<br />

(S = 112)<br />

SYN, ACK<br />

(S = 112, A = 526)<br />

SYN<br />

(S = 525)<br />

S = 525<br />

A =?<br />

S = 525<br />

A = 113<br />

SYN, ACK<br />

(S = 525, A = 113)<br />

Bild: Simultanes Öffnen einer TCP-Verbindung<br />

S = 526<br />

A = 113

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!