Basis für Bauteile und Programmkommunikation

Was sind Sockel oder Sockets?

| Autor / Redakteur: Ariane Rüdiger / Ariane Rüdiger

Sockets oder Sockel gibt es in der Hard- und der Softwarewelt
Sockets oder Sockel gibt es in der Hard- und der Softwarewelt (Bild: djama - stock.adob.com)

Der Begriff Sockel oder Englisch Socket kommt in der Hard- und der Softwaretechnik vor. Allerdings steht hier auf dem Sockel kein Denkmal wie so oft in der Nicht-IT-Welt, sondern eine Inter-Programm-Verbindung oder ein physisches Bauteil.

Der Begriff Sockel/Socket kommt in der IT sowohl in Verbindung mit Hard- und Software vor. Beide Begriffswelten haben einen gemeinsamen Kern: den der Verbindung –

  • bei Hardware zwischen einer physischen Ressource wie Speicher, Prozessor, Schalter, Akku beispielsweise und dem übrigen System,
  • bei der Software zwischen zwei Programmen.

Zunächst sei die auf die Hardware bezogene Begrifflichkeit erklärt. Der Socket/Sockel ist hier ein als Hardware realisierter Adapter für einen physischen Systembaustein. Letzteres kann grundsätzlich jede Komponente sein, die man üblicherweise auf einer Platine findet. Der Socket-Bauteil wird direkt auf die Platine gelötet und verbindet die jeweilige Komponente, die in ihn eingesteckt wird, mit dem Rest des Systems.

Hardware-Sockets: Immer mehr Pins

Als Verbindung dienen auf Seiten der Komponente Steckerbeine, so genannte Pins, und auf Seiten des Sockels Federkontakte, die für den richtigen Andruck des Pins sorgen. Die Zahl der pro Socket steckbaren Pins wächst aufgrund der immer dichteren und komplexeren Funktionen der aufgesteckten Komponenten, die ja irgendwie elektronisch nach außen geführt werden müssen.

Heute werden hohe dreistellige Pin-Zahlen von Sockets für entsprechend komplexe Bauteile erreicht. Die dichtesten Sockel haben mittlerweile nicht mehr nur an den Rändern Anschlüsse, sondern über die gesamte Grundfläche des Sockets verteilt (Array).

Sockets werden immer flacher

Ein weiterer Trend hat mit der zunehmenden Mobilität von Geräten zu tun: Sie werden immer flacher und filigraner, und mit ihnen die Sockets. Das müssen sie, um in Laptops oder Smartphones zu passen. Bei den Sockeln mit den geringsten Kontaktabständen betragen diese nur noch einen halben Millimeter – dazwischen passen gerade acht Blatt leichtes Druckpapier.

Hardware-Sockets haben den Vorteil, dass eine kaputte oder nicht mehr aktuelle Komponente einfach ausgetauscht werden kann: Man zieht sie per Hand oder mit einem Werkzeug aus dem Sockel und schiebt die aktuellere Variante, die Speichererweiterung oder was sonst herein. Das kann die Lebensdauer von Systemen verlängern, wenn sich etwa eine nicht mehr aktuelle CPU durch eine leistungsfähigere ersetzen lässt.

Sockets in der Softwaretechnik

In der Softwaretechnik gehört der Socket zur großen Gruppe der APIs (Application Programming Interface), also der Schnittstellen zwischen Programmen. Es handelt sich um ein standardisiertes Software-Objekt zum Aufsetzen von Applikationen auf die im Betriebssystem implementierten Vernetzungsprotokolle.

Historisch geht das Socket-Prinzip auf BSD-Unix zurück, das 1983 zum ersten Mal Sockets implementierte. Später flossen Sockets als Designprinzip in den POSIX- (Portable Operating System Interface)-Standard ein und sind damit in jedem POSIX-konformen Betriebssystem vorhanden. Microsoft implementiert Sockets als so genannte Winsocks.

Sockets ermöglichen die bidirektionale Kommunikation zwischen dem Betriebssystem und der aufgesetzten Applikation. Sie werden vom Betriebssystem auf Anfrage durch die Applikation bereitgestellt. Für die Kommunikation zwischen Betriebssystem und Applikation ist dafür nur eine funktionierende Netzverbindung erforderlich.

Socket-Implementierungen

Sockets für die Internet-Kommunikation gibt es in mehreren Varianten. Stream-Sockets übertragen direkt den Zeichenstrom von Programm zu Programm. Datagram-Sockets dagegen übertragen ganze Nachrichten, nutzen also eine höhere Ebene der ISO/OSI-Hierarchie.

So genannte Raw-Sockets erlauben es, eigene Header zu erstellen, was bei den zuerst genannten Sockets-Formaten nicht der Fall ist – sie machen die Header unzugänglich. Man braucht Sockets mit individuellen Headern vor allem für Netzequipment wie Router.

Programmiersprachen enthalten Komponenten, die die Programmierung von Sockets erleichtern. In Java beispielsweise packt dies in das Programmpaket java.net.

Speziell für die Event-induzierte Echtzeit-Kommunikation ist die Open-Source-Bibliothek socket.io von npm gedacht: Sie kann einem Client über Sockets bei Events Push-Nachrichten schicken, was etwa für Chat- oder IoT (Internet of Things)-Anwendungen notwendig ist.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45883430 / Definitionen)