Recently, there has been a growing interest in peer-to-peer networks, sparked by the popularity of file sharing applications such as Napster and Gnutella. A typical characteristic of a peer-to-peer system is that all the nodes are equal participants in the network. Gnutella is an example of a 'Pure' peer-to-peer system, being fully distributed where all nodes are equal and no special nodes with facilitating or administrative roles are required. Due to its fully decentralized nature, Gnutella implements its services like searching and peer discovery via application-level broadcast. For this, messages are routed through Gnutella's overlay network by means of flooding. The high cost of flooding limits the scalability of fully distributed peer-to-peer systems like Gnutella.