-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft das Gebiet der Netzwerksteuerung,
gemäß der Pakete,
die ein paketvermittelndes Netzwerk durchlaufen, von Netzwerkprozessormitteln
analysiert werden, und insbesondere ein Verfahren und ein System
zur dynamischen Verteilung von Paketströmen zwischen mehreren Netzwerkprozessormitteln
sowie zum Neukombinieren von Paketströmen nach der Verarbeitung unter
Beibehaltung der Paketreihenfolge – auch bei Datenverkehr, bei
dem ein einzelner Strom die Leistungsfähigkeit eines einzelnen Netzwerkprozessormittels übersteigt.
-
Hintergrund
der Erfindung
-
In
Netzwerksteuerungssystemen werden Pakete, die ein paketvermittelndes
Netzwerk durchlaufen, im Allgemeinen von Netzwerkprozessoren analysiert,
die u. a. Funktionen wie Routing, Segmentierung und Neuerstellung,
Filterung und Virusprüfungen
auf die Pakete anwenden, um Leistung, Sicherheit und Servicequalität zu erhöhen. Aufgrund
der zunehmend komplexeren Operationen, die Netzwerkprozessoren unter
Umständen
an Paketen ausführen müssen, und
aufgrund der in Relation zur Erhöhung der
Verarbeitungsleistung von Netzwerkprozessoren wachsenden Bandbreite
und Paketübertragungsrate, ist
es bei Vorrichtungen und Verfahren jedoch entscheidend, dass sie
die Gesamtverarbeitungsleistung von Netzwerkprozessoren entsprechend
erhöhen.
-
Ein
allgemeines Verfahren, mit dem sich eine höhere Verarbeitungsleistung
erzielen lässt,
als mit einem einzelnen Prozessor oder Netzwerkprozessor erreicht
werden kann, besteht in der Parallelverarbeitung, bei der Prozessoren
parallel betrieben werden. Diese Multiprozessoren können als
ein einzelner Netzwerkprozessor mit höherer Verarbeitungsgeschwindigkeit
aufgefasst werden.
-
Im
Kontext der Netzwerksteuerung wurde die Parallelverarbeitung gemäß dem Stand
der Technik als Lastausgleich oder Kanal-Striping implementiert. Dem Stand der
Technik entsprechendes Kanal-Striping (auch als Lastteilung oder
inverses Multiplexing bezeichnet) wird bei Leistungsengpässen oder
einfach wegen des Preis-Leistungs-Verhältnisses häufig im Netzbetrieb genutzt.
In solch einem Schema wird ein zyklischer Algorithmus (Round-Robin-Algorithmus) oder
ein Lastteilungsalgorithmus verwendet, der die zu einem Paketstrom
gehörenden Pakete
auf mehrere Kanäle
verteilt. Ein großes
Problem besteht bei dieser Verteilung darin, da es wegen der unterschiedlichen
Verzögerungen
der verschiedenen Kanäle
und aufgrund von unterschiedlichen Paketgrößen möglich ist, dass die Pakete
falsch sortiert werden. Für
dieses Problem der Falschsortierung gibt es nach dem Stand der Technik
drei Lösungen:
- i) Jeder Strom bleibt einem einzigen Kanal
zugeordnet und es wird hingenommen, dass ein einzelner Strom nicht
mehr Bandbreite in Anspruch nehmen kann als jeder Kanal zur Verfügung stellen
kann.
- ii) Die falsch sortierten Pakete werden nach ihrem Empfang neu
sortiert, und die resultierende ungenutzte Bandbreite für die Verarbeitung
wird hingenommen.
- iii) Die Pakete werden in feste Übertragungseinheiten aufgeteilt,
die von den Netzwerkprozessormitteln in einer vorhersagbaren Zeitspanne
verarbeitet werden können.
-
Der
dynamische Lastausgleich kommt hingegen allgemein auf dem Gebiet
der Parallelverarbeitung zur Anwendung und bezieht sich auf drei
allgemeine Verarbeitungseinheiten: Berechnungen, Tasks und Daten.
In diesen Fällen
wird durch den dynamischen Lastausgleich versucht, die Zuordnung von
Berechnungen, Tasks und Daten zu Computern zu ermitteln, sodass
zur Verkürzung
der Laufzeit und zur Steigerung der allgemeinen Effizienz einer
Berechnung jedem Computer ungefähr
die gleiche Arbeitsmenge zugeordnet ist.
-
Die
an die IBM Corporation abgetretene und am 18. April 2000 beim Amerikanischen
Patent- und Markenamt (USPTO) eingereichte US-Patentschrift 6,768,716
beschreibt ein System für
den Echtzeit-Lastausgleich zum Verteilen einer über eine Hochgeschwindigkeitsleitung
ankommenden Datenpaketfolge auf eine Vielzahl von Verarbeitungsmitteln,
deren Betriebskapazität
jeweils unter der Kapazität
der Hochgeschwindigkeitsleitung liegt. Das System umfasst Parsermittel,
die in der Lage sind, aus den ankommenden Paketen eine konfigurierbare Gruppe
von Klassifizierungsbits zu extrahieren, um diese Komprimierungsmitteln
bereitzustellen. Die Komprimierungsmittel sind in der Lage, ein
Bitmuster der Länge
K auf ein Bitmuster der Länge
L zu reduzieren, die einen Bruchteil von K darstellt. Dieses System
umfasst ferner eine Pipelinesperre, die ankommende Pakete so lange
verzögert,
bis eine Entscheidung über
den Lastausgleich gefallen ist, sowie einen inversen Demultiplexer
für den
Empfang einer als Selektor von den Komprimierungsmitteln ausgegebenen
Port-ID und für
die Weiterleitung der im Pipelinesystem verarbeiteten Pakete an
den entsprechenden Ausgangsport.
-
Das
von BUX W ET AL verfasste Dokument („TECHNOLOGIES AND BUILDING
BLOCKS FOR FAST PACKET FORWARDING", IEEE COMMUNICATIONS MAGAZINE, IEEE
SERVICE CENTER, PISCATAWAY, N.J., USA, Bd. 39 Nr. 1 vom 1. Januar 2001
(2001-01-01), Seiten 70-77, XP001006836 ISSN: 0163-6804) beschreibt
ein Verfahren und eine Lastausgleichseinrichtung zur geordneten
dynamischen Verteilung der über
eine Hochgeschwindigkeitsleitung ankommenden Paketströme zwischen Netzwerkprozessormitteln,
die das Parsen der Kopfdaten eines ankommenden Pakets zum Extrahieren einer
ID und das Analysieren von Netzwerkprozessormitteln für das Laden
und Festlegen eines aktuellen Netzwerkprozessormittels und das Weiterleiten der
ankommenden Pakete an das aktuelle Netzwerkprozessormittel umfassen.
-
Das
Verfahren und die Lastausgleichseinrichtung; die im Dokument WO
99 07180A (NOKIA TELECOMMUNICATIONS OY; HEIMAN PETRI (FI)) vom 11.
Februar 1999 (1999-02-11) vorgeschlagen werden, ordnen jedem Paket
eine Folgekennung zu und suchen anschließend auf zyklische Weise (Round-Robin-Verfahren)
in den Prozessorpuffern das Paket mit der nächsten Folgenummer.
-
Es
besteht jedoch weiterhin ein Bedarf, die korrekte Abfolge der Ströme insbesondere
bei einem Datenverkehr beizubehalten, bei dem ein einzelner Strom
die Leistungsfähigkeit
eines einzelnen Netzwerkprozessors übersteigt. Die geordnete Neukombinierung
von Paketströmen
ist einfach, wenn die Pakete modifiziert werden können. Ein
naheliegendes Verfahren bestünde
in der Kennzeichnung jedes ankommenden Pakets mit einer Folgenummer
und darin, ausschließlich
das Abgehen von Ausgabepaketen in nicht sequenzieller Reihenfolge
zu verhindern. Der Nachteil der Paketmodifizierung besteht jedoch darin,
dass die einzelnen Netzwerkprozessoren in einer modular aufgebauten
Konfiguration anders konfiguriert werden müssen als in einer Konfiguration
mit nur einem einzigen Netzwerkprozessor, damit die modifizierten
Pakete korrekt verarbeitet werden.
-
Wenn
angesichts der aktuellen technischen Leistungsfähigkeit von Netzwerkprozessormitteln
ein solcher Bedarf besteht, ist auch die Wiederverwendung früherer Generationen
von Netzwerkprozessormitteln möglich,
indem ihre Leistungen zum Erzielen der gewünschten Leistung gebündelt werden,
um dadurch die Kosten für
solche Netzwerkprozessormittel zu optimieren.
-
Überblick über die
Erfindung
-
Eine
wesentliche Aufgabe der vorliegenden Erfindung besteht folglich
darin, die dem Stand der Technik entspringenden und oben beschriebenen Nachteile
auszugleichen.
-
Eine
weitere Aufgabe der Erfindung besteht in der Bereitstellung eines
Verfahrens und von Systemen zur dynamischen Verteilung von Paketströmen zwischen
mehreren Netzwerkprozessormitteln und zur Neukombinierung von Paketströmen nach
der Verarbeitung, wobei gleichzeitig die Paketreihenfolge selbst
bei einem Datenverkehr beibehalten wird, bei dem ein einzelner Strom
die Leistungsfähigkeit
eines einzelnen Netzwerkprozessormittels übersteigt, und wobei weder
die Pakete noch der Betrieb der einzelnen Netzwerkprozessormittel
modifiziert wird.
-
Eine
weitere Aufgabe der Erfindung besteht in der Bereitstellung eines
Verfahrens und von Systemen zur dynamischen Verteilung von Paketströmen zwischen
mehreren Netzwerkprozessormitteln mit unterschiedlichen Verarbeitungsleistungen
und zur Neukombinierung von Paketströmen nach der Verarbeitung,
wobei gleichzeitig die Paketreihenfolge selbst bei einem Datenverkehr
beibehalten wird, bei dem ein einzelner Strom die Leistungsfähigkeit
eines einzelnen Netzwerkprozessormittels übersteigt.
-
Die
Erfüllung
dieser und anderer zugehöriger Aufgaben
wird erreicht durch ein Verfahren für die geordnete dynamische
Verteilung von über
Hochgeschwindigkeitsleitungen ankommenden Paketströmen zwischen
Netzwerkprozessormitteln, das folgende Schritte umfasst:
- – Parsen
der Kopfdaten eines ankommenden Pakets zum Extrahieren einer Paketstrom-ID;
- – Erstellen
eines Lastausgleichsprotokolls, sofern dieses noch nicht existiert,
das der Paketstrom-ID zugeordnet ist;
- – Analysieren
von Netzwerkprozessormitteln für das
Laden und Festlegen von aktuellen Netzwerkprozessormitteln;
– wenn sich
die ID der aktuellen Netzwerkprozessormittel von der ID der Netzwerkprozessormittel unterscheidet,
die das vorherige Paket desselben Paketstroms verarbeitet haben,
Speichern der ID der aktuellen Netzwerkprozessormittel im Lastausgleichsprotokoll
und Festlegen des Werts Eins für
die im Lastausgleichsprotokoll angegebene Anzahl der von den aktuellen
Netzwerkprozessormitteln verarbeiteten Pakete;
– andernfalls,
wenn die ID der aktuellen Netzwerkprozessormittel mit der ID der
Netzwerkprozessormittel identisch ist, die das vorherige Paket desselben
Paketstroms verarbeitet haben, Erhöhen des Werts für die im
Lastausgleichsprotokoll angegebene Anzahl der von den aktuellen
Netzwerkprozessormitteln verarbeiteten Pakete; und
- – Weiterleiten
des ankommenden Pakets an die aktuellen Netzwerkprozessormittel,
und
durch ein Verfahren zur Neukombinierung der gemäß dem oben beschriebenen Verfahren
von einer Vielzahl von Netzwerkprozessormitteln verarbeiteten Pakete,
das folgende Schritte umfasst:
- – Parsen
der Kopfdaten eines verarbeiteten Pakets zum Extrahieren einer Paketstrom-ID;
- – Abrufen
der ID der ältesten
Netzwerkprozessormittel und der zugeordneten Anzahl verarbeiteter Pakete
gemäß der Paketstrom-ID aus dem Lastausgleichsprotokoll;
– wurde
das verarbeitete Paket nicht von den ältesten Netzwerkprozessormitteln
verarbeitet, wird es in einem Paketspeicher gespeichert;
– wurde
andernfalls das verarbeitete Paket von den ältesten Netzwerkprozessormitteln
verarbeitet, wird das verarbeitete Paket an die Hochgeschwindigkeitsleitung
gesendet, die zugeordnete Anzahl verarbeiteter Pakete wird verringert,
und wenn die zugeordnete Anzahl verarbeiteter Pakete den Wert Null
erreicht, wird die ID der ältesten Netzwerkprozessormittel
in die nächste
im Lastausgleichsprotokoll enthaltene ID geändert, und die entsprechend
der neuen ID der ältesten
Netzwerkprozessormittel im Paketspeicher aufgereihten Pakete können an
die Hochgeschwindigkeitsleitung gesendet und anschließend aus
dem Paketspeicher entfernt werden.
-
Die
Aufgabe der Erfindung wird auch durch eine Einrichtung für den geordneten
Lastausgleich nach Anspruch 10 erfüllt.
-
Weitere
Vorteile der vorliegenden Erfindung werden für den Fachmann bei der Prüfung der
Zeichnungen und der detaillierten Beschreibung ersichtlich. Alle
zusätzlichen
Vorteile sollen Bestandteil der vorliegenden Patentanmeldung sein.
-
Kurzbeschreibung
der Zeichnungen
-
1 stellt
ein Netzwerkprozessorsystem dar, das die Nutzung einer erfindungsgemäßen Einrichtung
für den
geordneten Lastausgleich veranschaulicht.
-
2 veranschaulicht
eine Beispielarchitektur des in der Erfindung beschriebenen Systems
zur dynamischen Verteilung von Paketströmen zwischen Netzwerkprozessormitteln.
-
3 veranschaulicht
den Inhalt des Speichers für
das Lastausgleichsprotokoll.
-
4 stellt
ein Netzwerkvermittlungssystem dar, das Verarbeitungssysteme umfasst,
die auf Lastausgleichseinrichtungen gemäß der Erfindung basieren.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsart
-
1 stellt
ein Netzwerkprozessorsystem dar, das die Nutzung einer erfindungsgemäßen Einrichtung
für den
geordneten Lastausgleich veranschaulicht, die der Verteilung der über eine
aggregierte Hochgeschwindigkeitsleitung ankommenden Datenflüsse auf
eine Vielzahl von unabhängigen Netzwerkprozessoreinheiten
dient. In diesem Beispiel umfasst das Netzwerkprozessorsystem eine
erfindungsgemäße Einrichtung 100 für den geordneten Lastausgleich
und vier unabhängige
Netzwerkprozessoren A bis D, auf die unter der Kennzeichnung 110-1 bis 110-4 Bezug
genommen wird. Es versteht sich, dass die Einrichtung 100 für den geordneten Lastausgleich
mit mehr oder weniger als vier Netzwerkprozessoren verbunden sein
kann, und dass das in diesem Dokument beschriebene Systemschema
zur Veranschaulichung dient. Eine Hochgeschwindigkeitsleitung, die
aus Eingangs- und Ausgangsports (allgemein durch die Referenznummern 120 bzw. 130 gekennzeichnet)
besteht, sendet Paketströme
an die Einrichtung 100 für den geordneten Lastausgleich
bzw. empfängt
Paketströme
von dieser, um Daten mit einem Netzwerk oder einer Netzwerkeinheit,
wie z. B. einer Vermittlungsstruktur, auszutauschen, die zum besseren
Verständnis
nicht dargestellt ist. Die Eingangs- und Ausgangsports 120-i bzw. 130-j (i
=1 , ..., m, j = 1, ..., n) können ähnliche oder
unterschiedliche Datentypen verarbeiten. Gleichermaßen können die
Eingangs- und Ausgangsports 120-i bzw. 130-j je
nach angeforderter Datenverarbeitung, z. B. Weiterleiten oder Filtern,
mit unterschiedlichen Netzwerktypen oder Netzwerkeinheiten verbunden
sein. Die Anzahl der Eingangsports 120 kann der Anzahl
der Ausgangsports 130 entsprechen (n = m) oder von dieser
abweichen (n ≠ m).
Das System umfasst außerdem
Verbindungen 140-k und 150-k (k = 1, ..., 4) für den Austausch
von Paketen zwischen der Einrichtung 100 für den geordneten Lastausgleich
und dem unabhängigen
Netzwerkprozessor k.
-
Das
in 1 dargestellte Netzwerkprozessorsystem ermöglicht es,
die über
Hochgeschwindigkeitsleitungen ankommenden Paketströme durch
unabhängige
Netzwerkprozessoren zu verarbeiten, deren Verarbeitungsraten unter
der Paketübertragungsrate
der Hochgeschwindigkeitsleitung liegen. Zu diesem Zweck analysiert
die Einrichtung 100 für
den geordneten Lastausgleich die ankommenden Paketströme und verteilt
Pakete dynamisch auf die angeschlossenen unabhängigen Netzwerkprozessoren. Nach
ihrer Verarbeitung werden die Pakete in der Einrichtung 100 für den geordneten
Lastausgleich zur Rücksendung
an die Hochgeschwindigkeitsleitung neu kombiniert, wobei die Sortierung
aller Paketströme
beibehalten wird.
-
Gemäß dem Verfahren
der Erfindung wird jedes ankommende Paket zur Bestimmung der entsprechenden
Paketstrom-ID analysiert, und Netzwerkprozessormittel werden zugewiesen,
um das ankommende Paket gemäß der Arbeitslast
der Netzwerkprozessormittel zu verarbeiten. Pro Strom wird ein Lastausgleichsprotokoll
erstellt, um die Abfolge der verwendeten Netzwerkprozessormittel
und die entsprechende Anzahl der verarbeiteten Pakete zu speichern.
Werden die von Netzwerkprozessormitteln verarbeiteten Pakete an
die Hochgeschwindigkeitsleitung zurückgesendet, werden die ID dieser Netzwerkprozessormittel
und die zugeordnete Anzahl der verarbeiteten Pakete aus dem Lastausgleichsprotokoll
entfernt. Der Algorithmus für
die Verarbeitung der ankommenden Daten umfasst daher folgende Schritte:
- – Parsen
der Kopfdaten eines ankommenden Pakets zum Extrahieren einer Paketstrom-ID;
- – Anwenden
des Hashverfahrens auf die extrahierte Paketstrom-ID zum Generieren
einer anderen ID, die als „Flow-Bucket-ID" bezeichnet wird;
- – Bestimmen
der ID des aktuellen Netzwerkprozessors durch Analysieren der Arbeitslast
von Netzwerkprozessormitteln;
– wenn die ID des aktuellen
Netzwerkprozessors mit der ID des Netzwerkprozessors identisch ist, der
das vorherige Paket desselben Paketstroms verarbeitet hat, Erhöhen des
Werts für
die im Speicher für
das Lastausgleichsprotokoll aufgezeichnete Anzahl der von den aktuellen
Netzwerkprozessormitteln verarbeiteten Pakete;
– wenn sich
die ID des aktuellen Netzwerkprozessors von der ID des Netzwerkprozessors
unterscheidet, der das vorherige Paket desselben Paketstroms verarbeitet
hat, Speichern der ID des aktuellen Netzwerkprozessors im Speicher
für das
Lastausgleichsprotokoll und Festlegen des Werts Eins für die Anzahl
der von den aktuellen Netzwerkprozessormitteln verarbeiteten Pakete; und
- – Weiterleiten
des ankommenden Pakets an die aktuellen Netzwerkprozessormittel.
-
Nach
der Verarbeitung der ankommenden Pakete müssen diese vor ihrer Rücksendung
an die Hochgeschwindigkeitsleitung neu kombiniert werden. Daher
wird jedes verarbeitete Paket zur Bestimmung der entsprechenden
Paketstrom-ID analysiert, und das entsprechende Lastausgleichsprotokoll
wird für
die Einhaltung der Paketreihenfolge herangezogen. Verarbeitete Pakete
können
gepuffert werden, wenn ältere
Pakete desselben Stroms noch nicht verarbeitet wurden. Nach dem
Zurücksenden
der Pakete an die Hochgeschwindigkeitsleitung wird das Lastausgleichsprotokoll
aktualisiert, und der Puffer wird freigegeben. Der Algorithmus für die Handhabung der
verarbeiteten Daten umfasst folgende Schritte:
- – Parsen
der Kopfdaten eines verarbeiteten Pakets zum Extrahieren einer Paketstrom-ID;
- – Anwenden
des Hashverfahrens auf die extrahierte Paketstrom-ID zum Generieren
der entsprechenden „Flow-Bucket-ID";
- – Abrufen
der ID der ältesten
Netzwerkprozessormittel und der zugeordneten Anzahl verarbeiteter Pakete
entsprechend der Flow-Bucket-ID aus dem Speicher für das Lastausgleichsprotokoll;
– wurde
das verarbeitete Paket nicht von den ältesten Netzwerkprozessormitteln
verarbeitet, die für
seine Flow-Bucket-ID
aufgezeichnet wurden, wird es in einem Paketspeicher gespeichert;
– wurde
andernfalls das Paket von den ältesten Netzwerkprozessormitteln
verarbeitet, wird es an die Hochgeschwindigkeitsleitung gesendet,
die zugeordnete Anzahl verarbeiteter Pakete wird verringert, und
wenn die zugeordnete Anzahl verarbeiteter Pakete den Wert Null erreicht,
wird die ID der ältesten
Netzwerkprozessormittel in die nächste
im Lastausgleichsprotokoll enthaltene ID geändert, und die entsprechend
der neuen ID der ältesten
Netzwerkprozessormittel im Paketspeicher aufgereihten Pakete können an
die Hochgeschwindigkeitsleitung gesendet und anschließend aus
dem Paketspeicher entfernt werden.
-
2 veranschaulicht
die Architektur einer Einrichtung 100 für den geordneten Lastausgleich zum
dynamischen Verteilen von Paketströmen auf Netzwerkprozessormittel
gemäß dem oben beschriebenen
Verfahren. Die Einrichtung 100 für den geordneten Lastausgleich
umfasst eine Hochgeschwindigkeitsleitung, die aus Eingangs- und
Ausgangsports 120-i (i = 1, ..., m) bzw. 130-j (j = 1,
..., n) und Verbindungen 140-1 bis 140-4 sowie 150-1 bis 150-4 besteht,
um Pakete an Netzwerkprozessoren 110-1 bis 110-4 zu
senden bzw. von diesen zu empfangen. Es versteht sich wiederum,
dass die Einrichtung 100 für den geordneten Lastausgleich
mit mehr oder weniger als vier Netzwerkprozessoren verbunden sein
kann, und dass die in diesem Dokument beschriebene Beispielimplementierung
zur Veranschaulichung dient.
-
Die
Empfangsseite der Einrichtung 100 für den geordneten Lastausgleich
besteht aus einer Zeitmultiplexeinheit 200 (Time Division
Multiplex, TDM), einer Parsereinheit 205 zum Parsen von
Kopfdaten, einer Hashfunktionseinheit 210, einem Speicher 215 für das Lastausgleichsprotokoll,
einer Demultiplexereinheit 220, einer Pipelineeinheit 225,
FIFO-Speichereinheiten 230-1 bis 230-4 und einer
Einheit 235 zur Bestimmung des aktuellen Netzwerkprozessors.
An den Eingangsports 120 der Hochgeschwindigkeitsleitung
ankommende Pakete werden in der TDM-Einheit 200 gemäß dem standardmäßigen TDM-Algorithmus
neu kombiniert und anschließend
von der Einrichtung 100 für den geordneten Lastausgleich geprüft. Abhängig vom
Pakettyp, vom Strom, dem das Paket angehört, und von der Größe der aktuellen Arbeitslast
an den einzelnen Netzwerkprozessoren 110-1 bis 110-4 wird
jedes Paket an einen der Netzwerkprozessoren 110-1 bis 110-4 weitergeleitet.
Die Kopfdaten ankommender Pakete werden in der Parsereinheit 205 geparst,
um Paketstrom-IDs zu extrahieren, die an die Hashfunktionseinheit 210 gesendet werden,
wo durch das Anwenden des Hashverfahrens auf die Paketstrom-IDs
andere IDs generiert werden, die als Flow-Bucket-IDs bezeichnet
werden. Die Hashfunktionseinheit 210 stellt sicher, dass
die zum gleichen Strom gehörenden
Pakete durch die gleiche Flow-Bucket-ID gekennzeichnet sind. Im
Allgemeinen wird die Hashfunktion so konfiguriert, dass die Anzahl
der Flow-Bucket-IDs deutlich unter der Anzahl der möglichen
Paketstrom-IDs liegt, aber dies stellt keine Anforderung der Erfindung
dar.
-
Die
Parsereinheit 205 muss mit Blick auf die Anzahl und die
Typen der extrahierten Paketstrom-IDs flexibel sein und eine umfassende
Anwendbarkeit verschiedener Protokolle sicherstellen. Eine bevorzugte
Ausführungsart
der Parsereinheit 205 ist ein rekonfigurierbarer endlicher
Automat (Finite State Machine).
-
Flow-Bucket-IDs
werden als Indizes im Speicher 215 für das Lastausgleichsprotokoll
verwendet, in dem eine ID des aktuellen Netzwerkprozessors dem aktuellen
Paket zugewiesen wird. Die IDs aller Netzwerkprozessoren, die Pakete
desselben Stroms verarbeitet haben, und die zugeordnete Anzahl verarbeiteter
Pakete wird in der Reihenfolge der Verarbeitungszeit zusammen mit
dem zugeordneten Flow-Bucket im Speicher 215 für das Lastausgleichsprotokoll
gespeichert.
-
3 veranschaulicht
den Inhalt des Speichers 215 für das Lastausgleichsprotokoll,
in dem jede Tabellenzeile den Verarbeitungsverlauf eines Stroms
darstellt. In der ersten Spalte 300 werden die Paketstrom-IDs
aufgeführt,
die, wie oben beschrieben, mithilfe der Flow-Buckets ermittelt wurden,
während
die anderen Spalten die Netzwerkprozessor-IDs und die zugeordnete
Anzahl verarbeiteter Pakete enthalten, die durch 305-i bzw. 310-i gekennzeichnet sind.
Folglich enthält
die Spalte 305-1 die ID des letzten aktuellen Netzwerkprozessors
für jeden
aktiven Strom und Spalte 310-1 die zugeordnete Anzahl verarbeiteter
Pakete, Spalte 305-2 die ID des vorherigen aktuellen Netzwerkprozessors
für jeden
aktiven Strom und Spalte 310-2 die zugeordnete Anzahl verarbeiteter
Pakete usw. Ein aktiver Flow-Bucket ist als Flow-Bucket definiert,
aus dem mindestens ein Paket nicht an den Ausgangsport 130 zurückgesendet
wurde. In dem in 3 dargestellten Beispiel werden 125
Pakete, die zu einem Strom eines Flow-Buckets mit der ID 6302 gehören, vom
aktuellen Netzwerkprozessor mit der ID 1 verarbeitet, und 265 Pakete
dieses Flow-Buckets wurden vorher vom Netzwerkprozessor mit der
ID 2 verarbeitet.
-
Aus 2 geht
hervor, dass die ID des aktuellen Netzwerkprozessors an die Demultiplexereinheit 220 gesendet
wird, sodass das aktuell empfangene Paket, das in der Pipelineeinheit 225 verzögert wird,
entsprechend der ID des aktuellen Netzwerkprozessors im FIFO-Speicher
(230-1 bis 230-4) gespeichert wird, aus dem es
an den aktuellen Netzwerkprozessor gesendet wird. Die Einheit 235 zur Bestimmung
des aktuellen Netzwerkprozessors legt den aktuellen Netzwerkprozessor
fest, indem sie die Aktivität
der Netzwerkprozessoren 110-1 bis 110-4 durch
eine Belastungsanalyse der FIFO-Speicher 230-1 bis 230-4 mithilfe
von standardmäßigen statistischen
Techniken ermittelt. Ein Netzwerkprozessor kann beispielsweise immer
dann als aktueller Netzwerkprozessor festgelegt werden, wenn der
Füllstand
des ihm zugeordneten FIFO-Speichers unter einem vorbestimmten Schwellenwert
liegt. Ein weiteres Beispiel für
die Bestimmung des aktuellen Netzwerkprozessors besteht im Auswählen des
Netzwerkprozessors, dessen zugeordneter FIFO-Speicher demnächst entleert
sein wird. In diesem Fall schaltet die Einrichtung für den geordneten
Lastausgleich nicht sehr häufig
zwischen den Netzwerkprozessoren um. Die Auswahl des aktuellen Netzwerkprozessors
lässt sich
auch durch die Verwendung von Paketstromprotokollen optimieren.
-
Es
gilt zu beachten, dass die Einrichtung 100 für den geordneten
Lastausgleich ohne jede Modifikation mit Netzwerkprozessoren verbunden
werden kann, die über
unterschiedliche Verarbeitungsleistungen verfügen, denn selbst wenn ein Netzwerkprozessor
mit einer höheren
Verarbeitungsleistung als andere den ihm zugeordneten FIFO-Speicher
schneller leert, wird er von der Einrichtung 100 für den geordneten
Lastausgleich häufiger
als aktueller Netzwerkprozessor ausgewählt, weil die Auswahl des aktuellen
Netzwerkprozessors anhand des Füllstands
des FIFO-Speichers erfolgt. Eine weitere Lösung, bei der eine Modifikation
der Einrichtung 100 für
den geordneten Lastausgleich erforderlich ist, besteht darin, die
Verarbeitungsleistung jedes Netzwerkprozessors zusammen mit der
zugeordneten Netzwerkprozessor-ID in der Einheit 235 zur
Bestimmung des aktuellen Netzwerkprozessors zu speichern. Die Verarbeitungsleistung
und die zugeordnete Netzwerkprozessor-ID werden zusammen mit dem
Füllstand
des FIFO-Speichers (230-1 bis 230-4) zur Bestimmung des
aktuellen Netzwerkprozessors herangezogen, um das Laden der Netzwerkprozessormittel
zu optimieren.
-
Die
Sendeseite der Einrichtung 100 für den geordneten Lastausgleich
besteht aus einer Multiplexereinheit 240, einer Pipelineeinheit 245,
einer Demultiplexereinheit 250, einem Paketspeicher 255,
einer Multiplexereinheit 260 und einer Vermittlungseinheit 285.
Nach der Verarbeitung der Pakete in den Netzwerkprozessoren 110-1 bis 110-4 werden
sie über
die Multiplexereinheit 240 an die Pipelineeinheit 245 und
anschließend
an die Demultiplexereinheit 250 gesendet. Je nach Status
des Paketstroms werden ankommende Pakete im Paketspeicher 255 gespeichert
oder zur Ausgabe durch die Vermittlungseinheit 285 an die
Multiplexereinheit 260 gesendet. Die Vermittlungseinheit 285 analysiert
die Kopfdaten der Pakete, um den Ausgangsport 130-j der
Hochgeschwindigkeitsleitung zu ermitteln, an die die Pakete gesendet
werden sollen.
-
Die
Einrichtung 100 für
den geordneten Lastausgleich umfasst ferner eine Datenfluss-Steuerung zum
Neukombinieren der Pakete nach der Verarbeitung, die eine Parsereinheit 205 zum
Parsen von Kopfdaten, eine Hashfunktionseinheit 210, einen Speicher 215 für das Lastausgleichsprotokoll,
eine Einheit 265 zum Stellen bzw. Entfernen von Paketen in
die bzw. aus der Warteschlange, eine Protokollaktualisierungseinheit 270,
eine Einheit 275 zur Aktualisierung des Warteschlangenzeigers
und einen Speicher 280 für Warteschlangenzeiger umfasst.
Es gilt zu beachten, dass die Parsereinheit 205, die Hashfunktionseinheit 210 und
der Speicher 215 für
das Lastausgleichsprotokoll vor und nach der Verarbeitung zum Analysieren
von Paketen verwendet werden. Nach der Verarbeitung der Pakete in
den Netzwerkprozessoren 110-1 bis 110-4 werden
sie über
die Multiplexereinheit 240 an die Parsereinheit 205 gesendet.
Die Kopfdaten der verarbeiteten Pakete werden geparst, um Paketstrom-IDs
zu extrahieren, die an die Hashfunktionseinheit 210 gesendet
werden, wo durch das Anwenden des Hashverfahrens auf die Paketstrom-IDs
Flow-Bucket-IDs
generiert werden.
-
Die
Flow-Bucket-ID dient im Speicher 215 für das Lastausgleichsprotokoll
als Index für
den Zugriff auf das Lastausgleichsprotokoll, anhand dessen die Einheit 265 zum
Stellen bzw. Entfernen von Paketen in die bzw. aus der Warteschlange
ermittelt, ob ein verarbeitetes Paket an den Ausgangsport 130-j gesendet
oder im Paketspeicher 255 gespeichert werden muss. Die
Flow-Bucket-ID dient außerdem
als Index zum Speichern des Paketzeigers im Speicher 280 für Warteschlangenzeiger,
wenn ein verarbeitetes Paket im Paketspeicher 255 gespeichert
oder aus diesem abgerufen werden muss.
-
Die
Einheit 265 zum Stellen bzw. Entfernen von Paketen in die
bzw. aus der Warteschlange analysiert das aus dem Speicher 215 für das Lastausgleichsprotokoll
empfangene Lastausgleichsprotokoll, um die ID des Netzwerkprozessors,
der das aktuelle Paket verarbeitet hat, mit derjenigen des ältesten
Netzwerkprozessors im Flow-Bucket zu vergleichen, zum dem das aktuelle
Paket gehört.
Wenn sie nicht identisch sind, wird das aktuelle verarbeitete Paket
im Paketspeicher 255 gespeichert, und der entsprechende
Zeiger wird gemäß dem Flow-Bucket des
aktuellen verarbeiteten Pakets und gemäß der ID des Netzwerkprozessors,
der das aktuelle verarbeitete Paket verarbeitet hat, im Speicher 280 für Warteschlangenzeiger
gespeichert. Wenn die IDs identisch sind, wird das aktuelle verarbeitete
Paket direkt an den Ausgangsport 130-j gesendet, und die
Einheit 265 zum Stellen bzw. Entfernen von Paketen in die bzw.
aus der Warteschlange verringert die der ID des ältesten Netzerwerkprozessors
zugeordnete Anzahl der verarbeiteten Pakete mithilfe der Protokollaktualisierungseinheit 270.
Wenn diese Anzahl den Wert Null erreicht, wird die ID der ältesten
Netzwerkprozessormittel ebenfalls aktualisiert und im Lastausgleichsprotokoll
auf den nächsten
Wert gesetzt, und die im Paketspeicher entsprechend der neuen ID
der ältesten
Netzwerkprozessormittel aufgereihten Pakete können an die Hochgeschwindigkeitsleitung
gesendet und anschließend
aus dem Paketspeicher entfernt werden.
-
Es
gilt zu beachten, dass in dem Fall, in dem nur ein Eingangsport 120 vorhanden
ist, die TDM-Einheit 200 nicht benötigt wird. Wenn nur ein Ausgangsport 130 vorhanden
ist, wird gleichermaßen
die Vermittlungseinheit 285 nicht benötigt.
-
4 veranschaulicht
den Einsatz von mehreren der oben beschriebenen Einrichtungen 100 für den geordneten
Lastausgleich in einem hochwertigen Vermittlungs- oder Routersystem 400.
Ein solches System umfasst üblicherweise
mindestens eine Vermittlungsstruktur 410 mit einer Vielzahl
von Hochgeschwindigkeitsleitungen, z. B. ein 64 × 64-Port-Switch, dessen einzelne
Ports für
Duplexübertragungen
von insgesamt 40 GB/s ausgelegt sind. In diesem Beispiel werden
vier Netzwerkprozessoren zur Bedienung einer Hochgeschwindigkeitsleitung
für Halbduplexübertragungen,
d. h. für
einen Eingangs- oder einen Ausgangsport, benötigt. Daher umfasst das Vermittlungssystem 400 genauso
viele Einrichtungen für
den geordneten Lastausgleich, allgemein durch 100-r gekennzeichnet,
wie Halbduplexverbindungen, wobei jede Einrichtung für den geordneten Lastausgleich
mit vier Netzwerkprozessoren, NP Ar, NP Br, NP Cr und NP Dr, verbunden
ist. Die Einrichtungen für
den geordneten Lastausgleich sind U-förmig
dargestellt, um die Zeichnung übersichtlicher
zu gestalten und zu verdeutlichen, dass die Gruppierung aus Einrichtungen
für den
geordneten Lastausgleich und Netzwerkprozessormitteln gegenüber dem übrigen System
ein einziges, leistungsfähigeres Netzwerkprozessormittel
darstellt.
-
Das
Verhalten des in 4 dargestellten Systems lässt sich
anhand eines bestimmten Paketstroms veranschaulichen, der über den
Eingangsport 120-s von der Einrichtung 100-1 für den geordneten Lastausgleich
empfangen wird. Gemäß dem in
dieser Erfindung beschriebenen Verfahren werden die Pakete dieses
Stroms zu ihrer Verarbeitung dynamisch zwischen den Netzwerkprozessoren
NP A1, NP B1, NP C1 und NP D1 verteilt. Anschließend werden die Pakete in der
Einrichtung 100-1 für
den geordneten Lastausgleich unter Beibehaltung der Paketreihenfolge
neu kombiniert, um daraufhin über den
Ausgangsport 130-t an die Vermittlungsstruktur 410 gesendet
zu werden. In der Vermittlungsstruktur 410 werden die Pakete
umgeleitet und beispielsweise an den Eingangsport 120-u der
Einrichtung 100-2 für
den geordneten Lastausgleich gesendet. Die Pakete werden dann zu
ihrer Verarbeitung erneut gemäß dem in
dieser Erfindung beschriebenen Verfahren wiederum dynamisch zwischen
den Netzwerkprozessoren NP A2, NP B2, NP C2 und NP D2 der Einrichtung 100-2 für den geordneten
Lastausgleich verteilt, bevor sie wiederum unter Beibehaltung der Paketreihenfolge
neu kombiniert und über
den Ausgangsport 130-v an ein Netzwerk oder eine Netzwerkeinheit
(nicht dargestellt) gesendet werden.
-
Auch
wenn die Erfindung unter Bezugnahme auf bevorzugte Ausführungsarten
beschrieben wurde, ist für
den Fachmann ersichtlich, dass die Erfindung auch auf andere Weise
implementiert werden kann. Zur Erfüllung lokaler und spezifischer
Anforderungen kann der Fachmann gleichermaßen viele Modifikationen und Änderungen
auf die oben beschriebene Lösung
anwenden, die allesamt jedoch im Geltungsbereich der Erfindung liegen,
der durch die folgenden Ansprüche
definiert wird.