Netzwerkprotokoll: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Die Seite wurde neu angelegt: „In der Informatik und in der Telekommunikation ist ein Protokoll eine Vereinbarung, nach der die Verbindung, Kommunikation und Datenübertragung zwischen zwei …“
 
Zeile 33: Zeile 33:
* Das Verhindern des Auslesens durch unbefugte Dritte (durch Verschlüsselung)
* Das Verhindern des Auslesens durch unbefugte Dritte (durch Verschlüsselung)
* Das Verhindern der Manipulation durch unbefugte Dritte (durch MACs oder elektronische Signaturen)
* 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 (siehe auch Handshake-Verfahren).
# Zunächst schickt Computer 1 ein Paket, in dem steht, dass er eine Verbindung zu Computer 2 aufbauen möchte.
# Darauf antwortet Computer 2, dass er dazu bereit ist.
# 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.

Version vom 10. Oktober 2011, 20:14 Uhr

In der Informatik und in der Telekommunikation ist ein Protokoll eine Vereinbarung, nach der die Verbindung, Kommunikation und Datenübertragung zwischen zwei Parteien ablaufen. In seiner einfachsten Form kann ein Protokoll definiert werden als die Regeln, die Syntax, Semantik und Synchronisation der Kommunikation bestimmen. Protokolle können durch Hardware, Software oder eine Kombination von beiden implementiert werden. Auf der untersten Ebene definiert ein Protokoll das Verhalten der Verbindungs-Hardware. Man unterscheidet zwischen einem Kommunikationsprotokoll in der Telekommunikation und einem Netzwerkprotokoll in der Informatik. Ein Netzwerkprotokoll (auch Netzprotokoll, Übertragungsprotokoll) ist eine exakte Vereinbarung (Protokoll), nach der Daten zwischen Computern bzw. Prozessen ausgetauscht werden, die durch ein Netz 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 (beispielsweise Internetprotokollfamilie). 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 der speziellen Aufgaben zuständig (beispielsweise Überprüfen der Daten auf Vollständigkeit – Schicht 2). Protokolle höherer Schichten verwenden Dienste von Protokollen tieferer Schichten (Schicht 3 verlässt sich z. B. darauf, dass die Daten vollständig angekommen sind). 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.

Der typische Aufbau eines Protokolls

Der in einem Protokoll beschriebene Aufbau eines Datenpakets enthält für den Datenaustausch wichtige Informationen über das Paket wie beispielsweise:

  • dessen Absender und Empfänger
  • den Typ des Pakets (z. B. Verbindungsaufbau, Verbindungsabbau oder reine Nutzdaten)
  • die Paketlänge
  • eine Prüfsumme

Diese Informationen werden den Nutzdaten als Header vorangestellt oder als Trailer angehängt. Außerdem werden in manchen Protokollen feste Paketsequenzen für den Verbindungsaufbau und -abbau beschrieben. Diese Maßnahmen verursachen weiteren Datenverkehr (Traffic) auf den Datenleitungen – den sog. Overhead. Dieser Overhead ist unerwünscht, weil er die Kapazität belastet, wird aber aufgrund der wichtigen Aufgaben, die Protokolle leisten, in der Regel in Kauf genommen. Mit User Datagram Protocol (UDP) steht in der Transportschicht auch ein Protokoll mit nur minimalem Overhead zur Verfügung, das keine Ende-zu-Ende-Kontrolle der Übertragung gewährleistet. Im Gegensatz dazu wird beim Transmission Control Protocol (TCP) die Prüfsumme zum Test herangezogen um das Datenpaket auf Vollständigkeit zu überprüfen. Entspricht die Prüfsumme nicht den Erwartungen des Prüfalgorithmus, wird das Datenpaket verworfen und neu bei der sendenden Stelle angefordert.

Unterscheidungsmerkmale von Netzprotokollen

  • Die Anzahl von Parteien, die an der Kommunikation teilnehmen: Gibt es für eine Übermittlung immer nur einen Empfänger, spricht man von Unicast, bei Übertragungen an mehrere Teilnehmer von Multicast. Wird das Paket an alle gesandt, so ist es ein Broadcast.
  • Findet die Kommunikation nur in eine Richtung statt, spricht man von Simplex, fließen die Daten wechselweise in beide Richtungen, von Halbduplex oder gleichzeitig in beide Richtungen, von Vollduplex.
  • Stellung der Kommunikationsteilnehmer: Sind diese untereinander gleichberechtigt, spricht man von Peer-to-Peer oder symmetrischer, anderenfalls von asymmetrischer Kommunikation. Das am weitesten verbreitete asymmetrische Modell ist das Client-Server-System, bei dem ein Dienstanbieter (der Server) Anfragen von verschiedenen Clients bearbeitet (wobei es immer die Clients sind, die die Kommunikation initiieren, d. h. einen Kanal öffnen).
  • Wird die Kommunikation über ein Taktsignal synchronisiert, spricht man von synchroner Datenübertragung, ansonsten von asynchroner Datenübertragung.
  • Wird nach einer Anfrage auf Antwort gewartet, spricht man von synchroner Kommunikation, andernfalls von asynchroner Kommunikation.
  • Während einer paketorientierten Kommunikation werden Nachrichten bzw. Datenpakete übertragen, beim Streaming wird mit einem kontinuierlichen Datenstrom einzelner Zeichen gearbeitet
  • Bei verbindungsorientierten (connection oriented) Protokollen wird durch spezielle Paketsequenzen der Anfang und das Ende einer Verbindung definiert. Innerhalb einer solchen Verbindung wird durch das Protokoll meistens gewährleistet, dass Pakete in einer bestimmten Reihenfolge ankommen und/oder sichergestellt, dass die Pakete nochmals gesendet werden, falls sie nicht angekommen sind (z. B. TCP). Verbindungslose (connectionless) Protokolle bieten diesen Komfort nicht, haben aber einen geringeren Overhead. (z. B. UDP, RTP)

Die wesentlichen Aufgaben moderner, leistungsstarker Protokolle

  • 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 (siehe auch Handshake-Verfahren).

  1. Zunächst schickt Computer 1 ein Paket, 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.