Reti di Calcolatori RETI PEER-TO-PEER D. Talia RETI DI CALCOLATORI - UNICAL 9-1
Reti Peer-To-Peer Cosa sono? Classificazione NAPSTER Gnutella Esempio di funzionamento di Gnutella D. Talia RETI DI CALCOLATORI - UNICAL 9-2
P2P: Connessioni e gerarchie 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
P2P: Connessioni e gerarchie 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 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
Napster 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
Napster:Una rete Napster D. Talia RETI DI CALCOLATORI - UNICAL 9-7
Gnutella Software liberamente distribuito sulla rete. E disponibile per molte piattaforme (Unix, Windows, Mac, Linux). Assoluta compatibilità tra software per piattaforme diverse. D. Talia RETI DI CALCOLATORI - UNICAL 9-8
Gnutella 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
Gnutella 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
Gnutella: Fase di Connessione Il nuovo utente contatta chi è già connesso: D. Talia RETI DI CALCOLATORI - UNICAL 9-11
Gnutella:Struttura del protocollo 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 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 Payload TTL Hops Payload ID Descriptor Length D. Talia RETI DI CALCOLATORI - UNICAL 9-13
Gnutella:Fase1- Connessione 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
Gnutella:Fase1-Connessione 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
Gnutella:Fase2-Ricerche 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 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