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.
この文書では、我々は、P2P(ピアツーピア)システムの調査を提供しています。調査では、P2Pシステムの定義といくつかの分類法を含んでいます。この調査ではまた、アプリケーションの種類は、P2P技術とインターネット上で現在使用されているP2Pアプリケーションの例で構築することができたの説明が含まれています。最後に、私たちは、建築のトレードオフを議論し、P2Pアーキテクチャが与えられたアプリケーションの要件を満たすことが適切であるかどうかを決定するためのガイドラインを提供します。
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.
著作権(C)2009 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。
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.
この文書では、BCP 78と、この文書の発行日に有効なIETFドキュメント(http://trustee.ietf.org/license-info)に関連IETFトラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。コードコンポーネントは、トラスト法規定のセクション4.eに記載されており、BSDライセンスで説明したように、保証なしで提供されているよう簡体BSDライセンスのテキストを含める必要があり、この文書から抽出されました。
Table 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
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.
P2P(ピア・ツー・ピア)のシステムは、過去数年間で大きな注目を受けています。科学出版物の多くは、明示的にP2Pネットワークに焦点を当てP2Pシステムの異なる側面、いくつかの科学的な会議を調査し、そこにあるP2Pシステム上のインターネット研究タスクフォース(IRTF)研究グループ(RG)(ピアツーピアRG) 。インターネット上で実行されているP2Pの原則を使用して、いくつかの商用、非商用のアプリケーションもあります。これらのP2Pアプリケーションのいくつかは、現時点では、インターネット上で最も広く使われているアプリケーションの一つです。
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.
しかし、上記のすべてにもかかわらず、エンジニアシステムを設計するか、プロトコル仕様を開発するには、P2Pシステムの共通の理解を持っていません。もっと驚くべきテレコムおよびデータコムの業界で多くの人々がP2Pは違法行為と同義であると信じているという事実は、インターネットやP2Pボットネットを介してコンテンツの違法交換など、です。
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 document provides engineers with a high-level understanding of what defines a P2P system, what types of P2P systems exist, the characteristics that can be expected from such systems, and what types of applications can be implemented using P2P technologies. Such understanding is essential in order to appreciate the trade-offs referred to above. In addition, we stress the importance of the fact that P2P systems can be used to implement perfectly legitimate applications and business models by providing several examples throughout the document.
このドキュメントの目標は、特定のアプリケーションが最高の設計されており、P2Pパラダイムまたは別のモデル(例えば、クライアントサーバパラダイム)を用いて実現することができるかどうかを決定する際に関与トレードオフを議論することです。文書はまた、そのような意思決定を支援するアーキテクチャの指針を提供することを目的とします。この文書は、P2Pシステムを定義するものの高レベルの理解と技術を提供し、どのようなP2Pシステムのタイプは、そのようなシステムから期待することができる特性を存在し、アプリケーションの種類は、P2P技術を用いて実現することができます。このような理解は、上記に言及トレードオフを理解するために不可欠です。また、当社は、P2Pシステムは、文書全体いくつかの例を提供することにより、完全に正当なアプリケーションやビジネスモデルを実装するために使用することができるという事実の重要性を強調する。
In order to discuss P2P systems, we first need a working definition of a P2P system. In this section, we provide such a definition. All discussions in this document apply to systems that comply with that definition. In addition to providing examples of P2P systems, we provide a few examples of systems that comply only partially with the definition and, thus, cannot be strictly considered P2P systems. Since these systems are not fully P2P compliant, some of the discussions in this document may apply to them while others may not. We have chosen to include those examples anyway to stress the fact that P2P and centralized architectures are not completely disjoint alternatives. There are many examples of systems that fall, for instance, somewhere in between a pure P2P system and a centralized one.
P2Pシステムを議論するために、我々は最初のP2Pシステムの実用的な定義が必要です。このセクションでは、我々はそのような定義を提供しています。このドキュメントのすべての議論は、その定義に準拠システムに適用されます。 P2Pシステムの例を提供することに加えて、我々は、部分的にしか定義に準拠システムのいくつかの例を提供し、従って、厳密にP2Pシステムと考えることはできません。これらのシステムは、完全にP2P準拠していないので、他の人はいないかもしれないが、本書では議論のいくつかは、それらに適用される場合があります。私たちは、P2Pと集中アーキテクチャは完全にばらばらの選択肢ではないという事実を強調するために、とにかくこれらの例を含めることを選択しました。どこか純粋なP2Pシステムと集中1の間では、例えば、秋のシステムの多くの例があります。
P2P is a term used in many contexts, sometimes with slightly different meanings. It is possible to find several alternative definitions, which are not all fully equivalent, in the existing scientific literature. If we include other material (e.g., marketing material) in our search for a definition on P2P, the diversity of definitions is even higher.
P2Pは時々わずかに異なる意味で、多くの状況で使用される用語です。既存の科学文献では、すべて完全に同等ではありませんいくつかの代替の定義を、見つけることが可能です。我々はP2P上の定義のためのGoogleの検索では、他の材料(例えば、マーケティング資料)を含める場合は、定義の多様性はさらに高くなります。
The issue is that there is no clear border between a P2P paradigm and other supposedly opposite paradigms such as client-server [Milojicic2002]. In the extremes, some architectures are clearly P2P while others are clearly client-server. However, there are architectures that can be considered to be either or both, depending on the definition for P2P being considered. Consequently, it is important to understand what is common to all definitions of P2P and what are the non-common traits some authors include in their own definitions.
問題は、P2Pパラダイムと、このようなクライアントサーバー[Milojicic2002]など、他のおそらく反対のパラダイムの間に明確な境界が存在しないことです。他の人は明らかに、クライアント - サーバいる間の極端では、いくつかのアーキテクチャは明らかにP2Pです。しかし、検討されているP2Pの定義に応じて、いずれかまたは両方であるとみなすことができるアーキテクチャが、あります。したがって、P2Pのすべての定義に共通しているかを理解することが重要であり、いくつかの作家が独自の定義に含める非共通の特徴ものです。
We consider a system to be P2P if the elements that form the system share their resources in order to provide the service the system has been designed to provide. The elements in the system both provide services to other elements and request services from other elements.
我々は、システムが提供するように設計されたサービスを提供するために、システムの共有とそのリソースを形成する要素ならば、システムがP2Pであると考えています。システム内の要素の両方は、他の要素から他の要素と要求サービスにサービスを提供します。
In principle, all the elements in the system should meet the previous criteria for the system to be considered P2P. However, in practice, a system can have a few exceptions (i.e., a few nodes that do not meet the criteria) and still be considered P2P. For example, a P2P system can still be considered P2P even if it has a centralized enrollment server. On the other hand, some systems divide endpoints between peers and clients. Peers both request and provide services while clients generally only request services. A system where most endpoints behaved as clients could not strictly be considered P2P.
原則的には、システム内のすべての要素がP2P考慮されるべきシステムのために、以前の基準を満たす必要があります。しかし、実際には、システムは、いくつかの例外を除き、まだP2Pとみなされる(基準を満たしていない、すなわち、少数のノード)を持つことができます。例えば、P2Pシステムはまだそれは、集中登録サーバを持っている場合でも、P2P考えることができます。一方、一部のシステムでは、ピアとクライアント間のエンドポイントを分割します。ピアは、要求およびサービス中のクライアントのみ一般要求サービスを提供して両方。ほとんどのエンドポイントがクライアントとして振る舞っシステムは、厳密にP2Pと考えることができませんでした。
Although most definitions do not state it explicitly, many implicitly assume that for a system to be P2P, its nodes need to be involved in transactions that are related to services that do not directly benefit the nodes.
ほとんどの定義が明示的にそれを述べるものではないが、多くは暗黙のうちにシステムのためのP2Pすることを前提とし、そのノードが直接ノードの利益にないサービスに関連する取引に関与していることが必要です。
Some authors add that the elements that form the P2P system, which unsurprisingly are called peers, should be able to communicate directly between themselves without passing intermediaries [Schollmeier2001]. Other authors add that the system should be self organizing and have decentralized control [Roussopoulus2004].
一部の著者は、当然のピアと呼ばれるP2Pシステムを形成する要素は、仲介[Schollmeier2001]を通過することなくそれらの間で直接通信することができなければならないことを追加します。他の著者は、システムが、自己組織化することと、分散制御[Roussopoulus2004]を持っている必要があることを追加します。
Note that the previous definitions are given within the context of a single individual service. A complex service can be made up of several individual services. Some of these individual services can consist of P2P services and some of them can consist of client-server services. For example, a file sharing client may include a P2P client to perform the actual file sharing and a web browser to access additional information on a centralized web server. Additionally, there are architectures where a client-server system can serve as a fallback for a service normally provided by a P2P system, or vice versa.
以前の定義は、単一の個々のサービスのコンテキスト内で与えられていることに注意してください。複雑なサービスは、いくつかの個々のサービスで構成することができます。これらの個々のサービスの一部は、P2Pサービスで構成でき、そのうちのいくつかは、クライアント・サーバ・サービスで構成することができます。たとえば、ファイル共有クライアントは、実際のファイル共有と集中、Webサーバー上の追加情報にアクセスするには、Webブラウザを実行するためにP2Pクライアントを含むことができます。また、クライアントサーバシステムは、通常、P2Pシステム、またはその逆によって提供されるサービスのための代替として機能することができアーキテクチャがあります。
Providing a service typically involves processing or storing data. According to our definition, in a P2P system, peers share their processing and storage capacity (i.e., their hardware and software resources) so that the system can provide a service. For example, if the service to be provided is a file distribution service, different peers within the system will store different files. When a given peer wants to get a particular file, the peer will first discover which peer or peers have that file and then obtain the file from those peers.
サービスを提供することは一般的に処理または格納データを含みます。システムがサービスを提供することができるように、我々の定義によると、P2Pシステムでは、ピアは、それらの処理および記憶能力(すなわち、それらのハードウェアおよびソフトウェアリソース)を共有します。たとえば、サービスが提供される場合は、ファイル配信サービスで、システム内の異なるピアは異なるファイルを保存します。与えられたピアが特定のファイルを取得したい場合には、ピアは、最初にそのファイルを持っているピアまたはピア発見し、それらのピアからファイルを取得します。
The definition for P2P provides us with a criterion to decide whether or not a system is P2P. As examples, in the following sections we apply the definition to the DNS, SIP, P2PSIP, and BitTorrent and discuss which of these systems are P2P.
P2Pの定義は、システムがP2Pであるかどうかを決定するための基準を提供してくれます。例として、次のセクションでは、我々はDNS、SIP、P2PSIP、およびBitTorrentのに定義を適用し、P2Pあり、これらのシステムのどの議論します。
The DNS is a hierarchical distributed system that has sometimes been classified as a hierarchical client-server system and sometimes as a P2P system [Milojicic2002]. According to our definition, the DNS is not a P2P system because DNS resolvers are service requesters but not service providers. The elements in a system need to be both service requesters and service providers for the system to be considered P2P.
DNSは、時々、階層クライアントサーバシステムとして、時にはP2Pシステム[Milojicic2002]として分類された階層型分散システムです。 DNSリゾルバは、サービス要求者ではなく、サービス・プロバイダーであるため、私たちの定義によれば、DNSは、P2Pシステムではありません。システムの構成要素は、P2Pを考慮すべきシステムの両方のサービス・リクエスターとサービス・プロバイダーである必要があります。
SIP [RFC3261] is a rendezvous protocol that allows a user to locate a remote user and establish a communication session with that remote user. Once the remote user is located, sessions are established in a similar way in all SIP systems: directly between the nodes involved in the session. However, the rendezvous function can be implemented in different ways: the traditional SIP way and the P2P way. This section discusses the former. Section 2.3 discusses the latter.
SIP [RFC3261]は、ユーザがリモートユーザを特定し、そのリモートユーザとの通信セッションを確立することを可能にするランデブープロトコルです。リモートユーザが位置されると、セッションは、すべてのSIPシステムにおいて同様に確立される:直接セッションに関与するノード間。伝統的なSIPの道であり、P2Pの道:しかし、ランデブー機能は、さまざまな方法で実現することができます。このセクションでは、前者について説明します。 2.3節では、後者について説明します。
In traditional SIP, a central server is typically responsible for a DNS domain. User agents in the domain register with the server. This way, when a user agent wants to communicate with a remote user agent in the same domain, the user agent consults the server, which returns the contact information of the remote user agent. Session establishment occurs directly between the user agents, without the involvement of the server.
伝統的なSIPでは、中央サーバは通常、DNSドメインを担当しています。ドメイン内のユーザーエージェントは、サーバーに登録されます。ユーザエージェントは、同じドメイン内のリモートユーザーエージェントと通信したい場合は、この方法では、ユーザエージェントは、リモートユーザーエージェントの連絡先情報を返すサーバーを、相談します。セッション確立は、サーバーの関与なしに、ユーザーエージェントとの間で直接行われます。
Inter-domain communications in SIP are implemented using server federations. The servers responsible for each domain form a federation in which they can communicate with each other. This way, when a user agent wants to communicate with a remote user agent in a different domain, the user agent consults its local server, which in turn consults the server responsible for the remote user agent's domain.
SIPにおけるドメイン間の通信は、サーバー連合を使用して実装されています。各ドメインを担当するサーバーは、相互に通信可能な連携を形成します。この方法では、ユーザエージェントが別のドメイン内のリモートユーザーエージェントと通信したいとき、ユーザーエージェントは、順番に、リモートユーザーエージェントのドメインを担当するサーバーを調べ、そのローカルサーバーを参照します。
SIP user agents act as both clients and servers. A given user agent can act as a client in a particular transaction and as a server in a subsequent transaction. However, traditional SIP cannot be considered a P2P system because user agents only share their resources for their own benefit. That is, a given user agent is only involved in transactions related to a service that benefits (somehow) the user agent itself. For example, any given user agent is only involved in SIP INVITE transactions intended to establish sessions that involve the user agent. For a system to be P2P, its nodes need to be involved in transactions that benefit others, that is, transactions that are related to services that do not benefit the nodes directly.
SIPユーザエージェントは、クライアントとサーバーの両方として機能します。指定されたユーザー・エージェントは、特定のトランザクションにおけるクライアントとして、その後の取引でサーバとして機能することができます。ユーザエージェントのみが、自分の利益のためにリソースを共有するためしかし、伝統的なSIPはP2Pシステムと考えることはできません。これは、特定のユーザー・エージェントは、のみ(何とか)ユーザエージェント自体に利益をもたらすサービスに関連する取引に関与している、です。例えば、任意のユーザエージェントは、SIPにユーザーエージェントを伴うセッションを確立することを目的と取引を招待のみ関与しています。 P2Pするシステムについて、そのノードが他の人に利益をもたらす取引に関与する必要がある、それは、直接ノードの利益にないサービスに関連する取引です。
In addition to the traditional way of using SIP, SIP can also be used in a way that is generally referred to as P2PSIP (P2PSIP is the name of the IETF working group developing the technology). In P2PSIP, user agents do not register their contact information with a central server. Instead, they register it with an overlay formed by the user agents in the system. This way, when a user agent wants to communicate with a remote user agent, the user agent consults the overlay, which returns the contact information of the remote user agent. Session establishment occurs, as usual, directly between the user agents. P2PSIP is a P2P system because nodes share their resources by storing data that is not related to them (i.e., contact information of different user agents) and are involved in transactions that are related to services that do not revert directly to the nodes themselves (e.g., the rendezvous of two remote user agents).
SIPを使用する従来の方法に加えて、SIPは、一般P2PSIP(P2PSIPの技術を開発IETFワーキンググループの名前である)と呼ばれる方法で使用することができます。 P2PSIPでは、ユーザエージェントは、中央サーバに自分の連絡先情報を登録しません。代わりに、彼らは、システム内のユーザエージェントによって形成されたオーバーレイに登録します。ユーザエージェントは、リモートユーザーエージェントと通信したい場合、この方法は、ユーザエージェントは、リモートユーザーエージェントの連絡先情報を返すオーバーレイを調べ。セッションの確立には、直接ユーザーエージェントとの間で、いつものように、発生します。ノードは、それらに関連していないデータを格納することによって(すなわち、異なるユーザーエージェントの情報を連絡)そのリソースを共有し、ノード自身に直接戻らないサービスに関連する取引に関与しているので、P2PSIPは、P2Pシステムである(例えば、2つのリモートユーザエージェントのランデブー)。
BitTorrent [BitTorrent] is a protocol used to distribute files. The group of endpoints involved in the distribution of a particular file is called a swarm. The file is divided into several pieces. An endpoint interested in the file needs to download all the pieces of the file from other endpoints in the swarm. Endpoints downloading pieces of the file also upload pieces they already have to other endpoints in the swarm. An endpoint that both downloads (because it does not have the complete file yet) and uploads pieces is called a leecher (note that this definition is counterintuitive because, in other contexts, a leecher normally means someone that takes but does not give). When an endpoint has the whole file (i.e., it has all the pieces of the file), it does not need to download any pieces any longer. Therefore, it only uploads pieces to other endpoints. Such an endpoint is called a seeder.
BitTorrentは[BitTorrentの]ファイルを配布するために使用されるプロトコルです。特定のファイルの配布に関与するエンドポイントのグループが群れと呼ばれています。ファイルは、いくつかの部分に分かれています。ファイルに興味のエンドポイントは、群れの他のエンドポイントからのファイルのすべての部分をダウンロードする必要があります。ファイルの断片をダウンロードするエンドポイントはまた、彼らはすでに群れ内の他のエンドポイントに持って作品をアップロードします。 (それはまだ完全なファイルを持っていないため)の両方のダウンロードエンドポイントとアップロード片は(他の文脈では、リーチャが正常にかかりますが、与えていない人を意味し、ので、この定義は直観に反していることに注意してください)リーチャと呼ばれています。エンドポイントは(すなわち、それはファイルのすべての部分を持っている)、ファイル全体を持っている場合、それはもはやどんな作品をダウンロードする必要はありません。したがって、それだけで、他のエンドポイントに作品をアップロードします。このようなエンドポイントはシーダと呼ばれています。
BitTorrent systems are P2P systems because endpoints request services from other endpoints (i.e., download pieces from other endpoints) and provide services to other endpoints (i.e., upload pieces to other endpoints). Note, however, that a particular swarm where most endpoints were infrastructure nodes that had the complete file from the beginning and, thus, acted all the time as seeders could not be strictly considered a P2P system because most endpoints would only be providing services, not requesting them.
他のエンドポイント(すなわち、他のエンドポイントからダウンロード個)と他のエンドポイントに提供するサービスエンドポイントから要求サービス(すなわち、他のエンドポイント個をアップロード)ためのBitTorrentシステムは、P2Pシステムです。ほとんどのエンドポイントはサービスだけを提供していることになるので、シーダーは、厳密にP2Pシステムと考えることができなかったとして、ほとんどのエンドポイントは、このように、最初から完全なファイルを持っていたし、インフラストラクチャ・ノードをした特定の群れは、すべての時間を務めたこと、しかし、ではないに注意してくださいそれらを要求します。
P2P systems include several functions. The following functions are independent of the service provided by the P2P system. They handle how peers connect to the system.
P2Pシステムでは、いくつかの機能が含まれています。以下の機能は、P2Pシステムが提供するサービスとは無関係です。彼らは、ピアがシステムに接続する方法扱います。
o Enrollment function: nodes joining a P2P system need to obtain valid credentials to join the system. The enrollment function handles node authentication and authorization.
O登録機能:P2Pシステムに参加するノードがシステムに参加する有効な資格情報を取得する必要があります。登録機能は、ノード認証と承認を処理します。
o Peer discovery function: in order to join a P2P system (i.e., to become a peer), a node needs to establish a connection with one or more peers that are already part of the system. The peer discovery function allows nodes to discover peers in the system in order to connect to them.
ピア発見機能O:P2Pシステムに参加するために(すなわち、ピアになるように)、ノードは既にシステムの一部である1つの以上のピアとの接続を確立する必要があります。ピア発見機能は、ノードがそれらに接続するために、システム内のピアを発見することができます。
The functions above are provided in a centralized way in some P2P systems (e.g., through a central enrollment server and a central peer discovery server, which is sometimes called a bootstrap server). Taxonomies for P2P systems, which will be discussed in Section 4, do
関数は、上記(中央登録サーバ、時にはブートストラップ・サーバと呼ばれる中央のピア発見サーバを介して例えば、)いくつかのP2Pシステムで一元的に設けられています。第4節で議論されるP2Pシステムのための分類法、ん
not consider these functions when classifying P2P systems. Instead, they classify P2P systems based on how the following set of functions are implemented.
P2Pシステムを分類する際に、これらの機能を考慮していません。その代わりに、彼らは、関数の次のセットが実装されている方法に基づいてP2Pシステムを分類します。
The following functions depend on the service provided by the P2P system. That is, not all P2P systems implement all functions. For example, a P2P system used only for storing data may not implement the computing function. In another example, a P2P system used only for computing may not implement the data storage function. Also, some of these functions are implemented in a centralized way in some P2P systems.
以下の機能は、P2Pシステムによって提供されるサービスに依存しています。つまり、すべてのP2Pシステムは、すべての機能を実装して、ではありません。例えば、データのみを格納するために使用されるP2Pシステムは、コンピューティング機能を実装しなくてもよいです。別の例では、唯一の計算に使用されるP2Pシステムは、データストレージ機能を実装していてもよいです。また、これらの機能のいくつかは、いくつかのP2Pシステムで一元的に実装されています。
o Data indexing function: it deals with indexing the data stored in the system.
Oデータのインデックス作成機能:それは、システムに格納されたデータをインデックスを扱います。
o Data storage function: it deals with storing and retrieving data from the system.
Oデータストレージ機能:それは保存し、システムからデータを取得を扱います。
o Computation function: it deals with the computing performed by the system. Such computing can be related to, among other things, data processing or real-time media processing.
O演算機能:それはシステムによって実行されるコンピューティングを扱っています。このようなコンピューティングは、他のものの間で、データ処理やリアルタイムのメディア処理に関連することができます。
o Message transport function: it deals with message exchanges between peers. Depending on how this function is implemented, peers can exchange protocol messages through a central server, directly between themselves, or through peers that provide overlay routing.
Oメッセージ輸送機能:それはピア間のメッセージ交換を扱います。この機能が実装されている方法によっては、ピアは直接自分たちの間で、またはオーバーレイルーティングを提供ピアを通じて、中央サーバを介してプロトコルメッセージを交換することができます。
Depending on the service being provided, some of the functions above may not be needed. Section 5 discusses different types of P2P applications, which implement different services.
提供されるサービスによっては、上記の機能の一部が必要とされなくてもよいです。第5節では、さまざまなサービスを実現するP2Pアプリケーションの種類を、説明します。
Taxonomies classify elements into groups so that they can be studied more easily. People studying similar elements can focus on common problem sets. Taxonomies also provide common terminology that is useful when discussing issues related to individual elements and groups of elements within a given taxonomy. In this section, we provide a few taxonomies for P2P systems in order to facilitate their study and to present such a common terminology.
分類法は、彼らがより簡単に調べることができるように、グループ内の要素を分類します。同様の要素を勉強人々が共通の問題セットに焦点を当てることができます。分類法はまた、与えられた分類内の個々の要素および要素のグループに関連する問題を議論する際に有用である一般的な用語を提供します。このセクションでは、我々は彼らの研究を容易にすると、このような共通の用語を提示するために、P2Pシステムのためのいくつかの分類法を提供しています。
Given that different authors cannot seem to agree on a single common definition for P2P, the fact that there are also many different taxonomies of P2P systems should not come as a surprise. While classifying P2P systems according to different traits is something normal, the fact that different authors use the same term to indicate different things (e.g., first and second generation P2P systems mean different things for different authors) sometimes confuses readers.
異なる著者らはP2Pのための単一の共通の定義に同意するように見えることができないことを考えると、P2Pシステムのさまざまな分類法もあるという事実は驚きとして来るべきではありません。異なる特性に応じたP2Pシステムを分類すると、通常の何かがある一方で、別の作者が異なることを示すために、同じ用語を使用しているという事実は、(例えば、第一および第二世代のP2Pシステムは、異なる作者ごとに異なるものを意味する)ときには、読者を混乱させる。
Arguably, the most useful classification of P2P systems has to do with the way data is indexed. That is, how the data indexing function is implemented. A P2P index can be centralized, local, or distributed [RFC4981]. With a centralized index, a central server keeps references to the data in all peers. With a local index, each peer only keeps references to its own data. With a distributed index, references to data reside at several nodes. Napster, early versions of Gnutella (up to version 0.4), and Distributed Hash Table (DHT)-based systems are examples of centralized, local, and distributed indexes, respectively.
おそらく、P2Pシステムの最も有用な分類はデータがインデックス化されている方法に関係しています。つまり、データのインデックス作成機能が実装されているか、です。 P2Pインデックスは、ローカル、集中、または[RFC4981]に分布させることができます。集中型のインデックスでは、中央サーバは、すべてのピア内のデータへの参照を保持します。ローカル索引では、各ピアは、自身のデータへの参照を保持します。分散インデックスを使用すると、データへの参照は、複数のノードに存在します。 Napsterは、(バージョン0.4まで)グヌーテラの初期バージョン、および分散ハッシュテーブル(DHT)ベースのシステムは、それぞれ、集中ローカル、および分散インデックスの一例です。
Indexes can also be classified into semantic and semantic-free. A semantic index can capture relationships between documents and their metadata whereas a semantic-free index cannot [RFC4981]. While semantic indexes allow for richer searches, they sometimes (depending on their implementation) fail to find the data even if it is actually in the system.
インデックスはまた、セマンティックとセマンティックフリーに分類することができます。セマンティックインデックスは、ドキュメントと意味のないインデックスことはできません[RFC4981]のに対し、そのメタデータ間の関係をキャプチャすることができます。セマンティックインデックスは、より豊かな検索を可能にしながら、時には彼ら(その実装に依存する)は、それがシステムに実際にある場合でも、データを見つけることができません。
Some authors classify P2P systems by their level of decentralization. Hybrid P2P systems need a central entity to provide their services while pure P2P systems can continue to provide their services even if any single peer is removed from the system [Schollmeier2001]. According to this definition, P2P systems with a centralized index are hybrid P2P systems while systems with local and distributed indexes are pure P2P systems.
一部の著者は、地方分権のレベルによってP2Pシステムを分類します。ハイブリッドP2Pシステムは、純粋なP2Pシステムは、任意の単一のピアがシステム[Schollmeier2001]から削除された場合でも、それらのサービスを提供し続けることができるが、それらのサービスを提供する中央エンティティを必要とします。ローカルおよび分散インデックスを持つシステムは、純粋なP2Pシステムでありながら、この定義によれば、集中インデックスのP2Pシステムは、ハイブリッドP2Pシステムです。
Still, some authors classify pure P2P systems by the level of structure they show [Alima2005]. In unstructured systems, peers join the system by connecting themselves to any other existing peers. In structured systems, peers join the system by connecting themselves to well-defined peers based on their logical identifiers. The distinction between early unstructured systems (e.g., early versions of Gnutella), which used local indexes and had no structure at all, and structured systems (e.g., the DHT-based systems), which used distributed indexes and had a well-defined structure, was fairly clear. However, unstructured systems have evolved and now show a certain level of structure (e.g., some systems have special nodes with more functionality) and use distributed indexes. Therefore, the border between unstructured and structured is somewhat blurry.
それでも、いくつかの著者は、彼らが[Alima2005]示した構造のレベルによって、純粋なP2Pシステムを分類します。構造化されていないシステムでは、ピアは、他の既存のピアに自身を接続することによって、システムに参加します。構造化されたシステムでは、ピアはそれらの論理識別子に基づいて明確に定義されたピアに自身を接続することによって、システムに参加します。分散インデックスを使用し、明確に定義された構造を有していたローカル索引を使用し、全く構造を有していなかった初期の構造化されていないシステム(グヌーテラの例えば、初期のバージョン)、および構造化システム(例えば、DHTベースのシステム)との間の区別、かなり明らかになりました。しかしながら、構造化されていないシステムが進化してきたし、今構造の特定のレベルを示している(例えば、いくつかのシステムは、より多くの機能を持つ特殊なノードを持っている)と分散インデックスを使用します。したがって、非構造化および構造化された境界は、幾分ぼやけています。
Some authors refer to different generations of P2P systems. For some, the first, second, and third generations consist of P2P systems using centralized indexes, flooding-based searches (i.e., using local indexes), and DHTs (i.e., DHT-based distributed indexes), respectively [Foster2003]. Other authors consider that second generation systems can also have non-DHT-based distributed indexes [Zhang2006]. Yet for other authors, the first and second generations consist of P2P systems using unstructured (typically using flooding-based searched) and structured (e.g., DHT-based) routing, respectively [RFC4981]. Talking about generations of P2P systems in a technical context is not useful (as stated previously, it is more useful to classify systems based on how they index data) because different generations are defined in different ways depending on the author and because talking about generations gives the impression that later generations are better than earlier ones. Depending on the application to be implemented, a P2P system of an earlier generation may meet the application's requirements in a better way than a system of a later generation.
一部の著者は、P2Pシステムの異なる世代を参照してください。いくつかのために、第一、第二、および第三世代(即ち、ローカル索引を使用して)集中インデックス、フラッディングベースの検索を使用して、P2Pシステムから成り、そしてのDHT(すなわち、DHTベースの分散インデックス)、それぞれ[Foster2003]。他の著者は、[Zhang2006]第二世代システムはまた、非DHTベースの分散インデックスを持つことができると考えています。さらに他の著者のために、第一及び第二世代は、非構造化(典型的には、フラッディング・ベースの検索を使用して)および構造(例えば、DHTに基づく)は、それぞれのルーティング、[RFC4981]を用いてP2Pシステムから成ります。技術的な文脈でのP2Pシステムの世代について話すことは有用ではありません異なる世代が著者に応じて、異なる方法で定義されているためとの世代の話をすることはできますので、(前述のように、どのようにインデックスデータに基づいてシステムを分類する方が便利です)後の世代は、以前のものよりも優れているという印象。実装するアプリケーションに応じて、以前の世代のP2Pシステムは、後世代のシステムよりも優れた方法で、アプリケーションの要件を満たすことがあります。
As discussed in Section 3, the previous taxonomies do not consider the enrollment and the peer discovery functions. For example, a pure P2P system would still be considered pure even if it had centralized enrollment and peer discovery servers.
第3節で述べたように、以前の分類法は、登録してピア発見機能を考慮していません。例えば、純粋なP2Pシステムはまだそれが登録してピア発見サーバを集中していた場合でも、純粋であると考えられます。
P2P applications developed so far can be classified into the following domains [Pourebrahimi2005] [Milojicic2002]: content distribution, distributed computing, collaboration, and platforms.
コンテンツ配信、分散コンピューティング、コラボレーション、およびプラットフォーム:これまでに開発されたP2Pアプリケーションは、以下のドメイン[Pourebrahimi2005] [Milojicic2002]に分類することができます。
When most people think of P2P, they think of file sharing. Moreover, they think of illegal file sharing where users exchange material (e.g., songs, movies, and software in digital format) they are not legally authorized to distribute. However, despite people's perception, P2P file sharing systems are not intrinsically illegal.
ほとんどの人がP2Pについて考えるとき、彼らはファイル共有を考えます。また、彼らは、彼らが合法的に配布することが許可されていないユーザは、(デジタル形式で、例えば、歌、映画、およびソフトウェア)材料を交換する違法なファイル共有を考えます。しかし、人々の認識にもかかわらず、P2Pファイル共有システムは、本質的に違法ではありません。
P2P file sharing applications provide one out of many means to store and distribute content on the Internet. HTTP [RFC2616] and FTP [RFC0959] servers are examples of other content distribution mechanisms. People would not claim that HTTP is an illegal mechanism just because a number of users upload material that cannot be legally distributed to an HTTP server where other users can download it. The same way, it is misleading to claim that P2P is illegal just because some users use it for illegal purposes.
P2Pファイル共有アプリケーションは、インターネット上のコンテンツを格納して配布するために多くの手段のうちの1を提供しています。 HTTP [RFC2616]及びFTP [RFC0959]サーバーは、他のコンテンツ配信メカニズムの例です。人々は、HTTPは、ユーザーの数が法的に他のユーザーがそれをダウンロードすることができますHTTPサーバに配布することができない材料をアップロードするからといって違法メカニズムであることを主張しないでしょう。同じように、いくつかのユーザーが違法な目的のためにそれを使用するという理由だけでP2Pが違法であることを特徴とする誤解を招く恐れがあります。
P2P content distribution systems are used to implement legitimate applications and business models that take advantage of the characteristics of these P2P systems. Examples of legitimate uses of these systems include the distribution of pre-recorded TV programs
P2Pコンテンツ配信システムは、これらのP2Pシステムの特性を利用する正当なアプリケーションやビジネスモデルを実装するために使用されています。これらのシステムの合法的な用途の例には、事前に録画したテレビ番組の配信を含めます
[Rodriguez2005], Linux distributions [Rodriguez2005], game updates [WoW], and live TV [Peltotalo2008] [Octoshape] by parties legally authorized to distribute that content (e.g., the content owner).
[Rodriguez2005]、Linuxディストリビューション[Rodriguez2005]、ゲームのアップデート[すごい]、およびライブTV [Peltotalo2008] [Octoshape]合法的に(例えば、コンテンツ所有者)は、そのコンテンツを配信する権限を当事者による。
The main advantage of P2P content distribution systems is their scalability. In general, the more popular the content handled, the more scalable the P2P system is. The peer that has the original content (i.e., the owner of a file or the source of an audio or video stream) distributes it to a fraction of the peers interested in the content, and these peers in turn distribute it to other peers also interested in the content. Note that, in general, there is no requirement for peers distributing content to be able to access it (e.g., the content may be encrypted so that peers without the decryption key are content distributors but not content consumers). Peers can distribute content to other peers in different ways. For example, they can distribute the whole content, pieces of the content (i.e., swarming), or linear combinations of pieces of content [Gkantsidis2005]. In any case, the end result is that the peer with the original content does not need to distribute the whole content to all the peers interested in it, as it would be the case when using a centralized server. Therefore, the capacity of the system is not limited by the processing capacity and the bandwidth of the peer with the original content and, thus, the quality of the whole service increases.
P2Pコンテンツ配信システムの主な利点は、そのスケーラビリティです。一般的に、より多くの人気のあるコンテンツは、よりスケーラブルなP2Pシステムは、処理されます。興味も元のコンテンツ(すなわち、ファイルまたはオーディオまたはビデオストリームの元の所有者)は、コンテンツに興味がピアの画分に分配され、ひいてはこれらのピアは他のピアに配布ピアコンテンツインチ一般的に、それにアクセスできるようにコンテンツを配信ピアの必要はないことに留意されたい(例えば、コンテンツは、復号鍵なしでピアがコンテンツディストリビュータが、コンテンツではない消費者になるように暗号化されてもよいです)。ピアは、さまざまな方法で他のピアにコンテンツを配信することができます。例えば、それらは全体のコンテンツ、コンテンツのピース(すなわち、スウォーミング)、またはコンテンツのピース[Gkantsidis2005]の線形結合を分配することができます。いずれの場合においても、最終的な結果は、中央サーバを使用する場合、それは場合のように元のコンテンツを有するピアは、それに興味を持ってすべてのピアにコンテンツ全体を配信する必要がないことです。したがって、システムの容量は、処理能力と元のコンテンツとのピアと、従って、全体のサービス増加の品質の帯域幅によって限定されるものではありません。
An important area that determines the characteristics of a P2P distribution system is its peer selection process. Interestingly, the different parties involved in the distribution have different views on how peers should be selected. Users are interested in connecting to peers that have the content they want and also have high bandwidth and processing capacity, and low latency so that transfers are faster. The Content Delivery Network (CDN) operator wants peers to connect first to the peers who have the rarest pieces of the content being distributed in order to improve the reliability of the system (in case those peers with the rare pieces of content leave the system). Network operators prefer peers to perform local transfers within their network so that their peering and transit agreements are not negatively affected (i.e., by downloading content from a remote network despite of the content being available locally). Sometimes, all these requirements can be met at the same time (e.g., a peer with a rare piece of content has high bandwidth and processing capacity and is in the local network). However, other times the system can just try and reach acceptable trade-offs when selecting peers. These issues were the subject of the IETF P2P Infrastructure (P2PI) workshop held in 2008.
P2P配信システムの特性を決定する重要な領域は、ピア選択プロセスです。興味深いことに、流通に関わるさまざまな関係者は、ピアが選択されるべきかについて異なる見解を持っています。転送が速くなるように、ユーザーは、彼らが望むコンテンツを有し、また、高い帯域幅や処理能力、および低遅延を持っているピアへの接続に興味を持っています。コンテンツ配信ネットワーク(CDN)演算子は、(場合には、コンテンツの希少な作品とのそれらのピアがシステムを離れる)ピアがシステムの信頼性を向上させるために分散されているコンテンツの最も希少な作品を持っているピアに最初に接続したいです。ネットワークオペレータは、そのピアリングとトランジット協定が負(すなわち、局所的に利用可能であるコンテンツのにもかかわらず、遠隔ネットワークからコンテンツをダウンロードすることにより)影響されないように、そのネットワーク内のローカル転送を実行するためにピアを好みます。時々、全てのこれらの要件を同時に満たすことができる(例えば、コンテンツの稀な部分を有するピアは、高帯域幅および処理能力を有しており、ローカルネットワーク内にあります)。しかし、他の回のシステムは、単に試してみて、ピアを選択する際に許容可能なトレードオフに到達することができます。これらの問題は、2008年に開催されたIETF P2P基盤(P2PI)ワークショップの対象となりました。
Network operators also find that, depending on the dimensioning of their networks (e.g., where the bottlenecks are), the different traffic patterns generated by P2P or centralized CDNs can be more or less easily accommodated by the network [Huang2007].
ネットワークオペレータはまた、[Huang2007]そのネットワークの寸法に応じて(例えば、ボトルネックがある場合)、P2Pまたは集中のCDNによって生成された異なるトラフィックパターンが多少容易にネットワークに収容することができ、それを見つけます。
An example of a sensor network based on P2P content distribution and Delay-tolerant Networking (DTL) is ZebraNet [Juang2002]. ZebraNet is a network used to track zebras in the wild. Each zebra carries a tracking collar that gathers data about the zebra (e.g., its position) at different times. Mobile stations communicate wirelessly with the collars in order to gather and consolidate data from different zebras. Since not all the zebras get close enough to a mobile station for their collars to be able to communicate with the station, the collars communicate among them exchanging the data they have gathered. In this way, a given collar provides the mobile station with data from different zebras, some of which may never get close enough to the mobile station. P2P networks are especially useful in situations where it is impossible to deploy a communication infrastructure (e.g., due to national park regulations or potential vandalism) such as in the previous example or when tracking reindeers in Lapland [SNC] (this project has focused on DTNs more than on P2P so far, but some of its main constraints are similar to the ones in ZebraNet). Note however that sensor networks such as ZebraNet cannot be strictly considered P2P because the only node issuing service requests (i.e., the only node interested in receiving data) is a central node (i.e., the mobile station).
P2Pコンテンツ配信及び遅延耐性ネットワーク(DTL)に基づいて、センサネットワークの例は、[Juang2002]のZebraNetあります。 ZebraNetは野生でシマウマを追跡するために使用されるネットワークです。各ゼブラは、異なる時間においてゼブラ(例えば、その位置)に関するデータを収集、追跡カラーを運びます。移動局は、異なるシマウマからのデータを収集し、統合するために首輪と無線で通信します。いないすべてのシマウマは、局と通信することができることは自分の襟のための移動局に十分近い取得するので、カラーは、彼らが収集したデータを交換するそれらの間で通信を行います。このように、与えられたカラーは、移動局に十分近い取得することはありませんがあり、その一部異なるシマウマからのデータを、移動局を提供します。 P2Pネットワークでは、前の例のように、(原因国立公園の規制や潜在的な破壊行為に例えば、)通信インフラストラクチャを展開することは不可能である状況において特に有用であるかのラップランド[SNC]でトナカイを追跡するとき(このプロジェクトはDTNsに焦点を当てていますP2P上のより多くのこれまでのところ、その主な制約のいくつかはのZebraNet中のもの)に似ています。唯一のノードがサービス要求を発行するためのノートは、しかし、そのようなのZebraNetとしてそのセンサネットワークは、厳密に(すなわち、データを受信することに興味を持ってのみノード)が中央ノード(すなわち、移動局)は、P2Pと考えることができません。
In P2P distributed computing, each task is divided into independent subtasks that can be completed in parallel (i.e., no inter-task communication) and delivered to a peer. The peer completes the subtask using its resources and returns the result. When all the subtasks are completed, their results are combined to obtain the result of the original task.
P2P分散コンピューティングでは、各タスクを並列的に完了(すなわち、無タスク間通信)およびピアに送達することができる独立したサブタスクに分割されています。ピアはそのリソースを使用してサブタスクを完了し、結果を返します。すべてのサブタスクが終了すると、その結果は、元のタスクの結果を得るために組み合わされます。
Peers in P2P distributed computing systems are typically distributed geographically and are connected among them through wide-area networks. Conversely, in cluster computing, nodes in a cluster are typically physically close to each other (often in the same room) and have excellent communication capabilities among themselves. Consequently, computer clusters can divide tasks into subtasks that are not completely independent from one another and that cannot be completed in parallel. The excellent communication capabilities among the nodes in the cluster make it possible to synchronize the completion of such tasks. Since computers in a cluster are so tightly integrated, cluster computing techniques are not typically considered P2P networking.
P2P分散コンピューティングシステム内のピアは、典型的には、地理的に分散され、広域ネットワークを介してそれらの間で接続されています。逆に、クラスタコンピューティングでは、クラスタ内のノードは、典型的には、互いに物理的に近接している(多くの場合、同じ部屋で)それ自体の中で優れた通信機能を有しています。したがって、コンピュータ・クラスタは、互いに完全に独立しておらず、それが並列に完了することができないサブタスクにタスクを分割することができます。クラスタ内のノード間の優れた通信機能は、それが可能このようなタスクの完了を同期させるようにします。クラスタ内のコンピュータがそのように緊密に統合されているので、クラスタコンピューティング技術は、典型的には、P2Pネットワークとは見なされません。
The main advantage of P2P distributed computing systems is that a number of regular computers can deliver the performance of a much more powerful (and typically expensive) computer. Nevertheless, at present, P2P distributed computing can only be applied to tasks that can be divided into independent subtasks that can be completed in parallel. Tasks that do not show this characteristic are better performed by a single powerful computer.
P2P分散コンピューティング・システムの主な利点は、通常のコンピュータの数がはるかに強力な(と一般的に高価な)、コンピュータのパフォーマンスを提供できることです。それにもかかわらず、現在、P2P分散コンピューティングは、並行して完了することができる独立したサブタスクに分割することができるタスクに適用することができます。この特性を表示しないタスクが良く、単一の強力なコンピュータによって実行されています。
Note that even though distributed computing, in general, can be considered P2P (which is why we have included it in this section as an example of a P2P application), most current systems whose main focus is distributed computing do not fully comply with the definition for P2P provided in Section 2. The reason is that, in those systems, service requests are typically generated only by a central node. That is, most nodes do not generate service requests (i.e., create tasks). This is why Grid computing [Foster1999] cannot be strictly considered P2P [Lua2005]. Another well-known example that cannot strictly be considered P2P either is SETI@home (Search for Extra-Terrestrial Intelligence) [Seti], where the resources of many computers are used to analyze radio telescope data. MapReduce [Dean2004], a programming model for processing large data sets, cannot strictly be considered P2P either, for the same reason. On the other hand, a number of collaboration applications implement distributed computing functions in a P2P way (see Section 5.3).
分散コンピューティングは、一般的には、(我々はP2Pアプリケーションの例として、このセクションでそれが含まれている理由である)P2P考えることができるにもかかわらず、その主な焦点コンピューティングを分散さほとんどの現在のシステムは、完全な定義に準拠していないことに注意してください第2に設けられたP2P理由は、これらのシステムでは、サービス要求は、典型的にのみ中央ノードによって生成される、ということです。それはほとんどのノードには(すなわち、タスクを作成)サービス要求を生成しない、です。グリッドコンピューティング[Foster1999]厳密にP2P [Lua2005]と考えることができない理由です。厳密にP2Pどちらかと考えることができない別のよく知られた例は、多くのコンピュータのリソースが電波望遠鏡のデータを分析するために使用されているSETI @ homeの(地球外知的生命体探査)[セティ]、です。 MapReduceは[Dean2004]、大きなデータセットを処理するためのプログラミング・モデルは、厳密に同じ理由で、いずれかのP2P考えることはできません。一方、コラボレーション・アプリケーションの数は、P2Pの方法で分散コンピューティング機能を実装(セクション5.3を参照)。
Another form of distributed computing that cannot be strictly considered P2P (despite its name) are P2P botnets [Grizzard2007]. In P2P botnets, service requests, which usually consist of generating spam or launching Distributed Denial-of-Service (DDoS) attacks, are typically generated by a central node (or a few central nodes); that is why they cannot be strictly considered P2P. An example of this type of P2P botnet that propagates using a DHT-based overlay is the Storm botnet [Kanich2008]. In addition to their distributed propagation techniques, some P2P botnets also use a distributed command and control channel, which makes it more difficult to combat them than traditional botnets using centralized channels [Cooke2005]. DHT-based overlays can also be used to support the configuration of different types of radio access networks [Oechsner2006].
厳密P2P(その名前にもかかわらず)と考えることができない分散コンピューティングの他の形態[Grizzard2007] P2Pボットネットです。通常、スパムを生成するか、分散サービス拒否(DDoS)攻撃の攻撃を起動から成るP2Pボットネット、サービス要求において、典型的には中央ノード(または少数の中央ノード)によって生成されます。彼らは厳密にP2Pと考えることができない理由です。 DHTに基づくオーバレイを用いて伝搬P2Pボットネットのこのタイプの例は、ストームボットネット[Kanich2008]です。それらの分散伝搬技法に加えて、いくつかのP2Pボットネットはまた、より困難に集中チャネル[Cooke2005]を使用して伝統的なボットネットよりもそれらに対抗することを可能にする分散コマンドおよび制御チャネルを使用します。 DHTベースのオーバーレイは、無線アクセスネットワークの異なるタイプ[Oechsner2006]の設定をサポートするために使用することができます。
P2P collaboration applications include communication applications such as Voice over IP (VoIP) and Instant Messaging (IM) applications. Section 2.3 included discussions on P2PSIP systems, which are an example of a standard-based P2P collaboration application. There are also proprietary P2P collaboration applications on the Internet [Skype]. Collaboration applications typically provide rendezvous, Network Address Translators (NAT) traversal, and a set of media- related functions (e.g., media mixing or media transcoding). Note that some of these functions (e.g., media transcoding) are, effectively, a form of distributed computing.
P2Pコラボレーションアプリケーションは、ボイスオーバーIP(VoIP)のような通信アプリケーションやインスタントメッセージング(IM)アプリケーションが含まれます。セクション2.3は、標準ベースのP2Pコラボレーション・アプリケーションの例であるP2PSIPシステムに関する議論を含んでいました。インターネット[スカイプ]に独自のP2Pコラボレーションアプリケーションもあります。コラボレーションアプリケーションは、典型的には、ネットワークトランスレータ(NAT)トラバーサル、および、メディアに関連する関数のセット(例えば、混合メディアまたはメディアトランスコーディング)アドレス、ランデブーを提供します。これらの機能のいくつか(例えば、メディアトランスコーディング)は、効果的に、分散コンピューティングの形態であることに留意されたいです。
P2P rendezvous systems are especially useful in situations where there is no infrastructure. A few people with no Internet connectivity setting up an ad hoc system to exchange documents or the members of a recovery team communicating among themselves in a disaster area are examples of such situations. P2PSIP is sometimes referred to as infrastructureless SIP to distinguish it from traditional SIP, which relies on a rendezvous server infrastructure.
P2Pランデブーシステムにはインフラが存在しない状況において特に有用です。文書や被災地で自分たちの中で通信復旧チームのメンバーを交換するアドホックシステムを設定なしインターネット接続を持つ少数の人々は、このような状況の例です。 P2PSIPは時々ランデブーサーバインフラストラクチャに依存している伝統的なSIP、からそれを区別するようinfrastructureless SIPと呼ばれます。
P2P platforms can be used to build applications on top of them. They provide functionality the applications on top of them can use. An example of such a platform is JXTA [Gong2001]. JXTA provides peer discovery, grouping of peers, and communication between peers. The goal with these types of P2P platforms is that they become the preferred environment for application developers. They take advantage of the good scalability properties of P2P systems.
P2Pプラットフォームは、それらの上にアプリケーションを構築するために使用することができます。彼らは彼らの上にアプリケーションが使用できる機能を提供します。そのようなプラットフォームの例は、JXTA [Gong2001]です。 JXTAは、ピア発見、ピアのグループ化、およびピア間の通信を提供します。 P2Pプラットフォームのこれらのタイプの目標は、アプリケーション開発者のための好適な環境になるということです。彼らは、P2Pシステムの優れた拡張性の性質を利用します。
In this document, we have provided a brief overview of P2P technologies. In order to dispel the notion that P2P technologies can only be used for illegal purposes, we have discussed a number of perfectly legitimate applications that have been implemented using P2P. Examples of these applications include video conferencing applications [Skype], the distribution of pre-recorded TV programs [Rodriguez2005], Linux distributions [Rodriguez2005], game updates [WoW], and live TV [Peltotalo2008] [Octoshape] by parties legally authorized to distribute that content.
この文書では、我々は、P2P技術の簡単な概要を提供しています。 P2P技術は、違法な目的のためにのみ使用することができるという概念を払拭するために、我々はP2Pを使用して実装されている完全に正当なアプリケーションの数を議論してきました。これらのアプリケーションの例としては、ビデオ会議アプリケーション[スカイプ]、事前に録画したテレビ番組の分布[Rodriguez2005]、Linuxディストリビューション[Rodriguez2005]、ゲームのアップデート[すごい]、およびライブTV [Peltotalo2008] [Octoshape]法的に認可当事者が含まそのコンテンツを配信します。
When deciding whether or not to use a P2P architecture to implement a given application, it is important to consider the general characteristics of P2P systems and evaluate them against the application's requirements. It is not possible to provide any definitive rule to decide whether or not a particular application would be implemented best using P2P. Instead, we discuss a set of trade-offs to be considered when making architectural decisions and provide guidance on which types of requirements are better met by a P2P architecture (security-related aspects are discussed in Section 7). Ultimately, applications' operational requirements need to be analyzed on a case-by-case basis in order to decide the most suitable architecture.
与えられたアプリケーションを実装するためにP2Pアーキテクチャを使用するかどうかを決定する際には、P2Pシステムの一般的な特性を考慮して、アプリケーションの要件に照らして、それらを評価することが重要です。特定のアプリケーションがP2Pを使用して、最良実施されるかどうかを決定する任意の決定的なルールを提供することはできません。代わりに、私たちは建築の意思決定を行う際に考慮すべきトレードオフのセットを議論し、要件の種類は、より良いP2Pアーキテクチャによって満たされた上での指針を提供(セキュリティ関連の側面は第7節で説明します)。最終的には、アプリケーションの運用上の要件は、最も適切なアーキテクチャを決定するためにケースバイケースで分析する必要があります。
P2P systems are a good option when there is no existing infrastructure and deploying it is difficult for some reason. Ad hoc systems are usually good candidates to use P2P architectures. Disaster areas where existing infrastructures have been destroyed or rendered unusable can also benefit from P2P systems.
P2Pシステムは、既存のインフラが存在しない場合には良い選択肢であり、それを展開することは、いくつかの理由で困難です。アドホックシステムは、通常、P2Pアーキテクチャを使用するための良好な候補です。既存のインフラが破壊または使用不能にされている被災地も、P2Pシステムの恩恵を受けることができます。
One of the main features of P2P systems is their scalability. Since the system can leverage the processing and storage capacity of all the peers in the system, increases in the system's load are tackled by having the peers use more of their processing or storage capacity. Adding new peers generally increases the system's load but also increases the system's processing and storage capacity. That is, there is no typical need to update any central servers to be able to deal with more users or more load [Leibniz2007]. Adaptive P2P systems tune themselves in order to operate in the best possible mode when conditions such as number of peers or churn rate change [Mahajan2003]. In any case, at present, maintaining a running DHT requires nontrivial operational efforts [Rhea2005].
P2Pシステムの主な特徴の一つは、そのスケーラビリティです。システムは、システム内のすべてのピアの処理および記憶能力を活用することができるので、システムの負荷の増大は、ピアがそれらの処理や記憶容量の複数を使用有することによって取り組まれています。一般的に新しいピアを追加すると、システムの負荷を増大させるだけでなく、システムの処理および記憶容量を増大させます。それは、より多くのユーザー以上のロード[Leibniz2007]に対処できるようにするために、任意の中央のサーバーを更新する典型的な必要はありません、です。そのようなピアの数や解約率の変化等の条件は、[Mahajan2003】可能な限り最良のモードで動作させるために、適応型P2Pシステム曲自体。いずれの場合においても、現在、実行中のDHTを維持する[Rhea2005】非自明な動作の努力を必要とします。
Robustness and reliability are important features in many systems. For many applications to be useful, it is essential that they are dependable [RFC4981]. While there are many techniques to make centralized servers highly available, peers in a P2P system are not generally expected to be highly available (of course, it is also possible to build a more expensive P2P system with only highly available peers). P2P systems are designed to cope with peers leaving the system ungracefully (e.g., by crashing). P2P systems use techniques such as data replication and redundant routing table entries to improve the system's reliability. This way, if a peer crashes, the data it stored is not lost and can still be found in the system.
堅牢性と信頼性は、多くのシステムで重要な特徴です。多くのアプリケーションが有用であるために、彼らが頼りに[RFC4981]であることが不可欠です。中央サーバの可用性を高めるために多くの技術がありますが、P2Pシステム内のピアは、一般的に(もちろん、それだけで可用性の高い仲間とより高価なP2Pシステムを構築することも可能である)、可用性の高いことが期待されていません。 P2Pシステムは、(例えば、クラッシュにより)不正にシステムを離れるピアに対応するように設計されています。 P2Pシステムは、システムの信頼性を向上させるために、このようなデータ複製および冗長ルーティングテーブルのエントリのような技術を使用します。この方法では、ピアがクラッシュした場合、それが格納されたデータは失われていない、まだシステムで見つけることができます。
The performance of a P2P system when compared to a server-based system depends on many factors (e.g., the dimensioning of the server-based system). One of the most important factors is the type of task to be performed. As we discussed in Section 5.2, if the task that needs to be computed can be divided into independent subtasks that can be completed in parallel, a P2P distributed computing system made up of regular computers may be able to perform better than even a super computer. If the task at hand consists of completing database queries, a well-dimensioned centralized database may be faster than a DHT.
サーバーベースのシステムと比較してP2Pシステムの性能は多くの要因に依存する(例えば、サーバベースのシステムの寸法)。最も重要な要因の一つは、実行されるタスクのタイプです。我々は5.2節で述べたように計算される必要タスクを並列に完了することができる独立したサブタスクに分割することができた場合、通常のコンピュータで構成されたP2P分散コンピューティングシステムであっても、スーパーコンピュータよりも良いを実行することができます。手元のタスクは、データベースクエリを完了から構成されている場合、十分な寸法に一元化されたデータベースは、DHTよりも速いかもしれません。
The performance of a P2P system can be negatively affected by a lack of cooperation between the peers in the system. It is important to have incentives in place in order to minimize the number of free riders in the system. Incentive systems generally aim to take the P2P system to optimal levels of cooperation [Feldman2004].
P2Pシステムの性能に悪影響システム内のピア間の協力の欠如によって影響を受けることができます。システムにおけるフリーライダーの数を最小限にするために、代わりにインセンティブを持つことが重要です。インセンティブシステムは、一般的に協力[Feldman2004]の最適レベルにP2P方式を取ることを目指し。
There are trade-offs between the scalability, robustness, and performance of a particular P2P system that can be influenced through the configuration of the system. For example, a P2P database system where each peer stored all the information in the system would be robust and have a high performance (i.e., queries would be completed quickly) but would not be efficient or scalable. If the system needed to grow, it could be configured so that each node stored only a part of the information of the whole system in order to increase its efficiency and scalability at the expense of its robustness and performance.
システムの構成によって影響を受ける可能性がある特定のP2Pシステムの拡張性、堅牢性、およびパフォーマンスの間のトレードオフがあります。例えば、それぞれがシステム内のすべての情報が格納されたピアP2Pデータベースシステムは、堅牢でかつ高い性能を有する(すなわち、クエリが迅速に完了されるであろう)が、効率的またはスケーラブルではないであろう。システムが成長するために必要な場合、各ノードは、その堅牢性と性能を犠牲にし、その効率性と拡張性を高めるために、システム全体の情報の一部のみを格納されているように、構成することができます。
Energy consumption is another important property of a system. Even though the overall consumption of a client-server system is generally lower than that of a P2P system providing the same service, P2P systems avoid central servers (e.g., server farms) that can potentially concentrate the consumption of high amounts of energy in a single geographical location. When the nodes in a system need to be up and running all the time anyway, it is possible to use those nodes to perform tasks in a P2P way. However, using battery-powered devices as peers in a P2P system presents some challenges because a peer typically consumes more energy than a client in a client-server architecture where they can go into sleep mode more often [Kelenyi2008]. Energy-aware P2P protocols may be the solution to these challenges [Gurun2006].
エネルギー消費量は、システムのもう一つの重要な特性です。クライアントサーバシステムの全体的な消費は、同じサービスを提供するP2Pシステムのそれよりも一般的に低くなっているにもかかわらず、P2Pシステムは、潜在的に単一のエネルギーの大量消費を集中することができ、中央のサーバ(例えば、サーバファーム)を避けます地理上の位置。システム内のノードがアップし、とにかくすべての時間を実行している必要があるときは、P2Pの方法でタスクを実行するためにそれらのノードを使用することが可能です。ピアは、一般的に、彼らはより頻繁に[Kelenyi2008]スリープモードに入ることができるクライアントサーバアーキテクチャでは、クライアントよりも多くのエネルギーを消費するためしかし、P2Pシステムにおけるピアなどのバッテリ駆動機器を使用すると、いくつかの課題を提示しています。エネルギーを意識したP2Pプロトコルは、[Gurun2006]これらの課題に対する解決策かもしれません。
This section has discussed a set of important system properties and compared P2P and centralized systems with respect to those properties. However, the most important factor to take into consideration is often cost. Both capital and operating costs need to be taken into account when evaluating the scalability, reliability, and performance of a system. If updating a server so that it can tackle more load is inexpensive, a server-based architecture may be the best option. If a highly available server is expensive, a P2P system may be the best choice. With respect to operating costs, as previously stated, at present, maintaining a running DHT requires nontrivial operational efforts [Rhea2005].
このセクションでは、これらの特性に関して重要なシステムプロパティのセットと比較P2Pと集中システムを論じています。しかし、考慮すべき最も重要な要因は、多くの場合、コストです。どちらも、資本コストと運用コストは、システムのスケーラビリティ、信頼性、およびパフォーマンスを評価する際に考慮される必要があります。それはより多くの負荷に取り組むことができるように、サーバーの更新が安価である場合は、サーバーベースのアーキテクチャは、最良の選択肢かもしれません。高可用性サーバーが高価である場合には、P2Pシステムが最良の選択かもしれません。前述のように、運用コストに関しては、現時点では、実行中のDHTを維持することは自明でない運用の努力[Rhea2005]が必要です。
In short, even though understanding the general properties of P2P and server-based systems is important, deciding which architecture best fits a particular application involves obtaining detailed information about the application and its context. In most scenarios, there are no easy rules that tell us when to use which architecture.
要するに、でもP2Pの一般的な性質と、サーバベースのシステムを理解するのに最もよいが、特定のアプリケーションは、アプリケーションとそのコンテキストに関する詳細な情報を得ることを含む適合するアーキテクチャを決める、重要です。ほとんどのシナリオでは、どのアーキテクチャを使用する時にお申し付け簡単なルールはありません。
Security is an important issue that needs to be considered when choosing an architecture to design a system. The first issue that needs to be considered is to which extent the nodes in the system can be trusted. If all the nodes in the system are fully trusted (e.g., all the nodes are under the full control of the operator of the system and will never act in a malicious or otherwise incorrect way), a P2P architecture can achieve a high level of security. However, if nodes are not fully trusted and can be expected to behave in malicious ways (e.g., launching active attacks), providing an acceptable level of security in a P2P environment becomes significantly more challenging than in a non-P2P environment because of its distributed ownership and lack of centralized control and global knowledge [Mondal2006]. Ultimately, the level of security provided by a P2P system largely depends on the proportion of its nodes that behave maliciously. Providing an acceptable level of security in a P2P system with a large number of malicious nodes can easily become impossible.
セキュリティは、システムを設計するためのアーキテクチャを選択する際に考慮される必要がある重要な問題です。検討する必要がある最初の問題は、どの程度システム内のノードが信頼できることです。システム内のすべてのノードが完全に(例えば、すべてのノードがシステムのオペレータの完全な制御下にあり、悪意のあるまたはその他の不正な方法で行動することはありません)、信頼されている場合は、P2Pアーキテクチャは、高いレベルのセキュリティを実現することができます。ノードが完全に信頼されていないと、悪質な方法で動作することが期待される(例えば、能動的な攻撃を起動する)場合は、P2P環境におけるセキュリティの許容レベルを提供することは、その分散の非P2P環境におけるよりも有意に多くの挑戦になり所有権および集中管理とグローバルな知識[Mondal2006]の欠如。最終的には、P2Pシステムによって提供されるセキュリティのレベルが大幅に悪意を持って振る舞うそのノードの割合に依存します。悪意のあるノードの数が多いP2Pシステムにおけるセキュリティの許容レベルを提供することは、容易には不可能になることができます。
P2P systems can be used by attackers to harvest IP addresses in use. Attackers can passively obtain valid IP addresses of potential victims without performing active scans because a given peer is typically connected to multiple peers. In addition to being passive, this attack is much more efficient than performing scans when the address space to be scanned is large and sparsely populated (e.g., the current IPv6 address space). Additionally, in many cases there is a high correlation between a particular application and a particular operating system. In this way, an attacker can harvest IP addresses suitable to launch attacks that exploit vulnerabilities that are specific to a given operating system.
P2Pシステムは、使用中のIPアドレスを収集するために攻撃者によって使用することができます。攻撃者は受動的に、所与のピアが、典型的には複数のピアに接続されているため、アクティブスキャンを行うことなく、潜在的な被害者の有効なIPアドレスを取得することができます。受動的であることに加えて、この攻撃がはるかに効率的なアドレス空間をスキャンするときにスキャンを行うよりもする(例えば、現在のIPv6アドレス空間)が大きいとまばらです。また、多くの場合、特定の用途及び特定のオペレーティング・システムとの間に高い相関があります。このように、IPを収穫することができ、攻撃者は、特定のオペレーティングシステムに固有の脆弱性を悪用する攻撃を開始するために、適切な対処しています。
Central elements in centralized architectures become an obvious target for attacks. P2P systems minimize the amount of central elements and, thus, are more resilient against attacks targeted only at a few elements.
集中型のアーキテクチャの中心的要素は、攻撃のための明確な目標となります。 P2Pシステムでは、このように、中心元素の量を最小限にして、いくつかの要素だけを対象とした攻撃に対してより弾力性があります。
When designing a P2P system, it is important to consider a number of threats that are specific to P2P systems. Additionally, more general threats that apply to other architectures as well are sometimes bigger in a P2P environment. P2P-specific threats mainly focus on the data storage functions and the routing of P2P systems.
P2Pシステムを設計するとき、P2Pシステムに固有の脅威の数を考慮することが重要です。また、他のアーキテクチャに適用される、より一般的な脅威にもP2P環境では、時には大きなされています。 P2P-特定の脅威は、主にデータストレージ機能とP2Pシステムのルーティングに焦点を当てます。
In a P2P system, messages (e.g., service requests) between two given peers generally traverse a set of intermediate peers that help route messages between the two peers. Those intermediate peers can attempt to launch on-path attacks they would not be able to launch if they were not on the path between the two given peers. An attacker can attempt to choose a logical location in the P2P overlay that allows it to launch on-path attacks against a particular victim or a set of victims. The Sybil [Douceur2002] attack is an example of such an attack. The attacker chooses its overlay identifier so that it allows the attacker to launch future attacks. This type of attack can be mitigated by controlling how peers obtain their identifiers (e.g., by having a central authority).
P2Pシステムでは、メッセージは、(例えば、サービス要求)は、2つの指定されたピア間は、一般に、2つのピア間の経路メッセージを助ける中間ピアのセットを横切ります。これらの中間ピアは、彼らが与えられた二つのピア間のパス上になかった場合、彼らは起動することができない上、パス攻撃を開始しようとすることができます。攻撃者は、特定の被害者や犠牲者のセットに対してオンパス攻撃を開始することを可能にするP2Pオーバーレイで論理的な場所を選択しようとすることができます。シビル[Douceur2002】攻撃は、攻撃の一例です。それは攻撃者が将来の攻撃を起動することができますように、攻撃者がそのオーバーレイ識別子を選択します。このタイプの攻撃は、(中央の権限を有することにより、例えば)ピアは、その識別子を取得する方法を制御することにより緩和することができます。
A trivial passive attack by peers routing messages consists of trying to access the contents of those messages. Encrypting message parts that are not required for routing is an obvious defense against this type of attack.
メッセージをルーティングピアによって些細な受動的な攻撃は、それらのメッセージの内容にアクセスしようとして構成されています。ルーティングのために必要されていないメッセージ部分を暗号化すると、この種の攻撃に対する明白な防衛です。
An attacker can create a message and claim that it was actually created by another peer. The attacker can even take a legitimate message as a base and modify it to launch the attack. Peer and message authentication techniques can be used to avoid this type of attack.
攻撃者は、メッセージを作成し、それが実際には別のピアによって作成されたことを主張することができます。攻撃者は、さらにベースとして、正当なメッセージを取り、攻撃を開始するためにそれを変更することができます。ピアとメッセージ認証技術は、この種の攻撃を回避するために使用することができます。
Attackers can attempt to launch a set of attacks against the storage function of the P2P system. The following are generic (i.e., non-P2P-specific) attacks. Even if they are generic attacks, the way to avoid or mitigate them in a P2P system can be more challenging than in other architectures.
攻撃者は、P2Pシステムのストレージ機能に対する攻撃のセットを起動しようとすることができます。以下は、一般的な(すなわち、非P2P-固有の)攻撃です。彼らは一般的な攻撃であっても、P2Pシステムでそれらを回避または軽減するための方法は、他のアーキテクチャよりも挑戦することができます。
An attacker can attempt to store too much data in the system. A quota system that can be enforced can be used to mitigate this attack.
攻撃者がシステムにあまりにも多くのデータを保存しようとすることができます。強制することができるクォータシステムは、この攻撃を軽減するために使用することができます。
Unauthorized peers can attempt to perform operations on data objects. Peer authorization in conjunction with peer authentication avoids unauthorized operations.
不正なピアは、データオブジェクトに対して操作を実行しようとすることができます。ピア認証と連動してピアの認証は、不正操作を避けることができます。
A peer can return forged data objects claiming they are legitimate. Data object authentication prevents this attack. However, a peer can return a previous version of a data object and claim it is the current version. The use of lifetimes can mitigate this type of attack.
ピアは、彼らが正当であると主張偽造データオブジェクトを返すことができます。データオブジェクトの認証は、この攻撃を防ぐことができます。しかし、ピアがデータオブジェクトの以前のバージョンを返し、それが現在のバージョンであると主張することができます。寿命の使用は、この種の攻撃を軽減することができます。
The following are P2P-specific attacks against the data storage function of a P2P system. An attacker can refuse to store a particular data object. An attacker can also claim a particular data object does not exist even if another peer created it and stored it on the attacker. These DoS (Denial-of-Service) attacks can be mitigated by using data replication techniques and performing multiple, typically parallel, searches.
P2Pシステムのデータ記憶機能に対するP2P固有攻撃は以下の通りです。攻撃者は、特定のデータオブジェクトを格納することを拒否することができます。また、攻撃者は、特定のデータオブジェクトが別のピアがそれを作成し、攻撃者上に格納されていても存在していないと主張することができます。これらのDoS(サービス拒否)攻撃は、データ複製技術を用いて、複数の、典型的には平行、検索を実行することによって軽減することができます。
Attackers can attempt to launch a set of attacks against the routing of the P2P system. An attacker can attempt to modify the routing of the system in order to be able to launch on-path attacks. Attackers can use forged routing maintenance messages for this purpose. The Eclipse attack [Singh2006] is an example of such an attack.
攻撃者は、P2Pシステムのルーティングに対する攻撃のセットを起動しようとすることができます。攻撃者は、上のパス攻撃を開始することができるようにするためにシステムのルーティングを変更しようとすることができます。攻撃者は、この目的のために偽造ルーティングメンテナンスメッセージを使用することができます。 Eclipseの攻撃[Singh2006】このような攻撃の一例です。
Enforcing structural constraints or enforcing node degree bounds can mitigate this type of attack.
構造的制約を強制またはノード度境界を強制することは、この種の攻撃を軽減することができます。
It is possible to launch DoS attacks by modifying or dropping routing maintenance messages or by creating forged ones. Having nodes get routing tables from multiple peers can help mitigate this type of attack.
ルーティングのメンテナンスメッセージを変更またはドロップすることにより、または偽造のものを作成することで、DoS攻撃を起動することが可能です。持つノードは、この種の攻撃を軽減することができ、複数のピアからのルーティングテーブルを取得します。
Attackers can launch a DoS attack by creating churn. By leaving and joining a P2P overlay rapidly many times, a set of attackers can create large amounts of maintenance traffic and make the routing structure of the overlay unstable. Limiting the amount of churn per node is a possible defense against this attack.
攻撃者は、解約を作成することでDoS攻撃を起動することができます。急速に何度も出てP2Pオーバーレイに参加することで、攻撃者の集合は保守トラフィックを大量に作成し、不安定なオーバーレイのルーティング構造を作ることができます。ノードあたりの解約の量を制限すると、この攻撃に対する防衛可能です。
Jouni Maenpaa and Jani Hautakorpi helped with the literature review. Henning Schulzrinne provided useful ideas on how to define P2P systems. Bruce Lowekamp, Dan Wing, Dan York, Enrico Marocco, Cullen Jennings, and Frank Uwe Andersen provided useful comments on this document. Loa Andersson, Aaron Falk, Barry Leiba, Kurtis Lindqvist, Dow Street, and Lixia Zhang participated in the IAB discussions on this document.
Jouni MaenpaaとヤニHautakorpiは、文献レビューを手伝ってくれました。ヘニングSchulzrinneとは、P2Pシステムを定義する方法に関する有用なアイデアを提供します。ブルースLowekamp、ダン・ウィング、ダン・ニューヨーク、エンリコMarocco、カレン・ジェニングス、そしてフランク・ウーヴェ・アンデルセンはこのドキュメントの役に立つコメントを提供しました。ロア・アンダーソン、アーロンフォーク、バリー・レイバ、カーティスLindqvist、ダウストリート、Lixiaチャンは、この文書にIABの議論に参加しました。
Marcelo Bagnulo Gonzalo Camarillo Stuart Cheshire Vijay Gill Russ Housley John Klensin Olaf Kolkman Gregory Lebovitz Andrew Malis Danny McPherson David Oran Jon Peterson Dave Thaler
マルセロBagnuloゴンサロ・カマリロスチュアートチェシャービジェイ・ギルラスHousleyジョン・クレンシンオラフKolkmanグレゴリーLebovitzアンドリューMalisダニー・マクファーソンデヴィッドオランジョン・ピーターソンデーブターラー
[Alima2005] Alima, L., Ghodsi, A., and S. Haridi, "A Framework for Structured Peer-to-peer Overlay Networks", Global Computing, vol. 3267, Lecture Notes in Computer Science: Springer Berlin / Heidelberg, pp. 223-249, 2005.
【Alima2005】アリマ、L.、Ghodsi、A.、およびS. Haridi、「構造化ピアツーピア・オーバーレイ・ネットワークのためのフレームワーク」、グローバル・コンピューティング、巻。 3267、コンピュータサイエンスの講義ノート:スプリンガー、ベルリン/ハイデルベルグ、頁223から249、2005。。
[BitTorrent] Cohen, B., "The BitTorrent Protocol Specification Version 11031", February 2008.
[BitTorrentの]コーエン、B.、 "BitTorrentのプロトコル仕様バージョン11031"、2008年2月。
[Cooke2005] Cooke, E., Jahanian, F., and D. McPherson, "The Zombie roundup: understanding, detecting, and disrupting botnets", Proceedings of the Steps to Reducing Unwanted Traffic on the Internet Workshop, 2005.
【Cooke2005]クック、E.、Jahanian、F.、およびD.マクファーソン、「ゾンビまとめ:理解、検出、およびボットネットを破壊する」、ステップの議事インターネットワークショップ、2005年不要なトラフィックを削減します。
[Dean2004] Dean, J. and S. Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters", Sixth Symposium on Operating System Design and Implementation (OSDI '04), December 2004.
オペレーティングシステムの設計と実装(OSDI '04)、2004年12月に「大規模なクラスタ上の簡体データ処理のMapReduce」、第六シンポジウム[Dean2004]ディーン、J.とS. Ghemawat、。
[Douceur2002] Douceur, J., "The Sybil Attack", IPTPS 02, March 2002.
[Douceur2002]甘味、J.、 "シビルアタック"、2002年3月02 IPTPS。
[Farber1972] Farber, D. and K. Larson, "The Structure of a Distributed Computer System - The Communications System", Proceedings Symposium on Computer-Communications Networks and Teletraffic, Microwave Research Institute of Polytechnic Institute of Brooklyn pp. 21-27, 1972.
[Farber1972]ファーバー、D.及びK.ラーソン、「分散コンピュータシステムの構成 - コミュニケーションシステム」。、コンピュータ通信ネットワークとブルックリン頁21-27の工科大学のトラヒック、電子レンジ研究所の議事シンポジウム、 1972。
[Feldman2004] Feldman, M., Lai, K., Stoica, I., and J. Chuang, "Robust Incentive Techniques for Peer-to-peer Networks", Proceedings of the 5th ACM Conference on Electronic Commerce, 2004.
【Feldman2004]フェルドマン、M.、ライ、K.、ストイカ、I.、およびJ.荘、「ピアツーピアネットワークのロバストインセンティブ技術」、電子商取引、2004年第5回ACM会議の議事録。
[Foster1999] Foster, I., "Computational Grids", Chapter 2 of The Grid: Blueprint for a New Computing Infrastructure, 1999.
[Foster1999]フォスター、I.、「計算グリッド」、グリッドの第2章:新しいコンピューティングインフラストラクチャのための青写真、1999。
[Foster2003] Foster, I. and A. Iamnitchi, "On Death, Taxes, and the Convergence of Peer-to-Peer and Grid Computing", 2nd International Workshop in Peer-to-Peer Systems IPTPS '02, 2003.
ピア・ツー・ピアシステムIPTPS '02、2003年に[Foster2003]フォスター、I.およびA. Iamnitchi、「死に対する、税金、およびピア・ツー・ピアの収束とグリッド・コンピューティング」、第2回国際ワークショップ。
[Gkantsidis2005] Gkantsidis, C. and P. Rodriguez, "Network Coding for Large Scale Content Distribution", IEEE INFOCOM 2005, vol. 4, March 2005.
[Gkantsidis2005] Gkantsidis、C.およびP.ロドリゲス、IEEE INFOCOM 2005、巻 "大規模コンテンツ配信のためのネットワークコーディング"。 4、2005年3月。
[Gong2001] Gong, L., "JXTA: A Network Programming Environment", IEEE Internet Computing, vol. 5, no. 3, pp. 88-95, 2001.
【Gong2001]ゴング、L.、 "JXTA:ネットワークプログラミング環境"、IEEEインターネットコンピューティング、巻。 5、ありません。 3頁88から95、2001。
[Gray1983] Gray, J. and S. Metz, "Solving the Problems of Distributed Databases", Data Communications, pp. 183-192, 1983.
【Gray1983】グレー、J.及びS.メッツ、「分散データベースの問題の解決」、データ通信、PP。183-192、1983。
[Gray1986A] Gray, J., "An Approach to Decentralized Computer Systems", IEEE Transactions on Software Engineering, V 12.6, pp. 684-689, 1986.
[Gray1986A]グレー、J.、 "分散コンピュータシステムへのアプローチ"、ソフトウェア工学、V 12.6、頁684から689まで、1986年にIEEEトランザクション。
[Gray1986B] Gray, J. and M. Anderton, "Distributed Systems: Four Case Studies", IEEE Transactions on Computers and Tandem Technical Report 85.5, 1986.
[Gray1986B]グレー、J.とM.アンダートンは、「分散システム:四つのケーススタディ」、コンピュータとタンデムテクニカルレポート85.5、1986年にIEEEトランザクション。
[Grizzard2007] Grizzard, J., Sharma, V., Nunnery, C., Kang, B., and D. Dragon, "Peer-to-peer botnets: overview and case study", Proceedings of Hot Topics in Understanding Botnets (HotBots '07), 2007.
【Grizzard2007] Grizzard、J.、シャルマ、V.、尼寺、C.、カン、B.、およびD.ドラゴン、「ピアツーピアボットネット:概要とケーススタディ」、ホットな話題の議事ボットネットを理解する上で( HotBots '07)、2007。
[Gurun2006] Gurun, S., Nagpurkar, P., and B. Zhao, "Energy Consumption and Conservation in Mobile Peer-to-Peer Systems", First International Workshop on Decentralized Resource Sharing in Mobile Computing and Networking (MobiShare 2006), 2006.
[Gurun2006] Gurun、S.、Nagpurkar、P.、およびB.趙、「モバイルピアツーピアシステムにおけるエネルギー消費と保全」、モバイルコンピューティングとネットワーキングにおける分散リソースの共有上の第一回国際ワークショップ(2006 MobiShare)、 2006。
[Huang2007] Huang, Y., Rabinovich, M., and Z. Xiao, "Challenges of P2P Streaming Technologies for IPTV Services", IPTC Workshop International World Wide Web Conference, Edinburgh, Scotland, United Kingdom, May 2006.
[Huang2007]黄、Y.、Rabinovich、M.、およびZ.シャオ、 "IPTVサービスのためのP2Pストリーミング技術の課題"、IPTCワークショップ国際ワールドワイドウェブ会議、エジンバラ、スコットランド、イギリス、2006年5月。
[Juang2002] Juang, P., Oki, H., Wang, Y., Martonosi, M., Peh, L., and D. Rubenstein, "Energy-efficient computing for wildlife tracking: design tradeoffs and early experiences with ZebraNet", Proceedings of Conference on Computer and Communications Security (CCS), ACM, 2002.
[Juang2002] Juang、P.、沖、H.、王、Y.、Martonosi、M.、PEH、L.、およびD.ルーベンスタイン、 "野生動物の追跡のためのエネルギー効率に優れたコンピューティング:のZebraNetと設計上のトレードオフと早期の経験"コンピュータおよび通信セキュリティ(CCS)、ACM、2002年大会の、議事。
[Kanich2008] Kanich, C., Levchenko, K., Enright, B., Voelker, G., Paxson, V., and S. Savage, "Spamalytics: An Empirical Analysis of Spam Marketing Conversion", Proceedings of Conference on Computer and Communications Security (CCS) (ACM), October 2008.
[Kanich2008] Kanich、C.、Levchenko、K.、エンライト、B.、Voelker、G.、パクソン、V.、およびS.サベージ、 "Spamalytics:スパムマーケティング変換の実証分析"、コンピュータ上の会議議事録および通信セキュリティ(CCS)(ACM)、2008年10月。
[Kelenyi2008] Kelenyi, I. and J. Nurminen, "Energy Aspects of Peer Cooperation - Measurements with a Mobile DHT System", in Proc. of Cognitive and Cooperative Wireless Networks Workshop in the IEEE International Conference on Communications 2008, Beijing, China, pp. 164-168, 2008.
【Kelenyi2008] Kelenyi、I.およびJ. Nurminen、「ピア協力のエネルギー側面 - モバイルDHTシステムによる測定」PROCで、。コミュニケーション2008年、北京、中国、頁164〜168、2008年IEEE国際会議の認知と共同ワイヤレスネットワークワークショップ。
[Leibniz2007] Leibniz, K., Hobfeld, T., Wakamiya, N., and M. Murata, "Peer-to-Peer vs. Client/Server: Reliability and Efficiency of a Content Distribution Service", Lecture Notes in Computer Science, LNCS 4516, pp. 1161-1172, 2007.
[Leibniz2007]ライプニッツ、K.、Hobfeld、T.、若宮、N.、およびM.村田、「ピア・ツー・ピアクライアント/サーバ対:コンテンツ配信サービスの信頼性と効率性」、コンピュータサイエンスの講義ノート、LNCS 4516、頁。1161年から1172年、2007年。
[Lua2005] Keong Lua, E., Crowcroft, J., Pias, M., Sharma, R., and S. Lim, "A Survey and Comparison of Peer-to-peer Overlay Network Schemes", IEEE Communications Surveys & Tutorials, vol. 7, no. 2, Second Quarter 2005, pp. 72-93, 2005.
【Lua2005] KeongのLUA、E.、クロウクロフト、J.、ピアス、M.、シャルマ、R.、およびS.リム、「ピア・ツー・ピアオーバーレイネットワークスキームの調査と比較」、IEEE通信調査&チュートリアル巻。 7、ありません。 2、2005年第2四半期、頁72から93、2005。
[MMUSIC-ICE] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/ Answer Protocols", Work in Progress, October 2007.
[MUSIC-ICE]ローゼンバーグ、J.、 "インタラクティブ接続確立(ICE):オファー/回答プロトコルのためのネットワークアドレス変換(NAT)トラバーサルのための議定書"、進歩、2007年10月の作業。
[Mahajan2003] Mahajan, R., Castro, M., and A. Rowstron, "Controlling the Cost of Reliability in Peer-to-Peer Overlays", Proceedings of the 2nd International Workshop on Peer-to-Peer Systems (IPTPS '03), 2003.
【Mahajan2003]マハジャン、R.、カストロ、M.、およびA. Rowstron、「ピア・ツー・ピアオーバーレイにおける信頼性のコストを制御」、ピアツーピアシステムに関する第2回国際ワークショップの議事録(IPTPS '03 )、2003年。
[Milojicic2002] Milojicic, D., Kalogeraki, V., Lukose, R., Nagaraja, K., Pruyne, J., Richard, B., Rollins, S., and Z. Xu, "Peer-to-Peer Computing", Technical Report HP, March 2002.
【Milojicic2002] Milojicic、D.、Kalogeraki、V.、Lukose、R.、ナーガラージャ、K.、Pruyne、J.、リチャード、B.、ロリンズ、S.、およびZ.徐、「ピア・ツー・ピア・コンピューティング」、テクニカルレポートHP、2002年3月。
[Mondal2006] Mondal, A. and M. Kitsuregawa, "Privacy, Security and Trust in P2P environments: A Perspective", 17th International Conference on Database and Expert Systems Applications 2006 (DEXA '06), September 2006.
[Mondal2006] Mondal、A.とM.喜連川、「P2P環境におけるプライバシー、セキュリティと信頼:視点」、データベース上の第17回国際会議やエキスパートシステムのアプリケーション2006(DEXA '06)、2006年9月。
[Octoshape] "Octoshape - Large Scale Live Streaming Solutions", <http://www.octoshape.com>.
[Octoshape] "Octoshape - 大規模ライブストリーミングソリューション"、<http://www.octoshape.com>。
[Oechsner2006] Oechsner, S., Hobfeld, T., Tutschku, K., Andersen, F., and L. Caviglione, "Using Kademlia for the Configuration of B3G Radio Access Nodes", Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOMW '06), 2006.
【Oechsner2006] Oechsner、S.、Hobfeld、T.、Tutschku、K.、アンダーセン、F.、及びL. Caviglione、 "B3G無線アクセスノードの構成のためのKademliaのの使用" に関する第4回IEEE国際会議の議事録パーベイシブ・コンピューティングとコミュニケーションワークショップ(PERCOMW '06)、2006。
[Peltotalo2008] Peltotalo, J., Harju, J., Jantunen, A., Saukko, M., and L. Vaatamoinen, "Peer-to-Peer Streaming Technology Survey", Seventh International Conference on Networking, Cancun, Mexico, pp. 342-350, April 2008.
[Peltotalo2008]フィールドハウス、J.、ハリュ、J.、Jantunen、A.カワウソ、M.、およびL.Väätämöinen、 "ピアツーピアストリーミング技術調査"、mm単位ネットワーキング、カンクン、メキシコ、上の第7回国際会議。 342から350、2008年4月。
[Pourebrahimi2005] Pourebrahimi, B., Bertels, K., and S. Vassiliadis, "A Survey of Peer-to-Peer Networks", Proceedings of the 16th Annual Workshop on Circuits, Systems, and Signal Processing, ProRisc 2005, November 2005.
[Pourebrahimi2005] Pourebrahimi、B.、Bertels、K.、およびS.バシリアディス、「ピアツーピアネットワークの調査」、回路、システム上の第16回ワークショップの議事録、および信号処理、ProRisc 2005、2005年11月。
[RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, RFC 959, October 1985.
[RFC0959]ポステル、J.、およびJ.レイノルズ、 "ファイル転送プロトコル"、STD 9、RFC 959、1985年10月。
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC2616]フィールディング、R.、ゲティス、J.、モーグル、J.、Frystyk、H.、Masinter、L.、リーチ、P.、およびT.バーナーズ - リー、 "ハイパーテキスト転送プロトコル - HTTP / 1.1" 、RFC 2616、1999年6月。
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
[RFC3261]ローゼンバーグ、J.、Schulzrinneと、H.、カマリロ、G.、ジョンストン、A.、ピーターソン、J.、スパークス、R.、ハンドレー、M.、およびE.学生、 "SIP:セッション開始プロトコル" 、RFC 3261、2002年6月。
[RFC4981] Risson, J. and T. Moors, "Survey of Research towards Robust Peer-to-Peer Networks: Search Methods", RFC 4981, September 2007.
[RFC4981] Risson、J.およびT.ムーアズ、「堅牢なピアツーピアネットワークに向けた研究の調査:検索方法」、RFC 4981、2007年9月。
[RFC5128] Srisuresh, P., Ford, B., and D. Kegel, "State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)", RFC 5128, March 2008.
[RFC5128] Srisuresh、P.、フォード、B.、およびD.ケーゲル、2008年3月、RFC 5128 "ネットワーク全体のピア・ツー・ピア(P2P)通信状態が翻訳器(NAT)のアドレス"。
[Rhea2005] Rhea, S., Godfrey, B., Karp, B., Kubiatowicz, J., Ratnasamy, S., Shenker, S., Stoica, I., and H. Yu, "Open DHT: A Public DHT Service and Its Uses", ACM/SIGCOMM CCR'05, vol. 35, Issue 4, October 2005.
【Rhea2005]レア、S.、ゴッド、B.、カープ、B.、Kubiatowicz、J.、Ratnasamy、S.、Shenker、S.、ストイカ、I.、およびH.優、「オープンDHT:公開DHTサービスとその使用」、ACM / SIGCOMMのCCR'05、巻。 35、4号、2005年10月。
[Rodriguez2005] Rodriguez, P., Tan, S., and C. Gkantsidis, "On the Feasibility of Commercial Legal P2P Content Distribution", ACM/SIGCOMM CCR'06, January 2006.
[Rodriguez2005]ロドリゲス、P.、タン、S.、およびC. Gkantsidis、ACM / SIGCOMM CCR'06、2006年1月 "商業法的P2Pコンテンツ配信の可能性について"。
[Roussopoulus2004] Roussopoulus, M., Baker, M., Rosenthal, D., Guili, T., Maniatis, P., and J. Mogul, "2 P2P or Not 2 P2P", Workshop on Peer-to-Peer Systems, February 2004.
【Roussopoulus2004] Roussopoulus、M.、ベイカー、M.、ローゼンタール、D.、Guili、T.、マニアティス、P.、およびJ.モーグル、 "2 P2PまたはNot 2 P2P"、ピアツーピアシステムに関するワークショップ、2004年2月。
[SNC] "http://www.snc.sapmi.net".
[SNC] "http://www.snc.sapmi.net"。
[Schollmeier2001] Schollmeier, R., "A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications", In Proceedings of the First International Conference on Peer-to-Peer Computing P2P '01, 2001.
[Schollmeier2001] Schollmeier、R.、ピア・ツー・ピア・コンピューティングP2P '01で初の国際会議の議事録には、「ピア・ツー・ピアアーキテクチャとアプリケーションの分類のためのネットワークピア・ツー・ピアの定義」、 2001。
[Seti] "SETI@home", <http://setiathome.berkeley.edu>.
yuSetisch "SETI @ homeの" <のhttp://setitnome.berkeley.edu>。
[Singh2006] Singh, A., Ngan, T., Druschel, T., and D. Wallach, "Eclipse Attacks on Overlay Networks: Threats and Defences", INFOCOM 2006, April 2006.
[Singh2006]シン、A.、ンガン、T.、Druschel、T.、およびD.ウォラック、 "オーバレイネットワーク上のEclipseの攻撃:脅威と防御"、インフォコム2006年、2006年4月。
[Skype] "Skype", <http://www.skype.com>.
[スカイプ] "スカイプ"、<http://www.skype.com>。
[Tanenbaum1981] Tanenbaum, A. and S. Mullender, "An Overview of the Amoeba Distributed Operating System", ACM SIGOPS Operating Systems Review, 1981.
[Tanenbaum1981]タネンバウム、A.とS. Mullender、 "アメーバ分散オペレーティング・システムの概要"、ACM SIGOPSオペレーティングシステムレビュー、1981。
[WoW] "World of Warcraft Community Site", <http://www.worldofwarcraft.com>.
[うわー] "世界of Warcraftのコミュニティサイト"、<http://www.worldofwarcraft.com>。
[Zhang2006] Zhang, Y., Chen, C., and X. Wang, "Recent Advances in Research on P2P Networks", In Proceedings of the Seventh International Conference on Parallel and Distributed Computing, Applications, and Technologies PDCAT '06, 2006.
[Zhang2006]チャン、Y.、陳、C.、およびX.ワング、「P2Pネットワーク上の研究の最近の進歩」、パラレルに第7回国際会議の議事録や分散コンピューティング、アプリケーション、およびテクノロジPDCAT '06、2006年に。
Appendix A. Historical Background on Distributed Architectures
分散アーキテクチャ上の付録A.歴史的背景
In this appendix, we briefly provide historical background on distributed architectures. Distributed architectures are relevant to P2P because P2P architectures are a type of distributed architecture. That is, a distributed architecture is considered P2P if it meets a set of requirements, which are discussed in Section 2.
この付録では、我々は簡単に分散アーキテクチャ上の歴史的背景を提供しています。 P2Pアーキテクチャは分散アーキテクチャのタイプであるため、分散型アーキテクチャは、P2Pに関連しています。それは、セクション2に記載されている要件のセットを満たしている場合には、分散アーキテクチャをP2Pと見なされています。
In centralized architectures (e.g., client-server architectures), a central server (or very few central servers) undertakes most of the system's processing and storage. Conversely, decentralized architectures contain no (or very few) centralized elements.
集中型のアーキテクチャ(例えば、クライアント・サーバー・アーキテクチャ)では、中央のサーバー(または非常に少数の中央サーバ)は、システムの処理および記憶のほとんどを行っています。逆に、分散型アーキテクチャには(または非常に少数の)集中型の要素が含まれていません。
The increasing spread of packet-switched network technologies in the 1970s made it possible to develop operational distributed computer systems [Farber1972]. Distributed computer systems received a lot of attention within the research community. Research focused on distributing the different parts of a computer system, such as its operating system [Tanenbaum1981] or its databases [Gray1983]. The idea was to hide from the user the fact that the system was distributed. That is, the user did not have to worry or even be aware of the fact that his or her files were stored in different computers or the fact that his or her tasks were processed also in a distributed way. Actions such as file transfers and task allocations were taken care of by the system in an automated fashion and were transparent to the user.
1970年代のパケット交換ネットワーク技術の普及増加は、運用、分散コンピュータシステム[Farber1972]を開発することを可能にしました。分散型コンピュータシステムは、研究コミュニティの中で多くの注目を受けました。研究は、そのオペレーティングシステムなどのコンピュータシステムの異なる部分、[Tanenbaum1981]またはそのデータベース[Gray1983]の配布に焦点を当てました。アイデアは、ユーザからシステムが配布されたという事実を隠すためでした。つまり、ユーザーが心配かさえも彼または彼女のファイルを別のコンピュータまたは彼または彼女のタスクは、分散方法でも処理されたという事実に格納されていたという事実を意識する必要はありませんでした。そのようなファイル転送やタスクの割り当てなどのアクションが自動化された方法でシステムによっての世話をし、ユーザに対して透過的でした。
In the middle of the 1980s, building distributed computer systems using general-purpose off-the-shelf hardware and software was believed to be not much harder than building large centralized applications [Gray1986A]. It was understood that distributed systems had both advantages and disadvantages when compared to centralized systems. Choosing which type of system to use for a particular application was a trade-off that depended on the characteristics and requirements of the application [Gray1986B].
1980年代の半ばに、汎用的に使用して分散コンピュータシステムを構築する既製のハードウェアおよびソフトウェアは、大規模な集中型アプリケーション[Gray1986A]を構築するよりもはるかに難しくないと考えられていました。これは、集中型システムと比較した場合、分散システムは、利点と欠点の両方を有していることがわかりました。選択する特定の用途に使用するシステムのタイプは、アプリケーションの特性および要件に依存トレードオフ[Gray1986B]でした。
The client-server paradigm, where a client makes a request to a server that processes the request and returns the result to the client, was and is used by many Internet applications. In fact, client-server architectures were so ubiquitous on the Internet that, unfortunately, the Internet itself evolved as if the majority of the endpoints on the Internet were only interested in applications following the client-server model. With the appearance of Network Address Translators (NATs) and stateful firewalls, most Internet endpoints lost the ability to receive connections from remote endpoints unless they first initiated a connection towards those nodes. While NATs were designed not to disrupt client-server applications, distributed applications that relied on nodes receiving connections were disrupted. In a network full of NATs, these types of distributed applications could only be run among nodes with public IP addresses. Of course, most users did not like applications that only worked some of the time (i.e., when their endpoint happened to have a public IP address). Therefore, the loss of global connectivity caused by NATs was one of the reasons why applications that did not follow the client-server paradigm (e.g., P2P applications) took a relatively long time to be widely deployed on the public Internet.
クライアントが要求を処理し、結果をクライアントに返すサーバーに要求を行うクライアントサーバパラダイムは、あったと多くのインターネットアプリケーションで使用されています。実際には、クライアント・サーバー・アーキテクチャは、インターネット上のエンドポイントの大半はクライアントサーバモデルを以下の用途にしか興味であるかのように、残念ながら、インターネット自体が進化し、インターネット上でとてもユビキタスました。彼らが最初にこれらのノードへの接続を開始しない限り、ネットワークアドレス変換器(NAT)とステートフルファイアウォールの出現と、ほとんどのインターネットエンドポイントは、リモートエンドポイントからの接続を受信する能力を失いました。 NATのは、クライアントサーバーアプリケーションを混乱しないように設計されたが、接続を受信ノードに依存していた分散アプリケーションを破壊しました。 NATをの完全なネットワークでは、分散アプリケーションのこれらのタイプは、唯一のパブリックIPアドレスを持つノード間で実行することができます。もちろん、ほとんどのユーザーは唯一の時間の一部を働いていたアプリケーションを好きではなかった(すなわち、そのエンドポイントは、パブリックIPアドレスを持つことが起こったとき)。そのため、NATを起因するグローバルな接続の損失は、クライアント - サーバパラダイム(例えば、P2Pアプリケーション)に追従していないアプリケーションが広く公共のインターネット上で展開されるように、比較的長い時間がかかった理由の一つでした。
The design of NAT traversal mechanisms has made it possible to deploy all types of distributed applications over a network without global connectivity. While the first NAT traversal mechanisms used by P2P applications were proprietary [RFC5128], nowadays there are standard NAT traversal mechanisms such as Interactive Connectivity Establishment (ICE) [MMUSIC-ICE]. ICE makes it possible for endpoints to establish connections among themselves in the presence of NATs. The recovery of global connectivity among Internet endpoints has made it possible to deploy many P2P applications on the public Internet (unfortunately, the fact that global connectivity is not supported natively at the network layer makes it necessary for applications to deal with NATs, which can result in highly complex systems). Some of these P2P applications have been very successful and are currently used by a large number of users.
NATトラバーサルメカニズムの設計は、それが可能にグローバルな接続せずにネットワーク上に分散アプリケーションのすべてのタイプを展開できるようになりました。 P2Pアプリケーションで使用された最初のNATトラバーサルメカニズムは[RFC5128]プロプライエタリであったが、今日ではそのようなインタラクティブ接続確立(ICE)[MMUSIC-ICE]のような標準的なNATトラバーサルメカニズムが存在します。 ICEは、それが可能なエンドポイントがNATの存在下で自身の間の接続を確立できるようになります。インターネットのエンドポイント間のグローバルな接続の回復をもたらす可能性がある、残念ながら、グローバルな接続は、ネットワーク層でネイティブにサポートされていないという事実は、それが必要なアプリケーションは、NATの対処できるようになり、公共のインターネット(上の多くのP2Pアプリケーションをデプロイすることが可能になりました非常に複雑なシステムで)。これらのP2Pアプリケーションのいくつかは非常に成功していると、現在多数のユーザーによって使用されています。
Another factor that made it possible to deploy distributed applications was the continuous significant advances in terms of processing power and storage capacity of personal computers and networked devices. Eventually, most endpoints on the Internet had capabilities that previously were exclusively within the reach of high-end servers. The natural next step was to design distributed applications that took advantage of all that distributed available capacity.
分散アプリケーションを配備することを可能にしたもう一つの要因は、パソコンやネットワーク接続されたデバイスの処理能力とストレージ容量の点では連続大幅に進歩しました。最終的には、インターネット上で最もエンドポイントは、以前にハイエンドサーバの届く範囲内に独占的にした機能を持っていました。自然な次のステップは、使用可能な容量を配布しているすべてを利用した分散アプリケーションを設計することでした。
Authors' Addresses
著者のアドレス
Gonzalo Camarillo (editor) Ericsson Hirsalantie 11 Jorvas 02420 Finland
ゴンサロ・カマリロ(エディタ)エリクソンHirsalantie 11 Jorvas 02420フィンランド
EMail: Gonzalo.Camarillo@ericsson.com
メールアドレス:Gonzalo.Camarillo@ericsson.com
Internet Architecture Board
インターネットアーキテクチャ委員会
EMail: iab@iab.org
メールアドレス:iab@iab.org