Socket

Ein Socket ist bekannt als eine Art von Software, die als Endpunkt fungiert, der beim Aufbau einer bidirektionalen Netzwerkkommunikationsverbindung zwischen der Serverseite und dem Empfangsprogramm des Clients dient.[1] Es wird auch oft als ein Endpunkt in einem Zweiwege-Kommunikationskanal bezeichnet. Diese Sockets werden zusammen mit einer Reihe von Programmieranforderungen erstellt und mobilisiert, die als Funktionsaufrufe identifiziert werden, die technisch als Application Programming Interface (API) bezeichnet werden. Ein Socket kann die Funktionsweise eines Programms vereinfachen, da sich die Programmierer nun nur noch um die Manipulation der Socket-Funktionen kümmern müssen und sich so darauf verlassen können, dass das Betriebssystem die Nachrichten tatsächlich korrekt über das Netzwerk transportiert.[2]

Funktionalität

Normalerweise hält sich ein Socket an einen bestimmten Ablauf von Ereignissen, damit er funktioniert. Bei einem verbindungsorientierten Client-zu-Server-Modell wartet der Socket im Serverprozess auf die Anforderung eines Clients. Um dies zu erreichen, muss der Server in erster Linie eine Adresse festlegen, über die die Clients den Server finden und mit ihm verbinden können. Wenn eine Verbindung erfolgreich hergestellt wurde, wartet der Server darauf, dass die Clients einen Dienst anfordern. Der Datenaustausch zwischen Client und Server findet statt, wenn sich der Client über den Socket mit dem Server verbindet. Der Server beantwortet dann die Anfrage des Kunden und sendet eine Antwort.[3]

Meistens werden URLs und deren Verbindungen verwendet, um auf das Internet zuzugreifen. Programme erfordern eine einfache Kommunikationsverbindung zwischen der Client- und der Serverseite des Programms. Diese Rolle ist mit einem Socket verbunden, der dazu beiträgt, die Client- und Server-Enden des Programms zu verbinden. Wenn ein Client beginnt, eine Verbindung mit dem Server herzustellen, wird eine zuverlässige Server- und Client-Verbindung über den TCP-Kommunikationskanal hergestellt. Bei dieser Art der Kommunikation können sowohl der Client als auch der Server Sockets lesen oder schreiben, die an einen bestimmten Kommunikationskanal gebunden sind.[^04]

Arten von Steckdosen

Im Folgenden finden Sie verschiedene Arten von Steckdosen:

Datagramm-Sockel

Dies ist eine Art Netzwerk-Sockel, der einen verbindungslosen Punkt zum Senden und Empfangen von Datenpaketen bietet. Jedes Paket, das von einem Datagramm-Socket gesendet wird, wird einzeln weitergeleitet und zugestellt. Es kann auch zum Senden und Empfangen von Broadcast-Meldungen verwendet werden.

Rohsteckdosen

Dieser Socket ermöglicht den Zugriff auf den zugrunde liegenden Transportanbieter. Diese sind in der Lage, den Benutzern Zugriff auf die zugrunde liegenden Kommunikationsprotokolle zu gewähren, die Socket-Abstraktionen unterstützen. Normalerweise sind diese datagrammorientiert, obwohl ihre genauen Eigenschaften von der vom Protokoll bereitgestellten Schnittstelle abhängig sind. Diese sind nicht für den allgemeinen Gebrauch bestimmt, aber sie wurden hauptsächlich für diejenigen bereitgestellt, die an der Entwicklung neuer Kommunikationsprotokolle interessiert sind oder für den Zugang zu einigen kryptischen Einrichtungen bereits existierender Protokolle.

Sequenzierte Pakete Sockets

Dies ist jedoch ähnlich wie bei einem Stream Socket, mit der Ausnahme, dass die Datensatzgrenzen erhalten bleiben. Diese Art von Socket ermöglicht es den Benutzern, die Header des Sequenzpaketprotokolls (SPP) oder des Internet Datagram Protocol (IDP) auf einem Paket oder sogar einer Gruppe von Paketen zu manipulieren. Dieser Socket ermöglicht es dem Benutzer auch, Header für eingehende Pakete zu empfangen.

