Zum Inhalt springen

Informatik · Klasse 10–13 · aktualisiert

Socket: Netzwerk-Endpunkte einfach erklärt

Du lernst, wie Programme über Sockets Daten austauschen, ihre Zugänge adressieren und typische Fehler beim Empfangen vermeiden.

0 von 9 Aufgaben gelöst

Socket: Netzwerk-Endpunkte einfach erklärt

Kurz gesagt

Ein Socket ist ein Zugang zur Netzwerkkommunikation, den das Betriebssystem, die Verwaltungssoftware des Geräts, für ein Programm bereitstellt. Seine Adresse auf dem eigenen Gerät besteht hier aus Netzwerkadresse und Portnummer zur Zuordnung des Datenverkehrs, sobald sie festgelegt ist.

Programme können über ein Netz miteinander kommunizieren. Dafür nutzen sie Sockets und wählen Regeln für die Übertragung. Hier betrachten wir Sockets für IP: IP steht für Internet Protocol, ein Regelwerk zur Adressierung von Netzwerkanschlüssen und zur Weiterleitung von Daten.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Ein Socket ist ein vom Betriebssystem verwalteter Zugang zur Netzwerkkommunikation. Man nennt ihn auch Endpunkt: Er bildet die Seite eines Programms bei der Kommunikation. Ein Socket kann zum Beispiel auf neue Verbindungen warten oder dem Austausch von Daten dienen. Ein Programm kann mehrere Sockets nutzen.

Eine IP-Adresse bezeichnet einen Netzwerkanschluss eines Geräts. Eine Portnummer kennzeichnet einen nummerierten Programmzugang auf diesem Gerät. Zusammen bilden IP-Adresse und Portnummer die lokale Adresse eines IP-Sockets. Lokal bedeutet hier: auf dem eigenen Gerät. Die Portnummer legt nicht die Übertragungsart fest; diese wird zusätzlich gewählt.

In unseren Beispielen trennt ein Doppelpunkt IP-Adresse und Portnummer. Bei 127.0.0.1:46210 ist 127.0.0.1 die IP-Adresse und 46210 die Portnummer. Die besondere IP-Adresse 127.0.0.1 führt zum eigenen Gerät. Ein daran gebundener Dienst, also ein angebotener Programmzugang, ist über diese Adresse vom selben Gerät aus erreichbar. Andere Geräte erreichen ihn über diese Adresse nicht.

Ein neu erzeugter Socket hat noch keine vollständig festgelegte lokale Adresse. Erst bei seiner weiteren Verwendung wird sie festgelegt. Die lokale Adresse beschreibt außerdem noch keine ganze Verbindung: Dazu gehören auch die Adresse der Gegenseite und die gewählte Übertragungsart.

Definition

Socket

Ein Socket ist ein vom Betriebssystem verwalteter Endpunkt für die Netzwerkkommunikation eines Programms.

Beispiel: Zwei ausgedachte Dienste auf demselben Gerät

  1. 1Der erste Dienst nutzt die lokale Adresse 127.0.0.1:46210.
  2. 2Der zweite Dienst nutzt die lokale Adresse 127.0.0.1:46211.
  3. 3Beide Adressen führen zum eigenen Gerät. Die verschiedenen Portnummern unterscheiden die beiden Programmzugänge.

Teste dich

LeichtEin ausgedachter Dienst nutzt die lokale Adresse 127.0.0.1:47320. Welche Aussage stimmt?

Alles auf einen Blick

Socket

  • Adresse

    IP-Adresse und Portnummer bilden hier die lokale Socket-Adresse, sobald sie festgelegt ist. Die Übertragungsart wird zusätzlich gewählt.

  • TCP

    Empfangene Bytes werden geordnet bereitgestellt. Verlorene Pakete werden erneut übertragen, doch dauerhafte Netzfehler können die Übertragung scheitern lassen.

  • UDP

    Datagramme haben Nachrichtengrenzen, können aber fehlen, vertauscht oder doppelt ankommen.

  • Server

    Der lauschende Socket bleibt für Verbindungswünsche bereit. accept() liefert einen verbundenen Socket für den Datenaustausch.

  • Empfang

    Ein einzelnes recv() muss keine vollständige TCP-Nachricht liefern. Das Programm braucht eine Regel zum Erkennen ihrer Grenze.

Musteraufgabe · Schritt für Schritt

Eine TCP-Nachricht in einer ausgedachten Übung zusammensetzen

  1. 1Vereinbarung: Jede Nachricht umfasst acht Bytes. Jeder gezeigte Buchstabe belegt ein Byte. Gesendet wird „BAUSTEIN“.
  2. 2In dieser möglichen Ausführung liefert recv(8) zunächst „BAU“. Drei Bytes sind da, fünf fehlen.
  3. 3recv(5) liefert danach „ST“. Jetzt liegen insgesamt fünf Bytes vor, drei fehlen.
  4. 4recv(3) liefert anschließend „EIN“. Zusammengesetzt entsteht „BAUSTEIN“ mit acht Bytes.
  5. 5Die vereinbarte Länge ist erreicht, also ist diese Nachricht vollständig. Andere Aufteilungen wären ebenfalls möglich; bei einem vorzeitigen Ende oder Fehler wäre die Nachricht unvollständig.

Fehler finden

Prüfe den Empfang einer ausgedachten TCP-Nachricht In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Bei der lokalen Adresse 127.0.0.1:49120 bezeichnet die Zahl hinter dem Doppelpunkt die . Für eine Verbindung mit geordnetem Datenstrom und Wiederholung verlorener Pakete wählt ein Programm ; ein dauerhafter Netzfehler kann trotzdem zum Abbruch führen. Eine ausgedachte TCP-Nachricht umfasst sieben Bytes. Der erste Empfang liefert drei Bytes. Bis zur vollständigen Nachricht fehlen noch Bytes.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Socket

LeichtZwei ausgedachte TCP-Dienste nutzen dieselbe IP-Adresse, aber die Portnummern 50210 und 50211. Welche Aussage stimmt?
MittelEin erfundener TCP-Wörterdienst hat seinen Server-Socket erzeugt und mit bind() an eine lokale Adresse gebunden. Welcher Aufruf bereitet diesen Socket als Nächstes auf eingehende Verbindungswünsche vor?
SchwerFür eine erfundene UDP-Übung sind besondere Funktionen zum Bündeln mehrerer Datagramme ausgeschaltet. connect() hat ein Standardziel gesetzt. Der Empfangspuffer ist groß genug für jedes Datagramm. Zwei Datagramme werden gesendet. Welche Aussage stimmt?

Weiterlesen in Informatik