Datenkommunikation - FET
Datenkommunikation - FET
Datenkommunikation - FET
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