Zum Hauptinhalt springen

14. Richtlinien für Zielfunktionen

Eine Zielfunktion (Objective Function - OF) ermöglicht in Verbindung mit Routing-Metriken und -Einschränkungen die Auswahl eines DODAG zum Beitritt und einer Anzahl von Peers in diesem DODAG als Eltern. Die OF wird verwendet, um eine geordnete Liste von Eltern zu berechnen. Die OF ist auch dafür verantwortlich, den Rang des Geräts innerhalb der DODAG-Version zu berechnen.

Die Zielfunktion wird in der DIO-Nachricht unter Verwendung eines Objective Code Point (OCP) angezeigt, und sie gibt die Methode an, die verwendet werden muss, um den DODAG zu konstruieren. Die Objective Code Points sind in [RFC6552] und verwandten Begleitspezifikationen spezifiziert.

14.1. Verhalten der Zielfunktion

Von den meisten Zielfunktionen wird erwartet, dass sie demselben abstrakten Verhalten an einem Knoten folgen:

  • Die Elternauswahl wird jedes Mal ausgelöst, wenn ein Ereignis anzeigt, dass eine potenzielle Next-Hop-Information aktualisiert wird. Dies kann beim Empfang einer DIO-Nachricht, beim Ablauf eines Timers, wenn alle DODAG-Eltern nicht verfügbar sind, oder bei einem Trigger geschehen, der anzeigt, dass sich der Zustand eines Kandidaten-Nachbarn geändert hat.

  • Eine OF scannt alle Schnittstellen am Knoten. Obwohl es in den meisten Anwendungsszenarien typischerweise nur eine Schnittstelle geben mag, könnte es mehrere geben und eine Schnittstelle könnte so konfiguriert sein, dass sie für den RPL-Betrieb nutzbar ist oder nicht. Eine Schnittstelle kann auch mit einer Präferenz konfiguriert oder dynamisch durch einige Heuristiken, die verbindungsschichtabhängig sein könnten und außerhalb des Geltungsbereichs dieser Spezifikation liegen, als besser als eine andere gelernt werden. Schließlich könnte eine Schnittstelle einem erforderlichen Kriterium für eine Zielfunktion entsprechen oder nicht, zum Beispiel einem Sicherheitsgrad. Als Ergebnis könnten einige Schnittstellen vollständig von der Berechnung ausgeschlossen werden, zum Beispiel, wenn diese Schnittstellen einige angekündigte Einschränkungen nicht erfüllen können, während andere mehr oder weniger bevorzugt werden könnten.

  • Eine OF scannt alle Kandidaten-Nachbarn auf den möglichen Schnittstellen, um zu prüfen, ob sie als Router für einen DODAG fungieren können. Es könnte viele von ihnen geben und ein Kandidaten-Nachbar müsste möglicherweise einige Validierungstests bestehen, bevor er verwendet werden kann. Insbesondere erfordern einige Verbindungsschichten Erfahrung über die Aktivität mit einem Router, um den Router als Next Hop zu aktivieren.

  • Eine OF berechnet den Rang eines Knotens zum Vergleich, indem sie zum Rang des Kandidaten einen Wert addiert, der die relativen Positionen des Knotens und des Kandidaten in der DODAG-Version darstellt.

    • Die Erhöhung des Rangs muss mindestens MinHopRankIncrease betragen.

    • Um Schleifenvermeidung und Metrikoptimierung im Einklang zu halten, sollte die Erhöhung des Rangs jede Erhöhung des Metrikwerts widerspiegeln. Zum Beispiel kann bei einer rein additiven Metrik, wie ETX, die Erhöhung des Rangs proportional zur Erhöhung der Metrik gemacht werden.

    • Kandidaten-Nachbarn, die dazu führen würden, dass der Rang des Knotens steigt, werden für die Elternauswahl nicht berücksichtigt.

  • Kandidaten-Nachbarn, die eine OF ankündigen, die mit dem von den Richtlinienfunktionen spezifizierten Satz von OFs inkompatibel ist, werden ignoriert.

  • Während sie alle Kandidaten-Nachbarn scannt, behält die OF den aktuellen besten Elternteil und vergleicht seine Fähigkeiten mit dem aktuellen Kandidaten-Nachbarn. Die OF definiert eine Reihe von Tests, die kritisch sind, um das Ziel zu erreichen. Ein Test zwischen den Routern bestimmt eine Ordnungsbeziehung.

    • Wenn die Router für diese Beziehung gleich sind, dann wird der nächste Test zwischen den Routern versucht,

    • Andernfalls wird der beste der zwei Router der aktuelle beste Elternteil, und der Scan wird mit dem nächsten Kandidaten-Nachbarn fortgesetzt.

    • Einige OFs können einen Test beinhalten, um die Ränge zu vergleichen, die resultieren würden, wenn der Knoten einem der Router beitreten würde.

  • Wenn der Scan abgeschlossen ist, wird der bevorzugte Elternteil gewählt und der Rang des Knotens wird als Rang des bevorzugten Elternteils plus dem Rangschritt mit diesem Elternteil berechnet.

  • Andere Scan-Runden könnten notwendig sein, um alternative Eltern zu wählen. In den nächsten Runden:

    • Kandidaten-Nachbarn, die nicht im selben DODAG sind, werden ignoriert.

    • Kandidaten-Nachbarn, die einen höheren Rang als der Knoten haben, werden ignoriert.

    • Kandidaten-Nachbarn mit gleichem Rang wie der Knoten werden für die Elternauswahl ignoriert.

    • Kandidaten-Nachbarn mit einem niedrigeren Rang als der Knoten werden bevorzugt.