330 likes | 519 Views
Switch-Architekturen. Prof. Dr. W. Riggert mit überarbeiteten Abbildungen von Cisco Systems. Inhalt. Das Tutorial ist in vier Abschnitte gegliedert.
E N D
Switch-Architekturen Prof. Dr. W. Riggert mit überarbeiteten Abbildungen von Cisco Systems
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 Scheduling Switch-Implementationen Switching-Fabrics Prof. Dr. W. Riggert
Begriffe 1 • Switching fabric - verweist auf den Aufbau eines Switches, dessen interne Mechanismen und Verfahren die Daten vom Eingangs- zum Ausgangsport leiten. • Queuing - bezeichnet alle Puffermechanismen, die zur Kontrolle von Überlastsituationen eingesetzt werden. • Distributed switching - Implementationen, bei denen Switching-Entscheidungen an einem lokalen Port getroffen werden. Prof. Dr. W. Riggert
Begriffe 2 • Oversubscription - Zustand, in dem die Summe der Bandbreite aller Ports die interne Weiterleitkapazität des Switches übersteigt. Diese potentielle Problemlage wird als Blocking bezeichnet • Non-blocking - Zustand, in dem die Bandbreite des Switches ausreicht, die Summe aller Übertragungen der einzelnen Ports abzudecken. • Head-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
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 Out Input Output Switch Prof. Dr. W. Riggert
Layer 2 vs. Layer 3 Switching Routing Tabelle Paket Paket Paket Paket 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
Switching Fabric Ü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. Server Unabhängige Nutzer Prof. Dr. W. Riggert
Dynamischer Pufferaufbau 3*64-Byte Pakete nutzen 192 Bytes des Speichers Unbenutzter Speicher • 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. Ein 256-Byte Paket nutzt 256 Bytes des Speichers Prof. Dr. W. Riggert
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 Verschwendeter Speicherplatz Ein 256-Byte Paket belegt ebenfalls einen 2000-Byte Block 2000 Byte Block Prof. Dr. W. Riggert
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. Output Port Data In Data Out Input Port Prof. Dr. W. Riggert
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 Data In Data Out Output Port Prof. Dr. W. Riggert
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 Port 1 Data Out to Port 3 Data Out to Port 9 Data In Data Out to Port 2 Prof. Dr. W. Riggert
HOL-Blocking Beispiel Server A Überlastete Verbindung • 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. Datentransfer an Server B Switching Fabric Datentransfer an Server A Server B Nutzer A und B sind an den gleichen Switchport angeschlossen Prof. Dr. W. Riggert
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 Data In Unkritische Daten, geringe Priorität Prof. Dr. W. Riggert
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 0 Gewicht = w = w (w+x+y+z) Queue 1 Gewicht = x = x (w+x+y+z) Queue 2 Gewicht = y = y (w+x+y+z) Queue 3 Gewicht = z = z (w+x+y+z) Prof. Dr. W. Riggert
Weighted Round Robin - Beispiel Output- Schlange Zugewiesene Bandbreite Gewicht WRR Berechnung =(15/(15+13+5+2)) x 100 QoS-0 15 43 Mbps =(13/(15+13+5+2)) x 100 QoS-1 13 37 Mbps =(5/(15+13+5+2)) x 100 QoS-2 5 14 Mbps =(2/(15+13+5+2)) x 100 QoS-3 2 6 Mbps Insgesamt steht eine Bandbreite von 100 Mbps zur Verfügung Prof. Dr. W. Riggert
IP-Verkehr hohe Priorität IP-Verkehr geringe Priorität RSVP- Verkehr WRR Scheduler 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. Unterschiedliche Gewichte bestim- men die QoS-Politik Outputport Prof. Dr. W. Riggert
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. Forwarding oder Routing Tabelle CPU 00-0e1-00-00-00-00 2/3 Switching Fabric Lookup Tabelle Lookup Tabelle Lookup Tabelle Prof. Dr. W. Riggert
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 Tabelle Route Processor A3 Ethernet 1 BB FDDI 2 C1 Ethernet 5 ••• zentraler Routing Cache Switching Fabric Lokaler Route Cache Lokaler Route Cache Prof. Dr. W. Riggert
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 Tabelle Route Processor A3 Ethernet 1 BB Gig E-net 1/0 C1 Fast Ethernet 2/0 ••• Central Routing Cache DA Interface BB FE2/0 SA C1 Switching Fabric Lokaler Route Cache LokalerRoute Cache Prof. Dr. W. Riggert
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
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. FDDI Uplink Module ATM Uplink Module Forwarding Tabelle CPU 00-0e1-00-00-00-00 2/3 Ethernet Switch Module Fast Ethernet Switch Module Prof. Dr. W. Riggert
Nutzer A Nutzer B 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“. Forwarding Tabelle Nutzer A Mod3/Port12 Nutzer B Mod5/Port2 ••• Prof. Dr. W. Riggert
Multicast Sender Multicast Empfänger A Multicast Empfänger B 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 Tabelle Multicast A Mod3/Port12 Mod3/Port12 ••• Prof. Dr. W. Riggert
Module 1 Module 2 Forwarding Tabelle CPU Module 3 00-0e1-00-00-00-00 2/3 Module 4 Module 5 Module 1 Module 2 Module 3 Module 4 Module 5 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. Prof. Dr. W. Riggert
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
Module 1 Module 2 Module 3 Module 4 Module 5 Module 1 Module 2 Module 3 Module 4 Module 5 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 Prof. Dr. W. Riggert
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 6 Module 2 Module 7 Module 3 Module 8 Module 9 Module 4 Module 10 Module 5 Prof. Dr. W. Riggert
Shared Memory - Arbeitsweise CPU 00-0e1-00-00-00-00 2/3 Hiochgeschwindigkeits Switching ASIC für schnelle Switchentscheidung Switching Engine Shared Memory Module 1 Module 3 Module 2 Module 4 Hochgeschwindigkeits-Datentransfer in den Speicher verringert die Blockingwahrscheinlichkeit Großer Pool an dynamisch zuweisbarem Speicher Prof. Dr. W. Riggert
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. Forwarding Tabelle 00-0e1-00-00-00-00 2/3 SwitchingEngine SharedMemory Module 1 Module 3 Module 4 Module 2 Prof. Dr. W. Riggert
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. Multicast Tabelle 00-0e1-00-00-00-00 2/3 SwitchingEngine SharedMemory Module 1 Module 3 Module 4 Module 2 Prof. Dr. W. Riggert
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. Prof. Dr. W. Riggert