Routing protocol

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.

Broadcast → All neighbors → Re-broadcast → Target

Duplicate detection

Recente message IDs worden onthouden zodat dubbele pakketten niet opnieuw circuleren.

Message ID: 0x4A3F2B → Already seen → Drop

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

64

Standaard hops

Geschikt voor veel lokale scenario's met beperkt verkeer.

flood.max

Maximum hops

Hogere hoplimiet vergroot bereik maar verhoogt ook latency en verkeer.

RF terrein

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.