[要約] 要約: RFC 5694は、P2Pアーキテクチャの定義、分類、例、および適用可能性について説明しています。目的: このRFCの目的は、P2Pアーキテクチャの理解を深め、その利点や適用範囲についての情報を提供することです。

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

ピアツーピア(P2P)アーキテクチャ:定義、分類、例、および適用可能性

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.

Copyright(c)2009 IETF Trustおよび文書著者として特定された人。全著作権所有。

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 Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、セクション4.Eで説明されている法的規定のセクション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
        
1. Introduction
1. はじめに

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システム(ピアツーピアRG)にはインターネット研究タスクフォース(IRTF)研究グループ(RG)があります。。また、インターネット上で実行されているP2Pプリ理を使用する商用および非商業的アプリケーションもいくつかあります。これらのP2Pアプリケーションの一部は、現在インターネット上で最も広く使用されているアプリケーションの1つです。

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システムを使用して、ドキュメント全体にいくつかの例を提供することにより、完全に合法的なアプリケーションとビジネスモデルを実装できるという事実の重要性を強調しています。

2. Definition of a P2P System
2. 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システムと集中化されたシステムの間のどこかに落ちるシステムの多くの例があります。

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の定義の検索に他の資料(マーケティング資料など)を含めると、定義の多様性がさらに高くなります。

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サービスで構成されており、それらのいくつかはクライアントサーバーサービスで構成できます。たとえば、ファイル共有クライアントには、実際のファイル共有を実行するP2Pクライアントと、集中化されたWebサーバーの追加情報にアクセスするWebブラウザを含めることができます。さらに、クライアントサーバーシステムが通常、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であるかを説明します。

2.1. Applying the P2P Definition to the DNS
2.1. P2P定義をDNSに適用します

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と見なされるシステムのサービス要求者とサービスプロバイダーの両方である必要があります。

2.2. Applying the P2P Definition to SIP
2.2. P2P定義をSIPに適用します

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システムで同様の方法で確立されます。セッションに関係するノード間です。ただし、Rendezvous関数は、従来の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 Invite Transactionsにのみ関与します。システムがP2Pであるためには、そのノードは、他の人、つまりノードに直接利益をもたらさないサービスに関連するトランザクションに関与する必要があります。

2.3. Applying the P2P Definition to P2PSIP
2.3. P2P定義をP2PSIPに適用します

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つのリモートユーザーエージェントのランデブー)。

2.4. Applying the P2P Definition to BitTorrent
2.4. P2P定義をBitTorrentに適用します

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 Systemsは、他のエンドポイント(つまり、他のエンドポイントからピースをダウンロード)からエンドポイントを要求し、他のエンドポイントにサービスを提供するため、P2Pシステムです。ただし、ほとんどのエンドポイントが最初から完全なファイルを持つインフラストラクチャノードである特定の群れは、ほとんどのエンドポイントはサービスを提供するだけでなく、P2Pシステムを厳密に考慮することができないため、常に機能していたことに注意してください。それらを要求します。

3. Functions in a P2P System
3. 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 not consider these functions when classifying P2P systems. Instead, they classify P2P systems based on how the following set of functions are implemented.

上記の機能は、一部のP2Pシステムで集中化された方法で提供されます(たとえば、中央登録サーバーとBootstrapサーバーと呼ばれる中央ピアディスカバリーサーバーを介して)。セクション4で説明するP2Pシステムの分類法は、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アプリケーションについて説明します。

