-
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.