PMG2526 9/Kassandra
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
== '''Dienste und Protokolle''' == == ''Netzwerkprotokolle'' == Ein Netzwerkprotokoll ist ein Kommunikationsprotokoll für den Austausch von Daten zwischen Computern bzw. Prozessen, die in einem Rechnernetz miteinander verbunden sind (verteiltes System). Die Vereinbarung besteht aus einem Satz von Regeln und Formaten (Syntax), die das Kommunikationsverhalten der kommunizierenden Instanzen in den Computern bestimmen (Semantik). Der Austausch von Nachrichten erfordert häufig ein Zusammenspiel verschiedener Protokolle, die unterschiedliche Aufgaben übernehmen. Um die damit verbundene Komplexität beherrschen zu können, werden die einzelnen Protokolle in Schichten organisiert. Im Rahmen einer solchen Architektur gehört jedes Protokoll einer bestimmten Schicht an und ist für die Erledigung spezieller Aufgaben zuständig (beispielsweise Übermitteln an einen bestimmten Knoten – Schicht 2). Protokolle höherer Schichten verwenden Dienste von Protokollen tieferer Schichten (Schicht 3 bildet ein logisches Netzwerk und verwendet Schicht 2 für die physische Zustellung). Zusammen bilden die so strukturierten Protokolle einen Protokollstapel – in Anlehnung an das ISO-OSI-Referenzmodell (siehe auch DoD-Schichtenmodell). Nachrichten einer bestimmten Schicht werden auch als Protokolldateneinheiten (protocol data units) bezeichnet. Für Betrieb und Nutzung des Internets sind etwa 500 Netzwerkprotokolle essentiell, die sogenannte Internetprotokollfamilie. ''Aufgaben eines Protokolls:'' -Nachfolgend werden typische Aufgaben eines Netzwerkprotokolls aufgeführt. Ob sie in einem bestimmten Protokoll abgebildet sind, wird durch dessen Einsatzzweck bestimmt. -Ein sicherer und zuverlässiger Verbindungsaufbau zwischen den an der Kommunikation beteiligten Computern (Handshake) -Das verlässliche Zustellen von Paketen -Wiederholtes Senden nicht angekommener Pakete -Zustellen der Datenpakete an den/die gewünschten Empfänger -Das Sicherstellen einer fehlerfreien Übertragung (Prüfsumme) -Das Zusammenfügen ankommender Datenpakete in der richtigen Reihenfolge -Das Verhindern des Auslesens durch unbefugte Dritte (durch Verschlüsselung) -Das Verhindern der Manipulation durch unbefugte Dritte (durch MACs oder elektronische Signaturen) ''Funktionsbeispiel:'' Anhand des Verbindungsaufbau-Prozederes des TCP-Protokolls soll ein einfaches praktisches Beispiel gezeigt werden (Handshake-Verfahren). 1. Zunächst schickt Computer 1 ein Datenpaket, in dem steht, dass er eine Verbindung zu Computer 2 aufbauen möchte. 2. Darauf antwortet Computer 2, dass er dazu bereit ist. 3. Computer 1 bestätigt anschließend Computer 2, dass er verstanden hat, dass Computer 2 bereit ist. Die Verbindung ist damit hergestellt, und der eigentliche Datenaustausch kann beginnen, im Beispiel eine Dateiübertragung auf Anwendungsebene. 1. Computer 1 schickt ein Datenpaket, in dem angefragt wird, welche Dateien verfügbar sind 2. Darauf antwortet Computer 2 mit einer Liste der verfügbaren Dateien. 3. Computer 1 schickt ein Datenpaket, in dem eine bestimmte Datei angefordert wird. 4. Darauf antwortet Computer 2, dass die Datei existiert, beschreibt die Datei und beginnt mit der Übertragung. ==''Netzwerkdienste''== Ein Netzwerkdienst ist eine abstrahierte Funktion, die von einem Computernetzwerk den Anwendern bzw. teilnehmenden Geräten bereitgestellt wird. Der Fokus liegt dabei darauf, dass ein Dienst eine in sich geschlossene Funktionskomponente aus Anwendersicht darstellt, diese Funktion kann technisch über eines oder auch mehrere Netzwerkprotokolle der Anwendungsschicht realisiert werden. So ist beispielsweise das World Wide Web ein Dienst, den das Internet bereitstellt; dieser Dienst wird technisch über das Netzwerkprotokoll Hypertext Transfer Protocol realisiert. Netzwerkdiensten ist gemeinsam, dass vorhandene Ressourcen gemeinsam genutzt werden. Bei vielen Systemen werden von Service-Anbietern so genannte Dienste angeboten, die andere Arbeitsstationen nutzen können, um auf die Ressourcen zuzugreifen. Diejenigen, die diese unterschiedlichen Dienste anfordern und benutzen, nennt man Service-Kunden. Grundsätzlich kann man verschiedene Arbeitsweisen eines Netzwerkbetriebssystems unterscheiden: *Server-zentrische Netzwerke *Peer-to-Peer-Netzwerke