-
Die
vorliegende Erfindung betrifft allgemein den Lastausgleich in Datennetzen
und insbesondere ein Verfahren und eine Vorrichtung zum Lastausgleich
in einem Datennetz.
-
Ein
Datennetz umfasst üblicherweise
eine Vielzahl von Server-Computern,
die über
eine Datennetzinfrastruktur mit einer Vielzahl von Client-Computern
verbunden sind. Die Datennetzinfrastruktur umfasst üblicherweise
eine Vielzahl von zwischengeschalteten Datenübertragungseinheiten oder -knoten wie
beispielsweise Switches (Vermittlungsrechner), Router und Ähnliches
zum Weiterleiten von Datenpaketen zwischen den Client-Computern und den
Server-Computern. Solche Datenübertragungseinheiten umfassen üblicherweise
eine Vielzahl von Eingabe-/Ausgabeanschlüssen (E/A), ein Koppelnetz
zum Weiterleiten der über
einen Anschluss empfangenen Datenpakete zu einem oder mehreren anderen
Anschlüssen
und eine Steuerlogik zur Steuerung des Koppelnetzes, um anhand der
in den durchlaufenden Datenpaketen enthaltenen Adressinformationen
geeignete Verbindungen zwischen den Anschlüssen herzustellen.
-
Bei
solchen Datennetzwerken stellt der Lastausgleich zwischen den unterschiedlichen
Knoten in der Netzinfrastruktur ein Problem dar. Mit zunehmendem
Umfang des von der Netzinfrastruktur zu bewältigenden Datenverkehrs lässt sich
der Lastausgleich zwischen den Knoten in der Infrastruktur zum passenden
Zeitpunkt immer schwieriger erreichen. Dadurch kommt es zu Engpässen und
Verzögerungen im
Datenverkehr.
-
Im
Dokument EP-A-1 130 849 wird ein Verfahren zur Lastverteilung auf
eine Vielzahl von Routing-Pfaden durch Zufügen oder Entfernen von Datenübertragungspfaden
zu bzw. aus einer Gruppe von Datenverkehrsmerkmalen und anschließendes Ausgleichen
der Last zwischen den Datenübertragungspfaden
beschrieben.
-
Gemäß der vorliegenden
Erfindung wird eine Lastausgleichsvorrichtung für ein Datenübertragungsnetz vorgeschlagen,
wobei die Vorrichtung Folgendes umfasst: eine Hash-Logik zum Berechnen
einer Hash-Funktion für
die ankommenden Datenpakete; einen mit der Hash-Logik verbundenen
Schwellenwertdetektor, um als Reaktion auf die Auslastung der nachfolgenden
Objekte über
einen definierten Schwellenwert hinaus Parameter der Hash-Funktion in
der Hash-Logik neu zu definieren, d.h. aus einem ersten Satz von
Parametern zum Umverteilen der Datenpakete auf die nachfolgenden
Objekte einen zweiten Satz von Parametern zu erzeugen; wobei die verwendete
Hash-Logik dafür
sorgt, dass die zu den nachfolgenden Objekten im Netz weiterzuleitenden Datenpakete
entsprechend einem aus dem ersten Satz von Parametern berechneten
Hash-Wert einem ersten Routing-Pfad zugewiesen werden, während beim Überschreiten
des Schwellenwertes Datenpakete in Abhängigkeit von den aus dem ersten
und dem zweiten Satz von Parametern berechneten Hash-Werten selektiv entweder
dem ersten oder dem zweiten Routing-Pfad zugewiesen werden, damit die Datenpakete
anschließend
in Abhängigkeit
von den Ergebnissen der jeweils berechneten Hash-Werte selektiv entweder über den
ersten oder über
den zweiten Routing-Pfad weitergeleitet werden.
-
Vorzugsweise
ordnet die verwendete Hash-Logik das Datenpaket dem ersten Routing-Pfad
zu, wenn die Ergebnisse der separaten Hash-Wertberechnungen übereinstimmen, und ordnet das
Datenpaket dem zweiten Routing-Pfad zu, wenn dies nicht der Fall
ist. Bei einer bevorzugten Ausführungsart
der vorliegenden Erfindung umfasst die Vorrichtung ferner einen
mit der Hash-Logik verbundenen Filter, damit Datenströme mit einer
Lebensdauer, welche einen vorgegebenen Wert überschreitet, selektiv an der
Hash-Logik vorbeigeleitet werden. Bei einer besonders bevorzugten
Ausführungsart
der vorliegenden Erfindung umfasst die Vorrichtung ferner den ersten
Routing-Pfad und den zweiten Routing-Pfad, wobei der erste Routing-Pfad eine
mit der Hash-Logik
verbundene erste Routing-Logik und der zweite Routing-Pfad eine
mit der Hash-Logik verbundene zweite Routing-Logik umfasst, wobei
der erste Routing-Pfad schneller als der zweite Routing-Pfad ist und bei
Verwendung des zweiten Routing-Pfades nachfolgende Objekte anhand
des Paketflussstatus ausgewählt
werden.
-
Die
erste Routing-Logik kann mindestens einen Netzprozessor und die
zweite Routing-Logik mindestens einen Allzweckprozessor umfassen.
Die zweite Routing-Logik kann so konfiguriert sein, dass sie in
einem Fluss von Datenpaketen einen Datenflussbegrenzer erkennt und
nach dem Erkennen des Startsignals den betreffenden Datenfluss entsprechend
dem aus den zweiten Parametern berechneten Hash-Wert weiterleitet.
Die zweite Routing-Logik kann auch so konfiguriert sein, dass sie
Datenpaketflüsse
erkennt, welche eine vorgegebene Leerlaufzeit überschreiten, und solche Datenpaketflüsse entsprechend
dem aus den zweiten Parametern berechneten Hash-Wert weiterleitet.
Ferner kann die zweite Routing-Logik so konfiguriert sein, dass
sie Datenpaketflüsse
erkennt, welche eine vorgegebene Lebensdauer überschreiten, und solche Datenpaketflüsse zur
ersten Routing-Logik weiterleitet.
-
Die
vorliegende Erfindung betrifft ferner eine anwendungsspezifische
integrierte Schaltung, die eine oben beschriebene Lastausgleichsvorrichtung umfasst.
Die vorliegende Erfindung betrifft auch einen Netzinfrastrukturknoten,
welcher eine oben beschriebene Lastausgleichsvorrichtung umfasst.
Außerdem
betrifft die vorliegende Erfindung ein Datenübertragungsnetz, welches einen
solchen Netzinfrastrukturknoten umfasst.
-
Unter
einem anderen Aspekt stellt die vorliegende Erfindung ein Verfahren
zum Lastausgleich in einem Datenübertragungsnetz
zur Verfügung,
wobei das Verfahren Folgendes umfasst: Berechnen einer Hash-Funktion
für ankommende
Datenpakete; Neudefinieren von Parametern der Hash-Funktion als Reaktion
auf die einen vorgegebenen Schwellenwert überschreitende Auslastung nachfolgender
Objekte, d.h. Erzeugen eines zweiten Satzes von Parametern aus einem
ersten Satz von Parametern zum Umverteilen der Datenpakete auf die
nachfolgenden Objekte; und Zuweisen der zu nachfolgenden Objekten
des Netzes weiterzuleitenden Datenpakete entsprechend einem mit
dem ersten Parametersatz berechneten Hash-Wert zu einem ersten Routing-Pfad
und beim Überschreiten
des Schwellenwertes selektives Zuweisen der Datenpakete in Abhängigkeit
von den mit dem ersten und dem zweiten Parametersatz berechneten
Hash-Werten entweder zum ersten oder zum zweiten Routing-Pfad, damit
die Datenpakete anschließend
in Abhängigkeit
von den Ergebnissen der jeweils berechneten Hash-Werte selektiv
entweder über
den ersten oder über
den zweiten Routing-Pfad weitergeleitet werden.
-
Bei
einer bevorzugten Ausführungsart
der vorliegenden Erfindung umfasst das verfahren das Zuweisen der
Datenpakete zum ersten Routing-Pfad, wenn die separat berechneten
Hash-Werte übereinstimmen,
und zum zweiten Routing-Pfad, wenn dies nicht der Fall ist.
-
Um
zehntausende oder hunderttausende Datenpaketflüsse möglichst gut durch Hardware
auszugleichen, muss ein Schema erstellt werden, bei dem möglichst
wenige Datenflusszustände
verwaltet werden und gleichzeitig die Konnektivität aktiver
Datenflüsse,
wie beispielsweise TCP-Datenflüsse
zwischen Hosts, aufrechterhalten wird.
-
Bei
einer bevorzugten Ausführungsart
der vorliegenden Erfindung wird ein auf Hardware beruhendes iteratives
Lastausgleichsverfahren bereitgestellt, bei welchem eine Hash-Funktion zum Verteilen von
Datenpaketflüssen
auf eine Anzahl von Hosts, Verbindungsknoten und/oder Netzschnittstellen
in einem Datenübertragungsnetz
verwendet wird. Die Hash-Funktion wird auf einen Teil jedes Datenpaketes
angewendet, der für
die Dauer des Datenflusses konstant ist, zum Beispiel auf die Quellenadresse
des betreffenden Datenflusses. Das Verfahren wechselt zwischen einem
Zustand, bei welchem die Hash-Funktion nur aus einem Satz von Hash-Parametern
berechnet wird, und einem Zustand, bei welchem zwei Sätze von
Hash-Parametern vorgegeben sind. Beim ersten Zustand gibt es nur
einen Hash-Wert. Beim zweiten Zustand ist die Differenz zwischen
zwei Hash-Werten bekannt. Das Verfahren ermittelt einen schnellen
und einen langsamen Routing-Pfad.
Der schnelle Routing-Pfad kann durch spezielle Hardware realisiert
werden, zum Beispiel durch Netzprozessoren oder ähnliche anwendungsspezifische
integrierte Schaltungen (Application Specific Integrated Circuit,
ASIC). Der langsame Routing-Pfad lässt sich besser durch Software
in einem Allzweckprozessor (General Purpose Processor, GPP) realisieren.
Zwischen Objekten mit Lastausgleich werden Datenflüsse nur
so lange übertragen, wie
die Kontinuität
erhalten bleibt. Dadurch wird auf vorteilhafte Weise sichergestellt,
dass die Datenflusskonnektivität
nicht unterbrochen und die Reihenfolge der Datenpakete nicht geändert wird.
Außerdem
wird ein Status für
Datenflüsse
reserviert, bei denen die beiden Hash-Werte nicht übereinstimmen. Dieser
reservierte Status wird jedoch ständig und radikal abgebaut.
Dies bringt den Vorteil möglichst
geringer Hardwarekosten. Durch die Weiterleitung der Datenpakete über schnelle
Routing-Pfade mit Hilfe spezieller Hardware, zum Beispiel Netzprozessoren, wird
die Leistung der Datenübertragung
außerdem
in ungekanntem Maße
gesteigert.
-
Im
Folgenden werden als Beispiele bevorzugte Ausführungsarten der vorliegenden
Erfindung unter Bezug auf die beiliegenden Zeichnungen beschrieben,
wobei:
-
1 ein
Blockschaltbild eines Datenübertragungsnetzes
ist;
-
2 ein
Blockschaltbild eines Infrastrukturknotens des Datenübertragungsnetzes
ist;
-
3 ein
anderes Blockschaltbild des Infrastrukturknotens ist;
-
4 ein
Flussdiagramm einer Steuereinheit des Infrastrukturknotens ist;
-
5 ein
Flussdiagramm einer Lastausgleichseinheit des Infrastrukturknotens
ist; und
-
6 ein
weiteres Flussdiagramm einer Lastausgleichseinheit des Infrastrukturknotens
ist.
-
Ein
Datenübertragungsnetz 140 umfasst
gemäß 1 eine
Vielzahl von Netzobjekten 10 bis 120. Die Netzobjekte
beinhalten Netzknoten 10 bis 90 und dazwischen
Netzverbindungen 100 bis 120 zum Übertragen
von Datenpaketen zwischen den Netzknoten 10 bis 30.
Die Netzknoten beinhalten Endpunktknoten 10 bis 60 und
Infrastrukturknoten 70 bis 90. Die Infrastrukturknoten 70 bis 90 der
Verbindungen 110 bis 130 bilden zusammen eine
Netzinfrastruktur 130. Die Endpunktknoten 10 bis 60 beinhalten
eine Vielzahl von Client-Datenverarbeitungseinheiten 10 bis 30 und
eine Vielzahl von Server-Computersystemen 40 bis 60.
Die Clients 10 bis 30 und die Server 40 bis 60 sind über eine
Netzinfrastruktur 100 miteinander verbunden. Jeder Client 10 bis 30 kann
ein Personal Computer, ein Laptopcomputer, ein PDA (Personal Digital
Assistent), ein Mobiltelefon oder Ähnliches sein. Jeder Server 40 bis 60 kann
ein Dateiserver, ein Druckerserver oder ähnlicher Host als Datenverarbeitungs-
oder Datenspeicherressource sein.
-
In
der Praxis erfolgt die Datenübertragung zwischen
den Clients 10 bis 30 und den Servern 40 bis 60 mittels
Datenpaketflüssen
durch die Netzinfrastruktur 100. Die Datenpaketflüsse werden
auf dem Weg zwischen den Clients 10 bis 30 und
den Servern 40 bis 60 gemäß einem oder mehreren Datenübertragungsprotokollen
durch die Infrastrukturknoten 70 bis 90 der Netzinfrastruktur
geleitet. Jeder Infrastrukturknoten 70 bis 90 führt eine
Routing-Funktion aus, um die von ihm empfangenen Datenpakete zum
richtigen Empfängerobjekt
weiterzuleiten.
-
2 zeigt,
dass jeder Infrastrukturknoten 70 bis 90 eine
erste Routing-Logik 220, eine zweite Routing-Logik 210 und
einen mit der ersten Routing-Logik 220 und der zweiten
Routing-Logik 210 verbundenen Lastverteiler 200 umfasst.
Die erste Routing-Logik 220 und
die zweite Routing-Logik 210 führen dieselbe Routing-Funktion
aus. Dabei führt die
erste Routing-Logik 220 jedoch die Routing-Funktion schneller
als die zweite Routing-Logik 210 aus.
Somit stellt die erste Routing-Logik 220 einen relativ
schnellen Routing-Pfad und die zweite Routing-Logik 210 einen
relativ langsamen Routing-Pfad zur Verfügung.
-
3 zeigt
eine besonders bevorzugte Ausführungsart
der vorliegenden Erfindung, bei welcher jeder Infrastrukturknoten
einen mit einem Steuerpunkt 400 verbundenen Netzprozessor
(Network Processor, NP) 300 umfasst. Im NP 300 sind
sowohl die Lastausgleichsvorrichtung 200 als auch die erste Routing-Logik 220 implementiert.
Der NP 300 umfasst insbesondere eine ausführbare Software
zum Ausführen
von Lastausgleichsentscheidungen in der Lastausgleichsvorrichtung 200 zusammen
mit einer fest verdrahteten Logikimplementierung der ersten Routing-Logik 220 zum
Ausführen
der Paket-Routing-Funktion.
Die Lastausgleichsvorrichtung 200 umfasst einen Filter 230 und
eine mit diesem verbundene Hash-Logik 240.
-
Ein
mit dem NP 300 verbundener Steuerpunkt (Control Point,
CP) 400 umfasst eine mit einem Speicher 420 verbundene
Allzweck-Datenverarbeitungseinheit
(General Purpose Processing, GPP). Im Speicher 420 ist
ein im GPP 410 ausgeführter
Computerprogrammcode gespeichert, mittels dessen ein Flussstatuscontroller 430,
Schwellenwertdetektoren 440 und 490, ein Hashparametergenerator 450,
eine Konfliktdatenflussstatustabelle 460, eine „Langzeit"-Flussstatustabelle 480 und
ein Router 470 implementiert werden. Der Flussstatuscontroller 430 berechnet
für die
Datenpaketflüsse
zwischen Client und Server einen Status. Der Schwellenwertdetektor 440 überwacht
den aktuellen Laststatus der Server 40 bis 60,
um die Last zu verteilen. Der Router 470 implementiert
die zweite Routing-Logik 210. Der CP 400 führt die
Paket-Routing-Funktion langsamer aus als der NP 300.
-
Im
Betrieb ermittelt die Lastausgleichsvorrichtung 200 aus
dem aktuellen Status des Filters 230 sowie der Hash-Logik 240 für jeden
ankommenden Datenpaketfluss, ob dieser durch die erste Routing-Logik 220 oder
den CP 400 bearbeitet wird. Der Status sowohl des Filters 230 als
auch der Hash-Logik 240 wird ausgehend von den vorliegenden
Anforderungen für
eines oder mehrere der nachfolgenden Objekte im Netz 140 durch
den CP 400 gesteuert. Ein solcher Lastausgleich ist wünschenswert,
um zum Beispiel vermeidbare Überlastungen
eines oder mehrerer der nachfolgenden Objekte durch suboptimal verteilte
Client-Anforderungen
zu verhindern. Durch das Verhindern der vermeidbaren Überlastungen
wird die Verfügbarkeit
der Kapazitäten
im Netz 140 optimiert. Die Lastausgleichsvorrichtung 200 führt mittels
ihrer Hash-Logik 240 Hash-Funktionen aus, um Datenpaketflüsse zwischen
Objekten im Netz auszugleichen. Insbesondere führt die Hash-Logik 240 die
Hash-Funktionen an bestimmten Teilen der ankommenden Datenpakete
aus, die während
eines Datenpaketflusses konstant bleiben, zum Beispiel an der Quellenadresse.
Die Lastausgleichsvorrichtung 200 wechselt zwischen zwei
Status hin und her: einem Status, bei dem die Differenz zwischen
den Ergebnissen von zwei Hash-Funktionen bekannt ist, und einem
Status, bei dem nur das Ergebnis einer Hash-Funktion bekannt ist.
Der Filter 230 kann bestimmte Datenpaketflüsse an der Hash-Logik 240 vorbeileiten.
-
Die
Funktion des Filters 230 im Betrieb besteht darin, ankommende
Datenpaketflüsse
entweder zur ersten Routing-Logik 220 oder zur Hash-Logik 240 zu
leiten. Die Hash-Logik 240 leitet die Datenpakete entsprechend
einem Steuersignal vom CP 400 entweder zur ersten Routing-Logik 220 oder
zum CP 400, in welchem die zweite Routing-Logik 210 implementiert
ist. Wenn das Datenpaket zur ersten Routing-Logik 220 weitergeleitet
wird, wird ihm entweder in der Hash-Logik 240 oder im Filter 230 eine Routing-Information
zugefügt.
Diese zusätzliche Routing-Information veranlasst
die erste Routing-Logik 220, einen bestimmten Routing-Pfad
auszuwählen.
Die Routing-Information wird dem Datenpaket auch hinzugefügt, wenn
die Hash-Funktion ein Datenpaket zur zweiten Routing-Logik 210 weiterleitet.
-
4 zeigt
das Blockschaltbild des Steuerpunkts 400, wo in Schritt 500 die
Initialisierung sowohl der Hash-Logik 240 als auch des
Filters 230 der Lastausgleichsvorrichtung 200 erfolgt.
Der Filter 230 wird deaktiviert. Die Startparameter der
Hash-Logik 240 können vom
Bediener vorgegeben werden. Alternativ können die Startparameter der
Hash-Logik 240 von einer automatischen Abfrage der Ressourcenkapazitäten der
Objekte 40 bis 60 stammen, für die der Lastausgleich durchgeführt werden
soll. CPU-Geschwindigkeiten, Schnittstellengeschwindigkeiten und Ähnliches
sind Beispiele für
solche Ressourcenparameter. In Schritt 510 sammelt der
CP 400 im Rückmeldespeicher 430 statistische
Daten zur Ressourcenauslastung in den Objekten 40 bis 60, für die der
Lastausgleich durchgeführt
werden soll.
-
In
Schritt 520 vergleicht der Schwellenwertdetektor 440 die
im Flussstatuscontroller 430 gesammelten statistischen
Daten mit einem vorgegebenen Schwellenwert und ermittelt, ob mindestens
eines der Objekte 40 bis 60 gegenüber den
anderen Objekten zu stark ausgelastet ist. Wenn das Ergebnis der Prüfung positiv
ist, werden in Schritt 530 im Hashparametergenerator 450 neue
Hash-Parameter berechnet und als zweiter Parametersatz in die Hash-Logik 240 geladen.
Die neuen Hash-Parameter verteilen den Datenaustausch im Netz anhand
der gesammelten statistischen Daten optimal. In Schritt 540 fungiert der
CP 400 als zweite Routing-Logik 210. Insbesondere
empfängt
der CP 400 Datenpakete von der Lastausgleichsvorrichtung 200,
die bei der Berechnung der Hash-Funktion in der Hash-Logik 240 mit dem
alten und dem neuen Parametersatz unterschiedliche Hash-Werte erhalten
hat. Für
solche „konkurrierenden
Datenflüsse" speichert der CP 400 für jeden
Datenflussstatus Informationen in der Statustabelle für konkurrierende
Datenflüsse 460.
Wenn der CP 400 während
eines einstellbaren Zeitraums keine Datenpakete für einen
konkurrierenden Datenfluss empfängt
oder wenn der CP 400 mindestens einmal eine Anzeige für das Datenflussende
empfängt,
zum Beispiel ein TCP-Bit FIN, wird der betreffende Datenfluss als
abgeschlossen betrachtet und sein Status als „alt beendet" markiert.
-
In
Schritt 545 leitet der CP 400 das Datenpaket durch
die zweite Routing-Logik 470 zu einem der Objekte 40 bis 60,
für die
der Lastausgleich durchgeführt
werden soll. Wenn der Status des Datenflusses, zu welchem das Datenpaket
gehört,
als „alt
beendet" markiert
ist, wird das Datenpaket entsprechend dem Ergebnis der Hash-Berechnung
mit den neuen Hash-Parametern weitergeleitet. Wenn dies nicht der Fall
ist, wird das Datenpaket entsprechend dem Ergebnis der Hash-Berechnung
mit den alten Hash-Parametern weitergeleitet.
-
Nach
einem Zeitintervall, das nicht kürzer
als das zur Erkennung des Datenflussendes in Schritt 540 zugewiesene
Zeitintervall ist, vergleicht der Schwellenwertdetektor 490 in
Schritt 550 die Anzahl der nicht beendeten konkurrierenden
Datenpaketflüsse
mit einem vorgegebenen Schwellenwert. Wenn der Schwellenwertdetektor 490 feststellt,
dass die Anzahl der Datenpaketflüsse
den Schwellenwert unterschreitet oder diesem gleich ist, werden
in Schritt 560 alle lokalen Status nicht beendeter konkurrierender
Datenpaketflüsse
in die Statustabelle 480 für „langlebige Datenpaketflüsse" eingetragen und
die Statustabelle 460 für „konkurrierende
Datenpaketflüsse" gelöscht. In
diesem Fall wird der Inhalt der Statustabelle 480 für „langlebige
Datenpaketflüsse" in Schritt 560 zur
Filterfunktion 230 der Lastausgleichsvorrichtung 200 übertragen
und werden die alten Hash-Parameter der Hash-Logik 240 entfernt. Wenn
der Schwellenwertdetektor 490 in Schritt 550 feststellt,
dass die Anzahl der nicht beendeten konkurrierenden Datenpaketflüsse den
Schwellenwert überschreitet,
empfängt
der CP 400 weiterhin Datenpakete mit konkurrierenden Hash-Werten
von der Lastausgleichsvorrichtung 200.
-
In
Schritt 570 empfängt
der CP 400 Kopien von Datenpaketen, die zu „langlebigen" Datenpaketflüssen gehören. In
Schritt 580 ermittelt der CP 400, ob ein Datenpaket
eine Anzeige für
das Datenflussende enthält,
zum Beispiel ein TCP-Bit FIN, oder ob ein „langlebiger Datenpaketfluss" eine bestimmte Zeit
lang inaktiv war. Wenn das Ergebnis der beiden Prüfungen negativ
ist, springt der CP 400 zurück zu Schritt 570 und
empfängt
weiterhin Kopien von Datenpaketen, die zu „langlebigen Datenflüssen" gehören.
-
Wenn
in Schritt 580 ein Datenflussende ermittelt wurde, wird
in Schritt 585 der entsprechende Datenflusseintrag aus
der Tabelle 480 für „langlebige Datenflüsse" und dem Filter 230 entfernt.
In Schritt 590 prüft
der CP 400, ob die Tabelle 480 für „langlebige Datenflüsse" leer ist. Wenn dies
der Fall ist, wechselt der Status des CP 400 zurück zum Sammeln
von Rückmeldeinformationen
in Schritt 510. Wenn die Tabelle 480 für „langlebige
Datenflüsse" nicht leer ist,
springt der CP 400 zurück
zu Schritt 570 und empfängt
Kopien von Datenpaketen, die zu „langlebigen Datenflüssen" gehören.
-
Mittels
einer eingehenderen Datenpaketverarbeitung kann der CP 400 laufende
Datenflüsse
ermitteln, die als beendet anzusehen sind. Zum Beispiel können laufende
FTP-Datenflüsse
(File Transfer Protocol) unter Umständen ohne Probleme zu einem
neuen Server umgeleitet werden.
-
In
Schritt 600 von 5 prüft der Filter 230, ob
für jedes
ankommende Datenpaket eine Filterbedingung besteht. Wenn dies der
Fall ist, vergleicht der Filter 230 in Schritt 610,
ob eine Datenpaketflusskennung die lokalen Filterbedingungen erfüllt. Wenn keine
Filterbedingung besteht oder keine Bedingung erfüllt ist, wird das Datenpaket
in Schritt 620 zur Hash-Logik 240 weitergeleitet.
Wenn das Datenpaket eine Filterbedingung erfüllt, wird ihm entsprechend dieser
erfüllten
Bedingung in Schritt 630 seine Routing-Information zugewiesen.
Das Datenpaket wird in Schritt 640 in den CP 400 kopiert
und in Schritt 650 zur ersten Routing-Logik 220 gesendet.
-
Die
Hash-Logik 240 in 6 wechselt
zwischen zwei Status, je nachdem, ob entweder nur ein alter Hash-Parametersatz
oder ein alter und ein neuer Hash-Parametersatz bekannt sind. In
Schritt 700 berechnet die Hash-Logik 240 den Hash-Wert
mit dem neuen Parametersatz. In Schritt 710 ermittelt die Hash-Logik 240,
ob ein alter Hash-Parametersatz vorhanden ist. Wenn kein alter Parametersatz
vorhanden ist, werden das Datenpaket und der Hash-Wert in Schritt 720 zur
ersten Routing-Logik 220 weitergeleitet, damit diese das
Datenpaket zum betreffenden Zielobjekt 40 bis 60 sendet.
Wenn ein alter Hash-Parametersatz vorhanden ist, wird in Schritt 730 der
Hash-Wert noch einmal mit dem alten Parametersatz berechnet. In
Schritt 740 wird der Hash-Wert geprüft und ermittelt, ob die beiden Hash-Berechnungen
zum selben Ergebnis führen. Wenn
dies der Fall ist, gelangt das Datenpaket in Schritt 720 zur
ersten Routing-Logik 220, um von dort zum betreffenden
Zielobjekt 40 bis 60 weitergeleitet zu werden.
wenn sich die Ergebnisse der beiden Hash-Berechnungen jedoch voneinander
unterscheiden, werden das Datenpaket und die beiden Hash-Werte in
Schritt 750 zum CP 400 geschickt, um auf dem langsamen
Routing-Pfad weitergeleitet zu werden.
-
Bei
den oben beschriebenen Ausführungsarten
der vorliegenden Erfindung umfasst jede Infrastruktur 90 bis 110 im
Netz 130 eine Lastausgleichsfunktionalität. Es ist
jedoch klar, dass auch Netze 130 aufgebaut werden können, bei
denen nur ein Teil der Infrastrukturknoten eine Lastausgleichsfunktionalität umfasst.
-
Eine
Lastausgleichsvorrichtung für
ein Datenübertragungsnetz
umfasst eine Hash-Logik zum Berechnen einer Hash-Funktion für ankommende Datenpakete.
Mit der Hash-Logik ist ein Schwellenwertdetektor verbunden, der
als Reaktion auf die einen vorgegebenen Schwellenwert übersteigende Auslastung
der nachfolgenden Objekte eine Neudefinition der Parameter der Hash-Funktion von einem ersten
Parametersatz zu einem zweiten Parametersatz in der Hash-Logik auslöst, um die
Datenpakete auf die nachfolgenden Objekte umzuverteilen. Die verwendete
Hash-Logik bewirkt,
dass die zu nachfolgenden Objekten im Netz weiterzuleitenden Datenpakete
ausgehend von einer Berechnung des Hash-Wertes mit dem ersten Parametersatz
einem ersten Routing-Pfad
zugewiesen werden, während die
Pakete bei Überschreitung
des Schwellenwertes ausgehend von der separaten Berechnung von Hash-Werten
mit dem ersten und dem zweiten Parametersatz selektiv dem ersten
oder zweiten Routing-Pfad zugewiesen werden, damit sie anschließend in
Abhängigkeit
von den Ergebnissen einer der separaten Hash-Wert-Berechnungen über den
ausgewählten
ersten bzw. zweiten Routing-Pfad weitergeleitet werden.
-
Oben
wurde als Beispiel der vorliegenden Erfindung eine Lastausgleichsvorrichtung 200 für ein Datenübertragungsnetz
beschrieben, wobei die Lastausgleichsvorrichtung eine Hash-Logik
240 zum Berechnen einer Hash-Funktion für ankommende Datenpakete umfasst.
Mit der Hash-Logik 240 ist ein Schwellenwertdetektor 440 verbunden,
der als Reaktion auf die Auslastung der nachfolgenden Objekte über einen
vorgegebenen Schwellenwert hinaus eine Neudefinition der Parameter
der Hash-Funktion 240 von einem ersten Parametersatz zu
einem zweiten Parametersatz in der Hash-Logik auslöst, um die
Datenpakete auf die nachfolgenden Objekte umzuverteilen. Die Hash-Logik 240 weist
die an nachfolgende Objekte im Netz weiterzuleitenden Datenpakete
ausgehend von einer Berechnung des Hash-Wertes mit dem ersten Parametersatz
einem ersten Routing-Pfad zu, während
die Datenpakete bei Überschreitung
des Schwellenwertes ausgehend von der separaten Berechnung von Hash-Werten
mit dem ersten und dem zweiten Parametersatz selektiv dem ersten
oder zweiten Routing-Pfad
zugewiesen werden, damit sie anschließend in Abhängigkeit von den Ergebnissen
einer der separaten Hash-Wert-Berechnungen über den ausgewählten ersten
bzw. zweiten Routing-Pfad weitergeleitet werden. Es ist jedoch klar,
dass die vorliegende Erfindung nicht auf zwei Hash-Parametersätze beschränkt ist.
Bei anderen Ausführungsarten
der vorliegenden Erfindung kann die Hash-Logik 240 mehr
als zwei Hash-Parametersätze
verarbeiten.