-
Die
vorliegende Erfindung betrifft ein Verfahren zur Festlegung eines
Weges zwischen zwei Knoten eines Datennetzwerks unter Verwendung
der Protokolle der Familie TCP/IP (Transmission Control Protocol/Internet
Protocol).
-
Gemäß diesen
Protokollen hat jeder Knoten des Netzes typischerweise nur Sicht
auf einen Teil des Netzes, so dass die Routingfunktion über das Netz
verteilt wird, ohne dass einer der Knoten Kenntnis des gesamten
von den Datenpaketen zurückgelegten
Weges hat.
-
Dieses
Routingprotokoll kann beispielsweise TCP (Transmission Control Protocol)
oder UDP (User Datagram Protocol) sein.
-
In
der Mehrzahl der Fälle
sind diese Protokolle ausreichend, denn im Allgemeinen ist der Absender
eines Pakets lediglich an der effektiven Übertragung seines Pakets interessiert
und nicht an dem genauen Weg, dem es folgt. Es gibt allerdings auch einige
Anwendungen, bei welchen die Kenntnis des gesamten von den Paketen
zurückgelegten
Weges, wenn nicht unverzichtbar, so doch zumindest wichtig ist.
-
Eine
solche Anwendung ist beispielsweise die Übertragung von Paketen an mehrere
Empfänger,
wie in 1 veranschaulicht und im RFC (Request for Comments)
Nr. 1054 mit dem Titel „Host
Extensions for IP Multicasting" beschrieben.
-
In
dieser 1 sind 7 Knoten R1, R2, R3, ...R7 dargestellt. Der Knoten R1 ist
der Absender von Datenpaketen. Diese Datenpakete sind typisch Bestandteil
eines Datenflusses, beispielsweise eines Videodatenflusses. Ebenfalls
dargestellt sind Pfeile, die den Richtungen des Informationsaustauschs
zwischen den Knoten entsprechen. Die Doppelpfeile bezeichnen symmetrische
Verbindungen.
-
Die
Knoten R6 und R7 sind
daran interessiert, diesen Datenfluss zu empfangen. Außerdem senden Sie
an R1, die Quelle des Datenflusses, eine
Registrierungsmeldung wie z.B. eine „Join"-Meldung gemäß dem Protokoll IGMP (Internet
Group Management Protocol), wie es im RFC 1112 definiert ist.
-
Die
Registrierungsmeldung des Knotens R7 durchläuft die
Knoten R5 und R2,
bevor sie beim Quellknoten R1 eintrifft.
Außerdem
durchläuft
die Registrierungsmeldung des Knotens R6 die
Knoten R4, R3, R2 und R1.
-
Der
Datenfluss wird somit zugleich zum Knoten R2 zur Übertragung
zum Knoten R6 und zum Knoten R5 zur Übertragung
zum Knoten R5 übertragen.
-
Wenn
der Knoten R1 den genauen Weg zu jedem der
Empfängerknoten
gekannt hätte,
hätte er einen
einzigen Datenfluss zum Knoten R5 übertragen,
unter der Bedingung, diesen Datenfluss zu duplizieren und einerseits
zum Knoten R7 und andererseits zum Knoten
R6 zu übertragen.
-
Wie
man sieht, erlaubt die Unkenntnis des gesamten Weges zwischen den
Knoten keine optimale Nutzung des Datennetzes und überlastet
es unnötig.
-
Eine
Lösung,
die es gestattet, Kenntnis von einem Weg zwischen zwei Knoten zu
erlangen, wurde mit der Software „TraceRoute" vorgeschlagen, dessen
erste Versionen bis ins Jahr 1988 zurückdatieren.
-
Ihr
Prinzip besteht darin, ein Paket zu dem Knoten, zu welchem ein Weg
gesucht wird, zu verwenden, indem ihm eine steigende Lebensdauer
vorgegeben wird. Jeder durchlaufene Knoten dekrementiert die Lebensdauer
des Pakets um eine Einheit. Wenn die Lebensdauer 0 erreicht, überträgt der Knoten,
der das Paket erhalten hat, das Paket nicht mehr, sondern sendet
an den Absender eine Meldung über
das Überschreiten
der Lebensdauer, wobei er seine Kennung in die Meldung einfügt. Somit besteht
ein einfaches von der Software TraceRoute angewendetes Verfahren
darin, ein Paket mit einer Lebensdauer von 1 zu senden, dann mit
einer Lebensdauer von 2, 3 usw., bis schließlich der Zielknoten erreicht
ist. Wenn jedes Mal der Absenderknoten der Meldung über das Überschreiten
der Lebensdauer gespeichert wird, lässt sich der vollständige Weg zum
Zielknoten wiederherstellen.
-
Ein
solches Verfahren hat jedoch den gewichtigen Nachteil, dass es eine
große
Zahl von Paketen benötigt.
In einem Datennetz von realer Größe kann
nämlich
die Länge
der Wege erheblich sein und daher eine zu große Anzahl von Paketen und von Meldungen über das Überschreiten
der Lebensdauer mit sich bringen.
-
Ein ähnliches
Verfahren wurde im
amerikanischen
Patent US 5675741 mit dem Titel „Method and apparatus for
determining a communications path between two nodes in an Internet
Protocol (IP) network" präsentiert.
Auch hierbei handelt es sich um ein iteratives Verfahren. Die Anzahl
der übertragenen Pakete
ist somit proportional zur Länge
des gesuchten Weges. Das Verfahren kann daher auf Grund der Multiplikation
dieser Meldungen über
das Auffinden des Weges zu einem Verstopfen des Netzes führen.
-
Das
Ziel der vorliegenden Erfindung besteht folglich darin, die Anzahl
der Pakete, die zur Festlegung eines vollständigen Weges zwischen zwei
Knoten nötig
ist, und damit die Gefahr einer Blockierung des Datennetzes zu reduzieren.
-
Zu
diesem Zweck ist ein Gegenstand der Erfindung ein Verfahren zur
Festlegung eines Weges zwischen einem Ursprungsknoten und einem
Zielknoten eines Datennetzwerks vom TCP/IP-Typ, darin bestehend,
eine Wegsuchfunktion zu definieren, die als Parameter eine Anfangsdistanz
und eine Enddistanz hat und die folgenden Schritte beinhaltet:
- • Beenden
der rekursiven Verarbeitung der Funktion, wenn sich die Anfangs-
und die Enddistanz um eine Einheit unterscheiden,
- • Versenden
einer Meldung mit einer Lebensdauer gleich einem Mittelwert, der
zwischen der Anfangs- und der Enddistanz liegt, an den Zielknoten,
- • Empfangen
einer Antwort, wobei für
den Fall,
- – dass
die Antwort vom Zielknoten kommt, dieser in der Liste der bekannten
Knoten gespeichert und rekursiv die Suchfunktion mit der Anfangsdistanz
und der Distanz des Zielknotens als Parameter ausgeführt wird,
- – dass
die Antwort eine Zeitüberschreitungsmeldung
ist, die von einem Zwischenknoten kommt, der in der Liste der bekannten
Knoten enthalten ist, rekursiv die Suchfunktion mit der Distanz
des Zwischenknotens und der Enddistanz als Parameter ausgeführt wird,
und
- – dass
die Antwort eine Zeitüberschreitungsmeldung
ist, die von einem Zwischenknoten kommt, der nicht in der Liste
der bekannten Knoten enthalten ist, der Zwischenknoten in der Liste
der bekannten Knoten gespeichert und rekursiv die Suchfunktion ein
erstes Mal mit der Anfangsdistanz und der Distanz des Zwischenknotens
als Parameter und ein zweites Mal mit der Distanz des Zwischenknotens
und der Enddistanz als Parameter ausgeführt wird.
-
Das
Verfahren besteht also darin, zu Beginn diese Wegsuchfunktion mit
einer Anfangsdistanz gleich 0 auszuführen.
-
Somit
kann man durch Anwendung eines dichotomischen Verfahrens die Zahl
der übertragenen Pakete
merklich senken.
-
Diese
liegt nämlich
in der Größenordnung des
Logarithmus des gesamten Weges.
-
Die
Erfindung und ihre Vorteile werden in der folgenden Beschreibung
in Verbindung mit den beigefügten
Abbildungen klarer werden.
-
Die
weiter oben kommentierte 1 zeigt ein Datennetzwerk und
eine mögliche
Anwendung der Erfindung.
-
Die 2a, 2b und 2c veranschaulichen
die drei nach Empfang einer Antwort möglichen Situationen gemäß der Erfindung.
-
3 zeigt
in schematischer Form ein praktisches Beispiel der Umsetzung der
Erfindung.
-
Der
erste Schritt des erfindungsgemäßen Verfahrens
besteht darin, die Wegsuchfunktion auszuführen, wobei dieser eine Anfangsdistanz
gleich O und eine Enddistanz, die vorzugsweise gleich dem doppelten
Mittelwert der Distanzen der Knoten, die in der Liste der bekannten
Knoten enthalten sind, vorgegeben werden.
-
Die
Begründung
für diesen
letzten Wert ist statistischer Art: Man nimmt an, dass die Distanz
des Zielknotens gleich dem Mittelwert der Distanz der Knoten ist,
die man bereits kennt, und berücksichtigt, dass
sich der Zielknoten in einer Distanz befindet, die höchstens
gleich dem Doppelten dieses Mittelwerts ist.
-
Die
Wegsuchfunktion versendet zunächst
an den Zielknoten eine Meldung, die eine feste Lebensdauer hat.
-
Die
Festlegung einer festen Lebensdauer kann durch Verwendung des Feldes
TTL (engl.: „Time
To Live") erfolgen,
wie es im RFC 791 spezifiziert ist. Dieses Feld TTL wird an jedem
Knoten, den die Meldung passiert, um eine Einheit dekrementiert. Wenn
es den Wert O erreicht, wird die Meldung nicht mehr übertragen,
und eine Meldung über
die Überschreitung
der Lebensdauer wird an den Absender dieser Meldung übermittelt.
-
Diese
Meldung ist typisch eine ICMP-ECHO-Meldung gemäß dem Protokoll ICMP (Internet
Control Message Protocol), das im RFC 792 definiert ist.
-
Die
Meldung über
die Überschreitung
der Lebensdauer ist eine ICMP-Meldung „TTL exceeded" gemäß diesem
selben Protokoll.
-
Gemäß einer
Eigenschaft der Erfindung antwortet der Zielknoten, wenn er die
ICMP-ECHO-Meldung empfängt,
dem Absender mit einer Meldung, die zumindest seine Kennung enthält.
-
Somit
steht der Knoten, der das erfindungsgemäße Verfahren anwendet, vor
drei Situationen, die in den 2a bis 2c veranschaulicht
sind. In diesen Abbildungen repräsentieren
die Bezugszeichen RO und RF den
Ursprungs- beziehungsweise den Endknoten.
-
Der
Fall, in dem die Antwort vom Zielknoten kommt, ist in 2a veranschaulicht.
Dies bedeutet, dass sich der Zielknoten R in einer geringeren Distanz
als vorhergesehen befindet. Daher wird die Suchfunktion (rekursiv)
ausgeführt,
indem ihm dieselbe Anfangsdistanz (also anfänglich 0) und eine Enddistanz,
die gleich der Distanz des Zielknotens ist, zugewiesen werden. Anders
ausgedrückt,
wird der Weg gesucht, der bis zu diesem Zielknoten R führt.
-
Der
Fall, in dem die Antwort eine Zeitüberschreitungsmeldung ist,
die von einem Zwischenknoten kommt, der in der Liste der bekannten
Knoten enthalten ist, wird in 2b veranschaulicht.
Dieses Mal ist der Fall dargestellt, dass der Zielknoten R weiter
entfernt ist als erwartet. Da jedoch der Knoten R2, der
geantwortet hat, bereits bekannt war, ist der Zielknoten zwischen
diesem Zwischenknoten und dem Knoten zu suchen, welcher der Enddistanz
entspricht.
-
Nun
wird die Suchfunktion mit der Distanz des Zwischenknotens R2 und der Enddistanz als Parameter ausgeführt.
-
Der
dritte Fall entspricht der Situation, dass die Antwort wie im vorangegangenen
Fall eine Meldung über
die Überschreitung
der Lebensdauer ist, aber diesmal von einem Zwischenknoten kommt,
der nicht in der Liste der bekannten Knoten enthalten ist. Diese
Situation ist in 2c veranschaulicht. Sie zeigt
den Fall, dass der Zielknoten weiter als vorgesehen entfernt und
der Zwischenknoten R1 nicht in der Liste
der bekannten Knoten enthalten ist. Es ist somit zugleich der Zielknoten
R zu suchen, der sich zwangsweise jenseits vom Zwischenknoten R1 befindet, und der Weg zu ermitteln, der
zu diesem Zwischenknoten führt.
-
In
dieser Situation wird der Zwischenknoten in der Liste der bekannten
Knoten gespeichert und rekursiv die Suchfunktion ein erstes Mal
mit der Anfangsdistanz und der Distanz des Zwischenknotens als Parameter
und ein zweites Mal mit der Distanz des Zwischenknotens und der
Enddistanz als Parameter ausgeführt.
-
Die
rekursive Verarbeitung wird beendet, wenn sich die Anfangs- und
die Enddistanz nur um eine Einheit unterscheiden.
-
3 veranschaulicht
ein Beispiel für
eine Umsetzung des erfindungsgemäßen Verfahrens.
-
Die
Bezugszeichen a, b, ...k repräsentieren die
Knoten eines Weges. Der Knoten a ist der Knoten, auf welchem das
Verfahren zur Festlegung des Weges durchgeführt wird. Dabei wird davon
ausgegangen, dass die mittlere Länge
der bekannten Wege 5 beträgt
und der Zielknoten der Knoten i ist. Außerdem wird davon ausgegangen,
dass alle Knoten bis einschließlich
zum Knoten f in der Liste der bekannten Knoten enthalten sind.
-
Zunächst wird
die Wegsuchfunktion mit 0 und 10 (dem Doppelten der mittleren Länge der
bekannten Wege) als Parameter durchgeführt.
-
Dann
wird ein Paket m1 mit einer Lebensdauer
von 5 (Mittelwert zwischen 0 und 10) an den Knoten i als Ziel gesendet.
-
Das
Paket kommt am Knoten f an, der eine Meldung über die Überschreitung der Lebensdauer zurücksendet.
-
Da
der Knoten f in der Liste der bekannten Knoten enthalten ist, wird
die Wegsuchfunktion mit 5 und 10 als Parameter durchgeführt.
-
Ein
zweites Paket m2 mit einer Lebensdauer von
7 (abgerundeter Mittelwert von 5 und 10) wird an den Knoten i gesendet.
-
Das
Paket kommt am Knoten h an, der eine Meldung über die Überschreitung der Lebensdauer zurücksendet.
-
Der
Knoten h ist nicht in der Liste der bekannten Knoten enthalten.
-
Daher
wird er der Liste der bekannten Knoten hinzugefügt, und die Wegsuchfunktion
wird zwei Mal durchgeführt.
- • Ein
erstes Mal erfolgt die Suche mit 5 (frühere Anfangsdistanz) und 7
(Distanz des Knotens h) als Parameter.
- • Ein
zweites Mal erfolgt die Suche mit 7 (Distanz des Knotens h) und
10 (frühere
Enddistanz) als Parameter.
-
Bei
der ersten Ausführung
der Wegsuchfunktion wird ein Paket m3a mit
einer Lebensdauer von 6, also dem Mittelwert zwischen den beiden
Parametern 5 und 7, an den Knoten i gesendet.
-
Das
Paket m3a kommt am Knoten g an, der eine
Meldung über
die Überschreitung
der Lebensdauer zurücksendet.
-
Dieser
Knoten ist nicht in der Liste der bekannten Knoten enthalten. Er
wird ihr somit hinzugefügt.
-
Da
sich die Distanzen 5 und 6 einerseits und 6 und 7 andererseits nur
um eine Einheit unterscheiden, wird die rekursive Verarbeitung hier
beendet.
-
Bei
der zweiten Ausführung
der Wegsuchfunktion wird ein Paket m3b mit
einer Lebensdauer von 7, also dem abgerundeten Mittelwert der beiden Parameter
7 und 10, an den Knoten i als Ziel gesendet.
-
Das
Paket m3b kommt am Knoten i an, der der
Zielknoten ist. Dieser Knoten i antwortet somit dem Knoten, wobei
er in diese Antwortmeldung seine Kennung einfügt.
-
Bei
Empfang dieser Meldung fügt
der Knoten a den Knoten i aus denselben Gründen wie bei der ersten Ausführung in
die Liste der bekannten Knoten ein, und die rekursive Verarbeitung
wird hier beendet.
-
Somit
wurden durch Aussenden von vier Paketen m1,
m2, m3a und m3b der Knoten i sowie der daraus resultierende
vollständige
Weg gefunden und in die Liste der bekannten Knoten aufgenommen.