Switch-ArchitekturenSwitch-ArchitekturenSwitch-ArchitekturenSwitch-ArchitekturenProf. Dr. W. RiggertProf. Dr. W. Riggert
mit überarbeiteten Abbildungen vonmit überarbeiteten Abbildungen von
CiscoCisco Systems Systems
Prof. Dr. W. Riggert 2
Inhalt
• Das Tutorial ist in vier Abschnitte gegliedert.
• Abschnitt 1 definiert grundlegende Begriffe, Abschnitt 2 behandelt das Scheduling, Abschnitt 3 stellt Switch-Implementationen vor und der letzte Abschnitte geht auf die Realisierung von Switching-Fabrics ein.
• Das Ziel besteht darin, Switching-Methoden, Puffermechanismen und den Aufbau von Switches zu verstehen.
Begriffe SchedulingSwitch-Implementationen Switching-Fabrics
Prof. Dr. W. Riggert 3
Begriffe 1
• Switching fabricSwitching fabric - verweist auf den Aufbau eines Switches, dessen interne Mechanismen und Verfahren die Daten vom Eingangs- zum Ausgangsport leiten.
• QueuingQueuing - bezeichnet alle Puffermechanismen, die zur Kontrolle von Überlastsituationen eingesetzt werden.
• Distributed switchingDistributed switching - Implementationen, bei denen Switching-Entscheidungen an einem lokalen Port getroffen werden.
Prof. Dr. W. Riggert 4
Begriffe 2• OversubscriptionOversubscription - Zustand, in dem die Summe der
Bandbreite aller Ports die interne Weiterleitkapazität des Switches übersteigt. Diese potentielle Problemlage wird als Blocking bezeichnet
• Non-blockingNon-blocking - Zustand, in dem die Bandbreite des Switches ausreicht, die Summe aller Übertragungen der einzelnen Ports abzudecken.
• Head-of-line blockingHead-of-line blocking - bezieht sich auf ein subtiles Problem. Es spiegelt die Überlastsituation an einem Outputport wider, der keine weiteren Zellen mehr entgegennehmen kann. Befinden sich in diesem Datenstrom hinter dieser an den überlasteten Port gerichteten Zelle weitere Zellen an andere Outputports, können diese nicht zugestellt werden. Die nichtzustellbare Zelle eines überlasteten Outputports verstopft damit den gesamten Datenfluss.
Prof. Dr. W. Riggert 5
Definition : Switching
• Switches transferieren Daten von einem Input- zu einem Outputport.
• Ein Switch ermöglicht den Aufbau mehrerer simultaner und unab- hängiger Verbindungen zwischen einzelnen Switch-Ports.
• Switches arbeiten auf der zweiten oder einer höheren Schicht des OSI-Referenzmodells
Data In
Data In
Input Output Data OutData Out
Switch
Prof. Dr. W. Riggert 6
Layer 2 vs. Layer 3 Switching
PaketPaket PaketPaket PaketPaket PaketPaket
Routing Routing TabelleTabelle
Layer 3 Switching : Die zugrundeliegende Idee besteht darin, dass ein Datenfluss zwischen Endsystemen
unterschiedlicher Subnetze nach anfänglichem konventionellen Routing auf ein “Switching” umgestellt
werden kann
Layer 2 Switching : Für diese Art der Paketweiterleitung spielt lediglich die MAC-Adresse
der Schicht 2 eine Rolle.
Prof. Dr. W. Riggert 7
Überlast-Management
• Überlastsituationen entstehen, wenn mehrere Inputports um einen gemeinsamen Outputport konkurrieren.
• Diese Situation tritt ein, wenn mehrere Benutzer auf einen Server zugreifen wollen und in einem „geswitchten“ Netz alle Stationen über einer gesonderten Portanschluß verfügen.
Switching FabricSwitching Fabric
Server
UnabhängigeNutzer
Prof. Dr. W. Riggert 8
Dynamischer Pufferaufbau
• Zur Realisierung der Zwischenspeicherung von Datenpaketen kann der Puffer aus dynamischen oder statischen Einheiten aufgebaut sein.
• Der dynamische Puffer ist in kleine Allokationseinheiten (hier 64 Bytes) eingeteilt.
• In Abhängigkeit von der Größe der Allokationseinheit kann es zu Speicherverschwendung kommen; eine zu kleine Wahl hingegen führt zu einer übermäßigen Fragmentierung der Pakete.
3*64-Byte Pakete nutzen 192 Bytes des Speichers
Ein 256-Byte Paket nutzt 256 Bytes des Speichers
Unbenutzter Speicher
Prof. Dr. W. Riggert 9
Statischer Puffer
• Zur optimalen Anpassung an die Paketgröße können feste Speicherblöcke in Einheiten der maximalen Paketgröße als Allokationseinheit gewählt werden.
• Werden allerdings eine Vielzahl von Paketen geringerer Größe übertragen, kommt es zu Speicherverschwendung
Ein 64-Byte Paket belegt einen 2000-Byte Block
Ein 256-Byte Paket belegt ebenfalls einen 2000-Byte Block
Verschwendeter Speicherplatz
2000 Byte Block
Prof. Dr. W. Riggert 10
Inputport-Pufferung• Die Plazierung der Puffer eines
Switches lässt drei Möglichkeiten zu :– Inputport– Outputport– Memory-Pool innerhalb des
Switches• Bei der Inputport-Technik werden
Pakete auf der Inputseite zwischen- gespeichert und für den Output in Abhängigkeit vom Zustand des Inputports freigegeben. Die Wahl ist naheliegend, weil jeder Port nur die Pufferkapazität benötigt, die die bei ihm ankommenden Zellen verlangen.
Input Port
Output Port
Data Data OutOut
Data Data InIn
Prof. Dr. W. Riggert 11
Outputport-Pufferung• Der Zelltransfer durch den
Switch verlangt auf der Ausgabeseite große Puffer. Da der Verkehrsstrom innerhalb eines Switches theoretisch von jedem Inputport zu einem einzigen Outputport verlaufen kann, muss die Pufferkapazität jedes Ports die gesamte ankommende Zelllast aufnehmen können.
• In Zeiten von Überlast kann ein Outputport zudem Zellen ver- werfen. Da diese Zellen aber zuvor im Switch transportiert wurden, verschwenden sie wertvolle Ressourcen.
Input Port
Output
Port
Data Data InIn
Data Data OutOut
Prof. Dr. W. Riggert 12
Pufferung mit geteilten Outputschlangen
• Der gesamte Pufferplatz wird innerhalb des Switches zwischen allen Ports geteilt.
• Alle Pakete eines Puffers besitzen das gleiche Ziel.
• Diese Konzeption umgeht das HOL-Blocking
Data Out to Data Out to Port 1Port 1
Data Out to Data Out to Port 3Port 3
Data Out to Data Out to Port 9Port 9
Data Out to Data Out to Port 2Port 2
Data Data InIn
Prof. Dr. W. Riggert 13
HOL-Blocking Beispiel
• Da Server A überlastet ist und keine Pakete mehr entgegennimmt, die Daten an Server B in der Reihenfolge aber nach denen an Server A kommen und nur ein Bus im Switch zur Verfügung steht, kommt es auch zu keiner Paketzustellung an Server B. Da beide Nutzer an den gleichen Port angeschlossen sind, füllt sich der Inputport-Puffer zunächst nur mit Daten für Server A.
Switching FabricSwitching Fabric
Datentransferan Server A
Datentransferan Server B
Server A
Server B
ÜberlasteteVerbindung
Nutzer A und B sind an dengleichen Switchport angeschlossen
Prof. Dr. W. Riggert 14
Mehrere Pufferschlangen pro Output-Port
• Diese Art der Paketweiter- leitung unterstützt Dienstgüten.
• Probleme entstehen, wenn keine Differenzierung der Anwendungen hinsichtlich Prioritäten stattfindet.
• Zusätzlich muss der Switch einen Mechanismus zur Interpretation von Prioritäten kennen.
• Anwendungen geringer Priorität können durch ihre Diskriminierung Retransmissionen und damit steigende Netzlast auslösen.
Kritische Daten,hohe Priorität
Unkritische Daten,geringe Priorität
Data InData In
Prof. Dr. W. Riggert 15
Prioritätsscheduling -Weighted Round Robin-
Verfahren• Für die unterschiedlichen
Puffer- schlangen an den Outputports können benutzerdefinierte Gewichte vergeben werden.
• Der Scheduler erzwingt die Einhaltung der Verkehrsverteilung gemäß dieser Gewichte, d.h Anwendungen der höchsten Prioritätsklasse (Queue 0) erhalten einen bestimmten festgelegten Bandbreitenbetrag
Queue 0Gewicht = w
Queue 1Gewicht = x
Queue 2Gewicht = y
Queue 3Gewicht = z
= w= w (w+x+y+z)(w+x+y+z)
= x= x (w+x+y+z)(w+x+y+z)
= y= y (w+x+y+z)(w+x+y+z)
= z= z (w+x+y+z)(w+x+y+z)
Prof. Dr. W. Riggert 16
Weighted Round Robin - Beispiel
Output-Output-
SchlangeSchlangeGewichtGewicht
ZugewieseneZugewiesene
BandbreiteBandbreite
QoS-0QoS-0
QoS-1QoS-1
QoS-2QoS-2
QoS-3QoS-3
1515 43 Mbps43 Mbps
1313 37 Mbps37 Mbps
14 Mbps14 Mbps
6 Mbps6 Mbps22
55
WRR BerechnungWRR Berechnung
=(15/(15+13+5+2)) x 100
=(13/(15+13+5+2)) x 100
=(5/(15+13+5+2)) x 100
=(2/(15+13+5+2)) x 100
Insgesamt steht eine Bandbreite von 100 Mbps zur Verfügung
Prof. Dr. W. Riggert 17
Weighted Round Robin - Arbeitsweise
• Während der Übertragung räumt der Algorithmus den Schlangen mit der höchsten Priorität absoluten Vorrang ein, mit der Folge, dass die Warteschlangen niedriger Priorität verlängerte Latenzzeiten in Kauf nehmen müssen. Um Übertragungen mit niedriger Priorität nicht über- mäßig zu diskriminieren, werden für die Warteschlangen Kapazi- tätsbegrenzungen berücksichtigt, so dass auch der Datenstrom geringer Priorität eine garantierte Übertragungszeit erhält.
IP-Verkehrhohe
Priorität
IP-VerkehrgeringePriorität
RSVP-Verkehr
WRR Scheduler
UnterschiedlicheGewichte bestim-
men die QoS-Politik
Outputport
Prof. Dr. W. Riggert 18
Switching-Implementierung
• Eine Switching-Implementation beschreibt, wo die Weiterleit- entscheidung getroffen wird.
• Die notwendigen Tabellen können zentral oder verteilt an den einzelnen Ports vorliegen.
• Bei Verwendung einer zentralen Routingtabelle ist der Suchvor- gang in ASIC‘s realisiert.
• Diese Variante wird in Bus- und Shared Memory-Architekturen bevorzugt.
LookupTabelle
LookupTabelle
LookupTabelle
Switching FabricSwitching Fabric
Forwarding oder Forwarding oder Routing TabelleRouting Tabelle
CPU 00-0e1-00-00-00-00 2/3
Prof. Dr. W. Riggert 19
Route Caching - Prinzip• Auf der Seite der Inputports
können zur Steigerung der Weiterleitung “Route Caches” eingeführt werden. Sobald der Switch ein Paket empfängt, wird die Ziel-IP-Adresse in einer Liste häufig benutzter IP-Adressen - dem Cache - gesucht. Im Falle, dass kein Eintrag existiert, muss der Switch auf eine Routingtabelle oder den Layer-2-Switchprozeß zurückgreifen.
• Route Caches können auf der Identifikation von Quell-, Zieladressen oder TCP/UDP-Portnummern basieren.
Routing TabelleRouting TabelleRouteRouteProcessorProcessor
•••
A3BBC1
Ethernet 1FDDI 2Ethernet 5
zentraler Routing Cachezentraler Routing Cache
LokalerRouteCache
LokalerRouteCache
Switching FabricSwitching Fabric
LokalerRouteCache
LokalerRouteCache
Prof. Dr. W. Riggert 20
Route Caching - Ablauf• Das erste Paket eines Datenflus-
ses wird durch den Route Prozes- sor und die zentrale Routing-tabelle bearbeitet.
• Alle nachfolgenden Pakete können durch den lokalen Route Cache am Inputport gesteuert werden, so dass der Route Prozessor nicht mehr belastet wird.
• Notwendig für eine erfolgreiche Durchführung des Verfahrens ist eine Synchronisierung der zentra- len und lokalen Tabelleneinträge
Routing TabelleRouting TabelleRouteRouteProcessorProcessor
•••
A3BBC1
Ethernet 1Gig E-net 1/0Fast Ethernet 2/0
Central Routing CacheCentral Routing Cache
Lokaler RouteCacheLokaler RouteCache
LokalerRouteCacheLokalerRouteCache
SA
C1
DA Interface
BB FE2/0
Switching FabricSwitching Fabric
Prof. Dr. W. Riggert 21
Switching-Fabrics
• Ein idealer Switch würde die Pakete von jedem Quell- zum Zielsegment ohne Verzögerung leiten. Dabei würden die Stationszahl oder die operationalen Unterschiede wie Dienstgüte oder Verkehrslast keine Rolle spielen. Um sich dieser Idealvorstellung zu nähern, existieren unterschiedliche Architekturentwürfe :– Crossbar oder Matrix-Architektur– Busarchitektur– Shared Memory-Architektur
Prof. Dr. W. Riggert 22
Single Bus Architektur
• Der Bus ist das zentrale Element des Datentransfers innerhalb des Switches.
• Jeder Port mit unterschiedlichen Technologien erhält Zugriff auf den Bus. Die zentrale Verarbeitung der Pakete gestattet eine Filterung und Fehlererkennung.
• Da der Bus die einzige Transportressource darstellt, besteht die Gefahr einer Bandbreitenerschöpfung.
Ethernet Switch Module
Fast Ethernet Switch Module
FDDI Uplink Module
ATM Uplink Module
Forwarding Forwarding TabelleTabelle
CPU
00-0e1-00-00-00-00 2/3
Prof. Dr. W. Riggert 23
Single Bus - Unicast-Transport
• Erreicht ein Paket den Inputport des Switches, wird es an die Switching Engine weitergeleitet. Zuvor analysiert der Adress-ASIC das Paket hinsichtlich Ziel- und Quelladresse.
• Sobald die Zieladresse in der Forwarding-Tabelle gefunden wurde, wird das Paket an den ermittelten Outputport gesendet. Enthält die Tabelle nicht die Zieladresse, wird das Paket auf alle Ports „geflutet“.
Nutzer A Nutzer B
Forwarding TabelleForwarding Tabelle
•••
Nutzer A Mod3/Port12 Nutzer B Mod5/Port2
Prof. Dr. W. Riggert 24
Single Bus - Multicast-/Broadcast-
Transport• Mulicasts sind auf
ausgewählte Ports begrenzt.• Jeder Port kann die
Multicast-/Broadcast Pakete während des Flusses über den zentralen Bus gesondert kopieren. Die gezielte Zustellung ist daher sehr einfach.
Multicast TabelleMulticast Tabelle
Multicast Sender
MulticastEmpfänger A
MulticastEmpfänger B
•••
Multicast A Mod3/Port12 Mod3/Port12
Prof. Dr. W. Riggert 25
Crossbar-Architektur
• Pakete werden auf ihre Adresse analysiert und über eine Matrix aus Punkt-zu-Punkt-Verbindungen an den betreffenden Outputport weitergeleitet.
• Mehrere Inputbusse führen zu einem komplexeren Aufbau der Forwarding-Tabelle.
Module 1
Module 2
Module 3
Module 4
Module 5
Module 1 Module 2 Module 3 Module 4 Module 5
Forwarding Forwarding TabelleTabelle
00-0e1-00-00-00-00 2/3
CPU
Prof. Dr. W. Riggert 26
Crossbar - Unicast-Transport
• Crossbar-Switches besitzen den Vorteil, dass sie wesentlich leichter skalierbar sind, als andere vorgeschlagene Architekturen. Da jede Verbindung zwischen Input- und Outputport einen dedizierten Pfad durch den Switch darstellt, bedeutet das Hinzufügen weiterer Pfade eine Erhöhung der Bandbreite.
• Da ein direkter Link naturgemäß die schnellste Kommunikation zwischen zwei Punkten ermöglicht, ist die Zeit des Verbindungsaufbaus zwischen Input- und Outputport ein entscheidender Faktor.
Module 1
Module 2
Module 3
Module 4
Module 5
Module 1 Module 2 Module 3 Module 4 Module 5
Prof. Dr. W. Riggert 27
Crossbar - Multicast-Transport
• Datenverkehr, der an mehrere Outputports gerichtet ist, muss mehrfach repliziert und in mehrere lokale Portspeicher gestellt werden. Da für eine korrekte Zustellung ferner die Switching Engine keine weiteren Paketverarbeitungen vornehmen darf, bildet die Multicast-Weiterleitung eine Schwäche dieser Architektur
Module 1
Module 2
Module 3
Module 4
Module 5
Module 1 Module 2 Module 3 Module 4 Module 5
Prof. Dr. W. Riggert 28
Shared Memory-Architektur
• Switches dieses Prinzips besitzen pro Port einen eigenen Prozessor, der dynamisch Punkt-zu-Punkt-Verbindungen über einen zentralen Bus aufbaut. Alle Ports greifen über diesen Bus auf einen Pool von Puffern zu, der zwischen den Input- und Outputports geteilt wird. Einlaufende Pakete werden in den Pool geschrieben, zu sendende Pakete werden aus ihm gelesen
Module 1
Module 2
Module 3
Module 4
Module 5
Module 6
Module 7
Module 8
Module 9
Module 10
Prof. Dr. W. Riggert 29
Shared Memory - Arbeitsweise
Module 1
Module 2
Module 3
Module 4
Switching EngineSwitching EngineSwitching EngineSwitching Engine
HiochgeschwindigkeiHiochgeschwindigkeitstsSwitching ASIC für Switching ASIC für schnelle schnelle SwitchentscheidungSwitchentscheidung
Shared Memory
CPU00-0e1-00-00-00-00 2/3
Hochgeschwindigkeits-Hochgeschwindigkeits-Datentransfer in den Datentransfer in den Speicher verringert die Speicher verringert die BlockingwahrscheinlichkBlockingwahrscheinlichkeiteit
Großer Pool an dynamisch Großer Pool an dynamisch zuweisbarem Speicherzuweisbarem Speicher
Prof. Dr. W. Riggert 30
Shared Memory - Unicast Transport
• Die Datenpakete erreichen den Switch über einen Inputport und werden von dort direkt an das Shared Memory weitergeleitet.
• Die Switching-Engine bestimmt mit Hilfe der Forwarding-Tabelle den Zielport.
• Das Paket wird an den errechneten Zielport weitergeleitet.
Module 3
Module 4
SwitchingSwitchingEngineEngine
SwitchingSwitchingEngineEngine
SharedMemory
Forwarding Forwarding TabelleTabelle
00-0e1-00-00-00-00 2/3
Module 1
Module 2
Prof. Dr. W. Riggert 31
Shared Memory - Multicast Transport
• Datenpakete erreichen den Switch auf Port 1. Ein Blick in die Multicasttabelle zeigt, dass die empfangenen Pakete eine Multicast-Adresse als Ziel tragen.
• Die Switching-Engine baut eine Verbindungsliste für die Ports 2-4 auf.
• Die Pakete werden kopiert und an die entsprechenden Ports geleitet.
Module 3
Module 4
SwitchingSwitchingEngineEngine
SwitchingSwitchingEngineEngine
SharedMemory
Multicast Multicast TabelleTabelle
00-0e1-00-00-00-00 2/3
Module 1
Module 2
Prof. Dr. W. Riggert 32
Shared Memory - HOL-Blocking Unterdrückung
• Inputport 1 übertrage einen langen Rahmen an Outputport 2, während gleichzeitig Quellport 3 einen Rahmen an den Zielport 2 senden möchte. Quellport 3 kopiert den Rahmen an eine Stelle Y im Shared Memory-Bereich, wo er solange verweilt, bis der Outputport frei ist. Erhält der Inputport 3 nun weitere Rahmen an Port 4, kopiert er diese an eine andere Stelle Z des gemeinsamen Speichers. Obgleich der erste Rahmen von Port 3 auf den Port 2 wartet, kann unabhängig davon, der später erhaltene Datenfluß an Port 4 nun vorrangig weitergeleitet werden.
Top Related