Peer-to-peer
From Wikipedia, the free encyclopedia
| This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (June 2009) |
Peer-to-peer (P2P) networking is a method of delivering computer network services in which the participants share a portion of their own resources, such as processing power, disk storage, network bandwidth, printing facilities. Such resources are provided directly to other participants without intermediary network hosts or servers.[1] Peer-to-peer network participants are providers and consumers of network services simultaneously, which contrasts with other service models, such as traditional client-server computing where the clients only consume the server's resources.
[edit] Generalities
P2P networks are typically used for connecting nodes via largely ad hoc connections. Such networks are useful for many purposes. Sharing content files (see file sharing) containing audio, video, data or anything in digital format is very common, and real time data, such as telephony traffic, is also passed using P2P technology.
A pure P2P network does not have the notion of clients or servers but only equal peer nodes that simultaneously function as both "clients" and "servers" to the other nodes on the network. This model of network arrangement differs from the client-server model where communication is usually to and from a central server. A typical example of a file transfer that is not P2P is an FTP server where the client and server programs are quite distinct: the clients initiate the download/uploads, and the servers react to and satisfy these requests.
In contrast to the above discussed pure P2P network, an example of a distributed discussion system that also adopts a client-server model is the Usenet news server system, in which news servers communicate with one another to propagate Usenet news articles over the entire Usenet network. Particularly in the earlier days of Usenet, UUCP was used to extend even beyond the Internet. However, the news server system acted in a client-server form when individual users accessed a local news server to read and post articles. The same consideration applies to SMTP email in the sense that the core email relaying network of Mail transfer agents follows a P2P model while the periphery of e-mail clients and their direct connections is client-server. Tim Berners-Lee's vision for the World Wide Web, as evidenced by his WorldWideWeb editor/browser, was close to a P2P network in that it assumed each user of the web would be an active editor and contributor creating and linking content to form an interlinked "web" of links. This contrasts to the more broadcasting-like structure of the web as it has developed over the years.
Some networks and channels such as Napster, OpenNAP and IRC serving channels use a client-server structure for some tasks (e.g. searching) and a P2P structure for others. Networks such as Gnutella or Freenet use a P2P structure for all purposes, and are sometimes referred to as true P2P networks, although Gnutella is greatly facilitated by directory servers that inform peers of the network addresses of other peers.
P2P architecture embodies one of the key technical concepts of the Internet, described in the first Internet Request for Comments, RFC 1, "Host Software" dated April 7, 1969. More recently, the concept has achieved recognition in the general public in the context of the absence of central indexing servers in architectures used for exchanging multimedia files.
The concept of P2P is increasingly evolving to an expanded usage as the relational dynamic active in distributed networks, i.e. not just computer to computer, but human to human. Yochai Benkler has coined the term commons-based peer production to denote collaborative projects such as free software. Associated with peer production are the concepts of:
- peer governance (referring to the manner in which peer production projects are managed)
- peer property (referring to the new type of licenses which recognize individual authorship but not exclusive property rights, such as the GNU General Public License and the Creative Commons licenses)
- peer distribution (or the manner in which products, particularly peer-produced products, are distributed)
[edit] Classifications of P2P networks
In 'pure' P2P networks:[citation needed] Peers act as equals, merging the roles of clients and server. In such networks, there is no central server managing the network, neither is there a central router. Some examples of pure P2P application layer networks designed for file sharing are Gnutella (pre v0.4) and Freenet.
There also exist countless hybrid[citation needed] P2P systems, which distribute their clients into two groups: client nodes and overlay nodes. Typically, each client is able to act according to the momentary need of the network and can become part of the respective overlay network used to coordinate the P2P structure. This devision between normal and 'better' nodes is done in order to address the scaling problems on early pure P2P networks. Examples for such networks are for example Gnutella (after v0.4) or G2.
An other type of hybrid P2P network are networks using on the one hand central server(s) or bootstrapping mechanisms, on the other hand P2P for their data transfers. These networks are in general called 'centralized networks' because of their lack of ability to work without their central server(s). An example for such a network is the eDonkey network (eD2k).
[edit] Advantages and weaknesses of P2P networks
In P2P networks, all clients provide resources, which may include bandwidth, storage space, and computing power. As nodes arrive and demand on the system increases, the total capacity of the system also increases. This is not true of a client-server architecture with a fixed set of servers, in which adding more clients could mean slower data transfer for all users.[citation needed]
The distributed nature of P2P networks also increases robustness,[citation needed] and—in pure P2P systems—by enabling peers to find the data without relying on a centralized index server[citation needed]. In the latter case, there is no single point of failure in the system.[citation needed]
As with most network systems, unsecure and unsigned codes may allow remote access to files on a victim's computer or even compromise the entire network.[citation needed] In the past this has happened for example to the FastTrack network when anti P2P companies managed to introduce faked chunks into downloads and downloaded files (mostly mp3 files) were unusable afterwards or even contained malicious code.[citation needed] Consequently, the P2P networks of today have seen an enormous increase of their security and file verification mechanisms. Modern hashing, chunk verification and different encryption methods have made most networks resistant to almost any type of attack, even when major parts of the respective network have been replaced by faked or nonfunctional hosts.
Usually Internet providers (ISPs) don't welcome P2P users in their networks. The reason is that P2P clients tend to increase the traffic. Compared to Web browsing, e-mail or most other uses of the internet, where data is only transferred in short intervals and relative small quantities, P2P consists usually in a relatively heavy use of the internet connection due to the ongoing file transfers and swarm/network coordination packets.
A possible solution to this is called P2P caching, where a ISP stores the part of files most accessed by P2P clients in other to save access to the Internet.
[edit] Unstructured and structured P2P networks
The P2P overlay network consists of all the participating peers as network nodes. There are links between any two nodes that know each other: i.e. if a participating peer knows the location of another peer in the P2P network, then there is a directed edge from the former node to the latter in the overlay network. Based on how the nodes in the overlay network are linked to each other, we can classify the P2P networks as unstructured or structured.
An unstructured P2P network is formed when the overlay links are established arbitrarily. Such networks can be easily constructed as a new peer that wants to join the network can copy existing links of another node and then form its own links over time. In an unstructured P2P network, if a peer wants to find a desired piece of data in the network, the query has to be flooded through the network to find as many peers as possible that share the data. The main disadvantage with such networks is that the queries may not always be resolved. Popular content is likely to be available at several peers and any peer searching for it is likely to find the same thing. But if a peer is looking for rare data shared by only a few other peers, then it is highly unlikely that search will be successful. Since there is no correlation between a peer and the content managed by it, there is no guarantee that flooding will find a peer that has the desired data. Flooding also causes a high amount of signaling traffic in the network and hence such networks typically have very poor search efficiency. Most of the popular P2P networks are unstructured.
Structured P2P network employ a globally consistent protocol to ensure that any node can efficiently route a search to some peer that has the desired file, even if the file is extremely rare. Such a guarantee necessitates a more structured pattern of overlay links. By far the most common type of structured P2P network is the distributed hash table (DHT), in which a variant of consistent hashing is used to assign ownership of each file to a particular peer, in a way analogous to a traditional hash table's assignment of each key to a particular array slot.
[edit] Searching peer-to-peer networks
For the networks to be useful for applications, some way of finding the resources that the nodes provide must be employed.
The oldest peer-to-peer networks such as USENET used flooding to try to duplicate the resources (in this case the USENET postings) across the entire network, or at least to the subset that were configured to carry that type of information. This has the advantage that the search need only be done locally at each node. However, this typically causes a very large traffic flow between nodes that increases as the number of network participants grows.
Later networks have tried to flood distribute only search requests, and once the node(s) with the data are located, a connection is made to access it from the node(s). This creates traffic that also scales with network participants, however although search requests are usually much shorter, they are also more frequent.
More modern networks try to minimise the number of nodes that need to know about a particular search or resource, and algorithms such as distributed hash tables are employed.
[edit] Distributed hash tables
Distributed hash tables (DHTs) are a class of decentralized distributed systems that provide a lookup service similar to a hash table: (key, value) pairs are stored in the DHT, and any participating node can efficiently retrieve the value associated with a given key. Responsibility for maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption. This allows DHTs to scale to extremely large numbers of nodes and to handle continual node arrivals, departures, and failures.
DHTs form an infrastructure that can be used to build peer-to-peer networks. Notable distributed networks that use DHTs include BitTorrent's distributed tracker, the Kad network, the Storm botnet, YaCy, and the Coral Content Distribution Network.
[edit] Computer science perspective
| This article may contain original research or unverified claims. Please improve the article by adding references. See the talk page for details. (June 2009) |
Technically, a completely pure P2P application implements peering protocols where all nodes provide identical network services to each other. Such pure peer applications and networks are rare. Most networks and applications described as P2P actually contain or rely on some non-peer elements, such as DNS. Also, real world applications often use multiple protocols and give different client and server facilities, and peer simultaneously, or over time. Completely decentralized networks of peers have been in use for many years: two examples are Usenet (1979) and WWIVnet (1987).
Many P2P systems use stronger peers (super-peers, super-nodes) as servers and client-peers are connected in a star-like fashion to a single super-peer.
Sun added classes to the Java technology to speed the development of P2P applications quickly in the late 1990s so that developers could build decentralized real time chat applets and applications before Instant Messaging networks were popular. This effort is now being continued with the JXTA project.
P2P systems and applications have attracted a great deal of attention from computer science research; some prominent research projects include the Chord project, the PAST storage utility, the P-Grid, a self-organized and emerging overlay network and the CoopNet content distribution system (see below for external links related to these projects).
Distributed Hash Table (DHT) networks have been widely utilized for accomplishing efficient resource discovery [2][3] for Grid computing systems, as it aids in resource management and scheduling of applications. Resource discovery activity involve searching for the appropriate resource types that match the user’s application requirements. Recent advances in the domain of decentralized resource discovery have been based on extending the existing DHTs with the capability of multi-dimensional data organization and query routing. Majority of the efforts have looked at embedding spatial database indices such as the Space Filling Curves (SFCs) including the Hilbert curves, Z-curves, k-d tree, MX-CIF Quad tree and R*-tree for managing, routing, and indexing of complex Grid resource query objects over DHT networks. Spatial indices are well suited for handling the complexity of Grid resource queries. Although some spatial indices can have issues as regards to routing load-balance in case of a skewed data set, all the spatial indices are more scalable in terms of the number of hops traversed and messages generated while searching and routing Grid resource queries.
[edit] Application of P2P network besides file sharing
- Bioinformatics: P2P networks have also begun to attract attention from scientists in other disciplines, especially those that deal with large datasets such as bioinformatics. P2P networks can be used to run large programs designed to carry out tests to identify drug candidates. The first such program was begun in 2001 the Centre for Computational Drug Discovery at Oxford University in cooperation with the National Foundation for Cancer Research. There are now several similar programs running under the auspices of the United Devices Cancer Research Project.
- Academic Search engine: The sciencenet P2P search engine provides a free and open search engine for scientific knowledge. sciencenet is based on yacy technology. Universities / research institutes can download the free java software and contribute with their own peer(s) to the global network. Liebel-Lab @ Karlsruhe institute of technology KIT.
- Education and Academia: Due to the fast distribution and large storage space features, many organizations are trying to apply P2P networks for educational and academic purposes. For instance, Pennsylvania State University, MIT and Simon Fraser University are carrying on a project called LionShare designed for facilitating file sharing among educational institutions globally.
- Military: The U.S. Department of Defense has already started research on P2P networks as part of its modern network warfare strategy. In November, 2001, Colonel Robert Wardell from the Pentagon told a group of P2P software engineers at a tech conference in Washington, DC: "You have to empower the fringes if you are going to... be able to make decisions faster than the bad guy".[4] Wardell indicated he was looking for P2P experts to join his engineering effort. In May, 2003 Dr. Tether. Director of Defense Advanced Research Project Agency testified that U.S. Military is using P2P networks. Due to security reasons, details are kept classified.
- Business: P2P networks have already been used in business areas, but it is still in the beginning stages. Currently, Kato et al.’s studies indicate over 200 companies with approximately $400 million USD are investing in P2P network. Besides File Sharing, companies are also interested in Distributing Computing, Content Distribution, e-marketplace, Distributed Search engines, Groupware and Office Automation via P2P networks. There are several reasons why companies prefer P2P sometimes, such as: Server space and bandwidth saving; Real-time collaboration—a server cannot scale well with increasing volume of content; a process which requires strong computing power; a process which needs high-speed communications, etc. At the same time, P2P is not fully used as it still faces a lot of security issues. Several non-profit projects, like many Linux distributions, use P2P to save humongous amounts of bandwidth on downloads as heavy as CDs and DVDs.
- TV: Quite a few applications available to delivery TV content over a P2P network (P2PTV)
- Telecommunication: Nowadays, people are not just satisfied with “can hear a person from another side of the earth”, instead, the demands of clearer voice in real-time are increasing globally. Just like the TV network, there are already cables in place, and it's not very likely for companies to change all the cables. Many of them turn to use the internet, more specifically P2P networks. For instance, Skype, one of the most widely used internet phone applications is using P2P technology. Furthermore, many research organizations are trying to apply P2P networks to cellular networks.
- Web portals: P2P networks could be used to distribute the data of a blog or forum between all its users. An example is Osiris (Serverless Portal System) which allows its users to create anonymous and autonomous web portals distributed via P2P network.
[edit] Social and economic issues
Some researchers have explored the benefits of enabling virtual communities to self-organize and introduce incentives as a resource sharing and cooperation, arguing that what is missing from today's peer-to-peer systems, should be seen both as a goal and a means for self-organized virtual communities to be built and fostered[5]. Ongoing research efforts for designing effective incentive mechanisms in P2P systems, based on principles from game theory are beginning to take on a more psychological and information processing direction.
[edit] History
[edit] Networks, protocols and applications
| This section may require cleanup to meet Wikipedia's quality standards. Please improve this section if you can. (October 2007) |
[edit] Other types of peer-to-peer applications
- File sharing (using application layer protocols such as BitTorrent)
- VoIP (using application layer protocols such as SIP)
- Streaming media
- Instant messaging and online chat
- Software publication and distribution
- Creation of anonymous web portals (eg Osiris sps,Flogs)
- Media publication and distribution (radio, video)
[edit] Networks and protocols
- Other networks: Applejuice, Audiogalaxy, Avalanche, CAKE, Chord, The Circle, Coral, Dijjer, FileTopia, Groove, Hamachi, iFolder, konspire2b, Madster/Aimster, MUTE, NeoRouter, OpenFT, P-Grid, IRC, MojoNation, Mnet, Octoshape, Omemo, Overnet, Peersites, Perfect Dark, Pichat, Scour, SharingZone, Skype, Solipsis, soribada, Soulseek, SPIN, Swarmcast, WASTE, Winny, Wippien
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include: Legion, Globus
[edit] Multi-network applications
| Applications | Network or Protocol | Operating systems | License |
|---|---|---|---|
| aMule | eDonkey network, Kad network | Cross-platform | GPL |
| eMule | eDonkey network, Kad network | Windows | GPL |
| giFT | eDonkey network, FastTrack, Gnutella | Cross-platform | GPL |
| Gnucleus | Gnutella, Gnutella2 | Windows | GPL |
| iMesh (pre v6.0) | FastTrack, eDonkey network (only version 5.0), Gnutella, Gnutella2 | Windows | Proprietary |
| KCeasy | Ares, FastTrack, Gnutella, OpenFT | Windows | GPL |
| Kiwi Alpha | Gnutella, Gnutella2 | Windows | Proprietary |
| MLDonkey | BitTorrent, Direct Connect, eDonkey network, FastTrack, Kad Network, OpenNap, SoulSeek, HTTP/FTP | Cross-platform | GPL |
| Morpheus | Gnutella, Gnutella2, BitTorrent | Windows | Proprietary |
| Shareaza | Gnutella, Gnutella2, eDonkey network, BitTorrent, HTTP/FTP | Windows | GPL |
| Vagaa | BitTorrent, eDonkey network, Kad network | Windows | Proprietary |
| WinMX | WPNP, OpenNap | Windows | Proprietary |
[edit] See also
- Ad-hoc network
- Ambient network
- Anonymous P2P
- Byzantine Fault Tolerance
- Client-server
- Comparison of P2P applications
- Compulsory license
- Computer cluster
- Decentralized computing
- Distributed hash table
- File sharing
- Friend-to-friend (or F2F)
- Friend-to-friend with third party storage
- Grid computing
- Mobile VoIP
- MP3 Rocket
- Node-to-node data transfer
- Overlay network
- Phynd
- Private P2P
- Servent
- Swarm intelligence
- P2P-Next
- Peer-to-peer renting
- Peer-to-Peer Art
- DUNDi
- Mesh networking
- BitTorrent (protocol)
- List of P2P protocols
[edit] References
- ^ Rüdiger Schollmeier, A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications, Proceedings of the First International Conference on Peer-to-Peer Computing, IEEE (2002).
- ^ Rajiv Ranjan, Aaron Harwood, and Rajkumar Buyya, [http://www.cs.mu.oz.au/%7Erranjan/pgrid.pdf Peer-to-Peer Based Discovery of Grid Resource
- ^ Rajiv Ranjan, Lipo Chan, Aaron Harwood, Shanika Karunasekera, Rajkumar Buyya Decentralised Resource Discovery Service for Large Scale Federated Grids
- ^ Walker, Leslie. Uncle Sam Wants Napster! The Washington Post, November 8, 2001
- ^ Antoniadis, P. & Le Grand, B. (2007). Incentives for resource sharing in self-organized communities: From economics to social psychology. Digital Information Management, 2007. ICDIM '07
- ^ a b Windows Peer-to-peer SDK FAQ
- ^ Overview of the Advanced Networking Pack for Windows XP
- ^ Windows Peer-to-Peer Networking
- ^ Peer-To-Peer based Features in Win 7
[edit] External links
| Wikimedia Commons has media related to: P2P |
- Glossary of P2P terminology
- Foundation of Peer-to-Peer Computing, Special Issue, Elsevier Journal of Computer Communication, (Ed) Javed I. Khan and Adam Wierzbicki, Volume 31, Issue 2, February 2008
- Ross J. Anderson. The eternity service. In Pragocrypt 1996, 1996.
- Marling Engle & J. I. Khan. Vulnerabilities of P2P systems and a critical look at their solutions, May 2006
- Stephanos Androutsellis-Theotokis and Diomidis Spinellis. A survey of peer-to-peer content distribution technologies. ACM Computing Surveys, 36(4):335–371, December 2004.
- Biddle, Peter, Paul England, Marcus Peinado, and Bryan Willman, The Darknet and the Future of Content Distribution. In 2002 ACM Workshop on Digital Rights Management, November 2002.
- John F. Buford, Heather Yu, Eng Keong Lua P2P Networking and Applications. ISBN 30-12374-214-5, Morgan Kaufmann, December 2008
- Djamal-Eddine Meddour, Mubashar Mushtaq, and Toufik Ahmed, “Open Issues in P2P Multimedia Streaming”, in the proceedings of the 1st Multimedia Communications Workshop MULTICOMM 2006 held in conjuction with IEEE ICC 2006 pp 43–48, June 2006, Istanbul, Turkey.
- Detlef Schoder and Kai Fischbach, Core Concepts in Peer-to-Peer (P2P) Networking. In: Subramanian, R.; Goodman, B. (eds.): P2P Computing: The Evolution of a Disruptive Technology, Idea Group Inc, Hershey. 2005
- Ralf Steinmetz, Klaus Wehrle (Eds). Peer-to-Peer Systems and Applications. ISBN 3-540-29192-X, Lecture Notes in Computer Science, Volume 3485, September 2005.
- Ramesh Subramanian and Brian Goodman (eds), Peer-to-Peer Computing: Evolution of a Disruptive Technology, ISBN 1-59140-429-0, Idea Group Inc., Hershey, PA, USA, 2005.
- Shuman Ghosemajumder. Advanced Peer-Based Technology Business Models. MIT Sloan School of Management, 2002.
- Silverthorne, Sean. Music Downloads: Pirates- or Customers?. Harvard Business School Working Knowledge, 2004.

