DE102006022365B3 - Multipath - vorwärts und rückwärts - Google Patents

Multipath - vorwärts und rückwärts Download PDF

Info

Publication number
DE102006022365B3
DE102006022365B3 DE200610022365 DE102006022365A DE102006022365B3 DE 102006022365 B3 DE102006022365 B3 DE 102006022365B3 DE 200610022365 DE200610022365 DE 200610022365 DE 102006022365 A DE102006022365 A DE 102006022365A DE 102006022365 B3 DE102006022365 B3 DE 102006022365B3
Authority
DE
Germany
Prior art keywords
node
nodes
network
dijkstra
arrow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE200610022365
Other languages
English (en)
Inventor
Heinrich Hummel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE200610022365 priority Critical patent/DE102006022365B3/de
Application granted granted Critical
Publication of DE102006022365B3 publication Critical patent/DE102006022365B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Automation & Control Theory (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren zur Erzeugung eines "Multipath - Richtungsfeldes MPRF [d]", bei welchem alle (gewichteten) Kanten eines Netzes in Pfeile verwandelt werden, die alle auf einen vorgegebenen Knoten d ausgerichtet sind, also so, dass jede gleichgerichtete Pfeilfolge, egal bei welchem Knoten sie beginnt, zum Knoten d schleifenfrei hinführt und erst dort nicht mehr fortgesetzt werden kann, wobei jedem Pfeil noch eine Kennzeichnung (Farbe) zugeordnet ist. Blauer Pfeil = Dijkstra-best-hop. Roter Pfeil führt zu einem Nachbarknoten, der von d gleich weit entfernt ist wie der Dijkstra-best-hop Nachbarknoten. Grüner Pfeil führt näher ran an d, jedoch nicht so nah wie ein blauer oder roter Pfeil. Gelber Pfeil: Die Distanz zu d bleibt unverändert. Multipath - Richtungsfeld MPRF [d] $F1 Darauf basieren weitere Verfahren: Für Multipath-Routing. Sowohl für UNICAST als auch ANYCAST. Für p2mp (Multipath rückwärts) & mp2p (Multipath vorwärts)-Kommunikation. Für ein Verkehrsüberlastwarnsystem. Für einen expliziten overlay-Netzaufbau. Für eine automatische und konsistente Erkennung einer Netzaufteilung in Teilzuständigkeitsbereiche. Für die Bestimmung eines Fluchtwegs mit unbekanntem Ziel. Für eine Massenfluchtsteuerung (Evakuierung eines Gebäudes, einer Stadt, eines Gebietes)...

Description

  • 1 Einleitung
  • Die Berechnung einer Route in einem Netzwerk, welches aus beliebig vielen Knoten und gewichteten Kanten besteht und dabei beliebig vermascht ist, basiert heutzutage im Wesentlichen auf dem Dijkstra-Routing-Algorithmus. Die bekanntesten Anwendungen: Internet-Router, Routenplaner und GPS-basierte Navigation von Kraftfahrzeugen auf dem Straßennetz. Bei diesem Algorithmus wird, bildlich gesprochen, eine Teilmenge der Netzkanten in Pfeile verwandelt, die alle auf einen bestimmten Knoten s (wie source) ausgerichtet sind, insofern zu jedem Netzknoten genau ein Vorgängerknoten näher bei s bestimmt wird, derart, dass diese den Dijkstra-kürzest-Wegebaum (Dijkstra-shortest-path-tree) ergeben. Der Knoten s kann sich davon genau EINE kürzeste Route hin zu jeglichem Zielknoten d (wie destination), respektive genau EINE erste Kante/ersten Nachbarknoten auf dieser Route herleiten. Literatur: Google-Suche nach „Dijkstra", dann besonders empfohlen: Algorithmus von Dijkstra – Wikipedia.
  • Bei der hierin behandelten Thematik geht es um die Bestimmung und Nutzung potentiell VIELER Routen (sprich um multipath) zwischen einem aktuellen Knoten und einem Zielknoten, d.h. wie ein x-beliebiger Knoten ganz AUTARK all seine hierfür tauglichen Weiterleitungsknoten bestimmt (von denen er gleichfalls überwiegend völlig autark einen auswählen kann), derart, dass sich insgesamt konsistente Routen ergeben, und zwar sowohl beste als auch Umweg machende aber dennoch schleifenfreie Routen, ja sogar (sinnvolle!) Schleifen enthaltende Routen, etwa um aus einer unverhofften Sackgasse wieder herauszukommen. Literatur: Google-Suche nach Multipath. Es existieren zahlreiche wissenschaftliche Dokumente und auch Algorithmen, welche jedoch alle den Dijkstra-Routing-Algorithmus nur wiederholt aufrufen, dabei die Kanten der zuvor gefundenen Routen komplett oder teilweise vom zugrundeliegenden Netz ausblenden, um ggf. weitere Routen zu bekommen.
  • Aus dem Stand der Technik sind insbesondere auch bekannt die Druckschrift US 2002/0067720 A1, welche ein Verfahren zum Routing in Netzwerken beschreibt, basierend auf Entfernungsinformationen, um schleifenfreie Mehrfach-Pfade zu erhalten, die nicht notwendigerweise identische Kosten aufweisen.
  • Die Druckschrift US 2005/0088965 A1 befasst sich mit einem Verfahren zum Auffinden schleifenfreier Alternativ-Pfade, die im Falle des Ausfalls von Kanten oder Knoten eines Netzwerks für die Verkehrslenkung zum Tragen kommen, Druckschrift US 5,115,495 A schließlich befasst sich mit einem Routingverfahren, welches auf Entfernungsinformationen zwischen den Knoten des Netzwerks und einem Zielknoten basiert und dementsprechende Primär- und Alternativ-Pfade ausweist, wobei die mit einem Knoten verbundenen Kanten in Bezug auf den Zielknoten als baumaufwärts, horizontal oder baumabwärts gerichtet bezeichnet werden.
  • Vom Kaliber des Dijkstra-Verfahrens selbst ist sehr wohl das Nachfolgende:
    Während ein Internet-Router mit dem Dijkstra-Algorithmus bezüglich eines Zielknotens für genau EINE angrenzende Kante eine hierfür relevante Information erhält, bekommt er dank der Verfahren speziell nach Absatz 2 und 3 für ALLE angrenzenden Kanten eine diesbezüglich relevante Information, ja sogar für ALLE Kanten des ganzen Netzes. Statt minimalster Orientierung wird die maximalste Orientierung ermöglicht. Dabei geschieht dies nicht nur für Multipath-Anwendungen in der Vorwärtsrichtung, sondern auch für Multipath-Anwendungen in der Rückwärtsrichtung.
  • 2 Multipath-Richtungsfeld
  • Es wird ein Verfahren zur Erzeugung eines, wie an dieser Stelle erstmals bezeichnet, Multipath-Richtungsfeldes MPRF[d] vorgestellt. Hierbeiwerden sämtliche Kanten eines Netzes zu Pfeile konvertiert, welche allesamt auf einen einzigen vorgegebenen Netzknoten d ausgerichtet sind, das heißt, dass, ausgehend von jeglichem Netzknoten, jede gerichtete Pfeilfolge zum Ausrichtungsknoten d hinführt, und zwar schleifenfrei und derart, dass sie erst dort beim Knoten d nicht mehr fortgesetzt werden kann.
  • Anmerkung zum Namen:
  • „Multipath" ist ein feststehender Begriff. Das gleiche gilt für „Richtungsfeld" auf dem Gebiet der Differentialgleichungen (Englisch: „direction field"). Es ist daher nicht unwahrscheinlich, dass sich irgendwann einmal der Begriff „multipath direction field MPDF[d]" durchsetzen wird.
  • Verfahren [Hummel-1]: Multipath-Richtungsfeld MPRF[d]
  • Dieses Verfahren konvertiert alle (gewichteten) Kanten eines Netzes in ein Multipath-Richtungsfeld MPRF[d].
  • Dazu wird zunächst der Dijkstra-Routing-Algorithmus mit dem vorgegebenen Knoten d als Ausgangsknoten (source) bzw. Baumwurzelknoten (root) durchgeführt. Damit wird bekanntlich während einer Iterationsschleife für jeden Netzknoten k ein sogenannter Vorgängerknoten j ermittelt, über welchen eine kürzeste Route hin zum Knoten d führt (Initialisierend wird dem Knoten d als Vorgängerknoten d selbst zugeordnet sowie die Distanz 0 zu sich selbst). Zugleich wird damit die Distanz D zwischen k und d, sprich D (k; d), festgelegt: D (k; d) = D (j; d) + Gewichtswert der Kante zwischen k und j. Damit ist die Kante zwischen k und dessen Vorgängerknoten j zu einem Pfeil mit Pfeilspitze beim Vorgängerknoten j konvertiert. Wann immer während dieses Iterationsprozesses mehrere gleichwertige Kandidaten-Knoten auftreten, von denen einer ausgewählt werden muss, um für ihn als nächsten den diesbezüglichen Vorgängerknoten festzulegen, so möge – falls für die jeweilige Anwendung von Nöten – eine wohlbestimmte und allen Netzknoten geläufige Entscheidungsregel (tie-break rule) hierzu herangezogen werden. Beispiel: Man selektiere unter den gleichwertigen Kandidatenknoten jenen mit kleinster Adresse/kleinster Identifikationsnummer aus.
  • Die Zuordnung eines Vorgängerknotens j zu jeweils einem Knoten k geschieht in einer sich wohl ergebenden Sequenz SEQ, beginnend beim Knoten d selbst, und endend bei einem Netzknoten, welcher am weitesten von d entfernt ist.
  • Die Erfindung beginnt damit, dass man während der Iteration des Dijkstra-Routing-Algorithmus sich alle Knoten k speichert, und zwar in der Reihenfolge SEQ, in welcher diesen ein Vorgängerknoten j zugeteilt wurde. Außerdem werde jedem während dieser Iteration erzeugtem Pfeil eine spezielle Kennzeichnung zugeordnet, etwa symbolisch die blaue Farbe, die besagt, dass es sich um einen Dijkstra-best-hop handelt.
  • Im Anschluß an die Iteration des Dijkstra-Routing-Algorithmus wird erfindungsgemäß in der Reihenfolge SEQ, beginnend bei d, von Netzknoten zu Netzknoten gegangen, etwa zum Netzknoten j, und es werden dabei sämtliche Kanten, welche an Knoten j angrenzen und welche bis dahin noch nicht zu Pfeile konvertiert worden sind, zu Pfeile konvertiert und zwar mit Pfeilspitze beim aktuellen Knoten j. Falls für einen hierbei erzeugten Pfeil, beginnend beim Knoten k und endend beim Knoten j, gilt, dass Distanz D (k; d) = Distanz D (j; d) + Gewichtungswert der Kante zwischen k und j, so werde dem erzeugten Pfeil als Kennzeichnung die Farbe Rot zugeteilt. Andernfalls wird, sofern D (j; d) < D (k; d), dem erzeugten Pfeile die Farbe Grün als Kennzeichnung zugeteilt. Andernfalls, d.h. weil D (j; d) = D (k; d), wird dem erzeugten Pfeil die Farbe Gelb als Kennzeichnung zugeteilt.
  • Damit sind sämtliche Netzkanten zu Pfeile in vier verschiedenen Farben konvertiert, die allesamt auf Knoten d ausgerichtet sind, sprich das Multipath-Richtungsfeld MPRF[d] ist fertig.
  • Prinzipiell haben wir bzgl. eines jedweden Netzknotens x genau einen blauen wegführenden Pfeil, sowie null, einen, oder mehrere wegführende rote Pfeile, sowie null, einen, oder mehrere wegführende grüne Pfeile, sowie null, einen, oder mehrere wegführende gelbe Pfeile, sowie null, einen oder mehrere herbeiführende gelbe Pfeile, sowie null, einen oder mehrere herbeiführende grüne Pfeile, sowie null, einen oder mehrere herbeiführende rote Pfeile, sowie null, einen oder mehrere herbeiführende blaue Pfeile. Dementsprechend lassen sich alle Nachbarknoten y des Knotens x im Multipath-Richtungsfeld mit Ausrichtungsknoten d klassifizieren. D.h. jeglicher Nachbarknoten y von x gehört einer der folgenden 8 MPRF[d]-Klassen des Knotens x an:
    MPRF[d]-Klasse (1) DIJKSTRA_BESTHOP (x; d):
    y ist Pfeilspitze des stets genau einen von x wegführenden blauen Pfeils.
    y wird nachfolgend auch mit Dijkstra-best-hop bzgl. d, kurz DBHx;d, bezeichnet.
    MPRF[d]-Klasse (2) CLOSEST (x; d):
    y ist Pfeilspitze eines von x wegführenden roten Pfeils.
    Es gilt D (DBHx;d; d) = D (y; d) < D (x; d):
    MPRF[d]-Klasse (3) CLOSER (x; d):
    y ist Pfeilspitze eines von x wegführenden grünen Pfeils
    Es gilt: D (DBHx;d; d) < D (y; d) < D (x; d):
    MPRF[d]-Klasse (4) EQUIDISTANT_OFF (x; d):
    y ist Pfeilspitze eines von x wegführenden gelben Pfeils
    Es gilt: D (y; d) = D (x; d)
    MPRF[d]-Klasse (5) EQUIDISTANT_TO (x; d):
    y ist Pfeilanfang eines zu x herbeiführenden gelben Pfeils, d.h. x ist Element von EQUIDISTANT_OFF (y; d).
    MPRF[d]-Klasse (6) CLOSER_INV (x; d)://INV wie invers
    y ist Pfeilanfang eines zu x herbeiführenden grünen Pfeils.
    D.h. x ist Element der Klasse CLOSER (y; d)
    MPRF[d]-Klasse (7) CLOSEST_INV (x; d):
    y ist Pfeilanfang eines zu x herbeiführenden roten Pfeils,
    d.h. x ist Element der Klasse CLOSEST (y; d)
    MPRF[d]-Klasse (8) DIJKSTRA_BESTHOP_INV (x; d):
    y ist Pfeilanfang eines zu x herbeiführenden blauen Pfeils
    d.h. x ist das einzige Element der Klasse DIJKSTRA_BESTHOP (y; d)
    Die MPRF[d]-Klassen (1) bis (4) mögen die MPRF[d]-Oberklasse
    TOWARDS_DESTINATION (x; d) bilden.
    Die MPRF[d]-Klassen (5) bis (8) mögen die MPRF[d]-Oberklasse
    AWAY_FROM_DESTINATION (x; d) bilden.
  • Ein Netzknoten, der das MPRF[d] erzeugt, „sieht" alle Pfeile bzw. alle MPRF[d]-Klassen (1) bis (8) für alle Netzknoten x, insbesondere natürlich alle zu ihm selbst hinführenden Pfeile sowie alle von ihm selbst wegführenden Pfeile.
  • Naturgemäß sind für den Netzknoten x = d die Klassen (1) bis (5) leer.
  • Falls die Gewichtung aller Kanten einheitlich ist, z.B. falls alle Kanten die Gewichtung 1 haben, so treten die MPRF[d]-Klassen (3) und (6) grundsätzlich NICHT auf!
  • Ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens wird nachfolgend anhand der Zeichnung näher erläutert. Es zeigt dabei:
  • Zeichnung 1 ein Multipath-Richtungsfeld MPRF[d] eines Netzwerks mit Knoten und Kanten. Jeder Knoten kann Verfahren [Hummel-1] mit Zielknoten d durchführen und erhält dasselbe Multipath-Richtungsfeld MPRF[d] gemäß Zeichnung 1.
  • Verwendete Entscheider-Regel (tie-break-rule): Lexigraphische Reihenfolge
  • Die Kante q-r hat die Gewichtung 3. Die Kante u-v hat die Gewichtung 2. Alle übrigen Kanten haben die Gewichtung 1.
    Blauer Pfeil von p nach q:
    d.h. q ist Element der Klasse DIJKSTRA_BESTHOP (p; d)
    p ist Element der Klasse DIJKSTRA_BESTHOP_INV (q; d)
    Weitere blaue Pfeile: q→r, r→d, s→v, v→r, w→d, t→u, u→v, x→y, y→v, z→y.
    Roter Pfeil von t nach x:
    d.h. x ist Element der Klasse CLOSEST (t; d)
    t ist Element der Klasse CLOSEST_INV (x; d)
    Weiterer roter Pfeil: v→w
    Grüner Pfeil von q nach s:
    d.h. s ist Element der Klasse CLOSER (q; d)
    q ist Element der Klasse CLOSER_INV (s; d)
    Weiterer grüner Pfeil: u→y
    Gelber Pfeil von t nach p:
    d.h. p ist Element der Klasse EQUIDISTANT_OFF (t; d)
    t ist Element der Klasse EQUIDISTANT_TO (p; d)
    Weitere gelbe Pfeile: u→q, x→u
  • All diese Klassen sind hilfreich bei der Beschreibung aller nachfolgenden Anwendungsverfahren. Um aber die Resultate des MPRF[d] mit minimalsten Speicheraufwand festzuhalten, genügt es, Knoten d zu speichern sowie pro Netzkante drei Bits wie folgt:
    • (1): Welcher Begrenzungsknoten der Kante ist Pfeilspitze und welcher ist Pfeilausgangspunkt. Ein einziges Bit speichere diese Info, etwa so: „1": Begrenzungsknoten mit der größeren Adresse/Identifikationsnummer ist Pfeilspitze. „0": Begrenzungsknoten mit der kleineren Adresse(Identifikationsnummer ist Pfeilspitze.
    • (2): Vier verschiedene Kantenfarben (2-Bit-Information): 00 = Farbe Blau für Dijkstra_BESTHOP 01 = Farbe Rot für CLOSEST 10 = Farbe Grün für CLOSER 11 = Farbe Gelb für EQUIDISTANT
  • Darüber hinaus finden sich nachfolgend auch Anwendungen, bei welchen die Knotenfolge SEQ bezüglich MPRF[d] von Interesse ist, sprich auch nachdem dieses Multipath-Richtungsfeld komplett erstellt worden ist. D.h. auch die Knotenfolge SEQ (beginnend mit d und endend mit einem weitest von d entfernten Knoten), welche sich beim Dijkstra-Routing-Algorithmus ergibt, ist ggf. als Teil des Multipath-Richtungsfeldes MPRF[d] abzuspeichern.
  • Anmerkung: Geschuldet dem integralen Dijkstra-Routing-Algorithmus, existiert für jeden Netzknoten x die Information D (x; d) der kürzesten Distanz zwischen x und dem Ausrichtungsknoten d des MPRF[d].
  • 3 Multipath Transport in Vorwärtsrichtung
  • Es geht darum, für den Transport eines Objekts, z.B. eines Internet-Datenpakets, vielfache Routen hin zu einem Zielknoten zu ermöglichen und diesen Transport entsprechend durchzuführen.
  • Während speziell beim „connection-less" Internet-Routing jeder Router einen Dijkstra-kürzest-Wegebaum mit sich selbst als Baumwurzelknoten ermittelt und davon für jeglichen Zielknoten seine EINE „Dijkstra-best-hop" Kante ableitet, erzeuge hier jeder Netzknoten x bezüglich eines jeglichen Zielknotens d das diesbezügliche Multipath-Richtungsfeld MPRF[d] und erkennt darin unmittelbar die von x selbst wegführenden Pfeile sowie die auf x selbst zeigenden Pfeile, bzw. die MPRF[d]-Klassen (1) bis (8) bezogen auf x selbst. Indem jeder Knoten das für Zielknoten d bestimmte Weiterleitungsobjekt zu irgendeinem Nachbarknoten seiner MPRF[d]-Klassen (1) und (2) weiterleitet, ergeben sich im allgemeinen mehrere gleichkürzeste Routen. Indem jeder Knoten das Weiterleitungsobjekt hierfür zu irgend welchem Nachbarknoten aus seinen MPRF[d]-Klassen (1) bis (4) sendet, ergeben sich dadurch kürzeste als auch längere Routen, die aber alle schleifenfrei sind. Indem jeder Knoten das Weiterleitungsobjekt auch noch an Nachbarknoten der MPRF[d]-Klasse (5) EQUIDISTANT_TO (x; d) sendet, besteht die Gefahr dass dieses u.U. in einer Endlosschleife von Knoten zu Knoten geleitet wird, ohne die Distanz zum Zielknoten d zu verändern. Diese Gefahr existiert genau dann nicht, wenn Knoten x zusammen mit weiteren Knoten seiner Umgebung, welche von d gleichweit entfernt sind, ein maschenloses Teilnetz bilden, und wenn man unterstellt, dass kein Knoten das Weiterleitungsobjekt so ohne weiteres an jenen Knoten weiterleitet, von dem er es unmittelbar erhalten hat. Dieses Teilnetz äquidistanter Knoten ist genau dann maschenlos, wenn es aus N Knoten und L = N – 1 Kanten besteht. Der Knoten x möge dies mit Hilfe des folgenden Algorithmus feststellen:
  • [Hummel-2] – Bestimmung der Größe eines äquidistanten Teilnetzes:
  • Der Algorithmus [Hummel-2] berechnet für jeglichen Eingabeparameter-Knoten x die Größe des zusammenhängenden Teilnetzes von äquidistanten Knoten bezüglich des Zielknotens d, zu welchem auch x gehört, d.h. dessen Anzahl von Knoten N sowie dessen Anzahl von Kanten L. Falls sich herausstellt, dass L = N – 1, so ist dieses Teilnetz maschenlos, sonst aber maschenbehaftet.
    gv_number_of_equidistant_nodes = 0;//gv bedeutet global variable
    gv_number_of_equidistant links = 0;
    Markiere alle Kanten der gesamten Netzes mit 0.
    Markiere alle Knoten des gesamten Netzes mit 0.
    recursive_equidistant_subnetwork (node x);//Aufruf dieses Unterprogramms
  • Die Variable gv_number_of_equidistant_nodes enthält nun den Wert für N und gv_number_of_equidistant_links enthält nun den Wert für L.
  • Definition des rekursiven Unterprogramms recursive_equidistant_subnetwork: recursive_equidistant_subnetwork (node_param);
    Figure 00070001
    Figure 00080001
  • Falls L = N – 1, so kommen auch Nachbarknoten aus MPRF[d]-Klasse (5) EQUIDISTANT_TO (x; d) für die Weiterleitung in Frage, und zwar ohne die geringste Gefahr einer Schleifenbildung.
  • Falls aber L>N – 1 so lässt sich der Gefahr einer Endlos-Schleife mit Hilfe der folgenden Aktionsanweisung AA1 begegnen:
    Ein Knoten x, welcher zunächst keine zu befolgende Aktionsanweisung erhalten hat, und der das Weiterleitungsobjekt zu einem Nachbarknoten aus EQUIDISTANT_TO (x; d) oder EQUIDISTANT_OFF (x; d) senden möchte, tue dies, wobei er dem Weiterleitungsobjekt eine Aktionsanweisung AA1 mit auf den Weg gibt, die dafür sorgt, dass maximal N – 1 mal hintereinander ein äquidistanter Nachbarknoten selektiert wird. Dies mag Schleifen nicht restlos ausschließen, verhindert aber Schleifen, die wirklich problematisch sind (Endlosschleifen).
  • Aktionsanweisung AA1: „Limit forwarding to eguidistant nodes":
  • Am Beispiel der Beförderung von Internet-Datenpakete sei so eine Aktionsanweisung dargestellt: Im Internet-Protocol-Header werde ein zu standardisierender optionaler Parameter „Limit forwarding to equidistant nodes" gesetzt, sowie ein anfänglicher „Time-to-Live" Wert (im TTL-Feld) auf N – 1 gesetzt, sobald ein Knoten das Datenpaket zu einem äquidistanten Nachbarknoten sendet und der optionale Parameter zuvor noch nicht gesetzt war. Dieser TTL-Werte werde von jedem empfangenden gleichfalls äquidistanten Nachfolgerknoten um 1 dekrementiert. Sobald er dadurch den Wert 0 erreicht, darf das Datenpaket beim nächsten Hops zu keinem weiteren äquidistanten Knoten weitergeleitet werden. Auch ist der optionale Parameter „Limit forwarding to equidistant nodes" hierbei zu löschen. Dieser ist gleichfalls zu löschen wenn das Datenpaket schon vorher zu einem nicht-äquidistanten Knoten weitergeleitet wird. Dies gilt selbstverständlich, wenn es dabei zu einem Nachbarknoten aus den MPRF[d]-Klassen (1)–(3) weitergeleitet werden kann. Dies gilt aber auch dann, wenn es mangels Alternativen zu einem Nachbarknoten aus den MPRF[d]-Klassen (6)–(8) weitergeleitet werden muss.
  • Kompatibilität mit herkömmlichen Router-Knoten, welche die Aktionsanweisung AA1 nicht verstehen, sprich die Objektweiterleitung zu ihrem Dijkstra-best-hop Nachbarknoten tätigen, aber die AA1-Anweisung dabei nicht entfernen: Der erste nachfolgende, die AA1 Aktionsanweisung verstehende Knoten x kann und möge erkennen, daß er das Weiterleitungsobjekt von einem Nachbar y aus DIJKSTRA_BESTHOP_INV (x; d) empfangen hat, und nicht von einem Nachbar aus EQUIDISTANT_TO (x; d) oder EQUIDISTANT_OFF (x; d), und sollte deshalb die AA1-Anweisung löschen. Noch besser ist es – mit Hinblick auf die herkömmliche Nutzung des Time-To-Live Parameters – die AA1-Aktionsanweisung genau dann nicht zu senden/weiterzuleiten, wenn der jeweilige Knoten weiß, dass der Nachfolgeknoten diese nicht versteht.
  • In der Phase, in welcher [Hummel-1] und [Hummel-2] durchgeführt werden, werde die vorliegende Situation in Form eines Aktions-Indikators A gespeichert bzw. festgehalten, welcher den beiden MPRF[d]-Klassen EQUIDISTANT_TO (x; d) und EQUIDISTANT_OFF (x; d) gleichermaßen zugeordnet werden kann. Etwa:
    A = 0 besagt „maschenloses äqudistantes Teilnetz"
    A = N – 1 besagt „maschenhaftes äquidistantes Teilnetz" und gibt zugleich den anfänglichen TTL-Wert an.
  • Als nächstes betrachten wir die Nachbarknoten y aus MPRF[d]-Klasse (6) CLOSER_INV (x; d):
    Bei einer derartigen Selektion eines Nachbarknotens y entfernen wir uns wieder vom Zielknoten d und müssen deshalb erzwingen, dass Nachbarknoten y unbedingt einen Weiterleitungsknoten z aus DIJKSTRA_BESTHOP (y; d) oder CLOSEST (y; d) selektiert (um den momentanen Hops weiter weg von d sogleich wieder mehr als auszugleichen). Indem Knoten y erkennt, dass es das Weiterleitungsobjekt von einem Nachbarknoten aus seiner Klasse CLOSER (y; d) erhalten hat, möge er sich dazu veranlasst sehen, ohne dass es hierfür einer explizit mitgeteilten Aktionsanweisung bedarf. Man beachte: Der hierbei von y selektierte Knoten z kann unmöglich gleich x sein denn es gilt: D (z; d) < D (x; d). Sollte y nicht in der Lage sein, einen Knoten z derart zu selektieren, so ist das Weiterleitungsobjekt zu löschen sofern dies wie etwa bei Internet-Datenpaketen vertretbar ist.
  • Als nächstes betrachten wir die Nachbarknoten y aus MPRF[d]-Klasse (7) CLOSEST_INV (x; d):
    Bei einer derartigen Selektion eines Nachbarknotens y entfernen wir uns wieder vom Zielknoten d und müssen deshalb erzwingen, dass y einen Weiterleitungsknoten z ungleich x aus DIJKSTRA_BESTHOP (y; d) oder CLOSEST (y; d) selektiert, und dass daraufhin z einen Weiterleitungsknoten aus DIJKSTRA_BESTHOP (z; d) oder CLOSEST (z; d) oder CLOSER (z; d) selektiert. Knoten y möge sich veranlasst sehen, so zu handeln, indem er selber merkt, dass er das Weiterleitungsobjekt von einem Nachbarn aus CLOSEST (y; d) empfangen hat (Übrigens kann y gleichermaßen vorgehen, falls es das Weiterleitungsobjekt von einem Nachbarknoten aus seiner Klasse DIJKSTRA_BESTHOP (y; d) erhält). D.h. Knoten x braucht überhaupt keine Aktionsanweisung für Knoten y mitliefern. Man beachte: Es ist gewährleistet, dass es für y mindestens einen Weiterleitungsknoten z ungleich x gibt, der infrage kommt, nämlich das Element aus DIJKSTRA_BESTHOP (y; d). Knoten y muss aber auch den von ihm selektierten Knoten z veranlassen, seinerseits einen Weiterleitungsknoten aus DIJKSTRA_BESTHOP (z; d) oder CLOSEST (z; d) oder CLOSER (z; d) zu selektieren. Dazu gibt er dem Weiterleitungsobjekt die Aktionsanweisung AA2 mit.
  • Aktionsanweisung AA2: „Get closer to destination"
  • Etwa beim Internet-Routing möge in Form eines zu standardisierenden optionalen Parameters „Get closer to destination" dem nachfolgenden Knoten z befohlen werden, das erhaltene Objekt an einen Knoten aus DIJKSTRA_BESTHOP (z; d) oder CLOSEST (z; d) oder CLOSER (z; d) weiter zu leiten. Der Knoten z muss außerdem diesen optionalen Parameter sogleich wieder löschen.
  • Der Knoten z muss der Aktionsanweisung AA2 voll und ganz entsprechen oder aber das Weiterleitungsobjekt löschen, sofern dies wie etwa bei Internet-Datenpaketen vertretbar ist.
  • Kompatibilität: Ein herkömmlicher Router, der AA2 nicht versteht, sprich der zwar richtigerweise das Datenpaket zu seinem Dijkstra-best-hop Nachbarknoten weiterleitet, davor aber AA2 nicht löscht, „riskiert" dass einmal mehr als nötig die Verwendung des Dijkstra-best-hops erzwungen wird. Daran ist nichts auszusetzen.
  • Schließlich betrachten wir die Nachbarknoten y aus MPRF[d]-Klasse (8) DIJKSTRA_BESTHOP_INV (x; d).
  • Durch nachfolgende Überprüfung zerlegen wir diese Klasse in die folgenden vier Unterklassen:
    • (1) Unterklasse DIJKSTRA_BESTHOP_INV_SHORT_DETOUR (x; d): Sie enthält alle Nachbarknoten y, deren Klassen CLOSEST (y; d) nicht leer sind.
    • (2) Unterklasse DIJKSTRA_BESTHOP_INV_LONG_DETOUR (x; d): Sie enthält alle Nachbarknoten y, welche zum einen nicht in der Unterklasse DIJKSTRA_BESTHOP_INV_SHORT_DETOUR (x; d) sind und über die eine Umwegroute hin zu einen Knoten z ungleich x bestimmt werden kann mit D (z; d) = D (x; d), welche dabei x niemals passiert, wobei der hierfür erforderliche Berechnungs- und Speicherungsaufwand im Rahmen des Akzeptierbaren bleibt (Näheres siehe unten).
    • (3) Unterklasse DIJKSTRA_EtESTHOP_INV_LONG_DETOUR_TOO_COMPLEX (x; d): Sie enthält alle Nachbarknoten y, welche nicht zur Unterklasse DIJKSTRA_BESTHOP_INV_SHORT_DETOUR (x; d) gehören und über die eine Umwegroute hin zu einen Knoten z ungleich x bestimmt werden kann mit D (z; d) = D (x; d), welche dabei x niemals passiert, wobei aber der hierfür erforderliche Berechnungs- und Speicherungsaufwand über das Akzeptierbare hinaus geht (Näheres siehe unten).
    • (4) Unterklasse DIJKSTRA_BESTHOP_INV_DEAD_END (x; d): Sie enthält alle Nachbarknoten y, von wo aus es keine Route hin zu irgendeinen Knoten z ungleich x gibt mit D (z; d) = D (x; d) ohne x zu passieren (=Sackgasse). Um die Zugehörigkeit eines Nachbarknotens y aus DIJKSTRA_BESTHOP_INV (x; d) zur jeweiligen Unterklasse festzustellen, prüfen wir zunächst, ob CLOSEST (y; d) leer ist.
    Falls nicht, so gehöre y der Unterklasse DIJKSTRA_BESTHOP_INV_SHORT_DETOUR (x; d) an. Andernfalls werde versucht, mit Hilfe des klassischen Dijkstra-Routing-Algorithmus eine kürzeste Route von y nach d zu bestimmen, wobei man zuvor vom zugrunde liegenden Netz den Knoten x sowie die an x angrenzenden Kanten „entfernt" hat. Falls dieser Versuch misslingt, so gehört y der Unterklasse DIJKSTRA_BESTHOP_INV_DEAD_END (x; d) an.
    Falls er aber gelingt, so wird die ermittelte kürzeste Route irgendwo einen ersten Knoten w mit D (w; d) <= D (x; d) haben. Diesen ersten Teil der Route von y nach w unterteilen wir in Knotenfolgen S11, S12, ...., Sr1, Sr2 derart, dass die Distanzwerte D (j; d) aller Knoten j einer Knotenfolge Si1 für i von 1 bis r jeweils eine monoton nicht abnehmende Zahlenfolge bilden, wohingegen die Distanzwerte D (j; d) aller Knoten j der Knotenfolge Si2, für i von 1 bis r, jeweils eine monoton streng abnehmende Zahlenfolge bilden. zik bezeichne den jeweils letzten Knoten der Folge Sik mit i = 1, ..r und k = 1,2 wobei zr2 = w. Die Knoten zik müssen in der Reihenfolge, in welcher sie in der ermittelten Route auftreten, als Interimszielknoten angesteuert werden. Dies ist ohne Zweifel mit Aufwänden verbunden. Falls man diese Aufwände im Einzelfall für nicht gerechtfertigt hält, weil etwa r sich zu groß erweist, oder weil die Klassen (1)–(7) genügend viele Knoten enthalten, so werde y der Unterklasse DIJKSTRA_BESTHOP_INV_LONG_DETOUR_TOO_COMPLEX (x; d) zugeteilt, ansonsten aber der Unterklasse DIJKSTRA_BESTHOP_INV_LONG_DETOUR (x; d). Hierbei ist für jedes einzelne Element y dieser Unterklasse die Liste der zugehörigen Knoten zik i = 1, .. r und k = 1, 2 mit abzuspeichern.
  • Ein Nachbarknoten aus DIJKSTRA_BESTHOP_INV_DEAD_END (x; d) bzw. DIJKSTRA_BESTHOP_INV_LONG_DETOUR_TOO_COMPLEX (x; d) kommt für die Weiterleitung eines Objekts mit Zielknoten d nicht in Frage.
  • Selektiert x für die Objektweiterleitung einen Nachbarknoten y aus DIJKSTRA_BESTHOP_INV_SHORT_DETOUR (x; d) so gilt selbiges wie bei der Selektion eines Nachbarknotens aus CLOSEST_INV (x; d) – siehe oben.
  • Selektiert x einen Nachbarknoten y aus DIJKSTRA_BESTHOP_INV_LONG_DETOUR (x; d) so werde mittels einer mehrfachen „Brief im Brief" -Umwickelung (beim Beispiel Internet mittels IP-in-IP encapsulation) dafür gesorgt, dass die zugeordneten Knoten z11, z12, ..., zr1, zr2 als Zwischenziele angesteuert werden. Auf dem innersten hinzugefügten „Briefumschlag" steht die Adresse des Zielknotens zr2, auf dem äußersten: z11. Auf jedem „Briefumschlag" mit Zieladresse zi1 für i = 1, .., r ist ferner ein Aktionsanweisung AA3 vermerkt, welche jeden Transitknoten k auf dem Weg nach zi1 anweist, einen nächsten Knoten ausschließlich aus den Klassen DIJKSTRA_BESTHOP (k; zi1) oder CLOSEST (k; zi1) oder CLOSER (k; zi1) der respektiven Multipath-Richtungsfelder MPRF[zi1] für i = 1, ..., r zu selektieren.
  • Auf jedem „Briefumschlag" mit Zieladresse zi2 für i = 1, .., r ist hingegen ein Aktionsanweisung AA4 vermerkt, welche jeden Transitknoten k auf dem Weg nach zi2 anweist, einen nächsten Knoten ausschließlich aus den Klassen DIJKSTRA_BESTHOP (j; zi1) oder CLOSEST (j; zi1) der respektiven Multipath-Richtungsfelder MPRF[zi2] für i = 1, ..., r zu selektieren. Dem originären „Briefumschlag" mit Zielknoten d wird eine Aktionsanweisung AA2 „Get closer to destination" (siehe oben) hinzugefügt, welche den Knoten zr2 = w veranlasst, ausschließlich einen nächsten Knoten aus den Klassen DIJKSTRA_BESTHOP (w; d) oder CLOSEST (w; d) oder CLOSER (w; d) zu selektieren und außerdem eben diese Aktionsanweisung wieder zu entfernen.
  • Kompatibilität:
  • Die AA3 und AA4 verstehenden Router-Knoten müssen sich an diese Aktionsanweisungen halten, ansonsten aber das Weiterleitungsdatenpaket löschen. Herkömmliche Router, welche AA3 und AA4 nicht verstehen, würden ohnehin ihnen entsprechen bzw. sich so verhalten.
  • Anmerkungen:
  • Mit dem eben vorgestellten Multipath-Routing in Vorwärtsrichtung kann ein völlig neues Kapitel in der Internet-Technologie aufgeschlagen werden – etwa betreffend Verkehrslastbalancierung, oder betreffend plötzlicher Router-Ausfälle bzw. Router-Blockierungen. Schleifen können ohne den bislang üblichen Schrecken gesehen werden. Beispiel: Es kann passieren, dass der „Dijkstra-best-hop"-Nachbarknoten temporär blockiert ist und dass die einzige Chance für ein erfolgreiches Routen darin besteht, erst einmal den Rückwärtsgang einzulegen, eventuell bis zurück zum Ausgangsknoten oder gar noch weiter zurück, um erst danach zu einem erfolgreichen Vorwärtsrouten hin zum Zielknoten überzugehen. Ferner kann der Time-To-Live Mechanismus in der bisherigen Verwendung entfallen.
  • 4 „Interferenz" von wenigen Multipath-Richtungsfeldern
  • Das obige Multipath-Verfahren in Absatz 3 setzt voraus, dass bezüglich eines jeglichen Zielknotens d ein Multipath-Richtungsfeld MPRF[d] erstellt wird. Falls dies zu aufwendig erscheint, so kann man zum einen das MPRF[d] nur für die wichtigsten Zielknoten erstellen, ansonsten aber herkömmlich verfahren und/oder mit der nachfolgenden „Interferenz" von ein paar wenigen Multipath-Richtungsfeldern, die gewünschte Routing-Informationen bezüglich eines jeglichen Ziels destillieren: Ein jeglicher Knoten x berechnet hierbei sein individuelles MPRF0[d0 = x], sowie MPRF1 [d1 = NP], wobei NP (wie Nordpol) irgendein Netzknoten ist, auf welchen sich alle Netzknoten verständigt haben. Ausnahme: Der Knoten x = NP selbst bilde MPRF0[d0 = x = NP] sowie MPRF1[d1 = SP] wobei SP (wie Südpol) irgendein anderer Netzknoten sei.
  • Für einen jeglichen Zielknoten d bilde der Knoten x die folgenden zwei Klassen:
  • 1) DIJKSTRA_BESTHOP (x; d):
  • Sie enthalte den Nachbarknoten DBHx;d, welcher wie bei herkömmlichen Routern ermittelt werde. In der hierin benützten Terminologie: Man navigiert von d über Knoten y1 = DIJKSTRA_BESTHOP (d; d0 = x), y2 = DIJKSTRA_BESTHOP (y1; d0 = x), ..... yp = DIJKSTA_BESTHOP (yp-1; d0 = x) nach x = DIJKSTRA_BESTHOP (yp; d0 = x) und erhält damit yp = DBHx;d.
  • 2) SUITABLE_NEXT_HOP (x; d):
  • Sie enthalte alle Nachbarknoten y von x für die eine der folgenden Bedingungen zu trifft:
    (1):
    D (x, d1) < D (DBHx;d, d1) UND D (y, d1) > D (x, d1).
    Oder aber (2):
    D (x, d1) > D (DBHx;d, d1) UND D (y, d1) < D (x, d1).
    Oder aber (3):
    D (x, d1) = D (DBHx;d, d1) UND D (x, d1) < D (d, d1) UND D (y, d1) > D (x, d1).
    Oder aber (4):
    D (x,d1) = D (DBHx;d,d1)UND D (x,d1) > D (d,d1)UND D (y,d1) < D (x,d1).
  • Anmerkung:
  • Falls D (x, d1) = D (DBHx;d, d1) UND D (x, d1) = D (d, d1), so bleibe die Klasse SUITABLE_NEXT_HOP (x; d) leer.
  • Multipath Transport-Prozess:
  • Der Ausgangsknoten sowie jeglicher Transitknoten x möge – zwecks Weiterleitung des Transportobjektes – einen Nachfolgeknoten entweder von seiner Klasse DIJKSTRA_BESTHOP (x; d) oder von seiner Klasse SUITABLE_NEXT_HOP (x; d) auswählen (falls DBHx;d identisch mit d ist, so ist selbstverständlich kein anderer Nachfolgeknoten als DBHx;d zu wählen).
  • Es gibt dabei eine unschöne aber doch akzeptierbare Situation:
    Es kann sein, dass für Knoten x die Klasse SUITABLE_NEXT_HOP (x; d) leer ist und dass der Knoten DBHx;d aus DIJKSTRA_BESTHOP (x; d) sich als jener erweist, von dem Knoten x soeben das Weiterleitungsobjekt erhalten hat. In diesem Fall muss x das Weiterleitungsobjekt an diesen Knoten zurücksenden und ihm dabei signalisieren, dass er unbedingt seinen Dijkstra-best-hop Nachbarknoten zur Weiterleitung des Objekts auswählen muss.
  • Alternativen, Modifikationen zum Multipath Transport-Prozess:
  • Es soll erzwungen werden, dass nach der Selektion eines Elements der Klasse SUITABLE_NEXT_HOP (x; d) stets mindestens einmal die Selektion des Elements der Klasse DIJKSTRA_BESTHOP (x; d) erfolgt.
  • Dafür dürfen die Bedingungen (1) und (2) durch die weniger rigorosen Bedingungen (1') und (2') ersetzt werden, sprich ein Nachbarknoten y ungleich DBHx;d qualifiziert sich als Element von SUITABLE_NEXT_HOP (x; d), falls zutrifft:
    (1'):
    D (x, d1) < D (DBHx;d, d1) UND D (y, d1) >= D (x, d1).
    Oder aber (2'):
    D (x, d1) > D (DBHx;d, d1) UND D (y, d1) <= D (x, d1).
  • Dies lässt sich zum Beispiel wie folgt organisieren:
    Auf dem Weg zu seinem Zielknoten d möge das Weiterleitungsobjekt eine 1-Bit-Information „Take the Dijkstra-best-hop" mit sich führen. Ist das Bit auf den Wert 1 gesetzt, so bedeutet dies für den das Objekt empfangenden Knoten x, es müsse das Objekt weiterleiten an den Nachbarknoten aus Klasse DIJKSTRA-BESTHOP (x; d) und dabei dieses Bit auf 0 setzen.
  • Empfängt ein Knoten x das Objekt, wobei beim Empfang dieses Bit auf 0 gesetzt ist, so hat er die freie Wahl, das Objekt entweder an einen Nachbarknoten aus DIJKSTRA_BESTHOP (x; d) oder aber aus SUITABLE_NEXT_HOP (x; d) weiterzuleiten. Im ersteren Fall wird die Information „Take the Dijkstra-best-hop" = 0 weitergeleitet, im letzteren Fall die Information „Take the Dijkstra-best-hop" = 1.
  • Ein Knoten x, welcher entweder mangels Alternativen oder auf Grund der empfangenen Information „Take the Dijkstra-besthop" = 1 gezwungen ist, das Objekt an selbigen Knoten zurückzuschicken, von dem er es empfangen hat, möge dies tun und zwar zusammen mit der Information „Take the Dijkstra-best-hop" = 1.
  • Weitere alternative Lösungen:
  • Diverse alternative Lösungen sind möglich, etwa indem man weitere Multipath-Richtungsfelder MPRF2 [d2], ... ermittelt und zur Bestimmung der Klasse SUITABLE_NEXT_HOP (x; d) heranzieht.
  • Beispiel: Alle Netzknoten bestimmen ein zusätzliches Multipath-Richtungsfeld MPRF2 [d2] welches ausgerichtet ist auf den von allen gekannten Knoten d2. Im Falle dass D (x, d1) = D (DBHx;d, d1) UND D (x, d1) = D (d, d1) lassen sich dann eventuell doch noch Nachbarknoten y für die Klasse SUITABLE_NEXT_HOP (x; d) ermitteln, falls nämlich zutrifft:
    (1):
    D (x, d2) < D (DBHx;d, d2) UND D (y, d2) > D (x, d2).
    Oder aber (2):
    D (x, d2) > D (DBHx;d, d2) UND D (y, d2) < D (x, d2).
    Oder aber (3):
    D (x, d2) = D (DBHx;d, d2) UND D (x, d2) < D (d, d2) UND D (y, d2) > D (x, d2).
    Oder aber (4):
    D (x, d2) = D (DBHx;d, d2) UND D (x, d2) > D (d, d2) UND D (y, d2) < D (x, d2).
  • 5 P2mp & mp2p Kommunikation, MPRF[d] basierend
  • Akronyme:
    • p2p = point-to-point; p2mp = point-to-multipoint; mp2p = multipoint-to-point.
  • Jeder Netzknoten bestimme das identische Multipath-Richtungsfeld MPRF[d], d.h. mit Ausrichtung auf denselben Knoten d und unter Beachtung derselben Entscheidungsregel (tie-break-rule). Es diene der Kommunikation zwischen Knoten d und allen übrigen Netzknoten in Vorwärts- als auch Rückwärtsrichtung, derart dass die Kommunikationsmeldung jeglichen Netzknoten x ungleich d genau einmal passiert.
  • Es diene ferner der Kommunikation zwischen Knoten d und allen übrigen Netzknoten in Vorwärts- als auch Rückwärtsrichtung, derart dass die Kommunikationsmeldung jegliche Netzkante genau einmal passiert.
  • 5.1 P2mp Kommunikation wobei jeder Knoten genau einmal passiert wird
  • Der Knoten d möge – für welche Anwendung auch immer – eine p2mp-Meldung an all seine Nachbarknoten y aus DIJKSTRA_BESTHOP_INV (d; d) senden, die diese ihrerseits an ihre Nachbarknoten z aus ihren Klassen DIJKSTRA_BESTHOP_INV (y; d) weiterleiten, usw. Die rekursive Wiederholung sorgt dafür, dass jeder Netzknoten genau ein Exemplar dieser p2mp-Meldung erhält. Die Rekursion stoppt dadurch, dass ggf. die Klasse DIJKSTRA_BESTHOP_INV (y;d) leer ist.
  • Falls das Weiterleiten dieser p2mp-Meldung von irgendeinem Knoten x an irgendeinen Nachbarknoten y aus irgendwelchen Gründen blockiert ist, so kann dies bezüglich eine Benachrichtigungsmeldung an d zurückgesendet werden, wobei stets ein Knoten k diese an den Nachbarknoten aus DIJKSTRA_BESTHOP (k; d) sendet.
  • Das Vorteilhafte: Der Knoten d muss lediglich so viele Exemplare der p2mp-Meldung aussenden, als die Klasse DIJKSTRA_BESTHOP_INV (d; d) Elemente hat und kann dennoch mit sämtlichen n Knoten des Netzes kommunizieren. Ebenso ist auch die Arbeitslast für jeden Netzknoten wohl begrenzt.
  • Beispiel-Anwendungen:
  • Kundgebungen an alle (advertisement).
  • Aufforderung an alle zu antworten, etwa fast gleichzeitig, etwa mittels einer mp2p-Meldung – siehe nachfolgend.
  • 5.2 Mp2p Kommunikation wobei jeder Knoten genau einmal passiert wird
  • All jene Knoten x, deren Klassen DIJKSTRA_BESTHOP_INV (x; d) leer sind, mögen, etwa periodisch zur gleichen Zeit oder in Reaktion auf eine unmittelbar zuvor erhaltene Meldung von d (z.B. nach Erhalt einer p2mp-Meldung, siehe oben) eine mp2p-Meldung an Knoten d initiieren und sie an ihre Nachbarknoten aus DIJKSTRA_BESTHOP (x; d) schicken. So ein Nachbarknoten y möge innerhalb eines bestimmten Zeitrahmens weitere Exemplare dieser mp2p-Meldung von allen übrigen Nachbarn aus DIJKSTRA_BESTHOP_INV (y; d) erwarten und nach Erhalt sämtlicher Exemplare genau eine mp2p-Meldung an den Nachbarknoten aus DIJKSTRA_BESTHOP (y; d) weiterleiten. Nach allen rekursiven Wiederholungen dieses Vorgangs wird schließlich der Knoten d von all seinen Nachbarknoten aus DIJKSTRA_BESTHOP_INV (d; d) je ein Exemplar dieser mp2p-Meldung bekommen.
  • Z.B. kann der Knoten d auf diese Weise periodisch alle übrige Netzknoten bzgl. ihrer Einsatzbereitschaft überprüfen.
  • Das Vorteilhafte: Der Knoten d muss lediglich so viele Exemplare der p2mp-Meldung empfangen, als die Klasse DIJKSTRA_BESTHOP_INV (d; d) Elemente hat und kann dennoch mit sämtlichen n Knoten des Netzes kommunizieren. Ebenso ist auch die Arbeitslast für jeden Netzknoten wohl begrenzt.
  • 5.3 P2mp Kommunikation wobei jede Kante genau einmal passiert wird
  • Der Knoten d möge – für welche Anwendung auch immer – eine p2mp-Meldung an all seine Nachbarknoten y aus der Oberklasse AWAY_FROM_DESTINATION (d; d) senden, die diese ihrerseits weiterleiten an ihre Nachbarknoten z aus ihren Oberklassen AWAY_FROM_DESTINATION (y; d), usw. Auf diese Weise wird die Meldung an alle Netzknoten gesendet, wobei die Meldung jede Netzkante genau einmal passiert. Ein beliebiger Netzknoten x erhält diese p2mp-Meldung im Allgemeinen mehrmals, nämlich von all seinen Nachbarn aus Oberklasse TOWARDS_DESTINATION (x; d). Er schickt sie weiter an all seine Nachbarknoten aus Oberklasse AWAY_FROM_DESTINATION (x; d). Er mag dies nach Empfang des ersten Exemplars dieser p2mp-Meldung tun, oder nach Erhalt des letzten Exemplars, oder nach Erhalt eines wohlbestimmten Exemplars, z.B. jenes vom Nachbarknoten aus DIJKSTRA_BESTHOP (x; d).
  • Durch rekursive Wiederholung dieses Vorgangs wird die p2mp-Meldung an sämtliche Netzknoten derart geschickt dass sämtliche Netzkanten genau einmal passiert werden.
  • Falls das Weiterleiten dieser Meldung von irgendeinem Knoten x an irgendeinen Nachbarknoten y aus irgendwelchen Gründen blockiert ist, so kann diesbezüglich eine Benachrichtigungsmeldung an d zurückgesendet werden wobei z.B. stets ein Knoten k diese an den Nachbarknoten aus DIJKSTRA_BESTHOP (k; d) sendet.
  • Anwendungen:
    • 1.MPLS – Label Distribution Protocol: Die p2mp-Meldung, initiiert vom Knoten d, welche sämtliche Netzkanten je einmal passiert, möge die einzelnen Netzknoten veranlassen, ein label mapping vorzunehmen, um mittels MPLS labe) switchings Daten von jeglichem Netzknoten nach Knoten transportieren zu können.
    • 2. OAM-Test:: Knoten d möge mittels der p2mp-Meldung, welche alle Netzkanten je einmal passierte, die Einsatzbereitschaft einer jeglichen Netzkante überprüfen.
  • 5.4 Mp2p Kommunikation wobei jede Kante genau einmal passiert wird
  • All jene Knoten x, deren Oberklassen AWAY_FROM_DESTINATION (x; d) leer sind, mögen, etwa periodisch zur gleichen Zeit oder in Reaktion auf eine unmittelbar zuvor erhaltene Meldung von d (z.B. nach Erhalt einer p2mp-Meldung, siehe oben) eine mp2p-Meldung an Knoten d initiieren und sie an alle ihre Nachbarknoten y aus TOWARDS_DESTINATION (x; d) schicken.
  • So ein Nachbarknoten y möge innerhalb eines bestimmten Zeitrahmens weitere Exemplare dieser mp2p-Meldung von allen übrigen Nachbarn aus AWAY_FROM_DESTINATION (y; d) erwarten und nach Erhalt sämtlicher Exemplare genau eine mp2p-Meldung an alle Nachbarknoten aus TOWARDS DESTINATION (y; d) weiterleiten. Nach allen rekursiven Wiederholungen dieses Vorgangs wird schließlich der Knoten d von all seinen Nachbarknoten (= alle Elemente von AWAY_FROM_DESTINATION (d; d)) je ein Exemplar dieser mp2p-Meldung bekommen.
  • Anwendungsbeispiel: Überwachung sämtlicher Netzkanten durch den Knoten d, wobei dessen Arbeitslast erheblich reduziert wird, insofern die Anzahl der Meldungsexemplare begrenzt ist durch die Anzahl der angrenzenden Kanten und nicht etwa von Ordnung O(n) bzw. Ordnung O(m) ist, wobei n die Anzahl der Netzknoten und m die Anzahl der Netzkanten sei.
  • 6 Netzaufteilung
  • Das folgende Verfahren beschreibt wie ein beliebiges Netz in m Teilnetze S0, S1, ..., Sm-1 aufgeteilt wird, wobei von jedem dieser Teilnetze Si, für i = 0, 1, ..., m-1 zunächst jeweils nur ein Knoten di, nachfolgend Pivot-Knoten genannt, bekannt sei. Sinn und Zweck der Aufteilung könnte dabei sein, dass die Verwaltung des gesamten Netzes von diesen m Pivot-Knoten d0, d1, ..., dm-1 bewerkstelligt werden soll, indem sich jeder von ihnen um sein spezielles Teilnetz kümmert.
  • Bei diesem Verfahren genügt es, dass jeder Netzknoten x die Topologie des gesamten Netzes kennt, sowie die m Pivot-Knoten d0, d1, ..., dm-1, sowie welcher von ihnen besonders herausgestellt ist. Es sei dies d0, nachfolgend auch mit d bezeichnet.
  • Die Aufteilung ist derart, dass jeder Netzknoten sowie jede Netzkante zu genau einem dieser Teilnetze gehört. Mit Hilfe des nachfolgenden Verfahrens kann jeder Knoten ganz autark allein anhand der oben genannten Informationen erkennen, zu welchem Teilnetz jeglicher Netznoten und jegliche Netzkante gehört, insbesondere also, zu welchem Teilnetz er selbst gehört zusammen mit allen übrigen Knoten desselben Teilnetzes, ferner – was wichtig ist für Knoten mit anliegenden, zu Nachbar-Teilnetzen gehörenden Kanten – an welche Nachbar-Teilnetze er angrenzt, und damit, in welche nachbarschaftliche Kommunikation er gegebenenfalls Anteil nehmen muss.
  • Erfindungsgemäß ermittelt sich jeder Netzknoten x das identische Multipath-Richtungsfeld MPRF[d] unter Anwendung der Entscheider-Regel (tie-break-rule) mit Ausrichtungsknoten d = d0. Ferner sortiert er die Pivot-Knoten in die Reihenfolge um, in welcher sie in der Reihenfolge SEQ des [Hummel-1]-Algorithmus auftreten. Angenommen die Knoten d0, d1, ..., dm-1 kommen in der Knotenfolge SEQ genau in dieser Reihenfolge vor.
  • Teilnetz Sm-1 besteht aus seinem Pivot-Knoten dm-1 sowie aus allen Kanten und Knoten, welche passiert bzw. erreicht werden, wenn man, ausgehend von x = dm-1, auf alle Knoten aus der Oberklasse AWAY_FROM_DESTINATION (x; d) kommt und diesen Schritt rekursiv immer wieder wiederholt.
  • Teilnetz Sm-2 besteht aus seinem Pivot-Knoten dm-2 sowie aus allen Kanten und Knoten, welche passiert bzw. erreicht werden, wenn man, ausgehend von x = dm-2, auf alle Knoten aus der Oberklasse AWAY_FROM_DESTINATION (x; d) stößt und diesen Schritt rekursiv immer wieder wiederholt, jedoch unter der Einschränkung, dass bei Erreichung eines Knotens, welcher bereits einem Teilnetz mit größerem Teilnetz-Index zugeordnet ist (hier Sm-1) der erreichte Knoten nicht mehr dazugehört, wohl aber die Kante auf dem Weg zu ihm.
  • In Fortsetzung dieses iterativen Prozesses bestimmen wir für k = m-3, m-4, ....2, 1, 0 das jeweilige Teilnetz Sk:
    Dieses besteht aus seinem Pivot-Knoten dk sowie aus allen Kanten und Knoten, welche passiert bzw. erreicht werden, wenn man, ausgehend von x = dk, auf alle Knoten aus der Oberklasse AWAY_FROM_DESTINATION (x; d) stößt und diesen Schritt rekursiv immer wieder wiederholt, jedoch unter der Einschränkung, dass bei Erreichung eines Knotens, welcher bereits einem Teilnetz mit größerem Teilnetz-Index zugeordnet ist (nämlich Sk+1, ..., Sm-1) der erreichte Knoten nicht mehr dazugehört, wohl aber die Kante auf dem Weg zu ihm.
  • Indem ein beliebiger Netzknoten x0 den folgenden, als Pseudo-Programmcode geschriebenen Algorithmus [Hummel-3] durchführt, kann dieser die Topologien aller Teilnetze Sk feststellen, insbesondere die seines eigenen Teilnetzes, sowie die Nachbarschaftsbeziehung für jegliche Kante, welche Knoten aus unterschiedlichen Teilnetzen verbindet.
  • Verfahren [Hummel-3]: Partitionierung
  • Zunächst erhalten alle Knoten i die Teilnetz-Nummer 0, vermöge der Zuweisung S[i] = 0 für alle i = 1, .. n wobei n die Anzahl aller Netzknoten ist.
  • Figure 00200001
  • Nach Ablauf der Iteration ist jeder Knoten x einem Teilnetz Sk für k = 0, 1, ..., m-1 zugeordnet. Sind zwei Knoten x und y benachbart mit x aus Sp und y aus Sq mit p < q, so gehört die Kante zwischen diesen beiden Knoten zum Teilnetz Sp. Gehören zwei benachbarte Knoten zum selben Teilnetz, so gehört auch die diesbezügliche Verbindungskante zu diesem Teilnetz.
  • Alle Knoten etwa des Teilnetzes Sk können somit die Topologie von Sk genauestens erkennen und z.B. eine p2mp & mp2p Kommunikation zwischen dk und allen restlichen Knoten von Sk wie in Absatz 5 beschrieben führen.
  • 7 Errichtung eines virtuellen overlay-Netzes, MPRF[d] basierend
  • Ein virtuelles overlay-Netz ist ein Netz, dessen Knoten eine Teilmenge der Knoten des zugrundeliegenden Netzes bilden und dessen (virtuellen) Kanten aus sogenannten Tunnels bzw. Verbindungen bestehen, von denen jeder, im allgemeinen, aus einer sich nicht verzweigenden Folge von Kanten des zugrundeliegenden Netzes zusammensetzt.
  • Ein beliebig großes und zugleich beliebig vermaschtes virtuelles overlay-Netz (z.B. ein sog. virtual private network = VPN), werde erfindungsgemäß ausgehend von einem overlay-Netzknoten d, wie folgt errichtet:
    Zunächst macht sich Knoten d ein Topologiebild dieses overlay-Netzes. Alsdann konvertiert er dieses in ein Multipath-Richtungsfeld MPRF[d] (alle Tunnels werden zu Pfeile) mit sich selbst als Ausrichtungsknoten.
  • Der Knoten d sende in der p2mp-Meldung seinen eigene Knoten-Identifikation d als die des Initiators dieser Meldung, sowie die gesamte Topologie des virtuellen overlay-Netzes, d.h. eine Liste mit allen Endknoten-Paaren aller virtuellen Kanten. Hierbei sei stets der erste der beiden Endknoten (= Knoten-A genannt) jener der Pfeilspitze, sowie der zweite (Knoten-B genannt) jener des Pfeilanfangs gemäß des Multipath-Richtungsfeldes MPRF[d]. Die p2mp-Meldung enthalte ferner einen Zeiger (bzw. Index), welcher auf das Endknoten-Paar jener virtuellen Kante (Tunnel/Verbindung) deutet, die gerade errichtet werden soll indem die p2mp-(Aufbau-) Meldung vom Knoten A gerade an den Knoten B dieses Paares geschickt wird.
  • Zu Beginn sendet der Knoten d je ein Exemplar der p2mp-Meldung an alle Knoten-B jener Knoten-Paare, deren Knoten-A d selber ist. Falls der jeweilige Knoten-B nicht unmittelbarer Nachbarknoten von Knoten-A (beim ersten Mal also von d) ist, so wird dabei die gesamte p2mp-Meldung eingekapselt (Brief-im-Brief) und innerhalb einer p2p-Meldung mit Ziel gleich dem jeweiligen Knoten-B transportiert. Zwischen Knoten-A und Knoten-B werde alles getan, um eine stabile Verbindung bzw. einen stabilen Tunnel aufzubauen (etwa durch Quittierung mittels einer Acknowledgement-Meldung). Jeder dieser Knoten-B wird gegebenenfalls die eingekapselte p2mp-Meldung wieder „auswickeln". In jedem Fall wird Knoten-B in der erhaltenen p2mp-Meldung all jene Knotenpaare identifizieren, in welchen er selbst als Knoten-A erscheint. In analoger Weise sendet er zu jedem Knoten-B der so identifizierten Knotenpaare die p2mp-Meldung weiter, usw. bis letztlich das gesamte virtuelle overlay-Netz aufgebaut ist.
  • Man beachte: Jeder Knoten des virtuellen overlay-Netzes lernt zugleich dessen gesamte Topologie kennen. Ferner: Jeder overlay-Netzknoten kann beim erstmaligen Empfang der p2mp-Meldung bereits ersehen, wie oft er in der Liste als Knoten B vorkommt, d.h. wie oft er noch mit einer eintreffenden p2mp-Meldung zu rechnen hat. Ferner gibt es verschiedene Optionen, wann ein Knoten die p2mp-Meldung seinerseits weiterleitet: Etwa sobald er sie zum ersten Mal selbst empfangen hat, oder sobald er alle Exemplare empfangen hat.
  • Die Topologie des virtuellen overlay-Netzes könnte durchaus sehr, sehr groß sein. Dies ist aber kein Problem, wenn man die (eingekapselte) p2mp-Meldung wohl „segmentiert" sprich Stück für Stück überträgt.
  • Der Abbau des virtuellen overlay-Netzes könnte von Knoten d mittels einer p2mp-Meldung auf ganz analoge Weise durchgeführt werden.
  • Man beachte: Selbst wenn das virtuelle overlay-Netz aus beliebig vermaschten Knoten und Kanten von enorm großer Anzahl besteht, so können hierbei keine ungewollten Schleifen beim Auf- oder Abbau des virtuellen overlay-Netzes passieren.
  • Anwendungen:
    • 1) VPN (virtual private network)
    • 2) Spezielle Teilnetze im Sinne von „Multi-Topologies" (siehe OSPF-Working Group des IETF): Die Kanten des overlay-Netzes sind keine echten Tunnels, sondern stets physikalische Leitungen zwischen zwei physikalischen unmittelbaren Nachbarknoten und genügen dabei gewissen QoS/SLA-Kriterien. Ihre Menge ist aber eine echte Teilmenge des zugrunde liegenden gesamten physikalischen Netzes. Ein Ausgangsknoten d „rollt" mittels einer p2mp-Meldung eine, eventuell von mehreren, (QoS/SLA-spezifische) Topologie aus. Weil alle beteiligten Knoten x diese Topologie erfahren, sind sie in der Lage, auf dieser bezüglich eines jeglichen sonstigen beteiligten Knotens d, ein respektives Multipath-Richtungsfeld MPRF[d] zu erzeugen, um über dieses Multipath Routing in Vorwärtsrichtung gemäß Absatz 3 zu ermöglichen.
  • 8 Traffic overload warning system
  • Ein Verkehrsüberlast-Warnsystem soll erfindungsgemäß nachfolgende Grundkonzeption realisieren.
  • Ein überlasteter Knoten x0, der es vor allem mit Verkehrsströmen hin zum Zielknoten d zu tun hat, möge erfindungsgemäß eine Warnung an all jene Knoten senden, welche derartige für d bestimmte Verkehrsströme initiieren und/oder so weiterleiten, dass diese im Normalfall den Knoten x0 passieren werden. Es wird angenommen, dass x0 ohnehin schon ein Multipath-Richtungsfeld MPRF[d] errichtet hat, um ankommende Verkehrsströme nach d weiterzuleiten, etwa wie in Absatz 3 ausführlich dargelegt. Nun aber wird dieses in Rückwärtsrichtung ausgenutzt. Konkret, Knoten x0 möge eine „Traffic Notification"- Meldung an all seine Nachbarknoten y aus Klasse DIJKSTRA_BESTHOP_INV (x0; d) senden, welche ihrerseits diese weiterleiten an ihre Nachbarknoten aus DIJKSTRA_BESTHOP_INV (y; d). Dieser Vorgang möge sich rekursiv fortsetzen, bis dass er auf Grund von leeren DIJKSTRA_BESTHOP_INV – Klassen von selbst versandet. Die Menge aller Knoten, die hierbei diese Meldung erhalten, wird nachfolgend mit Dijkstra-best-hop-Einfallsektor DBH-ES (x0; d) bezeichnet.
  • Knoten x0 versende die „Traffic Notification"-Meldung mit folgendem Inhalt:
    • – Initiator Knoten x0
    • – Verkehrszielknoten d,
    • – Verkehrsüberlastindikator TOI (x0; d) mit Wertebereich 0 bis 255 (TOI wie „traffic overload indicator")
    • TOI (x0; d) = 0 bedeutet: keine Überlast (mehr).
    • TOI (x0; d) > 0 gibt den Grad der Überlast an.
  • Jeder Knoten y aus DBH-ES (x0; d) speichere sich diesen Inhalt beziehendlich zur Klasse DJKSTRA_BESTHOP (y; d). Falls ein Knoten y gerade dabei ist, den Weiterleitungsknoten aus DJKSTRA_BESTHOP (y; d) zu selektieren, möge er ggf. den vorliegenden Eintrag berücksichtigen, indem er, falls möglich, einen Weiterleitungsknoten etwa aus EQUIDISTANT_OFF (y; d) oder EQUIDISTANT_TO (y; d) selektiert, in der Hoffnung, ein Passieren von x0 zu vermeiden.
  • Solange Knoten x0 überlastet ist, möge er periodisch als auch bei signifikanten Situationsänderungen solche „Traffic Notification"- Meldungen immer wieder aussenden.
  • Ein Knoten y aus DBH-ES (x0; d) muss daher bei Erhalt einer neuen „Traffic Notification"- Meldungen ggf. einen älteren diesbezüglichen Speichereintrag durch einen neueren ersetzen – bei identischem Initiator-Knoten x0 und identischem Zielknoten d. Falls die neuere Meldung TOI (x0; d) = 0 enthält, so wird kein neuer Speichereintrag gemacht, vielmehr, der ältere gelöscht.
  • Das Verkehrsüberlast-Warnsystem wird etwas komplizierter, wenn mehrere Knoten x0, x1, x2, ... Überlastwarnungen bezüglich Verkehrströme mit gleichem Zielknoten d aussenden, wobei sich ihre Einfallsektoren umschließen:
    DBH-ES (x0; d) ⊃ DBH-ES (x1; d) ⊃ DBH-ES (x2; d) ⊃ ... Das heißt: Falls Knoten y ∈ DBH-ES (xk; d) und xk ∈ DBH-ES (xi; d) so ist auch y ∈ DBH-ES (xi; d).
  • Es gilt das Prinzip, dass die schwerer wiegende Warnung (größerer TOI-Wert) die leichter wiegende Warnung (kleinerer TOI-Wert) überschreibt, nicht aber umgekehrt, sofern die Initiatoren nicht identisch sind. Wenn also eine von Knoten xi initiierte Traffic Notification-Meldung zu einem Knoten y gelangt, welcher einen Speichereintrag vorliegen hat, welcher von einer früheren, von Knoten xk initiierten Traffic Notification-Meldung herrührt und es ist TOI (xi; d) > TOI (xk; d) so wird dieser vorgefunden Speichereintrag durch die neuen Daten aus der aktuellen Meldung überschrieben und außerdem mit der Weiterleitung der aktuelle Traffic Notification-Meldung fortgefahren. Andernfalls erfolgt keine Überschreibung (bzw. keine Löschung bei (xi; d) = 0) und auch keine Weiterleitung der aktuellen Traffic Notification-Meldung.
  • Anmerkungen: Das Konzept ist bemüht, sparsam mit Speichereinträgen zu sein. Deshalb ist es angezeigt, dass überlastete Knoten in periodischen Abständen ihre Warnungen wiederholt auszusenden.
  • Anwendungen:
    • 1) „Traffic Engineering" für die klassische (=Nicht-MPLS-)Internet-Paket-Weiterleitung.
    • 2) Stauvermeidung im Straßenverkehr: Angenommen, die Knoten sind High-Tech-Einrichtungen an Straßenkreuzungen und – gabelungen, welche drahtlos mit benachbarten Knoten kommunizieren können. Nimmt man ferner an, dass Kraftfahrzeuge bereits beim Losfahren ihr Ziel über die DIJKSTRA_BESTHOP-Klasse von Knoten zu Knoten weiter signalisieren könnten, so sollte es möglich sein, dass die einzelnen Knoten, unter Berücksichtigung von Durchschnittsgeschwindigkeit und Entfernung den Eintreffzeitpunkt des jeweiligen Kraftfahrzeugs vorausberechnen und damit in Summe eine in der Zukunft stattfindende Überlast prognostizieren können. In diesem Fall sollten die Traffic-Notification-Meldungen auch noch den prognostizierten Zeitpunkt bzw. Zeitraum der Verkehrsüberlast enthalten. Auf Grund der erhaltenen und ausgewerteten Warnung sollten sich im Idealfall die „richtigen" Kraftfahrzeuge im richtigen Umfang zu einer Routeänderung entschließen, derart, dass der prognostizierte Stau erst gar nicht auftritt. Im Gegensatz zu anderen Konzepten, wie sie etwa von deutschen Forschungsgesellschaften verfolgt werden, ist dieses MPRF[d]-basierte Konzept völlig dezentral, d.h. ohne jeglichen „Flaschenhals". Dafür aber benötigt es, wie erwähnt, entsprechende High-Tech-Einrichtungen in großer Anzahl.
  • 9 Fluchtweg-Lenkung (escape routing)
  • 9.1 Einzelner Fluchtweg
  • Während das Verfahren in Absatz 3 sämtliche Routen hin zu einem bestimmten Zielknoten ermöglicht, z.B. zur Ausgangstür eines brennenden Gebäudes, geht es hierbei um die Bestimmung eines Fluchtwegs, welcher zu einem völlig unbekannten Zielknoten z hin führt, welcher aber von s wohlbekannten sprich vorgegebenen disaster-Knoten d1, ..., ds weg führt. Der unbekannte Zielknoten z soll einen Mindestabstand Dmin zu sämtlichen disaster-Knoten d1, ..., ds haben. Der Fluchtweg selbst wird so gestaltet, dass er vorzugsweise gleichzeitig von allen disaster-Knoten wegführt. Wann immer dies nicht möglich ist wird darauf geachtet, dass er unter keinen Umständen einen der s disaster-Knoten passiert, aber auch, dass er nach Möglichkeit keinen unmittelbaren Nachbarknoten von einem dieser s disaster-Knoten passiert.
  • [Hummel-4] Einzelflucht-Verfahren
  • In einem Netz mit n Knoten werde der gewünschte Fluchtweg, ausgehend von einem wohlbestimmten Netzknoten x, an dem sich das flüchtende Objekt/Subjekt gerade befindet, erfindungsgemäß wie folgt bestimmt:
    Zunächst werden die s Multipath-Richtungsfelder MPRF[di] mit i = 1, ..., s ermittelt. Dabei werden auch, geschuldet dem Dijkstra-Algorithmus, die Distanzen D (x; di) für i = 1, ..., s ermittelt.
  • Für alle n Netzknoten i initialisieren wir 3 Kennzeichnungs-Bits wie folgt:
    KZ_Disaster[i] = 1 falls i einer der s disaster-Knoten ist, sonst = 0;
    KZ_Neighbor[i] = 1 falls i Nachbar zu irgendeinem der s-disaster-Knoten ist, sonst = 0;
    KZ-Visited[i] = 0;
    Next_Node[i] = 0 für alle n Netzknoten.
    Success = 0;
    recursive_escape (x);
    Falls Success = 1 UND Next_Node[x] = 0, so ist x = z.
    Falls Success = 1 UND Next_Node[x] ungleich 0 so ist der gewünschte Fluchtweg ermittelt worden und führt entlang der Knoten x, y1, y2, ...... yr-1, yr = z mit y1 = Next_Node[x], y2 = Next_Node[y1], ...., yr = Next_Node[yr-1] = z.
  • Ansonsten gibt es keinen Fluchtweg wie gewünscht.
  • Die hierbei benützte rekursive Prozedur recursive escape sei wie folgt definiert:
    Figure 00260001
    Figure 00270001
  • Das Verfahren eignet sich besonders für GPS-basierte Navigation von Kraftfahrzeugen sowie für Navigationsgeräte, die man in der Hand halten kann (z.B. Handy).
  • 9.2 Massenfluchtsteuerung – Evakuierung
  • Zum Zwecke der Evakuierung eines Gebäudekomplexes oder aber einer Stadt oder eines Gebietes soll eine Massenflucht optimal gesteuert werden. In jeglichem Fall werde das reale Wegenetz auf ein Netzmodell mit Knoten und Kanten abgebildet. Bei einem Gebäudekomplex würden die Modellnetzkanten Flure und Flurabschnitte zwischen den Eingangstüren der einzelnen Zimmer oder Vortragssäle, Treppen, Lifte und dergleichen repräsentieren während die Modellnetzknoten besagte Eingangstüren, sowie Verzweigungspunkte der Flure, Treppen, Lifte, usw. sowie die anzupeilenden Ausgänge des Gebäudekomplexes repräsentierten. Im Falle einer Stadt bilden die Straßenabschnitte zwischen den Kreuzungen die Kanten, und die Kreuzungen die Knoten. In jedem Fall aber seien die Fluchtzielknoten besonders markiert (Gebäudeausgänge, Punkte an denen gewisse Straßen die Stadt hinter sich lassen). Als Gefahrenzentrum werde irgendein Knoten d identifiziert. Dieser repräsentiere z.B. einen (vollbesetzten) Vortragssaal innerhalb eines Gebäudekomplexes oder ein (volles) Stadion und dergleichen innerhalb der Stadt oder aber einen strategisch gewählten Mittelpunkt des Netzes. Zum Zwecke der Lenkung der Massenflucht werden an den Netzknoten mittels entsprechender Anzeigen die Fliehenden hin zu allen Fluchtzielknoten gelenkt.
  • Erfindungsgemäß geschieht dies derart, dass für jede Netzkante genau eine Fluchtrichtung ermittelt wird, so dass also niemals Fliehende auf einer einzelnen Netzkante in entgegengesetzten Richtungen aufeinanderzu gelenkt werden, was z.B. ermöglicht, dass man deshalb jegliche Strasse in eine Einbahnstraße umfunktionieren kann, was in der Regel ihre Kapazität verdoppeln würde. Erfindungsgemäß wird auch dafür gesorgt, dass Fliehende niemals in eine Sackgasse oder in ein sackgassenartiges Teilnetz gelenkt werden, sondern dass vielmehr Fliehende aus solchen Sackgassen oder sackgassenartigen Teilnetzen herausgeleitet werden, auch wenn dies bedeutet, dass sie sich dem Knoten d erst einmal nähern müssen.
  • Ferner wird ermöglicht, dass an jedem Netzknoten bezüglich einer jeglichen für die Weiterflucht infragekommenden angrenzenden Kanten die jeweilige Distanz zum nahest gelegenen Fluchtzielknoten angegeben werden kann, den man über eben diese Kante erreichen kann, als auch – optional- eine informative Bezeichnung für eben diesen Fluchtzielknoten. Einschränkung: Einem Knoten x innerhalb einer Sackgasse/eines Sackgassenteilnetzes werden keine derartigen Distanzwerte bereit gestellt. Auch kann als Fluchtzielname für alle dessen Weiterfluchtnachbarknoten lediglich ein konstanter Name wie etwa „Raus aus der Sackgasse" bereitgestellt werden.
  • Erfindungsgemäß werden alle Fluchtzielknoten als solche markiert und es werde ihnen auch – optional – eine jeweils individuelle informative Bezeichnung zugeordnet. Daneben wird, wie oben beschrieben, ein Knoten d festgelegt.
  • Erfindungsgemäß wird zunächst das Multipath-Richtungsfeld MPRF[d] erzeugt. Die Flüchtenden sollen sich grundsätzlich entgegen der Pfeile des MPRF[d] bewegen. Um aber das Eindringen in Sackgassenbereiche zu verhindern, bzw. um Flüchtende, die dort ihre Flucht beginnen, von dort herauszuleiten, müssen zuvor alle Pfeile eines solchen Sackgassenbereich identifiziert und umgedreht werden.
  • Beispiel: Ein grüner Pfeil von y nach x müsse umgedreht werden. D.h. laut Ausgangssituation ist x Element der Klasse CLOSER (y; d) und y Element aus CLOSER_INV (x; d). Der grüne Pfeil wird umgedreht indem beim Knoten y das Element x von der Klasse CLOSER (y; d) nach CLOSER_INV (y; d) verschoben wird, während beim Knoten x das Element y von der Klasse CLOSER_INV (x; d) nach CLOSER (x; d) verschoben wird.
  • Sind all diese Pfeile umgedreht, so kann man ganz generell sagen, dass an einem beliebigen Knoten x nur Kanten zu Nachbarknoten aus DIJKSTRA_BESTHOP_INV (x; d), CLOSEST_INV (x; d), CLOSER_INV (x; d) sowie EQUIDISTANT_TO (x; d) für die Weiterflucht infrage kommen.
  • Mit folgendem als Pseudo-Code geschriebenen Verfahren [Hummel-5] werden alle Sackgassen und sackgassenartige Teilnetze bildenden Pfeile des MPRF[d] identifiziert und umgedreht, sowie allen Knoten x, welche nicht zu einem Sackgassenbereich gehören, für jedes Element y aus DIJKSTRA_BESTHOP_INV (x; d), CLOSEST_INV (x; d), CLOSER_INV (x; d) sowie EQUIDISTANT_TO (x; d) die beiden Informationen bereit gestellt, nämlich (Info-1) wie weit ist es von x über eben diesen Nachbarknoten y zum nahest gelegenen Fluchtzielknoten und (Info-2) wie heißt dieser Fluchtzielknoten.
  • [Hummel-5]:
  • Zunächst müssen alle Fluchtzielknoten k besonders markiert werden, etwa mit DestinationFlag [k] = 1 wohingegen alle übrigen Knoten j DestinationFlag[j] = 0 gesetzt haben. Optional, möge jedem Fluchtzielknoten ein individueller Name zugeordnet sein.
  • Außerdem werden sämtliche Netzknoten i mit KZ_Visited[i] = 0 initiiert.
  • Man tätige folgenden Programmaufruf:
    recursive_proc_invert_direction (d, d, shortest_distance, destination_name);
  • Die Speichervariablen shortest_distance und destination_name müssen vor diesem Aufruf definiert worden sein. Ihre Inhalte nach diesem (alleräußersten) Aufruf sind ohne Bedeutung. Nach diesem Prozeduraufruf sind alle Sackgassenbereiche bildenden Pfeile umgedreht, das heißt für jeden Knoten x sind die für die Weiterflucht infrage kommenden Nachbarknoten y festgelegt, und falls x nicht zum Sackgassenbereich gehört, sind je infrage kommende Kante die Distanz zum nahest gelegenen und dabei über y erreichbaren Fluchtzielknoten angezeigt, als auch dessen Bezeichnung.
  • Pseudo-Code der Prozedur recursive_proc_invert_direction:
    Figure 00290001
    Figure 00300001
    Figure 00310001
  • Nachdem alle Pfeile ihre endgültige Pfeilrichtung erhalten haben, kann man diesen jeweils einen Widerstandswert Ri für alle Kanten i zuordnen, welcher die Beschaffenheit der Kante in der vorliegenden Fluchtrichtung berücksichtigt (Enge, Holprigkeit, treppauf/treppab, usw.). Ein Knoten x mit m angrenzenden Pfeilen mit den Widerständen Ri für i = 1; ..., m, welche laut modifiziertem MPRF[d] auf x zeigen, sprich deren (hierzu umgekehrte) Fluchtrichtung von x wegzeigt, möge die ankommenden Flüchtenden bei momentan hohem Andrang anweisen, über diese Kanten im Verhältnis 1/R1:1/R2:...:1/Rm verteilt, die Flucht fortzusetzen, oder aber, bei momentan niederem Andrang, entsprechend der kürzesten Distanz zum jeweiligen Fluchtzielknoten.
  • 10 ANYCAST-Adressziele über Multipath-Routen
  • Für das Internet wurden erstmalig im IETF-Protocol RFC2526 IPv6-ANYCAST-Adressbereiche vorgesehen. Eine ANYCAST-Adresse ist im Prinzip das gleiche wie eine Notrufnummer etwa für Polizei oder Feuerwehr. Es geht darum, Datenpakete zu irgendeinem von vielen gleichwertigen Zielknoten zu senden, die alle mit derselben ANYCAST-Adresse ausgezeichnet sind, zum Beispiel zum nächstgelegenen.
  • Stand der Technik ist es, von den vielen potentiellen Zielknoten, den nahest gelegenen Zielknoten zu bestimmen und diesen entlang der EINEN kürzesten Route anzupeilen.
  • Stattdessen soll jedoch Multipath-Routing in dem Sinne ermöglicht werden, dass man solang wie möglich mehrere mit gleicher ANYCAST-Zieladresse ausgezeichnete Zielknoten und jeden davon über mehrere Routen anpeilen kann. Dies erhöht die Wahrscheinlichkeit bezüglich der erfolgreichen Erreichbarkeit.
  • Die Lösung ist exakt das gleiche Verfahren wie das für die Massenfluchtsteuerung in Absatz 9.2. Die Bedeutung der Zielknotenmarkierung ist lediglich statt „Fluchtziel" nunmehr „ANYCAST-Ziel für eine spezielle ANYCAST-Adresse". Jeder Netzknoten muß außerdem denselben Knoten d kennen, welcher irgendein Netzknoten sein kann. Dies lässt sich u.a. durch dieselben üblichen „Advertisement"-Methoden bewerkstelligen, mit denen jeder Netzknoten die gesamte Topologie des vorliegenden Netzes erfährt.
  • 11 Allgemeingültigkeit
  • Sowohl der Begriff „Netz" (bestehend aus Knoten und Kanten) als auch der Begriff „Weiterleitungsobjekt" sind bewusst ganz allgemein gehalten, weil in der Tat die hier dargelegten Verfahren und Algorithmen in Gänze oder zu Teilen auf die verschiedenartigsten Netze und auf die verschiedenartigsten Weiterleitungsobjekte anwendbar sind.
  • Als eine kleine und völlig unvollständige Auswahl von Netzen seien ausdrücklich erwähnt: Telekommunikationsnetze (Beispiel: Internet), Logistische Netze, Stromnetze, Verkehrswegenetze (Straße, Schiene, Luft, Wasser), Gehwegenetze innerhalb/außerhalb von Gebäuden, Modellnetze für die Simulation von Strömungen, Signalnetze (wie z.B. für Verkehrsampeln oder elektronische Fluchfwegrichtungsanzeiger), logische Netze, Hybride von logischen und realen Netzen, Grids, Netzmodelle für biologische Prozesse, usw.
  • Als eine kleine und völlig unvollständige Auswahl von Weiterleitungsobjekten seien ausdrücklich erwähnt: Datenpakete, Transportgüter, Verkehrsmittel, Personen, elektrischer Strom, Energie in verschiedensten Formen, feste/flüssige/gasförmige Körper, usw.

