6.1. Die Socket-Schnittstelle

6.1.1. Wozu gibt es Sockets?

Bisher hat uns die Schnittstelle zwischen benachbarten Schichten (z.B. zwischen Internet- und Transportschicht oder zwischen Subnetz- und Internet-Schicht) nicht besonders interessiert, weil diese Schnittstellen eine "innere Angelegenheit" der TCP/IP-Implementierung darstellen und (normalerweise) nur für den Betriebssystem-Entwickler von Interesse sind.

Bei der Schnittstelle zwischen der Transportschicht (TCP/UDP) und den Anwendungen ist das aus mehreren Gründen etwas anders:

Die heute dominierende Socket-Schnittstelle wurde etwa 1983 mit 4.2BSD-Unix (Berkeley Software Distribution) eingeführt. Über die Socket-Schnittstelle ("Steckdose") greifen Anwendungen (Klienten wie auch Server) auf die bisher behandelten "Kernprotokolle" zu:

Die Socket-Schnittstelle sieht übrigens auch die Benutzung anderer Netzwerk-Protokolle vor, auch wenn heute die Verwendung für TCP/UDP/IP dominiert.

Da unterschiedliche Anwendungen durch unterschiedliche Portnummern auseinandergehalten werden, kommen dabei auch unterschiedliche Sockets zum Einsatz. Nicht ganz so offensichtlich ist die Tatsache, daß zu einer Portnummer auch mehrere Sockets gehören können. Das ist beispielsweise dann der Fall, wenn ein Server (gleichzeitig) Verbindungen zu unterschiedlichen Klienten unterhält:

Wir sehen in dem Bild sogar noch einen dritten Socket, der nur die Aufgabe hat, auf weitere Klienten zu warten.

Als Anwendung können Sie sich hier beispielsweise TELNET vorstellen. Klient1 und Klient2 unterhalten eine Verbindung zum Server. Auf der Serverseite finden zwei unterschiedliche Sockets Verwendung, obwohl die Portnummer auf der Serverseite immer dieselbe ist (23). Die Software "unterhalb" der Sockets kann die beiden Verbindungen unterscheiden, weil die IP-Adresse des Absenders und/oder der Absenderport unterschiedlich ist.


Frage 6.1.1:

Wenn beide Telnet-Verbindungen von demselben Rechner kommen, wie ist dann gesichert, daß sich die Absender-Portnummern unterscheiden?


Den IP-Paketen auf der Leitung kann man übrigens nicht ansehen, daß sie durch eine Socket-Schnittstelle hindurchgegangen sind. Sockets sind also hauptsächlich für den Entwickler von Netzsoftware interessant, was hier keinen Schwerpunkt darstellt.

Eine Grundvorstellung von Funktionsweise und Handhabung der Socket-Schnittstelle ist aber auch für den Anwender und erst recht für den Netz-Administrator interessant, weil man bei Diagnose- und Konfigurierungsarbeiten häufiger auf die "Socket-Begriffswelt" trifft.


© Uwe Hübner, 28.6.1998