Fehlertoleranz in Computersystemen: Fehlertoleranz der OSI-Schichten (Schichten 1 und 2)

avatar

Fehlertoleranz in der Schicht 1

Die ersten zwei OSI Protokollschichten definieren die Eigenschaften eines direkten Kommunikationskanals zwischen zwei kommunizierenden Knoten.
Physikalische Einflüsse, wie Temperaturänderungen, Magnetfelder, Strahlung, usw., können dazu führen, dass die Signale und somit die Daten während der Übertragung beeinflusst werden.

Schicht 1, die Bitübertragungsschicht, bezieht sich auf die technischen Eigenschaften des Kommunikationssystems. Für eine bestimmte Klasse von Netzwerken, wie zum Beispiel Ethernet oder Tokenringe, werden die technischen und physikalischen Eigenschaften in der ersten Schicht genau festgelegt und standardisiert. Die Gestalt, Form und Funktionalität einzelner Komponenten ist genau beschrieben und gilt als Bauanleitung für die Konstruktion eines Kommunikationssystems. Dazu gehört auch die Definition der Datenkodierung und Darstellung digitaler Daten im jeweiligen Übertragungssystem. Die Spezifikationen bestimmter Signalkodierungsverfahren sind Beispiele von Designkomponenten, die die Fehlertoleranz des Übertragungssystems beeinflussen können.

Ein Beispiel zur Synchronisation

Ein Sender S und ein Empfänger E möchten miteinander kommunizieren. Dazu überträgt S seine Daten in der Form einer Bitsequenz über das Übertragungsmedium.
In einem asynchronen Übertragungssystem ist generell nicht definiert, wann S eine Datenübertragung zu E beginnt und es ist daher erforderlich, dass sich S und E synchronisieren. Dies wird generell durch die Übertragung von speziellen Bitmustern erreicht, die, wenn sie von E empfangen werden, den Beginn der Datenübertragung ankündigen. Sender und Empfänger haben einen internen Takt, der von einem Quarz oder einem quarzbasierenden Schwingkreis generiert wird.

Dieser Takt bestimmt zu welchem Zeitpunk der Sender das jeweilige Signal zur Übertragung eines Bit’s generiert, und wann der Empfänger das Signal interpretiert. Die Synchronisation zwischen Sender und Empfänger ist notwendig, um zu garantieren, dass das gesendete Datenbit
in der Mitte des Signals interpretiert wird. Durch physikalische und elektische Einflüsse verändern sich die Signalform und die Signalstärke. Es ist daher wichtig den jeweiligen Wert des Datenbits im Zentrum seiner Signaldarstellung zu interpretieren und nicht in der Nähe seiner Signalflanken (Ränder).
Obwohl die Taktfrequenzen von einem genauen Quarz generiert werden, ist es unmöglich zu garantieren, dass das Senden und Empfangen über einen langen Zeitraum synchron stattfindet. Es ist daher möglich, dass der Empfänger nach einer gewissen Anzahl übertragener Datenbits das jeweilige Signal nicht mehr in seinem Zentrum auswertet und sich somit die Wahrscheinlichkeit eines Bitfehlers durch Fehlinterpretation des Signalwertes erhöht.
Die Synchronisation von Sendetakt und Empfangstakt kann durch die Strukturierung der zu übertragenden Daten erzwungen werden, indem die Anzahl der in einer Datenübertragungseinheit enthaltenen Bits (Frame) limitiert wird. Am Anfang der Übertragung eines neuen Frames werden Bitmuster gesendet, die diese Synchronisation ermöglichen.

schicht_signal.png
Abbildung 1: Signale können werden während der Übertragung verzerrt werden

schicht_abweichung.png
Abbildung 2: Abweichung der Takte zwischen Sender und Empfänger

Fehlertoleranz in der Schicht 2

Ein Beispiel eines Protokollelementes der zweiten Schicht, was die fehlertolerante Datenübertragung realisieren soll, ist das Stop-and-Wait Protokoll. Das Ziel des Stop-and-Wait Protokolls ist den Sender und den Empfänger so zu koordinieren, dass der Sender nur einen neuen Frame sendet wenn garantiert ist, dass der vorherige Frame korrekt empfangen wurde, um somit eine fehlertolerante Datenübertragung zu realisieren.

Eine Implementierung dieses Protokolls basiert auf der Bestätigung eines fehlerfrei empfangenen Frames, indem ein Acknowledgement (ACK) vom Empfänger zum Sender übertragen wird. Stellt der Empfänger fest, dass während der Übertragung ein Bitfehler aufgetreten ist, so wird eine negative Bestätigung (NACK) zum Sender übertragen. Da in den meisten Übertragungssystemen nicht garantiert werden kann, dass keine Fehler auftreten und dass die gesendeten Daten ihr Ziel erreichen, muss der Sender einen Timer aktivieren, der bei Ablauf eine Wiederholung des Sendevorgangs initiiert.

schicht_ack.png
Abbildung 3: Acknowledgement zwischen Sender und Empfänger

Quelle
[1] A Correctness Proof of a Topology Information Maintenance Protocol for a Distributed Computer Network by William D. Tajibnapis, Communications of ACM, July 1977, Volume 20, Number 7, pp.477-485.
[2] Koren, I. and Mani Krishna , C. (2007). Fault-Tolerant Systems. CA: Elsevier



0
0
0.000
1 comments