(57)【特許請求の範囲】
【請求項１】
構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属する各ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類ステップと、
各ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置ステップと、
を順に実行し、
前記ノードＩＤ空間配置ステップでは、
高次数ノード装置に分類された各ノード装置について、ｋを許容する最大参加ノード装置数、ｉを０以上かつ高次数ノード装置の総数未満の整数として、数式Ｃ１
【数Ｃ１】
0006048888.tif 000008
（Ｃ１）
を用いて、第ｉの高次数ノード装置のノードＩＤ  ＨＤＩＤｉを計算することにより、前記ノードＩＤ空間に均等に配置する
ことを特徴とする構造型Ｐ２Ｐネットワーク構築方法。
【請求項２】
前記ノードＩＤ空間配置ステップでは、
低次数ノード装置に分類された各ノード装置について、ＩＰａｄｄｒｅｓｓを該ノード装置のＩＰアドレスとして、数式Ｃ２
（数Ｃ２）
ＬＤＩＤ＝ｈａｓｈ（ＩＰａｄｄｒｅｓｓ，ｋ）    （Ｃ２）
を用いて、各低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、前記ノードＩＤ空間に配置する
ことを特徴とする請求項１に記載の構造型Ｐ２Ｐネットワーク構築方法。
【請求項３】
構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属する各ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類ステップと、
各ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置ステップと、
を順に実行し、
前記ノードＩＤ空間配置ステップでは、
低次数ノード装置に分類された各ノード装置について、ｋを許容する最大参加ノード装置数、ＩＰａｄｄｒｅｓｓを該ノード装置のＩＰアドレスとして、数式Ｃ３
（数Ｃ３）
ＬＤＩＤ＝ｈａｓｈ（ＩＰａｄｄｒｅｓｓ，ｋ） （Ｃ３）
を用いて、各低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、前記ノードＩＤ空間に配置する
ことを特徴とする構造型Ｐ２Ｐネットワーク構築方法。
【請求項４】
前記ノードＩＤ空間配置ステップでは、
高次数ノード装置に分類された各ノード装置について、前記ノードＩＤ空間で相互に接続するとともに、
低次数ノード装置に分類された各ノード装置について、高次数ノード装置に分類された他ノード装置へのホップ数が所定のホップ数より少なくなるように、前記ノードＩＤ空間で接続を設定する
ことを特徴とする請求項１から３のいずれかに記載の構造型Ｐ２Ｐネットワーク構築方法。
【請求項５】
構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属するノード装置であって、
自ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類部と、
自ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置部と、
を備え、
前記ノードＩＤ空間配置部は、
自ノード装置が高次数ノード装置に分類された場合には、ｋを許容する最大参加ノード装置数、ｉを０以上かつ高次数ノード装置の総数未満の整数として、数式Ｃ５
【数Ｃ５】
0006048888.tif 000009
（Ｃ５）
を用いて、第ｉの高次数ノード装置のノードＩＤ  ＨＤＩＤｉを計算することにより、高次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間に均等に配置されるように、自ノード装置の前記ノードＩＤ空間での位置を設定する
ことを特徴とするノード装置。
【請求項６】
前記ノードＩＤ空間配置部は、
自ノード装置が低次数ノード装置に分類された場合には、ＩＰａｄｄｒｅｓｓを自ノード装置のＩＰアドレスとして、数式Ｃ６
（数Ｃ６）
ＬＤＩＤ＝ｈａｓｈ（ＩＰａｄｄｒｅｓｓ，ｋ） （Ｃ６）
を用いて、低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、低次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間に配置されるように、自ノード装置の前記ノードＩＤ空間での位置を設定する
ことを特徴とする請求項５に記載のノード装置。
【請求項７】
構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属するノード装置であって、
自ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類部と、
自ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置部と、
を備え、
前記ノードＩＤ空間配置部は、
自ノード装置が低次数ノード装置に分類された場合には、ｋを許容する最大参加ノード装置数、ＩＰａｄｄｒｅｓｓを自ノード装置のＩＰアドレスとして、数式Ｃ７
（数Ｃ７）
ＬＤＩＤ＝ｈａｓｈ（ＩＰａｄｄｒｅｓｓ，ｋ）    （Ｃ７）
を用いて、低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、低次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間に配置されるように、自ノード装置の前記ノードＩＤ空間での位置を設定する
ことを特徴とするノード装置。
【請求項８】
前記ノードＩＤ空間配置部は、
自ノード装置が高次数ノード装置に分類された場合には、高次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間で相互に接続されるように、自ノード装置の前記ノードＩＤ空間での接続を設定し、
自ノード装置が低次数ノード装置に分類された場合には、高次数ノード装置に分類された他ノード装置へのホップ数が所定のホップ数より少なくなるように、自ノード装置の前記ノードＩＤ空間での接続を設定する
ことを特徴とする請求項５から７のいずれかに記載のノード装置。
【請求項９】
コンピュータを、請求項５から８のいずれかに記載のノード装置として機能させることを特徴とする、ノード装置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークにおいて、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐ技術に関する。
【背景技術】
【０００２】
Ｐ２Ｐネットワーク技術は、物理的なネットワーク上に仮想的なネットワークを構築したうえで、物理的なネットワーク機器を自律分散的に管理する技術である。Ｐ２Ｐネットワーク技術は、目的ノードの検索方法に基づいて分類すれば、非構造型Ｐ２Ｐネットワーク技術及び構造型Ｐ２Ｐネットワーク技術の２種類がある。
【０００３】
非構造型Ｐ２Ｐネットワーク技術では、Ｆｌｏｏｄｉｎｇ（検索メッセージを隣接ノード間で順次転送する手法）によりノード検索を行う。よって、ノード検索にかかるコスト（検索時間及びパケット量）が多くなるというデメリットがある。
【０００４】
構造型Ｐ２Ｐネットワーク技術（例えば非特許文献１〜５を参照）では、数学的理論によりネットワークを構築し、数学的計算によりノード検索を行う。よって、ノード検索にかかるコスト（検索時間及びパケット量）が少なくなるというメリットがある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“Ｃｈｏｒｄ：Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ”，  Ｉｏｎ  Ｓｔｏｉｃａ，  Ｒｏｂｅｒｔ  Ｍｏｒｒｉｓ，  Ｄａｖｉｄ  Ｋａｒｇｅｒ，  Ｍ．  Ｆｒａｎｓ  Ｋａａｓｈｏｅｋ，  Ｈａｒｉ  Ｂａｌａｋｒｉｓｈｎａｎ，  ｉｎ  Ｐｒｏｃ．  ｏｆ  ＡＣＭ  ＳＩＧＣＯＭＭ  ２００１，  ｐｐ．  １４９−１６０，  Ａｕｇｕｓｔ  ２００１．
【非特許文献２】“Ａ  Ｓｃａｌａｂｌｅ  Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｎｅｔｗｏｒｋ”，  Ｓｙｌｖｉａ  Ｒａｔｎａｓａｍｙ，  Ｐａｕｌ  Ｆｒａｎｃｉｓ，  Ｍａｒｋ  Ｈａｎｄｌｅｙ，  Ｒｉｃｈａｒｄ  Ｋａｒｐ，  Ｓｃｏｔｔ  Ｓｈｅｎｋｅｒ，  ｉｎ  Ｐｒｏｃ．  ｏｆ  ＡＣＭ  ＳＩＧＣＯＭＭ  ２００１，  ｐｐ．  １６１−１７２，  Ａｕｇｕｓｔ  ２００１．
【非特許文献３】“Ｐａｓｔｒｙ：Ｓｃａｌａｂｌｅ，  ｄｅｃｅｎｔｒａｌｉｚｅｄ  ｏｂｊｅｃｔ  ｌｏｃａｔｉｏｎ  ａｎｄ  ｒｏｕｔｉｎｇ  ｆｏｒ  ｌａｒｇｅ−ｓｃａｌｅ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｓｙｓｔｅｍｓ”，  Ａｎｔｏｎｙ  Ｒｏｗｓｔｒｏｎ，  Ｐｅｔｅｒ  Ｄｒｕｓｃｈｅｌ，  １８ｔｈ  ＩＦＩＰ／ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍｓ  Ｐｌａｔｆｏｒｍｓ  （Ｍｉｄｄｌｅｗａｒｅ），  ｐｐ．３２９−３５０，  Ｎｏｖｅｍｂｅｒ，  ２００１．
【非特許文献４】“Ｔａｐｅｓｔｒｙ：Ａ  Ｒｅｓｉｌｉｅｎｔ  Ｇｌｏｂａｌ−Ｓｃａｌｅ  Ｏｖｅｒｌａｙ  ｆｏｒ  Ｓｅｒｖｉｃｅ  Ｄｅｐｌｏｙｍｅｎｔ”，  Ｂｅｎ  Ｙ．  Ｚｈａｏ，  Ｌｉｎｇ  Ｈｕａｎｇ，  Ｊｅｒｅｍｙ  Ｓｔｒｉｂｌｉｎｇ，  Ｓｅａｎ  Ｃ．  Ｒｈｅａ，  Ａｎｔｈｏｎｙ  Ｊｏｓｅｐｈ，  Ｊｏｈｎ  Ｋｕｂｉａｔｏｗｉｃｚ，  ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｅｌｅｃｔｅｄ  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，  Ｖｏｌ．２２，  Ｎｏ．１，  Ｊａｎｕａｒｙ  ２００４．
【非特許文献５】“Ｄｅｓｉｇｎｉｎｇ  Ｐ２Ｐ  Ｎｅｔｗｏｒｋｓ  Ｔｏｌｅｒａｎｔ  ｔｏ  Ａｔｔａｃｋｓ  ａｎｄ  Ｆａｕｌｔｓ  Ｂａｓｅｄ  ｏｎ  Ｂｉｍｏｄａｌ  Ｄｅｇｒｅｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ”，  Ｋａｔｓｕｙａ  Ｓｕｔｏ，  Ｈｉｒｏｋｉ  Ｎｉｓｈｉｙａｍａ，  Ｘｅｕｍｉｎ  （Ｓｈｅｒｍａｎ）  Ｓｈｅｎ，  Ｎｅｉ  Ｋａｔｏ，  Ｊｏｕｎａｌ  ｏｆ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，  Ｖｏｌ．７，  Ｎｏ．８，  Ａｕｇｕｓｔ  ２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、構造型Ｐ２Ｐネットワーク技術では、ノード検索にかかるコスト（検索時間及びパケット量）が少なくなるというメリットがある。しかし、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少が生ずるという問題がある。
【０００７】
ここで、ノードの離脱は、ノードの次数に関係なく発生する。よって、離脱耐性を向上させるためには、ノードの次数を高くする必要がある。一方で、ノードへの攻撃は、ノードの次数の高い順序で発生する。よって、攻撃耐性を向上させるためには、ノードの次数を統一する必要がある。そして、連結性及び通信効率を向上させるためには、ノードの次数を高くする必要がある。まとめれば、離脱耐性、攻撃耐性、連結性及び通信効率を向上させるためには、ノードの次数を高次数に統一すればよいと考えられる。
【０００８】
しかし、ノードの次数を高次数に統一するときには、離脱耐性、攻撃耐性、連結性及び通信効率を向上させるというメリットがあるが、ネットワーク構築にかかるコスト（構築時間及びパケット量）を多くするというデメリットがある。
【０００９】
そこで、前記課題を解決するために、本発明は、構造型Ｐ２Ｐネットワークにおいて、ネットワーク構築にかかるコスト（構築時間及びパケット量）を減らしつつ、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、構造型Ｐ２Ｐネットワークにおいて、二極次数分布又は多極次数分布を適用する。ここで、二極次数分布では、２種類の次数を有する２種類のノードを配置する。そして、多極次数分布では、多種類の次数を有する多種類のノードを配置する。ただし、二極次数分布及び多極次数分布では、べき乗則に従う次数分布に倣って、低次数ノードの総数を多くするが、高次数ノードの総数を少なくする。
【００１１】
このように、二極次数分布又は多極次数分布を適用することにより、構造型Ｐ２Ｐネットワークにおいて、ネットワーク構築にかかるコストを減らすことができる。
【００１２】
ところで、構造型Ｐ２Ｐネットワークでは、ノード及びデータをＩｎｄｅｎｔｉｆｉｅｒ（ＩＤ）空間に配置することにより、ノードはデータを容易に検索することができる。
【００１３】
ここで、構造型Ｐ２Ｐネットワークにおいて、二極次数分布又は多極次数分布を適用するにあたり、ノードの次数によらず同一の計算方法でノードのＩＤを計算するときには、高次数ノードをＩＤ空間に偏って配置することがある。よって、構造型Ｐ２Ｐネットワークにおいて、ＩＤ空間のうち一部の領域において、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことが困難になる。
【００１４】
しかし、構造型Ｐ２Ｐネットワークにおいて、二極次数分布又は多極次数分布を適用するにあたり、ノードの次数に応じて別個の計算方法でノードのＩＤを計算するときには、高次数ノードをＩＤ空間に均等に配置することができる。よって、構造型Ｐ２Ｐネットワークにおいて、ＩＤ空間のうち全体の領域において、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことが容易になる。
【００１５】
このように、ノードの次数に応じた別個のＩＤの計算方法を適用することにより、構造型Ｐ２Ｐネットワークにおいて、ネットワーク構築にかかるコストを減らしつつ、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことができる。
【００１６】
具体的には、本発明は、構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属する各ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類ステップと、各ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置ステップと、を順に実行し、前記ノードＩＤ空間配置ステップでは、高次数ノード装置に分類された各ノード装置について、ｋを許容する最大参加ノード装置数、ｉを０以上かつ高次数ノード装置の総数未満の整数として、数式５を用いて、第ｉの高次数ノード装置のノードＩＤ  ＨＤＩＤｉを計算することにより、前記ノードＩＤ空間に均等に配置することを特徴とする構造型Ｐ２Ｐネットワーク構築方法である。
もしくは、前記ノードＩＤ空間配置ステップでは、低次数ノード装置に分類された各ノード装置について、ＩＰａｄｄｒｅｓｓを該ノード装置のＩＰアドレスとして、数式６を用いて、各低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、前記ノードＩＤ空間に配置することを特徴とする構造型Ｐ２Ｐネットワーク構築方法である。
【００１７】
また、本発明は、構造型Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）ネットワークに所属するノード装置であって、自ノード装置について、ノード次数がより高い高次数ノード装置及びノード次数がより低い低次数ノード装置のうち、いずれかのノード装置に分類するノード装置分類部と、自ノード装置について、高次数ノード装置及び低次数ノード装置のうち、いずれのノード装置に分類されたかに応じて、別個の計算方法でノードＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を計算し、同一のノードＩＤ空間に配置するノードＩＤ空間配置部と、を備え、前記ノードＩＤ空間配置部は、自ノード装置が高次数ノード装置に分類された場合には、ｋを許容する最大参加ノード装置数、ｉを０以上かつ高次数ノード装置の総数未満の整数として、数式５を用いて、第ｉの高次数ノード装置のノードＩＤ  ＨＤＩＤｉを計算することにより、高次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間に均等に配置されるように、自ノード装置の前記ノードＩＤ空間での位置を設定することを特徴とするノード装置である。
もしくは、前記ノードＩＤ空間配置部は、自ノード装置が低次数ノード装置に分類された場合には、ＩＰａｄｄｒｅｓｓを自ノード装置のＩＰアドレスとして、数式６を用いて、低次数ノード装置のノードＩＤ  ＬＤＩＤを計算することにより、低次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間に配置されるように、自ノード装置の前記ノードＩＤ空間での位置を設定することを特徴とするノード装置である。
【００１８】
この構成によれば、構造型Ｐ２Ｐネットワークにおいて、ネットワーク構築にかかるコストを減らしつつ、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことができる。ここで、ノード装置分類ステップ及びノードＩＤ空間配置ステップは、ノード装置が行ってもよく、ネットワーク管理装置が行ってもよい。
【００２２】
また、本発明は、前記ノードＩＤ空間配置ステップでは、高次数ノード装置に分類された各ノード装置について、前記ノードＩＤ空間で相互に接続するとともに、低次数ノード装置に分類された各ノード装置について、高次数ノード装置に分類された他ノード装置へのホップ数が所定のホップ数より少なくなるように、前記ノードＩＤ空間で接続を設定することを特徴とする構造型Ｐ２Ｐネットワーク構築方法である。
【００２３】
また、本発明は、前記ノードＩＤ空間配置部は、自ノード装置が高次数ノード装置に分類された場合には、高次数ノード装置に分類された各ノード装置が前記ノードＩＤ空間で相互に接続されるように、自ノード装置の前記ノードＩＤ空間での接続を設定し、自ノード装置が低次数ノード装置に分類された場合には、高次数ノード装置に分類された他ノード装置へのホップ数が所定のホップ数より少なくなるように、自ノード装置の前記ノードＩＤ空間での接続を設定することを特徴とするノード装置である。
【００２４】
この構成によれば、低次数ノードをＩＤ空間で相互に接続された高次数ノードの近傍に配置することができるため、低次数ノードはデータを容易に検索することができる。ここで、ノードＩＤ空間配置ステップは、ノード装置が行ってもよく、ネットワーク管理装置が行ってもよい。
【００２５】
また、本発明は、コンピュータを、上記のノード装置として機能させることを特徴とする、ノード装置プログラムである。
【００２６】
この構成によれば、コンピュータにノード装置プログラムをインストールすることにより、コンピュータは構造型Ｐ２Ｐネットワークに参加することができる。
【発明の効果】
【００２７】
本発明は、構造型Ｐ２Ｐネットワークにおいて、ネットワーク構築にかかるコスト（構築時間及びパケット量）を減らしつつ、ノードの離脱及びノードへの攻撃による連結性の損失及び通信効率の減少を防ぐことができる。
【図面の簡単な説明】
【００２８】
【図１】構造型Ｐ２Ｐネットワークの二極次数分布を示す図である。
【図２】高次数ノード装置のＩＤ空間へのマッピングを示す図である。
【図３】低次数ノード装置のＩＤ空間へのマッピングを示す図である。
【図４】高次数ノード装置の構成を示すブロック図である。
【図５】低次数ノード装置の構成を示すブロック図である。
【図６】ノード装置の参加処理を示すフローチャートである。
【図７】高次数ノード装置の参加処理を示すフローチャートである。
【図８】低次数ノード装置の参加処理を示すフローチャートである。
【図９】低次数ノード装置の参加処理を示すフローチャートである。
【図１０】攻撃未発生時のデータの検索方法を示す図である。
【図１１】攻撃発生時のデータの検索方法を示す図である。
【図１２】離脱モデルにおける本発明及び従来技術の通信効率を示す図である。
【図１３】攻撃モデルにおける本発明及び従来技術の通信効率を示す図である。
【図１４】ＩＤ空間配置を説明する図である。
【発明を実施するための形態】
【００２９】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００３０】
以上のように、本発明では、構造型Ｐ２Ｐネットワークにおいて、二極次数分布又は多極次数分布を適用する。構造型Ｐ２Ｐネットワークとして、非特許文献１のＣｈｏｒｄ、非特許文献２のＣｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｎｅｔｗｏｒｋ（ＣＡＮ）、非特許文献３のＰａｓｔｒｙ及び非特許文献４のＴａｐｅｓｔｒｙ等がある。
【００３１】
ここで、実施形態では、構造型Ｐ２Ｐネットワークとして、非特許文献中で最もシンプルかつ実用的な手法である、非特許文献１のＣｈｏｒｄを適用する。なお、非特許文献２のＣＡＮ、非特許文献３のＰａｓｔｒｙ及び非特許文献４のＴａｐｅｓｔｒｙにおいても、非特許文献１のＣｈｏｒｄと同様に、ノード及びデータをＩＤ空間に配置することにより、ノードはデータを容易に検索することができる。
【００３２】
そして、実施形態では、次数分布として、最もシンプルな分布である、二極次数分布を適用する。なお、多極次数分布においても、二極次数分布と同様に、ノード次数がより高いノードをＩＤ空間に均等に配置することができるとともに、ノード次数がより低いノードをＩＤ空間でノード次数がより高いノードの近傍に配置することができる。
【００３３】
構造型Ｐ２Ｐネットワークの二極次数分布を図１に示す。ここで、二極次数分布では、低次数ｋｌｅａｆを有する低次数ノード及び高次数ｋｓｕｐｅｒを有する高次数ノードを配置する。ただし、二極次数分布では、べき乗則に従う次数分布に倣って、低次数ノードの総数Ｎｌｅａｆを多くするが、高次数ノードの総数Ｎｓｕｐｅｒを少なくする。
【００３４】
低次数ノードの次数ｋｌｅａｆ及び高次数ノードの次数ｋｓｕｐｅｒは、数式１のように計算する。低次数ノードの総数Ｎｌｅａｆ及び高次数ノードの総数Ｎｓｕｐｅｒは、数式２〜４のように計算する。ここで、＜ｋ＞は、平均次数であり、構造型Ｐ２Ｐネットワークの構築の初期において設定するパラメータである。そして、Ｎは、全ノードの総数である。
【数１】
0006048888.tif 000002
【数２】
0006048888.tif 000003
【数３】
0006048888.tif 000004
【数４】
0006048888.tif 000005
【００３５】
ここで、数式１の平均次数＜ｋ＞、低次数ノードの次数ｋｌｅａｆ及び高次数ノードの次数ｋｓｕｐｅｒ、並びに、数式２の低次数ノードの総数Ｎｌｅａｆ及び高次数ノードの総数Ｎｓｕｐｅｒは、理想値であって、現実値ではない。そこで、図６を用いて後述するように、構造型Ｐ２Ｐネットワークに所属する各ノードについて、ノード次数がより高い高次数ノード及びノード次数がより低い低次数ノードのうち、いずれかのノードに分類するにあたり、これらの次数及び総数について、現実値を理想値に近づけるのである。
【００３６】
高次数ノード装置のＩＤ空間へのマッピングを図２に示す。各ノードについて、高次数ノード及び低次数ノードのうち、高次数ノードに分類されたことに応じて、低次数ノードと別個の計算方法でノードＩＤを計算し、低次数ノードと同一のノードＩＤ空間に配置する。これにより、高次数ノードに分類された各ノードについて、ノードＩＤ空間に均等に配置し、ノードＩＤ空間で相互を接続することができる。
【００３７】
図２では、ＣｈｏｒｄのＩＤリング空間において、高次数ノード装置ＨＤ０〜ＨＤ３が配置されている。最初に、高次数ノード装置ＨＤ０が、ＩＤリング空間に配置される。次に、高次数ノード装置ＨＤ１が、高次数ノード装置ＨＤ０を起点として、ＩＤリング空間上で時計回りに１８０°隔てた位置に配置される。次に、高次数ノード装置ＨＤ２が、高次数ノード装置ＨＤ０を起点として、ＩＤリング空間上で時計回りに９０°隔てた位置に配置される。最後に、高次数ノード装置ＨＤ３が、高次数ノード装置ＨＤ０を起点として、ＩＤリング空間上で時計回りに２７０°隔てた位置に配置される。このように、高次数ノード装置ＨＤ０〜ＨＤ３は、ＩＤリング空間上に均等に配置される。
【００３８】
高次数ノード装置ＨＤ０は、高次数ノード装置ＨＤ１、ＨＤ２、ＨＤ３と接続される。高次数ノード装置ＨＤ１は、高次数ノード装置ＨＤ０、ＨＤ２、ＨＤ３と接続される。高次数ノード装置ＨＤ２は、高次数ノード装置ＨＤ０、ＨＤ１、ＨＤ３と接続される。高次数ノード装置ＨＤ３は、高次数ノード装置ＨＤ０、ＨＤ１、ＨＤ２と接続される。このように、高次数ノード装置ＨＤ０〜ＨＤ３は、完全グラフで相互に接続される。
【００３９】
本システムが許容する最大参加ノード数ｋをもとにＩＤ空間２ｋを決定する。高次数ノードをＩＤ空間に均等に配置するためには、図１４に示すように、ＩＤを決定する必要がある。ここで、ｉは高次数ノード数を表す。ｉ＝０の高次数ノードのＩＤ（２０）を基準として、ｉ＝１の高次数ノードは時計回りに２分の１進んだＩＤ（２９＋２０）に位置する。ｉ＝２の高次数ノードはｉ＝０の高次数ノードを基準として時計回りに４分の１上のＩＤ（２８＋２０）に位置する。ｉ＝３の高次数ノードはｉ＝１を基準として時計回りに４分の１上のＩＤ（２８＋２９＋２０）に位置する。つまり、ＩＤ決定は、「基準ノードのＩＤ＋時計回りに進むＩＤ数」のルールに従うことになる。時計回りに進むＩＤ数がｉ＝の時は２分の１、ｉ＝１〜２の時は４分の１、ｉ＝３〜７の時は８分の１となっていることから、《ｌｏｇ２ｉ》（《  》は小数点以下を切り捨てる記号を表す。以下も、同様である。）によって時計回りに進むＩＤ数が異なり、ｉ−２×《ｌｏｇ２ｉ》のノードを基準とすることになる。従って、高次数ノード装置ＨＤ０〜ＨＤ３のＩＤは、数式５のように計算する。
【数５】
0006048888.tif 000006
【００４０】
低次数ノード装置のＩＤ空間へのマッピングを図３に示す。ただし、図２、３の経路の重複は省く。各ノードについて、高次数ノード及び低次数ノードのうち、低次数ノードに分類されたことに応じて、高次数ノードと別個の計算方法でノードＩＤを計算し、高次数ノードと同一のノードＩＤ空間に配置する。これにより、低次数ノードに分類された各ノードについて、高次数ノードに分類された他ノードへのホップ数が所定のホップ数より少なくなるように、ノードＩＤ空間で接続を設定することができる。
【００４１】
図３では、ＣｈｏｒｄのＩＤリング空間において、低次数ノード装置ＬＤ０〜ＬＤ１１が配置されている。低次数ノード装置ＬＤ０〜ＬＤ２が、高次数ノード装置ＨＤ０、ＨＤ２の間に、ＩＤリング空間上で時計回りにこの順序で配置される。低次数ノード装置ＬＤ３〜ＬＤ５が、高次数ノード装置ＨＤ２、ＨＤ１の間に、ＩＤリング空間上で時計回りにこの順序で配置される。低次数ノード装置ＬＤ６〜ＬＤ８が、高次数ノード装置ＨＤ１、ＨＤ３の間に、ＩＤリング空間上で時計回りにこの順序で配置される。低次数ノード装置ＬＤ９〜ＬＤ１１が、高次数ノード装置ＨＤ３、ＨＤ０の間に、ＩＤリング空間上で時計回りにこの順序で配置される。このように、低次数ノード装置ＬＤ０〜ＬＤ１１は、高次数ノード装置ＨＤ０〜ＨＤ３と、同一のＩＤリング空間上に配置される。
【００４２】
低次数ノード装置ＬＤ０は、高次数ノード装置ＨＤ０及び低次数ノード装置ＬＤ１、ＬＤ６と接続される。低次数ノード装置ＬＤ１は、高次数ノード装置ＨＤ３及び低次数ノード装置ＬＤ０、ＬＤ２と接続される。低次数ノード装置ＬＤ２は、高次数ノード装置ＨＤ２及び低次数ノード装置ＬＤ１、ＬＤ８と接続される。図３の対称性に基づき、低次数ノード装置ＬＤ３〜ＬＤ１１の接続先は、低次数ノード装置ＬＤ０〜ＬＤ２の接続先と、同様に議論することができる。このように、低次数ノード装置ＬＤ０〜ＬＤ１１は、高次数ノード装置ＨＤ０〜ＨＤ３へのホップ数が所定の２より少なくすべて１となる。
【００４３】
低次数ノードのＩＤ決定式は低次数ノードのＩＰアドレスをもとに行う。ここで、許容する最大参加ノード数ｋに対して、低次数ノード装置ＬＤ０〜ＬＤ１１のＩＤは、数式６のように計算する。
【数６】
0006048888.tif 000007
この決定式によって、高次数ノードと同一のＩＤ空間（２ｋ）上に存在することとなる。
【００４４】
ところで、ノード装置は、高次数ノード装置ＨＤ又は低次数ノード装置ＬＤとして、構造型Ｐ２Ｐネットワークに対して、動的に参加又は離脱することができる。ここで、構造型Ｐ２Ｐネットワークに対する動的な参加及び離脱は、ほぼ逆処理である。そこで、構造型Ｐ２Ｐネットワークに対する動的な参加については以下で説明するが、構造型Ｐ２Ｐネットワークに対する動的な離脱については以下で省略する。
【００４５】
高次数ノード装置の構成を示すブロック図を図４に示す。高次数ノード装置ＨＤは、ネットワーク構築部１、記憶部３、経路制御部４、リスト共有部５及びデータ格納処理部６から構成される。ネットワーク構築部１は、リスト更新、ＩＤ計算、次数計算及びノード数計算の機能を有する。記憶部３は、平均次数＜ｋ＞、現在の高次数ノード数Ｎｓｕｐｅｒ（現在）及び現在の低次数ノード数Ｎｌｅａｆ（現在）が記載された情報共有リストを記憶しているとともに、自ノードの経路表及びＩＤを記憶している。
【００４６】
低次数ノード装置の構成を示すブロック図を図５に示す。低次数ノード装置ＬＤは、ネットワーク構築部１、ハッシュ計算部２、記憶部３、経路制御部４、リスト共有部５及びデータ格納処理部６から構成される。ネットワーク構築部１は、ＩＤ計算、次数計算及びノード数計算の機能を有する。記憶部３は、自ノードの経路表及びＩＤを記憶している。
【００４７】
ここで、図６〜９を用いて後述するように、情報共有リストは、二極次数分布について、現実分布を理想分布に近づけるためのものであり、ノードの動的な参加又は離脱にあたり、更新されるべきものである。そこで、高次数ノード装置ＨＤは、記憶部３を用いて、情報共有リストを記憶しており、ネットワーク構築部１を用いて、情報共有リストを更新する。しかし、低次数ノード装置ＬＤは、記憶部３を用いて、情報共有リストを記憶しておらず、ネットワーク構築部１を用いて、情報共有リストを更新しない。
【００４８】
なお、ノード装置は、コンピュータ及びプログラムにより、図６〜９を用いて後述するような処理を実現することができる。そして、ノード装置のプログラムは、記録媒体に記録することもできて、ネットワークを通して提供することもできる。
【００４９】
ノード装置の参加処理を示すフローチャートを図６に示す。リスト共有部５は、他の高次数ノード装置ＨＤから、情報共有リストを取得する（ステップＳＰ１）。ネットワーク構築部１は、情報共有リスト及び数式１〜４を用いて、理想の低次数ノードの次数ｋｌｅａｆ（理想）、理想の高次数ノードの次数ｋｓｕｐｅｒ（理想）、理想の低次数ノードの総数Ｎｌｅａｆ（理想）及び理想の高次数ノードの総数Ｎｓｕｐｅｒ（理想）を計算する（ステップＳＰ２）。
【００５０】
ネットワーク構築部１は、情報共有リストを用いて、現在の低次数ノードの総数Ｎｌｅａｆ（現在）及び理想の低次数ノードの総数Ｎｌｅａｆ（理想）を比較して、現在の高次数ノードの総数Ｎｓｕｐｅｒ（現在）及び理想の高次数ノードの総数Ｎｓｕｐｅｒ（理想）を比較する（ステップＳＰ３）。具体的には、ネットワーク構築部１は、Ｎｌｅａｆ（現在）／Ｎｌｅａｆ（理想）及びＮｓｕｐｅｒ（現在）／Ｎｓｕｐｅｒ（理想）の大小に基づき、高次数ノード装置ＨＤ及び低次数ノード装置ＬＤのうち、現時点でいずれのノード装置が不足しているか判断する。
【００５１】
ネットワーク構築部１は、Ｎｓｕｐｅｒ（現在）／Ｎｓｕｐｅｒ（理想）がＮｌｅａｆ（現在）／Ｎｌｅａｆ（理想）より小さいときには、現時点で高次数ノード装置ＨＤが不足していると判断する（ステップＳＰ４において「高次数ノード」）。そして、ネットワーク構築部１は、自ノードのタイプを高次数ノードに決定する（ステップＳＨ１）。
【００５２】
ネットワーク構築部１は、Ｎｌｅａｆ（現在）／Ｎｌｅａｆ（理想）がＮｓｕｐｅｒ（現在）／Ｎｓｕｐｅｒ（理想）より小さいときには、現時点で低次数ノード装置ＬＤが不足していると判断する（ステップＳＰ４において「低次数ノード」）。そして、ネットワーク構築部１は、自ノードのタイプを低次数ノードに決定する（ステップＳＬ１）。
【００５３】
高次数ノード装置の参加処理を示すフローチャートを図７に示す。図７のフローチャートに先立ち、図６のフローチャートにおいて、ネットワーク構築部１は、自ノードのタイプを高次数ノードに決定している（ステップＳＨ１）。
【００５４】
ネットワーク構築部１は、数式５を用いて、高次数ノード用のＩＤを計算する（ステップＳＨ２）。経路制御部４は、他の高次数ノード装置ＨＤと自ノード装置ＨＤを接続する（ステップＳＨ３）。例えば、高次数ノード装置ＨＤ３は、経路制御部４を用いて、他の高次数ノード装置ＨＤ０〜２と自ノード装置ＨＤ３を接続する。
【００５５】
ネットワーク構築部１は、情報共有リストにおいて、現在の高次数ノードの総数Ｎｓｕｐｅｒ（現在）をインクリメントする（ステップＳＨ４）。リスト共有部５は、情報共有リストを、他の高次数ノード装置ＨＤにマルチキャストする（ステップＳＨ５）。他の高次数ノード装置ＨＤは、マルチキャストされた情報共有リストを、記憶部３に格納する。
【００５６】
ネットワーク構築部１は、情報共有リスト及び自ノード装置ＨＤのＩＤを、記憶部３に格納する（ステップＳＨ６）。経路制御部４は、経路表を作成し、記憶部３に格納する（ステップＳＨ７）。最後に、データ格納処理部６は、自ノード装置ＨＤのＩＤに基づき、所定の範囲のＩＤを有するデータを格納する。以上で、高次数ノード装置ＨＤは、構造型Ｐ２Ｐネットワークに参加することができ、データを検索することができる。
【００５７】
低次数ノード装置の参加処理を示すフローチャートを図８、９に示す。図８、９のフローチャートに先立ち、図６のフローチャートにおいて、ネットワーク構築部１は、自ノードのタイプを低次数ノードに決定している（ステップＳＬ１）。
【００５８】
ネットワーク構築部１は、ハッシュ計算部２及び数式６を用いて、低次数ノード用のＩＤを計算する（ステップＳＬ２）。経路制御部４は、高次数ノード装置ＨＤが自ノード装置ＬＤに隣接しているかどうか判断する（ステップＳＬ３）。
【００５９】
経路制御部４は、高次数ノード装置ＨＤが自ノード装置ＬＤに隣接しているときには（ステップＳＬ３において「ＹＥＳ」）、対角線上の他の低次数ノード装置ＬＤと自ノード装置ＬＤを接続する（ステップＳＬ４）。例えば、低次数ノード装置ＬＤ０は、高次ノード装置ＨＤ０に隣接しているため、経路制御部４を用いて、対角線上の他の低次数ノード装置ＬＤ６と自ノード装置ＬＤ０を接続する。これにより、低次数ノード装置ＬＤ０は、高次数ノード装置ＨＤ０へのホップ数が所定の２より少なく１となる。
【００６０】
経路制御部４は、高次数ノード装置ＨＤが自ノード装置ＬＤに隣接していないときには（ステップＳＬ３において「ＮＯ」）、自ノード装置ＬＤに隣接していない高次数ノード装置ＨＤについて、現在の高次数ノードの次数ｋｓｕｐｅｒ（現在）が理想の高次数ノードの次数ｋｓｕｐｅｒ（理想）を満足しているかどうか判断する（ステップＳＬ５）。
【００６１】
経路制御部４は、自ノード装置ＬＤに隣接していないいずれかの高次数ノード装置ＨＤについて、現在の高次数ノードの次数ｋｓｕｐｅｒ（現在）が理想の高次数ノードの次数ｋｓｕｐｅｒ（理想）を満足していないときには（ステップＳＬ５において「ＮＯ」）、次数を満足していない高次数ノード装置ＨＤと自ノード装置ＬＤを接続する（ステップＳＬ６）。
【００６２】
例えば、低次数ノード装置ＬＤ１は、高次数ノード装置ＨＤ０〜ＨＤ３に隣接していないところ、高次数ノード装置ＨＤ３は、次数を満足していなかった。そこで、低次数ノード装置ＬＤ１は、経路制御部４を用いて、次数を満足していなかった高次数ノード装置ＬＤ３と自ノード装置ＬＤ１を接続する。これにより、低次数ノード装置ＬＤ１は、高次数ノード装置ＨＤ３へのホップ数が所定の２より少なく１となる。
【００６３】
経路制御部４は、自ノード装置ＬＤに隣接していないいずれの高次数ノード装置ＨＤについても、現在の高次数ノードの次数ｋｓｕｐｅｒ（現在）が理想の高次数ノードの次数ｋｓｕｐｅｒ（理想）を満足しているときには（ステップＳＬ５において「ＹＥＳ」）、対角線上の他の低次数ノード装置ＬＤと自ノード装置ＬＤを接続する（ステップＳＬ７）。
【００６４】
このときは、低次数ノード装置ＬＤは、高次数ノード装置ＨＤへのホップ数が所定の２より少なくならない。なお、実施形態では、ステップＳＬ３において、経路制御部４が、高次数ノード装置ＨＤが自ノード装置ＬＤに隣接しているかどうか判断することにより、低次数ノード装置ＬＤは、高次数ノード装置ＨＤへのホップ数が所定の２より小さくなっている。ここで、変形例として、ステップＳＬ３において、経路制御部４が、高次数ノード装置ＨＤが自ノード装置ＬＤとどの程度離れているか判断することにより、低次数ノード装置ＬＤは、高次数ノード装置ＨＤへのホップ数が任意の値より小さくなってもよい。
【００６５】
ネットワーク構築部１は、情報共有リストにおいて、現在の低次数ノードの総数Ｎｌｅａｆ（現在）をインクリメントする（ステップＳＬ８）。リスト共有部５は、情報共有リストを、ステップＳＰ１での取得先の高次数ノード装置ＨＤに送信する（ステップＳＬ９）。ステップＳＰ１での取得先の高次数ノード装置ＨＤは、送信された情報共有リストを、記憶部３に格納するとともに、他の高次数ノード装置ＨＤにマルチキャストする。他の高次数ノード装置ＨＤは、マルチキャストされた情報共有リストを、記憶部３に格納する。
【００６６】
ネットワーク構築部１は、自ノード装置ＬＤのＩＤを、記憶部３に格納する（ステップＳＬ１０）。経路制御部４は、経路表を作成し、記憶部３に格納する（ステップＳＬ１１）。最後に、データ格納処理部６は、自ノード装置ＬＤのＩＤに基づき、所定の範囲のＩＤを有するデータを格納する。以上で、低次数ノード装置ＬＤは、構造型Ｐ２Ｐネットワークに参加することができ、データを検索することができる。
【００６７】
攻撃未発生時のデータの検索方法を図１０に示す。検索データＲＤのＩＤは、低次数ノード装置ＬＤ６のＩＤより大きく、低次数ノード装置ＬＤ７のＩＤより小さい。よって、検索データＲＤは、低次数ノード装置ＬＤ７に格納されている。
【００６８】
低次数ノード装置ＬＤ１は、検索データＲＤを検索するため、検索データＲＤのＩＤ及び自ノードの経路表を参照し、高次数ノード装置ＨＤ３に、検索メッセージを送信する。高次数ノード装置ＨＤ３は、検索データＲＤを格納しておらず、検索データＲＤのＩＤ及び自ノードの経路表を参照し、低次数ノード装置ＬＤ８に、検索メッセージを転送する。低次数ノード装置ＬＤ８は、検索データＲＤを格納しておらず、検索データＲＤのＩＤ及び自ノードの経路表を参照し、低次数ノード装置ＬＤ７に、検索メッセージを転送する。低次数ノード装置ＬＤ７は、検索データＲＤを格納しており、低次数ノード装置ＬＤ１に、検索データＲＤを送信する。このように、高次数ノード装置ＨＤを介することにより、通常のＣｈｏｒｄより容易に、検索データＲＤを検索することができる。
【００６９】
攻撃発生時のデータの検索方法を図１１に示す。ノードへの攻撃は、ノードの次数の高い順序で発生する。よって、高次数ノード装置ＨＤ０〜ＨＤ３は、攻撃が発生しているが、低次数ノード装置ＬＤ０〜ＬＤ１１は、攻撃が発生していない。
【００７０】
低次数ノード装置ＬＤ１は、検索データＲＤを検索するため、検索データＲＤのＩＤ及び自ノードの経路表を参照し、低次数ノード装置ＬＤ２に、検索メッセージを送信する。低次数ノード装置ＬＤ２は、検索データＲＤを格納しておらず、検索データＲＤのＩＤ及び自ノードの経路表を参照し、低次数ノード装置ＬＤ８に、検索メッセージを転送する。低次数ノード装置ＬＤ８は、検索データＲＤを格納しておらず、検索データＲＤのＩＤ及び自ノードの経路表を参照し、低次数ノード装置ＬＤ７に、検索メッセージを転送する。低次数ノード装置ＬＤ７は、検索データＲＤを格納しており、低次数ノード装置ＬＤ１に、検索データＲＤを送信する。このように、高次数ノード装置ＨＤで攻撃が発生しても、通常のＣｈｏｒｄと同様に、検索データＲＤを検索することができる。
【００７１】
離脱モデルにおける本発明及び従来技術の通信効率を図１２に示す。ノード数Ｎを１０００とし、平均次数＜ｋ＞を３とし、ノード数Ｎに対する離脱したノード数の割合ｒに対して、通信効率Ｅをシミュレーションした。ここで、ノードの離脱は、ノードの次数に関係なく発生する。本発明のＣｈｏｒｄでは、通常のＣｈｏｒｄと比べて、０≦ｒ≦０．１のすべての領域において、通信効率Ｅが向上している。
【００７２】
攻撃モデルにおける本発明及び従来技術の通信効率を図１３に示す。ノード数Ｎを１０００とし、平均次数＜ｋ＞を３とし、ノード数Ｎに対する攻撃されたノード数の割合ｒに対して、通信効率Ｅをシミュレーションした。ここで、ノードへの攻撃は、ノードの次数の高い順序で発生する。本発明のＣｈｏｒｄでは、通常のＣｈｏｒｄと比べて、攻撃の程度の低い０≦ｒ≦０．０１の領域において、通信効率Ｅが向上しており、攻撃の程度の高い０．０１≦ｒ≦０．１の領域において、同等の通信効率Ｅを維持している。
【産業上の利用可能性】
【００７３】
本発明の構造型Ｐ２Ｐネットワーク構築方法、ノード装置及びそのプログラムは、コンテンツ配信サービス、ネットワークストレージサービス及びＶｏｉｃｅ  ｏｖｅｒ  ＩＰ（ＶｏＩＰ）サービス等に、適用することができる。
【符号の説明】
【００７４】
ＨＤ：高次数ノード装置
ＬＤ：低次数ノード装置
ＲＤ：検索データ
１：ネットワーク構築部
２：ハッシュ計算部
３：記憶部
４：経路制御部
５：リスト共有部
６：データ格納処理部
【図１】
0006048888.tif 000010
【図２】
0006048888.tif 000011
【図３】
0006048888.tif 000012
【図４】
0006048888.tif 000013
【図５】
0006048888.tif 000014
【図６】
0006048888.tif 000015
【図７】
0006048888.tif 000016
【図８】
0006048888.tif 000017
【図９】
0006048888.tif 000018
【図１０】
0006048888.tif 000019
【図１１】
0006048888.tif 000020
【図１２】
0006048888.tif 000021
【図１３】
0006048888.tif 000022
【図１４】
0006048888.tif 000023