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.
Duplikaterkennung
Jede Nachricht hat eine einzigartige ID. Nodes merken sich kürzlich gesehene Nachrichten und ignorieren Duplikate, um endlose Schleifen zu vermeiden.
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
Standard-Hops
In der MeshCore-Dokumentation wird eine interne Obergrenze von 64 Hops genannt.
Maximum Hops
Flood-Verhalten wird auf Repeater-Ebene abgestimmt (z.B. mit flood.max), je nach Topologie.
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.