How a Gnutella client finds a song
Given that there is no central server to store the names and locations of all the available files, how does the Gnutella software on your machine find a song on someone else’s machine? The process goes something like this:
- You type in the name of the song or file you want to find.
- Your machine knows of at least one other Gnutella machine somewhere on the network.
When a user connects using any Gnutella client, it connects to a server which essentially has ip of other Gnutella users. Since they just had only ip they can’t be legally prosecuted like Napster.
It knows this because you’ve told it the location of the machine by typing in the IP address, or because the software has an IP address for a Gnutella host pre-programmed in. Your machine sends the song name you typed in to the Gnutella machine(s) it knows about.
- These machines search to see if the requested file is on the local hard disk. If so, they send back the file name (and machine IP address) to the requester.
- At the same time, all of these machines send out the same request to the machines they are connected to, and the process repeats.
- A request has a TTL (time to live) limit placed on it. A request might go out six or seven levels deep before it stops propagating. If each machine on the Gnutella network knows of just four others, that means that your request might reach 8,000 or so other machines on the Gnutella network if it propagates seven levels deep.