Abstract
Unstructured P2P systems rely on a certain kind of flooding to discover resources. A popular unstructured P2P system, Gnutella, uses the blind flooding which causes a large amount of network traffic due to redundant messages. The recent statistics results concluded that the total traffic introduced by a 50,000-node Gnutella network is roughly 1 Gbit per second. There are thus several research works on improving search efficiency (including the reduction of search network traffic) for unstructured P2P systems. However, previous studies do not address issues such as quality of search results. In this thesis, we propose a multiple tree-like overlay structure for resource discovery in unstructured P2P systems. We exploit the heterogeneity of peers in each tree-like cluster by connecting peers with more capacity closer to the root of the tree. Based on our structure, the traffic overhead caused by pure flooding can be reduced considerably. We also address the application-specific issue in our system by tailoring each cluster according to users’ needs. We implement our system with Java v1.4.2 and validate the correctness of our implementation using prototype experiments. The experimental results show that peers can rapidly join our system; the system is robust even if peers arbitrarily join or leave.