Personal tools
You are here: Home 原稿・資料 アスキー NETWORK MAGAZINE原稿 1. 概論+基礎
Document Actions

1. 概論+基礎

[概論]
ピア・ツー・ピア(Peer-To-Peer。以下P2P)は「対等のもの同士」という意味だ。コンピュータの世界では、サーバーを使わずに対等な関係のコンピュータ(ピア)同士が直接通信する中心のないネットワーク(インターネットの利用形態)、となる。ピアはP2Pのネットワークで交点になるので「ノード」とも呼ばれる。さて、P2Pと比較されるのはWebやメール(POP、SMTP)に代表されるクライアント・サーバー方式である。クライアント・サーバー方式では、データを要求するクライアントと要求されたデータを返すサーバー、というように各コンピュータの役割が固定的で明確に区別されるのに対し、P2Pでは各ピアが状況に応じて、サーバーの役割もクライアントの役割も果たす。またP2Pではデータが一箇所に存在するわけではないので、データ探索の仕組みが必要になってくるのも特徴だ。
ところで、P2Pと聞いて「音楽ファイルなどの違法コピー」を連想する人も少なくないだろう。また、そのイメージは限りなくダークかも知れない。あるアプリケーションが、そこに使われている技術の代名詞として扱われることは良くあることであり、要素技術が市民権を得るための近道でもあるので、それはそれで悪いことではない。ただP2Pの場合、有名になったアプリケーションが違法な用途で使われたため、土台となっているP2P技術までもが危険なもの、違法なものというイメージを受けてしまった。NapSter、Winny、KaZaA、 WinMXなどのP2Pファイル交換ソフトの存在は「P2Pの認知度を上げる」ことに関しては一定の意義はあったものの、ビジネス用途としての普及という点では、むしろイメージを悪化させ、障害にもなった。
しかしここで今一度冷静になってP2Pの定義を確認しておくと、単に「ピアとピア(※)が直接通信する」ことなので、当然ながらその応用範囲はファイル交換だけにとどまるものではない。P2Pテクノロジーの発展はP2Pファイル交換ソフトの歴史に大きく依存しているのは確かだが、その過程で誕生した、いわゆる「P2Pテクノロジー」群は、ファイル交換ソフト以外にも応用可能であり、有用なものである。ここへ来てようやくビジネス的に実用に耐えるP2Pアプリケーションが登場し、「サーバーありき」で行われていた、これまでのシステム設計の中核あるいは部分の技術ソリューションとして、P2Pが選択肢として加わる準備が整いつつある。
本章ではファイル交換ソフトの代名詞として発展してきた P2Pをふまえながら、できる限り純粋にテクノロジーとしてのP2Pの基本を解説していく。まず初めにP2Pを議論していく上でキーとなる概念「オーバレイネットワーク」の解説と、その実現のために誕生した数々のP2Pテクノロジーについての紹介をする。その後、幅広い意味で使われるP2Pという用語を、各場面で正しい議論が行われるように、筆者なりの視点で分類し結びとしたい。

[P2P技術が実現する「オーバレイネットワーク」]
いきなり聞き慣れない言葉に戸惑うかも知れないが、オーバレイネットワークはP2Pネットワークを議論する上で欠かせない概念なので、最初に解説を行いたい。決して難しくはないので、ここでしっかりと理解しておこう。オーバレイネットワークとは一般に「既存のネットワークを上位のレイヤーで覆うことで抽象的に扱う」概念のことで、P2Pの世界では「IPの抽象化」とも言い換えられる。また、様々なP2Pアプリケーションが独自に実装しているP2Pネットワークの総称として使われることもある。オーバレイネットワークという概念が非常に便利なのは、P2Pの議論をする際、NATやファイアウォールなどの制約をないものとして話を進めることができる点である。どちらかというとソフトウェア・エンジニア寄りの発想かもしれない。
<コラム> P2Pの話をしているとネットワーク・エンジニアとソフトウェア・エンジニアで視点が違うことがある。P2Pのレイヤーを上から見るか下から見るかの違いであるが、議論の的がずれることがあるので注意されたい。P2Pはネットワークとソフトウェアのちょうど界面に存在する技術と言うこともできるだろう。
<図>オーバレイネットワーク

[P2Pの要素技術]
このオーバレイネットワークを実現するため、数々の要素技術(P2Pテクノロジー)が生み出された。P2Pテクノロジーは、アプリケーション層でデータのコピーや探索を行う際に障害となる諸々の壁を乗り越える技術であり、また、それによって構築されたオーバレイネットワークを最適化するための技術の集合である。
筆者がP2Pテクノロジーと見なしている範囲を共有するため、参考までにいくつか例を挙げておこう。
* ファイアウォール/NATを透過する技術
詳細は「NAT越えの技術」を参照のこと。
* 分散配置されたデータの探索技術
P2Pネットワークに存在するデータを探索する技術。詳細は「P2Pの探索技術」を参照のこと。
* ピアによるキャッシュ
P2Pネットワークに参加するすべてのノードが分散してデータを持ち、再配信可能にする技術。P2Pでコンテンツ配信を行うKONTIKI社では「Outer Edge Caching(※)」という表現を使っている。
* オンデマンドなクラスタリング
同一のファイルを持つ応答可能なノード同士が、そのファイルを要求するノードに対し動的にクラスタ化し、協調してファイルを返す技術
* アプリケーション層のルーティング技術
抽象化されたネットワーク上で効率的にルーティングを行う技術。たとえば公開鍵基盤(PKI)を用いた通信経路の秘匿性を保つ「オニオンルーティング」や、通信の混雑を動的に回避し、ダイナミックに通信経路を最適化していく「インテリジェントルーティング(Skype。※)」などである。
* etc.

