Peer2Peer-ClientServer

=Das Client-Server-Prinzip=

Alternative Bezeichnungen
Sie finden das Client-Server-Prinzip auch unter den Bezeichnungen Client-Server-Modell, Client-Server-Konzept, Client-Server-Computing bzw. Client-Server-Architektur.

Was ist ein Client? Was ist ein Server?
Der Begriff Client steht im deutschen Sprachgebrauch für Kunde bzw. Auftraggeber. Der Begriff Server steht für den Auftragnehmer, welcher einen erteilten Auftrag ausführt. Als erfahrenen Internetnutzern ist Ihnen klar, dass es Aufgaben gibt, welche lokal auf Ihrem Computer erledigt werden, aber auch Aufgaben, welche auf anderen Computern ausgeführt werden. Die damit verbundene Arbeitsteilung wird als Client-Server-Modell bezeichnet. Mit den Begriffen Client und Server ist heute eine Aufgabenteilung verbunden, die wenig mit einer 1:1-Abbildung auf Hardware zu tun hat. Wenn Sie im Internet surfen und gleichzeitig ein Spiel hosten, dann ist solch ein Computer gleichzeitig Client und Server - allerdings für verschiedene Aufgaben. Das Browsen im Internet erfordert einen Webserver als Partner und der auf Ihrem Computer laufende Spieleserver Mitspieler, welche die entsprechenden Clients auf weiteren Computern laufen lassen. Es ist somit grundsätzlich immer möglich, dass Ihr Computer gleichzeitig sowohl als Client als auch als Server agieren kann. Wenn Ihr Computer z.B. mit einem Virus infiziert ist, welcher Befehle aus dem Internet empfängt, so agiert diese Software als Server. // Merke: Die Begriffe Client und Server beziehen sich auf die Funktionalität von Software! //

Client-Server-Prinzip am Beispiel eines Webservers
Die folgende, von mir erstelle Übersicht verdeutlicht das Client-Server-Prinzip am Beispiel des Browsens im Internet. Weder der Client (Browser) noch der Server (Webserver) machen alleine Sinn. Die Gesamtfunktionalität wird von beiden Teilen zusammen erbracht. Klicken Sie ggf. bitte auf die Grafik für den Download der originalen PDF-Datei.



Weitere Infos
Informationen zum Client-/Server-Modell findet man im Internet reichlich, wie z.B. auf den folgenden Seiten:
 * @http://www.netplanet.org/aufbau/architekturen.shtml
 * @http://de.wikipedia.org/wiki/Client-Server-Modell
 * @http://www.elektronik-kompendium.de/sites/net/0503271.htm
 * @http://www.fachadmin.de/index.php/Client-Server_Prinzip
 * @http://de.wikipedia.org/wiki/Front-End_und_Back-End
 * @http://www.ub.uni-koeln.de/ssg-bwl/archiv/gi/ugi/winformatik/grundlagen_c-s.pdf wissenschaftliche Betrachtung
 * @http://de.wikipedia.org/wiki/DX-Union Auswirkungen auf die Administration vieler Computer

Sie können sich auch ein kurzes Video zum Thema ansehen:
 * @https://www.video2brain.com/de/videos-60055.htm

Es sollte nach kurzem Studium der obigen Links klar sein, dass die zu erbringende Gesamtfunktionalität einer __Software__ verteilt werden kann auf einen Client- und einen Serveranteil.

Thin und Fat Clients
Thin bzw. Fat Clients sind kleine Clients (z.B. das Konsolenprogramm ping) bzw. große Clients (z.B. Webbrowser wie Firefox). Klein und groß stehen hier für den Umfang der Funktionalität, die diese Programme abdecken, die Anzahl von Quellcode-Zeilen, die geschrieben werden müssen und den Speicherplatz, den diese Programme belegen.

