EN
calendar_today
person G. Alessandria, M. Coriale
tag meshtastic

REPORT_1: Italian Meshtastic Network Analysis

REPORT_1: Italian Meshtastic Network Analysis

Meshtastic is an off-grid messaging protocol based on LoRa (Long Range) technology, which operates in Italy on the 868 MHz band. This system, designed for privacy and resilience, has seen massive growth in recent years, creating a veritable “shadow” infrastructure across our territory that is difficult to map and disconnected from the internet. This network is constantly expanding thanks to the international “maker” community, which creates nodes that enable communication even over long distances (tens of kilometers).

In this report, we aim to conduct an analysis of the network, examining its logical and physical topology to understand the actual coverage of the signal across Italy.

I. DATASET & ROUTING PROTOCOLS

The Italian Meshtastic network consists of all nodes (small IoT devices with a LoRa transceiver) that communicate with each other using a specific routing algorithm which, in a nutshell, broadcasts messages to other nodes that relay them until they reach the final recipient, specified in the header. The confidentiality of the communication is guaranteed by the use of asymmetric encryption. Only a few nodes are also connected to the internet, which is used to forward messages to a central MQTT broker.

It would have been impossible for us to map all the nodes that rely solely on LoRa connections, as they are widely scattered across the territory, and we would have had to carry out a sort of wardriving. Initially, we tried using the “subgraph” of nodes connected to the internet, which are easier to map, but we weren’t satisfied because it didn’t represent an acceptable subset of the total network.

Fortunately, the loraitalia.it community has, for years, provided an MQTT broker configured to leverage many members’ gateway nodes to create a constantly updated and complete map (nodes are removed after 48 hours offline) of the peninsula. Each gateway publishes a list of its neighbors and numerous metrics regarding the connection.

This mapping method is practically one of a kind, as while technically simple, it requires configuration on a significant number of nodes and has not been implemented in many countries because it is not supported by the official firmware.

Note: The dataset is not directly accessible but was obtained by crawling the map available at tools.loraitalia.it/map with the consent of the admins, whom we thank.

II. NETWORK TOPOLOGY METRICSx

We decided to represent the dataset as a directed graph. For each node, we have access to various metadata, including GPS location, name, and various identifiers used by the protocol.

We then represented the graph also as a weighted graph, using the Signal-to-Noise Ratio (SNR), a fundamental parameter in telecommunications, for evaluating radio link quality, as the metric for weighting the edges. We chose SNR over simple distance in kilometers because the signal is influenced by the terrain and other factors. The SNR therefore allows us to map the actual quality of communication between nodes.

COMPILATION_METRICS_TELEMETRY

[METRIC] GRAPH_NODES: 1721
[METRIC] GRAPH_EDGES: 2593
[METRIC] NETWORK_DIAMETER: 16
[METRIC] AVG_CLUSTERING_COEFF: 0.1484
[METRIC] AVG_CONNECTIVITY_DEGREE: 1.50
[METRIC] NETWORK_DENSITY: 0.000876

To maintain structural integrity, the following key topology indices have been highlighted:

  • Network Diameter: A diameter of 16 indicates a moderately long communication path, reflecting the physical structure of the Italian peninsula.
  • Clustering Coefficient: The average clustering coefficient of 0.1484 represents a moderate to high value, meaning nodes form tight local triangles and mesh networks.
  • Connectivity Degree: An average degree of 1.50 indicates highly efficient, sparse mesh topologies.

III. COMMUNITY DETECTION ANALYSIS

To understand how communities are formed inside this Italian network, we ran multiple community detection algorithms on continuously updated data. We observed that the partition results are remarkably stable.

ALGORITHM COMPARISON

We decided to use 0.7 resolution because with the standard parameters it divides too much the communities creating too small groups. For Leiden (both weighted and unweighted) we used ModularityVertexPartition because NCP creates a lot of micro groups.

[ALGORITHM] Louvain Unweighted (Resolution: 0.7) -> 19 clusters
[ALGORITHM] Leiden Unweighted (Partition: ModularityVertexPartition) -> 19 clusters
[METRICS] Adjusted Rand Index (ARI): 0.8639
[METRICS] Normalized Mutual Information (NMI): 0.9339

Note: The partitions are nearly identical. Interestingly, the number of partitions consistently hovers around 20, which correlates perfectly with the number of Italian administrative regions.

After some experiments, we decided to keep as reference the unweighted results, because SNR in our opinion is not a metric on which we can evaluate if one node belongs to one or another community. If there is signal (whether low or good), packets are exchanged and the communication remains active.

meshtastic topology network-analysis community-detection

Author Profile

G. Alessandria, M. Coriale

Software Security & Engineering Students