Eine interaktive Lernseite zum Aufgabenblatt 09: das Schichtenmodell animiert, TCP- und UDP-Abläufe als Simulation, der komplette Quellcode Zeile für Zeile erklärt, ein Fachwortglossar und ein Quiz zur Selbstkontrolle.
Sieben Schichten teilen die Netzwerkkommunikation in klar getrennte Aufgaben. Jede Schicht bietet der Schicht darüber Dienste an und nutzt die Dienste der Schicht darunter. Klicke eine Schicht an, um Kernaufgabe, Funktionen und Protokolle zu sehen.
Beim Senden wandert die Nachricht von oben nach unten durch die Schichten — jede Schicht verpackt sie in einen eigenen Header (Kapselung). Beim Empfänger wird von unten nach oben wieder ausgepackt (Entkapselung). Dabei ändert sich der Name der Dateneinheit: Daten → Segment → Paket → Rahmen → Bits.
{{ encNote }}
In der Praxis benutzt man den TCP/IP-Stapel mit nur vier Schichten. Er fasst die oberen OSI-Schichten 5–7 zu einer Anwendungsschicht zusammen. Die Zuordnung im Überblick:
Sockets sind die Schnittstelle zwischen deinem Programm (Schicht 7) und dem Netzwerk-Stack des Betriebssystems (Schicht 4 und darunter). Sie verbergen TCP, UDP, IP und das Framing hinter einer einheitlichen, datei-ähnlichen API.
IP-Adresse = welcher Rechner? (Schicht 3). Port = welcher Dienst auf dem Rechner? (Schicht 4). Erst beide zusammen adressieren einen Endpunkt.
Bevor ein einziges Nutzbyte fließt, handeln Client und Server eine Verbindung aus (3-Way-Handshake). Danach garantiert TCP Vollständigkeit und Reihenfolge. Spiele den kompletten Lebenszyklus einer Verbindung durch:
{{ tcpNote }}
Jeder empfangene Block wird per ACK bestätigt. Verlorene Pakete werden automatisch neu übertragen.
Segmente werden nummeriert und in der richtigen Reihenfolge an die Anwendung ausgeliefert.
Das Empfangsfenster verhindert, dass ein schneller Sender einen langsamen Empfänger überflutet.
TCP liefert einen kontinuierlichen Bytestrom ohne Nachrichtengrenzen — deshalb ist recvAll() nötig.
Ein send() von 32 784 Bytes wird vom Netzwerk in beliebige Häppchen zerlegt. Ein einzelnes recv() gibt zurück, was gerade da ist — mal viel, mal wenig. Erst die Schleife setzt die Nachricht wieder zusammen.
UDP verzichtet auf Handshake, ACKs und Zustand. Das macht es schnell und schlank — aber Pakete können verloren gehen, und niemand merkt es. Simuliere beide Fälle:
{{ udpNote }}
Die erste Operation sendto() verschickt sofort das Datagramm — keine Round-Trip für einen Handshake.
Pakete können verloren gehen, dupliziert oder in falscher Reihenfolge ankommen — UDP meldet das nicht.
Ein sendto() = genau ein Datagramm. recvfrom() liefert es vollständig — oder gar nicht. Kein recvAll() nötig.
Header nur 8 Bytes (TCP: 20–60). Kein Handshake, keine ACKs, kein Zustand → niedrige Latenz.
UDP spart eine komplette Round-Trip — den Handshake. Genau deshalb hat UDP bei kleinen Nachrichten die niedrigere RTT.
In beiden Szenarien geht unterwegs genau ein Paket verloren — doch die richtige Reaktion ist völlig verschieden. Links eine Online-Zahlung über TCP, rechts ein MMO über UDP. Spiele beide gleichzeitig ab und vergleiche, was passiert.
{{ payNote }}
{{ gameNote }}
Ein Datagramm könnte verloren gehen oder doppelt ankommen — der Betrag würde unvollständig übertragen oder doppelt abgebucht, ohne dass es jemand merkt. Für Geld ist das inakzeptabel.
Ein verlorenes Paket blockiert alle nachfolgenden, bis es neu übertragen ist (Head-of-Line-Blocking). Der Charakter friert kurz ein und springt dann — ein Lag-Spike. Eine 50 ms alte Position hilft ohnehin niemandem.
Die Faustregel: Wo Vollständigkeit zählt, gewinnt TCP. Wo Aktualität zählt, gewinnt UDP.
Elf Funktionen genügen, um über TCP und UDP zu kommunizieren. Der farbige Marker zeigt, wo jede Funktion im Ablauf steht — auf der Server-Seite, nur bei TCP, nur bei UDP oder bei beiden.
{{ s.desc }}
Fünf C++-Dateien bilden das Matrixmultiplikations-Beispiel über das Netzwerk. Wechsle oben die Datei und klicke eine markierte Zeile (blauer Punkt) — rechts erscheint die Erklärung. Mit ◀ ▶ springst du durch alle erklärten Zeilen.
Die fünf Aufgaben des Blattes — jeweils mit Fragestellung und ausführlicher Musterlösung. Versuche die Antwort erst selbst, dann klappe die Lösung auf und vergleiche.
{{ it.a }}
Alle wichtigen Begriffe kompakt erklärt. Filtere nach Kategorie oder suche direkt nach einem Wort.
{{ g.d }}
16 Fragen zu OSI, TCP, UDP und Sockets. Wähle eine Antwort — die Lösung und eine kurze Erklärung erscheinen sofort.
{{ quizExpl }}
Formuliere die Antwort erst selbst, dann aufklappen und mit der Musterlösung vergleichen.