Università degli Studi “G. D’Annunzio” Chieti – Pescara Corso di Laurea Specialistica in Economia Informatica Progetto SETI@home protocollo p2p Seminario di Carlo Capuani per il corso di “Reti di calcolatori e sicurezza” del prof. Bistarelli Sommario Descrizione del progetto SETI@home (Search for ExtraTerrestrial Intelligence at Home) Descrizione to peer) del protocollo p2p (peer SETI@home, cos è? è un progetto dell'università di Berkley il cui obiettivo è rilevare tracce di vita intelligente extraterrestri. Un radiotelescopio cattura i segnali radio provenienti dallo spazio milioni di PC connessi in un network p2p analizzano tali dati, un “pezzetto” ciascuno SETI@home, fasi del progetto Raccolta dei dati Distribuzione dei dati Analisi dei dati sui singoli PC Verifica dell’integrità dei dati Ricerca di possibili segnali extraterrestri Raccolta dei dati Il radiotelescopio di Arecibo (Puerto Rico, il più sensibile del mondo) registra su nastro i segnali radio che capta dal cosmo Nel laboratorio del progetto SETI (a Berkley) i dati vengono suddivisi in “work unit” di 350kb ciascuno, memorizzati su disco e indicizzati nel database Radiotelescopio di Arecibo Data tape DLT 35 GB Work unit storage Splitter Database Distribuzione dei dati I “work unit” vengono distribuiti ai PC con un fattore di ridondanza di 2-3 Work unit storage Database Garbage collector Client Data – Result server Client Client Analisi dei dati su ciascun PC Ogni utente scarica ed installa un client che preleva un “work unit” per volta L’analisi di ogni “work unit” ha bisogno di 3.9 trilioni di calcoli in virgola mobile (≈10 ore su un Pentium II 500 MHz) I segnali la cui potenza e qualità superano certe soglie diventano “segnali candidati” e sono restituiti al server a Berkley Verifica dell’integrità dei dati Il server a Berkley memorizza i “segnali candidati” e li verifica, controllando la corrispondenza tra i risultati (ridondanti) dello stesso “work unit”, SETI@home usa un protocollo proprietario e non un protocollo open source David Anderson: “la parte più difficile è quando i dati tornano al nostro server, come sappiamo che sono stati generati realmente dal nostro client? Non ci sentivamo sicuri con un protocollo open source, e nonostante ciò alcuni utenti hanno modificato il nostro client per inviarci dati errati o gonfiati” Verifica dell’integrità dei dati I nuovi dati vengono catalogati sia per l’analisi scientifica che per le statistiche degli utenti, viene aggiornato quindi il database. Ricerca di segnali extraterrestri Si cercano i segnali con frequenza e coordinate celesti simili rilevate in tempi differenti. Questi “segnali ripetuti” sono studiati più a fondo, potenzialmente pronti ad un controllo incrociato con altri progetti di ricerca extraterrestre Diamo i numeri! (luglio 2002) più di 3.83 milioni in di partecipanti in 226 Stati nel mondo 221 milioni di “work unit” elaborate (per un totale di 77,35 TeraBytes) le CPU hanno realizzato 1.7x10^21 operazioni in virgola mobile in un tempo totale di 752202 anni rendimento medio di 27.36 TeraFLOP/S (due volte la velocità dell IBM ASCII White, il più veloce supercomputer al mondo) …e tutto ciò gestito da uno staff di al più 5 persone! Elaborazione distribuita Condivisione, Selezione e Aggregazione di risorse autonome e geograficamente distribuite a seconda della loro disponibilità, capacità, performance, costo. Il calcolo distribuito è una popolare applicazione per le reti P2P, in questo caso si ha la condivisione di risorse hardware. si basa sul presupposto che, durante le normali operazioni, il 90% dei cicli CPU dei PC domestici resta inutilizzato. Una stima suggerisce che i PC connessi a Internet offrono in aggregato 10 billioni di MHz e 1000 TB di spazio su disco. Le reti P2P permettono alle organizzazioni di usare queste risorse globalmente distribuite. Suddivisione del lavoro in “work unit” modello Farmer-Worker Adatto quando è necessario eseguire una stessa sequenza di operazioni su di un enorme insieme di dati che possono essere ripartiti in sottoinsiemi processabili in modo separato. Una applicazione viene decomposta in tasks tra loro indipendenti, l’indipendenza dei tasks garantisce l’assenza di comunicazione tra i nodi che eseguono le operazioni. Come avviene la distribuzione dei “work unit” ? modello peer-to-peer (p2p) Una rete peer-to-peer è un tipo di rete che permette a un gruppo di computer di connettersi fra loro e di condividere le risorse in loro possesso. In tali reti, ciascun nodo (peer) ha capacità e responsabilità equivalenti. Questa è la principale differenza dalle architetture di tipo client/server Terminologia Nodo: un PC connesso ad una rete Network p2p: un insieme di nodi con un protocollo p2p comune Peer: un nodo quando l'informazione è mutualmente diretta Client: un nodo che inizia la comunicazione Server: un nodo che non dirige lo scambio di informazioni, restando in attesa di richieste di connessione Sistemi decentralizzati Nei sistemi decentralizzati (ad esempio Gnutella, Kazaa, WinMx), non esiste un server centrale, ma tanti servant. Servant indica un programma in grado di funzionare da server e da client (il nodo su cui esso si trova è quindi peer). Per entrare nel network bisogna conoscere l'indirizzo di un servant già attivo al quale si comunica di essere “alive”, il servant a sua volta lo comunica agli altri nodi al quale è connesso e lo stesso faranno questi ultimi e via così per un numero massimo di passaggi (TTL: time to live), dopo il quale i nodi smettono di propagare la nostra esistenza. Inseriti nel network è possibile effettuare delle ricerche presso i nodi che abbiamo attraversato e quindi scambiarsi risorse direttamente con essi. Sistemi decentralizzati Primitive di comunicazione ALIVE – comunicazione della propria presenza. FORWARD – Propagazione della nostra presenza, ad ogni salto viene decrementato il TTL (time to live). QUERY - L'utente 1 esegue una ricerca (anche questo pacchetto ha un TTL che si decrementa progressivamente). QUERY HIT - Quando un nodo trova una corrispondenza, risponde comunicando il suo indirizzo ip e la porta PUSH - L'utente 1 sceglie un host da cui scaricare la risorsa e manda la richiesta direttamente. Sistemi centralizzati Molte reti e applicazioni (tra cui SETI@home) che si descrivono come peer-to-peer fanno però affidamento anche su alcuni elementi “non-peer”, come per esempio il concetto di client e server: Un server centrale mantiene un elenco di utenti e di risorse che questi ultimi mettono a disposizione. Quando si effettua una ricerca ci si rivolge al server centrale, il quale consulta i propri archivi e ci fornisce dei risultati con gli indirizzi di chi mette a disposizione una certa risorsa. Lo scambio della risorsa avviene direttamente tra i due utenti interessati, e non coinvolge in nessuna maniera il server. Sistemi centralizzati Primitive di comunicazione LOG - L'utente 1 si autentica sul server centrale, trasmettendogli una lista delle risorse che intende condividere. QUERY - L'utente 2 esegue una ricerca di una risorsa detenuta anche dall’utente 1 RESPONSE - Il server invia all'utente 2 una lista di indirizzi degli host che detengono la risorsa da lui richiesta, insieme alla porta ed altre informazioni. PUSH - L'utente 2 sceglie un host da cui scaricare la risorsa e manda la richiesta direttamente. PULL - L'utente 1 manda la risorsa direttamente all’utente 2. Applicazioni p2p Rete eDonkey: WinMX eMule Napigator Protocollo FastTrack Kazaa, Kazaa lite, K++ Grokster iMesh Rete Napster: eDonkey2000 Shareaza Rete Gnutella-Gnutella2 Morpheus Shareaza MLDonkey Rete WPNP WinMX Rete SETI@home SETI@home client Riferimenti SETI@home http://setiathome.ssl.berkeley.edu/cacm/cacm.html http://www.linuxvalley.it/columns/columns.php?IdCol=118&ts=1 p2p http://www.networkmagazineindia.com/200204/200204focus3.s html http://genni.ing.uniroma1.it/tesi/fdl/tesiHTML2.html http://www.dis.uniroma1.it/~laura/didattica/tesi/supptesi/buhnik. pdf http://online.infomedia.it/riviste/login/28/pdf/articolo05.pdf queste slides http://tecweb.unich.it/clei/seminari/seti.zip