Ein Netzwerkprotokoll

  • definiert Ablauf einer Kommunikation
  • definiert den Aufbau der Datenpakete
  • gibt es 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 9:21 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 9:21 Uhr.»
«Danke und einen schönen Tag, tschüss.»Transport
«Kein Problem, Ihnen auch, wiedersehen!»

Auf der Ebene Transport 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 Ebene Anwendung übermittelt, also dort, wo die Frage gestellt und eine Antwort darauf gegeben wird.

Aufgabe

Wie würde eine Frage nach dem Weg zum Bahnhof aussehen? Was ändert? Was bleibt?

einfache Protokolle

Die gewünschte Anwendung und somit auch das Protokoll wird mit einer sogenannten Port-Nummer angegeben. Man kann sich das sozusagen als Türnummer merken: Die IP-Adresse liefert das richtige Gebäude (also den Computer), die Port-Nummner das zuständige Büro (den richtigen Dienst).

Die folgenden drei Protokolle kann man mit einem sogenannten Telnet-Client einfach selbst ausprobieren. Damit stellt man eine Verbindung zu einem Server auf dem gewünschten Port her. Läuft dort ein Dienst und befolgt man die Regeln dessen Protokolls, so sollte man auch eine Antwort erhalten:

DienstServerPort
Daytimetime.nist.gov13
Quote-of-the-Daydjxmmx.net17
Echoadmin.ad.kinet.ch7

Aufgabe: Protokolle

  • Teste die obenstehenden Protokolle aus, indem du mit Telnet eine Verbindung zum entsprechenden Port auf dem Server herstellst.
  • in wiefern 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:

Protokolle im TCP/IP-Modell

Die von unseren Computern und Smartphones verwendeten Protokolle werden im sogenannten TCP/IP-Modell zusammengefasst. Dieses unterteilt die Protokolle in 4 Schichten, wobei die beiden mittleren, namensgebenden Schichten sozusagen das Fundament bilden. Für die Anwendungsschicht existieren zahlreiche weitere Protokolle, die hier nicht genauer erläutert werden.

Ebene Protokolle

Anwendung

HTTP
Anfragen und Übertragen von Daten zwischen Browser und Webserver
brauchen wir täglich bei Surfen im Web
HTTPS
«Sicheres» HTTP
Die Daten werden verschlüsselt übertragen
IMAP
Zugriff auf E-Mails auf dem Server
(es existieren weitere E-Mail-Protokolle)

Transport

TCP
exakte Datenübertragung mit Fehlererkennung
wird verwendet bei Webseiten- Datenübertragung
UDP
schnelle Datenübertragung ohne Kontrolle
wird beim Streamen und für Internet-Telefonie verwendet

Internet

IP
Internet Protocol mit Routing der IP-Pakete

Physikalisch

WLAN
Wireless Netzwerk
Ethernet
Verkabelte Netzwerke

Wenn wir die Analogie mit dem Gespräch und der Frage nach der Uhrzeit auf die weiteren Ebenen/Schichten adaptieren möchten, so könnte man sagen:

Anwendung
ist der Dienst, also was gefragt werden soll (Uhrzeit, Weg zum Bahnhof)
Transport
Verbindung herstellen: Hallo, darf ich? Merci und Tschüss
Internet
Sprache, z.B. Deutsch – wird für Verbindungsaufbau und Frage/Antwort verwendet
Physikalisch
Schallwellen in der Luft welche die Wörter übertragen

HTTP und HTTPS

Die Hypertext-Transfer-Protkolle sind etwas komplizierter als die drei einfachen Protokolle die wir soeben kennengelernt haben. Bei HTTP(S) werden die Anfragen in sogenannte Requests unterteilt:

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 OK und die gewünschte Datei.
  • Oder aber er schickt einen anderen Status-Code, z.B. 404 Not Found für «nicht gefunden» oder 403 Forbidden fü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 einen 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.

Entwicklungstools

Die Entwicklungstools des Browsers zeigen dir im Tab «Netzwerk» alle Requests an, die bei einem Seitenaufruf gemacht werden.

Aufgabe: Gymer-Logo

Auf unserer Gymer-Seite findest du links oben den «gym|kirchenfeld»-Schriftzug. Kannst du diese Bild-Datei abspeichern?

Versuche es mit den Entwicklungstools deines Browsers.

Aufgabe: 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 einen Radio und versuch den Stream mit den Entwicklungstools deines Browsers abzuspeichern.

Video als Zusammenfassung