>> z.B. direkter Zugriff auf die Datenbank und lokale personalisierte GUI anstelle aufwendiger serverseitiger HTML-Seitenerzeugung und -übertragung.
 * Thin Clients** (Kleine Clients) ...
 * ... belasten den Computer nur wenig.
 * ... sind somit hervorragend geeignet für billige und leistungsschwache Endgeräte.
 * ... haben den Nachteil, dass der Großteil der Programmfunktionalität vom Server erbracht werden muß. Bei vielen Teilnehmern mit vielen Clients (z.B. Smartphones) kann es so schnell zu Leistungs-Engpässen auf der Serverseite kommen, selbst wenn die Netzanbindung hervorragend funktionieren sollte - z.B. ...
 * Live Streaming Olympiade
 * Silvester Foto Upload
 * etc.
 * ... wurden
 * früher als "Hilfsprogramme" auf Computern installiert, und
 * später nach Möglichkeit als HTML-Seite bereitgestellt, so dass ein großer Teil der Netzwerksfunktionalität vom Browser übernommen wurde
 * heute werden so genannte "Apps" entwickelt, welche die Funktionen von HTML-Seiten weiter optimieren können,


 * Fat Clients** (Große Clients) ...
 * ... starten auf dem Client-Computer selbst rechenintensive Software. Die Server-Hardware wird dadurch entlastet. Z.B. wird bei Computer-Spielen via Internet der Spiele-Server nur wenig von den Clients belastet, da teure Spezialhardware diese Arbeit auf den Client-Computern verrichtet. Dieser Vorteil (die Entlastung des Servers) ist zugleich auch der Nachteil von Fat Clients.
 * ... sind für den Nutzer die teurere Lösung, da für solche Clients eine sehr leistungsfähige Computerhardware benötigt wird (Kauf, Installation, Wartung, Updates).

=Das Peer2Peer-Prinzip=

Alternative Bezeichnungen
Sie finden das Peer2Peer-Prinzip auch unter den Bezeichnungen Peer2Peer-Modell, Peer2Peer-Konzept, Peer2Peer-Computing bzw. Peer2Peer-Architektur. Das Prinzip wird z.B. angewendet im P2P-Netzwerk.

Was bedeutet Peer2Peer?
Am Peer2Peer-Computing sind jeweils genau zwei Computer beteiligt. Jeder Peer2Peer-Teilnehmer ist gleichzeitig Client als auch Server. Beispiele: Echte verschlüsselte direkte Peer2Peer-Verbindungen fordert jeder informierte Nutzer von jedem guten Messenger, aber weder WhatsApp noch die Konkurrenz (auch Threema nicht!) liefern solche Apps! Eine einwandfreie Lösung müsste darüberhinaus als Open Source verfügbar sein!
 * Nach dem Aufbau einer Skype-Verbindung zwischen zwei Teilnehmern, kann ein klassisches IP-Telefonat direkt Peer2Peer über eine Sprachverbindung zwischen den zwei Computern übertragen werden. Der Aufbau des Telefonats hingegen - die Vermittlung - entspricht jedoch dem Client-/Server-Modell, da die sich die Verbindungsdatensätze (z.B. Handynummern und andere Nutzerdaten) in einer zu einem Server gehörenden Datenbank befindet.

Infos zu Peer2Peer

 * @http://de.wikipedia.org/wiki/Peer-to-Peer
 * @https://www.heise.de/security/artikel/Wie-Skype-Co-Firewalls-umgehen-270856.html

Infos zu Threema und anderen WhatsApp Alternativen:

 * @http://wingerter.wordpress.com/2014/02/13/tschuss-whatsapp-hi-threema/
 * @http://www.heise.de/forum/heise-Security/Kommentare/Lasst-Euch-nichts-erzaehlen-Privater-Chat-ist-moeglich/Probleme-bei-Threema/posting-497916/show/
 * @https://netzpolitik.org/2014/wir-erklaeren-den-heutigen-tag-zum-deinstalliere-whatsapp-tag/
 * @http://thetechnologicals.com/2014/02/20/threema-warum-die-whatsapp-alternative-so-sicher-ist/
 * @http://www.computerbild.de/artikel/cb-News-Handy-Apps-Threema-Sichere-Chat-App-9773380.html