4. Taxonomies for P2P Systems
4. 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システムを分類することは正常なものですが、異なる著者が同じ用語を使用して異なることを示すという事実(例えば、第一世代と第2世代の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、Gnutellaの初期バージョン(バージョン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.

それでも、一部の著者は、それらが示す構造のレベルによって純粋なP2Pシステムを分類します[Alima2005]。構造化されていないシステムでは、ピアは他の既存のピアに接続することにより、システムに参加します。構造化されたシステムでは、ピアは論理識別子に基づいて明確に定義されたピアに自分自身を接続することにより、システムに参加します。ローカルインデックスを使用し、まったく構造を持たず、構造化されたシステム(DHTベースのシステムなど)を使用した初期の非構造化システム(例:Gnutellaの初期バージョン)の区別は、分散インデックスを使用し、明確に定義された構造を持っていた構造化されたシステム(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システムのさまざまな世代を参照しています。一部の場合、第1世代、第2世代、および第3世代は、集中インデックス、フラッディングベースの検索(つまり、ローカルインデックスを使用)、およびDHT(つまり、DHTベースの分散インデックス)を使用したP2Pシステムで構成されています[Foster2003]。他の著者は、第2世代のシステムには、非DHTベースの分散インデックスも持つことができると考えています[Zhang2006]。しかし、他の著者の場合、第一世代と第2世代は、それぞれ非構造化(通常は洪水ベースの検索)と構造化(DHTベースの)ルーティングを使用したP2Pシステムで構成されています[RFC4981]。技術的なコンテキストでの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システムは、登録とピアディスカバリーサーバーを集中していたとしても、純粋と見なされます。

5. P2P Applications
5. 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]に分類できます。コンテンツの分布、分散コンピューティング、コラボレーション、プラットフォーム。

5.1. Content Distribution
5.1. コンテンツ配布

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 Distributions [Rodriguez2005]、ゲームの更新[WOW]、およびLive 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].

ネットワークオペレーターはまた、ネットワークの寸法(たとえば、ボトルネックがある場所)に応じて、P2Pまたは集中化されたCDNによって生成されるさまざまなトラフィックパターンが、ネットワーク[HUANG2007]によって多かれ少なかれ簡単に対応できることを発見します。

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)に基づくセンサーネットワークの例はZebranet [Juang2002]です。Zebranetは、野生のゼブラを追跡するために使用されるネットワークです。各ゼブラには、さまざまな時期にシマウマ(その位置など)に関するデータを収集する追跡カラーがあります。モバイルステーションは、異なるシマウマからデータを収集および統合するために、襟とワイヤレスで通信します。すべてのシマウマが首輪がステーションと通信できるようにモバイルステーションに十分に近づくとは限らないため、首輪は彼らが収集したデータを交換して通信します。このようにして、特定の襟は、モバイルステーションにさまざまなゼブラのデータを提供します。P2Pネットワークは、前の例などの通信インフラストラクチャを展開することが不可能な状況で特に役立ちます(例えば、国立公園の規制や潜在的な破壊行為など)。これまでのところP2Pよりも多くましたが、その主な制約のいくつかはゼブラネのものに似ています)。ただし、ZebranetなどのセンサーネットワークはP2Pを厳密に考慮することはできないことに注意してください。なぜなら、サービスリクエストのみ(つまり、データの受信に関心のあるノードのみ)は、中央ノード(つまり、モバイルステーション)であるためです。

5.2. Distributed Computing
5.2. 分散コンピューティング

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と見なすことができないもう1つのよく知られた例は、SETI@HOME(地球外のインテリジェンスを検索)[SETI]であり、多くのコンピューターのリソースを使用して無線望遠鏡データを分析します。大規模なデータセットを処理するためのプログラミングモデルである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と厳密に見なすことができない別の形式の分散コンピューティングは、P2Pボットネットです[Grizzard2007]。P2Pボットネットでは、通常、スパムの生成または分散型拒否(DDOS)攻撃の起動で構成されるサービス要求は、通常、中央ノード(またはいくつかの中央ノード)によって生成されます。それが、彼らが厳密にP2Pと見なすことができない理由です。DHTベースのオーバーレイを使用して伝播するこのタイプのP2Pボットネットの例は、ストームボットネット[Kanich2008]です。分散型伝播技術に加えて、一部のP2Pボットネットは分散コマンドおよび制御チャネルも使用しているため、集中チャネルを使用して従来のボットネットよりも闘うことが困難になります[Cooke2005]。DHTベースのオーバーレイを使用して、さまざまな種類の無線アクセスネットワークの構成をサポートすることもできます[Oechsner2006]。

