Next: Gnutella
Up: Examples on different services
Previous: Centralized peer-to-peer: Napster
  Contents
  Index
Decentralized peer-to-peer: Gnutella
The performance of Napster is superior to that of Gnutella because
a central directory server is available. Since legal matters have
basically stopped the use of Napster another approach was needed.
Both Napster and Gnutella have been used to distribute multimedia
illegally over the Internet, but since there is
no central point of connectivity in Gnutella it is much harder to
shut down.
A host in a Gnutella network is commonly referred to as a
servent (note the spelling). This name comes from combining
the words server and client. Figure fig:gnutellasession
shows when a servent wishes to locate a file and download it. The
figure is somewhat simplified since it does not show the actual
download. Three hosts reply to the query and the host issuing the
query can contact either one, or all of them if it supports
swarm downloading. The following steps occur:
Illustration 2.3:
Gnutella servent performing a query
 |
- The servent contacts its neighbours in the
Gnutella network and sends the
query to these hosts.
- The neighbours process the query to see if they
have anything that matches the query. If they have, they
send a response.
- The neighbours send the query to their other
neighbours.
- These neighbours-of-neighbours repeat the same steps
performed by the neighbours.
- After a certain number of steps the query stops
propagating through the network, due to the expiration of a
TTL (time to live) counter.
- If the initial servent receives responses it can
connect to the host storing the file and request the
file using a HTTP GET command.
- The host storing the file accepts the connection
and responds with the requested file.
Next: Gnutella
Up: Examples on different services
Previous: Centralized peer-to-peer: Napster
  Contents
  Index
Marcus Bergner
2003-06-10