IEEE 802.5: Token Ring Daten und Token auf dem Ring

IEEE 802.5:
Ring
•
•
•
•
Token Ring
Vielzahl von Punkt-zu-Punkt Verbindungen
also kein Broadcast der Sendungen
Kommunikation nur zwischen benachbarten Stationen
Stationen kopieren Informationen bitweise von einer Leitung auf
die andere
Prinzip
• Token ist ein Rahmen mit besonderem Bitmuster
• Auf Ring zirkuliert genau ein Token
• Bevor Station senden darf, muß sie Token besitzen und vom Ring
entfernen
• Station darf Token festgesetzte Zeit behalten und evtl. mehrere
Rahmen senden
• Nach dem Senden generiert Station neues Token
Daten und Token auf dem Ring
DTE C setzt die
Response Bits am
Rahmenende
A erkennt anhand der
Response Bits die
Empfangssituation
⇒
die Daten zirkulieren
tatsächlich einmal
komplett um den Ring
2 Methoden der TokenWeitergabe
a) Standard
b) Early token release
Early Token Release
• das Standard-Verfahren gibt den Token erst weiter, wenn die Sendung
wieder komplett beim Sender angekommen ist
• der Ring ist dann komplett ohne Daten
• bei höheren Datenraten wäre dann viel Kapazität verschwendet
• ⇒ Early Token Release hängt Token an letzte Daten
• ⇒ bessere Kanalausnutzung
• trotzdem ist immer nur genau 1 Token im Umlauf
Bitübertragungsschicht
• Medien:
Verdrillte Kupferkabel (Shielded
Twisted Pair)
oder
Koaxialkabel
• Digitale
Übertragung:
Differentielle
ManchesterCodierung
• Übertragungsrate:
(1 und) 4 MBit/s
Sender A:
sendet Daten
hängt Token an letzten Rahmen
Sender B:
nimmt Token vom Ring
hängt Daten an vorhergehende Rahmen
hängt Token an letzten Rahmen
usw.
• Anwendung im 16 MBit/s Token Ring
• wird etwas variiert bei FDDI
• max. 250
Stationen
• meistens sind alle
Umschalter in
einem Hub/Verkabelungszentrum
konzentriert
• durch BypassModus Kabelbrüche in
Anschlußleitungen
überbrückbar
Erweiterungen
• Koaxialkabel, Lichtleiter (in Form von FDDI)
• Höhere Übertragungsraten: 16 MBit/s mit Early Token Release
Minimale Ringverzögerung
Max. Wartezeit
• Annahme: keine Station möchte senden
• ⇒ nur Token zirkuliert auf Ring
• ⇒ Ring muß lang genug sein, damit das Token komplett darauf paßt
Frage
Wie lange muß eine Station maximal warten, bis sie wieder die
Sendeberechtigung erhält?
V
L
K
Signalgeschwindigkeit [200 m/µs]
gesamte Ringlänge
Übertragungskapazität [Bit/s]
⇒
Ringumlaufzeit U = L/V
Ringbitzahl
R=U*K
RMax
RT
TT
U
K
N
TMax
Beispiel 1:
L = 1 000 m
Anzahl Bits auf dem Ring
K = 4 MBit/s
⇒ R = 20 Bit
⇒ Das Token von 802.5 (3 Byte) paßt nicht auf Ring!
=
=
=
=
=
=
=
max. Rahmenlänge [Bit]
Token-Länge [Bit]
Transportzeit für Token zum Nachbarknoten
Ringumlaufzeit
Übertragungskapazität
Anzahl der Stationen
Umlaufzeit eines kompletten Datenrahmens
Station A sende einen Rahmen und gebe dann das Token weiter
⇒
⇒
TMax
TT
=
=
Rmax /K + U
RT /K + U / N
Lösung: Künstliche Verzögerung in jeder Station durch Puffer
Max. Wartezeit W tritt auf für den Fall:
alle anderen senden einen Rahmen
+
D
N
Verzögerung / Station [Bit]
Anzahl der angeschlossenen Stationen
W
⇒
⇒
Ringumlaufzeit U = L/V + N * D/K
Ringbitzahl
R = U * K = L * K/V + N * D
Beispiel 2:
L = 1 000 m K = 4 MBit/s
N = 50
D = 1 (wie bisher skizziert)
⇒ R = 70 Bit
Bei Abschaltung/Ausfall einiger Stationen muß ggf. die Verzögerung in
einer Station dynamisch vergrößert werden
=
=
=
(N-1) (RMax /K + U)
(N-1) (RMax /K + U)
(N-1) (RMax /K + U)
+
+
+
Token N mal weitergegeben
N (RT /K + U / N)
N RT /K + U
U
= 0 für RT << Rmax
Rahmenformat
Abhörmodus
Token
⇒
⇒
Tokenbit T in AC = 0 ⇒ Rahmen = Token
Tokenlänge = 3 Byte
Rahmen
Bytes
• Bitweise kopieren von Input nach Output (dabei automatisch
Signalregeneration)
Start of
Frame
Durch Checksum abgedeckt
End of Frame
Zieladresse zwischenspeichern
Zieladresse = Stationsadresse ?
Wenn ja, Rahmen bitweise übernehmen
Access Control (AC)
⇒ LSB - first
P
T
=
=
M
R
=
=
• Start-of-Frame - Sequenz entdeckt
• Token identifiziert & sendewillig
Ändere Token in Start-of-Frame - Sequenz
Gehe in Sendemodus
Priority-Bits
Token Bit
T = 0 : Rahmen = Token
T = 1 : Datenrahmen
Monitor Bit
(zur Erkennung verwaister Rahmen)
Reservierungs-Bits
"Entfernen des Tokens vom Ring":
T := 1
“Start of Frame”-Sequenz:
SD AC
mit T = 1
• da das Datenfeld beliebig lang sein kann und keine Längeninfo wie bei
802.3 CSMA/CD vorliegt, kann über den Ending Delimiter ED auf die
Rahmenlänge geschlossen werden
Sendemodus
Prioritätensteuerung
Steuerung über Prioritäts- und Reservierungsbits in AC von
Datenrahmen und Token
P
R
Priorität des ankommenden Tokens (0 = niedrig / 7 = maximal)
Priorität der Reservierung für nächstes Token
Station möchte Rahmen mit Priorität N senden
Starte Timer (10ms = max. Sendezeit pro Station)
• Solange noch kein Timeout & Sendewunsch
Rahmen bitweise senden
Entfernen der umgelaufenen Bits vom Ring
• Wenn Senden beendet
Neues Token generieren
Gehe in den Abhörmodus
• bekommt Token nur, wenn N ≥ P
• wenn nicht, kann sie nächstes Token mit Priorität N reservieren,
indem sie in die Reservierungsbits des anliegenden
Tokens oder Datenrahmens
N einträgt (R := N ), aber nur, wenn N > R
• gerade sendende Station bemerkt die Reservierung (R > 0) beim
Wegnehmen „ihrer“ Rahmen vom Bus, generiert neuen Token mit
Priorität R (P := R)
• die nächste Station mit N ≥ P, die diesen empfängt, kann senden
• liegt am Übertragungsende keine Reservierung vor, wird ein Token
mit der gleichen Priorität desjenigen erzeugt, der für die
Übertragung benutzt wurde
Rücksetzen der erhöhten Priorität
• wurde ein Token erhöhter Priorität von einer Station erzeugt, ist sie
auch dafür verantwortlich, daß diese auf den ursprünglichen Wert
zurückgesetzt wird:
• dazu merkt sie sich die ursprüngliche Priorität und beobachtet
alle eingehenden Token
• findet sie einen mit der erhöhter Priorität ohne
Reservierungseinträge, setzt sie diesen Token auf die
ursprüngliche Priorität zurück
Weitere Steuerfelder
Ring-Management
• Eine aktive Monitorstation pro Ring
Frame Control Feld
legt Typ des Rahmens fest (Steuer- oder Datenrahmen)
• Standby Monitorstationen in allen anderen Stationen
• Monitor benutzt Steuer-Rahmen:
Adreßfelder
Adressen werden vom IEEE vergeben
Prüfsumme
schützt nicht alle Felder, da einige durch andere Stationen
veränderbar
trotzdem durch zusätzliche Kontrollmechanismen sicher
CLAIM_TOKEN:
Versuch, Monitor zu werden
DUPLICATE_ADDRESS_TEST:
Überprüft, ob zwei Stationen dieselbe Adresse haben
ACTIVE_MONITOR-PRESENT:
Zeigt Vorhandensein eines aktiven Monitors an. Wird periodisch
vom Monitor gesendet.
STAND_BY_MONITOR_PRESENT:
Zeigt Vorhandensein von potentiellen Monitoren an
Frame Status Feld
A = address recognized
C = frame copied
r = reserved
⇒ Empfänger existiert
⇒ Empfänger hat Daten gelesen
AC = 00 ⇒
Empfängerstation inaktiv oder nicht existent
AC = 11 ⇒
Datenübertragung o.k.
AC = 10 ⇒
Empfänger wahrscheinlich derzeit überlastet
PURGE:
Reinitialisiert Ring
BEACON:
Zur Meldung/Lokalisierung von Ringunterbrechungen
Managementaufgaben
Stationen
• entdecken Ausfall des Monitors
• bestimmen einen Monitor (Claim Token - Prozedur)
IBM Token Ring
• bis 250 Stationen
• 4 und 16 MBit/s
Verbindung von Ringen
Monitor erkennt und behandelt Fehler, z. B.
verwaiste Rahmen
• entstanden z.B. durch Ausfall einer sendenden Station, die
ihre Rahmen nicht mehr entfernen kann
• sendende Stationen setzen das Monitorbit auf 0
• das Monitorbit aller am Monitor vorbeikommenden Rahmen
wird auf 1 gesetzt
• wenn ein Rahmen mit Monitorbit = 1 am Monitor
vorbeikommt, muß er verwaist sein
• ⇒ PURGE
verlorene Token
• Monitor verwaltet Timer, um Verlust eines Tokens zu
entdecken
• Timer wird gestartet, immer wenn ein Token passiert
• Timeout-Intervall: längstmögliches Intervall ohne Token
• Timeout ⇒
• PURGE
• Monitor generiert neues Token
Brücke = Rechner mit zwei Schnittstellenkarten
Vorteile
• höhere Zuverlässigkeit
• mehr als 250 Stationen
• unterschiedliche Übertragungsraten in unterschiedlichen Ringen
• Rahmenlänge nicht begrenzt
IEEE 802.4: Token Bus
• Wurde im Rahmen von MAP (Manufacturing Automation Protocol)
unter der Federführung von General Motors entwickelt
• Anwendung:
Prozeßsteuerungen in der Industrieautomatisierung
Bitübertragungsschicht
Übertragungsmedium:
Breitband-Koaxialkabel (75 Ohm)
Lineare (bus-) oder baumförmige Topologie
• entspricht der üblichen Kabelnetzverdrahtung
• die Möglichkeit von Verzweigungen erlaubt effektive Verkabelung
Analoge Übertragung
• Breitbandtechnik mit Trägersignal
• relativ unempfindlich gegen niederfrequente Einstreuungen (in
Fabriken usw.)
• Physikalisch:
Logisch:
Bus
Ring
• hier:
A und D nicht im Ring
• Zugriffsmethode: Token
• Um Ring auf dem Bus zu bilden, muß jede Station die Adresse ihres
Nachfolgers (und Vorgängers) kennen
• Beachte:beim Token Ring schon durch physische Struktur gegeben
Übertragungsgeschwindigkeiten
• 1 MBit/s
• 5 MBit/s
• 10 MBit/s
Ankopplung
• anders als Token Ring hier keine aktive Regeneration des Signals,
sondern rein passive Ankopplung an den Bus
• damit auch kein „physischer“ Bypass für inaktive Stationen nötig
MAC Protokoll
Format von Token und Datenrahmen
Prinzip
• Stationen im logischen Ring nach Adressen geordnet
• Token Passing von höheren zu niedrigeren Adressen
(mit Ausnahme zwischen der „letzten“ und „ersten“ Station)
• Station empfängt Token
Daten senden ?
ja:
Starte Timer
Sende solange Rahmen bis alle gesendet oder Timeout
Sende Token an Nachfolger
nein: Sende Token an Nachfolger
Präambel:
Empfängersynchronisation
Frame Control:
Rahmentyp (Token, Daten, Management)
Token ⇒ FD = 00001000
Data_Unit = 0 Byte lang
Adressen:
wie bei 802.3 und 802.5
Data_Unit:
0 - 8182 Bytes (bzw. 8174 bei 6-Byte Adressen)
Prioritätsmechanismus
Ring-Management
4 Prioritätsklassen: 0, 2, 4, 6 (höchste Priorität)
Prinzip:
• Jede Station darf Token gleich lang behalten
• eine Station entspricht 4 logischen Stationen, eine pro Priorität
• Token Passing:
Si6 ⇒ Si4 ⇒ Si2 ⇒ Si0
• Effekt: Stationen mit höherer Priorität können Token länger halten
Beispiel:
• 50 Stationen
• 10 MBit/s Übertragungsrate
• Für Prio 6 wird 1/4 der Bandbreite einer Station reserviert
• ⇒ 50 kBit/s Bandbreite/Station für Prio 6 garantiert
Keine zentrale Management-Station
• verteilte Kontrolle
• meistens organisiert durch die Station, die Token besitzt, mittels
Managementrahmen
verglichen mit Token-Ring sehr viel mehr Management nötig
• Initialisieren des logischen Rings (beim Start und nach schweren
Fehlern)
• Festlegen der Reihenfolge durch Adreßvergabe
• Einfügen und Ausgliedern von Stationen in logischen Ring
• dafür ist dies, anders bei Token-Ring, durch die passive
Ankopplung auch im laufenden Betrieb möglich
• Verwaltung des Token
Management-Rahmen
(beanspruche Token)
CLAIM_TOKEN:
• Token während der Initialisierung anfordern
(Bitte um Nachfolger)
SOLICIT_SUCCESSOR:
• Eintreten von Stationen in den Ring
(löse Konflikt auf)
RESOLVE_CONTENTION:
• Behandlung von Kollisionen beim Eintritt von Stationen
(setze Nachfolger fest)
SET_SUCCESSOR:
• Entfernen von Stationen aus dem Ring
(wer folgt)
WHO_FOLLOWS:
• Entfernen zusammengebrochener Stationen aus dem Ring
Einige Management-Operationen I
Einige Management-Operationen II
Ring Initialisierung
• 1. Station im Ring sendet CLAIM_TOKEN an alle
Entfernen zusammengebrochener Stationen
• Station X entdeckt Fehler ihres Nachfolgers N
• Sendet WHO_FOLLOWS (To:N; From:X)
(Broadcastbit in Adresse aktiv)
• Keine weiteren CLAIM-TOKEN-Anforderungen (nach 2τ) ?
ja:
Generiere Token (einzige Station im Ring)
nein:
Kollision ⇒ Auflösungsalgorithmus
• Einfügen weiterer Stationen: SOLICIT_SUCCESSOR_1
Einfügen von Stationen
• Token-Besitzer X sendet periodisch
• Nachfolger NN von N sieht WHO_FOLLOWS
⇒ sendet SET_SUCCESSOR (To:X; Succ:NN)
mögliches Problem:
NN antwortet nicht:
Derzeitiger
Nachfolger
SOLICIT_SUCCESSOR_1 (From:X; Succ:S)
• Stationen im Bereich [X, S] können sich melden
• Meldung erfolgt (innerhalb von 2 τ)?
nein:
response window geschlossen, normaler Fortgang
ja:
genau eine Meldung erfolgt?
ja:
Station wird in Ring aufgenommen
nein:
Kollision: RESOLVE_CONTENTION
⇒ X verbreitet SOLICIT_SUCCESSOR_2
• jede aktive Station soll sich melden
• genau eine Station?
ja:
Station wird Nachfolger von X
nein:
Kollisionsbehandlung
Token-Verlust
• Station hat Timer T
• Übertragung ⇒ T = 0
Entfernen von Stationen
• Token-Besitzer X will Ring verlassen
hat Nachfolger N
hat Vorgänger V
• Sendet SET_SUCCESSOR (To:V; Succ:N)
• Timeout T ⇒ Claim Token (Ringinitialisierung)
Mehrere Tokens
• Tokenbesitzer bemerkt Übertragung
• Wegwerfen des eigenen Tokens
Zusammenfassung Ethernet (10 MBit/s)
Zusammenfassung Token-Ring (10 MBit/s)
802.3:
802:5
+
am meisten verbreitet
+
nur digitale Technik
+
Anschluß von Stationen, ohne Netz abzuschalten
+
Vielzahl von Übertragungsmedien
+
keine Modems, da Basisband
+
Verkabelungszentren: Automatisches Erkennen und Beseitigen von
+
praktisch keine Wartezeit bei geringer Auslastung
Kabelbrüchen
+
Deterministisches Verhalten (max. Wartezeit)
-
analoge Komponente zur Kollisionserkennung
+
Prioritäten
-
minimale Rahmengröße (64 Bytes)
+
beliebig lange Rahmen
-
nicht deterministisch (keine max. Wartezeit)
+
guter Durchsatz bei hoher Auslastung
-
keine Prioritäten
-
mit steigender Auslastung Zunahme von Kollisionen
-
zentraler Monitor
-
Verzögerungen durch Warten auf Token
-
teurer als 802.3 Ethernet
⇒ schlechter Durchsatz bei hoher Auslastung
Zusammenfassung Token-Bus (10 MBit/s)
802:4
+
weitverbreitetes Medium (TV-Kabel)
+
deterministisch (max. Wartezeit)
+
Prioritäten
+
Guter Durchsatz bei hoher Auslastung
+
Breitbandkabel: Unterstützung mehrerer Kanäle (Daten, Sprache,
Video)
-
viel Analogtechnik (z. B. Breitbandverstärker, Modems)
-
komplexes Protokoll
-
Verzögerungen durch Warten auf Token
Zusammenfassung: Lokale Netzwerke