Routing algoritmes in MeshCore
Zo vindt MeshCore automatisch paden voor berichten in een gedecentraliseerd netwerk.
Hoe vindt een bericht zijn weg?
In mesh-netwerken bestaat er geen klassieke centrale router die alles bepaalt.
MeshCore gebruikt flooding met beperkingsregels om verkeer door te geven zonder overbelasting.
Deze combinatie levert praktische robuustheid bij wisselende nodebeschikbaarheid.
Basismechanismen van het routing protocol
Vier kernonderdelen:
Flood routing
Bericht verspreidt naar nabije nodes die volgens regels kunnen doorsturen.
Duplicate detection
Recente message IDs worden onthouden zodat dubbele pakketten niet opnieuw circuleren.
Hop count limiting
Een maximum hops-waarde begrenst de levensduur van een bericht in het netwerk.
Signal strength evaluation
Signaalkwaliteit kan gebruikt worden om prioriteit en doorstuurgedrag te sturen.
Hoe flooding routing werkt
Praktisch verloop in vier stappen:
Stap 1: Verzending
Bronnode verzendt pakket met ID en start-hopwaarde.
Stap 2: Ontvangst bij buren
Ontvangers checken duplicaten en bepalen of doorsturen zinvol is.
Stap 3: Verdere verspreiding
Doorstuurknooppunten verhogen hopcount en zenden gecontroleerd verder.
Stap 4: Aflevering of stop
Bestemming ontvangt pakket, of hoplimiet beëindigt verdere verspreiding.
Optimalisaties bij flooding
Mechanismen om ruis en congestie te beperken:
- • Message deduplication: dubbele pakketten niet opnieuw doorsturen.
- • Implicit ACK: indirecte bevestiging via netwerkgedrag.
- • Random delay: vermijdt massale gelijktijdige uitzendingen.
- • RSSI-based prioritization: kwaliteitsgestuurd doorstuurgedrag.
Hop limiting mechanisme
Standaard hops
Geschikt voor veel lokale scenario's met beperkt verkeer.
Maximum hops
Hogere hoplimiet vergroot bereik maar verhoogt ook latency en verkeer.
Bereik per hop
Praktisch bereik per hop hangt af van opstelling, omgeving en antenne.
Hoe hop counting werkt
Elke relay verhoogt de hopcount tot limiet bereikt is.
Bericht verzonden: hop_count = 0 Eerste relay: hop_count = 1 Tweede relay: hop_count = 2 Derde relay: hop_count = 3 → Max bereikt, stop doorsturen
Zo blijft netwerkverkeer beheersbaar en blijft batterijbelasting lager.
Troeven van MeshCore routing
Zelforganiserend
Routes ontstaan zonder centrale handmatige routertabellen.
Energiebewust
Optimalisaties beperken onnodige doorstuuracties.
Uitvalbestendig
Bij nodeverlies blijven alternatieve routes vaak beschikbaar.
Schaalbaar bereik
Meer nodes betekenen doorgaans meer route-opties.
Eenvoudig debugbaar model
Flooding-logica blijft conceptueel overzichtelijk.
Geen single point of failure
Decentrale routing verkleint afhankelijkheid van centrale schakels.
Configuratievoorbeelden voor routing
Voor gevorderde tuning kan je CLI of API-instellingen toepassen:
CLI: Hop limit instellen
Pas hoplimiet aan volgens netwerkdoel en verkeersdruk.
meshcore --set router.hop_limit 5 meshcore --set router.rebroadcast_mode ALL_SKIP_DECODING
Python API: Routing configuratie
Automatiseer aanpassingen met scriptbare configuratieflow.
import meshcore
interface = meshcore.SerialInterface()
node = interface.getNode("^local")
# Set routing parameters
node.router.hop_limit = 4
node.router.rebroadcast_mode = meshcore.Router.ALL_SKIP_DECODING
node.writeConfig()
Advanced: RSSI threshold
Gebruik minimum-RSSI om zwakke links minder prioriteit te geven.
meshcore --set router.rebroadcast_min_rssi -120 # -120 dBm = bijzonder zwak signaal # -100 dBm = gemiddeld signaal (aanbevolen) # -80 dBm = sterk signaal
Veelgestelde vragen over routing
Waarom flooding in plaats van zware routing tables?
Flooding met slimme beperkingen blijft robuust in dynamische netwerken met wisselende nodes.
Wat bij gelijktijdig doorsturen?
Backoff- en herhaalmechanismen helpen conflicten opvangen.
Kan ik hoplimits per berichttype tunen?
Afhankelijk van configuratielaag kan je gedrag differentiëren voor specifieke datastromen.
Hoe worden loops vermeden?
Combinatie van hoplimiet en deduplicatie voorkomt eindeloze kringloop.
Wat is typische latency bij meerdere hops?
Dat varieert met radio-instellingen en drukte, maar stijgt logisch met elke extra hop.
Kan ik rebroadcast uitzetten?
Ja, voor specifieke rollen kan je doorsturen beperken om energie te sparen.
Routing begrijpen = beter netwerk bouwen
Met inzicht in flooding, hoplimiet en deduplicatie kan je gerichter tunen voor stabiliteit en efficiëntie.