REPORT_1: Analisi della Rete Meshtastic in Italia
Meshtastic è un protocollo di messaggistica off-grid basato sulla tecnologia LoRa (Long Range), che in Italia opera sulla banda degli 868 MHz. Questo sistema, progettato per garantire privacy e resilienza, ha registrato una crescita enorme negli ultimi anni, creando una vera e propria infrastruttura “ombra” sul nostro territorio, difficile da mappare e completamente disconnessa da Internet. Questa rete è in continua espansione grazie alla comunità internazionale dei “maker”, che realizzano nodi capaci di comunicare anche a lunghissime distanze (decine di chilometri).
In questo report, intendiamo condurre un’analisi della rete, esaminandone la topologia logica e fisica per comprendere la reale copertura del segnale in tutta Italia.
I. ACQUISIZIONE DATI E PROTOCOLLI DI ROUTING
La rete italiana di Meshtastic è composta da tutti i nodi (piccoli dispositivi IoT dotati di ricetrasmettitore LoRa) che comunicano tra loro utilizzando uno specifico algoritmo di routing. Questo algoritmo, in estrema sintesi, effettua il broadcast dei messaggi verso gli altri nodi che fungono da ripetitori fino a raggiungere il destinatario finale specificato nell’header. La riservatezza della comunicazione è garantita dall’uso della crittografia asimmetrica. Solo pochi nodi sono anche connessi a Internet, che viene utilizzato per inoltrare i messaggi a un broker MQTT centrale.
Sarebbe stato impossibile per noi mappare tutti i nodi che si affidano unicamente alla connessione LoRa, poiché sono ampiamente sparsi sul territorio e avremmo dovuto effettuare una sorta di wardriving. Inizialmente, abbiamo provato a utilizzare il “sottografo” dei nodi connessi a Internet, che sono più semplici da mappare, ma non ne siamo rimasti soddisfatti poiché non rappresentavano un sottoinsieme accettabile dell’intera rete.
Fortunatamente, la comunità di loraitalia.it fornisce da anni un broker MQTT configurato per sfruttare i nodi gateway di molti membri, creando una mappa costantemente aggiornata e completa (i nodi vengono rimossi dopo 48 ore offline) della penisola. Ogni gateway pubblica un elenco dei nodi vicini e numerose metriche sulla connessione.
Questo metodo di mappatura è praticamente unico nel suo genere: pur essendo tecnicamente semplice, richiede la configurazione su un numero significativo di nodi e non è stato implementato in molti paesi perché non è supportato dal firmware ufficiale.
Nota: Il dataset non è direttamente accessibile ma è stato ottenuto tramite scraping della mappa disponibile su tools.loraitalia.it/map con il consenso degli amministratori, che ringraziamo.
II. METRICHE DELLA TOPOLOGIA DI RETE
Abbiamo deciso di rappresentare il dataset come un grafo orientato. Per ogni nodo abbiamo accesso a vari metadati, tra cui la posizione GPS, il nome e vari identificativi utilizzati dal protocollo.
Abbiamo quindi rappresentato il grafo anche come grafo pesato, utilizzando il Signal-to-Noise Ratio (SNR), un parametro fondamentale nelle telecomunicazioni per valutare la qualità dei collegamenti radio, come metrica per pesare gli archi. Abbiamo scelto l’SNR rispetto alla semplice distanza in chilometri perché il segnale è influenzato dal terreno e da altri fattori. L’SNR ci permette quindi di mappare l’effettiva qualità della comunicazione tra i nodi.
TELEMETRY_METRICS_LOG
[METRICA] NODI_GRAFO: 1721
[METRICA] ARCHI_GRAFO: 2593
[METRICA] DIAMETRO_RETE: 16
[METRICA] COEFF_CLUSTERING_MEDIO: 0.1484
[METRICA] GRADO_CONNETTIVITA_MEDIO: 1.50
[METRICA] DENSITA_RETE: 0.000876
Per mantenere l’integrità strutturale, sono stati evidenziati i seguenti indici topologici chiave:
- Diametro della rete: Un diametro pari a 16 indica un percorso di comunicazione moderatamente lungo, riflettendo la conformazione fisica della penisola italiana.
- Coefficiente di clustering: Il coefficiente di clustering medio di 0.1484 rappresenta un valore moderato/alto, indicando che i nodi formano triangoli e reti locali affiatate (stile mesh).
- Grado di connettività: Un grado medio di 1.50 indica topologie mesh altamente efficienti e sparse.
III. ANALISI DEL RILEVAMENTO DELLE COMUNITÀ
Per comprendere come si formano le comunità all’interno della rete mesh italiana, abbiamo eseguito molteplici algoritmi di community detection su dati in continuo aggiornamento. Abbiamo osservato che le partizioni risultanti sono straordinariamente stabili.
CONFRONTO DEGLI ALGORITMI
Abbiamo deciso di utilizzare una risoluzione di 0.7 poiché con i parametri standard si frammentano eccessivamente le comunità, creando gruppi troppo piccoli. Per Leiden (sia pesato che non pesato) abbiamo utilizzato ModularityVertexPartition poiché la partizione NCP creava un’infinità di micro-gruppi.
[ALGORITMO] Louvain non pesato (Risoluzione: 0.7) -> 19 cluster
[ALGORITMO] Leiden non pesato (Partizione: ModularityVertexPartition) -> 19 cluster
[METRICHE] Adjusted Rand Index (ARI): 0.8639
[METRICHE] Normalized Mutual Information (NMI): 0.9339
Nota: Le partizioni individuate sono quasi identiche. È interessante notare come il numero di partizioni oscilli costantemente intorno a 20, che corrisponde perfettamente al numero delle regioni amministrative italiane.
Dopo alcuni esperimenti, abbiamo deciso di mantenere come riferimento i risultati non pesati, in quanto l’SNR a nostro avviso non è una metrica su cui valutare l’appartenenza di un nodo a una determinata comunità. Se c’è segnale (basso o ottimo che sia), i pacchetti vengono scambiati e la comunicazione resta comunque attiva.