Routing-Protokoll

MeshCore Routing-Algorithmen

Erfahren Sie, wie MeshCore-Nachrichten zunächst über Discovery Flood erreichbar werden und danach oft über einen gelernten Pfad weiterlaufen.

Wie findet eine Nachricht ihren Weg durch das Mesh-Netzwerk?

In einem Mesh-Netzwerk gibt es keinen zentralen Router, der bestimmt, welche Route eine Nachricht nehmen soll. Stattdessen verwendet MeshCore intelligente Routing-Algorithmen, die dafür sorgen, dass Nachrichten automatisch die effizienteste Route zu ihrem Ziel finden.

Wichtiger Unterschied zu generischen Mesh-Erklärungen: MeshCore-Clients repeaten nicht. Forwarding passiert über Repeater (und Room-Server mit aktiviertem Repeat).

MeshCore kann für erste Erreichbarkeit Discovery Flood nutzen und danach Pfadinformation verwenden, damit Folgeverkehr gezielter über bekannte Repeater läuft. Das passt direkt zur praktischen Netzwerktopologie, zum allgemeinen Protokollverhalten und den Nachrichtenformaten und Payloads.

Wie MeshCore-Routing tatsächlich funktioniert

MeshCore kombiniert Discovery Flood mit pfadbasiertem Forwarding für Folgeverkehr:

Discovery Flood für Erreichbarkeit

Wenn noch kein Pfad bekannt ist, kann Verkehr über Repeater gefloodet werden, damit das Ziel trotzdem erreicht wird.

Client -> Repeater -> Discovery Flood -> Ziel

Duplikaterkennung

Jede Nachricht hat eine einzigartige ID. Nodes merken sich kürzlich gesehene Nachrichten und ignorieren Duplikate, um endlose Schleifen zu vermeiden.

Message ID: 0x4A3F2B → Bereits gesehen → Verwerfen

Pfadlernen nach Zustellung

Nach erfolgreicher Zustellung kann Pfadkontext zurückgemeldet werden (welche Repeater beteiligt waren), damit Folgeverkehr zielgerichteter läuft.

Gezieltes Forwarding im Folgeverkehr

Spätere Unicast-Nachrichten können dann über bekannte Repeaterpfade laufen, statt jedes Mal breit zu flooden.

Discovery und pfadbasiertes Forwarding

In der Praxis läuft MeshCore-Routing meist in zwei Phasen:

Schritt 1: Nachricht wird gesendet

Ein Client sendet eine Nachricht. Für Erstkontakt kann Discovery Flood über Repeater genutzt werden.

Schritt 2: Erster Hop - Nachbarn empfangen

Nach erfolgreicher Zustellung kann der Zielknoten Pfadkontext zurückgeben. Das liefert Informationen für spätere, gezieltere Zustellung.

Schritt 3: Zweiter Hop - weitere Verbreitung

Folge-Unicast kann danach über bekannte Repeaterpfade laufen, ohne immer vollständiges Flooding.

Schritt 4: Ziel erreicht oder max Hops

Wenn ein bekannter Pfad ausfällt, kann MeshCore wieder auf Discovery/Flood zurückfallen, um eine funktionierende Route zu finden.

Wichtige MeshCore-Punkte

Für eine korrekte Beschreibung von MeshCore sollten diese Punkte klar sein:

  • <strong>Clients repeaten nicht:</strong> Forwarding ist Repeater-seitig.
  • <strong>Flood ist primär Discovery:</strong> Folgeverkehr muss nicht jedes Mal breit gefloodet werden.
  • <strong>Pfadinformation wird gelernt:</strong> Zustellung kann danach zielgerichteter werden.
  • <strong>Fallback bleibt möglich:</strong> bei Pfadfehlern kann Discovery erneut starten.

Hop-Limiting-Mechanismus

64

Standard-Hops

In der MeshCore-Dokumentation wird eine interne Obergrenze von 64 Hops genannt.

flood.max

Maximum Hops

Flood-Verhalten wird auf Repeater-Ebene abgestimmt (z.B. mit flood.max), je nach Topologie.

Repeater

Reichweite pro Hop

Niedrige feste Hop-Werte sind keine verlässliche allgemeine Regel für MeshCore.

Wie Hop-Counting funktioniert

Vermeiden Sie starre Aussagen mit niedrigen Hop-Werten. Nennen Sie stattdessen dokumentierte Eckpunkte:

Interne Firmware-Obergrenze: 64 Hops
Repeater-Tuning: set flood.max <Wert>
Bei Pfadfehlern: erneute Discovery/Fallback

