(57)【要約】【課題】ネットワークのトポロジ推定を行う。【解決手段】本方法は、（Ａ）複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、（Ｂ）ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、（Ｃ）第２のデータを、親ノードに送信する処理を含む。【選択図】図２
2015002496.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、
前記第２のデータを、前記親ノードに送信する
処理を、前記自ノードであるコンピュータに実行させるためのプログラム。
【請求項２】
前記自ノードが、前記ネットワークにおける最下位ノードであれば、前記リンクデータに含まれる、前記自ノードの親ノードとのリンクの識別子から、当該識別子を復元可能に符号化された第３のデータを生成し、
前記第３のデータを、前記親ノードに送信する
処理をさらに前記コンピュータに実行させる請求項１記載のプログラム。
【請求項３】
前記リンクデータのうち、少なくとも前記ネットワークにおける子ノードに関連するリンクデータを当該子ノードに送信する
処理をさらに前記コンピュータに実行させる請求項１又は２記載のプログラム。
【請求項４】
前記リンクデータが、親ノードが共通するノードのグループ毎に生成されている場合には、前記リンクデータを当該子ノードに送信する処理において、前記自ノードの親ノードに関連するリンクデータを抽出して、抽出されなかったリンクデータを、前記子ノードに送信する
請求項３記載のプログラム。
【請求項５】
前記リンクデータから、前記自ノードを介して通信を行う配下のノードについてのリンクデータを生成し、前記ネットワークにおける子ノードに送信する
処理をさらに前記コンピュータに実行させる請求項１又は２記載のプログラム。
【請求項６】
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理と、
を、コンピュータに実行させるためのプログラム。
【請求項７】
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、
前記第２のデータを、前記親ノードに送信する
処理を含み、前記自ノードであるコンピュータにより実行される符号処理方法。
【請求項８】
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信する通信部と、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成する生成部と、
を有し、
前記通信部は、前記第２のデータを、前記親ノードに送信する
情報処理装置。
【請求項９】
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理と、
を含み、コンピュータにより実行される生成方法。
【請求項１０】
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理とを実行する生成部と、
生成された前記リンクデータを、子ノードに送信する送信部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークのトポロジ推定技術に関する。
【背景技術】
【０００２】
例えばデータセンタに設けられているクラウドの機能の一部をデータセンタの外側のネットワーク側に移すことで、トラフィックの削減やレスポンスの向上を図るといった技術が注目されている。データセンタ側から見れば、従来のクラウドの範囲が、前の方に張り出したことになるので、データセンタの外側のネットワークは、フロントネットワークと呼ばれることがある。このようなフロントネットワークに機能が分散された場合においても、全体の運用管理はデータセンタ側で集中制御することが想定されている。
【０００３】
このようなフロントネットワークの運用管理では、障害箇所の特定や代替経路の発見などを行うことになるが、運用管理の効率化のためには、フロントネットワーク内のトポロジを把握することが好ましい。
【０００４】
アドホックネットワークにおけるネットワークトポロジの一部を推定する技術が存在しているが、この技術では２ホップまでしか正確にはトポロジを把握できない。これでは、小規模なネットワークでしか使用できない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、一側面によれば、ネットワークのトポロジ推定を行うための新規な技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る符号処理方法は、（Ａ）複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、（Ｂ）ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、（Ｃ）第２のデータを、親ノードに送信する処理を含む。
【０００８】
本実施の形態に係る生成方法は、（Ａ）ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、（Ｂ）ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、（Ｃ）親ノードが共通し且つネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、（Ｄ）抽出処理と生成処理とを、トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理とを含む
【発明の効果】
【０００９】
一側面によれば、ネットワークのトポロジ推定を行うことができるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ネットワークの一例を示す図である。
【図２】図２は、符号化テーブルの一例を示す図である。
【図３】図３は、符号化データの一例を示す図である。
【図４】図４は、符号化データの一例を示す図である。
【図５】図５は、符号化データの一例を示す図である。
【図６】図６は、符号化データの一例を示す図である。
【図７】図７は、符号化データの一例を示す図である。
【図８】図８は、第１の実施の形態に係るゲートウェイＧＷの構成例を示す図である。
【図９】図９は、第１の実施の形態に係るノードの構成例を示す図である。
【図１０】図１０は、第１の実施の形態に係る符号化テーブルの配信時の処理フローを示す図である。
【図１１】図１１は、符号化データを受信した際の処理フローを示す図である。
【図１２】図１２は、第１の実施の形態に係るノードにおける処理の処理フローを示す図である。
【図１３】図１３は、第２の実施の形態におけるネットワークデータの一例を示す図である。
【図１４】図１４は、第２の実施の形態に係る符号化テーブルの一例を示す図である。
【図１５】図１５は、第２の実施の形態に係る符号化テーブルの一例を示す図である。
【図１６】図１６は、第２の実施の形態に係る符号化テーブルの一例を示す図である。
【図１７】図１７は、第２の実施の形態に係る符号化データの一例を示す図である。
【図１８】図１８は、第２の実施の形態に係る符号化データの一例を示す図である。
【図１９】図１９は、第２の実施の形態に係る符号化データの一例を示す図である。
【図２０】図２０は、第２の実施の形態に係る符号化データの一例を示す図である。
【図２１】図２１は、第２の実施の形態に係るゲートウェイＧＷの構成例を示す図である。
【図２２】図２２は、第２の実施の形態に係るノードの構成例を示す図である。
【図２３】図２３は、第２の実施の形態に係る符号化テーブルの配信時の処理フローを示す図である。
【図２４】図２４は、第２の実施の形態に係る符号化テーブルの配信時の処理フローを示す図である。
【図２５】図２５は、短縮型符号化テーブル生成処理の処理フローを示す図である。
【図２６】図２６は、第２の実施の形態に係る各ノードの処理フローを示す図である。
【図２７】図２７は、第２の実施の形態に係る各ノードの処理フローを示す図である。
【図２８】図２８は、第２の実施の形態に係る各ノードの処理フローを示す図である。
【図２９】図２９は、符号化テーブルの変形例を示す図である。
【図３０】図３０は、第３の実施の形態に係るノードの構成例を示す図である。
【図３１】図３１は、第３の実施の形態に係る処理フローを示す図である。
【図３２】図３２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
本実施の形態に係るネットワークの一例を図１に示す。図１の例では、例えばネットワークを管理するゲートウェイＧＷと、ノードＡ乃至Ｅとを含む。そして、ノードＡ乃至Ｅは、従来からある技術に従って自律的に最適な経路を導出し、経路内リンクを形成する。図１で示す時点では、ノードＤとノードＢとのリンク、ノードＢとノードＡとのリンク、ノードＥとノードＣとのリンク、ノードＣとノードＡとのリンク、ノードＡとゲートウェイＧＷとのリンクが、経路内リンクとして用いられる。なお、図１の点線で示されたリンクは、何らかの理由で用いられることになる可能性はあるが、ここでは用いられないものとする。
【００１２】
各ノードＡ乃至Ｅは、ゲートウェイＧＷに対してデータを送信するため、ゲートウェイＧＷは、接続されているノードについては把握できるが、ネットワークのトポロジは、接続されているノードだけでは特定できない。
【００１３】
そこで、ゲートウェイＧＷは、図２に示すような符号化テーブルを生成する。図２の例では、ゲートウェイＧＷとノードＡ乃至Ｅとについてあり得るリンクの各々について、識別子が付与されている。このような符号化テーブルは、ゲートウェイＧＷからノードＡ乃至Ｅに配布される。
【００１４】
なお、このようなリンクに付与された識別子をゲートウェイＧＷに送信するのでは、通信量が多くなってしまうので、用いられているリンクの識別子を復号可能な形で符号化した上で、ゲートウェイＧＷに送信する。
【００１５】
なお、符号化の方式は、リンクの識別子の数程度のビット長であって且つリンクの識別子を復号可能なものであればよい。例えば、ブルームフィルタ（Bloom Filter）を用いて符号化する。より具体的には、１のハッシュ関数に、リンクの識別子を入力して、当該ハッシュ関数の出力に対応するビット位置をハイにセットすることで得られるビット列を符号化データとして生成する。このようなビット列を、下位ノードから更新しつつゲートウェイＧＷへ送ることで、ゲートウェイＧＷにおいてトポロジを特定する。なお、ブルームフィルタの場合には偽陽性の問題があるが、偽陽性が発生しないようにリンクの識別子を調整するものとする。
【００１６】
図１に示したネットワークの場合、図３に示すようなビット列が符号化データとして用いられる。図３の例では、ノードＤからノードＢへ送られる符号化データを表している。ノードＤとノードＢとのリンクの識別子Ｂ−Ｄに対応する位置のビットに「１」がセットされる。
【００１７】
また、ノードＢからノードＡへ送られる符号化データの一例を図４に示す。図４の例では、ノードＢとノードＡとのリンクの識別子Ａ−Ｂに対応する位置のビットに追加で「１」がセットされる。
【００１８】
さらに、ノードＥからノードＣへ送られる符号化データの一例を図５に示す。図５の例では、ノードＥとノードＣとのリンクの識別子Ｃ−Ｅに対応する位置のビットに「１」がセットされる。
【００１９】
また、ノードＣからノードＡへ送られる符号化データの一例を図６に示す。図６の例では、ノードＣとノードＡとのリンクの識別子Ａ−Ｃに対応する位置のビットに追加で「１」がセットされる。
【００２０】
ノードＡは、図４に示した符号化データ及び図６に示した符号化データを受信するので、符号化データのビット列をＯＲ演算すると共に、ノードＡからゲートウェイＧＷとのリンクの識別子ＧＷ−Ａに対応する位置のビットに追加で「１」がセットされる。すなわち、図７に示すような符号化データが、ノードＡからゲートウェイＧＷへ送信される。
【００２１】
ゲートウェイＧＷは、図７に示すような符号化データを受信すると、「１」がセットされたビット位置から、図１に示すようなリンクトポロジを復元できる。
【００２２】
このような処理を行うためのゲートウェイＧＷの構成例を図８に示す。ゲートウェイＧＷは、ノードデータ格納部１０１と、テーブル生成部１０２と、テーブル格納部１０３と、テーブル配信部１０４と、受信部１０５と、符号化データ格納部１０６と、復号処理部１０７と、トポロジデータ格納部１０８と、出力部１０９とを有する。
【００２３】
ノードデータ格納部１０１は、ネットワークに出現するノードのリストを格納する。テーブル生成部１０２は、ノードデータ格納部１０１に格納されているノードのリストから、ノード間に確立し得るリンクの識別子を符号化方法に基づき付与して、図２に示すような符号化テーブルを生成し、テーブル格納部１０３に格納する。テーブル配信部１０４は、各ノードにテーブル格納部１０３に格納された符号化テーブルを配信する。
【００２４】
受信部１０５は、いずれかのノードから符号化データを受信すると、符号化データ格納部１０６に格納する。復号処理部１０７は、テーブル格納部１０３に格納されている符号化テーブルを用いて、符号化方式に基づき、符号化データ格納部１０６に格納されている符号化データからリンクの識別子を復元し、ネットワークのトポロジデータを生成し、トポロジデータ格納部１０８に格納する。
【００２５】
出力部１０９は、例えば管理装置などからの要求に応じてトポロジデータ格納部１０８に格納されているトポロジデータを出力する。
【００２６】
また、各ノードの構成例を図９に示す。ノード２００は、通信処理部２１０と、データ格納部２２０と、符号化処理部２３０とを有する。
【００２７】
通信処理部２１０は、他のノード等との通信を行って、他のノード等とのリンクを確立し、当該リンクのデータを格納する。また、通信処理部２１０は、他のノード等から符号化テーブルを受信すると、データ格納部２２０に格納し、子ノードが存在する場合には符号化テーブルを送信する。
【００２８】
符号化処理部２３０は、自らが最下位ノードであれば、親ノードとのリンク及び符号化テーブルに基づき、符号化データを生成し、通信処理部２１０に符号化データを親ノードへ送信させる。また、符号化処理部２３０は、通信処理部２１０が子ノードから符号化データを受信すると、自ノードについて他のリンクの識別子を特定すると共に、当該特定されたリンクの識別子及び受信した符号化データを用いて新たな符号化データを生成し、通信処理部２１０に、親ノードへ送信させる。
【００２９】
次に、図１０乃至図１２を用いて、処理内容について説明する。まず、ゲートウェイＧＷの処理内容について図１０及び図１１を用いて説明する。
【００３０】
図１０は、符号化テーブルの配信についての処理フローを示す。まず、テーブル生成部１０２は、ノードデータ格納部１０１に格納されているノードのデータから、確立し得るリンクの識別子を生成することで、符号化テーブルを生成し、テーブル格納部１０３に格納する（図１０：ステップＳ１）。この際、上で述べたように、ブルームフィルタを用いる場合には偽陽性が発生しないように識別子を調整する。
【００３１】
そして、テーブル配信部１０４は、子ノードに、テーブル格納部１０３に格納されている符号化テーブルを配信する（ステップＳ３）。図１の例では、ノードＡに送信する。
【００３２】
また、符号化データを受信した場合の処理を図１１を用いて説明する。受信部１０５は、子ノードから符号化データを受信すると、符号化データ格納部１０６に格納する（図１１：ステップＳ１１）。そうすると、復号処理部１０７は、符号化データから、リンク識別子を復号する（ステップＳ１３）。上で述べた例では、符号化データにおいて「１」がセットされているビット位置がリンク識別子に対応付けられるので、「１」がセットされているビット位置に基づきリンク識別子を特定する。その他の符号化方法の場合には、その方法に応じて復号する。
【００３３】
そして、復号処理部１０７は、リンク識別子で符号化テーブルを探索することで、リンクを特定することで、ネットワークトポロジのデータを生成し、トポロジデータ格納部１０８に格納する（ステップＳ１５）。例えば図１に示すようなノードとノードとをリンクで繋ぐようなデータを生成する。
【００３４】
その後、出力部１０９は、トポロジデータ格納部１０８に格納されているトポロジデータを、例えばネットワークに接続されている管理端末などに出力する（ステップＳ１７）。
【００３５】
このようにすれば、ゲートウェイＧＷでは、ネットワークのトポロジデータが生成できるようになる。
【００３６】
次に、図１２を用いて、各ノードにおける処理を説明する。まず、通信処理部２１０は、他のノード又はゲートウェイＧＷから符号化テーブルを受信したか判断する（図１２：ステップＳ２１）。符号化テーブルを受信した場合には、通信処理部２１０は、データ格納部２２０に、符号化テーブルを格納する（ステップＳ２３）。そして、通信処理部２１０は、子ノードが存在するか判断する（ステップＳ２５）。例えば確立しているリンクにおいて下流のノードが存在するか判断する。
【００３７】
子ノードが存在する場合には、通信処理部２１０は、受信した符号化テーブルを、子ノードに送信する（ステップＳ２７）。一方、子ノードが存在しない場合、すなわち自ノードが最下流ノードである場合には、処理はステップＳ２９に移行する。
【００３８】
その後、通信処理部２１０は、管理端末などから処理終了を指示されたなど、処理を終了すべきか判断し（ステップＳ２９）、処理終了でなければ、処理はステップＳ２１に戻る。一方、処理終了であれば、処理を終了する。
【００３９】
また、符号化テーブルの受信でなければ、通信処理部２１０は、他のノードから符号化データを受信したか判断する（ステップＳ３１）。符号化データを他のノードから受信した場合には、通信処理部２１０は、符号化データを符号化処理部２３０に出力する。符号化処理部２３０は、自ノードのリンク及び受信した符号化データに基づき、親ノードに送信すべき符号化データを生成し、通信処理部２１０に出力する（ステップＳ３３）。
【００４０】
例えば、自ノードと親ノードとのリンクの識別子を符号化テーブルから特定し、予め配布されているハッシュ関数に入力することで、符号化データのビット列において「１」をセットすべきビット位置を特定し、受信した符号化データのビット列において当該ビット位置のビットを「１」にセットする。親ノード以外のノードとのリンクがあれば、同様に符号化データに当該リンクの識別子から特定されるビット位置のビットを「１」にセットしてもよい。
【００４１】
そして、通信処理部２１０は、符号化データを親ノードに送信する（ステップＳ３５）。その後、処理はステップＳ２９に移行する。
【００４２】
さらに、符号化データを受信したわけではない場合、通信処理部２１０は、子ノードが存在せず且つ符号化データ送信タイミングであるという条件を満たしているか判断する（ステップＳ３７）。すなわち、自ノードが最下流ノードであり、例えば定期的に符号化データを生成するような場合には、その送信タイミングであるか否かを判断する。この条件を満たさない場合には、処理はステップＳ２９に移行する。
【００４３】
一方、この条件を満たす場合には、通信処理部２１０は、符号化処理部２３０に処理を指示する。符号化処理部２３０は、符号化テーブルから自ノードが確立しているリンク（例えば親ノードとのリンク）の識別子を特定し、当該リンクの識別子に基づき符号化データを生成する（ステップＳ３９）。上で述べたように、リンクの識別子をハッシュ関数に入力することによって特定される、符号化データにおけるビット位置のビットを「１」にセットする。そして処理はステップＳ３５に移行する。
【００４４】
このような処理を実行することで、最下流ノードから順番に、符号化データを更新しつつノードを伝ってゲートウェイＧＷまで、符号化データが到達し、ネットワークのトポロジを得ることができるようになる。
【００４５】
上でも述べたように、ブルームフィルタは一例であって、他の方法を用いても良い。１のハッシュ関数を用いる例を示したが、より多いハッシュ関数を用いてブルームフィルタを生成しても良い。
【００４６】
［実施の形態２］
第１の実施の形態では、符号化テーブルをそのままネットワーク全体に配信するので、ノードの数が増加すると、リンク数も多くなってしまい、符号化テーブルのサイズが大きくなってしまう。よって、ネットワーク配信の際の負荷が高くなってしまう。
【００４７】
そこで、過去のトポロジが把握されている場合に、符号化テーブルのサイズを小さくするような手法を示す。
【００４８】
本実施の形態でも、図１のようなネットワークを想定する。但し、図１３に示すように、ゲートウェイＧＷからのホップ数と、共通する親ノードによるグループ化とを、管理用のデータとして採用する。
【００４９】
すなわち、ノードＡは、親ノードがゲートウェイＧＷであるからグループＧＷに属し、ゲートウェイＧＷから１ホップであるからホップ数Ｎ＝１と設定される。ノードＢ及びＣは、親ノードがノードＡであるからグループＡに属し、ゲートウェイＧＷから２ホップであるからホップ数Ｎ＝２と設定される。ノードＤは、親ノードがノードＢであるからグループＢに属し、ゲートウェイＧＷから３ホップであるからホップ数Ｎ＝３と設定される。同様に、ノードＥは、親ノードがノードＣであるからグループＣに属し、ゲートウェイＧＷから３ホップであるからホップ数Ｎ＝３と設定される。
【００５０】
親ノードがゲートウェイＧＷであるノードＡ（グループＧＷ）は、ゲートウェイＧＷとのリンクを符号化することになるので、ノードＡのための符号化テーブルは、図２に示したものと同様である。
【００５１】
また、親ノードがノードＡであるノードＢ及びＣ（グループＡ）は、ゲートウェイＧＷとのリンクを符号化する可能性は低いので、それ以外のノードとのリンクを符号化するため、ノードＢ及びＣのための符号化テーブルは、図１４に示すようになる。
【００５２】
さらに、親ノードがノードＢであるノードＤ（グループＢ）は、ゲートウェイＧＷ並びにノードＡ、Ｃ及びＥについてのリンクを符号化する可能性は低いので、それ以外のノードとのリンクを符号化するため、ノードＤのための符号化テーブルは、図１５に示すようになる。
【００５３】
同様に、親ノードがノードＣであるノードＥ（グループＣ）は、ゲートウェイＧＷ並びにノードＡ、Ｂ及びＤについてのリンクを符号化する可能性は低いので、それ以外のノードとのリンクを符号化するため、ノードＥのための符号化テーブルは、図１６に示すようになる。
【００５４】
本実施の形態では、ゲートウェイＧＷが、図２及び図１４乃至図１６の符号化テーブルを生成して、配下のノードに配信する。符号化テーブルを受信したノードは、自らが用いるテーブル及び子ノードが用いるテーブルを格納し、配下のノードで用いる符号化テーブルを子ノードに配信する。なお、符号化テーブルに併せたハッシュ関数も符号化テーブルと共に配信される。
【００５５】
一方、符号化データについては、以下のように生成される。すなわち、ノードＥは、親ノードＣとのリンクが確立されているので、符号化テーブル（図１６）からそのリンクの識別子を特定し、当該リンクの識別子から符号化データを生成する。例えば図１７に示すような符号化データが得られる。この例では１つのリンクの識別子しか出現し得ないので１ビットとなるが、それ以外の場合には、上で述べたように、特定されたリンクの識別子をハッシュ関数に入力して、その出力に対応するビット位置のビットを「１」にセットする。
【００５６】
また、ノードＤは、親ノードＢとのリンクが確立されているので、符号化テーブル（図１５）からそのリンクの識別子を特定し、当該リンクの識別子から符号化データを生成する。例えば図１８に示すような符号化データが得られる。
【００５７】
ノードＣは、図１７に示すような符号化データをノードＥから受信すると、図１６に示すような符号化テーブルに基づきリンクの識別子Ｃ−Ｅを得る。また、ノードＣは、親ノードＡとのリンクも有しているので、自ノードのための符号化テーブル（図１４）からリンクの識別子を取得する。そして、各リンクの識別子に対するハッシュ関数の出力に対応するビット位置のビットに「１」をセットすることで、符号化データを生成する。この場合、図１９に示すような符号化データが生成される。
【００５８】
同様に、ノードＢは、図１８に示すような符号化データをノードＤから受信すると、図１５に示すような符号化テーブルに基づきリンクの識別子Ｂ−Ｄを得る。また、ノードＢは、親ノードＡとのリンクも有しているので、自ノードのための符号化テーブル（図１４）からリンクの識別子を取得する。そして、各リンクの識別子に対するハッシュ関数の出力に対応するビット位置のビットに「１」をセットすることで、符号化データを生成する。この場合、図２０に示すような符号化データが生成される。
【００５９】
さらに、ノードＡは、図２０に示すような符号化データを受信すると、図１４に示すような符号化テーブルに基づき、リンクの識別子Ｂ−Ｄ，Ａ−Ｂ，Ｃ−Ｅ及びＡ−Ｃを特定する。さらに、ノードＡは、親ノードであるゲートウェイＧＷとのリンクをも有しているので、自ノードのための符号化テーブル（図２）からリンクの識別子を特定する。そして、各リンクの識別子に対するハッシュ関数の出力に対応するビット位置のビットに「１」をセットすることで、符号化データを生成する。この場合に生成される符号化データは、第１の実施の形態において、ノードＡが生成する符号化データと同じである。すなわち、図７に示すような符号化データが得られる。
【００６０】
ゲートウェイＧＷは、第１の実施の形態と同様の処理で、リンクトポロジのデータを得ることができるようになる。
【００６１】
次に、このような処理を実行するための構成について説明する。図２１に示すように、ゲートウェイＧＷは、おおよそ第１の実施の形態における構成と同様の構成を有しているが、符号化テーブルが異なっており且つ符号化テーブルを生成する際にはリンクトポロジのデータを用いるので、テーブル生成部１０２ｂを採用して、テーブル生成部１０２ｂは、ノードデータ格納部１０１とトポロジデータ格納部１０８に格納されているデータを用いるようになっている。また、以下で述べるエラー通知の際の処理のために、受信部１０５ｂ及びテーブル配信部１０４ｂが採用されている。
【００６２】
また、図２２に、本実施の形態に係るノード２００ｂの構成例を示す。基本的には第１の実施の形態に係る構成と同様であるが、実施される処理内容は以下で述べるように異なる。
【００６３】
次に、図２３乃至図２５を用いて、ゲートウェイＧＷの処理内容を説明する。まず、テーブル生成部１０２ｂは、最上位の符号化テーブルを生成し、テーブル格納部１０３に格納する（図２３：ステップＳ４１）。この処理は第１の実施の形態と同様である。
【００６４】
さらに、テーブル生成部１０２ｂは、トポロジデータ格納部１０８に格納されているネットワークトポロジのデータに基づき、ノードのツリー構造を生成する（ステップＳ４３）。図１３に示すようなツリー構造を生成する。
【００６５】
そして、テーブル生成部１０２ｂは、図１４、図１５及び図１６に示すような短縮型の符号化テーブルを生成できるか否かを、ステップＳ４３の処理結果に基づき判断する（ステップＳ４５）。例えば、ネットワークトポロジから把握されるネットワークが、各ノードが互いに１ホップで接続されるような完全グラフのようなものである場合には、以下の処理を行わなくても良い。従って、端子Ａを介して処理を終了する。
【００６６】
一方、短縮型符号化テーブルを生成できる場合には、テーブル生成部１０２ｂは、ホップ数を表す変数Ｎを０に設定する（ステップＳ４７）。また、テーブル生成部１０２ｂは、Ｎを１インクリメントする（ステップＳ４９）。さらに、テーブル生成部１０２ｂは、ホップ数がＮとなるノードを、親ノード毎にグループ化する（ステップＳ５１）。さらに、テーブル生成部１０２ｂは、グループ名（例えば親ノードの識別子）及びホップ数を、ホップ数Ｎのノードに対応付けて例えばテーブル格納部１０３に格納する（ステップＳ５３）。
【００６７】
そして、テーブル生成部１０２ｂは、Ｎが処理に係るネットワークの最大ホップ数を超えているか否かを判断する（ステップＳ５５）。Ｎが、最大ホップ数以下であれば、処理はステップＳ４９に戻る。一方、Ｎが、最大ホップ数を超えた場合には、処理は端子Ｂを介して図２４の処理に移行する。
【００６８】
図２４の処理の説明に移行して、テーブル生成部１０２ｂは、短縮型符号化テーブル生成処理を実行する（ステップＳ５７）。この短縮型符号化テーブル生成処理については、図２５を用いて説明する。
【００６９】
まず、テーブル生成部１０２ｂは、ホップ数を表す変数Ｎを０に初期化する（図２５：ステップＳ６１）。そして、テーブル生成部１０２ｂは、Ｎを１インクリメントする（ステップＳ６３）。
【００７０】
その後、テーブル生成部１０２ｂは、ホップ数Ｎのグループを特定する（ステップＳ６５）。ここでは複数のグループが特定される場合がある。従って、さらに、テーブル生成部１０２ｂは、未処理のグループを１つ特定する（ステップＳ６７）。
【００７１】
そして、テーブル生成部１０２ｂは、親ノードの符号化テーブルから、特定されたグループ及びその配下に属するノードの識別子（ＩＤ）を抽出する（ステップＳ６９）。そして、テーブル生成部１０２ｂは、抽出されたノードの識別子から、それらのノード間のリンクの識別子を生成することで、短縮型符号化テーブルを生成し、テーブル格納部１０３に格納する（ステップＳ７１）。ノード間のリンクの識別子は、親ノードの符号化テーブルから抽出するようにしても良い。
【００７２】
その後、テーブル生成部１０２ｂは、未処理のグループが存在するか否かを判断する（ステップＳ７３）。未処理のグループが存在する場合には、処理はステップＳ６７に戻る。一方、未処理のグループが存在しない場合には、テーブル生成部１０２ｂは、Ｎはそのネットワークにおける最大ホップ数を超えたか判断する（ステップＳ７５）。Ｎが最大ホップ数を超えていない場合には、処理はステップＳ６３に戻る。一方、Ｎが最大ホップ数を超えた場合には、処理は呼出元の処理に戻る。
【００７３】
このような処理を行えば、上で述べた例では、図１４、図１５及び図１６に示すような短縮型の符号化テーブルが生成される。
【００７４】
図２４の処理の説明に戻って、テーブル配信部１０４ｂは、テーブル格納部１０３に格納されている符号化テーブル（短縮型を含む）を、子ノードに送信する（ステップＳ５９）。
【００７５】
以上のような処理を実行することで、ネットワーク全体で通信される符号化テーブルの量は少なくなる。
【００７６】
なお、ゲートウェイＧＷが、符号化データを受信した際の処理については、第１の実施の形態と同様であるので、説明を省略する。
【００７７】
次に、図２６乃至図２８を用いて、各ノードの処理について説明する。
【００７８】
通信処理部２１０ｂは、符号化テーブル（短縮型を含む）を受信したか判断する（図２６：ステップＳ８１）。符号化テーブルを受信していない場合には、処理は端子Ｃを介して図２７の処理に移行する。
【００７９】
一方、符号化テーブルを受信した場合には、通信処理部２１０ｂは、自ノードの識別子を有する符号化テーブルがあるか否かを判断する（ステップＳ８３）。短縮型符号化テーブルは、以前のネットワークトポロジを基に生成されているので、その後のネットワークの変更によって自ノードが含まれない場合もある。自ノードの識別子を有する符号化テーブルが存在しない場合には、通信処理部２１０ｂは、自ノードの識別子を含むエラー通知を、ゲートウェイＧＷに送信する（ステップＳ８５）。エラー通知を行ったノード及びその配下のノードについては、第１の実施の形態に従って処理を行うものとする。そして処理はステップＳ１０１に移行する。
【００８０】
なお、受信部１０５ｂは、エラー通知を受信すると、エラー通知に含まれるノードの識別子に対して、図２に示すような最も大きい符号化テーブルを送信するようにテーブル配信部１０４ｂに指示する。テーブル配信部１０４ｂは、図２に示すような符号化テーブルを、エラー通知に含まれるノードの識別子に対して送信する。この符号化テーブルを受信したノードは、配下のノードに同じ符号化テーブルを配布して、第１の実施の形態と同様の処理を行う。但し、エラー通知に識別子が含まれていたノードより上位のノードについては、符号化データをそのまま転送する。ゲートウェイＧＷでは、短縮型符号化テーブルに基づき生成された符号化データから得られるリンクと、第１の実施の形態に係る符号化テーブルに基づき生成された符号化データから得られるリンクとを連結させれば、全体としてのネットワークトポロジを把握できる。
【００８１】
一方、自ノードの識別子を含む符号化テーブルを受信した場合には、通信処理部２１０ｂは、自ノードの識別子を含む符号化テーブルを、データ格納部２２０ｂに格納する（ステップＳ８７）。ノードＡであれば、図２及び図１４の符号化テーブルを格納し、ノードＢであれば、図１４及び図１５の符号化テーブルを格納し、ノードＣであれば、図１４及び図１６の符号化テーブルを格納し、ノードＤであれば、図１５の符号化テーブルを格納し、ノードＥであれば、図１６の符号化テーブルを格納する。
【００８２】
そして、通信処理部２１０ｂは、子ノードが存在するか否かを判断する（ステップＳ８９）。子ノードが存在しない場合には、処理はステップＳ１０１に移行する。
【００８３】
一方、子ノードが存在する場合には、通信処理部２１０ｂは、未処理の子ノードを１つ特定する（ステップＳ９１）。そして、通信処理部２１０ｂは、特定された子ノードの識別子を含むテーブルを受信したか否かを判断する（ステップＳ９３）。特定された子ノードの識別子を含むテーブルを受信していない場合には、当該子ノードが新たにリンクを確立したためであるから、通信処理部２１０ｂは、特定された子ノードの識別子を含むエラー通知を、ゲートウェイＧＷに送信する（ステップＳ９７）。子ノード及びその配下のノードについては、第１の実施の形態に従って処理を行うものとする。そして処理はステップＳ９９に移行する。
【００８４】
一方、子ノードのＩＤを含むテーブルが存在する場合には、通信処理部２１０ｂは、親ノードのための符号化テーブル（すなわち最大サイズの符号化テーブル）以外のテーブルを、特定された子ノードに送信する（ステップＳ９５）。そして、通信処理部２１０ｂは、未処理の子ノードが存在するか判断する（ステップＳ９９）。未処理の子ノードが存在する場合には処理はステップＳ９１に戻る。一方、未処理の子ノードが存在しない場合には、通信処理部２１０ｂは、処理を終了すべきか判断する（ステップＳ１０１）。処理を終了すべきではない場合には、処理はステップＳ８１に戻る。一方、処理を終了すべき場合には、処理を終了する。
【００８５】
このようにすれば、適切に符号化テーブルが配布されるようになる。なお、配布できない場合には、配布できないノード及びその配下のノードについては別途処理する。
【００８６】
次に、図２７を用いて、端子Ｃ以降の処理について説明する。
【００８７】
なお、ここでは、符号化テーブル配布後に親ノードが変化することで符号化データを送信できない場合に送信されるエラー通知をも処理するものとする。
【００８８】
すなわち、通信処理部２１０ｂは、自ノード宛のエラー通知のみ子ノードから受信したか判断する（ステップＳ１０３）。自ノード宛のエラー通知のみ子ノードから受信した場合、すなわち子ノードにおいて符号化データを生成できなかった場合には、通信処理部２１０ｂは、自ノードと親ノードとのリンクについての識別子が符号化テーブルに登録されていて符号化データを生成できるか判断する（ステップＳ１０５）。親ノードとのリンクについての識別子が符号化テーブルに登録されていない場合には、自ノードでも符号化データを生成できないので、通信処理部２１０ｂは、自ノードの識別子を含むエラー通知を親ノード宛に送信する（ステップＳ１０７）。そして処理は、端子Ｄを介して図２６の処理に戻る。
【００８９】
一方、親ノードとのリンクについての識別子が符号化テーブルに登録されており符号化データを生成できる場合には、通信処理部２１０ｂは、符号化処理部２３０ｂに処理を指示し、符号化処理部２３０ｂは、自ノードのリンクに基づき符号化データを生成し、通信処理部２１０ｂに出力する（ステップＳ１０９）。最下流のノードのように処理を行うものである。そして、通信処理部２１０ｂは、子ノードの識別子を含むエラー通知及び符号化データを、親ノードに送信する（ステップＳ１１１）。その後処理は端子Ｄを介して図２６の処理に戻る。
【００９０】
また、エラー通知のみの受信ではない場合、通信処理部２１０ｂは、エラー通知及び符号化データを受信したか否かを判断する（ステップＳ１１３）。この条件を満たさない場合には、処理は端子Ｅを介して図２８の処理に移行する。
【００９１】
一方、エラー通知及び符号化データを受信した場合、すなわち、配下のノードで符号化できない部分があるが少なくとも子ノードからは符号化データが得られた場合、通信処理部２１０ｂは、親ノードとのリンクについての識別子が符号化テーブルに登録されていて符号化データを生成できるか判断する（ステップＳ１１５）。親ノードとのリンクについての識別子が符号化テーブルに登録されていない場合には、自ノードでも符号化データを生成できないので、通信処理部２１０ｂは、自ノードの識別子を含むエラー通知を親ノード宛に送信する（ステップＳ１２１）。そして処理は端子Ｄを介して図２６の処理に戻る。
【００９２】
一方、親ノードとのリンクについての識別子が符号化テーブルに登録されており符号化データを生成できる場合には、通信処理部２１０ｂは、符号化処理部２３０ｂに処理を指示し、符号化処理部２３０ｂは、自ノードのリンク及び受信符号化データに基づき符号化データを生成し、通信処理部２１０ｂに出力する（ステップＳ１１７）。この処理については、図１２のステップＳ３３と同様である。そして、通信処理部２１０ｂは、受信したエラー通知及び符号化データを、親ノードに送信する（ステップＳ１１９）。その後処理は端子Ｄを介して図２６の処理に戻る。
【００９３】
このように符号化データを生成する際に発生したエラー通知を受信した場合においても、適切に処理できるようになる。
【００９４】
次に、端子Ｅ以降の処理を図２８を用いて説明する。
【００９５】
まず、通信処理部２１０ｂは、子ノードから符号化データのみを受信したか判断する（ステップＳ１２３）。符号化データのみを受信した場合には、通信処理部２１０ｂは、符号化処理部２３０ｂに処理を指示し、符号化処理部２３０ｂは、自ノードのリンク及び受信符号化データに基づき符号化データを生成し、通信処理部２１０ｂに出力する（ステップＳ１２７）。この処理については、図１２のステップＳ３３と同様である。そして、通信処理部２１０ｂは、符号化データを、親ノードに送信する（ステップＳ１２９）。そして処理は端子Ｄを介して図２６の処理に戻る。なお、本実施の形態の手法では符号化データを生成できなかったノード及び配下のノードについては指定した上で別途処理することになるが、それ以外のノードで経路上のノードは第１の実施の形態の手法に従って生成された符号化データを受信した場合には、そのまま符号化データを親ノードに転送すればよい。
【００９６】
一方、符号化データのみの受信ではない場合には、通信処理部２１０ｂは、子ノードが存在せず且つ符号化データ送信タイミングであるという条件を満たしているか判断する（ステップＳ１３３）。この条件を満たしていない場合には、処理は端子Ｄを介して図２６の処理に戻る。
【００９７】
一方、この条件を満たしている場合には、すなわち、配下のノードで符号化できない部分があるが少なくとも子ノードからは符号化データが得られた場合、通信処理部２１０ｂは、親ノードとのリンクについての識別子が符号化テーブルに登録されていて符号化データを生成できるか判断する（ステップＳ１３５）。親ノードとのリンクについての識別子が符号化テーブルに登録されており符号化データを生成できる場合には、通信処理部２１０ｂは、符号化処理部２３０ｂに処理を指示し、符号化処理部２３０ｂは、自ノードのリンクに基づき符号化データを生成し、通信処理部２１０ｂに出力する（ステップＳ１３７）。最下流のノードとして処理を行うものである。そして、通信処理部２１０ｂは、符号化データを、親ノードに送信する。その後処理は端子Ｄを介して図２６の処理に戻る。
【００９８】
一方、親ノードとのリンクについて符号化データを生成できない場合には、通信処理部２１０ｂは、自ノードの識別子を含むエラー通知を親ノードに送信する（ステップＳ１３９）。
【００９９】
以上の処理を実行することで、通常どおり符号化データを生成するか、最下流のノードで既に符号化データを生成できない場合に対処できるようになる。
【０１００】
なお、上では説明を分かり易くするために、リンクの識別子については図２に示したノードＡのための符号化テーブルにおけるリンクの識別子と同様であるものとして説明した。しかしながら、テーブルに出現するノードの数が少なくなっているので、リンクの識別子のビット長も短くできる。
【０１０１】
模式的に示せば、図２９に示すように、リンクの識別子Ａ−Ｂは、短縮された識別子Ａ−Ｂbに変更され、リンクの識別子Ａ−Ｃは、短縮された識別子Ａ−Ｃbに変更される。他の符号化テーブルについても同様に変更される。このように識別子を短縮する場合には、そのためのハッシュ関数も用意しておく。
【０１０２】
［実施の形態３］
第２の実施の形態では、ゲートウェイＧＷが、自ら短縮型の符号化テーブルを生成する例を示したが、各ノードで自律的に短縮型の符号化テーブルを生成するようにしても良い。
【０１０３】
この場合のノードの構成例を図３０に示す。図３０に示すように、ノード２００ｃは、テーブル生成部２４０ｃを追加した構成となっているが、通信処理部２１０ｃについても処理内容が異なり、データ格納部２２０ｃについても格納するデータが異なる。
【０１０４】
なお、ゲートウェイＧＷの構成は第１の実施の形態と同様である。
【０１０５】
次に、本実施の形態における符号化テーブルの配布処理について図３１を用いて説明する。
【０１０６】
ゲートウェイＧＷは、第１の実施の形態のようにマスタの符号化テーブル（図２）を生成して、子ノードにこの符号化テーブルを送信する（図３１：ステップＳ２０１）。
【０１０７】
これに対して、各ノード２００ｃの通信処理部２１０ｃは、ゲートウェイＧＷ又は他のノード２００ｃから符号化テーブルを受信すると、データ格納部２２０ｃに格納する（ステップＳ２０５）。そして、通信処理部２１０ｃは、子ノードが存在するか否かを判断する（ステップＳ２０５）。子ノードが存在しない場合には、処理を終了する。
【０１０８】
一方、子ノードが存在する場合には、通信処理部２１０ｃは、テーブル生成部２４０ｃに指示して、テーブル生成部２４０ｃは、通信ログ等から配下のノードを特定する（ステップＳ２０７）。通信ログ等については、通信処理部２１０ｃが、他のデータ通信の記録（例えば上流向けの送信データの送信元ノード識別子）を例えばデータ格納部２２０ｃに格納しておく。
【０１０９】
そして、テーブル生成部２４０ｃは、自ノード及び特定されたノードについてのリンクの識別子を含む短縮型符号化テーブルを生成し、データ格納部２２０ｃに格納する（ステップＳ２０９）。上でも述べたように、受信した符号化テーブルに含まれるリンクの識別子をそのまま使用する場合もあれば、識別子も短縮する場合もある。
【０１１０】
そして、通信処理部２１０ｃは、生成された短縮型の符号化テーブルを、子ノードに送信する（ステップＳ２１１）。子ノードが複数あれば、各子ノードに送信する。
【０１１１】
そして処理は、子ノードにおいてステップＳ２０３から開始される。
【０１１２】
以上のような処理を行えば、おおよそ第２の実施の形態と同様の符号化テーブルが配布されるようになる。なお、各ノードにおいて、通信ログ等のデータに基づき符号化テーブルが生成されるので、その時の状況に応じた符号化テーブルを生成できるようになる。
【０１１３】
なお、符号化データを生成する場合には、第２の実施の形態と同様の処理を実行すればよい。
【０１１４】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限り、実行順番を入れ替えたり、複数のステップを並列実行させるようにしても良い。
【０１１５】
さらに、機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合がある。
【０１１６】
また、第２の実施の形態で述べたエラー通知の部分については、他の構成を採用するようにしても良い。エラー通知をゲートウェイＧＷ宛に集中させて、ゲートウェイＧＷにおいて、最もツリーの根元に近いノードを特定して、当該ノード以下のノードについて第１の実施の形態を実施するようにしても良い。
【０１１７】
なお、ゲートウェイＧＷ及び各ノードは、コンピュータ装置であって、図３２に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１８】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１１９】
本実施の形態に係る符号処理方法は、（Ａ）複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータ（例えば符号化テーブル）を受信し、（Ｂ）ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、（Ｃ）第２のデータを、親ノードに送信する処理を含む。
【０１２０】
ノード間のリンクの識別子についてのリンクデータを用いることで、管理装置から離れたノードについてもリンクのデータを取得することができ、ネットワークのトポロジ推定が可能となる。
【０１２１】
また、上記符号処理方法は、（Ｄ）自ノードが、ネットワークにおける最下位ノードであれば、リンクデータに含まれる、自ノードの親ノードとのリンクの識別子から、当該識別子を復元可能に符号化された第３のデータを生成し、（Ｅ）第３のデータを、親ノードに送信する処理をさらに含むようにしても良い。このように最下位ノード（最下流ともツリーの葉ノードとも呼ぶ）から上位ノードに向けて、リンクの通知を開始するものである。
【０１２２】
さらに、上で述べた符号処理方法は、リンクデータのうち、少なくともネットワークにおける子ノードに関連するリンクデータを当該子ノードに送信する処理をさらに含むようにしても良い。各ノードで同じリンクデータを用いるようにしても良いし、以下で述べるように関連する部分のみを抽出するようにしても良い。
【０１２３】
また、上で述べたリンクデータが、親ノードが共通するノードのグループ毎に生成されている場合には、上で述べたリンクデータを当該子ノードに送信する処理において、自ノードの親ノードに関連するリンクデータを抽出して、抽出されなかったリンクデータを、子ノードに送信するようにしても良い。親ノードに関連するリンクデータは、自ノードの子ノードでは用いられないためである。
【０１２４】
さらに、上で述べた符号処理方法は、リンクデータから、自ノードを介して通信を行う配下のノードについてのリンクデータを生成し、ネットワークにおける子ノードに送信する処理をさらに含むようにしても良い。管理装置でリンクデータを用意するのではなく、各ノードで、下位のノードで用いられるリンクデータを生成するようにしても良い。
【０１２５】
本実施の形態に係る生成方法は、（Ａ）ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、（Ｂ）ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、（Ｃ）親ノードが共通し且つネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、（Ｄ）抽出処理と生成処理とを、トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理とを含む。
【０１２６】
このようにすればネットワーク全体を流れるリンクデータの量を削減できるようになる。
【０１２７】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１２８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２９】
（付記１）
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、
前記第２のデータを、前記親ノードに送信する
処理を、前記自ノードであるコンピュータに実行させるためのプログラム。
【０１３０】
（付記２）
前記自ノードが、前記ネットワークにおける最下位ノードであれば、前記リンクデータに含まれる、前記自ノードの親ノードとのリンクの識別子から、当該識別子を復元可能に符号化された第３のデータを生成し、
前記第３のデータを、前記親ノードに送信する
処理をさらに前記コンピュータに実行させる付記１記載のプログラム。
【０１３１】
（付記３）
前記リンクデータのうち、少なくとも前記ネットワークにおける子ノードに関連するリンクデータを当該子ノードに送信する
処理をさらに前記コンピュータに実行させる付記１又は２記載のプログラム。
【０１３２】
（付記４）
前記リンクデータが、親ノードが共通するノードのグループ毎に生成されている場合には、前記リンクデータを当該子ノードに送信する処理において、前記自ノードの親ノードに関連するリンクデータを抽出して、抽出されなかったリンクデータを、前記子ノードに送信する
付記３記載のプログラム。
【０１３３】
（付記５）
前記リンクデータから、前記自ノードを介して通信を行う配下のノードについてのリンクデータを生成し、前記ネットワークにおける子ノードに送信する
処理をさらに前記コンピュータに実行させる付記１又は２記載のプログラム。
【０１３４】
（付記６）
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理と、
を、コンピュータに実行させるためのプログラム。
【０１３５】
（付記７）
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信し、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成し、
前記第２のデータを、前記親ノードに送信する
処理を含み、前記自ノードであるコンピュータにより実行される符号処理方法。
【０１３６】
（付記８）
複数のノードを含むネットワークにおける親ノードから、ノード間のリンクの識別子についてのリンクデータを受信する通信部と、
前記ネットワークにおける子ノードから、自ノードまでのリンクの識別子から生成され且つ当該自ノードまでのリンクの識別子を復元可能に符号化された第１のデータを受信すると、前記リンクデータに含まれる、当該自ノードの親ノードとのリンクの識別子をさらに復元可能に符号化された第２のデータを生成する生成部と、
を有し、
前記通信部は、前記第２のデータを、前記親ノードに送信する
情報処理装置。
【０１３７】
（付記９）
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する抽出処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理と、
を含み、コンピュータにより実行される生成方法。
【０１３８】
（付記１０）
ネットワークに含まれるノード間のリンクの識別子についてのリンクデータを生成する処理と、
前記ネットワークにおけるノードのトポロジデータから、親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノード及び当該ノードの配下のノードを抽出する処理と、
前記親ノードが共通し且つ前記ネットワークにおける最上位ノードからのホップ数が同じノードのためのリンクデータとして、抽出されたノード間のリンクの識別子についてのリンクデータを生成する生成処理と、
前記抽出処理と前記生成処理とを、前記トポロジデータの最下位ノードについてのリンクデータを生成するまで繰り返す処理とを実行する生成部と、
生成された前記リンクデータを、子ノードに送信する送信部と、
を有する情報処理装置。
【符号の説明】
【０１３９】
１０１  ノードデータ格納部
１０２  テーブル生成部
１０３  テーブル格納部
１０４  テーブル配信部
１０５  受信部
１０６  符号化データ格納部
１０７  復号処理部
１０８  トポロジデータ格納部
１０９  出力部
２１０  通信処理部
２２０  データ格納部
２３０  符号化処理部
２４０  テーブル生成部
【図１】
2015002496.tif 000003
【図２】
2015002496.tif 000004
【図３】
2015002496.tif 000005
【図４】
2015002496.tif 000006
【図５】
2015002496.tif 000007
【図６】
2015002496.tif 000008
【図７】
2015002496.tif 000009
【図８】
2015002496.tif 000010
【図９】
2015002496.tif 000011
【図１０】
2015002496.tif 000012
【図１１】
2015002496.tif 000013
【図１２】
2015002496.tif 000014
【図１３】
2015002496.tif 000015
【図１４】
2015002496.tif 000016
【図１５】
2015002496.tif 000017
【図１６】
2015002496.tif 000018
【図１７】
2015002496.tif 000019
【図１８】
2015002496.tif 000020
【図１９】
2015002496.tif 000021
【図２０】
2015002496.tif 000022
【図２１】
2015002496.tif 000023
【図２２】
2015002496.tif 000024
【図２３】
2015002496.tif 000025
【図２４】
2015002496.tif 000026
【図２５】
2015002496.tif 000027
【図２６】
2015002496.tif 000028
【図２７】
2015002496.tif 000029
【図２８】
2015002496.tif 000030
【図２９】
2015002496.tif 000031
【図３０】
2015002496.tif 000032
【図３１】
2015002496.tif 000033
【図３２】
2015002496.tif 000034