Algoritmos de enrutamiento MeshCore
Cada mensaje que recorre la red RegionMesh toma decisiones de enrutamiento autonomas. Entender estos algoritmos te ayuda a desplegar nodos mas efectivos y solucionar brechas de cobertura.
Como encuentra su camino un mensaje a traves de la red en malla?
Las redes tradicionales dependen de routers con rutas preconfiguradas. Una red en malla no tiene ese lujo. Cuando un senderista en Rocky Mountain National Park envia un mensaje, no existe una autoridad central para dirigirlo hacia Denver.
En su lugar, MeshCore usa un modelo hibrido: flood de descubrimiento cuando hace falta y luego reenvio mas dirigido por rutas aprendidas.
Esta guia explica con precision como funciona el enrutamiento de MeshCore, que optimizaciones ahorran tiempo de aire y bateria, y como puedes ajustar el comportamiento de enrutamiento para tu despliegue especifico a traves de America.
Mecanismos basicos del protocolo de enrutamiento
Cuatro mecanismos fundamentales sustentan el enrutamiento de MeshCore:
Flood de descubrimiento + rutas aprendidas
La primera entrega puede usar flood de descubrimiento por repetidores. Tras reportes de entrega, MeshCore puede usar una ruta conocida para mensajes siguientes.
Deteccion de duplicados
Cada mensaje lleva un identificador unico. Los nodos mantienen una cache de IDs vistos recientemente, descartando duplicados que llegan por rutas alternativas.
Limitacion por conteo de saltos
El control de saltos evita propagacion sin limite. MeshCore soporta techos altos a nivel de protocolo (hasta 64), mientras que en campo se ajusta la propagacion en repetidores (por ejemplo con flood.max).
Reenvio por rol de repetidor
El reenvio es funcion de repetidores/relays, no de todos los clientes. Esto mantiene el trafico mas predecible y reduce carga de aire innecesaria.
Como funciona el flood de descubrimiento en MeshCore
El flood de descubrimiento se usa cuando aun no hay ruta conocida. Luego MeshCore puede pasar a reenvio dirigido:
Paso 1: Se envia el mensaje
Un usuario en Boulder envia un mensaje a un destino sin ruta conocida. El paquete se prepara y se emite por LoRa.
Paso 2: Repetidores cercanos reenvian
Los repetidores en alcance procesan el mensaje y aplican deduplicacion. Los clientes pueden recibir, pero no son la capa general de reenvio.
Paso 3: La ruta se aprende con la entrega
Cuando la entrega tiene exito, MeshCore puede aprender el camino de repetidores para trafico unicast posterior.
Paso 4: Trafico siguiente mas dirigido
Los siguientes mensajes pueden usar la ruta aprendida, reduciendo propagacion global y consumo de tiempo de aire.
Control de trafico en practica
MeshCore mantiene discovery y forwarding eficientes con controles practicos:
- • Deduplicacion de mensajes: Mensajes identicos que llegan por rutas diferentes solo se reenvian una vez, evitando un crecimiento exponencial del trafico.
- • Aprendizaje de ruta: Una entrega correcta puede generar informacion de camino para reenvio directo posterior.
- • Limites de flood en repetidores: Se puede ajustar la propagacion (por ejemplo con flood.max) para cuidar el tiempo de aire.
- • Separacion de roles: Los clientes se centran en mensajeria de usuario y los repetidores en forwarding de red.
Mecanismo de limitacion de saltos
Techo de saltos del protocolo
La documentacion de MeshCore indica un maximo interno de 64 saltos a nivel de protocolo.
Ajuste operativo
La propagacion real se ajusta sobre todo en repetidores (por ejemplo con flood.max) segun densidad de nodos y presupuesto de aire.
Alcance segun despliegue
La distancia por salto depende de terreno, antena, ruido RF y ubicacion de repetidores. Es mejor planificar con mediciones reales que con un numero fijo de saltos.
Como funciona el conteo de saltos
El control de saltos evita circulacion sin limite, mientras que las politicas de repetidor definen el forwarding practico:
Intento inicial: flood de descubrimiento por repetidores Entrega exitosa: se aprende informacion de ruta Siguientes unicast: forwarding por ruta aprendida Control de flood: ajuste en repetidores (ej. flood.max)
Este mecanismo evita que los mensajes circulen indefinidamente, conservando bateria valiosa y dejando tiempo de aire disponible para nuevas comunicaciones.
Ventajas del enrutamiento MeshCore
Auto-organizado
Ningun administrador de red configura tablas de enrutamiento. Los nodos se descubren automaticamente, adaptandose a altas y fallos sin intervencion.
Eficiente en energia
Las optimizaciones aseguran que solo ocurran transmisiones necesarias. Los nodos a bateria pueden funcionar por dias mientras aun contribuyen a la cobertura de red.
Robusto ante fallos
Si un repetidor falla en las Rockies, los mensajes se enrutan automaticamente por rutas alternativas. La red se recupera sin que nadie lo note.
Alcance escalable
Agregar nodos extiende la cobertura proporcionalmente. Un repetidor en una montana podria unir condados enteros sin cambios de configuracion.
Protocolo simple
El modelo hibrido de descubrimiento + rutas aprendidas evita tablas pesadas y a la vez reduce propagacion innecesaria en redes activas.
Sin punto unico de falla
Sin router central, ningun componente unico puede tumbar la red. Incluso perdiendo la mitad de los nodos, los dispositivos restantes siguen comunicandose.
Ejemplos de configuracion de enrutamiento
Ajusta el comportamiento de enrutamiento con la CLI de MeshCore o la API de Python:
CLI: Ajustar flood en repetidor
Ajusta el alcance de propagacion en nodos repetidores segun tu topologia:
set flood.max 6 set repeat on save
API de Python: configuracion de enrutamiento
Automatiza la configuracion del despliegue en multiples nodos:
import MeshCore
interface = MeshCore.SerialInterface()
node = interface.getNode("^local")
# Example: apply forwarding policy on repeater profile
node.config["flood.max"] = 6
node.config["repeat"] = "on"
node.writeConfig()
Avanzado: limitar alcance de discovery
En areas densas, limita discovery para reducir presion de tiempo de aire:
set flood.max 4 save # Sube el valor solo si falla la entrega en tu zona
Preguntas frecuentes sobre enrutamiento
MeshCore usa solo flooding?
No. Puede usar flood de descubrimiento al inicio, pero despues puede reenviar unicast por rutas aprendidas de repetidores.
Que pasa si dos nodos reenvian un mensaje simultaneamente?
Los retrasos de backoff aleatorio hacen improbable la transmision simultanea. Cuando ocurren colisiones, otros nodos de la red normalmente reciben al menos una copia con exito, manteniendo la entrega del mensaje.
Puedo establecer diferentes limites de saltos por tipo de mensaje?
Normalmente se ajusta por rol de nodo y politica de repetidor. Mantiene trafico rutinario mas contenido y reserva mayor propagacion para casos prioritarios.
Como evita MeshCore los bucles de ruta?
La deteccion de duplicados combinada con el conteo de saltos elimina bucles. Un mensaje no puede volver a visitar un nodo (deteccion de duplicados) y eventualmente expira (limite de saltos) sin importar la topologia de la red.
Que latencia debo esperar?
La latencia depende de condiciones RF, spreading factor, carga de cola y politicas de repetidor. La referencia correcta es medir en campo en tu despliegue.
Puedo deshabilitar el enrutamiento en mi nodo?
Si. Establecer rebroadcast_mode en "NONE" crea un nodo hoja que recibe mensajes pero nunca reenvia. Util para dispositivos portatiles criticos de bateria.
Empieza con el desarrollo de enrutamiento MeshCore
El protocolo de enrutamiento de MeshCore permite comunicacion resistente y auto-reparable a traves de America sin depender de infraestructura de internet. Entender estos mecanismos te ayuda a desplegar redes mas efectivas.