====== Aufgaben F: Datenverkehr ====== === Aufgabe 1: WireShark Installieren === [[https://www.wireshark.org/|Wireshark]] ist ein freier und quelloffener Netzwerk-Monitor, mit dem sich der ganze Netzverkehr eines Geräts protokollieren lässt. * Installiere Wireshark auf deinem Gerät. * Starte eine neue Capture mit leerem Capture-Filter - was siehst du? * Beende die Capture mit dem roten Stopp-Knopf {{:gf_informatik:web_sca:netzwerke:wireshark_start.png?nolink&100}} === 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. * Öffne ein neues Browser-Fenster und lade die Webseite ''http://laralei.ch''. * **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. * Wähle das erste HTTP-Paket und zeige den Datenstrom an: {{:gf_informatik:web_sca:netzwerke:wireshark_follow.png?nolink&400}} * Erkennst du das HTTP-Gespräch, das in diesem Datenstrom eingebettet ist? === Aufgabe 3: TCP/IP-Visualisierung === Studiere die **TCP/IP-Visualisierung:** [[https://oinf.ch/interactive/tcp-ip-visualisierung/|TCP/IP-Visualisierung]] Diese zeigt sehr detailliert, was genau passiert, wenn man eine Website aufruft. Beantworte dabei die folgenden Fragen: 1. Bei welchem Protokoll wird ein **Three Way Handshake** gemacht und wozu? 1. Wann und wofür werden die **SYN,ACK,FIN**-Bits gebraucht? 1. Wofür steht **ARP**? Wozu wird dieses Protokoll benötigt und wie funktioniert es (grob)? 1. Was ist die **maximale Grösse** von einem Datenpaket? Was passiert, wenn die zu übermittelnde Nachricht grösser ist? 1. Was passiert, wenn ein TCP-Datenpaket am Zielort ankommt? Was entspricht dem in unserer "Tische versenden"-Analogie? ++++Lösungen nodisp| 1. TCP (Transmission Control Protocol). Stellt eine Verbindung zwischen Client und Server für Datenaustausch/Kommunikation her resp. baut diese wieder ab. (siehe unten) 1. Synchronize/Acknowledgment/Finished (siehe unten) 1. **A**dress **R**esolution **P**rotocol. 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?" 1. Insg. $1518$ Bytes, davon $18$ Bytes für Header und $1500$ Bytes für Payload. 1. 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. 1. Dazu schickt Client erstes Datenpaket an Server mit GET-Request. Dabei sind die drei Bits wie folgt gesetzt: SYN|ACK|FIN = 1|0|0. 1. 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. 1. Client schickt das Datenpacket wieder zurück, diesmal mit SYN|ACK|FIN = 0|1|0. 1. Jetzt ist Verbindung aufgebaut und restliche Daten (z.B. Bilder) können einfach übermittelt werden. ++++