[P2Pの分類]
P2P がカバーする領域はとても広い。シチュエーションによって、P2Pのどの側面について言及しているのかを意識することが重要である。ここではそのための第一歩として、P2Pの基本的な分類を行う。あらゆる場面で形を変えて現れるP2Pについて、その都度お互いが共通のイメージを持ち、有意義な議論を行って欲しい。
それではさっそく以下の二つの側面から分類を行う。ひとつが以前から良く持ち出される「データ探索(の仕組み)」から見たP2Pの分類、もう一つがP2Pアプリケーションが扱う「データの種類」による分類である。

1. 探索の仕組みによる分類
P2P の特徴の一つはサーバーにデータを置かないことである。ユーザーの興味があるデータを一元的なサーバーに置くのではなく、各々のユーザーが自分のPC(ピア)に持つのだ。しかし、このように分散してデータを持ってしまうと、自分が必要としているデータがどのノードにあるのかを探索する仕組みが必要になってくる。探索技術の実装については「P2P探索技術」に譲るが、P2Pシステムは探索の仕組みによって以下のように分類できる。
(a) ハイブリッドP2P〜探索はサーバーで
クライアント・サーバーとP2Pのハイブリッドという意味で、システム内にはデータの所在を知っているサーバー(インデックスサーバー)が存在し、各ノードはインデックスサーバーにファイルの所在を問い合わせ(クライアント・サーバー方式)実際のデータ取得はそのファイルを持つノードから直接行う(P2P)。
代表アプリケーション: NapSter(※)
(b) ピュアP2P 〜 お互いが教えあう
データ探索のためのサーバーを持たず、データの探索もピア同士で行う。
代表アプリケーション: Gnutella(※)アリエル プロジェクトA(※)
(c) 動的クラスター型ハイブリッドP2P
探索のための特定のサーバーは持たないが、探索用に別の協調ネットワークが存在するシステム。探索用のノード群は要求元のノードに対して、お互いが協調して探索結果を返すため、要求元から見ればクラスターのように動作する。また探索用ノード群の構成員は固定的ではなく、特定の条件を満たした一般のノードが選ばれることもある。
代表アプリケーション: Skype(※)
<図>探索の仕組みによる分類

2. データの種類による分類
ピアとピアが対等の関係でお互いに通信を行うのがP2Pであるが、扱うデータによってその実現方法(実装方法)は大きく異なる。詳細は「NAT越えの技術」を参照して欲しいが、以下の分類によって、P2Pと一括りにされる技術であっても使用するプロトコルからシステム構成に至るまで、大きく異なっていることがわかる。
(a) 静的普遍データ
世の中に広く散らばる一般的なデータ。取得したデータそのものに興味があるので、可逆性は必須となる。P2Pネットワークに一様に散らばっていると仮定される。
例: 音楽データ
実装アプリ例: NapSter、Gnutella、Winnyなど
(b) 静的局所的データ
ある特定の人やグループから生み出され、ごく局所的にしか参照されないデータ。グループウェアなどが分類される。自分が必要とするデータは、「同じ部署の人のPC」などデータの存在箇所が偏っているのが特徴で、LAN内の探索を優先させるなど、ソーシャル的アプローチで実装すると効率がよい。
例: 予定や掲示板の書き込みなどのデータ
実装アプリ例: Groove、アリエル プロジェクトA
(c) リアルタイムデータ
基本的に保存を必要としないデータ。上記2つとは大きく異なる。基本的にデータの可逆性よりもレスポンスが重視されるので、より高速なプロトコルが使われることが多い(たとえばTCPよりUDPなど)。言ってみればアナログ的に伝われば十分ということになる。
例: 音声、ビデオ会議の映像など
実装アプリ例: Skype

* まとめ
いよいよ本格的な波の到来を予感させるP2P。今後ビジネス分野での適用も現実的となり、システム設計の場に登場する機会も増えるだろう。正しくP2Pを活用するためには、P2Pの技術的特徴や性質を良く理解しておくことが重要である。その際ここで取り上げたP2Pの基礎知識や分類、オーバレイネットワークの概念がその一助となれば幸いだ。
この後の章では、P2Pの代表的なテクノロジーについての詳細な解説を行う。その後ビジネス適用での注意点を示し、最後にP2Pテクノロジーの展望を述べたいと思う。


--- 脚注
(※)ピア
ここではノードも同義。ピアが集まってP2Pのネットワークを構成する。
(※)NapSter
http://www.napster.com/。ハイブリッドP2Pの音楽ファイル交換ソフト。かつて8000万人近くものユーザー数を誇った。その後閉鎖に追い込まれ、Roxio社(http://www.roxio.com/)により買収。
(※)Gnutella
ファイル交換ソフト。ピュアP2Pの代名詞として有名。
(※)アリエル プロジェクトA
http://www.ariel-networks.com/
プロジェクト・コミュニケーションツール。
(※)Skype
Skype Technologies社が提供するP2P IP電話ソフト。http://www.skype.com/。
(※)Outer Edge Caching
http://www.kontiki.com/technology/print/Bandwidth_Harvesting_White_Paper.pdf


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.