# How Mesh Routing Works

When two nodes are too far apart to communicate directly, intermediate nodes relay the message. Meshtastic and MeshCore solve this differently.

## Flooding (Meshtastic)

When a node receives a packet, it rebroadcasts to all neighbors. Each node rebroadcasts once (duplicate detection prevents loops). The message floods outward until it reaches its destination or exhausts its hop count (typically 3 - 5 hops).

- **Simple and robust:** No routing tables. New nodes work immediately. Self-healing if relay fails.
- **Limitation:** One message can trigger 30 - 50 transmissions across a dense network. Why faster presets (Medium Slow) are preferred in networks with many nodes.

## Path-based routing (MeshCore)

MeshCore discovers explicit routes before sending data:

1. Node A broadcasts a **path discovery packet**; each relay appends its identity
2. Destination node D sends back a **path acknowledgment** along the reverse path
3. Node A caches the route A → B → C → D and uses it for all subsequent messages to D

- **More efficient at scale:** Messages travel only the established path - much less airtime than flooding in large networks
- **Limitation:** Route discovery adds latency to first contact. Topology changes require re-discovery.

## Which is better?

Both work well in practice. Flooding is simpler and more resilient for small-to-medium networks (under ~100 nodes). Path-based routing scales better for large infrastructure deployments. In practice, your choice is determined by which protocol your local community uses.

## The mesh advantage

Every additional node is a potential relay. A hilltop repeater that can hear both a valley and a distant mountaintop effectively bridges those two coverage zones for all messages. A few well-placed infrastructure nodes have outsized impact on total network reach.