Gnutella è un network e un protocollo di rete Peer to Peer dedicato alla condivisione di file aperta e che dà vita all'omonima rete.
L'approccio è di tipo Peer to Peer puro, ovvero quello in cui non esiste il ruolo di directory da parte dei server (presente invece in programmi quali Napster o eMule); ogni peer (o nodo equivalente) "conosce" alcuni vicini, facendo sì che le richieste vengano propagate all'interno della comunità sfruttando la relazione di vicinanza. Per ovviare al problema che le richieste continuino a girare in circolo, viene normalmente indicato il numero massimo di "salti" (hop), che una richiesta può fare sui peer contigui a partire dal nodo che l'ha generata prima di essere terminata.