- Netzprotokoll
-
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. Unter dem Oberbegriff TCP/IP sind rund 500 Protokolle zusammengefasst. TCP/IP steht im allgemeinen Sprachgebrauch für das Protokoll beim Datenaustausch zwischen verschiedenen Rechnern.
Inhaltsverzeichnis
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
- 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 nach einer Anfrage auf Antwort gewartet, spricht man von synchroner Kommunikation, sonst 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)
- 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.
Einsatz von Protokollen
Die bekannteste Nutzung von Protokollen findet rund um das Internet statt, hier sorgen sie für (Anwendung - (Protokollbezeichnung)):
- Das Laden von Webseiten – (HTTP oder HTTPS)
- Verschicken von E-Mails – (SMTP)
- Herunterladen von Dateien – (FTP, HTTP oder HTTPS)
Die Funktionen der Protokolle bauen zum Teil aufeinander auf. So löst beispielsweise das TCP/IP Protokoll das Problem der Datenübertragung. Das Protokoll SMTP zum Übermitteln von E-Mails benötigt wiederum die Funktion, Daten zu versenden und setzt dazu auf das TCP Protokoll auf.
Dieses schichtweise Aufeinanderaufbauen der Protokolle wird mit Hilfe des OSI-Modells dargestellt.
Geschichte
Im Jahr 1968 wurden auf Veranlassung des amerikanischen Verteidigungsministeriums (DoD) Versuche durchgeführt, mit denen grundlegende Erkenntnisse über die Funktionsweise von Rechnernetzen gewonnen werden sollten. Als praktisches Ergebnis wurde 1969 das ARPANET-Projekt aufgelegt. Hier wurden für die Kommunikationsverwaltung zusätzliche Rechner bei den Clients des Netzes eingerichtet. Das ARPANET wurde 1972 in der Öffentlichkeit vorgestellt und in den Folgejahren stetig weiter ausgebaut. Ab 1983 hatten sich die TCP/IP-Protokolle durchgesetzt. Aus dem ARPANET wurde für militärische Belange ein separates Netz abgeteilt, das MILNET. Mit TCP/IP etablierte sich ein Standard zuverlässiger und leistungsfähiger Datenübertragung. Die massenhafte kommerzielle Verwertung begann.
Siehe auch: X-Modem
Literatur
- Hein/Reisner (2001): TCP/IP ge-packt. Bonn: mitp-Verlag
- Siegmund, G. (2003): Technik der Netze. 5. Aufl., 1296 S., Berlin und Offenbach: VDE Verlag
- König, H. (2003): Protocol Engineering – Prinzip, Beschreibung und Entwicklung von Kommunikationsprotokollen. B. G. Teubner Stuttgart Leipzig Wiesbaden
Weblinks
- http://www.iana.org/assignments/protocol-numbers – IANA-Liste der Protokolle mit den dazugehörigen Nummern
- http://www.protocols.com/
- http://www.banalyzer.de/
- http://www.ipcomm.de/protocols_de.html - Liste mit Protokollen mit OSI-Modell in der Fernwirktechnik
Eine Auflistung gängiger Protokolle und deren Beschreibung in der Wikipedia kann in der Kategorie Netzwerkprotokoll gefunden werden.
Wikimedia Foundation.