Aller au contenu principal
Sommaire

Routage, annonces et portée

Comment un message circule dans le maillage — diffusion large, chemins appris, annonces et limites de sauts.

Mise à jour le 21 août 2026

Sur cette page

Comprendre le routage est ce qui sépare un réseau qui fonctionne d'un réseau qui sature. MeshCore utilise deux modes complémentaires.

Diffusion large (flood)

Le paquet est relayé par tous les répéteurs qui l'entendent, jusqu'à épuisement du nombre de sauts autorisés.

C'est le mode employé :

  • pour les messages de canal (canaux publics), qui n'ont pas de destinataire unique et donc pas de route possible ;
  • pour le premier contact entre deux nœuds qui ne se connaissent pas encore : c'est ainsi que la route est découverte ;
  • pour les annonces diffusées (flood adverts).

La diffusion large est coûteuse en temps d'antenne. C'est le mécanisme qui fait s'effondrer les réseaux mal dimensionnés.

Chemin direct

Après le premier échange, le destinataire renvoie un accusé qui liste les répéteurs traversés. Les messages suivants embarquent ce chemin.

Un répéteur ne relaie alors le paquet que si son identifiant et sa position dans le chemin correspondent. Le reste du réseau n'entend rien, et le temps d'antenne consommé s'effondre.

C'est le mécanisme central de MeshCore : le maillage apprend.

Conséquence pratique : si un répéteur du chemin disparaît, la route casse et le trafic bascule à nouveau en diffusion large le temps qu'une nouvelle route soit apprise.

Les annonces (adverts)

Une annonce est la carte de visite d'un nœud : son nom, sa clé publique et, s'il le publie, sa position.

Deux portées :

TypeCommandeEffet
Zéro sautadvert.zerohopDiffusion locale, non relayée.
DiffuséeadvertRelayée par tous les répéteurs qui l'entendent.

Les répéteurs annoncent périodiquement. Deux réglages contrôlent ce rythme :

  • set advert.interval <minutes> — annonce zéro saut, de 60 à 240 minutes (arrondi à une valeur paire) ;
  • set flood.advert.interval <heures> — annonce diffusée, de 3 à 168 heures. La valeur par défaut du micrologiciel est de 12 heures.

Une annonce diffusée trop fréquente consomme le temps d'antenne de tout le monde. C'est l'un des réglages les plus fréquemment mal ajustés.

Limite de sauts

Le micrologiciel gère jusqu'à 64 sauts en interne. En pratique, la limite réelle dépend du mode d'encodage des identifiants de chemin.

path.hash.modeTaille d'identifiantSauts maximum
1 octetcourt64
2 octetsmoyen32
3 octetslong21

Un identifiant plus long réduit les collisions entre répéteurs — utile pour analyser un maillage dense — au prix du nombre de sauts possibles.

Les répéteurs en micrologiciel 1.14 ou supérieur relaient les trois tailles. Les versions antérieures ignorent les paquets à 2 et 3 octets : dans un réseau hétérogène, un mode long peut donc rendre certains nœuds injoignables.

Trois réglages plafonnent la propagation :

  • set flood.max <0-64> — portée maximale d'une diffusion ;
  • set flood.max.advert <0-64> — portée des annonces, 8 sauts par défaut ;
  • set flood.max.unscoped <0-64> — portée des paquets sans région.

Ce qui détermine réellement la portée

Par ordre d'importance décroissante :

  1. Le dégagement — la ligne de vue radio prime sur tout le reste.
  2. La hauteur d'antenne — quelques mètres de plus valent souvent mieux que le double de puissance.
  3. La qualité de l'antenne et du câble — un coaxial médiocre annule le gain d'une bonne antenne.
  4. Les réglages LoRa — un facteur d'étalement plus élevé porte plus loin, mais occupe l'antenne plus longtemps.
  5. La puissance d'émission — le levier le plus faible, et le plus encadré par la réglementation.

C'est pourquoi un répéteur sur un point haut, même à faible puissance, change davantage un réseau qu'un nœud puissant en zone encaissée.