====== 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)
++++