Was ist ein Internetanschluss?
Ein Internet-Socket ist ein Begriff, der einen Verbindungspunkt kennzeichnet, über den ein Computersoftwareprogramm Daten über das Internet übertragen kann. Sie sind keine physische Konstruktion wie eine Steckdose, sondern ein Computer-Software-Konzept. Mit einem solchen Socket können alle erforderlichen Daten von einem auf einem Computer ausgeführten Programm zu einem auf einem anderen Computer ausgeführten Programm übertragen werden. In vielen Fällen erfolgt dies von und zu einem Client und einem Server. Der Begriff wird auch verwendet, um eine Anwendungsprogrammierschnittstelle (API) zu bezeichnen, mit der Computerprogrammierer netzwerkfähige Anwendungen erstellen können, die Daten über das Internet senden und empfangen können.
Sockets arbeiten in den oberen Schichten des IP-Stacks (Internet Protocol), der so genannten Transportschicht, in der Daten von einer Anwendung über das Betriebssystem an das Netzwerk übertragen werden. Wenn eine Anwendung auf dem Computer Daten über eine Netzwerkverbindung senden und empfangen möchte, fordert sie das Betriebssystem auf, einen Internet-Socket zu öffnen. Der Socket besteht aus den Protokollinformationen wie UDP (User Datagram Protocol) oder TCP (Transmission Control Protocol) sowie den Sende- und Empfangsadressen beider Computer und der IP-Portnummer für die Verbindung. Es kann auch ein Internet-Socket erstellt werden, der das Betriebssystem umgeht und die Rohpakete sendet, ohne dass das Betriebssystem des Computers zuvor die zusätzlichen Socket-Informationen verarbeitet.
Wie auf einem Internet-Server üblich, startet die Server-Software und öffnet einen Listening-Socket. Wenn der Server eine Datenanforderung empfängt, erstellt er einen eindeutigen Socket für den anfordernden Client, über den er alle angeforderten Daten überträgt. Diese Verbindungstypen werden auch als Sitzung bezeichnet, da der Socket vom Server geschlossen wird, sobald der Client fertig ist. Auf diese Weise kann der Server eine beliebige Anzahl von Sockets gleichzeitig mit anderen Clients erstellen, von denen jeder eine eigene eindeutige Kennung hat, und Daten bereitstellen, die für jeden Client eindeutig sind.
Daher gibt es drei allgemeine Arten von Internet-Sockets. Ein solcher Typ ist der Datagramm-Socket. Hierbei handelt es sich um eine schnelle Socket-Verbindung, für die keine zusätzliche Kommunikation erforderlich ist, um eine dedizierte Verbindung herzustellen, bevor Datenpakete gesendet werden. Aus diesem Grund werden sie häufig als verbindungslose Sockets bezeichnet und verwenden UDP als Transportprotokoll. Sie sind insofern eine Art Feuer-und-Vergessen-Methode, als es keine Paketsequenzprüfung oder Fehlerkorrektur gibt.
Die verbindungsorientierten Sockets, die als Stream-Sockets bezeichnet werden, führen einige zusätzliche Schritte aus, um die Kommunikationsverbindung zwischen Client und Server herzustellen. Diese verwenden TCP oder ein anderes Protokoll, das als Stream Control Transmission Protocol (SCTP) bezeichnet wird, für den Transport. Diese Art von Internet-Socket ist zuverlässiger und kann auf Fehler wie fehlende Pakete reagieren.
Ein anderer einzigartiger Typ von Internet-Socket wird hauptsächlich für das Routing von Computernetzwerken verwendet. Dieser Socket-Typ überspringt die Transportschicht des IP-Stacks und leitet das Paket stattdessen direkt vom Netzwerk an die Anwendung weiter, wobei die Socket-Informationen noch intakt sind. Solche Raw-Sockets ermöglichen eine viel schnellere Zustellung von Paketen an die Anwendung, da das Betriebssystem des Computers nicht zuerst mit den Paketen zurechtkommt. Das Internet Control Message Protocol (ICMP) verwendet solche unformatierten Sockets, wenn ein Computer einfach einen anderen "pingen" möchte.