5.3. Collaboration
5.3. コラボレーション

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コラボレーションアプリケーションには、Voice Over IP(VoIP)やインスタントメッセージング(IM)アプリケーションなどの通信アプリケーションが含まれます。セクション2.3には、標準ベースのP2Pコラボレーションアプリケーションの例であるP2PSIPシステムに関する議論が含まれています。インターネットには独自のP2Pコラボレーションアプリケーションもあります[Skype]。コラボレーションアプリケーションは通常、Rendezvous、ネットワークアドレス翻訳者(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と区別するためのインフラストラクチャレスSIPと呼ばれることがあります。

5.4. Platforms
5.4. プラットフォーム

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システムの優れたスケーラビリティ特性を活用しています。

6. Architectural Trade-Offs and Guidance
6. 建築のトレードオフとガイダンス

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を使用して実装された多くの完全に合法的なアプリケーションについて議論しました。これらのアプリケーションの例には、ビデオ会議アプリケーション[Skype]、事前に録音されたテレビ番組[Rodriguez2005]、Linux Distributions [Rodriguez2005]、ゲームの更新[WOW]、およびライブ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システムの主な機能の1つは、スケーラビリティです。システムは、システム内のすべてのピアの処理容量とストレージ容量を活用できるため、ピアがより多くの処理容量またはストレージ容量を使用することにより、システムの負荷の増加が取り組まれます。一般に、新しいピアを追加すると、システムの負荷が増加しますが、システムの処理容量とストレージ容量も増加します。つまり、より多くのユーザーまたはより多くの負荷に対処できるように、中央サーバーを更新する典型的な必要性はありません[Leibniz2007]。適応型P2Pシステムは、ピア数やチャーンレートの変化などの条件[Mahajan2003]などの条件で可能な限り最良のモードで動作するように調整します。いずれにせよ、現時点では、実行中の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システムは、システムを不graceに残す仲間に対処するように設計されています(たとえば、クラッシュすることによって)。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システムのパフォーマンスは、多くの要因(たとえば、サーバーベースのシステムの寸法)に依存します。最も重要な要素の1つは、実行されるタスクのタイプです。セクション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システムのパフォーマンスは、システム内のピア間の協力の欠如によって悪影響を受ける可能性があります。システム内のフリーライダーの数を最小限に抑えるために、インセンティブを設置することが重要です。インセンティブシステムは、一般に、P2Pシステムを最適なレベルの協力に持ち込むことを目指しています[Feldman2004]。

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].

エネルギー消費は、システムのもう1つの重要な特性です。クライアントサーバーシステムの全体的な消費は一般に同じサービスを提供するP2Pシステムの消費よりも低いですが、P2Pシステムは、単一のエネルギーの消費量を単一のエネルギーの消費を潜在的に集中させる可能性のあるセントラルサーバー(サーバーファーム)を避けています。地理上の位置。とにかく、システム内のノードが常に稼働している必要がある場合、これらのノードを使用してP2Pの方法でタスクを実行することができます。ただし、P2Pシステムのピアとしてバッテリー駆動のデバイスを使用すると、ピアは通常、クライアントサーバーアーキテクチャでクライアントよりも多くのエネルギーを消費するため、スリープモードに頻繁に入ることができるため、いくつかの課題があります[Kelenyi2008]。エネルギー認識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とサーバーベースのシステムの一般的なプロパティを理解することは重要ですが、どのアーキテクチャが特定のアプリケーションに最適かを決定するには、アプリケーションとそのコンテキストに関する詳細な情報を取得することが含まれます。ほとんどのシナリオでは、どのアーキテクチャを使用するかを教えてくれる簡単なルールはありません。