Claims (11)

  1. Verfahren zur Bestimmung potentiell vieler Routen in einem Netzwerk mittels eines Multipath-Richtungsfeldes MPRF[d], bei welchem alle (gewichteten) Kanten eines Netzes in Pfeile verwandelt werden, welche auf genau einen Netzknoten d ausgerichtet sind, oder anders gesagt, so, dass, jegliche gleichgerichtete Pfeilfolge, egal bei welchem Knoten sie beginnt, zum Ausrichtungsknoten d schleifenfrei hinführt und erst dort nicht mehr fortgesetzt werden kann, und bei dem die Pfeile mit bis zu vier unterschiedlichen Kennzeichnungen („Farben") versehen sind, je nach dem, ob beim einzelnen Pfeil mit Pfeilausgangsknoten k und benachbarten Pfeilspitzenknoten j zutrifft, dass a) j der EINE „Dijkstra-best-hop" Vorgängerknoten DBHk;a bezüglich k bei Bestimmung eines Dijkstra-kürzest-Wegebaumes mit d als Baumwurzelknoten ist – blaue Farbe –, oder b) j von d gleichweit entfernt ist wie eben genannter Nachbarknoten DBHk;d – rote Farbe –, oder c) j näher bei d liegt als k, jedoch nicht ganz so nah wie DBHk;a – grüne Farbe –, oder d) j von d gleichweit entfernt ist wie k – gelbe Farbe –, was gleichwertig ist mit einer Unterteilung der Menge aller Nachbarknoten y eines jeglichen Netzknotens x in die acht Klassen (1) DIJKSTRA_BESTHOP (x; d), wo Klassenelement y Pfeilspitzenknoten eines blauen von x wegführenden Pfeils ist, (2) CLOSEST (x; d), wo Klassenelement y Pfeilspitzenknoten eines roten von x wegführenden Pfeils ist, (3) CLOSER (x; d) wo Klassenelement y Pfeilspitzenknoten eines grünen von x wegführenden Pfeils ist, (4) EQUIDISTANT_OFF (x; d) wo Klassenelement y Pfeilspitzenknoten eines gelben von x wegführenden Pfeils ist, (5) EQUIDISTANT_TO (x; d) wo Klassenelement y Pfeilanfangsknoten eines gelben nach x zeigenden Pfeils ist, (6) CLOSER_INV (x; d) wo Klassenelement y Pfeilanfangsknoten eines grünen nach x zeigenden Pfeils ist, (7) CLOSEST_INV (x; d) wo Klassenelement y Pfeilanfangsknoten eines roten nach x zeigenden Pfeils ist, (8) DIJKSTRA_BESTHOP_INV (x; d) wo Klassenelement y Pfeilanfangsknoten eines blauen nach x zeigenden Pfeils ist, von denen die ersten vier die Oberklasse TOWARDS DESTINATION (x; d), die letzten vier die Oberklasse AWAY_FROM_DESTINATION (x; d) bilden, wobei das Multipath-Richtungsfeld MPRF[d] dadurch erzeugt wird, dass man zunächst mit Hilfe des Dijkstra-Routing-Algorithmus einen Dijkstra-kürzest-Wegebaum mit Baumwurzelknoten d bestimmt, sprich zu jedem Netzknoten k den diesbezüglichen Vorgängerknoten j bestimmt, wobei man durch Anwendung einer sog.Entscheider-Regel (tie-break-rule) sofern nötig dafür sorgt, dass dies in einer eindeutig bestimmten Reihenfolge, hier SEQ genannt, geschieht, und man sich die Knotenfolge SEQ als genuiner Bestandteil des MPRF[d] auch für später merkt, und damit während der Dijkstra-Iteration die Kante zwischen k und j in einen blauen Pfeil von k nach j verwandelt, dass man anschließend in der Reihenfolge SEQ, also beginnend bei d, von Netzknoten zu Netzknoten geht, etwa zu Knoten j und dabei sämtliche an j angrenzenden Kanten, die bis dahin noch nicht zu Pfeilen verwandelt worden sind, zu Pfeilen mit Pfeilspitze beim aktuellen Knoten j verwandelt und ihnen hierbei die jeweils zutreffende Kennzeichnung (Farbe) zuordnet, nämlich die Farbe Rot, falls der Pfeil von irgendeinem Knoten k ausgehend auf Knoten j zeigt und Knoten j von d gleichweit entfernt ist wie jener Knoten an der Pfeilspitze des von Knoten k ausgehenden blauen Pfeiles, sprich wie DBHk;d, oder die Farbe Grün, falls der Pfeil von irgendeinem Knoten k ausgehend auf Knoten j zeigt und Knoten j näher bei d gelegen ist als Knoten k, aber andererseits nicht ganz so nah wie Knoten DBHk;d, oder die Farbe Gelb, falls der Pfeil von irgendeinem Knoten k ausgehend auf Knoten j zeigt und Knoten j von d gleichweit entfernt ist wie Knoten k.
  2. Verfahren, basierend auf Hauptanspruch 1, für eine Multipath-Weiterleitung eines Objekts mit Zielknoten d durch einen beliebigen Knoten x in einem aus beliebig vielen Knoten und gewichteten Kanten bestehenden Netz von beliebiger Topologie, dadurch gekennzeichnet, dass sich Knoten x für den jeweiligen Zielknoten d ein Multipath-Richtungsfeld MPRF[d] erzeugt und das Weiterleitungsobjekt an einen Knoten an der Pfeilspitze eines blauen, oder roten, oder grünen von x wegführenden, hierbei erzeugten Pfeils weiterleitet, oder an den anderen Endknoten eines gelben, den Knoten x tangierenden Pfeils, wobei eventuell Knoten x vorab überprüft, ob er selbst einem Cluster von L gelben Pfeilen und N diesbezüglichen Begrenzungsknoten angehört, welches eine Maschen enthaltende Struktur hat sprich bei dem L >= N ist, und gegebenenfalls zwecks Verhinderung einer Endlosschleife den nachfolgend zu passierenden Knoten signalisiert, dass diese insgesamt maximal N-mal in Folge das Objekt an einen Nachbarknoten von gleicher Distanz zu d wie von x zu d weiterleiten dürfen, oder an einen Knoten y am Anfang eines auf x deutenden roten Pfeils, bei gleichzeitiger Sicherstellung, dass dieser das Objekt ausschließlich zu einem Nachbarknoten z weiterleitet, welcher an der Pfeilspitze eines von y weggehenden roten oder blauen Pfeils sich befindet, und dabei z auch noch signalisiert, dass z das Objekt ausschließlich an einen Nachbarknoten weiterleitet, welcher an der Pfeilspitze eines blauen, roten oder grünen von z weggehenden Pfeils sich befindet, oder an einen Knoten y am Anfang eines auf x deutenden blauen Pfeils, und zwar mit gleichem Procedere wie beim Weiterleiten an einen Knoten am Anfang eines auf x deutenden roten Pfeils, vorausgesetzt aber, dass von Knoten y mindestens ein roter Pfeil wegführt, oder aber falls diese Voraussetzung nicht gegeben ist, nur dann, wenn es möglich ist, von y nach d mittels des Dijkstra-Routing-Algorithmus und basierend auf der um Knoten x und dessen angrenzenden Kanten reduzierten Netztopologie mit Erfolg eine Route zu ermitteln, und wenn zutreffend, dass deren erster Teil, ausgehend von y bis hin zu einem ersten Knoten w, dessen Distanz zu d kleiner-gleich der Distanz zwischen x und d ist, in aneinander anschließende Knotenfolgen S11, S12, ...., Sr1, Sr2 mit respektiven letzten Knoten z11, z12, ...., zr1, zr2 (=w) bei erträglich kleiner Nummer r unterteilbar ist, derart dass, basierend auf der nicht-reduzierten Netztopologie die Distanzwerte der Knoten von Si1 zum Zielknoten d für i von 1 bis r monoton nicht abnehmende Zahlenfolgen bilden, sowie die Distanzwerte der Knoten von Si2 zum Zielknoten d für i von 1 bis r streng monoton abnehmende Zahlenfolgen bilden, wobei Knoten x mittels einer mehrfachen „Brief im Briefumschlag"-Einwickelungstechnik unter Beigabe einer Aktionsanweisung je „Briefumschlag" dafür sorgt, dass die Knoten z11, z12, ...., zr1, zr2 in dieser Reihenfolge als explizite Interim-Zielknoten angesteuert werden, und zwar derart dass die Knoten zi1 für i von 1 bis r ausschließlich in Pfeilrichtung entlang blauer, roter oder grüner Pfeile der Multipath-Richtungsfelder MPRF[zi1] für i = 1 bis r erreicht werden, bzw. die Knoten zi2 für i von 1 bis r ausschließlich in Pfeilrichtung entlanger blauer oder roter Pfeile der Multipath-Richtungsfelder MPRF[zi2] für i von 1 bis r erreicht werden, und dass der Knoten zr2 = w angewiesen wird, ausschließlich einen Nachbarknoten an der Pfeilspitze eines blauen, roten oder grünen von w abgehenden Pfeils gemäß MPRF[d] als Weiterleitungsknoten zu selektieren, ohne dabei die diesbezügliche Aktionsanweisung weiterzuleiten.
  3. Alternatives Verfahren zum Verfahren nach Anspruch 2, basierend auf Hauptanspruch 1, welches zwar weit weniger perfekt ist, dafür aber in Summe mit weit weniger Multipath-Richtungsfelder auskommt, dadurch gekennzeichnet, dass Knoten x für die Objektweiterleitung hin zu Zielknoten d neben dem Standder-Technik gemäßen Dijkstra-best-hop Nachbarknoten DBHx;d noch weitere infrage kommende Nachbarknoten y ermittelt, welche hierin zur Klasse SUITABLE_NEXT_HOP (x; d) zusammengefasst sein mögen, indem alle Netzknoten übereinstimmend irgendeinen bestimmten Netzknoten d1 = NP (wie Nordpol) auserkoren und ein identisches Multipath-Richtungsfeld MPRF1 [d1 = NP] ermitteln, ausgenommen der Netzknoten NP selbst, welcher statt dessen das Multipath-Richtungsfeld MPRF1 [d1 = SP] mit irgendeinem anderen Ausrichtungsknoten SP (wie Südpol) ermittelt, indem Knoten x alsdann für jeden Nachbarknoten y ungleich DBHx;d die Zugehörigkeit zu SUITABLE_NEXT_HOP (x; d), basierend auf einem Satz von mehreren, etwa aus den Distanzen D (d; d1), D (DBHx;d; d1), D (x; d1), D (d; x), D (y; d1) gebildeten Vergleichsbedingungen feststellt, sofern eine dieser Vergleichsbedingungen zutrifft, und jeglichen Knoten y aus SUITABLE_NEXT_HOP (x; d) neben DBHx;d bedingungslos für die Weiterleitung zuläßt, oder aber hierfür weitere Multipath-Richtungsfelder MPRF2[d2], MPRF3[d3], .. mit netzweit einheitlich bekannten Ausrichtungsknoten d2, d3, ... erstellt, aus den ermittelten Distanzen zu d2, zu d3, ... von d, von DBHx;d, von x sowie von y weitere Vergleichsbedingungen formuliert und anhand eines entsprechend erweiterten und geeigneten Satzes von Vergleichsbedingungen die Zugehörigkeit von y zur Klasse SUITABLE_NEXT_HOP (x; d) feststellt, oder, weil man die Vergleichsbedingungen etwas weniger restriktiv formuliert, als Ausgleich bei der Objektweiterleitung dafür sorgt, dass, wann immer ein Knoten x einen Nachfolgeknoten y aus SUITABLE_NEXT_HOP (x; d) selektiert, er diesem signalisiert, dass dieser seinerseits unbedingt seinen Dijkstra-best-hop Nachbarknoten DBHy;d selektieren muss, ohne aber diese Anweisung selbst weiterzuleiten.
  4. Verfahren, basierend auf Hauptanspruch 1, zur Unterstützung einer p2mp- sowie mp2p-Kommunikation zwischen einem bestimmten Knoten d und allen übrigen Netzknoten, derart, dass dabei jede Netzkante genau einmal passiert wird, dadurch gekennzeichnet, dass jeder Netzknoten sich das identische Multipath-Richtungsfeld MPRF [d] gemäß Anspruch 1 erzeugt und dass der Knoten d eine p2mp-Meldung an alle seine Nachbarknoten aussendet und dass jeder Knoten x, der diese eventuell über mehrere Kanten empfängt, genau einmal an all jene Nachbarknoten weiterleitet, welche seinen Klassen DIJKSTRA_BESTHOP_INV (x; d), CLOSEST_INV (x; d), CLOSER_INV (x; d) sowie EQUIDISTANT_TO (x; d) angehören, bzw. dass alle Netzknoten x, deren Klassen DIJKSTRA_BESTHOP_INV (x; d), CLOSEST_INV (x; d), CLOSER_INV (x; d) sowie EQUIDISTANT_TO (x; d) allesamt leer sind, relativ gleichzeitig eine mp2p-Meldung mit Zielknoten d an alle ihre Nachbarknoten aus ihren Klassen DIJKSTRA_BESTHOP (x; d), CLOSEST (x; d), CLOSER (x; d) sowie EQUIDISTANT_OFF (x; d) aussenden, dass ferner jeder Netzknoten x, der diese mp2p-Meldung empfangen hat, sich vergewissert, dass er sie auch von allen Nachbarknoten aus seinen Klassen DIJKSTRA_BESTHOP_INV (x; d), CLOSEST_INV (x; d), CLOSER_INV (x; d) sowie EQUIDISTANT_TO (x; d) erhält oder erhalten hat, um sie genau einmal an all seine Nachbarknoten aus seinen Klassen DIJKSTRA_BESTHOP (x; d), CLOSEST (x; d), CLOSER (x; d) sowie EQUIDISTANT_OFF (x; d) weiterzuleiten.
  5. Verfahren, basierend auf Hauptanspruch 1, welches die Aufteilung eines großen Netzes in m Teilnetze vornimmt, wobei vorausgesetzt wird, dass jeder Netzknoten neben der Topologie des Gesamtnetzes lediglich pro Teilnetz einen diesbezüglichen Pivotknoten und unter diesen wiederum einen besonders hervorgehobenen Pivotknoten d kennen muss, insofern damit jeder Netzknoten völlig autark und in Konsistenz mit allen anderen Netzknoten jegliches der m Teilnetze bestimmt, insbesondere zu welchem Teilnetz eine Kante gehört, deren Begrenzungsknoten zu verschiedenen Teilnetzen gehören, dadurch gekennzeichnet, dass jeder Netzknoten das identische Multipath-Richtungsfeld MPRF[d] erzeugt, dann die Pivotknoten entsprechend ihres Auftretens in der Knotenfolge SEQ gemäß Anspruch 2 zu d = d0, d1, ..., dm-1 sortiert und die respektiven Teilnetze S0, S1, ..., Sm-1 beginnend mit Sm-1 und endend mit So bestimmt, indem man zunächst all jene Knoten und Kanten zum Bestandteil von Teilnetz Sm-1 deklariert, welche man passiert, indem man, startend bei dm-1 zu all dessen Nachbarknoten y aus der Oberklasse AWAY_FROM_DESTINATION (dm-1; d) übergeht, und von diesen rekursiv weiter zu deren Nachbarn aus deren Oberklasse AWAY_FROM_DESTINATION (dm-1; d) usw. usw., und indem man selbiges startend bei Pivotknoten dk für k = m-2, m-3, ..., 1, 0 wiederholt, wobei man aber die Rekursion jeweils dort abbricht, wo man zu einem Knoten käme, der bereits einem Teilnetz Sq mit q > k zugeteilt worden war, sprich die Kante dorthin zwar noch Sk zuteilt, nicht aber mehr den bereits an Sq vergebenen Knoten.
  6. Verfahren, basierend auf Hauptanspruch 1, zur Errichtung eines virtuellen overlay-Netzes, bestehend aus N overlay-Netzknoten (=Teilmenge aller Netzknoten) und M overlay-Netzkanten (=Tunnels/Verbindungen zwischen je zwei nicht notwendig benachbarten Netzknoten), über einem zugrunde liegendem Netz von n Knoten und m Kanten ausgehend von einem overlay-Netzknotend, dadurch gekennzeichnet dass Knoten d die Topologie des overlay-Netzes kennt und hierfür ein Multipath-Richtungsfeld MPRF[d] erzeugt, sprich alle overlay-Netzkanten in die diesbezüglichen Pfeile verwandelt und alsdann eine „overlay-Netz"-Aufbaumeldung an alle overlay-Netzknoten y der Oberklasse AWAY_FROM_DESTINATION (d; d), wohl enkapsuliert in einer p2p-Meldung an den jeweils speziellen overlay-Nachbarknoten y, schickt, welche die gesamte overlay-Netz-Topologie enthält, sprich eine Liste aller overlay-Netzkanten in Form der Paare der diesbezüglichen Begrenzungsoverlay-Netzknoten, wobei etwa stets jener als erster aufgeführt sei und nachfolgend mit Knoten-A bezeichnet werde, welcher die Spitze des diesbezüglichen Pfeils gemäß des MPRF[d]'s markiert, sowie jener als zweiter aufgeführt sei und nachfolgend mit Knoten-B bezeichnet werde, welcher den Anfang des diesbezüglichen Pfeils gemäß des MPRF[d]'s markiert, sowie einen Zeiger oder Index auf jenes Paar, dessen Knoten-A so eben im Begriff ist, an Knoten-B diese „overlay-Netz"-Aufbaumeldung zu schicken, und dass die jeweiligen Empfänger y dieser „overlay-Netz"-Aufbaumeldung diese an all jene overlay-Netzknoten, in gleicher Weise enkapsuliert, weitersenden, welche in der Liste der overlay-Netzkanten als Knoten-B neben dem jeweiligen y als Knoten-A stehen, und dabei den Zeiger oder Index auf das jeweils herangezogene Knotenpaar in der „overlay-Netzkanten- Liste setzen, wobei der jeweilige Empfänger dieses Weitersenden nur einmal macht, wiewohl er gegebenenfalls mehrfach Empfänger sein könnte, nämlich so oft wie er in der Liste der overlay-Netzkanten als Knoten-B auftritt, und dass dieses rekursiv wiederholt wird bis das ganze overlay-Netz aufgebaut ist.
  7. Verfahren zur Installierung eines speziellen Teilnetzes im Internet im Sinne einer speziellen topology nach dem Verständnis der IETF/OSPF-Standardisierung bezüglich „multiple topologies (mt)" dadurch gekennzeichnet, dass man das Verfahren zur Errichtung eines overlay-Netzes aus Anspruch 6 verwendet, wobei man, weil alle overlay-Netzkanten stets aus nur einer einzigen Kante des zugrunde liegenden Netzes bestehen, beim Transport von overlay-Netzknoten zu overlay-Netzknoten auf die Einkapselung der „overlay-Netz"-Aufbaumeldung verzichten kann.
  8. Verfahren, basierend auf Hauptanspruch 1, für ein Verkehrsüberlastwarnsystem bei dem unterstellt wird, dass die Netzknoten untereinander kommunizieren können und ankommende Objekte (wie Datenpakete im Internet, oder Fahrzeuge im Straßennetz) weiterleiten bzw. auf deren Weiterfahrt Einfluß nehmen können, dadurch gekennzeichnet, dass ein Knoten x0, welcher insbesonders auf Grund von Verkehrsströmen mit Zielknoten d vorübergehend überlastet ist, das Multipath-Richtungsfeld MPRF[d] erzeugt und eine Traffic-Notification-Meldung zwecks Warnung bzw. Entwarnung an genau alle Knoten des diesbezüglichen „Einfallsektors" sendet, indem x0 diese an alle Nachbarknoten y aus DIJKSTRA_BESTHOP_INV (x0; d) schickt, die diese – in rekursiver Wiederholung – weiterleiten an ihre Nachbarknoten aus DIJKSTRA_BESTHOP_INV (y; d), usw. usw., welche als Information zumindest den Zielknoten d, den Meldungsinitiator x0, sowie eine Maßzahl („Traffic Overload Indicator" TOI) bezüglich der aktuellen Verkehrsüberlast enthält, die wiederum jeder diese Meldung empfangende Knoten x (der gleichfalls MPRF [d] erzeugt haben möge) seiner Klasse DIJKSTRA_BESTHOP (x; d) zugeordnet speichert, um diese im Bedarfsfall der Objektweiterleitung mit Zielknoten d zu berücksichtigen und gegebenenfalls aus den im allgemeinen zahlreichen Alternativen des Verfahrens nach Anspruch 2 einen anderen nächsten Knoten als jenen aus DIJKSTRA_BESTHOP (x; d) zu selektieren.
  9. Verfahren, basierend auf Hauptanspruch 1, zur Ermittlung eines (selbstverständlich schleifenfreien) Fluchtweges, welcher, ausgehend vom Knoten x, an welchem sich das Fluchtobjekt/-subjekt beispielsweise gerade befindet, zu einem unbekannten Zielknoten z führt, der bezüglich s vorgegebener (disaster-) Knoten d1, d2, ..., ds eine vorgegebene Mindestdistanz Dmin hat, wobei dieser Fluchtweg keinesfalls über irgendeinen der s disaster-Knoten führen darf und wobei, wenn irgend möglich, auch die unmittelbaren Nachbarknoten der disaster-Knoten gemieden werden, dadurch gekennzeichnet, dass man mit Hilfe einer rekursiven Prozedur a) einen Fluchtweg zu einem derartigen Fluchtzielknoten z ermittelt (weil es ihn auch gibt), oder b) feststellt dass x bereits die Bedingungen für z erfüllt, oder c) feststellt, dass es von x aus keinen derartigen Fluchtweg gibt, der zu einem derartigen Fluchtzielknoten z führen würde, indem man vorbereitend für i = 1, ..., s die Multipath-Richtungsfelder MPRF[di]erzeugt und damit auch für jeden Knoten k die Distanzen D (k; di) für i von 1 bis s, ferner für jeden Knoten k des Netzes ein Kennzeichnungsbit „Disaster-Knoten Ja (=1) oder Nein (=0)" sowie ein Kennzeichnungsbit „Disaster-Knotennachbar Ja (=1) oder Nein (=0)" den Tatsachen entsprechend setzt, sowie ein Kennzeichnungsbit „Bereits besucht Ja (=1) oder Nein (=0)" mit 0 initialisiert, sowie als seinen Fluchtweg-Fortsetzungsknoten (Next_Node [k]) eine 0 voreingibt, indem man ferner ein einziges Kennzeichnungsbit „Success Ja(=1) oder Nein (=0)" mit 0 initialisiert und schließlich die besagte rekursive Prozedur mit Eingabeparameter gleich dem Fluchtbeginnknoten x aufruft, wobei diese bezüglich ihres aktuellen Eingabeparameters, nachfolgend node_param genannt, das Kennzeichnungsbit „Bereits besucht" setzt und falls node_param die von z geforderte Mindestdistanz zu allen disaster-Knoten hat, das Kennzeichnungsbit „Success" auf 1 setzt, andernfalls aber selbige Prozedur selbst mit immer wieder einem anderen Nachbarknoten y von node_param als Eingabeparameter aufruft, wobei zuerst nur solche y's infrage kommen, für die das „Bereits besucht"-Bit noch nicht gesetzt worden ist und außerdem der Durchschnittsmenge der Oberklassen AWAY_FROM_DESTINATION (node_param; di) für alle i von 1 bis s angehören, sowie weder das „disaster-Knoten"-Bit noch das „disaster-Knotennachbar"-Bit gesetzt haben, danach aber auch solche y's, für die lediglich das „Bereits besucht"-Bit, das „disaster-Knoten"-Bit sowie das „disaster-Knotennachbar"-Bit nicht gesetzt sind, und schließlich auch solche y's, für die einzig und allein das „Bereits besucht"-Bit und das „disaster-Knoten"-Bit nicht gesetzt sind, dabei aber sofort damit aufhört, selbige Prozedur ein weiteres Mal aufzurufen, falls es nach irgendeinem dieser Aufrufe das „Success"-Bit als gesetzt vorfindet, und stattdessen dem Knoten node_param das zuletzt verwendete y als Fluchtfortsetzungsknoten zuordnet, sprich Next_Node[node_param] mit diesem y belegt.
  10. Verfahren, basierend auf Hauptanspruch 1, zur Lenkung einer Massenflucht, etwa zwecks Evakuierung eines Gebäudekomplexes, einer Stadt oder eines Gebietes, bei der also die einzelnen Flüchtenden von jeglichem Ort aus die Flucht beginnen, hin zu einer Menge wohlbestimmter, vorgegebener Fluchtzielpunkten, bei dem man das reale hierfür verfügbare Wegenetz in ein Modellnetz von Knoten und Kanten abbildet, wobei die Knoten zum Beispiel Zimmer, Versammlungssäle, Verzweigungspunkte von Fluren und Treppen, Ausgänge, Gebäudeausgangstüren oder Gebäude, Stadien, Straßenkreuzungen, sowie Randpunkte der Stadt oder eines Gebietes, an denen man die Stadt oder das Gebiet verlassen kann, repräsentieren, und wobei die Kanten zum Beispiel Flure, Flurabschnitte zwischen zwei Zimmern, Treppen, Lifte, oder Straßenabschnitte zwischen je zwei Kreuzungen und dergleichen repräsentieren, und welches für jeden Netzknoten x alle diesbezüglichen Nachbarknoten y bestimmt, zu denen die Flüchtenden sich von x aus weiterbegeben mögen, um letztlich irgendeinen der im allgemeinen vielen vorgegebenen Fluchtzielknoten zu erreichen, und zwar ohne sich bereits zu Beginn der Flucht auf genau einen bestimmten Fluchtzielknoten festzulegen, sowie garantiert schleifenfrei auf dem kürzesten als auch auf längeren Wegen, jedoch ohne in eine Sackgasse zu geraten, und auch so, dass Flüchtende, welche ihre Flucht (aus Sicht von Knoten d) in Sackgassenbereiche beginnen, erst einmal hiervon herausgeleitet werden, und auch so, dass Flüchtende, auch wenn sie ihre Flucht an verschiedenen Orten begonnen haben, niemals ein und dieselbe Kante von den entgegengesetzten Enden aus passieren, dadurch gekennzeichnet dass man zunächst alle Netzknoten, die als Fluchtziele infrage kommen als Zielknoten markiert, sowie ein Multipath-Richtungsfeld MPRF[d] mit Ausrichtungsknoten d gleich dem Netzknoten, von dem die Massenflucht hauptsächlich ausgeht oder der die Mitte des Evakuierungsgebiets passend markiert, erstellt, daraufhin von den hierbei erzeugten Pfeilen all jene Pfeile identifiziert, welche, würde man die Flucht bei d beginnen, sich als Sackgassen bzw. sackgassenartige Teilnetze erweisen, und ihre Pfeilrichtungen einfach umdreht, sowie, optional, für jeden Pfeil des MPRF[d] mit Pfeilausgangsknoten x und Pfeilspitzenknoten y, welcher hierbei nicht umgedreht wurde, am Knoten x die Distanz bis zu jenem nahest gelegenen Fluchtzielknoten bereitstellt, als auch dessen Namen/Bezeichnung, welchen man von x aus über y gehend erreichen könnte, und man danach an sämtlichen Knoten des Netzes die Weiterflucht nur entgegen den Pfeilrichtungen der nunmehr vorliegenden Pfeile lenkt.
  11. Verfahren für Multipath-Routing im Internet hin zu im allgemeinen mehreren Zielknoten, an welchen dieselbe ANYCAST-Adresse lokalisiert ist, dadurch gekennzeichnet dass es gleich dem Verfahren nach Anspruch 10 ist, wobei das zugrundeliegende Netz ein Telekommunikationsnetz ist (Internet), die Markierung der Zielknoten statt der Bedeutung „Fluchtziel" die Bedeutung „Knoten, bei dem eine spezielle ANYCAST-Adresse erreichbar ist" haben, und dass irgendein Knoten (Router) die Rolle des Knotens d spielt, den alle Netzknoten in dieser Rolle gleichfalls kennen müssen.
