Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:web:internet:aufgaben_a [2023-12-10 10:41] – [Lösungen] hofgf_informatik:web:internet:aufgaben_a [2024-12-11 08:26] (aktuell) – [Lösungen D] hof
Zeile 5: Zeile 5:
 === Aufgabe A1: Unterseekabel === === 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?+Ein typischer Schweizer Haushalt hat eine Internetverbindung von etwa $500$ Mbit / s. Wie viele solche Haushalte könnte man mit dem [[wpde>Marea_(Seekabel)|MAREA-Kabel]] versorgen, angenommen, dass alle gleichzeitig ihre Internetverbindung voll auslasten?
  
 === Aufgabe A2: Netzwerk mit direkten Verbindungen === === Aufgabe A2: Netzwerk mit direkten Verbindungen ===
Zeile 28: Zeile 28:
 === A1 === === A1 ===
  
-$320000$ Geräte+$320000$ Geräte: [[https://www.wolframalpha.com/input?i=160+Terabits+per+second+%2F+500+Megabits+per+second|Wolfram Alpha]]
  
 === A2 === === A2 ===
Zeile 111: Zeile 111:
 === Aufgabe C4: IPv4 === === 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?+   1. Wie du gesehen hast, reicht der IPv4-Standard nicht aus, um alle Geräte im Internet zu adressieren. Aus wie vielen Bits müsste eine IP-Adresse mindestens bestehen, damit dies aktuell möglich ist?
    1. Tatsächlich wurde dieses Problem mit IPv6 bereits angegangen. Studiere den Eintrag zu IPv6 unten:    1. Tatsächlich wurde dieses Problem mit IPv6 bereits angegangen. Studiere den Eintrag zu IPv6 unten:
  
 ++++IPv6 Info| ++++IPv6 Info|
  
-Um die Knappheit der IPv4 Adressen zu lösen, wurde ab 1999 [[wpde>IPv6]] eingeführt, das 2<sup>128</sup> mögliche Adressen bietet. Damit ist also nicht nur möglich, jedes Gerät mit einer Adresse zu versorgen, sondern es hat sogar genügend Adressen für jedes Atom im Universum...+Um die Knappheit der IPv4 Adressen zu lösen, wurde ab 1999 [[wpde>IPv6]] eingeführt, das 2<sup>128</sup> mögliche Adressen bietet. Damit ist also nicht nur möglich, jedes Gerät mit einer Adresse zu versorgen, sondern es hat sogar genügend Adressen für jedes Atom auf der Erdoberfläche...
  
 IPv6-Adressen werden meist in Blöcken zu vier Hexadezimalzahlen (0-9,a-f) dargestellt: `2001:0db8:85a3:08d3:1319:8a2e:0370:7347` IPv6-Adressen werden meist in Blöcken zu vier Hexadezimalzahlen (0-9,a-f) dargestellt: `2001:0db8:85a3:08d3:1319:8a2e:0370:7347`
Zeile 223: Zeile 223:
  
    1. 62    1. 62
-   1. 262142 +   1. 262142 ($2^{32-14} - 2$) 
-   1. 19+   1. /19 = `11111111.11111111.11100000.00000000` = `255.255.224.0` ($2^{13} = 8192$)
  
 ++++ ++++
Zeile 297: Zeile 297:
  
 </nodisp> </nodisp>
 +
 +==== Aufgaben D: Vom Subnetz zum Internet ====
 +
 +=== Aufgabe D1: Routing ===
 +
 +   1. Auf welcher Netzwerk-Ebene erfolgt das Routing?
 +   1. Weshalb ändert sich deine IP-Adresse, wenn du vom KSR-Netz zu deinem Heimnetz wechselst?
 +
 +=== Aufgabe D2: Gleiches Netzwerk oder nicht? ===
 +
 +Löse diese Aufgabe mithilfe von Python/TigerJython (siehe Tipps unten).
 +
 +In einem Subnetz mit Maske 255.255.255.192 hat ein Laptop die IP-Adresse 192.168.1.102. Aufgrund der Maske ist festgelegt, welche anderen IP-Adressen im gleichen Subnetz vergeben werden dürfen. Bestimme, welche der folgenden IP-Adressen in diesem Subnetz vergeben werden können und welche nicht:
 +
 +   * 192.168.1.33
 +   * 192.168.1.87
 +   * 192.168.1.130
 +
 +Begründe deine Antworten. Tipp 1: Es muss gerechnet werden, verwende dafür Python/TigerJython. Für mehr Tipps, siehe unten.
 +
 +*Optional:* (aber sehr empfohlen): Schreibe einen Code, mit dem du einfach IP-Adressen und Subnetzmasken von der dezimalen 4-Byte-Notation in die Binär-Notation umwandeln kannst und umgekehrt. Schreibe z.B. folgende Funktionen:
 +<code python>
 +print(ip_dec_to_bin([133,162,149,238]))
 +print(ip_bin_to_dec("10000101.10100010.10010101.11101110"))
 +</code>
 +
 +++++Tipps Python/TigerJython|
 +
 +Mit Python/TigerJython kannst du ganz einfach Binärzahlen in Dezimalzahlen umrechnen und umgekehrt:
 +<code python>
 +print(int("1101",2)) # Binärstring in Dezimalzahl umwandeln
 +print(bin(13)) # Dezimalzahl in Binärstring umwandeln
 +</code>
 +Erinnerung: Auch mit allen grundlegenden Operationen kann einfach gerechnet werden:
 +<code python>
 +print(2*3*5*7*11)
 +print(2**15) # Potenzen, Hoch-Rechnen
 +</code>
 +
 +++++
 +
 +++++Tipps 2|
 +
 +Erinnerung: Die Subnetzmaske gibt an, in welchen Bits die IP-Adressen eines Netzwerks übereinstimmen müssen. Daher musst du die Adressen und Maske zuerst in Binärzahlen umrechnen. Verwende dazu Python/TigerJython (siehe Tipp dazu).
 +
 +++++
 +
 +=== Aufgabe D3: I InformatikerIn ===
 +
 +Du wurdest beauftragt, ein Heimnetzwerk einzurichten, an welches folgende Geräte angeschlossen werden sollen:
 +
 +   * 5 Smartphones, 3 Laptops, 1 Desktop-Computer, 1 Drucker, 2 Fernsehboxen, 1 PlayStation, 1 Kühlschrank.
 +   * Platz für weitere 5 Geräte.
 +
 +Auftrag:
 +
 +   1. Welche **Subnetzmaske** wählst du? Wähle diese so restriktiv wie möglich, so dass sie aber genügend Platz für die geforderte Anzahl Geräte bietet. Gib die Subnetzmaske in den folgenden drei Formaten an: 4-Byte, binär, CIDR
 +   1. Mache eine **Skizze des Netzwerks**, an dessen Zentrum ein Switch steht. Weise jedem Gerät eine passende **lokale IP-Adresse** zu. Beachte: Diese muss mit der Subnetzmaske kompatibel sein.
 +
 +=== Aufgabe D4: Umrechnungen Repetition ===
 +
 +Solche Aufgabentypen hast du bereits gelöst.
 +
 +   1. Wandle die Maske von der 4-Byte-Notation 255.254.0.0 in die CIDR-Notation um
 +   1. Wie viele IP-Adressen können im Subnetz aus 1. vergeben werden?
 +   1. Im Netzwerk einer Firma benutzen allerhöchstens $1000$ Geräte das Netzwerk. Welche Maske (in 4-Byte-Notation) sollte gewählt werden?
 +   1. In einem Netzwerk mit Maske /20 existiert ein Gerät mit IP 29.185.149.170. Ist es möglich, dass im gleichen Netzwerk auch die IP 29.185.144.42 vergeben wird?
 +
 +=== Aufgabe D5: Broadcast und Netzwerk Adresse ===
 +
 +Wir haben bereits gesehen, dass man beim Berechnen der Anzahl IP-Adressen, die innerhalb eines Subnetzes vergeben werden können, zwei abziehen muss. Dies kommt daher, dass zwei IP-Adressen fix vergeben sind:
 +
 +   * Die kleinste mögliche erlaubte IP-Adresse ist die sogenannte **Netzwerk Adresse.** Diese kann man als die Adresse des gesamten Netzwerks betrachten.
 +   * Die grösste mögliche erlaubte IP-Adresse heisst **Broadcast Adresse.** Über diese kann man direkt alle Geräte des Subnetzes Adressieren.
 +
 +In dieser Aufgabe geht es darum, für ein vorgegebenes Netzwerk diese beiden Spezialadressen zu ermitteln. Klicke auf "Tipps", um solche zu erhalten, falls du sie benötigen solltest.
 +
 +++++Tipps|
 +
 +Stelle die Maske und die vorgegebene IP-Adresse im Binärsystem dar. Verwende dafür wieder Python. Die Netzwerk Adresse und Broadcast Adressen stimmen in dem Teil, in dem die Maske aus Einsen besteht mit der vorgegebenen IP-Adresse überein. Um die Netzwerk Adresse zu erhalten, füllst du den Rest mit Nullen auf (kleinste mögliche erlaubte IP-Adresse. Wie ermittelt man die Broadcast Adresse?
 +
 +++++
 +
 +Ermittle die **Netzwerk Adresse** und die **Broadcast Adresse** für ein Netzwerk mit Maske ..., in dem die IP-Adresse ... vorkommt:
 +
 +   1. Maske /24, IP-Adresse: 192.168.1.127
 +   1. Maske /20, IP-Adresse: 29.185.149.17
 +   1. In den beiden Netzwerken von 1. und 2.: Welches sind die kleinste und grösste IP-Adressen, die an normale Geräte vergeben werden können?
 +
 +=== Aufgabe D6 - Routingtabelle ===
 +
 +Ein Router hat die folgende Routing-Tabelle:
 +
 +^ IP-Präfix ^ Router ^ Handlung ^
 +| 1.1.3.1/32 | -- | Paket empfangen (eigene Adresse) |
 +| 3.3.3.3/32 | -- | Paket empfangen (eigene Adresse) |
 +| 1.1.3.0/24 | -- | Direkt versenden über Netzwerkkarte 1, Ziel im gleichen Subnetz 1.1.3 |
 +| 3.3.3.0/24 | -- | Direkt versenden über Netzwerkkarte 2, Ziel im gleichen Subnetz 3.3.3 |
 +| 1.1.1.0/24 | 3.3.3.2 | Weiterleiten über 3.3.3.2 |
 +| 1.1.8.0/24 | 3.3.3.8 | Weiterleiten über 3.3.3.8 |
 +| 1.1.6.0/24 | 3.3.3.4 | Weiterleiten über 3.3.3.4 |
 +| 0.0.0.0/0 | 3.3.3.1 | Default-Route: An den Router (auch *Gateway*) 3.3.3.1 senden zur Weiterleitung |
 +
 +Entscheide, welche Zeilen für Pakete mit folgenden Ziel-Adressen zum Tragen kommen:
 +
 +  1. ''1.1.8.17''
 +  1. ''129.132.98.12''
 +  1. ''1.1.3.2''
 +  1. ''3.3.3.3''
 +
 +<nodisp 2>
 +</nodisp>
 +  
 +
 +==== Lösungen D ====
 +
 +<nodisp 1>
 +<color blue>NODISP</color>
 +
 +
 +++++Aufgabe D1|
 +  1. Vermittlungsschicht
 +  1. Damit das Routing funktioniert, muss jedes Gerät eine IP-Adresse des Subnetzes haben, in dem es eingebunden wird.
 +++++
 +
 +++++Aufgabe D2|
 +
 +   * 192.168.1.33: nicht gleiches NW
 +   * 192.168.1.87: gleiches NW
 +   * 192.168.1.130: nicht gleiches NW
 +
 +
 +++++
 +
 +++++Aufgabe D3|
 +
 +Wichtig: Stelle sicher, dass alle IP-Adressen im gleichen Subnetz vorkommen können. Siehe dazu Aufgabe D2.
 +
 +++++
 +
 +++++Aufgabe D4|
 +
 +   1. $15$
 +   1. $131070$
 +   1. 255.255.252.0
 +   1. Ja. Wandle IP-Adressen und Masken ins Binärsystem um, um dies zu zeigen! Verwende dazu Python.
 +
 +
 +++++
 +
 +++++Aufgabe D5|
 +
 +   1. Netzwerk Adresse: 192.168.1.0, Broadcast Adresse: 192.168.1.255
 +   1. Netzwerk Adresse: 29.185.144.0, Broadcast Adresse: 29.185.159.255
 +   1. 192.168.1.1 / 192.168.1.254 und 29.185.144.1 / 29.185.159.254
 +
 +
 +++++
 +
 +
 +++++Code IP bin <-> dec|
 +
 +<code python>
 +def ip_dec_as_string(ip):
 +    st = ""
 +    for nr in ip:
 +        st += str(nr) + "."
 +    return st[0:len(st)-1]
 + 
 +def ip_dec_list_to_bin(ip):
 +    # [133,162,149,238] -> "10000101.10100010.10010101.11101110"
 +    bin_ip = ''
 +    for nr in ip:
 +        b = bin(nr)[2:]
 +        while len(b) < 8:
 +            b = '0' + b
 +        bin_ip += b + "."
 +    return bin_ip[0:len(bin_ip)-1]
 +
 +def ip_dec_to_bin(ip):
 +    # "133.162.149.238" -> "10000101.10100010.10010101.11101110"
 +    ip = [int(x) for x in ip.split('.')]
 +    return ip_dec_list_to_bin(ip)
 +
 +def ip_bin_to_dec_list(ip_bin):
 +    # "10000101.10100010.10010101.11101110" -> [133,162,149,238]
 +    ip = []
 +    ip_bin = ip_bin.split('.')
 +    for nr in ip_bin:
 +        ip.append(int(nr,2))
 +    return ip
 +
 +def ip_bin_to_dec(ip_bin):
 +    # "10000101.10100010.10010101.11101110" -> "133.162.149.238"
 +    ip = ip_bin_to_dec_list(ip_bin)
 +    ip = [str(x) for x in ip]
 +    return '.'.join(ip)
 +
 +def mask_bin_to_cidr(mask_bin):
 +    count = 0
 +    for x in mask_bin:
 +        if x == '1': count += 1
 +    return count
 +
 +print(ip_dec_list_to_bin([133,162,149,238]))
 +print(ip_dec_to_bin("133.162.149.238"))
 +print(ip_bin_to_dec_list("10000101.10100010.10010101.11101110"))
 +print(ip_bin_to_dec("10000101.10100010.10010101.11101110"))
 +
 +def ip_dec_same_network_all_dec(mask,ip_1,ip_2):
 +    cidr = mask_bin_to_cidr(ip_dec_to_bin(mask))
 +    ip_1 = ''.join(ip_dec_to_bin(ip_1).split('.'))
 +    ip_2 = ''.join(ip_dec_to_bin(ip_2).split('.'))
 +    for i in range(cidr):
 +        if ip_1[i] != ip_2[i]:
 +            return False
 +    return True
 +
 +print(ip_dec_same_network_all_dec("255.255.255.192","192.168.1.102","192.168.1.33"))
 +print(ip_dec_same_network_all_dec("255.255.255.192","192.168.1.102","192.168.1.87"))
 +print(ip_dec_same_network_all_dec("255.255.255.192","192.168.1.102","192.168.1.130"))
 +</code>
 +
 +++++
 +
 +</nodisp>
 +
  • gf_informatik/web/internet/aufgaben_a.1702204872.txt.gz
  • Zuletzt geändert: 2023-12-10 10:41
  • von hof