ビットコイン、Rippleなどでは、通貨の取引履歴情報を、各ノードで分散して持つことによって、通常はサーバーで管理する台帳データの不正な改竄を防ぐことができるので、P2Pを利用している。これにより自分のノードの台帳データを改ざんしたとしても、他の多数のノードが正しいデータを保持していることにより、比較した際に改竄を検知することができる。 「こういうデータを持っているのは誰ですかね?」という問いに答えるためには、データを検索するための属性キーとデータのありかの対応表(インデックス)を持っている必要があるが、これをサーバーに集中して持たせる場合と、各ノードに分散して持たせる場合と、特定の選ばれたノードに分散して持たせる場合、の3種類が存在する。 ハイブリッドP2Pにおいては、インデックス情報を、中央のインデックスサーバーで一括して管理する。新しいデータを保持したノードは、自分が持っていることを、インデックスサーバーに申告しておく。データを欲するノードが、「このキーに対応する相手を教えて下さいな」とインデックスサーバーに問い合わせると、対応する相手のIPアドレスを教えてくれる。インデックスが膨大になると、スケーラビリティが無くなる点が、後述のピュアP2Pと比べて劣るが、通常規模のシステムであれば、この方式で事足りるケースが多い。インデックスサーバーがダウンすると、システム全体が停止するため、耐障害性の面では、ピュアP2Pに劣る。 BitTorrent、Napster、WinMX、放送型P2P (オーバーレイマルチキャスト
技術的な分類
インデックス情報の持ち方での分類
ハイブリッドP2PハイブリッドP2Pの仕組み(図はBitTorrentのもの)。
欲しい情報となるキーファイルをサーバーに伝え、実際のデータはノード同士でやりとりを行う仕組み
ピュアP2PピュアP2Pの仕組み。一切の処理をコンピューター同士が対等に通信を行うのが特徴である。
インデックス情報は、各ノードが少しずつ分散して持ち合う。自分の知っているノードに、「データを持っているのは誰ですかね?」というメッセージを投げると、そのノードが知っていれば回答が返り、知らなければ又聞きをしてくれる(メッセージを転送する)仕組みになっている。インデックスが膨大になっても破綻しないため、スケーラビリティが高い。メッセージ転送の方式により、非構造化タイプと構造化タイプの2つに分類できる(後述)。
Gnutella、Freenet、OceanStore、Winny、Share は、この方式を採用している。
ピュアP2Pに参加する際には、既に参加しているノードのIP情報を何らかの形で知っている必要がある。このためには、常に活きているノード(コンタクトノード)を用意しておいて、参加時はいつもそこに接続するようにするか、あるいは、参加しているいくつかのノードの情報をサーバーに集めて、ここから知るように構成する。
インデックス情報は、特定の選ばれたノード(スーパーノード)が分担して持つ。スーパーノードには、できるだけ安定な端末(ずっと電源が入っていて、通信回線も安定していて、帯域幅も太いようなノード)が選ばれる。スーパーノードは、一般のエンドユーザーの端末から能力に応じて選ばれるが、サービス提供者側が用意した端末であることも多い。 KaZaA、Skypeは、この方式を採用している。 ピュアP2Pにおいては、インデックス情報も分散されて持たれるため、相手先IPアドレスの発見の仕組みは、検索メッセージを転送することで行われる。転送方式で、2種類に分類ができる。
スーパーノード型P2P
ピュアP2Pの構造による分類
非構造化オーバーレイ
問い合わせ元のノードは、キーに対応する相手を発見するために、手当たり次第に、自分が知っているノード(かつて通信をしたことがあるノードなど)に対して、「データを持っているのは誰ですかね?」というメッセージを投げつけ、受け取ったノードは、持っていれば返答し、持っていなければ検索メッセージをコピーして、他のノードに転送する方式。メッセージがネズミ算式に増えるので、フラッディング方式(洪水という意味)という別名が付いているが、メッセージが増えすぎないように、転送回数やメッセージの生存時間などで制限をかける必要がある。そのため、OLN上のどこかに相手が存在するにも関わらず、発見できない場合がある。Gnutella、Freenet、Winny、Share などで実装されている。
構造化オーバーレイ
「データを持っているのは誰ですかね?」というメッセージを転送する際の、転送先を選ぶ方法をあらかじめ構造的に決めておいて、「キーに対応する相手」が確実に分かるようにした方式である。よく知られている方式として、DHT(Distributed Hash Table)、SkipGraph
脚注[脚注の使い方]
出典^ ⇒P2PSIP
^ ⇒P2P@i
^ ⇒アプリケーション層マルチキャスト
^ ⇒PeerCastStation
^ ⇒シェアキャスト
^ ⇒「BBブロードキャスト
^ ⇒UG live視聴ページ
^ ⇒コナミのゲームソフト、METAL GEAR ONLINE 2のパッチ配布にはBitTorrentの技術を用いて行っている
関連項目
Wi-Fi Direct(英語版) - Wi-Fiを利用したP2P通信の規格。
Miracast
P2P共有
ファイル共有ソフトウェア
Gnutella
LimeWire
Cabos
WinMX
Winny/Freenet
Antinny
Perfect Dark
Profes
StealthNet
分散コンピューティング
Tor
Ripple
新月_(掲示板)
Real Time Media Flow Protocol
ポイント・ツー・ポイント
エンドツーエンド
外部リンク
研究資料
⇒CoopNet cooperative content distribution system(英語)
⇒More peer-to-peer research resources(英語)
⇒オーバレイ構築ツールキット
P2P関連情報サイト
⇒ネットワーク高度利用推進協議会シンポジウム「商用P2P、クラウド、キャッシュを活用したネットワーク効率化最新動向」の開催について
⇒P2P関連問題研究会 P2P基本提言 (PDF)
P2Pのこれまでとこれから : ネットワーク高度利用推進協議会活動の歴史とともに
表
話
編
歴
暗号化ソフトウェア
OpenPGP・S/MIME
メールサーバーの比較(英語版)
電子メールクライアントの比較(英語版)
GnuPG (Gpg4win・GPGTools)
PGP
Enigmail
Thunderbird
Outlook
Apple Mail
Claws Mail
Autocrypt(英語版)
Kontact
pretty Easy privacy(英語版)
Sylpheed
セキュア通信
OTR(英語版)
Adium
BitlBee(英語版)
Centericq(英語版)
ChatSecure
climm(英語版)
Jitsi
Kopete
MCabber(英語版)
Profanity(英語版)
SSH
SSHクライアントの比較(英語版)
Dropbear
lsh(英語版)
OpenSSH
PuTTY
SecureCRT(英語版)
WinSCP
wolfSSH(英語版)
RLogin
Poderosa
Tera Term