=Mainframe-Computing bzw. Architektur= Die Mainframe-Architektur entstand in der Anfangsphase des Arbeitens mit dem Computer. Weil Computer damals sehr teuer waren, wurden alle Programme und Daten nur auf einem zentralen Computer gespeichert. Die an diesem Computer arbeitenden Menschen hatten Zugang zu den dort gespeicherten Programmen und Informationen über so genannte Terminals. Die Terminals können Sie sich vorstellen als Bildschirm und Tastatur, welche über lange Leitungen direkt an den zentralen Computer angeschlossen wurden. Im Gegensatz zu einem heutigen Desktop-PC verfügten solche Terminals über deutlich weniger "Intelligenz", d.h. alle anzuzeigenden Bildschirminhalte wurden vom Mainframe erzeugt und über die Leitung an das Terminal gesendet.

=Arten von spezialisierten Servern= siehe @http://www.lawerence.de/map/server.php
 * Netzwerk-Server
 * Application-Server
 * Datenbank-Server
 * File-Server
 * Web-Server
 * Streaming-Server
 * Print-Server
 * Proxy-Server

=Aufgaben= //Hinweise://
 * //Zeit für die Bearbeitung der Aufgaben jeweils ca. 30 Minuten//
 * //Schicke Handouts sind NICHT gefordert! Persönliche stichwortartige Notizen für den kleinen Vortrag sind dagegen sicher hilfreich.//

Aufgabe 1: Frontend und Backend
Erläutern Sie die Begriffe Frontend und Backend mit dem Client-Server-Prinzip! Suchen Sie im Internet nach geeigneten Grafiken, welche die Aufgabenverteilung von Client-Server-Software nach Schichten aufteilt und sie der Client-Software bzw. der Server-Software zuordnen.

Aufgabe 2: Vorteile und Nachteile des Client-/Server Computings
Klären Sie, welche Vor- bzw. Nachteile das verteilte Client-/Servercomputing gegenüber der Bereitstellung aller Software und Informationen auf einem Desktop-Computer hat. Info: @http://www.e-teaching.org/technik/vernetzung/architektur/client-server/

Aufgabe 3: Client-/Server am Beispiel des Seti-Projekts
Die Universität von Berkeley betreibt ein Projekt zur Erkennung von außerirdischer Intelligenz. Dieses Projekt wird beschrieben auf folgender Webseite: > Verwenden Sie hierbei unbedingt mehrfach korrekt die Begriffe Client und Server!
 * @http://setiathome.berkeley.edu/
 * 1) Beschreiben Sie in einem kurzen Vortrag, welchen Sinn und Zweck das ganze Projekt hat und wie es funktioniert.
 * 1) Erstellen Sie für den Vortrag ein passendes Blockdiagramm, an dem Sie zeigen können, wer welche Nachrichten (Request/Response) von welchem Client zu welchem Server sendet!

Aufgabe 5: Unterschied Peer2Peer- und Client-Server-Prinzip
Informationsquellen:
 * 1) Klären Sie die Unterschiede zwischen der Peer2Peer- und der Client-Server-Prinzip!
 * 2) Fertigen Sie zwecks Gegenüberstellung der verschiedenen Eigenschaften eine geeignete Tabelle an (z.B. gemeinsame Nutzung von Geräten, Dateien und Software; Verfügbarkeit, Datensicherheit, Verwaltung von Nutzern, Informationsaustausch, Wartungsaufwände).
 * @http://www.stern.de/noch-fragen/unterschied-client/server-zu-peer-to-peer-1000503881.html
 * @http://www.cobocards.com/pool/en/card/97938401/online-karteikarten-unterschiede-von-client-server-zu-peer-to-peer-/
 * @http://www.computerwoche.de/a/peer-to-peer-oder-client-server-was-ist-wann-das-richtige,1121468

