前号: No 231 / 次号: No 233 / 一覧に戻る
ピアツーピアネットワーク(P2Pネットワークとも呼びます)と いう言葉をご存知でしょうか? ピアツーピアネットワークは知らなくても、ビットコインや ブロックチェーンといった言葉なら聞いたことがある、という方も 多いでしょう。 ビットコインのような仮想通貨では分散型のデータ管理を行って いるのですが、分散型データ管理を支える技術として、ピアツー ピアネットワークやブロックチェーンといったものがあります。 今回から数回に分けてそれらの解説を行います。今回は、その基礎 技術となるピアツーピアネットワークを解説します。1. ピアツーピアとは?
ピアツーピア(Peer to Peer)は一般的にP2Pと略記されます。 (以降ではピアツーピアのことをP2Pと書きます) 「ピア(peer)」というのは対等な立場の人のことで、P2Pネット ワークは二者が平等な立場で通信を行うネットワークのことを 言います。 インターネットで他のコンピュータと通信する際はサーバ・ クライアント方式となるのが通常です。各人の端末(PCや スマホ)と目的のサーバ(amazonだとかgoogleだとか)とが 通信をする形式です。 これに対し、P2Pネットワークでは端末同士が直接やりとりをする 方式を言います。 通信方式は異なりますが、昔のガラケーでのIR(赤外線)による アドレス交換や任天堂の携帯ゲーム機でのすれちがい通信と いった方式と同様です。 要は、サービスを中継するようなコンピュータなしで端末と端末 間で直接通信を行う方式なのです。2. P2Pとサーバ・クライアント方式の違い
こう書くとP2Pネットワークはごく普通のことのように聞こえます が、意外なことにP2Pネットワークはほとんど使われていません。 例えば、LINEのようなソーシャルネットワークサービス(SNS)や Web会議などはいかにもP2Pネットワークっぽいですが、これらは お互いに端末からインターネット上のサーバ上に接続をして、 サーバが中継をしてサービスを実現していますので、P2Pではあり ません。 また、外出先から家庭内のブルーレイレコーダに録画をさせる のも(内部の制御方法はかなり複雑ですが)やはりサーバを通じて 家庭のレコーダとの通信を行っています。 つまり、一般的なインターネットサービスはことごとくサーバ・ クライアント方式を使っていると言えます。 では、P2Pネットワークはどんなところで使われているのでしょう?3. P2Pネットワークと言えばファイル共有
最初にP2Pネットワークが大規模利用されたのはファイル共有サー ビスでした。 Winnyというソフトをご存知でしょうか? これは、P2Pネットワークをフルに活用したファイル共有ソフト でした。 ファイル共有ソフトというのは、文字通りファイルをP2Pネット ワークを通して、たくさんの人が利用できるようにするソフト です。 通常なら、サーバ・クライアント方式になりますので、(誰かが 費用を負担して)巨大なファイルサーバをたちあげ、他の人が それを利用する形を取ります。 一方、Winnyの場合は、自分の端末で保有しているファイルを他の Winny利用者者(P2Pネットワーク参加者)に提供でき、同時に自分 も他の参加者の提供するファイルを自由にコピーできました。 誰かがアップロードしたファイルは短時間で多くの参加者に自動的 にコピーされる仕組みがありました。そのため、最初にアップロード した人のパソコン(PC)が落ちていても、誰かがコピーを持っている おかげで、いつでも必要なものがダウンロードできたのです。 これは一時は大流行したのですが、利用方法がよろしくありません でした。交換対象の多くが著作権違反(映画など)のファイル だったため、警察により作者が起訴される(最終的には無罪)など 社会問題となりました。 そのためもあり、ファイル共有ソフトやP2Pネットワークというもの 自体に手を出す研究者が激減し、新たなソフト開発は下火となって いったのです。4. P2Pネットワークの特徴
P2Pネットワークにはいくつかの特徴があります。 まず、P2Pネットワークでは、データを複数のコンピュータで 分散して持つため、ものすごく大量のデータをローコストに 保持できるという点があります。 P2Pネットワークでは参加者全員がデータを持つ役割を担います。 各コンピュータはそれぞれの容量やパワフルさに応じて、無理の ない範囲でデータの一部を保管するわけです。この時に同じデータ を複数のコンピュータにダブらせて持っておくわけです。 そして、データを取得する時には、そのデータを誰が持っているか P2Pネットワーク上で検索した上で、見つけたコンピュータと直接 通信をしてデータを受け取ります。 このようにデータを分散して保持する都合上、P2Pネットワークに 参加するコンピュータが多ければ多いほど大量のデータをネット ワーク全体で保持できるわけです。 逆に言えば、P2Pネットワークは参加者が数人程度ではあまり有効 とは言えず、数百台、数千台といったコンピュータが参加すること で本領を発揮すると言えます。 次に、多数の参加者がいると、圧倒的に故障に強くなる点があります。 例えば、サーバが1台なら、そのサーバが壊れればそれまでです。 サーバが2台構成であれば、どちらかが動いていればサービスを 実現できますから、1台の時よりもずっと壊れる率が低くなります。 だからといって、無限にサーバを増やすことはできません。 一方で、上述のように多数のコンピュータがP2Pネットワークに 参加していると、その全てが故障する率など事実上ゼロと言えます。 つまり、1台1台を比べればサーバの方がずっと壊れにくいと しても、トータルで考えるとP2Pネットワークの方がはるかに壊れ にくいことになります。 二点目は、データ喪失がほぼなくなる点です。 これも稼動率と同様なのですが、サーバが壊れるとデータも失な われてしまいます。(バックアップしていても、バックアップ後に 作られたデータはなくなります) ですがP2Pネットワークでは同じデータを多くの端末が所持すること になるため、事実上データを喪失することがなくなります。 三点目として、ネットワークに優しい(負荷をかけにくい)という 点もあります。 サーバ・クライアント方式ではデータを取り出すために必ずサーバ に辿り着く必要があります。 ですが、P2Pネットワークでは、自分に一番近いところにある (ネットワーク経路上で近いという意味です。必ずしも近い場所 とは限りません)端末からデータコピーができますから、不必要な アクセスを減らすことができます。 このようにP2Pネットワークというのは、メリットの多い方式なの ですが、同様にデメリットもあります。 次回はこのP2Pネットワークのデメリットについて解説をします。 次回もお楽しみに。 (本稿は 2021年11月に作成しました)