Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
p:netzwerke:mehrere_rechner [2022/03/09 14:45] – angelegt Ralf Kretzschmarp:netzwerke:mehrere_rechner [2024/09/30 15:09] (aktuell) – [💻-💻-💻 Mehrere Rechner verbinden] Ralf Kretzschmar
Zeile 1: Zeile 1:
 +Navigation: [[p:netzwerke:peer2peer]] —> [[p:netzwerke:mehrere_rechner]] —> [[p:netzwerke:mehrere_netzwerke]] —> [[p:netzwerke:webserver]] {{gem/mgr}}{{ gem/pageinfo}}
  
 +====== 💻-💻-💻 Mehrere Rechner verbinden ======
 +
 +**🎯 Worum geht es?**((Bildquellen: Wenn nicht anders angegeben, stellen die Bilder Screenshots der [[https://www.lernsoftware-filius.de|Software Filius]] von Stefan Freischlad dar und unterliegen der [[https://www.gnu.org/licenses/gpl-3.0.html|GNU General Public License V3]]))
 +  * Du baust ein einfaches Netzwerk mit mehreren Rechnern auf.
 +  * Du lernst, wie garantiert werden kann, dass alle zu versendenden Daten (auch über das Internet) vollständig beim Empfänger ankommen.
 +  * Du lernst wie vermieden wird, dass wenn zwei Rechner im selben Empfangsbereich gleichzeitig senden, sich die Signale gegenseitig stören.
 +
 +~~INTOC~~
 +
 +\\ 
 +===== - Netzwerk einrichten und testen =====
 +
 +  ; Switch
 +  : Ein **Switch** ist ein Gerät, das es erlaubt, mehrere Rechner miteinander zu verbinden. Der Switch identifiziert dabei alle verbundene Rechner über deren **MAC-Adresse**. Jeder **WLAN-Access-Point** ist auch ein Switch, mit welchem sich mehrere Rechner gleichzeitig verbinden können.
 +
 +<WRAP center round box >
 +== ✍ Auftrag – Filius 4 ==
 +{{ gem/flag?label=Erledigt&icon=%E2%9C%8D#e3cfe457118e82b0}} {{ :p:netzwerke:entwurfsmodus.png?nolink&51|}}
 +👉 Verbinde mehrere Rechner mithilfe eines Switch zu einem Netzwerk.
 +  - Öffne in Filius das Netzwerk, welches du unter dem Namen Filius02 abgespeichert hattest.
 +  - Erweitere das Netzwerk gemäss untenstehender Abbildung um einen Switch und einen Rechner, dem du die IP 192.168.0.12 gibst und "Server 0.12" nennst.
 +  - Speichere das Netzwerk unter Filius04 ab, dieses wird für den Auftrag Filius 5 gebraucht.
 +  - Markiere diesen Auftrag als "Erledigt".
 +{{ :p:netzwerke:switch.png?nolink&329 |}}
 +</WRAP>
 +
 +  ; Server Dienste
 +  : Ein Server ist ein Rechner, der einen Dienst zur Verfügung stellt (z.B. ein Webseiten). Ein sehr einfacher Server Dienst ist z. B. der "Echo-Server". Dieser sendet alle an ihn gerichtete Nachrichten wieder zurück an den Absender (wie ein Echo).
 +
 +<WRAP center round box >
 +== ✍ Auftrag – Filius 5 ==
 +{{ gem/flag?label=Erledigt&icon=%E2%9C%8D#c71c9a2ae7eedd20}} {{ :p:netzwerke:aktionsmodus.png?nolink&51|}}
 +👉 Teste mit einem Echo-Server, ob das Netzwerk funktioniert.
 +  - Wechsle in den ▶️ Aktionsmodus.
 +  - Klicke auf den ''Server 0.12'' und installiere den ''Echo-Server''.
 +  - Starte den ''Echo-Server'' mit dem Port ''55555''.
 +  - Installiere auf dem ''Rechner 0.10'' den ''Einfacher Client''.
 +  - Starte den ''Einfacher Client'', gib die Server IP-Adresse ein, klicke auf ''Verbinden'' und sende die Nachricht ''Hallo''.
 +  - Trenne danach auf dem ''Einfacher Client'' die Verbindung.
 +  - Wenn alles geklappt hat, siehst du im ''Einfacher Client'' die gesendete Nachricht ''<<Hallo'' (die ''<<'' zeigen das Senden an). Darunter steht die empfangene Nachricht ''>>Hallo'' (die ''>>'' zeigen das Empfangen an). 
 +  - Speichere das Netzwerk unter Filius05 ab, dieses wird für den Auftrag Filius 6 gebraucht.
 +  - Markiere diesen Auftrag als "Erledigt".
 +</WRAP>
 +\\ 
 +===== - Exkurs Aufbau einer stabilen Netzwerkverbindung =====
 +
 +🤓 Um zu verstehen, wie der "Einfache Client" stabil mit dem "Echo-Server" kommunizieren kann, musst du wissen, wie eine stabile Verbindung garantiert werden kann. Daher zuerst etwas Theorie.
 +
 +  ; Socket
 +  : Der Einfache Client und der Echo-Server sind Anwendungen. Damit zwei Anwendungen miteinander kommunizieren können, müssen diese voneinander die IP-Adresse und den Port wissen. Die Kombination IP und Port wird als **Socket** bezeichnet und häufig in der Form //IP-Adresse:Port// geschrieben, z.B. ''192.168.0.12:55555''.
 +
 +  ; TCP Protokoll
 +  : Das **TCP Protokoll** ist für den Aufbau und das Garantieren einer stabilen Verbindung zwischen zwei Rechnern zuständig. Dazu wird jede empfangene Nachricht (jeder empfangene Nachrichtenteil) mit einem TCP Protokoll bestätigt. Bleibt solch eine Bestätigung aus, so wird die Nachricht erneut gesendet.
 +
 +  ; 3-Way Handshake
 +  : Der **3-Way Handshake** ist ein Vorgehen in drei Schritten, um zu eine stabile Verbindung zwischen zwei Rechnern aufzubauen und zu testen. Dazu werden TCP Protokolle versendet. Salopp beschrieben läuft das wie folgt ab:\\ \\ 
 +  1. Rechner A an Rechner B: "Hey Rechner B, bist du online?"
 +  2. Rechner B an Rechner A: "Yo Bro! Ist meine Antwort bei dir angekommen?"
 +  3. Rechner A an Rechner B: "So was von!"
 +
 +===== - Netzwerk verstehen =====
 +
 +⚠️ Dieses Kapitel baut auf den vorangehenden "Exkurs Aufbau einer stabilen Netzwerkverbindung" auf.
 +
 +<WRAP center round box >
 +== ✍ Auftrag – Filius 6 ==
 +{{ gem/flag?label=Erledigt&icon=%E2%9C%8D#a424202743148793}} {{ :p:netzwerke:aktionsmodus.png?nolink&51|}}
 +👉 Das Switch-Netzwerk verstehen - Teil 1.
 +  - ⚠️ Öffne **erneut** in Filius das Netzwerk, welches du unter dem Namen Filius05 abgespeichert hattest, aktiviere den Echo-Server, verbinde den Einfachen Client und schicke erneut die Nachricht "Hallo".
 +  - Öffne den ''Datenaustausch'' des ''Rechner 0.10'' (im ▶️ Aktionsmodus Rechtsklick auf den ''Rechner 0.10''). Wenn der Datenaustausch leer ist, so sende erneut vom Client eine Nachricht an den Echo-Server und trenne im Client die Verbindung.
 +  - Wenn alles geklappt hat, sieht das aus wie in der Abbildung im nächsten Auftrag.
 +  - Markiere diesen Auftrag als "Erledigt".
 +</WRAP>
 +<WRAP center round box >
 +== ✍ Auftrag – Filius 7 ==
 +👉 Das Switch-Netzwerk verstehen - Teil 2.
 +
 +⚠️ Achtung, da der Echo-Client bei jedem Verbindungsaufbau einen anderen zufälligen Port wählt, beziehen sich die Fragen auf den nachfolgenden Screenshot.
 +
 +{{ :p:netzwerke:switchdatenaustausch.png?nolink |}}
 +  - Die Zeilen 3-5 zeigen den 3-Way Handshake. Der Client baut die Verbindung mit dem Server auf. Wie lauten die beiden Sockets in der Notation //IP-Adresse:Port//? {{gem/match?0=N4IgLgpgHmIFwgMoHsDGBrCYAEBRAlgHYBmAhqgBYQBO2AwgDb4SFhzYA6hKGWelyALSIaANxrZJk9iAA0IYg1IBzAM7wQ+OSGoRl0AA4aAdACoAjAE4ATBw7HzANgAcd4wAY3593DsATYABWAF8zLjMrW3snV3tPaOs4QOTkkGCgA#1b808147474123a5}}
 +  - Wie ist der 3-Way Handshake in den Zeilen 3-5 aufgebaut? Nachricht 1 enthält eine Sequenznummer ''SEQ'', in Nachricht 2 wird mit einer ''ACK'' Nummer geantwortet und eine neue ''SEQ'' geschickt, in Nachricht 3 wird wiederum mit einer ''ACK'' Nummer geantwortet.\\ Um wie viel grösser ist die ''ACK'' Nummer in Nachricht 2 als die ''SEQ'' Nummer in der vorausgehenden Nachricht 1?{{gem/match?0=N4IgLgpgHmIFwhAGhAMwDYEMDmBneIAlsiAE4TbQAOBAdAFQCMIAvkA#e6452a0af529102c}}
 +  - In der Zeile 6 schickt der Client dem Server die Nachricht "Hallo". In Zeile 7 bestätigt der Server den Erhalt der Nachricht per TCP.\\ Um wie viel ist die ''ACK'' Nummer der Empfangsbestätigungen in Zeile 7 grösser als die vorangehende ''SEQ'' Nummer (Zeile 5)? Und um wie viel ist die ''ACK'' Nummer der Empfangsbestätigungen in Zeile 9 grösser als die vorangehende ''SEQ'' Nummer (Zeile 7)?\\ 💡 Tipp: Die Nachricht ''Hallo'' besteht aus fünf Buchstaben. {{gem/match?0=N4IgLgpgHmIFwhAGhAMwDYEMDmBneIAlsiAE4TbQAOBAdAFQCsIAvkA#ec8ddfdc3b8204a3}}
 +  - Beim 3-Way Handshake in den Zeilen 3-5 wird mit dem Schlüsselwort ''SYN'' angezeigt, dass eine Verbindung aufgebaut wird. In den Zeilen 10-13 wird diese Verbindung mittels vier TCP Nachrichten wieder getrennt.\\ Welches Schlüsselwort wird in den Zeilen 10-13 verwendet, um analog zu ''SYN'' das Beenden der Verbindung anzuzeigen?{{gem/match?0=N4IgLgpgHmIFwhAGhAMwDYEMDmBneIAlsiAE4TbQAOBAdAFQBiAkgHIgC+QA#021de09459e7fa6a}} 
 +</WRAP>
 +\\ 
 +===== - Exkurs Signalübertragung und Vermeidung von Signalkollisionen =====
 +
 +🤓 Wie wird eigentlich ein Signal über ein LAN-Kabel oder über WLAN übertragen? Und was passiert, wenn zwei oder mehrere Rechner gleichzeitig senden?
 +
 +  ; Signalübertragung
 +  : Bei einer Verbindung über LAN-Kabel oder per WLAN wird beim Empfänger in regelmässigen Zeitabständen gemessen, ob ein digitales Signal eintrifft.\\ \\ 
 +  * **LAN-Kabel:** Wird zum Messzeitpunkt eine Spannung von + 2-3 V erkannt, wird dies als digitale 1 interpretiert, eine Spannung von - 2-3 V wird als digitale 0 erkannt.
 +  * **WLAN:** Beim WLAN Funksignal werden durch verschiedene Signalstärken (Amplituden) und verschiedene Signalverschiebungen (Phasenverschiebungen) in jeder Zeiteinheit gleichzeitig mehrere Bits übertragen. 
 +
 +  ; Vermeidung von Signalkollisionen
 +  : Senden mehrere Netzwerkkarten gleichzeitig, kann es bei einer LAN-Verbindung im Kabel und bei einer WLAN-Verbindung in der Luft zu einer Überlagerung (Kollision) der Signale kommen. Um das zu vermeiden, horcht ein Rechner in jedem Fall vor dem Senden erst einmal, ob bereits ein Signal übertragen wird. Falls nicht wird ...\\ \\ 
 +  * **LAN-Kabel:** ... das Signal gesendet und während dem Senden mitgehört, um eine mögliche Kollision zu entdecken. Ist eine solche aufgetreten, so wartet der Sender eine zufällige Zeitdauer und sendet es erneut.
 +  * **WLAN:** ... zuerst ein Ready to Send (RTS) Signal an den Empfänger geschickt und dieser antwortet mit einem Clear to Send (CTS) Signal, welches allen anderen Rechnern im Empfangsbereich signalisiert, dass diese eine Zeit lang nicht senden dürfen.
 +\\ 
 +
 +===== - Auf zu noch grösseren Netzwerken... ======
 +
 +Fahre weiter mit: [[p:netzwerke:mehrere_netzwerke]].
 +
 +\\ 
 +=== Eigene Notizen ===
 +{{gem/quill#f17467c6e1289227}}