Title: A Survey on Applications of Peer-to-Peer Systems

Author: Amit Pandey
email:  mailto:apandey@cs.kent.edu, homepage: www.cs.kent.edu/~apandey

Prepared for Prof. Javed I. Khan
Department of Computer Science, Kent State University
Date: November 2004

Abstract: The term “peer-to-peer” (P2P) refers to a class of systems and applications that employ distributed resources to perform a critical function in a decentralized manner. They have wide range of applications and this survey explores some of these applications.

Other Survey's on Internetwork-based Applications
Back to Javed I. Khan's Home Page

Table of Contents:



Peer-to-peer systems are used for applications like content distribution &file sharing, creating virtual supercomputer, providing anonymity to the publisher of document, media streaming, providing lookup service using dynamic hash table(DHT), and many new exciting services in business like electronic market place B2B transactions and creating mobile network using peer-to-peer.

Goal of this survey:

Goal of this survey was to explore different types of applications of peer-to-peer system and brief overview of their features and working. Some of these systems have been fully developed others are still in research.

Classification and Types:

I have classified peer to peer to systems according to their applications type:

Media streaming Anonymity Service Distributed Computing Lookup service Business
PROMISE Freenet SETI@home Chord P2P Mobile network
GnuStream Tarzan Entropia Yappers electronic marketplace
Zigzag Free Haven DataSynapse CAN B2BI

Peer-to-Peer Systems which were looked


Chord is a distributed lookup protocol for efficient location of data items. It is a lookup service. Chord protocol supports just one operation: given a key, it maps the key onto the node. A key is associated with each data item and the key/data item pair is stored at the node to which the key maps.


  1. Decentralized:

  2. Chord is fully decentralized where all nodes are equally important.
  3. Scalability:

  4. The cost of a Chord lookup grows as the log of the number of nodes, O(log N), so even very large systems are feasible.
  5. Availability:

  6. Chord automatically adjusts its internal tables to reflect newly joined nodes as well as node failures, ensuring that, the node responsible for a key can always be found.
  7. Load balance:

  8. Chord acts as a distributed hash function, spreading keys evenly over the nodes Applications of Chord:

Chord can be used to provide foundation for various applications like:

  1. Cooperative Mirroring:

  2. Chord can be used for developing application which can be used for publishing distribution. The distributions can mirrored. The mirroring systems would balance the load across all servers, replicate and cache the data, and ensure authenticity.
  3. Time-shared Storage:

  4. Chord can be used to design application which will make data available when the node is offline. If a person wishes some data to be always available, but their machine is occasionally available, they can offer to store other's data while they are online and, in return for having their data stored elsewhere when they are offline. The data's name can be used as key for identifying the live chord node storing data item at that instant.
  5. Distributed Indexes:

  6. Distributed Indexes can designed using chord for supporting Gnutella or Napster-like keyword search. Key can be derived from keyword, while values could be list of machines offering documents with those keywords.

PROMISE (Peer-to-Peer Media Streaming ):


P2P media streaming is different from general P2P file sharing since it has more stringent resource requirements for real-time media transmission. PROMISE is an application level P2P video streaming system that aggregates simultaneous streams from multiple peer.

It is based on P2P service CollectCast which has a pattern of “one receiver collecting data from multiple senders. Video streaming is traditionally performed by a dedicated entity(media server), CollectCast makes video streaming possible despite limited capacity of peers. CollectCast Provides following functionality:

  1. Matching of a requesting peer with the set of senders most likely to provide the highest quality stream

  2. Dynamic adaptation to network fluctuations and peer failure

  3. Bases decisions on inferred network topology and conditions.

PROMISE takes in to account dynamic nature of network, it is possible that during long streaming session the environment may change: peers may fail or network paths may become congested. During the session, the receiver collects statistics on the loss rate and streaming rate contributed from each sending peer. These statistics are used to update the goodness topology, which is then used to adjust the active set(set of sender).

Advantages of PROMISE:

Many P2P data sharing and distribution systems implicitly assume that a sending peer is capable of supporting one or more receiving peers. However peers are heterogeneous in their capability and willingness to contribute resources to other peers. PROMISE solves the problem of selecting multiple supplying peers (senders) for a receiver, based on peer heterogeneity as well as network topology and conditions.