DE200610022365 2006-05-12 2006-05-12 Multipath - vorwärts und rückwärts Expired - Fee Related DE102006022365B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200610022365 DE102006022365B3 (de) 2006-05-12 2006-05-12 Multipath - vorwärts und rückwärts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610022365 DE102006022365B3 (de) 2006-05-12 2006-05-12 Multipath - vorwärts und rückwärts

Publications (1)

Publication Number Publication Date
DE102006022365B3 true DE102006022365B3 (de) 2007-08-02

Family

ID=38268431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610022365 Expired - Fee Related DE102006022365B3 (de) 2006-05-12 2006-05-12 Multipath - vorwärts und rückwärts

Country Status (1)

Country Link
DE (1) DE102006022365B3 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007053582A1 (de) * 2007-11-07 2009-05-20 Navigon Ag Verfahren zum Betrieb eines Navigationssystems
CN101750089B (zh) * 2008-12-11 2012-05-23 北京四维图新科技股份有限公司 基于海量电子地图的路网连通性的检测方法及装置
CN109978243A (zh) * 2019-03-12 2019-07-05 北京百度网讯科技有限公司 车辆轨迹规划方法、装置、计算机设备、计算机存储介质
CN114067507A (zh) * 2021-11-08 2022-02-18 深圳正为格智能科技有限公司 一种适应环境进行变换的智能消防指示牌控制系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115495A (en) * 1988-10-18 1992-05-19 The Mitre Corporation Communications network system using full-juncture and partial-juncture station status information for alternate-path distance-vector routing
US20050088965A1 (en) * 2003-10-03 2005-04-28 Avici Systems, Inc. Rapid alternate paths for network destinations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115495A (en) * 1988-10-18 1992-05-19 The Mitre Corporation Communications network system using full-juncture and partial-juncture station status information for alternate-path distance-vector routing
US20050088965A1 (en) * 2003-10-03 2005-04-28 Avici Systems, Inc. Rapid alternate paths for network destinations

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007053582A1 (de) * 2007-11-07 2009-05-20 Navigon Ag Verfahren zum Betrieb eines Navigationssystems
DE102007053582B4 (de) * 2007-11-07 2010-01-21 Navigon Ag Verfahren zum Betrieb eines Navigationssystems
CN101750089B (zh) * 2008-12-11 2012-05-23 北京四维图新科技股份有限公司 基于海量电子地图的路网连通性的检测方法及装置
CN109978243A (zh) * 2019-03-12 2019-07-05 北京百度网讯科技有限公司 车辆轨迹规划方法、装置、计算机设备、计算机存储介质
CN114067507A (zh) * 2021-11-08 2022-02-18 深圳正为格智能科技有限公司 一种适应环境进行变换的智能消防指示牌控制系统

