
6 Chapter 1: An Introduction to the Peer-To-Peer Programming Model
When you send a request or search for a particular song, the central Napster server looks for the song in
the indexes of the users currently online. The Napster server then displays the list of the currently
connected users whose collections contain the song you request.
You can then click any name from the list and open a direct link with that user. The central server
connects you to the user and gets out of the way. The file is downloaded from one user to the other. The
actual file is never stored on the Napster server.
Napster does not sell, store, or transfer music files. It is only a platform to enable you to find a file that is
requested by the peer. The Napster server enables you to search music available on other PCs and allows
direct traffic among users. The Napster central server records its registered users and the music files
available on their hard disks. This record is updated each time you log in. When you download and install
the Napster program on your PC, it asks you which folders you want to share with other users.
Gnutella
In 1999, Napster forced serious thinkers to reconsider what network is and how Napster had redefined it
by stretching the rules of the information technology industry. In spite of criticism from various copyright
lawyers and music industries, Napster’s popularity never diminished but kept increasing. Inspired by the
way Napster changed the rules, another P2P-based mode, Gnutella, entered the market. It went one step
beyond Napster. Napster was the catch phrase of the late ’90s, but this century belongs to Gnutella.
Gnutella works more or less like a pure P2P model. Gnutella is downloaded and installed on the
computer. Once the computer on which you have installed Gnutella, is connected with the network, a
message is sent to a computer, which passes it to the other computers, which are also connected to the
Gnutella network via the Internet, to let them know about your presence. Message forwarding works this
way: You get connected on the network and inform a computer, which, in turn, informs 10 others. These
10 computers inform 9 more computers, and so on.
Gnutella is a client-based software that has a file-sharing service and a mini search engine. Once Gnutella
is installed on your local machine, you can serve the requests of other users, acting somewhat like a
server and, on the other hand, can find the desired content by sending requests on the Gnutella network
for locating the user who has the requested content. You can directly download the content from its
machine. Searching on Gnutella is almost like working with any other search engine. In the same way,
Gnutella works on the network processes and shows the client what has been requested. Searching on
Gnutella is more convenient and promising, as the search occurs directly on Gnutella users’ computers
without involving any centralized server search. One limitation is that if the load on the server increases
or the server slows down due to some technical problem, all services slow down or come to a halt.
Though the searching service in Gnutella is free, this also has some limitations. From the data seeker’s
point of view, there is no certainty of the direction in which the request is proceeding, as many data
providers are on the network, making it impossible for the client to discover who fulfills the request. This
information may be needed for future references. From the data provider’s point of view, there is no
guarantee that you hear all the queries.
But in terms of its file-sharing system, Gnutella certainly maintains an edge over other P2P models.
Napster encourages its users to share music files via the centralized server solely. Gnutella facilitates not
only your ability to share music files but also to share all kinds of files, from MP3 to executable files,
without a server.
Some key terms often used in Gnutella networking are the following:
♦ Servent: Because in Gnutella architecture users can be either clients or service providers,
depending on the situation, they are collectively referred to as servents.
♦ Horizon: A horizon refers to a group of servents. A horizon does not represent the entire Gnutella
network but is itself divided into various horizons.