SlideShare a Scribd company logo
1 of 12
Università Ca’Foscari di Venezia
                    Dipartimento di Informatica

                    Corso di Protocolli di Reti
                          AA 2008-2009
                  Docente: Francesco Dalla Libera




 SEMINARIO DI PROTOCOLLI
        DI RETE :

               gnutella
Bonaventura Nicola 812106                             Zuin Matteo 805463
Indice :
1. Gnutella
2. Definizione di protocollo
3. Messaggi
4. Struttura dei messaggi
5. Payload Descriptor
6. Funzionamento
7. Vantaggi e Svantaggi




  Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Gnutella:
Gnutella è un protocollo di livello application per la ricerca distribuita, basato
sulla connessione TCP

Peer-to-Peer puro:
o Nessun server centrale
o Broadcast forzato

Nonostante il nome contenga la parola GNU, esso non è parte dell’omonimo
progetto.


Nota storica:
Sviluppato inizialmente come piccolo programma da due programmatori della
Nullsoft. Distribuito solo per un giorno tramite internet. AOL, proprietaria di
Nullsoft ordinò di cessare la distribuzione e lo sviluppo per motivi legali.
Tuttavia i dettagli sul protocollo furono resi pubblici usando tecniche di reverse
engineering e presto furono sviluppati cloni free/opensource.


           Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Definizione di protocollo:

Il protocollo Gnutella definisce il modo in cui i peer comunicano sulla rete.


Gli utenti sono chiamati Servent. Ogni servent accede a Gnutella
connettendosi ad un altro servent già in rete principalmente attraverso un
servizio di host cache

Ci si connette con i “vicini” fino ad una certa quota

Ogni client è un server e viceversa. Grazie alla sua natura distribuita una rete di
servents che implementa il protocollo Gnutella è altamente robusta.




           Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Messaggi:

I servent Gnutella comunicano all’interno della rete per mezzo di messaggi che
si dividono in tre tipologie:

1. Multicast
2. Unicast
3. Diretto




          Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Struttura dei messaggi:
Ogni messaggio scambiato in rete deve essere preceduto da un Description
Header. I messaggi Multicast e Unicast (che utilizzano l’infrastruttura Gnutella)
hanno tutti quanti lo stesso Description Header, che si antempone al messaggio
specifico.

 Nome         DescriptorID      Payload        TTL       Hops       Payload
 campo                         Descriptor                           Length
 Byte             0 - 15           16           17        18         19 - 22
 Offset


• DescriptorID: identificatore del messaggio, generato casualmente
• Paylod Descriptor: descrive il tipo di messaggio che segue Es. 0x00 = Ping
• TTL: Time to live
• Hops: ogni nodo passato incrementa questo valore TTL (O) = TTL(i)+ Hops(i)
• Payload Length: rappresenta lunghezza messaggio nel pacchetto. Dimensione
massima 4Kb

          Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Payload Descriptor(1):
0x00  Ping:
Usato per attivare la ricerca di host nella rete. Questi messaggi non hanno
associato alcun carico e hanno lunghezza 0. Serve per conoscere lo stato della
rete: vengono spediti indietro pacchetti Pong

0x01  Pong:
Risposta a pacchetto Ping. Questi messaggi sono caratterizzati dai seguenti
campi :

Nome              Port    IP adress     Number of file         Number of
campo                                     shared            kylobytes shared
Byte Offset       0-1        2-5             6-9                 10 - 13

• Number of file shared: numero file condivisi
• Number of kylobytes shared : dimensione totale file condivisi in Kb


          Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Payload Descriptor(2):
0x40  Push:
Un servert può inviare un Push descriptor se riceve un descrittore QueryHit da
un servent che non accetta connessioni in entrata.
Nome campo           Servent Identifier     File Index     IP Address       Port
Byte Offset                 0 - 15            16 - 19        20 - 23       24 – 25
• Servent Identifier: a quale servent è indirizzato il messaggio
• File Index: codice utilizzato dal server per identificare una risorsa e compare
nei record del messaggio QueryHit
0x80  Query:
Meccanismo primario per ricerche nella rete distribuita. Se ricerca andata a
buon fine, risposta con messaggio QueryHit.
 Nome campo             Minimum Speed                    Search criteria
 Byte Offset                   0-1                            2-…
• Minimum Speed: espressa in Kb/s
• Search criteria: campo tipo stringa, delimitato dal carattere 0x00, è composto
dall’insieme delle parole che devono essere presenti nel file di risposta.
          Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Payload Descriptor(3):
