Sockets: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 45: Zeile 45:
 
= Es gibt drei Arten von Sockets =
 
= Es gibt drei Arten von Sockets =
 
==TCP Sockets==
 
==TCP Sockets==
===Eigenschaften==
+
===Eigenschaften===
 
*Socket besteht aus einer Kombination von IP Adresse und Port
 
*Socket besteht aus einer Kombination von IP Adresse und Port
 
*Der Socket ist einem Service zu gewiesen
 
*Der Socket ist einem Service zu gewiesen

Version vom 29. März 2026, 11:13 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.

TCP 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

TCP Sockets

Eigenschaften

  • Socket besteht aus einer Kombination von IP Adresse und Port
  • Der Socket ist einem Service zu gewiesen
  • Es wird eine Verbindung genutzt die etabliert wird
  • Diese Verbindung wird auch wieder abgebaut

Schaubild

Beispiel

Der Socket mit der IP Adresse 192.168.4.1 und dem Port 80 ist dem Service named zugewiesen.

tcp 192.168.4.1:80 LISTEN httpd

UDP Sockets

Unix-spezifisch

UNIX Sockets