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
Scarica

presentazione p2p