MeshCore protocol uitgelegd
Technische deep-dive in het MeshCore protocol: hoe berichten worden verstuurd, gerouteerd en ontvangen in een decentraal mesh-netwerk
Wat is het MeshCore protocol?
Het MeshCore protocol is de technische laag die ervoor zorgt dat apparaten in een mesh-netwerk met elkaar kunnen communiceren. Het definieert hoe berichten worden geformatteerd, verstuurd, gerouteerd en ontvangen – zonder centrale server of internet.
In tegenstelling tot traditionele netwerk protocollen zoals TCP/IP (dat internet gebruikt) of GSM (dat mobiele zendmasten nodig heeft), werkt het MeshCore protocol volledig peer-to-peer. Elk apparaat is gelijkwaardig en berichten vinden hun weg via meerdere tussenliggende nodes.
Het protocol is gebouwd bovenop LoRa (Long Range) radio technologie en maakt gebruik van de 868 MHz frequentieband in Europa. Deze pagina legt uit hoe het protocol technisch werkt.
MeshCore protocol lagen
Het MeshCore protocol bestaat uit 4 lagen, vergelijkbaar met het OSI model:
1. Physical layer (LoRa PHY)
De fysieke laag gebruikt LoRa radio modulatie om data draadloos te versturen. Deze laag bepaalt frequentie, bandwidth, spreading factor en transmissie power.
2. Link layer (LoRa MAC)
De link laag zorgt voor access control, collision detection en acknowledgements tussen direct verbonden nodes.
3. Network layer (Mesh routing)
De netwerk laag implementeert mesh routing: het bepaalt welke route een bericht neemt om van zender naar ontvanger te komen via tussenliggende nodes.
4. Application layer (Messages)
De applicatie laag bevat de daadwerkelijke payload: tekstberichten, positie, telemetrie, etc. Deze laag kan versleuteld zijn met AES-256.
MeshCore packet structuur
Elk bericht in het MeshCore netwerk wordt verstuurd als een packet met een specifieke structuur:
[HEADER] [PAYLOAD] [CHECKSUM] HEADER (8 bytes): - Packet ID (4 bytes) - Source Address (2 bytes) - Destination Address (2 bytes) - Hop Count (1 byte) - Flags (1 byte) PAYLOAD (max 237 bytes): - Message Type (1 byte) - Encrypted Data (max 236 bytes) CHECKSUM (2 bytes): - CRC16 voor data integriteit
Het Packet ID is uniek en voorkomt dat berichten meerdere keren worden verwerkt. De Hop Count telt hoe vaak een bericht is doorgestuurd – dit voorkomt oneindige loops. De Flags geven aan of het bericht versleuteld is, of een ACK verwacht wordt, etc.
MeshCore message types
TEXT_MESSAGE (0x01)
Tekstbericht tussen gebruikers. Kan privé (encrypted) of public zijn.
POSITION (0x02)
GPS coördinaten van een node. Wordt automatisch broadcast op ingestelde interval.
TELEMETRY (0x03)
Sensor data zoals batterijpercentage, temperatuur, voltage.
NODEINFO (0x04)
Informatie over de node zelf: naam, hardware model, firmware versie.
ROUTING (0x05)
Routing berichten voor netwerk discovery en route updates.
ACK (0x06)
Acknowledgement: bevestiging dat een bericht is ontvangen.
Hoe werkt mesh routing?
Het mesh routing algoritme bepaalt hoe berichten hun weg vinden door het netwerk. MeshCore gebruikt een combinatie van flood routing en intelligent hop limiting:
Flood routing principe
Wanneer een node een bericht verstuurt, broadcast deze naar alle nodes in bereik. Elke ontvanger kijkt of het bericht voor hem bedoeld is. Zo niet, dan stuurt de node het bericht door naar zijn buren (met verhoogde hop count). Dit proces herhaalt zich totdat het bericht de bestemming bereikt of de maximale hop limit wordt bereikt.
Hop limiting
Elk bericht heeft een hop limit (meestal 3-7 hops). Bij elke doorstuur-actie wordt de hop count verhoogd. Als het maximum is bereikt, wordt het bericht niet meer doorgestuurd. Dit voorkomt dat berichten eeuwig door het netwerk blijven circuleren en voorkomt netwerk congestie.
Voordelen van het MeshCore protocol
Self-healing netwerk
Als een node uitvalt, vindt het protocol automatisch een alternatieve route.
Decentraal
Geen centrale server of infrastructuur nodig. Het netwerk werkt peer-to-peer.
End-to-end encrypted
Privé berichten zijn versleuteld met AES-256. Alleen zender en ontvanger kunnen meelezen.
Energie-efficiënt
LoRa is extreem energie-zuinig. Apparaten gaan dagen tot weken mee op batterij.
Lang bereik
LoRa technologie bereikt ~1km in bebouwde gebieden, 10+ km in open veld.
Schaalbaarheid
Het netwerk wordt sterker naarmate meer nodes meedoen.
Technische specificaties
| Frequentie (EU) | 868 MHz (ISM band, vergunningvrij) |
| Bandwidth | 125 kHz, 250 kHz, 500 kHz (configureerbaar) |
| Spreading Factor | SF7 - SF12 (hogere SF = meer bereik, lagere datarate) |
| Coding Rate | 4/5, 4/6, 4/7, 4/8 (forward error correction) |
| Max Payload | 237 bytes per packet (LoRa PHY limiet) |
| Encryptie | AES-256 (optioneel, per kanaal configureerbaar) |
Veelgestelde vragen over het protocol
Is het MeshCore protocol compatible met Meshtastic?
MeshCore is gebaseerd op dezelfde LoRa technologie en delen soortgelijke principes, maar gebruiken verschillende protocol implementaties. Ze zijn niet direct compatible, maar beide werken op 868 MHz in Europa.
Hoe snel is data transmissie in het netwerk?
Dit hangt af van de spreading factor. Met SF7 bereik je ~5-10 kbps, met SF12 (meer bereik) ~250 bps. Het is langzaam vergeleken met WiFi, maar geoptimaliseerd voor bereik en energie-efficiëntie.
Kan ik het protocol aanpassen voor mijn gebruik?
Ja, MeshCore is open source. Je kunt de source code bekijken en aanpassen. Let wel op dat wijzigingen ervoor kunnen zorgen dat je apparaten niet meer compatible zijn met het hoofdnetwerk.
Wat gebeurt er als twee berichten tegelijk worden verstuurd?
De link layer gebruikt CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). Apparaten luisteren eerst of het kanaal vrij is. Bij een collision wordt een random backoff toegepast en wordt het bericht opnieuw verstuurd.
Hoeveel overhead heeft het protocol?
De header is 8 bytes, checksum 2 bytes = 10 bytes overhead. Bij een 237 byte packet is dit ~4% overhead, wat zeer efficiënt is.
Ondersteunt het protocol IPv6 of andere internet protocollen?
Nee, MeshCore is een proprietary protocol specifiek ontworpen voor LoRa mesh netwerken. Het is geen internetprotocol en heeft geen IP adressen. Nodes hebben unieke 16-bit mesh adressen.
Begin met MeshCore development
Nu je begrijpt hoe het MeshCore protocol technisch werkt, kun je ermee aan de slag. Ontwikkel eigen applicaties, draag bij aan de firmware, of experimenteer met protocol optimalisaties.