4. Termin 2: Paketfehlerrate vs. Präambellänge

Vorbereitung:

Zur Vorbereitung auf den Termin lesen Sie sich bitte dieses Kapitel die Folien der Vorlesung der Unit 6 (Framing, Error Detection, Forward Error Correction (FEC)) und die zusätzliche Literatur zu PLL durch. Diese Kapitel sowie die Befehle und Skripte sind relevant für den Präsenztest.


Im ersten Termin wurden einige Aspekte der Bit-Übertragung untersucht. In diesem Versuchstermin werden nun mehrere Bits zu Rahmen (“Frames”) zusammengefasst und von einem Sender zu einem Empfänger übertragen. Durch die Rahmenbildung können erstmals rudimentäre Mechanismen eines Protokolls benutzt werden. Hierzu gehört die Fehlererkennung. Allerdings bereitet die Rahmenbildung auch Probleme:

Zusammenfassend besteht ein Rahmen in diesem Termin aus einer Präambel mit variabler Länge, einem SFD-Feld (16Bit), einem Längen-Feld (16Bit), das die Größe der Nutzdaten angibt, und einer Prüfsummemit entweder 8, 16 oder 32 Bit Größe. Als Prüfsumme steht eine CRC für die Nutzdaten und eine Paritätsprüfung (als Bestandteil) des Längenfeldes im Rahmenkopf zur Verfügung. Die Länge der Präambel und des Nutzdatenfeldes kann eingestellt werden. Somit hat der Header eine Größe von 4 Byte ohne Präambel.

Das bei der Übertragung verwendete Protokoll ist recht einfach:
Ein Sender sendet Rahmen nach dem oben beschriebenen Aufbau mit Nutzdaten mit einer festgelegten Länge. Während der Übertragung über den Kanal können einzelne Bits verfälscht werden. Zusätzlich gehen einzelnen Bits durch fehlende Bit-Synchronisationen zwischen Sender und Empfänger verloren. Wird z.B. das SFD-Feld verfälscht, dann wird der Rahmen gar nicht erkannt.

Der Empfänger filtert nicht erkannte Rahmen und nicht fehlerfreie Rahmen, die durch eine falsche Prüfsumme erkannt werden. Die korrekt übertragenen Rahmen werden am Bildschirm ausgegeben. Mit diesem einfachen Protokoll sollen nun folgende Abhängigkeiten untersucht werden:

Präambellänge: Welche Länge muss sie haben, um Rahmenverluste aufgrund fehlender Bit-Synchronisation zu minimieren?

5.1 Versuchsaufbau

Um diesen Versuch durchzuführen wird ein Lastgenerator benötigt, der Rahmen mit einer festen Länge erzeugt. Die Rahmen werden anschließend mittels eines Transceivers vom sendenden Rechner zu einem Transceiver übertragen, der am empfangene Rechner angeschlossen ist. Beim Empfänger wird eine Datensenke benötigt, um die empfangenen Daten zu verarbeiten.

Als Lastgenerator und Datensenke wird das Programm iperf verwendet, wobei im sendenden Rechner ein iperf-Client und im empfangenen Rechner ein iperf-Server installiert wird.

Damit der iperf-Client und auch der iperf-Server mit einem Transceiver kommunizieren kann, wird das Programm plccd benötigt. Das Programm plccd empfängt IP Pakete über die Socket-Schnittsteller vom iperf-Client und übergibt die Nutzdaten des IP Pakets an den Transceiver, der sie anschließend sendet. Daten, die von einem Transceiver empfangenen werden, sendet das Programm plccd an den iperf-Server. Auch hier wird die Socket-Schnittstelle zur Kommunikation zwischen dem Programm plccd und dem iperf-Server verwendet.

Die Konfiguration (verwendete IP Adressen und Portnummern, Paketgröße etc.) für den iperf-Client und iperf-Server sind in den Skripten iperfB2client und iperfB2server enthalten.

Mittels dieses Versuchsaufbaus soll die Größe der Präambel bestimmt werden ab der eine nahezu fehlerfrei Übertragung garantiert werden kann. Dies bedeutet, es sollen nicht die Rahmenverluste gemessen werden, die durch Bitfehler im Übertragungsmediument stehen, sondern durch fehlende Bit-Synchronisation zwischen Sender und Empfänger.

Dazu müssen die folgenden Voraussetzungen geschaffen werden:

Wie kann nun dafür gesorgt werden, dass sich der Empfänger nur beim Empfang eines Rahmen mit dem Sender synchronisiert, aber sonst nicht ?

Wenn die PLL, die für die Synchronisation zuständig ist, beim Empfang eines Rahmens eingeschaltet wird und nachdem der Rahmen empfangen wurde wieder eingeschaltet wird, dann wäre das Problem gelöst. Leider kann die PLL nicht beeinflusst werden.

Die einzige Alternative ist, dann man eine gewisse Zeit wartet und hofft, dass Sender und Empfänger nicht mehr synchronisiert sind. Nach unendlicher Wartezeit wird dies der Fall sein. Um die Wartezeit zu verkürzen, muss ein Kriterium gefunden werden, von dem abgeleitet werden kann, dass die beiden Transceiver nicht mehr synchron sind. Und diese Kriterium ist die Rahmenverlustrate selbst:

Wir gehen davon aus, dass keine Präambel vorhanden ist. Nun werden Rahmen mit einer konstanten Rate gesendet und die Rahmenverlustrate bestimmt. Anschließend wird die Zeit zwischen zwei Paketen vergrößert und nochmals die Rahmenverlustrate gemessen. Die Verlustrate sollte nun gestiegen sein. Die Zeit wird solange vergrößert, bis nahezu alle Rahmen verloren gehen. Dieser Paketabstand wird bei der Messung eingestellt.


5.2 Versuchsdurchführung

Für den Versuch hat sich die folgende Vorgehensweise bewährt: