Sockets: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
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, via Netzwerk erreichbaren Computer befinden.
+
* 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.
*Daten können über das Socket können Daten sowohl empfangen als auch gesendet werden.
+
* Über ein Socket können Daten sowohl empfangen als auch gesendet werden.
=Allgemeines Funktionsprinzip=
+
 
*Sockets bilden eine plattformunabhängige standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der eigentlichen Anwendungssoftware.  
+
= Funktionsprinzip =
*Ein Computerprogramm fordert einen Socket vom Betriebssystem an.  
+
* Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der Anwendungssoftware.
*Das Betriebssystem hat die Aufgabe, alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen zu verwalten.
+
* Ein Computerprogramm fordert einen Socket vom Betriebssystem an.
=Internet-Sockets=
+
* Das Betriebssystem verwaltet alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen.
*Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle.
+
 
*Generell kann man unterscheiden zwischen Stream Sockets und Datagram Sockets
+
= Internet-Sockets =
*Stream Sockets kommunizieren über einen Zeichen-Datenstrom
+
* Internet-Sockets ermöglichen die Kommunikation über bestimmte Netzwerkprotokolle.
*Datagramm Sockets über einzelne Nachrichten.  
+
* Man unterscheidet zwischen Stream-Sockets und Datagram-Sockets.
*In der Netzwerkkommunikation verwenden Stream Sockets meist TCP
+
* Stream-Sockets kommunizieren über einen kontinuierlichen Datenstrom.
*Datagramm Sockets üblicherweise UDP.  
+
* Datagram-Sockets über einzelne, in sich geschlossene Nachrichten.
*Ein Socket ist normalerweise die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).  
+
* In der Netzwerkkommunikation verwenden Stream-Sockets meist TCP.
*Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet.
+
* Datagram-Sockets üblicherweise UDP.
=Server=
+
* Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).
*Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten
+
* Jedem Socket ist auch die eigene Adressinformation (lokale IP-Adresse und Portnummer) zugeordnet.
*Wenn der Server eine Anfrage von einem Client erhält, wird praktisch die Verbinung geklont so das der Server weitere Anfragen bedienen kann.
+
 
*Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen,
+
= Server =
*Der geclonte Prozesse wird nur für die Kommunikation mit diesem einen Client verwendet
+
* Ein Server wartet auf Anfragen auf einer oder mehreren Adressen.
*Er bleibt solange bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.  
+
* Wenn der Server eine Anfrage von einem Client erhält, wird die Verbindung geklont, sodass der Server weitere Anfragen bedienen kann.
*Unter Unix heisst diese Vorgehensweise Forking
+
* Unter Unix heißt diese Vorgehensweise [[Prozesse Eltern und Kinder|Forking]].
=Status=
+
* Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen.
Es gibt nun 2 verschiende Zustände
+
* Der geklonte Prozess wird nur für die Kommunikation mit diesem einen Client verwendet.
==listen==
+
* Er bleibt bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.
*Ein Server der auf eingehende Verbindungen wartet.
+
 
*Er ist konkret nicht verbunden.
+
= Status =
*Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit
+
Es gibt zwei verschiedene Zustände:
==connectet==
+
 
*Eine konkrete Instanz einer Verbindungsanfrage
+
== listening ==
*Der Server Prozesss wurde geforkt
+
* Ein Server, der auf eingehende Verbindungen wartet.
*Ein konkreter Client wird bedient.
+
* Er ist noch nicht verbunden.
=Es gibt 3 Arten von Sockets=
+
* Dieser Socket stellt nur die grundsätzliche Möglichkeit einer Verbindung bereit.
*[[TCP Sockets]]
+
 
*[[UDP Sockets]]
+
== 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]]

Aktuelle Version vom 4. November 2025, 20: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