ABSTRACT

There has been a growing interest in peer-to-peer networks since the initial success of some very popular file-sharing applications such as Napster53 and Gnutella.15 A P2P network is a distributed system in which peers employ distributed resources to perform a critical function in a decentralized fashion. Nodes in a P2P network normally play equal roles; therefore, these nodes are also called peers. A typical P2P network often includes computers in unrelated administrative domains. These P2P participants join or

leave the P2P system frequently; hence, P2P networks are dynamic in nature. P2P networks are overlay networks, where nodes are end systems in the Internet and maintain information about a set of other nodes (called neighbors) in the P2P layer. These nodes form a virtual overlay network on top of the Internet. Each link in a P2P overlay corresponds to a sequence of physical links in the underlying network. Examples of P2P applications are distributed file-sharing systems, event notification services, and chat services.1,3-5

P2P networks offer the following benefits:1,3

They do not require any special administration or financial arrangements. They are self-organized and adaptive. Peers can come and go freely. P2P systems handle these

events automatically. They can gather and harness the tremendous computation and storage resources on computers

across the Internet. They are distributed and decentralized. Therefore, they are potentially fault tolerant and load

balanced.