Der Token Ring nach IEEE 802.5

Ein Beispiel für kollisionsfreie Netzwerke ist der Token Ring.

Ringnetze werden seit langer Zeit für LANs und MANs benutzt. Einer ihrer Vorteile ist, das sie eigentlich keine echten Ringbusse sind, sondern Ansammlungen von P2P-Verbindungen, die eher zufällig in Ringform angeordnet sind.

Ein Ring besteht aus einer Ansammlung von Ringschnittstellen, die durch Punkt-zu-Punkt-Kabel verbunden sind. Jedes Bit das an einer Schnittstelle ankommt wird in einen Puffer kopiert und kann dort gelesen, oder gegebenenfalls verändert werden. 

Das Hauptproblem bei einem solchen Ring ist, dass ein Kabelbruch das Netz vollständig lahm legt. Um dieses Problem zu umgehen werden Ringnetze meist mittels sogenannter Wire-Center verkabelt. Dabei wird jede Station physikalisch mit zwei Kabeln an das Wire-Center angeschlossen. Im Wire-Center befinden sich Bypass-Relais die von den Stationen mit Strom versorgt werden. Fällt nun eine Station aus, oder wird abgeschaltet, so schließt sich das Relais durch die fehlende Versorgungsspannung und der Ring ist wieder geschlossen.

Nachrichtentransport im Token Ring

In einem Token Ring kreist die ganze Zeit ein spezielles 3 Byte langes Bitmuster, das sogenannte Token das dem Ring seinen Namen gibt. Will nun eine Station senden, dann muss sie abwarten, bis das Token bei ihr vorbeikommt.

Die Ringschnittstellen kennen genau zwei Zustände, nämlich Lesen und Senden. Im Lesemodus wird ein eingehendes Bit einfach vom Eingang zum Ausgang kopiert. Wenn die Station das Token erhalten hat, dann kann die Ringschnittstelle in den Sendemodus gehen.

Kommt das Token vorbei, wandelt sie es in die ersten 3 Byte eines legalen Datenrahmens um und schickt dann den Rest des Rahmens hinterher. Die Daten wandern dann von Station zu Station um den Ring bis sie wieder beim Absender sind, wo sie dann aus dem Ring genommen werden. Normalerweise kehrt dabei der erste Teil des Rahmens schon zum Absender zurück, bevor der letzte Teil gesendet ist.

Ist die Übertragung beendet, erzeugt die Station ein neues Token und schickt es wieder auf den Ring.

Die Station darf das Token nur für die Dauer der Tokenhaltezeit ( so etwa 10 ms) aus dem Ring nehmen. Ist nach der Übertragung des ersten Frames noch Zeit, dann können weitere Frames geschickt werden, sonst muss die Station ein neues Token erzeugen und warten bis wieder ein freies Token vorbeikommt.

Rahmen im Token Ring

Bytes 1 1 1 2 oder 6 2 oder 6 Unbegrenzt 4 1 1
  SD AC FC Zieladresse Quelladresse Daten Prüfsumme ED FS
  • Die Felder SD (start delimiter) enthalten ungültige Folgen der Manchester-Kodierung (also LL oder HH) als Rahmenbegrenzer. Das Byte AC (access control) enthält das Tokenbit (ist es 0 ist es ein Token ) sowie das Monitorbit, Prioritätsbits und Reservierungsbits

  • Die Felder Zieladresse und Quelladresse entsprechen den Feldern in der IEEE 802.3-Definition. Ihnen folgen die Daten, die so lang sein dürfen wie die Geschwindigkeit des Netzes und die Datenrate erlauben. Das Feld Prüfsumme ist ebenfalls identisch mit IEEE 802.3

  • Ein neues Byte ist das Byte FS der Rahmenstatus, das die Bits A und C enthält. Wenn ein Rahmen bei der Station mit der Zieladresse ankommt, setzt die dortige Schnittstelle während des Durchlaufs Bit A. Nimmt die Station den Rahmen an, setzt sie auch Bit C.

    Wenn der Frame wieder bei der sendenden Station angelangt ist, untersucht sie den Rahmenstatus. Dabei gibt es folgende Möglichkeiten

    ACBedeutung
    00Ziel nicht vorhanden oder aus
    10Ziel vorhanden aber Frame abgelehnt
    11Ziel vorhanden und Frame akzeptiert

Wenn der Frame wieder bei der sendenden Station angelangt ist, untersucht sie den Rahmenstatus. Dabei gibt es folgende Möglichkeiten

ACBedeutung
00Ziel nicht vorhanden oder aus
10Ziel vorhanden aber Frame abgelehnt
11Ziel vorhanden und Frame akzeptiert

Hierdurch ist eine automatische Bestätigung für jeden Rahmen gegeben. 

Prioritäten im Token Ring

Der Token Ring wurde als echtzeitfähiges System entworfen, und kann deshalb Rahmen verschiedener Prioritäten verwenden. Dazu enthält der Tokenrahmen im mittleren Byte ein Prioritätsbit. Will eine Station einen Rahmen der Priorität n übertragen, dann darf sie das Token nur vom Ring nehmen, wenn es ein Priorität kleiner oder gleich n hat.

Bis hierher funktioniert das ganze wie eine Ratsche. Um zu verhindern, dass nach kurzer Zeit nur noch Token höchster Priorität übertragen  werden, ist die Station die die Priorität des Tokens erhöht hat, auch dafür verantwortlich sie wieder herabzusetzen, wenn die dringlichen Rahmen erfolgreich versandt wurden. Tut sie das nicht, dann kann es vorkommen, das eine oder mehrere Stationen am Ring verhungern, weil sie nie das Token nehmen dürfen.

Ringwartung

Jeder Token Ring hat eine Monitor Station, die den ganzen Ring überblickt. Ihre Aufgaben umfassen z.B. 

  • aufpassen dass das Token nicht verloren geht und
  • Säubern des Rings von Rahmenbruchstücken

Rahmenbruchstücke, verwaiste Rahmen  und verlorene Token können entstehen wenn eine Station vom Ring getrennt wird, bevor sie einen gesendeten Rahmen vom Netz nehmen kann.

Um verlorene Token aufzuspüren besitzt die Überwachungsstation einen Timer der auf das größtmögliche tokenlose Zeitintervall eingestellt ist. Verstreicht diese Zeit ohne das ein Token vorbeikommt, so wird der Ring geleert und ein neues Tojen in den Ring gestellt.

Verstümmelte Rahmen werden von der Überwachungsstation durch eine   ungültige Prüfsumme oder ungültige Rahmenteile erkannt und auf die gleiche Art und Weise entfernt.