G.A.I.A. Generazione Automatica di Interfaccie Autoorganizzanti Settembre 1999 v0.01 CyberNet FTN 65:*/*.* news.atlink.it:cybernet.* Il massimo dell'efficienza viene raggiunto in un sistema apparentemente disordinato e in ogni caso dinamico: come i rivoli che in una giornata di pioggia si propagano in modo apparentemente casuale; in ogni caso giungeranno al mare. Chiamiamo caotica una struttura flessibile il cui ordine interno e' talmente elaborato da sfuggirci. Un seme di dente di leone si propaga `caoticamente` spinto dal vento, ma quanta saggezza c'e' nel lasciarsi spingere dal suo soffio... Indice 0. 1. Premessa 2. Introduzione 2.1. Nome 3. Il Modello Gerarchico 4. Il Modello Caotico 5. Il Caos come scelta strutturale 6. GAIA come Organismo Digitale 7. Proprieta' della Rete 8. Il Mezzo Trasmissivo 8.1. Wireless 2.4ghz 8.2. Internet come mezzo trasmissivo 9. Tempi e criteri di implementazione 9.1. Autogenerazione 9.2. Routing 9.3. Servizi, DNS etc etc... 10. Simulazione 10.1. GAIA-Simulator v.00 99. Work In Progress 99.1. Da Fare 99.2. Da Approfondire 0. Il dibattito in rete ha apportato tali e tante variazioni al timido concetto originale che non ha ormai piu' senso cercarne un autore specifico, l'analisi e' stata svolta da CyberNet FTN osservando se stessa. E la firma e' da considerarsi a tutti gli effetti collettiva. P@P 1993 1. Premessa Durante lo sviluppo dell'analisi di un qualsiasi software l'evento che ha maggiore influenza sui risultati e' la qualita' della comunicazione tra i futuri utenti, gli sviluppatori e il team che conduce l'analisi.Si tratta della fase di *imprinting* della nuova applicazione, quella in cui le si impartiscono le direzioni fondamentali. Saper comunicare con chiarezza in questa fase significa generare modelli efficaci e soddisfacenti, chiari e facili da mantenere in efficienza. E' quindi importantissimo che la discussione sui risvolti politici connessi all'adozione di un modello di `caotic networking` si approfondisca il piu' possibile, in modo che sia possibile a tutti *fare domande* e ricevere risposte.Le domande possono essere fatte a piu' titoli: dalla semplice richiesta di chiarimenti terminologici alle *proposte* di implementazione di varie caratteristiche nel progetto. Queste ultime, in particolare, hanno un effetto importantissimo sull'efficacia dell'analisi, permettendo al team che la conduce di conoscere le necessita' del bacino di utenza. E' importante essere chiari, per cui invito tutti a sentirsi liberi di usare le descrizioni che preferiscono e a far sentire la loro voce. Chi tace accetta passivamente le proposte di altri. Il livello tecnico delle proposte non e' importante qui, cio' che importa e' la compilazione di un elenco di *desideri* di cui tenere conto. Mailing List : GAIA-list@onelist.com GAIA-list-subscribe@onelist.com Web : www.ecn.org/loa/terminal/GAIA 2. Introduzione Il progetto GAIA e' nato per risolvere un problema frequente nelle reti ad organizzazione gerarchica: la dipendenza da chi detiene un livello di accesso privilegiato alla struttura piramidale. Questo documento serve per ricapitolare lo stato del progetto di un protocollo di comunicazione che consenta il passaggio da rete gerarchica a rete caotica. L'idea fondante e' quella di dare alla Network la responsabilita' di se stessa, attraverso un algoritmo che ottimizzi il traffico. La Net, in tal modo, sarebbe sempre in condizioni di cercare autonomamente, ed in ogni suo punto, la miglior topologia di traffico, senza interventi umani. Il punto di forza di GAIA e' il concetto di comunicazione paritetica e non organizzata. A differenza di ogni altro protocollo, sistema di posta elettronica e simili, GAIA non fa uso di strutture gerarchiche e non fa uso di meccanismi di routing stabiliti. Di GAIA se ne e' parlato sin dal 1993, arrivando alla versione 3.00 del documento stilato da Peter Paper, nel quale si delineavano le strutture portanti di questo modello di Interfaccie Autoorganizzanti. I cambiamenti tecnologici intercorsi in questi anni hanno da una parte annullato alcune considerazioni e dall'altra hanno aperto nuove e piu' concrete possibilita' di realizzazione. E' quindi apparso sensato reiniziare una nuova numerazione nel dare una prima esposizione sistematica. Il senso del versioning e' dunque soprattutto quello di fissare un contesto per il dibattito. 2.1 Nome Il nome viene dai lavori di Lovelock, che chiama cosi' il sistema-caotico-globale ovvero il pianeta su cui viviamo... 3. Il Modello Gerarchico Il concetto di gerarchia lineare ( x viene prima di y, che viene prima di k, che...) e' un concetto che viene dalla logica sequenziale e che puo' essere accostato alla grafia alfabetica (cfr. McLuhan). Naturalmente essa si manifesta simultaneamente a piu' livelli di esistenza: la gerarchia definisce i poteri delle persone attraverso i livelli di accesso, e definisce la temporalita' degli eventi (ovvero lo spostamento delle informazioni) attraverso la loro posizione reciproca. Cio' definisce una topologia degli spostamenti assai rigida, in cui il mancato verificarsi di un evento annulla tutte le sue conseguenze. I lettori di fantascienza ricorderanno in questo parecchi racconti sulle macchine del tempo. Questo modello porta in se' la mentalita' classica degli anni '50-'60, in cui la macchina e' una sorta di entita' attorno a cui *raccogliersi*. Ed e' infatti questo il modello sociologico che essa organizza: users collocati a vari livelli di potere personale si raccolgono intorno ad un server. L'umano di grado piu' elevato si occupa di mantenere la macchina in efficienza, si parla dei sysadmin, per intenderci. Il compito della macchina e' quello di contenere e trasferire informazioni, e dunque queste divengono la vera moneta di scambio della comunita' telematica. Le gerarchie tra gli utenti, in termini di ratio tra upl e dnl si occupano di definire meccanismi che garantiscano il crescere del capitale della bbs o del sito. I livelli di accesso al sistema definiscono una struttura chiusa dell'informazione a cui solo pochi privilegiati possono accedervi, leggittimando di conseguenza la formazione di piccole comunita' ghettizzate in continua concorrenza fra loro. Parlare di informazioni liberamente accessibili in una struttura di questo tipo e' perlomeno contraddittorio. Se da un lato e' vero che il potere di replicabilita' infinita dell'informazione digitale assicura che il capitale non sara' intaccato dai prelievi e' pur vero che il mantenimento del potere di richiamo sull'utenza si basa solo e soltanto sul rifornimento continuo di nuove informazioni. E servono meccanismi per la cattura. Naturalmente questo non e' l'unico aspetto, il culto della macchina porta con se' anche il collezionismo di oggetti di potere telematico, nella forma di periferiche piu' o meno all'avanguardia in una continua, frenetica rincorsa alla novita' del mercato. In una network basata sulle gerarchie il modello sociologico approssima quello feudale: sono le macchine a *comunicare* tra loro, assai piu' che gli utenti. Pochi di loro assumono il ruolo di vagabondi telematici, ereditando il ruolo dei mercanti medioevali, mentre la maggior parte di essi resta confinata nel territorio di un feudo ben definito. 4. Il Modello Caotico Il superamento dei modelli gerarchici sta avvenendo a tutti i livelli di applicazione. Il modello meccanico sta tramontando ovunque. Ma qual'e' l'alternativa? Per riallacciarci ai discorsi sul tempo nella fantascienza, in tempi piu' recenti alcuni scrittori hanno iniziato a parlare di concetti quali l'elasticita' del tempo. Ovvero il fatto che la scomparsa dal flusso globale di un singolo evento possa avere un'importanza piuttosto ridotta. Cio' e' proprio di un concetto caotico: se noi togliamo una frase a una pagina di un libro l'impatto sul significato puo' essere devastante, ma se togliamo una riga a un file grafico l'occhio riconosce l'immagine senza la minima esitazione. La logica non-lineare ha capacita' di *stabilita'* assai maggiori, basate sostanzialmente sulla propria totale imprevedibilita'. Il caos e' piu' solido dell'ordine lineare. Cio' ha naturalmente dei risvolti: progettare una qualche sicurezza del sistema diviene assai piu' difficile, non si tratta piu' di chiudere una stretta valle di montagna ma di essere esposti a tutto da tutte le direzioni. Si tratta, alla fin fine, di aver reso le informazioni liberamente accessibili a tutti. Non si possono tesaurizzare informazioni in GAIA. Essa e' totalmente user-oriented, e in essa la macchina diviene un semplice elettrodomestico, il cui compito sta nell'eseguire al meglio i desideri del proprietario. GAIA struttura una situazione in cui non esistono differenze tra le persone, che hanno tutte lo stesso valore, ed in cui ogni account costituisce una *risorsa* della rete. Le risorse possono essere pubbliche o anonime, in modo che chi desidera avere privacy la possa ottenere. Dal momento che il protocollo di comunicazione e' bi-direzionale, sono gli anonimi a coprire la maggior parte delle spese di trasmissione dei dati, mentre le risorse pubbliche ripagano la net offrendo le basi fisiche per la conservazione delle informazioni. Le risorse anonime provvedono dunque ad aggiornare automaticamente le basi pubbliche sparse lungo la *rete*. Come vedete non ci sono piu' gerarchie, ma solo *scambio* di servizi. 5. Il Caos come scelta strutturale Cosa e' il Caos ? Per evitare equivoci che si possono generare intorno all'uso del termine `Caos`, con relativi derivati, e' bene specificare che tale termine non e' preso dall'uso corrente ma dagli studi in corso in ambiente fisico,con particolare riguardo alle indagini sul secondo principio della termodinamica. Per caos si intende un *comportamento* strutturato da regole ben precise, avente come output un risultato *imprevedibile* a priori. Quindi il caos e' diverso dal caso... non e' una funzione random, tanto per chiarirci... Come tipici sistemi caotici semplici troverete citati, in fisica, i rubinetti che perdono... avete mai fatto caso a quanto possano essere irregolari le gocce? Eppure si tratta di acqua che fluisce attraverso un foro, scorre lungo un tubo spinta dalla pressione interna e frenata dall'attrito e infine si stacca dal bordo del rubinetto trattenuta dalla coesione molecolare e strappata dalla forza di gravita'... tutte forze fisiche note. Quindi il risultato di questa dinamica dovrebbe essere sempre prevedibile e controllabile... solo che non lo e'... lo stesso, a scale mostruosamente piu' ampie, avviene nella distribuzione dell'umidita' atmosferica (AKA nuvole) o nella distribuzione di polvere e detriti stellari (AKA nebulose) e un po' ovunque... le forze sono semplici ed elementari, ma oltre un certo limite di complessita' gli esiti cessano di essere prevedibili... I fisici, tendenzialmente dediti al controllo maniacale dell'universo, hanno cercato di ridurre tutto cio' a fenomeni prevedibili per secoli... e si sono regolarmente dovuti arrendere all'evidenza del loro fallimento... le matematiche del caos nascono da quel fallimento... Il modo per distinguere il caso dal caos e' semplicissimo, in realta' si prende una sequenza di eventi qualsiasi, campionati lungo una serie temporale data... ad esempio si misurano gli intervalli di silenzio tra un rumore di goccia e l'altro... si hanno cosi' degli eventi numerabili ( e0, e1, e2, e3, e4, ... en ) e si traccia una mappa tridimensionale dei punti identificati da una terna di coordinate ( P0{e0,e1,e2}, P1{e1,e2,e3}, P2{e2,e3,e4}, ... ). Se quello che ottenete e' una nuvola indistinta siete di fronte al caso... ma piu' spesso ottenete una figura ben formata... quella figura si chiama attrattore del sistema... una sorta di luogo privilegiato nello spazio delle fasi... che sarebbe lo spazio che rappresenta tutte le infinite possibilita' di manifestazione del sistema che state osservando... ogni punto una *chance*... I sistemi mutano, ma spesso mutano per non mutare... se mutano davvero l'attrattore cambia, altrimenti il sistema si e' solo collocato in un nuovo punto dello stesso attrattore... e non e' cambiato affatto... Come vedete, dire che il caos sia privo di struttura e di ordine interno e' piuttosto fuori-luogo... e' solo che si tratta di un ordine situato ad un livello di complessita' tale da essere irraggiungibile alle funzioni di previsione e controllo... ma e' ordine... Finora l'uomo ha prodotto delle orribili strutture "rigide e ingessate" e le ha chiamate "ordinate". Per contrapposto non ha saputo comprendere il meraviglioso ordine che regna nella natura e l'ha chiamato caotico. In questo senso direi che stiamo progettando una rete, e' vero; ma dietro a questo progetto ci sono pensieri che trascendono i tracciati record di GAIA e danno forma ad un modello sociale, `non caotico`, libero. 6. GAIA come Organismo Digitale Rendere una rete il piu' possibile autossuficiente, ed escludere la possibilita' che esista controllo di uomini su uomini significa spostare le funzioni di controllo lontano dalle persone. Ma il bisogno di controllo rimane. A questo scopo possiamo equiparare una rete in standard GAIA ad un animale digitale, autocosciente ed autosufficente. Tra le capacita' di GAIA quella fondamentale e' la percezione di se'. Tutto il lavoro che viene fatto sul re-routing e' il lavoro che assicura la sopravvivenza di GAIA, e questo lavoro si basa tutto sulla correttezza delle impressioni che GAIA ha di se'. Se pensiamo a GAIA come ad un organismo pluricellulare vediamo una societa' composta da tante cellule, ognuna delle quali assume particolari funzioni e stabilita'. Gli embrioni sono quei nodi che fanno girare il software GAIA ma che non fanno ancora parte del sistema pluricellulare, ogni macchina puo' entrare ed uscire dal sistema quando e come vuole. Assistiamo quindi ad un organismo digitale che vive, si riproduce non appena trova degli embrioni disposti a diventare cellule, si dilata e muta continuamente assumendo forme `caotiche`. Fino a quando l'ultima cellula non diventa embrione e finche' l'ultimo embrione non si `spegne`, GAIA esiste come organismo digitale con una sua, seppur impercettibile e primitiva, coscienza di se'. L'algoritmo di controllo topologico per una corretta autogenerazione impedisce il fenomeno di frammentazione della rete. [ definire meglio ] 7. Proprieta' della Rete a) Non Gerarchica La struttura della rete deve garantire il concetto di comunicazione paritetica, cio' significa l'eliminazione di percorsi rigidi, ovvero la possibilita' per la rete di trovare da sola percorsi alternativi che consentano di "vicariare" nodi che si trovassero ad essere temporaneamente indisponibili per qualsiasi ragione. Ogni nodo e' potenzialmente uguale all'altro, ma puo' agire diversamente per via della percezione che ha della rete in quel determinato istante. b) Aperta Un nodo GAIA deve consentire l'accesso ad un altro nodo GAIA senza discriminazioni, il controllo manuale deve essere eliminato, sara' solo GAIA a decidere dove e come entrare nel sistema. c) Dinamica Ogni nodo puo' entrare e uscire dalla rete ad ogni momento senza influire sulla funzionalita' della rete stessa. Fanno eccezzioni i casi estremi ( primo nodo / ultimo nodo ). d) Anonimato Deve essere garantito l'anonimato se richiesto. (????) [ altro ?? ] 8. Il Mezzo Trasmissivo La scelta del mezzo trasmissivo risulta essere essenziale per soddisfare le proprieta' di GAIA. La GAIA del 1993 aveva e ha avuto sempre un problema: la dipendenza dal mezzo di interconnessione tra i suoi elementi, ovvero Telecom ovvero il doppino. Tagliato quello, morta GAIA. Quindi, al di la di tante belle chiacchiere su nuovi protocolli di trasmissione dei pacchetti, si riproponeva l'annoso problema dei sequestri, dei monitoraggi e via dicendo. Dal 93 ad oggi di cose ne sono cambiate, e, come detto piu' volte, con i radio modem si puo' realizzare il sogno di GAIA: l'indipendenza dal mezzo fisico. L'etere e' libero, li' nessuno puo' tagliarti il "doppino" e si possono immaginare anche tecniche di switching delle frequenze in modo da poter aggirare anche i monitoraggi. [ approfondire meglio pasticcio normativa europea con legge italiana ] 8.1 Wireless a 2.4ghz La tecnologia in questi pochi anni ci ha fatto assistere a progressi impensabili. I nuovi radio-modem a 2.4Ghz riescono a veicolare dati a 2Mb/s, in piu' trasmettono con una potenza di 10mW, questo li rende liberi per qualunque uso. Attualmente (1999) un radio-modem ha un costo troppo elevato per permettere un ampia diffusione, ma e' praticamente certo che questa tecnologia (o comunque qualcosa di simile) nel giro di pochi anni sara' applicata alle comunicazioni cellulari, e comunque un radio-modem tra poco tempo costera' una sciocchezza. Inoltre si puo' immaginare che la tecnologia di trasmissione sara' basata su un numero piuttosto grande di sottoportanti, cioe' avremo molti flussi dati a frequenze diverse. Per fare un paragone calzante, la banda disponibile potrebbe essere ripartita in maniera analoga a come viene ripartita adesso in una connessione ISDN primaria, 30 canali a 64Kb/s. Ricordiamo che il raggio d'azione di un simile dispositivo e' di qualche chilometro (puo' essere di diversi chilometri in aperta campagna o sulla cima di un monte ma di poche centinaia di metri tra le case in citta') e tracciamo una circonferenza ideale attorno all'oggetto: potremo dividere in sei parti l'angolo giro e immaginare che su ognuno dei sei vertici ottenuti si trovi un altro simile dispositivo, capace di comunicare col primo ad una velocita' variabile tra 64Kb/s e poco meno di 2Mb/s (i canali infatti sono aggregabili a piacere). Dopo una distanza pari a circa il doppio di quella utile per comunicare, le frequenze dei trenta canali si possono riusare, il segnale del dispositivo che stiamo considerando si e' gia' attenuato a sufficienza. Immaginiamo quindi qualcosa che abbia una struttura esagonale, come le cellette delle api per intendersi, ma il poligono potrebbe anche avere un numero differente di lati, da tre (con meno non si lavora) a trenta (perche' tanti sono i canali). Ebbene, un dispositivo del genere non vi sembra un signor router? E vorreste sprecarlo per colloquiare con un ponte digitale della Telecom? :-) E questa sarebbe l'idea: GAIA senza i limiti di GAIA. La prima difficolta' consisterebbe nella necessita' inderogabile di diffondere il progetto a macchia d'olio, pochi chilometri senza stazioni nella zona e si comincerebbero a creare buchi nella rete, e' facile immaginare installazioni di GAIA funzionanti in aree anche estese di una grande citta', ma quanto al resto ? Quindi per il momento la questione dei prezzi e' un punto sfavorevole a tutto il discorso, anche se sono uscite schede a $99 ma con range massimi di 100 piedi, e quindi pressoche' inusabili per i nostri scopi, a meno che non si pensi (e quindi stimi) una diffusione enorme in modo da non avere buchi di rete. Durante l'HackIt98 si e' pensato ai cellulari, capillarmente diffusi in modo da creare una maglia abbastanza densa da non avere troppi buchi nella rete. Ma cosa c'e' di ancora piu' diffuso di un cellulare? Internet !! 8.2 Internet come `mezzo trasmissivo` Due utenti internet, con due IP internet (ovvero correttamente ruotati) possono creare una VPN (Virtual Private Network). GAIA quindi (almeno nella prima versione) non sarebbe altro che una grossa VPN con *certe* caratteristiche. ( per VPN si intende il concetto basilare di una `sottorete privata`, non il fatto che sia un collegamento PTP ). Punto fondamentale di GAIA, e direi imprescindibile, ogni nodo e' *PARITETICO*. In definitiva non ci devono essere nodi, i quali possono "decidere" per tutti l'esistenza o meno di GAIA. E' un punto difficile, ma direi che e' fondamentale senza questo GAIA non avrebbe senso. Altro punto importante, ogni macchina in una VPN mantiene comunque la propria funzionalita' e presenza internet, quindi costituisce automaticamente un "router" per servizi esterni, ovvero che vanno verso l'esterno di GAIA. Io mi connetto al mio provider che mi assegna un IP internet e quindi divento nodo della rete. Lancio il software per GAIA, trovo un altro nodo GAIA ed apro una VPN con lui, a questo punto sono in GAIA ma posso uscire anche in internet che sto usando come `mezzo trasmissivo` per GAIA. Come trovare gli altri nodi GAIA ? Come mantenere l'anonimato ? Quante VPN aprire ? etc etc sono tutti quesiti che verranno affrontati successivamente nella parte implementativa. 9. Tempi e criteri di implementazione Il discorso, una volta definito COSA vogliamo, non puo' che spostarsi sul COME realizzarlo. E' evidente che tempi e risorse umane non sono infinite, quindi occorrera' fissare con attenzione una lista di priorita' di realizzazione che ci consenta di lavorare con calma e senza drammi. Prima di procedere alla scrittura del codice e' obbligatorio avere idee ben definite su tutto cio' che deve essere implementato e, soprattutto, occorre monitorare la simulazione `a regime`. [ C++, Gnu compiler, Linux, ??????] 9.1 Autogenerazione 9.2 Routing [ nihil ] 9.3 Servizi, DNS, etc etc... [ nihil ] 10. Simulazione La scrittura del codice di Simulazione e' essenziale per studiare il comportamento della rete nella sua globalita', inoltre focalizza l'attenzione esclusivamente sulla funzionalita' di GAIA escludendo i problemi legati all'aspetto implementativo del mezzo trasmissivo. La simulazione a regime permette di studiare l'evoluzione della rete e prevenire spiacevoli problemi non facilmente identificabili nell'approccio teorico. 10.1 GAIA-Simulator v.00 [ nihil ] 99. Work In Progress Qui sotto sono elencate le cose da fare e quelle da approfondire/migliorare. Ogni proposta o altro deve essere postata in lista. (GAIA-list@onelist.com) 99.1 Da Fare a) Routing [ fatto questo fatto tutto :)) ] ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? b) DNS c) Servizi vari d) GAIA-Simulator - Autogenerazione - Routing e) FAQ ??????? 99.2 Da Approfondire a) Autogenerazione Stabilire una legge precisa, che rende le definizioni Embrione, Cellula con priorita' N, indipendenti dal numero 3. ;)) b) Vedere come procede il progetto CityLan di it.comp.reti.wireless http://digilander.iol.it/tonialf/