====== Zusatzaufgaben Verschiedenes ====== Beantworte die folgenden Fragen. Achtung, nicht ganz alles wurde im Unterricht behandelt. Recherchiere dazu in den Slides und im Internet! === Aufgabe 1: 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, ... ++++ === Aufgabe 2: Adressen im Internet === Welche drei Adress-Arten im Internet haben wir angeschaut? Beschreibe deren Eigenschaften und Unterschiede. Mache für jede Art von Adresse ein Beispiel. ++++ Lösung| * **Domain / URL** * 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. * URL (bisher nicht explizit besprochen) * 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) * 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. ++++ === Aufgabe 3: 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]] ++++ == Teil II == * Für Protokolle mit Abkürzungen: Wofür stehen diese? * Erkläre für jedes Protokoll in $2-3$ Sätzen, wofür es verwendet wird. ++++Lösung| Behandelte Protokolle: * ARP: Adress Resolution Protocol (Finde Gerät mit gesuchter MAC-Adresse, schicke dazu Broadcast Nachricht an alle Geräte im Subnetz, siehe z.B. https://oinf.ch/interactive/tcp-ip-visualisierung/) * DNS: Domain Name System * Ethernet (kabelgebundene Datenübertragung von Gerät zu Gerät * HTTP: HyperText Transfer Protocol * IP: Internet Protocol * MAC: Media-Access-Control * TCP: Transmission Control Protocol * UDP: User Datagram Protocol Weitere wichtige Protokolle: * SMTP: Simple Mail Transfer Protocol (Mail) * DHCP: Dynamic Host Configuration Protocol (Vergabe von IP-Adressen in Subnetz) ++++ == Teil III == * Beschrifte die vier Schichten des Schichtenmodells ... * ... und trage jedes Protokoll in der richtigen Schicht ein: {{ :gf_informatik:web_sca:schichtenmodell_leer.png?400 |}} ++++Lösung| {{ :gf_informatik:web_sca:schichtenmodell_leer_sol.png?400 |}} ++++ === Aufgabe 5: 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. ++++ === Aufgabe E6: 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 / Gateway: 192.168.2.1 * Gateway: * 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 `www.ethz.ch` * 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 ++++ === Aufgabe E7: 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 | localhost | |2| 192.168.0 | wlan0 (WLAN-Adapter 1) | |3| 129.132 | 3.3.3.5 | |4| 3.3.3.17 | localhost | |5| 3.3.3 | eth0 (Ethernetkarte 1) | |6| * (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. ++++ === Aufgabe E8: 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) ++++