Hi, I searched something easier...
here is a grafic animation that shows the princip of gnutella:
http://www.limewire.com/gnutella_flash.html
Understanding this you see your client is used to transfer the gnutella backbone traffic (you are part of the network!): Spreading search queries and routing query hits or push requests.... only the file transfar is done direct from peer to peer.
Hope it helps, Moak