P2Pとは ― クライアントサーバとの違い
P2Pは、
P2Pとは、端末どうしが対等にデータを送り合う構成
ファイル共有ソフト、ブラウザのビデオ通話、ビットコインには共通点があります。データを、サーバを介さずに利用者の端末どうしで直接送り合えることです。このように、端末どうしが対等な立場で直接データを送り合う構成をP2P(Peer to Peer)と呼びます。
P2Pでは、どの端末もサービスを求める側と応える側の両方を受け持ちます。役割を分けるクライアントサーバシステムと比べると、止まりにくい一方で、管理はしにくくなります。
ピアは英語のpeerで、対等な仲間という意味です。日本語ではピアツーピアと読みます。RFC 5694は、システムを作る要素が自分の資源を出し合うものをP2Pとしています。
P2Pとクライアントサーバの違いは、データの通り道
クライアントサーバシステムでは、頼む側と引き受ける側の役割が決まっています。端末は毎回サーバに頼み、データはすべてサーバを通ります。
P2Pでは、端末どうしが直接つながります。同じ端末が、ある時は頼む側になり、別の時は引き受ける側になります。そのため、データは端末と端末の間を流れます。
| 観点 | クライアントサーバ | P2P |
|---|---|---|
| 役割 | 頼む側と | どの端末も |
| データの | すべて | 端末どうしで |
| 負荷 | サーバに | 参加する |
| 1台が | サーバなら | 端末なら |
| 管理 | サーバで | 参加する |
通り道の違いは、負荷のかかり方の違いになります。クライアントサーバでは、利用者が増えるほどサーバの負荷が増えます。P2Pでは、参加する端末が自分の回線や記憶領域を出すため、負荷が端末に分かれます。
ピュアP2PとハイブリッドP2Pの違いは、中央のサーバの有無
P2Pには、サービスを続けるのに中央のサーバが要る形と、要らない形があります。前者をハイブリッドP2P、後者をピュアP2Pと呼びます。この分け方は、RFC 5694が分散の度合いによる分類として紹介しているものです。
ハイブリッドP2Pでサーバに任せる仕事の例が、相手を探す仕事です。どの端末が何を持っているかの一覧だけをサーバが持ち、データそのものは端末どうしで直接送ります。RFC 5694は、この一覧を中央で持つものをハイブリッド型とし、その例にNapsterを挙げています。
ピュアP2Pでは、相手を探す問い合わせも端末どうしで回します。この分け方では、どの1台を取り除いてもサービスを続けられる形がピュア型です。最初に参加するときだけサーバを使う仕組みも、この分け方ではピュア型に入ります。
| 型 | 中央の | 例 |
|---|---|---|
| ハイブリッド | どの端末が | Napster |
| ピュア | 一覧は | 初期の |
サーバや端末を1台止めると、どこまで使えるかを比べる
次の図で構成を選び、止めるものを切り替えると、残った端末で使える線が変わります。止めたものにつながる線は、薄い点線になります。
- 使える
端末 - 4台すべて
- データの
通り道 - すべて
サーバを 通る
- 使える
端末 - 0台
- 止まる
こと - サーバが
受け持つサービスの すべて
- 使える
端末 - 残りの
3台 - 止まる
こと - 端末Aの
利用者が 使えなくなるだけ
- 使える
端末 - 4台すべて
- データの
通り道 - 相手探しは
サーバ、 データは 端末どうしで 直接
- 止まる
こと - 新しく
相手を 探す こと - 続けられる
こと - すでに
相手が 分かっている 組の やり取りは、 続けられる 場合が ある
- 使える
端末 - 残りの
3台 - 止まる
こと - 端末Aだけが
持っていた データは 手に 入らない
- 使える
端末 - 4台すべて
- データの
通り道 - 端末どうしで
直接
- 使える
端末 - 4台すべて
- 止まる
こと - 中央の
サーバが 無いため、 止まる ものは 無い
- 使える
端末 - 残りの
3台。 B・D・Cの 順に つながる - 止まる
こと - 端末Aだけが
持っていた データは 手に 入らない
クライアントサーバでは、サーバが止まると端末が何台残っていても使えません。このように、止まると全体が止まる1か所を単一障害点と呼びます。単一障害点の考え方は、フォールトトレラントの記事にも出てきます。
P2Pの利点と注意点
利点
- 中央のサーバを持たない形なら、1台が止まっても残りの端末で動き続けられる
- 参加する端末が増えると、負荷とともに処理する力も増える
- データを配る負荷が、1台のサーバに集まらない
RFC 5694は、拡張性をP2Pの大きな特徴に挙げています。ピアが加わると負荷も増えますが、そのピアが資源を出すため、処理する力も増えるからです。
注意点
- 端末がいつ抜けるか分からないため、同じデータの複製を持たせるなどの備えが要る
- 参加する端末を1か所で管理できず、運用の手間がかかる
- 悪意のある端末が混ざると、全体の安全性が下がる
RFC 5694は、P2Pの安全性は悪意のあるノードがどれだけ混ざるかに大きく左右されると書いています。
ファイル共有ソフトでは、利用者の意図しないファイルが公開される情報漏えいが問題になりました。情報処理推進機構(IPA)は、Winnyなどのファイル共有ソフトによる情報漏えいを防ぐツールを、2025年9月末まで配布していました。業務の端末では、許可していないソフトを入れない管理が要ります。
家庭や会社の端末は、NATを行うルータの内側にあることが多いです。RFC 5128は、NATの内側の端末はふつう外から見えるポートを持たず、P2Pの直接の通信が難しくなると説明しています。外から内側の端末に届ける設定は、ポート開放の記事で説明しています。
P2Pが使われている例
ファイルを配るBitTorrentでは、トラッカーと呼ぶサーバが、同じファイルをやり取りしている相手の一覧を返します。ファイルの断片は、ダウンロードする端末どうしが互いに送り合います。相手探しをトラッカーに頼る点で、ハイブリッドP2Pの形と言えます。
ブラウザで使うビデオ通話の仕組みであるWebRTCも、端末どうしを直接結べます。RFC 8825は、通話の相手をつなぐ連絡はサーバを通し、映像と音声はブラウザどうしを直接結ぶ構成を示しています。
ビットコインは、P2Pのネットワークで取引を記録します。論文の題も「A Peer-to-Peer Electronic Cash System」で、金融機関を通さずに当事者どうしで送金する仕組みとして提案されました。参加する端末が自由に抜けたり戻ったりできる点で、ピュアP2Pの形と言えます。
参考にした資料
- RFC 5694「Peer-to-Peer (P2P) Architecture: Definition, Taxonomies, Examples, and Applicability」(2章の定義、3章・4章のハイブリッド型とピュア型、6章・7章の利点と注意点)
- RFC 5128「State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)」(1章)
- RFC 8825「Overview: Real-Time Protocols for Browser-Based Applications」(3章)
- BitTorrent.org「BEP 3: The BitTorrent Protocol Specification」
- Satoshi Nakamoto「Bitcoin: A Peer-to-Peer Electronic Cash System」
- IPA「情報漏えい対策ツールについて」
練習問題(全4問)
正解:ネットワークに
P2Pでは、
正解:ハイブリッドP2Pでは、
ハイブリッドP2Pは、
正解:参加する
P2Pでは、
正解:サーバが
すべての
選んでから「採点する」を押すと、解説つきで答え合わせができます。