DE60117554T2 - Verfahren und vorrichtung zur effizienten hashing in netze - Google Patents

Verfahren und vorrichtung zur effizienten hashing in netze Download PDF

Info

Publication number
DE60117554T2
DE60117554T2 DE60117554T DE60117554T DE60117554T2 DE 60117554 T2 DE60117554 T2 DE 60117554T2 DE 60117554 T DE60117554 T DE 60117554T DE 60117554 T DE60117554 T DE 60117554T DE 60117554 T2 DE60117554 T2 DE 60117554T2
Authority
DE
Germany
Prior art keywords
node
data
identification
value
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60117554T
Other languages
English (en)
Other versions
DE60117554D1 (de
Inventor
W. Ross Westford CALLON
D. James North Andover CARLSON
C. Douglas Dunstable EHLERT
Yuval Sunnvale PEDUEL
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pluris Inc
Original Assignee
Pluris Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24444401&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60117554(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Pluris Inc filed Critical Pluris Inc
Publication of DE60117554D1 publication Critical patent/DE60117554D1/de
Application granted granted Critical
Publication of DE60117554T2 publication Critical patent/DE60117554T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Description

  • Hintergrund
  • Die Erfindung betrifft ein Verfahren und eine Einrichtung zur Datenübertragung in einem Netzwerk nach den Präambeln der Ansprüche 1 und 10.
  • In digitalen Computernetzwerken wie dem Internet werden Datenmengen, als "Datenblöcke" bezeichnet, gewöhnlich in Packets von Knoten zu Knoten über das Netz übertragen. Jedes Datenpacket umfasst in der Regel einen Headerabschnitt und einen Nutzdatenabschnitt. Übereinstimmend mit dem üblichen Internetprotokoll (IP) umfasst der Headerabschnitt normalerweise einen 32 Bit Quellenidentifikationsabschnitt, der den Quellenknoten kennzeichnet, der das Packet generiert hat und einen 32 Bit Zielidentifikationsabschnitt, der den Zielknoten kennzeichnet, an den das Packet schlussendlich zu übertragen ist. Ein Packetheader kann auch andere vorbestimmte Felder enthalten, wie ein Protokollfeld.
  • Bei jedem Knoten wird ein Router verwendet, um das Packet zum nächsten Knoten auf dem Pfad zum Zielknoten zu übergeben. Wenn ein Router ein Packet empfängt, überprüft er die Zieladresse im Packetheader. Er durchsucht dann die lokal gespeicherte Routingtabelle zur Bestimmung des nächsten Knotens, an den das Packet übertragen werden soll, um sicherzustellen, dass es sein Ziel erreicht, gewöhnlich über den kürzest möglichen Pfad. Der Router übergibt dann das Packet an den nächsten Knoten, der in der Routingtabelle identifiziert wird. Dieser Prozess wiederholt sich an jedem nachfolgenden Knoten bis der Zielknoten erreicht ist.
  • Häufig gibt es in einem solchen Datenblock- IP- Netz beim Übertragen eines IP Packets Situationen, bei denen es zwei oder mehr Auswahlmöglichkeiten für den nächsten Schritt oder "Hop" gibt, den das Packet nehmen kann, d.h. zu dem nächsten Knoten, an den das Packet zu übertragen ist. 1 enthält ein Blockschaltbild eines konventionellen IP- Packet-Übertragungsnetzwerks 10. Das Netzwerk (10) umfasst eine Vielzahl von Knoten (12), die durch Verbindungen (13) verbunden sind. Mit Bezug auf 1 wird beispielsweise der Fall betrachtet, bei dem IP Packets vom Knoten A zum Knoten F übertragen werden. In dieser Situation wird der Knoten A das Packet an den Knoten B übergeben. Der Knoten B kann das Packet zum Knoten E entlang eines ersten Pfades über den Knoten C oder entlang eines zweiten Pfades über den Knoten D leiten.
  • Im Allgemeinen ist eine Vielzahl von Hosts 14 an jeden Knoten A und F gekoppelt. Ein Host 14, an den Knoten A gekoppelt, kann eine Folge einer Vielzahl von IP Packets haben, die für einen weiteren Host 14 bestimmt sind, der an den Knoten F gekoppelt ist. Es ist wünschenswert, die Reihenfolge der Packets, die mit irgendeinem Datenfluss von Host zu Host verknüpft sind, beizubehalten. Das ist wichtig für die Verbesserung des Kommunikationswirkungsgrads. Vielfach können beispielsweise die Hosts 14 Internetanwendungen über das Transmission Control Protocol (TCP) abwickeln, und TCP kann "slow start" (= langsamen Start) einsetzen. Wenn Anwendungen Gebrauch von TCP slow start machen und die Packets nicht in der korrekten Reihenfolge eintreffen, geht die TCP Anwendung davon aus, dass die falsche Reihenfolge durch Stau im Netzwerk verursacht wurde. Als Reaktion darauf kann die Datenrate der Übertragung reduziert werden. Falls es aber gar keinen Stau im Netzwerk gibt, führt dies zu einer weniger effizienten Nutzung des Netzwerks. Jedenfalls ist es oft empfehlenswert, wenn nicht sogar dringend erforderlich, dass Packets, die mit dem gleichen Quellen/Zielknotenpaar verknüpft sind, auch über die gleiche Folge von Verbindungen übertragen werden.
  • Normalerweise lösen IP Router dieses Problem durch Auswahl zwischen Mehrfach- Equal- Cost- Pfaden für den nächsten Hop für ein bestimmtes Packet. Der Router führt gewöhnlich eine Analyse des Inhalts des Packet- Headers durch, um jedes Packet einer Verbindung zuzuordnen. Das bedeutet gewöhnlich die Ausführung einer Hash Funktion an der Fünfergruppe von Feldern im IP Header, d.h. der Quellen IP Adresse, der Ziel IP Adresse, dem Protokoll, der Quellen-Portnummer, der Ziel- Portnummer oder einer Untergruppe dieser Felder, wie Quellen IP Adresse und Ziel IP Adresse. Eine Hash Funktion ist so ausgelegt, dass sie eine Berechnung an einem oder mehreren Datenwörtern durchführt und ein einzigartiges Datenwort mit geringerer Länge zurückgibt. Zum Beispiel kann eine Hash Funktion, durchgeführt an zwei 32- Bit IP Adressen, das kombinierte 64 Bit Wort durch eine Konstante dividieren und als Ergebnis den Wert des Restes in weniger Bits zurückgeben, z.B. fünf. Andere Hash Prozeduren umfassen die Durchführung einer zyklischen Redundanzprüfung (CRC = cyclic redundancy check) und/oder die Anwendung einer Prüfsumme.
  • Immer wenn eine Hash Funktion an den gleichen Ursprungswerten durchgeführt wird, wird das gleiche Ergebnis erzielt. Das stellt sicher, dass die Packets, die mit dem gleichen Quellen/Zielknotenpaar verknüpft sind, stets den gleichen Pfad nehmen, während gleichzeitig anderen Packets ermöglicht wird, andere Pfade zu nehmen. Wie oben erwähnt, können manchmal zusätzliche Felder für die Hash Operation verwendet werden. Es ist anzumerken, dass irgendwelche Packets, die zum gleichen Packet- Datenstrom gehören, d.h. Packets, die in gleicher Reihenfolge gehalten werden sollten, auch das gleiche Protokollfeld im IP Header haben. Packets, die einen anderen Wert im Protokollfeld haben, können deshalb ohne weiteres auf einem anderen Pfad übertragen werden. Ähnlich können, wenn das Protokollfeld anzeigt, dass das Protokoll auf der nächsthöheren Ebene TCP ist, die Packets, die unterschiedliche TCP Port Nummern haben, über andere Pfade geroutet werden. Aus diesen Gründen ist nicht außergewöhnlich, dass die Hash Operation auch die Protokoll- und Port- Felder berücksichtigt.
  • Somit wird in Bezug auf 1 eine Vielzahl von Hosts 14, die an den Knoten A angeschlossen sind, IP Packets an eine Vielzahl von Hosts 14 schicken, die an den Router F angeschlossen sind. Bei der oben beschriebenen Technik werden Packets von irgendeinem Quellen/Zielpaar immer über den gleichen Pfad übertragen. Der Knoten B führt die Hash Funktion an jedem eingehenden Packet durch. Das Ergebnis der Hash Funktion wird benutzt, um entweder den Knoten C oder den Knoten D als den nächsten Knoten auszuwählen, d.h. den Knoten, an den das Packet zu übergeben ist. Weil die Hash Operation an der Information im Packet ausgeführt wird, die sein dazugehöriges Quellen/Zielpaar eindeutig identifiziert, werden alle Packets, die mit diesem Paar verknüpft sind, vom Knoten B zum gleichen Knoten, d. h. entlang des gleichen Pfades, übergeben werden. Gemittelt über alle Quellen/Zielpaare werden alle Packets generell aufgeteilt, wobei einige über den Pfad gesendet werden, der den Knoten C einschließt und einige werden gesendet entlang des Pfades, der den Knoten D einschließt. Das ermöglicht eine effizientere Belastung des Netzwerks 10 durch Aufteilen des Verkehrs auf eine Mehrzahl von zur Verfügung stehenden Pfaden.
  • Weil der Bedarf an Datennetzwerk- Diensten steigt, wird es zunehmend selbstverständlich für die gegenseitige Verbindung zwischen zwei beliebigen Knoten, dass mehrfache parallele Verbindungen existieren. Die Verwendung von Mehrfach-Verbindungen erhöht die gesamte für die Datenübertragung zur Verfügung stehende Bandbreite. Die Verwendung von Mehrfach- Verbindungen ermöglicht auch, dass, wenn eine Verbindung ausfällt, es für jeweils zwei Knoten noch immer einen Pfad durch das Netzwerk gibt.
  • 2 ist ein schematisches Blockschaltbild des Netzwerks 100, das mehrfache Verbindungen 113 zwischen den Knoten 112 umfasst. Insbesondere sind die Knoten B, C, D und E im Herzen des Netzwerks 100 als über 2 parallele Verbindungen 113 zusammengeschaltet gezeigt, statt über eine einzige Verbindung.
  • In diesem Fall kann die gleiche Technik, wie oben beschrieben, für die Übergabe von Packets verwendet werden. Insbesondere kann der Knoten B eine Hash Operation an den IP Quellen- und Zieladressen durchführen. In diesem Fall hat der Knoten B vier Auswahlmöglichkeiten für mögliche Verbindungen für die Übergabe eines Packets in Richtung auf Knoten F. Der Knoten B kann deshalb eine Hash Funktion mit vier verschiedenen möglichen Ausgangswerten anwenden. Jede dieser vier Verbindungen wird als eine mögliche Auswahl für die Übergabe des Datenpackets angesehen. In diesem Fall werden, wie im vorhergehenden Fall, Packets für bestimmte einzelne Quellen/Zielpaare immer über die gleiche Verbindung gehen, d. h. entweder über eine der beiden Verbindungen zu C oder eine der beiden Verbindungen zu D. Gemittelt über alle Quellen/Zielpaare werden die Packets generell aufgeteilt, wobei einige über jede der vier Verbindungen gesendet werden. Das ermöglicht eine effizientere Belastung des Netzwerks durch Aufteilen des Verkehrs auf eine Vielzahl zur Verfügung stehende Pfade wie auch auf eine Vielzahl zur Verfügung stehender Verbindungen innerhalb eines Pfades.
  • Bei konventionellen Hash Operationen tritt ein Problem auf, das die Wirksamkeit der Funktion wesentlich reduziert. In einem typischen Netzwerk wird die gleiche Hash Funktion an jedem Knoten im Netzwerk durchgeführt. Demzufolge wird für ein bestimmtes Packet, das über einen Pfad übergeben wird, das gleiche Ergebnis der Hash Funktion an jedem Knoten erzielt.
  • Außerdem sind die Packets, die tatsächlich an einem bestimmten Knoten im Netzwerk eintreffen, eine Funktion der Hashwerte, die bei anderen Knoten signalaufwärts berechnet wurden. Das bedeutet, dass die Hash Funktion, wie sie an irgendeinem bestimmten Knoten implementiert ist, nicht alle möglichen Ausgangswerte mit der gleichen Wahrscheinlichkeit erzielt. Als Ergebnis dieser Faktoren sorgt die konventionelle Hash Funktion nicht für die bestmögliche Ausnutzung der Netzwerkressourcen.
  • Weiterer Stand der Technik wird in US-A- 5,734,651 und US-A- 6,061,712 beschrieben.
  • Zusammenfassung
  • Das oben beschriebene Problem wird gelöst durch ein Verfahren zur Datenübertragung in einem Netzwerk entsprechend Anspruch 1. das Problem wird auch gelöst durch eine Einrichtung zur Übertragung von Daten in einem Netzwerk entsprechend Anspruch 10.
  • Die vorliegende Erfindung stellt ein Verfahren zum Durchführen von Hash Operationen zur Verfügung, das sicherstellt, dass an jedem Knoten entlang eines Pfades eine andere Hash Operation ausgeführt wird, so dass die oben beschriebenen Nachteile der Vorgehensweisen nach dem Stand der Technik vermieden werden. Die Erfindung ist auf ein Verfahren und eine Vorrichtung zum Übertragen von Daten in einem Netzwerk gerichtet, das eine Vielzahl von Knoten umfasst, die durch eine Vielzahl von Verbindungen angeschlossen sind. Wenigstens einer der Knoten ist an eine Vielzahl von Verbindungen angeschlossen, über die die Daten von dem Knoten über das Netzwerk zu einem anderen Knoten weitergegeben werden können. Die Daten umfassen einen Identifikationsabschnitt, der einen Quellknoten identifiziert, von dem die Daten stammen und einen Zielknoten, zu dem die Daten übertragen werden sollen. Der wenigstens eine Knoten ist mit einem Knotenidentifikationswert verknüpft, der dazu dient, den Knoten zu identifizieren und den Knoten von anderen Knoten im Netzwerk zu unterscheiden.
  • Ein Verbindungsauswahlwert, der dazu dient, eine aus der Vielzahl von Verbindungen aus dem Knoten heraus zu identifizieren, über die die Daten übertragen werden sollen, wird erzeugt durch Verwendung des Identifikationsabschnitts der Daten und des Knotenidentifikationswerts. Weil der Auswahlwert erzeugt wird unter Verwendung des Knotenidentifikationswerts, der für den betreffenden Knoten einzigartig ist, hängt der Auswahlwert von dem speziellen Knoten ab, der den Wert erzeugt und an jedem Knoten anders sein wird, selbst bei Daten, die den gleichen Datenidentifikationsabschnitt haben.
  • Die Daten können als Datenpackets vorliegen und insbesondere als Internet Protokoll (IP) Datenpackets. Der Identifikationsabschnitt des Packets kann wenigstens ein Teil des IP Packet Headers sein. Beispielsweise kann der Identifikationsabschnitt die Quellknoten ID, die Zielknoten ID und/oder den Protokollabschnitt des IP Packet Headers umfassen. Der Knotenidentifikationswert kann ein einzelner konstanter Wert sein, der in jedem Router konfiguriert wird oder kann ein Abschnitt sein, z.B. die niedrigstwertigen Bits der IP Adresse des Knotenrouters.
  • Bei der Erzeugung des Verbindungsauswahlwerts wird eine Hash Operation an dem Identifikationsabschnitt der Daten und dem Knotenidentifikationwert durchgeführt. Nochmals, der Identifikationsabschnitt der Daten kann die Quellen ID, die Ziel ID und/oder die Protokollfelder des Headerabschnitts des Datenpackets umfassen. Die Hash Operation kann eine zyklische Redundanzprüfung (CRC) enthalten, die am Identifikationsabschnitt der Daten und am Knotenidentifikationswert durchgeführt wird.
  • Kurze Beschreibung der Zeichnungen
  • Die vorstehende und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden mehr in die Einzelheiten gehenden Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung verdeutlicht, wie dies in den dazugehörigen Zeichnungen dargestellt wird, in denen gleiche Bezugszeichen sich bei den verschiedenen Ansichten auf gleiche Elemente beziehen. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, sondern es wird besonderer Wert darauf gelegt, die Wirkungsweisen der Erfindung darzustellen.
  • 1 ist ein schematisches Blockschaltbild eines Netzwerks, das mehrere Pfade zwischen den Knoten aufweist.
  • 2 ist ein schematisches Blockschaltbild eines Netzwerks, das eine Vielzahl von Verbindungen zwischen den Knoten aufweist.
  • 3 ist ein schematisches Blockschaltbild eines Netzwerks, das mehrere Pfade zwischen den Knoten und einen Pfad mit mehreren Verbindungen zwischen den Knoten aufweist.
  • 4 ist ein schematisches Blockschaltbild eines Netzwerks, das mehrere Pfade zwischen den Knoten aufweist.
  • Detaillierte Beschreibung eines bevorzugten Ausführungsbeispiels
  • 3 ist ein Blockschaltbild einer Konfiguration eines Netzwerks 200, das mit einem der Nachteile der konventionellen Hash Funktionen behaftet ist. Das Netzwerk 200 ist ähnlich dem Netzwerk 10 von 1, ausgenommen, dass das Netzwerk 200 ein Paar paralleler Verbindungen 213a und 213b zwischen den Knoten C und E aufweist. Hier wird allgemein eine Vielzahl von Packets übertragen von Hosts 14, die direkt oder indirekt an einen Router A in Richtung auf Hosts 14 angehängt sind, die direkt oder indirekt an Router F angehängt sind. In diesem Fall kann der Router B Multipath anwenden, indem er einige Packets über den Router C und andere über den Router D schickt. Bei einer konventionellen Hash Konfiguration sind alle der Router A bis F mit der gleichen Hash Funktion ausgestattet. Wenn man annimmt, dass die Packets verschiedene Quellenadressen und/oder verschiedene Zieladressen haben, ist es für den Router B möglich, eine Hash Funktion an den Quellen- und Zieladressen auszuführen, um einige Packets über den Knoten C und einige über den Knoten D zu schicken, während alle Packets, die zu einem besonderen Quellen/Zielpaar gehören, über den gleichen Pfad gesendet werden. Das stellt eine gute Aufteilung des Verkehrs auf den Verbindungen B–C und B–D sicher, wobei es die Packetreihenfolge innerhalb jedes Host- zu- Host- Stroms aufrechterhält.
  • Bei dem Netzwerk 200 von 3 wird der Router C alle Packets zum Knoten F über den Knoten E schicken. Es ist jedoch zu beachten, dass der Knoten C zwei Verbindungen zum Knoten E hat. Deshalb ist es wünschenswert, den Verkehr gleichmäßig auf die beiden Verbindungen aufzuteilen. In den meisten Situationen wird jedoch der Router C identisch zum Knoten B ausgestattet sein oder wird wenigstens die gleiche Hash Funktion für das Auswählen der Pfade für die Weitergabe von Packets anwenden. Im Ergebnis wird der Router C das gleiche Ergebnis der Hash Funktion aufweisen.
  • Zur Erklärung des Problems wird angenommen, dass die Hash Funktion in den Routern des Netzwerks 200 aus einer zyklischen Redundanzprüfung (CRC) an der IP Quellen- und Zieladresse des Packets besteht. Es wird weiterhin angenommen, dass alle Packets mit einem geraden Ergebnis auf eine Verbindung gegeben werden und alle Packets mit einem ungeraden Ergebnis über die andere Verbindung. Bei Knoten B wird beispielsweise angenommen, dass alle Packets mit einem geraden Ergebnis zum Knoten C weitergegeben werden und alle Packets mit einem ungeraden Ergebnis zum Knoten D. Ebenso werden am Knoten C alle Packets mit einem geraden Ergebnis auf die obere Verbindung 213a nach E gegeben und alle Packets mit einem ungeraden Ergebnis auf die untere Verbindung 213b zum Knoten E.
  • Das Problem ist hier, dass alle Packets, die am Knoten C eintreffen (von A nach F) Packets sind, bei denen die Hash Funktion bei diesem Beispiel ein gerades Ergebnis bringt. Unter der Annahme, dass der Knoten C die exakt gleiche Hash Funktion an den exakt gleichen Feldern im IP Packet ausführt, wird das gleiche Ergebnis erzielt, was bedeutet, dass alle Packets einen geraden Hashwert ergeben, wenn die Funktion am Knoten C ausgewertet wird. Als Resultat werden alle Packets die obere Verbindung 213a zum Knoten E nehmen, und die untere Verbindung 213b wird überhaupt nicht benutzt. Das ist eine sehr ungleichmäßige und ineffiziente Ausnutzung der Verbindungen zwischen Knoten C und E.
  • 4 ist ein Blockschaltbild einer weiteren Konfiguration eines Netzwerks 300, bei dem Nachteile auftreten in Verbindung mit einer konventionellen Hash Lösung. Im Netzwerk 300, das in 4 dargestellt wird, wird Datenverkehr von den Hosts 14, die an den Knoten A angeschlossen sind, zu den Hosts 14, die an den Knoten G angeschlossen sind, übertragen. Der Knoten C verwendet eine Hash Funktion, um eine der zwei Verbindungen 313c und 313f auszuwählen, die benutzt werden, um Daten zum Knoten G über den Knoten F bzw. den Knoten E zu übertragen. Zur Erläuterung sei wiederum angenommen, dass der Knoten B Packets mit einem geraden Hashwert zum Knoten C überträgt und Packets mit einem ungeraden Hashwert zum Knoten D. Es sei weiterhin angenommen, dass der Knoten C Packets mit einem geraden Hashwert zum Knoten E schickt und Packets mit einem ungeraden Hashwert zum Knoten F. In diesem Fall empfängt der Knoten C wegen der Hash Operation, die am Knoten B durchgeführt wird, nur Packets mit geraden Hashwerten. Wenn der Knoten C seine Hash Operation an den Packets durchführt, werden nur gerade Ergebnisse erzielt, und alle Packets werden auf der Verbindung 313f zum Knoten E weitergegeben und auf der Verbindung 313g zum Knoten G. Die Verbindungen 313c zum Knoten F und 313h zum Knoten G würden überhaupt nicht benutzt, was wiederum in einer sehr ineffizienten Ausnutzung der Netzwerkressourcen resultiert.
  • Erfindungsgemäß wird an jedem Knoten entlang eines Pfades eine andere Hash Operation durchgeführt, sodass diese Probleme mit den konventionellen Hash Lösungen eliminiert werden. Diese Vorgehensweise stellt sicher, dass eine relativ gleichmäßige Aufteilung des Verkehrs an jedem Knoten erreicht werden kann, so dass die Netzwerkressourcen effizienter ausgenutzt werden.
  • Für allgemeine Netzwerkanwendungen würde es schwierig sein, an jedem Knoten eine andere Hash Prozedur zu implementieren, wenn man die große Zahl von Knoten berücksichtigt. Stattdessen benutzt die erfindungsgemäße Hash Operation beide spezielle Felder im Datenpacket und einen zusätzlichen Eingangswert, der für jeden Router einzigartig ist. Der zusätzliche Eingangswert kann beispielsweise ein einzelner konstanter Wert sein, der in jedem Router konfiguriert wird, oder es kann ein Abschnitt sein, beispielsweise die niedrigwertigen Bits der IP Adresse des Routers. Somit kann bei einem Ausführungsbeispiel die Hash Operation durchgeführt werden an der Quellen- ID und der Ziel-ID des übertragenen Packets und der IP Adresse des Routers. Die Hash Operation produziert ein Ergebnis, das für jeden Router einzigartig ist, selbst wenn die Operation für das gleiche Packet durchgeführt wird. Somit wird im Ergebnis das oben beschriebene Problem mit konventionellen Hashing Prozeduren eliminiert.
  • Bei einem Ausführungsbeispiel ist die bestimmte Hashoperation, die an jedem Knoten durchgeführt wird, eine zyklische Redundanzprüfung (CRC), die den zusätzlichen, einzigartigen Knoten- Identifikations- Eingangswert umfasst. Die CRC Funktion verhält sich unterschiedlich, wenn der einzigartige Knotenidentifikationswert erfindungsgemäß angewendet wird. Zur Erläuterung wird angenommen, dass ein Knoten eine CRC an einem Satz von Packets durchführt, so dass es n mögliche Ergebnisse gibt. Es wird weiterhin angenommen, dass es einen Satz von Packets gibt, so dass eine an diesen Packets durchgeführte CRC in nur m einzigartigen Werte aus einem Raum von n möglichen Werten resultiert, wobei m < n ist. Wenn die CRC stattdessen an dem gleichen Satz von Packets durchgeführt wird, und dabei ein anderer einzigartiger Wert verwendet wird, z. B. ein einzigartiger Knotenwert, dann wird die CRC nunmehr n einzigartige Werte im Bereich von n möglichen Werten ergeben. Das ermöglicht, dass eine unabhängige Hashfunktion effektiv an jedem Knoten in einem Netzwerk angewendet werden kann.
  • Die erfindungsgemäße CRC Operation hat insbesondere zwei Operanden, nämlich die Eingangsdaten, für die die CRC zu berechnen ist, und einen festen Operanden, der oft auch als Erzeugerpolynom bezeichnet wird. Wie aus dem Stand der Technik bekannt, wird das Erzeugerpolynom auf Basis verschiedener Merkmale der CRC Berechnung ausgewählt, einschließlich der Größe des CRC Ergebnisses. Die CRC Berechnung wird betrachtet als eine Division von Polynomen mit binären Koeffizienten. Die CRC Berechnung beinhaltet das Holen der Eingangsdaten, die durch ein solches Polynom repräsentiert werden und die Division mit dem Erzeugerpolynom. Der Rest der Division ist das CRC Ergebnis. In der Praxis wird, weil ein digitaler Computer die Daten als binäre Digits speichert, die Polynomarithmetik als binäre Arithmetik ohne Übertrag zwischen Bitpositionen implementiert.
  • Bei einem Ausführungsbeispiel umfassen die Eingangsdaten für die CRC Berechnung die Information, die der Identifikation der zu übertragenen Packets dient. Z. B. können die Eingangsdaten die Quellenadresse und die Zieladresse des Packetheaders enthalten. Zusätzlich umfassen die Eingangsdaten für die CRC auch den (knotenspezifischen) Knotenidentifikationswert. Die zwei Adressen wie auch der knotenspezifische Wert können in ein einziges langes Mehrbitwort kombiniert werden. Bei dem gezeigten Ausführungsbeispiel sind beispielsweise die Quellenadresse und die Zieladresse jeweils 32 Bit lang und der knotenspezifische Wert kann 16 Bit lang sein. Somit ist das Eingangsdatenwort für die CRC Berechnung ein einziges 80 Bit Wort. Dieses Eingangsdatenwort wird verwendet, um die CRC- Berechnung mit dem ausgewählten Generatorpolynom durchzuführen, um das Hashergebnis zu erzeugen. Weil der knotenspezifische Wert als Teil der CRC verwendet wird, ist der Hashwert einzigartig für den bestimmten Knotenrouter.
  • Bei einem weiteren Ausführungsbeispiel ist der knotenspezifische Wert kein Teil des Eingangsdatenworts für die CRC. Stattdessen wird er benutzt als Anfangswert für die CRC- Berechnung. Bei der CRC Berechnung wird ein temporäres Register verwendet, um die aktualisierten Werte des CRC-Ergebnisses zu speichern, während die Berechnung durchgeführt wird. Bei jedem Schritt der Berechnung wird dieses Register mit dem letzten Wert des CRC Ergebnisses aktualisiert. Bei diesem Ausführungsbeispiel der Erfindung wird der knotenspezifische Wert in das temporäre Register geladen, bevor die Berechnung beginnt. Die Berechnung wird dann durchgeführt am Generatorpolynom und den Eingangsdaten, die in diesem Falle nur die Informationen von dem zu übertragenden Packet enthalten, z. B. die Quellenadresse und die Zieladresse für das Packet. Somit wird der knotenspezifische Wert in diesem Falle als ein Anfangswert für das CRC Ergebnis verwendet, der mit fortschreitender Berechnung aktualisiert wird. Nochmals, weil der knotenspezifische Wert in der CRC Berechnung verwendet wird, erzeugt der Hashvorgang an jedem Knoten ein unterschiedliches Ergebnis für das gleiche Datenpacket.
  • Während die vorliegende Erfindung insbesondere dargestellt und beschrieben wird mit Bezug auf bevorzugte Ausführungsbeispiele, ist für den Fachmann auf diesem Gebiet klar, dass verschiedene Änderungen der Ausführung und der Details gemacht werden können, ohne vom Schutzbereich der Erfindung abzuweichen, der durch die anhängenden Ansprüche definiert ist.

Claims (18)

  1. Verfahren zur Datenübertragung in einem Netzwerk (10), wobei das besagte Netzwerk eine Vielzahl von Knoten (12) umfasst, die durch eine Vielzahl von Verbindungen (13) verbunden sind, und wobei wenigstens ein Knoten an mehr als eine Verbindung angeschlossen ist, über die die Daten aus dem wenigstens einen Knoten heraus übertragen werden können, wobei das Verfahren umfasst: Bereitstellen der Daten mit einem Identifikationsabschnitt, der einen Quellen und einen Zielknoten für die Daten identifiziert; Verknüpfen des wenigstens einen Knoten mit einem Knotenidentifikationswert, um den wenigstens einen Knoten von den anderen Knoten im Netzwerk zu unterscheiden; und Verwenden des Identifikationsabschnitts der Daten und des Knotenidentifikationswerts zum Erzeugen eines Verbindungsauswahlwerts, der eine aus der Vielzahl von Verbindungen identifiziert, die an den wenigstens einen Knoten angeschlossen sind, um die Daten aus dem wenigstens einen Knoten heraus zu übertragen; dadurch gekennzeichnet, dass die Erzeugung des Verbindungsauswahlwertes die Ausführung einer Hash- Operation an dem Identifikationsabschnitt der Daten und dem Knotenidentifikationswert umfasst, wobei an jedem Knoten entlang des Pfades eine andere Hash- Operation durchgeführt wird, wodurch ein Resultat erzielt wird, das einzigartig für jeder. Knoten ist.
  2. Verfahren nach Anspruch 1, wobei die Daten als Packets vorliegen.
  3. Verfahren nach Anspruch 2, wobei die Packets als Internet Protokoll (IP) Packets vorliegen.
  4. Verfahren nach Anspruch 2, wobei der Identifikationsabschnitt der Daten wenigstens einen Teil eines Headers des Packets bildet.
  5. Verfahren nach Anspruch 4, wobei der Identifikationsabschnitt der Daten einen Quellenknoten- ID-Abschnitt des Headers umfasst.
  6. Verfahren nach Anspruch 4, wobei der Identifikationsabschnitt der Daten einen Zielknoten- ID-Abschnitt des Headers umfasst.
  7. Verfahren nach Anspruch 4, wobei der Identifikationsabschnitt der Daten einen Protokoll- Abschnitt des Headers umfasst.
  8. Verfahren nach Anspruch 1, wobei der Knotenidentifikationswert eine Internet Protokoll (IP) Adresse des wenigstens einen Knotens ist.
  9. Verfahren nach Anspruch 1, wobei die Hash Operation das Durchführen einer zyklischen Redundanzprüfung (CRC = cyclic redundancy check) am Identifikationsabschnitt der Daten und am Knotenidentifikationswert umfasst.
  10. Einrichtung zur Datenübertragung in einem Netzwerk (10), wobei das besagte Netzwerk eine Vielzahl von Knoten (12) umfasst, die durch eine Vielzahl von Verbindungen (13) verbunden sind, und wobei wenigstens ein Knoten an eine Vielzahl von Verbindungen angeschlossen ist, über die die Daten aus dem wenigstens einen Knoten heraus übertragen werden können, wobei die Daten mit einem Identifikationsabschnitt versehen sind, der einen Quellen und einen Zielknoten für die Daten identifiziert und der wenigstens eine Knoten mit einem Knotenidentifikationswert verknüpft ist, um den wenigstens einen Knoten von den anderen Knoten im Netzwerk zu unterscheiden; und wobei die Einrichtung umfasst: eine Ausgangsschnittstelle, über die die Daten an eine aus der Vielzahl der Verbindungen übergeben werden können; und eine Verarbeitungseinrichtung zur Erzeugung eines Verbindungsauswahlwerts unter Verwendung des Identifikationsabschnitts der Daten und des Knotenidentifikationswerts, wobei der besagte Verbindungsauswahlwert eine aus der Vielzahl von Verbindungen identifiziert, die an den wenigstens einen Knoten angeschlossen sind, um die Daten aus dem wenigstens einen Knoten heraus zu übertragen; dadurch gekennzeichnet, dass die Erzeugung des Verbindungsauswahlwertes die Ausführung einer Hash- Operation an dem Identifikationsabschnitt der Daten und dem Knotenidentifikationswert umfasst, und weiterhin dadurch gekennzeichnet, dass an jedem Knoten entlang des Pfades eine andere Hash- Operation durchgeführt wird, wodurch ein Resultat erzielt wird, das einzigartig für jeden Knoten ist.
  11. Einrichtung nach Anspruch 10, wobei die von der Einrichtung übertragenen Daten als Packets vorliegen.
  12. Einrichtung nach Anspruch 11, wobei die von der Einrichtung übertragenen Packets als Internet Protokoll (IP) Packets vorliegen.
  13. Einrichtung nach Anspruch 11, wobei der Identifikationsabschnitt der Daten, der von der Verarbeitungseinrichtung zur Erzeugung des Verbindungsauswahlwerts benutzt wird, wenigstens einen Teil des Headers des Packets bildet.
  14. Einrichtung nach Anspruch 13, wobei der Identifikationsabschnitt der Daten, der von der Verarbeitungseinrichtung zur Erzeugung des Verbindungsauswahlwerts benutzt wird, einen Quellenknoten- ID- Abschnitt des Headers umfasst.
  15. Einrichtung nach Anspruch 13, wobei der Identifikationsabschnitt der Daten, der von der Verarbeitungseinrichtung zur Erzeugung des Verbindungsauswahlwerts benutzt wird, einen Zielknoten- ID-Abschnitt des Headers umfasst.
  16. Einrichtung nach Anspruch 13, wobei der Identifikationsabschnitt der Daten, der von der Verarbeitungseinrichtung zur Erzeugung des Verbindungsauswahlwerts benutzt wird, einen Protokoll-Abschnitt des Headers umfasst.
  17. Einrichtung nach Anspruch 10, wobei der Knotenidentifikationswert, der von der Verarbeitungseinrichtung zur Erzeugung des Verbindungsauswahlwerts benutzt wird, eine Internet Protokoll (IP) Adresse des wenigstens einen Knotens ist.
  18. Einrichtung nach Anspruch 10, wobei die von der Verarbeitungseinrichtung durchgeführte Hash Operation eine zyklische Redundanzprüfung (CRC) am Identifikationsabschnitt der Daten und am Knotenidentifikationswert umfasst.
DE60117554T 2000-07-06 2001-07-02 Verfahren und vorrichtung zur effizienten hashing in netze Expired - Lifetime DE60117554T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US610278 2000-07-06
US09/610,278 US6870849B1 (en) 2000-07-06 2000-07-06 Apparatus and method for efficient hashing in networks
PCT/US2001/020864 WO2002005485A2 (en) 2000-07-06 2001-07-02 Apparatus and method for efficient hashing in networks

Publications (2)

Publication Number Publication Date
DE60117554D1 DE60117554D1 (de) 2006-04-27
DE60117554T2 true DE60117554T2 (de) 2006-08-10

Family

ID=24444401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60117554T Expired - Lifetime DE60117554T2 (de) 2000-07-06 2001-07-02 Verfahren und vorrichtung zur effizienten hashing in netze

Country Status (6)

Country Link
US (1) US6870849B1 (de)
EP (1) EP1297665B1 (de)
AT (1) ATE319250T1 (de)
AU (1) AU2001271689A1 (de)
DE (1) DE60117554T2 (de)
WO (1) WO2002005485A2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7328349B2 (en) 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US7200105B1 (en) * 2001-01-12 2007-04-03 Bbn Technologies Corp. Systems and methods for point of ingress traceback of a network attack
JP2002360937A (ja) * 2001-06-08 2002-12-17 Konami Computer Entertainment Osaka:Kk データ配信システム、データ配信サーバ及びビデオゲーム装置
US20030120932A1 (en) * 2001-12-21 2003-06-26 Koninklijke Philips Electronics N.V. Synchronizing source and destination systems via parallel hash value determinations
US7836295B2 (en) * 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
CN100499575C (zh) * 2003-06-03 2009-06-10 诺基亚西门子通信有限责任两合公司 在面向分组的网络中进行业务分配的方法
CN1327673C (zh) * 2005-01-29 2007-07-18 华为技术有限公司 一种多协议标签交换网络的数据传输方法及系统
US8059551B2 (en) * 2005-02-15 2011-11-15 Raytheon Bbn Technologies Corp. Method for source-spoofed IP packet traceback
US8316416B2 (en) 2005-04-04 2012-11-20 Research In Motion Limited Securely using a display to exchange information
US9143323B2 (en) * 2005-04-04 2015-09-22 Blackberry Limited Securing a link between two devices
US7333430B2 (en) * 2005-07-06 2008-02-19 Fortinet, Inc. Systems and methods for passing network traffic data
US8670566B2 (en) * 2006-05-12 2014-03-11 Blackberry Limited System and method for exchanging encryption keys between a mobile device and a peripheral output device
CN101202746B (zh) * 2006-12-15 2011-04-20 华为技术有限公司 节点标识符生成方法及负载均衡方法及装置
US9172756B2 (en) * 2013-03-12 2015-10-27 Cisco Technology, Inc. Optimizing application performance in a network environment
US9667543B2 (en) 2014-08-08 2017-05-30 Microsoft Technology Licensing, Llc Routing requests with varied protocols to the same endpoint within a cluster
US10681189B2 (en) 2017-05-18 2020-06-09 At&T Intellectual Property I, L.P. Terabit-scale network packet processing via flow-level parallelization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5563878A (en) * 1995-01-05 1996-10-08 International Business Machines Corporation Transaction message routing in digital communication networks
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6044080A (en) * 1996-11-19 2000-03-28 Pluris, Inc. Scalable parallel packet router
US5978951A (en) * 1997-09-11 1999-11-02 3Com Corporation High speed cache management unit for use in a bridge/router
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
US6397260B1 (en) * 1999-03-08 2002-05-28 3Com Corporation Automatic load sharing for network routers

Also Published As

Publication number Publication date
DE60117554D1 (de) 2006-04-27
EP1297665A2 (de) 2003-04-02
EP1297665B1 (de) 2006-03-01
WO2002005485A3 (en) 2002-07-25
US6870849B1 (en) 2005-03-22
AU2001271689A1 (en) 2002-01-21
ATE319250T1 (de) 2006-03-15
WO2002005485A2 (en) 2002-01-17

Similar Documents

Publication Publication Date Title
DE60117554T2 (de) Verfahren und vorrichtung zur effizienten hashing in netze
DE60131596T2 (de) Stapelbare Sucheinrichtung
DE60213509T2 (de) Verfahren und Vorrichtung zur Verbesserung der Verfügbarkeit von Wegeleitsystemen mit mehrwege-Kostengleichheit
DE69735740T2 (de) Asynchrone paketvermittlung
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE60120847T2 (de) Mehrprotokollvermittler und Verfahren dazu
DE19736515B4 (de) Netzwerkknoten für Paketvermittlung mit selektiver Datenverarbeitung und entsprechendes Verfahren
DE60128007T2 (de) Vorrichtung und verfahren zur sicherheitsbearbeitung von kommunikationspaketen
DE60018780T2 (de) Verfahren und vorrichtung zur erkennung von datenpaketen in echtzeit in dem anschluss einer netzwerkvermittlungsstelle
DE69730452T2 (de) Verfahren und vorrichtung zur cachespeicherung von politik zur verwendung in einem kommunikationsgerät
DE602005006070T2 (de) Interner Lastausgleich in einem Datenschalter mit verteiltem Netzwerkprozess
DE10100842B4 (de) Kommunikationsvorrichtung mit Mehrschichten-Klassenidentifikation und Prioritätssteuerung
DE60309527T2 (de) System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten
EP1405422B1 (de) Verfahren zur optimierten nutzung von sctp (stream control transmission protocol) in mpls (multi protocol label switching) netzen
DE60302045T2 (de) Verfahren und System zur geordneten dynamischen Verteilung von Paketströmen zwischen Netzwerkprozessoren
EP1720287B1 (de) Filtern von Paketen
DE60133175T2 (de) Kommunikationsnetz
DE19526962C2 (de) Flußsteuerungsmechanismus für eine Paket-geschaltete Computerverbindung
DE69729089T2 (de) Partieller atm-durchgang
DE112016002952T5 (de) Systeme und Verfahren zum Verarbeiten von Paketen in einem Computernetz
DE602005002325T2 (de) Verfahren zur Verkehrsweiterlenkung, die Verkehrsgewichtungsfaktoren verwendet
DE60303384T2 (de) Lastausgleich in datennetzwerken
DE112005002981T5 (de) Maskierbarer inhaltsadressierbarer Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition