8.1.2. Protokolle (S)#
Ein Protokoll legt fest, wie Daten über eine Schnittstelle übertragen werden und was sie bedeuten. Es beschreibt also den Vertrag zwischen Sender und Empfänger (Format, Struktur, Semantik).
Grundsätzlich unterscheidet man:
Textbasierte Protokolle
Daten werden als Zeichen übertragen.
Beispiele:stdin/stdout, HTTP (Text), JSONBinäre Protokolle
Daten werden als Bytes übertragen.
Beispiele: TCP/IP
8.1.2.1. Wo liegt das Problem?#
Wir erhalten bei der Kommunikation über Schnittstellen Bytes oder Text. Die ursprüngliche Bedeutung im Programm müssen wir daraus erst wieder herstellen.
Nehmen wir an, wir erhalten den Text:
"Meine Zahlen: 2,3,4"
Die Zeichen "2", "3" und "4" sind hier Text und keine echten Zahlen.
Zum Rechnen brauchen wir aber Zahlenwerte (z. B. 2, 3, 4 als int).
Wie wir das erreichen, sehen wir im Abschnitt zur Konvertierung (Text → Zahl).
Tipp: Rückfragen bei „Schnittstelle/Protokoll“
Wenn jemand sagt „das geht dann über eine Schnittstelle XYZ“, fragen Sie nach:
Wie ist die Schnittstelle beim Sender und beim Empfänger implementiert?
Wie heißt das Protokoll (Format/Regeln), an das sich beide halten?
Wer stellt sicher, dass der Empfänger überhaupt empfangen kann (z. B. „aktiv ist“)?
Gibt der Empfänger dem Sender eine Bestätigung (Ack), dass Daten korrekt angekommen sind?
Kann der Empfänger fehlerhafte Sendungen erkennen oder sogar korrigieren?