Sockets
Zur Navigation springen
Zur Suche springen
Allgemein
- Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient.
- Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen.
- Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden
- Oder auf einem anderen, über das Netzwerk erreichbaren Computer.
- Die Kommunikation über Sockets erfolgt in der Regel bidirektional.
- Über ein Socket können Daten sowohl empfangen als auch gesendet werden.
Funktionsprinzip
- Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der Anwendungssoftware.
- Ein Computerprogramm fordert einen Socket vom Betriebssystem an.
- Das Betriebssystem verwaltet alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen.
Internet-Sockets
- Internet-Sockets ermöglichen die Kommunikation über bestimmte Netzwerkprotokolle.
- Man unterscheidet zwischen Stream-Sockets und Datagram-Sockets.
- Stream-Sockets kommunizieren über einen kontinuierlichen Datenstrom.
- Datagram-Sockets über einzelne, in sich geschlossene Nachrichten.
- In der Netzwerkkommunikation verwenden Stream-Sockets meist TCP.
- Datagram-Sockets üblicherweise UDP.
- Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).
- Jedem Socket ist auch die eigene Adressinformation (lokale IP-Adresse und Portnummer) zugeordnet.
Server
- Ein Server wartet auf Anfragen auf einer oder mehreren Adressen.
- Wenn der Server eine Anfrage von einem Client erhält, wird die Verbindung geklont, sodass der Server weitere Anfragen bedienen kann.
- Unter Unix heißt diese Vorgehensweise Forking.
- Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen.
- Der geklonte Prozess wird nur für die Kommunikation mit diesem einen Client verwendet.
- Er bleibt bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.
Status
Es gibt zwei verschiedene Zustände:
listening
- Ein Server, der auf eingehende Verbindungen wartet.
- Er ist noch nicht verbunden.
- Dieser Socket stellt nur die grundsätzliche Möglichkeit einer Verbindung bereit.
connected
- Eine konkrete Instanz einer Verbindungsanfrage.
- Der Server-Prozess wurde geforkt.
- Ein konkreter Client wird bedient.
Es gibt drei Arten von Sockets
- Allgemein
- Unix-spezifisch