4pp
Transcript
4pp
Sistemi peer-to-peer (P2P) • Giunti agli oneri della cronaca di recente – Negli anni 1999/2000 – Il famoso caso Napster (sistema di file sharing per file MP3) • Molto popolari – Parte consistente del traffico Internet: più del 30% è riconducibile ad applicazioni di tipo P2P – Trend crescente (nonostante tutto) Sistemi peer-to-peer • Qualche anno fa si diceva Internet = Web • Alcuni pregiudizi sul P2P Valeria Cardellini Università di Roma Tor Vergata – P2P = file sharing • Molti sistemi per il file sharing si basano su un approccio P2P – P2P = illegalità • Una percentuale massiccia di file scambiati è coperta da copyright IW - Valeria Cardellini, A.A. 2007/08 Cosa è il peer-to-peer 2 Caratteristiche dei sistemi P2P • Tutti i nodi (peer) hanno la stessa importanza (in linea di principio) • Peer: entità con capacità simili alle altre entità nel sistema – Nodi indipendenti (autonomi) e localizzati ai bordi (edge) di Internet • Nessun controllo centralizzato – Ogni peer ha funzioni di client e server e condivide delle risorse • Il termine peer-to-peer si riferisce ad una classe di sistemi ed applicazioni che utilizzano risorse distribuite per eseguire una funzionalità (critica) in modo decentralizzato • servent = server + client – In realtà, possono essere presenti server centralizzati o nodi con funzionalità diverse rispetto agli altri (supernodi) • I peer sono organizzati in una gerarchia • Sistemi altamente distribuiti – Il numero di nodi può essere dell’ordine delle centinaia di migliaia • Condivisione delle risorse (cicli di CPU, storage, dati) • Nodi altamente dinamici ed autonomi – Offrire ed ottenere risorse dalla comunità di peer – Un nodo può entrare o uscire dalla rete P2P in ogni momento • Operazioni di ingresso/uscita (join/leave) dalla rete anche sofisticate – Ridondanza delle informazioni IW - Valeria Cardellini, A.A. 2007/08 3 IW - Valeria Cardellini, A.A. 2007/08 4 Applicazioni P2P Condivisione di file • Distribuzione e memorizzazione di contenuti • E’ la killer application del P2P • Occorrono funzionalità di publishing, searching, retrieval • Vediamo un esempio… – Contenuti: file, video streaming, … – Es. di file sharing: Gnutella, KaZaA, BitTorrent, eDonkey ed eMule, … – Es. di file storage: Freenet – Alice esegue un’applicazione client P2P sul suo portatile – In modo intermittente si connette ad Internet; ottiene un nuovo indirizzo IP per ogni connessione – Registra il suo contenuto nel sistema P2P – Cerca “Hey Jude” – L’applicazione visualizza altri peer che hanno una copia di “Hey Jude” – Alice sceglie uno dei peer, Bob – Il file viene copiato dal PC di Bob al portatile di Alice (P2P) – Mentre Alice esegue il download, altri utenti eseguono un upload da Alice • Condivisione di risorse di calcolo (elaborazione distribuita) – Es.: SETI@home – Search for Extraterrestrial Intelligence • Collaborazione e comunicazione – Es.: Chat/Irc, Instant Messaging, Jabber • Telefonia – Es.: Skipe • Content Delivery Network – Es.: CoralCDN • Piattaforme – Es:. JXTA (http://www.sun.com/software/jxta/) IW - Valeria Cardellini, A.A. 2007/08 5 IW - Valeria Cardellini, A.A. 2007/08 6 Obiettivi e problemi dei sistemi P2P Software per la condivisione di file • Obiettivi – – – – – – Condividere/ridurre i costi usando risorse non utilizzate Migliorare la scalabilità Aumentare la persistenza e la disponibilità delle risorse Consentire l’aggregazione di risorse e l’interoperabilità Aumentare l’autonomia Aumentare l’anonimato/privacy, nascondendo le operazioni svolte dagli utenti – Consentire dinamismo e comunicazioni ad-hoc • Consente ad Alice di registrare una directory del proprio file system per la condivisione – Chiunque può ottenere un file dalla directory registrata – Come un Web server • Consente ad Alice di copiare file dalle directory condivise di altri utenti – Come un Web client • Problemi • Consente ad Alice di individuare quali peer possiedono un determinato file tramite una ricerca basata su keyword – Sicurezza: garantire integrità e autenticità delle risorse – Disuguaglianza tra i nodi – Elevato tasso con cui i nodi entrano/escono dal sistema P2P – Come Google IW - Valeria Cardellini, A.A. 2007/08 • Può portare ad una instabilità del sistema che ne influenza negativamente le prestazioni 7 IW - Valeria Cardellini, A.A. 2007/08 8 Architetture P2P Overlay network • Tre tipologie di architetture P2P • Instradamento delle informazioni su un’infrastruttura di rete già esistente – Decentralizzate pure • Tutti i nodi sono peer, nessun coordinatore centralizzato • Ogni peer può funzionare come router, client, o server – Overlay network: è la rete virtuale che interconnette i peer ed è basata su una rete fisica sottostante (tipicamente IP) – Vantaggi: – Parzialmente centralizzate • Alcuni nodi (supernodi) facilitano l’interconnessione tra i peer – Indice locale centralizzato per risorse dei peer locali • Prima comunicazione con un supernodo (a), poi con il peer (b) • Semplicità di sviluppo di nuove applicazioni • Tempi di sviluppo ridotti – Decentralizzate ibride • Instradamento a livello applicativo • Presenza di un server centralizzato che facilita l’interazione tra i peer (servizio di localizzazione) Architettura decentralizzata pura – Routing content-aware – Routing application semantic-aware Architettura P2P parzialmente centralizzata IW - Valeria Cardellini, A.A. 2007/08 9 Overlay routing 10 Reti strutturate e non strutturate • Reti non strutturate • Idea base: – Nodi organizzati come un grafo random – Il sistema fa trovare la strada per raggiungere una risorsa • L’organizzazione della rete segue principi molto semplici • Rispetto al routing tradizionale – Non ci sono vincoli sul posizionamento delle risorse rispetto alla topologia del grafo – La risorsa non è esattamente un indirizzo di un nodo della rete, ma può essere un file, una CPU disponibile, dello spazio libero su disco, … • La localizzazione delle risorse è resa difficoltosa dalla mancanza di organizzazione della rete – L’aggiunta o la rimozione di nodi è un’operazione semplice e poco costosa – Obiettivo: gestire nodi con comportamento fortemente transiente (tassi di join/leave elevati) – Esempi: Gnutella, FastTrack, eDonkey/Overnet • Concentriamo l’attenzione sul routing, non sull’interazione per recuperare una risorsa – Il recupero avviene con un’interazione diretta tra peer, usando protocolli come HTTP IW - Valeria Cardellini, A.A. 2007/08 IW - Valeria Cardellini, A.A. 2007/08 11 IW - Valeria Cardellini, A.A. 2007/08 12 Reti strutturate e non strutturate Routing in reti non strutturate • Reti strutturate • Sistemi decentralizzati ibridi: directory centralizzata – Vincoli sul grafo (strutturato) e sul posizionamento delle risorse sui nodi del grafo – Es.: Napster • L’organizzazione della rete segue principi rigidi • Sistemi decentralizzati puri: ricerca flood-based – L’aggiunta o la rimozione di nodi è un’operazione costosa – Obiettivo: migliorare la localizzazione delle risorse – Esempi: Chord, Pastry, CAN – Es.: Gnutella 0.4 • Sistemi parzialmente centralizzati – Es.: KaZaA, Gnutella 0.6 IW - Valeria Cardellini, A.A. 2007/08 13 • Un nodo centralizzato (directory server) possiede il mapping risorse-peer (index), fornendo un servizio di discovery dei peer e di lookup delle risorse • Limiti • Approccio completamente distribuito per localizzazione le risorse • Ogni peer propaga (flood) la richiesta ai peer “vicini”, che a loro volta inviano la richiesta ai loro “vicini” (escludendo il vicino da cui hanno ricevuto la richiesta) – Gestione costosa della directory centralizzata – Collo di bottiglia costituito dal nodo centrale (scalabilità limitata) – Single point of failure (motivi tecnici e legali, es. Napster) – Fino a che la richiesta è risolta oppure viene raggiunto un massimo numero di passi (per limitare il “raggio della ricerca”) – L’eventuale risposta viene inviata al peer dal quale è stata ricevuta la richiesta peers 2. List of peers offering the file 14 Sistemi con ricerca flood-based Sistemi con directory centralizzata Napster server Index 1. File location request IW - Valeria Cardellini, A.A. 2007/08 • Da evitare: Napster server Index – La propagazione all’infinito 3. File request • Decremento del TTL ad ogni inoltro – La circolazione nei cicli del grafo 5. Index update 4. File delivered • ID della query per evitare che venga nuovamente elaborata dai nodi da cui è stata già ricevuta IW - Valeria Cardellini, A.A. 2007/08 15 IW - Valeria Cardellini, A.A. 2007/08 16 Esempio di ricerca con flooding Problemi del flooding • Crescita esponenziale del numero di messaggi (possibilità di attacchi DOS) P3 P2 – Nodi black-hole in caso di congestione A? A? A? A? TTL=1 – Non è realistico esplorare tutta la rete A? A? A? A? A! TTL=1 TTL=1 TTL=1 A! TTL=1 TTL=1 TTL=1 TTL=1 P8 • Costo della ricerca P7 P6 – Le risposte dovrebbero avere tempi ragionevoli A? A? A? A? A? TTL=2 A? TTL=2 – Come determinare il raggio di ampiezza del flooding? TTL=2 TTL=2 TTL=2 TTL=2 A! A! • Non è garantito che vengano interrogati tutti i nodi (o i nodi) che posseggono la risorsa • Traffico di query: i messaggi che non producono risultati occupano comunque banda • Mancanza di una relazione tra topologia virtuale e topologia reale P9 P4 A? A? A? TTL=1 TTL=1 TTL=1 TTL=1 P5 P1 A? A? richiesta con TTL scaduto TTL=1 TTL=1 P10 A? A? richiesta già ricevuta TTL=1 TTL=1 – A che distanza sono i “vicini”? IW - Valeria Cardellini, A.A. 2007/08 17 IW - Valeria Cardellini, A.A. 2007/08 Case study: Gnutella 18 Connessione in Gnutella • Gnutella versione 0.4 implementa un’architettura decentralizzata pura host-caching n1 n1 n2 n2 n3 n3 – Discovery • Per accedere alla rete occorre conoscere l’indirizzo di un nodo (problema del bootstrap) • Esistono servizi di host-caching che forniscono liste di nodi della rete Gnutella • Ottenuta la lista, il nodo prova a connettersi con alcuni dei nodi noti • A seconda della velocità di connessione, il nodo prova a mantenere da 3 a 8 connessioni • Se una connessione viene persa, il nodo cerca di connettersi ad un altro nodo della lista, che viene continuamente aggiornata – Search • • Per le ricerche di risorse, Gnutella utilizza un flooding con esplorazione breadth-first (BFS) IW - Valeria Cardellini, A.A. 2007/08 19 Un servent può rifiutare una richiesta di connessione, ad esempio perché ha raggiunto un numero massimo di connessioni ammesse IW - Valeria Cardellini, A.A. 2007/08 20 Comunicazione fra servent Struttura dei messaggi • I servent comunicano fra loro con messaggi (detti descriptor); sono supportati 5 tipi di messaggi: Payload Payload Descriptor Descriptor ID ID descriptor descriptor – Ping 16 byte • Usato per il discovery dei nodi vicini nella rete P2P – Pong 1 byte TTL TTL Hops Hops Payload Payload length length 1 byte 1 byte 4 byte • Descriptor ID è un identificatore univoco del messaggio all’interno della rete • Messaggio di risposta a un Ping: un nodo che riceve un Ping risponde con uno o più Pong, includendo il suo indirizzo – Usato per associare le risposte alle richieste e per evitare di propagare le stesse richieste più di una volta – Query • Messaggio di richiesta per localizzare una risorsa • Il Payload descriptor identifica il tipo di messaggio • All’i-esimo passo: TTL(i) = TTL(0) - Hops(i) • Payload length è la lunghezza dei dati associati al messaggio – QueryHit • Messaggio di risposta a una query: contiene le informazioni per reperire la risorsa – Push • Permette il download da servent dietro un firewall tramite il protocollo HTTP IW - Valeria Cardellini, A.A. 2007/08 21 IW - Valeria Cardellini, A.A. 2007/08 Ping e Pong Query e QueryHit • Il messaggio di Ping è inviato periodicamente per sondare la rete alla ricerca di altri nodi • Query specifica il criterio di ricerca e la velocità di trasferimento minima richiesta ai servent – Un nodo che riceve un Ping risponde inviando al mittente un Pong Number Number of of hits hits 1 byte • Il messaggio Pong contiene l’IP e la porta su cui sono accettate connessioni, il numero di file condivisi e il numero di Kb totali condivisi Port Port 2 byte IP IP Speed Speed Result Result set set server server ID ID 4 byte 4 byte N byte 16 byte • QueryHit riguarda tutti i risultati trovati su un dato servent che soddisfano il criterio di ricerca – Possono essere inviati più messaggi di pong per comunicare il contenuto della propria host-cache – ll messaggio di ping viene inoltrato ai vicini fino a che il TTL non si annulla IW - Valeria Cardellini, A.A. 2007/08 22 – Port: porta su cui il servent accetta connessioni in entrata – Result set: contiene gli identificatori delle risorse che soddisfano la query – Servent ID: identifica univocamente il nodo nella rete 23 IW - Valeria Cardellini, A.A. 2007/08 24 Sistemi parzialmente centralizzati Download di un file • Non tutti i peer sono uguali – I nodi meglio connessi e con buona capacità computazionale possono avere funzioni speciali (detti supernodi o super-peer o broker) – I supernodi sono identificati dinamicamente • Un nodo richiede direttamente il trasferimento di un file ad un peer che ha risposto alla query – Il protocollo usato per il trasferimento è HTTP • I supernodi agiscono da rappresentanti dei loro sottoposti – Organizzazione gerarchica • I supernodi hanno funzione di directory semicentralizzata – I supernodi indicizzano le risorse disponibili nei peer che gestiscono GET /get/<file index>/<file name>/ HTTP/1.0 HTTP 200 OK Connection: keep-alive Server: Gnutella Range: bytes=0Content-type: application/binary User-Agent: Gnutella Content-length: 200346 • Il flooding riguarda solo i supernodi • Rispetto ai sistemi decentralizzati puri ... data... – Si riduce il tempo di discovery – Si sfrutta l’eterogeneità dei nodi presenti in una rete P2P IW - Valeria Cardellini, A.A. 2007/08 25 IW - Valeria Cardellini, A.A. 2007/08 26 Case study: KaZaA Query di una risorsa con supernodi • Alcune caratteristiche – FastTrack come rete di file sharing; Kaaza è il client più popolare – Download parallelo di parti di file – Redirezione automatica ad un altro server quando il server corrente diviene non disponibile – Stima del tempo di download – Numero massimo di upload/download simultanei configurabile – Gestione della coda al server/client A! A! A? A? A! A? A? A? • Utenti assidui con priorità più elevata al server – Priorità di incentivo A? • Chi collabora alla condivisione dei contenuti è privilegiato nello scaricare file – Ricerca basata su keyword IW - Valeria Cardellini, A.A. 2007/08 27 IW - Valeria Cardellini, A.A. 2007/08 28 KaZaA: la tecnologia Case study: BitTorrent • Software • E’ il più popolare protocollo P2P per la distribuzione di contenuti – Proprietario – File e dati di controllo crittografati – Circa 15% del traffico su Internet – Ogni informazione come richiesta o risposta HTTP • Idea di base: dividere un file in pezzi (da 256 KB) e far ridistribuire ad ogni peer i dati ricevuti, fornendoli a nuovi destinatari; in questo modo: – Il download include adware e spyware… • Architettura – Si riduce il carico di ogni sorgente – Si riduce la dipendenza dal distributore originale – Si fornisce ridondanza – Architettura parzialmente centralizzata con organizzazione gerarchica dei peer – Ogni peer è un supernodo oppure è assegnato ad un supernodo – Ogni supernodo ha informazioni su molti altri supernodi – Lista di potenziali supernodi inclusa all’atto del download del software IW - Valeria Cardellini, A.A. 2007/08 • Per condividere un file, un peer crea un file .torrent, che contiene metadati sul file condiviso e sul tracker – Tracker: il nodo che coordina la distribuzione del file 29 30 Routing in reti strutturate Caratteristiche di BitTorrent • Per scaricare un file, un peer • Sistemi con Distributed Hash Table (DHT) – ottiene un file .torrent per quel file – si connette al tracker individuato in .torrent, che indicherà da quali peer scaricare i vari pezzi del file – si connette ai peer individuati per scaricare i vari pezzi – Anche noti come sistemi con document rooting • Ad ogni peer è assegnato un ID ed ogni peer conosce un certo numero di peer • Ad ogni risorsa condivisa (pubblicata) viene assegnato un ID, basato su una funzione hash applicata al contenuto della risorsa ed al suo nome • Routing della risorsa pubblicata verso il peer che ha l’ID più simile a quello della risorsa • Un gruppo di peer interconnessi per condividere un “torrente” viene detto swarm – Se lo swarm contiene solo il seeder iniziale, il client si connette direttamente al seeder – Mano a mano che i peer entrano nello swarm, iniziano a negoziare tra loro pezzi del file (anziché scaricarli dal seeder) • Alcune tecniche usate dai client BitTorrent – Scaricare i primi 4 pezzi selezionandoli in modo casuale per aumentare la possibilità di trading con gli altri peer – Scaricare i rimanenti pezzi selezionandoli in base alla strategia rarest first • La richiesta per la risorsa specifica sarà instradata verso il peer che ha l’ID più simile a quello della risorsa • Prima il pezzo più raro • Migliore della selezione casuale – Inviare dati ai peer che inviano dati (tit-for-tat) IW - Valeria Cardellini, A.A. 2007/08 IW - Valeria Cardellini, A.A. 2007/08 31 • Possibile copia locale della risorsa ad ogni peer attraversato IW - Valeria Cardellini, A.A. 2007/08 32 Distributed Hash Table Distributed Hash Table (2) • Le DHT offrono un’astrazione distribuita della struttura dati hash table • Le risorse sono rappresentate da una coppia chiave valore (key K, value V) • Le DHT operano in maniera distribuita con molti nodi – K identifica l’oggetto, che è contenuto in V – put(K, V): memorizza V in tutti i nodi responsabili per l’oggetto identificato da K – remove(K, V): cancella tutti i riferimenti a K e all’associato V – V = get(K): recupera V associato a K da uno dei nodi responsabili – Più di 20 protocolli e prototipi per reti P2P strutturate, tra cui: – Elevata scalabilità • Diverse soluzioni che specificano anche la modalità di routing delle ricerche e della memorizzazione • • • • • • • • • • Ogni chiave viene mappata su almeno un nodo della rete • Ogni risorsa è identificata solo mediante il valore della chiave Chord (MIT) Tapestry (Berkeley) CAN (Berkeley) Pastry (Rice Univ., Microsoft) Kademlia (NY Univ.) SkipNet/SkipGraph Viceroy Z-Ring Chimera (UCSB) – Per cercare una risorsa occorre conoscere il valore esatto della chiave IW - Valeria Cardellini, A.A. 2007/08 33 Chord 34 Finger table in Chord • I nodi e le chiavi sono mappati in uno spazio circolare mediante funzioni hash • Ogni nodo è responsabile delle chiavi poste tra sé e il nodo precedente nel cerchio • Finger table • Idea della finger table – Ogni nodo conosce “bene” le posizioni vicine ed ha un’idea approssimata delle posizioni più lontane • Come avviene la ricerca? Algoritmo di routing: – Il nodo in posizione x vuole instradare una richiesta per la posizione z – Se z è nella zona di competenza del nodo, la ricerca termina – Altrimenti, cerca nella finger table un nodo y con y = max numero < z e invia la richiesta a quel nodo – E’ una tabella di routing posseduta da ogni nodo – Il nodo in posizione x conosce nodi competenti per le posizioni • • • • IW - Valeria Cardellini, A.A. 2007/08 • Caratteristiche – L’algoritmo raggiunge velocemente le vicinanze del punto cercato, per procedere poi con salti via via più piccoli – Costo di lookup O(log N), essendo N il numero dei nodi x+1 x+2 x+4 x+8, … http://www.pdos.lcs.mit.edu/chord/ IW - Valeria Cardellini, A.A. 2007/08 35 IW - Valeria Cardellini, A.A. 2007/08 36 Routing in Chord Tapestry e CAN N1 finger table N51+2 N56 N51+4 N56 • Tapestry – Prefix routing basato su algoritmo di Plaxton lookup(K54) N8 K54 N56 finger table N14 N51 ... … N8+32 N42 – Anche in Pastry e Kademlia il routing è basato su Plaxton N48 • CAN (Content Addressable Network) N21 finger table N42+8 N51 N42+16 N1 • La struttura mesh di Plaxton contiene puntatori ai nodi il cui ID corrisponde agli elementi di una struttura ad albero di prefissi di ID N42 IW - Valeria Cardellini, A.A. 2007/08 N38 Problemi Chord – Meccanismo fragile – Scarso supporto per ricerche senza matching esatto – Non considera la topologia fisica 37 – Nodi e risorse disposti in uno spazio cartesiano d-dimensionale – Ogni nodo è responsabile di un sottospazio – Ogni risorsa è individuata da d coordinate IW - Valeria Cardellini, A.A. 2007/08 38
Documenti analoghi
Linguaggi ed Applicazioni mulømediali
• I nodi che hanno il file A inviano
una risposta
• La risposta viene propagata
indietro fino al nodo 2
• File download
sistemi p2p - Benvenuto su AMS Campus - AlmaDL
Descriptor id: Identificatore univoco(nella rete)del messaggio
Payload descriptor: tipo di messaggio (es. 0x00 = Ping)
TTL: time-to-live
Hops: numero di propagazioni, TTL(0) = TTL(i) + Hops(i)
Payl...
I sistemi peer-to-peer
Si cerca di limitare la ricerca all'interno di un
cluster; eventualmente è diffusa all'esterno
Alcuni sistemi ibridi: FastTrack, E-Donkey,