Ein Netzwerkprotokoll ist eine festgelegte Regel, die bestimmt, wie Daten zwischen Computern ausgetauscht werden. Es…
- …definiert den Ablauf einer Kommunikation.
- …definiert den Aufbau der Datenpakete.
- …existiert auf unterschiedlichen Ebenen.
Protokolle bei uns Menschen
Nehmen wir als Beispiel eine Diskussion zwischen zwei Fremden: Die eine Person (Alice) fragt jemand anderes (Bob) nach der Uhrzeit:
| Alice | «Guten Tag, darf ich Sie etwas fragen?» | |
| «Hallo, klar, schiessen Sie los!» | Bob | |
| Alice | «Wie spät ist es?» | |
| «Es ist 14:28 Uhr.» | Bob | |
| Alice | «Danke und einen schönen Tag, tschüss.» | |
| «Kein Problem, Ihnen auch, wiedersehen!» | Bob |
Dabei fragen wir nicht direkt, wir begrüssen uns zuerst und stellen klar, dass wir etwas fragen möchten. Wenn wir also die obenstehende Diskussion in drei Teile zerlegen, dann können wir die drei Anfragen von Alice je einer Schicht zuteilen:
| «Guten Tag, darf ich Sie etwas fragen?» | Transport |
| «Hallo, klar, schiessen Sie los!» | |
| «Wie spät ist es?» | Anwendung |
| «Es ist 14:28 Uhr.» | |
| «Danke und einen schönen Tag, tschüss.» | Transport |
| «Kein Problem, Ihnen auch, wiedersehen!» |
Auf der Transportschicht wird eine Verbindung hergestellt und diese am Schluss auch wieder getrennt. Dies ist für alle Anfragen gleich. Die eigentlichen Daten werden dann in der Anwendungsschicht übermittelt, also dort, wo die Frage gestellt und eine Antwort darauf gegeben wird. Dies funktioniert beim Computer auf gleiche Weise. Gewisse Protokolle regeln die Verbindung zwischen zwei Geräten, andere definieren den Aufbau der Datenpakete für die Anwendungen.
Kommunikation zwischen Computern
Die Kommunikation zwischen zwei Computern, also zwischen Client und Server, läuft oft nach dem Frage/Antwort- bzw. Request/Response-Muster ab:
Einfache Protokolle
Die gewünschte Anwendung und somit auch das Protokoll wird mit einer sogenannten Portnummer angegeben. Man kann sich das sozusagen als Türnummer merken: Die IP-Adresse liefert das richtige Gebäude, die Portnummner das zuständige Büro. Die Portnummer (z.B. 8000) wird mit Doppelpunkt hinter die IP-Adresse gehängt.
192.168.42.167:8000
Die folgenden drei Protokolle kann man mit einem sogenannten Telnet-Client einfach selbst ausprobieren. Dazu verbindet man sich mit einem Server auf dem gewünschten Port. Läuft der Dienst und befolgt man die Regeln des Protokolls, so sollte man auch eine Antwort erhalten:
| Dienst | Server | Port |
|---|---|---|
| Daytime | time-a.nist.gov | 13 |
| Quote-of-the-Day | djxmmx.net | 17 |
| Echo | admin.ad.kinet.ch | 7 |
⭐ Zusatzaufgabe: Einfache Protokolle
- Teste die obenstehenden Protokolle aus, indem du mit Telnet eine Verbindung zum entsprechenden Port auf dem Server herstellst.
- Inwiefern unterscheidet sich das Echo-Protokoll von den anderen beiden?
Ev. hast du Telnet auf deinem Computer installiert, dann kannst du in einer Eingabeaufforderung die Verbindung starten mit telnet <server> <port> (wobei <server> und <port> entsprechend ersetzt werden müssen).
Falls Telnet nicht verfügbar ist, kannst du es vielleicht aktivieren:
https://social.technet.microsoft.com/wiki/contents/articles/38433.windows-10-enabling-telnet-client.aspx
Letze Möglichkeit wäre ein Online-Telnet zu verwenden – also eine Webseite die den Telnet-Dienst zur Verfügung stellt. Dies funktioniert aber nur eingeschränkt:
Lösung: Einfache Protokolle
Unterschied Echo-Protokoll zu Daytime- und Quote-of-the-Day-Protokoll:
- Art der Anfrage
- Der Client sendet eine Nachricht (Nutzdaten) an den Server. Bei den beiden anderen Protokollen wird ein leeres Datenpaket gesendet (die Anfrage ist implizit durch die Verbindung).
- Art der Antwort
- Beim Echo-Protokoll sendet der Server die empfangenen Daten unverändert zurück. Beim Daytime-Protokoll sendet Server die aktuelle Uhrzeit und das Datum zurück. Beim QOTD-Protokoll sendet der Server ein Zitat zurück.
Hinweis: Das Echo Protokoll (Port 7) ist heute bei fast allen öffentlichen Domains deaktiviert, um die Gefahr von DDoS-Angriffen zu vermeiden. Da der Server die (beliebigen) Daten des Clients zurück sendet, kann das Protokoll genutzt werden, um Server absichtlich zu überlasten.
HTTP und HTTPS
Die Hypertext-Transfer-Protokolle sind etwas komplizierter als die drei einfachen Protokolle die wir soeben kennengelernt haben. Bei HTTP(S) gibt es unterschiedliche Arten von Requests(Anfragen):
GET-Request
Mit einem GET-Request verlangt der Client (z.B. der Webbrowser auf deinem Laptop) vom Server ein bestimmtes Dokument.
Dies kann eine HTML-Datei, aber auch ein Bild oder sonst eine Datei sein.
- Der Server schickt nun den Status-Code
200 OKund die gewünschte Datei. - Oder aber er schickt einen anderen Status-Code, z.B.
404 Not Foundfür «nicht gefunden» oder403 Forbiddenfür «keine Berechtigung».
So kann der Browser entsprechend reagieren.
POST-Request
Mit einem POST-Request kann der Client ein im Browser ausgefülltes Formular (z.B. Login-Daten oder Angaben um Account zu erstellen) an den Server schicken, damit der Server die entsprechenden Schritte unternehmen kann.
weitere Requests
Daneben gibt es PUT-, DELETE- und weitere Requests.
Beispiel Request und Response
Das folgende Bild zeigt je ein Beispiel des Aufbaus eines Get-Requests und der Response des Webservers.

