(57)【特許請求の範囲】
【請求項１】
相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において、
前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶するノード識別情報記憶手段と、
記憶されている各前記ノード識別情報を参照して前記授受に用いる参照手段と、
を備え、
前記ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされていることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記ノード識別情報記憶手段においては、前記樹形図における前記階層が下位になるに従って、当該階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が減少していることを特徴とするノード装置。
【請求項３】
請求項１又は２に記載のノード装置において、
前記参照手段は、一つの前記ノードグループに分類されている各前記ノード装置に夫々対応する前記ノード識別情報を、予め設定された参照順に従って順次参照して前記情報の授受に用いることを特徴とするノード装置。
【請求項４】
請求項３に記載のノード装置において、
各前記階層における前記記憶可能数は、前記参照順に指数関数的に減少していることを特徴とするノード装置。
【請求項５】
請求項３又は４に記載のノード装置において、
前記記憶可能数が、予め設定された単位時間当たりに前記ネットワークから前記ノード装置が脱退する数に対応して各階層毎に予め定められていることを特徴とするノード装置。
【請求項６】
請求項３から５のいずれか一項に記載のノード装置において、
前記参照手段は、一の前記ノードグループに分類されている前記ノード識別情報を参照した場合において当該参照したノード識別情報を前記授受に用いることが不能であるとき、前記参照順において前記一のノード識別情報の次に参照されるべき他の前記ノード識別情報を参照して前記授受に用いることを特徴とするノード装置。
【請求項７】
請求項３から６のいずれか一項に記載のノード装置において、
前記授受に用いることが不能である前記ノード識別情報である不能ノード識別情報があるとき、当該不能ノード識別情報を前記ノード識別情報記憶手段から削除する削除手段と、
一の前記ノードグループにおける前記参照順において前記不能ノード識別情報の直近下位の順位にあった前記ノード識別情報の当該順位を、削除された前記不能ノード識別情報に対応していた前記参照順における順位とする順位変更手段と、
を備えることを特徴とするノード装置。
【請求項８】
請求項３から７のいずれか一項に記載のノード装置において、
一の前記ノードグループにおける前記参照順内のいずれかの順位に対応すべき新たな前記ノード識別情報があるとき、当該新たなノード識別情報が対応すべき前記順位にそれまで対応していた前記ノード識別情報が対応する新たな前記順位を、前記新たなノード識別情報が対応すべき前記順位より下位の前記順位とする順位変更手段を備えることを特徴とするノード装置。
【請求項９】
請求項３から８のいずれか一項に記載のノード装置において、
前記参照順は、参照されるべき前記ノード識別情報により識別される前記ノード装置との間の前記授受の際に要する負荷が低い当該ノード識別情報ほど先に参照される参照順であることを特徴とするノード装置。
【請求項１０】
請求項３から８のいずれか一項に記載のノード装置において、
前記参照順は、各前記ノード識別情報により識別される前記ノード装置から前記ネットワークを介していずれかのメッセージを受信した順番に対応していることを特徴とするノード装置。
【請求項１１】
請求項３から８のいずれか一項に記載のノード装置において、
前記参照順は、前記授受される情報を識別する情報識別情報と、当該情報識別情報により識別される前記情報を蓄積している前記ノード装置の前記ネットワーク内の位置を示すアドレス情報と、の対により構成される対情報の記憶数に対応していることを特徴とするノード装置。
【請求項１２】
相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において実行される情報処理方法において、
前記ノード装置は、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶するノード識別情報記憶手段を備え、
当該ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされており、
記憶されている各前記ノード識別情報を参照して前記授受に用いる参照行程を含むことを特徴とする情報処理方法。
【請求項１３】
コンピュータを、請求項１から１１のいずれか一項に記載のノード装置として機能させることを特徴とするノード装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ノード装置、情報処理方法及びノード装置用プログラムの技術分野に属し、より詳細には、インターネット等のネットワークを介して映画等のコンテンツ（配信情報）を配信する配信システムに含まれるノード装置及び当該ノード装置において実行される情報処理方法並びに当該ノード装置における情報処理に供されるノード装置用プログラムの技術分野に属する。
【背景技術】
【０００２】
近年、インターネット等のネットワークを介して上記コンテンツを蓄積しているサーバ等に端末装置からアクセスし、その端末装置において視聴が所望されているコンテンツを当該端末装置に配信して視聴する、いわゆるコンテンツ配信についての研究開発が盛んである。
【０００３】
ここで、従来の上記コンテンツ配信を行う配信システムの基本的構成は、例えば下記特許文献１に例示されるように、コンテンツの配信を所望する端末装置から上記ネットワークを介してそのコンテンツを蓄積するサーバ等に接続し、その接続を確立した上で所望するコンテンツの配信、即ち当該コンテンツに相当するコンテンツデータの伝送をその端末装置において受ける構成となっている。
【０００４】
一方、近年では、上記コンテンツ配信を行う配信システムの他の構成として、いわゆるＰ２Ｐ（Peer to Peer）グリッド型の配信システム（以下、単に配信システムと称する）がある。ここで、当該配信システムとは、上記ネットワークを用いて上記コンテンツの配信を行う配信システムであって、当該ネットワークに属する端末装置間で、当該コンテンツに相当するコンテンツデータが相互に直接授受される（換言すれば、コンテンツを複数の端末装置間で共有する）配信システムであり、その配信システムに加入している全ての端末装置が、上記サーバとしての機能を有すると共に上記コンテンツの配信を受ける配信先装置としての機能をも備える配信システムである（なお、以下の説明では当該端末装置を単にノードと称する）。
【０００５】
そして、当該配信システムにおいては、あるノードにおいてコンテンツの配信を受けようとする場合、そのノードにおいては、配信を所望するコンテンツに相当するコンテンツデータを蓄積している他のノードを上記ネットワーク上において識別するためのノード識別情報と、そのコンテンツを他のコンテンツから識別するためのコンテンツ識別情報と、を対とした情報（以下、当該情報をインデックス情報と称する）を参照し、このインデックス情報内のノード識別情報により示されるノードから所望のコンテンツの配信を受ける必要がある。
【０００６】
そこで、一般の配信システムにおいては、例えば下記特許文献１に例示されるように、一又は複数のコンテンツに関する上記インデックス情報を、纏めて複数のノード内に夫々記憶（分散記憶）させ、これをそのコンテンツの配信を受けるノードから参照する構成とされている。より具体的には、例えば当該配信システムを構成するネットワークがインターネットである場合には、配信が所望されるコンテンツを特定できる検索情報（例えば映画のタイトル名）とそれを記憶しているノードのＩＰ（Internet Protocol）アドレスとの組を認識し、そのＩＰアドレスを手掛かりとして所望するコンテンツの授受を行う必要がある。
【０００７】
従って、上記配信システムの如き不特定多数のノードがコンテンツを共有し合うような配信システムにおいては、全てのコンテンツの検索情報とそれを記憶しているノードのＩＰアドレスとの組を各ノードが認識しておくことが必要となる。
【０００８】
しかしながら、ネットワークに接続されているノードの数が多くなった場合、各ノードにおける物理的な記録可能量の制限等が理由となって、全てのコンテンツの検索情報とそのコンテンツを記憶しているノードのＩＰアドレスを各ノードが夫々に記録しておくことは現実的ではない（例えば、ネットワークに百万台のノードが接続されている場合、その百万台分のＩＰアドレスを各ノードが互いに全て記録しておくことは全く現実的ではない）。
【０００９】
また、各ノードが全てのコンテンツの検索情報とそれを記憶するノードのＩＰアドレスを記録しておく場合、ネットワーク内の各ノードにおける電源スイッチのオン／オフが頻繁な場合（例えば当該ノードをパーソナルコンピュータにより実現する場合は頻繁に電源スイッチが操作され得ることになる）にも、各ノードに記録されたＩＰアドレス等の更新が頻繁になり、現実的にはネットワーク全体としての運用が困難となる。
【００１０】
そこで、上述したような問題点に対処すべく、必要最低限のノードのＩＰアドレスを含むインデックス情報のみを記録し、そのＩＰアドレスを認識していない他のノードに対しては、そのノードに配信すべきコンテンツやその配信のために必要なメッセージ等を、他のノードを介して転送して届けるという仕組みの配信システムが研究されており、その一つに、下記非特許文献２に示されているように、いわゆるＤＨＴ（Distributed Hash Table；分散ハッシュテーブル）を用いた配信システムがある。
【００１１】
次に、当該ＤＨＴを用いた配信システムについて、概要を説明する。
【００１２】
上記ＤＨＴを用いた配信システムでは、各ノードを相互に識別するためのノードＩＤ（Identification）を当該各ノードに付与する。このとき、当該ノードＩＤは、それらが参加している配信システム内において各ノード毎にユニークな、即ち他のノードとは異なる番号を付与する。この番号は、そのネットワークにおけるノードの最大運用台数を収容できるだけのビット数（ビット長）を有するものとなる。より具体的には、例えば１２８ビットのノードＩＤを用いれば、最大で、２１２８≒３４０×１０３６台のノードを一つのネットワーク内に接続することができる。そして、当該ノードＩＤとして一般的には、ノード自体に付与されているＩＰアドレスやいわゆるＭＡＣ（Media Access Control）アドレス、或いはノード自体の製造番号等の、当該ノード毎に固有の値に対してハッシュ関数を適用して得られる値を用いる。
【００１３】
また、上記ＤＨＴを用いた配信システムでは、その配信システムによって配信されるコンテンツ自体にも、それに対応する上記コンテンツ識別情報として、他のコンテンツとは異なるユニークなコンテンツＩＤを付与する。このコンテンツＩＤのビット長も上記ノードＩＤのビット長と同一とされる。そして、当該コンテンツＩＤとして一般的には、そのコンテンツのタイトルを示すタイトルデータ、コンテンツを構成するデータの属性を示す属性データ、コンテンツを構成するデータのうち先頭から数バイト分のデータ等に対してハッシュ関数を適用して得られる値を用いる。
【００１４】
次に、上述した如き「ＩＰアドレスを認識していない他のノードに対しては、そのノードに配信すべきコンテンツを他のノードを介して転送して届けるという仕組み」を実現するため、ＤＨＴを用いた配信システムにおいては、「ルーティングテーブル」なるものを用いる。
【００１５】
このルーティングテーブルについて詳細は後述するが、概括的には、当該ルーティングテーブルは、各ノード内に夫々記憶されているものであって、配信システム内の全てのノードを所定の条件（例えば各ノードを示すノードＩＤ夫々の値により設定される条件）に基づいて階層的に分類して得られるノードグループ毎に、転送可能なノードを示す上記ノードＩＤが記述されているものである。
【００１６】
そして、上記メッセージやコンテンツ等をある特定のノードに宛てて（或いは所望するコンテンツを示すコンテンツＩＤを付して）送信する場合、その送信元となるノードは、自己が記憶しているルーティングテーブル内に記述されているノードＩＤにより示されるあるノードに向けてそのメッセージ等を送信し、そのメッセージ等を受信した当該あるノードは、更に自己が記憶しているルーティングテーブル内に記述されているノードＩＤにより示される他のノードに向けてそのメッセージ等を転送する。このような転送処理が、上記階層状のノードグループ内で当該階層毎に繰り返されることで、最終的に当該メッセージ等が目的のノードに到達する仕組みとなっている。
【特許文献１】特開２００４−２６５２７３号公報
【非特許文献２】岡敏生、森川博之、青山友紀、「分散ハッシュテーブルの軽量な負荷分散手法の検討」、電子情報通信学会技術研究報告、（日本）、社団法人電子情報通信学会、２００４年２月５日、第１０３巻、第６５０号、p.７−１２
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述した従来のルーティングテーブルの構成によると、例えば、現在記述されているノードＩＤにより示されるノードが配信システムから脱落する等の理由により当該ノードＩＤが無効になった場合においては、その無効になったこと自体が、実際にそのノードＩＤ（無効になったノードＩＤ）により示されるノードに向けてメッセージ等を送信してみて初めて認識できるのであり、その場合には再度新たな（有効な）ノードを配信システム内において探索する等の処理が必要となり、結果として当該無効なノードＩＤが記述されていた場合においてはメッセージ等の転送効率が極端に悪くなると言う問題点があった。
【００１８】
そこで、本発明は上記の各問題点に鑑みて為されたもので、その目的の一例は、上記配信システムにおいて、メッセージ等を効率的且つ迅速に伝送することができるノード装置及び当該ノード装置において実行される情報処理方法並びに当該ノード装置における情報処理に供されるノード装置用プログラムを提供することにある。
【課題を解決するための手段】
【００１９】
上記の課題を解決するために、請求項１に記載の発明は、相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶する記憶部等のノード識別情報記憶手段と、記憶されている各前記ノード識別情報を参照して前記授受に用いる参照手段と、を備え、前記ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上されている。
【００２０】
よって、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００２１】
上記の課題を解決するために、請求項２に記載の発明は、請求項１に記載のノード装置において、前記ノード識別情報記憶手段においては、前記樹形図における前記階層が下位になるに従って、当該階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が減少しているように構成される。
【００２２】
よって、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
【００２３】
上記の課題を解決するために、請求項３に記載の発明は、請求項１又は２に記載のノード装置において、前記参照手段は、一つの前記ノードグループに分類されている各前記ノード装置に夫々対応する前記ノード識別情報を、予め設定された参照順に従って順次参照して前記情報の授受に用いるように構成される。
【００２４】
よって、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
【００２５】
上記の課題を解決するために、請求項４に記載の発明は、請求項３に記載のノード装置において、各前記階層における前記記憶可能数は、前記参照順に指数関数的に減少している。
【００２６】
よって、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
【００２７】
上記の課題を解決するために、請求項５に記載の発明は、請求項３又は４に記載のノード装置において、前記記憶可能数が、予め設定された単位時間当たりに前記ネットワークから前記ノード装置が脱退する数に対応して各階層毎に予め定められている。
【００２８】
よって、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
【００２９】
上記の課題を解決するために、請求項６に記載の発明は、請求項３から５のいずれか一項に記載のノード装置において、前記参照手段は、一の前記ノードグループに分類されている前記ノード識別情報を参照した場合において当該参照したノード識別情報を前記授受に用いることが不能であるとき、前記参照順において前記一のノード識別情報の次に参照されるべき他の前記ノード識別情報を参照して前記授受に用いるように構成されている。
【００３０】
よって、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
【００３１】
上記の課題を解決するために、請求項７に記載の発明は、請求項３から６のいずれか一項に記載のノード装置において、前記授受に用いることが不能である前記ノード識別情報である不能ノード識別情報があるとき、当該不能ノード識別情報を前記ノード識別情報記憶手段から削除する制御部等の削除手段と、一の前記ノードグループにおける前記参照順において前記不能ノード識別情報の直近下位の順位にあった前記ノード識別情報の当該順位を、削除された前記不能ノード識別情報に対応していた前記参照順における順位とする制御部等の順位変更手段と、を備える。
【００３２】
よって、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
【００３３】
上記の課題を解決するために、請求項８に記載の発明は、請求項３から７のいずれか一項に記載のノード装置において、一の前記ノードグループにおける前記参照順内のいずれかの順位に対応すべき新たな前記ノード識別情報があるとき、当該新たなノード識別情報が対応すべき前記順位にそれまで対応していた前記ノード識別情報が対応する新たな前記順位を、前記新たなノード識別情報が対応すべき前記順位より下位の前記順位とする制御部等の順位変更手段を備える。
【００３４】
よって、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
【００３５】
上記の課題を解決するために、請求項９に記載の発明は、請求項３から８のいずれか一項に記載のノード装置において、前記参照順は、参照されるべき前記ノード識別情報により識別される前記ノード装置との間の前記授受の際に要する負荷が低い当該ノード識別情報ほど先に参照される参照順であるように構成される。
【００３６】
よって、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
【００３７】
上記の課題を解決するために、請求項１０に記載の発明は、請求項３から８のいずれか一項に記載のノード装置において、前記参照順は、各前記ノード識別情報により識別される前記ノード装置から前記ネットワークを介していずれかのメッセージを受信した順番に対応している。
【００３８】
よって、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
【００３９】
上記の課題を解決するために、請求項１１に記載の発明は、請求項３から８のいずれか一項に記載のノード装置において、前記参照順は、前記授受される情報を識別する情報識別情報と、当該情報識別情報により識別される前記情報を蓄積している前記ノード装置の前記ネットワーク内の位置を示すアドレス情報と、の対により構成される対情報（インデックス情報）の記憶数に対応している。
【００４０】
よって、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
【００４１】
上記の課題を解決するために、請求項１２に記載の発明は、相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において実行される情報処理方法において、前記ノード装置は、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶する記憶部等のノード識別情報記憶手段を備え、当該ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされており、記憶されている各前記ノード識別情報を参照して前記授受に用いる参照行程を含むように構成されている。
【００４２】
よって、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００４３】
上記の課題を解決するために、請求項１３に記載の発明は、コンピュータを、請求項１から１１のいずれか一項に記載のノード装置として機能させる。
【００４４】
よって、当該コンピュータを請求項１に記載のノード装置として機能させる場合には、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００４５】
更に、当該コンピュータを請求項２に記載のノード装置として機能させる場合には、当該コンピュータを請求項１に記載のノード装置として機能させる場合に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
【００４６】
更にまた、当該コンピュータを請求項３に記載のノード装置として機能させる場合には、当該コンピュータを請求項１又は２に記載のノード装置として機能させる場合に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
【００４７】
また、当該コンピュータを請求項４に記載のノード装置として機能させる場合には、当該コンピュータを請求項３に記載のノード装置として機能させる場合に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
【００４８】
更に、当該コンピュータを請求項５に記載のノード装置として機能させる場合には、当該コンピュータを請求項３又は４に記載のノード装置として機能させる場合に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
【００４９】
また、当該コンピュータを請求項６に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から５のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
【００５０】
更に、当該コンピュータを請求項７に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から６のいずれか一項に記載のノード装置として機能させる場合に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
【００５１】
更にまた、当該コンピュータを請求項８に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から７のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
【００５２】
また、当該コンピュータを請求項９に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
【００５３】
更に、当該コンピュータを請求項１０に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
【００５４】
更にまた、当該コンピュータを請求項１１に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
【発明の効果】
【００５５】
請求項１に記載の発明によれば、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００５６】
請求項２に記載の発明によれば、請求項１に記載の発明の効果に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
【００５７】
請求項３に記載の発明によれば、請求項１又は２に記載の発明の効果に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
【００５８】
請求項４に記載の発明によれば、請求項３に記載の発明の効果に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
【００５９】
請求項５に記載の発明によれば、請求項３又は４に記載の発明の効果に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
【００６０】
請求項６に記載の発明によれば、請求項３から５のいずれか一項に記載の発明の効果に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
【００６１】
請求項７に記載の発明によれば、請求項３から６のいずれか一項に発明の効果に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
【００６２】
請求項８に記載の発明によれば、請求項３から７のいずれか一項に記載の発明の効果に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
【００６３】
請求項９に記載の発明によれば、請求項３から８のいずれか一項に記載の発明の効果に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
【００６４】
請求項１０に記載の発明によれば、請求項３から８のいずれか一項に記載の発明の効果に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
【００６５】
請求項１１に記載の発明によれば、請求項３から８のいずれか一項に記載の発明の効果に加えて一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
【００６６】
請求項１２に記載の発明によれば、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００６７】
請求項１３に記載の発明によれば、コンピュータを請求項１に記載のノード装置として機能させる場合には、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
【００６８】
更に、当該コンピュータを請求項２に記載のノード装置として機能させる場合には、当該コンピュータを請求項１に記載のノード装置として機能させる場合に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
【００６９】
更にまた、当該コンピュータを請求項３に記載のノード装置として機能させる場合には、当該コンピュータを請求項１又は２に記載のノード装置として機能させる場合に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
【００７０】
また、当該コンピュータを請求項４に記載のノード装置として機能させる場合には、当該コンピュータを請求項３に記載のノード装置として機能させる場合に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
【００７１】
更に、当該コンピュータを請求項５に記載のノード装置として機能させる場合には、当該コンピュータを請求項３又は４に記載のノード装置として機能させる場合に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
【００７２】
また、当該コンピュータを請求項６に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から５のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
【００７３】
更に、当該コンピュータを請求項７に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から６のいずれか一項に記載のノード装置として機能させる場合に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
【００７４】
更にまた、当該コンピュータを請求項８に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から７のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
【００７５】
また、当該コンピュータを請求項９に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
【００７６】
更に、当該コンピュータを請求項１０に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
【００７７】
更にまた、当該コンピュータを請求項１１に記載のノード装置として機能させる場合には、当該コンピュータを請求項３から８のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
【発明を実施するための最良の形態】
【００７８】
次に、本発明を実施するための最良の形態について、図面に基づいて説明する。なお、以下に説明する実施形態は、インターネット等のネットワークを用いて上記コンテンツの配信を行う上記配信システムに対して本発明を適用した場合の実施の形態である。
【００７９】
（Ｉ）配信システムの全体構成等
始めに、図１を参照して、実施形態に係る上記配信システム全体の概要構成等について説明する。なお、図１は、実施形態に係る配信システムにおける各ノードの接続態様の一例を示す図である。
【００８０】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の物理的なネットワーク）８が構築されているとする。なお、図１の例におけるネットワーク（通信ネットワーク）８には、メッセージ（パケット）を転送するためのルータが適宜挿入されているが、図１では、図示を省略している。
【００８１】
実施形態に係る配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノードＡ、Ｂ、Ｃ、…、Ｘ、Ｙ、Ｚ、…を備えて構成されるネットワークシステムとなっている。そして、各ノードＡ、Ｂ、Ｃ…Ｘ、Ｙ、Ｚ、…には、固有の製造番号及び宛先情報としての上記ＩＰアドレスが割り当てられている。このような製造番号及びＩＰアドレスは、複数のノード間で重複しないものである。
【００８２】
次に、実施形態に係るＤＨＴを利用したアルゴリズムについて説明する。
【００８３】
上述した配信システムＳにおいては、上記ＤＨＴを利用したアルゴリズムにより、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築される。すなわち、当該オーバーレイネットワーク９は、上記した既存の（物理的な）ネットワーク８を用いて形成された仮想的なリンクを構成するネットワークである。
【００８４】
そして、以下に説明する実施形態は、このＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置されたノードを、一般に、オーバーレイネットワーク９に「参加」しているノードという。なお、オーバーレイネットワーク９への参加は、未だ参加していないノードが、既に参加している任意のノードに対して参加要求メッセージを送信することによって行われる。
【００８５】
一方、各ノードは、上述したように固有のノード識別情報としてのノードＩＤ（上述したようにＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化して得た一定桁数からなるハッシュ値を有するノードＩＤ）を有しており、当該ノードＩでは一つのＩＤ空間（当該ＩＤ空間については、後ほど詳述する）に偏りなく分散して配置されることになる。そして、この共通のハッシュ関数により求められたノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００８６】
（II）ＤＨＴにおけるルーティングテーブルの一般的運用方法等
次に、上記ＤＨＴの具体的内容であるルーティングテーブルの作成手法並びにそれを用いたコンテンツの検索方法の一般例について、図２及び図３を用いて説明する。なお、図２は、当該ルーティングテーブルが作成される様子の一例を示す図であり、図３は、実際に作成されたルーティングテーブルの一例を示す図である。
【００８７】
（ア）ルーティングテーブルの作成手法
上述したように、各ノードに付与されたノードＩＤは、共通のハッシュ関数によって生成されたものであるため、図２（Ａ）乃至図２（Ｃ）に示す如く、同一のリング状の上記ＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。なお同図は、８ｂｉｔでノードＩＤを付与し、図示したものであり、図中黒点はノードＩＤを示し、反時計回りでＩＤが増加するものとする。
【００８８】
上記ルーティングテーブルの作成を考える場合、最初に、図２（Ａ）に示す如く、上記ＩＤ空間が所定の規則に従って幾つかのグループ（ノードグループ）としてのエリアに分割される（分けられる）。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８ｂｉｔの４進数で表すこととした。そして、あるノードＮのノードＩＤを「1023」とし、このノードＮのルーティングテーブルを作るものとする。
【００８９】
（Ａ）レベル１のルーティング
図２（Ａ）に例示するようにＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」、「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の整数、以下同様。）で分けられる。このとき、上記ノードＮは、当該ノードＮ自身のノードＩＤが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。
【００９０】
そして、当該ノードＮは、自身の存在するエリア（すなわち、「1XXX」のエリア）以外のエリアに存在する（換言すれば、レベル１において他のノードグループに属する）各ノードを代表のノードとして任意に選択し、当該選択されたノードＩＤのＩＰアドレス等（実際には、ポート番号等も含まれる、以下同様。）を、そのノードＮに記憶されるべきレベル１のルーティングテーブルにおける各欄（当該ルーティングテーブルを構成するマトリクスル状の各欄を、以下単にエントリと称する）に登録（記憶）させる。このとき、図３（Ａ）がレベル１のルーティングテーブルの一例である。なお、レベル１のルーティングテーブルにおける２列目のエントリは、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。
【００９１】
（Ｂ）レベル２のルーティング
次に、図２（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自身の存在するエリアを更に４分割し、４つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分ける（つまり、ノードＮ自身が属するノードグループを更に複数の小ノードグループに分ける）。
【００９２】
そして、レベル１の場合と同様に、自身が存在するエリア以外のエリア（図２（Ｂ）において更に分割されたエリア）に存在する各ノードを代表のノードとして任意に選択し、当該ノードＩＤのＩＰアドレス等をレベル２のルーティングテーブルにおける各エントリに登録する。このとき、図３（Ｂ）がレベル２のルーティングテーブルの一例である。なお、レベル２のルーティングテーブルにおける１列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。
【００９３】
（Ｃ）レベル３のルーティング
更に、図２（Ｃ）に示す如く、上記レベル２のルーティングによって４分割したエリアのうち、自身の存在するエリアを更に細かく４分割し、４つのエリア「100X」、「101X」、「102X」、「103X」に分ける（つまり、ノードＮ自身が属する小ノードグループを更に複数の小ノードグループに分ける）。
【００９４】
そして、上記レベル１又は２の場合と同様に、自身の存在するエリア以外のエリア（図２（Ｃ）において更に分割されたエリア）に存在する各ノードを代表のノードとして任意に選択し、当該ノードＩＤのＩＰアドレス等をレベル３のルーティングテーブルにおける各エントリに登録する。このとき、図３（Ｃ）がレベル３のルーティングテーブルの一例である。なお、レベル３のルーティングテーブルにおける３列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無く、２列目及び４列目の欄はそのエリアにノードが存在しない（すなわち、図２（Ｃ）において更に分割されたエリアのうちノードＮ自身が属しているエリアには、ノードＩＤが「1000」であるノード以外には他にノードが存在しない）ため、空白となる。
【００９５】
このようにして、最終的にレベル４まで同様にルーティングテーブルが図３（Ｄ）に示す如く作成されることにより、８ｂｉｔのＩＤ全てを網羅したルーティングテーブルが、ノードＮ内に記憶されるべきものとして完成することになる。このとき、図３に夫々示すように、出来上がったルーティングテーブルにおいては、レベルが上がる（例えばレベル２からレベル３に上がる）毎にルーティングテーブルの中に空白が目立つようになる。
【００９６】
以上説明した手法（規則）に従って作成したルーティングテーブルを、全てのノードが夫々作成して記憶することになる（係るルーティングテーブルの作成は、例えば、未参加のノードがオーバーレイネットワーク９に参加する際に行われるが、本発明とは直接の関係がないので詳しい説明を省略する）。
【００９７】
このように、各ノードは、他のノードの宛先情報としてのＩＰアドレス等と、各区分されたノードグループとしての、ノードＩＤ空間のエリア（すなわちＤＨＴの各レベル及び各列）と、を相互に対応付けて記憶している。
【００９８】
つまり、各ノードは、複数に分けられた各エリア（ノードグループ）に属する一のノードのＩＰアドレス等を、夫々のエリアに対応付けて一の段階（レベル）として規定し、更に自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノードのＩＰアドレス等を、夫々のエリアに対応付けて次の段階（レベル）として規定するルーティングテーブルを記憶している。
【００９９】
ここで、ノードＩＤの桁数に応じてレベルの数が決まり、進数の数に応じて図３（Ｄ）における各レベルの注目桁の数が決まる。より具体的には、例えば１６桁１６進数である場合には、６４ｂｉｔのノードＩＤとなり、レベル１６で注目桁の（英）数字は０〜Ｆとなる。また、後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」ともいう。
【０１００】
（イ）コンテンツデータの保存及び検索方法
次に、配信システムＳにおいて取得可能なコンテンツデータの保存及び上記ルーティングテーブルを用いた検索方法について説明する。
【０１０１】
オーバーレイネットワーク９においては、様々なコンテンツ（例えば、映画や音楽等）に相当するコンテンツデータが、複数のノードに分散して保存（格納）されている（言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている）。
【０１０２】
より具体的には、例えば、あるノードＡ及びノードＤには、タイトルが「ＸＸＸ」の映画のコンテンツデータが保存され、一方、他のノードＢ及びノードＣには、タイトルが「ＹＹＹ」の他の映画のコンテンツデータが保存されるというように、複数のノード（以下、「コンテンツホルダ」という）に分散されて保存される。そして、これらのコンテンツデータには、夫々、コンテンツ名（タイトル）及び上述したコンテンツＩＤ等の情報が付加されている。
【０１０３】
一方、このように分散保存されているコンテンツデータの所在、つまり、当該コンテンツデータを保存したノードのＩＰアドレス等と、当該コンテンツデータに対応するコンテンツＩＤ等と、の組が含まれるインデックス情報が、当該コンテンツデータの所在の管理元のノード（以下、当該ノードを、「ルートノード」、又は「コンテンツ（コンテンツＩＤ）のルートノード」と称する）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。すなわち、例えば、タイトルが「ＸＸＸ」の映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＭにより管理され、タイトルが「ＹＹＹ」の映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードにより管理される。
【０１０４】
つまり、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一のコンテンツデータ（コンテンツＩＤが同一）が、夫々、複数のコンテンツホルダに保存されている場合であっても、係るコンテンツデータのインデックス情報は、一つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードであるように定められる。
【０１０５】
このようにしてコンテンツデータを保存したノード（以下、当該ノードをコンテンツホルダと称する）は、当該コンテンツデータを保存したことをそのルートノードに知らせるために、そのコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等が含まれるパブリッシュ（登録通知）メッセージ（コンテンツデータを保存したので、ＩＰアドレス等の登録の要求を示す登録メッセージ）を生成し、当該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、当該コンテンツＩＤを手掛かりとする以下のＤＨＴルーティング処理によってルートノードに到着することになる。
【０１０６】
次に、当該ＤＨＴルーティング処理について具体的に図４を用いて説明する。なお、図４は、コンテンツホルダから送出されたパブリッシュメッセージの流れの一例をＤＨＴのノードＩＤ空間にて示した概念図である。
【０１０７】
図４の例において、例えば、コンテンツホルダであるノードＡは、自己のＤＨＴのレベル１のルーティングテーブルを参照して、パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えば図４に示すノードＨのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを送信する。
【０１０８】
これに対して、図４に示すノードＨは、当該パブリッシュメッセージを受信し、自己のＤＨＴのレベル２のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えば図４に示すノードＩのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【０１０９】
これに対して、図４に示すノードＩは、当該パブリッシュメッセージを受信し、自己のＤＨＴのレベル３のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えば図４に示すノードＭの転送先ノード情報に含まれるＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【０１１０】
これに対して、当該ノードＭは、当該パブリッシュメッセージを受信し、自身のＤＨＴのレベル４のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤが自身である、つまり、自身がそのコンテンツＩＤのルートノードであることを認識し、当該パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）することになる。
【０１１１】
なお、パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報は、コンテンツホルダからルートノードに至るまでの転送経路におけるノード（以下、「中継ノード」という。図４の例では、ノードＨ及びノードＩ）においても登録（キャッシュ）される（このように、インデックス情報をキャッシュする中継ノードをキャッシュノードという）。
【０１１２】
そして、あるノードの使用者が、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノード（以下、「リクエスタ」という）は、当該ユーザによりコンテンツカタログ情報から選択されたコンテンツデータのコンテンツＩＤを含むコンテンツ所在問合せ（検索）メッセージを、自己のＤＨＴのルーティングテーブルに従って他のノードに対して送出する。これにより、当該コンテンツ所在問合せメッセージは、上述したパブリッシュメッセージと同様に、コンテンツＩＤを手掛かりとするＤＨＴルーティングによって、いくつかの中継ノードを経由（転送）されて、そのコンテンツＩＤのルートノードに辿り着く。
【０１１３】
そして、上記リクエスタは、当該ルートノードから、上述したそのコンテンツデータのインデックス情報を取得（受信）し、当該ＩＰアドレス等に基づいて上記コンテンツデータを保存しているコンテンツホルダに接続し、そこから当該コンテンツデータを取得（ダウンロード）することが可能になる。
【０１１４】
なお、上記リクエスタは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード（キャッシュノード）から当該ＩＰアドレス等を取得（受信）することもできる。
【０１１５】
（III）第１実施形態
次に、上述した配信システムＳ内の各ノードＮに記憶されている本願のルーティングテーブルに係る第１実施形態について、当該ノードＮ自体の構成と共に図５乃至図１５を用いて説明する。
【０１１６】
なお、図５は第１実施形態に係るノードの概要構成を示すブロック図であり、図６及び図７は当該ノードに記憶されているルーティングテーブルの概要構成を示す模式図であり、図８乃至図１４は当該ルーティングテーブルに対する実施形態に係る処理を夫々示すフローチャートであり、図１５は当該ルーティングテーブルの更新処理を例示する図である。
【０１１７】
始めに、第１実施形態に係るノードの概要構成及び全体動作について、図５を用いて説明する。なお、以下の各実施形態においては、上記コンテンツホルダ、リクエスタ、ルートノード及びその他のノードＮは、基本的に全て同一のハードウエア構成を有するものであるので、それらを代表して一般のノードＮの構成について、図５を用いてその概要を説明する。
【０１１８】
図５に示すように、第１実施形態に係る配信システムＳに含まれているノードＮは、演算機能を有するＣＰＵ、作業用ＲＡＭ（Random Access Memory）、各種データ及びプログラムを記録するＲＯＭ（Read Only Memory）等から構成された参照手段、削除手段及び順位変更手段としての制御部１１と、上記コンテンツ自体としてのコンテンツデータ、上記ルーティングテーブル及びその他の必要なプログラム等を記録保存（格納）するＨＤＤ等から構成されたノード識別情報記憶手段としての記憶部１２と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコード（符号化）されたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ（Cathode Ray Tube）又は液晶ディスプレイ等よりなる表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ／Ａ（Digital/Analog）変換した後これを増幅器等により増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮとの間の情報の通信制御を行なうための通信部２０と、夫々の使用者からの指示を受け付け当該指示に応じた指示信号を制御部１１に出力する入力部（例えば、キーボード、マウス或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０はバス２２を介して相互にデータの授受が可能に接続されている。
【０１１９】
そして、制御部１１におけるＣＰＵが記憶部１２等に記録された各種プログラムを実行することにより、制御部１１が、リクエスタ、ルートノード、コンテンツホルダ又はそれら以外の一般のノードＮのいずれか一つとしての全体動作を統括制御する。
【０１２０】
次に、ノード一般（ルートノード、コンテンツホルダ及びリクエスタを含む）としての基本的な共通動作を含めて、第１実施形態に係るルーティングテーブルの構成及びそれに対する処理について夫々説明する。
【０１２１】
なお、以下の説明においては、ルーティングテーブルの規模は、レベルが１乃至４まで（すなわち、図３（Ｄ）で示したものと同様の８ｂｉｔ（４桁）対応のルーティングテーブル）で、一レベル当たりの分割数が四つであるルーティングテーブルであるものとする。
【０１２２】
図６に示すように、上記記憶部１２内に記憶されている第１実施形態に係るルーティングテーブルＲＴは、上記ＤＨＴルーティング処理に主として用いられるメインテーブルＭＲと、当該メインテーブルＭＲの代替として順次用いられるサブテーブルＲ１乃至Ｒ３と、により構成されている。
【０１２３】
この構成において、メインテーブルＭＲはレベル１乃至４までの四つのレベル分のエントリＥを合計１６個（四つのレベル×四つのエリア）含んでいる。また、サブテーブルＲ１は、レベル１及び２の二つのレベル分のエントリＥを合計８個（二つのレベル×四つのエリア）含んでおり、更にサブテーブルＲ２及びＲ３は、各々、レベル１のみのエントリＥを４個（一つのレベル×四つのエリア）夫々含んでいる。すなわち、ルーティングテーブルＲＴとしては、各テーブルにおけるレベル数を、メインテーブルＭＲからみて指数関数的に減少させている。
【０１２４】
そして、各エントリＥには、対応するレベルのルーティング先（転送先）のノードＮを示すノードＩＤ及びＩＰアドレス等に加えて、当該ルーティング先のノードまでメッセージ等が到達するまでに中継されるノードの数であるホップ数が、当該ルーティング先のノードまでのネットワーク上の距離（換言すれば、当該ルーティング先のノードまでメッセージ等を到達させる際の容易性）を示す情報として記述されている。なお、上述したように、一つのルーティングテーブル内では、レベルが上がるにつれて空白となるエントリＥが増大していくことになる。なお、当該ノードＩＤ、ＩＰアドレス等及びホップ数を、纏めて以下「ノード情報」と称する。
【０１２５】
なお、第１実施形態に係る記憶部１２においては、図６に示すメインテーブルＭＲ乃至サブテーブルＲ３を全て記憶可能な記憶領域が（各エントリＥ内に実際にノード情報が記憶されていると否とに拘わらず）、当該ルーティングテーブルＲＴ用の記憶領域として常に確保されている。
【０１２６】
このとき、当該ルーティングテーブルＲＴ用の記憶領域として具体的には、自信のノードＩＤと一致しているエントリＥにはノード情報を記述する必要がないので、そのための記憶領域を確保する必要はない。例えば、ルーティングテーブルＲＴにおいて、そのレベル１にエントリＥを四個記憶できる場合、
一つのレベル×｛（四つのエリア）−（自身のノードＩＤと一致しているエリア（１つ））｝＝１２
となるので、そのエントリＥにノード情報が記憶されているか否かに拘わらず、合計１２個エントリ分の記憶領域が確保されていればよい。すなわち図７に例示するように、自身のノードＩＤが例えば「１２０３」であった場合、１行（レベル１）２列に登録されるノード情報は存在しない。よって、レベル１として確保すべき記憶領域は、図７において右下ハッチングで表示されるエントリ３個分の記憶領域である。これと同様に、図７に例示する場合には、レベル２としてはエントリＥを２個所持できるので合計エントリ６個分の記憶領域があればよく、またレベル３としてはエントリＥを１個所持できるので合計エントリ３個の記憶領域があればよく、更にレベル４としてはエントリＥを１個所持できるので合計エントリ３個の記憶領域があればよい。
【０１２７】
次に、第１実施形態に係るルーティングテーブルＲＴを構成するメインテーブルＭＲ、サブテーブルＲ１乃至Ｒ３においては、各テーブル内の同一レベル且つ同一エリアに相当するエントリＥには、当該同一エリア（同一ノードグループ）に属する転送先となり得るノードのノード情報が、ホップ数の少ないノードから順にメインテーブルＭＲ、サブテーブルＲ１乃至Ｒ３に夫々一ノード分だけ記述されている。
【０１２８】
より具体的には、例えば図６に例示するメインテーブルＭＲのエントリＭＥ１に注目した場合、当該エントリＭＥ１内に記述されているノード情報により示されるノードと同じエリアに属する他の一つのノードを示すノード情報が、当該エントリＭＥ１と同一レベル同一エリアに相当するサブテーブルＲ１のエントリＲ１Ｅ１、サブテーブルＲ２のエントリＲ２Ｅ１及びサブテーブルＲ３のエントリＲ３Ｅ１内に夫々記述されている。
【０１２９】
そして、メインテーブルＭＲのエントリＭＥ１内に記述されているノードＩＤにより示されるノードまでのホップ数は、サブテーブルＲ１のエントリＲ１Ｅ１内に記述されているノードＩＤにより示されるノードまでのホップ数より少なく、当該エントリＲ１Ｅ１内に記述されているノードＩＤにより示されるノードまでのホップ数は、サブテーブルＲ２のエントリＲ２Ｅ１内に記述されているノードＩＤにより示されるノードまでのホップ数より少なく、更に当該エントリＲ２Ｅ１内に記述されているノードＩＤにより示されるノードまでのホップ数は、サブテーブルＲ３のエントリＲ３Ｅ１内に記述されているノードＩＤにより示されるノードまでのホップ数より少なくなっている。
【０１３０】
なお、図６に示すルーティングテーブルＲＴにおいて、エントリＭＥ１、Ｒ１Ｅ１、Ｒ２Ｅ１及びＲ３Ｅ１内に夫々記述されているノードＩＤにより示されるノードまでのホップ数を相互に等しく構成することも可能である。この場合は、他のノードからメッセージを受け取った時刻が最近のノードを示すノードＩＤがエントリＭＥ１内に記述されることになる。
【０１３１】
このような構成を備えるルーティングテーブルＲＴを用いてＤＨＴルーティング処理を実行する場合、例えばメインテーブルＭＲのエントリＭＥ１内に記述されているノードＩＤにより示されるノードが、例えば当該ノード自体が配信システムＳから脱退した等の理由により当該配信システムＳ内に存在しなくなったことが認識された場合、他のルーティング先のノードＮを新たに探索することなく、サブテーブルＲ１のエントリＲ１Ｅ１内に記述されているノード情報により示される（同じエリア内の）他のノードＮを新たなルーティング先に直ちに切り換えて必要なＤＨＴルーティング処理を継続する。
【０１３２】
そして、当該他のノードをルーティング先としたＤＨＴルーティング処理後においては、元々エントリＲ１Ｅ１に記述されていたノード情報をエントリＭＥ１内に書き換えると共に、元々エントリＲ２Ｅ１に記述されていたノード情報をエントリＲ１Ｅ１内に書き換え、更に元々エントリＲ３Ｅ１に記述されていたノード情報をエントリＲ２Ｅ１内に書き換えるルーティングテーブルＲＴの更新処理を行い、新たなＤＨＴルーティング処理に備える。
【０１３３】
更に、例えば現在エントリＭＥ１内に記述されているノードＩＤにより示されるノードよりもホップ数が少ない同一レベル同一エリア内の他のノードが発見された場合には、その新たに発見されたノードを示すノード情報を新たにエントリＭＥ１内に記述し、元々エントリＭＥ１に記述されていたノード情報をエントリＲ１Ｅ１内に書き換えると共に、元々エントリＲ１Ｅ１に記述されていたノード情報をエントリＲ２Ｅ１内に書き換え、更に元々エントリＲ２Ｅ１に記述されていたノード情報をエントリＲ３Ｅ１内に書き換えるルーティングテーブルＲＴの更新処理を行い、新たなＤＨＴルーティング処理に備える。
【０１３４】
なお、図６に示す場合において、メインテーブルＭＲがレベル４まで対応しているのに対し、サブテーブルＲ１はレベル２にまでしか対応しておらず、更にサブテーブルＲ２及びＲ３についてはレベル１にまでしか対応していない。これは、図３（Ｄ）に例示した如く、ルーティングテーブルＲＴに含まれるメインテーブルＭＲにおいて、その最下行に記述されるべきノード情報は１つしか存在しないためであり、従って、第１実施形態の場合では、サブテーブルＲ１乃至Ｒ３におけるレベル４に相当する行にノード情報が記述されることはあり得ないからである。
【０１３５】
また、第１実施形態に係るルーティングテーブルＲＴに含まれるテーブルの数自体（図６に示す場合は「４」）は、例えば実験的その他の手法により任意に決定し得るものであるが、より具体的には、例えば配信システムＳにおける統計的なノードの脱退率等を根拠として決定することが望ましい。
【０１３６】
次に、第１実施形態に係るルーティングテーブルＲＴに係る上記更新処理等について、具体的に図８乃至図１５を用いて説明する。なお、当該図８乃至図１５に夫々各フローチャートに対応する処理は各ノードＮ内の制御部１１が実行するものである。
【０１３７】
先ず、図８（ａ）を用いて第１実施形態に係るノードＮにおける一般的な処理について説明する。なお図８（ａ）は、当該一般的な処理を示すフローチャートである。
【０１３８】
図８（ａ）に示すように、第１実施形態に係るノードＮにおいては、配信システムＳに新たに参加するに当たり、自身が記憶しているルーティングテーブルＲＴ内の各エントリＥ内に記述されている全てのノードＩＤ等の情報を初期化し（ステップＳ１）、更に上記参加要求メッセージを送信して配信システムＳ内に参加する（ステップＳ２）。
【０１３９】
当該参加後は、自身の電源スイッチがオフとされたか否かを常に監視し（ステップＳ３）、オフとされたときは（ステップＳ３；ＹＥＳ）そのまま処理を終了し、一方、オフとされていないときは（ステップＳ３；ＮＯ）、次に、何らかのメッセージを他のノードＮから受信したか否かを確認する（ステップＳ４）。
【０１４０】
そして、何らかのメッセージを他のノードＮから受信したときは（ステップＳ４；ＹＥＳ）、その受信したメッセージを転送する転送先をメインテーブルＭＲ内において探索する等の後述するメッセージ転送処理を実行し（ステップＳ５）、更に当該メッセージ転送処理の結果を用いたルーティングテーブルＲＴへのノード情報の新たな登録処理を実行し（ステップＳ６）、上記ステップＳ３に戻って上述した処理を繰り返す。なお、上記ステップＳ５及びＳ６の処理については、後ほど詳述する。
【０１４１】
一方、ステップＳ４の判定において、何らメッセージを受信していないときは（ステップＳ４；ＮＯ）、当該ノードＮとして予め設定されている他の処理を実行し（ステップＳ７）、上記ステップＳ３に戻戻って上述した処理を繰り返す。
【０１４２】
次に、上記ステップＳ５としてのメッセージ転送処理について、具体的に図８（ｂ）を用いて説明する。なお、図８（ｂ）は当該メッセージ転送処理を示すフローチャートである。
【０１４３】
図８（ｂ）に示すように、当該メッセージ転送処理としては、何らかのメッセージを受信した場合（図８（ａ）ステップＳ４；ＹＥＳ参照）、先ず、自身が記憶しているメインテーブルＭＲ内において次の転送先となるエントリを探索する（ステップＳ１０）。
【０１４４】
そして、当該探索処理の過程において自身がルートノードであることが判明したか否かを確認し（ステップＳ１１）、自身がルートノードであるときは（ステップＳ１１；ＹＥＳ）、もはや転送先のノードＮは存在しないこととなるので、そのメッセージに対応する処理を実行して上記ステップＳ６の処理に移行する。
【０１４５】
一方、ステップＳ１１の判定において、自身がルートノードではなく、次に転送すべきノードＮが探索できたときは（ステップＳ１１；ＮＯ）、その探索結果を用いて当該受信したメッセージを転送し（ステップＳ１２）、その転送が成功したか否かを確認する（ステップＳ１３）。このステップＳ１３の処理として具体的には、例えば、転送先のノードＮからの返答メッセージの有無等により確認することができる。
【０１４６】
ステップＳ１３の確認において、当該転送が成功したときは（ステップＳ１３；ＹＥＳ）、そのまま上記ステップＳ６に移行し、一方、例えば転送先のノードＮが配信システムＳから脱退していた等の理由により当該転送が成功しなかった場合は（ステップＳ１３；ＮＯ）、現在のメインテーブルＭＲから当該転送が成功しなかった転送先のノードＮを示すノード情報を削除する処理を行い（ステップＳ１４）、上記ステップＳ１０に戻って再度上記削除処理（ステップＳ１４）後のメインテーブルＭＲ内において次の転送先のノードを探索する。
【０１４７】
ここで、後述するように、上記ステップＳ１４の削除処理においては、メッセージの転送が成功しなかったノードのノード情報をメインテーブルＭＲから削除した後、その削除されたノード情報が記述されていたメインテーブルＭＲのエントリＥに、当該エントリＥと同一レベル同一エリアに相当するサブテーブルＲ１のエントリＥに記述されていたノード情報を記述する処理を実行する。よって、上記ステップＳ１４及びＳ１０の処理が繰り返されることで、結果的に、図６に示すメインテーブルＭＲ→サブテーブルＲ１→サブテーブルＲ２→サブテーブルＲ３の順で、当該同一レベル同一エリアに相当するエントリＥが順次参照されてメッセージの転送処理に供されることとなる。
【０１４８】
次に、上記ステップＳ１４としてのメッセージ削除処理について、具体的に図９（ａ）を用いて説明する。なお、図９（ａ）は当該メッセージ削除処理を示すフローチャートである。
【０１４９】
図９（ａ）に示すように、当該メッセージ削除処理としては、先ず、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルＭＲのエントリＥが、当該エントリＥと同一レベル同一エリアに相当するサブテーブルＲ１のエントリＥを有するものであるか否かを確認する（ステップＳ３０）。
【０１５０】
なお、以下の説明では、同一レベル同一エリアに相当するエントリＥが少なくともサブテーブルＲ１に存在するメインテーブルＭＲのエントリＥを、「多重化されているエントリ」と称する。より具体的に図６を用いて説明すると、第１実施形態に係るメインテーブルＭＲにおいては、レベル１及び２が多重化されているエントリとなり、レベル３及び４は多重化されていないエントリとなる。
【０１５１】
そして、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルＭＲのエントリＥが多重化されたエントリであった場合は（ステップＳ３０；ＹＥＳ）、当該多重化されたメインテーブルＭＲのエントリＥからノード情報を削除する処理を実行し（ステップＳ３２）、上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１５２】
一方、ステップＳ３０の判定において、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルＭＲのエントリＥが多重化されていないエントリであった場合は（ステップＳ３０；ＮＯ）、当該多重化されていないメインテーブルＭＲのエントリＥからノード情報を削除する処理を実行し（ステップＳ３１）、上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１５３】
次に、上記ステップＳ３１の処理について、具体的に図９（ｂ）を用いて説明する。なお、図９（ｂ）は当該ステップＳ３１の削除処理を示すフローチャートである。
【０１５４】
図９（ｂ）に示すように、ステップＳ３１の削除処理としては、先ず、メッセージの転送が成功しなかったノードのノード情報と、当該ノード情報が記述されているはずのメインテーブルＭＲのエントリＥに実際に記述されているノード情報と、を比較し（ステップＳ６０）、両者が同一である場合は（ステップＳ６０；同一）、そのエントリＥに実際に記述されているノード情報を削除して（ステップＳ６１）上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１５５】
一方、ステップＳ６０の判定において、例えば転送成功の判定処理の際のエラー等に起因して両者が異なっているときは、同じノード情報を用いた転送処理を再度実行する必要があるとして（ステップＳ６０；相違）、当該エントリＥ内に実際に記述されているノード情報を削除することなく上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１５６】
次に、上記ステップＳ３２の処理について、具体的に図１０を用いて説明する。なお、図１０（ａ）は当該ステップＳ３２の削除処理を示すフローチャートであり、図１０（ｂ）は当該削除処理の状態を示す模式図である。
【０１５７】
図１０（ａ）に示すように、ステップＳ３２の削除処理としては、先ず、ルーティングテーブルＲＴにおける参照順の各テーブルの番号を示すパラメータｉを初期化する（ステップＳ６５）。このパラメータｉにつき、図６に示す場合には、メインテーブルＭＲがパラメータｉ＝「０」に相当し、サブテーブルＲ１がパラメータｉ＝「１」に相当し、更にサブテーブルＲ２がパラメータｉ＝「２」に相当することになる。
【０１５８】
パラメータｉが初期化されると、次に、現在の当該パラメータｉの値が、ルーティングテーブルＲＴにおける多重化数を示すパラメータＭＡＸ（図６に示す場合、その値は「３」である）未満であるか否かを確認する（ステップＳ６６）。そして、現在の当該パラメータｉの値がパラメータＭＡＸの値未満でないときは（ステップＳ６６；ＮＯ）、更に参照すべき下位のサブテーブルが存在しないことになるので、上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１５９】
一方、ステップＳ６６の判定において、現在の当該パラメータｉの値がパラメータＭＡＸの値未満であるときは（ステップＳ６６；ＹＥＳ）、次に、ノード情報を削除すべきエントリＥが現在のパラメータｉにより示されるテーブル内にあるエントリＥであるか否かを確認し（ステップＳ６７）、ノード情報を削除すべきエントリＥが現在のパラメータｉにより示されるテーブル内にあるエントリＥでないときは（ステップＳ６７；ＮＯ）、現在のパラメータｉの値を「１」だけインクリメントして（ステップＳ７２）上記ステップＳ６６の処理に戻る。
【０１６０】
ここで、メインテーブルＭＲのエントリＥを一律に削除せずに削除対象となるエントリＥを他のサブテーブルＲ１乃至Ｒ３を含めてループ処理で検索する理由は、メッセージの転送処理を行っている間に新たなエントリＥがメインテーブルＭＲに登録されることがあるため、メインテーブルＭＲのエントリＥが常に削除対象のエントリＥとなるは限らないからである。
【０１６１】
他方、ステップＳ６７の判定において、ノード情報を削除すべきエントリＥが現在のパラメータｉにより示されるテーブル内にあるエントリＥであるときは（ステップＳ６７；ＹＥＳ）、次に、一つ下位にあるテーブルにおける同一レベル同一エリアのエントリＥに記述されているノード情報を用いて、削除対象となっているノード情報（現在のパラメータｉの値により示されるテーブルのエントリＥ内に記述されている削除対象のノード情報）を書き換え（すなわち、テーブル間におけるノード情報の繰り上げ。ステップＳ６８）、現在のパラメータｉの値を「１」だけインクリメントする（ステップＳ６９）。
【０１６２】
そして、当該インクリメント後のパラメータｉの値がパラメータＭＡＸの値から「１」を減じた値になったか否かを確認し（ステップＳ７０）、当該値になっていないときは（ステップＳ７０；ＮＯ）、上記テーブル間におけるノード情報の繰り上げを下位のテーブルについて繰り返すべく上記ステップＳ６８の処理に戻り、一方、インクリメント後のパラメータｉの値がパラメータＭＡＸの値から「１」を減じた値になったときは（ステップＳ７０；ＹＥＳ）、そのときのパラメータｉ（＝ＭＡＸ―１）により示されるテーブルの該当するエントリＥ内のノード情報を消去して（ステップＳ７１）上記図８（ｂ）ステップＳ１０の処理に移行する。
【０１６３】
以上説明した図１０（ａ）に示す処理が実行されることで、結果として、図１０（ｂ）に図６に示す場合について例示し、更に図１５において符号「Ａ」乃至「Ｃ」を用いて例示するように、メインテーブルＭＲのエントリＭＥ１内に記述されていたノード情報が削除された場合、サブテーブルＲ１のエントリＲ１Ｅ１に記述されているノード情報が当該エントリＭＥ１内に記述されると共に、サブテーブルＲ２のエントリＲ２Ｅ１に記述されているノード情報がサブテーブルＲ１のエントリＲ１Ｅ１内に記述され、サブテーブルＲ３のエントリＲ３Ｅ１に記述されているノード情報がサブテーブルＲ２のエントリＲ２Ｅ１内に記述され、更にサブテーブルＲ３のエントリＲ３Ｅ１に記述されているノード情報が消去されて当該エントリＲ３Ｅ１が空の状態となる。
【０１６４】
次に、上記ステップＳ６としてのテーブルへの登録処理について、具体的に図１１を用いて説明する。なお、図１１は当該登録処理を示すフローチャートである。
【０１６５】
図１１に示すように、当該登録処理としては、先ず、図８（ａ）ステップＳ４の処理において受信したメッセージの送信元のノードを示すノード情報を取得し（ステップＳ２０）、その取得したノード情報に基づき、そのノード情報を記述すべきメインテーブルＭＲのエントリＥがいずれであるかを確認する（ステップＳ２１）。
【０１６６】
次に、当該確認されたエントリＥが多重化されたエントリであるか否かを確認し（ステップＳ２２）、多重化されているときは（ステップＳ２２；ＹＥＳ）、当該多重化されたメインテーブルＭＲのエントリＥに対する新たなノード情報の記述処理を実行し（ステップＳ２４）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１６７】
一方、ステップＳ２２の判定において、確認されたエントリＥが多重化されていないエントリであるときは（ステップＳ２２；ＮＯ）、当該多重化されていないメインテーブルＭＲのエントリＥに対する新たなノード情報の記述処理を実行し（ステップＳ２３）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１６８】
次に、上記ステップＳ２３の登録処理について、具体的に図１２（ａ）を用いて説明する。なお、図１２（ａ）は当該ステップＳ２３の登録処理を示すフローチャートである。
【０１６９】
図１２（ａ）に示すように、ステップＳ２３の登録処理としては、先ず、対象となっているメインテーブルＭＲのエントリＥが、ノード情報が記述されていない空の状態であるか否かを確認し（ステップＳ３５）、メインテーブルＭＲの当該エントリＥが空の状態であるときは（ステップＳ３５；ＹＥＳ）、そのまま当該エントリＥに新しいノード情報を記述して（ステップＳ３６）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１７０】
一方、ステップＳ３５の判定において、メインテーブルＭＲの当該エントリＥに既にノード情報が記述されているときは（ステップＳ３５；ＮＯ）、次に、その記述されているノード情報内のホップ数と、新たに記述しようとしているノード情報内のホップ数とを比較し（ステップＳ３７、Ｓ３８）、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より小さいか又は双方が等しいときは（ステップＳ３８；ＹＥＳ）、当該新たなノード情報を用いて既に記述されているノード情報を書き換え（ステップＳ３６）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１７１】
他方、ステップＳ３８の判定において、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より大きいときは（ステップＳ３８；ＮＯ）、当該記述済みのノード情報を継続して使用するものとしてそのまま上記図８（ａ）ステップＳ３の処理に移行する。
【０１７２】
次に、上記ステップＳ２４の登録処理について、具体的に図１２（ｂ）を用いて説明する。なお、図１２（ｂ）は当該ステップＳ２４の登録処理を示すフローチャートである。
【０１７３】
図１２（ｂ）に示すように、ステップＳ２４の登録処理としては、先ず、上記ステップＳ３５の処理と同様に、対象となっているメインテーブルＭＲのエントリＥが空の状態であるか否かを確認し（ステップＳ４０）、メインテーブルＭＲの当該エントリＥが空の状態であるときは（ステップＳ４０；ＹＥＳ）、そのまま当該エントリＥに新しいノード情報を記述して（ステップＳ４１）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１７４】
一方、ステップＳ４０の判定において、メインテーブルＭＲの当該エントリＥに既にノード情報が記述されているときは（ステップＳ４０；ＮＯ）、次に、新たに記述しようとしているノード情報を記述すべきテーブルを取得する登録位置取得を実行して当該ノード情報を記述し（ステップＳ４２）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１７５】
次に、上記ステップＳ４２の取得処理について、具体的に図１３を用いて説明する。なお、図１３は当該ステップＳ４２の取得処理を示すフローチャートである。
【０１７６】
図１３に示すように、ステップＳ４２の取得処理としては、先ず、上記パラメータｉを初期化し（ステップＳ４５）、その後、現在の当該パラメータｉの値が上記パラメータＭＡＸ未満であるか否かを確認する（ステップＳ４６）。そして、現在の当該パラメータｉの値がパラメータＭＡＸの値未満でないときは（ステップＳ４６；ＮＯ）、更に参照すべき下位のサブテーブルが存在しないことになるので、そのまま上記図８（ａ）ステップＳ３の処理に移行する。
【０１７７】
一方、ステップＳ４６の判定において、現在の当該パラメータｉの値がパラメータＭＡＸの値未満であるときは（ステップＳ４６；ＹＥＳ）、次に、現在のパラメータｉにより示されるテーブル内にあるエントリＥであって新たなノード情報が登録されるべきレベル及びエリアにあるエントリＥが、現在何らノード情報が記述されていない空の状態であるか否かを確認する（ステップＳ４７）。
【０１７８】
そして、当該エントリＥが空の状態であるときは（ステップＳ４７；ＹＥＳ）、そのパラメータｉにより示されるテーブル内にある当該エントリＥ内に当該新たなノード情報を記述し（ステップＳ５１）、上記図８（ａ）ステップＳ３の処理に移行する。
【０１７９】
他方、ステップＳ４７の判定において、当該エントリＥが空の状態でないときは（ステップＳ４７；ＮＯ）、次に、その記述されているノード情報内のホップ数と、新たに記述しようとしているノード情報内のホップ数とを比較し（ステップＳ４８、Ｓ４９）、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より小さいか又は双方が等しいときは（ステップＳ４９；ＹＥＳ）、当該新たなノード情報を記述するテーブル内のエントリＥを取得する後述の取得処理を実行し（ステップＳ５０）、その取得したエントリＥ内に当該新たなノード情報を記述して（ステップＳ５１）上記図８（ａ）ステップＳ３の処理に移行する。
【０１８０】
また、ステップＳ４９の判定において、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より大きいときは（ステップＳ４９；ＮＯ）、現在のパラメータｉの値を「１」だけインクリメントして（ステップＳ５２）上記ステップＳ４６の処理に戻る。
【０１８１】
次に、上記ステップＳ５０の取得処理について、具体的に図１４を用いて説明する。なお、図１４（ａ）は当該ステップＳ５０の取得処理を示すフローチャートであり、図１４（ｂ）は当該取得処理の状態を示す模式図である。
【０１８２】
図１４（ａ）に示すように、ステップＳ５０の取得処理としては、先ず、上記パラメータｉと同様にルーティングテーブルＲＴにおける参照順の各テーブルの番号を示すパラメータｊを（パラメータＭＡＸ−１）の値に設定し（ステップＳ５５）、次に、現在のパラメータｉの値と現在のパラメータｊの値を比較する（ステップＳ５６）。
【０１８３】
そして、現在のパラメータｉの値が現在のパラメータｊの値より小さいときは（ステップＳ５６；ＹＥＳ）、現在のパラメータｊの値により示されるテーブルの一つ上位にあるテーブル（ｊ−１番目のテーブル）における同一レベル同一エリアのエントリＥに記述されているノード情報を用いて、当該現在のパラメータｊの値により示されるテーブルにおける同一レベル同一エリアのエントリＥの内容を書き換え（すなわち、テーブル間におけるノード情報の繰り下げ。ステップＳ５７）、現在のパラメータｊの値を「１」だけデクリメントして（ステップＳ５８）上記ステップＳ５６の処理に戻る。
【０１８４】
一方、ステップＳ５６の判定において、現在のパラメータｉの値が現在のパラメータｊの値より小さくないときは（ステップＳ５６；ＮＯ）、そのまま上記図１３ステップＳ５１の処理に移行する。
【０１８５】
以上説明した図１３及び図１４（ａ）に示す処理が実行されることで、結果として、図１４（ｂ）に図６に示す場合について例示し、更に図１５において「○数字１」矢印及び「○数字２」矢印を用いて例示するように、サブテーブルＲ１のエントリＲ１Ｅ１内に記述されていたノード情報を新たなノード情報で書き換える場合、サブテーブルＲ１の当該エントリＲ１Ｅ１にそれまで記述されていたノード情報がサブテーブルＲ２のエントリＲ２Ｅ１に移され（当該エントリＲ２Ｅ１の既存のノード情報が書き換えられ）、更にサブテーブルＲ２の当該エントリＲ２Ｅ１にそれまで記述されていたノード情報がサブテーブルＲ３のエントリＲ３Ｅ１に移され（当該エントリＲ３Ｅ１の既存のノード情報が書き換えられる）、上記空いたエントリＲ１Ｅ１内に当該新たなノード情報が記述されることとなる。
【０１８６】
以上夫々説明したように、第１実施形態に係るルーティングテーブルＲＴに係る処理によれば、ルーティングテーブルＲＴ内に複数のテーブルを記憶し、当該各テーブル内のマトリクスにおける同一位置に夫々配置されているノード情報を、参照順に従って順次参照してメッセージ等の転送処理に用いるので、代替として当該転送処理に供することが可能なノード情報を予め複数記憶しておくことで、例えば既存の転送先であるノードＮが配信システムＳから脱落する等の事態が発生した場合でも、迅速に代替となるノード情報を発見して当該転送処理を効率的且つ迅速に実行することができる。
【０１８７】
従って、当該転送処理を効率的且つ迅速に伝送することができると共に、ノードＮの配信システムＳからの脱落等の事態に対しても柔軟にルーティングテーブルＲＴを変更することで、配信システムＳとしての対故障性を向上させつつ伝送効率の向上に資することができる。
【０１８８】
また、当該各テーブルにおける各行が、ノードＮが属する配信システムＳ上のノードグループにおける各階層に各々対応付けられており、更に二番目以降に参照されるべきサブテーブルＲ１又はＲ２の行数が最初に参照されるべきメインテーブルＭＲの行数よりも少ないので、記憶部１２としての記憶量を節約しつつ各ノードグループの態様に合わせて効率的にノード情報を参照することができる。
【０１８９】
更に、当該各テーブルにおける各行が、最上位の当該行から順に、ノードグループの最上位階層から各階層に順に対応付けられているので、配信システムＳ内のノードグループにおける階層構造に対応して効率的に代替となるノード情報を取得することができる。
【０１９０】
更にまた、当該各テーブルにおいては、参照順が下位になるのに従い、各テーブルにおける下位の行から順に少なくなっているので、代替となるノード情報の効率的な取得と記憶部１２としての記憶量の節約とを両立させることができる。
【０１９１】
また、ルーティングテーブルＲＴを構成する各テーブルにおいて、参照順に指数関数的に行数が減少するように当該各テーブルを構成することで、配信システムＳに参加しているノード装置の増減数の実情に応じて必要最小限の構成を備えるルーティングテーブルＲＴを実現することができる。
【０１９２】
更に、ルーティングテーブルＲＴ内に記憶されているテーブルの数が、配信システムＳからのノードＮの脱退数に応じて定められているので、一つのノードＮ内のテーブルの数を必要最小限として記憶部１２の記憶容量を節約することができる。
【０１９３】
更にまた、メインテーブルＭＲのノード情報を参照した場合において当該参照したノード情報を転送処理に用いることが不能であるとき、参照順においてサブテーブルＲ１内のマトリクスにおいて当該使用不能だったノード情報と同一位置に配置されている他のノード情報を参照して転送処理に用いるので、次に参照すべきノード情報を迅速に発見して情報の授受に供させることができる。
【０１９４】
また、転送処理に用いることができないノード情報があった場合に、これをメインテーブルＭＲから削除すると共に、参照順においてその下位にあったノード情報を繰り上げてメインテーブルＭＲを補填するので、転送処理に用いることができないノード情報があったとしてもこれを迅速に補填することで効率的な転送処理を維持することができる。
【０１９５】
更に、新たにいずれかのテーブルに配置すべきノード情報があるとき、そのノード情報を対応する参照順のテーブルに配置すると共に、当該新たな配置位置にあったノード情報を参照順において後にある他のテーブルの対応する位置に再配置するので、新たなノード情報を配置して更に効率的に情報の授受を行うことができると共に、それまで配置されていたノード情報を再配置して活用することもできる。
【０１９６】
（IV）第２実施形態
次に、本発明に係るルーティングテーブルの他の実施形態である第２実施形態について、図１６を用いて説明する。なお、図１６は第２実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図である。
【０１９７】
また、第２実施形態に係るルーティングテーブルにおいて、第１実施形態に係るルーティングテーブルＲＴと同様の構成部材については、同様の部材番号を付して細部の説明は省略する。
【０１９８】
上述した第１実施形態においては、メインテーブルＭＲ以外のサブテーブルＲ１乃至Ｒ３のレベル数（当該サブテーブル自体の行数）については、当該サブテーブルＲ１からＲ３に向けて指数関数的に減少させる構成としたが、以下に説明する第２実施形態の如く、これらサブテーブル間で同一のレベル数としてもよい。
【０１９９】
すなわち、図１６に示すように、第２実施形態に係るルーティングテーブルＲＲＴを、記憶部１２におけるルーティングテーブルＲＴ用として確保可能な記憶容量が多いことを前提として、メインテーブルＭＲの他に、当該メインテーブルＭＲに対して第１実施形態に係るサブテーブルＲ１乃至Ｒ３と同様の関係を有するサブテーブルＲＲ１乃至ＲＲ３により構成するとき、メインテーブルＭＲにおけるレベル数を「４」とするとき、サブテーブルＲＲ１乃至ＲＲ３におけるレベル数を全て「３」としてもよい。この場合、レベル１乃至３が多重化されているエントリとなり、レベル４が多重化されていないエントリとなる。
【０２００】
なお、図１６に示す場合において、メインテーブルＭＲがレベル４まで対応しているのに対し、サブテーブルＲＲ１乃至ＲＲ３はレベル３にまでしか対応していないが、これは、上記図３（Ｄ）に例示した如く、ルーティングテーブルＲＲＴに含まれる各テーブルにおいて、最下行には、各エントリＭＥ１に記述されるべきノード情報は１つしか存在しないためであり、従って、第２実施形態の場合では、サブテーブルＲＲ１乃至ＲＲ３におけるレベル４に相当する行にノード情報が記述されることはあり得ないからである。
【０２０１】
（Ｖ）第１実施形態又は第２実施形態の変形形態
次に、上述してきた第１実施形態又は第２実施形態に係る変形形態について説明する。
【０２０２】
上述した各実施形態においては、ルーティングテーブルＲＴ又ＲＲＴを構成する各テーブルの参照順を、転送先となるノードまでのホップ数を用いてその少ない順に規定したが、これ以外に、例えば、
（ｉ）メッセージ等の授受の際に要する負荷に応じて定める方法、
（ii）ノード情報により識別されるノードＮからいずれかのメッセージを受信した順に対応して定める方法、
（iii）上記インデックス情報を記憶している数に基づき、当該記憶数が多いほど先に参照するように定める方法、
が可能である。
【０２０３】
これらの場合については、上記（ｉ）の場合には配信システムＳ内の転送処理をより効率的且つ迅速に行うことができると言う効果を奏し、上記（ii）の場合には各テーブルの構成変更を最小限に抑制できることで、配信システムＳにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができると言う効果を奏し、更に上記（iii）の場合には転送処理に関わる可能性があるノードＮを示すインデックス情報の数に対応した順でテーブルが参照されるので、より迅速に必要な情報の授受を開始することができると言う効果を奏することができる。
【０２０４】
（VI）第３実施形態
本発明に係る他の実施形態である第３実施形態について、図１７及び図１８を用いて説明する。なお、図１７は第３実施形態に係るテーブルへの登録処理を示すフローチャートであり、図１８は第３実施形態に係る転送先ノードの探索処理を示すフローチャートである。そして、当該各フローチャートにおいて、上述した第１実施形態に係る処理と同様の処理については、同様のステップ番号を付して細部の説明は省略する。
【０２０５】
また、第３実施形態に係る各ノードの構成は、基本的に上記第１又は第２実施形態に係るノードＮの構成と同様であるので、当該第１又は第２実施形態に係るノードＮと同様の構成部材については、同様の部材番号を用いて細部の説明は省略する。
【０２０６】
更に、以下の第３実施形態に係るルーティングテーブルの構成としては、例えば図６を用いて説明した第１実施形態に係るルーティングテーブルＲＴの構成と同様としてもよいし、或いは図１６を用いて説明した第２実施形態に係るルーティングテーブルＲＲＴの構成と同様としてもよいが、当該第３実施形態に係るルーティングテーブルにおいては、上記ルーティングテーブルＲＴ又はＲＲＴとは異なり、各テーブル内に参照順は設けられていない。
【０２０７】
次に、第３実施形態に係るルーティングテーブルに係る上記更新処理等について、具体的に図１７及び図１８を用いて説明する。なお、当該図１７及び図１８に夫々各フローチャートに対応する処理は各ノードＮ内の制御部１１が実行するものである。
【０２０８】
先ず、第３実施形態に係るノードＮにおける一般的な処理については、上記図８（ａ）を用いて説明した処理と同様であるので、細部の説明は省略する。
【０２０９】
次に、上記ステップＳ６としての第３実施形態に係るテーブルへの登録処理について、具体的に図１７を用いて説明する。なお、図１７は当該登録処理を示すフローチャートである。
【０２１０】
図１７に示すように、当該登録処理としては、先ず、図８（ａ）ステップＳ４の処理において受信したメッセージの送信元のノードを示すノード情報を取得し（ステップＳ２０）、その取得したノード情報に基づき、そのノード情報を記述すべきメインテーブルＭＲのエントリＥがいずれであるかを確認する（ステップＳ２１）。
【０２１１】
次に、当該確認されたエントリＥが多重化されたエントリであるか否かを確認し（ステップＳ２２）、多重化されているときは（ステップＳ２２；ＹＥＳ）、第３実施形態に係るルーティングテーブルに含まれているいずれかのテーブル内に空いている（すなわち、ノード情報が記述されていない）エントリＥが存在しているか否かを確認する（ステップＳ９２）。そして、当該空いているエントリＥが存在していないときは（ステップＳ９２；ＮＯ）、現在記憶されているテーブルの中からいずれかのエントリＥを例えばランダムに選択してそれに記述されているノード情報を削除し（ステップＳ９３）、そのノード情報が削除されたエントリＥが含まれているテーブルを選び（ステップＳ９５）、その選んだテーブルに含まれている（ノード情報が削除された）エントリＥに対して新たなノード情報の記述処理を実行し（ステップＳ９１）、上記図８（ａ）ステップＳ３の処理に移行する。
【０２１２】
一方、上記ステップＳ９２の判定において、空いているエントリＥが存在しているときは（ステップＳ９２；ＹＥＳ）、その空いているエントリＥが１個か否かを次に確認する（ステップＳ９４）。
【０２１３】
そして、当該空いているエントリＥが１個であるときは（ステップＳ９４；ＹＥＳ）、上記ステップＳ９５に移行して更にステップＳ９１の処理を実行し、一方、当該空いているエントリＥが複数個あるときは（ステップＳ９４；ＮＯ）、当該空いているエントリＥを含んでいるテーブルを例えばランダムに選択し（ステップＳ９６）、その選択したテーブルに含まれている空きエントリＥに対して新たなノード情報の記述処理を実行し（ステップＳ９１）、上記図８（ａ）ステップＳ３の処理に移行する。
【０２１４】
一方、ステップＳ２２にて、多重化されているときは（ステップＳ２２；ＮＯ）、現在エントリＥに記述されているノード情報を削除（ステップＳ９０）し、エントリＥに対して新たなノード情報の記述処理を実行して（ステップＳ９１）、上記図８（ａ）ステップＳ３の処理に移行する。
【０２１５】
次に、上記ステップＳ５としての第３実施形態に係るメッセージ転送処理について、具体的に図１８を用いて説明する。なお、図１８は当該メッセージ転送処理を示すフローチャートである。
【０２１６】
図１８に示すように、当該メッセージ転送処理としては、何らかのメッセージを受信した場合（図８（ａ）ステップＳ４；ＹＥＳ参照）、先ず、第１又は第２実施形態の場合と同様に、自身が記憶しているメインテーブルＭＲ内において次の転送先となるエントリを探索する（ステップＳ１０）。
【０２１７】
そして、当該探索処理の過程において自身がルートノードであることが判明したか否かを確認し（ステップＳ１１）、自身がルートノードであるときは（ステップＳ１１；ＹＥＳ）、もはや転送先のノードＮは存在しないこととなるので、そのメッセージに対応する処理を実行して上記ステップＳ６の処理に移行する。
【０２１８】
一方、ステップＳ１１の判定において、自身がルートノードではないときは（ステップＳ１１；ＮＯ）、次に、当該探索処理の過程において指定されたノードＩＤに相当する転送先が属するエントリＥが多重化されているか否かを確認し（ステップＳ７０）、多重化されていない場合は（ステップＳ７０；ＮＯ）、当該転送先が属するエントリＥが空いているか否かを確認する（ステップＳ７１）。そして、当該転送先が属するエントリＥが空いている（ノード情報が記述されていない）ときは（ステップＳ７１；ＹＥＳ）、次の転送先を探索すべく上記ステップＳ１０に戻る。
【０２１９】
他方、上記ステップＳ７１の判定において、当該エントリＥが空ではなくノード情報が記述されているときは（ステップＳ７１；ＮＯ）、そのエントリＥを探索結果として選択し（ステップＳ７５）、その探索結果を用いて当該受信したメッセージを転送し（ステップＳ１２）、その転送が成功したか否かを確認する（ステップＳ１３）。
【０２２０】
ステップＳ１３の確認において、当該転送が成功したときは（ステップＳ１３；ＹＥＳ）、そのまま上記図８（ａ）ステップＳ６に移行し、一方、例えば転送先のノードＮが配信システムＳから脱退していた等の理由により当該転送が成功しなかった場合は（ステップＳ１３；ＮＯ）、その転送が成功しなかった転送先のノードＮを示すノード情報をルーティングテーブルから削除する処理を行い（ステップＳ７６）、上記ステップＳ１０に戻って当該削除処理（ステップＳ７６）後のルーティングテーブル内において次の転送先のノードを再度探索する。
【０２２１】
一方、上記ステップＳ７０の確認において、指定されたノードＩＤに相当する転送先が属するエントリＥが多重化されている場合は（ステップＳ７０；ＹＥＳ）、次に当該多重化されているエントリＥのいずれかにノード情報が記述されているか否かを確認する（ステップＳ７２）。そして、当該いずれのエントリＥ内にもノード情報が記述されていないときは（ステップＳ７２；ＮＯ）、再度上記ステップＳ１０に戻って次の転送先のノードを探索する。
【０２２２】
他方、ステップＳ７２の確認において、いずれかのエントリＥ内にノード情報が記述されているときは（ステップＳ７２；ＹＥＳ）、そのノード情報が記述されているエントリＥの数が「１」であるか否かを確認し（ステップＳ７３）、当該数が「１」であるときは（ステップＳ７３；ＹＥＳ）、その空のエントリＥを選択して（ステップＳ７５）、上記ステップＳ１２以降の処理に移行する。
【０２２３】
また、ステップＳ７３の確認において、当該数が「１」でなく「２」以上であるときは（ステップＳ７３；ＮＯ）、その複数ある空のエントリＥの中から一つを例えばランダムに選択し（ステップＳ７４）、上記ステップＳ１２以降の処理に移行する。
【０２２４】
以上夫々説明したように、第３実施形態に係るルーティングテーブルに係る処理によれば、参照順が予め設定されていないルーティングテーブルを用いることで、上記第１実施形態又は第２実施形態と同様の効果を簡易な処理で実現することができる。
【０２２５】
なお、上述した図８乃至図１４並びに図１７及び図１８に夫々示すフローチャートに対応するプログラムを、フレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、又はインターネット等を介して取得して記録しておき、これらを汎用のコンピュータで読み出して実行することにより、当該コンピュータを実施形態に係るノードＮ内の制御部１１として夫々機能させることも可能である。
【産業上の利用可能性】
【０２２６】
以上夫々説明したように、本発明はネットワークを介したコンテンツの配信の分野に利用することが可能であり、特にダウンロード形式によるコンテンツの配信の分野に適用すれば特に顕著な効果が得られる。
【図面の簡単な説明】
【０２２７】
【図１】実施形態に係る配信システムにおける各ノードの接続態様の一例を示す図である。
【図２】実施形態に係る配信システムにおけるルーティングテーブルが作成される様子の一例を示す図であり、（Ａ）はその第一例を示す図であり、（Ｂ）はその第二例を示す図であり、（Ｃ）はその第三例を示す図である。
【図３】実施形態に係る配信システムにおいて実際に作成されたルーティングテーブルの一例を示す図であり、（Ａ）はその第一例を示す図であり、（Ｂ）はその第二例を示す図であり、（Ｃ）はその第三例を示す図であり、（Ｄ）はその第四例を示す図である。
【図４】実施形態に係る配信システムにおけるパブリッシュメッセージの流れの一例を示す概念図である。
【図５】第１実施形態に係るノードの概要構成を示すブロック図である。
【図６】第１実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図（Ｉ）である。
【図７】第１実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図（II）である。
【図８】第１実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート（Ｉ）であり、（ａ）は一般的な処理を示すフローチャートであり、（ｂ）はメッセージ転送処理を示すフローチャートである。
【図９】第１実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート（II）であり、（ａ）はテーブルからの削除処理を示すフローチャートであり、（ｂ）は非多重化ポイントからの削除処理を示すフローチャートである。
【図１０】第１実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート等であり、（ａ）は多重化ポイントからの削除処理を示すフローチャートであり、（ｂ）その概念図である。
【図１１】第１実施形態に係るノードに記憶されているルーティングテーブルへの登録処理を示すフローチャートである。
【図１２】第１実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート（III）であり、（ａ）は非多重化ポイントへの登録処理を示すフローチャートであり、（ｂ）は多重化ポイントへの登録処理を示すフローチャートである。
【図１３】第１実施形態に係るノードに記憶されているルーティングテーブルに置ける登録位置の取得処理を示すフローチャートである。
【図１４】第１実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート等であり、（ａ）は登録座標の取得処理を示すフローチャートであり、（ｂ）その概念図である。
【図１５】第１実施形態に係るノードに記憶されているルーティングテーブルの更新処理を示す模式図である。
【図１６】第２実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図である。
【図１７】第３実施形態に係るノードに記憶されているルーティングテーブルへの登録処理を示すフローチャートである。
【図１８】第３実施形態に係るメッセージ転送処理を示すフローチャートである。
【符号の説明】
【０２２８】
１１    制御部
１２    記憶部
１３    バッファメモリ
１４    デコーダ部
１５    映像処理部
１６    表示部
１７    音声処理部
１８    スピーカ
２０    通信部
２１    入力部
２２    バス
Ｓ    配信システム
Ｎ    ノード
ＲＴ、ＲＲＴ    ルーティングテーブル
ＭＲ    メインテーブル
Ｒ１、Ｒ２、Ｒ３、ＲＲ１、ＲＲ２、ＲＲ３    サブテーブル
Ｅ、ＭＥ１、Ｒ１Ｅ１、Ｒ２Ｅ１、Ｒ３Ｅ１、ＲＲ１Ｅ１、ＲＲ２Ｅ１、ＲＲ３Ｅ１    エントリ
【図１】
0004670726.tif 000002
【図２】
0004670726.tif 000003
【図３】
0004670726.tif 000004
【図４】
0004670726.tif 000005
【図５】
0004670726.tif 000006
【図６】
0004670726.tif 000007
【図７】
0004670726.tif 000008
【図８】
0004670726.tif 000009
【図９】
0004670726.tif 000010
【図１０】
0004670726.tif 000011
【図１１】
0004670726.tif 000012
【図１２】
0004670726.tif 000013
【図１３】
0004670726.tif 000014
【図１４】
0004670726.tif 000015
【図１５】
0004670726.tif 000016
【図１６】
0004670726.tif 000017
【図１７】
0004670726.tif 000018
【図１８】
0004670726.tif 000019