25.01.2014 Aufrufe

Institut für Kommunikationsnetze und Rechnersysteme - Universität ...

Institut für Kommunikationsnetze und Rechnersysteme - Universität ...

Institut für Kommunikationsnetze und Rechnersysteme - Universität ...

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.

– 11 –<br />

Client<br />

TCP/IP-Pakete<br />

Server<br />

SYN<br />

SYN + ACK<br />

IP-Adresse 129.69.170.156<br />

Port-Nr.: 1234<br />

ACK<br />

IP-Adresse 212.227.118.82<br />

Port-Nr.: 80<br />

Bild 2.4: Beispiel eines TCP-Verbindungsaufbaus<br />

Während das Internet-Protokoll nur einen verbindungslosen Datagrammdienst anbietet, arbeitet<br />

TCP verbindungsorientiert. Das bedeutet, dass ein Verbindungsauf- <strong>und</strong> -abbau mit Hilfe<br />

von Steuerpaketen – gekennzeichnet durch Kombinationen der Steuerbits SYN, FIN <strong>und</strong> ACK<br />

im Kopf der TCP-PDU (protocol data unit) – erfolgt. Die Kommunikationsendpunkte sind<br />

dabei neben den Feldern <strong>für</strong> IP-Sender- <strong>und</strong> Empfängeradresse sowie Transportprotokoll durch<br />

16-bit-Portnummern auf Sender- <strong>und</strong> Empfängerseite festgelegt. Über die Portnummern wird<br />

gleichzeitig der Zugang zu einem bestimmten Dienst, der auf TCP aufsetzt, ermöglicht. Dazu<br />

werden hauptsächlich vordefinierte Portnummern (well-known ports) <strong>für</strong> die verschiedenen<br />

Dienste verwendet. Es können aber auch freie Portnummern <strong>für</strong> proprietäre Dienste eingesetzt<br />

werden.<br />

Der Verbindungsaufbau erfolgt in drei Schritten (three-way handshake), was am Beispiel einer<br />

Client-Server-Beziehung wie im Fall von HTTP gezeigt werden soll (Bild 2.4). Zunächst gibt<br />

der Client in einem Verbindungsaufbaupaket (mit SYN = 1 <strong>und</strong> ACK = 0) die spezielle Portnummer<br />

<strong>für</strong> diesen Dienst (z. B. 80 <strong>für</strong> HTTP) als Empfängerportnummer im TCP-PDU-Kopf<br />

sowie die IP-Adresse des Servers im IP-Paketkopf an. Als Senderportnummer kann prinzipiell<br />

eine beliebige beim Client noch freie Portnummer gewählt werden; diese dient lediglich der<br />

Identifikation der TCP-Verbindung. Trifft das Paket beim Server ein, wird anhand der im Verbindungsaufbaupaket<br />

angegebenen Empfängerportnummer überprüft, ob der angesprochene<br />

Dienst unterstützt wird. In diesem Fall wird das Paket an den <strong>für</strong> diesen Dienst zuständigen<br />

Prozess weitergeleitet, der ggf. den Verbindungswunsch akzeptiert <strong>und</strong> das Senden eines<br />

Bestätigungspakets (mit SYN = 1 <strong>und</strong> ACK = 1) auslöst. Nachdem der Client wiederum eine<br />

Gegenbestätigung (mit SYN = 0 <strong>und</strong> ACK = 1) gesendet hat, gilt die Verbindung als aufgebaut<br />

<strong>und</strong> es kann eine Datenübertragung stattfinden. Der Verbindungsaufbau wird ebenso wie der<br />

Abbau durch einen endlichen Automaten auf beiden Seiten der Verbindung <strong>und</strong> mit Hilfe von<br />

Zeitüberwachungsmechanismen gesteuert.<br />

Ist eine Verbindung aufgebaut, kann darüber bidirektional kommuniziert werden, indem an<br />

beiden Endpunkten ein Datenstrom (stream) in Segmente aufgeteilt wird, die jeweils in einem<br />

TCP/IP-Paket gesendet werden. Auf der Empfängerseite werden die Segmente wieder zu

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!