⭐ Entwicklungstools
Die Entwicklungstools des Browsers zeigen dir im Tab «Network» alle Requests an, die bei einem Seitenaufruf gemacht werden.
⭐ Zusatzaufgabe: Gymer-Logo
Auf unserer Gymer-Seite findest du links oben den «gym|kirchenfeld»-Schriftzug.
Kannst du diese Bild-Datei abspeichern?
Versuch es mit den Entwicklungstools deines Browsers.
⭐ Zusatzaufgabe: Radio-Stream
Auf https://energy.ch findest du diverse Internet-Radio-Streams. Damit du die Streams auch mit einem Medien-Player (z.B. VLC) abspielen kannst, musst du diese abspeichern können.
Wähle ein Radio und versuch den Stream mit den Entwicklungstools deines Browsers abzuspeichern.
Wie viele Server sind an einer Seite beteiligt?
Eine einzige Webseite besteht selten aus einer einzigen Datei. Im Tab «Network» siehst du, dass beim Aufruf Dutzende von Requests losgehen – und ein grosser Teil davon geht gar nicht an den Server, dessen Adresse du eingetippt hast.
Aufgabe: Fremde Adressen
Öffne die Entwicklungstools im Tab «Network» und rufe 20min.ch auf.
- Wie viele Requests werden insgesamt gemacht?
- Sortiere nach Domain: Wie viele verschiedene Server sind beteiligt?
- Suche drei Adressen heraus, die nichts mit
20min.chzu tun haben. Wozu könnten diese Server dienen?
Lösung (nicht angemeldet)
Diese Lösung ist nur für angemeldete Benutzer zugänglich – wenn die LK die Lösung freigegeben hat. Bitte melde dich an, um die Lösung einsehen zu können.Genau hier setzt Content Blocking an: Der Browser oder eine Erweiterung vergleicht jede angeforderte Adresse mit einer Liste bekannter Werbe- und Tracking-Server und unterbindet den Request, bevor er losgeschickt wird.
Aufgabe: Blockieren und vergleichen
- Zähle die Requests auf einer Nachrichtenseite ohne Blocker.
- Schalte den Content Blocker deines Browsers ein (Firefox: Schutzschild in der Adresszeile; sonst eine Erweiterung wie uBlock Origin).
- Lade die Seite neu und zähle noch einmal.
Notiere beide Zahlen und die Ladezeit. Was fällt dir auf?
⭐ Zusatzaufgabe: Und die Kehrseite?
Viele Seiten finanzieren sich über genau diese Werbung. Einige erkennen Blocker und verweigern den Zugriff. Wie beurteilst du das?