Abstract:One of the most important features for a peer-to-peer (P2P) distributed system is to share information and services among nodes with equivalent capabilities and responsibilities by pooling their resources together. Nowadays, most of the existing P2P systems such as Napster and Gnutella only provide some kinds of coarse granularity information sharing without taking account of the content of the file. And, typically nodes (peers) are defined statically. In addition, there is no mechanism to support the join of nodes with temporary network addresses. In this paper, a prototyping P2P system, BestPeer is presented. The BestPeer is unique in several ways. Firstly, it combines the power of mobile agents into P2P systems to perform operations at peers?sites. Secondly, it is self-configurable. A node can dynamically select the set of peers with which it can communicate directly based on some optimization criterion. Thirdly, the BestPeer provides a location independent global named lookup server (LIGLO) to identify peers with dynamic (or unpredictable) IP addresses. The BestPeer is evaluated on a PC cluster consisting of 32 Pentium II running Java-based storage manager. The experimental results show that the BestPeer provides excellent performance compared with traditional non-configurable models. Further experimental study reveals its superiority over Gnutella抯 protocol.