Stream-Sockel

Diese Art von Socket basiert auf TCP, um Daten zu übertragen. Wenn die Datenübermittlung nicht möglich ist, erhält der Absender einen Hinweis, dass die Verbindung zu einem Fehler geführt hat. Die Datensätze haben keine Grenzen.[4] Dieser Socket bietet einen verbindungsorientierten, sequenzierten und eindeutigen Datenfluss ohne Datensatzgrenzen, mit klar definierten Mechanismen zum Erstellen und/oder Zerstören von Verbindungen und zur Fehlererkennung. Es überträgt zuverlässige Daten, in der Reihenfolge und ohne Out-of-Band-Fähigkeiten. Es wird davon ausgegangen, dass Prozesse nur zwischen Sockets desselben Typs kommunizieren, aber es gibt keine Einschränkung, die die Kommunikation zwischen diesen Sockets verschiedener Typen verhindert.

Aktive Buchse

Dies ist eine Socket-Verbindung mit den Remote-Aktivbuchsen über eine offene Datenverbindung. Wird diese Verbindung geschlossen, werden auch die aktiven Buchsen an jedem Punkt zerstört. Dies wird von den Clients verwendet, die Verbindungsanforderungen für die Verbindung initiieren möchten. Diese aktive Buchse kann aber auch in eine passive Buchse umgewandelt werden, indem man mit dem Bindemakro einen Namen an die Buchse bindet und die Bereitschaft signalisiert, Verbindungen mit dem Listenmakro anzunehmen.

Passive Buchse

Dieser Socket ist nicht verbunden, sondern wartet auf eine eingehende Verbindung, die einen neuen aktiven Socket erzeugt. Dies wird von den Servern verwendet, um Verbindungsanforderungen mit dem Verbindungsmakro entgegenzunehmen. Dieser passive Sockel kann nicht für die Einleitung von Verbindungsanforderungen verwendet werden. Die Konzepte der aktiven und passiven Sockel für Stream-Sockets gelten nicht für die anderen Arten von Sockets, wie beispielsweise den Datagramm-Sockel.[5]

Anschlüsse und Buchsen

Ein Socket ist eine Schnittstelle zum Senden und Empfangen von Daten über einen bestimmten Port, während ein Port ein numerischer Wert ist, der einem bestimmten Prozess oder einer Anwendung in der Vorrichtung zugeordnet ist.[6] Obwohl es eine enge Beziehung zwischen einem Socket und einem Port gibt, ist der Socket nicht wirklich ein Port. Jeder Port kann einen einzelnen passiven Sockel haben, der auf die eingehenden Verbindungen wartet, und mehrere aktive Sockel, die jeweils einer offenen Verbindung im Port entsprechen.[1:1] Heutzutage macht der Sockel die Kommunikation einfacher und effizienter. Es ermöglicht die Herstellung einer Verbindung zwischen zwei verschiedenen Prozessen auf derselben oder verschiedenen Maschinen. Einfach ausgedrückt, ist es eine Möglichkeit, mit einem anderen Computer zu kommunizieren.

Historie

Die Verwendung des Begriffs "Socket" begann 1971, wo er bei der Entwicklung von ARPANET verwendet wurde. Die meisten der heute realisierten Sockel basieren auf Berkerley-Sockeln, die 1983 entwickelt wurden. Sockets, die zum Aufbau einer Internetverbindung verwendet werden, sind jedoch nach den Winsock-Modellen von 1991 aufgebaut. Berkerley-Sockel werden auch als BSD-Sockel bezeichnet. 1989 veröffentlichte Berkerley Versionen seines Betriebssystems und seiner Netzwerkbibliothek frei von Lizenzbeschränkungen. Weitere frühe Implementierungen wurden für TOPS-20, MVS, VM und IBM-DOS geschrieben.


  1. https://www.techopedia.com/definition/16208/socket ↩︎ ↩︎

  2. https://www.webopedia.com/TERM/S/socket.html ↩︎

  3. https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzab6/howdosockets.htm ↩︎

  4. https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm ↩︎

  5. https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.hala001/astream.htm ↩︎

  6. http://pediaa.com/difference-between-socket-and-port/ ↩︎