0x81  QueryHit:
Risposta a Query. Il descrittore provvede a fornire le informazioni per acquisire
la risorsa voluta.
Nome        Number of      Port     IP Address    Speed      Result Set    Servent
campo         Hits                                                        Identifier
Byte             0         1-2         3-6        7 – 10       11 - …     n – n+16
Offset
• Number of Hits: numero di record nel campo Result Set
•Speed: velocità espressa in Kb/s
• Result set: ogni record è definito nel modo seguente

            Nome campo            File Index     File Size      File Name
            Byte Offset             0–3            4-7             8-…

• Servent Identifier: identificativo del servent sulla rete, solitamente risultato
funzione partendo dall’indirizzo IP
Il DescriptorID deve essere uguale a quello del messaggio Query
           Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Funzionamento(1) :
Utilizzo ultrapeer per non congestionare la rete

Un servent per connettersi alla rete Gnutella ha bisogno dei seguenti servizi:
• LocalHostCache: memorizza i servents della rete Gnutella
• GWebCache: sistema distribuito per prima connessione. Server web con
indirizzi di servents
Operazioni fondamentali protocollo:

• BootStrap
    • Avvio client e caricamento LocalHostCache
    • Tentativo connessione usando LocalHostCache (invio Ping)
    • Insuccessio o LocalHostCache vuota  interroga GWebChache
    • Una volta connesso non interroga più i GWebCache

• Ricerca risorsa
     • Ricerca con Query  Risposta positiva con QueryHit
     • Ricevuta QueryHit, scarico risorsa tramite http

          Seminario di Protocolli di Rete Gnutella – AA 2008/2009
Funzionamento(2) :
• Routing: instradamento traffico
    • I Pong inviati stesso percorso Ping
    • QueryHit inviati stesso percorso Query
    • Push inviati stesso percorso QueryHit
    • Ping e Query inoltrati a tutti i nodi connessi tranne ai “mittenti” precedenti
    • Quando si riceve un descriptor con lo stesso Paylod Descriptor e DescriptorID
    di uno ricevuto precedentemente, bisogna scartarlo e non inoltrarlo
Vantaggi VS Svantaggi:
Vantaggi:
• Nessun server  nessun collo di bottiglia  no dipendenze accesso rete
• Non penalmente perseguibile
• Compatibile con qualsiasi tipo di file
• Non ci sono problemi con firewall
• Totalmente freeware



Svantaggi:
• Per connettersi serve presenza altro utente connesso
• Orizzonte limitato
• Non scalabile  molto traffico per poche richieste
• Si ha difficoltà ad autenticare la fonte da cui provengono i dati




           Seminario di Protocolli di Rete Gnutella – AA 2008/2009

More Related Content

Viewers also liked

International Seminar
International SeminarInternational Seminar
International Seminarguest7c33846
 
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vf
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vfBusiness Incubation and Networking - Analysis based on Taguspark in Portugal.vf
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vfBruno Serrano
 
Business incubation in Portugal: the role of cohabitation for networking betw...
Business incubation in Portugal: the role of cohabitation for networking betw...Business incubation in Portugal: the role of cohabitation for networking betw...
Business incubation in Portugal: the role of cohabitation for networking betw...Bruno Serrano
 
Lavender Hills Alan Montreal
Lavender Hills Alan MontrealLavender Hills Alan Montreal
Lavender Hills Alan MontrealAlanMontreal
 
Collegepresentation
CollegepresentationCollegepresentation
Collegepresentationdebayanin
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
Living Social BD Hothouse
Living Social BD HothouseLiving Social BD Hothouse
Living Social BD HothouseBrian.Rea
 
The Rise of The Digital Fan
The Rise of The Digital FanThe Rise of The Digital Fan
The Rise of The Digital FanBrian.Rea
 

Viewers also liked (17)

Indic OCR
Indic OCRIndic OCR
Indic OCR
 
Campaign Streamers
Campaign StreamersCampaign Streamers
Campaign Streamers
 
Experience 98 06
Experience 98   06Experience 98   06
Experience 98 06
 
International Seminar
International SeminarInternational Seminar
International Seminar
 
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vf
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vfBusiness Incubation and Networking - Analysis based on Taguspark in Portugal.vf
Business Incubation and Networking - Analysis based on Taguspark in Portugal.vf
 
Platform games
Platform gamesPlatform games
Platform games
 
Business incubation in Portugal: the role of cohabitation for networking betw...
Business incubation in Portugal: the role of cohabitation for networking betw...Business incubation in Portugal: the role of cohabitation for networking betw...
Business incubation in Portugal: the role of cohabitation for networking betw...
 
London Fashion Week
London Fashion WeekLondon Fashion Week
London Fashion Week
 
