Network Working Group G. Camarillo, Ed.
Request for Comments: 5694 For the IAB
Category: Informational November 2009
Peer-to-Peer (P2P) Architecture:
Definition, Taxonomies, Examples, and Applicability
Abstract
In this document, we provide a survey of P2P (Peer-to-Peer) systems.
The survey includes a definition and several taxonomies of P2P
systems. This survey also includes a description of which types of
applications can be built with P2P technologies and examples of P2P
applications that are currently in use on the Internet. Finally, we
discuss architectural trade-offs and provide guidelines for deciding
whether or not a P2P architecture would be suitable to meet the
requirements of a given application.
Status of This Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the BSD License.
Camarillo & Informational [Page 1]RFC 5694 P2P Architectures November 2009Table of Contents
1. Introduction ....................................................3
2. Definition of a P2P System ......................................3
2.1. Applying the P2P Definition to the DNS .....................5
2.2. Applying the P2P Definition to SIP .........................5
2.3. Applying the P2P Definition to P2PSIP ......................6
2.4. Applying the P2P Definition to BitTorrent ..................7
3. Functions in a P2P System .......................................7
4. Taxonomies for P2P Systems ......................................8
5. P2P Applications ...............................................10
5.1. Content Distribution ......................................10
5.2. Distributed Computing .....................................12
5.3. Collaboration .............................................13
5.4. Platforms .................................................14
6. Architectural Trade-Offs and Guidance ..........................14
7. Security Considerations ........................................16
8. Acknowledgements ...............................................19
9. IAB Members at the Time of This Writing ........................19
10. Informative References ........................................19
Appendix A. Historical Background on Distributed Architectures ...25
Camarillo & Informational [Page 2]RFC 5694 P2P Architectures November 20091. Introduction
P2P (Peer-to-peer) systems have received a great deal of attention in
the last few years. A large number of scientific publications
investigate different aspects of P2P systems, several scientific
conferences explicitly focus on P2P networking, and there is an
Internet Research Task Force (IRTF) Research Group (RG) on P2P
systems (the Peer-to-Peer RG). There are also several commercial and
non-commercial applications that use P2P principles running on the
Internet. Some of these P2P applications are among the most widely
used applications on the Internet at present.
However, despite all the above, engineers designing systems or
developing protocol specifications do not have a common understanding
of P2P systems. More alarming is the fact that many people in the
telecom and datacom industries believe that P2P is synonymous with
illegal activity, such as the illegal exchange of content over the
Internet or P2P botnets.
The goal of this document is to discuss the trade-offs involved in
deciding whether a particular application can be best designed and
implemented using a P2P paradigm or a different model (e.g., a
client-server paradigm). The document also aims to provide
architectural guidelines to assist in making such decisions. This