====== Kommunikation in Rechnernetzen ====== ===== Vernetzung von Rechnern ===== ==== Das Client-Server-Modell ==== Die beiden gängigsten Modelle für die Zusammenarbeit mehrerer Rechner in einem Netz sind das **Peer-To-Peer-Modell** und das Client-Server-Modell. {{:e1:peer.gif?200|}} Beim Peer-To-Peer-Modell sind alle Teilnehmer gleichwertige Mitglieder einer Gruppe (der "Arbeitsgruppe"). Jeder kann Ressourcen für die anderen zur Verfügung stellen. Verwendet wird es nur bei kleinen Teilnehmerzahlen. {{:e1:cl-server1.gif?200|}} Beim Client-Server-Modell ist ein Teilnehmer ausgezeichnet.Ein **Server** stellt Dienste für viele **Clienten** bereit. Der Server wartet // meise passiv// auf Anforderungen. Die Clienten fordern (//aktiv//) einen Dienst an, den der Server ausführt. Beim Client-Server-Modell kommunizieren zwei Programme miteinander: Das **Client-Programm** sendet Befehle an das Server-Programm. Das Server-Programm führt die Befehle aus und übermittelt dem Client-Programm die angeforderten Daten. Zur Kommunikation dient ein Übertragungsprotokoll. Die Bezeichnungen Client und Server werden auch für Hardware verwendet: Man nennt den Rechner, auf dem ein Server-Programm läuft, den Server-Rechner oder kurz den **Server**. Ebenso nennt man den Rechner, auf dem ein Client-Programm läuft, den Client-Rechner oder kurz den Client. Es kann durchaus sein, dass auf einem Rechner mehrere Server-Programme gestartet sind, die darauf warten, dass sie von einem Client-Programm Aufträge erhalten. Ebenso laufen auf einem Rechner oft mehrere Client-Programme. **Beispiele:** Wenn man mit seinem Rechner "ins Internet geht" und eine Seite aufruft, dann ist der eigene Rechner der Client. Der Browser, also das Programm, mit dem man die Internetseiten aufruft und anzeigen lässt, ist das Client-Programm. Der Rechner, auf dem die aufgerufenen Internetseiten liegen, ist ein **Server**. Und das Programm, welches die Datenanfrage von dem Browser empfängt und die Seiten zum eigenen Computer schickt, ist ein Server-Programm. Das verwendete Protokoll ist **HTTP** (**H**yper**T**ext **T**ransfer **P**rotocoll). Auf ein und demselben Server (Rechner) können mehrere Server-Programme laufen: Etwa neben dem Web-Server auch noch ein FTP-Server.
Beispiele für Server im IT-Bereich
Web-Server Liefert HTML-Seiten aus
FTP-Server Liefert Dateien aus
Mail-Server Speichert einkommende Email und liefert sie aus
Proxy-Server Liefert oder sperrt Internet Dienste für mehrere Rechner hier in der Schule (TimeForKids)
Print-Server Führt Druckaufträge aus
Chat-Server z.B. Teamspeak oder Whatsapp verteilt Online-Nachrichten an die Teilnehmer
==== Client Server Modell am Beispiel HTML ==== Auf dem Server werden gemeinsame Daten und Anwendungen bereitgestellt. Die Clients nutzen für (weite) Teile der Arbeit ihre lokale Leistungsfähigkeit. Der Server verwaltet den zentralen Datenbestand und bearbeitet diesen. Die Clients sorgen für die Benutzerschnittstelle, Datenpräsentation und bereiten den Datenbestand auf. **Beispiel: WWW** {{:e1:csarbeit1.gif?200|}} Auf dem Client läuft ein Browser als Client-Programm. Der Web-Server stellt u.a. die Daten zur Verfügung, der Browser stellt sie dar.
Ein möglicher Ablauf der Datenübertragung:
Client Server
(entfernter Host)
Anfordern einer WWW-Seite  
  Senden der WWW-Seite
Aufbereiten der Seite
Entdecken eines unbekannten Datenformates
Anfordern eines Handlerprogrammes dafür
 
  Senden des Handlerprogrammes
