P2P (o quasi): Peer To Peer (o quasi) Gennaro Cordasco.

Slides:



Advertisements
Presentazioni simili
Indirizzamento LAN e ARP
Advertisements

Realizzato da: Accurso Margherita VDp A.S. 2007/2008 GENNAIO
di Architetture Peer to Peer per la Gestione di Database Distribuiti
La trasmissione delle informazioni può avvenire da un solo utente a molti utenti (tipo Multicast o Broadcast) o da un utente a un altro (tipo peer to.
Organizzazione di una rete Windows 2003
DNS: Il Servizio Directory di Internet
4-1 Mobilità in Internet Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights.
La rete in dettaglio: rete esterna (edge): applicazioni e host
2-1 Trasferimento di file: ftp Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Middleware per MANET WP3 Alessandro Ghioni
Ricerca della Legge di Controllo
1: Introduction1 Condivisione file P2P r Allinizio del 2004 P2P era responsabile di un volume di traffico maggiore a qualunque altra applicazione Internet.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Peer To Peer (o quasi) Gennaro Cordasco.
? Peer To Peer (P2P) Kademlia pastry can jxta napster fiorana
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Algoritmi e Strutture Dati
Ancora esercizi!!! Chernoff Bound allora
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley Chord: A Scalable Peer-to-peer Lookup Service for Internet.
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Programming with JXTA Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
LA RETE GNUTELLA e il P2P (Prima parte)
Routing Gerarchico Gli algoritmi proposti non sono pratici:
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Lezione 6 JXTA. JXTA: Cosè? JXTA (JuXTAppose) è una piattaforma di rete, realizzata per lo sviluppo di applicazioni P2P. JXTA fornisce un insieme di building.
JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.
JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.
ICMP - PING - TRACEROUTE
Sistemi Peer To Peer (P2P)
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Reti L-S 2005 Servizio per la ricerca distribuita basato sul protocollo Rossi Daniele
Corso di Informatica per Giurisprudenza Lezione 7
Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.
BROKER SERVER Progetto di Ingegneria del Web 2008 Alessio Bianchi Andrea Gambitta Giuseppe Siracusano.
Strutture dati per insiemi disgiunti
Progetto protocollo p2p
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Peer-to-Peer Systems Content-Based Routing of Path Queries in Peer-to-Peer Systems Georgia Koloniari and Evaggelia Pitoura Ingargiola Salvatore Montauti.
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
FairPeers Progettazione ed implementazione di un servizio di file management tramite Pastry.
Dischi in RAID  Redundant Array of Independent Disk Configurazione che permette di combinare più dischi secondo obiettivi di performance e ridondanza.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Informatica Lezione 9 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
1: Introduction1 Stratificazione protocollare (Protocol “Layering”) Le reti sono complesse! r Molti elementi: m host m router m link fisici dalle caratteristiche.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
1 Luigi Vetrano Esercitazione di Reti di Calcolatori A.A
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 4 -Gestione degli indirizzi Ernesto Damiani Lezione 1 – Assegnazione.
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 1 -Domain Name System Ernesto Damiani Lezione 1 – Nomi e indirizzi.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Servizi Internet Claudia Raibulet
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 4 – OSPF.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 -Telnet, FTP e altri Ernesto Damiani Lezione 4 – Napster e.
Ernesto Damiani Lezione 5 – Gnutella Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Informatica Lezione 8 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Il centro stella puo’ essere realizzato con : Lavora solo a livello fisico (layer 1) : ripete esattamente su tutte le proprie porte il segnale arrivato.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Sezione propedeutica I fondamentali e concetti di TCP/IP.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Transcript della presentazione:

P2P (o quasi): Peer To Peer (o quasi) Gennaro Cordasco

Cosa vuol dire Peer to Peer (P2P)? P2P (o quasi) Cosa vuol dire Peer to Peer (P2P)? Sistema distribuito nel quale ogni nodo ha identiche capacità e responsabilità e tutte le comunicazioni sono potenzialmente simmetriche; Peer to peer (obiettivi): condividere risorse e servizi (dove per risorse e servizi intendiamo: scambio di informazioni, cicli di CPU, spazio sul disco …); Scalabilità: il lavoro richiesto a un determinato nodo nel sistema non deve crescere (o almeno cresce lentamente) in funzione del numero di nodi nel sistema; Per migliorare la scalabilità sono nati i cosiddetti protocolli P2P di seconda generazione che supportano DHT (Distributed Hash Table);

P2P (o quasi) DHT Routing La scalabilità di un protocollo è direttamente legata all’efficienza dell’algoritmo usato per il routing; In questo senso sostanzialmente gli obiettivi sono due: Minimizzare il numero di messaggi necessari per fare lookup; Minimizzare, per ogni nodo, le informazioni relative agli altri nodi; I vari DHT conosciuti differiscono proprio nel routing;

P2P (o quasi) DHT Routing: Lookup Trovare l’indirizzo IP del nodo responsabile di una determinata chiave; Obiettivi: Minimizzare la dimensione dello spazio richiesto ai nodi per memorizzare le tabelle di routing; Minimizzare il numero di hop necessari per il Lookup; Fornire un servizio fidato anche con Peer inaffidabili; Resistere ad attachi di tipo Denial of Service;

DHT: Routing(Sommario) P2P (o quasi) Ip address DHT: Routing(Sommario) Esistono un bel po’ di soluzioni; (Ce ne sono altre!!!) Le prestazioni sono più o meno uguali (in teoria); La domanda da porsi però è “Il gioco vale la candela …”;

P2P(quasi): Classificazione P2P (o quasi) P2P(quasi): Classificazione Hybrid Centralized index, P2P file storage and transfer Super-peer A “pure” network of “hybrid” clusters Pure functionality completely distributed

Viceroy Network vs Butterfly P2P (o quasi): errata corrige Viceroy Network vs Butterfly In una Viceroy Network a r dimensioni due nodi u=<w,i > e v=<w’,i+1> sono connessi se: w = w’; (archi diretti non mostrati); w’ = (w+2r-i)mod 2r. In una butterfly a r dimensioni due nodi u=<w,i > e v=<w’,i+1> sono connessi se: w = w’; (archi diretti non mostrati); w e w’ differiscono esattamente nell’i-esimo bit.

P2P: un’applicazione Gennaro Cordasco

Tanto per intenderci…(1) P2P: un’applicazione Tanto per intenderci…(1) Le applicazioni P2P sono costituite da tre fasi principali: boot; (nessuno o quasi fa boot P2P) lookup; (pochi sono P2P, alcuni usano SuperPeer) scambio di file; (sono tutti P2P)

Tanto per intenderci…(2) P2P: un’applicazione Tanto per intenderci…(2) Parleremo di applicazioni: P2P pure se: le fasi di boot, lookup e scambio di file sono P2P;(forse Overnet?) P2P se: le fasi di lookup e scambio di file sono P2P; la fase di boot utilizza qualche SERVER; (Gnutella, Freenet) P2P Ibride se: la fase di scambio dei file è P2P; la fase di boot utilizza qualche SERVER; nella fase di lookup vengono usati Peer particolari: Hub (Direct Connect) SuperPeer , Ultra Peer(Gnutella2) Supernodo (KaZaA) NodoRandezVous (JXTA) MainPeer (EDonkey) Server (WinMX)

Sommario P2P: un’applicazione Gnutella: un po’ di informazioni; Gnutella: vantaggi e svantaggi; Gnutella2; Overnet !!!P2P PURO!!!

Gnutella(1) P2P: un’applicazione 14 / 03 / 2003 Justin Frankel e Tom Pepper realizzano la prima release di Gnutella (!!! Solo 14 ore !!! ); La taglia della rete cresce in 7 mesi da 2K a 48K nodi; Tuttavia nel 95% delle query il diametro è di 7-8 hop; Le applicazioni più conosciute che si basano sul protocollo Gnutella sono: BearShare; LimeWire; …

Gnutella P2P: un’applicazione Gnutella è un protocollo P2P; La lista degli host presenti nella rete è disponibile sul server gnutellahost.com; Il Server gnutellahost.com(127.186.112.097) viene usato dai nodi per il boot: Single point of failure; Gnutella non è P2P Puro!!!; La Ricerca di un file usa il flooding (non è scalabile): controllo dei cicli; TTL per evitare di congestionare la rete;

Il protocollo Gnutella (v0.4) P2P: un’applicazione Il protocollo Gnutella (v0.4) PING – Notifica a un Peer la propria esistenza; PONG – Reply to a PING (contiene alcune informazioni sulla rete); QUERY – Cerca un file nella rete (Sulla base di una determinata chiave); RESPONSE(QUERY HIT) – Risposta a una query (contiene la locazione del file); GET – Permette di richiedere un file; PUSHREQUEST – Permette di scavalcare i firewall; Boot Lookup Scambio

Gnutella Search Example P2P: un’applicazione Gnutella Search Example GET X.mp3 X X C A B D E A’s query (e.g., X) C’s query hit E’s query hit X

P2P: un’applicazione Gnutella: Flooding

Gnutella2: Concetti P2P: un’applicazione New Protocol; A new data trasport architecture; New base services, including search: Gnutella Addressing System (GAS); An implementation standard;

Gnutella2: meglio un uovo oggi…. P2P: un’applicazione Gnutella2: meglio un uovo oggi…. L’obbiettivo della lookup in Gnutella è trovare tutti i peer che dispongono di un determinato oggetto (non ci sono limitazioni sul tempo); L’obbiettivo della lookup in Gnutella2 è trovare, nel minor tempo possibile, almeno un peer (se c’è) che dispone di un determinato oggetto; una volta trovata un’istanza dell’oggetto desiderato è possibile scegliere se fermarsi o continuare la ricerca; L’abilità di trovare almeno un’istanza di un oggetto è molto importante, altrimenti non sono possibili altre azioni; Bisogna trovare un modo per tenere sotto controllo la ricerca;

Gnutella2: Ricerca…(1) P2P: un’applicazione Esistono tre approcci per controllare la ricerca; Random walker approach;(il nodo che origina la query ne controlla l’esecuzione e in ogni istante può decidere se continuare o abortire la ricerca). Random or crawling mesh approach;(il nodo che origina la query iterativamente contatta alcuni nodi della rete, finché non si verifica una determinata condizione). Guided mesh approach;(DHT) Gnutella2 Future

Gnutella2: Ricerca…(2) P2P: un’applicazione Su una rete pubblica di grandi dimensioni non è possibile effettuare direttamente la ricerca di un oggetto: ci sono troppi nodi da contattare; il costo per mettersi in contatto con un nodo è troppo alto paragonato alla probabilità di successo su quel nodo; la maggior parte dei nodi non dispongono di risorse sufficienti per far fronte a un numero notevole query; non tutti i nodi si possono contattare direttamente (es. firewall);

Gnutella2: Ricerca…(3) P2P: un’applicazione Soluzione? P2P Ibrido: Nodo Hub Soluzione? P2P Ibrido: Gnutella2 organizza i nodi in un sistema gerarchico a due livelli dove i nodi ad alta capacità chiamati Hub rispondono alle query per le proprie foglie; La restizione della rete agli Hub è P2P; Hub vantaggi: Viene ridotto il numero totale dei nodi da contattare; Un Hub contiene informazioni relative a tanti oggetti, quindi è maggiore la probabilità che una query trovi un’istanza di un oggetto; E’ possibile avere informazioni su nodi down;

Gnutella2: Ricerca…(4) P2P: un’applicazione Per evitare che questo sistema degeneri in un sistema centralizzato viene limitato il numero di leaves per ogni hub;(circa 150) La comunicazione fra leaves e hub è diretta; Problema Inter-Hub Communication;

Gnutella2: Inter-Hub Communication(1) P2P: un’applicazione Gnutella2: Inter-Hub Communication(1) Nodo Hub Ogni hub conosce solo i propri vicini; Quando un hub riceve una query dal nodo di origine, oltre a elaborarla, la inoltra ai propri vicini che non la inoltrano ulteriormente; (in pratica TTL = 2) Ad esempio se la ricerca viene inviata ad un hub che ha 5 vicini in un solo passo (con una query) vengono analizzate le foglie relative a 6 hub; L’insieme dei nodi raggiunto in un passo viene chiamato cluster;

Gnutella2: Inter-Hub Communication(2) P2P: un’applicazione Gnutella2: Inter-Hub Communication(2) Nodo Hub Quando un nodo richiede la ricerca di un oggetto al proprio hub: Viene ricercato l’elemento nel proprio cluster; Viene ricercato l’elemento nei cluster vicini(a distanza 1) più qualche cluster lontano scelto a caso; Viene ricercato l’elemento nei cluster vicini dei vicini (a distanza 2) più qualche cluster lontano scelto a caso; …

Gnutella2: Inter-Hub Communication(3) P2P: un’applicazione Gnutella2: Inter-Hub Communication(3) Nodo Hub Non è possibile per ogni hub mantenere la lista di tutti gli hub; (Non è scalabile); La lista dei cluster a distanza i+1 è ottenuta in risposta alla ricerca effettuata sui cluster a distanza i; Le risposte contengono inoltre altre informazioni utili per le statistiche (es. numero di nodi presenti nel cluster);

Gnutella2: Inter-Hub Communication(4) P2P: un’applicazione Gnutella2: Inter-Hub Communication(4) Nodo Hub Ogni hub mantiene la lista degli hub vicini (direttamente connessi) più una cache di hub lontani aggiornata di tanto in tanto; Viene mantenuta una done list; Le ricerche all’interno del cluster sono fatte usando TCP; Le ricerche fra cluster sono fatte usando UDP; UDP SEARCH TCP SEARCH

Gnutella2: Inter-Hub Communication(Esempio) P2P: un’applicazione Gnutella2: Inter-Hub Communication(Esempio) try list cluster

Gnutella2: Inter-Hub Communication(5) P2P: un’applicazione Gnutella2: Inter-Hub Communication(5) Nodo Hub Ogni hub deve mantenere quindi: la lista dei propri vicini; una lista di hub lontani(da aggiornare di tanto in tanto); una done list (i nodi a cui abbiamo inviato una query più i loro vicini); una try list; (i vicini dei vicini dei nodi a cui abbiamo inviato una query); per ogni query

Gnutella2: Boot Come fa un nuovo nodo a connettersi alla rete? E’ necessario conoscere almeno un host attivo; Chi mantiene la lista degli host attivi? un Server; (Gnutella) tanti Server; (Gnutella2) Idee!!!

Overnet Sistema P2P per il file sharing sviluppato dalla MetaMachine; Non ci sono server; (P2P puro) Usano DHT(Distribuited Hash Table) con ID a 128 bit; Purtroppo non è Open Source;

Overnet:boot Ogni nodo mantiene una cache dei nodi connessi alla rete; Durante la fase di boot il nodo tenta di connettersi ai nodi presenti nella cache; Se questa fase non ha successo viene richiesto l’indirizzo di un nodo on-line;(A regime non capita praticamente mai) In ogni caso è stato creato un canale IRC per mantenere queste informazioni;

Risorse www.gnutella.com www.gnutella2.com www.shareaza.com www.overnet.com www.openp2p.com