Constructing Electronic Marketplaces using Peer-to-Peer Technology

File-sharing systems like Napster have been used for the exchange of digital goods. In contrast to file-sharing systems, the decentralized electronic marketplace would emphasize the decentralized management of transactions instead of the delivery of the goods themselves, it can be imagined as a “Napster for transactions”. This peer-to-peer system would be used for files that contain parts of a transaction e.g. a demand document, a supply document, or an invoice document instead of for the exchange of audio and video files. Motive: It would allow the management of transactions without the presence of a middleman, leading to lower prices of the traded goods.

Every market participant is represented by a peer software running on the his/her computer. Transaction documents are delivered directly from the consumer to the supplier and vice versa without any middleman. In normal client-server model the the intermediary maintains a central server in order to match demand and supply, manage the suppliers’ catalogues and provide information to consumers for a fee.

A central index server provides metadata about the peers. It can be used to accelerate search processes. For security reasons, central index server is needed for authentication and for the storage of data about the users (e.g. master data or account balances) which must not be manipulated by the owners of the peers.

Fig. 2: Information flows of a filesharing transaction

a) The consumer peer asks the index server for suppliers who are offering the good
b) The index server responds with a list of appropriate supplier peers.
c) The consumer peer sends the request to the appropriate supplier peers.
d) The supplier peers generate offers according to the consumer peer’s demand and send them back to the consumer peer.
e) The consumer peer collects all offers and compares them in order to find at least one potential supplier for further negotiation.

