Dies ist eine alte Version des Dokuments!
Loading ⌛Loading ⌛
💻-💻 Peer-to-Peer-Netzwerk
- 🎯 Worum geht es?1)
Du baust das einfachste Netzwerk – zwei Rechner direkt verbinden – auf.
Du lernst, wie Daten über ein Netzwerk (z.B. das Internet) verschickt werden.
Du lernst, warum sich zwei so unterschiedliche Systeme wie ein iOS Handy und ein Windows-PC verstehen können.
Inhaltsverzeichnis
1. Netzwerk-Simulator "Filius"
ℹ️ Filius ist ein Netzwerk-Simulationsprogramm der Universität Siegen. Damit wirst du die Grundlagen der Netzwerktechnik erlernen. Die Kapitel zu Netzerken mit Filius basieren auf dem Skriptum zum Unterricht - Netzwerke mit Filius von Daniel Garmann.
⚠️ Für die Bearbeitung der Kapitel muss Filius vorgängig installiert werden:
Installation Filus auf dem eigenen Laptop (zum Öffnen klicken)
Windows und Linux
Download und Installation gemäss:
Download Filus
⚠️ Windows: Es kann sein, dass Filius auf einem hochauflösenden Displays winzig angezeigt wird. Lösung: Rechtsklick auf das Filius-Symbol,
Eigenschaften
wählen, dann das Register
Kompatibilität
öffnen, dort auf
Einstellungen für alle Benutzer ändern
klicken und ein Häkchen vor
Verhalten bei hoher DPI-Skalierung überschreiben
und direkt darunter bei
Skalierung durchgeführt von:
das
Syste
auswählen.
macOS
Prüfe, ob Java Version 17 oder höher auf deinem Mac installiert ist, wie folgt:
Über die Lupe 🔍 oben rechts, öffne die „terminal.app“ - die terminal.app ist ein „Textfenster“.
In die terminal.app tippe Folgendes ein und quittiere das danach mit der Enter
-Taste:
java -version
Wenn danach sofort java version
und dahinter als Erstes eine Zahl grösser gleich 17 angezeigt wird, dann passt alles. Wenn eine kleinere Zahl oder statt java version
etwas anderes (z.B. eine Fehlermeldung) ausgegeben wird, dann muss die neueste Java Version installiert werden.
Installiere die neueste Java Version (falls notwendig) d.h. den neuesten JDK Installer wie folgt:
-
Prüfe, ob alles geklappt hat (das ist im vorangehenden Punkt 1 beschrieben). Wenn eine Fehlermeldung in der terminal.app angezeigt wird, dann einfach den Computer neu starten, dann sollte danach die richtige Versionsnummer angezeigt werden.
Installiere die neueste Filius-Version wie folgt:
Lade die
Zip
-Version von Filius herunter, d.h. auf die
Filius Download Seite gehen und in der Klammer hinter der Versionsnummer auf das Wort
Zip
klicken.
Verschiebe das Zip-File an einen Ort, wo du das File wieder findest.
Doppelklicke das File. Es wird ein Ordner mit dem gleichen Namen erzeugt. Öffne diesen Ordner. Suche darin das File filius.jar
.
Danach Rechtsklick auf das File filius.jar
, danach Öffnen mit
wählen und JavaLauncher.app
. Jetzt alles was kommt mit Öffnen
und Erlauben
quittieren. Filius wird geöffnet.
Wenn Filius später einmal erneut gestartet werden soll, einfach im Finder wieder zu filius.jar
gehen und dieses direkt Doppelklicken.
Falls du Java später einmal entfernen möchtest, hier eine Anleitung dazu (diese entfernt gleich alle Java-Versionen, solltest du mehrere haben):
Öffne wie in Punkt 1 beschrieben die „terminal.app“. Tippe das Folgende und quittiere das mit Enter
-Taste
sudo rm -rf /Library/Java/JavaVirtualMachines
Jetzt wird Passwort:🔑
angezeigt. Das bedeutet, jetzt muss das Administratorpasswort des Computers „blind“ eingegeben und mit Enter
quittiert werden.
Wenn alles geklappt hat, führt die Eingabe
java -version
zu einer Fehlermeldung.
2. Peer-to-Peer Netzwerk einrichten und testen
✍ Auftrag – Filius 1
Loading ⌛
👉 Verbinde zwei Laptops per LAN-Kabel zu einem „Peer-To-Peer-Netzwerk“.
💡 Aufgaben mit dem rechts gezeigten „Hammersymbol“ sind im Entwurfsmodus zu bearbeiten, dazu muss im Filius-Fenster auf das Hammersymbol geklickt werden.
Starte Filius, füge zwei Laptops ein und verbinde diese per Kabel.
Klicke auf den Laptop links, gebe diesen die IP-Adresse
192.168.0.10
und den Namen
Rechner 0.10
.
Gebe dem Laptop rechts die IP-Adresse
192.168.0.11
und den Namen
Rechner 0.11
.
Speichere das Netzwerk unter
Filius01
ab.
2)
Markiere diesen Auftrag als „Erledigt“.
✍ Auftrag – Filius 2
👉 Teste, ob das „Peer-To-Peer-Netzwerk“ funktioniert.
💡 Aufgaben mit dem rechts gezeigten „Wiedergabesymbol“ sind im Aktionsmodus zu bearbeiten, dazu muss im Filius-Fenster auf das Wiedergabesymbol geklickt werden.
Wechsle in den Aktionsmodus.
Klicke auf den Rechner 0.10
und installiere die Befehlszeile
.
Starte die Befehlszeile
und teste die Verbindung zum Rechner 0.11
mit dem Befehl ping 192.168.0.11
. Beachte dabei, wie das Kabel zwischen den Laptops die Farbe ändert, wenn Daten gesendet werden.
Wenn alles geklappt hat, sendet Rechner 0.10
viermal eine Nachricht („ping“) an den Rechner 0.11
, der jeweils mit einer Nachricht antwortet.
Öffne per Rechtsklick auf einen der beiden Laptops den Datenaustausch
. Dort siehst du die Nachrichten, welche ausgetauscht wurden. Suche die Zeile, in welcher das erste „ping“ gesendet wird. Schreibe die Nummer (Spalte Nr.
) dieser Zeile ins Textfeld. 🏓 Übrigens, die Antwort auf „ping“ wird als „pong“ bezeichnet.
Speichere das Netzwerk unter Filius02 ab, dieses wird für die Aufträge Filius 3 und Filius 4 gebraucht.
Loading ⌛
3. Exkurs Netzwerkprotokolle und - schichten
🤓 Um den Datenaustausch
in Filius zu verstehen, musst du wissen, wie Nachrichten in einem Netzwerk übermittelt werden. Daher zuerst etwas Theorie.
- Server
- Ein Server ist ein Rechner, der einen Dienst (Webseite, E-Mail etc.) zur Verfügung stellt, welchen andere Rechner nutzen können.
- Client
- Ein Client ist ein Rechner, der einen Server-Dienst nutzt.
- Protokoll
- Ein Protokoll ist einerseits eine Vereinbarung, wer was wann wie mit welchen Worten sagt (sonst würden sich all die unterschiedlichen Handys und Laptops nicht verstehen). Und andererseits eine (binär codierte) Netzwerk-Nachricht, welche gemäss der Protokoll-Vereinbarung geschrieben und verschickt wird.
- Schichtmodell
- Der Aufbau von einem Netzwerk (z.B. das Internet) kann durch ein Schichtmodell beschrieben werden (siehe Tabelle).
- Zusammenhang der Schichten
- Wenn z.B. auf einem Client ein Browser eine Webseite bei einem Server anfragen möchte, so erzeugt der Browser für die Anfrage ein entsprechendes http-Protokoll (Anwendungsschicht). Damit das http-Protokoll verschickt werden kann, muss der Client zuerst eine Verbindung zum Server herstellen (Transportschicht). Damit eine Verbindung zum Server hergestellt werden kann, muss zuerst ein Weg durch das Internet gefunden werden (Vermittlungsschicht). Und damit ein Weg durch das Internet gefunden werden kann, muss zuerst einmal geschaut werden, ob überhaupt die nächste Netzwerkkarte angesprochen werden kann (Netzzugangsschicht).
Schicht | Beschreibung | Protokoll-Beispiele | „Adressen“ |
Anwendung | Verschickt Daten und Dateien von Anwendungsprogrammen in Form von Anwendungsprotokollen. Jede Anwendung wird dabei durch ihre Port-Nummer identifiziert. | http, dns | Port-Nummer |
Transport | Stellt Verbindung zwischen Client und Server her. Spaltet beim Senden grosse Anwendungsprotokolle in kleinere Einheiten und setzt diese beim Empfangen mithilfe der Segment Number wieder zusammen | tcp, udp | Segment Number |
Vermittlung | Sucht den Weg durch das Netzwerk / Internet. Die IP-Adresse dient dabei als „Post-Adresse“, an welche die Daten verschickt werden. | ip, icmp, arp | IP-Adresse |
Netzzugang | Überträgt die Daten von einer Netzwerkkarte zur nächsten (sodass irgendwann nach mehreren Schritten das Ziel erreicht wird). Jede Netzwerkkarte besitzt eine eigene MAC-Adresse. | ethernet | MAC-Adresse |
- Durchlauf durch die Schichten – Wie bei der Paketpost
- Eine Webseiten-Anfrage, die vom Client gesendet wird, durchläuft auf dem Client alle Schichten von oben nach unten. Dabei werden die Daten in jeder Schicht gemäss Protokoll verarbeitet und verpackt. In jeder Schicht werden die Daten mit einer Zusatzinformation ergänzt - dem Header. Die Header beinhalten unter anderem die „Adressen“ der jeweiligen Schicht (siehe obige Tabelle).
- In der Anwendungsschicht werden die Port-Nummern des Client-Browsers und des Webserverprogramms ergänzt (Anwendungsheader). Danach wird in der Transportschicht eine Segment Number ergänzt (Transportheader - wenn die Nachricht in mehrere Teile gespalten wird, dann erlaubt die Segment Number dem Server die Teile wieder richtig zusammenzusetzen). Anschliessend werden die Client- und Server IP-Adressen ergänzt (Vermittlungsheader - quasi die Absender- und Empfängeradressen). Am Ende wird die MAC-Adresse der nächsten Netzwerkkarte (Netzzugangsheader) ergänzt und die Anfrage an die nächste Netzwerkkarte weitergeleitet.
- Auf dem Server werden die Schichten dann umgekehrt von unten nach oben durchlaufen, alle Header wieder entfernt und die Daten der Anwendung übergeben.
✍ Auftrag – Theorie
Kopiere die folgenden Stichworte zu den Beschreibungen / Eigenschaften in der Tabelle:
Server
, Client
, Protokoll
, Anwendungsschicht
, Transportschicht
, Vermittlungsschicht
, Netzzugangsschicht
, Header
Loading ⌛
Der Befehl
ping
nutzt das
icmp
Protokoll, welches zur Vermittlungsschicht gehört. In welchen Schichten werden der icmp Nachricht beim Senden Header hinzugefügt? Schreibe ein
x
hinter die betreffenden Schichten.
Lösungshinweis
Das imcp Protokoll wird in der Vermittlungsschicht erzeugt und läuft im Schichtmodell nach unten für den Versand. Die Header sind ersichtlich, wenn du im Datenaustausch eine der icmp-Nachrichten anklickst.
Loading ⌛
🏡 Heimauftrag MAC-Adresse
Loading ⌛💡 Die „MAC-Adresse“ oder auch „Physikalische Adresse“ oder „Hardware-Adresse“ genannt, wird durch sechs zweistellige Hexadezimalzahlen dargestellt, z.B. 6A:64:5A:2F:C3:61
oder 6A-64-5A-2F-C3-61
.
Die MAC-Adresse ist in der Hardware fest abgespeichert (im Gegensatz dazu kann die IP-Adresse frei gewählt oder zugeteilt werden). Über die MAC-Adresse ist es möglich, Geräte in einem Netzwerk zu identifizieren und z.B. für das Netzwerk zu sperren.
-
Lese in der Online-Tool-Beschreibung nach, wie du die MAC-Adresse der Netzwerkkarte in deinem Rechner herauslesen kannst.
Tipp: Auf Windows kannst du eine Kommandozeile im Programm „cmd“ eingeben, auf macOS im Programm „terminal“.
Überprüfe die MAC-Adresse im Tool. Was kommt dabei heraus?
Markiere diese Aufgab als „Erledigt“!
4. Peer-to-Peer-Netzwerk verstehen
✍ Auftrag – Filius 3
Loading ⌛
💡 Untersuche, wie genau sich die Rechner finden und miteinander kommunizieren können.
⚠️ Öffne in Filius das Netzwerk erneut, welches du unter dem Namen Filius02 abgespeichert hattest (so löschst du alle Daten und kannst mit einem frischen Netzwerk beginnen, was für diesen Auftrag notwendig ist).
Klicke im Aktionsmodus auf den Rechner 0.10
und starte die Befehlszeile
.
Öffne per Rechtsklick auf einen der beiden Laptops den Datenaustausch
. Wenn der Datenaustausch leer ist, dann setzten erneut einen Ping ab (schreibe in die Befehlszeile
des Rechner 0.10
die Anweisung ping 192.168.0.11
).
Gebe danach in der Filius-Befehlszeile den Befehl ipconfig
ein und studiere die Ausgabe.
Gebe danach in der Filius-Befehlszeile den Befehl arp
ein und studiere die Ausgabe.
Öffne den Datenaustausch. Jede Zeile stellt eine Nachricht (ein Protokoll) dar, welche gesendet oder empfangen wurde. Klicke auf eine Nachricht, um die Details zu sehen. Hier siehst du z.B. von welcher Schicht welche Header der Nachricht hinzugefügt wurden und was darin steht.
Diskutiere mit einer Mitschülerin oder einem Mitschüler die folgenden Fragen. Halte eure Antworten im Textfeld fest.
Was bedeutet im Datenaustausch im ersten ARP-Protokoll der Eintrag FF:FF:FF:FF:FF:FF
(recherchiere dazu im Internet)?
Was genau passiert bei den beiden „ARP“-Einträgen?
Was passiert bei den ersten beiden „ICMP“-Einträgen?
Wenn erneut ein ping 192.168.0.11
ausgeführt wird, dann wird kein ARP-Protokoll versandt, da sich die beiden Rechner bereits vom ersten Ping her kennen. Aber angenommen, es wird ein zusätzlicher Rechner mit der IP-Adresse 192.168.0.12
dem Netzwerk hingefügt. Dann löst die Anweisung ping 192.168.0.12
wiederum ein „arp“-Protokoll aus. Warum?
Rufe anschliessend die Lehrperson, wenn die Lehrperson zufrieden ist mit den Antworten, markierst du die Aufgabe als „Erledigt“.
Loading ⌛
Eigene Notizen