Sockets: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 13: Zeile 13:
 
=Internet-Sockets=
 
=Internet-Sockets=
 
*Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle.
 
*Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle.
*Generell kann man unterscheiden zwischen Stream Sockets und Datagram Sockets
+
*Man unterscheidet zwischen Stream Sockets und Datagram Sockets
 
*Stream Sockets kommunizieren über einen Zeichen-Datenstrom
 
*Stream Sockets kommunizieren über einen Zeichen-Datenstrom
 
*Datagramm Sockets über einzelne Nachrichten.  
 
*Datagramm Sockets über einzelne Nachrichten.  
 
*In der Netzwerkkommunikation verwenden Stream Sockets meist TCP
 
*In der Netzwerkkommunikation verwenden Stream Sockets meist TCP
 
*Datagramm Sockets üblicherweise UDP.  
 
*Datagramm Sockets üblicherweise UDP.  
*Ein Socket ist normalerweise die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).  
+
*Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).  
 
*Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet.
 
*Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet.
 +
 
=Server=
 
=Server=
 
*Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten  
 
*Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten  
*Wenn der Server eine Anfrage von einem Client erhält, wird praktisch die Verbinung geklont so das der Server weitere Anfragen bedienen kann.
+
*Wenn der Server eine Anfrage von einem Client erhält, wird praktisch die Verbindung geklont so das der Server weitere Anfragen bedienen kann.
*Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen,
+
*Unter Unix heißt diese Vorgehensweise [[Prozesse Eltern und Kinder|Forking]].
*Der geclonte Prozesse wird nur für die Kommunikation mit diesem einen Client verwendet
+
*Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen.
*Er bleibt solange bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.  
+
*Der geklonte Prozess wird nur für die Kommunikation mit diesem einen Client verwendet.
*Unter Unix heisst diese Vorgehensweise Forking
+
*Er bleibt bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.
 +
 
 
=Status=
 
=Status=
 
Es gibt nun 2 verschiende Zustände
 
Es gibt nun 2 verschiende Zustände

Aktuelle Version vom 15. Februar 2023, 07:55 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 einem anderen, via Netzwerk erreichbaren Computer befinden.
  • Die Kommunikation über Sockets erfolgt in der Regel bidirektional,
  • Daten können über das 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 eigentlichen Anwendungssoftware.
  • Ein Computerprogramm fordert einen Socket vom Betriebssystem an.
  • Das Betriebssystem hat die Aufgabe, alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen zu verwalten.

Internet-Sockets

  • Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle.
  • Man unterscheidet zwischen Stream Sockets und Datagram Sockets
  • Stream Sockets kommunizieren über einen Zeichen-Datenstrom
  • Datagramm Sockets über einzelne Nachrichten.
  • In der Netzwerkkommunikation verwenden Stream Sockets meist TCP
  • Datagramm Sockets üblicherweise UDP.
  • Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).
  • Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet.

Server

  • Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten
  • Wenn der Server eine Anfrage von einem Client erhält, wird praktisch die Verbindung geklont so das 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 nun 2 verschiende Zustände

listening

  • Ein Server der auf eingehende Verbindungen wartet.
  • Er ist konkret nicht verbunden.
  • Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit

connected

  • Eine konkrete Instanz einer Verbindungsanfrage
  • Der Server Prozesss wurde geforkt
  • Ein konkreter Client wird bedient.

Es gibt 3 Arten von Sockets

Allgemein
Unix spezifisch