Foss And Me
Foss And MeFoss And Me
Foss And Me
 
Lavender Hills Alan Montreal
Lavender Hills Alan MontrealLavender Hills Alan Montreal
Lavender Hills Alan Montreal
 
Collegepresentation
CollegepresentationCollegepresentation
Collegepresentation
 
Enviro Glas
Enviro GlasEnviro Glas
Enviro Glas
 
Platform gamespt2
Platform gamespt2Platform gamespt2
Platform gamespt2
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
Opportunity
OpportunityOpportunity
Opportunity
 
Living Social BD Hothouse
Living Social BD HothouseLiving Social BD Hothouse
Living Social BD Hothouse
 
The Rise of The Digital Fan
The Rise of The Digital FanThe Rise of The Digital Fan
The Rise of The Digital Fan
 

Similar to Gnutella

Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)Giuseppe Vizzari
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNMatteo D'Amore
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasportoacapone
 
Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxManlioSantonastaso
 
Progetto e implementazione di uno script python per la gestione di richieste ...
Progetto e implementazione di uno script python per la gestione di richieste ...Progetto e implementazione di uno script python per la gestione di richieste ...
Progetto e implementazione di uno script python per la gestione di richieste ...AndreaMajcen
 
Gnutella Italian Printable
Gnutella Italian PrintableGnutella Italian Printable
Gnutella Italian PrintableAlberto Minetti
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoStefano Scarpellini
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranettingacapone
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeuticiacapone
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18Giuseppe Vizzari
 
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTProtocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTStefano Valle
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
2 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/172 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/17Giuseppe Vizzari
 

Similar to Gnutella (20)

Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDN
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasporto
 
Network_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptxNetwork_Forensics_Analysis_Tool.pptx
Network_Forensics_Analysis_Tool.pptx
 
Progetto e implementazione di uno script python per la gestione di richieste ...
Progetto e implementazione di uno script python per la gestione di richieste ...Progetto e implementazione di uno script python per la gestione di richieste ...
Progetto e implementazione di uno script python per la gestione di richieste ...
 
TCP IP
TCP IPTCP IP
TCP IP
 
Gnutella Italian Printable
Gnutella Italian PrintableGnutella Italian Printable
Gnutella Italian Printable
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasporto
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranetting
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeutici
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18
 
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTProtocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
6 Dns Parte1
6 Dns Parte16 Dns Parte1
6 Dns Parte1
 
Packet Sniffing
Packet SniffingPacket Sniffing
Packet Sniffing
 
2 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/172 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/17
 

