-
Diese Offenbarung beschreibt Verfahren zur Begrenzung der Anzahl von Routern in einem vermaschten Netzwerk.
-
Hintergrund
-
Vermaschte Netzwerke sind eine Art von Netzwerk, bei der Knoten häufig mehrere Funktionen haben. Zusätzlich zu ihrer primären Funktion als ein Sensor, Aktuator oder eine andere Vorrichtung dienen diese Knoten auch als Router, die helfen, Verkehr zwischen zwei anderen Knoten in dem Netzwerk zu bewegen. Vermaschte Netzwerke können auf eine relativ große Größe anwachsen, wobei sie häufig über 100 oder in manchen Fällen über 1000 Knoten haben, von denen viele oder die meisten auch Router sind.
-
Während vermaschte Netzwerke tendenziell robust sind, da es häufig mehrere Pfade zwischen jeden zwei Knoten gibt, gibt es auch Nachteile. Bei einer derart großen Anzahl von Knoten wird es zum Beispiel unzweckmäßig, dass jeder Knoten den effizientesten Pfad zu jedem anderen Knoten in dem Netzwerk kennt. Vermaschte Netzwerke verwenden typischerweise ein oder mehrere Weg- bzw. Pfadentdeckungsprotokolle. Wenn die Anzahl von Routern in dem vermaschten Netzwerk zunimmt, nimmt unabhängig von dem verwendeten Protokoll auch die Menge an Routingdaten zu, die vorgehalten und in dem gesamten Netzwerk kommuniziert werden müssen.
-
Durch diese erhöhte Menge an Routerdaten kann es erforderlich sein, dass die einzelnen Knoten teurer werden, da die Speichermenge, die erforderlich ist, um diese Informationen zu speichern, anwächst. Dies zwingt zu einem Designkompromiss. Entweder muss die Speichermenge in jedem Router erhöht werden, was die Kosten erhöht, oder die Router sind dazu gezwungen, jeweils eine Teilmenge aller Routinginformation zu speichern. Mit anderen Worten kann es sein, dass ein Zwischenrouter nur den nächsten Sprung zu einer vorbestimmten Anzahl von anderen Routern speichert, anstatt den nächsten Sprung zu jedem anderen Knoten zu speichern. Diese Option spart Speicherplatz, aber dient auch dazu, die Anzahl von Wegentdeckungsnachrichten zu erhöhen, da manche zuvor erhaltenen Netzwerktopologieinformationen notwendigerweise gelöscht werden müssen. In anderen Ausführungsformen kann es sein, dass diese erhöhte Menge an Routerdaten mehr Verwaltungsnachrichten (Overheadnachrichten) in dem Netzwerk erzeugt, was effektiv die Bandbreite verringert, die für nützlichen Verkehr verfügbar ist. Ein übliches Verfahren zur Verringerung der Routinginformationen besteht darin, Quellenrouting zu verwenden, bei dem eine zentrale Vorrichtung Routinginformationen vorhält und diese Informationen in dem Paketkopf (Paketheader) verwendet werden. Dieses Verfahren verringert Speicheranforderungen an den Knoten in dem Netzwerk, aber erhöht die Speicheranforderungen an der zentralen Vorrichtung, erfordert, dass sich alle Nachrichten durch die zentrale Vorrichtung bewegen, und erhöht die Nachrichtengröße über die Luft (und daher den Energieverbrauch der Vorrichtung), um die Routinginformationen aufzunehmen.
-
Es wäre daher vorteilhaft, wenn es ein Verfahren gäbe, um die Anzahl von Routern in einem vermaschten Netzwerk zu begrenzen, da dies die Anzahl von Wegentdeckungsnachrichten und anderem Verwaltungsverkehr (Overheadverkehr) verringern würde, die bzw. der sich durch das vermaschte Netzwerk bewegt. Es würde auch die Speichermenge verringern, die in jedem Knoten erforderlich ist, um die Routinginformationen zu speichern.
-
Die vorstehend genannten Nachteile werden gelöst durch ein Verfahren zur Begrenzung der Anzahl von Routern in einem vermaschten Netzwerk nach den unabhängigen Ansprüchen 1, 13 und 14. Bevorzugte Ausführungen sind in den abhängigen Ansprüchen definiert.
-
Die
US 2010/0303005 A1 offenbart ein Verfahren, das die Unterscheidung von Nutzungsberechtigungen zwischen verschiedenen Kategorien des Kommunikationsverkehrs innerhalb eines bestimmten Netzwerks ermöglicht. Das Verfahren umfasst das Gewährleisten, dass eine oder mehrere Kategorien von Verkehr niemals durch Kommunikationsfunkeinrichtungen, Links und/oder Spektren übertragen werden, die einer anderen Kategorie von Verkehr zugeordnet sind.
-
Die
US 2013/0028143 A1 betrifft gemeinsam genutzte Kommunikationsnetzwerke. In einer Ausführungsform bestimmt ein bestimmter Knoten in einem gemeinsam genutzten Kommunikationsnetzwerk die aktuellen Pfadkosten in einer Routing-Topologie von sich selbst über einen aktuellen Vater-Knoten zu einem Stamm-Knoten. Durch den speziellen Knoten bestimmen sich auch die jeweiligen Pfadkosten von jedem erreichbaren potenziellen Vater-Knoten des speziellen Knotens zum Wurzelknoten über jeden potenziellen Vater-Knoten und eine entsprechende Link-Metrik zu jedem potenziellen Vater-Knoten.
-
In der
US 7,720,037 B2 ist beschrieben, dass eine erste Vorrichtung kommunizieren kann durch Beitritt in ein drahtloses vermaschtes Netzwerk, das mindestens eine drahtlose Vorrichtung beinhaltet, die zum Betreiben eines drahtlosen Routing-Protokolls konfiguriert ist, Erkennen einer Gruppe von anderen drahtlosen Vorrichtungen, die zur Teilnahme in dem drahtlosen vermaschten Netzwerk konfiguriert sind, und Zugreifen auf eine Interest-Metrik für eine zweite drahtlose Vorrichtung in der Gruppe von anderen drahtlosen Vorrichtung. Die Interest-Metrik basiert teilweise auf einer Netzwerk-Topologie von dem drahtlosen vermaschten Netzwerk.
-
In manchen Fällen kann es wünschenswert sein, die Anzahl von Routern in einem vermaschten Netzwerk zu begrenzen. Es werden verschiedene Techniken offenbart, um die Anzahl von Routern zu begrenzen, ohne die Konnektivität zu beeinträchtigen. In manchen Ausführungsformen aktiviert ein Knoten seine Routerfähigkeit, wenn bereits weniger als eine vorbestimmte Anzahl von Routern in dem Netzwerk vorhanden sind. In anderen Ausführungsformen aktiviert ein Knoten seine Routingfähigkeit nur dann, wenn es notwendig ist, um ein Konnektivitätsproblem oder ein Bikonnektivitätsproblem zu lösen. In manchen Fällen kann es sein, dass ein Knoten, der zuvor seine Routerfähigkeit aktiviert hatte, nicht mehr ein Router sein muss. In manchen Ausführungsformen deaktiviert dieser Knoten auf diese Feststellung hin seine Routingfähigkeit.
-
Gemäß einer Ausführungsform wird ein Verfahren zur Begrenzung der Anzahl von Routern in einem vermaschten Netzwerk offenbart, wobei das vermaschte Netzwerk eine Vielzahl von Knoten aufweist. Das Verfahren, das von jeder der Vielzahl von Knoten ausgeführt wird, weist auf, eine Anzahl von Routern zu bestimmen, die sich gegenwärtig in dem vermaschten Netzwerk befinden, eine Routingfähigkeit eines Knotens zu aktivieren, wenn eine Anzahl von Routern, die sich gegenwärtig in dem vermaschten Netzwerk befinden, geringer als eine vorbestimmte Schwelle ist, Netzwerkverkehr zu überwachen, um ein Konnektivitätsproblem zu identifizieren, und eine Routingfähigkeit des Knotens zu aktivieren, wenn das Konnektivitätsproblem detektiert wird und der Knoten das Konnektivitätsproblem lösen kann.
-
Gemäß einer anderen Ausführungsform wird ein Verfahren zur Erzeugung eines vermaschten Netzwerks mit Bikonnektivität offenbart, wobei das vermaschte Netzwerk eine Vielzahl von Knoten aufweist. Das Verfahren, das von jedem Knoten ausgeführt wird, weist auf, Netzwerkverkehr zu überwachen, um Nachbarn eines Knotens zu bestimmen, jeden der Nachbarn abzufragen, um Nachbarn der Nachbarn zu bestimmen, festzustellen, dass mindestens einer der Nachbarn Teil einer ersten Gruppe ist und mindestens ein zweiter der Nachbarn Teil einer zweiten Gruppe ist, wobei es keine Knoten gibt, die der ersten Gruppe und der zweiten Gruppe gemein sind, und eine Anforderung von dem Knoten zu senden, um einen anderen Knoten zu finden, der mit der ersten Gruppe und der zweiten Gruppe in Kommunikation steht.
-
Gemäß einer dritten Ausführungsform wird ein Verfahren zur Begrenzung der Anzahl von Routern in einem vermaschten Netzwerk offenbart, wobei das vermaschte Netzwerk eine Vielzahl von Knoten aufweist. Das Verfahren, das von jedem der Vielzahl von Knoten ausgeführt wird, weist auf, an einem Knoten Netzwerkverkehr zu überwachen, ein Konnektivitätsproblem zu identifizieren und eine Routingfähigkeit des Knotens zu aktivieren, wenn der Knoten das Konnektivitätsproblem lösen kann.
-
Figurenliste
-
Für ein besseres Verständnis der vorliegenden Offenbarung wird auf die beigefügten Zeichnungen Bezug genommen, in denen gleiche Elemente durch gleiche Bezugszeichen bezeichnet werden und in denen:
- 1 ein Blockdiagramm eines Knotens in einem vermaschten Netzwerk ist,
- 2 eine Netzwerktopologie ist, die ein Konnektivitätsproblem zeigt,
- 3 eine Netzwerktopologie ist, die ein Bikonnektivitätsproblem zeigt,
- 4 ein Flussdiagramm ist, das Entscheidungen zeigt, die vor dem Senden einer Routeranforderung getroffen werden, und
- 5 eine Netzwerktopologie ist, die einen redundanten Router zeigt.
-
Detaillierte Beschreibung
-
Vorrichtungen, die in vermaschten Netzwerken verwendet werden, sind typischerweise klein und häufig batteriebetrieben. 1 zeigt ein Blockdiagramm einer repräsentativen Vorrichtung 10. Die Vorrichtung 10 weist eine Verarbeitungseinheit 20 und eine zugehörige Speichervorrichtung 30 auf. Diese Speichervorrichtung 30 enthält die Anweisung, die, wenn sie durch die Verarbeitungseinheit ausgeführt wird, die Vorrichtung 10 in die Lage versetzt, die hierin beschriebenen Funktionen auszuführen. Diese Speichervorrichtung 30 kann ein nicht flüchtiger Speicher sein, wie etwa ein FLASH ROM, elektrisch löschbares ROM oder andere geeignete Vorrichtungen. In anderen Ausführungsformen kann die Speichervorrichtung 30 ein flüchtiger Speicher sein, wie etwa ein RAM oder DRAM. Die Vorrichtung weist auch eine Netzwerkschnittstelle 40 auf, die typischerweise eine drahtlose Schnittstelle ist, die eine Antenne 41 aufweist. Darüber hinaus kann die Netzwerkschnittstelle eine Funkeinrichtung 42 aufweisen, die die Basisbandverarbeitung und die MAC-Niveau-Verarbeitung aufweist. Die Vorrichtung 10 kann eine zweite Speichervorrichtung 50 aufweisen, in der Daten, die von der Netzwerkschnittstelle 40 empfangen werden, und Daten gespeichert werden, die von der Netzwerkschnittstelle 40 zu übertragen sind. Diese zweite Speichervorrichtung 50 ist traditionell ein flüchtiger Speicher. Die Verarbeitungseinheit 20 besitzt die Fähigkeit, von der zweiten Speichervorrichtung 50 zu lesen und in diese zu schreiben, um mit den anderen Knoten in dem Netzwerk zu kommunizieren. Auch wenn es nicht gezeigt ist, weist jede Vorrichtung 10 auch eine Energieversorgung auf, die eine Batterie oder eine Verbindung zu einer permanenten Energiequelle sein kann, wie etwa einer Wandsteckdose.
-
Wie oben beschrieben worden ist, besteht eines der Probleme im Zusammenhang mit vermaschten Netzwerken in der Menge an Verwaltungsverkehr, der insbesondere durch Wegentdeckungsnachrichten erzeugt wird. Wenn die Anzahl an Routern zunimmt, nimmt auch die Anzahl von diesen Wegentdeckungsnachrichten zu. Tatsächlich wächst der Verwaltungsverkehr aus mehreren Gründen schneller als die Anzahl von Routern. Erstens bedeuten mehr Router notwendigerweise, dass es in dem vermaschten Netzwerk allgemein mehr Wege bzw. Pfade gibt. Zweitens speichert jeder Knoten, wie oben beschrieben, typischerweise nur einen Teil der Routinginformationen, wobei dieser Teil auf Basis von Speichergröße bestimmt wird. Wenn die Anzahl von Routern ansteigt, nimmt somit notwendigerweise die Anzahl bekannter und gespeicherter Wege als ein prozentualer Anteil der Gesamtzahl möglicher Wege ab.
-
Ein Weg, dieses Problem zu berücksichtigen, besteht darin, die Anzahl von Routern in dem vermaschten Netzwerk zu begrenzen. Es wäre vorteilhafter, wenn diese Anzahl durch die Knoten selbst begrenzt würde anstatt unter Verwendung manueller Intervention. Mit anderen Worten haben die meisten Vorrichtungen in einem vermaschten Netzwerk die Fähigkeit, Router zu werden. Gegenwärtig aktivieren in den meisten vermaschten Netzwerken Vorrichtungen, die die Fähigkeit haben, Router zu werden, diese Funktionalität standardmäßig bzw. automatisch. Wenn es in einem vermaschten Netzwerk N Vorrichtungen gibt, die Router werden können, werden somit häufig alle oder fast alle der N Vorrichtungen Router sein. In kleinen Netzwerken ist diese Operation nicht schädlich, da die anderen Knoten leicht Informationen über alle N Router kommunizieren und halten können.
-
Wenn der Wert von N anwächst, nehmen jedoch die Kosten des Kommunizierens und Haltens der Routinginformationen zu. Große Netzwerke erfordern mehr Speicher und leistungsfähigere Kommunikationsverbindungen oder begrenzen Routinginformationen auf eine kleine Teilmenge von Knoten, typischerweise einen oder höchstens einige wenige.
-
Die Praxis, Routerfunktionalität standardmäßig zu aktivieren, führt dadurch zu einem robusten Netzwerk, dass es ein Maximum an verschiedenen Wegen zwischen jeden zwei Knoten in dem vermaschten Netzwerk gibt. Einiges dieser Robustheit kann jedoch unnötig sein. Zum Beispiel kann ein Konferenzraum, der 15 Fuß breit und 20 Fuß lang sein kann, ein Beleuchtungssystem aufweisen, das durch ein vermaschtes Netzwerk gesteuert wird. Jedem Licht kann ein Knoten zugeordnet sein, so dass es zig Knoten in dem Konferenzraum gibt. Wie oben erläutert worden ist, werden standardmäßig die meisten dieser Knoten Router sein, wodurch eine große Anzahl von möglichen Wegen zwischen jeden zwei Knoten erzeugt wird. In einem Raum dieser Größe ist der Übertragungsbereich jedes Knotens jedoch derart, dass er von jedem anderen Knoten in dem Raum empfangen werden kann. Daher ist es unnötig, dass jeder Knoten ein Router ist. Es kann ausreichend sein, dass nur ein Router existiert. Verkehr zwischen jeden zwei Knoten kann direkt geschehen, ohne jede Notwendigkeit, Zwischensprünge zu verwenden. Falls notwendig, ist ein Router verfügbar, um Kommunikationen zu erleichtern und einen redundanten Weg zwischen jeden zwei Knoten bereitzustellen.
-
Außerdem betrachte man das Beispiel, in dem zig Router in einem einzelnen Konferenzraum enthalten sind. Während dies in dieser beschränkten Umgebung akzeptabel sein kann, kann ein Netzwerkwachstum problematisch sein. Man nehme zum Beispiel an, dass der Benutzer wünscht, dieses Beleuchtungssystem zu erweitern, um ein gesamtes Gebäude mit vielen Konferenzräumen und Büroflächen abzudecken. Wenn jeder Knoten ein Router wird, kann es Hunderte von Routern in dem Gebäude geben. Wie oben beschrieben worden ist, ist jedoch auf Basis des Übertragungsbereichs jedes Knotens und der Größe des Gebäudes vielleicht nur eine Handvoll von Routern wirklich erforderlich.
-
Das folgende beschreibt einen Satz von Algorithmen, die verwendet werden können, um es einem Knoten in einem vermaschten Netzwerk zu ermöglichen, festzustellen bzw. zu bestimmen, ob er seine Routerfähigkeit aktivieren sollte. Es wird auch ein zweiter Satz von Algorithmen definiert, der es einem Knoten ermöglicht, festzustellen bzw. zu bestimmen, ob er seine aktuell aktivierte Routerfunktionalität deaktivieren sollte. Diese Kombination von Algorithmen kann verwendet werden, um ein vermaschtes Netzwerk zu erzeugen, das robust ist und eine geeignete Anzahl von Routern enthält.
-
In der gesamten vorliegenden Offenbarung wird auf einen Führerknoten Bezug genommen. In manchen Ausführungsformen ist ein Führerknoten dafür verantwortlich, eine Liste aller Router in einem Netzwerk zu führen. In diesen Ausführungsformen kann der Führerknoten auch dafür verantwortlich sein, Routernummern zuzuweisen.
-
In anderen Ausführungsformen kann ein Führerknoten jedoch fehlen. In manchen Ausführungsformen ist zum Beispiel jeder Router dafür verantwortlich, seine eigene Liste von Routern zu führen, die unter Verwendung verfügbarer Routingalgorithmen bestimmt werden kann. In dieser Ausführungsform kann jeder Router auf Basis seiner MAC-Adresse eine Routeridentifikationsnummer wählen, um zu gewährleisten, dass alle Routernummern einzigartig sind. Es können jedoch auch andere Benennungsregeln verwendet werden.
-
Es ist wichtig, darauf hinzuweisen, dass ein Knoten typischerweise die Feststellung bzw. Bestimmung durchführt, seine Routerfähigkeit zu aktivieren, wenn er zuerst einem Netzwerk beitritt. In einer Ausführungsform sendet er eine Anforderung an einen Führerknoten, die eine Erlaubnis anfordert, seine Routingfunktionalitäten zu aktivieren. In dieser Ausführungsform ist der Führerknoten ein Knoten, der dafür verantwortlich ist, Routeranforderungen zu akzeptieren oder abzulehnen. Wenn der Führerknoten die Anforderung akzeptiert, weist er dem neuesten Router eine Router-ID zu. In einer anderen Ausführungsform aktiviert der Knoten seine Routingfähigkeit autonom. Wie oben beschrieben worden ist, kann der Knoten in dieser Ausführungsform eine Router-ID auf Basis seiner MAC-Adresse auswählen. Somit führt der Knoten in beiden Ausführungsformen eine Bestimmung dahingehend durch, ob er seine Routerfähigkeit aktivieren soll. In der ersten Ausführungsform muss der Knoten diese Anforderung an einen Führerknoten schicken, während er in der zweiten Ausführungsform einfach diese Fähigkeit aktiviert.
-
Gemäß einem ersten Algorithmus wartet ein neuer Knoten A, der einem vermaschten Netzwerk beitritt, bevor er bestimmt, ob er ein Router werden soll. Das erste Kriterium, das verwendet wird, um zu bestimmen, ob Knoten A ein Router werden sollte, ist die Anzahl von Routern, die sich gegenwärtig in dem Netzwerk befinden. Wenn diese Anzahl geringer als eine vorbestimmte Anzahl ist, dann kann der neu beigetretene Knoten A wählen, seine Routerfunktionalität zu aktivieren. Wie oben beschrieben worden ist, kann dies in manchen Ausführungsformen durch Senden einer Routeranforderung an den Führerknoten geschehen. Wenn die Anzahl von Routern in dem vermaschten Netzwerk diese vorbestimmte Grenze überschreitet, wird der neu beigetretene Knoten A nicht automatisch bestimmen, dass er ein Router werden sollte. Wie unten detaillierter beschrieben werden wird, können jedoch andere Kriterien verwendet werden, um später zu bestimmen, dass es vorteilhaft ist, dass dieser Knoten A ein Router wird. Dieser neu beigetretene Knoten A kann die Anzahl existierender Router in dem Netzwerk auf eine Anzahl von Wegen bestimmen.
-
In einer Ausführungsform kann er eine Anforderung für diese. Information an den Führerknoten senden, der mit der gewünschten Anzahl antwortet. In einer anderen Ausführungsform kann der neue beigetretene Knoten A den gesamten Netzwerkverkehr abhören und auf Basis des Verkehrs, den er hören kann, die Anzahl aktiver Router in dem Netzwerk bestimmen. In noch einer anderen Ausführungsform kann diese Information durch andere Knoten in dem vermaschten Netzwerk geführt werden, so dass der neue beigetretene Knoten A einfach einen anderen Knoten in dem Netzwerk abfragt, um diese Information zu erhalten. Dieser Knoten kann jeder Knoten in dem Netzwerk sein oder kann ein Router sein. Natürlich sind auch andere Verfahren zur Bestimmung der Anzahl von Routern in einem vermaschten Netzwerk möglich und liegen innerhalb des Fachwissens.
-
Wenn der neu beigetretene Knoten A bestimmt hat, dass er nicht ein Router werden wird, können andere Faktoren gegebenenfalls diese Feststellung ändern. Man nehme zum Beispiel an, dass ein anderer Knoten B versucht, beizutreten, nachdem dieser Knoten A dem vermaschten Netzwerk beigetreten ist. Der Knoten B befindet sich in dem Hörbereich des Knotens A, so dass der Knoten A dazu in der Lage ist, seine Anforderung zu hören, dem Netzwerk beizutreten. Wenn dieser Anforderung von dem Knoten B nicht geantwortet wird, kann der Knoten A bestimmen, dass er der einzige Knoten in dem vermaschten Netzwerk sein könnte, der sich innerhalb des Hörbereichs des Knotens B befindet. Wenn der Knoten B dazu in der Lage ist, diesem vermaschten Netzwerk beizutreten, muss er es somit durch Kommunikation über den Knoten A tun. Dieses Szenario tritt typischerweise auf, während das Netzwerk erzeugt wird. Somit kann der Knoten A in diesem Fall eine Bestimmung bzw. Feststellung vornehmen, dass er auf Basis der Unfähigkeit des Knotens B, dem Netzwerk beizutreten, ein Router werden sollte. In manchen Ausführungsformen sendet er dann diese Anforderung an den Führerknoten. Sobald diese Anforderung gewährt worden ist, ist er nun dazu in der Lage, die Anforderungen des Knotens B, dem Netzwerk beizutreten, an andere Knoten in dem vermaschten Netzwerk weiterzuleiten und es dadurch dem Knoten B zu ermöglichen, beizutreten. In anderen Ausführungsformen aktiviert der Knoten A einfach seine Routerfähigkeit und kommuniziert diese an seine Nachbarn. In noch anderen Ausführungsformen nimmt der Knoten A alleine keine Bestimmung vor, sondern informiert stattdessen den Knoten B, dass er (Knoten A) vorläufig bzw. provisorisch als ein Router verfügbar ist. Wenn der Knoten B keine Antwort von anderen Routern empfängt, aber eine oder mehrere provisorische Antworten empfängt, kann er eine von ihnen wählen und eine Anforderung zurück an den Sender senden, ein Router zu werden.
-
Wie oben beschrieben worden ist, kann ein Mangel an Konnektivität für einen neuen Knoten, der wünscht, dem vermaschten Netzwerk beizutreten, ein Faktor sein, der dazu führt, dass der Knoten A anfordert, ein Router zu werden. Konnektivitätsprobleme können sich jedoch auch in anderen Szenarien ergeben.
-
Man nehme eine Netzwerktopologie an, wie sie in 2 gezeigt ist. In dieser Topologie ist der Knoten A kein Router, da die Knoten C und D mit dem Rest des Netzwerks verbunden sind, einschließlich dem Knoten F über den Knoten E. Mit anderen Worten musste der Knoten A nicht ein Router werden, damit der Knoten C und der Knoten D dem Netzwerk beitreten konnten. Man nehme jedoch an, dass zu einem späteren Zeitpunkt der Knoten E nicht mehr verfügbar ist. Da der Knoten E die Leitung bzw. Strecke war, über die der Knoten C und der Knoten D in dem Netzwerk kommunizierten, sind sie nun nicht dazu in der Lage, mit irgendwelchen anderen Knoten zu kommunizieren. Somit wird eine Übertragung, die durch den Knoten C oder den Knoten D an den Knoten F gesendet wird, nicht weitergeleitet. In ähnlicher Weise kann eine Übertragung an den Knoten C oder den Knoten D von dem Knoten F in dem vermaschten Netzwerk nicht zugestellt werden. Somit kann der Knoten A, der sich innerhalb des Hörbereichs des Knotens C, des Knotens D und des Knotens F befindet, feststellen, dass diese Knoten nicht aufeinander zugreifen können. Da der Knoten A dazu in der Lage ist, als eine Brücke zwischen diesen Knoten zu dienen, versucht er, ein Router zu werden. Sobald der Knoten A ein Router wird, können der Knoten C und der Knoten D unter Verwendung des Knotens A als ein Router wieder mit dem Knoten F kommunizieren.
-
Somit ist ein erstes Kriterium, durch das ein Knoten, der zuvor kein Router war, bestimmen kann, dass er seine Routerfähigkeit aktivieren sollte, Konnektivität. Der Knoten A kann feststellen, dass zwei andere Knoten, die sich beide innerhalb des Hörbereichs des Knotens A befinden, nicht miteinander kommunizieren können. Dies kann sich während eines Netzwerkauf- bzw. -ausbaus (d.h. bei einer anfänglichen Aufzählung des Netzwerks) oder während einer Topologieänderung ereignen. In beiden Szenarien wird der Knoten A versuchen, seine Routerfähigkeit zu aktivieren, entweder automatisch oder durch Senden einer Routeranforderung an den Führerknoten.
-
Der vorstehende Algorithmus ist dabei nützlich, zu gewährleisten, dass ein vermaschtes Netzwerk Konnektivität zwischen all seinen Mitgliedsknoten beibehält. In dem Fall, dass ein Knoten plötzlich seine Verfügbarkeit verliert, wie etwa in dem in 1 gezeigten Szenario, gibt es jedoch eine messbare Verzögerung, bis ein neuer Router aktiviert ist und die neuen Wege erzeugt worden sind.
-
Ein zweiter Algorithmus kann dazu verwendet werden, zu gewährleisten, dass es im gesamten Netzwerk Bikonnektivität gibt. Bikonnektivität ist als die Fähigkeit definiert, zwischen jeden zwei Knoten über zwei unterschiedliche Wege zu kommunizieren. Knoten in dem Netzwerk können proaktiv agieren, um sicherzustellen, dass Bikonnektivität existiert. Man nehme zum Beispiel eine Netzwerktopologie an, die in 3 gezeigt ist. In dieser Topologie ist der Knoten A ein Router, der mit den Knoten B, C, D und E direkt kommunizieren kann. Der Knoten F kann mit dem Knoten C kommunizieren, aber kann den Knoten A nicht erreichen. In ähnlicher Weise kann der Knoten G mit dem Knoten E kommunizieren, aber kann den Knoten A nicht erreichen. Der Knoten X kann mit zumindest dem Knoten C und dem Knoten E kommunizieren. Der Knoten F kann in der Lage sein, mit dem Knoten G zu kommunizieren.
-
Jeder Router in dem Netzwerk kann einen gewissen Status an andere in dem Netzwerk kommunizieren. Zum Beispiel kann jeder Router den anderen Routern mitteilen, dass er erreicht werden kann, und seine direkt benachbarten Router. Wenn der Knoten A diese Information für seine unmittelbaren Nachbarn (d.h. Knoten B, C, D und E) empfängt, stellt er fest, dass es auf einer Seite eine Gruppierung von BCF gibt, da der Knoten B berichtet, dass seine Nachbarn A und C sind, und der Knoten C berichtet, dass seine Nachbarn B und F sind. In ähnlicher Weise lernt er, dass es auf seiner anderen Seite eine zweite Gruppe von DEG gibt. Man beachte, dass diese zwei Gruppierungen keine gemeinsamen Knoten aufweisen. Da der Knoten A die Knoten F und G nicht sehen kann, kann er nicht feststellen, ob sich diese Knoten in Kommunikation befinden.
-
Auf Basis der gesammelten Informationen glaubt der Knoten A, dass es eine einzelne Schwachstelle zwischen der Gruppierung BCF und der Gruppierung DEG gibt. Somit kann er eine Anforderung aussenden, die fragt, ob es einen Knoten gibt, der dazu in der Lage ist, diese zwei Gruppen zu verbinden. Diese Anforderung kann gegebenenfalls nur an seine Nachbarn gesendet werden oder kann über das gesamte Netzwerk verteilt werden.
-
Der Knoten X, der gegenwärtig kein Router ist, empfängt diese Anforderung von dem Knoten A. Da sich der Knoten C und der Knoten E beide innerhalb seines Hörbereichs befinden, stellt er fest, dass er dazu in der Lage ist, diese zwei Gruppierungen miteinander zu verbinden. Daher antwortet er in einer Ausführungsform an den Knoten A, dass er dazu in der Lage ist, diese Gruppierungen zu verbinden. In einer weiteren Ausführungsform berichtet er auch seine Kosten, die mit jedem Knoten in diesen Gruppierungen in Zusammenhang stehen. Auf diese Weise kann der Knoten A den besten Knoten bestimmen, um als ein redundanter Weg zwischen diesen Gruppierungen zu dienen. Der Knoten A benachrichtigt dann den Knoten X, dass er ausgewählt worden ist, um als die redundante Verbindung zu dienen. Nach Empfang dieser Nachricht aktiviert der Knoten X seine Routerfähigkeit oder sendet in anderen Ausführungsformen eine Routeranforderung an den Führerknoten. Gemäß einer zweiten Ausführungsform antwortet der Knoten X dem Knoten A nicht. Vielmehr aktiviert er unmittelbar seine Routerfähigkeit oder sendet in einer anderen Ausführungsform die Routeranforderung an den Führerknoten, sobald er festgestellt hat, dass er als eine redundante Verbindung zwischen den Gruppierungen BCF und DEG dienen kann.
-
Es ist darauf hinzuweisen, dass der Knoten A nicht die einzige Schwachstelle in 3 gewesen sein könnte, da zwischen dem Knoten F und dem Knoten G ein Weg existiert. Die Verwendung dieser Verbindung als die redundante Verbindung würde jedoch einen Weg zwischen dem Knoten B und den Knoten D erzeugen, der fünf Sprünge lang ist. In manchen Ausführungsformen kann dies nicht akzeptabel sein. Daher kann die Wahl des Knotens X als die redundante Verbindung die Entfernung zwischen dem Knoten B und dem Knoten D reduzieren.
-
Somit kann der Wunsch, zu gewährleisten, dass das gesamte Netzwerk Bikonnektivität hat, ein zweites Kriterium sein, das verwendet wird, um zu bestimmen, dass ein Knoten eine Erlaubnis anfordert, ein Router zu werden.
-
Der vorstehende Satz von Algorithmen kann verwendet werden, um zu bestimmen, wie ein Knoten bestimmt bzw. feststellt, dass er ein Router werden sollte. Wie oben beschrieben worden ist, kann ein Knoten zum Beispiel bei bzw. nach der Initialisierung einfach deshalb entscheiden, ein Router zu werden, weil es gegenwärtig wenige andere Router in dem Netzwerk gibt. Wenn das Netzwerk wächst kann diese Entscheidung jedoch ggf. im Rückblick suboptimal gewesen sein.
-
Man betrachte das frühere Beispiel des Beleuchtungssystems für den Konferenzraum. Da das Netzwerk in dem Konferenzraum aufgezählt ist, kann jeder Knoten gegebenenfalls alleine auf Basis der begrenzten Anzahl von Routern in dem Netzwerk bestimmen, dass er ein Router sein kann. Wenn das Netzwerk weiter wächst, wie etwa durch den Einschluss anderer Konferenzräume oder Büroflächen, sind diese Knoten jedoch nun unnötig. Wenn es wünschenswert ist, eine maximale Anzahl von Routern in einem Netzwerk zu haben, verbrauchen diese Knoten außerdem wertvolle Ressourcen in dem Netzwerk.
-
Somit kann in einer Ausführungsform ein System mit mehreren Schwellen verwendet werden. Wenn zum Beispiel die gewünschte maximale Anzahl von Routern 25 ist, kann eine erste vorbestimmte Grenze auf eine kleinere Zahl gesetzt werden, wie etwa 10. Wenn es weniger als diese vorbestimmte Anzahl von Routern gibt, dann wird der Knoten versuchen, ein Router zu werden. Wenn die Anzahl existierender Router diese Schwelle überschreitet, kann der Knoten nur dann ein Router werden, wenn eines der anderen Kriterien erfüllt ist. Dies ermöglicht es dem Netzwerk, schnell aufgezählt zu werden, während es auch die Möglichkeit verringert, dass die maximale Anzahl von Routern überschritten wird.
-
Daher gibt es in einer Ausführungsform mindestens zwei Grenzen bzw. Grenzwerte. Erstens gibt es die maximale Anzahl von Routern (Nmax), die in dem Netzwerk erlaubt sind. Es kann eine andere vorbestimmte Schwelle, Ninit, geben, die geringer als Nmax ist. Wenn die Anzahl existierender Router geringer als Ninit ist, dann aktiviert ein neu beigetretener Knoten automatisch seine Routerfähigkeit oder sendet in einer anderen Ausführungsform unmittelbar eine Routeranforderung an den Führerknoten. Wenn die Anzahl existierender Router größer als Ninit ist, dann kann der neu beigetretene Knoten nur dann ein Router werden, wenn es als eine Folge der Konnektivitäts- oder Bikonnektivitätsalgorithmen erforderlich ist. Die Beziehung zwischen Nmax und Ninit ist ein Designparameter, und es ist keine feste Beziehung geboten. In manchen Ausführungsformen kann Ninit zum Beispiel 50% von Nmax sein. In anderen Ausführungsformen kann Ninit um einen festen Wert geringer als Nmax sein, wie etwa 10 weniger als Nmax.
-
4 zeigt ein Flussdiagramm, das die verschiedenen Entscheidungen illustriert, die von einem Knoten in dem vermaschten Netzwerk getroffen werden können. Wie in Schritt 100 gezeigt ist, fordert der Knoten A zuerst bei der Energieinitialisierung an, einem Maschenknoten beizutreten. Diese Anforderung kann an den Führerknoten gesendet werden, der die Anforderung typischerweise gewähren wird. Nachdem der Knoten A dem Netzwerk beigetreten ist, bestimmt er, wie viele Router gegenwärtig existieren, wie es in Schritt 110 gezeigt ist. Wie oben beschrieben worden ist, können zahlreiche Verfahren verwendet werden, damit der Knoten A die Anzahl aktiver Router bestimmt, einschließlich des Abfragens des Führerknotens, des Abfragens eines Nachbarknotens oder des Überwachens von Netzwerkverkehr. Wenn die Anzahl aktiver Router geringer als eine vorbestimmte Schwelle ist, wie etwa Ninit, aktiviert der Knoten A seine Routerfähigkeit, wie es in Schritt 120 gezeigt ist. Wie oben beschrieben worden ist, kann dies automatisch geschehen, oder der Knoten kann eine Routeranforderung an den Führerknoten senden. Wenn die Anzahl von Routern diese vorbestimmte Schwelle überschreitet, aktiviert der Knoten A seine Routerfähigkeit nicht. Stattdessen beginnt er damit, Netzwerkverkehr zu überwachen, um zu bestimmen, ob andere Kriterien existieren, die es erfordern, dass er als ein Router dient. Wie es in Schritt 130 gezeigt ist, kann der Knoten A zum Beispiel durch Überwachung von Netzwerkverkehr bestimmen, dass er zwei Nachbarn hat, die sich beide innerhalb seines Hörbereichs befinden und die nicht miteinander kommunizieren können. Dies kann beim Start geschehen, wenn der Knoten A der einzige Knoten ist, der dazu in der Lage ist, einen neuen Knoten zu hören, der versucht, dem Netzwerk beizutreten. Alternativ kann dies während des normalen Betriebs aufgrund einer Topologieänderung geschehen, wie etwa der Eliminierung eines zuvor aktivierten Routers. Wenn der Knoten A feststellt, dass ein Konnektivitätsproblem existiert und dass er dazu in der Lage ist, dieses Problem zu lösen, wird er seine Routerfähigkeit aktivieren, wie es in Schritt 120 gezeigt ist. Wenn kein solches Konnektivitätsproblem existiert, erhält die Vorrichtung einfach ihren Nicht-Router-Status bei. Schließlich kann es in manchen Ausführungsformen erforderlich sein, dass in dem Netzwerk Bikonnektivität existiert. Zum Beispiel kann der Knoten A eine Nachricht von einem anderen Knoten in dem Netzwerk empfangen, die fragt, ob er dazu in der Lage ist, eine redundante Verbindung bereitzustellen, die zwei Gruppen von Knoten verbindet, wie es in Schritt 140 gezeigt ist. Wenn der Knoten A dazu in der Lage ist, die zwei angegebenen Gruppen von Knoten zu verbinden, kann er seine Routerfähigkeit aktivieren, wie es in Schritt 120 gezeigt ist.
-
Die vorstehende Offenbarung beschreibt verschiedene Algorithmen, durch die ein Knoten feststellen kann, dass er seine Routerfähigkeit aktivieren sollte. Darüber hinaus kann es auch notwendig sein, dass Knoten feststellen, dass sie ihre Routerfähigkeit aufgeben sollten. Dies kann geschehen, wenn sich die gesamte Anzahl von Routern in dem System Nmax nähert, oder kann auf einer kontinuierlichen Basis durchgeführt werden. Somit ermöglichen es die Algorithmen in einer Ausführungsform einem Knoten, eine Anforderung an den Führerknoten zu senden, von der Liste von Routern entfernt zu werden. In anderen Ausführungsformen deaktiviert der Knoten einfach seine Routerfähigkeit und kann dies gegebenenfalls an seine Nachbarn kommunizieren. Es gibt verschiedene Szenarien, in denen ein Knoten wünschen kann, seinen Routerstatus wie unten beschrieben aufzugeben.
-
Man betrachte die Netzwerktopologie in 5. In diesem Netzwerk befindet sich der Knoten D in Hörentfernung von drei Routern, Knoten A, Knoten B und Knoten C. In ähnlicher Weise befindet sich auch der Knoten E in Hörentfernung von diesen drei Routern. In dieser Topologie gibt es drei mögliche Wege zwischen dem Knoten D und den Knoten E (d.h. durch den Knoten A, durch den Knoten B und durch den Knoten C). Offensichtlich gibt es in dieser Topologie keine Konnektivitätsprobleme, noch gibt es irgendwelche Bikonnektivitätsprobleme. Tatsächlich gibt es mehr Router als erforderlich sind, um beide dieser Kriterien zu erfüllen. In dieser Ausführungsform können der Knoten A, der Knoten B und der Knoten C ggf. ihre Routinginformationen teilen, die jeweils seine Nachbarn und die Kosten von ihm selbst zu jedem dieser Nachbarn identifizieren. Jeder dieser Knoten kann dann seine Kosten mit denjenigen vergleichen, die durch die anderen Knoten berichtet werden. Wenn die Kosten für einen Knoten größer als die Kosten oder gleich den Kosten für einen zweiten Knoten sind, kann dieser Knoten dazu in der Lage sein, seine Routerfähigkeit aufzugeben. Wenn zum Beispiel die berichteten Routingkosten für den Knoten B geringer als die Kosten oder gleich den Kosten für den Knoten A sind, kann ohne jede Verschlechterung der Netzwerkleistung der Knoten A aufhören, ein Router zu sein.
-
In einer Ausführungsform kann der Knoten A, wenn er feststellt, dass geringere oder gleiche Kosten unter Verwendung des Knotens B oder des Knotens C verfügbar sind, eine Anforderung an den Führerknoten senden, seine Routerfähigkeit aufzugeben. In einer anderen Ausführungsform deaktiviert der Knoten A einfach seine Routerfähigkeit und kommuniziert dies an seine Nachbarn.
-
In einer anderen Ausführungsform können die fraglichen Knoten zuerst untereinander bestimmen, welcher seine Routerfähigkeit aufgeben wird, bevor irgendeiner der Knoten seine Routerfähigkeit deaktiviert. Zum Beispiel kann der Knoten A höhere oder gleiche Kosten im Vergleich zu dem Knoten B haben, der höhere oder gleiche Kosten im Vergleich zu dem Knoten C hat. Der Knoten B kann seine Kosten mit dem Knoten C vergleichen und feststellen, dass er seinen Routerstatus beenden sollte, während der Knoten A sich selbst mit jedem der anderen Knoten vergleicht und eine ähnliche Feststellung trifft. Wenn die Kosten von diesen drei alle gleich sind, dann kann darüber hinaus jeder glauben, dass er seinen Routerstatus beenden sollte. Wenn der Knoten A feststellt, dass er ein Kandidat ist, um seinen Routerstatus aufzugeben, kommuniziert er daher diese Absicht zuerst an die anderen Knoten, Knoten B und C. Diese Knoten werden verifizieren, dass der Kandidatenknoten A in der Tat Routingkosten hat, die gleich oder größer als ihre eigenen sind. Wenn diese Verifizierung erfolgreich ist, wird jeder dem Knoten A seine Billigung dieser Entscheidung anzeigen. Wenn jedoch einer der anderen Knoten glaubt, dass seine Kosten tatsächlich schlechter als Knoten A sind, kann er mit seiner eigenen Kommunikation antworten, die seine Intention angibt, sich als ein Router zurückzuziehen. Um eine Blockade zu vermeiden, können sich die Kriterien, die verwendet werden, um zu bestimmen, dass ein Knoten ein Kandidat zum Zurückziehen ist, von den Kriterien unterscheiden, die es einem anderen Knoten ermöglichen, sich über die Intention dieses Knotens zum Zurückziehen hinwegzusetzen.
-
In diesem Beispiel hat der Knoten A die höchsten Kosten, und daher werden letztendlich die Knoten B und C seine Entscheidung billigen, sich als ein Router zurückzuziehen. Diese Änderung in der Topologie hat einen Router weniger in dem Netzwerk und keine Änderung in der Routingleistung durch das Netzwerk zur Folge. Wenn zu einem späteren Zeitpunkt der Knoten B oder der Knoten C seine Verfügbarkeit verliert, kann der oben beschriebene Bikonnektivitätsalgorithmus verwendet werden, um den Knoten A wieder als einen Router einzusetzen.
-
Das obige Beispiel nimmt an, dass es notwendig war, Bikonnektivität in dem Netzwerk beizubehalten. In manchen Netzwerken, wie etwa sehr großen Netzwerken, kann es jedoch gegebenenfalls unmöglich sein, Bikonnektivität beizubehalten und die Anzahl von Routern auf eine gegebene Anzahl zu begrenzen. In diesen Netzwerken kann auf das Erfordernis von Bikonnektivität verzichtet werden. Unter Bezugnahme auf 5 können in diesem Szenario beide Knoten A und B feststellen bzw. bestimmen, dass sie ihre Routerfähigkeit aufgeben sollten. In diesem Fall werden in einer Ausführungsform beide dieser Knoten eine Anforderung an den Führerknoten senden, sie von der Liste von Routern zu entfernen. In einer anderen Ausführungsform werden beide dieser Knoten einfach ihre Routingfähigkeit deaktivieren. Diese Änderung in der Topologie hat keinen unmittelbaren Einfluss auf die Netzwerkleistung, da der Knoten C die besten Kosten zwischen den Knoten D und E bereitstellt. Das Netzwerk kann gegebenenfalls jedoch länger benötigen, um sich zu erholen, wenn der Knoten C zu einem späteren Zeitpunkt versagt. Die oben beschriebenen Algorithmen werden jedoch effektiv sein, dieses Konnektivitätsproblem zu identifizieren. Sobald dieses Konnektivitätsproblem identifiziert wird, wird der Knoten A oder der Knoten B seine Routerfähigkeit aktivieren und dadurch dieses Problem lösen.
-
Somit kann der hierin beschriebene Satz von Algorithmen verwendet werden, um ein vermaschtes Netzwerk automatisch zu konfigurieren, um die Anzahl von Routern zu begrenzen. Diese Algorithmen sind in den Speichervorrichtungen der Knoten gespeichert und können von diesen Knoten ausgeführt werden. Da diese Algorithmen von jedem Knoten ausgeführt werden, kann das Netzwerk darüber hinaus schnell und effizient auf Änderungen in der Netzwerktopologie reagieren. Darüber hinaus können die Algorithmen verwendet werden, um bestimmte Netzwerkeigenschaften zu garantieren. Wenn sie entsprechend programmiert sind, können die Algorithmen zum Beispiel verwendet werden, um ohne jegliche Benutzerintervention Bikonnektivität in dem gesamten Netzwerk zu gewährleisten. Darüber hinaus ermöglichen es diese Algorithmen dem vermaschten Netzwerk, selbstheilend zu sein. Mit anderen Worten können die Knoten dann, wgkenn das Versagen eines Knotens ein Konnektivitätsproblem in dem Netzwerk erzeugt, durch Ausführen dieser Algorithmen das Konnektivitätsproblem identifizieren und Abhilfemaßnahmen durchführen. In manchen Ausführungsformen weist die Abhilfemaßnahme das Hinzufügen eines anderen Routers zu dem Netzwerk auf.
-
Zusammenfassend benötigt ein Knoten somit die folgenden Informationen, um alle der hierin beschriebenen Merkmale zu implementieren:
- (A) die Anzahl von Routern in dem Netzwerk,
- (B) von jedem Nachbar eine Liste der Router, mit denen dieser Nachbar verbunden ist,
- (C) eine Länge oder Wegkosten für die Router in den Listen in (B) und
- (D) von jedem Nachbar eine Liste seiner benachbarten Router.
-
Diese Informationen können normalerweise unter Verwendung eines traditionellen Routingalgorithmus erhalten werden. Vorrichtungen, die ihre Routerfähigkeit nicht aktiviert haben, können diese Informationen durch Mithören von Wegentdeckungsnachrichten erhalten, die durch benachbarte Router übertragen werden.
-
Die Anzahl von Routern (d.h. die in (A) beschriebene Information) wird verwendet, um die Anzahl von Routern in kleinen Netzwerken zu erhöhen und die Anzahl in großen Netzwerken zu verringern.
-
Das Gewährleisten von Konnektivität wird unter Verwendung der Informationen aus (B) durchgeführt. Wenn ein Knoten zwei Nachbarn hat, die unterschiedliche Listen erreichbarer Router berichten, dann sind sie insbesondere nicht verbunden, und der Knoten sollte ein Router werden.
-
Die Information aus (C) wird zur Detektion redundanter Router verwendet. Wenn ein Router zwei Nachbarn hat, von denen beide berichten, dass sie dieselben oder geringere Kosten gegenüber allen Routern haben, dann ist dieser Router redundant und deaktiviert seine Routerfähigkeit.
-
Die Information aus (D) wird für Bikonnektivität verwendet. Wenn ein Knoten zwei Sätze von Nachbarn hat, die keine Nachbarverbindungen teilen, dann ist es wahrscheinlich, dass der Graph nicht biverbunden ist.
-
Die vorliegende Offenbarung soll in ihrem Bereich nicht auf die speziellen hierin beschriebenen Ausführungsformen beschränkt werden. Tatsächlich werden zusätzlich zu denjenigen, die hierin beschrieben sind, andere verschiedene Ausführungsformen von und Modifikationen an der vorliegenden Offenbarung für Fachleute aus der vorhergehenden Beschreibung und den beigefügten Zeichnungen ersichtlich sein. Somit ist es beabsichtigt, dass derartige andere Ausführungsformen und Modifikationen in den Bereich der vorliegenden Offenbarung fallen. Auch wenn die vorliegende Offenbarung hierin in dem Kontext einer bestimmten Implementierung in einer bestimmten Umgebung für einen bestimmten Zweck beschrieben worden ist, werden Fachleute erkennen, dass ihre Nützlichkeit nicht darauf beschränkt ist und dass die vorliegende Offenbarung vorteilhaft in jeder Anzahl von Umgebungen für jede Anzahl von Zwecken implementiert werden kann. Dementsprechend sollten die unten angegebenen Ansprüche im Hinblick auf die volle Breite und den Geist der vorliegenden Offenbarung interpretiert werden, wie sie hierin beschrieben sind.