So bleibt die Erklärung konsistent mit MeshCore statt mit generischen oder Meshtastic-ähnlichen Flooding-Modellen.

Vorteile des MeshCore-Routings

🔄

Selbstorganisierend

Keine Konfiguration nötig. Nodes finden automatisch die besten Routen ohne zentrale Steuerung.

Energieeffizient

Intelligente Optimierungen sorgen dafür, dass nur notwendige Nodes Nachrichten weiterleiten, was Batterie spart.

🛡️

Robust gegen Ausfälle

Wenn eine Route ausfällt, finden Nachrichten automatisch einen alternativen Weg durch das Netzwerk.

📡

Skalierbare Reichweite

Durch Hinzufügen weiterer Nodes vergrößert sich die Reichweite exponentiell ohne zusätzliche Konfiguration.

🔧

Einfaches Protokoll

Das Flooding-basierte Protokoll ist einfach zu implementieren und zu debuggen im Vergleich zu komplexen Routing-Tabellen.

🌐

Kein Single Point of Failure

Kein zentraler Router bedeutet, dass es keinen einzelnen Punkt gibt, der das gesamte Netzwerk zum Absturz bringen kann.

Routing-Konfigurationsbeispiele

Sie können das Routing-Verhalten über die MeshCore-CLI oder Python-API anpassen:

CLI: Hop-Limit einstellen

Erhöhen Sie das Hop-Limit für größere Reichweite (Achtung: mehr Batterieverbrauch und Latenz):

meshcore --set router.hop_limit 5
meshcore --set router.rebroadcast_mode ALL_SKIP_DECODING

Python API: Routing-Konfiguration

Konfigurieren Sie das Routing über Python für automatisierte Deployments:

import meshcore

interface = meshcore.SerialInterface()
node = interface.getNode("^local")

# Routing-Parameter setzen
node.router.hop_limit = 4
node.router.rebroadcast_mode = meshcore.Router.ALL_SKIP_DECODING
node.writeConfig()

Advanced: RSSI-Threshold

Setzen Sie einen minimalen RSSI für Rebroadcasting, um schwache Links zu ignorieren:

meshcore --set router.rebroadcast_min_rssi -120
# -120 dBm = sehr schwaches Signal
# -100 dBm = durchschnittliches Signal (empfohlen)
# -80 dBm = starkes Signal

Häufig gestellte Fragen zum Routing

Warum verwendet MeshCore Flooding und kein tabellenbasiertes Routing?

Flooding ist viel einfacher und robuster in mobilen Netzwerken, wo Nodes ständig ein- und ausgeschaltet werden. Tabellenbasiertes Routing erfordert Route-Discovery und Pflege von Routing-Tabellen, was komplex und energieintensiv für LoRa-Geräte ist.

Repeaten alle MeshCore-Nodes Verkehr?

Nein. MeshCore-Clients repeaten nicht. Forwarding übernehmen Repeater (und Room-Server mit aktiviertem Repeat).

Kann ich verschiedene Hop-Limits pro Nachrichtentyp einstellen?

Ja, in der Routing-Konfiguration können Sie verschiedene Hop-Limits für Positions-Updates, Textnachrichten und Telemetrie einstellen. So optimieren Sie den Netzwerkverkehr pro Nachrichtentyp.

Wie verhindert MeshCore Routing-Schleifen?

Durch eine Kombination aus Hop-Limiting und Nachrichten-Deduplizierung. Jeder Node merkt sich kürzliche Nachrichten-IDs und leitet Duplikate nicht weiter, selbst wenn sie über eine andere Route eintreffen.

Sollte man feste niedrige Hop- oder RSSI-Modelle als MeshCore-Fakt darstellen?

Nur wenn genau dieses Verhalten in aktueller offizieller MeshCore-Dokumentation belegt ist. Sonst besser bei Discovery + Pfadlernen + Repeater-Forwarding bleiben.

Kann ich Routing für meinen Node deaktivieren?

Ja, Sie können Routing deaktivieren, indem Sie rebroadcast_mode auf "NONE" setzen. Ihr Node empfängt dann weiterhin Nachrichten, leitet sie aber nicht weiter. Das ist nützlich für mobile Geräte, um Batterie zu sparen.

Starten Sie mit MeshCore Routing-Entwicklung

Der MeshCore-Routing-Algorithmus bietet eine robuste, energieeffiziente Methode, um Nachrichten ohne zentrale Infrastruktur zu routen. Perfekt für Notfallkommunikation und Off-Grid-Netzwerke. Mehr dazu unter Offline-Nachrichten senden.