Università degli Studi di Napoli Federico II
Facoltà di Scienze MM.FF.NN.
Corso di Laurea in Informatica
Tesi Sperimentale di Laurea Triennale
Modelli di Network Sharing: la rete Netsukuku applicata a
dispositivi mobile
Relatori
Candidato
Alessandro Genovese
Prof. Guido Russo
Matricola: 566/1364
Anno accademico 2010/2011
Alla mia famiglia.
"Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto
che non lo sa e la inventa."
Indice
1 Introduzione .................................................................................................................5
2 Attuale tecnologia mobile............................................................................................7
2.1 Introduzione: storia dell'architettura dei dispositivi mobile.............................................7
2.2 La rete 4G.........................................................................................................................9
2.2.1 Introduzione..............................................................................................................9
2.2.2 Le innovazioni in concreto.....................................................................................13
2.3 Wimax............................................................................................................................14
2.3.1 Introduzione............................................................................................................14
2.3.2 Limiti del WiMax...................................................................................................17
2.3.3 Considerazioni........................................................................................................18
3 Reti Mesh....................................................................................................................19
3.1 Introduzione....................................................................................................................19
3.2 Algoritmi di routing in reti Mesh...................................................................................21
3.2.1 OLSR......................................................................................................................21
3.2.2 B.A.T.M.A.N..........................................................................................................23
3.2.3 DYMO....................................................................................................................25
3.3 Mesh Network Application : MANET..........................................................................27
3.3.1 Applicazioni della rete MANET.............................................................................29
3.3.2 La sicurezza delle reti MANET..............................................................................30
3.3.3 Requisiti di sicurezza di una rete MANET.............................................................32
3.3.4 Il cooperative caching.............................................................................................36
4 Netsukuku...................................................................................................................38
4.1 Introduzione sull'attuale architettura internet.................................................................38
4.2 La rete Netsukuku..........................................................................................................40
4.2.1 Introduzione............................................................................................................41
4.2.2 Definizioni..............................................................................................................42
4.2.3 Struttura gerarchica di Netsukuku..........................................................................43
4.3 Algoritmo di routing di Netsukuku ( QSPN ).................................................................45
4.3.1 Differenze con gli attuali protocolli di gestione.....................................................46
4.3.2 Definizioni del routing in Netsukuku.....................................................................47
4.3.3 QSPN v2.................................................................................................................48
4.3.4 Propagazione della mappa......................................................................................51
4.3.5 Procedura iniziale di assegnazione di un nodo ad un gruppo.................................53
4.3.6 Nuovo nodo: connessione a Netsukuku.................................................................54
4.3.7 Transizione di un nodo: passaggio da un Gnodes all'altro......................................54
4.3.8 Connessioni interne ad un gruppo..........................................................................55
4.3.9 Gruppi compatti......................................................................................................56
4.3.10 Identificazione dei nodi........................................................................................56
4.3.11 Mappe gerarchiche................................................................................................58
4.3.12 QSPN v2...............................................................................................................59
Alessandro Genovese 566/1364
Pagina 3 di 109
4.4 Tracer Packet..................................................................................................................61
4.4.1 Proprietà di un tracer packet...................................................................................61
4.4.2 Tracer Packet Acyclic ( ATP ) e il Tracket Packet Continuous CTP .....................62
4.5 ANDNA..........................................................................................................................63
4.5.1 Un esempio di richiesta d'inserimento di un nuovo nodo ......................................63
4.5.2 Gestione degli indirizzi IP......................................................................................65
4.5.3 Considerazioni........................................................................................................67
5 La rete Neurale...........................................................................................................68
5.1.1 Neurobiologia.........................................................................................................70
5.1.2 Il modello matematico delle reti neurali.................................................................73
5.1.3 Apprendimento di una rete Neurale........................................................................76
5.1.4 L'apprendimento supervisionato.............................................................................79
5.1.5 L'apprendimento con rinforzo................................................................................80
5.1.6 Intelligenza Artificiale............................................................................................81
6 Approccio Proposto....................................................................................................84
6.1 Introduzione....................................................................................................................85
6.1.1 La soluzione proposta.............................................................................................86
6.1.2 Creazione e aggregazione di informazioni associative...........................................88
6.1.3 Intelligenza Artificiale nei nodi..............................................................................89
6.1.4 Ricerche in merito all'AI sui mobile......................................................................92
6.2 Privacy ...........................................................................................................................93
7 Applicativo ................................................................................................................95
7.1 Framework di sviluppo : Titanium.................................................................................96
7.2 Codice Sviluppato .........................................................................................................97
7.2.1 Titanium..................................................................................................................97
Alessandro Genovese 566/1364
Pagina 4 di 109
1 Introduzione
Il progredire dei moderni sistemi di trasmissione cellulare ha reso sempre più evidente
l'importanza di poter riuscire a gestire quantità di informzioni elevate; pertanto
assistiamo un modernamento e un superamento dei vecchi sistemi symbian con gli
attuali sistemi operativi iOS, Android. L’utilizzo principale del dispositivo cellulare, in
base a statistiche della Gartner, ha come utilizzo principale sempre le telefonia, e l
utilizzo di sms; in ultimo ma non per questo meno importante è la navigazione tramite
browser. Si porta in evidenza, pertanto, questo dato di fondamentale importanza che
porta all'utilizzo e all'uso degli attuali cellulari come un'estensione dei computer
desktop.
Un problema comune, resta sempre più spesso la ricezione del segnale, nonostante la
copertura nazionale quasi del 75% grazie ad innumerevoli ripetitori ad alta frequenza
sempre più presenti sui tetti delle nostre città.
L’obiettivo primario del progetto è quello di permettere la creazione di una rete
cellulare topologicamente e strutturalmente diversa da quella odierna che permetta la
condivisione del segnale; si è analizzato approfonditamente un protocollo pensato,
creato e sviluppato interamente in Italia da pochi anni ad opera di un ragazzo di
Catania e dal suo gruppo di hacker, Antonio lo Pumo, che ha ipotizzato e creato una
rete anarchica, decentralizzata e autonoma chiamandola Netsukuku. Questo tipo di rete
rende possibile la creazione di una nuova internet grazie all'utilizzo di un sistema non
centralizzato con le caratteristiche di autonomia di ricerca e di condivisione del
segnale permette una decentralizzazione dell'intera strutta topologica di Internet.
I vantaggi per questo tipo di tecnologia sono notevoli e possono essere implementati
anche in paesi in via di sviluppo abbattando le barriere d'ingresso per gli investitori ed
aumentandone conseguentemente la concorrenza favorendo così la crescita economica,
Alessandro Genovese 566/1364
Pagina 5 di 109
oltre che dare la possibilità di poter dare accesso all'informazione a tutte le persone in
maniera democratica.
Il mio studio di tesi si basa sull'idea che questa struttuta topologica possa essere
implementata anche su dispositivi mobili, rendendo questi ultimi in grado di interagire
con l'ambiente esterno grazie all'intelligenza artificiale basando l'apprendimento con il
metodo del reinforcement learning e modificando anche in parte l'algoritmo di
Netsukuku.
Il primo stadio di sviluppo, proposto come tesi di laurea è stato quello di ipotizzare la
creazione di una nuova topologia di rete mobile e di sviluppare nel contempo stesso
una connessione tra due dispositivi cellulare basati su qualsiasi piattaforma presente
sul mercato, adottando come strumento di sviluppo Titanium; l'applicativo ricerca un
dispositivo tramite connessione wifi, si connette creadone una connessione sincrona.
Successivamente viene scelto un numero di cellulare, inviando questo numero all'altro
dispositivo che ne effettua successivamente la telefonata. Gli sviluppi immediatamente
successivi, per poter creare in laboratorio un primo prototipo, saranno quelli di
trasferire il flusso di stream dati audio ad un altro cellulare e successivamente di creare
una piccola rete mobile Netsukuku che permetta l'implementazione e il testing
dell'intelligenza artificiale.
Alessandro Genovese 566/1364
Pagina 6 di 109
2 Attuale tecnologia mobile
2.1 Introduzione: storia dell'architettura dei dispositivi
mobile
L’evoluzione dei sistemi digitali per la comunicazione mobile si può delineare come
segue, in modo molto sintetico:
sistemi di seconda generazione ( 2G ): GSM/DCS ( Global System for
Mobile comunication/Digital Cellular System) in Europa, IS-136 ( o D-AMPS, Digital
AMPS) e IS-95 negli USA, PDC ( Personal Digitial Cellular ) in Giappone che
operano a commutazione di circuito e per la trasmissione dati sono sistemi con limitata
capacità ( fino a 9600 bit/s nel GSM ). In pratica in una rete a “commutazione di
circuito”, quando una sessione di comunicazione viene aperta, si stabilisce un contatto
fra la parte chiamante e quella chiamata. La rete telefonica PSTN, che è di questo tipo,
garantisce la qualità del servizio (QoS) dedicando alla conversazione un circuito fullduplex con una larghezza di banda 64 KHz. Tale larghezza di banda rimane inalterata
indipendentemente dal fatto che le parti siano in conversazione attiva o in silenzio.
Nella tecnologia a "commutazione di circuito" la capacità del canale trasmissivo è
interamente dedicata ad un solo tipo di trasmissione. Per questo motivo non possiamo
utilizzare questa linea per telefonare e contemporaneamente navigare in Internet. Per
fare entrambe le cose dobbiamo avere installata una linea (rete) particolare, ad esempio
una linea ISDN o ADSL.
sistemi di generazione 2+ ( 2G+ ): GPRS, in Europa, IS-136B e IS-95B negli USA;
Alessandro Genovese 566/1364
Pagina 7 di 109
introducono la possibilità di effettuare una comunicazione dati a pacchetto tramite un
terminale mobile ( in particolare per l’accesso ad internet ), con velocità di
trasmissione sensibilmente più alte del GSM ( in teoria fino a circa 170 Kbit/S nel
GPRS ) e con tariffazione a volume di traffico invece che a tempo; utilizzano in modo
più evoluto le tecniche di comunicazione radio dei sistemi 2G;
sistemi di terza generazione ( 3G ): UMTS in Europa e Giappone, CDMA2000 ( o
IS-95C ) negli USA. Questa nuova tecnologia introduce un’interfaccia radio
completamente nuova ( W-CDMA, Wideband Code Division Multiple Access ), che
consente trasmissione dati a velocità molto superiori ( fino a 2Mbit/s ) rispetto a quella
offerta dalla generazione precedente garantendo lo sviluppo di una serie di servizi
paralleli. Per offrire prestazioni assimilabili a quelle di un sistema 3G è prevista
l’introduzione di una nuova interfaccia radio denominata EDGE ( enhanced Data rated
for GSM and IS-136 Evolution ); i relativi sistemi vengono denominati EGPRS/GSM (
Enhanced GPRS/GSM ) e UWC IS-136 ( Universal Wireless Communications ).
Fig. 1 - Topologia dell’attuale rete 3G
Alessandro Genovese 566/1364
Pagina 8 di 109
Fig. 2 – Evoluzione degli standard
2.2 La rete 4G
2.2.1 Introduzione
L'odierna tecnologia disponibile per tutti i dispositivi mobile si attesta attualmente ad
una frequenza di picco in download di 100Mbps in e in upload a 50Mps sotto il nome
di 3GPP LTE ( Long Term Evolution ). Attualmente si sta sperimentando presso i
laboratori di tutto il mondo il nuovo protocollo 4G che via via è in fase di definizione e
pronto per essere "consumato" dalla massa.
La comunicazione mobile comprende due fasi: accesso alla rete mobile, e l'accesso ai
servizi mobili. Tradizionalmente, queste due fasi sono tutti controllati da un operatore
in modo chiuso e proprietario. Nell'era 4G mobile, l'accesso ai servizi di telefonia
Alessandro Genovese 566/1364
Pagina 9 di 109
mobile saranno evoluti ad un nuovo tipo di architettura detta Open Mobile Cloud.
In questo modo, tutte le industrie non wireless, come Google, Microsoft, Oracle, SAP,
GM, Bank of America saranno in grado di fornire servizi ai propri utenti di rete
cellulare, mentre tutt oggi l'accesso alla rete mobile è ancora controllato dagli operatori
tradizionali senza fili, come AT&T, Verizon, T-Mobile e China Mobile. Naturalmente,
gli operatori sono molto riluttanti a seguire questa tendenza, ma per gli utenti mobili e
per il futuro movimento globale, è solo una questione di tempo prima che accada.
Il dispositivo mobile sarà dotato di un'architettura aperta al fine di convergere a
tecnologie di trasmissione radio multiple in un unico dispositivo; gli smartphone del
prossimo futuro saranno infatti basati su un'architettura aperta senza fili (OWA).
Il vantaggio è anche strutturale dal punto di vista dell'architettura dell'intera rete, si
pensi infatti che ogni volta che s'integrava una nuova tecnologia come quella 2g,
UMTS, 3g bisogna effettuare un cambio del dispositivo mobile; invece quando si
evolve nella futura rete 4G si evolverà essendo basata su uno standard wireless, non ci
sarà bisogno di cambiare il proprio dispositivo cellulare.
Sulla base di questa piattaforma OWA, sarà possibile integrare il proprio telefono di
casa, dell'ufficio e del telefono cellulare in un unico dispositivo comune il quale sarà
ritenuto molto di più di un semplice telefono cellulare. In realtà, questo nuovo standard
è un sistema per racchiudere nel proprio mobile una serie di servizi che oggigiorno
sono separati portando il modo di comunicare attraverso internet in una mano.
Inoltre adottando la tecnologia OWA qualsiasi dispositivo portatile elettronico può
essere o diventare un telefono cellulare, semplicemente inserendo una scheda OWA al
suo interno.
Il Wireless è totalmente diverso dalle comunicazioni con cavo, e quindi il rendimento
globale si basa sulle prestazioni di trasmissione il cui spettro è una delle questioni
chiave e di fondamentale importanza.
Alessandro Genovese 566/1364
Pagina 10 di 109
L'efficienza energetica è un altro punto critico per dispositivi mobili, come anche le
interferenze con altre frequenze; sono questioni sulle quali gli sviluppatori hanno dato
una risposta per permetterne la completa integrazione nel mondo reale. Infatti per anni,
molto ricercatori e scienziati da ogni parte del mondo hanno contribuito con progetti
governativi, alla costruzione di questo nuovo standard. Per alcuni, il 4G unifica la
tecnologia cellulare con quella della wireless local area network ( WAN ) in un'unica
soluzione efficiente condividendo la frequenza della banda ed incrementando la
mobilità e la capacità di banda.
Come il progetto 4G anche, le reti MANET ( Mobile Ad-hoc Network) sono ancora in
via di definizione e di sviluppo, infatti è in corso d'opera la definizione di diversi
metodi di routing sviluppato dall'Internet Engineering Task Force come ad esempio è
l'Ad-hoc On-Demand Distance Vector (AODV) definita in RFC 3561 e l'Optimized
Link State Routing Protocol ( OLSR ) definito nel RFC 3626 il quale definisce la
capacità della rete di auto-configurarsi creando connessioni proprio fra i nodi.
L'introduzione della rete MANET non è del tutto casuale infatti questo tipo di network
è è una rete mesh che utilizza la tecnologia wireless esistente per connettere i diversi
nodi ( o dispositivi ) della rete. Ad oggi lo standard di frequenza per la comunicazione
attraverso onde radio è l'802.11a/b/g/n definito dall'IEEE la quale è correntemente
utilizzata giornalmente in ufficio, a casa e in alcuni luoghi pubblici.
La tecnologia 4G è statoa originariamente previsto dalla Defense Advanced Research
Projects Agency (DARPA). Il DARPA ha selezionato l'architettura distribuita, end-toend di protocollo Internet (IP), e credeva in una fase iniziale in una rete peer-to-peer in
cui ogni dispositivo mobile è un ricetrasmettitore e un router per altri dispositivi della
rete e di eliminare la debolezza spoke-and-hub di 2G e 3G sistemi cellulari.
Poiché il sistema 2.5G GPRS, sistemi cellulari hanno fornito una doppia infrastruttura:
i nodi a commutazione di pacchetto per i servizi dati, e nodi di commutazione di
Alessandro Genovese 566/1364
Pagina 11 di 109
circuito per le chiamate vocali. Nei sistemi 4G, l'infrastruttura a commutazione di
circuito viene abbandonato, ed è prevista solo una rete a commutazione di pacchetto.
Questo significa che in 4G, le chiamate voce tradizionali sono sostituiti dalla telefonia
IP.
Fig. 3 - Topologia della futura rete 4G
Sistemi cellulari come quelli 4G consentiranno una mobilità continua, quindi un
trasferimento di file non viene interrotto in caso di spostamento ma continuerà a
trasferire dati da una cella ad un'altra. Il terminale mantiene anche lo stesso indirizzo
IP mentre si muove, nel senso che un server di telefonia mobile è raggiungibile fino a
quando è all'interno dell'area di copertura di qualsiasi server. In sistemi 4G tale
mobilità è prevista dal protocollo IP di versione 6 (IPv6), mentre nelle generazioni
Alessandro Genovese 566/1364
Pagina 12 di 109
precedenti cellulare è stato solo fornito dal livello fisico e di protocolli di livello
datalink. Oltre alla mobilità senza confini, 4G offre interoperabilità flessibile dei
diversi tipi di reti wireless esistenti, come il satellite, wirelss cellulari, WLAN, PAN e
sistemi per l'accesso a reti wireless fisse.
La maggiore larghezza di banda a maggiore velocità di trasmissione dati consentirà
agli utenti la possibilità di utilizzare video ad alta definizione e le videoconferenze
attraverso dispositivi mobili.
Attualmente le sperimentazioni per questo tipo di tecnologia sono ancora in corso.
2.2.2 Le innovazioni in concreto
Il sistema 4G è pensato per fornire una soluzione a banda larga mobile basata tutto su
indirizzi IP che permetta l'integrazione attraverso anche tecnologie wireless agli
smartphones e ad altri dispositivi mobili. Le innovazioni che porterà il 4G saranno
molte, qui sotto vi è riportato un semplice elenco come esempio:
• basata sulla comunicazione dei pacchetto IP
• velocità di trasferimento dati da un minimo di 100 Mbit/s fino a 1Gbit/s
• condivisione delle risorse di rete per supportare più utenti nella stessa cella
simultanemanete
• lunghezza della banda tra 5 fino a 40 Mhz
Alessandro Genovese 566/1364
Pagina 13 di 109
2.3 Wimax
2.3.1 Introduzione
WiMAX è una tecnologia di trasmissione senza fili d'accesso a banda larga. Ha la
possibilità, al pari di altre tecnologie wireless, di essere utilizzato su molti tipi di
territorio (si possono utilizzare sistemi WiMAX in ambienti dall'urbano al rurale).
A seconda della normativa del paese di riferimento, le frequenze usate da Wimax
potrebbero essere soggette a concessione in licenza (cioè assegnate in uso esclusivo
dalle istituzioni governative preposte a enti e aziende, solitamente dietro compenso)
oppure trovarsi su bande "non licenziate" (cioè essere frequenze per il cui utilizzo non
è necessaria licenza, ma possono essere necessarie autorizzazioni).
La tecnologia supporta velocità di trasmissione di dati condivisi fino a 70 Mbit/s in
aree metropolitane. La tecnologia di Wimax non richiede necessariamente visibilità
ottica, ma senza di essa le prestazioni sono decisamente inferiori e la connettività
ristretta ad aree limitate. Secondo i proponenti di WiMAX l'ampiezza di banda sarebbe
sufficiente a supportare simultaneamente almeno 40 aziende con connettività di tipo
T1 e 70 abitazioni con connettività al livello di una DSL da 1 Mbit/s.
Sulla base delle aspettative sul Wimax, si prevedeva di poter fornire copertura a banda
larga per un ampio raggio (fino a 50 km) da ciascuna stazione base, con la conseguente
possibilità di utilizzo della tecnologia per ridurre il digital divide. I test condotti sul
campo hanno però rivelato prestazioni decisamente inferiori. In particolare, da una
sperimentazione della fondazione Ugo Bordoni condotta in Italia tra il 2005 e il 2006 è
emerso che, sulla frequenza di 3,5 GHz in condizioni di visibilità ottica ostruita e non,
le prestazioni sono accettabili per distanze di qualche chilometro, che si riducono a
Alessandro Genovese 566/1364
Pagina 14 di 109
poche centinaia di metri in condizioni di assenza di visibilità ottica. Va tuttavia notato
che la sperimentazione è stata condotta con un limite alla potenza massima di
emissione EIRP (Equivalent Isotropically Radiated Power) di 36 dBm ovvero 4 Watt.
Vi sono inoltre delle complicazioni dovute alla normativa, che varia comunque da
stato a stato, che potrebbero limitare lo sfruttamento del Wimax per questi fini. [1]
I proponenti sperano che questa tecnologia nel giro di pochi anni venga adottata anche
per i computer portatili e per i PDA. Occorre però precisare che il vero roaming a
banda larga di tipo cellulare senza fili si baserà sullo standard 802.20, peraltro
compatibile con WiMAX.
Fig. 4 - Topologia della rete Wi-Max
Alessandro Genovese 566/1364
Pagina 15 di 109
Di seguito vengono elencate alcune tra le caratteristiche principali di WiMAX, che
secondo i proponenti renderebbero lo standard WiMAX competitivo:
- Flessibilità: WiMAX è in grado di supportare sistemi punto-multipunto (P-MP) e
multipunto-multipunto (MP-MP, detti anche MESH).
- Sicurezza: WiMAX implementa diverse tecniche di crittografia, sicurezza ed
autenticazione contro intrusioni da parte di terzi.
- Qualità del servizio (QoS) - WIMAX supporta 5 tipologie di qualità del servizio:
Unsolicited Grant Service (UGS) per sistemi real time di dimensione fissa (es. VoIP),
Real-Time Polling Service (rtPS) per sistemi real time di dimensione variabile (es.
applicazioni video), Non Real-Time Polling Service (nrtPS) per flussi di dati tolleranti
al ritardo (es. applicazioni FTP), Extended Real-Time Polling Service (ErtPS) simile al
rtPS per flussi real time a dimensione fissa (es. VoIP con soppressione di silenzio),
Best Effort (BE) per flussi di dati dove non è richiesto livello minimo di servizio.
- Throughput - utilizzando lo schema di modulazione IEEE 802.16 WIMAX trasporta
una grossa quantità di traffico con un alto livello di efficienza dello spettro e tolleranza
ai segnali riflessi, circa due volte e mezzo superiore a HIPERLAN.
- Installazione - WiMAX non richiede equipaggiamenti particolari. Un’antenna può
essere sufficiente per l’equipaggiamento base di una SS.
Grazie allo standard 802.16e si permettono connessioni in ambienti mobili fino a
120 km/h. Lo standard di tipo “open”, unito all’economia di scala dovuta alla
produzione dei componenti WiMAX, dovrebbe ridurre notevolmente i costi per
fornitori ed utenti, assicurando la copertura tra Base Station e Subscriber Station, ed
elevata velocità di banda. In realtà i costi delle apparecchiature si sono rivelati
decisamente più elevati rispetto a quelle necessarie per altri sistemi wireless come ad
Alessandro Genovese 566/1364
Pagina 16 di 109
esempio HIPERLAN.
La capacità di trasmettere attraverso territori parzialmente ostruiti (es. monti), grazie
alla modulazione utilizzata, questa è una delle peculiarità del WiMAX, anche se le
sperimentazioni hanno rilevato un forte condizionamento delle prestazioni in
condizioni simili, e un rapido decadimento della banda. L'IEEE ha sviluppato lo
standard 802.16a ed ha rilasciato l'802.16e, che non richiede che stazione trasmittente
e riceventi siano in collegamento a vista, seppur con prestazioni nettamente ridotte.
2.3.2 Limiti del WiMax
Come tutte le connessioni wireless, l'antenna emittente e ricevente devono trovarsi
preferibilmente in linea di vista. Ciò non significa solamente che il segnale e la
velocità di connessione decadono drasticamente se fra le due antenne si frappongono
ostacoli, ma che lo stesso accade per il semplice verificarsi di pioggia, neve o nebbia,
qualunque sia la frequenza di irradiazione del segnale e il protocollo utilizzato (il
segnale è sensibile all'acqua in quanto massa che si interpone fra le due antenne
trasmittenti, mentre ad esempio non risente di un forte vento).
Aumentando la frequenza e migliorando i protocolli, aumenta la banda mediamente
disponbile per gli utenti, ma non muta la stabilità della connessione wireless.
La perdita di informazione avviene dinanzi all'aumento di una massa che si
contrappone alla frequenza del segnale e diminuisce anche la potenza.
Tanto maggiore è la frequenza, tanto più onde di ampiezza millimetrica portano a una
perdita di segnale e di informazione davanti ai più piccoli ostacoli.
La tecnologia del WiMax permette di viaggiare fino ad un massimo di 70Mbps al
secondo ma come tutte le connessioni Wireless broadcast all'aumentare degli utenti
connessi la frequenza di connessione diminuisce poichè il concetto è di condividere la
Alessandro Genovese 566/1364
Pagina 17 di 109
portata dell'antenna ( 70 Mbps ) tra tutti gli utenti che accedono attraverso ad essa alla
rete Internet.
2.3.3 Considerazioni
Secondo alcuni WiMAX sostituirà l'UMTS, anche se siamo lontani da una
miniaturizzazione degli apparati WiMAX tale da poterli inserire in un cellulare.
Attualmente le maggiori tecnologie 3G, CDMA2000 e UMTS, offrono entrambe dei
servizi che anche WiMAX metterà a disposizione degli utenti: accesso a internet a
banda larga senza fili e telefonia. L'UMTS è stato anche arricchito con una
funzionalità di Time Division Duplexing che rende le sue prestazioni in un certo modo
comparabili con quelle del WiMAX.
I sistemi cellulari di terza generazione godono del fatto che possono sfruttare in parte
l'infrastruttura dei sistemi cellulari precedenti e gli utenti possono sempre contare sul
fatto che, nel caso si trovino in zone in cui non sono disponibili i servizi 3G, si
possono comunque avere a disposizione le funzionalità tradizionali della telefonia
mobile. Certamente gli operatori che hanno pagato costose licenze per le bande
dell'UMTS vorranno sfruttare appieno l'investimento e difficilmente lasceranno spazio
ad altri sistemi.
I sistemi cellulari di quarta generazione, con banda larga, bassa latenza e con reti
completamente basate su IP (anche per il traffico vocale) rappresentano il prossimo
passo per le tecnologie mobile attualmente esistenti sul mercato e comunemente
utilizzate, rispettivamente con i progetti 3GPP Long Term Evolution e Ultra Mobile
Broadband. In entrambi i casi, le “air interface” attuali saranno modificate, a favore
della tecnica OFDMA per il downlink e diverse varianti dell'OFDM per l'uplink. Tutto
questo fornirà un accesso a internet più veloce di quello del WiMAX.
Alessandro Genovese 566/1364
Pagina 18 di 109
3 Reti Mesh
3.1 Introduzione
Una rete Mesh è un tipo di rete in cui ogni nodo non deve solo acquisire e diffondere i
propri dati, ma ha anche la funzione di ridirezionare l'intero traffico e quindi fungere
da router per tutti gli altri nodi della stessa rete.
Quando si utilizzano tecniche d'instradamento dei pacchetti dati (routing), si deve
necessariamente tenere ben presente che il messaggio si propaga lungo un percorso,
saltando da un nodo all'altro fino al raggiungimento della destinazione; per assicurare
la disponibilità tutti i suoi percorsi, le rete in oggetto deve consentire connessioni con
tutta la rete e deve essere continuamente autoconfigurante in caso di broken link.
Una rete mesh i cui nodi sono tutti collegati tra di loro è una rete completamente
connessa. Reti di questo tipo è ad esempio la MANET ma questa in più ha a che fare
con i problemi introdotti dalla mobilità dei nodi, poichè specificamente pensata alla
connessione di nodi in un'ambiente in continua mutazione come quello dei dispositivi
mobile.
Le reti wireless mesh sono originariamente sviluppate per applicazioni di scopo
militari. Negli ultimi dieci anni le dimensioni, costi e requisiti di alimentazione della
radio è diminuita, permettendo a più radio di essere inserirte all'interno di ogni
dispositivo che agisce come un nodo della rete.
Nel corso degli anni si è teorizzato anche l'utilizzo della teoria dei giochi per
permettere di analizzare le strategie per l'allocazione delle risorse e l'instradamento dei
pacchetti.
Alessandro Genovese 566/1364
Pagina 19 di 109
I benefici delle reti Mesh sono la struttura auto organizzativa, una bassa manutenione,
un robusto e dinamico algoritmo di rintracciamento dei nodi ( routing ) anche in caso
di broken link; d'altro canto esistono anche degli svantaggi, uno fra tutti è il traffico
addizionale che serve per mantenere in comunicazione fra loro i singoli nodi della
rete.
Fig. 5 - Topologia di una rete Mesh
Alessandro Genovese 566/1364
Pagina 20 di 109
3.2 Algoritmi di routing in reti Mesh
Il termine che indica l'instradamento dei pacchetti di informazione in una rete è detto
routing, ovvero una serie di protocolli relativi allo strato network che permettono ai
router di scambiarsi informazioni tra loro al fine di costruire delle tabelle di routing
che permettano il corretto instradamento dei pacchetti verso la giusta destinazione.
Esistono differenti tipologie di routing nelle reti mesh, le quali vengono qui
successivamente riportate soltanto per il fine di un miglior apprendimento della tesi in
oggetto:
– OLSR
– B.A.T.M.A.N.
– DYMO
3.2.1 OLSR
OLSR (Optimized Link State Routing) è un protocollo proattivo ed è quindi adatto a
topologie particolarmente mobili in cui i nodi comunicano molto tra loro creando molti
cammini diversi. Questo protocollo è un’ottimizzazione per le Manet del classico
algoritmo link state (utilizzato in protocolli per reti cablate come OSPF ).
Il concetto chiave alla base dell’ottimizzazione effettuata è quella dei multipoint relays
(MPR), ovvero l’insieme di nodi vicini ad un hop che permettono ad un nodo di
raggiungere tutti i suoi vicini a due passi (o hop). Per creare questo sottoinsieme di
vicini si utilizzano i messaggi di hello inviati periodicamente a tutti i vicini a uno e due
passi ( o hop ). Una volta ottenuto l’insieme di tutti i vicini, il nodo estrae da esso gli
Alessandro Genovese 566/1364
Pagina 21 di 109
MPR e la lista dei nodi dai quali esso é stato eletto MPR (detti Multipoint Relay
Selector set). Utilizzando queste informazioni OLSR introduce tre principali
ottimizzazioni:
• Se un nodo riceve un messaggio in broadcast ne fa il forward solo se appartiene all’MPR del nodo mittente. Si limita in questo modo il flooding nell’intera
rete
• le informazioni sullo stato dei collegamenti vengono generate solo da nodi che
sono stati eletti come MPR da almeno uno dei propri vicini
• quando un nodo crea un messaggio di topology update “può” decidere di
inserirvi solo le informazioni riguardanti i collegamenti con i nodi dai quali è stato
eletto MPR. In questo caso, a differenza dei comuni protocolli link state, si diffondono
solo informazioni parziali sulla rete.
Il team di sviluppo che ha ideato la rete Manet sta vagliando una seconda versione del
protocollo OLSR, OLSRv2. Questa nuova versione, si basa sugli stessi elementi
chiave del suo predecessore, incorporando però una struttura di segnalazione più
flessibile, per esempio, alcune semplificazioni nella struttura dei messaggi che
vengono scambiati dai nodi e una codifica degli indirizzi IP più compatta.
Alessandro Genovese 566/1364
Pagina 22 di 109
Fig. 6 – I MultiPoint Relays: solo i pacchetti evidenziati effettuano il forward dei
messaggi
3.2.2 B.A.T.M.A.N.
È un protocollo di routing attualmente in via di sviluppo da parte della community
"Freifunk" di Berlino e destinato a sostituire l'OLSR; attualmente si contano ben 3
versioni di sviluppo differenti che colmano determinati problemi insiti in questo tipo di
protocollo di routing. L'ultima release consiste nell'elezione di un computer o un router
centrale che può essere collegato a diversi tipi di reti wired o wireless. Questo mette in
grado di inoltrare i dati di rete in più di una direzione, senza alcun ritardo nella
ritrasmissione.
Alessandro Genovese 566/1364
Pagina 23 di 109
Spesso nelle precedenti release questo protocollo era soggetto a fenomeni insoliti di
freeze o a tempi per la determinazione del percorso migliore attraverso la rete più
lunghi del solito. Questi sono stati affrontati e risolti per prevenire questo tipo di
problema e di permettere un routing più affidabile e veloce.
Un nodo può ora informare la rete che fornisce l'accesso a Internet. Altri nodi
utilizzare tali informazioni per valutare se c'è una connessione a Internet vicino a loro
e che cosa è la larghezza di banda disponibile. Si può usare un gateway predefinito
oppure consentire allo stesso algoritmo BATMAN di determinare quale gateway
utilizzare, sulla base di criteri specifici come la velocità di connessione.
Annunciando i dispositivi non in esecuzione BATMAN stesso è stato anche incluso in
questa versione. Di solito questo metodo viene utilizzato per collegare le reti di homemesh-network. Un installazione di un'antenna sul tetto permette di connettere alla rete
wireless attraverso il protocollo di routing BATMAN e il resto della casa sarà presente
e reso disponibile, quindi, anche dagli altri nodi della rete wireless.
La maggior parte delle altre implementazioni wireless per quanto concerne i protocolli
di routing operano sul livello 3 dello stack ISO-OSI, che significa che lo scambio di
informazioni di routing avviene attraverso pacchetti UDP. Batman opera sulla pila ISO
/ OSI al livello 2.
BATMAN è un punto cruciale per la decentralizzazione della conoscenza riguardante
il percorso migliore da attraversare nella rete; si elimina il concetto che un solo nodo
possiede tutti i dati. Utilizzando questa tecnica, la necessità per la diffusione di
informazioni riguardanti le modifiche della rete per ogni nodo della rete diventa
superfluo. Il singolo nodo salva solo informazioni riguardanti la "direzione" e i dati
che vengono trasmessi da nodo a nodo. In questo modo è possibile creare una rete di
intelligenza collettiva.
È stato dimostrato che questo modello di routing da alti livelli di stabilità, ma testato
Alessandro Genovese 566/1364
Pagina 24 di 109
nella vita reale diventa un protocollo abbastanza lento; correntemente è in fase di
miglioramento con le sue 3 diverse versioni per ottimizzare questo ed altri tipi di
problemi riscontrati in ambito di testing.
3.2.3 DYMO
Il protocollo DYMO (Dynamic Manet On-demand) è l’ultimo nato tra i protocolli di
routing delle Manet ed è di tipo reattivo ed è il diretto successore della AODV ( Ad
hoc On-Demand Distance Vector). Le operazioni principali svolte da DYMO sono la
route discovery e il route management.
Nel processo di route discovery il nodo sorgente S, volendo comunicare con il nodo D,
manda in broadcast un pacchetto di Route Request (RREQ) nell’intera rete. Durante
questo processo di flooding ogni nodo intermedio inserisce nella sua tabella di routing
le informazione sul percorso verso il nodo S. Quando il nodo destinazione D riceve la
RREQ risponde al nodo sorgente con un messaggio di Route Reply (RREP) che viene
spedito in unicast verso S. Ogni nodo intermedio, prima di fare il forward della RREP,
memorizza nella sua tabella di routing una riga con le informazioni sulla rotta verso D
(forward route) e provvede all’inoltro del pacchetto verso S sfruttando la rotta inserita
al passaggio della RREQ. Quando S riceve la RREP la rotta tra i due nodi è stabilita e
la sorgente può iniziare l’invio dei pacchetti dati.
DYMO utilizza i Sequence Number per evitare di creare rotte cicliche. Inoltre questi
Sequence Number permettono anche di evitare l’utilizzo da parte dei nodi di
informazioni di routing vecchie.
Per reagire in maniera corretta ai frequenti cambiamenti della topologia di rete i nodi
monitorano i collegamenti per i quali sono nodi intermedi. Per fare questo utilizza i
messaggio di hello con i quali viene verificata l’effettiva connettività con i nodi vicini.
Quando viene ricevuto un pacchetto per una rotta che non è più disponibile il nodo
Alessandro Genovese 566/1364
Pagina 25 di 109
sorgente della comunicazione viene informato dell’impossibilità di effettuare la
consegna tramite un messaggio di Route Error (RERR). Al ricevimento del messaggio
di RERR il nodo sorgente si preoccupa di iniziare nuovamente un processo di
discovery.
Una caratteristica importante di DYMO è quella di prevedere delle estensioni. Infatti il
formato dei pacchetti è stato studiato in modo tale da permettere in un futuro la
gestione da parte del protocollo di estensioni per migliorare o aggiungere nuove
funzionalià al protocollo come per esempio la gestione della sicurezza del routing.
Un’altra caratteristica innovativa di DYMO è quella di avere una struttura dei
messaggi modulare. Infatti ogni messaggio è composto da una parte fissa (header) e da
una parte che dipende dal tipo di messaggio, il Routing Element (RE).
Ogni RE è a sua volta composto da uno o più Routing Block (RBlock). Gli unici
messaggi per cui questo schema non è applicato sono i messaggi di Routing Error che
hanno un formato proprio.
Quando un nodo S vuole iniziare un processo di discovery verso un nodo D crea un
nuovo messaggio DYMO all’interno del quale crea un RBlock indicando D come
destinazione della RREQ e invia il messaggio in broadcast. Quando D riceve il
messaggio risponde con un ulteriore pacchetto DYMO creando a sua volta un RBlock
contenente le informazioni riguardanti la rotta e lo spedisce, questa volta in unicast,
verso S. Durante questo processo di discovery ogni nodo intermedio che riceve i
messaggi di RREQ o RREP elabora tutti i Rblock in esso contenuti inserendo o
aggiornando le rotte da essi descritte. Inoltre può a sua volta creare un nuovo RBlock
contenente le sue informazioni di routing. Queste nuove informazioni verrano così
elaborate da tutti i nodi successivi che aggiorneranno le proprie rotte con dati che
potrebbero abbreviare i successivi processi di discovery.
Alessandro Genovese 566/1364
Pagina 26 di 109
3.3 Mesh Network Application : MANET
Una rete MANET (Mobile ad hoc Network) è una rete auto configurante composta da
mobile devices connessi fra loro attraverso onde radio.
Soluzioni cablate esistono da molto tempo, una risposta per un traffico sempre più
crescente dei dispositivi che necessitano di una connessione wireless esiste ed è un
esempio concreto: la MANET è basata su una rete senza fili su standard IEEE 802.11.
La MANET è spesso definita come segue una "rete ad hoc per mobile" poichè è una
soluzione autonoma connessa tramite collegamenti wireless; i routers sono liberi di
muoversi in modo completamente autonomo e random e si organizzano da soli
arbitrariamente. La topologia di questo network per questo semplice motivo è in
continua mutazione in maniera del tutto casuale e rapidamente imprevedibile.
Come si può facilmente immaginare, la situzione che si viene a definire in una rete ad
hoc come questa è messo in primo piano la questione della robustezza e di
connettività, reperibilità e di routing della stessa rete per poter esistere.
L'intera rete non è necessariamente connessa ad una infrastruttura wired ( connessioni
via cavo ).
La rete MANET è un network di comunicazione esiste senza aver bisogno di una
infrastruttura di rete pre-esistenti. Nelle reti cellulari, ad esempio, esiste una
infrastruttura di rete che è rappresentata dalle stazioni che emanano il segnale che
permette la connessione del dispositivo alla rete. Quindi l'architettura è basata su un
client che necessita del server ( base station ) per poter comunicare con qualsiasi altro
dispositivo della rete cellulare.
Infatti tutti i dispositivi offrono la loro collaborazione per sostenere la comunicazione
Alessandro Genovese 566/1364
Pagina 27 di 109
all'interno della rete; questa tecnologia è adatta a piccole reti con poco traffico
incosistente. Se si tentasse di usare questa tecnologia per connettere migliaia di
telefoni, l’intera rete collasserebbe poichè la rete è strutturata in modo tale che ognuno
deve inoltrare il traffico di un altro dispositivo presso altri dispositivi e quindi avere
funzione di router. La sfida principale nella costruzione di una MANET è dotare ogni
dispositivo di mantenere costantemente le informazioni necessarie per instradare il
traffico correttamente.
Le caratteristiche peculiari di questo tipo di rete possono essere riassunte nei seguenti
punti:
• comunicazione via wireless
• ruolo sia di host che di router
• inesistenza di un'unità centrale di controllo
• topologia di network dinamica – frequenti updates per il routing
• autonomia
• vincoli energetici
• sicurezza limitata
Ogni terminale radio è in genere alimentato da fonte di alimentazione di energia
limitata (con batterie ricaricabili), quindi il consumo elevato di energia di ciascun
terminale radio potrebbe essere suddiviso generalmente in tre parti, il consumo di
energia per il trattamento dei dati all'interno del dispositivo mobile, il consumo di
energia per trasmettere le proprie informazioni per la destinazione e, infine, il consumo
di energia quando il dispositivo è usato come un router, vale a dire la trasmissione
delle informazioni ad un altro dispositivo della stessa rete. Com è ben facile notare il
consumo di energia è una questione critica nella progettazione delle reti ad hoc di
Alessandro Genovese 566/1364
Pagina 28 di 109
questo tipo.
Gli smartphone odierni hanno, di solito, una riserva limitata di energia ma oggigiorno
un'elevata capacità di calcolo.
Essi dipendono fortemente da altri host e le risorse per l'accesso ai dati e l'elaborazione
delle informazioni in quanto topologicamente strutturate client/server ( antenne radio ).
Un altro grave problema delle reti MANET è la reperibilità dei dati: se una risorsa
qualsiasi come potrebbe esserlo un file è disponibile unicamente su un certo nodo della
rete e questo si disconnette, per un qualsiasi motivo ( ad esempio ha esaurito le batterie
oppure perchè si trova in una posizione geografica in cui non c’è abbastanza segnale )
la risorsa in questione diverrebbe indisponibile per una quantità indefinibile di tempo
(potenzialmente anche infinito). In tal caso esistono delle soluzioni per ovviare a
problemi di reperibilità delle informazioni che consistono in funzioni di caching e di
replicazione dei dati, studiati appositamente per le reti MANET.
3.3.1 Applicazioni della rete MANET
Attualmente questo tipo di rete è usata in diversi ambiti:
• esercitazioni militari
• situazioni limite di disastri
• operazioni coperte da segreto militare
• business meeting urgenti
• acquisizione di informazioni per Intelligenza Artificiale ( Robot )
Alessandro Genovese 566/1364
Pagina 29 di 109
Un settore di ricerca interessante è la comunicazione fra veicoli. Si tratta di un settore
in cui le reti ad hoc potrebbero veramente cambiare il modo di comunicare.
Tali reti possono essere utilizzate anche per consentire una copertura di comunicazione
delle telecomunicazioni in scenari di guerra o in situazione limite in cui vengono
impiegati vari dispositivi ad intelligenza artificiale attivamente ed attualmente in
operazioni, coperte e non, da segreto militare in guerre come quella dell'Afghanistan.
3.3.2 La sicurezza delle reti MANET
Nello specifico di reti wireless sono nate per sopperire ad un'esigenza in cui è
necessario offrire la possibilità a più persone, situate in una precisa area, di comunicare
e scambiare informazioni connettendo i dispositivi che hanno a disposizione anche se
non sono disponibili reti fisse a cui collegarsi. Ad esempio, in caso di intervento della
protezione civile, le unità che accorrono possono aver bisogno di comunicare tra loro e
fornirsi informazioni per garantire una migliore organizzazione degli aiuti.In queste
situazioni limite, è possibile ricorrere alle reti mobili ad hoc (MANET - Mobile Adhoc NETworks). Una rete mobile ad hoc è costituita dai dispositivi stessi che
utilizzano soluzioni appositamente studiate per collaborare a mantenere attive le
comunicazioni.
Una rete wireless è per natura maggiormente vulnerabile rispetto ad una normale rete
cablata, in quanto il canale di comunicazione radio offre maggiori opportunità ad un
eventuale attaccante di poter accedere alle infomrazioni in transito tra i vari dispositivi.
Il motivo principale è che il campo di copertura non può essere completamente
circoscritto; infatti le antenne utilizzate per la trasmissione radio sono solitamente
omnidirezionali ed è quindi impossibile limitare la ricezione di una trasmissione al
solo destinatario quando vi siano diversi riceventi nel raggio di copertura. Inoltre nel
Alessandro Genovese 566/1364
Pagina 30 di 109
caso di reti indoor è altrettanto impossibile limitare la copertura radio solo all’interno
dell’edificio interessato; un eventuale attaccante può quindi avere accesso al canale
anche non trovandosi nell’area di utilizzo lecito della rete.
Nella realizzazione di queste reti, un aspetto critico e rilevante è occupato dalla
sicurezza: le reti devono essere infatti formate da dispositivi fidati detti "trusted", per
evitare che qualche malintenzionato si inserisca con un proprio dispositivo nella rete e
riesca a danneggiare la comunicazione al suo interno.
Alla luce di queste esigenze di sicurezza, CEFRIEL ha realizzato, nell'ambito del
progetto MAIS ( spiegazione del progetto riportata più avanti ), una soluzione in grado
di proteggere la rete spontanea che si crea tra dispositivi "trusted" in modo da evitare
che un intruso possa attaccare la rete stessa alterandone il corretto funzionamento.
La CEFRIEL è oggi una società consortile a responsabilità limitata senza scopo di
lucro i cui soci sono il Politecnico di Milano, l'Università degli Studi di Milano,
l'Università degli Studi di Milano-Bicocca, l’Università degli Studi dell’Insubria, la
Regione Lombardia e 15 aziende multinazionali operanti nel settore ICT e dell'editoria
multimediale.
Alla base della soluzione ideata da CEFRIEL si trova il protocollo di routing sicuro ASAODV che fa uso di tecniche crittografiche per garantire la sicurezza della
comunicazione ed è stato ottimizzato per minimizzare l'impatto delle operazioni
richieste da queste tecniche.CEFRIEL ha inoltre realizzato un'interfaccia semplice e
intuitiva che permette di indicare quali tra i partecipanti che formano la rete sono
considerati "fidati" e quali no.
Prima di considerare il problema della sicurezza, dovremmo considerare con molta
cura se la sicurezza è richiesta o se realmente qualcuno all'esterno può vedere i
pacchetti inviati cosa contengono. Il problema della sicurezza non è sempre critico, ma
potrebbe costare molto rendere un network ancora più sicuro. Alcune volte ci si rende
Alessandro Genovese 566/1364
Pagina 31 di 109
conto che esiste un trade-off tra i costi e la sicurezza.
3.3.3 Requisiti di sicurezza di una rete MANET
In una rete mobile ad-hoc oltre ai requisiti di sicurezza tradizionali, come
autenticazione e integrità dell’informazione, si aggiungono requisiti dettati dal fatto
che la rete è collaborativa. I requisiti di sicurezza di una MANET possono essere
dunque così riassunti:
Disponibilità - In una rete wireless è molto facile portare a termine attacchi
DoS (Denial of Service) immettendo una grande quantità di pacchetti non richiesti in
rete e rendendo così inutilizzabile il canale. E` altrettanto facile disturbare la
trasmissione a livello fisico con forti segnali radio. Inoltre, a causa della limitata
autonomia dei dispositivi tipicamente utilizzati in queste reti, è possibile portare un
attacco di tipo battery exhaustion. Questi sono tutti attacchi che minano la disponibilità
della rete.
Autenticazione - Poichè in una rete wireless chiunque si trovi nel raggio di
copertura radio può inviare messaggi e riceverne, è essenziale che, tramite meccanismi
di autenticazione, le due parti coinvolte in una comunicazione siano certe delle
rispettive identità prima di iniziare qualsiasi scambio di dati.
Autorizzazione - L’autorizzazione è il passo successivo all’autenticazione.
Infatti, avvenuta l’autenticazione, viene concessa al nodo di usufruire unicamente dei
servizi per i quali è stato autorizzato.
Confidenzialità - Poichè la comunicazione si svolge su canale radio e, come
detto in precedenza, è impossibile limitare la copertura al solo destinatario, occorre, a
volte, cifrare tutto il traffico per non permettere ad un nodo in ascolto di ottenere
Alessandro Genovese 566/1364
Pagina 32 di 109
informazioni intercettando i pacchetti in arrivo.
Integrità - A causa della tipica configurazione collaborativa delle Manet è essenziale per il ricevente essere sicuro che, in una comunicazione multihop, il
messaggio arrivato sia il medesimo spedito dalla sorgente; in altre parole si vuole
evitare che nodi avversari possano modificare il contenuto dei messaggi lungo il
tragitto. Per questo alcuni protocolli di rete possono allegare al messaggio dei MAC
(Message Autentication Code). Una volta che il pacchetto è giunto a destinazione il
nodo può verificare l’integrità del contenuto tramite appositi algoritmi applicati al
messaggio stesso.
Non ripudio - Il non ripudio è la caratteristica per la quale un nodo non può
negare di aver generato un pacchetto. Grazie a questo requisito si possono individuare
i nodi colpevoli di un tentativo di attacco DoS e escluderli dalla rete. Si possono
inoltre identificare nodi mal funzionanti che immettono in rete messaggi inconsistenti.
Privacy e anonimato - In una rete wireless, a differenza di una rete cablata, è
importante, in certi scenari di utilizzo, mantenere privata la posizione dei nodi
all’interno della rete anche per non facilitare l’attacco da parte di un nodo avversario.
Infatti, conoscendola, un nodo avversario potrebbe facilmente immettersi lungo il
percorso dei pacchetti per effettuare un tentativo di attacco.
Una delle vulnerabilità fondamentali delle MANET sta nella loro architettura peer to
peer aperta. Infatti, a differenza delle reti cablate che hanno router dedicati, ogni nodo
o dispositivo della rete svolge la funzione di router inoltrando pacchetti per altri nodi.
Inoltre il canale radio è accessibile sia a utenti legittimi che malintenzionati. Come
conseguenza non vi è una chiara linea di difesa che può essere intrapresa dal punto di
vista della progettazione per rendere sicura la rete. Infatti la distinzione tra rete interna
e mondo esterno non è ben definita e non vi è un punto preciso in cui si possa
posizionare un meccanismo di difesa specifico. Oltre a questo i dispositivi mobili, e
Alessandro Genovese 566/1364
Pagina 33 di 109
perciò i dati in essi contenuti, sono soggetti alla compromissione e al furto vero e
proprio, specialmente se si parla di dispositivi di basso profilo con protezioni hardware
e software deboli; di conseguenza degli attaccanti potrebbero penetrare all’interno
della rete per mezzo di questi dispositivi che restano l’anello debole della catena di
sicurezza.
D’altra parte, la ristrettezza delle risorse nelle MANET costituisce anch’essa un
problema non trascurabile nella progettazione dei meccanismi di sicurezza. Il canale
radio dispone di una banda limitata e condivisa tra tutti i dispositivi e non è adatto a
meccanismi di sicurezza che richiedano un grosso scambio di dati. La potenza di
calcolo dei nodi e anch’essa limitata; si pensi a dispositivi come PDA che non riescono
a compiere agevolmente operazioni ad alto costo computazionale come il calcolo di
firme o verifiche tramite crittografia asimmetrica. Poichè i dispositivi mobili sono
tipicamente alimentati a batteria, anche le risorse in termini di energia e autonomia
possono essere limitate.
Fig. 7 – esempio di una possibile rete MANET
Alessandro Genovese 566/1364
Pagina 34 di 109
Per la progettazione dei meccanismi di sicurezza si deve tenere conto anche che il tipo
di comunicazione wireless e l’alta mobilità presente nelle MANET evidenziano una
dinamica molto più elevata se messa a confronto con quella delle reti cablate. Inoltre il
canale radio è soggetto a interferenza ed errori e mostra caratteristiche di banda e
ritardo variabili nel tempo. Nonostante queste caratteristiche dinamiche un utente può,
mentre si sposta da un capo all’altro della rete, richiedere in qualsiasi momento e in
ogni punto i requisiti di sicurezza.
Queste caratteristiche proprie delle manet portano alla definizione di una soluzione per
la sicurezza che consegua sia una protezione globale che buone prestazioni di rete.
Il meccanismo di sicurezza deve essere dislocato su molte individualità. La strategia
per la sicurezza adottata da ognuno deve essere proporzionata alle sue limitate risorse
in termini di capacità computazionali, memoria, capacità di comunicazione ed energia
disponibile; per essere completo, deve essere necessariamente dislocato su diversi
livelli dello stack protocollare in modo che ogni livello contribuisca con una linea
difensiva. Non é possibile ottenere una protezione totale agendo soltanto su di un
livello.
La soluzione per la sicurezza della rete deve potere difendersi sia da agenti esterni sia
da nodi interni alla rete che siano stati compromessi da un attaccante. In questo
secondo caso la modalità di difesa deve essere differente, poichè l’attaccante potrebbe
essere venuto a conoscenza di informazioni a cui un agente esterno non poteva aver
accesso.
Inoltre il meccanismo di sicurezza deve coprire tutti gli aspetti di prevenzione,
rilevamento e reazione che lavorano all’unisono per garantire il non collasso del
sistema e la soluzione deve essere applicabile alle caratteristiche estremamente
dinamiche e di limitata disponibilità di risorse tipiche delle manet.
Alessandro Genovese 566/1364
Pagina 35 di 109
3.3.4 Il cooperative caching
Analizziamo ora brevemente un altro problema che affligge questo tipo di rete che è la
mancanza di un file richiesto da un nodo presente sull'hard disk di un altro, il quale per
cause esterne è disconnesso al momento dalla rete, anche per un tempo ipoteticamente
infinito. Una risposta è stata data con le tecniche di Cooperative Caching basate su
protocolli che permettono di condividere e coordinare il contenuto delle cache di tutti i
nodi e sono state ampiamente utilizzate con lo scopo di migliorare le prestazioni delle
reti wired. Questi protocolli possono essere classificati come message-based,
directory-based o router-based.
Il punto cruciale sul quale si basano le tecniche di CC è che il trasferimento dei file
è più veloce nel caso in cui il file desiderato si trova nella memoria cache di un nodo
intermedio nel routing path verso l’owner del file originale.
Se ad esempio si dovesse fare il retrieving di un certo file che si trova su un nodo A
verrebbe eseguita la richiesta ed il file transiterebbe attraverso tutti i nodi nel routing
path tra il nodo richiedente ed il nodo A consumando una certa quantità di energia. Se,
invece, il file si trovasse anche nella memoria cache di un certo nodo B intermedio tra
il richiedente ed A nel routing path, questo file potrebbe essere scaricato da B
riducendo il numero di hop necessari e quindi tempo di latenza ed il consumo globale
di energia. Dato che il file attraversa più nodi nel cammino tra sorgente e destinazione,
i nodi intermedi possono decidere di memorizzare il file in una loro cache interna
perchè, anche se non serve in quell’istante, successivamente il nodo stesso od un suo
vicino potrebbero aver bisogno dello stesso file.
Alessandro Genovese 566/1364
Pagina 36 di 109
L’accesso al file avviene nel seguente modo: le richieste di un certo file seguono
il normale percorso tra richiedente e owner; quest’ultimo risponde con la conferma
di avere quel file in memoria e allo stesso modo agiscono tutti i nodi intermedi che
eventualmente hanno il file in cache; il richiedente, ricevendo una notifica da ogni
nodo che possiede quel file in cache, può inviare la richiesta reale del file al nodo più
vicino.
Fig. 8 – Retrieving di file da nodi intermedi
Alessandro Genovese 566/1364
Pagina 37 di 109
4 Netsukuku
4.1 Introduzione sull'attuale architettura internet
Internet è attualmente gestita e controllata dalle grandi corporation e governi.
Qualsiasi pacchetto che viaggia sulla rete deve attraversare i routers, backbone e DNS
controllate e gestite da aziende che hanno larga partecipazione governativa e soggette
quindi al loro controllo. Gli Internet Service Provider forniscono la connettività dal
livello più basso a quello più alto di questa piramide fino ad arrivare all'end-user.
Normalmente ci si connette attraverso gli ISP che sono fornitori di servizi ma gestiti e
soggetti a filtri e restrinzioni applicate su questi dai governi ( come in Cina o anche in
Italia tutt ora non è possibile visionare determinati siti internet). Come risultato
Internet non è la stessa per ciascuno; infatti altre persone possono avere accesso o
meno a determinati tipi di informazioni a scapito della libertà d'informazione.
È ben risaputo che internet rappresenta l'ultima frontiera di accesso all'informazione,
alla conoscenza globale e alla comunicazione. Più di 1 miliardo di persone oggigiorno
possono connettersi all'immenso valore della conoscenza controllata dai governi. I
restanti 5 miliardi di persone non hanno accesso alcuno alla rete dovuto ad un lack
delle loro risorse economiche ( ed infrastrutture inesistenti ) necessarie per rendere
disponibile l'accesso ad internet. Le grandi multinazionali non hanno remunerazione
da un business del genere, in cui la nazione di in un paese in cui il livello di
civilizzazione tecnologica oltre che quello societario è arretrato di ben 100 anni.
Quindi pertanto l'informazione e la conoscenza sono strettamente limitate alle dittature
Alessandro Genovese 566/1364
Pagina 38 di 109
instaurate in questi paesi: limitata, non oggettiva e scarsa.
Questa mancanza di accesso all informazione è molto più che un semplice svantaggio
o inconveniente: senza questo potente strumento ( Internet ) non sono in grando
pertanto di poter accedere alla conoscenza condivisa e quindi all'educazione o alla
comunicazione fra individui o piccole aziende che favorisca la crescita sia economica
che intellettuale di questi paesi.
Internet è stata progettata e "disegnata" da un progetto militare per essere sicura,
distribuita e un sistema di comunicazione che sia failure-resistant. Ma adesso,
paradossalmente, la prolifica organizzazione di Internet è diventata una struttura
centralizzata su ISP e altri sistemi di sostegno per l'intera rete. Consideriamo, per
esempio, il caso dei server DNS ( Domain Name System ), i quali molti sono
controllati dalla stessa organizzazione responsabile fornitrice del servizio di accesso
alla rete. La registrazione di un dominio su questi server è un privilegio delegato all'
InterNIC, un'azienda controllata dagli Stati Uniti, che ne garantisce il diritto di vendita
di un singolo dominio agli end-user.
È merametnte utopistica la visione di poter portare più accessibilità alla rete internet,
libertà se i servizi forniti sono sempre gestiti dai sistemi attuali.
Alessandro Genovese 566/1364
Pagina 39 di 109
4.2 La rete Netsukuku
Il network è composto da computer strettamente vicini e direttamente connessi gli uni
con gli altri che non hanno dipendenza su Internet o con qualsiasi altro tipo di network.
La rete Netsukuku è un nuovo modo di intendere l'architettura di Internet
rivoluzionandola nel semplicistico concetto di mettere in comunicazione direttamente i
vari computer tra di loro, collegandoli come in una rete Mesh. L'ideazione di
Netsukuku è nata con la volontà di dare una risposta chiara e alternativa per l'accesso
ad internet e ad un informazione sempre più libera; ci si riferisce quindi a computer
statici ovvero nodi non in movimento.
In Netsukuku vengono sostituiti con gli attuali DNS con un protocollo proprio che è
chiamato ANDNA ( A Netsukuku Domain Name Architecture ) spiegato
successivamente all'interno di questo documento.
Una rete completamente dinamica richiede aggiornamenti rapidi e frequenti dei
percorsi d'instradamento e questo è in contrasto con la stabilità e la scalabilità di
Netsukuku. Per questo motivo, Netsukuku suppone per il suo modello che un nodo
non cambierà la sua posizione fisica tanto spesso, riducendo di gran lunga gli scambi
di pacchetti per tenere costantemente aggiornata le porzioni di "mappe". Questa ipotesi
è lecita in quanto la posizione di un nodo WiFi montato sul piano di un edificio non
cambia e le sue azioni saranno al massimo la disconnessione o la riconnessione dalla
rete.
Il sistema sostituisce il livello 3 dell'OSI model con la propria vera e proprio
protocollo di routing che lo sostituisce. Netsukuku per natura distribuito ha una serie di
servizi costruiti su di esso che sostituiscono quelli dell'attuale e contralizzata Internet
Alessandro Genovese 566/1364
Pagina 40 di 109
come discusso precedentemente riguardo i DNS che vengono sostituiti con ANDNA.
La rete si autoconfigura in modo dinamico, senza interventi esterni, cosa che fino a
poco tempo fà si credeva irrealizzabile o addirittura impossibile.
Questa topologia è resa possibile rendendo ogni singolo nodo della rete Netsukuku in
grado di poter servire, con gli stessi privilegi, richieste proveniente dagli altri nodi. È
di particolare interesse il fatto di avere un network sempre più performante ed
efficiente grazie alla crescita della rete di nodi ben connessi fra loro; il che significa
che più utenti o nodi aderiscono a questo tipo di network maggiore sarà l'efficienza e
una bandwidth maggiore. Tutti gli utenti avranno interesse a collegarsi nella rete con
Netsukuku poichè più nodi si aggiungono più informazioni la rete avrà per raggiungere
i nodi vicini andando ad apportare un miglioramento sostanziale alla rete stessa ma
anche a tutto il network.
Al contrario, con l'attuale topologia e architettura di Internet, più utenti sono connessi
più il sistema è sottoposto a stress il che provoca una latenza esponenziale nel
recapitare pacchetti.
Il grado di sicurezza della rete è resa possibile grazie ad uno strato di crittografia
elevato che offre contemporaneamente un alto grado di sicurezza e anonimato per
qualsiasi connessione.
4.2.1 Introduzione
Netsukuku privilegia la stabilità e la scalabilità della rete ed è corretto anche
denominarla come un'architettura di rete altamente scalabile e autoconfigurante.
Questo tipo di rete richiede pochissimi kilobyte di memoria ed esigue risorse di
calcolo della cpu per poter permetterne la navigazione. Grazie a questi bassi requisiti,
Alessandro Genovese 566/1364
Pagina 41 di 109
è possibile eseguire il software all'interno di computer a basse prestazioni, punti di
accesso e dispositivi embedded. Alcune caratteristiche rilevanti che sfruttano
l'architettura offerti da Netsukuku sono: un sistema distribuito non gerarchico e
decentralizzato di gestione hostname che ne consente il completo anonimato di un
utente sulla rete Netsukuku, nascondendone l'origine e la destinazione dei pacchetti
crittografandoli. Usando le tecnologie wireless, gli utenti di Netsukuku possono
costruire e sostenere una rete ad estensione geografica, condividendo una piccola parte
delle loro risorse del PC, senza bisogno di alcun supporto di terze parti specifiche.
4.2.2 Definizioni
– Nodo ( o Node ) : ogni computer connesso alla rete Netsukuku
– Rnodo ( o Rnode ) : preso in considerazione un determinato nodo X, viene
definito Rnodo di X, ogni nodo direttamente connesso ad X.
– Map: in ogni nodo della rete Nestkuku vengono mantenute, in una mpappa
memorizzata in un file, le informazioni riguardanti l'intera rete (stato dei nodi,
informazioni di routing, ... )
– REM ( Route Efficiency Measure ) : per distinguere due percorsi tra due nodi
della rete Netsukuku è usato questo fattore di qualità. Se r ed s, ad esempio,
sono due percorsi, REM(r) indica la qualità del percorso r, ed in caso sia
migliore del percorso s, si avàr REM(r) < REM(s).
Alessandro Genovese 566/1364
Pagina 42 di 109
Fig. 12 -
rappresentazione figurativa della definizione di una parte della rete
Netsukuku
4.2.3 Struttura gerarchica di Netsukuku
Livello 1 – la rete, in questo livello, viene suddivisa in gruppi di 256 nodi ciascuno e
vengono introdotti ulteriori concetti:
Gnode: rappresenta un gruppo di nodi. Ogni nodo della rete appartiene
solamente ad un gnode. I nodi all'interno dello stesso gruppo sono connessi in accordo
alla seguente definizione:
Bnode: rappresenta un nodo di confine. Questo è un nodo che appartiene ad un
gnode G, ma che è anche direttamente connesso ad almeno un nodo di un diverso
gnode ( quindi almeno un suo rnode appartiene ad un diverso gnode ).
Livello n – nei livelli superiori al primo si continua a suddividere la rete in gruppi da
256 gruppi di nodi, che continueranno ad essere chiamati gnode. Questa suddivisione
continua ricorsivamente fino a quando non si raggiunge il raggruppamento massimale
Alessandro Genovese 566/1364
Pagina 43 di 109
dell'intera rete all'interno di un solo gnode. In questo modo la rete ha una struttura
composta da n+1 livelli ( da 0 a n ).
L'algoritmo di routing usato in Netsukuku è il QSPN che è in grado di operare su
qualsiasi livello senza abisogno di distinzione considerando un gnode come un nodo
normale. Proprio per questa struttura a livelli, la topologia di una rete Netsukuku è
definita gerarchica composta da 256 nodi i quali sono raggruppati all'interno di un
gruppo di nodi ( chiamati gnode ); 256 gruppi di gnode sono raggruppati in un altro
gruppo ( chiamato ggnode ) che a sua volta è ulteriormente raggruppati in un ulteriore
gruppo ( gggnode ) da 256 ggnode.
Dal momento che in ogni livello troveremo al massimo 256 nodi ( o gnodi )
l'algoritmo di tracciamento del percorso (QSPN ) sarà sempre quello di operare su un
massimo di questi nodi.
Fig. 13 - rappresentazione dei Gnodes e dei nodi confine
Alessandro Genovese 566/1364
Pagina 44 di 109
4.3 Algoritmo di routing di Netsukuku ( QSPN )
Una delle parti più importanti di Netsukuku è il discovery algorithm ( o algoritmo di
scoperta ) che è responsabile di trovare i percorsi più efficienti sulla rete per
raggiungere dei nodi.
L'algoritmo deve essere capace di trovare i percorsi senza sovraccaricare la rete stessa
o la CPU e la memoria dei computer.
Per poter spiegare in parole povere il concetto che è alla base di questo meta-algoritmo
che non esegue una sequenza di istruzioni matematiche definite ma sfrutta il caso
possiamo pensarlo basandoci sul semplice concetto della fisica delle onde: se lanciamo
un sassolino in uno specchio d'acqua, contenuto in una bacinella, dal punto di impatto
incominciano a propagarsi delle onde circolari. Ogni onda genera un'onda figlia che
continua ad espandersi ed a generare figli che generano figli e così via. Quando
un'onda colpisce i bordi della bacinella, viene riflessa e ritorna verso il punto d'origine;
lo stesso avviene se l'onda incontra un ostacolo. Il qspn_starter è il sassolino gettato
nel groupnode ed ogni onda è un Tracer Packet. Ogni onda figlia porta con sè
l'informazione dell'onda padre. Quando l'onda arriva in un extreme_node (un ostacolo,
un vicolo cieco, l'ultima frontiera del groupnode) parte il qspn_open (l'onda riflessa).
Migliaia di nodi si appoggiano ad una stessa cella, che poi smisterà il traffico alle altre
celle, che, infine, consegneranno i dati ai nodi destinatari. Netsukuku puo' essere
adottato anche dai cellulari, rendendo superflua l'esistenza degli attuali gestori di
telefonia mobile con opportune modifiche sulla ricerca dei nodi e la propagazione
della mappa.
Questo algoritmo da solo non sarebbe capace di gestire l'intero processo di ricerca in
Alessandro Genovese 566/1364
Pagina 45 di 109
tutta la rete perchè avrebbe ancora bisogno di troppa memoria. Per esempio, anche se
volessimo memorizzare anche un solo percorso per raggiungere un nodo e "costa" 1
byte avremmo bisogno 1 GB di memoria per una rete composta da 109 nodi ( tutta
l'attuale internet ). Per questo motivo è necessario strutturare la rete in una topologia
conveniente e quindi non adattare l'algoritmo all'attuale internet ma piuttosto fare il
contrario ovvero creare un nuovo "ordine" ( o disposizione ) dei nodi, ovvero una
nuova topologia.
L'algoritmo QSPN, per ogni livello, costruisce i percorsi necessari per connettere ogni
nodo ( o gruppo) a tutti gli altri nodi ( o gruppi ) dello stesso livello Questi percorsi
sono memorizzati nelle mappe di ciascun nodo.
Se un generico nodo N:
N = g3 . g2 . g1 . G0
vuole raggiungere un nodo M che appartiene ad un gruppo diverso:
M = g3 . g2 . h1 . h0
sarà necessario aggiungere un percorso CIDR alla tabella di routing del nodo N, in
modo tale che tutti i pacchetti la cui destinazione è :
g3 . g2 . H1 . [0...255]
verranno inoltrati attraverso un gateway X, la cui scelta sarà illustrata in seguito.
4.3.1 Differenze con gli attuali protocolli di gestione
Anche se attualmente esistono diversi protocolli di routing dinamico, la maggior parte
sono, a differenza di Netsukuku, incapaci di gestire reti di dimensioni significative. Per
esempio i router presenti sui backbone sono gestiti da un insieme di protocolli con
Alessandro Genovese 566/1364
Pagina 46 di 109
funzionalità simili, tra cui OSPF, RIP
e BGP. Utilizzano dei classici algoritmi
progettati per trovare il percorso migliore per raggiungere un nodo della rete rendendo
ragionevolmente efficiente il routing. Purtroppo si aumenta la complessità di calcolo e
quantità di risorse per funzionare sulla rete come Internet e devono risiedere su
computer abbastanza potenti e dedicati soltanto per quest utilizzo. Con questo sistema
nella pratica rende impossibile il decentramento sia in termini economici che in
termini di calcolabilità e gestione.
A questo scopo nasce QSPN che ha il compito di rintracciare il nodo; dal momento che
la topologia della rete è caratterizzata da un alto livello di simliarità soltanto
l'algoritmo di base dovrà essere memorizzato poichè scalabile a seconda dei livelli in
cui è ricercato uno specifico nodo ( funzionalità spiegata in dettaglio più avanti in
questo documento ).
Questo livello di compressione garantisce la capacità di memorizzare l'intera mappa
della rete in pochi kilobyte riusciendo così ad essere eseguito da qualsiasi nodo della
rete e non da specifici computer ad alta computazione.
4.3.2 Definizioni del routing in Netsukuku
Un percorso presente nella mappa di un nodo N può essere rappresentato come:
rN = (dst, gw, rem)
dove:
– dst è il nodo che rappresenta la destinazione del percorso
– gw è il nodo verso il quale verranno inoltrati i pacchetti
– rem è il fattore di qualità del percorso
Alessandro Genovese 566/1364
Pagina 47 di 109
In alternativa, si può usare la notazione dst(r), gw(r) e rem(r) per indicare
rispettivamente la prima, la seconda e la terza componente della tripla.
Nella mappa di ciascun nodo viene mantenuto soltanto un percorso verso un nodo,
anche se sono presenti più percorsi possibili. Infatti tra tutti i percorsi disponibili,
viene scelto quello con il valore rem(r) minore. Con l'utilizzo di questa notazione, è
possibile notare come un nodo non conosce l'intero percorso verso il nodo
destinazione, ma conosce solamente il nodo verso cui inoltrare il pacchetto. Quindi
ogni nodo ha una visoine limintata della rete, che comprende solo i nodi all'interno del
suo stesso gruppo.
4.3.3 QSPN v2
Il concetto della nuova versione del QSPN, algoritmo di routing sul quale si basa
Netsukuku, definito fino ad ora non è in grado di soddisfare richieste di una rete in
continua mutazione o movimento, quindi non adattabile a reti estremamente
dinamiche. L'ETP risolve il problema su come il grafo debba essere esplorato e riesplorato per aggiornare la mappa dei nodi interessanti in cui la rete cambi di conitnuo.
" Quando un cambiamento si verifica nellarete, solo l'informazione memorizzata nel
nodo affetto dal cambiamento deve essere aggiornata" : ovvero l'informazione del
cambiamento dovrà essere trasportata soltanto ai nodi interessati la modifica della
porzione di mappa mutata.
Quindi un ETP è un ATP che contiene una porzione di mappa; può essere
considerato com un insieme di differenti TP.
Si suppone che la qualità del link A <-->B cambi. Si esaminerà la situazione partendo
da A, tenendo tuttavia in mente che la situazione per B è simmetrica. Se il link cambia
Alessandro Genovese 566/1364
Pagina 48 di 109
potrebbe essere il caso per B di cercare un percorso migliore. Per questa ragione, A
invierà a B un ETP con tutti i percorsi della sua mappa, tranne quelli della forma A ->
B -> ...
Se B trova qualcosa d'interessante, inoltrerà l'ETP. In breve:
1 – A aggiorna la sua mappa
2 – A crea il seguente insieme : R = { r appartiene M* | gw(r) ≠ B } dove:
r appartiene M* <--> r appartiene, rem(r) = max {rem(s) | s appartiene
M, dst(s) = dst(r)}
M* è l'insieme di tutti i percorsi migliori della mappa
M è l'insieme di tutti i percorsi della mappa di B
gw(r) è il primo hop del percorso r
dst(r) è la destinazione del percorso r
rem(r) è la Route Efficiency Measure di r
Ogni percorso r appartine R è memorizzato come (dst(r), rem(r))
3 – A crea l'ETP in esso l'insieme R, aggiungendo il suo ID e settando ad 1 il
"flag d'interesse"
4 – A invia l'ETP a B
Ora si supponga che un nodo C riceva un ETP dai suoi vicini. Lo esaminerà e se
considerato interessante, aggiornerà la propria mappa ed inoltrerà il pacchetto ai nodi
vicini come segue:
Alessandro Genovese 566/1364
Pagina 49 di 109
1 – Se l'ID del nodo C è già presente nel corpo dell'ETP ricevuto allora C scarta
il pacchetto e salta al punto 4
2 – Siano:
R l'insieme dei percorsi contenuti nell'ETP ricevuto da C
M l'insieme di tutti i percorsi contenuti nella mappa di C
per ogni percorso r appartiene R, il nodo C cerca un percorso m che apparitene ad M
tale che la dst(m) = dst(r), gw(m) = N
• Se esiste allora C setta rem(m) = rem(r)
• altrimenti r viene copiato in un insieme temporaneo R'
3 – Per ogni r' che appartiene ad R' dato un percorso m' che appartiene ad M tale
che dst(r')=dst(m'), se r' è un'alternativa migliore a m' e se ogni hop di r' è
raggiungibile da C allora r' è salvato nella mappa di C come una terna (dst(r'), N,
rem(r')+rem(C-->N))
4 – C crea il seguente insieme:
5 – Se S≠0 allora si verificano le seguenti
• C crea un nuovo ETP, contenente l'insieme S e il suo ID. Il flag d'interesse
viene settato a 0
• Il nuovo ETP viene inviato a N e propagato anche all'interno.
La ragione per la quale viene utilizzata questa procedura è che se C considera non
interessanti alcuni percorsi contenuti nell'ETP appena ricevuto, inoltrerà all'indietro i
propri percorsi migliori che hanno la stessa destinazione di quelli che appartengono ad
R.
Alessandro Genovese 566/1364
Pagina 50 di 109
6 – Dato
Se
≠ 0 allora l'ETP è ancora interessante e il flag d'interesse resta settato ad 1. C
completa il pacchetto con il set di
eaggiungendo il suo ID. L'ETP viene quindi
inviato a tutti i nodi vicini eccetto N I nodi vicini di C quindi useranno la stessa
procedura. In questo modo, l'ETP continuerà ad essere propagato fin quando non verrà
considerato non interessante.
Nel caso in cui verrà aggiunto un nuovo link A <--> B si applica la stessa procedura
del caso precedente. L'unica differenza sta nel fatto che l'algoritmo non si fermerà se R
= 0, questo perchè R = 0 se e solo se A è un nodo con un solo link.
4.3.4 Propagazione della mappa
QSPN è l'algoritmo di routing presente in Netsukuku, e prevede l'utilizzo di un
particolare pacchetto, Tracer Packet, per lo scambio di porzioni di mappa tra nodi
della rete. Dal punto di vista dell'algoritmo, la rete torna ad essere piatta, senza la
suddivisione in gruppi e livelli. L'unica regola che viene aggiunta, è per la
compressione delle mappe.
Si supponga T un generico Tracer Packet e sia
{ ai | i = 1,2, ..., n }
una seguenza finita di nodi. Se è presente una porzione di questa sequenza, i cui nodi
appartengono tutti ad uno stesso gruppo G, può essere sostituita con l'ID del gruppo G
in modo da risparmiare spazio. Più formalmente, ogni porzione:
Alessandro Genovese 566/1364
Pagina 51 di 109
dove G è un gnode di un livello qualsiasi, può essere rimpiazzata semplicemente con
l'ID del gruppo G. Inoltre il valore rem associato all'ID di G, corrisponde alla somma
dei valori rem dei singoli nodi della porzione rimpiazzata.
Esempio:
1. Il Tracer Packet { 11.22.1, 11.22.80, 11.22.35 } non può essere
raggruppato, perchè sono tutti nodi appartenenti allo stesso gruppo
2. Il Tracer Packet { 11.22.1, 11.22.80, 11.22.35, 11.44.13 } può essere
raggruppato in { 11.22.*, 11.44.13 }
3. Il Tracer Packet { 11.22.1, 11.22.80, 11.2.35, 11.44.13, 55.32.20 } può
essere raggruppato in { 11.*, 55.32,20 }
Questa regola permette di avere mappe di dimensione ridotta, anche nel caso in cui si
consideri una rete composta da molti nodi. Ad esempio, se il nodo 55.32.12 riceve il
Tracer Packet:
11.*, 55.32.20
memorizzerà nella propria mappa la tripla:
{ dst = 11.*, gw = 55.32.20, rem )
Questa regola appena descritta implica che un nodo c non appartiene a G ed non è in
grado di conoscere la struttura interna del gruppo G. Infatti, se r è il percorso migliore
per raggiungere qualsiasi nodo di G, esso sarà un percorso che raggiunge il nodo d che
appartiene a G, il quale è il più "vicino" nodo di G rispetto al nodo c.
Questo percorso è comunque un percorso valido anche per qualsiasi altro nodo d' che
appartiene a G poichè per definizione tutti i nodi di un gruppo sono connessi. Il
Alessandro Genovese 566/1364
Pagina 52 di 109
problema in questo caso è che mentre r è il percorso migliore verso il nodo d, potrebbe
non esserlo verso il nodo d'.
In ogni caso, r sarà comunque un'approssimazione del percorso migliore verso il nodo
d' Infatti il percorso c –> d' non è altro che il percorso c –> d –> d', nel quale si è
assunto che c –> d sia il percorso migliore. Grazie all'ulteriore assunzione che
all'interno di uno stesso gruppo, i valori rem tra due qualsiasi nodi non possono
differire troppo, si ha anche che il percorso d –> d' è molto vicino all'ottimo.
4.3.5 Procedura iniziale di assegnazione di un nodo ad un gruppo
La fase di inizializzazione di un nodo nella rete serve per:
1. Configurare il nuovo nodo nella rete e mantenere uniforme lo spazio dei gnode.
2. Mantenere connessi i nodi all'interno di uno stesso gruppo
3. Mantenere i gruppi di nodi compatti.
Più in generale, questa procedura iniziale serve per risolvere il problema di assegnare
un nodo ad un gruppo.
Sia G un gruppo non vuoto. Un nodo può appartenere al gruppo G se è direttamente
connesso ad almeno un nodo d che appartiene a G. Questo presupposto implica alcuni
problemi nell'allocazione degli indirizzi IP.
– Un gruppo G è detto allocato se e solo se contiene almeno un nodo
– Un gruppo G è detto saturo se e solo se i nodi al suo interno sono allocati
Si consideri il caso in cui una rete sia costituita da 3 gruppi A, B, C tutti appartenenti
all'unico gruppo di livello superiore ( ed anche ultimo) G. Per come è costruita la rete,
Alessandro Genovese 566/1364
Pagina 53 di 109
il gruppo G è saturo, perchè non è possibile allocare altri gruppi al suo interno. Si
supponga inoltre, che anche il gruppo A sia saturo, mentre nei gruppi B e C ci sia
ancora spazio per nuovi nodi.
Sia ora n un nuovo nodo connesso solo a nodi nel gruppo A. Questo nuovo nodo n non
sarà in grado di agganciarsi alla rete Netsukuku, perchè il gruppo A è saturo, e non è
possibile creare un nuovo gruppo solo per esso in quanto il gruppo G è anch'esso
saturo. Anche se in realtà c'è ancora spazio disponbile per l'allocazione di nuovi nodi
nei gruppi B e C.
Una strategia per risolvere il problema della saturazione dei gruppi, è quella di
distribuire inmaniera uniforme i nodi: tutti i gruppi avranno approssimativamente lo
stesso numero di nodi. Questo può essere ottenuto applicando le seguenti regole, nei
diversi casi descritti di seguente.
4.3.6 Nuovo nodo: connessione a Netsukuku
Quando un nuovo nodo entra nel sistema ottiene la lista S dei gruppi non saturi
( questa lista può essere facilmente ottenuta dalle mappe dei suoi vicini ). Tra i gruppi
in S il nuovo nodo entrerà a far parte del gruppo S* con il minor numero di nodi.
4.3.7 Transizione di un nodo: passaggio da un Gnodes all'altro
Durante l'evoluzione della rete, possono entrare o uscire nodi, quindi le dimensioni dei
gruppi possono variare anche di molto. Per questo i nodi di confine ( i bnode ) hanno
la possibilità di cambiare il proprio gruppo di appartenenza Un bnode passa da un
gruppo G ad un gruppo G' nel caso in cui il numero di nodi presenti in G' sia inferiore
a quelli presenti in G.
Alessandro Genovese 566/1364
Pagina 54 di 109
Questa transizione non può avvenire simultaneamente ad un'altra transizione,
in
quanto non si avrebbe una conoscenza esatta del numero di nodi in un dato gruppo per
ogni istante di tempo. Proprio per questo motivo, tutte le transizioni all'interno del
sistema sono gestite da un nodo coordinatore che si occupa di gestire le richieste di
transizione, e verificare che una transizione non sia in disaccordo con quanto detto
prima riguardo il numero di nodi in un gruppo. Questo potrebbe accadere, in quanto
un nodo invia la richiesta di transizione dal gruppo G al gruppo G', ma nel frattempo il
gruppo G' è stato ripopolato da altre transizioni.
4.3.8 Connessioni interne ad un gruppo
Come definito in precedenza, un gruppo G è internamente connesso se:
Nel caso in cui la rottura di un link, o la disconnessione di un nodo, causi a divisoine
del gruppo in due parti distinte, verrebbe così a mancare la condizione necessaria per
l'esistenza del gruppo. In questo caso di avvia una procedur di controllo, atta a
ripristinare i gruppi nel sistema.
I nodi che dopo la rottura del link sono stati isolati dal resto del gruppo, avranno
comunque connessioni verso altri gruppi ( connessioni tra bnode ). Queste connessioni
verrano quindi utilizzate per unire questi nodi ad un altro gruppo già esistente e non
saturo.
Nel caso in cui sia necessario, può essere anche creato un nuovo gruppo.
Alessandro Genovese 566/1364
Pagina 55 di 109
4.3.9 Gruppi compatti
Come detto in precedenza, un gnode è definito compatto, se i valori rem tra due
qualsiasi nodi del gruppo non differiscono troppo. Più formalmente, per un fissato
valore r*:
dove per a –> b si intende il percorso migliore dal nodo a al nodo b.
I gruppi non devono necessariamente essere mantenuti compatti, ma più lo sono, e più
effeciente è l'algoritmo. Una tecnica per mantenere compatti i gruppi è la seguente:
Sia n un nodo e Vn l'insieme dei suoi vicini. Per ogni vicino v che appartiene a Vn il
nodo n calcola l'attrazione rispetto al nodo v:
dove Rv è l'insieme dei percorsi ottimi di n che passano per il v. Il nodo n entrerà
quindi nel gruppo del suo vicino v* con il quale avrà il massimo valore di attrazione.
4.3.10 Identificazione dei nodi
Si assegna un ID numerico ad ogni Gnode a partire dall'ultimo livello:
1. Nell'ultimo livello OSI ha un solo Gnode, al quale verrà assegnato l'ID
Alessandro Genovese 566/1364
Pagina 56 di 109
"0". Quindi l'ID globale di tutta l'intera rete sarà : 0
2. Nel livello sottostante ci saranno 256 gruppi (gnode), ai quali verrà
assegnato un ID da 0 a 255. L'ID globale dei gnode a questo livello sarà
quindi: 0*i con 0 ≤ i ≤ 255
3. Questo meccanismo di assegnazione viene ripetuto ricorsivamente fino
al livello 0, ottenendo ID globali nella forma seguente:
4. Siccome l'ID dell'intera rete, e quindi dell'ultimo livello, sarà sempre 0,
questo verrà omesso, e verranno considerati soltanto i primi n livelli.
In una rete composta al massimo da 232 nodi (numero massimo ammesso in ipv4) ci
saranno 5 livelli (n=4), ed ogni gruppo sarà composto nella classica maniera, da 256
nodi. Proprio per questo motivo, l'ID usato in Netsukuku avrà la forma di un classico
indirizzo IP:
[0...255] . [0...255] . [0...255] . [0...255]
quindi un nodo di livello 0 potrebbe avere un ID del seguente tipo:
14 . 43 . 152 . 123
Inoltre, si ha la garanzia che questo ID sia univoco per ogni nodo, grazie al fatto che è
univoca l'appartenenza ai gruppi di livello superiore. Nell'esempio precedente si ha
infatti :
g3 = 14
g2 = 43
g1 = 152
g0 = 123
dove gi corrisponde all'ID del gnode di livelli i-esimo.
Alessandro Genovese 566/1364
Pagina 57 di 109
4.3.11 Mappe gerarchiche
Come è stato introdotto in precedenza, la struttura gerarchica della rete permette di
risparmiare molto spazio nella memorizzazione della mappa contentete le informazioni
di routing. Infatti un generico nodo N, anziché memorizzare informazioni riguardanti
ciascun nodo dell'intera rete, memorizzerà solo le informazioni riguardo i gnode
presenti.
Se si prende in considerazione il nodo N avente ID:
g3 . g2 . g1 . g0
Esso memorizzerà informazioni riguardanti:
1. I 256 singoli nodi che appartengono al suo stesso gnode di livello 1, o
equivalentemente, i 256 nodi del gruppo g1.
2. I 256 Gnode che appartengono allo stesso gruppo di livello 2, o
equivalentemente, i 256 gnode del gruppo g2 .
3. Infine, i 256 Gnode che appartengono al gnode g3
Così facendo, il nodo N on ha informazioni precise riguardo gli altri nodi della rete,
che appartengono ad un gruppo diverso dal suo. Nonostante ciò, verrà mostrato in
seguito come il nodo N sarà in grado di raggiungere comunque tutti gli altri nodi della
rete. Con questa assunzione, il nodo N non dovrà memorizzare informazioni riguardo i
232 nodi della rete, ma avrà bisogno solamente di 256n informazioni (256 gruppi per
ogni livello).
La mappa che sarà presente in ogni nodo, verrà ulteriormente divisa in una mappa
interna, che conterrà le informazioni riguardo i 256 nodi appartenenti allo stesso
Alessandro Genovese 566/1364
Pagina 58 di 109
gruppo, ed una mappa esterna che conterrà le informazioni di tutti gli altri gruppi degli
altri livello.
4.3.12 QSPN v2
Broken Link
Nel caso in cui si verifica una rottura di un link verrà attivata la seguente procedura di
recupero:
1 – B crea l'insieme R:
R è l'insieme di tutti i percorsi migliori che passano attraverso A. Se R = 0 allora
l'algoritmo si ferma. Ogni percorso r che apparitne ad R è salvato come una coppia
(dst(r), rem(r))
2 – B aggiorna la propria porzione di mappa:
ed i percorsi vengon ordinati in base alla propria efficienza
3 – B crea il seguente insieme
Alessandro Genovese 566/1364
Pagina 59 di 109
4 – B aggiunge all'ETP l'insieme
il proprio ID e setta ad 1 il flag d'interesse.
5 – Infine, B invia l'ETP a tutti is uoi vicini eccetto A.
A questo punto l'ETP viene propagato nello stesso modo del caso in cui il link muta.
La tabella di routing di ogni nodo dovrebbe essere differente e non contenere percorsi
ridondanti, come ad esempio la seguente:
I percorsi 1 e 2 sono identici, l'unica differenza è nei primi 3 hops. Gli ultimi due
invece sono totalmente differenti dagli altri. I primi due percorsi sono quindi
ridondanti e il nodo P dovrebbe tenere in memoria solo uno di loro, salvando spazio
prezioso per altri percorsi ritenuti interessanti. È di fondamentale importanza non
avere memorizzati percorsi ridondanti in quanto se uno di questi fallisce manda in
fallimento la maggior parte degli altri percorsi memorizzati.
Alessandro Genovese 566/1364
Pagina 60 di 109
4.4 Tracer Packet
Il Tracer Packet ( TP ) è di fondamentale importanza per l'algoritmo QSPN, poichè in
grado di operare indifferentemente in qualsiasi livello della gerarchia. E' un pacchetto
che salva gli ID dei salti trasversali al suo interno.
Non è inviato ad una specifica destinazione ma è usato per inondare la rete con un
flood di pacchetti. Il flood inviato da un nodo passerà soltanto una volta attraverso ogni
nodo della rete il quale una volta ricevuto questo pacchetto lo trasmette a tutti i suoi
vicini ad eccezione da quello che è stato ricevuto.
Un tracer packet continuerà ad essere inviato nella rete fin quando trasporterà
informazioni ritenute interessanti dai nodi che lo riceveranno; il TP è interessante se e
soltanto se le informazioni che trasporta, ovvero il routing sul come raggiungere gli
altri nodi della rete (i percorsi), non sono già presenti nel nodo di ricezione.
Il concetto basilare del TP è basato sulla memorizzazione degli ID dei nodi
attraversati; e sarà inoltrato a tutti i suoi nodi vicini eccetto da quello dal quale lo ha
ricevuto.
4.4.1 Proprietà di un tracer packet
Esempio della funzionamento di un tracer packet flood.
Un nodo D, che ha ricevuto un TP ( tracer packet ) può conoscere il suo percorso
esatto. Pertanto, D può conoscere il percorso per raggiungere la sorgente del nodo S
( che ha inviato il TP ) e gli itinerari per raggiungere tutti i nodi attraverso i quali è
Alessandro Genovese 566/1364
Pagina 61 di 109
passato. Per esempio: supponiamo che il TP ricevuto da D contenga il seguente
percorso: { S, A, B, C, D }. D ora saprà il percorso che il TP ha effettuato per giungere
fino a lui; pertanto saprà anche che per raggiungere il nodo A dovrà andare prima
verso C – B – A.
Il bouquet di S è l'insieme di tutti i TP che saranno trasmessi o inviati dal nodo S
durante il flood. Il primo TP di questo bouquet ricevuto da un generico nodo D, sarà il
TP che ha coperto il percorso più veloce che collega S a D. Il percorso più veloce da S
→ D è quello con il minimo RTT (round-trip time) tra S e D. Questa proprietà è valida
anche se S è il nodo che ha iniziato il flood TP, ossia il primo nodo che ha inviato il
bouquet prima del flood del TP.
Il flood si fermerà quando nessuno dei nodi a cui è arrivato il TP sarà in grado di
spedirlo ad altri nodi vicini.
Riassumendo concettualmente il metodo di flooding dei pacchetti ( TP flood ) il flood
continuerà ad essere inoltrato al nodo successivo fino a quando incontra
un'informazione utile.
Un nodo considera un TP ricevuto interessante quando il suo contenuto contiene
almeno un nuovo percorso. In altre parole, se TP contiene un percorso già conosciuto
dallo stesso nodo è considerato non interessante.
4.4.2 Tracer Packet Acyclic ( ATP ) e il Tracket Packet Continuous
CTP
Il tracer packet aciclico non è ristretto come un normale TP e permette che uno o più
ATP attraversi lo stesso nodo. In questo caso questo tipo di TP non sarà inoltrato a
nessun altro nodo vicino se il suo node ID è già presente nel percorso contenuto nel
Alessandro Genovese 566/1364
Pagina 62 di 109
corpo del pacchetto. Se ogni nodo della rete invia un flood ATP, allora ogni nodo
ricerverà tutti i possibili percorsi per raggiungere ogni altro nodo.
Il CTP (tracker packet continuous) è un'estensione di un TP flood: è un TP che non
termina mai.
4.5 ANDNA
In ogni rete vi è la necessità di poter rintracciare ogni singolo nodo della stessa, per
questo motivo si stabiliscono nomenclature per il rintracciamento dei nodi.
L'ANDNA ( A Netsukuku Domain Name Architecture ) è il sistema che permette la
gestione degli hostname utilizzati da Netsukuku sostituendo l'attuale DNS. Il database
ANDNA è disseminato all'interno della rete e richiede un utilizzo di memoria esiguo.
Il concetto è quello di dividere la mappa in migliaia di porzioni concentrando queste
informazioni soltanto lì dove serve.
Ogni hostname h all'interno del sistema è una stringa di 512 bytes al massimo.
Facendo l'hash dell'hostnbame si ottine ( H(h) ) un numero che è uguale agli attuali
indirizzi IP.
4.5.1 Un esempio di richiesta d'inserimento di un nuovo nodo
N è il nuovo nodo. I è un nodo che appartiene ad un Gnode della rete Netsukuku.
Per procedere alla registrazione di N avvengono i seguenti passaggi:
1 – N calcola I = H(h)
Alessandro Genovese 566/1364
Pagina 63 di 109
2 – N invia una richiesta di registrazione al nodo I
3 – I associa nel suo database, H(h) come IP del nodo N ( chiamato IP(N) )
Ora per effettuare la risoluzione dell'hostname di un generco nodo M della rete
Netsukuku, quindi per poter rintracciare il nodo ed inviare le informazioni si deve
inviare la richiesta a tutti i singoli nodi di un Gnode proprio perchè all'ingresso del
nodo all'interno della rete Netsukuku viene propagato a tutti i suoi nodi vicini che
appartengono allo stesso Gnodes.
Un volta che la sua presenza è stata comunicata a tutti i suoi vicini, riceverà i database
ANDNA dei nodi al quale è collegato. Tutte le richieste saranno soggette alla cifratura
a chiave pubblica RSA; questo sistema non è utilizzato per garantire la privacy delle
richiesta, ma bensì per garantirne l'autenticità. Ogni nodo quindi ha a disposizione una
coppia di chiavi, pubblica e privata, e cifrerà ogni richiesta con la propria chiave
privata.
Il massimo numero di hostname che possono essere registrati all'interno dei Gnodes è
256, limite imposto per prevenire un sovraccarico del sistma ANDNA ed allo stesso
tempo per frenare la diffusione di SPAM.
Il ruolo di gestore viene dato dal counter node che è il nodo con IP uguale all'hash
della chiave pubblica del nodo n che vuole registrare l'hostname h. Questo viene
denotato con cr(n). Per ogni nodo n che vuole registrare un hostname h, esiste il
corrispondente cr(n), che si occupa ri regolare il numero di hostname registrati dal
nodo.
Il procedimento per la registrazione di un nuovo hostname all'interno dei gnodes è il
seguente:
1 – il nodo n vuole registrare l'hostname h
2 – n calcola il gruppo rgH(h) e contatta un qualsiasi nodo appartenente ad esso,
Alessandro Genovese 566/1364
Pagina 64 di 109
ad esempio y
3 – n invia la registrazione ad y, autenticandola tramite la cifratura del pacchetto
con la propria chiave privata
4 – il nodo y contatta il counter node cr(n) ed invia ad esse l'IP del nodo n ed
una copia della richiesta
5 – il counter node verifica la possibilità di registrare altri hostname, e lo
comunica ad y
6 – in caso positivo, il nodo y accetta la richiesta di registrazione ed aggiorna il
proprio database
7 – l'informazione sulla registrazione verrà disseminata all0interno del gruppo
cui appartiene il nodo y
4.5.2 Gestione degli indirizzi IP
Utilizzando la tecnica denominata "IP restriction" la rete Netsukuku può utilizzare
soltanto indirizzi privati di class A ( 10.0.0.0 o 172.16.0.0 ) per ipv4 e inidirizzi di
classe Site-local per quanto riguarda ipv6. In questo modo Netsukuku non può
interferire con le classi pubbliche di IP in Internet.
La classe di indirizzi 192.168.0.0 non può essere utilizzata poichè è la classe privata di
default di Netsukuku e viene utilizzata per creare LAN interne a Netsukuku; la classe
di indirizzi 10.x.x.x non è privata in quanto è troppo grande e molti degli indirizzi
verrebbero sprecati per essere utilizzati come indirizzi privati.
Grazie all'utilizzo di un demone ( Net Split ) è possibile avere due modalità di gestione
degli indirizzi sullo stesso nodo contemporaneamente, dividendoli in Inet e Ntk.
Alessandro Genovese 566/1364
Pagina 65 di 109
Nella modalità di Inet, un IP punterà sempre ad un indirizzo Internet mentre quelli che
appartengono alla modalità Ntk punteranno sempre a nodi di Netsukuku. Per questo
motivo si creeranno due routing table per Ntk e per Inet; quidi è possibile creare un
ponte di comunicazione fra l'attuale topologia della rete internet e la logica della rete
che è nettamente diversa per quanto riguarda Netsukuku.
Un breve esempio:
Assumiamo di essere in NTK mode:
•
Un
client
vuole
stabilire
una
connessione
a
google.com.int(
o
64.233.187.99.int )
• ANDNA riceve la query 64.233.187.99.int
• ANDNA sceglie l'IP random 127.1.2.3 ( fra 127.0.0.0/8 ) e aggiunge
"64.233.187.99 --> 127.1.2.3 nella tabella delle associazioni
• ANDNA istruisce netfilter a settare per l'indirizzo di Google come
destinazione per tutti i pacchetti che saranno inviati a 127.1.2.3 al client. Inoltre
netfilter cambia tutti gli indirizzi sorgenti di tutti pacchetti inviati da 64.233.187.99 a
127.1.2.3
• ANDNA ritorna l'ip 127.1.2.3 al client
• Il client crea una connessione con 127.1.2.3 ma attualmente questo ip
corrisponde a quello di google
• quando la connessione viene chiusa, ANDSN aspetta 300 secondi prima di
eliminare l'ip 127.1.2.3 dalla tabella delle associazioni e dalle regole di netfilter
Praticamente ciò che è stato fatto è un esempio di bridge di collegamento fra internet e
la rete Netsukuku, i quali nodi vicini collegati al client utilizzeranno e propagheranno
l'informazione di associazione all'interno del Gnode per reperire il server di Google se
ritenuto come distanza minima per raggiungerlo.
Alessandro Genovese 566/1364
Pagina 66 di 109
4.5.3 Considerazioni
Anche se Netsukuku ha ottime potenzialità di successo nella sostituzione della
gerarchia e dalla concezione concepita all'origine dell'attuale rete Internet è necessario
che per adesso le due reti restino compatbili poichè esistono diversi problemi ancora
irrisolti in Netsukuku, come per esempio la mancanza di link fra i nodi i quali devono
essere sostituiti da Tunnel Virtuali tramite internet.
Tuttavia, ci sono alcuni aspetti negativi che riguardano questo algoritmo:
1.
I cellulari non sono supportati da algoritmi di Netsukuku.
2.
La rete non si è aggiorna così velocemente: è necessario solo qualche
minuto prima che tutti i nodi vengano a conoscenza delle modifiche alla rete
(esempio: nuovi nodi si aggiungono in un Gnodes, i percorsi più efficaci sono
stati resi disponibili,etc.). Tuttavia, quando un nodo si unisce alla rete, può
raggiungere tutti gli altri nodi dal primo istante con le rotte dei suoi vicini.
Alessandro Genovese 566/1364
Pagina 67 di 109
5 La rete Neurale
La rete Netsukuku, proprio come detto dagli stessi autori Italiani è "Una rete neurale,
una ragnatela, una rete sociale, una rete da pesca - scrivono gli autori - sono delle
reti pure. La natura stessa e, infine, l'universo nel suo insieme, dall'infinitamente
piccolo all'infinitamente grande, sono delle reti pure. In tutte le reti esistenti in natura
non esistono centri di "smistamento del traffico" della rete, perchè non sono di alcuna
utilità".
Una Rete Neurale è una struttura parallela che processa informazioni distribuite. Tale
rete consta di elementi di processazione (neuroni che possono avere una memoria
locale e che sono in grado di processare localmente informazioni) interconnessi
tramite canali (detti connessioni) che trasmettono segnali unidirezionali. Ogni neurone
ha una singola connessione di uscita che si dirama in un certo numero di connessioni
collaterali; ognuna di questa trasporta lo stesso segnale il segnale d' uscita del neurone.
Questo segnale d' uscita può essere di qualunque tipo matematico.
Quindi alla base della nascita delle reti neurali vi è il paragone, come dice il nome
stesso, con i neuroni che costituiscono il tessuto nervoso e dei nessi causali tra questi
che danno origine alle capacità mentali superiori dell'uomo. Il termine rete rimanda al
collegamento tra i diversi neuroni organizzati nel tessuto. Le connessioni presenti sono
necessarie per dar luogo a forme di cognizione o di elaborazione delle informazioni.
Non si ritiene che sia un singolo neurone a causare il pensiero.
La computazione compiuta all'interno di ciascun neurone può essere definita
arbitrariamente con l’unica restrizione che deve essere completamente locale; cioè
deve dipendere solo dai valori correnti dei segnali d'ingresso che arrivano al neurone
Alessandro Genovese 566/1364
Pagina 68 di 109
tramite opportune connessioni e dai valori immagazzinati nella memoria locale del
neurone.
Fig. 9 - Semplice architettura di una rete neurale
La trasmissione all'interno di un neurone avviene attraverso ad una differenza di
potenziale transmembrana detto potenziale di riposo (pari a circa 70mV) dovuta ad una
diverso accumulo di ioni a ridosso della membrana. Ogni cellula nervosa è eccitabile,
ovvero può modificare rapidamente l'accumulo di ioni, e quindi variare il potenziale di
membrana.
Un neurone a riposo che riceva uno stimolo, sia esso luminoso, meccanico o da parte
di altri neuroni, si eccita modificando il proprio potenziale di membrana fino al
raggiungimento del valore del potenziale d'azione. L'alterazione del potenziale si
propaga lungo l'assone. Questo è un segnale nervoso elementare, treni di questi
potenziali costituiscono gli impulsi nervosi. Un impulso nervoso può propagarsi in una
sola direzione poiché la membrana ritornata a riposoè refrattaria, per un breve istante,
a un'ulteriore eccitazione.
L'informazione potrà proseguire solo grazie all'intervento dei neurotrasmettitori,
Alessandro Genovese 566/1364
Pagina 69 di 109
molecole liberate nello spazio sinaptico dal neurone presinaptico, e riconosciute da
recettori presenti sul neurone postsinaptico. La ricezione dei neurotrasmettitori, che
agiscono rapidamente, per breve tempo e localmente, genera un nuovo potenziale
d'azione che da origine ad un nuovo impulso, e cosi via di neurone in neurone.
L'informazione trasmessa da un neurone è influenzata da quella proveniente dagli altri
neuroni, sia inibitori che eccitatori.
5.1.1 Neurobiologia
Allo stato attuale, a differenza delle macchine, l’uomo è un ottimo esempio di
“sistema” in grado di elaborare informazione sotto-simboliche. Tali elaborazioni, come
ogni altro processo cognitivo, hanno sede nel cervello, una complessa struttura
neurobiologica, attualmente decifrata in modo piuttosto accurato per quanto riguarda
gli aspetti anatomici. Esiste un “mattone elementare” che caratterizza tutte le strutture
cerebrali, una cellula, denominata neurone, che è sede di processi elettrochimici
responsabili per la generazione di campi elettromagnetici.
I neuroni sono composti da un corpo detto soma e da due tipi di diramazioni: i dentriti
e il cilindrasse o assone. Nel cervello umano sono presenti tipicamente oltre 100
miliardi di neuroni, ciascuno interconnesso a circa altri 10.000. Nelle interconnessioni
ha luogo la sinapsi, un processo elettrochimico atto a rinforzare o inibire l’interazione
cellulare. I segnali rilevabili hanno un potenziale dell’ordine di alcune decine di
millVolt e si presentano come treni di impulsi con frequenza intorno ai 100 Hz, con
opportune modulazioni. Sono noti modelli sofisticati che esprimono il potenziale della
cella (attivazione) in funzione del potenziale delle celle interconnesse. È opinione
condivisa da ricercatori nel mondo delle scienze cognitive che i segnali elettrici
presenti nei neuroni siano alla base dell’elaborazione dell’informazione a livello
Alessandro Genovese 566/1364
Pagina 70 di 109
cerebrale. Le capacità cognitive sarebbero, dunque, in relazione all’elaborazione dei
segnali presenti nei neuroni. Inoltre, c’è evidenza sperimentale per sostenere che la
struttura cerebrale e le sinapsi siano influenzate dalla vita degli individui, dalle loro
esperienze, dall’apprendimento di compiti specifici. È il particolare pattern di
interconnessioni e la forza delle connessioni sinaptiche che definisce le proprietà
funzionali di una particolare porzione del cervello. Si è, infatti, verificato
sperimentalmente che le funzioni cognitive risiedono in particolari zone e che tali
funzioni possono essere perdute a seguito della “rottura” dei legami sinaptici ed
eventualmente recuperate, almeno in parte, con successivi processi di apprendimento
atti a instaurare nuovi pattern di interconnessione sinaptica.
Dato che la struttura cerebrale e il comportamento elettromagnetico delle singole celle
neuronali sono noti, i ricercatori si sono ben preso chiesti se si possono operare
induzioni sui comportamenti collettivi delle cellule neuronali, e dunque del cervello
umano, e se si possono trarre utili suggerimenti e ispirazioni per la costruzione di
macchine in grado di replicare compiti connotati da una forte componente di
elaborazione sottosimbolica, attualmente di difficile soluzione per i calcolatori.
Il lavoro di McCulloch & Pitts è forse il primo significativo passo in questa direzione,
la prima analisi completa, soprattutto dal punto di vista formale, che fa intuire come
semplici unità con sinapsi eccitatorie e inibitorie e con apposita soglia siano in grado,
in virtù di un processo collettivo, di rappresentare complesse proposizioni. E questo
sembra indurli a un certo ottimismo anche per le possibili implicazioni sulla
comprensione dei processi cognitivi umani: “Mind no longer goes more ghostly than a
ghost”. Tuttavia il lavoro di McCulluch e Pitt sembra essere stato più rilevante per gli
sviluppi nel settore dei calcolatori che non delle scienze cognitive. Carpire i segreti
della mente dall’osservazione dell’attivazione cerebrale è una sfida affascinante, ma
questo problema di reverse engineering sembra essere terribilmente intrappolato nella
complessità del sistema neuronale umano. Si tratta sostanzialmente di indurre
Alessandro Genovese 566/1364
Pagina 71 di 109
regolarità e leggi dall’osservazione, come in altri settori delle scienze. Questo
problema possiede, tuttavia, un’infinità di sfaccettature e, soprattutto, richiede un
processo di induzione che sembra inerentemente intrappolato nella complessità dei
sistemi dinamici oggetto dello studio. Inferire regole dagli esempi sembra essere
difficile anche in casi elementari; si pensi, a titolo di esempio, al problema
dell’inferenza induttiva di grammatiche, che consiste nel determinare la grammatica
che genera un linguaggio presentato mediante esempi. Sfortunatamente, questo
problema e intrattabile perfino in caso di semplici grammatiche.
Era, tuttavia, ben chiaro ai padri dell’informatica che non è necessaria una perfetta
emulazione dei processi neurobiologici per l’emergenza di capacità cognitive. Molti
modelli connessionistici sono, infatti, solo ispirati dal paradigma biologico a livello di
unità neuronale e si basano su una struttura, dove si eredita il principio che
l’attivazione neuronale (potenziale associato all’unità) è soggetta a eccitazioni e
inibizioni dalle unità connesse. In particolare, l’attivazione dell’unità i dipende
dall’attivazione della generica unità j mediante un parametro associato alla
connessione tra le due unità, che modella il principio elettrochimico della sinapsi. In
seguito, sarà illustrato come l’utilizzo di modelli di calcolo basati su reti neurali
artificiali sia in grado di esibire quello che Lotfi Zadeh ha definito softcomputing
secondo cui il requisito “trova sempre la soluzione esatta” diventa “trova spesso una
soluzione approssimata”.
La ricerca sulle reti neurali artificiali si è evoluta attraverso alterne vicende. Sin dagli
albori dell’informatica, l’elaborazione basata su algoritmi e i modelli neurali centrati
sul’apprendimento da esempi si sono sviluppati in parallelo. Verso la fine degli anni
’60, Marvin Minsky e Simon Paper pubblicano “Perceptrons”, un libro che analizza
con grande lucidità ed elegante formalizzazione le capacità computazionali del
percettrone di Rosenblatt. La comunità scientifica recepisce principalmente l’analisi
critica del percettrone e segue una fase di stagnazione che si protrae fino agli inizi
Alessandro Genovese 566/1364
Pagina 72 di 109
degli anni ’80. L’interesse rifiorisce, in particolare, per i lavori di Hopfield e del
Parallel Distributed Research Center sulle reti neurali multistrato con l’algoritmo di
apprendimento Back Propagation.
Fig. 10 - il neurone e la sua struttura neurale
5.1.2 Il modello matematico delle reti neurali
L'unità fondamentale di una rete neurale è il neurone o nodo o percettrone: una unità
costituita da uno o più ingressi, una funzione soglia e uno o più collegamenti in uscita.
Per tutti i neuroni, tranne per quelli che svolgono funzione di input o output della rete
stessa, i collegamenti sono da/verso uno o più neuroni e consentono solo il passaggio
di informazioni, non lo scambio. Le informazioni scorrono solo in una direzione a
livello del collegamento.
Cosi come avviene per le cellule nervose dove
l'informazione può propagarsi in una sola direzione a causa della ripolarizzazione della
Alessandro Genovese 566/1364
Pagina 73 di 109
membrana del pirenoforo. Le informazioni trasmesse ed elaborate da un neurone sono
numeri.
Nelle configurazioni più semplici gli input vengono moltiplicati per un peso, un
numero reale, ed in seguito sommati. Il valore cosi trovato viene inviato alla funzione
soglia che attiva o inibisce il neurone. Alla somma dei vari input viene aggiunto il
valore di soglia, chiamato bias, introdotto per replicare i differenti valori del potenziale
d'azione di ogni singolo neurone. Il risultato di questa operazione viene trasmesso agli
altri neuroni a questo collegati che agiranno similmente. L'attivazione o l'inibizione del
neurone è solitamente graduale ovvero non si utilizzano solo valori come 0 o 1 per
indicare due stati (attivo o inibito), sul collegamento possono essere trasmessi valori di
qualunque grandezza.
Una rete è composta da più neuroni collegati tra di loro in modo tale da individuare
almeno 3 livelli:
• Neuroni di Input: questi neuroni ricevono i dati dall'ambiente
• Neuroni Nascosti: uno o più livelli di neuroni nascosti collegati tra di loro;
nelle reti neurali più semplici è presente un solo livello di neuroni nascosi
• Neuroni di Output: ultimo passaggio della elaborazione, restituiscono i dati
ricevuti. Le informazioni scorrono in una direzione: dallo strato di ingresso, passando
per quelli nascosti, si giunge al calcolo degli output nel terzo strato.
Analisi del sistema di apprendimento di una rete neurale Una premessa al processo di
apprendimento. Una fase importante nello sviluppo di un sistema basato sulle reti
neurali è il pre processing dei dati raccolti. I parametri reali che costituiranno l'input
della rete neurali dovranno essere convertiti in numeri per poter essere elaborati. Per
esempio un suono andrà convertito in bande di frequenza, un'immagine nei valori
numerici dei propri pixel.
Alessandro Genovese 566/1364
Pagina 74 di 109
Dopo essere stata inizializzata con dei pesi casuali, una rete neurale deve subire un
procedimento chiamato apprendimento (o anche addestramento): i pesi dei singoli
neuroni vengono modificati in modo da approssimare la risposta della rete neurale ai
valori di output noti. I valori di input sono passati ai neuroni dello strato di ingresso,
l'output ottenuto dalla rete è confrontato con gli output noti, si calcola l'errore
commesso e utilizzando l'algoritmo di retropropagazione dell'errore (error
backpropagation ) si modificano i pesi dei neuroni procedendo nel verso opposto a
quello seguito per il calcolo degli output. Quest'ultima procedura, denominata nel suo
complesso epoca, è ripetuta diverse volte ( 106 109 volte o più ) per migliorare sempre
più i pesi delle connessioni dei neuroni. Si dice che una rete abbia eseguito un
addestramento di N epoche.
Potremmo dire che la rete neurale "impara dall'esperienza commettendo errori" in
quanto dalla presentazione degli stessi valori, tra i quali si presuppone l'esistenza di
una relazione, riconosce quella funzione che sarà memorizzata nei pesi delle
connessioni dei singoli neuroni. Ripetendo più volte il confronto con gli insiemi input
output corretti acquista esperienza, gli errori compiuti vengono corretti di epoca in
epoca.
Le reti neurali possono approssimare funzioni matematiche ma anche trovare relazioni
e fornire un modello non studiabile delle relazioni tra input e output. Una rete neurale
a singolo livello, ci si riferisce al numero di livelli nascosti,è in grado di apprendere
qualsiasi funzione continua, mentre sono necessari almeno due livelli nascosti, rete
multistrato, per riprodurre delle funzioni discontinue.
Le reti neurali vengo utilizzate per realizzare dei modelli che permettano di calcolare
con una certa accuratezza i risultati di una funzione anche al di fuori dei valori di
addestramento. Il paragone con una funzione matematica deve considerare funzioni
con più di una incognita, in quanto, una rete neurale può avere una elevato numero di
neuroni di input. Il numero considerevole di variabili aumenta la complessità delle
Alessandro Genovese 566/1364
Pagina 75 di 109
relazioni matematiche da elaborare e fa si che le reti neurali, sebbene non permettano
di studiare un modello, possono fornire una previsione del comportamento del
fenomeno studiato.
Per esempio immaginiamo di aver registrato per diversi mesi l'andamento del meteo
in una certalocalità. Sono stati raccolti dati riguardanti la pressione atmosferica, la
temperatura e l'umiditàdell'aria, velocità e direzione del vento, la quantità ed i tipo di
precipitazioni e l'ora del rilevamentodei dati. E' possibile realizzare una rete neurale,
che considerando come input i valori rilevati ad unacerta ora della giornata di oggi,
restituisca il tipo di precipitazione nelle prossime 12 h oppure latemperatura nei giorni
successivi. In questo esempio la rete neurale, confrontandosi con lo storicodel meteo in
quest'area, viene addestrata ad «approssimare» quella funzione, relazione, che non si
riesce ad esprimere matematicamente, fornendo una previsione del fenomeno.
5.1.3 Apprendimento di una rete Neurale
Nelle reti neurali artificiali, assieme ai corrispondenti schemi computazionali, sono di
scarso interesse senza il paradigma centrale dell’apprendimento, che viene ispirato a
corrispondente paradigma neurobiliogico. Apprendere in una rete neurale artificiale
corrisponde a modificare il valore dei pesi delle connessioni sinaptiche. Tale processo
è influenzato dagli esempi che concorrono a sviluppare concetti. I dati e l’interazione
con l’ambiente concorrono con diversi protocolli allo sviluppo di competenze
cognitive. In particolare, si individuano tre diverse modalità di autoapprendimento (o
apprendimento automatico) a seconda del ruolo esercitato dal supervisore del concetto:
l’apprendimento con supervisione, l’apprendimento con rinforzo e l’apprendimento
senza supervisione.
Mentre l'intelligenza artificiale tradizionale cerca di riprodurre le capacità degli esseri
umaniin termini di simboli e regole per manipolare questi simboli, le reti neurali sono
Alessandro Genovese 566/1364
Pagina 76 di 109
invece modelliispirati alle caratteristiche fisiche del corpo, in particolare del sistema
nervoso. Una differenzacruciale, consiste nel fatto che un sistema di intelligenza
artificiale in genere nonapprende, perché è previamente programmato.
Al contrario, è tipico delle reti neurali e, ingenere, di tutti i sistemi che si ispirano alle
caratteristiche degli organismi biologici, che lecapacità di tali sistemi sono frutto di un
apprendimento autonomo, spontaneo, avvenutoall'interno del sistema.C'è, quindi, una
forma di auto organizzazione, di auto apprendimento autonoma, che non esistenei
sistemi tradizionali. Questo può essere realmente un vantaggio nel senso che per
determinati problemi complessi e non programmabili possono essere risolti con
logiche di autoapprendimento delle reti neurali. Queste logiche, fanno sì che lo stesso
sistema trovi da solo le soluzioni piùinteressanti a cui noi non avremmo pensato se
avessimo dovuto programmarlo.
L'apprendimento descritto nell'esempio precedente è un apprendimentosupervisionato
in quanto è presente un insieme di valori di input ed il corrispettivo output.L'obiettivo
finale dell'apprendimento supervisionato è la previsione del valore dell'uscita per ogni
valore valido dell'ingresso, basandosi soltanto su un numero limitato di esempi di
corrispondenza(vale a dire, coppie di valori input/output tipicamente un vettore). Per
fare ciò, la rete deve essere infine dotata diun'adeguata capacità di generalizzazione,
con riferimento a casi ad essa ignoti.
La differenza tra le reti neurali e le normali intelligenze artificiali consiste anche nella
diversaprogettazione: mentre i sistemi esperti si basano sulla logica umana, le reti
neurali si fondano sullastruttura del cervello umano. Questa differenza è notevole
poichè è causa del grande potenziale edell'imprevidibilità delle reti neurali: cosi come
possono fornire soluzioni laddove non si riesca adescrivere un algoritmo, può risultare
difficile la predisposizione di algoritmi di apprendimentoefficaci per una determinata
situazione. La loro complessità rende difficile determinare cosa una rete possa fare o
meno dal punto di vista matematico.
Alessandro Genovese 566/1364
Pagina 77 di 109
L'apprendimento non supervisionato il problema diventa quello di trovare strutture
nascoste in strutture dati non pre-classificate da cui non è possibile valutare una
possibile soluzione. Questo metodo di apprendimento è strettamente collegato al
problema di stima di densità in statistica.
L'apprendimento con rinforzo è una tecnica di programmazione basata sul
presupposto di potere ricevere degli stimoli dall'esterno a seconda delle scelte
dell'algoritmo. Gli algoritmi per il reinforcement learning tentano di determinare una
politica tesa a massimizzare gli incentivi cumulati ricevuti dall'agente nel corso della
Fig. 11 - rete neurale feed forward
sua esplorazione del problema. L'apprendimento con rinforzo differisce da quello
supervisionato poiché non sono mai presentate delle coppie input-output di esempi
noti, né si procede alla correzione esplicita di azioni subottimali.
Per reti ricorsive invece, come è può essere vista l'intera architettura della rete
Netsukuku, risulta difficile concepire schemi di apprendimento in grado di coniugare
entrambe queste proprietà, mentre questo è possibile per architetture speciali, in cui le
Alessandro Genovese 566/1364
Pagina 78 di 109
connessioni che produ- cono la ricorsività sono solo locali ai neuroni. In alcuni
protocolli di apprendimento, si è assunto che l’apprendimento consiste solo nella
variazione dei pesi e che questo ha luogo a partire da una rete neurale con architettura
predefinita. Il principio di indeterminazione, precedentemente menzionato, suggerisce,
tuttavia, che la definizione stessa dell’architettura possa ragionevolmente costituire
oggetto del processo di apprendimento. Tale assunzione, che ha solide basi
neurobiologiche, conduce dunque allo studio di algoritmi atti creare e cancellare
connessioni si- naptiche oltre che a variarne il peso corrispondente. Sono stati
concepiti algoritmi di growing e di pruning delle connessioni basati tipicamente sul
principio della sensibi- lità dei pesi rispetto al comportamento della rete. Sono stati
anche proposti algoritmi genetici per sviluppare l’architettura adeguata a un certo
“task”. Infine, la supervi- sione può essere fornita in modo più sofisticato mediante
uno schema di insegnamen- to, che mira a presentare il desiderato target in modo
progressivo.
5.1.4 L'apprendimento supervisionato
Nell’apprendimento con supervisione, il supervisore fornisce l’informazione completa
sul concetto, definendo, in questo caso, esattamente la classe di appartenenza.
L’apprendimento di un concetto non richiede necessariamente l’interazione con un
supervisore e può aver luogo anche mediante un’auto-organizzazione degli esempi.
Apprendere senza supervisione significa aggregare esempi simili in regioni neuronali
topologicamente vicine: l’apprendimento, quindi, è guidato da criteri di “similarità”
nei dati.
Alessandro Genovese 566/1364
Pagina 79 di 109
5.1.5 L'apprendimento con rinforzo
Con il termine di Apprendimento per Rinforzo (Reinforcement Learning) si intende
più una problematica di addestramento che un metodo di addestramento.
L’apprendimento per rinforzo è un metodo che permette di apprendere da prove ed
errori; dal punto di vista psicologico il meccanismo di rinforzo consiste nell’idea che
le azioni che producono un buon risultato tendono ad essere scelte sempre più
frequentemente, mentre quelle seguite da cattivi risultati finiscono per essere
gradualmente escluse dalla scelta.
L’utilizzo dell’apprendimento per prove ed errori nei sistemi intelligenti artificiali
risale alle prime speculazioni di Turing nel 1950, ma le prime pubblicazioni
riguardano Minsky, Farley e Clark nel 1954. Nella sua tesi di dottorato Minsky
descrive un modello computazionale di apprendimento per rinforzo e una sua possibile
realizzazione concreta, sotto forma di macchina analogica, chiamata SNARC
(Stochastic Neural Analog Reinforcement Calculator); mentre Farley e Clark
descrivono un sistema di tipo rete neurale. Ma poiché l’apprendimento per rinforzo
non è un semplice metodo di modifica dell’azione associata allo stimolo, ma riguarda
anche il problema di stimare il beneficio futuro ed il problema di gestire la ricerca di
soluzioni migliori, esso fa riferimento anche agli studi matematici del controllo
ottimale sviluppati nel 1950. Il termine controllo ottimale definisce il problema
(generale) del controllo nel tempo di un sistema per ottimizzare un valore di
riferimento. L’approccio proposto fu quello di utilizzare il concetto di stato dinamico
del sistema (ovvero configurazione delle variabili di ingresso ad un istante) e della
funzione valore dello stato per definire una equazione funzionale chiamata
successivamente equazione di Bellman.
Alessandro Genovese 566/1364
Pagina 80 di 109
5.1.6 Intelligenza Artificiale
Gli esseri umani ritengono che le proprie capacità mentali siano molto importanti in
quanto strettamente relazionate ad istinti sensoriali e alle loro facoltà innate di
cimentarsi nella risoluzione di problemi più o meno complessi. Per migliari d'anni
abbiamo cercanto di comprendere i meccanismi che stanno alla base del pensiero
umano; ovvero come un semplice "mucchio di materia" sia capace di percepire,
predire, capire, manipolare un mondo molto sempre più grande e complicato.
L'IA non è una scienza nuovissima: le sue origini risalgono al periodo immediamente
successivo alla seconda Guessa Mondiale, e il termine stesso fu coniato subito dopo
nel 1956.
Cos è realmente l'IA ? E' una disciplina che studia le facoltà mentali attraverso
l'utilizzo di modelli computazionali i quali rendono possibile percepire, ragionare e
agire; è lo studio, anche, della progettazione di agenti intelligenti che sappiano
prendere decisioni, poichè "istruiti".
L'approccio del test di Turing del 1950, è stato concepito per fornire una soddisfacente
definizione operativa dell'intelligenza. Invece di proporre una lunga e probabilmente
controversa lista di carateristiche richieste a un computer per essere considerato
intelligente, Turing propose un test basato sull'impossibilità di distinguerlo da entità
che lo sono indubbiamente: gli esseri umani. In sostanza il test si basava sul semplice
concetto che se un esaminatore umano, dopo aver posto alcune domande in forma
scritta, non sarà in grado di capire se le risposte provengono da una macchina o meno
allora il computer passerà il test.
Notiamo che programmare una macchina in grado di superare il test richiede un molto
Alessandro Genovese 566/1364
Pagina 81 di 109
lavoro, poichè la macchina dovrebbe pertanto possedere le seguenti capacità:
• interpretazione del linguaggio naturale per comunicare con l'esaminatore
nel suo linguaggio umano
• rappresentazione della conoscenza per memorizzare quello che sa o sente
• ragionamento automatico per utilizzare la conoscenza memorizzata in modo
da rispondere alle domande e trarre nuove conclusioni
• apprendimento per adattarsi a nuove circostanze, individuare ed estrapolare
pattern
Il test di Turing evita deliberatamente l'interazione diretta tra l'esaminatore e il
computer, dato che la simulazione fisica di una persona non è richiesta per la
determinazione dell'intelligenza. Tuttavia, esiste anche un cosidetto test di Turing
totale che include un segnale video in modo che l'esaminatore possa verificare le
capacità percettive del soggetto. Per poter passare questo tipo di test, il computer
necessiterà anche di:
• visione artificiale per percepire gli oggetti
• robotica per manipolare gli oggetti e spostarsi fisicamente
Le sei discipline elencate qui sopra abbracciano gran parte dell'intelligenza artificiale,
e bisogna dare credito a Turing di aver concepito un test che è rimasto significativo a
distanza di oltre cinquant'anni. I ricercatori non hanno dedicato molti sforzi al tentativo
di costruire un sistema capce di passare il test di Turing, ritenendo più importante
studiare i principi alla base dell'intelligenza che dedicarsi alla creazione di un
duplicato: dopotutot, la ricerca del "volo artificiale" ha raggiunto il successo quando i
fratelli Wright e altri hanno smesso di imitare gli uccelli per studiare l'aerodinamica. I
manuali d'ingegneria aerospaziale non definiscono l'obiettivo della loro disciplina
come la creazione di "macchine che volano esattamente come un piccione, in modo
Alessandro Genovese 566/1364
Pagina 82 di 109
così perfetto da ingannare anche gli altri piccioni".
Il filosofo greco Aristotele è stato uno dei primi a cercare di codificare formalmente il
"pensiero corretto", ovvero i processi di ragionamento irrefutabili. I suoi sillogismi
forniscono pattern di deduzione che portano sempre a conclusioni corrette quando
sono corrette le premesse: ad esempio, il famoso "Socrate è un uomo; tutti gli uomini
sono mortali; quindi Socrate è mortale". Si riteneva che queste leggi del pensiero
governassero il funzionamento della mente; il loro studio ha dato origine alla
disciplina chiamato logica.
Quindi la logica è un metodo di procedere indipensabile per il raggiungimento dello
scopo che si prefigge l'intellingenza artificiale; già nel 1965 esistevano programmi che
potevano, in linea di principio, risolvere qualsiasi problema descritto in linguaggio
logico e dotato di soluzione. La tradizione logicista spera di partire da programma
siffatti per costruire sistemi intelligenti. Quest'approccio ha però due punti deboli:
in prima istanza, non è affatto facile esprimere una conoscenza non formalizzata nei
termini strettamente formali richiesti dalla notazione logica, in particolare quando tale
conoscenza non è sicura al 100%; inoltre, come secondo punto debole, c'è una grande
differenza tra essere in grado di risolvere un problema "in linea di principio" e farlo
praticamente.
Alessandro Genovese 566/1364
Pagina 83 di 109
6 Approccio Proposto
Problemi non riscontrati attualmente in Netsukuku sono quelli di reggere un carico
molto più ampio rispetto ad altri tipi di rete Wireless Mesh Networks e riesce pertanto
a riconfigurarsi senza cambiare l’indirizzo degli host: l'aggiornamento di spostamenti
continui, come nel caso di una rete mobile risulterebbe alquanto complicata, in quanto
è necessaria una continua comunicazione per rendere disponibile questa informazione
(porzioni di mappe) ai nodi vicini; la rete verrebbe quindi inondata da un flooding
continuo di pacchetti di dati che portano informazioni soltanto di localizzazione.
Il mezzo di trasmissione più efficiente ed economico per stabilire ed effettuare
connessioni tra gli utenti di una rete mobile (quindi tra i nodi) è quello delle onde
radio. In uno scenario di adozione su larga scala, un utente che utilizzerà un protocollo
Netsukuku per il suo dispositivo benificerà di tutti i vantaggi di una rete del genere,
descritti ampiamente nel paragrafo 4.
Per affrontare un'adattamento di Netsukuku ad una rete ad alta mobilità come quella
dei dispositivi cellulari, è bene tenere presente determinati fattori. Per esempio salti
continui nella rete tra i vari Gnodes, dovuti agli spostamenti, continue situazioni di
broken link, causate per esempio da un cosnumo eccessivo della batteria, oltre che un
conseguente ed elevanto numero di pacchetti di scambio dati per rendere nota
l'informazione del salto o di una qualsiasi altro aggiornamento della rete.
Ogni cellulare, è inteso come nodo, ammettendo che non esista il gap strumental,e
quali interferenze nelle onde radio durante l'invio dei dati da un dispositivo all'altro
allora possiamo stabilire una condivisione, o sharing, dei pacchetti dati, quali
telefonate, messaggi e navigazione che attraverseranno i singoli nodi della rete.
Alessandro Genovese 566/1364
Pagina 84 di 109
Ciò che si vuole creare è una rete topologicamente diversa da quella esistente,
adattabile durante il cambio generazionale anche alla tecnologia preesistente. Il
vantaggio è già stato reso evidente dalla descrizione effettuata precedentemente ma è
bene sottolineare che questa nuova architettura permetterà la disponibilità
dell'informazione, a portata realmente di palmo, in molti paesi denominati con il
termine politico, ben noto, terzo mondo, oltre che avere il grande potenziale di poter
raggiungere un'informazione più libera e priva di filtri, ad oggi, quasi un'utopistica
visione.
6.1 Introduzione
In molti paesi non ancora completamente sviluppati, dal punto di vista tecnologico e
non solo, il problema delle infrastrutture di base grava, in maniera estremamente
onerosa sui costi d’implementazione ed installazione delle tecnologie odierne di
comunicazione cellulare, nonchè internet. Anche in paesi strutturalmente e
tecnologicamente avanzati si riscontrano in maniera notoriamente frequente le zone
d’ombra all’interno di strutture o di zone periferiche alla città, nelle quali la
comunicazione è impedita. Oggigiorno la copertura del territorio nazionale è quasi al
75% con un massiccio impiego di investimenti per l'installazioni di diverse e numerose
antenne e ripetitori di diverse varie compagnie telefoniche; una rete autogestita come
quella teorizzata in questo documento potrebbe risolvere problemi sintomatici odierni
delle attuali reti cellulari, ed aumentarne, estendendone la copertura su qualsiasi
territorio, anche in paesi in via di sviluppo dove l'interesse delle big company è
minimo per ovvie ragioni economiche.
Il modo migliore per poter creare una rete Netsukuku su mobile è quella di effettuare
un'upgrade di “intelligenza” ai singoli nodi della rete ipotizzata in questa tesi; i
Alessandro Genovese 566/1364
Pagina 85 di 109
moderni smartphone hanno una struttura hardware e software che ci permette di
ipotizzare modelli di network avanzati nonchè software di intelligenza artificiale come
si sta attualmente sperimentando la DARPA per progetti a scopi militari. I dispositivi
mobiles sono in grado di poter supportare un sistema operativo (come iOS®,
Android®) senza alcun peso o eccessivo consumo delle risorse energetiche,
considerando anche che l'avanzamento tecnologico in termini di "risorse hardware"
sarà sempre più similare ai nostri computer desktop o portatili, ci permetterà la
teorizzazione di questo modello che sfrutta logiche di calcolo statistico, AI e gli
algoritmi di funzionamento sintetizzati in questa tesi per gestire l'architettura
Netsukuku senza alcun peso. Come già accennato nel paragrafo 4 Netsukuku è in
grado di poter "girare" su computer con ristretta capacità di calcolo grazie alla
compressione dell'algoritmo di ricerca e alle logiche insite in questo protocollo.
Un modello come quello delle reti mobile ci pone dinanzi ad uno scenario in continua
mutazione, una condizione in cui la rete verrà sovraccaricata o inondata da continui
pacchetti informativi riguardante la mutazione della mappa, come già accennato
precedentemente.
6.1.1 La soluzione proposta
Per i problemi appena discussi ed accennati si propone la modifica di alcune logiche di
propagazione delle informazioni del protocollo di Netsukuku che permetta
l'organizzazione di Gnodes geolocalizzati costituiti proprio dalla natura stessa dei
singoli nodi di appartenenza.
Supponiamo uno scenario in cui un nodo si sposta all'interno del Gnodes della rete e
supera i confini delimitati dalla stessa effettuando un "salto" in un altro Gnodes il
quale dovrà rendere reperibile al suo ingresso (ammesso non sia saturo) a tutti suoi
Rnodes (nodi relativi o immediatamente vicini) e agli altri vicini appartenenti al
Alessandro Genovese 566/1364
Pagina 86 di 109
Gnodes stesso, oltre che informare i suoi ex Rnodes della sua assenza all'interno
dell'ex-Gnodes di appartenenza dal quale è partito. Il chè comporta un numero
considerevole di scambi di pacchetti dati considerando che questi salti sono
estremamente frequenti, talvolata ridonandanti, e numerosi. Anche in termini di
secondi possiamo ipotizzare uno scenario in cui vi è un singolo mobile che attraversa
diversi Gnodes poichè in movimento estremamente veloce (rispetto agli altri).
Secondo quanto riportato da aziende come la Gartner, specializzata nel settore di
raccolta dati per analisi di data mining e statistiche nel settore tecnologico di livello
internazionale, e da ricercatori dell'università tedesca di Darmstadt e da quella di
Princeton hanno rilasciato documenti e pubblicazioni basati sui comportamenti,
spostamenti e abitudini giornaliere in cui si sintetizza che, le persone si riducono in
impegni quotidiani quasi sempre uguali giorno dopo giorno, come, per esempio,
accompagnare i propri figli a scuola prima di andare successivamente al lavoro; quindi
ci si muove poi verso una palestra ad orari ben precisi ed impegando tempi più o meno
gli stessi per mesi. Gli studi evincono quindi che con una stima approssimativa, si il
ben oltre il 70% delle persone compie abitudini giornaliere uguali in tempo più o meno
gli stessi; questa importante informazione ci conduce ad una soluzione ovvia per
eliminare il problema dei salti incondizionati e frequenti dei nodi in una rete mobile
Netsukuku.
In base a documenti studiati, per rendere possibile la topologia della rete mobile
netsukuku è quella di influire sulla comunicazione degli scambi della porzione di
mappa e non solo, rendendo il nodo in grado di dover compiere decisioni in merito alla
comunicazione della propria presenza, oppure se attingere alla rete esterna per
effettuare lo scambio dei dati sulla rete o addirittura se essere in hidden mode in cui il
dispositivo non è reso reperibile dagli altri poichè in uno stato di movimento elevato (è
uno dei casi di situazione limite) ma usufruisce allo stesso modo della rete.
Alessandro Genovese 566/1364
Pagina 87 di 109
6.1.2 Creazione e aggregazione di informazioni associative
Come abbiamo già detto prima ogni persona effettua giornalmente spostamenti o
percorsi abituali il che comporta "salti" abituali quasi identiche ogni giorno; gli
spostamtenti, ovvero le posizioni dei mobiles, non sono altro che delle coordinate
geografiche, reperibili dallo stesso dispositivo, che verranno associate ad un timestamp
con un numero associato che gestisce la pesantezza (o importanza) dell'informazione
memorizzzata. In questo modo avremo una tabella di importanza degli spostamenti più
usuali relazionati strettamente ai tempi in cui avvengono queste rilevazioni;
l'informazione tabellare è continuamente aggiornata ed è sottoposta ad un garbage
collector che eliminerà percorsi o rotte non più effettuati, in quanto il livello di
pesantezza sarà di valore negativo. Le informazioni così salvate permetteranno al
dispositivo una ricerca basandosi sull'attuale posizione geografica e temporanea per
trovare il posizionamento di altri Rnodi confinanti aventi parametri di riscontro con le
informazioni salvate.
E' possibile stabilire, quindi, e tracciare spostamenti usuali delle persone, creando
connessioni in modo più rapido, veloce e con minor rumore possibile (minor numero
possibile di comunicazioni in un determinato lasso di tempo). Con questa soluzione è
possibile comunicare in modo più flessibile e stabile sicuro evitando di aumentare
l'ingolfamento della rete stessa soltanto a scopi di comunicazione.
La costruzione della "tabella di POI" è basata sulla determinazione di percorsi o rotte
giornalieri ritenuti interessanti: un percorso è ritenuto interessante soltanto se è stato
percorso in precedenza, quindi vi è già un match o found di questa informazione al
minimo n volte (con n >0). Più volte, quindi, si riscontra il matching maggiore sarà il
peso della rotta.
Alessandro Genovese 566/1364
Pagina 88 di 109
Se ogni rotta è indipendente dalle altre allora possiamo stabilire che per ogni
coincidenza venga ricevuto un "pay-off" ( che in inglese significa compenso ) che può
risultare essere positivo (caso in cui avviene una corrispondenza), negativo ( o fault)
oppure nullo (in caso di non spostamento in cui non vi è motivo alcuno di
memorizzazione di dati); positivo se il percorso è ancora lo stesso e quindi vi è un
match tra la navigazione attuale e quella memorizzata, negativo se è diverso e nullo
invece nel caso in cui mancano all'appello nodi previsti lungo la rotta.
Si costruisce di fatto una tabella in cui gli stessi Gnodes e nodi conoscono esattamente
il comportamento generale adottato da ogni singolo nodo in quanto rispecchia le
abitudini di spostamento delle persone. La navigazione ottimale da seguire, per evitare
comunicazioni in eccesso, è strettamente determinata dalle rotte memorizzate e dal
cambio o meno delle abitudini. Le informazioni possono essere pertanto aggregate in
logiche statistiche al crescere dei dati che rispecchino determinati parametri.
La comunicazione della sua esistenza è prioritaria pertanto ed intriseca nel tipo di rete
descritta finora, poichè per rendere le informazioni accessibili e trasmissibili vi è
bisogno di costruire la rete con il più alto numero di nodi attivi; pertanto un modello
ibrido potrebbe risultare ottimale in contesti odierni fino al raggiungimento di un
upgrade tecnologico futuro.
6.1.3 Intelligenza Artificiale nei nodi
"L'installazione" di un intelligenza artificiale è strettamente legata alle decisioni da
intraprendere, durante la navigazione del dispositivo, per la comunicazione della sua
esistenza nella rete (decisione basata su 3 diversi stati di esistenza) e alle eccezioni
riscontrate nell'ambiente esterno. Le funzioni (o scelte) salvate resteranno memorizzate
poichè pertanto, in quel preciso momento, sono ritenute interessanti ma verranno
rimosse, grazie all'uso di un garbage collector, se l'evento che le ha generate non si
Alessandro Genovese 566/1364
Pagina 89 di 109
presenterà successivamente nell'arco di un periodo di tempo ben definito. Un'evento
(quale, per esempio, un fault durante una ricerca nella tabella) può essere generato e
deve essere identificato e categorizzato per poter prendere decisioni in merito a
parametri di input determinati dall'ambiente esterno. Per questo motivo l'utilizzo
dell'intelligenza artificiale con apprendimento con rinforzo è stata ipotizzata come
soluzione per poter istruire i nodi rendendoli in grado di risolvere problemi di difficile
formalizzazione, come, per esempio, potrebbero essere i diversi casi limiti generati
dall'ambiente esterno, una decisione in merito allo stato d'identificazione del nodo
nella rete o una ricerca di un Rnode.
Si è analizzato principalmente due tipi di apprendimento: apprendimento
supervisionato e con rinforzo. Con l'apprendimento supervisionato si parte dal
presupposto che se forniamo un numero adeguato di esempi l'algorimo sarà in grado di
creare una funzione h1 che approssimerà la funzione h. Se l'approssimazione di h
risulterà adeguata quando proporremo ad h1 dei dati in ingresso mai analizzati la
funzione dovrebbe essere in grado di fornire delle risposte in uscita simili a quelle
fornite da h e quindi corrette o quasi. Si può facilmente intuire che il buon
funzionamento dipende in modo significativo dai dati in ingresso; se si forniscono
pochi ingressi l'algoritmo potrebbe non aver abbastanza esperienza, mentre molti dati
in ingresso potrebbero rendere eccessivamente lento l'algoritmo, dato che la funzione
h1 generata dagli ingressi potrebbe essere molto complicata. Questi algoritmi sono
molto sensibili al rumore, anche pochi dati errati potrebbero rendere l'intero sistema
non affidabile e condurlo a decisioni errate. Ma l'adattamento di questo algoritmo per
la rete mobile Netsukuku è difficilmente adattabile in quanto l'algoritmo dovrebbe
pertanto adattarsi all'ambiente esterno.
Per quanto riguarda invece l'apprendimento con rinforzo che punta a realizzare
algoritmi in grado di apprendere dall'ambiente esterno e quindi adattarsi alle diverse
scelte adottate nel corso del tempo, in quanto non potendo ipotizzare in quali situazioni
Alessandro Genovese 566/1364
Pagina 90 di 109
e ambienti circostanti ad un nodo il sistema si possa trovare. Questo tipo di
apprendimento, infatti, è in funzione degli stilmoli esterni, quindi una scelta corretta
comporterà un premio mentre una scorretta porterà ad una penalizzazione.
L'algoritmo ha potere quando, per esempio, non vengono più riconosciuti n
spostamenti abituali dal sistema e quindi si crea un'eccezione in esso; avrà a
disposizione inizialmente un numero ristretto di informazioni e un ampio spazio di
libertà, sulla base dei suoi errori e successi potrà imparare ad affrontare situazioni
imprevedibili. Infatti se per esempio scegliesse di rendersi visibile, in quel periodo di
tempo con quelle determiante coordinate geografiche, in determinate circostanze
ambientali circostanziate ad esso, dovrà successivamente analizzare la scelta: in caso
di successo, determianto da attributi ben precisi quali il segnale deve essere eccellente
(è al 50%) e non genera molto rumore, con la comunicazione agli altri nodi della sua
presenza, allora si può dire che la scelta è stata vincente e verranno salvati i dati in
tabelle apposite per questo tipo di eccezione o meno; caso in cui il segnale è minore
del 50% la scelta non è ottimale e genererà un ulteriore punteggio. Gli altri casi sono
gestiti in modo analogo.
Inoltre grazie all'algoritmo ideato dal prof. Solomonoff e in seguito con il contributo
del prof.Hutter si è giunti ad ideare un nuovo tipo di algoritmo di apprendimento con
rinforzo, denominato con il termine AIXI.
La teoria di partenza, stilata dal prof.Solomonoff è basata nella previsione di dati futuri
basati sull'osservazione di dati passati, nel caso in cui i dati siano generati secondo una
distribuzione probabilistica. AIXI riesce ad estendere questa teoria in ambienti
sconosciuti; è una teoria universale, che non ha parametri da calibrare e che non fa
ipotesi sull'ambiente eccetto quella di seguire una distribuzione computabile
(sconosciuta). AIXI rappresenta un nuovo algoritmo di apprendimento, che promette di
superare tutti i problemi (tranne quelli computazionali) dei precedenti algoritmi di
apprendimento con rinforzo. Questo tipo di teoria è ottimale se apportata in ambiti in
Alessandro Genovese 566/1364
Pagina 91 di 109
oggetto di questa tesi, rendendo più efficiente l'apprendimento con rinforzo in casi in
cui gli spostamenti abituali di una persona non rientrano nel 70% del comportamento
abituale ipotizzato.
6.1.4 Ricerche in merito all'AI sui mobile
Fondato dalla DARPA e dall'SRI International, Adam Cheyer scienziato e ricercatore
alla SRI, Dag Kittlaus and Tom Gruber stanno attualmente lavorando per portare
un'intelligenza artificiale sui dispositivi mobile. Visto il crescente aumento delle
prestazioni dei dispositivi cellulari dotati sempre più di maggiore capacità di calcolo e
di memoria di storage oltre che quella virtuale sarà possibile in un prossimo futuro
avere applicazioni molto più avanzate di quella prototipale sviluppata recentemente
dalla SRI; la loro invenzione si chiama Siri, una guida personale, un'intelligenza che
assiste attraverso l'iPhone l'utente. Una volta lanciato l'applicativo basta effettuare una
richiesta verbale che Siri la processa e trova possibili soluzioni come mostrare un
numero di telefono, organizzare l'agenda aggiungendo un nuovo appuntamento
all'agenda o persino comprare dei biglietti per il cinema.
È è un progetto creato su concetti di ricerca avanzata basati sul progetto CALO
(Cognitive Assistant that Learns and Organizes), il più grande progetto degli States
sull'intelligenza artificiale.
Alessandro Genovese 566/1364
Pagina 92 di 109
6.2 Privacy
In un problema di forte interesse ed attualità come quello della privacy è da tenere ben
presente riguardo la soluzione proposta in questa tesi per il modello Netsukuku; la
soluzione non comporta nessun problema di privacy anzi forse l'esatto opposto. Ogni
cellulare disporrà di questa tabella delle sue localizzazione che sarà incondivisibile con
gli altri dispositivi, poichè la creazione della stessa è strettamente legato soltanto al
miglioramento della rete Netsukuku sui dispositivi mobile e rafforzerebbe sempre di
più l'anonimato di un nodo nel network.
Un'articolo molto interessante che evidenzia la netta e voluta mancanza di privacy
odierna è quello portato in evidenza da un famoso giornale di fama internazionale il
Guardian, il giorno 20 Aprile 2011, nel quale descrive ampiamente sul come la Apple
attualmente stia raccogliendo questo tipo di dati.
Simon Davies, direttore del gruppo di Privacy International, ha dichiarato, in
un'intervista rilasciata al Guardian che questa scoperta è altamente allarmaente in
quanto l'identificazione della posizione è uno degli elementi più delicati nella vita di
ognuno; basti pensare dove andare la sera. L'esistenza di tali dati crea una reale
minaccia alla nostra privacy. La mancanza di comunicazione agli utenti o qualsiasi
opzione di controllo non può che derivare da ignoranza sulla privacy in fase di
progettazione.
Punto di Warden e Allan che il file che salva queste informazioni è spostato di volta in
volta su nuovi dispositivi, quando quello vecchio viene sostituito. Apple potrebbe
avere nuove funzionalità in mente che necessitano di una storia della vostra posizione.
Il fatto che (il file) è trasferito attraverso durante la migrazione è la prova che la
Alessandro Genovese 566/1364
Pagina 93 di 109
raccolta dei dati non è casuale.
Deputati nel 2009, ha criticato il motore di ricerca Google gigante per il suo sistema di
"Latitude", che ha permesso alle persone di consentire ai propri cellulari per dare i
dettagli della loro posizione ai contatti di fiducia. Al momento questo applicativo
minaccia la privacy delle persone che lo utilizzano in modo sostanziale, ma Google ha
sottolineato che gli utenti hanno dovuto scegliere proprio quello di rendere disponibili
i loro dati prima di installare l'applicativo.
Fig.14 - Rappresentazione del file trovato da Simon Devies
Vengono abitualmente raccolti dati sensibili di questo tipo poichè progetti come
Magitti ( sviluppato dal 2007 dai ricercatori di Palo Alto ) che continuino ad esistere
per profilare ogni singolo utente ricavandone un'immagine virtuale sempre più
veritiera e corrispondente alla realtà.
Alessandro Genovese 566/1364
Pagina 94 di 109
7 Applicativo
L'applicativo sviluppato inerente agli argomenti trattati in questa tesi è basato sulla
ricerca e la comunicazione tra due dispositivi connessi in una rete Wifi atraverso
protocollo Bonjour. L'applicativo, sviluppato su un framwork che permette il deploy su
sistemi operativi di diversa natura, è in grado di poter ricercare nella rete Wifi
connessa diversi mobile in ascolto su una porta pre-determinata.
Una volta effettuata la localizzazione del dispositivo si effettua la connessione che
mette in grado entrambi gli utenti ( in maniera sincrona ) di inviare ad uno dei due il
numero di cellulare dove poter dover la telefonata.
E' nato con lo scopo di dimostrare la ricerca di n nodi all'interno di un network wifi
dove sono presenti altri dispositivi; s'ipotizza che al massimo n-1 nodi o cellulari siano
in assenza di segnale e che invece 1 soltanto quindi sia in grado di fornire il segnale
per la comunicazione. L'applicativo creato effettua 1 hop, ovvero crea una
comunicazione diretta tra due dispositivi mettendoli in comunicazione fra loro
simulandone, in parte, la funzionalità della rete qui proposta come oggetto di tesi.
Fig.15 - Rappresentazione dell'architettura di Titaniume dei file sviluppati
Alessandro Genovese 566/1364
Pagina 95 di 109
7.1 Framework di sviluppo : Titanium
E' un innovativo framework che permette di poter sviluppare in un unico linguaggio
( Javascript ) applicativi per dispositivi mobile ed effettuare il deploy per diversi
sistemi operativi quali iOS®, Android® o Symbian®.
Il framework è open source e mette a disposizione le API che vengono interpretate da
Titanium e scritte nei diversi linguaggi nativi dei singoli dispositivi, quali Objective C
e Java.
Le caratteristiche principali della Appcelerator Titanium includono:
– Supporto per le tecnologie web basate su standard: HTML, CSS e Javascript
su tutte le piattaforme con PHP, Python e Ruby per le piattaforme desktop
– Supporto integrato per JavaScript e AJAX Frameworks compresi jQuery ,
YUI , MooTools , Scriptaculous e altri.
– Un'indipendenza dalla piattaforma API per l'accesso nativo ai componenti di
UI (User Interface) comprese le barre di navigazione, menu, finestre di dialogo, gli
alert e le funzionalità native del dispositivo tra cui il file system, audio, network e
database locali
– API native per accedere a funzionalità di telefonia mobile, come la
geolocalizzazione, accelerometro e mappe
– Estensibilità attraverso interfacce aperte e le licenze, permettendo agli
sviluppatori di introdurre il supporto per altri linguaggi di scripting, codec
multimediali e funzionalità specifiche del dispositivo
Alessandro Genovese 566/1364
Pagina 96 di 109
7.2 Codice Sviluppato
Il seguente codice è stato sviluppato utilizzando le API di Titanium che generano i
relativi codici sorgenti per iOS in Objective C, Android in Java.
7.2.1 Titanium
App.js
Titanium.UI.setBackgroundColor('#000');
Titanium.include('bj.js');
var win = Titanium.UI.createWindow({
backgroundColor:'#000',
layout:'vertical'
});
win.add( Titanium.UI.createLabel({
text:'Scegli il tuo pallino',
color:'#fff',
textAlign:'center',
font:{
fontWeight:'bold',
Alessandro Genovese 566/1364
Pagina 97 di 109
fontSize:28
},
height:40,
top:0
}));
var textfield = Titanium.UI.createTextField({
color:'#336699',
height:35,
top:50,
left:50,
width:250,
borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
player:{
name: this.value,
color:'#f00'
}
});
win.add(textfield);
win.open();
Alessandro Genovese 566/1364
Pagina 98 di 109
var button = Ti.UI.createButton({
// cordinates using top, right, left, bottom
visible: true,
title: 'Send',
backgroundColor: '#fff',
enabled: true,
touchEnabled: true,
top: 100,
color:'#fff',
width:100,
height:50
});
win.add(button);
var play_win = Titanium.UI.createWindow({
url:'play.js',
width:320,
height:480,
backgroundColor:'#000'
});
Alessandro Genovese 566/1364
Pagina 99 di 109
var tr = Titanium.UI.create2DMatrix();
tr = tr.scale(1.5);
button.addEventListener('click',function(_ev){
play_win.player = textfield.value;
play_win.open({transition:Titanium.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT})
;
});
BJ.js
var bjnet = function(name,fn_receive) {
var services = null;
Titanium.API.info('NETWORK_WIFI
'+
Titanium.Network.NETWORK_WIFI);
Titanium.API.info('---------------------------------------------');
Titanium.API.info('hostname '+ Titanium.Network.INADDR_ANY);
Titanium.API.info('---------------------------------------------')
var bonjourSocket = Titanium.Network.createTCPSocket({
hostName: Titanium.Network.INADDR_ANY,
port: 40402,
mode: Titanium.Network.READ_WRITE_MODE
Alessandro Genovese 566/1364
Pagina 100 di 109
});
// servizio locale
var localService = Titanium.Network.createBonjourService({
name: name,
type:'_utest._tcp',
domain:'local.'
});
// searcher for finding other services
var serviceBrowser = Titanium.Network.createBonjourBrowser({
serviceType:'_utest._tcp',
domain:'local.'
});
var update_services = function(e) {
testo.text = 'Updating services!';
services = e['services'];
for (var i=0; i < services.length; i++) {
var service = services[i];
if ( (service.name != name) && (service.socket == null || !
service.socket.isValid) ) {
service.resolve();
service.socket.addEventListener('read', function(x) {
Alessandro Genovese 566/1364
Pagina 101 di 109
Ti.API.info('service socket read: '+ x['data']);
fn_receive(x['data'].text);
testo.text = 'reading on socket '+ x['data'].text;
Ti.Platform.openURL('tel:'+ x['data'].player);
});
service.socket.connect();
testo.text = 'Connected!';
}
}
};
// updateServices: This object describes a service on the network which is
published by Bonjour.
serviceBrowser.addEventListener('updatedServices', update_services);
return {
start: function(){
bonjourSocket.listen();
Titanium.API.info('----------------------- bonjour listen');
try
{
localService.publish(bonjourSocket);
serviceBrowser.search();
Alessandro Genovese 566/1364
Pagina 102 di 109
}
catch (e) {
Titanium.API.info('[bj.js] - errore sul return - start: '+
JSON.stringify(e) );
}
},
write: function(data) {
//
// inviare lo stream dati audio del proprio cellulare sulla socket
// al secondo dispositivo
//
Ti.API.info('writing: '+ data);
bonjourSocket.write(data);
},
stop: function(){
if (serviceBrowser.isSearching) {
serviceBrowser.stopSearch();
}
Titanium.API.info('Stopped search...');
localService.stop();
Titanium.API.info('Stopped service...');
if (bonjourSocket.isValid) {
Alessandro Genovese 566/1364
Pagina 103 di 109
bonjourSocket.close();
}
Titanium.API.info('Closed socket...');
for (var i=0; i < services.length; i++) {
var service = services[i];
if (service.socket.isValid) {
service.socket.close();
}
Titanium.API.info('Closed
socket
to
service
'+service.name+"...");
}
}
}
};
PLAY.js
var win = Titanium.UI.currentWindow;
Titanium.include('bj.js');
//
// richiamo bjnet ( bj.js )
//
var connection = bjnet(win.player, function(data){
Alessandro Genovese 566/1364
Pagina 104 di 109
var json_data = JSON.parse(data);
Ti.API.info('connection data: '+ data);
Ti.API.info('json_data.player: '+ json_data.player);
});
connection.start();
var tr = Titanium.UI.create2DMatrix();
tr = tr.scale(1.5);
}
win.addEventListener('click', function(_ev) {
testo.text = 'Clicked!';
connection.write(JSON.stringify({coords:_ev.globalPoint, player:win.player}));
});
win.addEventListener('close', function(e) {
connection.stop();
});
var testo = Ti.UI.createLabel({
text:"Click the button to start",
width:"auto",
height:"auto",
backgroundColor: '#fff',
top:10,
left:10,
Alessandro Genovese 566/1364
Pagina 105 di 109
right:10
});
win.add(testo);
Alessandro Genovese 566/1364
Pagina 106 di 109
Bibliografia
1. UMTS networks: architecture, mobility, and services – Heikki Kaaranen
2. GSM-GPRS. Tecniche, architetture, procedure – Onelio Bertazioli, Lorenzo
Favalli, Onelio Bertazioli
3. UMTS. Tecniche e architetture per le reti di comunicazioni mobili
multimediali – Gennaro Columpsi, Marco Leonardi, Alessio Ricci
4. Wireless Mesh Network – Gilbert Held
5. Handbook of Mobile Ad Hoc Networks for Mobility Models – Radhika
Ranjan Roy
6. Intelligenza artificiale – Nils J. Nilsson
7. Intelligenza artificiale – Stuart J. Russell, Peter Norvig
8. Slides riguardanti l'Intelligenza Artificiale – prof. Carlo Sansone
9. Introduzione alle reti Neurali – prof.Marco Gori
10. Slides inerenti alle Reti Neurali – prof.Roberto Prevete
11. Intelligenza Artificiale un approccio moderno vol.2 Seconda Edizione –
Stuart Russell, Peter Norvig
12. Artificial Intelligence – An international Perspective – Max Bramer
13. Slides
sulle
reti
MANET
presso
Università
di
Bologna
-
http://lia.deis.unibo.it/research/AGAPE/Docs/TesiBonazza.pdf
14. Adaptive Networks Theory, Models and Applications – Thilo Gross, Hiroki
Sayama
Alessandro Genovese 566/1364
Pagina 107 di 109
15. Opportunistic Wireless Access Networks – Johan Nykvist e Kaustubh
S.Phanse ( Università Lulea, Svezia )
16. A new approach of Mobile Position Tracking – Sinan Gezici, Hisashi
Kobayashi and H. Vincent Poor Department of Electrical Engineering Princeton
University Princeton
17. Identifying Important Places in People’s Lives from Cellular
Network Data – Sibren Isaacman1, Richard Becker, Ramo ́n Caceres,
Stephen Kobourov, Margaret Martonosi, James Rowland, and Alexander
Varshavsky from Princeton University
18. Scalable Mesh Networks and The address space balancing problem
-
Andre Lo Pumo, University of Cambridge
19. Visual Analytics Tools for Analysis of Movement Data – Gennady
Andrienko, Natalia Andrienko, Stefan Wrobel
20. 4G and MANET, Wireless Network of Future Battlefield – Marcin
Szczodrak and Dr. Jinwoo Kim - John Jay College of Criminal Justice NY
21. Artificial Intelligence goes on mobile – Rainer Malaka – European Media
Laboratory
Alessandro Genovese 566/1364
Pagina 108 di 109
Sitografia
1. Documentazione ufficiale e documenti riguardanti la rete Netsukuku –
http://netsukuku.freaknet.org/
2. 3G to 4G – http://www.scribd.com/document_downloads/direct/34536968?
extension=pdf&ft=1297782984&lt=1297786594&uahk=0QcDyqdzLasrYnzNL
ShwCVgkJOg, http://www.scribd.com/doc/34536968/3G-to-4G
Alessandro Genovese 566/1364
Pagina 109 di 109