Università degli studi di Urbino “Carlo Bo” Facoltà di Informatica Applicata Conforti Vito A.A 2004/2005 Sistemi P2P Cos’è il P2P: E’ un sistema distribuito Ogni nodo della rete (Peer) funge sia da Client che da Server E’ l’antitesi del modello Client - Server Sistemi P2P Vantaggi: Scalabilità Affidabilità Facilità d’uso Condivisione di file in rete Sistemi P2P Problemi Sicurezza: Utenti Inesperti Tutti i Peer sono esposti ad attacchi Sistemi P2P Alcuni Sistemi P2P Gnutella Alpine BitTorrent Napster KaZaA Freenet JXTA Sistemi P2P Gnutella Ogni nodo della rete è detto GNode Ogni GNode conosce tutti i nodi adiacenti attivi I nodi con maggiori capacità svolgono anche funzione di instradamento I messaggi dei GNode sfruttano TCP/IP Per il download si utilizza HTTP 1.0 Sistemi P2P Gnutella Tipologia dei messaggi: PING: Il Gnode annuncia la sua presenza nella rete e rileva i suoi nodi adiacenti PONG: Riposta al Ping PUSH: Richiesta di una Risorsa e negoziazione della porta Sistemi P2P Gnutella QUERY: Richiesta di una risorsa (si attende una risposta solo in presenza della risorsa) QUERY-HIT: Risposta a una query con tutti i dettagli utili alla trasmissione Sistemi P2P Alpine Elevata capacità di gestire connessioni concorrenti Rete piatta priva di gerarchie Basso overhead nelle comunicazioni Protocollo DTCP Sistemi P2P Alpine DTCP Cerca le risorse richieste interrogando i nodi uno per volta. Il Client sceglie il nodo più performante Raggruppa i Peer in base alla qualità di connessione, con lo scopo di individuare Peer che offrono buone prestazioni Sistemi P2P BitTorrent Download: Ricerca su pagine web di file .torrent Il file include un link alla sorgente o ai vari frammenti della sorgente Il file include un link in cui risiede l’originale Durante il trasferimento del file, viene anche diffuso in parallelo su altri computer in base alla banda non utilizzata Prima di iniziare il download il sistema si assicura che tutti i frammenti del file siano collegati in rete Sistemi P2P BitTorrent Download: Il download viene completato solo quando la copia completa del file è stato distibuito verso altri track server Gli scambi sono coordinati per privilegiare il transito di pezzi rari Sistemi P2P BitTorrent Differenze con altri sistemi: La ricerca non viene effettuata per nome ma occorre prima trovare il file .torrent Per rendere disponibile un file occorre prima distribuire gli indirizzi di traccia I file muoiono con facilità (il sistema è fondato più sulla diffusione che sulla condivisione) Sistemi P2P Azureus E’ un Client BitTorrent che fornisce un interfaccia che consente mentre si sta scaricando un file di osservare: Il file che si sta scaricando La % di file di cui si ha ancora bisogno, il numero di parti e disponibilità Chi sta facendo prelievi dal proprio pc con tutte le informazioni Velocità e tempo rimanente per il completamento del download Sistemi P2P Napster Ha permesso lo scambio e la condivisione di file mp3 violando il copyright Non era p2p puro: un server centrale teneva traccia degli utenti connessi e dei file condivisi Sistemi P2P KaZaA Protocollo Fast Track Installa degli spyware sul computer Installa Altnet per inviare offerte commerciali Sistemi P2P KaZaA Fast Track: Permette di scaricare file simultaneamente da diversi peer Computer potenti e con linea veloce diventano Super nodi Al primo collegamento il programma incorpora una lista di super nodi Il client individua quello più vicino e più performante Sistemi P2P KaZaA Fast Track: Il client invia al super nodo la lista dei file da condividere Il super nodo comunica con gli altri super nodi per soddisfare la richiesta del client Il client si collega direttamente al nodo dove risiede il file per scaricarlo direttamente Il download avviene con protocollo HTTP Sistemi P2P Freenet P2P puro Sopravvivenza: tutti i processi interni sono anonimi e completamente distribuiti Privato: nessuno può sapere le informazioni che stai visualizzando Sicuro: le informazioni sono criptate Efficiente: copia e distribuisce le informazioni dinamicamente senza impiegare troppa banda È un sistema che non può essere controllato da nessuno Sistemi P2P Freenet Fred (Freenet REference Daemon) è l’applicazione che fa girare freenet Sfrutta il protocollo FCP (Freenet Client Protocol) Sistemi P2P Freenet Per ciascuna transizione occorre stabilire una sessione. I messaggi possono essere: URI Error Restarted DataNotFound RouteNotFound DataFound KeyCollision Pending Success Sistemi P2P Freenet Durante la transizione si possono verificare errori: Format Error : comando non compreso Failed: fallimento del nodo L’Handshaking (opzionale) serve per stabilire una connessione Il client chiede una sessione Il nodo risponde inviando anche il protocollo Quindi iniziano le richieste Sistemi P2P Freenet In seguito a una richiesta: Messaggi di errore Data Found (invia anche la lunghezza) Inserimento: HopsToLive URI DataLength Data Sistemi P2P Freenet Il nodo può rispondere: URI Error Restarted RouteNotFound KeyCollision SizeError (dim chiave limitata 32 Kb) Pending Success Sistemi P2P Freenet Generazione delle chiavi: Permettono a un Client di generare chiavi Utilizzano il messaggio GenerateKey GenerateKey: DataLength Data Le chiavi vengono calcolate come se fosse un inserimento Sistemi P2P Freenet La Super Chiave è simile alla chiave Genere una coppia di chiavi (pubblica e privata) Chiavi indipendenti dai dati In caso di successo viene ritornato: PublicKey Privatekey Sistemi P2P JXTA Insieme di protocolli P2P che permettono ad ogni dispositivo della rete di comunicare come peer Sono indipendenti dal protocolli di trasporto e dal linguaggio di programmazione usato Sistemi P2P JXTA Caratteristiche: Interoperabilità: Ogni peer può cercare e offrire servizi diversificati Indipendenza dalla piattaforma Ubiquità: Accessibile da qualsiasi dispositivo digitale Connessioni temporanee Instradamento non deterministico Sistemi P2P JXTA Tipologie di Peer: Minimo: può solo inviare e ricevere messaggi Pienamente funzionale: può memorizzare gli advertisement Rendezvous: Inoltra richieste da parte di altri peer Relay: Permette la comunicazione con peer inaccessibili (protetti da firewall) Sistemi P2P JXTA Protocolli: Peer Discovery protocol: pubblicare e cercare risorse Peer Information protocol: Informazioni sullo stato dei peer Peer Resolver protocol: Invia richieste e riceve risposte da altri peer Pipe Brinding protocol: Canali virtuali tra peer Endpoint Routing protocol: Percorsi verso altri peer Rendezvous protocol: permette ai peer di utilizzare o fornire loro il servizio di propagazione Sistemi P2P JXTA Messaggi dei protocolli: Peer Advertisement: descrizione del peer Pipe Advertisement: descrizione dei canali Module Class Advertisement: esistenza di un modulo che fornisce servizi Module Spec Advertisement: informazioni per implementazioni conformi ai moduli Module Impl Advertisement: definisce l’implementazione di una specifica di modulo Rendezvous Advertisement: descrizione di un peer che agisce come rendezvous Peer Info Advertisement: Informazioni sui peer e statistiche Sistemi P2P JXTA Problemi: I protocolli si basano su XML Alto numero di messaggi Banda Sistemi P2P Fine Presentazione Conforti Vito Sistemi P2P