Tokenweitergabe
# Tokenweitergabe

Der Begriff Tokenweitergabe oder englisch Token Passing bezeichnet ein Medienzugriffsverfahren in Rechnernetzen. Der Begriff lehnt an den Token im Eisenbahnverkehr an, der dort den Verkehr auf eingleisigen Streckenabschnitten regelt.

Grundlage von Token Passing ist das Token, das in einem Rechnernetz von einer Station zur benachbarten Station in einer logischen Ringtopologie weitergeleitet wird. Es existieren zwei unterschiedliche Realisierungsformen des Token Passing: Token Ring und Token Bus.

Bei Token Ring ist der Nachbar die physisch nächste erreichbare Station, bei Token Bus ist es die logisch nächste erreichbare Station (realisiert durch die Adressen der Netzwerkkarte).

## Ablauf

Ein Freitoken (bestehend aus 3 Bytes bzw. 24 Bit) wird von Punkt zu Punkt ständig weitergeschickt. Möchte ein Computer A Daten an Computer C übermitteln, wartet er darauf, dass das Token ihn passiert und hängt dann dem Token, sofern es frei ist, das Datenpaket an, adressiert es an Computer C und markiert das Token als besetzt.

Das gesamte Paket schickt Computer A an seinen Nachbar Computer B. Computer B erkennt, dass nicht er der Empfänger des Datenframes ist und sendet es an seinen Nachbar Computer C. Da C als Empfänger eingetragen ist, kopiert er das Datenframe und modifiziert das Token auf empfangen. Dann sendet er den Frame wieder auf den Ring. Da das Token immer noch besetzt ist, kann kein Computer Daten anhängen. Beim Eintreffen des Frames bei Computer A überprüft A, ob der Inhalt mit dem versendeten übereinstimmt und die Empfangsmarkierung gesetzt ist.

Ist dies der Fall, so war die Übertragung erfolgreich. Der Datenframe wird entfernt und das Token wird wieder auf frei gesetzt. Selbst wenn eine Übertragung fehlgeschlagen ist, muss der Sender nach dem Empfang der Empfangsmarkierung (Quittung) auf jeden Fall ein freies Token senden. So wird gewährleistet, dass nach jeder Datenübertragung ein freies Token im Ring ist.

Verwendet wird Token Passing für Netzwerke mit hoher Last, aber auch für Echtzeitanwendungen.

