Peer-to-Peer ネットにおけるキャッシュによる検索メッセージ削減とその

平成 14 年度卒業研究発表会(日本大学工学部情報工学科)
A-2
Peer-to-Peer ネットにおけるキャッシュによる検索メッセージ削減とその評価
Reduction of Search Messages in Peer-to-Peer Network Using Cache and Its Evaluations
116167
1.
松本
大輔
はじめに
現在のインターネットは、クライアントの増加に伴い
サーバに対する負荷が問題となっている。一方、近年の
パソコンの高性能化は止まることを知らないものの、多
くのパソコンは、その性能を十分に発揮していないのが
現状である。そこで、パソコン間で完結できる処理はサ
ーバを介さずに行うことでサーバに対する負荷を軽減す
る、Peer-to-Peer(P2P)技術が注目されている。P2P ネッ
トワークでは、ネットワークを構成するコンピュータ(サ
ーバント)が対等に処理を行うことで、処理の負荷分散を
図るとともに、多数のクライアントがサーバに処理要求
を送ることによって生じるトラヒックの分散を図ること
ができる。また、従来のネットワークでは、情報はサー
バを介す必要があるが、P2P ネットワークでは、情報の
蓄積・提供を情報の発生源であるサーバント同士で行う。
これにより、タイムラグの少ない情報を共有することが
可能となる。
ここでは、P2P の各種方式を概説するとともに、P2P
の代表的な方式である Gnutella について、その問題点と
なっている検索メッセージ氾濫について述べるとともに、
キャッシュを使用することによってメッセージ数を抑え
る方式を提案しその評価を行う。
2.
P2P の概要
表1にクライアント/サーバシステム(C/S)と代表的
な P2P システムをまとめる。現在の通信環境では、通信
回線の速度に差があり、また相手が必ず常時接続してい
るとは限らないので、サーバントのみで構成する Pure
型の P2P ネットワークを効率よく運用することは難しい。
このため、現在まではクライアント/サーバの概念を一部
で用いる Hybrid 型 P2P が用いられてきた。
表1.従来のシステムと P2P ネットワーク
C/S(Client
Hybrid 型 P2P
Pure 型 P2P
Server)
巨額な投資が必
要であるが、デー
タベース型のサー
ビスを提供するに
は最も有効
C/S 型程の投資
をしなくてもよく、
認証機能などの
サービスを導入す
ることができる
[竹中研究室]
命体を探すことを目的とした SETI@home (the Search
for Extraterrestrial Intelligence)がある。このシステム
は、複雑で時間のかかる計算処理を一台のコンピュータ
でなく、ネットワークにつながれた多くのコンピュータ
に分散して行うシステムである。分散コンピューティン
グの評価としてインテル社が行った評価例を図1に示す。
この例では、200 件の取引を処理するのに 1 台で 44 分
(2,640 秒)かかったところが、100 台で分散処理すること
によって、33 秒にまで短縮されている。
3000
2640
2500
2000
秒
1500
処理時間
1000
900
500
190
60
0
1台
3台
15台
30台
33
100台
図1.資源共有型の分散処理効果(インテル社)
3.
Napster と Gnutella
P2P の代表的なシステムとして、
「Napster」と
「Gnutella」があり、情報共有型システムに分類されて
いる。以下システムの概要を述べる。
3.1
Napster
Napster[2]は Hybrid 型 P2P であり、コンテンツの所在
を検索するためにサーバを利用する。Napster での接続
までのプロセスは以下の通りである。①サーバントはロ
グインサーバに対して検索要求を送る。②検索結果(フ
ァイル名、ファイルサイズなど)が返答される。③ダウ
ンロードするコンテンツを選択し、サーバにダウンロー
ド要求を送信する。引数はコンテンツ提供側のユーザー
名とファイル名である。④サーバはコンテンツ提供側の
情報(IP アドレス、ポート番号、フルパスのファイル名)
をコンテンツ要求側に送信する。⑤⑥返答された情報を
基に相手のサーバントと接続する。
Napsterサーバ
①
ネットワークに負
荷がかかるが、サ
ーバを設置しなく
て済み、また耐久
性にも優れている
③
②
④
⑤
コンテンツ提供ノード
コンテンツ要求ノード
⑥
P2P システムは、以下のように分類されている[1]。
図2.Napster の接続例
(1) 情報共有型
3.2
ファイル等のデータを交換し情報を共有するシステム
である。MP3 ファイルを共有する Napster や、メッセー
ジを交換する ICQ 等の Instant Messenger (IM)も、この
システムに分類されている。
Gnutella[2]はサーバント同士だけで形成される Pure 型
P2P である。Gnutella では、サーバントはメールや掲示
板から Gnutella に参加しているサーバントの IP アドレ
スを取得し、4 台前後のサーバントに接続する。次に Ping
コマンドを接続済みのサーバントへ送信し、他のサーバ
(2) 資源共有型
資源共有型の代表的なシステムとしては、地球外知的生
Gnutella
平成 14 年度卒業研究発表会 A-2
ントの IP アドレスやポート番号などを収集する。Ping
はお互いに接続されたサーバント同士で順次中継されな
がら送られる。Gnutella では、4 台のサーバントと接続
する仕様である。また、接続要求メッセージのヘッダー
には TTL=7が設定されており、サーバントの接続要求
7
メッセージは約
∑4
i
=21,844 個のサーバントに送るこ
i =1
とができる。これは、ループする可能性があるので実際
にはこの値とはならないが、多くのサーバントとの接続
が可能になる。収集したサーバントの IP アドレスはキャ
ッシュする。もし、接続しているサーバントが 4 台未満
の場合には、このリストから適当に選択し接続される。
図3.Gnutella の接続例
コンテンツの検索時、接続されているサーバントに検索
メッセージを送信する。このメッセージも受信したサー
バントはコンテンツを保有しない場合は、さらに自身と
接続されているサーバントに対して検索メッセージを送
信する。検索メッセージの TTL は7が設定されている。
Gnutella では、検索メッセージが届く範囲に限界があり、
検索が必ずしも成功するとは限らない。また、大量の検
索メッセージを送信するためネットワークに過負荷を与
えてしまうという問題がある。
ように氾濫し、ネットワークに過負荷を与えてしまう。
そこで、この大量に複製されるメッセージ数を抑えるた
めに、キャッシングの技術を取り入れた方式についてシ
ミュレーションを行った。
4.3 キャッシュを持つ Gnutella ネットワークの評価
このシステムでは、対象コンテンツは Hit したサーバ
ントから要求元へ向かって、他のサーバントを中継して
転送される。この時コンテンツを中継するノードは、た
だ中継だけをするのではなく対象コンテンツをキャッシ
ュする。この方式は Freenet[1]で用いられている方式で
ある。キャッシュのアルゴリズムとしては LRU(Least
Recently Used)と LFU(Least Frequency Used)アルゴリ
ズムを取り入れる。このアルゴリズムは、最近使われて
いないコンテンツをキャッシュアウトする方式である。
このアルゴリズムによって、人気のあるコンテンツはネ
ットワーク全体に行き渡り、人気のないコンテンツはネ
ットワークに広がらないようになる。コンテンツ検索を
行うノードは、検索を中継するノードのキャッシュに該
当するコンテンツがある場合には、その中継ノードから
コンテンツを取得する。この結果、大幅にネットワーク
上のトラヒックの軽減が得られると想定される。
万
5000
4000
3000
2000
1000
0
k=0.84(3%)
k=1.0(10%)
キャッシュ無し
k=1.4(32%)
LRU
k=2.0(61%)
LFU
4. Gnutella の検索メッセージ数の評価
図5.キャッシュの有無によるメッセージ数の関係
4.1 シミュレーションの条件
Gnutella の問題となっている検索メッセージの氾濫
の問題を評価するために、あるノードがコンテンツを検
索する際に複製される検索メッセージ数を測定するシミ
ュレータを作成した。今回、使用した評価パラメータは
以下の通りである。
全体のノード数=1,000、全体のコンテンツ数=10,000、
TTL=10、ノードが持つ隣接ノード数=4、ノードが持つキ
ャッシュ数=10 である。また、コンテンツの検索要求を
受け取ったノードは、自分が持っているキャッシュにつ
いて検索を行い、該当するコンテンツを持っている場合
には検索に対して返答し、コンテンツを持っていない場
合には他の隣接ノードに検索メッセージを転送する。
4.2 典型的な Gnutella ネットワークの評価
図4は、MAXTTL と一回のメッセージで複製されるメ
ッセージの総数を示す。
メッセージ総数
50000
38013 38873
40000
31250
30000
15586
20000
10000
0
4986
4
20
84
336
1
2
3
4
1324
5
6
7
8
9
10
MAXTTL
図4.ホップ数と複製される検索メッセージ数の関係
ホップ数が増加するにつれ、メッセージ数も飛躍的に増
加している。一回の検索を行う度に、メッセージがこの
図5は、10,000 回のリクエストで生成されるメッセージ
総数を示している。このシミュレーション結果では、メ
ッセージ総数が従来の Gnutella であるキャッシュを使
用しない場合に比べ LRU では約 66%、LFU では約 99%
減らすことが確認できた。キャッシュの無い従来の
Gnutella では、検索が何回送信されても検索時の複製さ
れるメッセージ数はほぼ変わらない。一方キャッシュを
使用した場合、リクエストの回数が増えると人気のある
コンテンツがネットワークに行き渡っているため、コン
テンツの検索が成功する確率が高くなる。これによって、
検索メッセージの複製が防止できる。以上から、キャッ
シュを使用することによって、メッセージが氾濫するこ
とを防いでいることがわかる。このことから、Gnutella
にキャッシュを使用することは、トラヒックの軽減につ
いて有効であることがわかる。
5.
むすび
Pure 型 P2P の Gnutella で問題となっている検索メッ
セージについてシミュレーション評価を行った。キャッ
シュを持たない従来の Gnutella と比較して、キャッシュ
を取り入れることにより検索メッセージを LRU では約
70%、LFU では約 99%減少することができた。今後は
サーバントの離脱や伝播遅延の考慮など実環境に近い評
価も行う必要がある。
参考文献
[1] 伊藤 直樹,”P2P コンピューティング-技術解説とア
プリケーション-”,ソフト・リサーチ・センター2001/11
[2] http://rfc-gnutella.sourceforge.net/