| |||||||||
Generally, a peer-to-peer (or P2P) computer network is any network that does not have fixed clients and servers, but a number of peer nodes that function as both clients and servers to the other nodes on the network. This model of network arrangement is contrasted with the client-server model. Any node is able to initiate or complete any supported transaction. Peer nodes may differ in local configuration, processing speed, network bandwidth, and storage quantity. One of the first uses of the phrase "peer to peer" is in 1984, with the development of the "Advanced Peer to Peer Networking" architecture at IBM.
Different peer-to-peer networks have varying P2P overlays.
Note: The initialism P2P is often confused to refer to Point-to-Point, as used in telecommunications. More correctly, it should be used to refer to Peer-to-Peer connections.
Although the term may technically be applied to any number of networking technologies and applications that use this model (such as the NNTP protocol used for transferring Usenet news, SMTP for mail transactions, ARPANET, decentralized live chat Java applets or BBS FidoNet), it is most frequently used to refer to file sharing networks such as Gnutella, FastTrack, and the now-defunct Napster, which provide facilities for free (and somewhat anonymous) file transfer between personal computers connected to the Internet.
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 referred to as true peer-to-peer networks.
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). The peer protocol was just a common way to achieve this.
The peer-to-peer paradigm has been used to deploy publish/subscribe systems, i.e, a system where users subscribe with a continuous query and asychronously receive notifications when matching events take place. One example of such publish subscribe system is P2P-DIET.
The most commonly shared files on such networks are mp3 files of popular music and DivX movie files. This has led many observers, including most media companies and some peer-to-peer advocates, to conclude that these networks pose grave threats to the business models of established media companies. One of the most famous leaks was unreleased Madonna songs including her 2001 hit "Music" prior to its official commerical release.
Consequently, peer-to-peer networks have been targeted by industry trade organizations such as the RIAA and MPAA as a potential threat. The Napster service was shut down by an RIAA lawsuit; both groups the RIAA and MPAA spend large amounts of money attempting to lobby lawmakers for legal restrictions. The most extreme manifestation of these efforts to date (as of January, 2003) has been a bill introduced by California Representative Berman, which would grant copyright holders the legal right to break into computer systems believed to be illegally distributing copyrighted material, and to subvert the operation of peer-to-peer networks. The bill was defeated in committee in 2002.
As attacks from media companies expand, the networks have seemed to adapt at a quick pace and have become technologically more difficult to dismantle. This has caused the users of such systems to become targets. Some have predicted that open networks may give way to closed, encrypted ones where the identity of the sharing party is not known by the requesting party. Other trends towards immunity from media companies seem to be in wireless adhoc networks where each device is connected in a true peer-to-peer sense to those in the immediate vicinity. (See Wireless Mesh Networking)
Technically, a true 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 lookup service, ARPANET, the PAST storage utility, the P-Grid, a self-organized and emerging overlay network and the BitTorrent network
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include: