最近になって、P2P(Peer-to-Peer)という単語がごく当たり前に紙面をにぎわせるようになってきた。あなたはこの単語に対してどのようなイメージを持っているだろうか。おそらく良いイメージを持っている人は、かなり少ないだろう。
悲しいことに、P2Pを使うことは犯罪であると誤解してしまっている人さえいる。「違法なファイル交換=P2P」というイメージがすでに成り立ってしまっているからだろうか。しかしそれは大きな誤りである。
では、P2Pとは一体何なのだろうか。今回はその技術について、しっかりと理解してみたい。
●クライアントとサーバーの関係
クライアント/サーバー型(Fig.1) |
---|
インターネットで通信を行なう場合、一般的にクライアントとサーバーの間で通信が行われている。たとえばWebページを閲覧する時には、クライアントはWebページを見ようとしているあなたの操作するパソコン、サーバーは見ようとしているページの入ったコンピュータ(Webサーバーと呼ばれる)に対応する。
すなわちサーバーはいつもクライアントのアクセスを待ち受けていて、クライアントがサーバーに対して接続を行なうことによって通信が開始されるのである。
サーバー(server)とクライアント(client)の意味を無理やり日本語で表現すれば、それぞれ「奉仕する人」と「奉仕を受ける人」の意味である。レストランで注文を聞いて食べ物を運んでくれる人がサーバー、そしてサーバーに注文をつけて食べ物を食べる人がクライアントである。注文や食べ物をひとまとまりに情報と考えると、clientやserverという単語はまさにそのものをずばりとあらわした単語なんだな、と感心せずにはいられない(Fig.1)。
●PeerとPeerの関係
では、Peer-to-PeerのPeerとはなんだろうか。Peerとは仲間とか同僚を意味する単語で、自分と同い年の人や同じ社会的地位を持った人のことである。
一般的にサーバーは、個人が使うパソコンなどよりもかなり性能の優れたコンピュータを使っている。なぜなら、サーバーには同時にたくさんのクライアントからの要求を処理しなければならないからだ。特に大勢の人が閲覧するページを持ったWebサーバーはそうである。
それに対してPeerは、「同じスペックを持ったコンピュータ」というイメージが強い。これまで、通信するときは、どこかの会社に置かれたでっかいコンピュータにつなぎに行ってデータを受け取るという通信がほとんどだったのに、P2Pではインターネット上にあるパソコン同士で接続できるよ、ということになる。離れた友達のパソコンと直接つないでリアルタイムにデータをやり取りできるのだ。なんだかわくわくしてくるではないか。
●Hybrid P2P型とPure P2P型
一言でP2Pといっても実際には、いろいろな形態がある。この分野で日本において活動しているコミュニティのJnutella.org( http://www.jnutella.org/ )では、P2Pの形態を大きく二つに分類している。
ひとつは、Hybrid P2P型である。P2Pを一躍有名にしたあのNapsterはこのタイプである。Hybridと言っているのは、一部にクライアント/サーバーの思想が残っているからである。というのは、誰がどんな情報を持っているかを把握したサーバーがあり、最初はそこに接続しに行って、Peerを発見するからだ(Fig.2)。
なぜこんなことをするのか。ご存知のとおり、インターネットに接続しているコンピュータは、住所に相当するIPアドレスを使って通信を行なっている。IPアドレスがわからなければ、通信することができない。住所を書かずに名前だけ書いてはがきを投函しても受け付けられないのと同じだ。しかも厄介なことに、家庭で接続されているコンピュータのIPアドレスは、接続するたびにころころ変わってしまう。そこで、相手のIPアドレスを管理していて、なおかつ、いつでもアクセスできる中央のサーバーがいるのだ。まずはここに聞きに行ってから、相手のIPアドレスを教えてもらうというわけである。
もうひとつは、Pure P2P型という、Gnutellaに代表されるタイプである。Hybrid型とは異なりサーバーを必要としないので、純粋にPeerのみで構成することができるため「Pure」と呼ばれている(Fig.3)。
サーバーが存在しないため、まずは「なんとかして」すでにネットワークに参加しているPeerのうちどれか1つと接続しなければならない。その方法はいろいろあるが、ともかく何とかして接続できたとすると、接続先のPeerはすでに他のPeerとつながっているので、伝言ゲームの要領で、ネットワーク中のPeerを芋づる式に検索することができ、所望のPeerを発見することができるわけだ。
Hybrid P2P型(Fig.2)
|
Pure P2P型(Fig.3)
|
---|
●P2Pはずっと昔からあった?
P2Pは新しくて、エキサイティングな技術のように思える。しかし、Hybrid P2P型もPure P2P型も「ずっと昔からあった技術だ」といわれれば、実は反論ができない。
DNSなんか、まさにHybrid P2P型そのものだ。「/」とWebブラウザに入力してimpress Watchのホームページが見られるのは、「www.watch.impress.co.jp」をIPアドレスに変換してくれるDNSサーバーがあるからである。技術的にはP2PネットワークでIPアドレスを教えてくれる中央サーバーとなんら変わりがない。
さらに、Pure P2P型は、インターネットの基礎であるルーティングプロトコルとほとんど同じだ。インターネットには通信経路を制御するルータがあるが、各ルータはルーティングテーブルと呼ばれる、自分の身の回りにつながっているネットワークの表を周りのルータに定期的に告知している。その情報がやはり伝言ゲームの要領でどんどん遠くまで伝播していくことで、ネットワークにつながっているルータは、ネットワークの経路を知ることができるのだ。
●P2Pの本質は「簡単さ」
では一体なにが新しいのだろう。P2Pの本質はなんだろうか。私は、P2Pがここまで注目されるようになった本当のわけは「簡単さ」にあるのではないかと思う。
もしファイル検索したいと思えば、ある程度Googleなどの検索サイトでも同じことができるし、自分のパソコンに入っているデータを全世界に発信したければ、Webサーバーを立ち上げてDynamicDNSなどを使って自分のパソコンのIPアドレスをDNSで引けるようにしまえばいいのだ。だが、自分でWebサーバーを立ち上げたり、ドメインを管理するということは、ちょっと大変なことであって、普通のユーザーが簡単にできることではない。しかし、P2Pならばソフトウェアを一つインストールするだけで、同じことができてしまうのである。
「簡単さ」はユーザーからの側面であるが、技術的側面から見ると、P2Pの魅力は「Peerの発見」にある。ドメイン名でIPアドレスを知るのではなく、文字列に限らず自由なスタイルでPeerを発見することができるのだ。この違いはものすごい違いであり、さまざまなサービスへの応用が可能となる。
それに加え、通信がPeerで分散して行なわれるということもその魅力の一つである。「接続先はサーバー」というこれまでの常識を取っ払い、すべてのコンピュータがお互いに同等の立場で通信しあうことが容易にできるようになったのだ。アクセスの集中によってサーバーがダウンするということがよくあるが、P2Pネットワークではそもそもサーバーが存在しないためにそんな心配はしなくてもいいのだ。
●P2P技術を使ったサービス
P2Pは、「接続先はサーバーのみ」という制約を取っ払うことを促す技術であり、ネットにつながったパソコン同士で気軽に接続できるようになる技術である。ファイル交換はその一例にすぎない。サーバーがいらないということはすなわち、本来必要とされる莫大なリソースを必ずしも必要としないということである。これは企業にとってはありがたい話だ。
「リソースを必要としない」だけでは不親切なので、具体的にどんなリソースが不要となるのかを、例を挙げて説明しよう。
a)帯域幅
一番インパクトが大きいのは、帯域幅だろう。有名なサイトは十分なスペックを持ったサーバーを用意することも必要だが、それと同時に太い回線、つまり広帯域の回線も用意しなければならない。しかしP2Pによる通信では、アクセスがひとつのサーバーに集中するのではなく、ネットワークのいたるところに分散するPeer同士でアクセスが発生するため、帯域のために重い負担を背負う必要はないのだ。
たとえばWindows XPには、動画でチャットができるWindows Messenger( http://messenger.msn.co.jp/ )が付属している。これはまさにHybrid P2P型のサービスだ。Microsoftのサーバーにサインインしたあとは、許可した仲間同士で、すなわちP2Pで通信が行われ、文字や動画によるチャット、ファイル転送などができるようになる。もしこれをすべてサーバーを介して行なっていたとしたら、中央のサーバーはデータを裁ききれずにダウンしてしまうか、過度の混雑によってガクガクの動画を見ることになってしまう。したがって、クライアント同士を結びつけ、サーバーを介さずに通信するP2P技術を使っているからこそ成り立つサービスだといえるのである。
また、コンテンツ配信の分野でもP2P技術は利用されてきている。たとえばシェアキャスト( http://www.scast.tv/ )では、ツリー状にP2Pネットワークを作成し、各ノードがストリーム中継機能を備えることによって、マルチキャストを既存のネットワーク上で実現している。こうすることで、配信サーバーがたくさんのクライアントを相手にする必要なくなり、アクセス集中によりサーバーがダウンすることはなくなる。
b)ストレージ
次にストレージである。Napster、Gnutella、KaZaAなどによってすでにその効果は明らかになっているだろう。たとえば各家庭のパソコンのハードディスクの使われていない余りのうち、たった1GBを開放したとしても、ユーザーが10万人ほど集まっただけで、100TBという膨大なストレージ空間が出現するわけだ。実際にストレージサービスとしてこのP2P技術を使ってビジネスにつなげる動きは方々でおこっている。
家庭だけではなく、もちろんオフィスにもP2P技術は導入され始めている。オフィス環境になくてはならないツールの一つにグループウェアがあるが、P2P技術を用いたグループウェアも多く出てきている。たとえば「ロータスノーツ」の開発者が設立したGroove Networks( http://www.groove.net/ )の製品もその一つだ。最近Microsoftのグループウェア「SharePoint Team Services」との統合が発表され、俄然注目を浴びている。
c)CPUの計算能力
あなたのパソコンはいつもフル稼働しているだろうか。CPU使用率はいつでも100%だろうか。今、私はインターネットラジオを聴きながらこの原稿を書いているが、それでもこのパソコンのCPU使用率は30%前後をうろうろしている。意外とCPUは使われていないものなのだ。
「3時間あなたのCPUのパワーの50%を使わせてくれたら、いくらか謝礼を差し上げます」と言われたら、あなたはその話に飛びつくだろうか。
そんな話が現実のものになり始めている。スーパーコンピュータはいくつものCPUを同時に動かして、ものすごく複雑な問題を解いているが、早い話、それをP2P技術を使ってインターネット上に拡張してしまうことができる。各家庭のパソコンの余剰パワーを利用し、P2Pで通信しあう、仮想的な一つのスーパーコンピュータをネット上に作り出し、その上で非常に複雑な計算をするのだ。この分野をビジネスにつなげている企業としては、United Devices( http://www.ud.com/ )が有名である。
非常に複雑な計算を要する分野としてすぐに考えられるのは、バイオ分野である。たとえば、たんぱく質の解析や新しい化学物質の発見など、新薬開発のためには非常に膨大な解析作業が必要であり、それをP2P技術や分散コンピューティング技術をもとにして作られた仮想的なスーパーコンピュータの上で計算するのだ。参加するパソコンの台数が増えれば増えるほど、その仮想的なスーパーコンピュータの能力はアップしていくのである。
●ワイヤレスとP2Pの関係
そして、P2Pはワイヤレスの方向にも進んでいく。コンピュータにまとわりつく線から開放されるだけでも、さまざまな応用が考えられるようになるのだが、特にワイヤレスの場合、有線のインターネットとは違って、隣接ノードは物理的な距離が近いため、地理的状況も加味したサービスを考えることができるという特徴がある。
私は、P2Pが本当に面白くなるのはワイヤレスと融合したときではないか、と思っている。次回からは、P2Pとワイヤレスの関係についていろいろと考えていきたい。
■筆者紹介■ 小出俊夫 http://homepage1.nifty.com/toshio-k/ 常に他人と違うことをすることに喜びを覚える知的好奇心旺盛な人間。他に雑誌連載を1つ手がけ、プログラミングの解説書は5冊。実は博士課程の大学院生で、メーカーの研究所に入りたがっている。求むオファー。 |
(2002/8/21)
[Reported by 小出俊夫]