-
Die
vorliegende Erfindung betrifft Wegelenkungsprotokolle in Computernetzwerken,
und noch genauer Wegelenkungsprotokolle in Ad-hoc-Netzwerken mit
Funkverbindungen.
-
Paketfunknetzwerke
mit vielen Funkfeldern oder Ad-hoc-Netzwerke bestehen aus beweglichen
Hosts, die mittels Routern, die sich auch bewegen können, untereinander
verbunden sind. Der Einsatz von solchen Routern ist ad hoc und die
Topologie von solchen Netzwerken ist sehr dynamisch wegen der Host-
und Router-Mobilität,
wegen Signalausfalls und Störung,
und Stromausfällen.
Zusätzlich
ist die in Ad-hoc-Netzwerken verfügbare Kanalbandbreite relativ
begrenzt, verglichen mit verdrahteten Netzwerken, und unangeleinte
Router mögen
es erfordern, mit Batterie-Lebensdauerbeschränkungen zu arbeiten. In diesen
Netzwerken muss die Wegelenkung vorzugsweise erreicht werden, indem
eine so gering wie mögliche
Anzahl von Steuernachrichten und Nachbar-zu-Nachbar-Quittungsaustauschen
wie möglich
verwendet wird, um die Kanalbandbreite für Benutzerdaten zu erhalten
und um die Batterielebensdauer von unangeleinten Knoten zu bewahren.
Wegen der Dynamik der Topologie in einem Ad-hoc-Netzwerk sind Rundfunk-Funkverbindungen
für miteinander
verbundene Router ohne dem Erfordernis nach Topologieplanung vorzuziehen.
-
Wegelenkungsprotokolle
für Computernetzwerke
können
eingeteilt werden gemäß: a) der
Art der Information, welche die Protokolle verwenden, um die bevorzugten
Wege zu berechnen, und b) der Weise, in welcher die Router die Wegelenkungsinformation
erhalten. Bezüglich
der Art der Information, die durch die Wegelenkungsprotokolle verwendet
werden, können
Wegelenkungsprotokolle in Verbindungszustandsprotokolle und Entfernungsvektorprotokolle
eingeteilt werden. Router, die ein Verbindungszustandsprotokoll
verwenden, benutzen Topologieinformationen, um Wegelenkungsentscheidungen
zu treffen; Router, die ein Entfernungsvektorprotokoll verwenden,
benutzen Entfernungen und in einigen Fällen Wegeinformationen zu Zielpunkten,
um Wegelenkungsentscheidungen zu treffen.
-
Bezüglich der
Weise, in welcher die Router Informationen erhalten, wurden Wegelenkungsprotokolle unterteilt
als entweder tabellengetrieben oder auf Anfrage. In einem Auf Anfrage-Wegelenkungsprotokoll
behalten die Router die Wegeinformationen für nur diejenigen Zielpunkte,
welche sie zum Kontaktieren als Quelle oder Relais von Informationen
benötigen.
Der grundlegende Ansatz besteht daraus, einem Router zu erlauben,
der nicht weiß,
wie er einen Zielpunkt erreichen kann, eine Flut-Such-Nachricht
auszusenden, um die Wegeinformationen zu erhalten, die er benötigt. Eines der
ersten Wegelenkungsprotokolle dieses Typs wurde vorgeschlagen, um
virtuelle Schaltungen in dem MSE-Netzwerk einzurichten, siehe V.O.K.
Li und R. Chang "Proposed
routing algorithms for the US Army mobile subscriber equipment (MSE)
network," Proc.
IEEE MILCOM'86,
Monterey, Kalifornien, Oktober 1986, und es gibt verschiedene andere,
jüngste
Beispiele dieses Ansatzes (zum Beispiel AODV, siehe C. Perkins "Ad Hoc On Demand
Distance Vector (AODV) Routing" draft-ietf-manet-aodv-00.txt, November
1997; ABR, siehe C-K. Toh, "Wireless
ATM & Ad Hoc
Networks," Kluwer,
November 1996; DSR, siehe D. Johnson und D. Maltz, "Protocols for Adaptive
Wireless and Mobile Networking," IEEE
Pers. Commun., Vol. 3, No. 1, Februar 1996; TORA, siehe V. Park
und M. Corson, "A
Highly Adaptive Distributed Routing Algorithm for Mobile Wireless
Networks," Proc.
IEEE INFOCOM 97, Kobe, Japan, April 1997; SSA, siehe R. Dube et
al., "Signals Stability-Based
Adaptive Routing (SSA) for Ad Hoc Mobile Networks," IEEE Pers. Commun.,
Februar 1997; und ZRP, siehe Z. Haas und M. Pearlman, "The Zone Routing Protocol
for Highly Reconfigurable Ad Hoc Networks," Proc. ACM SIGCOMM 98, Vancouver, British
Columbia, August 1998). Das dynamische Quellenwegelenkungsprotokoll
(DSR) wurde gezeigt, um viele andere Auf Anfrage-Wegelenkungsprotokolle
zu übertreffen.
J. Broch et al., "A
Performance Comparison of Multi-Hop Wireless Ad Hoc Networking Routing
Protokolls," Proc.
ACM MOBICOM 98, Dallas, Texas, Oktober 1998. Die bestehenden Auf
Anfrage-Wegelenkungsprotokolle unterscheiden sich in den spezifischen
Mechanismen, die zum Verteilen der Flut-Such-Pakete verwendet werden,
und den Antworten darauf, in den Mitteln, die verwendet werden,
um die während
dem Suchen anderer Knoten empfangenen Informationen zwischenzuspeichern, und
in der Weise, in der die Kosten einer Verbindung und die Existenz
eines Nachbarn bestimmt werden. Jedoch ist eine gemeinsame Charakteristik
sämtlicher
Auf Anfrage-Wegelenkungsprotokolle, die bisher bekannt sind, dass
solche Protokolle auf Entfernungen zu Zielpunkten basieren. Anders
ausgedrückt,
gibt es bis heute keine Auf Anfrage-Verbindungszustands-Wegelenkungsprotokoll-Vorschläge.
-
In
einem tabellengetriebenen Schema behält jeder Router Wegeinformationen
für jeden
bekannten Zielpunkt in dem Netzwerk und aktualisiert seine Wegelenkungstabelleneinträge wie benötigt. Beispiele
von tabellengetriebenen Algorithmen, die auf Entfernungsvektoren
basieren, sind die Routing-Protokolle
des DARPA Paketfunknetzwerks, J. Jubin und J. Tornow, "The DARPA Packet
Radio Network Protocols," Proceedings of
the IEEE, Vol. 75, No. 1, Januar 1987; DSDV, C. Perkins und P. Bhagwat, "Highly Dynamic Destination-Sequenced
Distance-Vector Routing (DSDV) for Mobile Computers," Proc. ACM SIGCOMM
94, London, UK, Oktober 1994; WRP, S. Murthy and J.J. Garcia-Luna-Aceves, "An Efficient Routing
Protocol for Wireless Networks," ACM
Mobile Networks and Applications Journal, Special issue on Routing
in Mobile Communication Networks, 1996; WIRP, J. J. Garcia-Luna- Aceves et al., " Wireless Internet
Gateways (WINGS)," Proc.
IEEE, MILCOM'97,
Monterey, Kalifornien, November 1997; und Geringster-Widerstand-Wegelenkungsprotokolle,
M. Pursley and H. B. Russell, "Routing
in Frequency-Hop Packet Radio Networks with Partial-Band Jamming," IEEE Trans. Commun.,
Vol. 41, No. 7, Seiten 1117-1124, 1993.
-
Frühere tabellengetriebene
Ansätze
zum Verbindungszustands-Wegelenken in Paketfunknetzwerken basieren
auf Topologie-Rundsendungen. Jedoch bringt das Verteilen von vollständigen Verbindungszustandsinformationen
an alle Router wegen der Dynamik des Netzwerks und der kleinen verfügbaren Bandbreite
einen überhöhten Kommunikationszusatz
in einem ad-hoc Netzwerk mit sich. Demgemäß basieren alle bisherigen
Verbindungszustands-Wegelenkungsansätze für Paketfunknetzwerke auf hierarchischen
Wegelenkungsschemata. R. Ramanathan und M. Steenstrup, "Hierarchically-organized,
Multihop Mobile Wireless Networks for Quality-of-Service Support," ACM Mobile Networks
and Applications, Vol. 3, No. 1, Seiten 101-119, 1998; C. V. Ramamoorthy
and W. Tsai, "An
Adaptive Hierarchical Routing Algorithm," Proc. IEEE COMPSAC '83, Chicago, Illinois, Seiten 93-104,
November 1983; und M. Steenstrup (Hrsg.), "Routing in Communication Networks," Prentice-Hall, 1995.
Ebenfalls erfordern frühere
Vorschläge
für Verbindungszustands-Wegelenkung, die
partielle Verbindungszustandsdaten ohne Cluster verwenden, siehe
bspw. J.J. Garcia-Luna-Aceves und J. Behrens, "Distributed, scalable routing based
on vectors of link states," IEEE
Journal on Selected Areas in Communications, Vol. 13, No. 8, 1995;
und J. J. Garcia-Luna-Aceves and M. Spohn, "Scalable Link-State Internet Routing," Proc. IEEE International
Conference on Network Protocols (ICNP 98), Austin, Texas, 14.-16. Oktober
1998, Router, um ihre Nachbarn im einzelnen zu informieren, welche
Verbindungen sie verwenden und welche Verbindungen sie aufhören zu verwenden.
-
Eine
Anzahl von früheren
Wegelenkungsprotokollen basieren auf der Kenntnis von Wegelenkungsbäumen, in
denen die Router entweder den Zustand (d.h. Kosten oder Länge) der
Verbindungen in einem Kürzesten-Wege-Wegelenkungsbaum
oder die Entfernung von der Wurzel des Baums und den vorletzten
Sprung in dem Wegelenkungsbaum für
jeden Knoten in dem Baum kommunizieren. Ein frühes Beispiel dieser Art von Protokoll
wurde vorgeschlagen in dem US-Patent 4 466 060 von Riddle. In Riddle's Protokoll kommuniziert
ein Router verschiedene Wegelenkungsbäume an verschiedene Nachbarn;
solche Bäume
werden "Ausschließende Bäume" genannt, und bestimmen
die bevorzugten Wege zu Zielpunkten genau, indem sie diejenigen
Wege ausschliessen, die den Router, an den die Aktualisierung gesendet
worden ist, miteinbeziehen. Ein Aktualisierungspacket oder eine
Aktualisierungsnachricht bestimmt einen ganzen ausschließenden Baum.
Ein anderes Protokoll, dass auf Wegelenkungs bäumen basiert, wurde von J.J.
Garcia-Luna-Aceves berichtet, "A
Fail-Safe Routing Algorithm for Multihop Packet-Radio Networks," Proc. IEEE Infocom
86, Miami, Florida, April 1986, dieses Protokoll unterscheidet sich
von Riddle's Protokoll
darin, dass derselbe Wegelenkungsbaum stufenweise von einem Router
an alle seine Nachbarn gesendet wird. A. Humblet "Another Adaptive
Shortest-Path Algorithm," IEEE
Trans. Comm., Vol. 39, No. 6, Juni 1991, Seiten 995-1003 (und siehe
US-Patent 4 987 536); Cheng et al., C.Cheng et al., "A Loop-Free Extended
Bellman-Ford Routing Protocol without Bouncing Effect", Proc. ACM SIGCOMM
89, Seiten 224-236; B. Rajagopalan und M. Faiman, "A Responsive Distributed
Shortest-Path Routing Algorithm within Autonomous Systems," Journal of Internetworking:
Research and Experience, Vol. 2, No. 1, März 1991, Seiten 51-69; und
S. Murthy und J. J. Garcia-Luna-Aceves, "Loop-Free Internet Routing
Using Hierarchical Routing Trees," Proc. IEEE INFOCOM 97, Kobe, Japan,
7.-11. April, 1997, haben alle vorgeschlagenen Protokolle, die auf
Quellbäumen
basieren, in denen ein Router mit seinem Nachbarn den Kürzesten-Wege-Wegelenkungsbaum
stufenweise kommuniziert und diese letzteren Beispiele unterscheiden sich
von dem oben zitierten Protokoll von Garcia-Luna-Aceves darin, wie
ein Router seinen eigenen Quellbaum aus den von seinen Nachbarn
berichteten Bäumen
erhält.
Ein wichtiges Merkmal von allen vorigen Wegelenkungsbaum-basierten
Protokollen ist die Tatsache, dass sie alle darauf basieren, dass
Wegelenkungsbäume
bezüglich
der Länge
der Verbindungen und der Identifizierer der Knoten, die einen Teil
des Wegelenkungsbaums bilden, kommuniziert werden.
-
Zum
Beispiel offenbart Garcia-Luna-Aceves et al. "Efficient Routing in Packet-Radio Networks
Using Link-State Information," Proc.
IEEE Wireless Communications and Networking Conference, vol. 03,
24. September 1999, Seiten 1308-1312 ein Quellbaum-adaptives Wegelenkungs
(STAR)-Protokoll. In STAR meldet jeder Router an seine Nachbarn
die Charakteristiken jeder Verbindung, die er verwendet, um ein
Ziel zu erreichen. Der Satz von Verbindungen, die von einem Router
in seinen bevorzugten Wegezielen verwendet werden, wird der Quellbaum
des Routers genannt. Ein Router kennt seine benachbarten Verbindungen
und den Quellbaum, der von seinen Nachbarn gemeldet worden ist.
Die Zusammenfassung der benachbarten Verbindungen eines Routers
und die von seinen Nachbarn gemeldeten Quellbäume stellen einen partiellen
Topologiegraphen dar. Die Verbindungen in dem Quellbaum und dem
Topologiegraphen müssen
benachbarte Verbindungen sein oder Verbindugnen, die zumindest von
einem Nachbar gemeldet worden sind. Der Router verwendet den Topologiepraphen,
um seinen eigenen Quellbaum zu erzeugen. Jeder Router leitet eine
Wegelenkungstabelle ab, die den Nachfolger zu jedem Zielpunkt genau
bestimmt, indem ein lokaler Wegeauswahl-Algorithmus auf seinem Quellbaum
ausgeführt
wird.
-
In
einer Ausführungsform
des vorliegenden Schemas werden einer oder mehrere Wegelenkungsbäume bei
einem Router eines Computernetzwerkes erzeugt gemäß einer
Kürzesten-Wege-Entscheidung,
die über
einen partiellen Topologiegraphen des Netzwerkes getroffen worden
ist, wobei die Wegelenkungsbäume etikettierte
Wegelenkungsbäume,
LRTs sind, wobei jede Verbindung in den etikettierten Wegelenkungsbäumen mit
einem lokalen Verbindungsidentifizierer etikettiert wird, und wobei
die etikettierten Wegelenkungsbäume
eine Verbindungszustandsinformation und eine explizite Knotenzustandsinformation
enthalten, und wobei der partielle Topologiegraph entsprechend der
Kenntnis von benachbarten Verbindungen des Routers und eines oder
mehr LRTs von benachbarten Routern erzeugt wird. Die LRTs des Routers
können
aktualisiert werden in Antwort auf den Empfang von Wegelenkungs-Zustands-Aktualisierungsnachrichten,
und solche Nachrichten können
lokale Verbindungsidentifizierer beinhalten, die von einem Kopf
derjenigen Verbindung, zu welcher die Identifizierer gehören, zugeordnet
worden sind, und Knotenparameter eines Endes der Verbindung, zu
welcher die lokalen Verbindungsidentifizierer gehören. Die
Wegelenkungs-Zustands-Aktualisierungsnachrichten können innerhalb
des Netzwerks übertragen
werden: (i) in Antwort auf einen neuen Zielknoten, der von einem
existierenden Knoten innerhalb des Netzwerks entdeckt worden ist,
(ii) in Antwort auf einen Zielpunkt, der von einer Sammlung von
existierenden Knoten unerreichbar wird, (iii) in Antwort auf eine
Veränderung
in den Kosten eines Weges zu wenigstens einem Zielpunkt, die einen
Schwellenwert-Delta überschreiten, und/oder
(iv) in Situationen, in denen eine Wegelenkungsschleife zwischen
zwei, oder mehreren der Knoten des Netzwerks angetroffen werden
kann (bspw. zu Zeiten, bei denen ein in dem LRT des Routers beinhalteter Weg
zu einer Schleife führt).
-
In
einem anderen Ausführungsform
lässt das
vorliegende Wegelenkungsprotokoll das Verteilen von lokalen Verbindungsidentifizierern
zwischen Knoten eines Computernetzwerkes innerhalb der Wegelenkungs-Zustands-Aktualisierungsnachrichten
zu. Diese lokalen Verbindungsidentifizierer sind vorzugsweise einem
Kopf einer Verbindung zugeordnet, zu welcher die Identifizierer
gehören.
Die Wegelenkungs-Zustands-Aktualisierungsnachrichten können Zustandsparameter
für Knoten
an Enden von Verbindungen enthalten, zu welchen die Identifizierer
gehören.
Das Wegelenkungsprotokoll sieht weiterhin das Verteilen von etikettierten
Wegelenkungsbäumen
der Knoten des Computernetzwerkes zwischen den Knoten vor, wobei
z.B. jeder Knoten des Computernetzwerks seine etikettierten Wegelenkungsbäume an seine
Nachbarknoten verteilt.
-
In
solch einem Wegelenkungsprotokoll behält jeder Knoten des Computernetzwerkes
vorzugsweise einen etikettierten Wegelenkungsbaum pro Servicetyp,
der in dem Computernetzwerk angeboten wird, bei. Diese etikettierten
Wegelenkungsbäume
können
entsprechend einem partiellen Topologiegraphen erzeugt werden, der
von den den Knoten benachbarten Verbindungen und den etikettierten
Wegelenkungsbäumen
der Nachbarknoten abgeleitet worden ist, z.B., indem ein Wegeauswahlalgorithmus
auf den partiellen Topologiegraphen angewendet wird. Die etikettierten
Wegelenkungsbäume
können
dann aktualisiert werden in Antwort auf den Empfang der Wegelenkungs-Zustands-Aktualisierungsnachrichten.
Solche Aktualisierungen können
durchgeführt
werden, entweder gemäß einem
optimalen Wegelenkungsansatz oder einem Geringsten-Gemeinkosten-Wegelenkungsansatz,
abhängig
davon, welcher Ansatz innerhalb des Computernetzwerks verwendet
wird.
-
Für den optimalen
Wegelenkungsansatz können
Wegelenkungs-Zustands-Aktualisierungsnachrichten vorzugsweise übermittelt
werden: (i) wenn eine Wegelenkungs-Zustands-Aktualisierungsnachricht
empfangen wird, die veranlasst, dass eine Verbindung zu etikettierten
Wegelenkungsbäumen
eines Gegenstandknotens hingefügt
wird, (ii) wenn eine noch neuere Wegelenkungs-Zustands-Aktualisierungsnachricht
betreffend eine bestehende Verbindung in den etikettierten Wegelenkungsbäumen eines
Gegenstandsknotens empfangen wird, und/oder (iii) wenn ein Zielpunkt
durch den gegenwärtigen
Knoten unerreichbar wird. In dem Geringsten-Gemeinkosten-Wegelenkungsansatz
können
Wegelenkungs-Zustands-Aktualisierungsnachrichten übermittelt
werden: (i) wenn ein gegenwärtiger
Knoten einen neuen Zielpunkt findet oder irgendwelche Nachbarn des
gegenwärtigen
Knotens das gleiche berichten, (ii) wenn ein Zielpunkt durch den
gegenwärtigen
Knoten oder durch irgendwelche seiner Nachbarn unerreichbar wird,
(iii) wenn der gegenwärtige
Knoten herausfindet, das die Veränderung
in den Kosten eines Weges zu wenigstens einem Zielpunkt ein Schwellenwert-Delta übersteigt
(iv) wenn ein in irgendwelchen der etikettierten Wegelenkungsbäumen des
gegenwärtigen
Knotens beinhalteter Weg zu einer Schleife führt und/oder ein neuer ausgewählter Nachfolger
zu einem vorgegebenen Zielpunkt eine Adresse hat, die größer als
eine Adresse des gegenwärtigen
Knotens ist, und ein berichteter Abstand von dem neuen Nachfolger
zu einem bestimmten Zielpunkt größer ist
als ein berichteter Abstand von einem vorherigen Nachfolger zu diesem
bestimmten Zielpunkt. Eine andere Ausführungsform stellt eine Wegelenkungs-Aktualisierungsnachricht
zur Verfügung,
die Informationen betreffend der Leistungscharakteristiken und Adressinformationen
für eine
Verbindung eines Computernetzwerks und eines Knotens des Netzwerks
am Schweifende der Verbindung beinhaltet und wobei die Adressierungsinformationen
und die Knotenzustandsinformationen in der Form von etikettierten
Wegelenkungsbäumen,
LRTs, bereitgestellt werden, wobei jede Verbindung in den etikettierten
Wegelenkungsbäumen
mit einem lokalen Verbindungsidentifizierer etikettiert wird. In
einigen Fällen
kann die Wegelenkungs-Aktualisierung eine Zeitmarke beinhalten,
die durch einen Knoten an einem Kopfende der Verbindung zugeordnet
wird, einen Servicetyp-Vektor, und Adressinformationen für den Knoten
an dem Kopfende der Verbindung. Die Leistungscharakteristiken beinhalten
vorzugsweise Verbindungszustandsparameter (z.B. Verbindungsverzögerung,
Verbindungskosten, verfügbare
Bandbreite und/oder Verfügbarkeit
der Verbindung, wobei der Servicetyp-Vektor vorzugsweise einen Servicetyp-Wegelenkungsbaum
bezeichnet, in dem die Verbindung durch einen Knoten verwendet wird,
der die Wegelenkungs-Aktualisierungsnachricht übermittelt. Die Adressierungsinformation
der Verbindung ist vorzugsweise in der Form eines lokalen Verbindungsidentifizierers
bezeichnet, der der Verbindung durch den Knoten an einem Kopfende
der Verbindung zugeordnet wird.
-
Die
vorliegende Erfindung ist beispielhaft und nicht begrenzend in den
Figuren der beiliegenden Zeichnungen erläutert, in denen gleiche Bezugszeichen
sich auf ähnliche
Elemente beziehen und in denen:
-
1 ein
Beispiel eines Ad-hoc drahtlosen Netzwerks erläutert, mit Routern, die in Überein stimmung mit
dem vorliegenden Wegelenkungsprotokoll aufgebaut sind;
-
2a bis 2d ein
Beispiel eines drahtlosen Netzwerks mit sechs Knoten erläutern, mit
Routern, die in Übereinstimmung
mit dem vorliegenden Wegelenkungsprotokoll aufgebaut sind und die
etikettierten Wegelenkungsbäume
an verschiedenen der Router ausgebildet sind;
-
3a bis 3f ein
Beispiel eines drahtlosen Netzwerks mit sechs Knoten erläutern, mit.
Routern, die in Übereinstimmung
mit dem vorliegenden Wegelenkungsprotokoll aufgebaut sind und bei
dem die Wegelenkungs-Zustands-Aktualisierungen nach bestimmten Verbindungsfehlern
innerhalb des Netzwerks generiert worden sind; und
-
4a bis 4f ein
Beispiel erläutern,
wie ein Verbindungsfehler innerhalb eines drahtlosen Netzwerks,
das von einer Anzahl von Routern gebildet wird, die in Übereinstimmung
mit dem vorliegenden Wegelenkungsprotokoll aufgebaut sind, nicht
zum Erzeugen von neuen Aktualisierungsnachrichten von solchen Routern
führen
kann, wenn sämtliche
solche Router immer noch einen Weg zu allen verfügbaren Zielpunkten in dem Netzwerk
haben.
-
Ein
Schema zum Ermöglichen
der Wegelenkung von Datenpaketen in einem Computernetzwerk entlang
von bevorzugten Wegen entweder auf einer abschnittsweisen Basis
oder durch das effiziente Bestimmen eines Quellweges mittels lokalen
Identifizierern ist hier offenbart. Obwohl mit Bezug auf bestimmte
gezeigte Ausführungsbeispiele
diskutiert, wird ein Durchschnittsfachmann beim Studium dieser Beschreibung
erkennen, dass das vorliegende Schema in einer Vielzahl von Systemen
seine Anwendung finden kann. Daher sollten die erläuterten
Ausführungsbeispiele
in der folgenden Beschreibung lediglich als beispielhaft betrachtet, und
nicht als den Schutzbereich beschränkend erachtet werden.
-
In
dem vorliegenden Schema trägt
jedes geleitete Packet einen Wegelenkungs-Betriebscode (ROC), der
den empfangenden Router anweist, welches Wegelenkungsverfahren angewendet
wird, um das Packet weiterzuleiten. Ein Packet kann weitergeleitet
werden in sämtlichen
der folgenden Weiterleitungsmodi: (a) in einem konventionellen abschnittsweisen
Wegelenkungsmodus, der die Wegelenkungstabelle des Routers verwendet;
oder (b) in einem Quellwegelenkungsmodus, in dem der gesamte Quellweg
in dem Packet spezifiziert ist, in dem lokale Verbindungsidentifizierer
anstelle von Relais-Routern,
wie es in früheren
Quellwegelenkungsansätzen üblich ist,
verwendet werden. Diese Weiterleitungsmodi werden ermöglicht,
indem das vorliegende Wegelenkungsprotokoll verwendet wird, das
als das adaptive Internet-Routing (AIR)-Protokoll bezeichnet wird, das
eine Verteilung der Verbindungs-Zustandsinformationen und Knoten-Zustandsinformationen
in der Form von etikettierten Wegelenkungsbäumen (LRTs) ermöglicht.
-
Mit
dem AIR sendet ein Router Aktualisierungen an seinen Nachbarn betreffend
die Verbindungen und Knoten in seinen bevorzugten Wegen zu Zielpunkten.
Die Verbindungen und Knoten entlang der bevorzugten Wege von einer
Quelle zu jedem bestimmten Zielpunkt bedingen einen LRT, der implizit
die vollständigen Wege
von der Quelle zu jedem Zielpunkt genau benennt. Jede Verbindung
ist mit einem lokalen Verbindungsidentifizierer (LLID) etikettiert.
-
Jede
Verbindung in einem LRT ist geleitet und hat einen Kopf-einer-Verbindung-Knoten
und einen Schweif-einer-Verbindung-Knoten. Der Kopf der Verbindung
etikettiert die Verbindung mit einem LLID, das diese Verbindung
von allen anderen Verbindungen von demselben Knoten zu anderen Nachbarn
unterscheidet. Der LLID einer Verbindung ist viel kleiner (bezüglich der
Anzahl der Bits, die benötigt
werden, um den LLID genau zu bestimmen) als die Adresse eines Knotens.
-
Jeder
Router behält
einen LRT für
jeden Servicetyp, der in dem Netzwerk definiert ist (bspw. Minimumsprung,
Minimumverzögerung,
und maximale Bandbreitenwege der kleinsten Anzahl von Sprüngen). Jeder Router
behält
ebenfalls einen Wegelenkungs- oder Topologiegraphen, der die Zustandsinformationen über benachbarte
Verbindungen und die von seinen Nachbarn berichteten LRTs enthält. Jeder
Router berechnet seinen LRT für
einen vorgegebenen Servicetyp, der auf der Verbindung und der in seinem
Topologiegraphen verfügbaren
Knoteninformation basiert.
-
Ein
Router berichtet Veränderungen
sämtlicher
seiner LRTs stufenweise oder atomar an alle seine Nachbarn. Die
Regeln, die verwendet werden, um zu entscheiden, wann ein Router
Veränderungen
eines Zustands eines Knotens oder einer Verbindung kommunizieren
sollte, kann basiert werden auf Optimalen-Wegelenkungs- oder Geringsten-Gemeinkosten-Wegelenkungsansätzen. Die
Zusammenfassung von benachbarten Verbindungen und Wegelenkungsbäumen, die
durch die Nachbarn berichtet worden sind, stellt dann die partielle
Topologie dar, die einem Router bekannt ist. Um die Anzahl der Zeitpunkte,
zu denen der Zustand einer Verbindung an die Nachbarn kommuniziert
wird, zu minimieren, kann ein Router einen Typenvektor jeder Verbindung
zuordnen, wobei jedes Bit des Vektors anzeigt, in welchem LRT die
Verbindung durch den Router verwendet wird.
-
AIR
erfordert keine Hauptleitungen, die Verteilung von vollständigen Cluster-Topologien
innerhalb eines Clusters, oder die Verteilung eines vollständigen Zwischenclusterzusammenhangs
unter Clustern. Des Weiteren kann. AIR mit verteilten hierarchischen
Wegelenkungsschemata verwendet werden, die in der Vergangenheit
entweder für
Entfernungsvektor- oder Verbindungszustands-Wegelenkung vorgeschlagen
worden sind. Siehe z.B. L. Kleinrock und F. Kamoun, " Hierarchical Routing
for Large Networks: Performance Evaluation and Optimization," Computer Networks,
Vol. 1, Seiten 155 bis 174, 1977; M. Steenstrup (Hrsg.), Routing in
Communication Networks, Prentice-Hall, 1995; S. Murphy und J.J.
Garcia-Luna-Aceves, "Loop-Free
Internet Routing Using Hierarchical Routing Trees," Proc. IEEE INFOCOM
97, Kobe, Japan, 7.-11. April 1997, und J. Behrens und J.J. Garcia-Luna-Aceves, "Hierarchical Routing
Using Link Vektors," Proc.
IEEE INFOCOM 98, San Francisco, Kalifornien, 29. März bis 2.
April 1998.
-
Ein
Router wählt
seine bevorzugten Wege für
einen vorgegebenen Servicetyp aus, indem er einen lokalen Wegeauswahlalgorithmus
verwendet. Ein bevorzugter Wegeauswahlalgorithmus zur Verwendung
gemäß dem vorliegenden
Schema ist eine Modifikation des Kürzsten-Wege (SPF)-Algorithmus.
Das Ergebnis eines Laufs des Wegeauswahlalgorithmus über den
Topologiegraphen ist ein LRT für
einen gegebenen Servicetyp, der spezifiziert für jeden Knoten in dem LRT:
Die Adresse des Kopfs der auf den Knoten einfallenden Verbindung,
die Zustandsparameter der Verbindung, die Zustandsparameter des
Knotens, und die LLIDs, die der Verbindung durch den Kopf der Verbindung
zugeordnet sind. Selbstverständlich
können
andere Wegeauswahlalgorithmen verwendet werden, um ähnliche
Ausgaben bereitzustellen.
-
Von
seinem LRT kann ein Router einen Quellweg zu einem vorgegebenen
Zielpunkt berechnen. Da die Verbindungen mit LLIDs etikettiert sind,
die dem Kopf der Verbindungen zugeordnet sind, kann ein Router einen
Quellweg zu einem Zielpunkt eindeutig bestimmen, indem er seine
eigene Adresse, gefolgt von einer Folge von LLIDs, die seinem bevorzugten
Weg zu dem Zielpunkt entsprechen, verwendet, statt einer Adresse eines
viel größeren Netzwerks
oder von Verbindungsebenen-Adressen. Obwohl Quellwegelenkung und
die Verwendung von lokalen Verbindungsidentifizierern unabhängig voneinander
in Wegelenkungs- und Brückenprotokollen
in der Vergangenheit verwendet worden sind, ist AIR das erste Wegelenkungsprotokoll,
das die LLIDs der Verbindungen verteilt, dies lässt daher eine kompakte genaue
Beschreibung von Quellroutern zu, und erlaubt eine viel effizientere
Verwendung der verfügbaren
Bandbreite.
-
Das
vorliegende Wegelenkungsschema ist daher gut für ein Ad-hoc Netzwerk geeignet,
das eine nahtlose Erweiterung des Internet-Protokolls (IP) auf eine
Ad-hoc drahtlose Umgebung ermöglicht.
AIR wird bezüglich
seines Betriebs in Internetradios oder IRs, die drahtlose Router
sind, beschrieben. Jedoch ist es für einen Durchschnittsfachmann
offensichtlich, dass AIR auf Computernetzwerke und Zwischennetzwerke
angewendet wird, die nicht auf drahtlosen Verbindungen für Routerverbindungen
basieren müssen. 1 veranschaulicht Aspekte
eines beispielhaften Ad-hoc Internets, was dabei helfen wird, die
verbleibende Erläuterung
zu verstehen.
-
Ad-hoc
Netzwerk 10 kann als eine Anzahl von Unternetzwerken 12a, 12b, 12c betrachtet
werden, die eine Erweiterung des Internets 14 durch eine
Anzahl von Internet-Radios oder IRs 16a-16i bereitstellen.
Jedes IR 16a-16i ist ein drahtloser Router mit
einer zugeordneten IP-Adresse und einer Übertragungsmedium-Zugangskontroll(MAC)-Adresse.
Generell können
die IR 16a-16i in einem der unregulierten UHF-Frequenzbändern betrieben
werden, dadurch wird der Bedarf an Betriebslizenzen umgangen. Das
Verbinden der Ad-hoc Netzwerke 10 mit dem Internet 14 wird
durch einen Router 18 erreicht, der durch einen Internet
Service Provider (ISP) betrieben werden kann. Wie gezeigt, kann
ein einziger ISP ein LAN 20 betreiben, an das viele IRs angeschlossen
sind. In solch einem Schema können
die IRs 16a und 16b als "AirHeads" fungieren, die den Netzübergangs-Service
zum Internet 14 über
den Router 18 bereitstellen. Einige IRs, bspw. IRs 16d und 16e aus 1,
können
mit Hosts 22a, 22b und 22c in Verbindung
gebracht werden, auf die durch einen beliebigen Internetnutzer durch
ein Ad-hoc Netzwerk 10 zugegriffen werden kann. Wie jeder
beliebige Router verarbeitet jeder IR 16a bis 16e alle
Nachrichten, Veränderungen
in den Kosten einer benachbarten Verbindung, benachbarte Verbin dungsfehler
und neue Nachbarmeldungen jeweils nacheinander und in der Reihenfolge,
in der er diese feststellt.
-
Jeder
IR 16a-16i in 1 kann einen
anderen IR als benachbart betrachten, wir nennen solch einen IR
einen "Nachbar", wenn es eine Funkverbindung
zwischen den beiden IRs gibt und ein IR, bspw. IR 16g Pakete
von dem anderen IR, bspw. IR 16h empfangen und zurückmelden
kann. Entsprechend wird eine physische Rundfunkverbindung, die viele
IRs miteinander verbindet, in viele Punkt-zu-Punkt-bidirektionale Verbindungen
abgebildet, die für
die gleichen IRs definiert sind. Jedes Paar von benachbarten IRs
definiert zwei Punkt-zu-Punkt-bidirektionale Verbindungen zwischen
diesen, eine in jede Richtung. Jede Punkt-zu-Punkt bidirektionale
Verbindung hat einen Kopfknoten der Verbindung und einen Schweifknoten
der Verbindung.
-
Das
vorliegende Wegelenkungsschema kann in die Praxis umgesetzt werden
zusammen mit den Verfahren, die in der gleichzeitig anhängigen Anmeldung
Nr. 09/248 738 beschrieben sind, die den Titel "Adaptive Communication Protocol for
Wireless Networks" trägt, angemeldet
am 10. Februar 1999 und übertragen
auf den Rechtsnachfolger der vorliegenden Erfindung, für die Verknüpfung von
logischen Verbindungsidentifizierern von einem Knoten zu jedem seiner
Ein-Sprung-Nachbarn. Jedoch ist es für einen Durchschnittsfachmann offensichtlich,
dass das vorliegende Schema Verwendung machen kann von jedem Verbindungs-Ebenen-Service,
der einen Router in die Lage versetzt, lokale Identifizierer für jeden
seiner Ein-Sprung-Nachbarn zu verwenden. Die Beschreibung des vorliegenden
Wegelenkungsschemas nimmt daher das Vorhandensein von lokalen Identifizierern
für die
Verbindungen zwischen einem Router und seinem unmittelbaren Nachbarn
an.
-
Ein
zugrunde liegendes Protokoll für
das oben erwähnte
Nachbarprotokoll stellt sicher, dass jeder IR 16a bis 16i innerhalb
einer begrenzten Zeitspanne das Vorliegen von zwei Nachbar-IRs und
den Verlust der Verbindung mit einem Nachbar-IR feststellt. Das
in dem vorliegenden Schema angenommene Nachbarprotokoll kann in
die Praxis umgesetzt werden, indem im Stand der Technik übliche Verbindungsschicht-Zurückübertragungsstrategien
verwendet werden.
-
1. AIR Betrieb
-
Bei
AIR berichtet jeder IR an seinen Nachbarn die Charakteristiken jeder
Verbindung und IRs, die er verwendet, um einen Zielpunkt in dem
Ad-hoc Netzwerk zu erreichen. Der Satz von Verbindungen und IRs,
die von einem IR in seinem bevorzugten Weg zu Zielpunkten verwendet
werden, wird der LRT des IR genannt. Wenn mehrere Servicetypen (TOS)
in dem Netzwerk definiert sind, behält ein IR einen LRT pro TOS.
Ein IR kennt daher seine benachbarten Verbindungen und die LRTs,
die von seinen Nachbarn für
jeden TOS gemeldet worden sind, und die Zusammenfassung von benachbarten
Verbindungen eines IRs und der durch seine Nachbarn gemeldeten LRTs
legt einen partiellen Topologiegraphen fest. Die Verbindungen in
dem LRT und der Topologiegraph sollten benachbarte Verbindungen
oder Verbindungen sein, die von zumindest einem Nachbarn gemeldet
worden sind. Ein IR kann den Topologiegraphen verwenden, um seinen
eigenen LRT für
jeden TOS zu erzeugen. Jeder IR leitet seinen LRT und Wegelenkungstabelle
ab, die den Nachfolger zu jedem Zielpunkt für jeden TOS genau bestimmt,
indem ein lokaler Wegeauswahlalgorithmus für jeden TOS auf seinem Topologiegraphen
ausgeführt
wird.
-
Ein
IR kommuniziert die Aktualisierungen, die er an seinem Wegelenkungsbaum
für jeden
TOS vornimmt. Weil jeder IR seinen Wegelenkungsbaum für jeden
TOS an seine Nachbarn kommuniziert, ist die Löschung einer Verbindung, die
nicht weiter verwendet wird, um einen Zielpunkt für einen
gegebenen TOS zu erreichen, in der Hinzufügung einer neuen Verbindung
eingeschlossen, die verwendet wird, um den Zielpunkt zu erreichen,
und sie braucht nicht gesondert als eine Aktualisierung versendet
zu werden; ein IR nimmt einen expliziten Bezug auf eine fehlerhafte
Verbindung nur vor, wenn die Löschung
einer Verbindung dazu führt,
dass der IR keine Wege zu einem oder mehreren Zielpunkten hat, in
diesem Fall kann der IR keine neuen Verbindungen bereitstellen,
um die fehlerhafte Verbindung implizit zu löschen.
-
Die
grundlegende Aktualisierungseinheit, die in AIR verwendet wird,
um Veränderungen
an Wegelenkungsbäumen
zu kommunizieren, ist die Wegelenkungs-Zustands-Aktualisierung (RSU),
die den Zustand einer Verbindung und den Knoten am Ende der Verbindung
beschreibt. Der Kopfknoten einer Verbindung ist der einzige IR,
der Veränderungen
in den Parametern dieser Verbindung melden kann. RSUs werden durch
die Verwendung von Reihenfolgenummern bestätigt, und jeder IR löscht eine
Verbindung aus seinem Topologiegraphen, wenn die Verbindung nicht
in den Wegelenkungsbäumen
irgendwelcher seiner Nachbarn vorhanden ist.
-
Der
Betrieb von AIR kann formal durch einen Pseudocode beschrieben werden.
Wie mit jeder solchen Beschreibung jedoch, gibt es vielerlei gleichwertige
Formulierungen, die beim Studium des bereitgestellten Codes für einen
Durchschnittsfachmann als dazu gleichwertig offensichtlich werden.
Die Pseu docode-Beschreibung ist am Ende dieser detaillierten Beschreibung
dargelegt, und die folgenden Variablen und Ausdrücke werden dort verwendet:
- T:
- eine Konstante, welche
die Anzahl der Servicetypen (TOS) in dem Netzwerk definiert.
- Delta[T]: Delta [0],
Delta [1], ..., Delta [T – 1]
- ist ein Vektor, der
den Schwellwerten von Veränderungen
in den Kosten eines Weges zu einem Zielpunkt für einen gegebenen TOS entspricht.
- AGEOUT_INTERVAL:
- eine Konstante, welche
den Zeitraum definiert, für
den eine fehlerhafte Verbindung in dem Topologiegraphen verbleibt, bevor
sie veraltet.
- ORA:
- eine Konstante, WAHR
wenn AIR unter dem Geringsten Gemeinkosten-Wegelenkungsansatz betrieben
wird.
- TGi:
- Topologiegraph bei
Router i.
- LRTi:
- Aktueller etikettierter
Wegelenkungsbaum bei Router i.
- LRTi':
- Etikettierter Wegelenkungsbaum,
der erstellt worden ist, als das letzte Mal eine Aktualisierungsnachricht
durch i erzeugt worden ist.
- Ni:
- Satz von Nachbarn
des Routers i.
- NSi:
- wird auf WAHR gesetzt,
wenn i seinen etikettierten Wegelenkungsbaum nicht an einen Nachbarn
gesendet hat.
- Mi:
- wird auf WAHR gesetzt,
wenn i Veränderungen
an dem etikettierten Wegelenkungsbaum berichten muss.
- Ti:
- Systemzeit, die verwendet
wird, um Zeitmarken für
RSUS zu erzeugen.
- (u, v, Ilid, t; I[T],
{n}, tos[T], del):
- Ein Eintrag für die Verbindung
(u, v) in TGi, LRTi,
TGi k und LRTi k, wobei k ∊ Ni und {I} = [Ilid, I[T], tos[T], del}.
- u:
- Netzwerkadresse des
Kopfs der Verbindung.
- v:
- Netzwerkadresse des
Schweifs der Verbindung.
- Ilid:
- lokaler Verbindungsidentifizierer.
- t:
- Zeitmarke.
- I[T]: I[0], I[1], ...,
I[T – 1]
- ist ein Vektor, der
den Leistungsparametern der Verbindung entspricht. Der Parameter
I[0] entspricht den Kosten der Verbindung, die verbleibenden Parameter
können
Verzögerung,
Bandbreite und Zuverlässigkeit
der Verbindung, etc. sein.
- {n}:
- Die Zustandsparameter
von Router v.
- tos[T]: tos[0], tos[1],
..., tos[T – 1]
- ist der Servicetyp-Bitvektor.
Ein Bit x wird auf 1 gesetzt, wenn die Verbindung zu dem etikettierten
Wegelenkungsbaum mit TOS x hinzugefügt wird.
- del:
- wird auf WAHR gesetzt,
wenn die Verbindung nicht in der Berechnung des etikettierten Wegelenkungsbaums
verwendet werden kann.
- (d[T]: pred[T], suc[T],
d'[T], d''[T], suc'[T], nbr):
- einem Scheitelpunkt
v in TGi, LRTi,
TGi k und LRTi k zugeordnete Variable,
wobei k ∊ Ni
- d[T]:
- Kosten des Weges i → v in dem
etikettierten Wegelenkungsbaum x; ∀x ∊ [0; T – 1].
- pred[T]:
- Vorgänger (Verbindung)
von Scheitelpunkt v in dem etikettierten Wegelenkungsbaum x; ∀x ∊ [0;
T – 1],
- suc[T]:
- Nächster Sprung in Richtung Scheitelpunkt
v in dem etikettierten Wegelenkungsbaum x; ∀x ∊ [0; T – 1].
- d'[T]:
- vorherige Entfernung
zu v, die von suc'[T]
berichtet worden ist.
- d''[T]
- Kosten des Weges i → v zu dem
letzten Zeitpunkt, an dem die Kosten des Weges durch Δ[T] geändert worden
sind.
- suc'[T]:
- vorheriger Nachfolger
in Richtung v in dem etikettierten Wegelenkungsbaum x; ∀x ∊ [0;
T – 01]
- nbr:
- wird auf i gesetzt,
wenn sich die Kosten des Weges zu v vergrößert haben, aber keine Aktualisierungsnachricht
erzeugt werden muss.
- (u, v, Ilid, t, I[T],
{n}, tos[T]):
- Eintrag in eine Aktualisierungsnachricht
(RSU).
- u:
- Netzwerkadresse des
Kopfs der Verbindung.
- v:
- Netzwerkadresse des
Schweifs der Verbindung.
- Ilid:
- lokaler Verbindungsidentifizierer.
- t:
- der RSU zugeordnete
Zeitmarke.
- I[T]:
- Vektor, der den Leistungsparametern
der Verbindung entspricht.
- {n}:
- Die Zustandsparameter
von Router v.
- tos[T]:
- Servicetyp-Bitvektor.
-
Der
Pseudocode bestimmt die Hauptverfahren von AIR, die verwendet werden,
um die Wegelenkungstabelle und die Verbindungs-Zustandsdatenbank
bei einem Router i zu aktualisieren, sowohl für einen Optimalen-Wegelenkungsansatz
(ORA) und einen Geringsten-Gemeinkosten-Wegelenkungsansatz (LORA). Das Verfahren
NodeUp wird durchgeführt,
wenn ein Router i in Betrieb genommen wird. Der Nachbarsatz des
Routers ist zu Beginn leer.
-
Wenn
das Nachbarprotokoll eine neue Verbindung zu einem Nachbar k meldet
(Procedure {\em NeighborUp), führt
der Router danach Update aus mit der geeigneten Nachricht als Eingabe;
der RSU in der Nachricht bekommt eine aktuelle Zeitmarke. Derselbe
Ansatz wird für
Verbindungsfehler verwendet (NeighborDown) und ändert in den Parametern der
Verbindung (LinkChange). Wenn ein Router eine Verbindung zu einem
neuen Nachbarn herstellt, sendet der Router seinen vollständigen etikettierten
Wegelenkungsbaum an den Nachbarn (ganz wie ein Entfernungsvektor-Protokoll
seine vollständige
Wegelenkungstabelle sendet). Die RSUs, die an alle Nachbarn gefunkt
werden sollen, werden in MSGi eingesetzt.
-
Das
Verfahren Update wird ausgeführt,
wenn der Router i eine Aktualisierungsnachricht vom Nachbarn k erhält, oder
wenn sich die Parameter einer ausgehenden Verbindung geändert haben.
Zuerst werden die Topologiegraphen TGi und
TGi k aktualisiert,
dann werden die etikettierten Wegelenkungsbäume LRTi k und LRTi aktualisiert,
was den Router veranlassen kann, seine Wegelenkungstabelle zu aktualisieren
und seine eigene Aktualisierungsnachricht auszusenden.
-
Der
Zustand einer Verbindung in dem Topologiegraphen TGi wird
mit den neuen Parametern für
die Verbindung aktualisiert, wenn die Wegelenkungs-ZustandsAktualisierung
in der empfangenen Nachricht gültig ist,
d.h. wenn der RSU eine größere Zeitmarke
hat als die Zeitmarke der in TGi gespeicherten
Verbindung.
-
Die
Parameter einer Verbindung in TGi k werden immer aktualisiert, wenn ein RSU
bearbeitet wird, der von einem Nachbarn k gesendet worden ist, sogar
wenn die Verbindungszustandsinformation veraltet ist, weil sie Veränderungen
des etikettierten Wegelenkungsbaums des Nachbarn berichten. Ein
Knoten in einem etikettierten Wegelenkungsbaum LRTi k für
einen vorgegebenen TOS kann nur eine darauf eintreffende Verbindung
haben. Deshalb wird die aktuelle eintreffende Verbindung (u', v) auf v, u ≠ u' aus TGi k gelöscht,
wenn i einen RSU für
die Verbindung (u, v) von k erhält.
-
Die
Information eines RSU, der den Fehler einer Verbindung berichtet,
wird verworfen, wenn die Verbindung nicht in dem Topologiegraphen
des Routers ist.
-
Ein
Kürzester-Wege-Algorithmus
(SPF) basierend auf Dijkstra's
SPF (Verfahren BuildShortestPathTree) wird auf dem aktualisierten
Topologiegraphen TGi k ausgeführt, um
einen neuen etikettierten Wegelenkungsbaum LRTi k zu erstellen, und dann auf dem Topologiegraphen
TGi ausgeführt, um einen neuen etikettierten
Wegelenkungsbaum LRTi zu erzeugen.
-
Die
einfallende Verbindung auf einen Knoten v in einem neu etikettierten
Wegelenkungsbaum eines Routers i ist unterschiedlich von der Verbindung
in dem aktuellen Wegelenkungsbaum LRTi,
nur wenn die Kosten des Weges zu v kleiner geworden sind oder wenn
die einfallende Verbindung auf LRTi aus
den etikettierten Wegelenkungsbäumen
aller Nachbarn gelöscht
worden ist.
-
Ein
neuer etikettierter Wegelenkungsbaum newLRT für einen Nachbarn k, einschließlich dem
neuen etikettierten Wegelenkungsbaum des Routers wird dann mit dem
aktuellen etikettierten Wegelenkungsbaum LRTi k verglichen (Verfahren UpdateNeighborTree),
und die Verbindungen, die in LRTi k sind, aber nicht in newLRT, werden aus
TGi k gelöscht. Nachdem
eine Verbindung (u, v) aus TGi k gelöscht worden
ist, setzt der Router TGi(u, v).del auf
WAHR, wenn die Verbindung in dem Topologiegraphen TGi x, γ x ∊ Ni nicht vorhanden ist.
-
Wenn
ein Zielpunkt v unerreichbar wird, d.h. es gibt keinen Weg zu v
in dem neuen etikettierten Wegelenkungsbaum newLRT, dann werden
RSUs für
jede Verbindung in dem Topologiegraphen TGi an
die Nachbarn gesendet, die v als Schweifknoten der Verbindung und
eine Verbindungskostenunendlichkeit haben.
-
Diese
Spezifikation setzt voraus, dass der Link Layer eine zuverlässige Sendung
von Netzwerkebenenpaketen sicherstellt und folglich spezifizieren
Aktualisierungsnachrichten nur stufenweise Veränderungen an dem etikettierten
Wegelenkungsbaum des Routers anstelle des vollständigen etikettierten Wegelenkungsbaums.
-
Der
neue etikettierte Wegelenkungsbaum newLRT des Routers wird mit dem
letzten gemeldeten etikettierten Wegelenkungsbaum verglichen ({LRTi}' für LORA und
LRTi für
ORA) (Verfahren Report-Changes), und
eine Aktualisierungsnachricht, die an die Nachbarn gesendet wird,
wird aus den Unterschieden der zwei Bäume erstellt. Ein RSU wird
erzeugt, wenn die Verbindung in dem neuen etikettierten Wegelenkungsbaum, aber
nicht in dem aktuellen etikettierten Wegelenkungsbaum ist, oder
wenn sich die Parameter der Verbindung geändert haben. Für den Fall,
dass ein Router LORA betreibt, werden die Wegelenkungsbäume nur
miteinander verglichen, wenn wenigstens eine der vier in Sektion
V unten beschriebenen Regeln erfüllt
wird, d.h. Mi = WAHR.
-
Wenn
der neue etikettierte Wegelenkungsbaum des Routers gegen den letzten
gemeldeten etikettierten Wegelenkungsbaum verglichen worden ist,
dann entfernt der Router alle diejenigen Verbindungen aus dem Topologiegraphen,
die nicht weiter durch irgendeinen Nachbarn in deren etikettierten
Wegelenkungsbäumen verwendet
werden (fehlerhafte Verbindungen werden aus dem Topologiegraphen
nur bei Veralten entfernt).
-
Schließlich wird
der aktuelle Kürzeste-Wege-Baum
LRTi k verworfen
und der neue wird der aktuelle etikettierte Wegelenkungsbaum. Der
etikettierte Wegelenkungsbaum des Routers wird dann verwendet, um
die neue Wegelenkungstabelle zu berechnen, in dem sie bspw. eine
Suche mit Tiefe Eins in dem Kürzesten-Wegebaum
verwendet.
-
II. In AIR ausgetauschte
Informationen
-
Frühere, auf
Topologieinformationen oder Entfernungsinformationen basierende
Wegelenkungsprotokolle basieren ausschließlich auf den Parametern von
Verbindungen. Im Gegensatz dazu verwendet AIR eine Aktualisierungseinheit,
die Informationen über
die Leistungscharakteristiken und Adressinformationen für eine Verbindung
und den Knoten am Ende der Verbindung überträgt. Noch genauer beinhaltet
eine RSU die folgenden Elemente:
- a) eine Zeitmarke,
welche. den RSU validiert;
- b) einen Servicetyp-Vektor;
- c) die Netzwerkadresse des Kopfknotens der Verbindung;
- d) die Netzwerkadresse des Schweifknotens der Verbindung;
- e) die Verbindungs-Zustandsparameter der Verbindung zwischen
den beiden IRs; und
- f) die Knoten-Zustandsparameter des Schweifs der Verbindung.
-
Eine
Aktualisierungsnachricht, die durch einen IR gesendet worden ist,
enthält
mindestens einen RSU. Die Zeitmarke der RSU wird vom Kopf der Verbindung
zugeordnet und sollte nicht durch irgendeinen anderen Knoten verändert werden,
der den RSU in einer Aktualisierungsnachricht weitergibt. Der Servicetyp(TOS)-Vektor
ist ein Bitvektor, der den TOS Wegelenkungsbaum genau bezeichnet,
in welchem die Verbindung von dem Knoten, der die RSU sendet, verwendet
wird. Die Zustandsparameter einer Verbindung werden als eine Liste von
Tupeln spezifiziert, wobei jedes Tupel aus einem Typ und einem Inhalt
besteht. Es gibt zwei Klassen von Zustandsparametern für eine Verbindung:
Leistungsparameter und Adressierungsparameter. Die Leistung einer
Verbindung kann charakterisiert werden bezüglich ihrer Verzögerung,
Kosten, Bandbreite, und Zuverlässigkeit
beispielsweise. Ein Adressierungsparame ter spezifiziert einen der
Verbindung zugeordneten Identifizierer. Ein Beispiel eines solchen
Identifizierers in dem vorliegenden Schema ist der lokale Verbindungsidentifizierer
(LLID), welcher der Verbindung durch den Kopf der Verbindung zugeordnet
ist. Die Zustandsparameter des Schweifs einer Verbindung können bspw.
die verbleibende Batterielebensdauer des Knotens einschließen.
-
III. In AIR gespeicherte
Informationen
-
2a bis 2d stellen
die Tatsache dar, dass die IRs, die AIR betreiben, nur partielle
Topologieinformationen zu behalten brauchen. Diese Darstellungen
stellen ein Beispiel eines Sechs-Knoten drahtlosen Netzwerks dar
(jeder Knoten ist jeweils mit a bis f etikettiert). Der Einfachheit
halber nehmen diese Figuren an, dass ein einziger Verbindungsparameter
verwendet wird, um eine Verbindung in einer seiner Richtungen zu charakterisieren,
was als die "Kosten" der gerichteten
Verbindung bezeichnet wird. Bspw. kann die Verbindung 32c Kosten
von 5 haben, in der Richtung b nach c, aber nur Kosten von 1 in
der Richtung von c nach b. In anderen Beispielen können Knoten
durch mehrere Verbindungen zwischen ihnen verbunden werden, wobei jede
die gleichen oder unterschiedliche Kosten hat. Die 2b bis 2d zeigen
die ausgewählte
Topologie gemäß AIR an
IRs, die mit ausgefüllten
Kreisen gekennzeichnet sind. Durchgezogene Linien stellen die Verbindungen
dar, die Teil des etikettierten Wegelenkungsbaums des jeweiligen
IRs sind. Pfeilspitzen auf Verbindungen geben die Richtung der Verbindung
an, die in dem Topologiegraphen der IRs gespeichert ist. Der in 2b gezeigte
etikettierte Wegelenkungsbaum der IRa ist durch die etikettierten
Wegelenkungsbäume
gebildet worden, die durch seine Nachbarn b und c gemeldet worden
sind, und durch die Verbindungen, für die IRa der Kopfknoten ist
(nämlich
Verbindungen (a, b) und (a, c)). In gleicher Weise zeigt 2c den
LRT für IRb
und 2b denjenigen für IRc. Aus den Figuren sollte
die Ersparnis in Speicheranforderung klar werden, sogar für dieses
Netzwerk mit wenigen Knoten.
-
Die
Informationen, die durch ein IR beibehalten werden, um bei AIR mitzuwirken,
beinhalten einen Topologiegraphen, einen LRT für jeden in dem Netzwerk definierten
TOS, eine Wegelenkungstabelle und eine Tabelle mit benachbarten
Verbindungen. Der Datensatzeintrag für die Verbindung von u nach
v in dem Topologiegraphen besteht aus dem Tupel (u, v, t, {l}, {n}),
wobei u und v jeweils die Netzwerkadressen des Kopfs und des Schweifs
der Verbindung sind, t ist die aktuellste Zeitmarke, die für die Verbindung
(u, v) erhalten worden ist, {l} ist eine Folge von Typwertpaaren,
welche die Verbindungsparameter genau bestimmen, und {n} ist eine
Folge von Typwertpaaren, welche die Knotenparameter genau bestimmen.
Ein Verbindungsparameter, der in dem vorliegenden Schema verwendet
wird, ist der LLID der Verbindung.
-
Die
Verbindungstabelle spezifiziert, für jeden Zielpunkt und für jeden
TOS, den nächsten
IR auf dem Weg zu dem Zielpunkt und die Entfernung zu diesem Zielpunkt,
basierend auf der metrischen Entfernung, die für den TOS verwendet wird.
-
Die
Kosten einer fehlerhaften Verbindung werden als unendlich für jeden
TOS erachtet. Es gibt verschiedene im Stand der Technik bekannte
Weisen, auf welche die Kosten Verbindungen für einen vorgegebenen TOS zugeordnet
werden können.
Z.B. können
die Kosten einer Verbindung einfach die Anzahl der Sprünge sein,
oder die Addition der Latenzzeit über die Verbindung zuzüglich einer
konstanten systematischen Abweichung.
-
IV. Das Validieren von
Aktualisierungen
-
Wegen
Verzögerungen
in den IRs und Verbindungen eines Verbindungsnetzwerks, können sich
von einem IR gesendete Nachrichten mit verschiedenen Geschwindigkeiten
entlang verschiedener Wege verbreiten. Daher kann ein vorgegebener
IR einen RSU von einem Nachbar empfangen, mit bloßer Verbindungs-Zustandsinformation,
und ein verteilter Beendigungs-Feststellungsmechanismus ist für einen
IR notwendig, um festzustellen, wann ein vorgegebener RSU gültig ist,
und um die Möglichkeit
zu verhindern, dass RSUs unendlich zirkulieren. AIR verwendet eine
Zeitmarke, um RSUs zu validieren. Ein IR behält entweder eine Uhr bei, die
sich nicht zurückstellt,
wenn der IR aufhört,
in Betrieb zu sein, oder fragt seinen Nachbarn nach der ältesten bekannten
Zeitmarke, nachdem er initialisiert oder neu gebootet wird.
-
Ein
IR, der einen RSU empfängt,
akzeptiert den RSU als gültig,
wenn der empfangene RSU eine größere Zeitmarke
hat als die Zeitmarke das gespeicherten RSUs von derselben Quelle,
oder wenn es keinen Eintrag für
die Verbindung in dem Topologiegraphen gibt und der RSU keine unendlichen
Kosten meldet. Verbindungs-Zustandsinformationen für fehlerhafte
Verbindungen sind die einzigen RSUs, die aus dem Topologiegraphen
gelöscht
werden, weil sie zu alt werden (was in der Größenordnung von etwa einer Stunde
(oder einem anderen Zeitraum) sein kann, nachdem der RSU verarbeitet
worden ist). RSUs für
Betriebsverbindungen werden aus dem Topologiegraphen gelöscht, wenn
die Verbindungen aus den Wegelenkungsbäumen sämtlicher Nachbarn gelöscht werden.
-
Es
ist zu bemerken, dass es keinen Bedarf für den Kopfknoten einer Verbindung
gibt, um RSUs periodisch auszusenden, um die Zeitmarken der Verbindung
zu aktualisieren, weil RSUs für
laufende Verbindungen niemals veralten. Dies ist wichtig, weil es
bedeutet, dass AIR keine periodischen Aktualisierungsnachrichten
benötigt,
um Verbindungs-Zustandsinformationen zu validieren wie OSPF, J.
Moy, "OSPF Version
2," RFC 1583, Network
Working Group, Marz 1994, und alle früheren Protokolle basierend
auf Reihenfolgenummern oder Zeitmarken.
-
V. Das Austauschen von
Aktualisierungsnachrichten
-
Ein
IR sendet RSUs auf zwei verschiedene Weisen: a) folgend einem optimalen
Wegelenkungsansatz; und b) folgend einem Geringsten-Gemeinkosten-Ansatz.
Der optimale Wegelenkungsansatz ist gut geeignet für Netzwerke
mit ziemlich statischen Topologien. Der Geringste-Gemeinkosten-Ansatz
ist maßgeschneidert für Netzwerke
mit dynamischen Topologien aufgrund der IR-Mobilität. Welcher
Ansatz in den IRs ausgeführt werden
sollte, kann durch einen IR-Konfigurationsparameter definiert werden.
-
Wie
in der Pseudocodebeschreibung angegeben, sendet ein IR RSUs über eine
Verbindung gemäß dem optimalen
Wegelenkungsansatz in den folgenden Fällen: (a) wenn ein RSU für die Verbindung
erhalten wird und bewirkt, dass die Verbindung zu dem Wegelenkungsbaum
des IRs hinzugefügt
wird, (b) wenn die Verbindung bereits in dem Wegelenkungsbaum des
IRs ist, und ein noch aktuellerer RSU für die Verbindung erhalten wird,
(c) wenn ein RSU, der den Fehler berichtet, dazu führt, dass
kein Weg zum Schweif der Verbindung vorhanden ist, und (d) wenn
eine fehlerhafte Verbindung nicht in dem Wegelenkungsbaum des IRs
ist und es keinen Weg zum Schweif der Verbindung gibt.
-
Im
Gegensatz sendet ein IR RSUs gemäß dem Geringsten-Gemeinkostenansatz
RSUs gemäß der folgenden
Regeln:
- (a) Der IR findet einen neuen Zielpunkt,
oder irgendeiner seiner Nachbarn meldet einen neuen Zielpunkt.
- (b) Der IR findet heraus, dass die Veränderung in den Kosten eines
Weges zu wenigstens einem Zielpunkt einen Schwellenwert Delta übersteigt,
oder dass wenigstens ein Zielpunkt für den IR oder irgendeinen seiner
Nachbarn unerreichbar wird.
- (c) Ein in dem LRT beinhalteter Weg des IR führt zu einer Schleife.
- (d) Der IR sendet einen RSU, wenn: (i) der neue ausgewählte Nachfolger
zu einem gegebenen Zielpunkt eine Adresse hat, die größer ist
als die Adresse des IR; und (ii) die gemeldete Entfernung von dem
neuen ausgewählten
Nachfolger n zu einem Zielpunkt j größer ist als die gemeldete Entfernung
von dem vorherigen Nachfolger zu demselben Zielpunkt. Jedoch wird
keine Aktualisierungsnachricht gebraucht bezüglich j oder irgendeinem Zielpunkt,
dessen Weg von dem IR j einschließt, wenn die Verbindung von
dem IR zu j fehlschlägt
und n ein Nachbar von j ist.
-
Jedes
Mal, wenn ein IR eine Aktualisierungsnachricht von einem Nachbar
verarbeitet, aktualisiert er diesen LRT des Nachbarn und durchläuft diesen
Baum, um festzustellen, für
welche Zielpunkte sein Nachbar den IR als ein Relais in seinen bevorzugten
Wegen verwendet. Der IR stellt dann fest, ob er den gleichen Nachbarn
als ein Relais für
irgendwelche der gleichen Zielpunkte verwendet. Eine Wegelenkungsschleife
wird festgestellt, wenn der IR und der Nachbar sich gegenseitig
als Relais zu irgendeinem Zielpunkt verwenden, in diesem Fall muss
die Schleife unterbrochen werden, und der IR muss eine Aktualisierungsnachricht
mit den entsprechenden Veränderungen
aussenden.
-
Wir
beobachten, dass in jeder Wegelenkungsschleife unter den IRs mit
eindeutigen Adressen einer der IRs die kleinste Adresse in der Schleife
haben muss; daher ist es dann nicht für alle IRs in einer Wegelenkungsschleife
möglich,
untätig
zu verbleiben, nachdem jeweils der andere ausgewählt worden ist, wenn ein IR veranlasst
wird, eine Aktualisierungsnachricht auszusenden, wenn er einen Nachfolger
aussucht, dessen Adresse größer als
seine eigene ist, weil zumindest einer von diesen veranlasst wird,
eine Aktualisierungsnachricht auszusenden, die eine Unterbrechung
der Schleife verursacht, wenn die IRs ihre LRTs aktualisieren.
-
Um
sicherzustellen, dass AIR mit Geringster-Gemeinkostenwegelenkung
und stufenweisen Aktualisierungen, die nur die Veränderungen
an einem LRT spezifizieren, korrekt arbeitet, muss ein IR sich denjenigen
LRT merken, der zuletzt an seine Nachbarn berichtet worden ist.
Wenn irgendwelche der Regeln für
die Aktualisierungsmeldung bei der Geringsten-Gemeinkostenwegelenkung
erfüllt
werden, muss der IR eines der zwei Dinge tun: (a) wenn der LRT neue
Nachbarn verglichen mit denjenigen vorliegend in dem LRT, der zuletzt aktualisiert
worden ist, enthält,
dann muss der IR seinen gesamten LRT in seiner Aktualisierung senden,
sodass neue Nachbarn über
all die Zielpunkte informiert werden, welche der IR kennt; (b) wenn
die beiden LRTs die gleichen Nachbarn beinhalten, sendet der IR
nur die Aktualisierungen, die benötigt werden, um den neuen LRT
aus dem alten zu erhalten.
-
Um
sicherzustellen, dass AIR aufhört,
Aktualisierungsnachrichten zu senden, kann eine einfache Regel verwendet
werden, um festzustellen, welcher IR aufhören muss, seinen Nachbarn als
ein Relais zu verwenden, solch eine Regel kann bspw. sein, "der IR mit der kleineren
Adresse muss seinen Weg ändern."
-
Die
Regeln für
den Aktualisierungs-Nachrichtenaustausch gemäß der Geringsten-Gemeinkostenwegelenkung,
die oben festgestellt worden sind, setzen voraus, dass eine Aktualisierungsnachricht
zuverlässig an
alle Nachbarn eines IR gesendet worden ist.
-
Das
folgende Beispiel veranschaulicht ein Szenario, in dem die letzte
Regel gebraucht wird, um eine Permanentschleife zu verhindern. Betrachten
wir nun das in 2a gezeigte Sechs-Knoten drahtlose
Netzwerk 30. In diesem Beispiel sind den IRs Identifizierer
vergeben, die lexikografisch geordnet sind, d.h. "a" ist der kleinste Identifizierer und "f" ist der größte Identifizierer in dem Graphen.
Es wird angenommen, dass alle Verbindungen und Knoten die gleichen Übertragungsverzögerungen
haben, alle die Verbindungen außer
den Verbindungen (a, b) und (b, c) Einheitskosten haben, und Delta
gleich unendlich ist. 2b bis 2d zeigen die
LRTs gemäß AIR an
den IRs, die mit ausgefüllten
Kreisen bezeichnet sind, für
die in 2 dargestellte Netzwerktopologie.
Pfeilspitzen an durchgezogenen Linien bezeichnen die Richtung der
in dem LRT der IR gespeicherten Verbindungen.
-
3a bis 3f zeigen
nun die Reihenfolge der Ereignisse, die durch die Ausführung von
AIR in dem Beispielnetzwerk nach den Fehlern der Verbindungen (c,
d) 32g und (b, e) 32d ausgelöst werden. Die Figuren zeigen
die von dem Knoten erzeugten RSUs (in Klammern) mit ausgefüllten Kreisen,
wobei RSUs in einer Aktualisierungsnachricht an die Knotennachbarn übertragen
werden. Das dritte Element in einem RSU entspricht den Kosten der
Verbindungen (ein RESET hat unendliche Kosten). Wie in 3b gezeigt, überträgt Knoten
c ein RSU nach der Verarbeitung des Fehlers der Verbindung (c, d) 32g;
die Entfernung von dem neuen Nachfolger b nach d und f ist jetzt
größer als
von dem vorhergehenden Nachfolger d. Wenn die Verbindung (b, e) 32d fehlschlägt (siehe 3d),
realisiert der Knoten b, dass die Zielpunkte d, e und f unerreichbar
werden und erzeugt einen RSU, der den Fehler derjenigen Verbindung
meldet, die mit dem Kopf des Unterbaumes des LRTs verbunden ist,
der unerreichbar wird. Der RSU von b veranlasst die RSUs, welche
die Knoten a, b und c zulassen, zu erkennen, dass es keine Wege
zu d, e und f gibt (3e und 3f).
Eine ähnliche
Folge von Ereignissen findet auf der anderen Seite der Netzwerkpartition
(nicht gezeigt) statt.
-
Als
ein anderes Beispiel des Betriebs von AIR betrachten wir das in 4a gezeigte
Sieben-Knoten drahtlose Netzwerk 40. Es wird angenommen,
dass alle Verbindungen und Knoten die gleichen Übertragungsverzögerungen
haben, all die Verbindungen Einheitskosten haben, und delta = ∞ ist. 4b bis 4d zeigen diejenigen
LRTs, die gemäß AIR an
den mit aufgefüllten
Kreisen bezeichneten IRs für
die in 4a dargestellte Netzwerktopologie
erstellt worden sind. Pfeilspitzen an durchgezogenen Linien bezeichnen
die Richtung der in den LRTs der IRs gespeicherten Verbindungen.
Wenn die Verbindung (f, g) fehlschlägt (4e),
veranlasst das Nachbarprotokoll bei Knoten f die Ausführung des
Verfahrens NeighborDown, die Verbindung (d, g) wird in den LRT von
f eingesetzt, aber es wird keine Aktualisierungsnachricht erzeugt,
weil der neue Nachfolger von f nach g eine kleinere Adresse als
f hat und der Zielpunkt g ist ein Nachbar des neuen Nachfolgers. 4f zeigt
den neuen LRT von Knoten d nach dem Fehler der Verbindung (d, g).
Weil d eine kleinere Adresse als der neue Nachfolger in Richtung
g hat, ist es erforderlich, eine Aktualisierungsnachricht zu senden,
welche die neue zu dem LRT hinzugefügte Verbindung meldet. Die
Knoten c, e und f erzeugen keine Aktualisierungsnachricht nach der
Verarbeitung der Nachricht von d, weil es einen Weg zu allen Zielpunkten
in dem Netzwerk gibt und keine. Wegelenkungsschleife gebildet worden
ist. Dieses Beispiel veranschaulicht daher, wie Verbindungsfehler
nicht die Erzeugung von Aktualisierungsnachrichten von Knoten verursachen
dürfen,
welche die fehlerhafte Verbindung in ihrem LRT haben, solange die
Knoten einen Weg zu allen Zielpunkten aufweisen.
-
VI. Das Erhalten von LRTs
und Quellwegen
-
Das
Erhalten von LRTs und Quellwegen in dem vorliegenden Schema wird
mit einer sehr einfachen Modifikation an Dijkstra's SPF Algorithmus
durchgeführt,
der auf dem Topologiegraphen eines IR laufen gelassen wird. Die
Modifikationen an SPF bestehen daraus, dass das richtige Bit, das
in dem TOS-Bitvektor
einer Verbindung gesetzt wird, überprüft wird,
sodass nur diejenigen Verbindungen, die für die benötigten TOS verwendet werden,
in den bevorzugten Wegen berücksichtigt
werden, und dass der Quellweg bezüglich der LLIDs anwächst, während der
Topologiegraph durchquert wird.
-
Mit
dem gegebenen Topologiegraphen verläuft der Algorithmus wie folgt:
-
Somit
ist ein Schema beschrieben worden, dass die Wegelenkung von Datenpaketen
in einem Computernetzwerk ermöglicht.
Obwohl die vorherige Beschreibung und die beiliegenden Figuren spezifische
Ausführungsbeispiele
diskutieren und veranschaulichen, sollte es verstanden werden, dass
die vorliegende Erfindung nur in Bezug auf die Ansprüche zu erfassen
ist, die dem Beispiel eines Pseudocode-Listings für das unten
dargelegte Wegelenkungsprotokoll folgen: