Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
faecher:informatik:oberstufe:netzwerke:cs_p2p:start [15.12.2021 19:21] – sbel | faecher:informatik:oberstufe:netzwerke:cs_p2p:start [15.12.2021 19:40] (aktuell) – [Peer-to-Peer Architektur] sbel |
---|
====== Aufgabenteilung in Netzwerken ====== | ====== Aufgabenteilung in Netzwerken ====== |
| |
| |
| ===== Client-Server Prinzip ===== |
| |
Im Abschnitt [[..:kommunikationsarten_und_tcp:start|Kommunikationsarten]] wurde bereits ein denkbare Aufgabenteilung in Netzwerken beschrieben: Die Client-Server Architektur. | Im Abschnitt [[..:kommunikationsarten_und_tcp:start|Kommunikationsarten]] wurde bereits ein denkbare Aufgabenteilung in Netzwerken beschrieben: Die Client-Server Architektur. |
| |
Für zahlreiche Anwendungsfälle ist es sinnvoll, eine Client-Server-Architekur anzustreben: Beispielsweise möchte man jederzeit Mails empfangen können, auch wenn man gerade nicht am Laptop sitzt. Es macht daher Sinn, diese Aufgabe an einen Mailserver zu delegieren, mit dem der Clientcomputer nur dann interagiert, wenn er prüft, ob neue Mails angekommen sind. | Für zahlreiche Anwendungsfälle ist es sinnvoll, eine Client-Server-Architekur anzustreben: Beispielsweise möchte man jederzeit Mails empfangen können, auch wenn man gerade nicht am Laptop sitzt. Es macht daher Sinn, diese Aufgabe an einen Mailserver zu delegieren, mit dem der Clientcomputer nur dann interagiert, wenn er prüft, ob neue Mails angekommen sind. |
| |
| {{ :faecher:informatik:oberstufe:netzwerke:cs_p2p:clientserver.drawio.png?500 |}} |
| |
Andere Beispiele sinnvoller Client-Server Anwendungen sind: | Andere Beispiele sinnvoller Client-Server Anwendungen sind: |
| |
* **Cloud-Server**: Server die Ressourcen wie Rechenkapazität, Speicherplatz und Netzwerkbandbreie zur Verfügung stellen, ohne dass der Anwender tatsächliche Servergeräte betreiben muss. (AWS, Azure u.ä.) | |
* **Datenbankserver**: Zentrale Datenhaltung, regelbasierter Zugriff mit Clientprogrammen. | * **Datenbankserver**: Zentrale Datenhaltung, regelbasierter Zugriff mit Clientprogrammen. |
* **Proxyserver**: Vermittler zwischen dem Clientprogramm und dem Kommunikationsziel. Zur Zwischenspeicherung von Inhaltzen oder der Umgehung von Netzwerkrestriktionen. | * **Proxyserver**: Vermittler zwischen dem Clientprogramm und dem Kommunikationsziel. Zur Zwischenspeicherung von Inhaltzen oder der Umgehung von Netzwerkrestriktionen. |
* **Webserver**: Stellen Webseiten zur Verfügung, erlauben den Zugriff auf APIs von Webanwendungen und Apps. | * **Webserver**: Stellen Webseiten zur Verfügung, erlauben den Zugriff auf APIs von Webanwendungen und Apps. |
* **Printserver**: Verteilen und managen Druckaufträge in einem Netzwerk. | * **Printserver**: Verteilen und managen Druckaufträge in einem Netzwerk. |
| * * **Cloud-Server**: Server die Ressourcen wie Rechenkapazität, Speicherplatz und Netzwerkbandbreie zur Verfügung stellen, ohne dass der Anwender tatsächliche Servergeräte betreiben muss. (AWS, Azure u.ä.) |
| |
| **Nachteile:** |
| |
| * Die **Zentralisierung** schafft potentiell einen "Single Point Of Failure" - wenn das Serversystem nicht mit genügend Redundanz versehen ist, führt ein Ausfall des Servers dazu, dass unter Umständen sehr viele Clientgeräte und Dienste ohne Funktion sind. Wenn der Datenbankserver ausfällt, kann keine der Sekretärinnen mehr auf die Schülerdaten zugreifen, gleichgültig wie viele funktionierende PCs im Sekretariat vorhanden sind. |
| * Die Hardware für Servergeräte muss je nach Anwendungsfall sehr leistungsfähig sein, um die Last zahlreicher gleichzeitiger Zugriffe performant verarbeiten zu können. |
| * Die Bündelung weltweiterRechenkapazitäten in Cloud-Server-Rechenzentren hat in der Vergangenheit bei Ausfällen in Amazon, Google oder Microsoft Rechenzentren teilweise dazu geführt, dass große Teile des Internets (Netflix, Spotify u.ä.) ohne Funktion waren. |
| |
| ===== Peer-to-Peer Architektur ===== |
| |
| Anders als innerhalb einer Client-Server-Architektur sind in einem Peer-to-Peer Netz alle Geräte "gleichberechtigt": Auf allen Geräten werden Programme ausgeführt, die sowohl Dienste zur Verfügung stellen als auch diese Dienste nutzen. Jedes Gerät ist also Client und Server zugleich. |
| |
| {{ :faecher:informatik:oberstufe:netzwerke:cs_p2p:p2p.drawio.png?500 |}} |
| |
| Beispiele für Dienste und Programme die eine Peer-to-Peer Architektur verwenden sind: |
| |
| * Briar: Ein dezentraler verschlüsselter Messenger. |
| * Bittorrent: Dateiverteilungssoftware, kann sehr effizient große Daten mengen verteilen. |
| * Gnutella: In Filius ist ein etwas in die Jahre gekommenes P2P Programm implementiert, das zum Dateiaustausch verwendet werden kann. |
| |
**Nachteile:** Die **Zentralisierung** schafft potentiell einen "Single Point Of Failure" - wenn das Serversystem nicht mit genügend Redundanz versehen ist, führt ein Ausfall des Servers dazu, dass unter Umständen sehr viele Clientgeräte und Diente ohne Funktion sind. So haben in der Vergangenheit Ausfälle in Amazon oder Microsoft Rechenzentren teilweise dazu geführt, dass große Teile des Internets (Netflix, Spotify u.ä.) ohne Funktion waren. | In einem P2P Netz sind die Teilnehmenden Geräte meist sehr unterschiedlich was Rechenleistung, Bandbreite und andere Spezifikationen angeht. Vorteile sind vor allem hohe Autonomie der Teilnehmenden sowie -- bei guter Implementation der Protokolle -- eine hohe Verfügbarkeit und Eigenschaften wie Zensurresistenz. |
| |
| |