Revision as of 14:15, 10 November 2006 editSirius Wallace (talk | contribs)67 edits →Multi-network applications← Previous edit | Revision as of 14:16, 10 November 2006 edit undoSirius Wallace (talk | contribs)67 edits →Multi-network applicationsNext edit → | ||
Line 165: | Line 165: | ||
* ] (], Key Network) (Linux, Windows) (open source) | * ] (], Key Network) (Linux, Windows) (open source) | ||
* ] (BitTorrent, eDonkey, Gnutella, Gnutella2) (Windows) (open source) | * ] (BitTorrent, eDonkey, Gnutella, Gnutella2) (Windows) (open source) | ||
* ] (Windows) ( |
* ] (Windows) (winmxgroup.com) | ||
* ] (Gnutella, ZEPP) (Windows) (closed source) | * ] (Gnutella, ZEPP) (Windows) (closed source) | ||
* WASTE | * WASTE |
Revision as of 14:16, 10 November 2006
- 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.
The earliest peer-to-peer network in widespread use was the Usenet news server system, in which peers communicated with one another in order 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 also acted in a client-server form when individual users accessed a local news server in order to read and post articles.
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" 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).
Operation of peer-to-peer networks
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.
Advantages of peer-to-peer networks
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 -- in pure P2P systems -- 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.
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 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:
Legal controversy
Further information: EU Copyright DirectiveUnder 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. However, Napster's use of a central server distinguishes it, on its facts, from the next generation peer-to-peer technology, in which the communication of files is truly "peer to peer".
In MGM v. Grokster, the U.S. Supreme Court reversed a decision of the Ninth Circuit Court of Appeals which had granted a summary judgment of dismissal, and held that were factual issues concerning whether the defendant p2p software providers had, or had not, encouraged their users to infringe copyrights. If they had done so, they could be held liable for secondary copyright infringement.
A little over a year later, the RIAA initiated the first major post-Grokster case, Arista v. Limewire, in Manhattan federal court. Lime Wire has counterclaimed in that suit, charging the major record companies with antitrust violations and other misconduct."Lime Wire Sues RIAA for Antitrust Violations"
Shortly thereafter, the lower court judge in Grokster found one of the defendants, Streamcast, the maker of Morpheus, to be liable under the standards enunciated by the Supreme Court. "Streamcast Held Liable for Copyright Infringement in MGM v. Grokster, Round 2" ("Recording Industry vs. The People")
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 . 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. Grokster
Computer science perspective
Technically, 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).
Use of peer-to-peer networks in bioinformatics
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-administered 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.
Attacks on peer-to-peer networks
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.
Networks, protocols and applications
- Ares: Ares Galaxy, Warez P2P
- BitTorrent: AllPeers, ABC , Azureus, BitComet, BitSpirit, BitTornado, BitLord, BitTorrent, BitTorrent.Net, Burst!, G3 Torrent, mlMac, MLDonkey, QTorrent, Shareaza, Transmission, Tribler, µTorrent
- CSpace: a peer-to-peer based communications system
- Direct Connect network: DC++, NeoModus Direct Connect, BCDC++, 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, 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
- Kad Network (using Kademlia protocol): aMule, eMule, MLDonkey
- MANOLITO/MP2P: Blubster, Piolet
- MFPnet: Amicima
- Napster: Napigator, OpenNap, WinMX
- P2PTV type networks: TVUPlayer, CoolStreaming, Cybersky-TV, TVants
- Peercasting type networks: PeerCast, IceShare, FreeCast
- Usenet
- WPNP: WinMX
- other networks: ANts P2P, Applejuice, Audiogalaxy, Avalanche, CAKE, Chord, The Circle, Coral, Dijjer, EarthStation 5, FileTopia, Groove, Hamachi, iFolder, konspire2b, Madster/Aimster, MUTE, OpenFT, P-Grid, IRC, JXTA, KoffeePhoto, Peersites, MojoNation, Mnet, Octoshape, Overnet, Scour, Skype, Solipsis, soribada, Soulseek, SPIN, Swarmcast, WASTE, Winny
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include: Legion, Globus
Multi-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)
- 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) (winmxgroup.com)
- Zultrax (Gnutella, ZEPP) (Windows) (closed source)
- WASTEWASTE
See also
- Ambient network
- Anonymous P2P
- Byzantine Fault Tolerance
- Client-server
- Comparison of P2P applications
- Compulsory licensing
- Computer cluster
- Distributed hash table
- File sharing
- Friend-to-friend (or F2F)
- Friend-to-friend with third party storage
- Grid computing
- Overlay network
- Servent
- Swarm intelligence
- ad hoc network
External links
- P2P Networking 4 Science A review of the current and potential uses of peer-to-peer networks in scientific research
- Conferences and Resources on peer-to-peer computing
- LinuxP2P List of file sharing software for GNU/Linux
- OpenP2P peer-to-peer development resources
- The P2P revolution peer-to-peer networking & the entertainment industry. A free-to-distribute white paper by Scott Jensen
- The Web 2.5 Blog peer-to-peer web servers on mobile devices
- The Foundation for P2P Alternatives Wiki-based site with discussion of the philosophy behind peer-to-peer networks
References
- 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
- 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.