Aufgaben F: Datenverkehr
Aufgabe 1: WireShark Installieren
Wireshark ist ein freier und quelloffener Netzwerk-Monitor, mit dem sich der ganze Netzverkehr eines Geräts protokollieren lässt.
Aufgabe 2: HTTP-Verbindung Protokollieren
Viele Web-Verbindungen sind heute verschlüsselt, was es schwieriger macht, ihre Details zu protokollieren. Wir wollen unten eine unverschlüsselte HTTP-Verbindung protokollieren:
Starte eine Wireshark Capture mit dem Capture-Filter host laralei.ch
- damit werden nur Verbindungen zum Server laralei.ch
protokolliert.
-
Wichtig: Die Adresse muss genau wie oben eingegeben werden - die meisten Browser wechseln sonst automatisch zu
https://laralei.ch
, was die verschlüsselte Variante wäre.
Beende die Capture mit dem roten Stopp-Knopf.
Schau dir das Paket-Protokoll an.
Jedes Paket ist teil eines ineinander verschachtelten Gesprächs auf verschiedenen Ebenen.
Auf der höchsten Ebene sprechen der Browser und der Webserver das Protokoll HTTP, um eine Webseite zu übertragen.
Wähle ein HTTP-Paket, das vom Server zurückgeschickt wurde, und zeige die Details (unten) des Pakets an.
Findest du in den Antworten des Servers Sprach-Elemente, die du kennst? Welche?
Auf der nächst-tieferen Ebene wird durch TCP ein bidirektionaler Datenstrom zwischen unserem Gerät und dem Gerät des Webservers organisiert.
Aufgabe 3: TCP/IP-Visualisierung
Studiere die TCP/IP-Visualisierung: TCP/IP-Visualisierung
Diese zeigt sehr detailliert, was genau passiert, wenn man eine Website aufruft.
Beantworte dabei die folgenden Fragen:
Bei welchem Protokoll wird ein Three Way Handshake gemacht und wozu?
Wann und wofür werden die SYN,ACK,FIN-Bits gebraucht?
Wofür steht ARP? Wozu wird dieses Protokoll benötigt und wie funktioniert es (grob)?
Was ist die maximale Grösse von einem Datenpaket? Was passiert, wenn die zu übermittelnde Nachricht grösser ist?
Was passiert, wenn ein TCP-Datenpaket am Zielort ankommt? Was entspricht dem in unserer „Tische versenden“-Analogie?
Lösungen nodisp
TCP (Transmission Control Protocol). Stellt eine Verbindung zwischen Client und Server für Datenaustausch/Kommunikation her resp. baut diese wieder ab. (siehe unten)
Synchronize/Acknowledgment/Finished (siehe unten)
Adress Resolution Protocol. Um MAC-Adresse von Gerät vom nächsten Hop zu ermitteln. Mittels Routingtabelle IP ermitteln, dann via ARP Nachricht an alle Geräte im Subnetz schicken: „Wer hat IP = …? Was ist deine MAC-Adresse?“
Insg. $1518$ Bytes, davon $18$ Bytes für Header und $1500$ Bytes für Payload.
Wird Paket mit ACK=1 zurückgesendet, um Erhalt zu bestätigen. Entspricht Telefon von Hausdienst Basel an Hausdienst KSR: „Danke, Paket mit Nummer … haben wir erhalten.“
Beispiel: Wollen Website www....ch besuchen.
Dazu schickt Client erstes Datenpaket an Server mit GET-Request. Dabei sind die drei Bits wie folgt gesetzt: SYN|ACK|FIN = 1|0|0.
Auf Transportschicht-Ebene (TCP) von Server wird das ganze Datenpaket zurückgeschickt (IPs einfach vertauschen) und setzt Bits SYN|ACK|FIN = 1|1|0, also 'ich bestätige das' (ACK=1) und 'ich will (auch) mit dir reden' (SYN=1). Beachte: Eigentlicher Inhalt (GET-Request) wird noch nicht angeschaut.
Client schickt das Datenpacket wieder zurück, diesmal mit SYN|ACK|FIN = 0|1|0.
Jetzt ist Verbindung aufgebaut und restliche Daten (z.B. Bilder) können einfach übermittelt werden.