Bitübertragung zwischen zwei Rechnern - Protokoll
Auf der vorherigen Seite haben wir die Netzwerkschnittstellen von zwei Rechnern (d.h.: zwei Calliope) miteinander verbunden. Bei unseren Experimenten sind wir auf drei Probleme gestoßen. Wir müssen Vereinbarungen treffen, um diese Probleme zu lösen. Die Gesamtheit aller Vereinbarungen bildet unser Bitübertragungsprotokoll.
-
Problem: Bei der Bitfolge '1001' muss der Empfänger erkennen, dass das Bit '0' zwei Mal hintereinander gesendet wurde. Die Bitfolge könnte leicht mit '101' verwechselt werden.
Lösung: Wir legen fest, wie lange ein einzelnes Bit gesendet wird. Diese Zeit nennen wir Bitzeit. -
Problem: Solange keine Bitfolge gesendet wird, hält der Empfänger die Leitung immer auf '0'. Bei der Bitfolge '00001111' kann der Empfänger deshalb nicht erkennen, wann die Bitfolge beginnt.
Lösung: Vor der Bitfolge senden wir ein Startbit. D. h.: Innerhalb einer Bitzeit wird eine '1' übertragen. Anschließend folgt die Bitfolge. -
Problem: In der Bitfolge '11110000' kann der Empfänger nicht erkennen, wann die Bitfolge endet.
Lösung: Wir legen fest, wie viele Bits in einem Übertragungsvorgang gesendet werden. Wir verwenden 8 Bits (= 1 Byte).
Die folgende Abbildung erläutert unser Protokoll anhand der Bitfolger 0100 0001:
Nach der Bitfolge muss der Sender für eine Bitzeit das Bit 0 senden. Dieses Bit nennen wir Stoppbit. Es markiert das Ende eines Übertragungsvorgang und stellt sicher, dass es eine kurze Pause zwischen zwei Übertragungsvorgängen gibt, so dass das Startbit des nächsten Übertragungsvorgangs erkannt werden kann.
Ein Transceiver-Programm
Zum Experimentieren können wir auch ein sogenanntes Transceiver-Programm - das ist ein Programm, das sowohl senden als auch empfangen kann, verwenden.
Der Transceiver sendet und empfängt automatisiert Low-High-Spannungsmuster. Zum Senden werden solche Pegelmuster hier mit Hilfe der Symbole '0' und '1' dargestellt. Beim Empfangen werden die Pegel dann wie bei einem Oszilloskop mit Hilfe eines Laufstrahls angezeigt.
Aufgabe 1
(a) Lade das Transceiver-Programm transceiver.py herunter. Starte das Transceiver-Programm auf zwei Rechnern, deren Calliope verbunden sind (vgl. Abbildung am Anfang dieser Seite).
(b) Ergänze in der Bitfolge 0011 1100 das Startbit und das Stoppbit. Übertrage die Bitfolge.
(c) Beschreibe, wie man aus der grafischen Darstellung beim Empfänger die gesendete Bitfolge rekonstruieren kann.
(d) Warum sollte an beiden Rechnern die gleiche Pegelzeit eingestellt sein?