## Arbeitsblatt Internet Beantworte die folgenden Fragen. Achtung, nicht alles wurde im Unterricht behandelt. Recherchiere im [[gf_informatik:web:internet|Skript auf dem Wiki]] und im Internet! Die Antworten sind zum Teil viel ausführlicher, als was in einer Prüfung erwartet würde; zum Beispiel sind viele mögliche Protokolle aufgelistet, wenn die Aufgabe nach *einem möglichen Protokoll* fragt. ### A1: Schichtenmodell Beschreibe die Verbindungs-Schichten des Internets. Nenne für jede Schicht: * Name * Analogie im Postversand * Welche Abstraktion bietet sie der nächstoberen Schicht? * Welche Adressen werden verwendet? * Nenne ein Internet-Protokoll, das in der Schicht verwendet wird. ++++Lösung| * Anwendungsschicht * Analogie: Versand von Gegenständen (Möbel, Bücher...) * Abstraktion: -- * Adressen: -- * Internet-Protokoll: HTTP(S), SMTP, DNS, ... * Transportschicht * Analogie: Übertragung einer ganzen Sendung aus mehreren Paketen, mit Lieferschein. * Abstraktion: (bidirektionaler) Datenstrom * Adressen: TCP-Ports * Internet-Protokoll: TCP, UDP * Vermittlungsschicht (*Internet Layer*) * Analogie: Post-Pakete * Abstraktion: (Einweg-) Paketvermittlung Ende-zu-Ende * Internet-Protokoll: IP * Netzzugangsschicht (*Link Layer* , *Physical Layer*) * Analogie: Transport über eine einzelne Strecke. * Abstraktion: Paket-Vermittlung über eine einzelne Verbindung * Internet-Protokolle: Ethernet (LAN), WiFi (WLAN), DSL, LTE, ... ++++ ### A2: Adressen im Internet Beschreibe die Eigenschaften und Unterschiede der folgenden Adress-Arten im Internet. Mache für jede Art von Adresse ein Beispiel. * URL (Uniform Resource Locator) * Domain * IP-Adresse * MAC-Adresse ++++ Lösung| * URL * Beispiel: `http://www.ethz.ch/index.html` * Eigenschaften: * Identifiziert eine Resource ("Datei") im Internet. * Wird insbesondere von HTTP benutzt, um Resourcen wie HTML und CSS von einem Webserver über das Internet zu laden. * Der zweite Teil (www.ethz.ch) ist eine Domain (Servername) * Domain * Beispiel: `www.ethz.ch` * Eigenschaften: * Identifiziert einen Server (oder einen Server-Namensraum) im Internet. * Ist hierarchisch aufgebaut: am Schluss steht die Top-Level-Domain (entweder eine Länder-Domain wie `.ch` oder eine globale Domain wie `.com` oder `.org`), danach folgen die unter-Domains (im Beispiel `ethz`, danach `www`). * Ist Teil eines URLs. * IP-Adresse * Beispiel: `129.132.98.12` * Eigenschaften: * Identifiziert ein Gerät (eigentlich: eine Netzwerk-Karte) im Internet. * Pakete werden auf der Vermittlungsschicht von einer IP-Adresse an jede andere geroutet. * Besteht aus 32 bit (IPv4) oder 128 bit (IPv6) * Es gibt ca. 4 Milliarden (232) IPv4-Adressen. * IP-Adressen sind logische Adressen - dasselbe Gerät erhält eine andere IP-Adresse, wenn es in einem anderen Netz eingebunden wird. * MAC-Adresse * Beispiel (müssen Sie nicht wissen): `00:80:41:ae:fd:7e` * Eigenschaften: * Identifiziert ein Geräte (eigentlich: eine Netzwerk-Karte) im lokalen Subnetz. * MAC-Adressen sind fix, jede Netzwerkkarte hat fix eine MAC-Adresse zugewiesen. Sie ändert sich nicht, wenn das Gerät in einem anderen Netzwerk angemeldet wird. * MAC-Adressen spielen nur für das lokale Subnetz eine Rolle, sie werden vom Router nicht weitergeleitet. ++++ ### A3: Was ist ein Protokoll? Nenne ein Protokoll aus dem Internet und aus der realen Welt. Was zeichnet ein Protokoll aus? ++++Lösung| Ein Protokoll ist eine standardisierte Kommunikation und definiert den zeitlichen Ablauf sowie das Format der ausgetauschten Nachrichten. Viele Protokolle können beliebige Inhalte (zum Beispiel höhere Protokolle) also Nutzlast (*payload*) transportieren. Die Protokoll-spezifischen Teile der Kommunikation (Adressen etc.) heissen *Metadaten*. Protokolle aus dem Internet z.B.: * HTTP(S) * SMTP * DNS * TCP * UDP * IP (*Internet Protocol* - Achtung: oft sprechen wir von der "IP" wenn wir eigentlich die *IP-Adresse* (also z.B. `129.132.98.12`) meinen. Aber *IP* bezeichnet streng genommen das Internet Protokoll auf der Vermittlungsschicht). * Ethernet * LTE Protokolle aus der realen Welt: * Flugfunk * Begrüssungsrituale * Diplomatisches Protokoll (wer sitzt neben wem, Begrüssungsreihenfolge...) * Telefongespräche (`Do isch Wullschleger-Haslebacher!` - `Grüetsi Frau Wullschleger-Haslebacher, do isch Rüegsegger` etc.) * Vergessen Sie nicht den [[https://youtu.be/LCAUpnUVwMU?t=340|Schluss des Gesprächs]] ++++ ### A4: Verbindungsprobleme Bei einem Webseiten-Aufruf auf `http://www.ethz.ch/index.html` triffst du auf die folgenden fünf Probleme. Beschreibe für jeden Fehler, auf welcher Netzwerkebene der Fehler liegt, und was da passiert (sein könnte). * `Internet disconnected` * `No route to host www.ethz.ch` * `Cannot resolve host www.ethz.ch` * `Server www.ethz.ch timed out` * `404 Resource not found` ++++Lösung| * `Internet disconnected` * Netzzugangsschicht: fehlende Netzverbindung (z.B. kein WLAN) * `No route to host www.ethz.ch` * Vermittlungsschicht: keine Route zur Ziel-IP-Adresse. * `Cannot resolve host www.ethz.ch` * Anwendungsschicht: Problem mit dem DNS-Server, oder unbekannte Domain * `Server www.ethz.ch timed out` * Könnte auf allen Schichten verursacht werden: * Netzzugangsschicht: schlechte Verbindungsqualität * Vermittlungsschicht: fehlerhaftes Routing, Pakete gehen verloren * Transportschicht: fehlerhafte Geschwindigkeits-Aushandlung. * Anwendungsschicht: Webserver ist überlastet und antwortet nicht. * `404 Resource not found` * Anwendungsschicht: falsche URL, oder Webserver ist falsch konfiguriert. ++++ ### A5: Was passiert bei einem Seitenaufruf im Internet? Du rufst die Website `http://www.ethz.ch/index.html` auf. Was passiert dabei auf jeder Netzwerkebene? Angaben: * Dein Gerät: * IP: 192.168.2.5 * MAC-Adresse: 0xcafe * Router (default route): 192.168.2.1 * Router: * IP: 192.168.2.1 * MAC-Adresse: 0xface * DNS-Server: * IP: 8.8.8.8 * löst die Domain `www.ethz.ch` auf zu `129.132.98.12` ++++Lösung| * Anwendungsschicht: * Browser löst Domain zu IP auf mit DNS auf `8.8.8.8` (erhält `129.132.98.12`) * Browser öffnet HTTP-Verbindung zu `129.132.98.12` * Browser verlangt die Resource mit `GET /index.html` * Webserver antwortet mit HTML Inhalten * Transportschicht: * UDP-Stream zwischen `192.168.2.5:` und `8.8.8.8:53` * TCP-Stream zwischen `192.168.2.5:` und `129.132.98.12:80` * Vermittlungsschicht: * IP-Pakete zwischen `192.168.2.5` und `8.8.8.8` * IP-Pakete zwischen `192.168.2.5` und `129.132.98.12` * Netzzugangsschicht: * WLAN- oder Ethernet-Pakete zwischen 0xcafe und 0xface ++++ ### A6: Routing Ein Internet-Router hat die folgende Routing-Tabelle. Was passiert mit einem IP-Paket mit Quell-IP `192.168.0.25` und Destination-IP `129.132.98.12`? Welche Zeilen der Tabelle muss der Router konsultieren? ^ Zeile ^ IP-Präfix ^ Gateway / Netzwerkkarte ^ |1| 192.168.0.1/32 | localhost | |2| 192.168.0.0/24 | wlan0 (WLAN-Adapter 1) | |3| 129.132.0.0/16 | 3.3.3.5 | |4| 3.3.3.17/32 | localhost | |5| 3.3.3.0/24 | eth0 (Ethernetkarte 1) | |6| 0.0.0.0/0 (default route) | 3.3.3.1 | ++++Lösung| Das Paket wird via `3.3.3.5` weitergeleitet und zu diesem Zweck auf der Ethernetkarte 1 hinausgeschickt. Achtung: die Quell-Adresse spielt fürs Routing keine Rolle. Es braucht zwei Lookups in der Routing-Tabelle: * Zeile 3 bestimmt, dass `129.132.*` via `3.3.3.5` weitergeleitet wird * Zeile 5 bestimmt, dass alle Pakete an `3.3.3.5` über die Ethernetkarte 1 gesendet werden. ++++ ### A7: Private IPs Weshalb ist an der KSR die IP-Adresse deines Geräts eine andere, als die die auf `whatsmyip.org` angezeigt wird? Was hat das für Auswirkungen: was kannst du auf deinem Gerät nicht (so einfach) tun? ++++Lösung| Die KSR verwendet [[gf_informatik:web:internet:ip_adressen#nat|NAT]]. Das heisst, intern werden nur IP-Adressen aus einem privaten Bereich vergeben. Der Router ersetzt die Quell-Adresse von ausgehenden Paketen mit seiner eigenen und merkt sich die Verbindung (*connection tracking*). Kommt ein Antwortpaket, so ersetzt der Router die Zieladresse des Pakets und leitet es intern weiter. Auswirkungen: * Das Gerät kann zwar Verbindungen nach aussen öffnen, aber von aussen können keine neuen Verbindungen zum Gerät erstellt werden. * Du kannst auf deinem Laptop keinen Server betreiben, der von aussen erreichbar ist. * Es ist schwierig, einen Webserver zu betreiben. * Es ist schwierig, einen Peer-to-peer-Client (Transmission, Gnutella...) zu betreiben (natürlich gibt es Workarounds) ++++