Navigation überspringen

Client-Server-Prinzip

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 aus­gefü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.

 

Ports

Erläuterung

Konfiguration eines Email-Clients
Konfiguration eines Email-Clients
Schaller (CC BY-NC-SA)


Möchte man jemand einen Brief schreiben, reicht es in der Regel nicht aus, die Adresse der Person anzugeben. Man muss auch den Namen des Empfängers mit angeben, wenn mehrere Personen in diesem Haus wohnen. Eventuell gibt es sogar mehrere Briefkästen für unterschiedliche Personen.

Auf den Computer übertragen, kann man sich das so vorstellen: Jeder Computer hat eine Adresse (IP-Adresse). Aber auf einem Computer können mehrere Programme gleichzeitig laufen (z.B. ein Browser, ein Computerspiel und ein Mailprogramm). Alle diese Programme greifen auf das Netzwerk zu und wollen Daten empfangen können. Daher erhält jedes Programm eine Portnummer. Diese entspricht dem Namen des Empfängers. Der Programmname wäre hier ungünstig, da man in der Regel gar nicht weiß, welches Programm z.B. auf einem Webserver läuft, dem man eine Anfrage senden möchte. Außerdem kann ein Programm mehrere Portnummern benötigen, wenn gleichzeitig mehrere Anfragen in das Internet gesendet werden (z.B. es sollen mehrere WWW-Seiten gleichzeitig geladen werden).

Die Portnummer ist eine 16-Bit (2 Byte) Zahl und kann daher Zahlenwerte zwischen 0 und 65535 (=216-1) annehmen. Manche Ports sind für spezielle Anwendungen reserviert. Web-Server erreicht man z.B. immer unter Port 80. Dies ist notwendig, damit ein Browser weiß, wohin er seine Anfrage senden muss. Möchte man Mails versenden, verwendet man den Mailserver-Port 25. Möchte man Mails empfangen muss man den Port 110 verwenden.

Durch die Kontrolle dieser Ports kann der Datenaustausch eines Rechnern mit dem Netzwerk überwacht werden. Diese Funktion übernimmt eine Firewall (vgl. Kapitel Ergänzungen). Von außen werden nur Datenpakete an Ports erlaubt, unter denen ein Anwendungsprogramm eine Anfrage ins Internet gestellt hat oder die manuell vom Administrator freigegeben wurden, um einen Server betreiben zu können. Dies stellt sicher, dass keine unerwünschten Daten auf den eigenen Rechner gelangen. Dadurch werden viele Angriffe von Hackern abgewehrt.

Auch die Daten, die den eigenen Computer verlassen, werden kontrolliert. So kann der Administrator festlegen, dass nur bestimmte Zieladresse oder bestimmte Zielports zugelassen sind. Private Firewalls (z.B. Windows-Firewall) kontrollieren aber meist nur den Datenverkehr von außen nach innen.

Erklärvideo

Erklärvideo auf Youtube von OmNomPanda
Aufgrund der DSGVO ist es leider nicht zulässig, das Video hier direkt anzuzeigen. Sie werden durch den Link auf Youtube weitergeleitet. Dort werden über Cookies personenbezogene Daten erfasst.
OmNomPanda . Was ist ein Computerport?, via Youtube.com



Aufgaben

Auftrag

Lade zuerst die Vorlage für 03_P3_Aufgabe1.fls.

  1. Installiere auf einem Rechner einen Echo-Server und starte ihn.
    Achtung: Der Echo-Server muss im Serverprogramm durch den „Starten“-Button gestartet werden.
  2. Installiere auf den Laptops den Echo-Client „Einfacher Client“ und verbinde diesen mit dem Server. Teste die Kommunikation mit dem Server. Klappt die Verbindung? Wer nimmt zuerst Verbindung auf, wer antwortet? Können mehrere Clients mit einem Server verbunden sein? Kann ein Client mit mehreren Servern verbunden sein?
    Tipp: Wenn die Kommunikation nicht klappt, führe erneut eine Kontrolle der Netzwerkkonfiguration durch. Kontrolliere auch, ob keine Firewall auf dem Rechner installiert ist.
  3. Ändere den Port, auf dem der Server Anfragen erwartet.
    Teste die Kommunikation erneut. Nimm Änderungen am Client vor, damit die Kommunikation wieder funktioniert.

Expertenaufgabe

  1. Installiere auf einem Rechner einen Web-Server.
    Recherchiere, auf welche Port ein Webserver Anfragen erwartet. Verbinde den "einfachen Client" mit dem Webserver.
  2. Wenn du eine beliebige Anfrage sendest, beendet der Server die Verbindung, da er dich nicht versteht. Aber wie antwortet er, wenn er die Anfrage GET / HTTP/1.1 erhält?

Vergleiche für die Fehlersuche in Filius:
Fehlersuche in Filius - Stimmt die Netzwerkkonfiguration / Ist jeder Rechner erreichbar?   Kommandos in der Befehlszeile

Bearbeite: Übungen Client-Server-Prinzip