AUF DIESER SEITE
Grundlegendes zu virtuellen Ausgabewarteschlangen (VOQs) von CoS
Die herkömmliche Methode der Weiterleitung von Datenverkehr über einen Switch basiert auf der Pufferung des eingehenden Datenverkehrs in Eingabewarteschlangen auf Eingangsschnittstellen, der Weiterleitung des Datenverkehrs über die Switch-Fabric an Ausgabewarteschlangen auf Ausgangsschnittstellen und der anschließenden Pufferung des Datenverkehrs in den Ausgabewarteschlangen, bevor der Datenverkehr an den nächsten Hop übertragen wird. Die herkömmliche Methode, Pakete an einem Eingangsport in die Warteschlange zu stellen, besteht darin, Datenverkehr, der für verschiedene Ausgangsports bestimmt ist, in derselben Eingabewarteschlange (Puffer) zu speichern.
Bei Überlastungen kann der Switch Pakete am Ausgangsport verwerfen, sodass der Switch Ressourcen für den Transport von Datenverkehr über die Switch-Fabric zu einem Ausgangsport aufwenden kann, nur um diesen Datenverkehr zu verwerfen, anstatt ihn weiterzuleiten. Und da Eingabewarteschlangen Datenverkehr speichern, der für verschiedene Ausgangsports bestimmt ist, kann sich eine Überlastung an einem Ausgangsport auf den Datenverkehr an einem anderen Ausgangsport auswirken, eine Bedingung, die als Head-of-Line-Blocking (HOLB) bezeichnet wird.
Die Architektur der virtuellen Ausgabewarteschlange (VOQ) verfolgt einen anderen Ansatz:
Anstelle separater physischer Puffer für Eingabe- und Ausgabewarteschlangen verwendet der Switch die physischen Puffer in der Eingangspipeline jedes PFE-Chips (Packet Forwarding Engine), um den Datenverkehr für jeden Ausgangsport zu speichern. Jede Ausgabewarteschlange an einem Ausgangsport verfügt über Pufferspeicherplatz in jeder Eingangspipeline auf allen PFE-Chips auf dem Switch. Die Zuordnung von Speicherplatz für Eingangspipeline zu Ausgabewarteschlangen erfolgt 1:1, sodass jede Ausgabewarteschlange Pufferspeicher auf jeder Eingangspipeline erhält.
Anstelle einer Eingabewarteschlange, die Datenverkehr enthält, der für mehrere verschiedene Ausgabewarteschlangen bestimmt ist (eine Eins-zu-Viele-Zuordnung), verfügt jede Ausgabewarteschlange über eine dedizierte VOQ, die aus den Eingabepuffern auf jedem Paketweiterleitungschip besteht, die für diese Ausgabewarteschlange reserviert sind (eine 1-zu-1-Zuordnung). Diese Architektur verhindert, dass sich die Kommunikation zwischen zwei beliebigen Ports auf einen anderen Port auswirkt.
Anstatt Datenverkehr in einer physischen Ausgabewarteschlange zu speichern, bis er weitergeleitet werden kann, überträgt eine VOQ den Datenverkehr vom Eingangsport über die Fabric zum Ausgangsport erst, wenn der Ausgangsport über die Ressourcen zum Weiterleiten des Datenverkehrs verfügt.
Ein VOQ ist eine Sammlung von Eingabewarteschlangen (Puffern), die Datenverkehr empfangen und speichern, der für eine Ausgabewarteschlange an einem Ausgangsport bestimmt ist. Jede Ausgabewarteschlange an jedem Ausgangsport verfügt über eine eigene dedizierte VOQ, die aus allen Eingabewarteschlangen besteht, die Datenverkehr an diese Ausgabewarteschlange senden.
VOQ-Architektur
Eine VOQ stellt die Eingangspufferung für eine bestimmte Ausgabewarteschlange dar. Eine eindeutige Puffer-ID identifiziert jede Ausgabewarteschlange auf einem PFE-Chip. Jeder der sechs PFE-Chips verwendet dieselbe eindeutige Puffer-ID für eine bestimmte Ausgabewarteschlange. Der Datenverkehr, der mit einer bestimmten Puffer-ID auf den sechs PFE-Chips gespeichert wird, umfasst den Datenverkehr, der für eine bestimmte Ausgabewarteschlange an einem Port bestimmt ist, und ist die VOQ für diese Ausgabewarteschlange.
Ein Switch mit 72 Ausgangsports mit 8 Ausgabewarteschlangen an jedem Port hat 576 VOQs auf jedem PFE-Chip (72 x 8 = 576). Da der Switch über sechs PFE-Chips verfügt, verfügt er über insgesamt 3.456 VOQs (576 x 6 = 3.456).
Ein VOQ wird auf alle PFE-Chips verteilt, die aktiv Datenverkehr an diese Ausgabewarteschlange senden. Jede Ausgabewarteschlange ist die Summe der gesamten Puffer, die dieser Ausgabewarteschlange (nach ihrer eindeutigen Puffer-ID) über alle PFE-Chips hinweg zugewiesen sind. Die Ausgabewarteschlange selbst ist also virtuell und nicht physisch, obwohl die Ausgabewarteschlange aus physischen Eingabewarteschlangen besteht.
Round-Trip-Zeitpufferung
Obwohl es in Zeiten von Überlastung keine Pufferung der Ausgabewarteschlange gibt (keine Langzeitspeicherung), gibt es einen kleinen physischen Ausgabewarteschlangenpuffer auf den Ausgangslinecards, um die Roundtrip-Zeit für den Datenverkehr zu bewältigen, der die Switch-Fabric vom Eingang zum Ausgang durchläuft. Die Round-Trip-Zeit besteht aus der Zeit, die der Eingangsport benötigt, um Ausgangsportressourcen anzufordern, einen Zuschuss vom Ausgangsport für Ressourcen zu erhalten und die Daten über die Switch-Fabric zu übertragen.
Das heißt, wenn ein Paket am Eingang des Switches nicht verworfen wird und der Switch das Paket über die Fabric an den Ausgangsport weiterleitet, wird das Paket nicht verworfen und an den nächsten Hop weitergeleitet. Alle Paketverwerfungen finden in der Eingangspipeline statt.
Der Switch verfügt über 4 GB externen DRAM, der als Verzögerungsbandbreitenpuffer (DBB) verwendet werden kann. Der DBB stellt Speicher für Eingangsports bereit, bis die Ports Datenverkehr an ausgehende Ports weiterleiten können.
Anfordern und Gewähren von Ausgangsportbandbreite
Wenn Pakete an einem Eingangsport eintreffen, speichert die Eingangspipeline das Paket in der Eingangswarteschlange mit der eindeutigen Puffer-ID der Zielausgabewarteschlange. Der Switch trifft die Entscheidung über die Pufferung, nachdem er die Paketsuche durchgeführt hat. Wenn das Paket zu einer Klasse gehört, für die der Schwellenwert für den maximalen Datenverkehr überschritten wurde, wird das Paket möglicherweise nicht gepuffert und verworfen. So transportieren Sie Pakete über die Switch-Fabric zu Ausgangsports:
Der PFE-Anforderungsplaner für Eingangslinecards sendet eine Anforderung an den PFE-Gewährungsplaner für Ausgangslinecards, um den Ausgangs-PFE darüber zu informieren, dass Daten für die Übertragung verfügbar sind.
Wenn Ausgangsbandbreite verfügbar ist, antwortet der Zuweisungsplaner für ausgehende Linecards, indem er eine Bandbreitenzuweisung an die PFE der Eingangslinecard sendet.
Die Eingangslinecard-PFE empfängt die Zuweisung von der Ausgangslinecard-PFE und überträgt die Daten an die Ausgangslinecard.
Eingangspakete verbleiben in der VOQ in den Eingangswarteschlangen des Eingangsports, bis die Ausgabewarteschlange bereit ist, weiteren Datenverkehr zu akzeptieren und weiterzuleiten.
Unter den meisten Bedingungen ist die Switch-Fabric schnell genug, um für ausgehende CoS-Richtlinien (Class-of-Service) transparent zu sein, sodass der Prozess der Weiterleitung des Datenverkehrs von der Eingangs-Pipeline über die Switch-Fabric zu den Ausgangsports keine Auswirkungen auf die konfigurierten CoS-Richtlinien für den Datenverkehr hat. Die Fabric wirkt sich nur dann auf die CoS-Richtlinie aus, wenn ein Fabric-Fehler vorliegt oder wenn es ein Problem mit der Portfairness gibt.
Wenn ein Paket über denselben PFE-Chip ein- und ausgeht (lokales Switching), durchläuft das Paket die Switch-Fabric nicht. Der Switch verwendet jedoch denselben Anforderungs- und Zuteilungsmechanismus, um ausgehende Bandbreite zu empfangen wie Pakete, die die Fabric durchqueren. Daher werden lokal vermittelte Pakete und Pakete, die nach dem Durchlaufen der Switch-Fabric bei einem PFE-Chip ankommen, fair behandelt, wenn der Datenverkehr um dieselbe Ausgabewarteschlange konkurriert.
VOQ-Vorteile
Die VOQ-Architektur bietet zwei wesentliche Vorteile:
Head-of-Line-Blockierung eliminieren
Die VOQ-Architektur eliminiert Probleme mit dem Head-of-Line-Blocking (HOLB). Bei Nicht-VOQ-Switches tritt HOLB auf, wenn eine Überlastung an einem Ausgangsport einen anderen Ausgangsport betrifft, der nicht überlastet ist. HOLB tritt auf, wenn sich der überlastete und der nicht überlastete Port dieselbe Eingabewarteschlange auf einer Eingangsschnittstelle teilen.
Ein Beispiel für ein HOLB-Szenario ist ein Switch, bei dem Datenströme in einen Eingangsport (IP-1) eintreten, die für zwei verschiedene Ausgangsports (EP-2 und EP-3) bestimmt sind:
Am Ausgangsport EP-2 kommt es zu einer Überlastung. Es gibt keine Überlastung am Ausgangsport EP-3, wie in Abbildung 1 dargestellt.
Abbildung 1: Überlastung auf EP-2
Der Ausgangsport EP-2 sendet ein Gegendrucksignal an den Eingangsport IP-1, wie in Abbildung 2 dargestellt.
Abbildung 2: EP-2 Gegendruck IP-1
Das Rückstausignal bewirkt, dass der Eingangsport IP-1 das Senden von Datenverkehr stoppt und den Datenverkehr puffert, bis er ein Signal zur Fortsetzung des Sendevorgangs empfängt, wie in Abbildung 3 dargestellt. Datenverkehr, der am Eingangsport IP-1 ankommt, der für den nicht überlasteten Ausgangsport EP-3 bestimmt ist, wird zusammen mit dem Datenverkehr, der für den überlasteten Port EP-2 bestimmt ist, gepuffert, anstatt an Port EP-3 weitergeleitet zu werden.
Abbildung 3: Der Gegendruck von EP-2 führt dazu, dass IP-1 Datenverkehr puffert, anstatt Datenverkehr zu senden, was sich auf EP-3
auswirkt
Der Eingangsport IP-1 überträgt den Datenverkehr nur dann an den nicht überlasteten Ausgangsport EP-3, wenn der Ausgangsport EP-2 so weit frei ist, dass der Eingangsport IP-1 das Senden des Datenverkehrs fortsetzen kann, wie in Abbildung 4 dargestellt.
Abbildung 4: Die Überlastung auf EP-2 wird behoben, sodass IP-1 das Senden von Datenverkehr an beide Ausgangsports
fortsetzen kann
Auf diese Weise wirkt sich der überlastete Ausgangsport EP-2 negativ auf den nicht überlasteten Ausgangsport EP-3 aus, da sich beide Ausgangsports dieselbe Eingabewarteschlange am Eingangsport IP-1 teilen.
Die VOQ-Architektur vermeidet HOLB, indem sie für jede Ausgabewarteschlange auf jeder Schnittstelle eine andere dedizierte virtuelle Warteschlange erstellt, wie in Abbildung 5 dargestellt.
Da sich verschiedene Ausgangswarteschlangen nicht dieselbe Eingabewarteschlange teilen, kann sich eine überlastete Ausgangswarteschlange an einem Port nicht auf eine Ausgangswarteschlange an einem anderen Port auswirken, wie in Abbildung 6 dargestellt. (Aus demselben Grund kann sich eine überlastete Ausgangswarteschlange an einem Port nicht auf eine andere Ausgangswarteschlange am selben Port auswirken – jede Ausgabewarteschlange verfügt über eine eigene dedizierte virtuelle Ausgabewarteschlange, die aus Eingangsschnittstellen-Eingabewarteschlangen besteht.)
aus
Durch die Warteschlangenpufferung an der Eingangsschnittstelle wird sichergestellt, dass der Switch Datenverkehr nur dann über die Fabric an eine Ausgangswarteschlange sendet, wenn diese Ausgangswarteschlange bereit ist, diesen Datenverkehr zu empfangen. Wenn die Ausgangswarteschlange noch nicht bereit ist, Datenverkehr zu empfangen, verbleibt der Datenverkehr an der Eingangsschnittstelle.
Steigern Sie die Fabric-Effizienz und -Auslastung
Die traditionelle Ausgabewarteschlangenarchitektur weist einige inhärente Ineffizienzen auf, die durch die VOQ-Architektur behoben werden.
Paketpufferung: Die herkömmliche Warteschlangenarchitektur puffert jedes Paket zweimal im Langzeit-DRAM-Speicher, einmal an der Eingangsschnittstelle und einmal an der Ausgangsschnittstelle. Die VOQ-Architektur puffert jedes Paket nur einmal im Langzeit-DRAM-Speicher, und zwar an der Eingangsschnittstelle. Die Switch-Fabric ist schnell genug, um für ausgehende CoS-Richtlinien transparent zu sein. Anstatt Pakete ein zweites Mal an der Ausgangsschnittstelle zu puffern, kann der Switch den Datenverkehr mit einer Geschwindigkeit weiterleiten, die keine tiefen Ausgangspuffer erfordert, ohne die konfigurierten Ausgangs-CoS-Richtlinien (Scheduling) zu beeinträchtigen.
Ressourcenverbrauch—Die herkömmliche Warteschlangenarchitektur sendet Pakete von der Eingangsschnittstelle (Puffer) über die Switch-Fabric an die Ausgabewarteschlange der Ausgangsschnittstelle (Puffer). An der Ausgangsschnittstelle können Pakete verworfen werden, obwohl der Switch Ressourcen aufgewendet hat, um die Pakete über die Fabric zu transportieren und sie in der Ausgangswarteschlange zu speichern. Die VOQ-Architektur sendet keine Pakete über die Fabric an die Ausgangsschnittstelle, bis die Ausgangsschnittstelle für die Übertragung des Datenverkehrs bereit ist. Dies erhöht die Systemauslastung, da keine Ressourcen für den Transport und die Speicherung von Paketen verschwendet werden, die später verworfen werden.
Unabhängig von der VOQ-Architektur bietet die Switching-Architektur von Juniper Networks auch eine bessere Fabric-Auslastung, da der Switch Pakete in Zellen umwandelt. Die Zellen haben eine vorhersehbare Größe, die es dem Switch ermöglicht, die Zellen gleichmäßig über die Fabric-Verbindungen zu sprühen und die Fabric-Verbindungen besser auszunutzen. Pakete sind sehr unterschiedlich groß und die Paketgröße ist nicht vorhersehbar. Paketbasierte Fabrics können aufgrund der Schwankungen und Unvorhersehbarkeit der Paketgrößen nicht mehr als 65 bis 70 Prozent Auslastung erzielen. Die zellbasierten Fabrics von Juniper Networks ermöglichen eine Fabric-Auslastungsrate von fast 95 Prozent, was auf die Vorhersagbarkeit und Kontrolle der Zellgröße zurückzuführen ist.