Fehlertoleranz in Computersystemen: Fehlertoleranz der OSI-Schichten (Schichten 3 und 4)

avatar

Fehlertoleranz in der Schicht 3

Schicht 3 des OSI Schichtenmodel (Vermittlungsschicht) ist fast gänzlich dem Routing gewidmet, was sicherstellt, dass ein Kommunikationspfad zwischen zwei Kommunikationspartnern gefunden wird. Dabei muss berücksichtigt werden, das die jeweiligen Kommunikationspartner nicht direkt miteinander durch ein und das selbe Kommunikationsmedium verbunden sind, sondern miteinander mittels mehrerer Netzwerkknoten kommunizieren.
Algorithmen, die einen besten Pfad zwischen Sender und Empfänger in einem Netzwerk von Knoten auswählen, fallen in die Kategorie der Routingalgorithmen.

Routingalgorithmen haben die Aufgabe den besten Pfad in einem Kommunikationsnetz zu errechnen, wobei der beste Pfad ein kürzester Weg basierend auf der Anzahl der notwendigen Übertragungsschritte oder ein Pfad mit minimaler Latenzzeit ist. Man teilt die Routingalgorithmen grob in zwei Klassen ein:

  • Link State Routing (Globale Routingalgorithmen)

Diese Algorithmen berechnen den kürzesten Pfad zu allen Knoten im Netz. Jeder der Knoten führt diesen Algorithmus unabhängig von den anderen Knoten aus. Die Eingabedaten bestehen aus der Gesamttopologie des Netzwerks mit allen Kommunikationsverbindungen und deren jeweiligen Kosten, oder Latenz. Da sich die Bedingungen in einem Kommunikationsnetz ständig ändern können, müssen die topologischen Daten fortlaufend erfasst werden.

Der eigentliche Routingalgorithmus ist ein zentralisierter Algorithmus, der für das sogenannte Link State Routing auf Dijkstra’s Kürzester Wege Algorithmus [1] basiert. Bei der Ausführung dieses Algorithmus muss man speichern, welcher Nachbarknoten den kürzesten Pfad generiert hat, so dass eine korrekte Routingtabelle erstellt werden kann.

  • Verteilte Routingalgorithmen

Dezentralisierte oder verteilte Routingalgorithmen haben die Eigenschaft, dass sie nicht erfordern die gesamte Topologie des Netzes lokal in einem Knoten zu aggregieren, um den besten Pfad zu ermitteln. Einer dieser Algorithmen ist der Distanz-Vektor Algorithmus, der eine verteilte Version des Bellman-Ford Algorithmus darstellt.
Das Ziel dieses Algorithmus ist es den besten Weg von einem Startknoten zu einem Endknoten zu ermitteln und somit ein fehlertolerantes Netzwerk zu realisieren. D.h. ein Netzwerkfehler in der Form einer unterbrochenen Verbindung zweier benachbarter Knoten, oder der Ausfall eines Knotens selbst muss nicht unbedingt zu einem Ausfall der Kommunikation zweier Knoten führen, wenn alternative Pfade verfügbar sind. Es gilt diese redundanten Pfade dynamisch zu ermitteln und den Datenverkehr von den ausgefallenen Pfaden auf die Alternativwege umzuleiten. Dabei tauschen benachbarte Knoten asynchron und völlig unkoordiniert Informationen über die Erreichbarkeit anderer Knoten aus, auf denen die Erstellung einer Distanztabelle basiert.

Fehlertoleranz in der Schicht 4

Im Gegensatz zu den Protokollen der zweiten Schicht, die einen fehlerfreien Datenaustausch zwischen zwei direkt verbundenen Kommunikationsknoten realisieren, muss die vierte Schicht (Transportschicht) Protokolle zur fehlerfreien Kommunikation zwischen zwei Prozessen bereitstellen.
Das Transmission Control Protocoll (TCP) ist ein Beispiel eines Protokolls, das die fehlertolerante Kommunikation zweier Prozesse realisiert.

Die Probleme, die die Protokolle der vierten Schicht berücksichtigen müssen, stammen von den Eigenschaften eines verteilten Systems. Während für die Protokolle der zweiten Schicht die technischen Eigenschaften des Kommunikationskanals unverändert bleiben, haben die Protokolle der vierten Schicht keine Kontrolle darüber, durch welche Teilnetze und welche Netzwerkarchitekturen die einzelnen Kommunikationseinheiten auf ihrem Weg von Sendeprozess zu Empfangsprozess gesendet werden. Somit ist vom eigentlichen physikalischen Netzwerk, das durch die Schichten eins bis drei definiert ist, abstrahiert und die Protokolle der vierten Schicht berücksichtigen nur den Fluss der Daten eines Prozesses in das Netz und den Empfang der Daten aus dem Netz.
Die Protokolle der vierten Schicht haben daher keinen Einfluss darauf, was mit den Kommunikationseinheiten geschieht während sie vom Netzwerk übermittelt werden.

Das Zeitintervall bis zum Eintreffen der Bestätigung (ACK) kann für die zweite Schicht im Normalfall recht genau bestimmt werden, da die jeweiligen Antwort- und Übertragungszeiten im Protokoll der Netzwerkarchitektur festgelegt sind.
Protokolle der vierten Schicht haben diesen Luxus nicht, da die Übertragungszeit der jeweiligen Kommunikationseinheiten von vielen verschiedenen Parametern abhängen kann. Während die Kommunikation der zweiten Schicht generell nur zwei Kommunikationspartner berücksichtigen muss, ist die Prozesskommunikation der vierten Schicht von der Netzwerklast abhängig.

Quelle
[1] http://cs.indstate.edu/hgopireddy/algor.pdf, p. 4 ff.
[2] 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.



0
0
0.000
1 comments