Netzwerke & Internet
Materialien
Info Prüfung
Zeit: 40'-45'
Am Computer (isTest2 im Save Exam Browser)
Hilfsmittel: Taschenrechner
Stoff: alles zu Internet:
Lernhilfe
Es werden verschiedene Kompetenzen getestet. Hier jeweils mit einigen Beispielen (gibt vielen weiteren Inhalt!):
Aufgaben
Aufgaben A
Aufgabe A1: Unterseekabel
Ein typischer Schweizer Haushalt hat eine Internetverbindung von etwa $500$ Mbit / s. Wie viele solche Haushalte könnte man mit dem MAREA-Kabel versorgen, angenommen, dass alle gleichzeitig ihre Internetverbindung voll auslasten?
Aufgabe A2: Netzwerk mit direkten Verbindungen
Betrachte ein Netzwerk mit $n$ Geräten, welche alle direkt miteinander verbunden sind. Wie viele Verbindungen / Kabel sind nötig?
Entscheide selbst: Löse das Problem, indem du …
eine mathematische Formel dafür herleitest (besser!) oder …
einen Python-Code schreibst, der die Berechnung für dich übernimmt.
Wie viele Kabel benötigt man für ein Netzwerk mit …
$5$ Geräten (kleiner Haushalt)?
$200$ Geräten (mittlere Firma)?
$30$ Milliarden Geräten (Internet)?
Lösungen
A1
$320000$ Geräte
A2
Anzahl Verbindungen für $n$ Geräte:
$$A = \frac{n-1}{2} \cdot n$$
Tipp für Herleitung: Berechne explizit für einige Beispiele:
$n=5$: $A = 4 + 3 + 2 + 1 = 2 \cdot 5$
$n=6$: $A = 5 + 4 + 3 + 2 + 1 = 2.5 \cdot 6$
$n=7$: $A = 6 + 5 + 4 + 3 + 2 + 1 = 3 \cdot 7$
Mit Code:
def anzahl_verbindungen(n):
a = 0
for i in range(1,n):
a = a + i
return a
print(anzahl_verbindungen(1000000))
Problem: Dauert sehr lange, kaum berechenbar für $30$ Mia. Geräte
Aufgaben B
Aufgabe B1: IPv4-Adressen
Wie viele verschiedene IPv4-Adressen gibt es?
Reicht dies aus, um alle Geräte im Internet eindeutig zu adressieren?
Aufgabe B2: Subnetzmaske
Eine typische Subnetzmaske in einem Heimnetzwerk ist $255.255.255.0$. Wie viele verschiedene Geräte kann man maximal haben in diesem Subnetz?
Aufgabe B3: Mein IP
Stelle sicher, dass dein Computer mit dem Eduroam-Netz der Schule verbunden ist. Bestimme dann die (lokale) IP deines Geräts in diesem Subnetz, sowie die Subnetzmaske (siehe unten).
Trage deine IP mit Name in Tabelle an Wandtafel.
Wie viele Geräte können sich mit diesem Subnetz verbinden? Reicht dies oder sollte man die Subnetzmaske anpassen?
Win:
Mac:
Aufgabe B4: IPv4
Wie du gesehen hast, reicht der IPv4-Standard nicht aus, um alle Geräte im Internet zu adressieren. Aus wie vielen Bytes müsste eine IP-Adresse mindestens bestehen, damit dies aktuell möglich ist?
Tatsächlich wurde dieses Problem mit IPv6 bereits angegangen. Studiere den
Eintrag zu IPv6.
Aufgabe B5: MAC-Adresse
Bestimme die MAC-Adresse deines Computers (resp. von dessen Netzwerkkarte).
In welchem Format wird diese geschrieben?
Berechne, für wie viele Geräte dies reicht.
Wie viele Geräte kann bei der aktuellen Weltbevölkerung eine Person im Durchschnitt gerade noch haben? Wird die mögliche Anzahl Adressen auch für die Zukunft ausreichen?
Aufgabe B6 (CIDR)
Subnetzmasken können auch durch CIDR-Suffix kürzer ausgedrückt werden. Dieser Wert gibt die Anzahl Bits an, die in der Subnetzmaske $1$ sind. Z.B. steht $/10$ für $255.192.0.0$.
Wandle um $4-$Byte-Notation $\rightarrow$ CIDR-Notation:
$255.255.255.255$
$255.255.255.0$
$255.240.0.0$
Wandle um CIDR-Notation $\rightarrow$ $4-$Byte-Notation:
Zusatzaufgaben (Basic)
Wie viele Hosts kann ein Netzwerk mit Subnetzmaske $255.255.255.192$ haben?
Zusatzaufgaben (Advanced)
Aufgabe 1
Schreibe ein Python-Programm (z.B. eine Funktion), welches für einen gegebenen CIDR-Suffix die entsprechende Subnetzmaske im $4$-Byte-Format (z.B. $255.192.0.0$) bestimmt und umgekehrt.
Aufgabe 2
Erweitere deinen Code der vorherigen Zusatzaufgabe und implementiere einen ultimativen Netzwerk-Rechner im Stile der folgenden Website: https://www.heise.de/netze/tools/netzwerkrechner/
Man soll seine IP-Adresse und CIDR-Suffix angeben können und zurück erhalten:
Die weiteren Angaben (IP-Range, Broadcast, …) können dann später hinzugefügt werden.
Falls du bereits über Klassen/OOP Bescheid weisst, wäre diese Aufgabe ein gutes Anwendungsbeispiel.
Lösungen
B1
$2^{32} \approx 4.3$ Milliarden
Nein, da ca. $30$ Milliarden Geräte gibt
B2
Für Hosts stehen $8$ Bits zur verfügung, also $2^8-2 = 254$ Geräte.
Achtung: Muss $2$ abziehen, da zwei Adressen nicht an Geräte vergeben werden - später mehr dazu.
B3
IP (Beispiel): $172.16.27.145$, Subnetzmaske: $255.255.248.0$
$11$ Bits für Hosts, also $2^{11}-2 = 2046$ Hosts. Ca. $600$ Personen an KSR, sollte also passen.
B4
$$2^x = 30 \cdot 10^9$$
$$x \approx 34.8$$
Also mind. $35$ Bit.
Gleichung kann gelöst werden mit dem Logarithmus oder einfach durch ausprobieren.
B5
-
Wird typischerweise mit $6$ Hexadezimalzahlen ($16$er System) geschrieben, z.B. 2b:80:41:ae:fd:7e. Dies entspricht $48$ Bits.
Anzahl Möglichkeiten: $16^{12} = 2^{48} \approx 281 \cdot 10^{12}$, allerdings sind zwei Bits fix, also deshalb nur $2^{46} \approx 70 \cdot 10^{12}$
ca. $9000$ Geräte (MAC mit $46$ freien Bits), mit $48$ Bits wären es sogar etwa $35000$. Wird irgendwann nicht mehr reichen. Laut Quellen im Internet dürften um 2040 die MAC-Adressen ausgehen.
B6
siehe Tabelle hier: https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing#Übersicht_für_IPv4
Aufgaben C
Aufgabe C1
Betrachte folgendes Netzwerk
Die Routing-Tabelle für den Router oben links ist:
Zeile | IP-Präfix | Router | Handlung |
1 | 1.1.3.1 | localhost (ich selbst, Netzwerkkarte 1) | Paket empfangen (eigene Adresse) |
2 | 3.3.3.3 | localhost (auch ich selbst, Netzwerkkarte 2) | Paket empfangen (eigene Adresse) |
3 | 1.1.3.* | – | Direkt versenden über Netzwerkkarte 1, Ziel im gleichen Subnetz 1.1.3 |
4 | 3.3.3.* | – | Direkt versenden über Netzwerkkarte 2, Ziel im gleichen Subnetz 3.3.3 |
5 | 1.1.1.* | 3.3.3.2 | Weiterleiten über 3.3.3.2 |
6 | 1.1.8.* | 3.3.3.8 | Weiterleiten über 3.3.3.8 |
7 | 1.1.6.* | 3.3.3.4 | Weiterleiten über 3.3.3.4 |
8 | * | 3.3.3.1 | Alles andere: An den Router (auch Gateway) 3.3.3.1 senden zur Weiterleitung |
Teil I:
Der Router erhält ein Paket für eine gewisse IP-Adresse. Lese entsprechend die Routing-Tabelle aus und notiere die relevanten Zeilen:
IP-Adresse: 1.1.3.2
IP-Adresse: 1.1.1.5
IP-Adresse: 94.130.229.77
IP-Adresse: 1.1.3.1
Teil II: Notiere die Routing-Tabelle für den Router 1.1.8.1/3.3.3.8
Aufgaben D: TCP/IP
Aufgabe D
Studiere die TCP/IP-Visualisierung: https://oinf.ch/interactive/tcp-ip-visualisierung/
Diese zeigt sehr detailliert, was genau passiert, wenn man eine Website aufruft.
Hole dir aus den Slides die nötigen Informationen, um die folgenden Fragen zu beantworten:
Was ist ein Three Way Handshake und wozu werden die SYN,ACK,FIN-Bits gebraucht?
Wofür steht ARP? Wozu wird dieses Protokoll benötigt und wie funktioniert es (grob)?
Aufgaben E: Repetition
Beantworte die folgenden Fragen. Achtung, nicht alles wurde im Unterricht behandelt. Recherchiere dazu in den Slides (am Anfang der Website) und im Internet!
Aufgabe E1: 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.
Aufgabe E2: 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:
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)
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
Aufgabe E3: 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.:
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.)
Aufgabe E4: Protokolle
Teil I
Liste alle Protokolle auf, die wir kennengelernt haben.
Lösung
Behandelte Protokolle:
ARP
-
Ethernet
HTTP
IP
MAC
TCP
UDP
Weitere wichtige Protokolle:
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:
-
-
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:
Teil III
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
No route to host www.ethz.ch
Cannot resolve host www.ethz.ch
Anwendungsschicht: Problem mit dem
DNS-Server, oder unbekannte Domain
Server www.ethz.ch timed out
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:
Gateway:
IP: 192.168.2.1
MAC-Adresse: 0xface
-
Lösung
Anwendungsschicht:
Transportschicht:
Vermittlungsschicht:
Netzzugangsschicht:
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 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)