\( \def\vector#1{\boldsymbol{#1}} \)

Peer to Peer

Takami Torao #P2P
  • このエントリーをはてなブックマークに追加

導入

Peer to Peer (P2P) は対等な動作をする (明確な主従関係を持たない) ノードによるネットワークまたはシステムのモデル。クライアント/サーバシステム (C/S システム) におけるサーバはクライアントに対して一方的にサービスを提供する役割だったのに対して、P2P では一方的にサービスの提供者となるサーバは存在せず、それぞれの Peer が状況に応じてサーバとクライアント両方の役割を持つ。

Client-Server

Client-Server

  • 固定個数のサーバ
  • CPU とネットワークに制限されている
  • ユーザの増加によって遅延する
Peer to Peer

Peer to Peer

  • 中央サーバが存在しない
  • 全てのノードは等価
  • それぞれのピアはリソース量を自分で決定
  • ユーザ増加に耐える
高いスケーラビリティ
ハブ型の C/S システムではシステムの利用量が急増すると特定のサーバやネットワークに負荷が集中するのに対して、P2P 型のシステムはサーバ機能を各ノードが分散して維持しているため、ネットワークの特定の部分に負荷が集中することがなく、利用量の急増にも耐えられる。
高い耐障害性
C/S 型のシステムはサーバやサーバ周辺のネットワークが停止するとシステム全体が利用できなくなるが、P2P 型システムではシステム内の一部のノードが停止しても全体としてのサービスは継続される。
低い一貫性
サービスに使用する情報がネットワーク上に分散しているためデータの一貫性を短時間で同期させることが難しく、データの一元管理が難しい。情報に生じた更新を短時間のうちに他の情報と動悸させなければならないような用途には向かない。
低い管理性
システム内の駆動状況や全てのノードを把握している部分がないことから、システム管理の仕組みを作ることが難しい。多くの P2P 型システムは一度運用を開始するとシステム全体を停止することができない。これは中央サーバないことから管理する必要がないとも言える。

Napster (1999-2011) や Napster 互換プロトコル OpenNap を使用する WinMX (2001-2005) は P2P によってノード間でファイルを共有するソフトウェア及びサービスである。このシステムにはメタデータを管理する中央サーバが存在し、P2P ネットワーク上にどのようなノードが参加しているか、目的のデータがどのノードに存在するかを保持している。このような形式の P2P ネットワークをハイブリッド P2P 型と呼ぶ。

一方で Gnutella (2000-) には中央サーバが存在せずピア間の通信のみによって目的のデータを持つノードを検索することができる。このタイプをハイブリッド P2P に対してピュア P2P 型と呼ぶ。

匿名性

Freenet の匿名性

P2P フレームワークである Freenet は言論の自由が保証されていない地域において自由な言論を行うことを目的としている。このため転送効率や利便性より通信の匿名性を重視して設計されている。

Freenet では暗号化したファイルをブロックに分割し周辺の中継ノードを経由して P2P ネットワークに拡散している。ファイル受信者は P2P ネットワークで検索を行い、該当するファイルの断片を集めてファイルを復号化する。この仕組みにより、ファイルの受信者および中継ノードは断片化されたブロックを受け取った相手が第一発信者かを判断することができない。

この Freenet 方式はファイル送信者が拡散するブロックと受信者が出す検索要求をネットワークの隅々まで行き渡らせる必要があるため、ネットワーク規模が大きくなると機能性が低下する。

Winny の匿名性

参考リンク

  1. 滝沢誠、榎戸智也 (2014), 分散システム:P2Pモデル, コロナ社
  2. 金子勇 (2005), Winnyの技術, アスキー