Gnutella

  • 1. Università Ca’Foscari di Venezia Dipartimento di Informatica Corso di Protocolli di Reti AA 2008-2009 Docente: Francesco Dalla Libera SEMINARIO DI PROTOCOLLI DI RETE : gnutella Bonaventura Nicola 812106 Zuin Matteo 805463
  • 2. Indice : 1. Gnutella 2. Definizione di protocollo 3. Messaggi 4. Struttura dei messaggi 5. Payload Descriptor 6. Funzionamento 7. Vantaggi e Svantaggi Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 3. Gnutella: Gnutella è un protocollo di livello application per la ricerca distribuita, basato sulla connessione TCP Peer-to-Peer puro: o Nessun server centrale o Broadcast forzato Nonostante il nome contenga la parola GNU, esso non è parte dell’omonimo progetto. Nota storica: Sviluppato inizialmente come piccolo programma da due programmatori della Nullsoft. Distribuito solo per un giorno tramite internet. AOL, proprietaria di Nullsoft ordinò di cessare la distribuzione e lo sviluppo per motivi legali. Tuttavia i dettagli sul protocollo furono resi pubblici usando tecniche di reverse engineering e presto furono sviluppati cloni free/opensource. Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 4. Definizione di protocollo: Il protocollo Gnutella definisce il modo in cui i peer comunicano sulla rete. Gli utenti sono chiamati Servent. Ogni servent accede a Gnutella connettendosi ad un altro servent già in rete principalmente attraverso un servizio di host cache Ci si connette con i “vicini” fino ad una certa quota Ogni client è un server e viceversa. Grazie alla sua natura distribuita una rete di servents che implementa il protocollo Gnutella è altamente robusta. Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 5. Messaggi: I servent Gnutella comunicano all’interno della rete per mezzo di messaggi che si dividono in tre tipologie: 1. Multicast 2. Unicast 3. Diretto Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 6. Struttura dei messaggi: Ogni messaggio scambiato in rete deve essere preceduto da un Description Header. I messaggi Multicast e Unicast (che utilizzano l’infrastruttura Gnutella) hanno tutti quanti lo stesso Description Header, che si antempone al messaggio specifico. Nome DescriptorID Payload TTL Hops Payload campo Descriptor Length Byte 0 - 15 16 17 18 19 - 22 Offset • DescriptorID: identificatore del messaggio, generato casualmente • Paylod Descriptor: descrive il tipo di messaggio che segue Es. 0x00 = Ping • TTL: Time to live • Hops: ogni nodo passato incrementa questo valore TTL (O) = TTL(i)+ Hops(i) • Payload Length: rappresenta lunghezza messaggio nel pacchetto. Dimensione massima 4Kb Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 7. Payload Descriptor(1): 0x00  Ping: Usato per attivare la ricerca di host nella rete. Questi messaggi non hanno associato alcun carico e hanno lunghezza 0. Serve per conoscere lo stato della rete: vengono spediti indietro pacchetti Pong 0x01  Pong: Risposta a pacchetto Ping. Questi messaggi sono caratterizzati dai seguenti campi : Nome Port IP adress Number of file Number of campo shared kylobytes shared Byte Offset 0-1 2-5 6-9 10 - 13 • Number of file shared: numero file condivisi • Number of kylobytes shared : dimensione totale file condivisi in Kb Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 8. Payload Descriptor(2): 0x40  Push: Un servert può inviare un Push descriptor se riceve un descrittore QueryHit da un servent che non accetta connessioni in entrata. Nome campo Servent Identifier File Index IP Address Port Byte Offset 0 - 15 16 - 19 20 - 23 24 – 25 • Servent Identifier: a quale servent è indirizzato il messaggio • File Index: codice utilizzato dal server per identificare una risorsa e compare nei record del messaggio QueryHit 0x80  Query: Meccanismo primario per ricerche nella rete distribuita. Se ricerca andata a buon fine, risposta con messaggio QueryHit. Nome campo Minimum Speed Search criteria Byte Offset 0-1 2-… • Minimum Speed: espressa in Kb/s • Search criteria: campo tipo stringa, delimitato dal carattere 0x00, è composto dall’insieme delle parole che devono essere presenti nel file di risposta. Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 9. Payload Descriptor(3): 0x81  QueryHit: Risposta a Query. Il descrittore provvede a fornire le informazioni per acquisire la risorsa voluta. Nome Number of Port IP Address Speed Result Set Servent campo Hits Identifier Byte 0 1-2 3-6 7 – 10 11 - … n – n+16 Offset • Number of Hits: numero di record nel campo Result Set •Speed: velocità espressa in Kb/s • Result set: ogni record è definito nel modo seguente Nome campo File Index File Size File Name Byte Offset 0–3 4-7 8-… • Servent Identifier: identificativo del servent sulla rete, solitamente risultato funzione partendo dall’indirizzo IP Il DescriptorID deve essere uguale a quello del messaggio Query Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 10. Funzionamento(1) : Utilizzo ultrapeer per non congestionare la rete Un servent per connettersi alla rete Gnutella ha bisogno dei seguenti servizi: • LocalHostCache: memorizza i servents della rete Gnutella • GWebCache: sistema distribuito per prima connessione. Server web con indirizzi di servents Operazioni fondamentali protocollo: • BootStrap • Avvio client e caricamento LocalHostCache • Tentativo connessione usando LocalHostCache (invio Ping) • Insuccessio o LocalHostCache vuota  interroga GWebChache • Una volta connesso non interroga più i GWebCache • Ricerca risorsa • Ricerca con Query  Risposta positiva con QueryHit • Ricevuta QueryHit, scarico risorsa tramite http Seminario di Protocolli di Rete Gnutella – AA 2008/2009
  • 11. Funzionamento(2) : • Routing: instradamento traffico • I Pong inviati stesso percorso Ping • QueryHit inviati stesso percorso Query • Push inviati stesso percorso QueryHit • Ping e Query inoltrati a tutti i nodi connessi tranne ai “mittenti” precedenti • Quando si riceve un descriptor con lo stesso Paylod Descriptor e DescriptorID di uno ricevuto precedentemente, bisogna scartarlo e non inoltrarlo
  • 12. Vantaggi VS Svantaggi: Vantaggi: • Nessun server  nessun collo di bottiglia  no dipendenze accesso rete • Non penalmente perseguibile • Compatibile con qualsiasi tipo di file • Non ci sono problemi con firewall • Totalmente freeware Svantaggi: • Per connettersi serve presenza altro utente connesso • Orizzonte limitato • Non scalabile  molto traffico per poche richieste • Si ha difficoltà ad autenticare la fonte da cui provengono i dati Seminario di Protocolli di Rete Gnutella – AA 2008/2009