-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft allgemein Datennetzwerke und insbesondere
die Vermeidung duplizierter Verarbeitung in Datennetzwerken.
-
Allgemeiner Stand der Technik
-
Während sie
durch ein Datennetzwerk übertragen
werden, werden verschiedene Operationen auf Datenpakete angewandt.
Zu solchen Operationen gehören
zum Beispiel Routing, Markierung, Kompression, Buchhaltung, Verschlüsselung
und Formung. Bestimmte Operationen (zum Beispiel Routing) werden
auf jedes Datenpaket in jedem Knoten angewandt. Andere Operationen
(zum Beispiel Verschlüsselung)
müssen
nur einmal während
der Übertragung
durch das Netzwerk auf jedes Datenpaket angewandt werden, oder dies
ist am besten. Solche Operationen werden hier als einmalige Operationen
bezeichnet.
-
Im
allgemeinen gibt es zwei Gründe,
aus denen eine Operation nur einmal auf ein Paket angewandt werden
sollte, Korrektheit und Effizienz. Erstens kann es falsch sein,
eine Operation mehr als einmal anzuwenden. Zum Beispiel ist es bei
einer Gebührenberechnungsanwendung
angemessen, Benutzungsdaten einmal aus einem Datenpaket zu erfassen.
Benutzungsdaten zweimal in zwei getrennten Netzwerkknoten zu erfassen
kann zu einer doppelten Gebührenberechnung
führen,
was als falsch betrachtet wird. Zum Beispiel beschreibt die gleichzeitig
anhängige
europäische
Patentanmeldung, Publikation
EP-A-1054529 mit
dem Titel "Method
And Apparatus For Associating Network Usage With Particular Users" ein Überwachungssystem,
bei dem Benutzungsdaten für
bestimmte Benutzer gesammelt werden. Wenn ein solches Überwachungssystem
in Verbindung mit einer Gebührenberechnungsanwendung verwendet
wird, kann es falsch sein, Benutzungsinformationen zwei- oder mehrmals
in verschiedenen Netzwerkknoten zu erfassen.
-
Der
zweite Grund, aus dem eine Operation nur einmal auf ein Paket angewandt
werden sollte, ist Effizienz. Wenn eine Operation kostspielig ist
und kein Vorteil darin besteht, die Operation mehrmals anzuwenden,
sollte die Operation nur einmal angewandt werden, sogar wenn mehrere
Anwendungen der Operation nicht falsch wären. Beispiele für diese Arten
von Operationen wären
Verschlüsselung
und Kompression. Für
diese Operationen sind signifikante Kosten mit der Anwendung der
Operation assoziiert und es besteht kein Vorteil darin, die Operation mehrmals
anzuwenden. Da die komplementären Operationen
der Entschlüsselung
und Dekomprimierung letztendlich auf die Daten angewandt werden müssen, ist
es gewöhnlich
nützlich,
sicherzustellen, daß diese
Operationen nur einmal angewandt werden.
-
Große Netzwerke
können
viele Netzwerkknoten enthalten, die eine gegebene einmalige Operation
anwenden können.
Während
ein Paket das Netzwerk durchquert, kann darüber hinaus das Paket von mehreren
solcher Knoten gehandhabt werden. Dadurch entsteht das Problem,
wie ein gegebener Netzwerkknoten bei Empfang eines Datenpakets bestimmen
soll, ob eine einmalige Operation angewandt worden ist, oder ob
die einmalige Operation von dem gegebenen Netzwerkknoten angewandt werden
soll.
-
Die
europäische
Patentanmeldung, Publikation
EP-A-0913965 ,
lehrt ein Verfahren zum Rundsenden von Nachrichten zwischen Stationen,
wobei jede Station beim Empfang einer Nachricht eine Reihe von Operationen
ausführt,
darunter das Konsultieren einer Routing-Tabelle, um zu bestimmen, welche die
der betrachteten Station benachbarten Stationen sind. Eine den betrachteten
Stationen benachbarte Station ist eine Station mit der Fähigkeit
zum bidirektionalen Kommunizieren mit der betrachteten Station. Anders ausgedrückt, können die
benachbarten Stationen in einer Etappe erreicht werden. Die benachbarten
Stationen sind die Stationen, die in der Routing-Tabelle der betrachteten
Station sowohl Endzielstationen als auch Zwischenzielstationen sind.
-
Die
europäische
Patentanmeldung, Publikation
EP-A-0445468 lehrt
eine Datennetzwerk-Nachrichtenrundsendeanordnung zum Verhindern,
daß eine
sogenannte verbindungslose Rundsendenachricht das Netzwerk überflutet,
weil jeder Netzwerkknoten eine solche Nachricht zu seinen Nachbarknoten
weitersendet, obwohl ein benachbarter Knoten sie von einem anderen
Nachbarn empfangen haben kann. Gemäß
EP-A-0445468 wird ein Netzwerk
von Knoten einer beliebigen Topologie weiterentwickelt, indem jeder
Netzwerkknoten so angeordnet wird, daß er nur dann eine Nachricht
zu einem benachbarten Knoten weiterleitet, wenn sich zeigt, daß eine Anzahl
vorbestimmter Bedingungen erfüllt
ist.
-
Kurzfassung der Erfindung
-
Ein
Verfahren und eine Vorrichtung gemäß der vorliegenden Erfindung
werden in den unabhängigen
Ansprüchen
definiert, auf die der Leser nun verwiesen wird. Bevorzugte Merkmale
werden in den abhängigen
Ansprüchen
definiert.
-
Eine
zweite Ausführungsform
der Erfindung besteht aus zwei Phasen. In Phase eins sendet ein Controllerknoten
in dem Netzwerk zuerst Identifikationen von Hosts, die für Operatoren
von Interesse sind. Ein Host ist für einen Operator von Interesse, wenn
die Datenpakete von dem Host einmalige Verarbeitung erfordern. Am
Ende von Phase eins sind sich die Operatoren in dem Netzwerk somit
Hosts bewußt,
deren Datenpakete einmalige Verarbeitung erfordern, aber die Operatoren
wissen noch nicht, ob sie diesen Hosts benachbart sind. Während Phase zwei
senden die Operatoren spezielle Ping-Pakete zu den in Phase eins
identifizierten Hosts. Bei Empfang eines Ping-Pakets antwortet ein
Host mit einer Ping-Antwort.
Bei Empfang einer Ping-Antwort bestimmt ein Operator, daß er dem
die Ping-Antwort sendenden Host benachbart ist. Um sicherzustellen, daß nur benachbarte
Operatoren Ping-Antworten empfangen, werfen Operatoren jegliche
von anderen Operatoren empfangene spezielle Ping-Pakete ab. Auf
diese Weise werden spezielle Ping-Pakete von nichtbenachbarten Operatoren
von zwischengeschalteten Operatoren abgefangen und abgeworfen, so
daß die
speziellen Ping-Pakete von nichtbenachbarten Operatoren niemals
den Ziel-Host erreichen, so daß sichergestellt
wird, daß der
nichtbenachbarte Host keine Ping-Antwort erhält.
-
Diese
und andere Vorteile der Erfindung werden Durchschnittsfachleuten
bei Durchsicht der folgenden ausführlichen Beschreibung und der
beigefügten
Zeichnungen ersichtlich werden.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt
eine Netzwerktopologie für
einen Teil eines Datennetzwerks, in dem die vorliegende Erfindung
implementiert werden kann;
-
2 zeigt
ein erstes Verfahren für
einen Operator zur Bestimmung, ob er einem bestimmten Host benachbart
ist;
-
3 zeigt
ein zweites Verfahren für
einen Operator zum Bestimmen, ob er einem bestimmten Host benachbart
ist; und
-
4 zeigt
ein Blockschaltbild von Komponenten einer Ausführungsform eines Operators.
-
Ausführliche Beschreibung
-
1 zeigt
eine Netzwerktopologie eines Teils eines Datennetzwerks, in dem
die vorliegende Erfindung implementiert werden kann. 1 zeigt drei
Arten von Netzwerkknoten, Hosts (H), Operator (O) und Controller
(C). Hosts sind Endbenutzermaschinen, die mit dem Datennetzwerk
verbunden sind und Netzwerkverkehr erzeugen. Operatoren sind Netzwerkknoten,
die einmalige Operationen auf empfangene Datenpakete anwenden können. Operatoren
können
Netzwerkknoten sein, die fest der Funktion des Anwendens der einmaligen
Operation zugeordnet sind. Zusätzlich
zu der Anwendung der einmaligen Operation können Operatoren auch anderen
Zwecken dienen. Zum Beispiel kann ein Operator ein Router sein,
der zusätzlich
zu dem Routen von Datenpaketen auch die einmalige Funktion anwendet.
Controller sind Netzwerkknoten, die Informationen bezüglich den
Hosts, deren Verkehr von Interesse ist, an Operatoren versenden.
Somit versendet ein Controller Identifikationen von Hosts, deren
Datenverkehr bei Empfang durch einen Operator die Anwendung einer
einmaligen Operation erfordern kann. Man betrachte zum Beispiel
einen Operator, der Netzwerküberwachung
zum Sammeln von Gebührenberechnungsinformationen
für bestimmte Hosts
durchführt.
Ein Controller versendet die Identifikation der bestimmten Hosts,
für die
der Operator solche Gebührenberechnungsinformationen
sammeln soll. 1 zeigt Hosts H1 102,
H3 106, H4 116, Operatoren
O1 104, O2 114,
O3 110 und den Controller C2 108. Der Knoten 112 repräsentiert
einen Knoten, in dem der Host H2 126 und
der Controller C1 128 auf dem einzelnen
Knoten 112 coresident sind.
-
Netzwerkoperatoren
können
gemäß der vorliegenden
Erfindung durch entsprechend konfigurierte digitale Computer implementiert
werden. 4 zeigt ein Blockschaltbild
der Komponenten einer Ausführungsform
eines Netzwerkoperators 400. Der Operator 400 enthält einen Prozessor 402 zum
Steuern der Gesamtfunktion des Operators 400. Der Prozessor 402 operiert
gemäß gespeichertem
Computerprogrammcode, der in Speicher 404 gespeichert ist.
Der Speicher 404 repräsentiert
eine beliebige Art von computerlesbarem Medium und kann zum Beispiel
RAM, ROM, optische Datenträger,
magnetische Datenträger
oder eine Kombination dieser Medien umfassen. Der Prozessor 402 führt den
Computerprogrammcode in dem Speicher 404 aus, um die Funktionsweise
des Operators 400 zu steuern. Der Prozessor 402 ist
auch mit Netzwerkschnittstellen 406, 408 verbunden,
die Netzwerkdatenpakete empfangen und senden. Anhand der vorliegenden
Beschreibung der Erfindung könnten
Fachleute ohne weiteres die Erfindung unter Verwendung programmierter
digitaler Computer implementieren. Natürlich würde die tatsächliche
Implementierung eines Netzwerkknotens gemäß der Erfindung auch andere Komponenten
umfassen. Der Klarheit halber sind solche anderen Komponenten in 4 jedoch
nicht gezeigt.
-
Als
Beispiel betrachte man den Host H1 102 (1),
der ein Datenpaket zu dem Host H3 106 sendet,
wobei das Datenpaket eine Anwendung einer einmaligen Operation benötigt. Da
der Operator O1 104 der einzige
Operator in dem Weg zwischen H1 102 und
H3 106 ist, wendet der Operator
O1 104 die einmalige Operation
an und es besteht keine Gefahr, daß die Operation mehrmals angewandt
wird. Man betrachte jedoch, daß der
Host H1 102 ein Datenpaket zu dem
Host H4 116 sendet. Die Operatoren
O1 104 und O3 110 befinden
sich beide in dem Weg zwischen H1 102 und
H4 116, und somit besteht eine
Gefahr, daß die
Operation von beiden Operatoren O1 104 und
O3 110 angewandt wird. Ähnlich betrachte man,
daß der
Host H1 102 ein Datenpaket zu dem Host
H2 126 sendet, wobei in diesem
Fall eine Gefahr besteht, daß die
einmalige Operation dreimal durch die Operatoren O1 104,
O3 110 und O2 114 angewandt
wird.
-
Die
vorliegende Erfindung liefert eine Technik zum Anwenden von einmaligen
Operationen in einem einzigen Netzwerkoperator auch dann, wenn ein Datenpaket
mehrere Operatoren durchquert. Gemäß der Technik wird, wenn eine
einmalige Operation von mehreren Netzwerkoperatoren angewandt werden kann,
sie nur von dem Operator angewandt wird, der entweder der Quelle
oder dem Ziel des Pakets (abhängig
von dem Typ der Operation) am nächsten
ist. Ein Netzwerkoperator, der eine Operation ausführen kann,
wird als einem Host benachbart definiert, wenn ein Weg zwischen
dem Operator und dem Host existiert, der kein anderes Element, das
die Operation anwenden kann, enthält. Gemäß der Erfindung wendet somit
ein Operator eine einmalige Operation auf ein Datenpaket an, wenn
der Operator der Quelle oder dem Ziel des Pakets benachbart ist.
Ob eine gegebene Operation in einem Operatorknoten, der der Quelle
oder dem Ziel eines Pakets (oder beidem) benachbart ist, angewandt
wird, hängt
im allgemeinen von der Operation selbst ab. Zum Beispiel werden
Kompressions- und Verschlüsselungsoperationen
im allgemeinen in einem der Quelle des Pakets benachbarten Knoten
angewandt, während
Dekompressions- und Entschlüsselungsoperationen
im allgemeinen in einem dem Ziel des Pakets benachbarten Operator
angewandt werden. Es kann angemessen sein, Buchhaltungsoperationen
in Operatorknoten, die sowohl der Quelle als auch dem Ziel des Pakets benachbart
sind, anzuwenden.
-
Mit
Bezug auf die in 1 gezeigte beispielhafte Netzwerktopologie
ist Operator O1 104 den Hosts H1 102 und H3 106 benachbart;
der Operator O2 114 ist den Hosts
H2 126 und H4 116 benachbart; und
der Operator O3 110 ist den Hosts
H3 106 und H4 116 benachbart.
-
Es
werden nun zwei Verfahren für
einen Operator zum Bestimmen, ob er einem bestimmten Host benachbart
ist, bereitgestellt. Das erste Verfahren wird verwendet, wenn ein
Controller und Host auf einem Netzwerkknoten coresident sind, wie
zum Beispiel der Host H2 126 und
der Controller C1 128 auf den Netzwerkknoten 112.
Das zweite Verfahren wird verwendet, wenn der Controller und der
Host nicht coresident sind.
-
Das
erste Verfahren wird in Verbindung mit 2 beschrieben.
Man betrachte einen Host H1 210,
der mit dem Controller C1 212 auf
dem Netzwerkknoten 202 coresident ist. Der Host H1 210 möchte ein Datenpaket zu dem
Host H2 208 senden. Das von H1 210 zu H2 208 gesendete
Datenpaket läuft
durch die Operatoren O1 204 und
O2 206. Gemäß dem Verfahren sendet, bevor
ein Host ein Datenpaket zu einem neuen Zielhost sendet, der coresidente
Controller ein spezielles Datenpaket, das als s-Paket bezeichnet
wird, zu dem Zielhost. Das s-Paket
enthält
eine Identifikation des coresidenten Hosts und bestimmte andere
Angaben, die das Paket als s-Paket identifizieren. Zum Beispiel
können
s-Pakete auf dem Internet-Steuernachrichtenprotokoll (ICMP) basieren,
wobei die Paketnutzinformationen so codiert werden, daß s-Pakete
ohne weiteres von regulären
ICMP-Pakteten unterschieden
werden können. Jeder
Operator, der das s-Paket empfängt,
schließt, daß er dem
identifizierten Host benachbart ist und wirft danach das s-Paket
ab, ohne es weiter in Richtung seines Ziels weiterzuleiten. Dadurch
wird sichergestellt, daß kein
anderer signalabwärtsgelegener Operator
das s-Paket empfängt.
Wenn mit Bezug auf 2 Host H1 210 dabei
ist, zum ersten Mal ein Datenpaket zu dem Zielhost H2 208 zu
senden, sendet der Controller C1 212 zuerst
ein an den Host H2 208 adressiertes
s-Paket 214. Das s-Paket 214 wird in dem Operator
O1 204 empfangen. Nach Empfang des
s-Pakets 214 bestimmt der Operator O1 204,
daß er
dem Host H1 210 benachbart ist
und wirft das s-Paket 214 ab. Folglich weist der Operator
O1 204, daß er dem Host H1 210 benachbart
ist und daß er
einmalige Operationen auf Datenpakete anwenden soll, die mit dem
Host H1 210 assoziiert sind (d.h.
ist der Host H1 210 entweder der Quellen-
oder der Zielhost des Datenpakets). Da der Operator O1 204 das
s-Paket 214 abgeworfen hat, empfängt der Operator O2 206 ferner
das s-Paket nicht und der Operator O2 206 wendet
keine einmaligen Operationen auf Datenpakete an, die mit dem Host
H1 210 assoziiert sind. Wenn Datenpakete
von dem Host H1 210 in dem Operator
O2 206 auf dem Weg zu dem Host
H2 208 empfangen werden, wendet
der Operator O2 206 somit die einmalige
Operation nicht auf das Datenpaket an, sondern leitet statt dessen
einfach nur das Datenpaket zu seinem Ziel H2 208 weiter.
-
Das
zweite Verfahren für
einen Operator zum Bestimmen, ob er einem bestimmten Host benachbart
ist, wird nun beschrieben. Das zweite Verfahren wird verwendet,
wenn der Controller und der Host nicht coresident sind. Dieses Verfahren
findet in zwei Phasen statt. Während
der ersten Phase sendet der Controller die Identifikation eines
Hosts, dessen Datenpakete eine einmalige Operation erfordern, zu
allen Operatoren rund. Am Ende von Phase eins sind sich somit alle
Operatoren über
die Existenz des Hosts bewußt,
aber die Operatoren wissen noch nicht, ob sie dem Host benachbart
sind, In der zweiten Phase versucht jeder Operator, durch Verwendung
einer Ping-Technik zu bestimmen, ob er dem Host benachbart ist.
Ein Ping ist eine wohlbekannte Technik des Internet-Protokolls (IP),
bei der ein erster Netzwerkknoten ein Ping-Paket zu einem zweiten Netzwerkknoten
sendet. Bei Empfang eines Ping-Pakets antwortet ein Knoten mit einer
Ping-Antwort. Pings sind in der Technik der Datennetzwerke wohlbekannt
und werden im allgemeinen zum Prüfen
von Netzwerkkonnektivität
oder zum Bestimmen, ob ein Knoten aktiv ist, verwendet.
-
Gemäß einer
Ausführungsform
der Erfindung sendet in Phase zwei jeder Operator, der eine Hostidentifikation
in Phase eins empfangen hat, ein spezielles Ping, das als s-Ping
bezeichnet wird, zu dem identifizierten Host. Wenn ein Operator
ein für einen
Host bestimmtes s-Ping von einem anderen Operator empfängt, wirft
der Operator ferner das s-Ping ab. Wenn ein Host ein s-Ping empfängt, antwortet
er mit einer s-Ping-Antwort. Gemäß Phase zwei
empfangen Hosts s-Pings nur von benachbarten Operatoren, weil nichtbenachbarte
Operatoren ihre s-Pings
von den dazwischentretenden Operator abgeworfen bekommen haben.
Wenn also ein Operator eine s-Ping-Antwort von einem Host empfängt, bestimmt
der Operator, daß er
diesem Host benachbart ist und daß er einmalige Operationen
auf Datenpakete anwenden soll, die mit diesem Host assoziiert sind.
Wenn ein Operator innerhalb eines vorbestimmten Zeitraums eine s-Ping-Antwort empfängt, bestimmt
der Operator, daß er
dem Host nicht benachbart ist und daß er keine einmaligen Operationen
auf Datenpakete anwenden soll, die mit diesem Host assoziiert sind.
Ein geeigneter Zeitraum könnte
zum Beispiel in der Größenordnung
von 1-2 Sekunden oder weniger liegen.
-
Das
zweite Verfahren wird ausführlicher
im Kontext eines konkreten Beispiels in Verbindung mit 3 beschrieben.
In 3 ist der Controller C1 302 nicht
mit einem Host coresident. Es wird angenommen, daß der Controller
C1 302 über Hosts Kenntnis hat und
darüber,
wann Host-Datenpakete einmalige Operationen von den Operatoren in
dem Netzwerk erfordern. Zum Beispiel kann der Controller C1 302 ein Netzwerk-Authentifikationsknoten
sein, der Hosts in dem Netzwerk authentifiziert. Wenn ein Host in dem
Netzwerk authentifiziert, kann ein Controller C1 302 eine
Identifikation dieses Hosts zu den Operatoren in dem Netzwerk senden,
so daß die
Operatoren Gebührenberechnungsoperationen
auf Datenpakete anwenden können,
die von diesem Knoten stammen oder für ihn bestimmt sind (d.h. mit
ihm assoziiert sind). Mit Bezug auf 3 nehme
man somit an, daß Datenpakete,
die mit dem Host H1 304 assoziiert sind,
einmalige Verarbeitung durch Operatoren in dem Netzwerk erfordern.
In Phase eins sendet der Controller C1 302 die
Identifikation des Hosts H1 304 zu
den Operatoren O1 306 und O2 308 rund. Am Ende von Phase 1
sind sich die Operatoren O1 306 und
O2 308 somit bewußt, daß mit dem
Host H1 304 assoziierte Datenpakete
einmalige Verarbeitung erfordern, aber die Operatoren O1 306 und
O2 308 wissen noch nicht, ob sie
dem Host H1 304 benachbart sind.
-
In
Phase zwei senden die Operatoren O1 306 und
O2 308 s-Pings 314 bzw. 312 zu
dem Host H1 304. Somit empfängt der
Operator O1 306 das von dem Operator
O2 308 erzeugte s-Ping 312 und
der Operator O1 306 wirft das s-Ping 312 ab.
Somit erreicht nur das von dem Operator O1 306 gesendete s-Ping 314 den
Host H1 304. Bei Empfang des s-Ping 314 antwortet
der Host H1 304 mit der s-Ping-Antwort 316.
Bei Empfang der s-Ping-Antwort 316 bestimmt der Operator
O1 306, daß er dem Host H1 304 benachbart
ist und daß er
einmalige Operationen auf Datenpakete anwenden soll, die mit dem
Host H1 304 assoziiert sind. Der
Operator O2 308 empfängt keine s-Ping-Antwort, weil
sein s-Ping 312 von dem Operator O1 306 abgeworfen
wurde. Somit empfängt
der Operator O2 308 in dem vorbestimmten
Zeitraum keine s-Ping-Antwort und bestimmt, daß er dem Host H1 304 nicht
benachbart ist. Folglich wendet der Operator O2 308 keine
einmaligen Operationen auf Datenpakete an, die mit dem Host H1 304 assoziiert sind.
-
Gemäß einer
Ausführungsform
der Erfindung können
Controller das Versenden von Informationen über Hosts periodisch wiederholen.
Dies hilft bei der Handhabung der Möglichkeit, daß bestimmte Datenpakete
verloren werden können.
Ferner behandelt es periodische Änderungen
der Netzwerktopologie.
-
Die
Prinzipien der vorliegenden Erfindung können auf jede Netzwerkanwendung
angewandt werden, die einmalige Operationen erfordert. Zum Beispiel
und ohne Einschränkung
wären solche Netzwerkanwendungen Buchhaltung,
Gebührenberechnung,
Kompression, Tunnelung, Verschlüsselung,
Paketmarkierung für
Dienstgüte
und Ende-zu-Ende-Messung der Dienstgüte (z.B. Latenz oder Bandbreite).