Glossar

  1. Home
  2. Glossar
socket

Die Frage "Was ist ein Socket" eignet sich hervorragend Informatiker aus der Reserve zu locken. Denn der Begriff wird oft umgangssprachlich verwendet aber die eigentliche Definition kennt keiner. Dazu kommt noch, dass in unterschiedlichen Kontexten der Begriff völlig unterschiedlich verwendet wird. Selbst Wikipedia hat auf unterschiedlichen Seiten unterschiedliche Erklärungen für den Begriff.

 

Die häufigste Erklärung und auch die einfachste lautet, dass ein Socket einfach nur die Kombination aus IP-Adresse und Port ist. Das ist mir persönlich zu allgemein gehalten. 

 

Um den Begriff zu erklären müssen wir etwas zurück in der Geschichte. Ursprünglich stammt der Begriff aus der Netzwerk-Implementierung der Betriebssysteme. So hat das Betriebssystem der Anwendungssoftware sozusagen einen stehenden Kanal zur Übertragung von Daten zur Verfügung gestellt, wie ein Sekretär einen ranghohen Politiker auch eine stehende Verbindung zur Verfügung stellt. Dabei wurde dann aber nochmal unterschieden zwischen Stream-Sockets und Datagram Sockets. Bei einem Stream Socket wird ein Strom an Daten übermittelt, der nicht mehr aufhört, ähnlich wie bei einem offenen Wasserhahn. Bei einem Datagram Socket werden einzelne Nachrichten gesendet wie bei einem tropfenden Wasserhahn. In beiden Fällen jedoch ist die Leitung permanent geöffnet. Der Vorteil von einem Socket, also einer stehenden Verbindung, ist, dass nicht ständig neue Verbindungen aufgebaut werden müssen. Stellen Sie sich eine Unterhaltung vor bei der sie nach jedem Satz neu wählen müssen. Ziemlich umständlich oder? Und genau dafür gibt es eben Sockets, die dann viele Header-Daten nicht erneut übermitteln müssen und auch erst gar keine neue Verbindung aushandeln müssen.

 

Es gibt auch noch stehende Verbindungen zwischen Netzwerkgeräten, diese benötigen manchmal die Header-Daten trotzdem, dann spricht man von RAW Sockets. 

 

Manchmal werden auch gar keine IP-Adresse verwendet, sonder z.B. Pfadangaben, dann handelt es sich um so genannte UNIX Domain Sockets.

 

Und wem es jetzt noch nicht reicht, der kann sich über Websockets informieren.