Similar Documents

Publication Publication Date Title
EP0872090B1 (de) Verfahren zum bilden von leitweginformation
DE69929627T2 (de) Geo-räumliche adressierung zum internet-protokoll
DE19528563C2 (de) Verfahren zur Bewertung von mindestens zwei mehrteiligen Kommunikationsverbindungen zwischen zwei Kommunikationspartnern in einem Mehrknotennetzwerk
CN106664252B (zh) 实现业务链接的方法、设备及系统
DE69633574T2 (de) Architektur für mobile funknetze mit dynamischer topologieanpassung mit hilfe von virtualen unternetzen
DE10085302B3 (de) Mobile-IP für Mobil-Ad-Hoc-Netze
DE112011100339B4 (de) System zum Gegensteuern bei Netzwerk-Datenüberlastungen
DE60010330T2 (de) Verfahren für den transport von physischen objekten, transportsystem und transportmittel
EP2274935B1 (de) Verfahren und vorrichtung zum herstellen von zumindest einer erweiterung einer zuordnungsnachricht für wireless mesh netze
DE60125554T2 (de) Verfahren zur Optimierung der Wegeauswahl in einem Paketnetz
CN106685834A (zh) 基于中/低轨道卫星网络的可信路由方法
DE102006022365B3 (de) Multipath - vorwärts und rückwärts
DE10118188A1 (de) Verfahren zum Leiten von Daten in einem mobilen Kommunikationsnetz und Kommunikationsnetz-Vorrichtung zum Duchführen eines solchen Verfahrens
EP3577871B1 (de) Verfahren und vorrichtung zur modularen lenkung eines avb-streams
DE102009043403A1 (de) Verfahren zum Aufbau eines bidirektionalen Kommunikationspfads in einem drahtlosen Netzwerk
CN104660502B (zh) 向外部边界网关协议邻居通告路由的方法及装置
EP1911216B1 (de) Verfahren zum phasenbezogenen scheduling des datenflusses in geschalteten netzwerken
AT522277A1 (de) Verfahren zur paketweisen Übermittlung von Daten
DE102014102035B4 (de) Computereinrichtung, System mit einer Computereinrichtung und Computerprogramm
CN106341328A (zh) 一种网格结构量子通信网络的路由方法
DE102008035393A1 (de) Verfahren zur mehrfach hierarchischen Adressierung von Zellen in einem zellularen Kommunikationsnetz
EP1117083A2 (de) Verfahren zur dezentralen Übertragung und Verteilung von Nutzdaten zwischen Teilnehmern eines Telekommunikationsnetzwerkes
DE19627636A1 (de) System und Verfahren zur Unterstützung verbindungsorientierter Dienste in einem Netz mit wechselnder Topologie
EP0589250A2 (de) Verfahren zum Rundsenden von Zellen in einem im Asynchron-Transfer-Modus wirkenden Kommunikationsnetz
Ucar et al. Lane change advisory by vehicular micro clouds

Legal Events

Date Code Title Description
8322 Nonbinding interest in granting licenses declared
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee