Il documento tratta il protocollo Gnutella, un sistema decentralizzato per la ricerca e la distribuzione di file, dove ogni partecipante agisce sia come client che come server. Vengono analizzate le varie versioni del protocollo, con particolare attenzione alle funzionalità degli ultrapeer, la gestione delle connessioni e l'estensibilità del protocollo. Infine, si discutono il bootstraping, la formattazione degli header e i meccanismi di handshaking tra i nodi della rete.