Client-Server-Prinzip
Nachdem die physikalische Verkabelung geplant ist und jeder Rechner eine Adresse bekommen hat, kann man sich nun Gedanken darüber machen, wie die Kommunikation zwischen den Rechnern abläuft. Wer stellt die „Frage“? Wer antwortet? Für die meisten Anwendungen hat sich das Client-Server-Prinzip als sinnvoll herausgestellt.
Client-Server-Kommunikation
Die beiden Begriffe Client und Server sind umgangssprachlich leider nicht eindeutig.
Ein Server (engl. „Diener“) ist in der Informatik ein Dienstleister, der in einem Computersystem Daten oder Ressourcen zur Verfügung stellt. Das Computersystem kann dabei aus einem einzelnen Computer oder einem Netzwerk mehrerer Computer bestehen. Zwei Bedeutungen werden unterschieden:
Server-Programm: Ein Computerprogramm, das einen Dienst (z. B. Fileserver: zentrale Speicherung von Dateien) bereitstellt.
Server-Computer: Der Computer auf dem ein oder mehrere Server-Programme laufen. Die ursprüngliche Bezeichnung für diesen physischen Rechner ist Host.
Genauso gibt es für das Gegenstück den Client (engl. „Kunde") zwei Bedeutungen:
Ein Client ist eine Anwendung, die in einem Netzwerk den Dienst eines Servers in Anspruch nimmt.
Der Begriff Client wird aber auch oft verwendet, um einen Computer in einem Netzwerk zu bezeichnen.
Der Client (Rechner und Programm) ist bei einer Datenübertragung für die Kontaktaufnahme verantwortlich und bestimmt deren Zeitpunkt. Das hat für den Client-Rechner den Vorteil, dass er erst zum Zeitpunkt der Kontaktaufnahme eine Netzverbindung benötigt. Der Server wartet die ganze Zeit auf Anfragen des Clients. Sobald eine Anfrage eintrifft, erfüllt er seine Dienstleistung.
Dies wird als Client-Server-Prinzip bezeichnet: Der "Kunde" (Client) sagt, was er will, der "Dienstleister" (Server) erbringt (daraufhin) die gewünschte Leistung.
Beispiele
Der Webbrowser ist ein Beispiel für einen Client, denn er sendet bei jedem Aufruf einer Webseite eine Anfrage an einen Webserver und erhält dann von diesem eine Antwort. Der Webserver macht die meiste Zeit nichts anderes als warten. Er wird erst aktiv, wenn vom Client eine Anfrage eingeht.
Auch ein Netzwerk-Drucker ist ein Musterbeispiel für einen Server: er verhält sich zunächst gänzlich passiv und harrt still der Druckaufträge, die da kommen werden. Solange kein Druck-Job kommt, tut er nichts (außer warten); wenn ein Druckauftrag ankommt, nimmt er die Daten entgegen und druckt sie aus. Danach fällt der Netzwerk-Drucker wieder in die passive Haltung zurück und beschränkt sich darauf, seine "Druck-Dienste" anzubieten.
Einige weitere Beispiele für Server-Anwendungen sind:
Serveranwendung | Funktion | Clientanwendung | Portnummer |
---|---|---|---|
Web-Server (z.B. Apache, Microsoft ISS) |
Liefert HTML-Seiten aus | Web-Browser (z.B. Internet Explorer, Firefox, Crome,...) |
80 (unverschlüselt) oder 443 (verschlüsselt) |
FTP-Server (z.B. Filezilla) |
Liefert Dateien aus (nimmt evtl. Dateien an) | FTP Client (z.B. WSFTP, Filezilla, SmartFTP,...) |
20 |
Mail-Server (z.B. MS Exchange, JanaServer) |
Speichert eingehende E-Mails und liefert sie aus | Mail-Programm (z.B. MS Outlook, Thunderbird) |
110, 143, 587 |
Proxy-Server (z.B. MS ISA-Server, FreeProxy) |
Liefert Internet Dienste für mehrere Rechner | Ins Betriebssystem integriert | oft 8080 |
File-Server | Speichert Dateien und liefert sie zurück | Ins Betriebssystem integriert | |
Media-Server (z.B. TwonkyVision, TVersity) |
Zentrale Speicherung von Videos und Musik | In Abspielgeräte integriert | |
Print-Server | Zwischenspeichern und Ausführen von Druckaufträgen | Ins Betriebssystem integriert | 631 |
Chat-Server (z.B. WhatsApp-Server) |
Verteilt Online-Nachrichten an die Teilnehmer | Chat-Client (WhatsApp-Handy-App) |
Peer-to-Peer-Kommunikation (Ergänzung)
Im Englischen bezeichnet der Begriff „Peer" eine sozial gleichgestellte Person (oder ein Mitglied des parlamentarischen Oberhaus). Im Gegensatz zu Client-Server-Anwendungen ist eine Peer to Peer Anwendung ein Verbund gleichberechtigter Computer.
In einem solchen Netz gibt es keinen ausgezeichneten Server. Trotzdem findet die Kommunikation zwischen den Rechnern nach demselben Client-Server-Prinzip statt! Hierzu laufen nun auf jedem Rechner sowohl Client-artige als auch Server-artige Programme, sodass jeder Rechner gleichzeitig beide Rollen spielen kann, nämlich: als Client Dienste von den anderen Rechnern anfordern und seinerseits als Server den anderen Rechnern Dienste anbieten.
Und wie bietet nun ein Computer in einem solchen Peer-To-Peer-Netz seine Server-Dienste an? Indem er seine lokalen Geräte den anderen Computern zur Verfügung stellt! Unter Windows heißt dieser Vorgang "Freigabe". Solche "freigegebenen" Geräte können dann von den anderen Computern im Netz ebenfalls genutzt werden.
Internetbasierte Dateitauschbörsen
Beim Filesharing kann jeder Teilnehmer Dateien auf seinem Rechner freigeben und anderen zum Kopieren zur Verfügung stellen, vergleichbar mit der Datei-Freigabefunktion innerhalb eines lokalen Netzwerks. Unter anderem können dort Filme, Musik, Computerprogramme oder Dokumente auffindbar sein. Große Peer-to-Peer-Netzwerke haben mehrere Millionen Teilnehmer und bieten eine Vielfalt an Dateien. Legal können Informationen und Daten zum Beispiel weitergegeben werden, wenn diese in einer freien Lizenz veröffentlicht wurden oder eine Weitergabe ausdrücklich erwünscht ist (z. B. bei Shareware, freier Software oder wenn für das entsprechende Werk die Schutzfristen abgelaufen sind). Andererseits stellt das Anbieten von urheberrechtlich geschützten Werken ohne Erlaubnis des Urhebers eine Urheberrechtsverletzung dar, die inzwischen zu vielen Verurteilung und Geldstrafen geführt hat. Die Verwendung einer Filesharing-Software und die Teilnahme am entsprechenden Netzwerk an sich sind legal.
Begonnen hat Filesharing – im Sinne von computergestützter Verbreitung von Information und kreativen Werken – mit zentral bzw. hierarchisch organisierten Netzwerken wie beispielsweise Napster. Seit geraumer Zeit gibt es jedoch Peer-to-Peer-Netzwerke, die ohne zentrale(n) Server funktionieren. Hier ist prinzipiell jeder Teilnehmer Client und Server, Nutzer und Anbieter, zugleich. Damit wird eine völlige Dezentralisierung des Netzwerkes erreicht, was das Lokalisieren eines rechtlich Verantwortlichen für illegalen Datenverkehr verkompliziert. Beispiele für diese Technik sind unter anderem: Kademlia (Vuze, eMule), gnutella (LimeWire, gtk-gnutella, Phex), Gnutella2 (Shareaza, Sharelin), FastTrack (Kazaa Lite K++).
Im Jahr 2004 betrug der Anteil von Filesharing-Clients am Datenübertragungsvolumen des gesamten Internets laut einer Studie, die auf Stichproben von 27 international tätigen Carriern beruhte, 24 Prozent.
Quelle: Informationen zu den internetbasierten Tauschbörsen aus der Seite „Filesharing“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 3. November 2010. URL: http://de.wikipedia.org/w/index.php?title=Filesharing&oldid=81051248 (Abgerufen: 8. November 2010)
Client–Server – Anwendungen sind heute Standard. Meist werden viele Server-Anwendungen auf einem (oder einigen wenigen) Rechner konzentriert (In den meisten Schulnetzen gibt es einen Server, der DHCP-Server, Fileserver, DNS-Server, Mailserver, Windows-Updateserver und vieles mehr gleichzeitig ist). Die Konzentration der Funktionalität auf den Server verringert den Administrationsaufwand und macht den einzelnen Nutzer unabhängig von einer bestimmten Hardware. So kann der Nutzer den Arbeitsort bzw. den Computer wechseln, ohne auf „seine" Dateien etc. verzichten zu müssen.
In kleineren Netzen wird ein einziger Server genügen (Ein-Server-Modell). Alle bereits oben erwähnten zentralen Dienste werden also auf einem einzigen Gerät ausgeführt. Mit zunehmender Netzgröße wird ein einzelnes Gerät jedoch möglicherweise überlastet sein. Auch aus Sicherheitsgründen kann man sich für eine Verteilung der zentralen Dienste entscheiden (Multi-Server-Modell).
Im einfachsten Fall sorgt ein zweiter Server für Ausfallsicherheit des Domänen-Servers. Fällt der Hauptserver (bei Microsoft heißt er primary domain controler) aus, so übernimmt das zweite Gerät automatisch alle Aufgaben (backup domain controler).
Im Extremfall kann jede einzelne Serverfunktion auf einem eigenen Gerät ablaufen.