Sockets: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 1: | Zeile 1: | ||
=Allgemein= | = Allgemein = | ||
*Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient. | * Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient. | ||
*Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen. | * Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen. | ||
*Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden | * Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden | ||
*Oder einem anderen, | * Oder auf einem anderen, über das Netzwerk erreichbaren Computer. | ||
*Die Kommunikation über Sockets erfolgt in der Regel bidirektional | * 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. | |||
*Ein Socket | |||
* | |||
= | = 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 [[Prozesse Eltern und Kinder|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. | ||
;Unix spezifisch | == connected == | ||
*[[UNIX Sockets]] | * Eine konkrete Instanz einer Verbindungsanfrage. | ||
* Der Server-Prozess wurde geforkt. | |||
* Ein konkreter Client wird bedient. | |||
= Es gibt drei Arten von Sockets = | |||
; Allgemein | |||
* [[TCP Sockets]] | |||
* [[UDP Sockets]] | |||
; Unix-spezifisch | |||
* [[UNIX Sockets]] | |||
Version vom 4. November 2025, 22:11 Uhr
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