next up previous contents
Nächste Seite: A. Adressen im Netz Aufwärts: Grundlagen TCP/IP Vorherige Seite: 4. IP (Internet Protocol)   Inhalt

Unterabschnitte


5. TCP (Transmission Control Protocol)

Wie wir gesehen haben, kann auf Ebene des IP eine Menge mit den Datenpaketen passieren (emphunzuverlässig, verbindungslos). Damit man eine sinnvolle und funktionierende Datenübertragung aufbauen kann, kommt auf der Ebene 4 des ISO/OSI-Referenzmodells das TCP zum Einsatz. Auf dieser Schicht wird nicht mehr von Paketen, sondern von Segmenten geredet. Ein IP-Paket kann einem TCP-Segment entsprechen, dies muß aber nicht sein (mögliche Fragmentierung durch das IP).

Das TCP stellt eine bidirektionale, gesicherte Verbindung mit den folgenden Ausprägungen her:

Fehlerkontrolle:
Um eine verlustfreie Übertragung zu erreichen, wird der Empfang aller Pakete quittiert (Acknowledgement).

Zeitüberwachung:
Wird der Datenempfang nicht innerhalb einer bestimmten Zeit quittiert, so wird ein Übertragungsfehler vermutet und die Datenpakete werden automatisch nocheinmal gesendet.

Flußkontrolle:
Durch Pufferbereiche kann zwischen verschieden schnellen Systemen vermittelt werden, ohne daß es zu Datenverlust kommt. Dazu werden alle Datenpakete fortlaufend mit Sequenznummern numeriert. Über einen Fenstermechanismus (Windowing) in Kombination mit den Acknowledgement-Meldungen wird dafür gesorgt, daß nicht mehr Daten verschickt werden, als der Empfänger verarbeiten kann.

Multiplexing:
Ein Rechner kann mehrere TCP-Verbindungen gleichzeitig bearbeiten. Dafür werden verschiedene Ports definiert.

1. Multiplexing

Damit ein Rechner gleichzeitig mehrere Verbindungen (Multiplexing) bearbeiten kann, müssen diese unterschieden werden. Dazu bedient sich das TCP der sogenannten Ports. Jeder Anwendung, die das TCP benutzen will, wird ein Port zugeordnet. Es gibt 65536 verschiedene Ports, sie sind fortlaufend numeriert. An dieser Stelle kommen folgende Definitionen ins Spiel:

Ein Port wird meißt hinter einem Doppelpunkt an die IP-Adresse (oder den DNS-Namen) gehängt: 192.168.0.101:80 oder poldi:80.

Ein Beispiel: poldi (Adresse 192.168.0.101) läßt einen Webserver auf Port 80 laufen. Sowohl mitch (192.168.0.104) als auch andi (192.168.0.102) wollen jetzt mit einem Browser über ihre lokalen Ports 80 Daten vom Webserver abrufen.

In diesem Beispiel kommen die folgenden drei Sockets vor:

Rechner Adresse Port
poldi 192.168.0.101 80
andi 192.168.0.102 80
mitch 192.168.0.104 80

Nun könnte man meinen, daß sich poldi verheddert, da ja beide Rechner auf denselben Socket zugreifen. Hier kommt das Multiplexing ins Spiel: Es wird zwar auf denselben Socket zugegriffen, aber da eine Verbindung durch zwei Sockets definiert wird, kann poldi die beiden folgenden Verbindungen getrennt voneinander bearbeiten:

Rechner Adresse Port Rechner Adresse Port
poldi 192.168.0.101 80 andi 192.168.0.102 80
poldi 192.168.0.101 80 mitch 192.168.0.104 80

Das ist aber noch nicht alles. mitch könnte in diesem Fall nur eine einzige Verbindung zu poldi aufbauen. Daher benutzt der Client (mitch) nicht den Standardport 80, um die Verbindungen zu einem Server aufzubauen. Vielmehr benutzt er dynamische Portnummern[*], die für jede Verbindung neu aufgebaut werden. So können beispielsweise im WWW gleichzeitig mehrere Bilder von einem Server geladen werden, indem die Verbindungen parallel bestehen.

Es seien folgende Sockets im Spiel, während mitch gleichzeitig eine HTML-Seite und zwei darin enthaltene Grafiken von poldi herunterlädt:

Rechner Adresse Port
poldi 192.168.0.101 80
mitch 192.168.0.104 1111
mitch 192.168.0.104 1112
mitch 192.168.0.104 1113

Jetzt hat mitch also diese drei Verbindungen zu poldi geöffnet:

Rechner Adresse Port Rechner Adresse Port
poldi 192.168.0.101 80 mitch 192.168.0.104 1111
poldi 192.168.0.101 80 mitch 192.168.0.104 1112
poldi 192.168.0.101 80 mitch 192.168.0.104 1113

Durch diese Verfahrensweise ist es einem Server möglich, durch einen definierten Port (also eine eindeutige, immer gleiche Adreßangabe) gleichzeitig mit mehreren Clients in Verbindung zu stehen (und das auch noch mit mehreren Verbindungen pro Client).

2. geläufige Ports

Hier eine Auflistung der wichtigsten Standard-Portnummern. Die Portnummern sind in der RFC 1700 aufgelistet.

Auf den meisten Systemen sind die Ports über 1024 für jede Anwendung offen, während die Ports 1-1024 nur Systemprozessen (oder Anwendungen, die über entsprechende Privilegien verfügen) zur Verfügung stehen.

Dienst Port Erklärung
ftp-data 20 File Transfer [Default Data]
ftp 21 File Transfer [Control]
telnet 23 Telnet
smtp 25 Simple Mail Transfer
domain 53 Domain Name Server
finger 79 Finger
www-http 80 World Wide Web HTTP
pop3 110 Post Office Protocol - Version 3
uucp-path 117 UUCP Path Service
nntp 119 Network News Transfer Protocol
ntp 123 Network Time Protocol
netbios-ns 137 NETBIOS Name Service
netbios-dgm 138 NETBIOS Datagram Service
netbios-ssn 139 NETBIOS Session Service
imap2 143 Interim Mail Access Protocol v2
xdmcp 177 X Display Manager Control Protocol
irc 194 Internet Relay Chat Protocol
ipx 213 IPX
imap3 220 Interactive Mail Access Protocol v3
uucp 540 uucpd
uucp-rlogin 541 uucp-rlogin Stuart Lynne
doom 666 doom Id Software[*]
lotusnote 1352 Lotus Note
ingreslock 1524 ingres
orasrv 1525 oracle
ccmail 3264 cc:mail/lotus
aol 5190 America-Online
x11 6000-6063 X Window System


next up previous contents
Nächste Seite: A. Adressen im Netz Aufwärts: Grundlagen TCP/IP Vorherige Seite: 4. IP (Internet Protocol)   Inhalt
Christian Garbs [Master Mitch]
2000-04-24