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
Documenti analoghi
Seminario di Protocolli di Rete
2. Definizione Protocollo
Il protocollo Gnutella definisce il modo in cui i peer comunicano sulla rete.
Per immaginare come Gnutella funzionava originariamente, è necessario immaginare
una grande c...
Lezione n.5 Sistemi P2P: Gnutella Laura Ricci
Firewalled Indicator: indica che l’host che ha inviato la query non può
accettare connessioni perché si trova a monte di un firewall. In questo modo un
peer che può soddisfare la query evita di i...