Features :

  1. Performance and scalability:

  2. Central index server helps in faster search makes the system scalable, unlike Gnutella the performance does not suffer due to addition of nodes,.
  3. Based on open standard:

  4. It uses XML for information exchange. XML provides useful mechanisms for the integration legacy systems.
  5. Platform Independence:

  6. To ensure that everybody can join the peer to peer network the software can be Designed in language like java.

    Free Haven

    The Free Haven Project aims to deploy a system for distributed, anonymous, persistent data storage which is robust against attempts by powerful adversaries to find and destroy any stored data. It tries to assure anonymity, server accountability, and persistent storage for data independent of its popularity, all at the same time. Main features:

    1. Anonymity: It tries to meet this goal for all parties: the publishers that insert documents, the readers that retrieve documents, and the servers that store documents.

    2. Accountability: It considers methods for achieving accountability without sacrificing anonymity.

    3. Persistence: The publisher of a document not the servers holding the document determines its lifetime.

    4. Flexibility: The system functions smoothly as peers dynamically join or leave.

    Free Haven offers a community of servers called the servnet. Despite the name, all servers count the same, and within the servnet There are no "clients" in the old client/server sense; the closest approximation are users looking for files and potential publishers. Users query the entire servnet at once, not any single server in particular. Potential publishers do convince a single server to publish a document, but the actual publishing of a document is done by a server itself in a peer-to-peer fashion. All of these entities--server, reader, and publisher--make up the Free Haven players. Due to pseudonymity, nobody knows where any server is located--including the one they use as their entry point to the system. Users query the system via broadcast. Servers don't have to accept just any document that publishers upload to them. That would permit selfish or malicious people to fill up the available disk space. Instead, servers form contracts to store each other's material for a certain period of time. Successfully fulfilling a contract increases a server's reputation and thus its ability to store some of its own data on other servers. This gives an incentive for each server to behave well, as long as cheating servers can be identified.

    P2P Publisher Reader Server Document
    Freenet Yes Yes No Yes
    Free Haven Yes Yes Yes Yes
    Mojo Nation Yes Yes No Yes

    Distributed computing:



    SETI (Search for Extraterrestrial Intelligence) is a collection of research projects aimed at discovering alien civilizations. SETI@home is a scientific research project aimed at building a huge virtual computer based on the aggregation of the computer power offered from internet- connected computers during their idle periods..


    The project uses two major components: the database server and the client. They are provided by several different platforms, such as Windows, Linux, Solaris, and HP-UX. The client-side software is available as a screen saver module (although stand-alone operation is available) and is not linked to any third-party technology.

    Fault resilience:
    The SETI@home client resilience relieson a checkpointing mechanism, where the resumable dataset is saved on the hard disk every ten minutes. This means that each time a SETI@home computation is interrupted (by the user or a system failure), the computation will resume at the last saved dataset and proceed from there.

    The SETI@home project strongly relies on its server to distribute jobs to each participating peer and to collect results after processing is done.

    Fig. SETI@home


    Distributed computing using P2P is used in different applications like medical research such as AIDS@home. Entropia is being used for human genome project, analysis of protein structure etc. They provide high speed computation with a very low cost.



    JXTA technology enables diverse devices and networks to interoperate. JXTA technology provides complete infrastructure and enables developers to more quickly and easily create P2P services.


    1. Interoperability:

    2. It enables inter-connected peers to easily locate each other, participate in community based activities and offer services to each.
    3. Platform independence:

    4. It is designed to be independent from programming languages (such as C or Java), system platforms (such as Microsoft Windows and UNIX operating systems), and networking platforms (such as TCP/IP or Bluetooth).
    5. Ubiquity:

    6. It is designed to be implement able on every device with a digital heartbeat, including appliances, desktop computers, and storage systems.
    7. Working:

    8. JXTA uses asynchronous uni-directional communication channels, called pipes, for sending and receiving messages. All data interchange in JXTA is in the form of XML formatted documents.
    9. Applications:

    10. Companies are exploring JXTA technology solutions for:
      • Improving wireless access to the Web
      • Enabling creation of instant, ad hoc wireless communities
      • Reducing the cost and complexity of enterprise data systems
      • Improving resource utilization and return on capital equipment investment

      Comparison of different P2P systems:

      Peer-to-peer systems Model Applications Alternative Business model Research suggestions or Implemented already
      Chord Open-source Lookup service Yappers,CAN Academic Implemented
      PROMISE Open-source Media streaming GNUStream,zigzag Academic Not Implemented
      FreeHaven Open-source Anonymity service Tarzan,FreeNet MIT research In research
      Electronic Marketplace Open-source Electronic transaction none Academic Not Implemented
      SETI@home Open-source Distributed computing AIDS@home,Cancer@home Ads on screen saver Implemented
      JXTA open-source proprietary extensions File sharing,Email, messaging .NET,My services Common P2p platform Implemented


      In this survey , different P2P systems were surveyed . P2P systems were categorized based on their application. Then six cases were considered , there features, applications and brief working were explored. Finally they were compared based on different parameters.


      P2P is an important technology and has wide range of applications not just file-sharing. It allows to create virtual supercomputer with very high speed at a fraction of actual cost which are used to solve many intricate problems. Some new applications like electronic marketplace are coming up, they are still in research. P2P provide scalability, anonymity, decentralization. Platform like JXTA maybe widely deployed in future which will enable adoption of many P2P system.


      Reasearch paper:

      1. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
        Ion Stoica_, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan

      2. PROMISE: Peer-to-Peer Media Streaming Using CollectCast
        Mohamed Hefeeda, Ahsan Habib, Boyan Botev, Dongyan Xu, Bharat Bhargava

      3. Constructing Electronic Marketplaces using Peer-to-Peer Technology
        Nick Gehrke, Matthias Schumann

        Xuxian Jiang Yu Dong Dongyan Xu Bharat Bhargava

      5. Peer-to-Peer Mobile Network Architecture
        Philippe Charas

      6. http://www.jxta.org/docs/JXTA-Exec-Brief.pdf

      7. http://www.hpl.hp.com/techreports/2002/HPL-2002-57.pdf

      Research Groups:

      1. http://www.openp2p.com/

      2. JXTA.org

      Other relevant links:

      1. http://www.pdos.lcs.mit.edu/chord/

      2. http://setiathome.ssl.berkeley.edu/


      This survey is based on research publications found in ACM Digital Library as well as white papers from JXTA and SETI@home. I had used keywords: applications of peer-to-peer, distributed computing using peer-to-peer, search in peer-to-peer. I also went through the research groups like JXTA, and various research papers published by MIT research groups. I also looked into some of the detailed report like the one at HP site which has given comprehensive information about Peer-to-peer.