Anzeigen der Seite  
==== Client-Server (mehrschichtig) ==== Neben dem Daten(bank)-Server werden manchmal weitere Server genutzt, die die Anwendungsfunktionalität liefern und auf dem Datenserver aufsetzen. {{:e1:cl-server2.gif?200|}} * Der Benutzer startet die Client-Anwendung. Die Verbindung zum Anwendungsserver wird hergestellt. Der Client sendet eine Anfrage an den Anwendungsserver. * Der Anwendungsserver bearbeitet die Anfrage und fordert z.B. Daten aus der Datenbank ab oder schickt eine Aufforderung zur Bearbeitung. Dazu wird die Verbindung zur Datenbasis aufgebaut; die als Ergebnis erhaltenen Daten werden als Paket zur Client-Anwendung geschickt. * Der Client dekodiert die Daten und zeigt sie an. Der Benutzer aktualisiert die Daten. Die Client-Anwendung sendet ggfs. das bearbeitete Datenpaket zurück. * Der Anwendungsserver dekodiert das Paket und übergibt es an den Datenbankserver. Es kann sein, dass bestimmte Transaktionen nicht durchgeführt werden können; z.B. wegen Mehrfachzugriffen. Der Anwendungsserver behält eine Kopie dieser Daten und sendet die nicht eingetragenen Datensätze an den Client zurück. * Der Client versucht die nicht eingetragenen Datensätze zu korrigieren und sendet sie erneut an den Anwendungsserver. Dieser übergibt sie an den Datenbankserver. * Der Anwendungsserver schließt die Verbindung zum Datenbankserver; die Client-Anwendung schließt die Verbindung zum Anwendungsserver ===== Netzwerke ===== {{:e1:netzwerktopologien.png?400|}} Die Netzstruktur eines Rechnernetzes wird mit seiner Topologie beschrieben, der spezifischen Anordnung der Geräte, die mittels dieses Netzes untereinander verbunden sind und darüber Daten austauschen. Es wird zwischen physikalischer und logischer Topologie unterschieden. Die physikalische Topologie beschreibt den Aufbau der Netzverkabelung; die logische Topologie den Datenfluss zwischen den Endgeräten. Topologien werden grafisch (nach der Graphentheorie) mit Knoten und Kanten dargestellt. In großen Netzen findet man oftmals eine Struktur, die sich aus mehreren verschiedenen Topologien zusammensetzt. Die Topologie eines Netzes ist entscheidend für seine Ausfallsicherheit: Nur wenn alternative Wege zwischen den Knoten existieren, bleibt bei Ausfällen einzelner Verbindungen die Funktionsfähigkeit erhalten. Es gibt neben dem Arbeitsweg einen oder mehrere Ersatzwege (oder auch Umleitungen). ===== Praxis: Zuhause und Schule ===== Bei Netzen in Stern-Topologie sind an einen zentralen Teilnehmer alle anderen Teilnehmer mit einer Punkt-zu-Punkt-Verbindung angeschlossen (siehe auch Sterngraph). Der zentrale Teilnehmer muss nicht notwendigerweise über eine besondere Steuerungsintelligenz verfügen. In Transportnetzen ist das generell nicht der Fall. In Computernetzen kann es eine spezialisierte Einrichtung sein, zum Beispiel ein Hub oder Switch. Auch das Netz einer Nebenstellenanlage ist gewöhnlich ein Sternnetz: Die Vermittlungsanlage ist der zentrale Knoten, an den jeder Teilnehmerapparat mit einer eigenen Leitung sternförmig angeschlossen ist. In jedem Fall bewirkt eine zentrale Komponente in einem Netz eine höhere Ausfallwahrscheinlichkeit für die einzelnen Verbindungen: ein Ausfall des zentralen Teilnehmers bewirkt unweigerlich den Ausfall aller Verbindungsmöglichkeiten zur gleichen Zeit. Eine geläufige Schutzmaßnahme bei Sternnetzen besteht darin, die zentrale Komponente zu doppeln (Redundanz). Diese Art Netzwerk wird meist zu Hause verwendet. Dabei ist der Router der Zentrale Knoten (Fritbox, EasyBox, etc) alle Geräte im Haus wie PCs, Fernseher, Spielekonsolen, Handys und Tablets werden mit ihm Sternförmig verbunden. Das Schulnetz ist eher als Baum zu sehen. Switches werden wieder mit Switches und den Endgeräten verbunden. Ist ein Switch kaputt, funktionieren alle dahinter liegenden Geräte nicht mehr. Das ist vor allem Blöd, wenn der zentrale Switch kaputt geht. **Vorteile** Der Ausfall eines Endgerätes hat keine Auswirkung auf den Rest des Netzes. Dieses Netz bietet hohe Übertragungsraten, wenn der Netzknoten ein Switch ist (ein Switch hat in der Regel einen höheren Datendurchsatz als ein Hub.) Leicht erweiterbar Leicht verständlich Leichte Fehlersuche Kombinierte Telefon- / Rechnernetzverkabelung möglich Sehr gute Eignung für Multicast-/Broadcastanwendungen Kein Routing benötigt **Nachteile** Durch Ausfall des Verteilers wird Netzverkehr unmöglich Niedrige Übertragungsrate bei vielen Hosts wenn ein Hub benutzt wird Hoher Kabelaufwand ==== Aufgabe ==== Recherchiere im Netz über die Vorteile der Bus und Ring-Topologie. Beurteile die EInsatzmöglichkeiten dieser Topologien. ==== Aufgabe: zum selber ausprobieren ==== Installiere das Programm [[https://www.lernsoftware-filius.de/Herunterladen|Fillius]] Aufgaben und Skript zu Fillius [[https://www.inf-schule.de/rechnernetze/filius|Bearbeite das Begleitmatierial]]