Abgabe via Teams.

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)?

Aufgabe A3: Protokolle

Wo im echten Leben gibt es Protokolle? Mache eigene Beispiele.

Lösungen

Aufgabe B1: WireShark Installieren

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 .

Aufgabe B2: 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:
    • Erkennst du das HTTP-Gespräch, das in diesem Datenstrom eingebettet ist?

Aufgabe C1: IPv4-Adressen

  1. Wie viele verschiedene IPv4-Adressen gibt es?
  2. Reicht dies aus, um alle Geräte im Internet eindeutig zu adressieren?

Aufgabe C2: 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 C3: Meine IP

  1. 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).
  2. Trage deine IP mit Name in Tabelle an Wandtafel.
  3. Wie viele Geräte können sich mit diesem Subnetz verbinden? Reicht dies oder sollte man die Subnetzmaske anpassen?

Win:

  • Terminal (Eingabeaufforderung): ipconfig

Mac:

  • Terminal: ifconfig
  • Systemeinstellung / Netzwerk / WLAN / Weitere Optionen / TCP/IP

Aufgabe C4: IPv4

  1. 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?
  2. Tatsächlich wurde dieses Problem mit IPv6 bereits angegangen. Studiere den Eintrag zu IPv6 unten:

IPv6 Info

Aufgabe C5 (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$.

a) Wandle um $4-$Byte-Notation $\rightarrow$ CIDR-Notation:

  • i) $255.255.255.255$
  • ii) $255.255.255.0$
  • iii) $255.240.0.0$

b) Wandle um CIDR-Notation $\rightarrow$ $4-$Byte-Notation:

  • i) $/7$
  • ii) $/25$

Aufgabe C6: Subnetzmasken

  1. Wie viele Hosts kann ein Netzwerk mit Subnetzmaske $255.255.255.192$ haben?
  2. Wie viele Hosts kann ein Netzwerk mit CIDR /14 haben?
  3. Welche Subnetzmaske (normal und CIDR) sollte der Informatiker einer Firma mit ca. $5000$ Geräten für das Netzwerk der Firma wählen?

Zusatzaufgaben (Programmieren)

a)

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.

b)

Programmiere nun eine eigene Auswahl der folgenden Funktionen:

  • Subnetzmaske in andere Formate umwandeln:
    • subnet_dec_to_bin(subnet)
    • subnet_bin_to_dec(subnet_bin)
    • subnet_bin_to_cidr(subnet_bin)
    • subnet_dec_to_cidr(subnet)
    • cidr_to_subnet_bin(cidr)
    • cidr_to_subnet_dec(cidr)
  • Abzahl mögliche Hosts für Subnetzmaske (in versch. Formaten) bestimmen:
    • nr_hosts_from_subnet_bin(subnet_bin)
    • nr_hosts_from_subnet_dec(subnet_dec)
    • nr_hosts_from_cidr(cidr)
c)

Erweitere deinen Code aus a) und b) 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:

  • Subnetzmaske (verwende Code von vorheriger Zusatzaufgabe)
  • Anzahl Hosts

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.

Aufgabe C1

Aufgabe C2

Aufgabe C3

Aufgabe C4

Aufgabe C5

Aufgabe C6

Zusatzaufgaben

  • gf_informatik/web/internet/aufgaben_a.1702204872.txt.gz
  • Zuletzt geändert: 2023-12-10 10:41
  • von hof