The success of SETI@home and
similar projects led to the development of the BOINC platform, 3 which
has been used to develop many cycle-sharing P2P systems in use today. At
the time of this writing, BOINC has
more than half a million active peers
computing on average 5. 42 petaFLOPS
(floating-point operations per second). For comparison, a modern PC
performs on the order of a few tens of
GFLOPS (about five orders of magnitude fewer), and the world’s fastest su-percomputer as of August 2010 has a
performance of about 1. 76 petaFLOPS.
Other applications. Other types of
P2P applications have seen significant
use, at least temporarily, but have not
reached the same levels of adoption as
the systems we describe here. Among
them are applications that leverage
peer-contributed disk space to provide distributed storage. Freenet9 aims
to combine distributed storage with
content distribution, censorship resistance, and anonymity. It is still active,
but the properties of the system make
it difficult to estimate its actual use.
MojoNation36 was a subsequent project
for building a reliable P2P storage system, but it was shut down after proving
unable to ensure the availability of data
due to unstable membership and other
problems.
P2P Web content distribution networks (CDNs) such as CoralCDN16 and
CoDeeN35 were deployed as research
prototypes but gained widespread use.
In these systems, a set of cooperating
users form a network of Web caches
and name servers that replicates Web
content as users access it, thereby reducing the load on servers hosting popular content. During its peak usage,
CoralCDN received up to 25 million
hits per day from one million unique
IP addresses.
Many more P2P systems have been
designed and prototyped, but either
were not deployed publicly or had
small deployments. Examples include
systems for distributed data monitoring, management and mining, 26, 37 massively distributed query processing, 19
cooperative backup, 11 bibliographic
databases, 33 serverless email, 24 and archival storage. 23
Technology developed for P2P applications has also been incorporated
into other types of systems. For in-
While the earliest
and most visible
P2P systems were
mainly file-sharing
applications,
current uses of
P2P technology are
much more diverse
and include the
distribution of data,
software, media
content, as well as
internet telephony
and scientific
computing.
stance, Dynamo, 13 a storage substrate
that Amazon uses internally for many
of its services and applications, uses
distributed hash tables (DHTs), which
we will explain later. Akamai’s NetSessiona client uses P2P downloads to
increase performance and reduce the
cost of delivering streaming content.
Even though these systems are controlled by a single organization and
thus do not strictly satisfy our definition of a P2P system, they are based on
P2P technology.
While P2P systems are a recent invention, technical predecessors of P2P
systems have existed for a long time.
Early examples include the NNTP and
SMTP news and mail distribution systems, and the Internet routing system.
Like P2P systems, these are mostly
decentralized systems that rely on resource contributions from their participants. However, the peers in these
systems are organizations and the protocols are not self-organizing.
While the earliest and most visible
P2P systems were mainly file-sharing
applications, current uses of P2P technology are much more diverse and
include the distribution of data, software, media content, as well as Internet telephony and scientific computing. Moreover, an increasing number
of commercial services and products
rely on P2P technology.
how Do P2P Systems Work?
Here, we sketch some of the most important techniques that make P2P systems work. We discuss fundamental
architectural choices like the degree of
centralization and the structure of the
overlay network. As you will see, one of
the key challenges is to build an overlay with a routing capability that works
well in the presence of a high membership turnover (usually referred to
as churn), which is typical of deployed
P2P system. 28 We then present solutions to specific problems addressed in
the context of P2P systems: application
state maintenance, application-level
node coordination, and content distribution.
Note that our intention in this presentation is to provide representative
a See Akamai NetSession Interface Overview at
http://www.akamai.com/html/misc/akamai_
client/ netsession_interface.html/.