7. Security Considerations
7. セキュリティに関する考慮事項

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人のピア間のメッセージをルーティングするのに役立つ中間ピアのセットを横断します。これらの中間のピアは、2人の指定されたピア間の道にいない場合、開始できないパス攻撃を開始しようとすることができます。攻撃者は、P2Pオーバーレイで論理的な場所を選択しようとすると、特定の被害者または一連の被害者に対するパス攻撃を開始できます。Sybil [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 Attack [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オーバーレイを何度も迅速に出して参加することにより、一連の攻撃者は大量のメンテナンストラフィックを作成し、オーバーレイのルーティング構造を不安定にすることができます。ノードごとの解約量を制限することは、この攻撃に対する防御の可能性です。

8. Acknowledgements
8. 謝辞

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とJani Hautakorpiは文献レビューを手伝いました。Henning Schulzrinneは、P2Pシステムの定義方法に関する有用なアイデアを提供しました。ブルース・ロウェーカンプ、ダン・ウィング、ダン・ヨーク、エンリコ・マロッコ、カレン・ジェニングス、フランク・ウエ・アンダーセンは、この文書に有用なコメントを提供しました。Loa Andersson、Aaron Falk、Barry Leiba、Kurtis Lindqvist、Dow Street、およびLixia Zhangは、この文書に関するIABの議論に参加しました。

9. IAB Members at the Time of This Writing
9. この執筆時点で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

マルセロ・バグヌロ・ゴンザロ・カマリロ・スチュアート・チェシャー・ギル・ラス・ヒューズリー・ジョン・クレンシン・オラフ・コルクマン・グレゴリー・レボビッツ・アンドリュー・マリス・ダニー・マクファーソン・デイビッド・オラン・ジョン・ピーターソン・デイブ・サラー

10. Informative References
10. 参考引用

[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] Alima、L.、Ghodsi、A。、およびS. Haridi、「構造化されたピアツーピアオーバーレイネットワークのフレームワーク」、Global Computing、vol。3267、コンピューターサイエンスの講義ノート:Springer Berlin / Heidelberg、pp。223-249、2005。

[BitTorrent] Cohen, B., "The BitTorrent Protocol Specification Version 11031", February 2008.

[Bittorrent] Cohen、B。、「The Bittorrent Protocol Specificationバージョン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] Cooke、E.、Jahanian、F。、およびD. McPherson、「ゾンビのラウンドアップ:ボットネットの理解、検出、破壊」、インターネットワークショップでの不要なトラフィックを減らすための手順の議事録、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.

[Dean2004] Dean、J。and S. Ghemawat、「MapReduce:大規模なクラスターでの簡略化されたデータ処理」、2004年12月、オペレーティングシステムの設計と実装に関する第6回シンポジウム(OSDI '04)。

[Douceur2002] Douceur, J., "The Sybil Attack", IPTPS 02, March 2002.

[Douceur2002] Douceur、J。、「シビル攻撃」、IPTPS 02、2002年3月。

[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] Farber、D。およびK. Larson、「分散コンピューターシステムの構造 - 通信システム」、コンピューターコミュニケーションネットワークおよびテレトラフィック、マイクロ波研究研究所のブルックリン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] Feldman、M.、Lai、K.、Stoica、I。、およびJ. Chuang、「ピアツーピアネットワークのための堅牢なインセンティブ技術」、2004年の第5回ACM会議の議事録。

[Foster1999] Foster, I., "Computational Grids", Chapter 2 of The Grid: Blueprint for a New Computing Infrastructure, 1999.

[Foster1999] Foster、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.

[Foster2003] Foster、I。およびA. Iamnitchi、「死、税金、ピアツーピアおよびグリッドコンピューティングの収束」、ピアツーピアシステムの第2国際ワークショップIPTPS '02、2003。

[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、Vol。4、2005年3月。

[Gong2001] Gong, L., "JXTA: A Network Programming Environment", IEEE Internet Computing, vol. 5, no. 3, pp. 88-95, 2001.

[Gong2001] Gong、L。、「JXTA:ネットワークプログラミング環境」、IEEEインターネットコンピューティング、Vol。5、いいえ。3、pp。88-95、2001。

[Gray1983] Gray, J. and S. Metz, "Solving the Problems of Distributed Databases", Data Communications, pp. 183-192, 1983.

[Gray1983] Gray、J。およびS. Metz、「分散データベースの問題の解決」、Data Communications、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] Gray、J。、「分散型コンピューターシステムへのアプローチ」、IEEEソフトウェアエンジニアリングに関するトランザクション、v 12.6、pp。684-689、1986。

[Gray1986B] Gray, J. and M. Anderton, "Distributed Systems: Four Case Studies", IEEE Transactions on Computers and Tandem Technical Report 85.5, 1986.

[Gray1986b] Gray、J。and M. Anderton、「分散システム:4つのケーススタディ」、IEEEトランザクションに関するIEEEトランザクション、タンデムテクニカルレポート85.5、1986。

[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.、Sharma、V.、Nunnery、C.、Kang、B。、およびD. Dragon、「ピアツーピアボットネット:概要とケーススタディ」、ボットネットの理解におけるホットトピックの議事録(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. Zhao、「モバイルピアツーピアシステムのエネルギー消費と保全」、モバイルコンピューティングとネットワーキングにおける分散型リソース共有に関する最初の国際ワークショップ(Mobishare 2006)、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] Huang、Y.、Rabinovich、M。、およびZ. Xiao、「IPTVサービスのP2Pストリーミングテクノロジーの課題」、IPTCワークショップInternational World Web Conference、エジンバラ、スコットランド、イギリス、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.、Oki、H.、Wang、Y.、Martonosi、M.、Peh、L。、およびD. Rubenstein、「野生生物追跡のためのエネルギー効率の高いコンピューティング:ゼブラネットとのデザイントレードオフと初期の経験」、コンピューターおよび通信セキュリティに関する会議(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.、Enright、B.、Voelker、G.、Paxson、V.、およびS. Savage、「Spamalytics:Spam Marketing Conversionの経験的分析」、コンピューターでの会議の議事録およびコミュニケーションセキュリティ(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。Cognitive and Cooperative Wireless Networks Workshop IEEE International Conference on Communications 2008、Beijing、China、pp。164-168、2008のワークショップ。

[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] Leibniz、K.、Hobfeld、T.、Wakamiya、N。、およびM. Murata、「Peer-to-Peer vs. Client/Server:コンテンツ配信サービスの信頼性と効率」、コンピューターサイエンスの講義ノート、LNCS 4516、pp。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.、Crowcroft、J.、Pias、M.、Sharma、R.、およびS. Lim、「ピアツーピアオーバーレイネットワークスキームの調査と比較」、IEEE通信調査&チュートリアル、Vol。7、いいえ。2、2005年第2四半期、pp。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.

[MMUSIC-ICE] Rosenberg、J。、「Interactive Connectivity Indecivity(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] Mahajan、R.、Castro、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.、Nagaraja、K.、Pruyne、J.、Richard、B.、Rollins、S.、Z. Xu、「Peer-to-Peer Computing」「、テクニカルレポート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. Kitsuregawa、「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.、Andersen、F.、およびL. Caviglione、「B3G無線アクセスノードの構成にKademliaを使用」、第4回年次IEEE国際会議の議事録についてPervasive Computing and Communications Workshops(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] Peltotalo、J.、Harju、J.、Jantunen、A.、Saukko、M。、およびL. Vaatamoinen、「Peer-to-Peerストリーミングテクノロジー調査」、セブンス国際会議、ネットワーキング、カンクン、メキシコ、PP。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. Vassiliadis、「ピアツーピアネットワークの調査」、第16回年次ワークショップ、システム、Signal Processingの議事録、Prorisc 2005、2005年11月。

[RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, RFC 959, October 1985.

[RFC0959] Postel、J。およびJ. Reynolds、「ファイル転送プロトコル」、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] Fielding、R.、Gettys、J.、Mogul、J.、Frystyk、H.、Masinter、L.、Leach、P。、およびT. Berners-Lee、「Hypertext Transfer Protocol-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] Rosenberg、J.、Schulzrinne、H.、Camarillo、G.、Johnston、A.、Peterson、J.、Sparks、R.、Handley、M。、およびE. Schooler、「SIP:SESSION INTIANIATION Protocol」、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. Moors、「堅牢なピアツーピアネットワークへの研究の調査:検索方法」、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.、Ford、B。、およびD. Kegel、「ネットワークアドレス翻訳者(NAT)全体のピアツーピア(P2P)通信」、RFC 5128、2008年3月。

[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] Rhea、S.、Godfrey、B.、Karp、B.、Kubiatowicz、J.、Ratnasamy、S.、Shenker、S.、Stoica、I。、およびH. Yu、 "Open dht:a public dhtサービスとその用途」、ACM/SIGCOMM CCR'05、Vol。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] Rodriguez、P.、Tan、S。、およびC. Gkantsidis、「商業的法的P2Pコンテンツ分布の実現可能性について」、ACM/Sigcomm CCR'06、2006年1月。

[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.、Baker、M.、Rosenthal、D.、Guili、T.、Maniatis、P。、およびJ. Mogul、「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>.

[seti] "seti@home"、<http://setiathome.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] Singh、A.、Ngan、T.、Druschel、T。、およびD. Wallach、「オーバーレイネットワークに対する日食攻撃:脅威と防御」、Infocom 2006、2006年4月。

[Skype] "Skype", <http://www.skype.com>.

[Skype]「Skype」、<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] Tanenbaum、A。およびS. Mullender、「Amoeba分散オペレーティングシステムの概要」、ACM Sigopsオペレーティングシステムレビュー、1981。

[WoW] "World of Warcraft Community Site", <http://www.worldofwarcraft.com>.

[すごい]「World of Warcraft Communityサイト」、<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] Zhang、Y.、Chen、C。、およびX. Wang、「P2Pネットワークに関する研究の最近の進歩」、並行および分散化されたコンピューティング、アプリケーション、およびテクノロジーPDCAT '06、2006に関する第7回国際会議の議事録における。

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.

集中アーキテクチャ(クライアントサーバーアーキテクチャなど)では、セントラルサーバー(または中央サーバーが非常に少ない)が、システムの処理とストレージのほとんどを引き受けます。逆に、分散型アーキテクチャには、NO(または非常に少ない)集中要素が含まれています。

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アプリケーション)に従わなかったアプリケーション(P2Pアプリケーションなど)が、パブリックインターネットに広く展開されるのに比較的長い時間がかかった理由の1つでした。

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の存在下で自分自身の間のつながりを確立することを可能にします。インターネットエンドポイント間のグローバル接続の回復により、多くのP2Pアプリケーションをパブリックインターネットに展開することが可能になりました(残念ながら、グローバル接続がネットワークレイヤーでネイティブにサポートされていないという事実により、アプリケーションがNATに対処するために必要なため、結果として生じる可能性があります。非常に複雑なシステムで)。これらの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.

分散アプリケーションを展開することを可能にしたもう1つの要因は、パーソナルコンピューターとネットワークデバイスの処理能力とストレージ容量に関して、継続的な重要な進歩でした。最終的に、インターネット上のほとんどのエンドポイントには、以前はハイエンドサーバーの範囲内にある機能がありました。自然な次のステップは、分散型の利用可能な容量をすべて活用した分散アプリケーションを設計することでした。

Authors' Addresses

著者のアドレス

Gonzalo Camarillo (editor) Ericsson Hirsalantie 11 Jorvas 02420 Finland

ゴンザロカマリロ(編集者)エリクソンハーサランティ11ジョルバス02420フィンランド

   EMail: Gonzalo.Camarillo@ericsson.com
        

Internet Architecture Board

インターネットアーキテクチャボード

   EMail: iab@iab.org