EPITELLA : Improving the Gnutella Search Algorithm through Epidemic Spreading Models for Complex Networks

Search algorithms in unstructured P2P networks such as Gnutella use flooding-based techniques for communication and, as a consequence, they produce high message overhead. More dynamic algorithms such as Gnutella’s Dynamic Query Protocol take into account the user’s desired number of results and network topology properties to increase scalability. However, these algorithms only work well for popular files and often fail to locate rare content. In this paper, we introduce EPITELLA, an enhanced Gnutella which uses a search algorithm based on epidemicstyle information dissemination techniques, that shows good performance in finding both rare and popular files. It exploits the structure of the underlying network in order to maximise its search horizon and minimise the number of needed search messages. The presented simulation results show that EPITELLA is more exhaustive in finding rare files and produces less overhead in finding popular files, compared to Gnutella. 1 Motivation and Background Peer-to-peer (P2P) systems have attracted a great deal of attention in recent years. While what appeals to users is the possibility of unlimited sharing and exchange of files, P2P systems also attract the research community due to the challenges that their decentraliined structure imposes. Much research has been carried out in the area of topology characteristics and measurements, and the development of faster and better search algorithms. P2P networks can be mainly subdivided in two categories: unstructured and structured. In unstructured P2P there is no control over locations of files in the network. Examples of unstructured networks are Gnutella [1], and FastTrack to which Kazaa connects to [5]. The Gnutella P2P network [2], with a user base of over 2.2 million users in March 2006 [5], is one of the top three popular P2P file sharing applications, primarily used to exchange music, movies and software. Locating items in a network is an important part in the operation of P2P networks. When a user wants to search for a file, a QUERY message containing the user specified search string is sent to every node the peer is connected to. A node receiving the QUERY message matches the search string against the locally stored file name and broadcasts the message further. If there is a match, the node answers with a QUERYHIT message. A QUERYHIT message contains information necessary to download the file, such as the number of hits, the IP address of the responding node and the download speed. Before the introduction of the Gnutella protocol v0.6 in 2002 [2], every node in the network played the role of an equal peer. This resulted in the overloading of peers with slow Internet connection and, generally, in large message overhead, as each node had to forward every message to every neighbour. These scalability problems were improved with the introduction of the two-tier overlay architecture. With the introduction of the two-tier overlay architecture, the Gnutella developer community [1] implemented specialised roles for peers in the network. In this model, a small subset of nodes become ultrapeers, responsible for routing all messages and for shielding the leaf peers that are connected to them from the network traffic. To become an ultrapeer, a node must provide sufficient bandwidth and uptime and must not be firewalled. Ultrapeers are connected, in average, to 30 other peers [12, 14], while leaf peers hold only a small number of connections (≤ 3) to ultrapeers. Leaf peers, on the other hand, concentrate on providing files. Information about the files the nodes share are uploaded to the ultrapeer. An ultrapeer forwards only those QUERIES to its leaf pears that have matching files. The introduction of the two-tier topology was the first step to improve the scalability and performance of Gnutella by reducing search message overhead. In order to improve the Gnutella performance, the Dynamic Query Protocol (DQP) was introduced to limit the flooding of query messages. The Dynamic Query Protocol reduces message overhead by