From P2P to Web Services and Grids: Peers in a Client/Server World

Chapter 6: Gnutella

Overview

Gnutella defined and popularised modern P2P technology through its truly decentralized design and implementation. It arrived right around the time when centrally organized solutions were being targeted and provided a mechanism that offered a much more tolerant structure, where no single entity could be isolated to bring down the entire network. The Gnutella network consists of thousands of information providers, which are not indexed in a central place. Therefore, to shut down such the network is not trivial since a vast number of peers (i.e., many hundreds) would have to be eliminated.

This chapter provides an overview of the original 0.4 version of the Gnutella network. It combines a conceptual overview and a user-friendly rewrite of the Gnutella protocol specification [47]. An historical perspective is provided, along with usage scenarios, which include joining and searching the Gnutella network. This is followed by a detailed account of its protocol specification that provides the fundamental information required for a competent programmer to build a Gnutella network from scratch.

6.1 History of Gnutella

Gnutella was born sometime in early March 2000. Justin Frankel and Tom Pepper, working under the dot-com pen name of Gnullsoft [9], are Gnutella's inventors. Their last life-changing product, Winamp [7], was the beginning of a company called NullSoft [8], which was purchased by America Online (AOL) in 1999. Winamp was developed for playing music files. According to Tom Pepper, Gnutella was developed primarily to share cooking recipes.

Gnutella was developed in just fourteen days by two guys without...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Protocol Stack Software
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.