Reti Peer-To-Peer

Transcript

Reti Peer-To-Peer
10110
Reti di Calcolatori
01100
01011
RETI PEER-TO-PEER
D. Talia – RETI DI CALCOLATORI - UNICAL
9-1
10110
Reti Peer-To-Peer
01100
01011
„
Cosa sono ?
„
Classificazione
„
NAPSTER
„
Gnutella
„
Esempio di funzionamento di Gnutella
D. Talia – RETI DI CALCOLATORI - UNICAL
9-2
P2P: Connessioni e gerarchie
10110
01100
01011
„
„
„
In una rete Peer-To-Peer si condividono
risorse e servizi scambiandoli direttamente tra
i computer.
Le connessioni non nascono spontaneamente
ma devono essere richieste da una delle parti
in causa.
A differenza dell’approccio Client/Server, chi
richiede la connessione non è ad un livello
gerarchico inferiore; infatti entrambi i
partecipanti sono alla pari (peer).
D. Talia – RETI DI CALCOLATORI - UNICAL
9-3
10110
P2P: Connessioni e gerarchie
01100
01011
„
Perchè un’applicazione si possa definire Peerto-Peer deve presentare almeno tre
caratteristiche:
1. le entità devono poter scoprire le altre entità pari
sulla rete.
2. le entità devono poter interrogare i pari sulle
proprie risorse.
3. le entità devono poter condividere le risorse con
gli altri pari.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-4
Tipologie di Reti Peer-to-Peer
10110
01100
01011
„
„
„
Non esistono client o server (Talk di Unix).
Tutti possono essere contemporaneamente
Client e Server senza nessun mediatore
(Gnutella).
In alcuni casi esiste un “Server” centrale che
fa da coordinatore , ma i client si connettono
tra di loro autonomamente (Napster).
D. Talia – RETI DI CALCOLATORI - UNICAL
9-5
10110
Napster
01100
01011
„
„
„
Non è un vero e proprio sistema Peer-to-Peer
infatti si appoggia sulla presenza di server
centralizzati che fanno da coordinatori.
Ogni server raccoglie le informazioni dei client
per permettere a questi di operare.
La definizione di Peer-to-Peer gli viene
attribuita per il fatto che i trasferimenti di files
avvengono per mezzo di connessioni stabilite
direttamente tra i client.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-6
10110
Napster:Una rete Napster
01100
01011
D. Talia – RETI DI CALCOLATORI - UNICAL
9-7
Gnutella
10110
01100
01011
„
„
„
Software liberamente distribuito sulla rete.
E’ disponibile per molte piattaforme (Unix,
Windows, Mac, Linux).
Assoluta compatibilità
piattaforme diverse.
D. Talia – RETI DI CALCOLATORI - UNICAL
tra
software
per
9-8
Gnutella
10110
01100
01011
„
„
„
„
Una rete Gnutella è formata da un certo
numero di nodi (Gnode) che condividono files
di qualsiasi tipo.
Il protocollo Gnutella non prevede la presenza
di un server centrale.
Tutte le informazioni sulla topologia della rete
vengono
propagate
attraverso
un
meccanismo di “query&forward”.
Per entrare in una rete Gnutella bisogna
conoscere l’indirizzo di almeno uno Gnode.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-9
10110
Gnutella
01100
01011
„
„
„
„
Viene spontaneo da chiedersi:ma se non conosco un
indirizzo, non entrerò mai a far parte della rete
Gnutella?
La risposta è Si (ma ci sono speranze), tuttavia
esistono dei cache server che mantengono gli indirizzi
di quanti più nodi possibile.
Quindi già all’apertura dell’applicazione viene
contattato automaticamente uno di questi cache
server,che provvederà ad aggiungere alla comunità il
nuovo arrivato.
Il software per l’utilizzo delle reti Gnutella viene
chiamato Servent (Server+Client).
D. Talia – RETI DI CALCOLATORI - UNICAL
9-10
10110
Gnutella: Fase di Connessione
01100
01011
Il nuovo utente contatta chi è già connesso:
D. Talia – RETI DI CALCOLATORI - UNICAL
9-11
10110
Gnutella:Struttura del protocollo
01100
01011
„
„
„
„
Il protocollo Gnutella è caratterizzato da 5 descrittori
che permettono la comunicazione:
Ping:utilizzato per scoprire gli host sulla rete. Un
servent che riceve un Ping deve rispondere con un
Pong se disposibile ad accettare connessioni.
Pong:Utilizzato come risposta al Ping; contiene
l’indirizzo del servent e informazioni circa
l’ammontare dei dati condivisi.
Query:Utilizzato per inviare delle richieste;un servent
che riceve un descrittore Query deve rispondere con
un descrittore QueryHit se ha trovato corrispondenza
con i dati richiesti.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-12
Gnutella:Struttura del Protocollo
10110
01100
01011
„
„
QueryHit: La risposta a una query. Questo descrittore fornisce
al destinatario abbastanza informazioni per acquisire i dati
richiesti.
Push: Un meccanismo utilizzato dai servent per effettuare le
connessioni dirette, qualora ci sia la presenza di un Firewall.
Struttura dell’ Header di un pacchetto Gnutella:
Descriptor
ID
Payload
Descriptor
D. Talia – RETI DI CALCOLATORI - UNICAL
TTL
Hops
Payload
Length
9-13
10110
Gnutella:Fase1- Connessione
01100
01011
„
„
Il software servent contiene già inglobato
l’indirizzo di un server di cache dove sono
reperibili gli indirizzi di macchine attualmente
connesse alla rete Gnutella.
Il software servent invia un Ping ad una di
queste macchine, che in broadcast lo passerà
a tutte le macchine a cui è connessa.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-14
10110
Gnutella:Fase1-Connessione
01100
01011
„
„
„
Una volta inviati i Ping le macchine disponibili
cominceranno a mandare dei pacchetti Pong, seguendo
la stessa strada fatta dai pacchetti Ping.
Nei pacchetti Pong sono contenute le informazioni circa il
numero di files condivisi e il loro ammontare.
Inoltre il pacchetto Pong fornisce anche informazioni
circa la velocità di connessione dell’host che lo invia.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-15
10110
Gnutella:Fase2-Ricerche
01100
01011
„
„
„
„
Una volta che si entrati a far parte della rete si può
incominciare a ricercare un file.
Il software servent invia in broadcast a tutte le
macchine a cui è connesso un descrittore con i criteri
di ricerca stabiliti dall’utilizzatore.
A loro volta ogni Gnode invierà a tutti gli altri Gnode
lo stesso pacchetto sempre in broadcast.
Ogni pacchetto viene contraddistindo con un GUID
(Global Unified Identificator) in modo da non
propagare lo stesso pacchetto a macchine che lo
hanno già ricevuto.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-16
Gnutella:Fase2-Ricerche
10110
01100
01011
„
„
„
„
In seguito incominceranno ad arrivare al richiedente
tanti pacchetti QueryHit con i risultati e con
informazioni circa la velocità di collegamento di chi
condivide il file.
L’utente può quindi scegliere tra i risultati da quale
utente prelevare il file.
La connessione tra il richiedente e il donatore è
diretta.
I file utilizzano come protocollo per il download
HTTP.
D. Talia – RETI DI CALCOLATORI - UNICAL
9-17