En Gnutellabruker kjører en Gnutellaklient (A), som først må lokalisere en nabo (B). Her må A kontakte en sentral server som kan anbefale en aktiv bruker som er rimelig nær A. Sålenge A kjenner til minst en nabo, kan den arbeide mot Gnutellanettet. Serveren vil ofte gi node A en liste over naboer, slik at A får et nabolag. Klienten hos node A lar brukeren oppgi et søkeuttrykk, og sender en QUERY til As naboer. Enhver som mottar en QUERY og har filer som passer med spørsmålet, vil svare med et QUERY HIT direkte til den som spør (i eksempelet, er dette A). Samtidig videresender de QUERY videre til sine naboer. Et QUERY vil således gå et visst antall hopp før det dør ut, basert på en grense som node A har satt. Noder som tidligere mottok et gitt QUERY vil også la være å videresende meldingen. Denne form for videresending kalles flooding, og oppfattes som en lite ressursvennlig måte, men den vil også medføre at alle til slutt vil motta et gitt QUERY.