Rechnernetze
Home Nach oben

Verbindungen

Da TCP verbindungsorientiert ist, muss vor jeder Datenübertragung eine Verbindung aufgebaut werden. Eine Verbindung ist durch zwei Sockets spezifiziert, welche wiederum durch die IP-Adresse eines Hosts und eine TCP-Port-Adresse spezifiziert sind.

Port-Adressen 

Port-Adressen sind 16-Bit Zahlen, welche eindeutig einem Dienst zugeordnet werden oder frei wählbar sind. Sie werden im TCP-Header in den ersten beiden Wörtern untergebracht. 

Im RFC 1700 (oder aktueller URL: www.iana.org) werden u.a. die folgenden Port-Adressen fest bestimmten Diensten zugeordnet:

keyword decimal description
rje 5 Remote Job Entry
echo 7 Echo
daytime 13 Daytime
ftp-data 20 File Transfer [Default Data]
ftp 21 File Transfer [Control]
www-http 80 World Wide Web HTTP

Der Bereich 1024-65535 wird als "Registered Ports" bezeichnet. Auch hier gibt es Zuordnungen zu Diensten. Dennoch können diese Ports von den Benutzern (in der Regel) frei verwendet werden, während die anderen Ports von den meisten Betriebssystemen nur für Administratoren zugänglich sind. Als dynamische oder private Ports werden jene von 49152 bis 65535 bezeichnet; diese können offenbar von den Anwendern beliebig belegt werden. 

Sockets

Ein Socket ist definiert als die Konkatenation einer IP-Adresse eines Hosts mit einer Port-Adresse. Ein lokaler Socket kann für mehrere Verbindungen stehen, da die entfernten Sockets andere sein werden. Damit ein Prozess über den gleichen Socket mit mehr als einem anderen Prozess eine Verbindung aufbauen kann, wird in der Regel für jede Verbindung auf jedem host ein eigener Prozess kreiert.

Passives Open

Das Öffnen einer passiven TCP-Verbindung bedeutet, dass sich ein Prozess bereit erklärt, einen eingehenden Ruf anzunehmen. In der Regel wird in diesem Fall nur der lokale Socket angegeben. Kommt ein Ruf an, wird die Verbindung über einen weiteren Prozess aufgebaut, und der lokale Socket ist sofort bereit, mit einem anderen Prozess, der einen anderen Socket verwendet, eine weitere Verbindung aufzubauen. Häufig wird ein Prozess mit dieser Eigenschaft als Server bezeichnet.

Aktives Open

Das Öffnen einer aktiven TCP-Verbindung bedeutet, dass sofort eine Verbindung mit einem bestimmten Prozess aufgebaut werden soll. Daher muss (außer evtl. der lokale Socket) auch der Socket eines anderen TCP-Prozesses angegeben werden; viele Betriebssysteme vergeben den lokalen Socket automatisch, der dann mit Sicherheit unbelegt ist.