Aufgabe 6: Client-Server-Prinzip am Beispiel des FTP-Protokolls
Zeitvorgabe: max. 30 Minuten
 * 1) Installieren Sie einen portablen FTP-Server auf Ihrem USB-Stick, z.B. den TYPsoft FTP Server
 * @http://typsoft-ftp-server.en.softonic.com/download
 * 1) Richten Sie den FTP-Server so ein, dass Dateien über das FTP-Protokoll gespeichert und gelesen werden können.
 * Nutzerkennung einrichten
 * Verzeichnisfreigabe mit entsprechenden Rechten
 * IP-Adresse ermitteln (z.B. Konsolenbefehl ipconfig) und dem FTP-Client-Nutzer mitteilen
 * 1) Nutzen Sie auf einem anderen Rechner einen FTP-Client, z.B. FileZilla
 * @https://filezilla-project.org/download.php?type=client
 * 1) Speichern Sie eine beliebige Datei vom FTP-Client-PC auf dem FTP-Server-PC.
 * 2) Löschen Sie die Original-Datei auf dem FTP-Client-PC.
 * 3) Stellen Sie die Original-Datei wieder her durch Kopieren vom FTP-Server-PC.
 * Alternative Aufgabe**, falls z.B. die Rechte zum Download und der Installation der Programme nicht ausreichen:
 * 1) Beschreiben Sie, was zu tun ist, um einen FTP-Server bereitzustellen!
 * 2) Erläutern Sie die Bedienung des FTP-Clients FileZilla!

Aufgabe 7: DDOS-Attack
Erläutern Sie das Client-Server-Prinzip am Beispiel einer DDos-Attacke.
 * @http://www.elektronik-kompendium.de/sites/net/1412091.htm
 * @https://www.bsi-fuer-buerger.de/BSIFB/DE/GefahrenImNetz/DoS/dos_node.html
 * @http://www.computerlexikon.com/begriff-ddos-attacke

Aufgabe 8: HTTP-Proxy
Erläutern Sie die Funktonsweise eines HTTP-Proxies! Wo ist hier der Client bzw. Server? Zeichnen Sie ein Diagramm, welches alle Requests und Responses zwischen Ihrem Client und dem Zielsystem enthält! siehe auch:
 * http://pcbasics.wikispaces.com/Proxies

Aufgabe 9: Klicks aus Bangladesch

 * @http://www.daserste.de/information/politik-weltgeschehen/weltspiegel/sendung/br/bangladesch-clickfarm-facebook-100.html
 * @http://www.wdr2.de/panorama/bangladeschfacebook100.html
 * 1) Erläutern Sie das in den Artikeln beschriebene Geschäftsmodell mit den Begriffen Client und Server!
 * 2) Verdeutlichen Sie mit einem Blockdiagramm und Richtungspfeilen, welche Signale zwischen beteiligten Computern ausgetauscht werden!
 * 3) Überlegen Sie, woran Facebook erkennen kann, welche Klicks Fakes sind!
 * 4) Überlegen Sie, was man als Mitarbeiter der Firma in Bangladesch tun könnte, um einer Entdeckung durch Facebook zu entgehen!

Aufgabe 10: Entwicklungen im Rundfunk- und Fernsehbereich
Erläutern Sie, welche weiteren Entwicklung im Rundfunk- und Fernsehbereich beim Thema Peer2Peer und Client/Server zu erwarten sind! Quelle:
 * @https://www.irt.de/de/themengebiete/online/peer-to-peer-broadcasting-p2p.html

Fragen zur Erarbeitung des Textes:
 * 1) Was ist Unicast und was bedeutet Multicast?
 * @http://www.elektronik-kompendium.de/sites/net/1806041.htm
 * @https://de.wikipedia.org/wiki/Multicast
 * @https://de.wikipedia.org/wiki/Unicast
 * 1) Warum ist das Client-/Server-Modell nicht die optimale Lösung für Live-Streams von Audio- und Videodaten?
 * 2) Wie könnte man das Internet entlasten, d.h. gleichzeitige Streams identischen Inhalts über große Distanzen vermeiden?
 * 3) Welche existierende Lösung dient als Vorbild für die Entwicklung der "Next Generation Peer-To-Peer Content Delivery Platform“ für Internet-Fernsehen (IRT, EBU, BBC, ...).
 * 4) Welche Voraussetzungen müssen gegeben sein für das Gelingen der geplanten Lösung?

