摘要

Since existing interest-clustering based P2P topological construction algorithms are usually based on the interests extracted from nodes' shared files, they suffer from two problems that they are unable to make effective use of the free riders who account for the major part in P2P networks and they cannot effectively tackle the nodes' interest-drifting problem. To address the problems, this paper makes a node connect to two interest clusters, one cluster is mainly used to serve the node (we call it the node's needed-cluster), and another cluster is served by the node (we call it the node's provided-cluster). First, we initially have a node join its expected interest cluster (i.e. the needed-cluster) by using its virtual interest so as to solve the problem of how to make a free rider or a node whose current interest is different from that extracted from its shared files join the network. Also, we have a node who provides shared files join another interest cluster (i.e. the provided-cluster) based on the interest extracted from its shared files so as to make the node better serve the nodes in its provided-cluster. Second, we propose a retrieval algorithm based on the nodes' needed-clusters and provided-clusters. We also discuss how to adjust a node's interest clusters and how to encourage the free riders to share their files. The simulation results show that our strategy could largely improve the retrieval efficiency and effectively encourage the free riders to share their resources.