(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムであって、
前記複数のノード装置に含まれる一のノード装置は、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶する記憶手段と、
前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する情報受信手段と、
前記情報受信手段により受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する前記記憶手段の領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較する比較手段と、
前記比較手段により、前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶手段に記憶されている前記他のノード装置のノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを前記記憶手段に記憶させる記憶情報変更手段と、
を有することを特徴とする情報通信システム。
【請求項２】
通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムにおける通信方法であって、
前記複数のノード装置に含まれる一のノード装置が、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶する工程、
前記複数のノード装置のいずれかからの情報と、前記情報の送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する工程、
受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶する工程における領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較する工程、
前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶する工程において記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを記憶する工程、
を有することを特徴とする通信方法。
【請求項３】
通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムに含まれるノード装置であって、
一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶する記憶手段と、
前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から、前記送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する情報受信手段と、
前記情報受信手段により受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する前記記憶手段の領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較する比較手段と、
前記比較手段が前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶手段に記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを前記記憶手段に記憶させる記憶情報変更手段と、
を有することを特徴とするノード装置。
【請求項４】
請求項３に記載のノード装置であって、
前記通信負荷として、他のノード装置と自ノード装置とが通信する際に経由するネットワーク接続機器の数に基づく値を用いることを特徴とするノード装置。
【請求項５】
請求項３または４に記載のノード装置であって、
前記情報受信手段が受信した前記送信元ノード装置の前記識別情報の属する領域を決定する制御手段を、備え、
前記制御手段は、決定された前記識別情報の属する領域が空であるか否かを判定し、
前記記憶手段は、前記領域が空の場合には、前記送信元ノード情報に対応する固有の識別情報と、前記送信元ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、
前記比較手段は、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを特徴とするノード装置。
【請求項６】
請求項３乃至５の何れかに記載のノード装置であって、
削除されるべきノード装置の前記識別情報の属する領域を決定する制御手段を、備え、
前記制御手段は、決定された前記識別情報の属する領域に前記削除されるべきノード装置が登録されている場合には前記削除されるべきノード装置に対応する前記ノード情報と前記識別情報と前記第１通信負荷情報とを削除することを特徴とするノード装置。
【請求項７】
通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムにおける前記ノード装置に搭載されるコンピュータに、
一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶するステップと、
前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から、前記送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信するステップと、
受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶する工程における領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較するステップと、
前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶するステップにおいて記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを記憶するステップと、
を実行させることを特徴とする情報処理プログラム。
【請求項８】
請求項１に記載の情報通信システムにおいて、
前記情報受信手段が受信した前記送信元ノード装置の前記識別情報の属する領域を決定する制御手段を、備え、
前記制御手段は、決定された前記識別情報の属する領域が空であるか否かを判定し、
前記記憶手段は、前記領域が空の場合には、前記送信元ノード情報に対応する固有の識別情報と、前記送信元ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、
前記比較手段は、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを特徴とする情報通信システム。
【請求項９】
請求項２に記載の通信方法において、
前記受信する工程において受信した前記送信元のノード装置の前記識別情報の属する領域を決定する制御工程を、備え、
前記制御工程において、決定された前記識別情報の属する領域が空であるか否かを判定し、
前記記憶する工程において、前記領域が空の場合には、前記送信元のノード情報に対応する固有の識別情報と、前記送信元のノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、
前記比較する工程において、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを特徴とする通信方法。
【請求項１０】
請求項７に記載の情報処理プログラムにおいて、
前記受信するステップにおいて受信した前記送信元のノード装置の前記識別情報の属する領域を決定する制御ステップを、備え、
前記制御ステップにおいて、決定された前記識別情報の属する領域が空であるか否かを判定し、
前記記憶するステップにおいて、前記領域が空の場合には、前記送信元のノード情報に対応する固有の識別情報と、前記送信元のノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、
前記比較するステップにおいて、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の情報通信システム及び方法等の技術分野に関する。
【背景技術】
【０００２】
近年、ピアツーピアという技術が注目されてきている。ピアツーピア型の情報通信システムにおいて、例えば、分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して論理的に構築されたオーバレイネットワークでは、各ノード装置が、当該オーバレイネットワークに参加している全てのノード装置へのリンク情報（例えば、ＩＰアドレス）を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持（記憶）しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
【０００３】
このようなオーバレイネットワークにおいては、ノード装置の参加及び脱退（離脱）が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献１には、オーバレイネットワークにおいて、参加及び脱退（離脱）が頻繁に行われる場合であっても、適切に負荷分散を行うための技術が開示されている。
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
あるノード装置はオーバレイネットワークに参加している他のノード装置へのリンク情報をＤＨＴのルーティングテーブルに登録（記憶）しており、この登録している情報を元にさらに他のノード装置から受信した情報（メッセージ）の転送先のノード装置を決定している。このルーティングテーブルへのリンク情報は、オーバレイネットワークに参加している他のノード装置と通信を行った際に、当該他のノード装置のリンク情報を登録するかたちで蓄積し、また変更することができる。
【０００５】
具体的に、あるノード装置が他のノード装置と通信を行うと、当該他のノード装置のリンク情報に基づいて、ルーティングテーブルにおけるどの位置に当該リンク情報を登録するかを決定する。通常、他のノード装置と通信を行う際に、当該ノード装置を登録すべき位置にさらに他のノード装置のリンク情報が登録されていなければ、当該通信を行ったノード装置のリンク情報を登録する。
【０００６】
一方、他のノード装置と通信を行う際に、ルーティングテーブルにおける当該ノード装置を登録すべき位置にさらに他のノード装置のリンク情報が登録されている場合には、（１）元々登録しているノード装置のリンク情報に変えて当該通信を行ったノード装置のリンク情報を登録することもできるし、（２）元々登録しているノード装置のリンク情報をそのまま保持することもできる。また、（３）当該通信を行ったノード装置のリンク情報を登録しなおすか、元々登録しているノード装置のリンク情報をそのまま保持するかをランダムに決定することも考えられる。
【０００７】
しかしながら、常に（１）通信を行ったノード装置のリンク情報を登録しなおす場合、他のノード装置と通信を行う度にルーティングテーブルが変更されるため、転送のための通信経路の変更が頻繁に起こる。また、（２）元々登録しているノード装置のリンク情報をそのまま保持する場合には、ネットワークに参加した時期が早いノード装置は他のノード装置のルーティングテーブルに登録されている確率が高くなるため、早い時期にネットワークに参加したノード装置がメッセージの転送経路になることが多く、当該ノード装置の負荷が大きくなる。さらに、（３）新たなノード装置のリンク情報を登録しなおすか、元々登録しているノード装置のリンク情報をそのまま保持するかをランダムに決定する場合には、特に根拠がないため、上記（１）（２）の不都合のいずれかが起こる可能性がある。
【０００８】
本発明は、以上の不都合に鑑みてなされたものであり、通信ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア型の情報通信システム及び方法等において、あるノード装置が登録（記憶）する他のノード装置のリンク情報を変更するか否かを決定する手段を提供するものであって、通信ネットワーク全体の通信負荷を軽減した情報通信システム及び方法等を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムであって、前記複数のノード装置に含まれる一のノード装置は、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属す
る領域毎に対応付けて記憶する記憶手段と、前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から、前記送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する情報受信手段と、前記情報受信手段により受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する前記記憶手段の領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較する比較手段と、前記
比較手段により、前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶手段に記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを前記記憶手段に記憶させる記憶情報変更手段と、を有することを特徴とする情報通信システムである。
【００１０】
これによれば、受信した情報の送信元のノード装置（例えば、ノードＫ）に対応する識別情報（例えば、ＩＰアドレスに対応するノードＩＤ等）の属する記憶手段の領域（例えば、ＤＨＴのルーティングテーブルにおける一の領域等）に、さらに他のノード装置（例えば、ノードＡ）の識別情報が記憶されている場合に、当該送信元のノード装置（ノードＫ）及び識別情報を既に記憶しているノード装置（ノードＡ）のうち、自ノード装置との通信負荷の小さい（例えば、ＨＯＰ数が小さい等）ノード装置のノード情報（例えば、ＩＰアドレス）及び識別情報を当該識別情報の属する領域に記憶することとなる。
【００１１】
そのため、通信負荷のより小さいノード装置の情報に変更するときのみ通信経路の変更が起こり、通信ネットワークの通信負荷は安定する。また、記憶手段の情報を変更した場合には、より通信負荷の小さいノード装置の情報を記憶し、そのノード装置と通信することとなるため、通信ネットワーク全体における通信負荷が軽減し、通信ネットワーク全体がより安定したものとなる。このように、上記情報通信システムによれば、情報通信システムにおける通信ネットワーク全体の通信負荷を軽減することができる。
【００１２】
上記課題を解決するために、請求項２に記載の発明は、通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムにおける通信方法であって、前記複数のノード装置に含まれる一のノード装置が、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶する工程、前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する工程、受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶する工程における領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1通信負荷情報と、を比較する工程、前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶する工程において記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを記憶する工程、を有することを特徴とする通信方法である。
【００１３】
上記課題を解決するために、請求項３に記載の発明は、通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムに含まれるノード装置であって、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第１通信負荷情報と、を前記識別情報の属する領域毎に対応付けて記憶する記憶手段と、前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から、前記送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信する情報受信手段と、前記情報受信手段により受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する前記記憶手段の領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第１通信負荷情報と、を比較する比較手段と、前記比較手段が前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶手段に記憶されている前記他のノード装置の前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを前記記憶手段に記憶させる記憶情報変更手段と、を有することを特徴とするノード装置である。
【００１４】
これによれば、ノード装置がこのような各手段を有していることにより、情報通信システムにおける通信ネットワーク全体の通信負荷を軽減することができる。
【００１６】
これによれば、ノード装置の記憶手段が他のノード装置のノード情報と対応付けて通信負荷の情報を記憶しているため、比較手段において通信負荷を比較する際に、既にノード情報と識別情報を記憶しているノード装置について改めて通信負荷の情報を取得する必要がなく、速やかに比較手段及び記憶情報変更手段を機能させることができる。
【００１７】
上記課題を解決するために、請求項５に記載の発明は、請求項３又は４に記載のノード装置であって、前記通信負荷として、他のノード装置と自ノード装置とが通信する際に経由するネットワーク接続機器の数に基づく値を用いることを特徴とするノード装置である。
【００１８】
これによれば、他のノード装置と自ノード装置とが通信する際に経由するネットワーク接続機器の数に基づく値（例えば、ＴＴＬ（Time To Live）、ＲＴＴ（Round Trip Time：パケットの往復遅延時間）等）を通信負荷として比較手段が機能することにより、記憶情報変更手段により、明確な基準に基づいて記憶情報を変更するか否かを決定することができる。また、ネットワーク接続機器の数に基づく値は、各ノード装置間のネットワーク的な距離を考慮した値になるため、よりネットワーク的な距離が短いノード装置の情報がＤＨＴのルーティングテーブルに記憶されることとなり、情報通信システムにおける通信負荷を低減させることができる。
【００２０】
これによれば、情報の送信元のノード装置から通信負荷の情報を受信し、すなわち、情報を送信する側のノード装置が通信負荷の情報を併せて送信することとなるため、比較手段において通信負荷を比較する際に改めて通信負荷の情報を取得する動作を行う必要がない。そのため、他のノード装置から情報を受信すると、比較手段や記憶情報変更手段は、速やかに動作することができる。
【００２２】
これによれば、ノード装置がこのような通信負荷情報送信手段を備えていることにより、情報通信システムが大きく複雑になることなく、他のノード装置から自ノード装置までの通信負荷の情報を取得することができる。
【００２４】
これによれば、他のノード装置（例えば、ノードＺ）から自ノード装置（例えば、ノードＢ）に向けての信号から通信負荷の情報を取得し、当該自ノード装置（ノードＢ）が当該他のノード装置（ノードＺ）に通信負荷の情報を送信することにより、他のノード装置（ノードＺ）は、自ノード装置（ノードＺ）から他のノード装置（ノードＢ）への通信負荷の情報を取得することとなる。そのため、実際にノード装置（ノードＺ）が他のノード装置（ノードＢ）に情報を送信する等の通信を行う際の通信負荷の情報を有していることになるため、情報通信システムにおける通信負荷を軽減するために、より適切な他のノード装置のノード情報及び識別情報を記憶することが可能となる。
【００２６】
これによれば、ノード装置が通信負荷の情報を取得する際のインターフェイスとしてのみＲＡＷソケットを用い、他のノード装置に情報及び通信負荷の情報を送信する際のインターフェイスとして通常のソケット（ノーマルソケット）を用いることにより、ノード装置における通信負荷の情報を取得することを実現できる。ノード装置が具体的にこのような通信負荷情報送信手段を備えていることにより、情報通信システムが大きく複雑になることなくノード装置において通信負荷の情報を取得することができる。
【００２７】
上記課題を解決するために、請求項７に記載の発明は、通信ネットワークを介して互いに接続された複数のノード装置の参加により形成された情報通信システムにおける前記ノード装置に搭載されるコンピュータに、一以上の特定の前記ノード装置を示すノード情報と、前記ノード情報に対応する固有の識別情報と、前記ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域毎
に対応付けて記憶するステップと、前記複数のノード装置のいずれかからの情報と、前記情報の送信元ノード装置から、前記送信元のノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を受信するステップと、受信した情報の送信元の前記ノード装置に対応する前記識別情報の属する領域に、他の前記ノード装置の前記識別情報が記憶されている場合に、前記第２通信負荷情報と、前記記憶する工程における領域に記憶されている前記他のノード装置の識別情報が示すノード装置から自ノード装置までの前記第1
通信負荷情報と、を比較するステップと、前記第２通信負荷情報が、前記第１通信負荷情報よりも小さいと判断した場合に、前記記憶するステップにおいて記憶されている前記ノード情報と前記識別情報と前記第１通信負荷情報とに代えて、前記送信元のノード装置の前記ノード情報と前記識別情報と前記第２通信負荷情報とを記憶するステップと、を実行させることを特徴とする情報処理プログラムである。
上記課題を解決するために、請求項５に記載の発明は、請求項３または４に記載のノード装置であって、前記情報受信手段が受信した前記送信元ノード装置の前記識別情報の属する領域を決定する制御手段を、備え、前記制御手段は、決定された前記識別情報の属する領域が空であるか否かを判定し、前記記憶手段は、前記領域が空の場合には、前記送信元ノード情報に対応する固有の識別情報と、前記送信元ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第1通信負荷情報と、を前記識別情報の属する領域に
対応付けて記憶し、前記比較手段は、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを
特徴とするノード装置である。
上記課題を解決するために、請求項６に記載の発明は、請求項３乃至５の何れかに記載のノード装置であって、削除されるべきノード装置の前記識別情報の属する領域を決定する制御手段を、備え、前記制御手段は、決定された前記識別情報の属する領域に前記削除されるべきノード装置が登録されている場合には前記削除されるべきノード装置に対応する前記ノード情報と前記識別情報と前記第１通信負荷情報とを削除することを特徴とするノード装置である。
上記課題を解決するために、請求項８に記載の発明は、請求項１に記載の情報通信システムにおいて、前記情報受信手段が受信した前記送信元ノード装置の前記識別情報の属する領域を決定する制御手段を、備え、前記制御手段は、決定された前記識別情報の属する
領域が空であるか否かを判定し、前記記憶手段は、前記領域が空の場合には、前記送信元ノード情報に対応する固有の識別情報と、前記送信元ノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、前記比較手段は、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信負荷情報と、を比較することを特
徴とする。
上記課題を解決するために、請求項９に記載の発明は、請求項２に記載の通信方法において、前記受信する工程において受信した前記送信元のノード装置の前記識別情報の属する領域を決定する制御工程を、備え、前記制御工程において、決定された前記識別情報の属する領域が空であるか否かを判定し、前記記憶する工程において、前記領域が空の場合には、前記送信元のノード情報に対応する固有の識別情報と、前記送信元のノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、前記比較する工程において、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第1通信
負荷情報と、を比較することを特徴とする。
上記課題を解決するために、請求項１０に記載の発明は、請求項７に記載の情報処理プログラムにおいて、前記受信するステップにおいて受信した前記送信元のノード装置の前記識別情報の属する領域を決定する制御ステップを、備え、前記制御ステップにおいて、決定された前記識別情報の属する領域が空であるか否かを判定し、前記記憶するステップにおいて、前記領域が空の場合には、前記送信元のノード情報に対応する固有の識別情報と、前記送信元のノード情報が示すノード装置から自ノード装置までの通信負荷を示す第２通信負荷情報と、を前記識別情報の属する領域に対応付けて記憶し、前記比較するステップにおいて、前記領域が空でない場合には、前記第２通信負荷情報と、前記記憶手段の領域に記憶されている前記第１通信負荷情報と、を比較することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、ノード装置が上記各手段、特に比較手段と記憶情報変更手段とを有していることにより、情報通信システムにおける通信ネットワーク全体の通信負荷を軽減することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の最良の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、ＤＨＴ、ノード情報としてのＩＰアドレス、識別情報としてのノードＩＤを利用した情報通信システムに本発明を適用した場合の実施形態である。本実施形態では、上記情報通信システムにおいて、ノード装置が通信負荷の情報としてのＴＴＬ（Time To Live）を利用してＤＨＴのルーティングテーブルにおける情報の変更を行うか否かを決定する。なお、本発明の情報通信システム等の発明は、以下に説明する実施形態に限定されず、本発明の技術思想の範囲内で適宜変更して実施される。
【００３０】
［１．情報通信システムの構成等］
始めに、図１を参照して、情報通信システムの概要構成等について説明する。
【００３１】
図１は、本実施形態に係る情報通信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３２】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、および通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００３３】
情報通信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報（本発明におけるノード情報）としての固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号およびＩＰアドレスは、複数のノード装置１間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００３４】
［１．１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したアルゴリズムについて説明する。
【００３５】
上述した情報通信システムＳにおいて、当該ノード装置１同士が、互いに情報をやり取りする際には、お互いのノード情報としてのＩＰアドレスを知っていなければならない。
【００３６】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がＯＮ或いはＯＦＦとすると、各ノード装置１にて記憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００３７】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限のノード装置１のＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノード装置１については、各ノード装置１間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【００３８】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバレイネットワーク９が構築されることになる。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００３９】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバレイネットワーク９を前提としており、このオーバレイネットワーク９上に配置されたノード装置１を、情報通信システムＳに参加（言い換えれば、オーバレイネットワーク９に参加）しているノード装置１という。なお、情報通信システムＳへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置１に対して参加要求（以下において、参加メッセージとも言う。）を送ることによって行われる。
【００４０】
情報通信システムＳに参加している各ノード装置１のノードＩＤ（識別情報）は、それぞれのノード装置毎にユニーク（固有）な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128＝340×10＾36台のノード装置を運用できる。
【００４１】
より具体的には、各ノード装置１のノードＩＤは、それぞれのノード装置のＩＰアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス；ノード情報）を共通のハッシュ関数によりハッシュ化した値をノードＩＤ（ＧＵＩＤ（Global Unique Identifier）；識別情報）とする。
【００４２】
［１．２．ルーティングテーブルの作成］
図２を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。図２は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００４３】
各ノード装置１に付与されたノードＩＤは、共通のハッシュ関数によって生成したため、図２（Ａ）乃至図２（Ｃ）に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は８ｂｉｔでノードＩＤを付与し、図示したものである。図中黒点はノードＩＤを示し、反時計回りでＩＤが増加するものとする。
【００４４】
まず、図２（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「1023」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００４５】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の整数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「1XXX」のエリア）以外のエリアに存在するノード装置１とメッセージの送受信をした際に、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図３（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００４６】
（レベル２のルーティング）
次に、図２（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１とメッセージの送受信をした際に、当該ノードＩＤのＩＰアドレスをレベル２のテーブルに記憶する。図３（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００４７】
（レベル３のルーティング）
さらに、図２（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「100X」「101X」、「102X」、「103X」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１とメッセージの送受信をした際に、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図３（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００４８】
このようにして、レベル４まで同様にルーティングテーブルを図３（Ｄ）に示す如く作成することにより、８ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００４９】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置１が夫々作成して所有することになる。このように、ノード装置１は、他のノード装置１のノード情報としてのＩＰアドレスと、識別情報としてのノードＩＤと、識別情報の属する領域としてのノードＩＤ空間のエリア、すなわちＤＨＴの各レベル及び各列と、を対応付けて記憶している。ここで、自ノード装置１ＮのノードＩＤに最も近いノードＩＤに対応するノード装置を、後述するルートノード（図２（Ｃ）及び図３（Ｄ）においてはノードＩＤ：1000のノード装置）とする。
【００５０】
なお、ノードＩＤの桁数に応じてレベルの数が決まり、進数の数に応じて図３（Ｄ）における各レベルの注目桁の数が決まる。具体的に、１６桁１６進数である場合には、６４ｂｉｔのＩＤとなり、レベル１６で注目桁の（英）数字は０〜ｆとなる。後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」又は「列数」ともいう。
【００５１】
［２．ノード装置の構成等］
次に、図４を参照して、ノード装置１の構成および機能について説明する。尚、各ノード装置１の構成は同じである。図４は、ノード装置１の概要構成例を示す図である。
【００５２】
各ノード装置１は、図４に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、コンテンツデータ、インデックス情報、上記ＤＨＴおよびプログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータ等を一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４および通信部２０はバス２２を介して相互に接続されている。
【００５３】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、ノード装置１全体を統括制御するようになっており、また、入力部２１からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。ノード装置１は、実行されるプログラムに応じて、情報を送信（転送）するノード装置、情報を受信するノード装置等として機能する。また、ノード装置１の制御部１１は、本発明の情報受信手段、比較手段、記憶情報変更手段、通信負荷情報送信手段、として機能する。
【００５４】
［３．情報通信システムの概略］
本実施形態の情報通信システムＳの概略を図５を用いて説明する。本実施形態の情報通信システムＳは、一のノード装置１が通信負荷の情報としてのＴＴＬ（Time To Live）又はＨＯＰ数を利用してＤＨＴのルーティングテーブルにおける他のノード装置１の情報の変更を行うか否かを決定する。情報を変更する場合には、通信ネットワーク全体の通信負荷が小さくなるように行う。以下において、ＤＨＴのルーティングテーブルを単にテーブルとも言う。また、他のノード装置のノード情報及び識別情報の記憶について、「登録」という言い方も用いる。
【００５５】
一のノード装置１（ノードＺ）は、例えば、図５（Ａ）に示すようなＤＨＴのルーティングテーブルを記憶部１２に記憶している。ＤＨＴのルーティングテーブルは、一以上の特定のノード装置１（ノードＡ〜ノードＨ）を示すノード情報としてのＩＰアドレス及びポート番号と、当該ノード情報に対応する固有の識別情報としてのノードＩＤと、をノードＩＤの属する領域毎に対応付けて記憶されたものである。なお、以下の実施形態の説明においては、ノード情報としてのポート番号の記載は省略する場合があるが、ＩＰアドレスとポート番号は常に組みにしてノード装置１に記憶されており、ＩＰアドレスとポート番号とノードＩＤが対応付けてノード装置１に記憶されている。通常、ノード情報としてＩＰアドレスはノード装置１に必須に記憶されているが、これに対してポート番号は、各ノード装置１おけるポート番号を共通にすることによりノード情報として記憶する必要がない場合もある。
【００５６】
本実施形態では、図５（Ｂ）に一の領域毎に記憶している情報の例を示すように、記憶部１２が、このテーブルにおいて、ＨＯＰ数の値を上記ＩＰアドレス又はノードＩＤに対応付けて記憶しているものとする。図５（Ｃ）〜図５（Ｆ）は、図５（Ｂ）に倣って、記憶している他のノード装置１（ノードＡ）の情報（図５（Ｃ））、メッセージ等を受信することにより取得したノード装置１（ノードＪ）の情報（図５（Ｄ））、同様にメッセージ等を受信することにより取得したノード装置１（ノードＫ）の情報（図５（Ｅ））、同様にメッセージ等を受信することにより取得したノード装置１（ノードＬ）の情報（図５（Ｆ））、を示す。
【００５７】
ノードＺが、例えば、図５（Ｄ）に示すノードＪからメッセージ等の情報を受信した場合には、ノードＪのノードＩＤ［０３３１］の属するテーブルの領域（レベル１、各レベルの注目桁Ｘ＝０）に記憶されているノードＡのＨＯＰ数（４）と、ノードＪのＨＯＰ数（７）とを比較し、ＨＯＰ数の小さい方（他のノード装置と自ノード装置とが通信を行った場合に通信ネットワーク全体に与える通信負荷が小さい方）のノード装置の情報を記憶する。ここでは、ノードＪよりもノードＡの方がＨＯＰ数が小さいため、ノードＪの情報は記憶せずに、ノードＡの情報を保持する。
【００５８】
一方、ノードＺが図５（Ｅ）に示すノードＫからメッセージ等の情報を受信した場合には、ノードＫのノードＩＤ［０１０３］の属するテーブルの領域（レベル１、各レベルの注目桁Ｘ＝０）に記憶されているノードＡのＨＯＰ数（４）と、ノードＫのＨＯＰ数（２）とを比較し、ＨＯＰ数の小さい方を記憶する。ここでは、ノードＡよりもノードＫの方がＨＯＰ数が小さいため、ノードＡに変えてノードＫの情報を記憶する。
【００５９】
なお、ノードＺが図５（Ｆ）に示すノードＬからメッセージ等の情報を受信した場合には、ノードＬのノードＩＤ［１００２］の属するテーブルの領域（レベル３、各レベルの注目桁Ｘ＝０）に他のノード装置が記憶されていないため、新規にノードＬの情報を記憶する。
【００６０】
［３．１本実施形態の情報通信システムの動作］
次に、本実施形態の情報通信システムＳの動作について図５乃至図１７を用いて説明する。
【００６１】
［３．１．１．情報通信システム全体の動作］
以下に、図５乃至図１０を参照して、本実施形態の情報通信システム全体の動作について説明する。
【００６２】
一のノード装置１をノードＺとし、ノードＺが図５（Ａ）に示す４桁４進数からなるＤＨＴのルーティングテーブルを保持していることが前提となる。このテーブル及び図５（Ｂ）の例に示すように、レベル１〜４×各レベルの注目桁Ｘ＝０〜３のいずれかのエリアに属するノードＡ〜ノードＨのＩＰアドレス（ノード情報）、ノードＩＤ（識別情報）、ＨＯＰ数（通信負荷の情報）を、ノードＺが記憶している。
【００６３】
（テーブルを変更する形態）
ノード装置１（ノードＺ）の制御部１１は、他のノード装置１（例えば、図５（Ｅ）に示すノード装置１（ノードＫ））から情報を受信する。制御部１１は、受信した情報の送信元のノードＫに対応するノードＩＤ［０１０３］の属する記憶部１２におけるテーブルの領域（レベル１、各レベルの注目桁＝０）に、さらに他のノード装置１（ノードＡ）のノードＩＤ［０２１１］が記憶されている場合に、当該送信元のノードＫから自ノード装置１（ノードＺ）までのＨＯＰ数と、ノードＩＤを記憶しているノードＡから自ノード装置１（ノードＺ）までのＨＯＰ数と、を比較し当該ＨＯＰ数の大きさを判断する。
【００６４】
制御部１１は、送信元のノードＫから自ノード装置１（ノードＺ）までのＨＯＰ数がノードＩＤを記憶しているノードＡから自ノード装置１（ノードＺ）までのＨＯＰ数よりも小さい（すなわち、各ノード装置と通信をした場合に通信ネットワーク全体に及ぼす通信負荷が小さい）と判断した場合に、ノードＩＤを記憶しているノードＡのＩＰアドレス及びノードＩＤに変えて、送信元のノードＫのＩＰアドレス及びノードＩＤを記憶部１２のＤＨＴのルーティングテーブルに記憶させる。
【００６５】
一方、ノード装置１（ノードＺ）の制御部１１は、他のノード装置１（例えば、図５（Ｄ）に示すノード装置１（ノードＪ））から情報を受信すると、送信元のノードＪに対応するノードＩＤ［０３３１］の属する記憶部１２におけるＤＨＴのルーティングテーブルの領域（レベル１、各レベルの注目桁＝０）に、さらに他のノード装置１（ノードＡ）のノードＩＤ［０２１１］が記憶されている場合に、当該送信元のノードＪから自ノード装置１（ノードＺ）までのＨＯＰ数と、ノードＩＤを記憶しているノードＡから自ノード装置１（ノードＺ）までのＨＯＰ数と、を比較し当該ＨＯＰ数の大きさを判断する。
【００６６】
制御部１１は、送信元のノードＪから自ノード装置１（ノードＺ）までのＨＯＰ数がノードＩＤを記憶しているノードＡから自ノード装置１（ノードＺ）までのＨＯＰ数よりも大きい（すなわち、各ノード装置と通信をした場合に通信ネットワーク全体に及ぼす通信負荷が大きい）と判断した場合には、ノードＩＤを記憶しているノードＡのＩＰアドレス及びノードＩＤを変えずにそのまま保持する。
【００６７】
なお、制御部１１は、情報の送信元のノード装置１から自ノード装置１（ノードＺ）までのＨＯＰ数がノードＩＤを記憶しているノード装置１（Ａ）から自ノード装置１（Ｚ）までのＨＯＰ数と同じと判断した場合には、ノードＩＤを記憶しているノード装置１（例えば、ノードＡ）のＩＰアドレス及びノードＩＤを変えずにそのまま保持することもできるし、所定回数に一度等の割合で変更してもよい。
【００６８】
（通信負荷の情報を取得する形態）
ノード装置１が上述の通信負荷の情報であるＴＴＬの値又はＨＯＰ数を取得する形態について図６乃至図１０を参照して説明する。本実施形態においては、ノード装置１の情報受信手段としての制御部１１が、情報の送信元のノード装置からＴＴＬの値又はＨＯＰ数の情報を受信する。
【００６９】
図６（Ａ）に示すように、自ノード装置１（例えば、ノードＺ）と他のノード装置１（例えば、ノードＢ）とは、一以上のルータを介して通信が行われる。そして、この通信においては、通常、図６（Ｂ）に示すＩＰヘッダとＩＰデータとからなるパケットが送受信されている。図６（Ｂ）に示すように、ＩＰヘッダには、ＴＴＬ（Time To Live；生存時間）等の通信負荷を示す情報が含まれている。
【００７０】
ここで、ＴＴＬは、パケットの有効期間を表す値であり、二つのノード装置間で通信する際に経由するルータ等のネットワーク接続機器の数に基づく値である。ＴＴＬは、最大２５５までの整数値で表され、ルータ等を一回経由する度に値が１減少する。ＴＴＬが０になったパケットは、その時点で廃棄され、廃棄通知がパケットの送信元に届くようになっている。ＴＴＬは、設定の誤りによるパケットの無限ループを防止するために設定された機能であり、元々は秒単位でのパケットの生存時間を示すことを意図していたが、実際に経過時間を測定することは困難なため、ルータの通過回数で有効期間を表す形になった。ＴＴＬは、送信元コンピュータが自由に設定できるが、ネットワーク上の距離が遠い（多くのルータを介さないと通信ができない）ノード装置に情報を送信するときには、ＴＴＬをある程度大きい値に設定してパケットを送出しないと、パケットが目的のノード装置に到達する前にＴＴＬが０になってしまい、パケットが相手のノード装置に到達できなくなる。このＴＴＬの設定値から、受信したパケットにおけるＴＴＬの値を引いた値が、ＨＯＰ数となる（ＴＴＬ設定値−ＴＴＬ値＝ＨＯＰ数）。
【００７１】
上述のように、ノード装置１が受信するパケットのＩＰヘッダには、ＴＴＬの情報が含まれているが、ＴＣＰプロトコルを扱う一般的なソケットプログラミングにおいて、通常のインターフェイスであるノーマルソケットを用いた通信の場合には、ノード装置１はＴＴＬの値を読み取ることができない。他のインターフェイスであるＲＡＷソケットを用いれば、ＴＴＬの値を読み取ることができるが、この場合にはプロトコル制御を全てプログラミングしなければいけなくなる。また、この手法によるとプログラマーの労力が多大になるため、以下に示すように、通信の一部分のみにＲＡＷソケットを用いる手法を用いることが好ましい。
【００７２】
ＴＴＬを測定するために、ノード装置１（ノードＺ）の通信負荷情報送信手段としての制御部１１は、図６（Ａ）に示すように、他のノード装置１（例えば、ノードＢ）に情報を送信する際には、その通信を確立する初期段階においてＴＴＬ測定用の要求パケットを送信し、ＴＴＬ測定用の応答パケットを受信する。ノードＺは、応答パケットの信号からＴＴＬの値を読み出すことにより、他のノード装置１（ノードＢ）から自ノード装置（ノードＺ）までのＴＴＬの値を取得することができる。なお、ＴＴＬの初期値は予め決めておき、例えば、６４、上記最大値の２５５等とする。
【００７３】
ここで、図７に通常のＴＣＰプロトコルを用いた場合のコネクションの確立方法、図８に通常のＴＣＰプロトコルを用いた場合のコネクションの切断方法、図９にＴＣＰプロトコルを用いた場合のＴＴＬの測定方法、図１０にＵＤＰプロトコルを用いた場合のＴＴＬの測定方法を示す。
【００７４】
図７に示すように、通常のＴＣＰプロトコルにおいては、他のノード装置とのコネクションを確立するために、まず、自ノード装置１（ノードＺ）があるノード装置１（ノードＢ）へＳＹＮパケット（通信を確立するための信号）を送信する。当該ＳＹＮパケットをノードＢが受信すると、ノードＢはパッシブ・オープン処理を開始して、受信確認（ＡＣＫ）とノードＺへのＳＹＮのパケットを送信する。当該ＡＣＫ／ＳＹＮパケットをノードＺが受信すると、ノードＺは受信確認（ＡＣＫ）のパケットをノードＢに送信して、オープン処理が完了し、次いで、本来のメッセージ（情報）がノードＺからノードＢに送信されることとなる。
【００７５】
また、図８に示すように、通常のＴＣＰプロトコルにおいては、本来のメッセージ（情報）がノードＺからノードＢに送信されて終わると、他のノード装置とのコネクションを切断するために、まず、自ノード装置１（ノードＺ）がそれまで通信していたノード装置（ノードＢ）へＦＩＮパケットを送信する。当該ＦＩＮパケットをノードＢが受信すると、ノードＢはクローズの要求を受理し、受信確認（ＡＣＫ）のパケットをノードＺへ送信する。また、ノードＢは、ノードＺへＦＩＮパケットを送信する。当該ＦＩＮパケットをノードＺが受信すると、ノードＺはクローズの要求を受理し、受信確認（ＡＣＫ）のパケットをノードＢへ送信する。
【００７６】
ここで、ＴＴＬの値は図６（Ｂ）にも示したように、パケットのＩＰヘッダ部分に含まれている情報（または信号）であるが、ＴＣＰのソケットプログラミングにおける通常のインターフェイスであるノーマルソケットを用いた手順では、各ノード装置１がＴＴＬの値を認識することができない。そのため、ＴＴＬの値を取得するために、他のインターフェイスであるＲＡＷソケットを併用することが好ましい。
【００７７】
図９にＴＣＰプロトコルを用いた場合のＴＴＬの測定方法を示すように、自ノード装置１（ノードＺ）は、ＲＡＷソケットを用い、ＳＹＮパケットを他のノード装置１（ノードＢ）に送信する。ＳＹＮパケットを受信したノードＢは、ノードＺにＡＣＫ／ＳＹＮパケットを送信する。ノードＺは、ＲＡＷソケットを用いてＡＣＫ／ＳＹＮパケットを受信することにより、ＡＣＫ／ＳＹＮパケット中のＴＴＬを取得することができる。このように、ノードＺは、ノードＢとのコネクションを確立する前にＴＴＬを取得できるため、図７に示すＡＣＫパケットではなく、ＲＳＴパケットまたはＦＩＮパケットをノードＢに送信し、ＲＡＷソケットを用いた通信を終了する。その後、ノードＺは、受信したＡＣＫ／ＳＹＮパケット（ＴＴＬの値の情報に対応する信号が含まれた信号）におけるＴＴＬの値の情報に対応する信号を読み取ることにより、ＴＴＬの値の情報を取得する。また、ノードＺは、ＴＴＬの値からＨＯＰ数を算出できる。そして、ノードＺは、ノーマルソケットを用い、ＡＣＫ／ＳＹＮパケットから取得したＨＯＰ数の情報を本来のメッセージに付加してノードＢに送信する。図９におけるこれ以下のオープン処理、メッセージ送信処理及びクローズ処理は、図７及び図８を参照して説明したものと同様である。このように、ノードＢは、自ノード装置１（ノードＢ）から他のノード装置１であるノードＺへの通信負荷の情報（ＨＯＰ数）を取得することができる。
【００７８】
また、図１０にＵＤＰプロトコルを用いた場合のＴＴＬの測定方法を示すように、自ノード装置１（ノードＺ）は、パケットヘッダとメッセージ部とからなるＵＤＰパケットを作成し、ＵＤＰパケットのヘッダが付加されたＴＴＬ測定用メッセージとして他のノード装置１（ノードＢ）に送信することもできる。このとき、ＲＡＷソケットを用いてＵＤＰパケットを送信する。ＵＤＰパケットを受信したノードＢは、ノードＺに応答メッセージを送信する。ノードＺは、ＲＡＷソケットを用いて応答メッセージを受信することにより、応答メッセージ中のＴＴＬを取得することができる。その後、ノードＺは、ＴＴＬの値から算出したＨＯＰ数の情報を本来のメッセージに付加し、ノーマルソケットを用いてノードＢに送信する。このことにより、ノードＢは、自ノード装置１（ノードＢ）から他のノード装置１であるノードＺへの通信負荷の情報（ＨＯＰ数）を取得することができる。
【００７９】
本実施形態においては、図５（Ａ）及び図５（Ｃ）等に示すように、あるノード装置１（ノードＺ）が他のノード装置１（例えば、ノードＡ等）から情報を受信し、ＤＨＴのルーティングテーブルに当該ノード装置の情報を記憶する場合には、当該ノード装置のＩＰアドレス、ポート番号、ノードＩＤとともに受信したＨＯＰ数の情報を通信負荷の情報として記憶する。
【００８０】
［３．１．２．ノード装置の動作］
次に、一のノード装置１（上述のノードＺ）が情報通信システムＳにおける通信ネットワークに参加した後、ＤＨＴのルーティングテーブルにおけるあるエリアに既に他のノード装置１（例えば、上述のノードＡ）の情報が記憶されている場合に、さらに同じエリアに属する他のノード装置１（例えば、上述のノードＪ、ノードＫ等）から情報を受信しノードＡの情報を書き換えるか否かを決定する処理について、図１１から図１５のフローチャートを参照して説明する。
【００８１】
なお、このフローチャートを用いた説明においては、ノードＺが通信ネットワークに参加した後、他のノード装置から応答メッセージ（返信情報）を受信することにより、当該応答メッセージの送信元のノード装置の情報を元にＤＨＴのルーティングテーブルを作成する処理が含まれる。フローチャートの説明の前に、このＤＨＴのルーティングテーブルを作成する処理の概要について、図１６及び図１７を参照して説明する。
【００８２】
（０）参加後にＤＨＴのルーティングテーブルを作成する態様
図１６に示すように、ノードＺが情報通信システムＳにおける通信ネットワークに参加すると、ノードＺは、コンタクトノード（既にＩＰアドレスを知っている任意のノード装置）であるノードＢに参加メッセージを送信する（矢印１０１）。すると、ノードＢは返信情報としての応答メッセージをノードＺに送信する（矢印１０２）。次いで、ノードＢは、存在確認情報としての存在確認メッセージを図１７（Ａ）に示すようにレベル１に登録しているノードＡ、ノードＥ、ノードＣに順次送信する（矢印１０３、１０５、１０７）。すると、ノードＡは応答メッセージをノードＺに送信し（矢印１０４）、ノードＥは応答メッセージをノードＺに送信し（矢印１０６）、ノードＣは応答メッセージをノードＺに送信する（矢印１０８）。なお、図１７（Ａ）〜（Ｃ）において、レベル数の左に▲印がある場合には、そのレベルに登録されたノード装置に存在確認メッセージを送信することを意味し、二重の四角で囲まれたノード装置は、当該ノード装置に参加メッセージを転送することを意味する。
【００８３】
そして、ノードＢは、参加メッセージをノードＺのルートノードに向けて、ここではノードＥに転送する（矢印１０９）。このとき、存在確認メッセージの送信先を次のレベル２である旨の情報を参加メッセージに付加する。次いで、ノードＥは、存在確認メッセージを次のレベル２に登録しているノードＧ、ノードＤ、ノードＦに順次送信する（矢印１１０、１１２、１１４）。すると、ノードＧは応答メッセージをノードＺに送信し（矢印１１１）、ノードＤは応答メッセージをノードＺに送信し（矢印１１３）、ノードＦは応答メッセージをノードＺに送信する（矢印１１５）。
【００８４】
そして、ノードＥは、参加メッセージをノードＺのルートノードに向けて、ここではノードＧに転送する（矢印１１６）。このとき、存在確認メッセージの送信先を次のレベル３である旨の情報を参加メッセージに付加する。次いで、ノードＧは、存在確認メッセージを次のレベル３に登録しているノードＨに送信する（矢印１１７）。すると、ノードＨは応答メッセージをノードＺに送信する（矢印１１８）。ここで、ノードＧは、ノードＺのルートノードであり、これ以上転送先がないため、処理を終了する。
【００８５】
（１）ノード装置の基本処理
フローチャートに戻り、図１１を参照してノード装置１（ノードＺ）の基本処理について説明する。なお、ノードＺは、通信ネットワークに参加した後、上述の図１６に示した手順により図５（Ａ）に示すＤＨＴのルーティングテーブルを作成し、保持（記憶）するものとする。
【００８６】
ノードＺの制御部１１は、入力部２１等により自ノード装置に電源が入れられたことを認識すると、当該ノードＺの各種設定が初期化され、基本処理を開始する（スタート）。なお、ノードＺは、通信ネットワークに参加した際にまず通信を行うコンタクトノード装置１（ノードＢ）のＩＰアドレスとポート番号を保持していることを前提とする。
【００８７】
基本処理が開始されると、制御部１１は、コンタクトノード（ノードＢ）へ送信する参加メッセージのパケットを作成する（ステップＳ１）。
【００８８】
次いで、制御部１１は、作成した参加メッセージのパケットについて、メッセージ送信処理を行う（ステップＳ２）。なお、メッセージ送信処理については、図１２を用いて後述する。
【００８９】
次いで、制御部１１は、電源が切られたか否かを判断し（ステップＳ３）、通常、電源が入れられた直後は電源が切られないため、電源が切られていないと判断し（ステップＳ３；ＮＯ）、他のノード装置１からメッセージ（情報）を受信したか否かを判断する（ステップＳ４）。このとき、少なくともノードＢから応答メッセージを受信することとなるため、他のノード装置１（ノードＢ）からメッセージを受信したと判断し（ステップＳ４；ＹＥＳ）、メッセージの受信処理を行う（ステップＳ５）。なお、メッセージ受信処理については、図１３を用いて後述する。
【００９０】
次いで、制御部１１は、受信したメッセージの送信元のノード装置１（ノードＢ）について、テーブルへの登録処理を行う（ステップＳ６）。このテーブルへの登録処理については、図１４を用いて後述する。このとき、ノードＺのテーブルにおける、レベル１、各レベルの注目桁Ｘ＝２のエリアに、ノードＢの情報が登録される（図５（Ａ）参照）。
【００９１】
次いで、制御部１１は、ステップＳ３に戻り、電源が切られておらず（ステップＳ３；ＮＯ）、メッセージを受信していない場合には（ステップＳ４；ＮＯ）、入力部２１等からの入力に応じたその他の処理を行い（ステップＳ７）、ステップＳ３に戻る。ノードＺの制御部１１は、以後、ステップＳ３〜Ｓ６または、ステップＳ３、Ｓ４、Ｓ７の動作を場合に応じて繰り返し、ノードＺの電源が切られた場合には、そのように判断し（ステップＳ３；ＹＥＳ）、基本処理を終了する（エンド）。
【００９２】
（２）ノード装置のメッセージ送信処理
図１２及び上述の図９を参照してノードＺのメッセージ送信処理について説明する。なお、ノードＺは、各種メッセージ等の情報を送信する際に、その初期段階においてＲＡＷソケットを用いてＴＴＬの値の情報を取得し、その後、ノーマルソケットを用いてＨＯＰ数の情報を付加した情報を送信するものとする。
【００９３】
ノードＺの制御部１１は、上述の基本処理におけるメッセージ送信処理（ステップＳ２）がスタートすると、このメッセージ送信処理を開始する（スタート）。この前提として、メッセージの内容及び宛先となるノード装置のＩＰアドレスが含まれたパケットが作成されている。
【００９４】
メッセージ送信処理が開始されると、制御部１１は、ＲＡＷソケットを作成する（ステップＳ１１）。次いで、制御部１１は、メッセージの宛先となるノード装置１に対し、ＴＴＬ測定要求パケットを送信し、当該パケットを送信できたか否かを判断する（ステップＳ１２）。ノードＺがコンタクトノードであるノードＢにパケットを送信した場合には、通常、ノードＢが存在しており、パケットを送信できるため、そのように判断し（ステップＳ１２；ＹＥＳ）、次いで、宛先となるノード装置からＴＴＬ測定応答パケットを受信できたか否かを判断する（ステップＳ１３）。
【００９５】
ノードＺがコンタクトノードであるノードＢにパケットを送信した場合には、通常、存在するノードＢから応答パケットを受信できるため、制御部１１はそのように判断し（ステップＳ１３；ＹＥＳ）、次いで、応答パケットのＩＰヘッダからＴＴＬの値の情報を読み出す（ステップＳ１４）。ここでは、ＴＴＬの値を仮に２４９とし、ＴＴＬの設定値を２５５とする。
【００９６】
次いで、制御部１１は、ＲＡＷソケットを閉じ（ステップＳ１５）、ＴＴＬの設定値（２５５）から受信した応答パケットのＴＴＬの値（２４９）を引き、この値（６）をＨＯＰ数とする（ステップＳ１６）。制御部１１は、自ノード装置のＩＰアドレス情報と算出したＨＯＰ数の情報を作成されているパケットに付加し、予め定められた送信先のノード装置１（ノードＢ）にノーマルソケットで当該パケットを送信し、メッセージ送信処理が成功したものとして、元々の処理の流れ、ここではステップ３に戻る（リターン・成功）。
【００９７】
一方、メッセージの送信先のノード装置１が存在せず、ＴＴＬ測定要求パケットを送信できなかった場合（ステップＳ１２；ＮＯ）や、ＴＴＬ測定応答パケットを受信できなかった場合（ステップＳ１３；ＮＯ）は、ＲＡＷソケットを閉じ（ステップＳ１８）、メッセージ送信処理が失敗したものとして、元々の処理の流れ、ステップ３に戻る（リターン・失敗）。
【００９８】
これらの処理により、ノードＺからメッセージを受信したノード装置１（ここではノードＢ）は、ＨＯＰ数（上記の６）の情報を受け取ることができ、メッセージを送信したノード装置１の情報をテーブルに登録する場合には、併せてＨＯＰ数の情報を記憶できることとなる。
【００９９】
（３）ノード装置のメッセージ受信処理
図１３及び上述の図９を参照してノードＺ、ノードＢ、ノードＥ、ノードＧ及びノードＡのメッセージ受信処理について説明する。
【０１００】
（ノードＺ）
ノードＺの制御部１１は、上述の基本処理におけるメッセージ受信処理（ステップＳ５）がスタートすると、このメッセージ受信処理を開始する（スタート）。ここでは、まずノードＢからの応答メッセージを受信した前提で説明する。
【０１０１】
メッセージ受信処理が開始されると、制御部１１は、受信したメッセージが参加メッセージか否かを判断する（ステップＳ２１）。ここでは、受信したメッセージは応答メッセージであるため、制御部１１は、受信したメッセージが参加メッセージでないと判断し（ステップＳ２１；ＮＯ）、次いで、受信したメッセージが存在確認メッセージか否かを判断する（ステップＳ２２）。
【０１０２】
ここでは、受信したメッセージは応答メッセージであるため、制御部１１は、受信したメッセージが存在確認メッセージでないと判断し（ステップＳ２２；ＮＯ）、次いで、受信したメッセージが応答メッセージであるか否かを判断する（ステップＳ２３）。ここで、制御部１１は、受信したメッセージは応答メッセージであると判断し（ステップＳ２３；ＹＥＳ）、元々の処理の流れに戻る（リターン）。
【０１０３】
（ノードＢ）
一方、コンタクトノードＢにおいて、通信ネットワークに参加したノードＺから参加メッセージを受信した場合のメッセージ受信処理を以下に説明する。ノードＢは、図１７（Ａ）に示すテーブルを記憶しているものとする。
【０１０４】
ノードＢの制御部１１は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理（ステップＳ５）がスタートすると、このメッセージ受信処理を開始する（スタート）。ステップＳ２１において、ノードＢの制御部１１が受信したメッセージは参加メッセージであると判断すると（ステップＳ２１；ＹＥＳ）、当該参加メッセージにレベル数を示す付加情報が含まれるか否かを判断する（ステップＳ２４）。通信ネットワークに参加したノードＺから受信した参加メッセージのパケットには付加情報は含まれていないため、制御部１１は、参加メッセージに付加情報が含まれていないと判断し（ステップＳ２４；ＮＯ）、テーブルにおけるレベル数を１と決定する（ステップＳ２５）。なお、参加メッセージを作成する参加ノード装置（ノードＺ）は、レベル数を１とした付加情報を付加して参加メッセージを送信する形態とすることもできる。この場合にはステップＳ２４、Ｓ２５の代わりに後述するステップＳ４０により付加情報に応じたレベル数１に決定し、続くステップに移る。
【０１０５】
次いで、制御部１１は、参加メッセージ送信元であるノードＺへ応答メッセージを送信する（ステップＳ２６）。ステップＳ２６においては、詳細には、後述するステップＳ３２、Ｓ３３及びＳ４１のような動作を行うが、参加メッセージ送信元のノード装置１（ノードＺ）がこの時点で存在しなくなっている確率は低いため、応答メッセージの送信が成功したものとして、次のステップＳ２７に進む。
【０１０６】
次いで、制御部１１は、テーブルにおける列数（各レベルの注目桁Ｘ）を０と決定し（ステップＳ２７）、ノードＢのテーブルを示す図１７（Ａ）におけるレベル１、注目桁Ｘ＝０のエリアに注目する。制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数０がテーブル全体の列数３以下であるため（ステップＳ２８；ＹＥＳ）、注目する［レベル数］［列数］に該当するノード装置が自ノード装置か否かを判断する（ステップＳ２９）。
【０１０７】
ここでは、図１７（Ａ）に示すように、注目する［レベル数１］［列数０］に該当するノード装置が自ノード装置ではないため、そのように判断し（ステップＳ２９；ＮＯ）、次いで、注目する［レベル数］［列数］に他のノード装置の情報が記憶されているか否かを判断する（ステップＳ３０）。
【０１０８】
ここでは、［レベル数１］［列数０］にノードＩＤ［０２１１］のノード装置が記憶されているため、そのように判断し（ステップＳ３０；ＹＥＳ）、参加メッセージの送信元であるノードＺのＩＰアドレスを含む存在確認メッセージを作成し、当該メッセージの送信先を［レベル数１］［列数０］に記憶されているノードＩＤ［０２１１］のノード装置（ノードＡ）に決定する（ステップＳ３１）。次いで、この作成した存在確認メッセージについて、送信先のノードＡへのメッセージ送信処理を行う（ステップＳ３２）。このメッセージ送信処理は、図１２を用いて上記したものと同様であり、ここでは、メッセージ送信処理が成功したものとする。
【０１０９】
次いで、制御部１１は、メッセージ送信処理が成功したか否かを判断し（ステップＳ３３）、ここでは存在確認メッセージの送信処理が成功したため、そのように判断する（ステップＳ３３；ＹＥＳ）。次いで、制御部１１は、列数０の値に１を足して列数１とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１１０】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＹＥＳ、ステップＳ３１、ステップＳ３２、ステップＳ３３；ＹＥＳを経て、［レベル数１］［列数１］に記憶されているノードＩＤ［１２２１］のノード装置（ノードＥ）に存在確認メッセージを送信し、列数１の値に１を足して列数２とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１１１】
次いで、制御部１１は、ステップＳ２８；ＹＥＳを経て、ステップＳ２９において［レベル数１］［列数２］のエリアは自ノード装置であると判断し（ステップＳ２９；ＹＥＳ）、列数２の値に１を足して列数３とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１１２】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＹＥＳ、ステップＳ３１、ステップＳ３２、ステップＳ３３；ＹＥＳを経て、［レベル数１］［列数３］に記憶されているノードＩＤ［３１２１］のノード装置（ノードＣ）に存在確認メッセージを送信し、列数３の値に１を足して列数４とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１１３】
ここで、制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数４がテーブル全体の列数３以下でないため（ステップＳ２８；ＮＯ）、参加メッセージの転送先（送信先）のノード装置を認定する（ステップＳ３５）。このとき、図２を用いて説明したように、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置がノードＩＤ［１２２１］のノードＥであるため、ノードＥを参加メッセージの転送先として認定する。
【０１１４】
次いで、制御部１１は、自ノード装置がルートノード、すなわち、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置であるか否かを判断する（ステップＳ３６）。上述のように、ここでは、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置がノードＩＤ［１２２１］のノードＥであり、自ノード装置がルートノードではないため、制御部１１はそのように判断し（ステップＳ３６；ＮＯ）、注目してきたレベル数に１を足したレベル数の情報を付加情報として付加した参加メッセージを作成する（ステップＳ３７）。ここでは、制御部１１は、注目してきたレベル数が１であり、これに１を足したレベル数２の付加情報を参加メッセージに付加する。
【０１１５】
次いで、制御部１１は、この作成した参加メッセージについて、転送先のノードＥへのメッセージ送信処理を行う（ステップＳ３８）。このメッセージ送信処理は、図１２を用いて上記したものと同様であり、ここでは、メッセージ送信処理が成功したものとする。
【０１１６】
次いで、制御部１１は、メッセージ送信処理が成功したか否かを判断し（ステップＳ３９）、ここでは存在確認メッセージの送信処理が成功したため、そのように判断し（ステップＳ３３；ＹＥＳ）、元々の処理の流れに戻る（リターン）。
【０１１７】
（ノードＥ）
次いで、ノードＥにおいて、ノードＢから参加メッセージを転送され、受信した場合のメッセージ受信処理を以下に説明する。ノードＥは、図１７（Ｂ）に示すテーブルを記憶しているものとする。
【０１１８】
ノードＥの制御部１１は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理（ステップＳ５）がスタートすると、このメッセージ受信処理を開始する（スタート）。ステップＳ２１において、ノードＥの制御部１１が受信したメッセージは参加メッセージであると判断すると（ステップＳ２１；ＹＥＳ）、当該参加メッセージにレベル数を示す付加情報が含まれるか否かを判断する（ステップＳ２４）。ノードＢから受信した参加メッセージのパケットにはレベル数２を示す付加情報が含まれているため、制御部１１は、参加メッセージに付加情報が含まれていると判断し（ステップＳ２４；ＹＥＳ）、テーブルにおけるレベル数を付加情報に応じてレベル数２と決定する（ステップＳ４０）。
【０１１９】
次いで、制御部１１は、テーブルにおける列数（各レベルの注目桁Ｘ）を０と決定し（ステップＳ２７）、ノードＥのテーブルを示す図１７（Ｂ）におけるレベル２、注目桁Ｘ＝０のエリアに注目する。制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数０がテーブル全体の列数３以下であるため（ステップＳ２８；ＹＥＳ）、注目する［レベル数］［列数］に該当するノード装置が自ノード装置か否かを判断する（ステップＳ２９）。
【０１２０】
ここでは、図１７（Ｂ）に示すように、注目する［レベル数２］［列数０］に該当するノード装置が自ノード装置ではないため、そのように判断し（ステップＳ２９；ＮＯ）、次いで、注目する［レベル数］［列数］に他のノード装置の情報が記憶されているか否かを判断する（ステップＳ３０）。
【０１２１】
ここでは、［レベル数２］［列数０］にノードＩＤ［１０２３］のノード装置が記憶されているため、そのように判断し（ステップＳ３０；ＹＥＳ）、参加メッセージの送信元であるノードＺのＩＰアドレスを含む存在確認メッセージを作成し、当該メッセージの送信先を［レベル数２］［列数０］に記憶されているノードＩＤ［１０２３］のノード装置（ノードＧ）に決定する（ステップＳ３１）。次いで、この作成した存在確認メッセージについて、送信先のノードＧへのメッセージ送信処理を行う（ステップＳ３２）。このメッセージ送信処理は、図１２を用いて上記したものと同様であり、ここでは、メッセージ送信処理が成功したものとする。
【０１２２】
次いで、制御部１１は、メッセージ送信処理が成功したか否かを判断し（ステップＳ３３）、ここでは存在確認メッセージの送信処理が成功したため、そのように判断する（ステップＳ３３；ＹＥＳ）。次いで、制御部１１は、列数０の値に１を足して列数１とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１２３】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＹＥＳ、ステップＳ３１、ステップＳ３２、ステップＳ３３；ＹＥＳを経て、［レベル数２］［列数１］に記憶されているノードＩＤ［１１２０］のノード装置（ノードＤ）に存在確認メッセージを送信し、列数１の値に１を足して列数２とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１２４】
次いで、制御部１１は、ステップＳ２８；ＹＥＳを経て、ステップＳ２９において［レベル数２］［列数２］のエリアは自ノード装置であると判断し（ステップＳ２９；ＹＥＳ）、列数２の値に１を足して列数３とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１２５】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＹＥＳ、ステップＳ３１、ステップＳ３２、ステップＳ３３；ＹＥＳを経て、［レベル数２］［列数３］に記憶されているノードＩＤ［１３２３］のノード装置（ノードＦ）に存在確認メッセージを送信し、列数３の値に１を足して列数４とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１２６】
ここで、制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数４がテーブル全体の列数３以下でないため（ステップＳ２８；ＮＯ）、参加メッセージの転送先（送信先）のノード装置を認定する（ステップＳ３５）。このとき、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置がノードＩＤ［１０２３］のノードＧであるため、ノードＧを参加メッセージの転送先として認定する。
【０１２７】
次いで、制御部１１は、自ノード装置がルートノード、すなわち、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置であるか否かを判断する（ステップＳ３６）。上述のように、ここでは、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置がノードＩＤ［１０２３］のノードＧであり、自ノード装置がルートノードではないため、制御部１１はそのように判断し（ステップＳ３６；ＮＯ）、注目してきたレベル数に１を足したレベル数の情報を付加情報として付加した参加メッセージを作成する（ステップＳ３７）。ここでは、制御部１１は、注目してきたレベル数が２であり、これに１を足したレベル数３の付加情報を参加メッセージに付加する。
【０１２８】
次いで、制御部１１は、この作成した参加メッセージについて、転送先のノードＧへのメッセージ送信処理を行う（ステップＳ３８）。このメッセージ送信処理は、図１２を用いて上記したものと同様であり、ここでは、メッセージ送信処理が成功したものとする。
【０１２９】
次いで、制御部１１は、メッセージ送信処理が成功したか否かを判断し（ステップＳ３９）、ここでは存在確認メッセージの送信処理が成功したため、そのように判断し（ステップＳ３３；ＹＥＳ）、元々の処理の流れに戻る（リターン）。
【０１３０】
ここで、ステップＳ３２におけるメッセージ送信処理が失敗に終わった場合（図１２における＜リターン・失敗＞）、制御部１１は、ステップＳ３３において、メッセージ送信処理が成功でないと判断し（ステップＳ３３；ＮＯ）、該当するＩＰアドレス等のテーブルからの削除処理を行い（ステップＳ４１）、次のステップＳ３４に戻る。同様に、ステップＳ３８におけるメッセージ送信処理が失敗に終わった場合、制御部１１は、ステップＳ３９において、メッセージ送信処理が成功でないと判断し（ステップＳ３９；ＮＯ）、該当するＩＰアドレス等のテーブルからの削除処理を行い（ステップＳ４２）、再度、転送先を認定するステップＳ３５に戻る。
【０１３１】
（ノードＧ）
次いで、ノードＧにおいて、ノードＥから参加メッセージを転送され、受信した場合のメッセージ受信処理を以下に説明する。ノードＧは、図１７（Ｃ）に示すテーブルを記憶しているものとする。
【０１３２】
ノードＧの制御部１１は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理（ステップＳ５）がスタートすると、このメッセージ受信処理を開始する（スタート）。ステップＳ２１において、ノードＧの制御部１１が受信したメッセージは参加メッセージであると判断すると（ステップＳ２１；ＹＥＳ）、当該参加メッセージにレベル数を示す付加情報が含まれるか否かを判断する（ステップＳ２４）。ノードＥから受信した参加メッセージのパケットにはレベル数３を示す付加情報が含まれているため、制御部１１は、参加メッセージに付加情報が含まれていると判断し（ステップＳ２４；ＹＥＳ）、テーブルにおけるレベル数を付加情報に応じてレベル数３と決定する（ステップＳ４０）。
【０１３３】
次いで、制御部１１は、テーブルにおける列数（各レベルの注目桁Ｘ）を０と決定し（ステップＳ２７）、ノードＧのテーブルを示す図１７（Ｃ）におけるレベル３、注目桁Ｘ＝０のエリアに注目する。制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数０がテーブル全体の列数３以下であるため（ステップＳ２８；ＹＥＳ）、注目する［レベル数］［列数］に該当するノード装置が自ノード装置か否かを判断する（ステップＳ２９）。
【０１３４】
ここでは、図１７（Ｃ）に示すように、注目する［レベル数３］［列数０］に該当するノード装置が自ノード装置ではないため、そのように判断し（ステップＳ２９；ＮＯ）、次いで、注目する［レベル数］［列数］に他のノード装置の情報が記憶されているか否かを判断する（ステップＳ３０）。
【０１３５】
ここでは、［レベル数３］［列数０］に他のノード装置が記憶されていないため、そのように判断して（ステップＳ３０；ＮＯ）、このエリアを飛ばし、列数０の値に１を足して列数１とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１３６】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＮＯを経て、［レベル数３］［列数１］に他のノード装置が記憶されていないため、このエリアを飛ばし、列数１の値に１を足して列数２とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１３７】
次いで、制御部１１は、ステップＳ２８；ＹＥＳを経て、ステップＳ２９において［レベル数２］［列数２］のエリアは自ノード装置であると判断し（ステップＳ２９；ＹＥＳ）、列数２の値に１を足して列数３とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１３８】
次いで、制御部１１は、ステップＳ２８；ＹＥＳ、ステップＳ２９；ＮＯ、ステップＳ３０；ＹＥＳ、ステップＳ３１、ステップＳ３２、ステップＳ３３；ＹＥＳを経て、［レベル数２］［列数３］に記憶されているノードＩＤ［１０３２］のノード装置（ノードＨ）に存在確認メッセージを送信し、列数３の値に１を足して列数４とし（ステップＳ３４）、ステップＳ２８に戻る。
【０１３９】
ここで、制御部１１は、決定した列数がテーブル全体の列数以下か否かを判断し（ステップＳ２８）、決定した列数４がテーブル全体の列数３以下でないため（ステップＳ２８；ＮＯ）、参加メッセージの転送先（送信先）のノード装置を認定する（ステップＳ３５）。このとき、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置がノードＩＤ［１０２３］の自ノード装置（ノードＧ）であるため、ノードＧを参加メッセージの転送先として認定する。
【０１４０】
次いで、制御部１１は、自ノード装置がルートノード、すなわち、参加ノード装置であるノードＺのノードＩＤ［１０１３］に最も近いノード装置であるか否かを判断する（ステップＳ３６）。上述のように、ここでは、自ノード装置（ノードＧ）がルートノードであるため、制御部１１はそのように判断し（ステップＳ３６；ＹＥＳ）、元々の処理の流れに戻る（リターン）。
【０１４１】
このようにして、参加ノード装置であるノードＺのＤＨＴのルーティングテーブルを作成するための存在確認メッセージの送信処理と、参加メッセージの転送処理と、が終了する。
【０１４２】
（ノードＡ）
一方、ノードＡにおいて、コンタクトノードＢから送信された存在確認メッセージを受信した場合のメッセージ受信処理を以下に説明する。
【０１４３】
ノードＡの制御部１１は、存在確認メッセージを受信し、上述の基本処理におけるメッセージ受信処理（ステップＳ５）がスタートすると、このメッセージ受信処理を開始する（スタート）。ここでは、ノードＢからの存在確認メッセージを受信した前提で説明する。
【０１４４】
メッセージ受信処理が開始されると、制御部１１は、受信したメッセージが参加メッセージか否かを判断する（ステップＳ２１）。ここでは、受信したメッセージは存在確認メッセージであるため、制御部１１は、受信したメッセージが参加メッセージでないと判断し（ステップＳ２１；ＮＯ）、次いで、受信したメッセージが存在確認メッセージか否かを判断する（ステップＳ２２）。
【０１４５】
制御部１１は、受信したメッセージは存在確認メッセージであると判断し（ステップＳ２２；ＹＥＳ）、存在確認メッセージに付加された参加メッセージ送信元であるノードＺのＩＰアドレスを取得し、ノードＺへ送信する応答メッセージを作成する（ステップＳ４３）。次いで、この作成した応答メッセージについて、送信先のノードＺへのメッセージ送信処理を行う（ステップＳ４４）。このメッセージ送信処理は、図１２を用いて上記したものと同様であり、ここでは、メッセージ送信処理が成功したものとする。
【０１４６】
次いで、制御部１１は、メッセージ送信処理が成功したか否かを判断し（ステップＳ４５）、ここでは存在確認メッセージの送信処理が成功したため、そのように判断し（ステップＳ４５；ＹＥＳ）、元々の処理の流れに戻る（リターン）。
【０１４７】
なお、ステップＳ４４におけるメッセージ送信処理が失敗に終わった場合（図１２における＜リターン・失敗＞）、制御部１１は、ステップＳ４５において、メッセージ送信処理が成功でないと判断し（ステップＳ４５；ＮＯ）、テーブルから該当するＩＰアドレス等を削除する削除処理を行い（ステップＳ４６）元々の処理の流れに戻る（リターン）。
【０１４８】
その他、ノード装置１が受信したメッセージが参加メッセージ、存在確認メッセージ及び応答メッセージのいずれでもない場合には、ステップＳ２１；ＮＯ、ステップＳ２２；ＮＯ、ステップＳ２３；ＮＯと判断され、他のメッセージを受信した場合の処理を行い（ステップＳ４７）、元々の処理の流れに戻る（リターン）。
【０１４９】
（４）ノード装置における新規ノード装置のテーブルへの登録処理
図１４及び上述の図５を参照してノードＺにおける新規ノード装置の登録処理について説明する。なお、ノードＺは、ノードＪからメッセージを受信し、次いで、ノードＫ、ノードＬからメッセージを受信したものとして、新規ノード装置の登録処理について説明する。
【０１５０】
ノードＺの制御部１１は、上述の基本処理における新規ノード装置の登録処理（ステップＳ６）がスタートすると、このテーブルへの登録処理を開始する（スタート）。ここでは、まずノードＪからメッセージを受信したものとして、説明する。
【０１５１】
テーブルへの登録処理が開始されると、制御部１１は、受信したメッセージから送信元ノード装置であるノードＪの各情報、具体的には、ＩＰアドレス、ＨＯＰ数の情報等を取得する（ステップＳ５１）。次いで、制御部１１は、取得したＩＰアドレスから、テーブルにおける登録するエリアを認定する（ステップＳ５２）。ノードＪは、図５（Ｄ）に示すように、ノードＩＤが０３３１であるため、その登録するエリアは、図５（Ａ）において、レベル１、各レベルの注目桁Ｘ＝０である。
【０１５２】
次いで、制御部１１は、このレベル１、各レベルの注目桁Ｘ＝０のエリアが空か否かを判断する（ステップＳ５３）。ここでは、図５（Ａ）に示すように、当該エリアにノードＡの情報が登録されているため、制御部１１は、エリアが空でないと判断し（ステップＳ５３；ＮＯ）、エリアに登録されているノードＡのＨＯＰ数がメッセージ送信元であるノードＪのＨＯＰ数以上か否かを判断する（ステップＳ５４）。このとき、ノードＡのＨＯＰ数（４）がノードＪのＨＯＰ数（７）以上ではないため、そのように判断し（ステップＳ５４；ＮＯ）、元々の処理の流れに戻る（リターン）。
【０１５３】
次いで、ノードＺは、ノードＫからメッセージを受信したものとして、以下に説明する。ノードＺの制御部１１は、上述の基本処理における新規ノード装置の登録処理（ステップＳ６）がスタートすると、このテーブルへの登録処理を開始する（スタート）。
【０１５４】
テーブルへの登録処理が開始されると、制御部１１は、受信したメッセージから送信元ノード装置であるノードＫの各情報、具体的には、ＩＰアドレス、ＨＯＰ数の情報等を取得する（ステップＳ５１）。次いで、制御部１１は、取得したＩＰアドレスから、テーブルにおける登録するエリアを認定する（ステップＳ５２）。ノードＫは、図５（Ｅ）に示すように、ノードＩＤが０１０３であるため、その登録するエリアは、図５（Ａ）において、レベル１、各レベルの注目桁Ｘ＝０である。
【０１５５】
次いで、制御部１１は、このレベル１、各レベルの注目桁Ｘ＝０のエリアが空か否かを判断する（ステップＳ５３）。ここでは、図５（Ａ）に示すように、当該エリアにノードＡの情報が登録されているため、制御部１１は、エリアが空でないと判断し（ステップＳ５３；ＮＯ）、エリアに登録されているノードＡのＨＯＰ数がメッセージ送信元であるノードＫのＨＯＰ数以上か否かを判断する（ステップＳ５４）。このとき、ノードＡのＨＯＰ数（４）がノードＫのＨＯＰ数（２）以上であるため、そのように判断し（ステップＳ５４；ＹＥＳ）、登録していたノードＡの情報を削除し（ステップＳ５５）、メッセージ送信元であるノードＫの情報を登録し（ステップＳ５６）、元々の処理の流れに戻る（リターン）。
【０１５６】
次いで、ノードＺは、ノードＬのノード装置１からメッセージを受信したものとして、以下に説明する。ノードＺの制御部１１は、上述の基本処理における新規ノード装置の登録処理（ステップＳ６）がスタートすると、このテーブルへの登録処理を開始する（スタート）。
【０１５７】
テーブルへの登録処理が開始されると、制御部１１は、受信したメッセージから送信元ノード装置であるノードＬの各情報、具体的には、ＩＰアドレス、ＨＯＰ数の情報等を取得する（ステップＳ５１）。次いで、制御部１１は、取得したＩＰアドレスから、テーブルにおける登録するエリアを認定する（ステップＳ５２）。ノードＬは、そのノードＩＤから、登録するエリアは図５（Ａ）において、レベル３、各レベルの注目桁Ｘ＝０である。
【０１５８】
次いで、制御部１１は、このレベル３、各レベルの注目桁Ｘ＝０のエリアが空か否かを判断する（ステップＳ５３）。ここでは、図５（Ａ）に示すように、当該エリアは何も登録されておらず空であるため、制御部１１は、エリアが空であると判断し（ステップＳ５３；ＹＥＳ）、メッセージ送信元であるノードＬの情報を登録し（ステップＳ５６）、元々の処理の流れに戻る（リターン）。
【０１５９】
（５）ノード装置における他のノード装置のテーブルからの削除処理
図１５を参照してノード装置１における他のノード装置のテーブルからの削除処理について説明する。なお、この処理は、ノード装置１が、上述のステップＳ４１、Ｓ４２、Ｓ４６、Ｓ５５におけるノード情報の削除処理を行う場合の処理である。以下においては、ノードＺがテーブルに登録していたノードＡの情報を削除するステップＳ５５の処理として説明する。
【０１６０】
ノードＺの制御部１１は、ノードＡをテーブルから削除する削除処理（ステップＳ５５）がスタートすると、この処理を開始する（スタート）。
【０１６１】
テーブルからの削除処理が開始されると、制御部１１は、削除するノードＡのＩＰアドレス（112.***.***.***）から、ノードＩＤ［０２１１］を算出し、テーブルのエリア［レベル数１］［列数１］を認定する（ステップＳ６１）。次いで、制御部１１は、削除するノード装置（ノードＡ）がテーブルに登録されているノード装置であるか否かを判断する（ステップＳ６２）。ここでは、削除するノード装置（ノードＡ）がテーブルに登録されているノード装置であるため、制御部１１はそのように判断し（ステップＳ６２；ＹＥＳ）、ノードＡのＩＰアドレス、ポート番号、ＨＯＰ数、等の登録されていた情報を削除し（ステップＳ６３）、元々の処理の流れに戻る（リターン）。なお、ステップＳ６２において、制御部１１が、削除するノード装置１がテーブルに登録されているノード装置でないと判断した場合には（ステップＳ６２；ＮＯ）、そのまま削除処理を行わずに元々の処理の流れに戻る（リターン）。
【０１６２】
［４．変形形態］
上述の各実施形態においては、ノード装置１がＤＨＴのルーティングテーブルを記憶しているものとして、登録されている他のノード装置の情報を変更するか否かを決定することとしているが、この実施形態に限定されない。ノード装置１は、その記憶手段が一以上の特定のノード装置１を示すノード情報と、ノード情報に対応する固有の識別情報と、を識別情報の属する領域毎に対応付けて記憶していればよい。
【０１６３】
上述の各実施形態においては、本発明における通信負荷の情報として、ＴＴＬの値、ＨＯＰ数（ネットワーク的な距離）を用いて説明したが、通信負荷の情報はこれに限定されない。通信負荷の情報としては、他に、ＲＴＴ（パケットの往復遅延時間）、通信の伝送速度、有効帯域、通信ネットワークの稼働率、該当ノード装置の通信稼働率等を用いてもよい。本発明においては、通信システムにおける通信ネットワーク全体の通信負荷が小さくなるように、他のノード装置と自ノード装置との二装置間の通信が通信ネットワーク全体の通信負荷に与える影響の程度のパラメータを通信負荷の情報として用いることができる。
【０１６４】
上記実施形態においては、情報としてメッセージを受信した際にテーブルの登録された情報を変更するか否かを決定することとしているが、情報の受信については、メッセージの受信に限定されない。例えば、図７におけるノードＺがＡＣＫ／ＳＹＮパケットを受信した場合のように、他のノード装置からパケットを受信し、相手のノード装置の存在を確認できた場合であれば、情報を受信したとして、比較手段、記憶情報変更手段を機能させることができる。
【０１６５】
上記実施形態においては、ＲＡＷソケットを用いることにより、情報を送信する際に通信負荷の情報を併せて送信する形態とし、情報を受信する際に送信元のノード装置に対する通信付加の情報を取得できる形態としたが、通信負荷の情報の取得方法は、これに限定されず、他のノード装置に通信負荷の情報を問い合わせて通信負荷の情報を取得するようにしてもよい。また、本実施形態においては、記憶部１２が、ＤＨＴのルーティングテーブルと併せて通信負荷の情報を記憶している形態としたが、これに限定されず、比較手段において必要が生じた場合に、その都度通信負荷の情報を他のノード装置から取得することとしてもよい。
【０１６６】
図１３におけるステップＳ２６において、参加メッセージの送信処理が失敗する場合については省略して説明したが、図１２に示すように送信処理が失敗に終わった場合には、記憶している他のノード装置に再度参加メッセージを送信する態様としてもよいし、サーバ装置等にコンタクトノードの情報を問い合わせる態様としてもよい。
【０１６７】
上記実施形態においては、通信を確立する初期段階において、インターフェイスとしてＲＡＷソケットを用いて、ＴＴＬの値の情報を取得することとしたが、ノード装置同士が互いに通信負荷の情報を取得する方法としては、この形態に限定されず、他の方法によって通信負荷の情報を得てもよい。
【０１６８】
本実施形態のノード装置１が情報通信システムＳに参加する際の各ノード装置やシステム全体の動作は、図１６及び図１７を用いて説明したものに限定されず、参加したノード装置１は、その他種々の方法で他のノード装置のノード情報等を取得し、テーブルを作成することができる。
【０１６９】
また、上述のノード装置１の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係る制御部１１として機能させることも可能である。
【図面の簡単な説明】
【０１７０】
【図１】本実施形態に係る情報通信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＤＨＴによるＩＤ空間及びルーティングテーブルが作成される様子の一例を示す図である。
【図３】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図４】ノード装置１の概要構成例を示す図である。
【図５】（Ａ）は、実施形態に用いられるノードＺが保持するルーティングテーブルの一例、（Ｂ）〜（Ｆ）は、登録されているノード装置及び新規のノード装置に対応する情報を示す各例である。
【図６】（Ａ）は、自ノード装置と他のノード装置の通信形態を示す例であり、（Ｂ）は、送受信するパケットを模式的に表した図である。
【図７】通常のＴＣＰプロトコルを用いた場合のコネクションの確立方法を示す図である。
【図８】通常のＴＣＰプロトコルを用いた場合のコネクションの切断方法を示す図である。
【図９】ＴＣＰプロトコルを用いた場合のＴＴＬの測定方法を示す図である。
【図１０】ＵＤＰプロトコルを用いた場合のＴＴＬの測定方法を示す図である。
【図１１】ノード装置１における基本処理を示すフローチャートである。
【図１２】ノード装置１におけるメッセージ送信処理を示すフローチャートである。
【図１３】ノード装置１におけるメッセージ送信処理を示すフローチャートである。
【図１４】ノード装置１における他のノード装置１のテーブルへの登録処理を示すフローチャートである。
【図１５】ノード装置１における他のノード装置１のテーブルからの削除処理を示すフローチャートである。
【図１６】ノード装置１が通信ネットワークに参加した後にＤＨＴのルーティングテーブルを作成する態様を説明する図である。
【図１７】（Ａ）〜（Ｃ）は、他のノード装置１が記憶するＤＨＴのルーティングテーブルを示す各図である。
【符号の説明】
【０１７１】
１  ノード装置
８  ネットワーク
９  オーバレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  情報通信システム
【図１】
0004692355.tif 000002
【図２】
0004692355.tif 000003
【図３】
0004692355.tif 000004
【図４】
0004692355.tif 000005
【図５】
0004692355.tif 000006
【図６】
0004692355.tif 000007
【図７】
0004692355.tif 000008
【図８】
0004692355.tif 000009
【図９】
0004692355.tif 000010
【図１０】
0004692355.tif 000011
【図１１】
0004692355.tif 000012
【図１２】
0004692355.tif 000013
【図１３】
0004692355.tif 000014
【図１４】
0004692355.tif 000015
【図１５】
0004692355.tif 000016
【図１６】
0004692355.tif 000017
【図１７】
0004692355.tif 000018