Alles im Rahmen (Frames)

Um ihre Aufgabe zu erfüllen, zerlegt die Sicherungsschicht die rohen Bitströme der  Bitüberragungsschicht in getrennte Gruppen von Bits, die für die Sicherungsschicht logisch zusammengehören.

Diese Gruppen von Datenbits werden durch zusätzliche Bits eingerahmt, bevor sie auf die Leitung geschickt werden.

Man nennt diese eingerahmten Gruppen Frames, oder auf Deutsch Rahmen.

Ein Frame besteht zumindest aus einem Vorspann und den Datenbits. Meistens sind auch noch zusätzliche Felder im Vorspann. Den Vorspann nennt man im Allgemeinen Header.

Über diese Frames berechnen die Protokolle der Sicherungsschicht Prüfsummen  und geben sie den Frames mit, so das der Empfänger gleich überprüfen kann, ob die empfangenen Daten auch korrekt sind.

Das Unterteilen von Bitströmen in Gruppen ist übrigens gar nicht so leicht, weil es in Netzen keine Garantie für Zeitabläufe gibt, so das man nicht einfach Zeitlücken einschalten kann. Im folgenden schauen wir uns einmal ein paar Verfahren dazu an.

Zeichenzählung

Hier wird einfach ein Feld im Header angelegt, das die Anzahl der Zeichen im Rahmen angibt. Wenn der Rahmen beim Empfänger ankommt, wird das entsprechende Feld ausgelesen und der Empfänger weiß wie viele Zeichen zu erwarten sind.

Diese Methode wird allerdings kaum noch verwendet. Wird nämlich das Feld für die Zeichenzahl durch einen Übertragungsfehler verändert, dann hat der Empfänger keine Chance mehr festzustellen wo der nächste Frame anfängt.

Da er damit auch die Länge des nächsten Frames nicht mehr feststellen kann, ist die gesamte Übertragung gescheitert.

Zeichenstopfen

Hier beginnt und endet jeder Rahmen mit einer bestimmten Zeichenfolge. In der guten alten Zeit der Fernschreiber begann ein Rahmen zum Beispiel mit den ASCII-Zeichen DLE,STX, dann kamen die Daten und anschließend die beiden Zeichen DLE,ETX. Sollte (zum Beispiel bei der Übertragung von Binärdaten ) ein DLE in den Daten auftauchen, so wurde es durch ein zusätzliches DLE maskiert, aus A,DLE,B im Datenstrom wurde also A,DLE,DLE,B, so dass der Empfänger weiss, das dieses DLE nicht als Einleitung eines STX oder ETX dient.

Zeichnfolge vor dem Stopfen:

Zeichnfolge nach dem Stopfen:

DLE steht übrigens für Data Link Escape, STX für Start Of Text und ETX für End Of Text

Nachdem der ASCII-Zeichensatz zunehmend aus der Mode kommt, wird diese Methode auch kaum mehr verwendet.

Bitstopfen

Bei dieser Technik kann ein Frame beliebig viele Zeichen enthalten, und es kann ein beliebiger Zeichensatz verwendet werden. Sie funktioniert so:

Jeder Rahmen beginnt und endet mit einem speziellen Bitmuster, nämlich 01111110.   Falls ein solches Bitmuster im regulären Datenstrom auftauscht, wird von der  Sicherungsschicht nach 5 aufeinanderfolgende 1-en  eine 0 eingefügt, die dann auf der Empfängerseite wieder entfernt wird.

Also wird zum Beispiel die Folge 01111110 als 011111010 übertragen, und auf der Empfängerseite wieder in 01111110 zurückgewandelt.

Wenn der Empfänger hier Anfang oder Ende verliert, dann wartet er einfach auf die oben genannte Folge, erkennt die nächste Rahmengrenze und ist damit wieder mit dem Sender synchron.

Ungültige Signale

Hat man eine redundante Kodierung, die ungültige Signale erlaubt, dann kann man diese als Rahmengrenzen verwenden. So kodiert beispielsweise die Manchester-Kodierung eine 1 als High/Low-Paar und eine 0 als Low/High-Paar.

Einige Protokolle verwenden die ungültigen Signale High/High und Low/Low als Rahmengrenzen. Das ist übrigens Teil der IEEE 802-Norm für LANs.

Häufig wird eine Kombination aus Zeichenzählung und anderen Methoden verwandt. Mittels des Zeichenzählers im Headerfeld wird die Länge des Rahmens bestimmt, und nur wenn an dieser Stelle der Rahmenbegrenzer steht, ist der Rahmen gültig.