Karl Heinz Buchegger schrieb:
> Max schrieb:
>> ?? Jetzt bin ich überfordert! Welches Protokoll? Wenn ich einfach
>> zwischen 2 Mega8 übertragen will? Kannst du das bitte genauer erklären?
>
> Du vereinbarst einfach mit dir selber (oder mit dem anderen
> Programmierer), dass das so ist.
> Solche willkürlichen Vereinbarungen nennt man 'Protokoll'.
Denn jetzt kommt nämlich der Zaubertrick. Er beginnt mit der
Fragestellung: Woher weiß eigentlich der Empfänger, welches der beiden
Bytes, die er empfängt das 1. Byte und welches das 2.te Byte ist, so
dass er die Bits wieder richtig zusammensetzen kann?
Und da zeigt sich, dass dein Protokoll nicht besonders brauchbar ist. Es
gestattet schlicht und ergreifend nicht, das in den Daten zu erkennen.
Der Sender möchte nacheinander die Bytes 11001110 und 00110100
übertragen.
Der Empfänger bekommt eine Folge von 5-Bit Einheiten (in Bitform
niedergeschrieben)
11001 11000 00110 10000
woher weiß er dass
11001 11000
und 00110 10000
jeweils zusammengehören? Die schlichte Antwort: er kann es nicht wissen.
Wenn das erste Paket verloren geht, dann erhält der Empfänger nur noch
11000 00110 10000
und setzt daraus die 8-Bit Zahl
11000001
zusammen. Das ist aber nicht das, was der Sender übertragen wollte! Noch
nicht einmal annähernd.
Aber: Kein Mensch sagt, dass du 8 Bit in der Form 5 + 3 aufteilen musst.
Du kannst mit der Gegenstelle vereinbaren (Protokoll!), dass du 8 Bit in
der Form 4 + 4 aufteilst, wobei das erste Bit (das MSB) anzeigt, ob es
sich um die ersten 4 Bit oder um die 2.ten 4 Bit handelt. Sagen wir mal,
eine 1 im MSB zeigt an: das sind die ersten 4 Bit der 8-Bit Zahl
Dann werden die beiden Bytes 11001110 und 00110100 so von dir übertragen
11100 01110 10011 00100
(natürlich immer ergänzt um Startbit, Stopbit, Parität, etc)
bekommt der Empfänger das hier zu Gesicht
01110 10011 00100
so kann er beim ersten 5-Bit Wert sofort anhand der 0 ganz links sagen,
dass das die 2.ten 4 Bit sind. Erst im nächsten Paket ist ganz links
eine 1 und er weiß: Huch, hier fängt eine neue Zahl an. Dieses Paket hol
ich mir mal raus
10011
schmeisse das Bit ganz links (das nur zur Erkennung diente) weg
0011
und ich hab die obersten 4 Bit meiner 8 Bit Zahl. Das nächste Paket ist
00100
was korrekt sein kann, weil ja ganz links eine 0 steht, welche es als
die unteren 4 Bit kennzeichnet. Wieder das Bit ganz links weggeworfen
0100
und an die bereits empfangenen 4 Bit dranngehängt
00110100
und voila: da sind sie wieder: die 8 Bit in voller Pracht. Und das ganze
selbst dann wenn das allererste 5-er Paket verloren gegangen ist.
Solche Vereinbarungen nennt man Protokoll. Und wie du siehst, kann man
mit einem geschickt gewählten Protokoll zusätzliche Fähigkeiten in eine
Übertragung einbauen.