Protokoll im Sinne von Kommunikationsprotokoll (engl. communication protocol) ist eine vor dem Einleiten einer (maschinellen) Kommunikation ausgehandelte oder von dritten Parteien festgelegte Konvention zur Datenübertragung zwischen gleichrangigen Kommunikationspartnern (bzw. deren Protokollinstanzen).
Für den geregelten Datenverkehr zwischen Kommunikationspartnern ist es erforderlich, dass alle Partner am jeweiligen Ende der (virtuellen) Kommunikationsleitung ein und dasselbe Kommunikationsprotokoll instantiieren. Man spricht hierbei von Protokollinstanzen einer bestimmten Kommunikationsschicht. Protokolle einer Kommunikationsschicht legen genau standardisierte Abfolgen von Kommunikationselementen und Formate fest, die zwischen gleichrangigen Protokollinstanzen (engl. peers) zweier Systeme im Rahmen einer Kommunikationsbeziehung ausgetauscht werden.
Eine Protokollinstanz implementiert dabei die Gesamtheit derjenigen Dienste, die von einer Kommunikationsschicht in einem System angeboten werden muss, um im Sinne eines standardisierten Protokolls kommunizieren zu können. Kommunikationsdienste einer Schicht „N“ sind wiederum diejenigen Funktionen, die als Kommunikationsschnittstelle der nächsthöheren Kommunikationsschicht „N+1“ einer Protokollinstanz zur Verfügung gestellt werden. Die Schnittstellen werden auch als Service Access Points (Abkz. SAP) bezeichnet.
Die Gesamtheit der Protokolle aller Kommunikationsschichten eines Systems wird Protokollstapel (protocol stack) genannt. Protokollstapel werden häufig als abstrakte Schichtenmodelle dargestellt, in denen (gleichrangige) Protokolle nach ihrer jeweiligen Abstraktionsschicht eingeordnet werden. Im Sinne eines Schichtenmodells kann daher eine Schicht N als Dienstnutzer (konkreterer Schnittstellen der Schicht N-1) und als Diensterbringer (mächtigerer Schnittstellen für die Schicht N+1) betrachtet werden.
Die Kommunikationselemente zum Datenaustausch zwischen gleichrangigen Protokollinstanzen (einer Schicht N) zweier Systeme werden als Protokolldateneinheit (PDU, protocol data unit) bezeichnet. Sie werden als Kommunikationspakete realisiert, die einem vorher festgelegten Transport-Format (wie z.B. IP) genügen. Die Kennzeichnung der Protokolldateneinheiten einer Schicht erfolgt durch Voranstellen eines Schichtbezeichners (z.B. TPDU für „Transport PDU“ oder APDU für „Application PDU“).
Beispielhaft erfolgt eine Kommunikation entlang der Schichten eines Protkollstapels wie folgt:
-
Kommunizieren zwei Protokollinstanzen einer Schicht N+1 miteinander, werden die Nutzdaten der Kommunikation (engl. payload) mit Steuerbefehlen (sog. Headerdaten) versehen und an die nächstniedrigere Schicht N im Protokollstapel als (A)PDU weitergeleitet. Das jeweilige Kommunikationsprotokoll der Schicht N+1 garantiert dabei den einheitlichen PDU-Aufbau (hinsichtlich Syntax, Formatierung oder notwendiger Inhalte) und fügt geeignete Metadaten zur Kommunikation auf Schicht N+1 in Form der Steuerinformationen im Header an.
-
Die Protokollinstanz der Schicht N eines Kommunikationspartners wertet die Steuerbefehle der höheren Schicht aus, und fügt für die Kommunikationsverbindung spezifische Steuerbefehle der Protokollschicht N in einem eigenen Header an. Zusätzlich können an dieser Stelle für die weitere Kommunikation auf Schicht N benötigte Informationen von der Kommunikationsgegenstelle erfragt werden. Die PDU besteht nun kurz vor der Weitergabe an die Kommunikationsdienste der nächstniedrigeren Schicht N-1 aus den Nutzdaten der Schicht N+1 und aus den Steuerbefehlen der Schichten N+1 und N.
Dieses Vorgehen erfolgt nun auf allen weiteren Schichten im Protokollstapel ähnlich bis hin zur Schicht 1.
-
Nachdem die PDU durch die Protokollhierarchie gereicht und um spezifische Header mit Steuerbefehlen ergänzt wurde, zeichnet die Schicht 1 nun für die Weiterleitung über das physische Übertragungsmedium verantwortlich. Zu diesem Zeitpunkt lässt sich nun auch erstmals der für die Übertragung bisher benötigte Protokoll-Overhead (engl. protocol overhead) erkennen, also der Anteil der hinzugefügten Steuerinformationen am Bruttovolumen der gesendeten PDU, der durch die einzelnen Schichten der Protokollhierarchie verursacht wurde.
Für das einwandfreie Kommunizieren über geschichtete Protkollhierarchien müssen folgende drei Vorbedingungen gelten:
-
Eine Schicht N muss die Anforderungen (Güte, Qualität, Funktionsumfang) der nächsthöheren Schicht N+1 erfüllen.
-
Die Dienste der nächstniedrigeren Schicht N-1 uneingeschränkt in Anspruch nehmen können.
-
Die Rahmenbedingungen des vorher festgelegten Protokolls in der Kommunikation mit der Gegenstelle (Partnerinstanz) auf entfernten Rechnern einhalten können.
Sind alle diese Bedingungen erfüllt, ist eine (wie oben beispielhaft dargelegte) maschinelle Kommunikation über einen Stapel an Protokollen zwischen zwei Rechnern in einem Netzwerk ermöglicht.