Peer-to-peer
P2P redirects here. For other uses, see P2P (disambiguation) or Peer-to-peer (disambiguation).A
peer-to-peer (or
P2P) computer network is a
network that relies primarily on the computing power and
bandwidth of the participants in the network rather than concentrating it in a relatively low number of
servers. 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 realtime data, such as
telephony traffic, is also passed using P2P technology..
A pure peer-to-peer 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 for a non peer-to-peer file transfer is an
FTP server where the client and server programs are quite distinct, and the clients initiate the download/uploads and the servers react to and satisfy these requests.
Some networks and channels, such as
Napster,
OpenNAP, or
IRC @find, use a client-server structure for some tasks (e.g., searching) and a peer-to-peer structure for others. Networks such as
Gnutella or
Freenet use a peer-to-peer structure for all purposes, and are sometimes referred to as true peer-to-peer networks, although Gnutella is greatly facilitated by directory servers that inform peers of the network addresses of other peers.
Peer-to-peer architecture embodies one of the key technical concepts of the internet, described in the first internet
Request for Comments, "
RFC 1, Host Software" [
1] dated
7 April 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 peer to peer 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 developed the notion of commons-based peer production to denote collaborative projects such as free software. Associated with peer production are the concept of peer governance (referring to the manner in which peer production projects are managed) and 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 License).
One possible classification of peer-to-peer networks is according to their degree of centralisation:
Pure peer-to-peer:
* Peers act as equals, merging the roles of clients and server
* There is no central server managing the network
* There is no central router
Hybrid peer-to-peer:
* Has a central server that keeps information on peers and responds to requests for that information.
* Peers are responsible for hosting available resources (as the central server does not have them), for letting the central server know what resources they want to share, and for making its shareable resources available to peers that request it.
* Route terminals are used addresses, which are referenced by a set of indices to obtain an absolute address.
Some examples of "pure" peer-to-peer
application layer networks designed for
file sharing are
Gnutella and
Freenet.
An important goal in peer-to-peer networks is that all clients provide resources, including
bandwidth, storage space, and computing power. Thus, 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.
The distributed nature of peer-to-peer networks also increases robustness in case of failures by replicating data over multiple peers, and by enabling peers to find the data without relying on a centralized index server. In the latter case, there is no
single point of failure in the system.
When the term peer-to-peer was used to describe the Napster network, it implied that the peer
protocol was important, but, in reality, the great achievement of Napster was the empowerment of the peers (i.e., the fringes of the network) in association with a central index, which made it fast and efficient to locate available content. The peer protocol was just a common way to achieve this.
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 in order 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. A popular content is likely to be available at several peers and any peer searching for it is likely to find the same, but, if a peer is looking for a rare or not-so-popular data shared by only a few other peers, then it is highly unlikely that search 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 signalling traffic in the network and hence such networks typically have a very poor search efficiency. Most of the popular P2P networks such as
Napster,
Gnutella and
KaZaA are unstructured.
Structured P2P networks overcome the limitations of unstructured networks by maintaining a
Distributed Hash Table (DHT) and by allowing each peer to be responsible for a specific part of the content in the network. These networks use
hash functions and assign values to every content and every peer in the network and then follow a global protocol in determining which peer is responsible for which content. This way, whenever a peer wants to search for some data, it uses the global protocol to determine the peer(s) responsible for the data and then directs the search towards the responsible peer(s). Some well known structured P2P networks are:
*
Chord*
Pastry*
Tapestry*
CAN*
TulipUnder US law "the Betamax decision" (
Sony Corp. of America v. Universal City Studios, Inc.), case holds that copying "technologies" are not
inherently illegal, if substantial non-infringing use can be made of them. This decision, predating the widespread use of the
Internet applies to most data networks, including peer-to-peer networks, since distribution of correctly licensed files can be performed. These non-infringing uses include sending open source software, public domain files and out of copyright works. Other jurisdictions tend to view the situation in somewhat similar ways.
In practice, many, often most, of the files shared on peer-to-peer networks are copies of copyrighted popular music and movies. Sharing of these copies among strangers is illegal in most jurisdictions. This has led many observers, including most media companies and some peer-to-peer critics, to conclude that the networks themselves pose grave threats to the established distribution model. The research that attempts to measure actual monetary loss has been somewhat equivocal. Whilst on paper the existence of these networks results in large losses, the actual income does not seem to have changed much since these networks started up. Whether the threat is real or not, both the
RIAA and the
MPAA now spend large amounts of money attempting to lobby lawmakers for the creation of new laws, and some copyright owners pay companies to help legally challenge users engaging in illegal sharing of their material.
In spite of the Betamax decision, peer-to-peer networks themselves have been targeted by the representatives of those artists and organizations who license their creative works, including industry trade organizations such as the RIAA and MPAA as a potential threat. The Napster service was shut down by an RIAA lawsuit. In this case, Napster had been deliberately marketed as a way to distribute audio files without permission from the copyright owners. In
MGM v. Grokster, the U.S. Supreme Court again held illegal the services of Grokster which included allowing users to illegally share copyrighted music.
As actions to defend copyright infringement by media companies expand, the networks have quickly adapted and constantly become both technologically and legally more difficult to dismantle. This has caused the users that are actually breaking the law to become targets, because whilst the underlying technology may be legal, the abuse of it by individuals redistributing content in a copyright infringing way is clearly not.
Anonymous peer-to-peer networks allow for distribution of material - legal or not - with little or no legal accountability across a wide variety of jurisdictions. Many profess that this will lead to greater or easier trading of illegal material and even (as some suggest) facilitate
terrorism, and call for its regulation on those grounds [
2]. Others counter that the potential for illegal uses should not prevent the technology from being used for legal purposes, that the presumption of innocence must apply, and that non peer-to-peer technologies like
e-mail, which also possess anonymizing services, have similar capabilities.
In the
European Union (EU), the 2001
EU Copyright directive, which implemented the 1996
WIPO treaty ("World Intellectual Property Organization Copyright Treaty"), prohibits peer-to-peer, claiming it is a violation of the directive. However, not all European member states have implemented the directive in national legislation. Notably, on December 22, 2005, after discussing the EU directive, the French parliament passed two amendments legalizing the exchange of copies on the internet for private use. In a later proceeding, the French government withdrew the article in question and made illegal any p2p client obviously aimed at sharing copyrighted material. The term "obviously" was not defined. The project of law (called
DADVSI) has still to be discussed by the French senate and, if the decision differs too much from the Parliament's, it will be debated on second lecture back at the Parliament (
Assemblée Nationale).
Interestingly, Canada stands out by authorizing, at least until the projected copyright reform, downloads on peer-to-peer networks under the "private copying" exception.
Important Cases
* US law
**
Sony Corp. v. Universal City Studios (The Betamax decision)
**
MGM v. GroksterTechnically, a completely pure peer-to-peer application must implement only peering protocols that do not recognize the concepts of "server" and "client". Such
pure peer applications and networks are rare. Most networks and applications described as peer-to-peer actually contain or rely on some non-peer elements, such as
DNS. Also, real world applications often use multiple protocols and act as client, server, and peer simultaneously, or over time. Completely decentralized networks of peers have been in use for many years: two examples are
Usenet (
1979) and
FidoNet (
1984).
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 peer-to-peer 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.
Peer-to-peer 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).
Peer-to-peer 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. On a smaller scale, a self-administred program for computational biologists to run and compare various bioinformatics software is available from
Chinook. Academic institutions have also begun experimenting with file sharing: one of the most interesting projects is
LionShare.
Many peer-to-peer networks are under constant attack by people with a variety of motives.
Examples include:
* poisoning attacks (e.g. providing files whose contents are different from the description)
* polluting attacks (e.g. inserting "bad" chunks/packets into an otherwise valid file on the network)
* defection attacks (users or software that make use of the network without contributing resources to it)
* insertion of viruses to carried data (e.g. downloaded or carried files may be infected with viruses or other malware)
*
malware in the peer-to-peer network software itself (e.g. distributed software may contain spyware)
*
denial of service attacks (attacks that may make the network run very slowly or break completely)
* filtering (network operators may attempt to prevent peer-to-peer network data from being carried)
* identity attacks (e.g. tracking down the users of the network and harassing or legally attacking them)
*
spamming (e.g. sending unsolicited information across the network- not necessarily as a denial of service attack)
Most attacks can be defeated or controlled by careful design of the peer-to-peer network and through the use of encryption. P2P network defense is in fact closely related to the "
Byzantine Generals Problem". However, almost any network will fail when the majority of the peers are trying to damage it, and many protocols may be rendered impotent by far fewer numbers.
*
Aimini P2P:
Aimini network (on its own network)
*
Ares:
Ares Galaxy,
Warez P2P*
BitTorrent:
ABC [Yet Another BitTorrent Client],
Azureus,
BitComet,
BitSpirit,
BitTornado,
BitTorrent,
BitTorrent.Net,
G3 Torrent,
mlMac,
MLDonkey,
QTorrent,
Shareaza,
Transmission,
Tribler,
µTorrent*
CSpace: a peer-to-peer based communications system
*
Direct Connect network:
BCDC++,
DC++,
NeoModus Direct Connect,
StrongDC++*
Domain Name System*
eDonkey2000:
aMule,
eDonkey2000,
eMule,
LMule,
MLDonkey,
mlMac,
Shareaza,
xMule,
iMesh*
FastTrack:
giFT,
Grokster,
iMesh (and its variants stripped of
adware including
iMesh Light),
Kazaa (and its variants stripped of adware such as
Kazaa Lite),
KCeasy,
Mammoth,
MLDonkey,
mlMac,
Poisoned*
Freenet:
Entropy (on its own network), Freenet
*
GNUnet: GNUnet, (GNUnet-gtk)
*
Gnutella:
Acquisition,
BearShare,
BetBug,
Cabos,
Gnucleus,
Grokster,
iMesh,
gtk-gnutella,
Kiwi Alpha,
LimeWire,
FrostWire,
MLDonkey,
mlMac,
Morpheus,
Phex,
Poisoned,
Swapper,
Shareaza,
XoloX*
Gnutella2:
Adagio,
Caribou,
Gnucleus,
iMesh,
Kiwi Alpha,
MLDonkey,
mlMac,
Morpheus,
Shareaza,
TrustyFiles*
Joltid PeerEnabler:
Altnet,
Bullguard,
Joltid,
Kazaa,
Kazaa Lite*
Kad Network (using
Kademlia protocol):
aMule,
eMule,
MLDonkey*
MANOLITO/MP2P:
Blubster,
Piolet,
RockItNet* MFPnet:
Amicima*
Napster:
Napigator,
OpenNap,
WinMX*
P2PTV type networks:
TVUPlayer,
CoolStreaming,
Cybersky-TV,
TVants*
Peercasting type networks:
PeerCast,
IceShare,
FreeCast*
Usenet*
WPNP:
WinMX,
WinZO* other networks:
ANts P2P,
Applejuice,
AsagumoWeb,
Audiogalaxy,
Avalanche,
CAKE,
Chord,
The Circle,
Coral,
Dijjer,
EarthStation 5,
FileTopia,
FotoSwap,
Groove,
Hamachi,
iFolder, iGlance,
konspire2b,
Madster/Aimster,
MUTE,
OpenExt,
OpenFT,
P-Grid, Qnext,
IRC,
JXTA,
Peersites,
MojoNation,
Mnet,
Octoshape, OmilyX,
Overnet,
PixVillage,
Scour,
Skype,
Solipsis,
soribada,
Soulseek,
SPIN,
Swarmcast,
WASTE,
Winny, ZEPP
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include:
Legion,
Globus,
Condor,
ByteTornadoMulti-network applications
*
aMule (
eDonkey network,
Kad Network) (
Linux,
Mac OS X,
FreeBSD,
NetBSD,
OpenBSD,
Windows and
Solaris Operating Environment) (open source)
*
eMule (
eDonkey network,
Kad Network) (Windows) (open source)
*
FileScope (
Gnutella,
Gnutella2,
eDonkey network,
OpenNAP) (crossplatform) (open source)
*
giFT (own
OpenFT protocol, and with plugins - FastTrack, eDonkey and Gnutella) (open source)
*
Gnucleus (Gnutella,
Gnutella2) (Windows) (open source)
*
iMesh (Fasttrack,
eDonkey Network, Gnutella, Gnutella2) (Microsoft Windows) (closed source)
*
iSwipe (Hotline, Napster, OpenNapster, Gnutella, Carracho, OpenFT, iTunes, eDonkey, FastTrack, BitTorrent, Ares) (Mac) (closed source)
*
KCeasy (Ares, FastTrack (plugin required), Gnutella, OpenFT) (open source)
*
Kiwi Alpha (Gnutella, Gnutella2) (Windows) (closed source)
*
MLDonkey (BitTorrent,
eDonkey, FastTrack, Gnutella, Gnutella2, Kademlia) (Windows, Linux, Mac OS X) (open source)
*
Morpheus (NEO Network, Gnutella, Gnutella2, BitTorrent) (Windows) (closed source)
*
Napshare (
MUTE, Key Network) (Linux, Windows) (open source)
*
Shareaza (BitTorrent, eDonkey, Gnutella, Gnutella2) (Windows) (open source)
*
WinMX (Windows) (mxpie.com)
*
Zultrax (Gnutella, ZEPP) (Windows) (closed source)
*
Ambient network*
Anonymous P2P*
Byzantine Fault Tolerance*
Comparison of P2P applications*
Compulsory licensing*
Computer cluster*
Distributed hash table*
Friend-to-friend (or F2F)
*
Grid computing*
Overlay network*
Servent*
Client-server*
Swarm intelligence*
IBM Developer Works: The practice of peer-to-peer computing*
Internet2® Peer-to-Peer Working Group*
OpenP2P - P2P development resources
*
The Web 2.5 Blog discusses P2P web servers on mobile devices
*
Understanding peer-to-peer: An Introduction for Service Providers - article by
CacheLogic*
The P2P revolution Peer-to-peer networking & the entertainment industry. A free-to-distribute white paper by Scott Jensen.
*
LinuxP2P List of file sharing software for GNU/Linux
*
The Foundation for P2P Alternatives Wiki-based site with discussion of the philosophy behind P2P networks.
*
P2P Networking 4 Science A review of the current and potential uses of P2P networks in scientific research.
* Ross J. Anderson.
The eternity service. In
Pragocrypt 1996, 1996.
* Marling Engle.
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.
doi:10.1145/1041680.1041681.
* 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,
18 November 2002.
* Antony Rowstron and Peter Druschel, Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems. In proceedings
Middleware 2001 : IFIP/ACM International Conference on Distributed Systems Platforms. Heidelberg, Germany,
November 12-16, 2001. Lecture Notes in Computer Science, Volume 2218, Jan 2001, Page 329.
* Andy Oram et al., Peer-to-Peer:Harnessing the Power of Disruptive Technologies, Oreilly 2001
* 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.
* I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In
Proceedings of SIGCOMM 2001, August 2001.
* Ralf Steinmetz, Klaus Wehrle (Eds).
Peer-to-Peer Systems and Applications. ISBN 3-540-29192-X, Lecture Notes in Computer Science, Volume 3485, Sep 2005
*
Ghosemajumder, Shuman.
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.
* Kronschnabl, A & Rawlings T.
Plug In & Turn on: A Filmmakers Guide to the Internet Marion Boyars, 2004.