A peer-to-peer (or P2P) computer network is a network that relies on computing power at the edges (ends) of a connection rather than in the network itself. P2P networks are used for sharing content like audio, video, data or anything in digital format. P2P network can also mean grid computing.
A pure peer-to-peer file transfer 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. One user uploads a file to the FTP server, then many others download it, with no need for the uploader and downloader to be connected at the same time.
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, though Gnutella at least is greatly facilitated by directory servers which 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 RFC, " RFC 1, Host Software" dated 7 April 1969. More recently the concept has achieved wide prominence among the general public in the context of the absence of central indexing servers in architectures used for exchanging multimedia files.
Operation of peer-to-peer networks
There are three major types of P2P network:
- Peers act as clients and server
- There is no central server
- There is no central router
- Has a central server that keeps information on peers and responds to requests for that information.
- Peers are responsible for hosting the information as the central server doesn't store files, for letting the central server know what files they want to share and for downloading its shareable resources to peers that request it.
- Route terminals are used addresses, which are referenced by a set of indices to obtain an absolute address.
- Has both pure and hybrid characteristics
Advantages of peer-to-peer networks
An important goal in peer-to-peer networks is that the bandwidth of all clients can be used, so the total bandwidth - and usually the available download bandwidth for the average user - grows with the number of nodes, instead of all clients having to share the bandwidth of one server, where adding more clients could mean slower data transfer for all users.
When the term peer-to-peer was used to describe the Napster network, it implied that the peer protocol nature 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.
Generational classification of peer-to-peer file sharing networks
Some people describe peer-to-peer file-sharing networks by their 'generation'. In this context, they are referring only to the popular internet-based file-sharing networks, not earlier research- and business-oriented peer-to-peer systems, which pre-date them.
The first generation of peer-to-peer file sharing networks had a centralized file list, like Napster. Courts in the United States ruled that whoever controlled this centralized file list containing works being infringed was responsible for any infringement of copyright. Ultimately, Napster was held liable even if it used the most advanced technology available to identify works copyright holders had asked it to block, because no technology which can identify works with 100% certainty exists or can exist. Napster continues to exist to this day however.
In the centralized peer to peer model, a user would send a search to the centralized server of what they were looking for, i.e. song, video, movie. The server then sends back a list of which peers have the data and facilitates the connection and download.
After Napster encountered legal troubles, Justin Frankel of Nullsoft set out to create a network without a central index server, and Gnutella was the result. Unfortunately, the Gnutella model of all nodes being equal quickly died from bottlenecks as the network grew from incoming Napster refugees. FastTrack solved the problem by having some nodes 'more equal than others'.
By electing some nodes which had more capacity as indexing nodes, and having lower capacity nodes branching off from them, it allowed for a network which could scale to a much larger size. Gnutella quickly adopted this model, and most current peer to peer networks follow this model, as it allows for large and efficient networks without central servers.
Also included in the second generation are distributed hash tables, which solve the scalability problem by electing various nodes to index certain hashes (which are used to identify files), allowing for fast and efficient searching for any instances of a file on the network, though they are not without their own drawbacks, such as stale hosts and network splits.
The third generation of peer-to-peer networks are those which have anonymity features built in. Examples of anonymous networks are Freenet, I2P, GNUnet, Entropy.
Friend-to-friend networks only allow already known users (aka "friends") to connect to your computer, then each node can forward requests and files anonymously between its own "friends" nodes; some of these networks are: MUTE / Napshare / ANts P2P / WASTE.
Third generation networks, however, have not reached mass usage for file sharing because of the extreme overhead which anonymity features introduce, multiplying the bandwidth required to send a file with each intermediary used.
Under US law, "the Betamax decision" 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 in wide variety of formats (mp3, MPEG, RM etc...). Sharing of these copies are illegal in most jurisdictions. This has led many observers, including most media companies and some peer-to-peer advocates, to conclude that the networks themselves pose grave threats to the established distribution model. Interestingly, the research that attempts to measure actual monetary loss has been somewhat equivocal. Whilst on paper the existence of these networks results in massive losses, the actual income doesn't 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.
Inspite 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.
As actions to defend copyright infringement by media companies expand, the networks have seemed to adapt at a quick pace and have 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 people profess to believe that this will lead to greater or easier trading of child pornography and even (in some unclear way) 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 email, which also possess anonymizing services, have similar capabilities.
- 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 include 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, ARPANET, 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).
Attacks on Peer-to-peer networks
Many peer-to-peer networks are under constant attack by people with a variety of motives.
- poisoning attacks (providing files whose contents are different than the description)
- denial of service attacks (attacks that may make the network run very slowly or break completely)
- 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. the software may contain spyware)
- 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.
Wikipedia article (the free online encyclopedia) reproduced under the terms of the GNU (General Public License) Free Documentation License.