Peer-to-peer (P2P) technology is emerging as a new model to organize distributed systems for file sharing, distributed computing, system integration, or information search. However, P2P is not a new idea for network communication. In an earlier age of the Internet, many network systems depended on P2P technology. Usenet and the Domain Name System (DNS) were early examples of P2P based systems. However, recent Usenet departs from pure P2P by providing only selective Newsgroups and messages, because the Internet Service Provider (ISP) does not serve all Newsgroups, due to the huge volume of News messages. The newer Freenet restores the original P2P architecture. It is designed to protect itself from censorship using encrypted files and "route-through" data communication. It serves a full list and the server cannot block a particular Newsgroup. DNS is a mixed form of P2P and a hierarchical model. Searching a particular name is referred from lower level to higher level name servers. The name server has the role of server as well as client.
1. Napster
![]() |
| Figure 1. Napster Architecture |
2. Gnutella
![]() |
| Figure 2. Gnutella Architecture |
3. Supernode
![]() |
| Figure 3. Fasttrack Architecture |
4. JXTA
JXTA is the first open, platform and language independent protocol
for general P2P communication and collaboration between network devices.
JXTA makes it possible to organize a virtual network in which heterogeneous
peers can share files, communicate with each other, and collaborate on top of the JXTA protocol.
A unique JXTA ID is allocated to each network resource. The JXTA ID is not related to the Internet Protocol (IP) address, and the ID is not changed even if IP addresses are dynamically allocated. Any network entity that executes the JXTA protocols is called a peer. Peers may be not only computers but also network devices. Each peer has network functionalities that are "independent and asynchronous" from other peers. A peer endpoint links a peer. Several peer endpoints, which represent various network connections, can reach the same peer. A group of peers that are interested in the same category can form a peer group. A peer group is identified with an ID for the group. Peers in the different domains, possibly separated by a firewall or Network Address Translation (NAT), can belong to the same group. A peer is allowed to have membership of multiple peer groups.
Messages are used to communicate between JXTA peers. An ordered sequence of named and typed elements forms a message. There are two formats for the message---XML and binary---but only a binary format is used for the physical transfer. The messages are transferred through pipes, which is the JXTA virtual abstraction for a network connection. There are three kinds of pipe connections---a point-to-point pipe, a propagate pipe, and a secure unicast pipe. A point-to-point pipe is a one-to-one connection. A propagate pipe provides one-to-many connections. A secure pipe is a point-to-point communication through a secure network channel. All the pipe operations are based on "asynchronous and unidirectional" communications. Bi-directional communications are provided on top of the pipe service. Multicasting may be used in the propagate pipe.
An advertisement is an XML-based metadata script, which describes JXTA network resources---peer, peer group, pipe, service, and other core resources. The JXTA resolver is a generic object discovery to resolve any kind of information used in typical distributed systems. All actions of resolution are integrated into the discovery of advertisements. The advertisement search mechanism depends on the policy of the application, though JXTA protocol provides a substitutable protocol framework for resolution. The resolver service includes query send and response, query propagation, and security functions---authentication and verification of credentials. Each advertisement has an expiration time, which is extensible.
The Rendezvous super-peer is the optional but default policy model for resolution in a JXTA network. The Rendezvous peer is the same as other peers but has an additional cache of advertisement indexes. Through the Shared Resource Distributed Index (SRDI) service, non-rendezvous (edge) peers can publish their advertisement indexes on the rendezvous peers. The physical location of a peer does not affect the qualification of a rendezvous peer. When a peer queries an advertisement, it sends a request to its rendezvous peer. If the rendezvous peer does not have the index of the query, it propagates the query to the next rendezvous. However, from JXTA version 2.0, the propagation is transferred only among the rendezvous peers.