=Verständnisfragen=
 * 1) Was macht einen Client zum Client und einen Server zum Server?
 * 2) Was haben die Begriffe "Anfrage" und "Antwort" mit dem CS-Prinzip zu tun?
 * 3) Ordnen Sie die folgende Software den Begriffen Client und Server zu:
 * IE, Firefox, Apache, IIS, Filezilla, Thunderbird, Google-Datenbank, ...
 * 1) Kann man Client- und Serversoftware auf dem selben Rechner verwenden?
 * 2) Was ist der Unterschied zwischen Peer2Peer und Client-/Server-Computing?
 * @http://www.supernature-forum.de/netzwerke-and-server/45817-wesentliche-unterschiede-zwischen-peer-to-peer-client.html
 * http://de.wikipedia.org/wiki/Client-Server-Modell#Unterschiede_zu_Peer-To-Peer
 * 1) Wo liegen folgende Dateien (auf dem Client oder dem Server)?
 * C:\x\y\datei.html
 * http://www.server.de/datei.html
 * file:///C:/Programme/Mozilla%20Firefox/crashreporter.ini
 * 1) Wo wird die folgende Datei gesucht?
 * application.ini
 * http://blocklist.xml/
 * ftp://ftp.microsoft.com/
 * 1) Welche Funktionalitäten werden von einem Webserver bereitgestellt? (Welche Aufgaben hat dieser genau?)
 * 2) Was haben "Ports" mit Client und Server zu tun?
 * @http://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports
 * @http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
 * @http://de.wikipedia.org/wiki/Port_%28Protokoll%29
 * 1) Warum reicht nicht die IP-Adresse zur Adressierung eines Clients bzw. Servers?
 * 2) Wie viele Ports werden für http-Anfragen clientseitig mindestens geöffnet, wenn Sie im Browser drei Fenster öffnen?
 * 3) 1000 Nutzer greifen auf einen Server zu. Wie viele Ports sind serverseitig geöffnet?
 * 4) Welche Probleme gibt es zu lösen bei der Einrichtung eines Servers im Heimnetzwerk? (z.B. Spiele-Server, HTTP-Server, FTP-Server)
 * 5) Kann man andere Ports verwenden als die Standard-Ports? (z.B. Port 8080 anstelle von Port 80 für einen Webserver)
 * 6) Wie funktioniert eine Denial of Service Attack (Hacker Angriff)?
 * @http://de.wikipedia.org/wiki/Denial_of_Service
 * 1) Was sind Thin Clients? Welche Vor- bzw. Nachteile haben diese?
 * 2) Was sind Fat Clients? Welche Vor- bzw. Nachteile haben diese?
 * 3) Was sind Bot-Netze? Clients? Server? Beides?
 * 1) Was sind Fat Clients? Welche Vor- bzw. Nachteile haben diese?
 * 2) Was sind Bot-Netze? Clients? Server? Beides?

=Lösungen=

Aufgabe - Entwicklungen im Rundfunk- und Fernsehbereich
 * 1) siehe ...
 * Unicast und Multicast?
 * @http://www.elektronik-kompendium.de/sites/net/1806041.htm
 * @https://de.wikipedia.org/wiki/Multicast
 * @https://aseith.com/display/KB/Unterschiede+zwischen+Unicast%2C+Broadcast%2C+Multicast+und+Anycast
 * 1) Jeder weitere Nutzer - selbst bei Livestreams - beansprucht noch einmal die gleiche Datenrate/Datenmenge vom Server.
 * 2) CDNs bzw. Multicast-Protokolle frü Livestreams
 * 3) File-Sharing(-Netzwerke)
 * 4) Viele Teilnehmer, d.h. Clients