- For other uses of the term see Peer-to-peer
(disambiguation)
- For peer-to-peer networks used for file sharing see File sharing
A peer-to-peer based network.
A server based network. (not peer-to-peer)
A peer-to-peer (or "P2P") computer network exploits diverse
connectivity between participants in a network and the cumulative bandwidth of network
participants rather than conventional centralized resources where a relatively low number of servers provide the core value to a service or application. Peer-to-peer 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 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 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 is a peer-to-peer network while the
periphery of Mail user agents and their direct connections is client server.
Some networks and channels such as Napster, OpenNAP and
IRC server channels 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
coined the term "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).
Classifications of peer-to-peer networks
Peer-to-peer networks can be classified by what they can be used for:
- file sharing
- telephony
- media streaming (radio, video)
- discussion forums
Other classification of peer-to-peer networks is according to their degree of centralization.
In 'pure' peer-to-peer networks:
- Peers act as equals, merging the roles of clients and server
- There is no central server managing the network
- There is no central router
Some examples of pure peer-to-peer application layer networks designed for
file sharing are Gnutella and Freenet.
There also exist countless hybrid peer-to-peer systems:
- 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.
e.g.
- Centralized P2P network such as Napster
- Decentralized P2P network such as KaZaA
- Structured P2P network such as CAN
- Unstructured P2P network such as Gnutella
- Hybrid P2P network (Centralized and Decentralized) such as JXTA, GreenTea and Shwup
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.
While the original Napster network was a P2P network the newest version of Napster has no connection to P2P networking at all.
The modern day version of Napster is a subscription based service which allows you to download music files legally.
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 signalling traffic in
the network and hence such networks typically have very poor search efficiency. Most of the popular P2P networks such as
Gnutella and FastTrack 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. Some well known DHTs are Chord,
Pastry, Tapestry, CAN, and Tulip. Not a DHT-approach but a structured
P2P network is HyperCuP.
Legal controversy
Peer-to-peer technologies are rarely considered in and of themselves to be illegal.
However a frequent use of many peer-to-peer technologies is file sharing of copyright
materials and this is very typically illegal (see File sharing and the law),
unless a license exists that permits this (such as GPL or GFDL or a commercial license), or for materials that have entered the public domain.
Other uses of peer-to-peer such as telephony are not typically nearly so controversial, although provision of telephony is
restricted in some legal jurisdictions around the world.
Public perception
According to a poll, 75% of young voters in Sweden (18-20) support filesharing, even if it is illegal when presented to the
statement:
| “ |
I think it is OK to download files from the Net, even if it is illegal |
” |
38% said they "adamantly agreed" while 39% said they "partly agreed".[1]
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).
Application of P2P Network outside Computer Science
- 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. Tranche is an open-source set of software
tools for setting up and administrating a decentralized network. It was developed to solve the bioinformatics data sharing
problem in a secure and scalable fashion.
- Education and Academic: Due to the fast distribution and large storage space features, many organizations are trying to apply
P2P network 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 topic on P2P network as part of its modern network war.
In November, 2001, Colonel Robert Wardell from the Pentagon told a group of peer-to-peer 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".[1] Wardell indicated he was looking for peer-to-peer
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 network. Due to security reasons, details are kept confidential.
- Business: P2P network has already been used in business areas, but it is still at the beginning line. 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-market place, Distributed Search engines,
Groupware and Office Automation via P2P network. There are several reasons why companies prefer P2P sometimes such as: Real-time
collaboration, a server cannot manage with increasing volume of contents, a process requires strong computing power, a process
needs high-speed communications etc. At the same time, P2P is not fully used as it still confronts a lot of security issues.
- TV: One of the first applications of P2P in this area is Joost, which is expected to
deliver (relay) near-TV resolution images.
- 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 built. It’s
not very likely for companies to change all the cables. Many of them turn to use internet, more specifically, P2P network. For
instance, Skype, one of the most widely used phone software is using P2P technology. Furthermore, many research organizations are
trying to apply P2P network on cellular network.
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)
- freeloaders (Sometimes known as 'Leechers') (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.
Security
Anonymity
Some peer-to-peer protocols (such as Freenet) attempt to hide the identity of network users
by passing all traffic through intermediate nodes.
Encryption
Some peer-to-peer networks encrypt the traffic flows between peers.
This may help to:
- make it harder for an ISP to detect that peer-to-peer technology is being used (as some artificially limit bandwidth)
- hide the contents of the file from eavesdroppers
- impede efforts towards law enforcement or censorship of certain kinds of material
- authenticate users and prevent 'man in the middle' attacks on protocols
- aid in maintaining anonymity
Networks, protocols and applications
Applications of peer-to-peer networks
Networks and protocols
| Network or Protocol |
Use |
Applications |
| Ares |
File sharing |
Ares Galaxy, Warez P2P, Filecroc |
| BitTorrent |
File sharing/Software distribution/Media distribution |
ABC, AllPeers,
Azureus, BitComet, BitLord,
BitSpirit, BitTornado, BitTorrent, Burst!, Deluge FlashGet, G3
Torrent, Halite, KTorrent, Limewire, MLDonkey, Opera,
QTorrent, rtorrent, Shareaza, Transmission, Tribler, µTorrent,Thunder |
| Buzm |
Shared HTML wiki |
a peer-to-peer wiki platform |
| CSpace |
File sharing, text chat, remote desktop |
a peer-to-peer based communications system |
| Direct Connect |
File sharing |
[[DC++]], NeoModus Direct Connect, [[DC++#BCDC++|BCDC++]],
[[DC++#ApexDC++|ApexDC++]], [[DC++#StrongDC++|StrongDC++]] |
| Domain Name System |
Internet information retrieval |
See Comparison of DNS server software |
| eDonkey |
File sharing |
aMule, eDonkey2000 (discontinued), eMule, eMule Plus, Hydranode,
Jubster, lMule, Lphant,
MLDonkey, Morpheus, Pruna, Shareaza, xMule, iMesh |
| FastTrack |
File sharing |
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, Poisoned |
| Freenet |
Distributed data store |
Entropy (on its own network), Freenet |
| GNUnet |
File sharing, chat |
GNUnet, (GNUnet-gtk) |
| Gnutella |
File sharing |
Acquisition, BearShare, Cabos, Gnucleus, Grokster, iMesh, gtk-gnutella, Kiwi Alpha,
LimeWire, FrostWire, MLDonkey, Morpheus, Poisoned, Swapper, Shareaza, XoloX |
| Gnutella2 |
File sharing |
Adagio, Caribou, Gnucleus, iMesh, Kiwi Alpha,
MLDonkey, Morpheus, Shareaza, TrustyFiles |
| Kad Network |
File sharing |
aMule, eMule, MLDonkey |
| JXTA |
Peer applications |
WiredReach Platform, Collanos Workplace (Teamwork software) |
| Krawler |
Social network |
Krawler[x] |
| MANOLITO/MP2P |
File sharing |
Blubster, Piolet |
| MFPnet |
File sharing |
amiciPhone (no longer available) |
| Napster |
File sharing |
Napigator, OpenNap, WinMX |
| NeoEdge |
File sharing, peer applications |
MostFun Game Player, NeoARM game delivery |
| P2PTV |
Video stream or file sharing |
TVUPlayer, Joost, CoolStreaming, Cybersky-TV, TVants,
PPLive, Kontiki |
| Peercasting |
Multicasting streams |
PeerCast, IceShare, FreeCast, PeerStream, Rawflow |
| Retroshare |
|
Retroshare serverless Filesharing with Chat Messenger |
| Tranche |
|
|
| Usenet |
Distributed discussion |
expressLoad. See list of news clients |
| Windows Peer-to-Peer |
|
Advanced Networking Pack for Windows XP,Windows XP SP2, Windows Vista (This is a Windows component that provides a 'meta' peer-to-peer network that applications
can piggyback) |
| WPNP |
File sharing |
WinMX |
- Other networks: Abacast, Alliance, 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, MojoNation, Mnet, Octoshape, Omemo, Overnet, Peersites, Perfect Dark,
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
-
| Applications |
Network or Protocol |
Operating systems |
License |
| AMIGIFT |
FastTrack, Ares, OpenFT, Gnutella, BitTorrent |
AmigaOS |
GPL / PD |
| aMule |
eDonkey network, Kad network |
Cross-platform |
GPL |
| eMule |
eDonkey network, Kad network |
Windows |
GPL |
| FileScope |
eDonkey network, Gnutella, Gnutella2, OpenNAP |
Cross-platform |
GPL |
| giFT |
eDonkey network, FastTrack, Gnutella |
Cross-platform |
GPL |
| Gnucleus |
Gnutella, Gnutella2 |
Windows |
GPL |
| iMesh |
FastTrack, eDonkey network, Gnutella, Gnutella2 |
Windows |
|
| KCeasy |
Ares, FastTrack, Gnutella, OpenFT |
Windows |
GPL |
| Kiwi Alpha |
Gnutella, Gnutella2 |
Windows |
|
| MLDonkey |
BitTorrent, Direct Connect, eDonkey network, FastTrack, Gnutella,
Gnutella2, Kad Network, OpenNap, SoulSeek, HTTP/FTP |
Cross-platform |
GPL |
| Morpheus |
NEO Network, Gnutella, Gnutella2, BitTorrent |
Windows |
|
| Napshare |
Key network, MUTE network |
Linux, Windows |
GPL |
| Shareaza |
BitTorrent, eDonkey, Gnutella, Gnutella2 |
Windows |
GPL |
| Vagaa |
BitTorrent, eDonkey, Kad |
Windows |
Closed source |
| Zultrax |
Gnutella, ZEPP |
Windows |
History
- July, 1999: publication of Freenet protocol
- September, 1999: creation of Napster
- November, 1999: first release of Direct Connect client
- March 14, 2000: first release of Gnutella
- September 6, 2000: first release of eDonkey2000
- March, 2001: introduction of the FastTrack protocol
- April, 2001: design of the BitTorrent protocol
- May, 2001: first release of WinMX Peer Network Protocol
- July, 2001: shutdown of Napster
- November 6, 2001: first release of GNUnet
- March, 2002: publication of the Kademlia DHT
- November, 2002: start of the Gnutella2 project
See also
Notes
- ^ Walker, Leslie. Uncle Sam Wants Napster! The Washington Post, November 8,
2001
References
- 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
- 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.
External links
Wikimedia Commons has media related to:
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)