-
HINTERGRUND DER ERFINDUNG
-
Anwendungsbereich der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum Konfigurieren
eines Netzwerkes, das Folgendes umfasst: Die Ermittlung der Knoten des
Netzwerkes, die miteinander kommunizieren können; und die Zuordnung von
Identifikatoren zu den Knoten.
-
Die
Erfindung bezieht sich ferner auf ein Verfahren zum Routing einer
Nachricht innerhalb eines Knotennetzwerkes, wobei die Knoten durch
eindeutige Knotenidentifikatoren identifiziert werden.
-
Die
Erfindung bezieht sich ferner auf ein Kommunikationsnetzwerk, das
eine Vielzahl von Knoten umfasst, wobei die Knoten durch eindeutige Knotenidentifikatoren
identifiziert werden; und auf Knoten zum Einsatz in einem derartigen
Netzwerk.
-
Die
Erfindung bezieht sich ferner auf einen Kommunikationsnetzwerkknoten,
der einen Speicher zum Speichern eines logischen Identifikators
des Knotens umfasst; und einen Prozessor, der ermittelt, ob sich
der Knoten in einem Nachrichtenpfad zu einem Zielknoten befindet.
-
Die
Erfindung bezieht sich ferner auf einen Netzwerksteuerknoten für ein Kommunikationsnetzwerk,
der einen Speicher zum Speichern einer Netzwerkkonfiguration umfasst;
und einen Prozessor.
-
Beschreibung der verwandten
Technik
-
Die
heutigen typischen Netzwerke und insbesondere diejenigen, die für die die
Echtzeitsteuerung von modernen Gebäuden eingesetzt werden, beinhalten
durch Drähte
verbundene Knoten, die beim Bau des Gebäudes eingerichtet werden. In
diesen Systemen werden die Netzwerke dazu verwendet, die Beleuchtung,
die Heizung bzw. Kühlung,
die Aufzüge
usw. zu steuern. Die Knoten des Netzwerkes sind typischerweise Mikrocomputer
mit einer erheblichen Anzahl von Speichern und anderen Ressourcen.
Da diese Systeme verdrahtet sind und relativ leistungsfähige Knoten
enthalten, sind sie kostspielig und ihr Einsatz im Allgemeinen nur
in den größten Gebäuden gerechtfertigt.
Außerdem
sind sie im Allgemeinen nicht für
die Nachrüstung älterer Gebäude geeignet,
die die geeignetsten Objekte insbesondere für Systeme zur Steuerung der
Energienutzung sein können.
-
Benötigt wird
ein Netzwerk aus sehr kostengünstigen
Knoten, d.h. aus Knoten, die minimale Ressourcen haben oder aus
ressourcenarmen Knoten, die drahtlos miteinander verbunden und somit
für Gebäude kleiner
bis mittlerer Größe und für die Nachrüstung älterer Gebäude geeignet
sind.
-
In
typischen netzwerk-basierenden Steuersystemen tauschen die Knoten
eines Datenkommunikationsnetzwerkes untereinander Informationseinheiten
aus. Diese Einheiten werden herkömmlicherweise
als Datenpakete, Frames oder Zellen bezeichnet. In einem Multihop-Netzwerk
verfügt
ein Knoten nicht über
eine direkte Kommunikationsverbindung mit jedem anderen Knoten des
Netzwerkes, und ein Paket muss eventuell über Zwischenknoten weitergeleitet
werden, die in einem Kommunikationspfad vom Quellknoten zum Zielknoten
liegen. In Abhängigkeit
von der Art des Netzwerkes und seinen Merkmalen kann diese Funktion
des Routings von Paketen an den Zwischenknoten Folgendes beinhalten:
1) die Auswahl einer von vielen Verbindungen, die von dem Zwischenknoten
abgehen (beispielsweise in einem Punkt-zu-Punkt-Multihop-Netzwerk
wie dem Internet) oder 2) eine Entscheidung darüber, ob ein empfangenes Paket
weiterzuleiten (weiterzusenden) ist oder nicht (beispielsweise in
einem drahtlosen Multihop-Broadcast-Netzwerk, in dem alle Knoten
einen gemeinsamen Kanal nutzen). Die meisten der in Datenkommunikationsnetzwerken
eingesetzten beliebten Routing-Verfahren nutzen Routing-Tabellen oder
Entscheidungstabellen, um Entscheidungen zum Routing in einem Vorgang
zu fällen,
bei dem eine Adresse einer Nachricht dazu verwendet wird, zwecks
Routing-Entscheidung oder Auswahl auf die Tabelle zuzugreifen. Eine
Routing-Tabelle gibt in einem Zwischenknoten die beste abgehende
Verbindung oder den kürzesten
Pfad zum Zielknoten an, für den
das Paket bestimmt ist. Entscheidungstabellen helfen bei der Entscheidung über die
Weiterleitung eines empfangenen Paketes. Derartige Tabellen nehmen
jedoch Platz im Speicher eines Knotens ein. Beispielsweise wären, wenn
in einem Netzwerk mit 256 Knoten, was ungefähr der Anzahl für ein typisches
Gebäude
mittlerer Größe entspricht,
jeder Knoten eine einfache Routing-Tabelle enthielte, mindestens
512 Bytes für
die Angabe erforderlich, an welchen Knoten ein Paket weiterzuleiten
ist. Eine Entscheidungstabelle in einem derartigen Netzwerk mit
256 Knoten kann 288 Bytes benötigen,
256 Bytes für
die Knotenadressen und 32 Bytes für die Angabe in Bits, ob ein
für jeden
Knoten in der Tabelle bestimmtes Paket weiterzuleiten ist oder nicht.
In einem Netzwerk mit ressourcenarmen Knoten mit geringer Speicherkapazität steht
nicht genug Speicherplatz zur Verfügung, um derartige Tabellen
zu speichern. Der Speicher wird in derartigen Knoten gemeinsam für Datenkommunikationsfunktionen
und system- oder anwendungsspezifische Funktionen genutzt. Daher
müssen
andere Routing-Verfahren erfunden werden. Diese Routing-Verfahren sollten
nicht nur sehr wenig RAM nutzen, sondern auch effizient sein bei
der Weiterleitung von Paketen von der Quelle zum Ziel mit annehmbaren
Laufzeiten.
-
Es
werden ein Netzwerk aus Knoten mit minimalen Ressourcen, insbesondere
Speicher, und ein Routing-Protokoll benötigt, das mit derartigen Knoten
funktioniert. Ein Verfahren zum Routing einer Nachricht in einem
Netzwerk nach dem Stand der Technik ist in dem Dokument US-A-5 295
154 beschrieben, in dem die Knoten des Netzwerkes wie ein Spannbaum
angeordnet sind.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung hat zur Aufgabe, ein System zu schaffen, das
ein Netzwerk aus kostengünstigen
Knoten mit minimalen Ressourcen drahtlos verbindet.
-
Die
vorliegende Erfindung hat ferner zur Aufgabe, ein System zu schaffen,
das Knoten mit Hilfe von Broadcast-Kommunikationsverfahren verbindet.
-
Die
vorliegende Erfindung hat ferner zur Aufgabe, ein Netzwerk zu schaffen,
das es nicht erfordert, dass Routing-Tabellen in den Knoten gespeichert
werden.
-
Die
vorliegende Erfindung hat ferner zur Aufgabe, ein Routing-Protokoll
zu schaffen, das für
Netzwerke mit ressourcearmen Knoten geeignet ist.
-
Die
vorliegende Erfindung hat ferner zur Aufgabe, ein System zu schaffen,
das ein Netzwerk aus Knoten konfiguriert.
-
Die
vorliegende Erfindung hat ferner zur Aufgabe, ein System zu schaffen,
das es ermöglicht,
Gebäude
kleiner bis mittlerer Größe mit kostengünstigen
Netzwerken auszustatten und ältere
Gebäude entsprechend
nachzurüsten.
-
Das
Verfahren des Routings einer Nachricht ist in Anspruch 1 definiert.
-
Das
Kommunikationsnetzwerk ist in Anspruch 17 definiert.
-
Das
System umfasst vorzugsweise ein drahtloses Multihop-Broadcast-Netzwerk aus Knoten,
die ein Minimum an Hardwareressourcen, wie Speicher und Prozessorleistung,
aufweisen. Das Netzwerk wird mit Hilfe eines partitionierten Spannbaums
kon figuriert, und die Knotenadressen werden so zugeordnet, dass
die Adresse eines Zwischenknotens mit der Zieladresse eines Pakets
verglichen werden kann, um vollständige Entscheidungen zum Paket-Routing
zu fällen.
-
Diese
und andere Aufgaben und Vorteile, die sich in den Einzelheiten der
Konstruktion und der Funktionsweise widerspiegeln, sind in den Zeichnungen
dargestellt und werden im Folgenden näher beschrieben, wobei gleiche
Teile durchgehend die gleichen Bezugszeichen haben.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Es
zeigen:
-
1 Knoten
eines Netzwerkes gemäß der vorliegenden
Erfindung;
-
2 ein
Netzwerk aus drahtlosen Multihop-Knoten;
-
3 ein
Ablaufdiagramm des von einem Netzwerksteuerknoten ausgeführten Prozesses;
-
die 4, 5, 6, 10, 11, 13, 19, 20 und 22–25 Nachrichtenpakete;
-
7 ein
Ablaufdiagramm eines Prozesses des Überschwemmens mit Hopzahlen;
-
8 ein
Ablaufdiagramm eines Parent-Routing-Prozesses;
-
9 einen
Initialisierungsprozess des Netzwerksteuerknotens;
-
12 einen
Initialisierungsprozess eines Netzwerkknotens;
-
14 ein
Ablaufdiagramm eines von dem Netzwerksteuerknoten durchgeführten Grapherstellungsprozesses;
-
15(a) ein Netzwerk aus Knoten;
-
15(b) eine Datenstruktur, die das Netzwerk
aus 15(a) darstellt;
-
16 einen
Spannbaum des Netzwerkes aus 2;
-
17 die
den Knoten des Netzwerkes aus 17 gemäß der vorliegenden
Erfindung zugeordneten Adressen;
-
18 einen Überwachungs-
und Steuerprozess des Netzwerksteuerknotens; und
-
21 ein
Ablaufdiagramm des von den Netzwerkknoten nach der Netzwerkinitialisierung durchgeführten Prozesses.
-
BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSBEISPIELE
-
Die
vorliegende Erfindung bezieht sich auf ein Netzwerk aus kostengünstigen
Knoten, das für die
Durchführung
einfacher Funktionen, wie die Steuerung des Helligkeitsgrades in
einem einzigen Raum, geeignet ist, und bei dem jeder Knoten in das
zu steuernde Bauteil, beispielsweise einen Lichtschalter, eingebaut
werden kann. Die Knoten eines derartigen Netzwerkes sind „ressourcenarm". Ein Knoten wird als
ressourcenarm bezeichnet, wenn sein Speicher nicht ausreicht, um
Routing-Informationen, wie Routing-Tabellen, zu speichern, und er über nicht
genügend
Prozessorleistung verfügt,
um die „beste
Route" für ein abgehendes
Paket oder eine abgehende Nachricht auf der Grundlage von Informationen
wie dem kürzesten
Pfad, der Netzwerküberlastung,
der Übertragungssteuerung
usw., zu berechnen. Das bevorzugte Ausführungsbeispiel umfasst die
Netzwerkknoten 10, wie sie in 1 dargestellt
sind, die jeweils eine kostengünstige
4- oder 8-Bit-Mikrocontroller-Verarbeitungseinheit
(engl. microcontroller processing unit, MPU) 12, wie beispielsweise
den Mikrocontroller Motorola 68HC11, umfassen, der einen On-Chip-RAM 14 mit
sehr begrenzter Kapazität
(in der Größenordnung
von 32 Bytes), einen PROM 16, vorzugsweise des Typs EEPROM,
zum Speichern programmierbarer, jedoch nicht flüchtiger Informationen wie der
Knotenadresse (d.h. ca. 4 Bytes), und einen ROM 18 (ca.
1 oder 2 KBytes) enthält,
in dem die Steuer- und Netzwerk-Routing-Programme oder -Software
gespeichert sind. Jeder Knoten 10 umfasst ferner einen
herkömmlichen
drahtlosen Sender/Empfänger 20,
der die Kommunikation mit anderen Knoten des Systems ermöglicht.
Der Sender/Empfänger 20 ist
ein Bauteil mit niedriger Leistung, der typischerweise nur ein paar
Meter weit, beispielsweise die Entfernung zwischen ein bis ca. drei
Räumen
in einem Gebäude,
sendet. Da die Knoten über
minimale Ressourcen, beispielsweise einen RAM-Speicher, verfügen, können die Knoten keine hoch
entwickelten Routing-Programme speichern, die von Routing- oder
Entscheidungstabellen abhängen.
Zur Verwaltung des Netzwerkes und zur Bestimmung der Netzwerkkonfiguration
ist ein intelligenter und relativ leistungsstarker Knoten, der so
genannte Netzwerksteuerknoten (engl. network control node, NCN) 30 vorgesehen.
Der NCN 30 kann die gleiche Version des MPU 32,
des RAM 34, des PROM 36, des ROM 38 und
des Sender/Empfängers 40 wie
die Knoten 10 umfassen und umfasst ferner einen herkömmlichen seriellen
Port 42, der mit einem herkömmlichen Rechner 44,
beispielsweise einem PC oder einer Workstation, verbunden ist, welche ® den
herkömmlichen
Plattenspeicher und die Ein-/Ausgabegeräte umfasst, die zur Durchführung der
Netzwerk- und Systemsteuerung geeignet sind, wie beispielsweise die
Steuerung der Beleuchtung in einem Gebäude.
-
Der
NCN 30 ist für
die Ausführung
eines partitionierten Spannbaum-Routing-Protokolls
(engl. PArtitioned Spanning Tree, PAST) verantwortlich. Das PAST-Routing-Protokoll
der vorliegenden Erfindung ist auf fast jede Art von Multihop-Netzwerken anwendbar
und nutzt keine Routing- oder Entscheidungstabellen. Es ist jedoch
bestens für
Netzwerke aus ressourcenarmen Knoten (mit wenig Prozessorleistung
und Speicher) geeignet und beruht auf der Verfügbarkeit eines Netzwerksteuerknotens,
der über
ausreichende Prozessorleistung und Speicher verfügt, um den anderen Knoten Adressen
zuzuordnen und das Netzwerk beim Start zu initialisieren.
-
Zum
besseren Verständnis
des Protokolls wird ein Netzwerk beschrieben, wie es in 2 dargestellt
ist, in dem eine durchgehende Kommunikation zwischen dem NCN 60 und
den ressourcenarmen Knoten 62–76 und zurück, jedoch
nicht zwischen zwei ressourcenarmen Knoten, wie beispielsweise 70 und 72,
außer
für den
Austausch von Paketen stattfindet, um sie zu einem Zielknoten weiterzuleiten.
Zur Beschreibung der Funktionsweise des Protokolls wird der Fall
eines Broadcast-Kanalnetzwerkes betrachtet, bei dem sich jeder Knoten
innerhalb eines direkten drahtlosen Kommunikationsbereichs von ein paar
anderen Knoten des Netzwerkes befindet, beispielsweise befindet
sich der Knoten 68 in dem Bereich der Knoten 62, 64, 66, 70 und 72,
jedoch keiner anderen Knoten. Somit existieren sich überlappende Nachbarschaften
(die Nachbarschaft des Knoten 66 überlappt sich mit derjenigen
des Knotens 68), die alle um einen Sender zentriert sind
und in denen einige Nachbarknoten des Senders liegen können.
-
Alle
Knoten in dem Netzwerk nutzen einen gemeinsamen Funkkanal. Mit Hilfe
eines herkömmlichen
CSMA-Protokolls (engl. carrier sense multiple access) werden Kollisionen
vermieden, da jeder Sender den Kanal überwachen muss und nur senden darf,
wenn kein Verkehr stattfindet. Ein Knoten, der am Schnittpunkt der
Nachbarschaften zweier Knoten liegt, die außerhalb des Hörbereichs
des anderen liegen, kann ungültige
Daten empfangen, wenn die beiden benachbarten Knoten aufgrund der
Annahme, der Kanal sei nicht belegt, gleichzeitig senden. Zur Erholung
von derartigen Kollisionen wird ein implizites Hop-by-Hop-Bestätigungsschema
(engl. implicit hop-by-hop, IHBH) eingesetzt. Dieses Bestätigungsschema
IHBH wird weiter unten erläutert.
-
Pakete,
die von einem ressourcenarmen Knoten wie 74 zum NCN 60 gesendet
werden, werden als sich stromaufwärts bewegend bezeichnet, und
diejenigen, die vom NCN 60 zu einem ressourcenarmen Knoten
gesendet werden, als sich stromabwärts bewegend bezeichnet. Jeder
ressourcenarme Knoten kann mit einem eindeutigen Identifikator hergestellt
werden, der physikalische ID genannt wird, oder die ID kann einem
Knoten manuell während
der Installation zugeordnet werden.
-
Wenn
die Knoten 62–76 zum
ersten Mal eingeschaltet werden, beginnen sie in einer Initialisierungsphase,
in der sie auf eine Übertragung
vom NCN 60 warten. Der Netzwerksteuerknoten (NCN) 60 mit
großer
Prozessorleistung und Speicherkapazität sammelt in der Initialisierungsphase 90 (siehe 3)
basierend auf vom Benutzer eingegebenen Informationen zur Anzahl
der Knoten im Netzwerk zuerst Informationen von den ressourcenarmen
Knoten 62–64 und
erstellt eine vollständige
und genaue Darstellung des Netzwerkes in Form eines Graphen, wie er
beispielsweise in 2 dargestellt ist. Die benötigte Information
ist eine Angabe darüber,
welche Knoten einander hören
können,
d.h. eine Liste, aus der hervorgeht, welche Knoten im Funkbereich
von welchen anderen Knoten liegen. Die Information wird durch die Übertragung
von Initialisierungsnachrichten mit Hilfe des Überschwemmens mit einem (weiter unten
erläuterten)
Hopzahl-Protokoll an alle Knoten des Netzwerkes erzielt. Diese Übertragung
erfolgt Ebene für
Ebene, so dass die Knoten auf den mittleren Ebenen des Netzwerkes
zu denjenigen übertragen,
die sich auf weiter unten liegenden Ebenen befinden. Dadurch kann
jeder Knoten den Koten registrieren, der sein Elternknoten ist,
d.h. den Knoten, von dem er die ersten Initialisierungssendung erhalten hat.
Die Knoten antworten mit der benötigten
Information über
eine Antwortnachricht, die anhand eines (später zu erläuternden) Parent-Routing-Protokolls zurückgesendet
wird. Die Antwortnachrichten geben ferner an, welche anderen Knoten
außer
dem Elternknoten der Knoten hören
kann. Jede Kante des Graphen stellt eine direkte Verbindung zwischen
den beiden Knoten dar, die sie verbindet. Der Graph wird danach
in einen Spannbaum aufgeteilt. Den Knoten werden dann auf derartige
Weise logische Adressen (partitioned spanning tree, PAST) zugeordnet,
dass der Pfad, den ein Paket nehmen soll, durch die Adresse des
Zielknotens oder des sendenden Knotens für Pakete, die sich stromaufwärts bzw.
stromabwärts
vom NCN 60 bewegen, eindeutig identifiziert wird. Bei diesem
Adressierschema untersucht ein Zwischenknoten, wie der Knoten 64,
der ein Paket empfängt,
einfach die Adresse des Zielknotens (bei sich stromabwärts bewegenden
Paketen) oder die Adresse des sendenden Knotens (bei sich stromaufwärts bewegenden
Paketen), indem er sie mit der Adresse dieses Zwischenknotens vergleicht.
Allein aus dem Adressenvergleich kann der Zwischenknoten feststellen,
ob er in dem Pfad liegt, den das Paket nehmen soll. Befindet sich
der Zwischenknoten in dem Pfad, leitet er das Paket weiter, andernfalls
wird das Paket ausgesondert. Sind die Adressen einmal zugeordnet,
tritt der NCN 60 in eine Überwachungs- und Steuerphase 92 ein,
in der Nachrichten bezüglich
Ereignissen und Befehlen mit Hilfe des PAST-Routing-Protokolls durch
das Netzwerk weitergeleitet werden. Einzelheiten der Funktionsphasen des
NCN 60 werden später
genauer erläutert.
Vor der Erläuterung
von Einzelheiten der Initialisierungsphase ist es jedoch hilfreich,
zwei während
der Initialisierungsphase genutzte Routing-Protokolle zu kennen: 1)
das Überschwemmen
mit Hopzahlen (engl. flooding with hop counts, FHC) und 2) das Parent-Routing (PA). Diese
beiden Protokolle werden weiter unten in Bezug auf die 7 und 8 erläutert. Als erstes
wird jedoch die Struktur jedes im Netzwerk mit Hilfe der Protokolle übertragenen
Pakets dargelegt.
-
Die
in den weiteren Erläuterungen
verwendete Struktur der Pakete ist in 4 dargestellt.
Jedes Paket 100 enthält
ein „Merker"-Byte 102 an
einer festen Position. Dieses Byte 102 hat folgende Bitfelder
(wobei sich das Bit mit der geringsten Wertigkeit rechts befindet):
Bits 0 und 1 – reserviert
für zukünftigen
Einsatz; Bit 2 – Paketpriorität: 1 gibt
an „dringendes" Paket und 0 gibt
an „nicht
dringendes" Paket; Bits
3 und 4 – Adressierung:
11 gibt an, dass das Paket ein „Broadcast"-Paket ist, d.h. dass das Paket von jedem
Knoten im Netzwerk zu verarbeiten ist; 10 gibt an, dass das Paket
ein „Multicast"-Paket ist, d.h.
dass mehrere Knoten im Netzwerk, die von einer Gruppenadresse identifiziert
werden, das Paket zu empfangen und zu verarbeiten haben; 01 gibt
an, dass das Paket ein „Unicast"-Paket und nur für einen Knoten bestimmt ist;
Bits 5 und 6 – Art
des Routings: 11 gibt an, dass das Paket mit Hilfe eines Parent-Routing-Schemas
weiterzuleiten ist; 10 gibt an, dass das Paket mit Hilfe des FHC-Routing-Protokolls
weiterzuleiten ist; und 01 gibt an, dass das PAST-Protokoll zu verwenden
ist: und Bit 7 – Bewegungsrichtung:
0 gibt an, dass sich das Paket stromaufwärts zum NCN bewegt; 1 gibt
an, dass sich das Paket vom NCN weg bewegt. Eine eindeutige Paket-ID
wird im zweiten Byte 104 geschaffen. Das nächste Feld 106 des
Paketes 100 ist ein Feld mit variabler Länge, das
die logische Adresse des Ziel-(oder Quell-)Knotens enthält. Das
vierte Feld 108 enthält
einen Ein-Byte-Befehl. Das nächste
Feld 110 ist ein Datenfeld mit variabler Länge. Das
letzte Feld 112 des Paketes 100 ist ein Prüfsummenfeld,
das für
die Fehlerprüfung
verwendet wird.
-
In
der Initialisierungsphase werden zwei Versionen des Paketes 100 aus 4 verwendet,
die in den 5 und 6 dargestellt
sind. Das Initialisierungspaket oder Paket INIT 120 aus 5 wird
nur während
des stromabwärts
gerichteten FHC-Routing-Initialisierungsprozesses
verwendet (siehe 7). Der Netzwerksteuerknoten
(NCN) 60 sendet das Paket 120 aus 5 an
alle Knoten, die sich im direkten Kommunikationsbe reich des NCN 60 befinden.
Das FHC-Routing-Schema (engl. flooding with hop counts) wird dazu
verwendet, das Paket 120 als Broadcast zu senden (wobei
die Adressierbits in dem Merkerbyte auf 11 gesetzt sind). Jedes
Paket 120 enthält
die physikalische ID 104 des sendenden Knotens. Im Datenfeld 110 wird
der Hop-Zähler 122 für das FHC
auf Eins gesetzt, so dass nur direkte Nachbarn des sendenden Knotens
das Paket verarbeiten, aber es nicht weiterleiten (wie genauer in
Bezug auf 7 beschrieben wird). Die Adresse 124 des
Knotens, der das Paket sendet, ist in dem Datenfeld 110 enthalten.
Das Paket 120 enthält
auch die Anzahl von Hops 126, die der Sender des Paketes
INIT vom NCN entfernt ist. In dem in den 5 und 6 dargestellten
Beispiel wird das Paket INIT 120 von einem Knoten gesendet,
dessen ID ec3f(hex) lautet, und von einem Knoten empfangen, dessen
ID 6bf1(hex) lautet. Das Adressenfeld 106 in einem Paket
wird immer auf ffff(hex) gesetzt, da das Hopzahl-Feld 122 sicherstellt,
dass das Paket INIT 120 nicht mehr als einen Hop weitergeleitet
wird. Die Antwort oder das Paket RESPONSE_INIT 130 aus 6 wird
lediglich im stromaufwärts
gerichteten Parent-Routing-Prozess verwendet (siehe 8).
Das Adressenfeld 106 des Paketes 130 ist auf die
Adresse des NCN 60 (0000 hex) gesetzt. In dem Datenfeld 110 ist
ein Feld 132 enthalten, das Elternknotenadresse für das Routing-Feld
genannt wird und dessen Inhalt durch die ID des Elternknotens (Parent)
jedes Zwischenknotens ersetzt wird, der das Paket 130 empfängt und
es (als Broadcast) weiterleitet. Das zweite Feld 134 beinhaltet
die Elternknotenadresse für
den Netzwerkgraphen, den der NCN 60 erstellt. Die Adresse
des Anfangsknotens, der das Paket RESPONSE_INIT 130 sendet,
wird im nächsten
Feld 136 gespeichert und die Entfernung in Hops des Anfangsknotens
vom NCN wird im nächsten
Feld 140 gespeichert.
-
Das
FHC-Routing-Schema, wie es in 7 dargestellt
ist, verwendet in jedem Paket INIT 120 einen Maximum-Hop-Zähler (Feld 122),
um die maximale Anzahl von Hops anzugeben, die das Paket vornehmen
kann, wenn es in einem Broadcast-Netzwerk
vom Quellknoten zu seinem Ziel weitergeleitet wird. Der Quellknoten
muss die genaue (oder minimale) Anzahl von Hops kennen, die erforderlich
ist, bis das Paket sein Ziel erreicht hat. Ein eindeutiger Paketidentifikator
wird ebenfalls in das Paket eingefügt. Jeder Zwischenknoten, beispielsweise
der Knoten 64, der ein Paket empfängt (150), ermittelt
(152), ob das Paket ein FHC-Paket ist, und sondert das
Paket aus (154), wenn dies nicht der Fall ist. Sonst prüft (156)
der Knoten den Hop-Zähler
und verringert (158) ihn um Eins. Falls der Zähler Null
erreicht, wird das Paket nicht weitergesendet. Sonst leitet (160)
der Zwischenknoten das Paket zum Hören als Broadcast an Nachbarknoten
weiter. Der Identi fikator des Pakets wird ebenfalls für eine angemessene
Zeitspanne aufgezeichnet, so dass das Paket ausgesondert wird, wenn
es wieder von einem benachbarten Knoten empfangen wird. So ist sichergestellt,
dass das Paket den Zielknoten erreicht, bevor der Hop-Zähler Null
erreicht, vorausgesetzt, kein Knoten fällt aus. Dieses Verfahren des
Routings eines Paketes kann sowohl für Pakete, die sich stromaufwärts bewegen, als
auch für
Pakete, die sich vom NCN stromabwärts bewegen, eingesetzt werden.
Die physikalische ID des Zielknotens, die in dem Paket spezifiziert
ist, wird vom Zielknoten dazu verwendet zu erkennen (162), dass
das Paket zu verarbeiten (164) und nicht weiterzuleiten
ist. Es ist leicht ersichtlich, dass dieses Routing-Schema sehr
ineffizient ist, da mehrere Kopien des Paketes in voneinander getrennten
Teilen des Netzwerkes existieren können. Einige Kopien des Paketes
können
sich vom Zielknoten weg bewegen, wodurch Netzwerkressourcen verschwendet
werden. Zusätzliche
Einzelheiten zu diesem Routing-Schema sind „Digital Simulation of Hot-Potato
Routing in a Broadband Distribution Communication Network" von S. P. Boehm
und P. Baran, erschienen in RAND Corporation, Memorandum RM-3103-PR,
im August 1964, zu entnehmen. 7 gibt eine
verallgemeinerte Beschreibung der während des Routings durch Überschwemmen
mit Hopzahlen durchgeführten Funktionen
wieder, und das Leistungsvermögen
dieses Routing-Protokolls in den Prozessen der vorliegenden Erfindung
am Steuerknoten (60) und den ressourcenarmen Knoten (62–76)
wird in Bezug auf die 9 und 12 genauer
erläutert.
-
Das
in 8 dargestellte Parent-Routing-Schema ist nur für das Routing
von Paketen nützlich,
die sich stromaufwärts
zum NCN 60 bewegen. Jeder Knoten in dem Netzwerk speichert
die physikalische ID eines Knotens, der im direkten Kommunikationsbereich
und mindestens einen Hop näher
am NCN liegt. Der Knoten, dessen ID gespeichert wird, wird als Elternknoten
bezeichnet. Der Quellknoten fügt
in ein abgehendes Paket RESPONSE_INIT 130 die ID seines
Elternknotens ein und leitet das Paket als Broadcast weiter. Ein
Zwischenknoten, der ein Paket 130 empfängt (170), prüft (172)
den Routing-Merker
um sicherzustellen, dass die Art des Routings Parent-Routing ist,
und lässt
das Paket fallen (174), wenn es nicht die richtige Art
ist. Ist es die richtige Art, prüft
(176) der Knoten die in ihm enthaltene Zieladresse. Ist
die Adresse nicht diejenige des Zwischenknotens, wird die Elternknotenadresse
geprüft
(178). Ist die Elternknotenadresse die Adresse des Zwischenknotens,
wird die Adresse durch diejenige des Elternknotens des Zwischenknotens
ersetzt (180), und das Paket wird gesendet (182).
Dieser Vorgang wird fortgesetzt, bis der Zielknoten (der NCN 60)
das Paket 130 empfängt
und das Paket RESPONSE_INIT 130 verarbeitet (184).
Somit bewegt sich das Paket 130 zum NCN, indem es von einem
Knoten zu seinem Elternknoten springt, der sich einen Hop näher am NCN
befindet. Dieses Routing-Verfahren ist effizienter als das Überschwemmen
mit Hopzahlen (FHC), da nur diejenigen Knoten das Paket weiterleiten,
deren ID im Paket erscheint. 8 gibt eine
verallgemeinerte Beschreibung der während des Parent-Routing durchgeführten Funktionen
wieder, und das Leistungsvermögen
dieses Routings in den Prozessen der vorliegenden Erfindung am Steuerknoten
(60) und an den ressourcenarmen Knoten (62–76)
wird in Bezug auf die 9 und 12 genauer
erläutert.
-
Wie
in 9 dargestellt, beginnt der Netzwerksteuerknoten
(NCN) 60 während
der Initialisierungsphase 90, nachdem der Benutzer die
Anzahl von Knoten in dem Netzwerk angegeben hat, damit, ein Initialisierungspaket 120,
wie es in 5 dargestellt ist, mit der ID
(Feld 104) 0 und einer FHC (Feld 122) 1 zu erzeugen
(200). Dieses Paket wird dann gesendet (202).
Der NCN 60 wartet danach, bis ein Paket empfangen wird
(204). Der NCN 60 ermittelt (206) anschließend, ob
die Art des Routings FHC ist. Ist dies nicht der Fall, wird ermittelt
(208), ob die Art des Routings Parent-Routing ist. Ist
dies nicht der Fall, wird das Paket ausgesondert (210).
Wurde das Paket durch FHC weitergeleitet, wird ermittelt (212), ob
es ein Initialisierungspaket 120 ist. Ist dies nicht der
Fall, wird das Paket ausgesondert (214). Ist es ein Initialisierungspaket 120,
wird ermittelt (216), ob die Hopzahl 1 ist. Ist dies der
Fall, wird ein Knoten in einen Graph der Knoten des Netzwerkes,
beispielsweise desjenigen aus 2, eingefügt (218).
Diese Einfügungsfunktion 218 erfolgt
auch, wenn der NCN ein durch Parent-Routing weitergeleitetes Antwortpaket 130 empfängt und
erkennt (219), das die ID des NCN enthält. Stellt der NCN fest (220),
dass nicht alle Knoten für
den Graph in den Graph eingetragen wurden, d.h. dass die Anzahl
der Knoten des Netzwerkes, die vom Benutzer spezifiziert wurde,
nicht der Anzahl der Knoten in dem Graph entspricht, geht das System
zurück
und wartet (204) auf ein weiteres Paket. Ist der Graph
vollständig,
ordnet der NCN 60 den Knoten logische Adressen eines logisch
partitionierten Spannbaums (PAST) zu (222), was später ausführlicher
erläutert
wird. Sind die logischen Adressen einmal zugeordnet (222),
teilt der NCN 60 jedem Knoten seine Adresse mit. Dies erfolgt
durch Erzeugen (224) von Paketen SET_ADDRS 240 (siehe 10)
und Senden (226) an die Knoten 62–76.
-
Jedes
Paket SET_ADDRS 240 enthält, wie in 10 dargestellt,
die physikalische ID 104 des Zielknotens und die dem Ziel
zugeordnete logische PAST-Adresse 242, so dass der Zielknoten
das Paket annehmen und seine logische PAST-Adresse spei chern kann.
Die Pakete 240 werden mit Hilfe des weiter oben erläuterten Überschwemmens
mit Hopzahlen weitergeleitet. Die genaue Hopzahl 244 vom NCN
zu jedem Knoten ist bekannt, da diese Information Teil des vom Zielknoten
empfangenen Paketes RESPONSE_INIT war. Das Paket 240 enthält ferner eine
Angabe 246 der Anzahl von Bits in der logischen Adresse.
Ein Knoten, der ein Paket SET_ADDRS 240 empfängt, bestätigt den
Empfang seiner PAST-Adresse dadurch, dass er ein Paket RESPONSE_SET_ADDRS 250 (siehe 11)
zum NCN 60 sendet. Diese Pakete 250 werden mit
Hilfe des Parent-Routing-Schemas
weitergeleitet.
-
Die
Funktionsweise der ressourcenarmen Knoten 62–76 während der
Initialisierungsphase beim Ermitteln der Art des Routings entspricht
derjenigen des NCN 60, wie es durch die Bezugszeichen der
gleichen Funktionen in 12 dargestellt wird. Nach der
Prüfung
der Hopzahl (216) speichert jeder Knoten, der zum ersten
Mal ein Paket INIT 120 empfängt (240), die physikalische
ID des Senders des Paketes 120 und kennzeichnet (242)
den Sender als seinen Elternknoten. Zusätzlich fügt der empfangende Knoten Eins
zum Wert in dem Paket hinzu, der die Anzahl der Hops vom NCN 60 zum
Sender des Paketes INIT 120 angibt, und speichert das Ergebnis
als die Anzahl von Hops, die der empfangende Knoten vom Netzwerksteuerknoten
(NCN) 60 entfernt ist. Der empfangende Knoten erstellt
(244) und sendet (246) dann ein Paket RESPONSE_INIT 130 zum NCN 60,
um dem NCN 60 mitzuteilen, dass sich der empfangende Knoten
im direkten Kommunikationsbereich des Knotens befindet, der das
Paket INIT 120 gesendet hat (d.h. des Elternknotens). Die
Pakete RESPONSE_INIT 130 werden mit Hilfe des oben erläuterten
Parent-Routing-Schemas weitergeleitet. Somit enthält jedes
Paket RESPONSE_INIT 130 am Anfang die physikalische ID
des Elternknotens des Knotens, der das Paket erzeugt, die physikalische
ID des Knotens, der das Antwortpaket 130 sendet, und die
Anzahl von Hops, die er vom NCN 60 entfernt ist. Der Knoten
sendet dieses Paket dann als Broadcast, aber nur der Elternknoten,
dessen ID im Paket erscheint, sendet das Paket weiter, nachdem er
dessen ID durch diejenige seines eigenen Elternknotens ersetzt hat.
Somit wird ein Paket RESPONSE_INIT 130 zuerst von dem Sender
des Initialisierungspaketes 120 weitergeleitet, der die
Erzeugung des Paketes 130 veranlasste. Nach dem Empfang
eines Paketes RESPONSE_INIT 130 erzeugt der NCN 60 einen Eintrag
in einem Graph zur Darstellung des Quellknotens, der das Paket RESPONSE_INIT 130 gesendet hat.
In dem Graph wird eine Kante erstellt, d.h. Zeiger in einer Datenstruktur
in Form einer Verbundliste, um die Einträge, die den Sender des Paketes 130 darstellen,
und denjenigen Knoten zu verbinden, dessen Paket 120 das
Senden des Paketes 130 120 das Senden des Paketes 130 veranlasste.
Die Anzahl von Hops vom NCN 60 zum Sender (Quelle) des
Paketes 130 wird ebenfalls gespeichert.
-
Ein
Knoten, der zum ersten Mal ein Paket 120 empfängt, erzeugt
(248) (siehe 12) zusätzlich zum Senden (246)
eines Paketes 130 zum NCN ein Paket INIT 120 mit
einer Hopzahl 1 und einer ID ffff(hex) und sendet es zum Hören als
Broadcast (250) weiter an alle unmittelbaren Nachbarn.
-
Ein
Knoten, der ein Paket 120 nach dem ersten empfängt, speichert
die physikalische ID des Senders des Paketes 120 nicht
als Elternknoten. Er erzeugt auch kein Initialisierungspaket 120 und
sendet es nicht als Broadcast weiter. Der Knoten erzeugt (252)
jedoch ein Paket HEAR_INIT 260. Dieses Paket 260 hat
eine ähnliche
Struktur und einen ähnlichen
Zweck wie ein Paket RESPONSE_INIT 130 und ist in 13 dargestellt.
Ein Paket HEAR_INIT 260 bewegt sich jedoch nicht über den
Sender des Paketes INIT 120, der die Erzeugung des Paketes 260 veranlasste.
Ein Paket HEAR_INIT 260 bewegt sich in dem gleichen Pfad,
den das erste Paket RESPONSE_INIT 130 einschlug, um den
NCN 60 von dem Knoten, der das Paket HEAR_INIT 260 sendete,
zu erreichen. Das Paket 260 veranlasst ebenfalls den NCN 60,
eine Kante in den Graph einzufügen,
um den Sender des Paketes 260 und den Sender des Paketes 120 zu
verbinden, der die Erzeugung des Paketes 260 veranlasste.
-
Wurde
ermittelt (254) (12), dass
das empfangene Paket das Adresse setzende Paket für diesen
Knoten ist, wird die logische Adresse gespeichert (256),
und in die Netzwerkkommunikations- und Steuerphase eingetreten,
die in Bezug auf 21 beschrieben wird.
-
Der
Prozess 218 (siehe 9) des Erstellens
eines Graphs ist in 14 genauer dargestellt. Wenn
der NCN 60 ein Paket empfängt (270), wird es geprüft (272),
um die Art des Paketes (130 oder 260) zu ermitteln
(272), und falls es die falsche Art ist, wird das Paket
ausgesondert (274). Wurde die richtige Paketart empfangen,
werden die Adressen des Senders und des Elternknotens extrahiert
(276) und dazu verwendet, einen Eintrag in eine Datenstruktur
in Form einer Verbundliste zu erzeugen (278), der genauer
in Bezug auf die 15(a) und 15(b) erläutert wird und in den die Daten
eingefügt
werden (280). Der NCN 60 ermittelt dann (282),
ob der Eintrag in der Verbundliste für den Elternknoten existiert.
Ist dies nicht der Fall, wird der Eintrag für den Elternknoten erzeugt
(284). Danach werden die Zeiger zwischen den Einträgen in die
Einträge
eingefügt
(286). Anschließend
werden die oben in Bezug auf 9 erläuterten
Schritte 220 und 222 durchgeführt.
-
Der
Prozess des Erstellens des Graphs wird fortgesetzt, bis der NCN 60 die
Antwortpakete (130/260) von jedem der ressourcenarmen
Knoten 62–76 in
dem Netzwerk empfangen hat und somit in der Lage ist, jeden Knoten
und jede Verbindung in dem Netzwerk darzustellen. Der resultierende
Graph entspricht demjenigen in 2 und wird
im Speicher als eine Verbundliste, wie sie in den 15(a) und 15(b) gezeigt ist, dargestellt. 15(a) zeigt einen NCN 300, der
mit Knoten kommunizieren kann, die die physikalischen Identifikatoren
(IDs) 3abc und 769 haben. Der Knoten 3abc kann
mit Knoten, die die IDs 209, 152 und 622 sowie 769 haben,
und mit dem NCN 300 kommunizieren. Der Knoten 769 kann
mit Knoten, die die IDs 152 und 622 sowie 3abc haben und
mit dem NCN 300 kommunizieren, jedoch nicht mit 209.
Die Knoten mit den IDs 209, 152 und 622 können hören und
an die Knoten senden, wie es durch die Graphkanten angegeben ist.
Diese Anordnung ist in der Datenstruktur in Form einer durch Zeiger
gelenkten Verbundliste 310 in 15(b) wiedergegeben.
Es ist ersichtlich, dass jede Position oder jeder Eintrag 312 in
der Liste 310 Folgendes umfasst: ein physikalisches ID-Feld 314,
das die physikalische ID des entsprechenden Knotens enthält, ein
Elternknoten-ID-Feld 316, das den Elternknoten identifiziert,
ein Hopzahl-Feld 318, das die Anzahl der Hops zum Wurzelknoten
oder NCN enthält,
ein oder mehrere Kinderknoten-Zeigerfelder 320, die die
weiter stromabwärts
liegenden Knoten im Netzwerk identifizieren, die der aktuelle Knoten
hören kann
und mit denen er kommunizieren kann und die Pakete 260 senden,
und einen Elternknoten-Zeiger 322, der den ersten Knoten
identifiziert, der dem aktuellen Knoten ein Initialisierungspaket 120 sendete.
Jeder Eintrag 312 umfasst ferner ein Feld 324,
in dem die PAST-Adresse gespeichert ist, die dem entsprechenden
Knoten zugeordnet wird. Diese Art des Graphen wird von dem Netzwerksteuerknoten
(NCN) in der nächsten
Phase der Initialisierung verwendet, um einen Spannbaum zu erzeugen
und den Knoten des Spannbaums Adressen zuzuordnen.
-
Die
nächste
Phase der Initialisierung des Netzwerkes besteht darin, von dem
ursprünglichen, im
Speicher des NCN erstellten Graphen eine getrennte Datenstruktur
in Form eines Spannbaums (Graph) abzuleiten. Der Spannbaumgraph
wird als getrennter Graph (Datenstruktur in Form einer Verbundliste)
erstellt, und der ursprüngliche
Graph wird für
spätere Änderungen
und Erweiterungen des Netzwerkes gespeichert. Der Prozess umfasst
eine abgewandelte Tiefensuche des Graphen aus Figur ?. Bei einer
Tiefensuche wird ein Knoten (der am weitesten rechts liegt) ausgewählt; wenn
er Kinderknoten hat, wird einer seiner Kinderknoten (der am weitesten
rechts liegt) ausgewählt;
wenn dieser Kinderknoten hat, wird er ausgewählt usw., bis ein Blatt erreicht
ist. An diesem Punkt wer den die Geschwisterknoten des Elternknotens
des Blattes durch Tiefensuche ermittelt. Bei dieser Art der Suche
geht der Prozess in einem Pfad so weit wie möglich in die Tiefe, bevor andere
Pfade verarbeitet werden. Bei einer Breitensuche werden alle Knoten
(Geschwisterknoten) auf jeder Ebene in dem Netzwerk verarbeitet,
bevor Knoten auf einer tiefer liegenden Ebene verarbeitet werden.
Bei der abgewandelten Tiefensuche der vorliegenden Erfindung wird
die Breite jeder Ebene durch einen Vorgang minimiert, der eine Ebene
in zwei Ebenen unterteilen kann, damit die Länge der resultierenden Adresse
optimiert wird. Im Rahmen dieser Erläuterung wird 2 als
der ursprüngliche oder
Quellgraph eingesetzt. In dieser Phase sind keine ressourcenarmen
Knoten beteiligt, und diese ganze Phase läuft im Speicher des NCN ab.
Es handelt sich hierbei um einen sich wiederholenden Vorgang, bei
dem mehrere Dinge geschehen (die Erzeugung eines Spannbaums und
die Zuordnung von Adressen) und der durch Ablaufdiagramme nicht
leicht darzustellen ist. Der NCN 60 beginnt damit, dass
er selbst die Wurzel des Spannbaums untersucht und ihre Anzahl von
Nachbarn berechnet, indem er Eins zu der tatsächlichen Anzahl von Nachbarknoten
in dem Graph addiert. Beispielsweise hat der NCN 60 zwei
Nachbarn, so dass die berechnete Anzahl von Nachbarn Drei beträgt. Ist
die berechnete Anzahl von Nachbarn eine Potenz von Zwei, wird jeder
Nachbarknoten als ein Kinderknoten in den Spannbaum eingetragen.
In dem vorliegenden Beispiel ist dies nicht der Fall. Ist die Anzahl
von Nachbarn keine Potenz von Zwei, kann bei einigen der Nachbarknoten
ausgeschlossen werden oder nicht, dass sie Kinderknoten in dem Spannbaum
sind. Um darüber
zu entscheiden, berechnet der NCN 60 die höchste Potenz von
Zwei, bezeichnet mit ↓2,
die geringer ist als die Anzahl von Nachbarn, und die niedrigste
Potenz von Zwei, bezeichnet mit ↑2,
die höher
ist als die Anzahl von Nachbarn. Liegt die Anzahl von Nachbarn näher bei ↑2 als bei ↓2, werden
alle Nachbarn als Kinderknoten in den Spannbaum eingetragen. Liegt
die Anzahl von Nachbarn jedoch näher
an ↓2,
versucht der NCN 60 zu ermitteln, bei welchen der Nachbarknoten in
dem Graph ausgeschlossen werden kann, dass sie Kinderknoten in dem
Spannbaum sind. Falls die Nähe
der Anzahl von Nachbarn zu ↑2
und zu ↓2 gleich
ist, entscheidet der NCN 60, dass einige Nachbarn ausgeschlossen
werden. Zur Durchführung
dieser Ermittlung folgt der NCN den Kanten des Graphs um festzustellen,
ob einer der Nachbarknoten von einem der anderen Nachbarn zu erreichen
ist. In dem aktuellen Beispiel ist der Knoten 62 vom Knoten 64 zu
erreichen. Jeglicher Nachbar, der von jeglichem anderen Nachbarknoten
erreicht werden kann, wird nicht als Kinderknoten in den Spannbaum
eingetragen, und die Anzahl von Nachbarn wird um Eins reduziert.
Sobald die Anzahl von Nachbarn ↑2
erreicht, wird der Ausschlussprozess für die Nachbarn des aktuellen
Knotens gestoppt. Die ausgeschlossenen Nachbarn werden später in den
Spannbaum eingetragen. Stellt der NCN 60 fest, dass bei
keinem Nachbarn ausgeschlossen werden kann, dass er Kinderknoten
in dem Spannbaum ist, werden alle Nachbarn in die Baumstruktur eingetragen.
Jeder Nachbar, der in den Spannbaum eingetragen wird, wird als bearbeitet
gekennzeichnet, und die oben genannte Vorgehensweise wird erneut
durchgeführt
und beginnt bei jedem eingetragenen Nachbarn, so dass ein Teilbaum
erstellt wird, dessen Wurzel bei dem Nachbarn liegt. Wird ein Nachbar
gefunden, der als bearbeitet gekennzeichnet ist, zeigt dies, dass
bei dem bearbeiteten Knoten bereits ein Teilbaum seine Wurzel hat. Der
Prozess wird bei dem nächsten
Nachbarn fortgesetzt, der noch nicht bearbeitet wurde.
-
Der
Grund für
den zusätzlichen
Aufwand, bei einigen Nachbarn auszuschließen, dass sie in dem Spannbaum
Kinderknoten sind, wenn die Anzahl von Nachbarn nicht nahe bei ↑2 liegt,
besteht darin, die Breite des Spannbaums auf ein Minimum zu beschränken. Dies
lässt sich
besser nachzuvollziehen, nachdem weiter unten der Prozess der Zuordnung
logischer PAST-Adressen beschrieben wurde.
-
Am
Ende dieser Phase existiert im Speicher des NCN ein Spannbaum 330,
der vom ursprünglichen
Graph (siehe 2) getrennt ist, seine Wurzel beim
NCN 60 hat und in dem ein einziger Pfad vom NCN 60 zu
jedem Knoten im Netzwerk und zurück existiert,
wie es in 16 dargestellt ist. Es ist anzumerken,
dass dieser Graph durch eine Datenstruktur wie diejenige in 15(b) dargestellt ist. Alle Knoten (62–76)
mit Ausnahme des NCN 60 haben einen Elternknoten, der sich
einen Hop näher
zum NCN 60 befindet. Alle Knoten mit Ausnahme der Blätter (66, 70, 74 und 76)
haben Kinderknoten, die sich einen Hop weiter vom NCN 60 entfernt
befinden. Ein Knoten kann einen Geschwisterknoten haben oder nicht, mit
dem er einen gemeinsamen Elternknoten hat. Es sind natürlich auch
andere Spannbäume
für 2 möglich.
-
In
der Endphase des Netzwerkinitialisierungsprozesses eines partitionierten
Spannbaums (PAST) werden jedem Knoten in dem Netzwerk logische Identifikatoren
zugeordnet. Im Besonderen kann jedem Knoten eine Adresse zugeordnet
werden. Im Rest dieses Dokumentes wird der Term Adressen verwendet.
Bei diesem Zuordnungsschema erbt jeder Kinderknoten die Adresse
seines Elternknotens, die mit seiner eigenen, eindeutigen Adresse
auf seiner Ebene kombiniert wird. Zu diesem Zweck beginnt der NCN 60 damit,
sich selbst eine Adresse zuzuordnen, die aus Bits mit nur Nullen
besteht (über
die Länge
dieser Adresse wird auf der Grundlage der Zuordnung von Adressen
zu den ressourcen armen Knoten entschieden, und die Länge entspricht
derjenigen der Adressen der Blätter 66, 70, 74 und 76 des
Spannbaums).
-
Der
NCN 60 berechnet dann die Anzahl von Kinderknoten, indem
er zu der tatsächlichen
Anzahl von Kinderknoten in dem Spannbaum des NCN 60 Eins
addiert. In dem vorliegenden Beispiel beträgt sie Zwei. Danach wird die
minimale Anzahl Bits, beispielsweise n, berechnet, die erforderlich
ist, um jeden Kinderknoten eindeutig zu adressieren. Falls während der
Erstellung des Spannbaums Nachbarknoten als Kinderknoten ausgeschlossen
wurden, sollte ↑2
die Potenz von Zwei angehoben auf die hier berechnete Anzahl von
Bits sein. Wurden keine Nachbarknoten weggelassen, sollte die Anzahl
von Bits zu ↓2
oder zu einer Potenz von Zwei führen,
die genau der Anzahl von Nachbarn in dem Graph entspricht. In dem
Beispiel aus 16 wäre dies ein einziges Bit. Die
jedem Kinderknoten zugeordnete logische PAST-Adresse besteht aus
einem eindeutigen n-Bit-Muster, das ihn von allen anderen Kinderknoten unterscheidet.
Diese n-Bits werden als eindeutiges Kinderteil bezeichnet. In dem
in 17 dargestellten Beispiel bilden die n-Bits die
Bits mit der höchsten Wertigkeit
der Adresse und werden daher auch als die PAST-Bits mit der höchsten Wertigkeit
bezeichnet. Es ist offensichtlich, dass andere Zuordnungen des eindeutigen
Teils zu Adressenbits möglich
sind.
-
Nachdem
der NCN 60 seinen Kinderknoten im Spannbaum die PAST-Adressen zugeordnet
hat, setzt der NCN 60 dann die oben genannte Prozedur mit
den Teilbäumen
fort, die ihre Wurzel an jedem Kinderknoten haben. Der eindeutige
Teil der Adresse jedes Knotens im Spannbaum (in dem Beispiel aus 17 wird
der eindeutige Teil aus den k PAST-Bits mit der höchsten Wertigkeit
gebildet) umfasst den eindeutigen Teil (in dem Beispiel die n PAST-Bits
mit der höchsten
Wertigkeit) seines Elternknotens in dem Baum verknüpft mit
einem eindeutigen Kinderteil (in dem Beispiel einem eindeutigen
m-Bit-Muster, wobei m
die Mindestanzahl von Bits angibt, die erforderlich ist, um jeden
Geschwisterknoten eindeutig zu adressieren). Somit unterscheiden
sich in dem Beispiel die Adressen von Geschwisterknoten lediglich
in den m Bits mit der geringsten Wertigkeit. Null-Bits werden zum
Auffüllen
am rechten Ende der k-Bit-PAST-Adresse eingesetzt, damit die Adresse
jedes Knotens die gleiche Länge
aufweist.
-
Die
Ergebnisse dieser Prozedur sind in 17 dargestellt,
in der die PAST-Bits mit der höchsten
Wertigkeit durch ein durchgehendes Unterstreichungszeichen gekennzeichnet
sind. Die zum Auffüllen
jeder PAST-Adresse auf die gleiche Länge genutzten Null-Bits sind
nicht unterstrichen. Da das Blatt 76 sechs Bits für seine
Adresse benötigt, sind
in 17 alle Knotenadressen mit Nullen aufgefüllt, um eine
6-Bit-Adresse zu erhalten. Wie bei der genaueren Betrachtung von 17 ersichtlich
ist, beinhaltet jeder Kinderknoten die Bits mit der höchsten Wertigkeit
seines Elternknotens.
-
Wie
bereits erläutert,
werden, sobald jeder Knoten eine Adresse hat, die Adressen vom Netzwerksteuerknoten
(NCN) 60 an die ressourcenarmen Knoten 62–76 gesendet
und in deren PROM gespeichert. Damit ist die Initialisierungsphase
beendet.
-
Während der Überwachungs-
und Steuerungsphase, wie sie in 18 dargestellt
ist, wartet der NCN 60 auf eine Eingabe 340 vom
Benutzer. Der NCN 60 erzeugt (342) ein Paket SEND_VALUE 360, wie
es in 19 dargestellt ist, mit einem
darin enthaltenen geeigneten Befehl, um einen Knoten anzuweisen
(ihm zu befehlen), eine Funktion auszuführen, beispielsweise eine spezielle
Funktion auszuführen,
oder um den Knoten abzufragen und ihn aufzufordern, Informationen
zurückzusenden.
Dieses Paket 360 wird gesendet (344), und der
NCN 60 wartet (346) auf ein zurückgesendetes
Paket. Ist die Funktion einmal ausgeführt oder die Abfrage beendet,
sendet der empfangende Knoten die Ergebnisse mittels eines Paketes
RESPONSE_SEND_VALUE 362 zurück, wie es in 20 dargestellt
ist. Dieses Paket wird geprüft
(348) um festzustellen, ob es sich um ein Paket handelt,
das mit Hilfe des PAST-Protokolls weitergeleitet wurde, und der
NCN 60 sondert das Paket aus (350), wenn dies
nicht der Fall ist. Der NCN 60 ermittelt auch (352),
ob das Paket das Antwortpaket 362 ist und verarbeitet (354)
in diesem Fall das Paket 362 entsprechend, indem er beispielsweise
eine Anzeige oder einen Gerätestatus
aktualisiert.
-
Nach
dem Empfangen und Speichern einer logischen PAST-Adresse am Ende
der Initialisierungsphase ist jeder Knoten (62–76)
in der Lage, Pakete weiterzuleiten, deren Merkerbytes angeben, dass
sie mit Hilfe des Protokolls des partitionierten Spannbaums (PAST)
weitergeleitet werden sollen. Während
der Überwachungs-
und Steuerungsphase für
Pakete, die sich stromabwärts
vom NCN 60 bewegen, wird jedes Paket mit Hilfe von PAST
weitergeleitet und enthält
die PAST-Adresse des Zielknotens, beispielsweise 110111, wenn der
Knoten 70 der Zielknoten ist. Die Pakete, die sich stromaufwärts zum NCN
bewegen, enthalten die PAST-Adresse des Sendeknotens, beispielsweise
111000, wenn der Knoten 62 der Quellknoten ist. Ein Zwischenknoten, wie
der in 21 dargestellte, ermittelt (372),
wenn er ein Paket empfängt
(370), ob das Paket mit Hilfe des richtigen Protokolls
weitergeleitet wurde. Ist das Protokoll korrekt, wird die Paketadresse
mit der Knotenadresse verglichen (376). Besteht keine Übereinstimmung,
vergleicht (378) der Knoten die k Bits mit der höchsten Wertigkeit
seiner eigenen PAST-Adresse mit der PAST- Adresse in dem Paket (der PAST-Adresse
des Ziel- oder Sendeknotens bei sich stromabwärts bzw. stromaufwärts bewegenden
Paketen). Wenn alle k Bits in den beiden Adressen übereinstimmen,
befindet sich der Zwischenknoten definitiv in einem direkten Pfad
vom NCN 60 zu dem Ziel-/Sendeknoten. Der Zwischenknoten
sendet daher das Paket weiter (380). Alle anderen Empfänger des
Pakets, deren PAST-Adressen keine Übereinstimmung der k Bits mit
der Paketadresse aufweisen, senden das Paket nicht weiter und sondern
es aus (382). Stimmt die Zieladresse mit der Knotenadresse überein,
wird das Paket verarbeitet (384) und der in ihm enthaltene
Befehl ausgeführt.
Auf der Grundlage des besonderen ausgeführten Prozesses werden die Ergebnisse
in ein Paket RESPONSE_SEND_VALUE 362 gebracht (386)
(siehe 20), und dieses Paket 362 wird
gesendet. Ist das Routing-Protokoll
nicht das PAST-Protokoll, ermittelt (390) der Knoten, ob das
Protokoll das Protokoll des Überschwemmens mit
Hopzahlen (FHC) ist; wenn dies nicht der Fall ist, wird das Paket
fallengelassen (391). Ist das Paket ein FHC-Paket, wird
ermittelt (392), ob das Paket ein Paket INSERT ist (siehe 22).
Ist dies nicht der Fall, wird ermittelt (394), ob das Paket
ein Paket INIT 120 ist (siehe 5). Ist
dies der Fall, tritt der Knoten in die Initialisierungsphase ein
(396). Ist das Paket ein Paket INSERT, erzeugt (398)
der Knoten ein Paket HEAR_INSERT 401 (siehe 23),
das dann gesendet wird (380).
-
Nachdem
ein Netzwerk initialisiert wurde, d.h. alle ressourcenarmen Knoten
ihre logischen PAST-Adressen erhalten haben, kann es erforderlich sein,
einen neuen ressourcenarmen Knoten zum Netzwerk hinzuzufügen. Die
einfachste Lösung
besteht darin, das gesamte Netzwerk wie oben beschrieben erneut
zu initialisieren. Dies kann jedoch in vielen Fällen nicht wünschenswert
sein. Als alternative Lösung
kann jeder neue ressourcenarme Knoten ein Paket INSERT 400 (siehe 22)
als Broadcast senden. Das Paket wird von seinen Nachbarknoten (die
bereits initialisiert wurden) gehört. Die Nachbarn erzeugen ein
Paket HEAR_INSERT 401 (siehe 23) und
senden es unter Verwendung des PAST-Protokolls zum NCN 60.
Die Pakete HEAR_INSERT enthalten die physikalische ID des neuen
Knotens und die ID des Knotens, der das Paket erzeugte, zusammen
mit seiner Hopzahl zum NCN 60. Der NCN 60 versucht,
nachdem er die Pakete HEAR_INSERT von mehreren Nachbarn des neuen
Knotens gesammelt hat, die beste Position im Spannbaum für den neuen
Knoten auszuwählen. Eine
gute Position ist diejenige, bei der dem neuen Knoten eine logische
PAST-Adresse zugeordnet werden kann, ohne dass große Änderungen
oder überhaupt Änderungen
an den PAST-Adressen oder der Länge
der PAST-Adressen der anderen Knoten vorgenommen werden müssen. Bei
dem Beispiel aus 17 kann ein neuer Knoten leicht
als Kinderknoten des Knotens mit der physikalischen ID 2 (Knoten 64)
in den Spannbaum eingefügt
werden. Jede andere Platzierung erfordert eine Änderung der logischen PAST-Adressen
anderer Knoten. Somit würde
der NCN, wenn ein neuer Knoten in der Nachbarschaft des Knotens 64 einzufügen wäre, dem
neuen Knoten eine logische PAST-Adresse von 101000 zuordnen. Wenn
jedoch ein neuer Knoten außerhalb
der Nachbarschaft des Knotens 64 einzufügen wäre, müssten einige der logischen
PAST-Adressen geändert
werden, damit die PAST-Adresse des neuen Knotens passt. Es kann
für den
NCN 60 erforderlich sein, allen oder vielen der Knoten
neue PAST-Adressen
zuzuordnen. Die geänderte
PAST-Adresse der Knoten und die neue PAST-Adresse des neuen Knotens werden mit
Hilfe von Paketen SET_ADDRS verbreitet und durch FHC-Routing gesendet.
Falls nötig
kann der NCN 60 die gesamte Initialisierungsprozedur starten.
-
In
der vorliegenden Erfindung werden durchgehende Bestätigungen
verwendet, um Knotenausfälle
zu erkennen. Wenn der NCN 60 eine Abfrage oder einen Abruf
von Informationen an einen Knoten sendet und keine Antwort erhält, nimmt
er an, dass ein Knoten in dem Pfad zum Ziel ausgefallen sein könnte. Er
beginnt dann damit, den Pfad im Spannbaum, der zum Zielknoten führt, stromabwärts zu durchlaufen
und sendet mit Hilfe eines PAST-Protokolls ein Paket ECHO 402 (siehe 24)
an jeden Knoten in dem Pfad und wartet auf eine PAST-Protokollantwort.
Ein Knoten, der ein Paket ECHO 402 empfängt, sendet einfach eine Kopie
zurück
zum NCN 60 und teilt dem NCN 60 somit mit, dass
der Knoten sich in dem korrekten Betriebszustand befindet. Erfolgt
keine Antwort auf ein Paket ECHO 402, so zeigt dies dem
NCN 60, dass der von dem Paket ECHO 402 adressierte
Knoten ausgefallen ist. Der NCN 60 konfiguriert den Spannbaum
daraufhin neu, um den Spannteilbaum, der seine Wurzel an dem ausgefallen
Knoten hat, mit einem anderen Teil des Netzwerkes zu verbinden,
so dass sich der neue Elternknoten des Teilbaums im Hörbereich
aller neuen Kinderknoten befindet. Diese Neukonfiguration wird durchgeführt, indem
die Kante vom Elternknoten zu dem ausgefallenen Knoten in dem ursprünglichen Graph
eliminiert wird und die oben beschriebenen Funktionen der Spannbaum-
und Adressenzuordnung ausgeführt
werden. Der NCN 60 kann Teile des Teilbaums aufbrechen
müssen
um sicherzustellen, dass alle Knoten in dem Teilbaum wieder mit
anderen Teilen des Spannbaums verbunden werden. Der NCN 60 ordnet
den neu konfigurierten Teilen des Spannbaums dann neue logische
PAST-Adressen zu und sendet Pakete 240 aus, um den betroffenen
Knoten die Änderung
ihrer PAST-Adressen mitzuteilen. Es kann erneut eine vollständige erneute
Initialisierung des Netzwerkes erforderlich sein, wenn der ausgefallene
Knoten in einem kritischen Teil des Netzwerkes liegt.
-
Ein
in der vorliegenden Erfindung verwendetes implizites Hop-by-Hop-Bestätigungsschema (IHBH)
hilft ebenfalls bei der Erkennung von Knotenausfällen. Jeder Quell- oder Zwischenknoten,
der ein Paket sendet, erwartet, dass er hört, wie das Paket von einem
seiner Nachbarn (einem Knoten in demselben Pfad im Spannbaum) weitergesendet
wird. Wenn er innerhalb einer festgelegten Zeitspanne keine Weitersendung
hört, nimmt
der Quell- oder Zwischenknoten an, dass Knotenausfälle seine
Pakete daran hindern, den Pfad des Spannbaums zu durchlaufen. Der
Quell- oder Zwischenknoten senden daraufhin ein Paket SQUEAL 404 (siehe 25)
aus, dessen Broadcast-Bits in dem Byte FLAG in geeigneter Weise
gesetzt sind. Ein Paket SQUEAL 404 enthält die PAST-Adresse des sendenden
Knotens und wird mit Hilfe des Protokolls des Überschwemmens mit Hopzahlen
zum NCN 60 weitergeleitet. Der NCN 60 startet
dann seine Prozedur um herauszufinden, welcher Knoten in dem Pfad
zu dem beanstandenden Knoten ausgefallen ist. Es folgt eine erneute Konfiguration
eines Teils oder des gesamten Netzwerkes.
-
Die
vielen Merkmale und Vorteile der Erfindung sind aus der ausführlichen
Erläuterung
ersichtlich, und die anhängenden
Ansprüche
sollen alle derartigen Merkmale und Vorteile der Erfindung abdecken,
die in den Rahmen der Erfindung fallen. Da dem Fachkundigen zahlreiche
Abwandlungen und Änderungen
einfallen werden, ist es ferner nicht gewünscht, dass die Erfindung auf
die dargestellte und beschriebene genaue Konstruktion und Funktionsweise
beschränkt
sei, und somit kann auf alle geeigneten Abwandlungen und Entsprechungen
zurückgegriffen
werden, die den Rahmen der Erfindung nicht verlassen. Es können beispielsweise
die oben beschriebenen Paketstrukturen verändert werden, solange die Funktionalität der Datenelemente
in jedem Paket durch ähnliche
andere Felder in einem neuen Paketformat geschaffen wird. Der im
NCN ausgeführte
und zur Erzeugung von PAST-Adressen für die Knoten genutzte Algorithmus
kann verändert werden,
solange jeglicher neue Algorithmus PAST-Adressen mit Bitfeldern
erzeugen kann, die die Kinderknoten jedes Knotens eindeutig identifizieren. Es
brauchen nicht alle Knoten ressourcenarm in Bezug auf Speicher und
Prozessorleistung zu sein, das Protokoll funktioniert bei jeglicher
Art von Knoten. Das PAST-Protokoll beschränkt das Netzwerk nicht auf
die Kommunikation lediglich zwischen dem NCN und jedem Knoten in
beiden Richtungen, sondern kann auch für die Kommunikation zwischen
Knoten eingesetzt werden, die keine NCN sind. Die Kommunikation
zwischen zwei Knoten, die keine NCN sind, kann dadurch erreicht
werden, dass zuerst Pakete zum NCN gesendet werden, der sie wiederum
zu dem geeigneten Ziel senden kann. In der Erläuterung wird eine Minimierung
der Breite des Spannbaums mit Hilfe von Potenzen von Zwei beschrieben.
Diese Minimierung braucht nicht durchgeführt zu werden und dient dazu,
die Länge
der PAST-Adressen zu optimieren. Die zur Darstellung des Graphs
im NCN verwendete Datenstruktur in Form einer Verbundliste kann
durch jegliche andere Art der Datenstruktur (beispielsweise eine
Matrix) ersetzt werden, und die Reihenfolge der Elemente der Verbundliste
kann verändert
werden, solange die Funktionalität
jedes Elements durch neue oder neu geordnete Elemente erfüllt wird.