説明

情報通信システムに含まれるノード装置及びその情報処理プログラム

【課題】通信経路を介して互いに接続された複数のノード装置を備えたピアツーピア型の情報通信システムにおいて、失効リストに含まれる不正ノード装置への接続を防止し、しかも無駄な処理の実行を回避することによって処理負担を軽減すること。
【解決手段】通信経路を介して互いに接続された複数のノード装置の参加により形成される情報通信システムにおけるノード装置であって、当該情報通信システムへの参加資格が失効したノード装置の情報を含む失効リストを記憶する失効リスト記憶手段と、所定の情報を保持するノード装置の所在情報を記憶する情報保持ノード記憶手段と、他のノード装置からの要求に応じて、情報保持ノード記憶手段から所定の情報を保持するノード装置の所在情報を取り出して、他のノード装置へ送信する要求応答手段と、失効リストに含まれるノード装置の所在情報を情報保持ノード記憶手段から削除する情報保持ノード削除手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信経路を介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の情報通信システムの技術分野に関する。
【背景技術】
【0002】
近年、インターネットなどの通信経路を介して、音楽データ、映画データ、文書データなどの情報を配信する、いわゆる情報通信システムの研究が盛んである。
【0003】
例えば、分散ハッシュテーブル(DHT(Distributed Hash Table))を利用して論理的にオーバーレイネットワークを構築することにより、コンテンツデータなどの情報を効率的に分散配置して負荷分散を図る技術が提案されている。
【0004】
この情報通信システムにおいては、各ノード装置(端末装置)が当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報(例えば、IPアドレス。以下、「所在情報」とする。)を認識しているわけではなく、参加の際などに得られる一部のノード装置への所在情報だけを保持しており、かかる所在情報に基づき、情報の検索等を行うようになっている(特許文献1参照)。
【0005】
また、この情報通信システムにおいては、情報を保持するノード装置(以下、「情報保持ノード装置」とする。)とは別に、情報を保持するノード装置の所在情報を管理しているノード装置(以下、「ルートノード装置」とする。)が配置されており、情報を取得しようとするノード装置(以下、「リクエストノード装置」とする。)は、まず、ルートノード装置に情報保持ノード装置の所在情報を問い合わせて取得し、取得した所在情報に基づいて情報保持ノード装置にアクセスして当該情報保持ノード装置から情報を取得するようにしている。
【特許文献1】特開2006−197400号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
このような情報通信システムにおいては、オーバーレイネットワークに参加しているノード装置が盗難などにより悪意のある第三者に渡った場合に、この悪意の第三者がノード装置(以下、「不正ノード装置」とする。)を操作して情報通信システムに参加することを防止する必要がある。
【0007】
そこで、このような不正ノード装置を情報通信システムから排除するための方法として、不正ノード装置の情報をリスト化した失効リストをこの情報通信システムに参加している全ノード装置に配信方法がある。
【0008】
そして、各ノード装置は、他のノード装置との間で接続を開始する際、その他のノード装置が失効リストに含まれているときには、他のノード装置との接続を行わないようにすることで、不正ノード装置が情報通信システムに参加することを防止する。
【0009】
しかしながら、この方法では、失効リストに含まれるノード装置と接続を開始する際に、不正ノード装置か否かを判断するので、無駄な処理を実行しまうことがある。例えば、情報保持ノード装置が不正ノード装置であった場合でも、リクエストノード装置はルートノード装置から不正ノード装置である情報保持ノード装置の所在情報を取得し、この不正ノード装置へのアクセスしてしまうことになるため、結果的に、無駄な処理を実行してしまうことになる。
【0010】
本発明は、以上の不都合に鑑みてなされたものであり、通信経路を介して互いに接続された複数のノード装置を備えたピアツーピア型の情報通信システムにおいて、失効リストに含まれる不正ノード装置への接続を防止し、しかも無駄な処理の実行を回避することによって処理負担を軽減することができるノード装置及びそのプログラムを提供することを課題とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、請求項1に記載の発明は、通信経路を介して互いに接続された複数のノード装置の参加により形成される情報通信システムにおける前記ノード装置であって、当該情報通信システムへの参加資格が失効したノード装置の情報を含む失効リストを記憶する失効リスト記憶手段と、所定の情報を保持するノード装置の所在情報を記憶する情報保持ノード記憶手段と、他のノード装置からの要求に応じて、前記情報保持ノード記憶手段から前記所定の情報を保持するノード装置の所在情報を取り出して、前記他のノード装置へ送信する要求応答手段と、前記失効リストに含まれるノード装置の所在情報を前記情報保持ノード記憶手段から削除する情報保持ノード削除手段とを有することを特徴とする。
【0012】
また、請求項2に記載の発明は、請求項1に記載の発明において、所定の規則に従い、当該情報通信システムに含まれる前記ノード装置を複数のグループに分けて当該各グループを第1段階のグループとし、前記第1段階のグループのうち自ノード装置が属するグループをさらに複数のグループに分けて当該各グループを第2段階のグループとし、前記第2段階のグループ分けと同様のグループ分けにより第n(nは3以上の自然数)段階までの各グループとして、各段階の各グループに属する一のノード装置の所在情報をそれぞれ記憶する記憶手段と、前記失効リストに含まれるノード装置の所在情報を前記記憶手段から削除する失効処理手段と、を備えることを特徴とする。
【0013】
また、請求項3に記載の発明は、請求項1又は請求項2に記載の発明において、所定の規則に従って前記複数のノード装置が複数のグループに分けられた各前記グループに含まれる一の前記ノード装置を決定し、決定された前記各グループのノード装置に向けて送信すべき前記失効リストを送信する失効リスト送信手段と、他の前記ノード装置から受信した前記失効リストが自ノード装置を含むグループ宛の場合には、自ノード装置が属する前記グループが前記所定の規則に従ってさらに複数のグループに分けられた各前記グループに含まれる一の前記ノード装置を決定し、決定された前記各グループ全ての前記ノード装置に向けて前記失効リストを送信する失効リスト転送手段とを備えることを特徴とする。
【0014】
また、請求項4に記載の発明は、請求項3に記載の発明において、前記失効リスト送信手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、所定の段階の各グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて前記失効リストを送信し、前記失効リスト転送手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、前記自ノード装置が属するグループの段階の次段階の各前記グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて前記失効リストを送信することを特徴とする。
【0015】
また、請求項5に記載の発明は、請求項3又は請求項4に記載の発明において、前記失効リスト転送手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、前記自ノード装置が属するグループの段階の次段階よりも下位の段階の各前記グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて受信した前記失効リストを送信することを特徴とする。
【0016】
また、請求項6に記載の発明は、請求項2から5のいずれか一項に記載の発明において、前記記憶手段は、前記所定の規則として分散ハッシュテーブルを利用して、前記ノード装置の前記所在情報を記憶することを特徴とする。
【0017】
また、請求項7に記載の発明は、請求項1から6のいずれか一項に記載の発明において、前記失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置において他の前記ノード装置との間の接続認証に用いる電子証明書が含まれることを特徴とする。
【0018】
また、請求項8に記載の発明は、請求項1から6のいずれか一項に記載の発明において、前記失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置の固有情報が含まれることを特徴とする。
【0019】
また、請求項9に記載の発明は、コンピュータを、請求項1から8のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラムとした。
【発明の効果】
【0020】
請求項1,9に記載の発明によれば、所定の情報を保持するノード装置の所在情報を情報保持ノード記憶手段に記憶し、他のノード装置からの要求に応じて、情報保持ノード記憶手段から所定の情報を保持するノード装置の所在情報を取り出して、他のノード装置へ送信するノード装置において、失効リストに含まれるノード装置の所在情報を情報保持ノード記憶手段から削除するようにしたので、失効リストに含まれるノード装置に対して他のノード装置がアクセスしてしまうことを効率的に抑制することができる。
【0021】
また、請求項2に記載の発明によれば、失効リストに含まれるノード装置の所在情報を記憶手段(例えば、後述のルーティングテーブル)から削除するようにしているため、失効リストの送信の際に、失効リストに含まれるノード装置であるか否かの判断処理を軽減することができる。
【0022】
また、請求項3に記載の発明によれば、各段階の各グループに属する一のノード装置の所在情報をそれぞれ記憶する記憶手段を設け、この記憶手段に記憶された情報に基づいて、失効リストを送信するノード装置を決定するので、失効リストを送信すべきノード装置を決定する構成が簡易なものとなる。
【0023】
また、請求項4に記載の発明によれば、次段階のグループ群に属するグループのノード装置に失効リストを送信及び転送するため、より多くのノード装置に同一の失効リストを送信できることとなる。
【0024】
また、請求項5に記載の発明によれば、失効リストを受信したノード装置は、さらに下位の段階のグループ群に属するグループのノード装置に失効リストを送信するため、より多くのノード装置に同一の失効リストを送信できることとなる。
【0025】
また、請求項6に記載の発明によれば、分散ハッシュテーブル(DHT)を用いることにより、各段階、すなわち、ノードIDにおける各桁数の領域(グループ、グループ群)に属する複数のノード装置に対してノード装置は失効リストを送信することができる。また、DHTを利用して、所定の段階のグループ群や所定のグループのノード装置のみに対して失効リストを送信することも可能となる。
【0026】
また、請求項7に記載の発明によれば、失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置において他の前記ノード装置との間の接続認証に用いる電子証明書が含まれるので、ノード装置間での通信の際に失効リストに含まれるノード装置の判定を行うことができる。
【0027】
また、請求項8に記載の発明によれば、失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置の固有情報が含まれるので、失効リストに含まれるノード装置の判定が容易となる。
【発明を実施するための最良の形態】
【0028】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、DHT、送信先グループ特定値(IDマスク)及び識別情報(ターゲットノードID)を利用して失効リストをノード装置に送信する情報通信システムに本発明を適用した場合の実施形態である。
【0029】
[1.情報通信システムSの構成等]
まず始めに、図1を参照して、情報通信システムSの概要構成等について説明する。図1は、本実施形態に係る情報通信システムSにおけるノード装置等の接続態様の一例を示す図である。この情報通信システムSは、通信経路を介して互いに接続された複数のノード装置の参加により形成される情報通信システムであり、ノード装置間で情報の送受信を行うものである。ここで、ノード装置間で送受信される情報として、音楽、映画、トーク番組などのコンテンツデータ(音楽データ、映像データ、文書データなどを含む)がある。
【0030】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
【0031】
情報通信システムSは、図1の上部枠100内に示すように、通信経路としてのネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成され、ピアツーピア(P2P)方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報としての固有の製造番号(例えば、MACアドレス)及びIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号及びIPアドレスは、複数のノード装置間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
【0032】
[1.1.DHTの概要]
以下に、本実施形態に係る分散ハッシュテーブル(以下、「DHT」(Distributed Hash Table)と呼ぶ。)を利用したアルゴリズムについて説明する。
【0033】
上述した情報通信システムSにおいて、当該ノード装置1同士が、互いに情報をやり取りする際には、お互いの所在情報であるIPアドレスを知っていなければならない。
【0034】
例えば、情報を互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置1の電源が頻繁にON或いはOFFとすると、各ノード装置1において記憶している当該任意のノード装置1のIPアドレスの更新が頻繁になり、運用上困難となる。
【0035】
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限の一部のノード装置1のIPアドレスだけを記憶しておき、IPアドレスを記憶していないノード装置1については、各ノード装置1間で互いに情報を転送し合うことにより情報を届けるシステムが考案されている。
【0036】
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【0037】
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード装置1を、情報通信システムSに参加(言い換えれば、オーバーレイネットワーク9に参加)しているノード装置1という。
【0038】
情報通信システムSに参加している各ノード装置1の識別番号であるノードIDとして、それぞれのノード装置1毎にユニークな番号(固有番号)を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2128(2の128乗)台のノード装置を運用できる。
【0039】
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置1のIPアドレス或いは製造番号等のノード装置1毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。
【0040】
このように共通のハッシュ関数によりハッシュ化されて求められたノードIDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
【0041】
また、情報通信システムSに参加している複数のノード装置1には、一のノード装置1から他のノード装置1に配信される情報(例えば、音楽データ、映画データ、文書データ等)が分散して記憶されているが、これらの情報にも、それぞれ固有の識別番号(以下、「情報ID」と呼ぶ。)を付与する。
【0042】
そして、当該情報IDは、ノードIDと同様の長さ(例えば、128bit等)とし、情報の名称(例えば、データファイル名)などが、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化される(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置される)。
【0043】
このように、各ノード装置1及び各情報に付与されたノードID及び情報IDは、共通のハッシュ関数によって生成したため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードID及び情報IDを付与し、図示したものである。図中丸点はノードIDを、四角形は情報IDを示し、反時計回りでIDが増加するものとする。
【0044】
本実施形態においては、上述のように「ある情報IDを有する情報を管理するノード装置は、その情報IDに近いノードIDを有するノード装置である」という規則を適用しており、「近い」ことの定義は、当該情報IDを超えず、情報IDとノードIDとの差が一番少ないものとするが、実際には、各情報の管理を各ノード装置1に割り振る際に、一貫していれば他の定義でもよい。
【0045】
図2に示す例では、この定義に基づいて、情報IDaは、当該情報IDaに近いノードID(以下、「ノードIDa」と呼ぶ。)を有するノード装置1に管理され、情報IDbは、当該情報IDbに近いノードID(以下、「ノードIDb」と呼ぶ。)を有するノード装置1に管理され、情報IDcは、当該情報IDcに近いノードID(以下、「ノードIDc」と呼ぶ。)を有するノード装置1に管理される。
【0046】
ここで、「管理」とは、情報を保持していることを意味するのではなく、「情報が何れのノード装置に保持されているかを知っている」ことを意味する。すなわち、情報通信システムS内で送受信する情報を保持するノード装置1(以下、「情報保持ノード装置」と呼ぶ。)へのリンク情報(情報保持ノード装置の所在情報であるIPアドレス)を保持することを意味する。例えば、図2においては、ノードIDaを有するノード装置1は、情報IDaを有する情報が何れのノード装置1に保持されているかを知っており、ノードIDbを有するノード装置1及びノードIDcを有するノード装置1も同様にそれぞれ情報IDbを有する情報及び情報IDcを有する情報が何れのノード装置1に保持されているかを知っている、ということになる。
【0047】
このように、ある情報が何れのノード装置1に保持されているかを知っているノード装置1を、その情報のルートノード装置と呼ぶ。つまり、ノードIDaを有するノード装置1は、情報IDaを有する情報のルートノード装置であって、ノードIDbを有するノード装置1は、情報IDbを有する情報のルートノード装置であって、ノードIDcを有するノード装置1は、情報IDcを有する情報のルートノード装置である。
【0048】
また、情報通信システムSには、図1に示すように、情報通信システムSに情報を投入する機能、すなわち情報通信システムS内のノード装置1を情報保持ノード装置とするために情報をノード装置1へ配布する機能と、カタログリストを生成してノード装置1へ提供する機能とを有する情報投入装置10が配置されている。この情報投入装置10は、さらに、後述する失効リストを一のノード装置に送信する機能も有している。
【0049】
[1.2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブル(記憶手段の一例に相当)の作成手法の一例について説明する。図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【0050】
まず、図3(a)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すことにする。そして、ノード装置1nのノードIDを「1133」とし、このノード装置1nのルーティングテーブルを作る例について説明する。
【0051】
(レベル1のルーティング)
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置1nは、当該ノード装置1n自身のノードIDが「1133」であるため、図3(a)中左下「1XXX」のエリアに存在することになる。そして、ノード装置1nは、参加要求を受信した他のノード装置1から送信された情報等から、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在するノード装置1を選択し、当該ノード装置1のノードID及びIPアドレスをレベル1のテーブルに記憶する。図4にレベル1のテーブルの一例を示す。このテーブルでは、「0XXX」のエリアのノードIDとして「0100」、「2XXX」のエリアのノードIDとして「2133」、「3XXX」のエリアのノードIDとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル1の2列目はノード装置1n自身を示しているため、IPアドレスを記憶する必要はない。
【0052】
(レベル2のルーティング)
次に、図3(b)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「1xxx」を更に4分割し、更に4つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分ける。そして、上記と同様に自分の存在するエリア「11XX」以外のエリアに存在するノード装置1を適当に選択し、当該ノード装置1のノードID及びIPアドレスをレベル2のテーブルに記憶する。図4にレベル2のテーブルの一例を示す。このテーブルでは、「10XX」のエリアのノードIDとして「1003」、「12XX」のエリアのノードIDとして「1221」が、「13XX」のエリアのノードIDとして「1313」がそれぞれ選択されている状態を示している。なお、レベル2の2列目はノード装置1nが存在するエリア「11XX」であり、後述するレベル3にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置1が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
【0053】
(レベル3のルーティング)
更に、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「11XX」を更に4分割し、更に4つのエリア「110X」「111X」、「112X」、「113X」に分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在するノード装置1を適当に選択し、当該ノード装置1のノードID及びIPアドレスをレベル3のテーブルに記憶する。図4にレベル3のテーブルの一例を示す。レベル3の4列目はノード装置1nが存在するエリアであり、後述するレベル4にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置1が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
【0054】
このようにして、レベル4まで同様にルーティングテーブルを図4に示す如く作成することにより、8bitのID全てを網羅することができる。なお、レベルが上がる毎にテーブルの中に空白が目立つようになる。
【0055】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。このように、各ノード装置1は、情報通信システムSにおける複数のノード装置1のうち一部のノード装置1の識別情報であるノードID及びIPアドレスを関連付けたルーティングテーブルを有している。
【0056】
[1.3.インデックステーブルへの登録方法]
このような構成の情報通信システムSの中で、例えば、あるノード装置1が新しい情報を、情報通信システムS上の他のノード装置1から検索可能となるように公開する際の手法について述べる。
【0057】
情報投入装置10から配布された情報を記憶して情報保持ノード装置となったノード装置1は、記憶した情報の情報IDと同じノードIDを持つノード装置1に向けて(このノード装置1が実在するか否かはこの時点ではわからない。)、自ノード装置(情報を保持する情報保持ノード装置として)の所在情報であるIPアドレス等の登録を要求するメッセージ(以下、「登録メッセージ」とする。)を送信する。
【0058】
具体的には、図5(a),(b)に示すように、例えば、ノード装置1mが情報ID「3020」の情報保持ノード装置となったとき、ノード装置1mは、情報ID「3020」を宛先識別情報とした登録メッセージを生成し、この登録メッセージを自己が保持しているルーティングテーブルを参照して送信する。ノード装置1mが、図4の例と同様のルーティングテーブルを持っていたとすると、情報ID「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1a(ノードID「3213」)に対して登録メッセージを送信する。このように、登録メッセージは情報保持ノード装置として保持した情報の情報IDを含むものであり、この情報IDは登録メッセージにおいて宛先識別情報として用いられる。
【0059】
次に、登録メッセージを受信したノード装置1aは、この登録メッセージが自ノード装置1a宛のメッセージであるか否かを判定する。自ノード装置1a宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自ノード装置1aの識別情報であるノードIDと近いか否かが判定される。即ち、宛先識別情報に対して、ノード装置1a自身が保持しているルーティングテーブル(テーブルの値は図示しない)に記憶されているノード装置1のノードIDから、一番近いノード装置1のノードIDが、自身であるか他のノード装置1であるかを判定する。
【0060】
そして、自ノード装置1aのノードIDよりも他のノード装置1のノードIDの方が、宛先識別情報に近いため、ノード装置1aは、当該ノード装置1a自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「30XX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1b(ノードID「3031」)に対して登録メッセージを転送する。
【0061】
このように、情報IDの桁を上から順に適合していく要領で登録メッセージの転送が進み、最終的に当該情報を管理するノード装置1c、すなわちルートノード装置に辿り着くと、当該ノード装置1自身がその情報のルートノード装置となるべきだと判断し、当該登録メッセージに含まれる当該情報ID及び情報保持ノード装置のノードIDやIPアドレス等(以下、これらを「インデックス情報」と呼ぶ。)を記憶する。そして、後述するように、他のノード装置から検索メッセージを受信すると、検索メッセージを送信したノード装置1へ情報保持ノード装置の所在情報であるIPアドレスをインデックステーブル(情報保持ノード記憶手段の一例に相当)から選択して通知する。
【0062】
ところで、ルートノード装置におけるインデックス情報の保持は、図6に示すようなインデックステーブルにより行われる。図6はルートノード装置1cにおけるインデックステーブルの例を示したものであり、自ノード装置1が管理対象である情報ID「3020」の情報に関する情報保持ノード装置のノードID、IPアドレス、紹介時間などを記憶している。
【0063】
[1.4.情報の取得方法]
次に、図7を参照して、情報を保持しているノード装置1の検索方法の一例について説明する。図7は、DHTにより情報を保持しているノード装置1が検索される様子の一例を示す図である。
【0064】
ここでは、ノードID「1133」のノード装置1nがリクエストノード装置として、情報ID「3020」を有する情報を探す際の手順について説明する。
【0065】
リクエストノード装置1nは、図7に示すように、情報ID「3020」と同じエリアのノードIDを持つノード装置のノードIDを宛先とし、情報ID「3020」を宛先識別情報として、情報保持ノード装置情報(情報保持ノード装置の所在情報であるIPアドレスを含む情報)の送信要求(以下、「検索メッセージ」と呼ぶ。)を送信する(図7(1)参照。)。そして、この検索メッセージも、上記登録メッセージと同様にルーティングテーブルに従って、次々と転送されていき(図7(2)参照。)、最終的に当該情報を管理するノード装置1c(ノードID「3011」)、すなわちルートノード装置に辿り着くと、当該ルートノード装置は、検索メッセージに含まれる情報ID「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該情報を所有している情報保持ノード装置(ここでは、ノード装置1mとする。)のIPアドレス等をリクエストノード装置1nに返信する(図7(3)参照。)。
【0066】
リクエストノード装置1nは、上記ルートノード装置1cから、情報ID「3020」の情報の所在情報、即ち、情報ID「3020」の情報を保持する情報保持ノード装置1mのIPアドレスを受信して知ることになり、情報ID「3020」の情報保持ノード装置1mに、情報を要求する情報送信要求(以下、「情報送信要求メッセージ」と呼ぶ。)を送信することにより(図7(4)参照。)、当該情報保持ノード装置1mから、その情報を取得することになる(図7(5)参照。)。
【0067】
[1.5.失効リストによる情報処理]
次に、ノード装置1における失効リストによる情報処理について説明する。この失効リストは、情報通信システムSへの参加資格が失効したノード装置の情報をリスト化したもの、言い換えれば、不正ノード装置の情報をリスト化したものであり、図8に示すように、不正ノード装置のノードIDが含まれている。各ノード装置1は、後述するように配信された失効リストを記憶し、この失効リストによって(a)他のノード装置1との通信の可否の判断、(b)不正ノード装置の情報をルーティングテーブルから削除、(c)不正ノード装置の情報をインデックステーブルから削除、などの処理を行うものである。
【0068】
(他ノード装置との通信の可否の判断)
ノード装置1は、他のノード装置1と通信を行うとき、失効リストに基づいて通信の可否を判断する。例えば、ノード装置1は、情報を取得する際、情報保持ノード装置のノードIDが失効リストに含まれているときには、この情報保持ノード装置からの情報の取得は行わないようにする。また、他のノード装置1から検索メッセージ、登録メッセージ或いは情報送信要求メッセージを受信したときに、これらのメッセージを送信したノード装置1のノードIDが失効リストに含まれているときには、これらのメッセージの受け付け、応答或いは転送を行わない。なお、これらのメッセージに対して受付拒否メッセージ送信などの応答処理を行うようにしてもよい。
【0069】
このように、ノード装置1は、失効リストに基づいて他のノード装置1からのメッセージを受け付けるか否かの判定や他のノード装置1へメッセージを転送するか否かの判定などを行い、失効リストに含まるノードIDのノード装置1からのメッセージであるときには、これらのメッセージに対して応答や転送を行わないようにすることで、不正ノード装置と通信してしまうことを回避している。
【0070】
(ルーティングテーブルから不正ノード装置情報の削除)
また、ノード装置1は、自ノード装置が保持するルーティングテーブルに含まれるノードIDが失効リストに存在するか否かを判定し、失効リストに含まれるノードIDを有するノード装置の情報をルーティングテーブルから削除するようにする。
【0071】
例えば、ノード装置1において、図4に示すようなルーティングテーブルを有しているときに、情報投入装置10或いは他のノード装置1から図8に示すような失効リストを取得すると、失効リストに含まれるノードIDであってルーティングテーブルに存在するノードID「3213」を検出して、ルーティングテーブルからノードID「3213」及びそのIPアドレスを削除する。
【0072】
このように、ルーティングテーブルから不正ノード装置の情報を削除するようにしているため、ノード装置1では通信先のノード装置が不正ノード装置であるか否かの判定を行う必要がなく、ノード装置1における情報処理を軽減することができる。
【0073】
(インデックステーブルから不正ノード装置情報の削除)
また、ノード装置1は、自ノード装置が保持するインデックステーブルに含まれるノードIDが失効リストに存在するか否かを判定し、失効リストに含まれるノードIDを有するノード装置の情報をインデックステーブルから削除するようにする。
【0074】
例えば、ノード装置1において、図6に示すようなインデックステーブルを有しているときに、情報投入装置10或いは他のノード装置1から図8に示すような失効リストを取得すると、失効リストに含まれるノードIDであってインデックステーブルに存在するノードID「0312」を検出して、インデックステーブルからノードID「0312」及びそのIPアドレスを削除する。
【0075】
このように、インデックステーブルから不正ノード装置の情報を削除するようにしているため、検索メッセージを送信したノード装置に対して、情報保持ノード装置のIPアドレスとして不正ノード装置のIPアドレスを送信することを回避することができる。
【0076】
[1.6.失効リストの配信方法]
次に、情報通信システムSにおける失効リストの基本的な配信方法について図面を参照して具体的に説明する。ここでは、情報投入装置10から一のノード装置1に失効リストを配信し、このノード装置1が失効リストを情報通信システムS内の全てのノード装置1若しくは特定のグループのノード装置1に送信することによって、情報通信システムSに属するノード装置のうち、失効リストに含まれるノードIDを有するノード装置を除く全てのノード装置に失効リストを送信する例について説明する。
【0077】
すなわち、情報投入装置10から失効リストを配信されたノード装置1は、ノードID空間を複数に分けた各グループの代表である各ノード装置1(IPアドレスを記憶しているノード装置)を決定し、当該ノード装置1が失効リストにノードIDが含まれるノード装置でない限り、このように決定したノード装置に失効リストを送信する(図11〜図14参照)。そして、当該失効リストを受信した各ノード装置1がさらに自ノード装置が属するノードID空間(グループ)をさらに複数に分けた各グループの代表である各ノード装置1を決定し、当該ノード装置1が失効リストにノードIDが含まれるノード装置でない限り、このように決定したノード装置に失効リストを送信(転送)する(図12〜図14参照)。各ノード装置1がこのような動作を行うことにより、情報通信システムSに属するノード装置のうち、失効リストに含まれるノードIDを有するノード装置を除く全てのノード装置に失効リストを送信することができることとなる。
【0078】
以下、図9〜図14を参照して、情報通信システムSにおける失効リストの配信動作について具体的に説明する。なお、情報投入装置10から失効リストが配信されるノード装置1をノードXとする。また、このノードXは自ノード装置が保持するルーティングテーブルを用いて失効リストの配信を行うものとする。ノードXが保持するルーティングテーブルは、図9に示すように、レベル1〜4のいずれかの各段階(各レベル)のグループに属するノードA〜ノードIのノードID及びIPアドレスを含み、4桁4進数からなるルーティングテーブルであるものとする。
【0079】
まず、ノードXが情報投入装置10から失効リストを受信したときに、ノードXによって送信される失効メッセージ(失効リストを主情報とするメッセージ)の送信内容について、図10の例を参照して説明する。
【0080】
図10(A)に示すように、失効メッセージのヘッダ部分には、識別情報としてのターゲットノードID、及び、送信グループ特定値としてのIDマスクが含まれている。
【0081】
ターゲットノードIDは、ノードIDと同等の4桁4進数である。ノードXが他の全てのノード装置1に失効メッセージを送信する際には、ノードXが付するターゲットノードIDは、後述するようにどのようなものであってもよいが、通常は、自ノード装置のノードIDとする。また、失効メッセージを転送することとなるノード装置1が付するターゲットノードIDは、自ノード装置のノードIDとする。なお、一のノード装置1に失効メッセージを送信する場合には、送信先のノード装置1に対応するノードIDをターゲットノードIDとする。
【0082】
IDマスクは、ターゲットノードIDの有効桁数を指定するものであり、有効桁数により、ターゲットノードIDにおける上位から有効桁数分が共通するノードIDが示される。このようなIDマスクの性質より、本実施形態においてはIDマスクの値は0〜4であり、ルーティングテーブルの桁数が異なる場合には、0(ゼロ)以上かつルーティングテーブルの最大桁数以下の整数となる。なお、失効メッセージに付されたIDマスクにより、ルーティングテーブルにおいて、IDマスクの値+1のレベルに登録されている各ノード装置1に失効メッセージが送信されることとなる。
【0083】
次いで、ターゲットノードIDとIDマスクとの組み合わせについて説明する。
【0084】
例えば、図10(B)に示すように、ターゲットノードIDが「2132」であり、IDマスクが「4」の場合には、ターゲットノードIDの「4」桁全てが有効であり、ノードIDが「2132」であるノード装置1のみに向けて失効リストを含む失効メッセージが送信されることとなる。
【0085】
また、図10(C)に示すように、ターゲットノードIDが「3301」であり、IDマスクが「2」の場合には、ターゲットノードIDの上位「2」が有効であり、ノードIDが「33**」であり上位二桁が「33」である全てのノード装置1に向けて失効リストを含む失効メッセージが送信されることとなる。
【0086】
さらに、図10(D)に示すように、ターゲットノードIDが「1220」であり、IDマスクが「0」の場合には、ターゲットノードIDの上位「0」桁が有効、すなわち、いずれの桁も有効でなく、ノードIDが「****」であり情報通信システムS上の全てのノード装置1に向けて失効リストを含む失効メッセージが送信されることとなる。そのため、このときのターゲットノードIDは、どのような値であってもよい。
【0087】
また、失効メッセージのヘッダ部分には、上記ターゲットノードIDやIDマスクの他、送信元のノードXのノードIDや、IPアドレス等の通常含まれる情報も含まれている。
【0088】
(失効メッセージの転送方法)
次いで、図11〜図14を用いて、ターゲットノードIDとIDマスクを用いた失効リストの送信・転送の動作について説明する。
【0089】
(第1段階)
まず、ノードXは、情報通信システムSに参加する全てのノード装置1に失効リストを含む失効メッセージを送信するため、この失効メッセージのヘッダ部分に、ターゲットノードIDとして自ノード装置のノードID「3102」を付し、IDマスクとして「0」の値を付して、失効メッセージを生成する。そして、図11(A)、(B)に示すように、ノードXが図8のルーティングテーブルを参照し、IDマスクの値「0」に1を足したレベル「1」のグループに属する各ノード装置1(ノードA,B,C)に失効メッセージを送信する。
【0090】
(第2段階)
次いで、ノードXは、送信した失効メッセージに付したIDマスクの値「0」を、1を足した「1」に変換し、変換後のIDマスクを付して失効メッセージを生成する。なお、ターゲットノードIDは、自ノード装置のノードIDであるため、変更しない。そして、ノードXが図8のルーティングテーブルを参照し、図12(A)のノードID空間の右上及び図12(B)に示すように、IDマスクの値「1」に1を足したレベル「2」のグループに属する各ノード装置1(ノードD,E,F)に生成した失効メッセージを送信する。
【0091】
そして、第1段階において、ノードXから失効メッセージを受信したノードAは、失効メッセージに付されたIDマスクの値「0」を、1を足した「1」に変換し、変換後のIDマスクを失効リストに付して失効メッセージを生成する。また、ターゲットノードID「3102」を自ノード装置のノードID「0132」に変換し、変換後のターゲットノードIDを付した失効メッセージを生成する。そして、ノードAが図示しない自ノード装置のルーティングテーブルを参照し、図12(A)のノードID空間の左上及び図12(B)に示すように、IDマスクの値「1」に1を足したレベル「2」のグループに属する各ノード装置1(ノードA1,A2,A3)に生成した失効メッセージを送信する。
【0092】
同様にして、図12(A)のノードID空間の左下、右下及び図12(B)に示すように、第1段階において失効メッセージを受信しているノードB、ノードCも、夫々保持しているルーティングテーブルに従い、レベル2のグループに属する各ノード装置1(ノードB1,B2,B3,C1,C2,C3)に、IDマスク「1」及び自ノード装置のノードIDをターゲットノードIDとして付した失効メッセージを生成し、当該失効メッセージを送信する。
【0093】
(第3段階)
次いで、ノードXは、送信した失効メッセージに付したIDマスクの値「1」を、1を足した「2」に変換し、変換後のIDマスクを付した失効メッセージを生成する。なお、ターゲットノードIDは、自ノード装置のノードIDであるため、変更しない。そして、ノードXが図8のルーティングテーブルを参照し、図13(A)のノードID空間の右上及び図13(B)に示すように、IDマスクの値「2」に1を足したレベル「3」のグループに属する各ノード装置1(ノードG,H)に生成した失効メッセージを送信する。
【0094】
そして、第2段階において、ノードXから失効メッセージを受信したノードDは、受信した失効メッセージに付されたIDマスクの値「1」を、1を足した「2」に変換し、変換後のIDマスクを付した失効メッセージを生成する。また、ターゲットノードID「3102」を自ノード装置のノードID「3001」に変換し、変換後のターゲットノードIDに付した失効メッセージを生成する。そして、ノードDが図示しない自ノード装置のルーティングテーブルを参照し、図13(B)に示すように、IDマスクの値「2」に1を足したレベル「3」のグループに属する各ノード装置1(ノードD1,D2,D3)に生成した失効メッセージを送信する(図13(A)のノードID空間には図示しない)。
【0095】
同様にして、図示しないが、第2段階において失効メッセージを受信しているノードE,F,A1,A2,A3,B1,B2,B3,C1,C2,C3も、夫々保持しているルーティングテーブルに従い、レベル3のグループに属する各ノード装置1に、IDマスク「2」及び自ノード装置のノードIDをターゲットノードIDとして失効リストに付して失効メッセージを生成し、当該失効メッセージを送信する。
【0096】
(第4段階)
次いで、ノードXは、送信した失効メッセージに付したIDマスクの値「2」を、1を足した「3」に変換し、変換後のIDマスクを失効リストに付して失効メッセージを生成する。なお、ターゲットノードIDは、自ノード装置のノードIDであるため、変更しない。そして、ノードXが図8のルーティングテーブルを参照し、図14(A)のノードID空間の右上及び図14(B)に示すように、IDマスクの値「3」に1を足したレベル「4」のグループに属するノード装置1(ノードI)に失効メッセージを送信する。
【0097】
そして、第3段階において、ノードXから失効メッセージを受信したノードGは、受信した失効メッセージに付されたIDマスクの値「2」を、1を足した「3」に変換し、変換後のIDマスクを付した失効メッセージを生成する。また、ターゲットノードID「3102」を自ノード装置のノードID「3132」に変換し、変換後のターゲットノードIDを付した失効メッセージを生成する。そして、ノードGが図示しない自ノード装置のルーティングテーブルを参照し、図14(B)に示すように、IDマスクの値「3」に1を足したレベル「4」のグループに属する各ノード装置1(ノードG1のIPアドレスを記憶しているとする)に生成した失効メッセージを送信する(図14(A)のノードID空間には図示しない)。
【0098】
同様にして、図示しないが、上述のノードE,F,A1,A2,A3,B1,B2,B3,C1,C2,C3から第3段階において失効メッセージを受信している各ノード装置1も、夫々保持しているルーティングテーブルに従い、レベル4のグループに属する各ノード装置1に、IDマスク「3」及び自ノード装置のノードIDをターゲットノードIDとして付した失効メッセージを生成し、当該失効メッセージを送信する。
【0099】
(最終段階)
次いで、ノードXは、送信した失効メッセージに付したIDマスクの値「3」を、1を足した「4」に変換し、変換後のIDマスクを失効リストに付して失効メッセージを生成する。なお、ターゲットノードIDは、自ノード装置のノードIDであるため、変更しない。そうすると、ターゲットノードIDとIDマスクから、当該失効メッセージが自ノード装置宛であることを認識し、送信処理を終了する。
【0100】
そして、第4段階において、ノードXを含む各ノード装置1から失効メッセージを受信した各ノード装置1も、受信した失効メッセージに付されたIDマスクの値「3」を、1を足した「4」に変換し、変換後のIDマスクを付した失効メッセージを生成する。また、ターゲットノードIDを自ノード装置のノードIDに変換し、変換後のターゲットノードIDを付した失効メッセージを生成する。そうすると、ターゲットノードIDとIDマスクから、当該失効メッセージが自ノード装置宛であることを認識し、送信処理を終了する。
【0101】
(失効メッセージの送信・転送の例外処理)
原則として上述のように失効リストの配信が行われるものであるが、本実施形態におけるノード装置1は、失効リストにノードIDが含まれるノード装置1へは失効リストを含む失効メッセージの配信を行わないようにしている。
【0102】
すなわち、情報投入装置10から失効リストが配信されたノード装置1は、ルーティングテーブルに含まれるノードIDのノード装置のうち、失効リストにノードIDが含まれるノード装置へは失効メッセージの配信を行わない。また、他のノード装置から失効メッセージを受信したノード装置1も同様に、ルーティングテーブルに含まれるノードIDのノード装置のうち、失効リストにノードIDが含まれるノード装置へは失効メッセージの配信を行わない。
【0103】
このように、ノード装置1は、失効リストに含まれるノード装置へは失効リストの送信を行わないようにしているので、失効リストの配信負荷を低減することができる。また、不正ノード装置を使用している悪意のある第三者にも失効リストが知られてしまうことを防止することができる。
【0104】
[2.ノード装置の構成等]
次に、図15を参照して、ノード装置1の構成および機能について説明する。図15は、ノード装置1の概要構成例を示す図である。尚、各ノード装置1は、それぞれが行う処理によって失効メッセージを送信するノード装置1、受信した失効メッセージを転送するノード装置1等として作用する。
【0105】
各ノード装置1は、図15に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、コンテンツデータなどの情報、ルーティングテーブル(図4参照。)、インデックステーブル(図6参照。)および各種プログラム等を記憶保存(格納)するためのHD(Hard Disk)等から構成された記憶手段としての記憶部12と、受信された情報等を一時蓄積するバッファメモリ13と、前記情報に含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノード装置1との間で情報の送受信などの通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21とを備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14および通信部20はバス22を介して相互に接続されている。
【0106】
そして、制御部11におけるCPUが記憶部12等に記憶された各種プログラムを実行することにより、ノード装置1全体を統括制御するようになっており、また、入力部21からの指示信号に応じて、種々の処理を行うようになっている。ノード装置1は、実行されるプログラムに応じて、情報投入装置10から失効リストを受信して他のノード装置へ失効メッセージを送信するノード装置、失効メッセージを受信して転送するノード装置等として機能する。具体的には、ノード装置1の制御部11は、失効リストに関する処理を行うための失効リスト受信手段、失効リスト送信手段、失効リスト転送手段、失効処理手段、情報保持ノード削除手段等として、情報を取得するための処理を行うための情報取得手段等として、情報の公開処理を行うための登録メッセージ送信手段、情報保持ノード情報取得手段等として、検索メッセージへの応答処理を行う検索メッセージ応答手段である要求応答手段等として、受信したメッセージの転送処理を行うメッセージ転送手段等として、他のノード装置からの情報の送信要求に対する処理を行う情報送信手段等として、それぞれ機能する。
【0107】
(失効リスト受信手段について)
失効リスト受信手段は、ネットワーク8を介して情報投入装置10から送信される失効リスト又は他のノード装置1から送信される失効メッセージを受信し、記憶部12の所定領域(失効リスト記憶手段の一例に相当)に記憶する。
【0108】
(失効リスト送信手段について)
失効リスト送信手段は、ネットワーク8を介して情報投入装置10から送信され、上述の失効リスト受信手段によって受信された失効リストをルーティングテーブルに基づいて配信する機能を有している。すなわち、失効リスト送信手段は、所定の規則に従って情報通信システムS内の複数のノード装置1が複数のグループに分けられた、この各グループに含まれる一のノード装置1を決定し、決定された各グループのノード装置1に向けて送信すべき失効リストを主情報とした失効メッセージを送信する。また、失効リスト送信手段は、ルーティングテーブに所在情報であるIPアドレスが記憶されたノード装置であって、所定の段階(レベル)の各グループに含まれる一のノード装置を決定し、決定されたノード装置に向けて失効リストを送信する。
【0109】
(失効リスト転送手段について)
失効リスト転送手段は、ネットワーク8を介して他のノード装置1から送信され、失効リスト受信手段によって受信された失効メッセージをルーティングテーブルに基づいて他のノード装置1に転送する機能を有している。すなわち、失効リスト送信手段は、他のノード装置1から受信した失効リストが自ノード装置を含むグループ宛の場合には、自ノード装置が属するグループが所定の規則に従ってさらに複数のグループに分けられた、その各グループに含まれる一のノード装置を決定し、決定された各グループのノード装置に向けて失効リストを含む失効メッセージを送信する。また、失効リスト転送手段は、ルーティングテーブルに所在情報であるIPアドレスが記憶されたノード装置であって、自ノード装置が属するグループの段階の次段階(レベル)の各グループ、さらにはこの次段階より下位の段階の各グループに含まれる一のノード装置を決定し、決定されたノード装置に向けて失効リストを送信する。
【0110】
(失効処理手段について)
失効処理手段は、受信した失効リストに含まれるノードIDを有するノード装置のIPアドレス及びそのノードIDをルーティングテーブルから削除する。すなわち、失効処理手段は、自ノード装置が保持するルーティングテーブルに含まれるノードIDが失効リストに存在するか否かを判定し、失効リストに含まれるノードIDを有するノード装置の情報をルーティングテーブルから削除する。
【0111】
また、失効処理手段は、他のノード装置1と通信を行うとき、失効リストに基づいて通信の可否を判断する。例えば、情報を取得する際、失効処理手段は、情報保持ノード装置のノードIDが失効リストに含まれていると判定すると、この情報保持ノード装置からの情報の取得は行わないようにする。また、他のノード装置1から検索メッセージ、登録メッセージ或いは情報送信要求メッセージを受信したときに、失効処理手段は、これらのメッセージを送信したノード装置1のノードIDが失効リストに含まれていると判定すると、これらのメッセージの受け付け、応答或いは転送を行わない。
【0112】
(情報保持ノード削除手段について)
情報保持ノード削除手段は、失効リストに含まれるノードIDを有するノード装置のIPアドレス及びそのノードIDをインデックステーブルから削除する機能を有する。すなわち、情報保持ノード削除手段は、自ノード装置が保持するインデックステーブルに含まれるノードIDが失効リストに存在するか否かを判定し、失効リストに含まれるノードIDを有するノード装置の情報(インデックス情報)をインデックステーブルから削除するようにする。
【0113】
(情報取得手段について)
情報取得手段は、ネットワーク8を介して受信したメッセージが情報投入装置10からの情報の保持要求であるときに、この情報を情報投入装置10から取得する。そして、取得した情報を記憶部12に記憶する。
【0114】
また、情報取得手段は、ユーザによる情報の取得要求操作を検出する。例えば、情報投入装置10からノード装置1が取得したカタログリスト(情報通信システムS内で送受信が可能な情報の一覧)が表示部16に表示されているときに、ノード装置1のユーザが入力部21を操作し、所望の情報名称をユーザが選択することによって情報の取得要求操作がなされ、この操作を情報取得手段によって検出する。
【0115】
情報取得手段は、このようにユーザによる情報の取得要求操作を検出すると、取得しようとする情報を保持する情報保持ノード装置の所在情報であるIPアドレスを検索するための検索メッセージを生成する。検索メッセージは、上述のように要求する情報の識別情報である情報IDを宛先識別情報とし、自ノード装置の識別情報であるノードIDを要求元識別情報としたメッセージである。その後、ルーティングテーブルに記憶されたノード装置1の識別情報から送信先ノード装置を選択して、生成した検索メッセージを送信先ノード装置へ送信する。すなわち、ルーティングテーブルに記憶されたノード装置1のノードIDのうち、宛先識別情報に近いノードIDを選択し、このように選択したノードIDに対応するノード装置1のIPアドレスに向けて検索メッセージを送信する。
【0116】
その後、情報取得手段は、検索メッセージに対してルートノード装置から送信される当該情報保持ノード装置のIPアドレスを受信し、この情報に基づいて情報保持ノード装置に対して取得要求操作に応じた情報を要求する情報送信要求メッセージを送信する。この要求に応じて情報保持ノード装置から情報が配信される。情報取得手段は、配信される情報を受信し、記憶部12に記憶する。
【0117】
(登録メッセージ送信手段について)
登録メッセージ送信手段は、情報投入装置10や他のノード装置1から情報を受信して記憶部12に記憶したとき、情報保持ノード装置として機能し、当該情報の識別情報である情報IDを宛先識別情報として、自ノード装置の識別情報であるノードID及びIPアドレスなどのインデックス情報を含む登録メッセージを生成し、ルーティングテーブルに基づいて選択した送信先ノード装置へ送信する。すなわち、ルーティングテーブルに記憶されたノード装置1のノードIDのうち、宛先識別情報に近いノードIDを選択し、このように選択したノードIDに対応するノード装置1のIPアドレスを知り、そのIPアドレスのノード装置1に登録メッセージを送信する。
【0118】
(情報保持ノード情報取得手段について)
情報保持ノード情報取得手段は、インデックス情報の記憶処理を行うものであり、自ノード装置において、受信したメッセージが自ノード装置宛の登録メッセージであるとき、この登録メッセージに含まれるインデックス情報を取得する。そして、このように取得したインデックス情報をインデックステーブルに記憶する。
【0119】
(要求応答手段について)
要求応答手段は、ネットワーク8を介して受信したメッセージが自ノード装置宛の検索メッセージであるとき、この検索メッセージで要求されている情報を保持する情報保持ノード装置のIPアドレスであって、かつインデックステーブルに記憶した情報保持ノード装置のIPアドレスのうち、所定の数の情報保持ノード装置を選択して、このように選択した情報保持ノード装置のIPアドレスを検索メッセージの送信元のノード装置へ送信する。リクエストノード装置は、このように送信された情報保持ノード装置のIPアドレスのうち一の情報保持ノード装置を選択し、このように選択した情報保持ノード装置へ接続要求(情報送信要求メッセージの送信)を行って接続し、上述のように情報を受信する。
【0120】
(メッセージ転送手段について)
メッセージ転送手段は、ネットワーク8を介して受信した検索メッセージや登録メッセージが自ノード装置宛ではないとき、受信したメッセージの宛先識別情報に基づいて、ルーティングテーブルに記憶されたノード装置1の識別情報から送信先ノード装置を選択して、受信したメッセージを送信先ノード装置へ転送する。
【0121】
(情報送信手段について)
情報送信手段は、記憶部12に記憶した情報の送信要求が他のノード装置1からあったとき、この送信要求に対応する情報を記憶部12から取り出して送信要求をした他のノード装置1へ送信する。
【0122】
[3.ノード装置の動作]
次に、ノード装置1における失効リストの送信処理及び転送処理について、図面を参照して具体的に説明する。図16は本実施形態におけるノード装置の失効リスト処理のメインフローチャートである。
【0123】
ノード装置1の制御部11は、自ノード装置が稼働している(すなわち、電源が入れられ、当該ノード装置1の各種設定が初期化されている)状態において、図16に示すように、情報投入装置10から失効リストを受信したか否かを判定する(ステップS1)。
【0124】
この処理において、情報投入装置10から失効リストを受信したと判定すると(ステップS1:YES)、制御部11は、受信した失効リストを記憶部12に記憶する(ステップS2)。なお、すでに失効リストが記憶部12に記憶されている場合には、すでに記憶されている失効リストを削除した上で新たに受信した失効リストを記憶部12に記憶する。従って、記憶部12には新しい失効リストが記憶されることになる。
【0125】
次に、制御部11は、失効メッセージの送信処理を起動する(ステップS3)。この処理は、ステップS1で情報投入装置10から受信した失効リストを情報通信システムSにおける他のノード装置1へ送信する処理であり、後述する図17におけるS10〜S13及び図18におけるS20〜S23の処理である。
【0126】
その後、制御部11は、このように記憶した失効リストに基づく処理を行う(ステップS4)。このステップS4の処理は、図19におけるS30,S31の処理であり、後に詳説する。
【0127】
ステップS1において、情報投入装置10から失効リストを受信していないと判定すると(ステップS1:NO)、制御部11は、他のノード装置1から失効メッセージを受信したか否かを判定する(ステップS5)。この処理において、他のノード装置1から失効メッセージを受信したと判定すると(ステップS5:YES)、制御部11は、その受信した失効メッセージに含まれる失効リストを記憶部12に記憶する(ステップS6)。なお、すでに失効リストが記憶部12に記憶されている場合には、すでに記憶されている失効リストを削除した上で新たに受信した失効リストを記憶部12に記憶する。
【0128】
次に、制御部11は、失効メッセージの転送処理を起動する(ステップS7)。この処理は、ステップS5で他のノード装置1から受信した失効リストを含む失効メッセージをさらに別のノード装置1へ転送する処理であり、後述する図20におけるS40〜S46及び図21におけるS50〜S54の処理である。
【0129】
その後、制御部11は、このように記憶した失効リストに基づく処理を行う(ステップS8)。このステップS8の処理は、ステップS4と同様の処理である。
【0130】
ステップS5において、他のノード装置1から失効メッセージを受信していないと判定したとき(ステップS5:NO)、或いはステップS4,S8の処理が終了したとき、制御部11は、電源OFFなどによるシャットダウン処理が行われたか否かを判定する(ステップS9)。この処理において、シャットダウン処理が行われていないと判定したとき(ステップS9:NO)、制御部11は、処理をステップS1に移行する。一方、シャットダウン処理が行われたと判定したとき(ステップS9:YES)、制御部11は、処理を終了する。なお、図16では、失効リスト受信以外の他の処理については、説明を省略している。
【0131】
次に、ステップS3において起動された失効メッセージ送信処理について説明する。図17及び図18はノード装置における失効メッセージ送信処理のフローチャートである。ここでは、ノードXが失効メッセージの送信処理を行うこととしてその動作を説明する。また、ノードXは図9に示すルーティングテーブルを有しているものとする。
【0132】
失効メッセージ送信処理が開始されると、制御部11は、図17に示すように、失効メッセージを生成する(ステップS10)。具体的には、失効メッセージのターゲットノードIDを自ノード装置のノードID「3102」とし、失効メッセージのIDマスクを「0」とし、失効リストを主情報とした失効メッセージを生成する。
【0133】
次いで、制御部11は、失効メッセージのIDマスクがルーティングテーブルの桁数(ノードIDの桁数、全レベル数)よりも小さいか否かを判定する(ステップS11)。このとき、IDマスク「0」は、ルーティングテーブルの桁数「4」よりも小さいため、制御部11は、失効メッセージのIDマスクがルーティングテーブルの桁数よりも小さいと判定し(ステップS11:YES)、ルーティングテーブルのレベル「失効メッセージのIDマスク+1」に登録(記憶)されているノード装置1に向けて生成した失効メッセージを送信する(ステップS12)。
【0134】
次いで、制御部11は、失効メッセージのIDマスクを「失効メッセージのIDマスク+1」の値に変換する(ステップS13)。具体的には、失効メッセージのIDマスク「0」+1である「1」にIDマスクを変換して、失効メッセージを再生成する。次いで、上述のステップS11に戻る。
【0135】
その後、制御部11は、IDマスク「1」、「2」、「3」について同様にステップS11、S12、S13を繰り返す。このように、ステップS11〜S13を繰り返すことにより、ルーティングテーブルにおける1〜4の各レベル(段階)のノード装置1に対して失効メッセージを送信できることとなる。
【0136】
次いで、失効メッセージのIDマスクがルーティングテーブルの桁数よりも小さくなくなったとき(ステップS11:NO)、すなわち、制御部11が失効メッセージのIDマスクを「3」から1足した「4」に変換して失効メッセージを再生成し(ステップS13)、上述のステップS11に戻ったとき、IDマスク「4」は、ルーティングテーブルの桁数「4」よりも小さくないため、制御部11は、失効メッセージ送信処理を終了する。
【0137】
ここで、図18にステップS12における具体的な動作のフローチャートを示す。この図に示すように、制御部11は、ルーティングテーブルのレベル「失効メッセージのIDマスク+1」に登録されているノードIDを一つ取り出す(ステップS20)。
【0138】
次に、ステップS20にて取り出したノードIDが記憶部12に記憶した失効リストに存在するか否かを判定する(ステップS21)。この処理において、失効リストに存在しないと判定すると(ステップS21:NO)、制御部11は、ステップS20にて取り出したノードIDのノード装置1に向けて失効メッセージを送信する(ステップS22)。このときの送信は、ルーティングテーブルに基づいて行う。すなわち、制御部11は、ステップS20にて取り出したノードIDに対応するIPアドレスをルーティングテーブルから取り出し、このように取り出したIPアドレスに向けて失効メッセージを送信するのである。
【0139】
一方、ステップS20にて取り出したノードIDが記憶部12に記憶した失効リストに存在すると判定すると(ステップS21:YES)、制御部11は、ステップS22の処理を行わない。すなわち、失効リストに含まれるノードIDを有するノード装置1には、失効メッセージを送信しないようにしている。
【0140】
ステップS21で取り出したノードIDが記憶部12に記憶した失効リストに存在しないと判定したとき、或いはステップS22の処理が終了したとき、制御部11は、「失効メッセージのIDマスク+1」に登録されているノードIDを全て取り出したか否かを判定する(ステップS23)。この処理において、ノードIDを全て取り出していないと判定すると(ステップS23:NO)、制御部11は、処理をステップS20に戻す。一方、ノードIDを全て取り出したと判定すると(ステップS23:YES)、制御部11は、処理を終了してステップS13に処理を移行する。
【0141】
以上のように処理を行うようにしているため、情報投入装置10から失効リストを受信したノード装置は、自ノード装置のルーティングテーブルに含まれるノードIDのノード装置に対して失効リストを含む失効メッセージを送信することができる。しかも、失効リストに含まれるノードIDのノード装置1に対しては、失効メッセージを送信しないようにしているので、失効リストの配信負荷を低減することができる。
【0142】
また、ステップS4,S8における処理は、図19に示すように、ルーティングテーブル及びインデックステーブルから失効リストに含まれるノードIDのインデックス情報(ノードID、IPアドレスなど)を削除する処理である。
【0143】
具体的には、ステップS2,S6において記憶した失効リストに含まれるノードIDと同一のノードIDが自ノード装置のルーティングテーブルに含まれていると判定したときに、制御部11は、ルーティングテーブルから失効リストに含まれるノードID及びこのノードIDを有するノード装置のIPアドレスを削除する処理を行う(ステップS30)。
【0144】
さらに、ステップS2,S6において記憶した失効リストに含まれるIDと同一のノードIDが自ノード装置のインデックステーブルに含まれていると判定したときに、制御部11は、インデックステーブルから失効リストに含まれるノードIDのインデックス情報(ノードID及びこのノードIDを有するノード装置のIPアドレスなど)を削除する処理を行う(ステップS31)。
【0145】
このように本実施形態におけるノード装置1では、失効リストに含まれるノード装置のノードIDやIPアドレスをルーティングテーブルやインデックステーブルから削除するようにしているため、不正ノード装置へ検索メッセージや情報送信要求メッセージなどが送信されることを抑制することができる。
【0146】
次に、ステップS7において起動された失効メッセージ転送処理について説明する。図20及び図21はノード装置1における失効メッセージ転送処理のフローチャートである。ここでは、ノードXから失効メッセージを受信したノードAがこの失効メッセージの転送処理を行うこととしてその動作を説明する。ノードAが受信する失効メッセージは、図11(B)に示すように、ヘッダ部分のターゲットノードIDが「3102」であり、IDマスクが「0」であり、さらに主情報として失効リストが含まれている。
【0147】
失効メッセージ転送処理が開始されると、制御部11は、図20に示すように、自ノード装置のノードIDが失効メッセージのターゲットに含まれるか否かを判定する(ステップS40)。この失効メッセージのターゲットとは、ターゲットノードIDにおけるIDマスクの値に該当する上位桁が共通するノードIDを示し、例えば、失効メッセージのIDマスクが「0」であれば、全てのノードIDが失効メッセージのターゲットに含まれ、失効メッセージのIDマスクが「2」で失効メッセージのターゲットノードIDが「3102」であれば、上位「2」桁が「31」となる「31**」のノードIDが失効メッセージのターゲットに含まれることとなる。
【0148】
このとき、失効メッセージのIDマスクが「0」であり、有効桁数を指定されていないので、ノードAのノードID「0132」は、失効メッセージのターゲットに含まれると制御部11が判定し(ステップS40:YES)、失効メッセージのターゲットノードIDを自ノード装置のノードID「0132」に変換する(ステップS41)。
【0149】
次いで、制御部11は、失効メッセージのIDマスクを「失効メッセージのIDマスク+1」の値に変換する(ステップS42)。具体的には、失効メッセージのIDマスク「0」+1である「1」にIDマスクを変換して、失効メッセージを再生成する。
【0150】
次いで、制御部11は、失効メッセージのIDマスクがルーティングテーブルの桁数(ノードIDの桁数、全レベル数)よりも小さいか否かを判定する(ステップS43)。このとき、IDマスク「1」は、ルーティングテーブルの桁数「4」よりも小さいため、制御部11は、失効メッセージのIDマスクがルーティングテーブルの桁数よりも小さいと判定し(ステップS43:YES)、ルーティングテーブルのレベル「失効メッセージのIDマスク+1」に登録(記憶)されているノード装置1に向けて生成した失効メッセージを送信する(ステップS44)。
【0151】
ここで、このステップS44における具体的な動作のフローチャートは図21に示す。この図21におけるステップS50〜S53の処理は、図18におけるS20〜S23の処理と同様であり、取り出したノードIDが失効リストに存在すると判定したときの処理が異なる。
【0152】
すなわち、ステップS50にて取り出したノードIDが記憶部12に記憶した失効リストに存在すると判定したとき(ステップS51:YES)、制御部11は、ルーティングテーブルの中で失効メッセージのターゲットノードIDと上位桁から一致する桁数が最も多いノードに受信した失効メッセージを送信(転送)し(ステップS54)、処理をステップS53へ移行する。そして、このステップS50〜S54の処理を繰り返し、ノードIDを全て取り出したと判定すると、制御部11は、処理を終了してステップS45に処理を移行する。なお、このステップS54の転送処理は、通常のDHTのルーティングテーブルを用いたメッセージの転送である。
【0153】
その後、図20に示すように、制御部11は、IDマスク「2」、「3」について同様にステップS43、S44、S45を繰り返す。すなわち、失効メッセージのIDマスクを「失効メッセージのIDマスク+1」の値に変換して(ステップS45)、処理をステップS43に戻すことにより、ステップS43〜S45を繰り返し、ルーティングテーブルにおける2〜4の各レベルのノード装置1に対して失効メッセージを送信する。
【0154】
一方、ノードAが受信した失効メッセージが、例えば、IDマスクが「2」でターゲットノードIDが「3102」であれば、ノードAのノードID「0132」は、失効メッセージのターゲット「31**」に含まれないと制御部11は判定し(ステップS40:NO)、記憶部12に記憶した失効リストに存在しないノード装置1のうち、ルーティングテーブルの中で失効メッセージのターゲットノードIDと上位桁から一致する桁数が最も多いノードに受信した失効メッセージを送信(転送)し(ステップS46)、失効メッセージ転送処理を終了する。なお、このステップS46の転送処理は、通常のDHTのルーティングテーブルを用いたメッセージの転送である。
【0155】
以上のように本実施形態のノード装置1においては、情報通信システムSへの参加資格が失効したノード装置1の情報を含む失効リストをルーティングテーブルを利用して配信するようにしており、これにより、失効リストを効率的かつ適切に送信することができる。
【0156】
なお、各種DHTルーティングに用いるルーティングテーブルを利用して失効リストの配信を行うようにしたが、失効リストを配信するための専用テーブルを別途設け、この専用のテーブルを用いて失効リストを配信するようにしてもよい。すなわち、所定の規則に従って、ルーティングテーブルと同様に、情報通信システムSに含まれるノード装置1を複数のグループに分けて当該各グループを第1段階のグループとし、この第1段階のグループのうち自ノード装置が属するグループをさらに複数のグループに分けて当該各グループを第2段階のグループとし、この第2段階のグループ分けと同様のグループ分けにより第n(nは3以上の自然数)段階までの各グループとして、各段階の各グループに属する一のノード装置のIPアドレスを登録したテーブルを用いて失効リストを配信するのであれば、どのようなテーブルを用いてもよい。
【0157】
(第2実施形態)
次に、第2実施形態の情報通信システムSの動作について図22〜図24を用いて説明する。
【0158】
上記第1実施形態の情報通信システムSは、失効メッセージ送信処理、失効メッセージ転送処理において、各ノード装置1がルーティングテーブルにIPアドレスが記憶されているノード装置1のみに対して失効メッセージ(失効リスト)を送信する形態であったが、第2実施形態の情報通信システムSは、失効メッセージ送信処理、失効メッセージ転送処理の際に、ルーティングテーブルにIPアドレスが記憶されていないノードIDを有するノード装置1に向けても失効メッセージを送信する形態である。第2施形態の情報通信システムSは、当該システムSへのノード装置1の参加、脱退が多い環境であっても、可能な限り全てのノード装置に失効リストを送信することが可能となり、より完全にシステム内の全てのノード装置1に情報を送信することが実現できる。
【0159】
[1.情報通信システム全体の動作]
まず、第2実施形態の情報通信システム全体の動作は、図9〜図21を参照して説明した第1実施形態とほぼ同様であり、一のノード装置1(上述のノードX)のルーティングテーブルにおいて、他のノード装置1のIPアドレスを記憶していないノードID「311*」、「3100」、「3101」に向けても、当該ノードXが失効メッセージを送信する点で異なる。なお、失効メッセージの直接の送信先は、送信元のノード装置1がIPアドレスを記憶している他のノード装置1である。ルーティングテーブルにIPアドレスを記憶していないノード装置1に失効メッセージを送信する場合には、当該失効メッセージが転送され続けてしまう可能性があるため、転送回数上限値を失効メッセージのヘッダ部分に含ませることとする。
【0160】
[2.ノード装置の動作]
第2実施形態におけるノード装置1の動作について、図22〜図24のフローチャートを用いて詳細に説明する。
【0161】
(失効メッセージ送信処理)
まず、一のノード装置1(上述のノードX)が失効リストを含む失効メッセージを情報通信システムSに参加しているノード装置1に送信する失効メッセージ送信処理を以下に説明する。
【0162】
図22に示すように、失効メッセージ送信処理が開始されると、制御部11は、失効メッセージを生成する(ステップS60)。具体的には、失効メッセージのターゲットノードIDを自ノード装置のノードID「3102」とし、失効メッセージのIDマスクを「0」とし、失効メッセージ(図11(B)参照)を生成する。
【0163】
そして、生成した失効メッセージについて、図24を用いて後述するメッセージ送信処理を行い(ステップS61)、処理を終了する。
【0164】
(失効メッセージ転送処理)
上述のノードXから失効リストを含む失効メッセージを受信した他のノード装置1(ここでは、上述のノードAを例に挙げる)が失効メッセージを転送する失効メッセージ転送処理を以下に説明する。
【0165】
図23に示すように、失効メッセージ転送処理が開始されると、制御部11は、受信した失効メッセージの転送回数が転送回数上限値を超えたか否かを判定する(ステップS70)。なお、この転送回数上限値は、後述するように、制御部11が転送回数制限手段として、ノードXがIPアドレスを記憶していないノード装置1に向けて失効メッセージを送信した場合に失効メッセージに含められる情報である。この転送回数上限値により、失効メッセージが転送され続けてしまうことを防止できる。
【0166】
このとき、制御部11は、受信した失効メッセージの転送回数が転送回数上限値を超えていないと判定すると(ステップS70:NO)、受信した失効メッセージのターゲットに自ノード装置のノードIDが含まれるか否かを判定する(ステップS71)。このとき、失効メッセージのIDマスクが「0」であり、全てのノードIDを含むため、制御部11は、受信した失効メッセージのターゲットに自ノード装置のノードIDが含まれると判定し(ステップS71:YES)、受信した失効メッセージのヘッダ部分を変換して失効メッセージを再生成する(ステップS72)。具体的には、失効メッセージのターゲットノードIDを自ノード装置のノードID「0132」に変換し、失効メッセージのIDマスク(=0)を「失効メッセージのIDマスク+1」の値「1」に変換する。
【0167】
そして、制御部11は、受信後再生成した失効メッセージについて、図24を用いて後述するメッセージ送信処理を行い(ステップS73)、処理を終了する。
【0168】
一方、ステップS70において、制御部11は、受信した失効メッセージの転送回数が転送回数上限値を超えたと判定した場合には(ステップS70:YES)、転送を行わずに処理を終了する。
【0169】
また、ステップS71において、制御部11は、自ノード装置のノードIDが受信した失効メッセージのターゲットに含まれないと判定した場合には(ステップS71:NO)、受信した失効メッセージについて、図24を用いて後述するメッセージ送信処理を行い(ステップS74)、処理を終了する。なお、自ノード装置のノードIDが受信した失効メッセージのターゲットに含まれない場合とは、例えば、自ノード装置のノードID「0132」に対し、失効メッセージのターゲットノードIDが「3110」、IDマスクが「3」であるときである。上記失効メッセージのターゲットは、ノードIDの上位3桁が「311」となるノード装置1であるのに対し、自ノード装置のノードID「0132」を含んでいないといえる。
【0170】
次に、図24に示すメッセージ送信処理を説明する。なお、ここでは、上述のノードXの動作を例に挙げて説明する。また、ノードXは、上述のように、図9に示すルーティングテーブルを保持(記憶)しているものとする。
【0171】
ノード装置1の制御部11は、メッセージの送信処理を開始すると、図24に示すように、自ノード装置の記憶するルーティングテーブルの指定するレベルを、自ノード装置のノードIDと失効メッセージのターゲットノードIDの上位桁から一致する桁数+1の値に決定する(ステップS80)。例えば、自ノード装置のノードIDが「3102」であり、ターゲットノードIDが「3102」である場合には、全て一致するため一致する桁数が「4」であり、これに1を足して、ルーティングテーブルのレベルを「5」と決定する。
【0172】
次いで、制御部11は、決定したレベルが失効メッセージのIDマスクよりも大きいか否かを判定する(ステップS81)。上述の例で言うと、決定したレベル「5」は、失効メッセージのIDマスク「0」よりも大きいため、制御部11は、決定したレベルが失効メッセージのIDマスクよりも大きいと判定し(ステップS81:YES)、他のノード装置への送信処理(マルチキャストメッセージ転送処理)に入る。
【0173】
制御部11は、自ノード装置の記憶するルーティングテーブルの指定する領域を決定する(ステップS82)。指定する領域は、レベルを「失効メッセージのIDマスクの値+1」の値とし、当該レベルの左端から1列(注目すべき桁数を0)とする。なお、ルーティングテーブルがA桁B進数からなる場合、レベルの値は1〜(Aの値)までであり、列の値は1〜(Bの値)まで(注目すべき桁数:0〜(B−1の値))となる。上述のように4桁4進数であれば、レベルは1〜4(全レベルの値(全レベル数)が4)であり、列は1〜4(全列の値(全列数)が4)である。上述の例では、失効メッセージのIDマスクが「0」であるため、ルーティングテーブルの「レベル1、1列」が指定される。
【0174】
次いで、制御部11は、レベルの値が全レベルの値(全レベル数)以下であるか否かを判定する(ステップS83)。上述の例では、レベルの値「1」が全レベルの値「4」以下であるため、制御部11は、レベルの値が全レベルの値以下であると判定し(ステップS83:YES)、列の値が全列の値(全列数)以下であるか判定する(ステップS84)。上述の例では、列の値「1」が全列の値「4」以下であるため、制御部11は、レベルの値が全レベルの値以下であると判定し(ステップS84:YES)、制御部11は、指定された領域が自ノード装置のノードIDを示すか否かを判定する(ステップS85)。
【0175】
上述の例では、指定された「レベル1、1列」が自ノード装置のノードIDを示していないため、制御部11は、指定された領域が自ノード装置のノードIDを示さないと判定し(ステップS85:NO)、指定された領域に他のノード装置が記憶されているか否かを判定する(ステップS86)。上述の例では、指定された「レベル1、1列」にノードAのIPアドレスが記憶されているため、制御部11は、指定された領域に他のノード装置が記憶されていると判定し(ステップS86:YES)、さらに、当該記憶されているノード装置のノードIDが失効リストに存在(記憶)しているか否かを判定する(ステップS87)。このとき、制御部11は、当該記憶されているノード装置のノードIDが失効リストに存在していないと判定すると(ステップS87:NO)、当該記憶されているノード装置に対して失効メッセージを送信する(ステップS88)。一方、当該記憶されているノード装置のノードIDが記憶部12に記憶した失効リストに存在していると判定すると(ステップS87:YES)、制御部11は、当該記憶されているノード装置に対しての失効メッセージの送信を行わずに処理をステップS89に移行する。
【0176】
このステップS88の処理が終了したとき、或いはステップS87において記憶されているノードIDが失効リストに存在すると判定したとき(ステップS87:YES)、制御部11は、指定する列の値に1を足して(ステップS89)、ステップS84に戻る。上述の例では、列「1」を列「2」に変更する。次いで、ステップS84〜S89を繰り返し、「レベル1、2列」のノードB、「レベル1、3列」のノードCにも失効メッセージを送信し、指定する領域を「レベル1、4列」に変更し、ステップS84に戻る。
【0177】
次いで、ステップS84を経て、ステップS85において、指定された「レベル1、4列」が自ノード装置のノードIDを示しているため、制御部11は、指定された領域が自ノード装置のノードIDを示すと判定し(ステップS85:YES)、ステップS89の処理を行うことにより、指定する領域を「レベル1、5列」に変更し、ステップS55に戻る。
【0178】
このとき、列の値「5」が全列の値「4」以下でないため、制御部11は、レベルの値が全レベルの値以下でないと判定し(ステップS84:NO)、失効メッセージのIDマスクの値を「IDマスクの値+1」に変換して失効メッセージを再生成し(ステップS90)、ステップS82に戻る。上述の例では、マスクIDを「1」とする。
【0179】
制御部11は、ステップS82において、指定する領域を「レベル2、1列」とし、ステップS84〜S89を繰り返し、「レベル2、1列」、「レベル2、3列」、「レベル2、4列」の各ノード装置1のうち、失効リストに含まれていないノードIDのノード装置1に失効メッセージを送信し、指定する領域を「レベル2、5列」に変更する。このようにして、レベル2として記憶しているノード装置1のうち失効リストに含まれていないノードIDのノード装置全てに失効メッセージを送信することができる。
【0180】
このとき、列の値「5」が全列の値「4」以下でないため、制御部11は、レベルの値が全レベルの値以下でないと判定し(ステップS84:NO)、失効メッセージのIDマスクの値を「IDマスクの値+1」に変換して失効メッセージを再生成し(ステップS90)、ステップS82に戻る。上述の例では、マスクIDを「2」とする。
【0181】
制御部11は、ステップS82において、指定する領域を「レベル3、1列」とし、ステップS83、S84:YES、S85:YES、S89を経て「レベル3、2列」を指定し、ステップS84:YES、S85:NOを経てステップS87の判定を行う。
【0182】
制御部11は、上述の例では、指定された領域「レベル3、2列」に他のノード装置1のIPアドレスが記憶されていないため、制御部11は、指定された領域に他のノード装置が記憶されていないと判定し(ステップS86:NO)、記憶部12に記憶した失効リストに存在しないノード装置1のうち、指定された領域「レベル3、2列」に最も近くに記憶されている他のノード装置1に対して、失効メッセージを送信する(ステップS91)。
【0183】
ステップS91において、具体的には、IDマスクの値に1を足した値に変換し、ターゲットノードIDを当該領域に該当するノードIDのうち失効リストに存在しないノードIDに変換し、転送回数上限値の情報をヘッダ部分に含めて失効メッセージを再生成し、再生成された当該失効メッセージを送信する。上述の例では、IDマスクの値を「3」とし、ターゲットノードIDを「レベル3、2列」に該当する「3110」とする(図13(B)の「X→空」を参照)。このようにターゲットを特定することにより、この領域にノード装置1が参加した場合に、失効メッセージを送信できることとなる。
【0184】
ここで、転送回数上限値は、転送回数の上限を決める値であり、ターゲットとなるノード装置1が存在しない場合に、失効メッセージが転送され続けることを防止するために設けられる。転送回数上限値は、通常の転送では絶対に超えない程度のやや大きめの値とし、例えば、4桁のDHTを用いる場合には、転送回数上限値は8回、16回等にする。4桁のDHTを用いる場合の通常の転送回数は、4回以内に収まるのが通常である。以下の処理においては記載しないが、通常、転送される失効メッセージには当該失効メッセージが何回転送されたかを示す情報が含まれて転送されることとなる。
【0185】
次いで、制御部11は、ステップS89の処理に戻り、ステップS85〜S89を繰り返し、「レベル3、3列」、「レベル3、4列」の各ノード装置のうち、失効リストに含まれていないノードIDのノード装置1に失効メッセージを送信し、指定する領域を「レベル3、5列」に変更する。このようにして、レベル3として記憶しているノード装置1及びレベル3の記憶していない領域のノード装置1のうち失効リストに含まれていないノードIDのノード装置1に失効メッセージを送信することができる。
【0186】
このとき、列の値「5」が全列の値「4」以下でないため、制御部11は、レベルの値が全レベルの値以下でないと判定し(ステップS84:NO)、失効メッセージのIDマスクの値を「IDマスクの値+1」に変換して失効メッセージを再生成し(ステップS90)、ステップS82に戻る。上述の例では、マスクIDを「3」とする。
【0187】
次いで、制御部11は、レベル4の各領域について、ステップS82、S83、S84〜89、S91を繰り返し、「レベル4、4列」のノードIに失効メッセージを送信し、指定する領域を「レベル4、5列」に変更する(ステップS90)。このようにして、レベル4として記憶している全てのノード装置1及びレベル4の記憶していない領域のノード装置1のうち、失効リストに含まれていないノードIDのノード装置1に失効メッセージを送信することができる。
【0188】
ステップS82に戻り、制御部11は、指定する領域を「レベル5、1列」とし、レベルの値が全レベルの値以下であるか否かを判定する(ステップS83)。上述の例では、レベルの値「5」が全レベルの値「4」以下でないため、制御部11は、レベルの値が全レベルの値以下でないと判定し(ステップS83:NO)、処理を終了する。
【0189】
一方、上述のステップS80において、例えば、自ノード装置のノードIDが「3102」であり、ターゲットノードIDが「2132」、IDマスクが「4」である場合には、一致する桁数がないため「0」であり、これに1を足して、ルーティングテーブルのレベルを「1」と決定する。
【0190】
次いで、制御部11は、決定したレベルが失効メッセージのIDマスクよりも大きいか否かを判定する(ステップS81)。上述の例で言うと、決定したレベル「1」は、失効メッセージのIDマスク「4」よりも小さいため、制御部11は、決定したレベルが失効メッセージのIDマスクよりも大きくないと判定し(ステップS81:NO)、通常のDHTメッセージ送信・転送の処理に入る。
【0191】
すなわち、制御部11は、失効リストに存在しないノードIDのうち、ステップS80で決定したレベルにおけるターゲットノードIDに最も近いノード装置1であって、ルーティングテーブルに記憶しているものを決定し、当該ノード装置1に失効メッセージを送信(転送)し(ステップS92)、処理を終了する。なお、このステップS92の転送処理は、通常のDHTのルーティングテーブルを用いたメッセージの転送である。
【0192】
(その他の実施形態)
上述の各実施形態においては、送信グループ特定値(IDマスク)及び識別情報(ターゲットノードID)を用いて送信先のノード装置1を特定し、各グループの代表に失効リストを送信することとしているが、この実施形態に限定されない。ノード装置1は、情報通信システムSに含まれるノード装置1を所定の規則に従って複数のグループに分けて、当該各グループに含まれる一のノード装置1を決定し、決定された全てのノード装置1(失効リストに含まれるノードIDのノード装置は除く)に向けて失効リストを送信するとともに、他のノード装置1から失効リストを受信した場合に、当該失効リストが自ノード装置を含むグループ宛の場合には、自ノード装置が属するグループを上記所定の規則に従ってさらに複数のグループに分けて、当該各グループに含まれる一のノード装置1を決定し、決定された全てのノード装置1(失効リストに含まれるノードIDのノード装置は除く)に向けて受信した失効リストを送信できればよい。
【0193】
上述の各実施形態においては、本発明における所定の規則として、分散ハッシュテーブル(DHT)の手法を利用して、ノード装置1が各段階(各レベル)、グループ(各列・注目桁の各数値)毎に自ノード装置のエリアと、他のノード装置のエリアを特定し、他のノード装置の各IPアドレスをルーティングテーブルに記憶している形態としている。しかしながら、本発明は、上述の形態に特定されず、ノード装置1が、所定の規則に従い、情報通信システムSに含まれるノード装置を複数のグループに分けて当該各グループを第1段階のグループとし、第1段階のグループのうち自ノード装置が属するグループをさらに複数のグループに分けて当該各グループを第2段階のグループとし、この第2段階のグループ分けと同様のグループ分けにより第n(nは3以上の自然数)段階までの各グループとして、各段階の各グループに属する一のノード装置の所在情報(IPアドレス)をそれぞれ記憶していればよい。ノード装置1がこのようにグループ分けして段階毎に他のノード装置1を記憶していることにより、失効リストの送信、及び、失効リストの転送が可能となり、失効リストに含まれるノードIDのノード装置を除き、情報通信システムSに含まれる全てのノード装置、又は、特定のグループに含まれる全てのノード装置に、失効リストを送信することが可能となる。なお、本発明における「段階」を、実施形態においては「レベル」を用いて表しており、レベル1、レベル2等が段階に相当する。
【0194】
上述の各実施形態においては、図10の各図に示すように、送信グループ特定値(IDマスク)及び識別情報(ターゲットノードID)が、失効メッセージのヘッダ部分に含める形態としているが、この形態に限定されない。送信グループ特定値及び識別情報が失効リストとともに送信される形態としていれば、どのような形態で失効リストに付されていてもよい。また、送信グループ特定値の定義の仕方も、上述の各実施形態におけるものに限定されず、一定の規則により送信するグループを特定でき、また、失効リストを転送する際等に一定の規則に従って送信グループ特定値を変換し、ターゲットとなるノード装置1を特定できればよい。
【0195】
また、上述のノード装置1の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係る制御部11として機能させることも可能である。
【0196】
また、上述の実施形態においては、失効リストには、当該情報通信システムSへの参加資格を失効したノード装置1の情報として当該ノード装置1のノードIDが含まれることとして説明したが、ノード装置1の固有情報であれば、ノード装置1のIPアドレスであってもよい。すなわち、上述の実施形態においては、失効メッセージを送信しようとするノード装置1のノードIDが失効リストに存在するか否かを判定することとしたが、失効メッセージを送信しようとするノード装置1のIPアドレスが失効リストに存在するか否かの判定をルーティングテーブルを参照することによって行い、IPアドレスが失効リストに存在するときにはそのIPアドレスのノード装置1へは失効メッセージを送信しないようにするのである。
【0197】
また、失効リストに、ノード装置1の固有情報に代えて、情報通信システムSへの参加資格を失効したノード装置の情報として当該ノード装置において他のノード装置との間の接続認証に用いる電子証明書を含むようにしてもよい。この場合、電子証明書を発行する認証局から、失効した電子証明書の情報を含む失効リストを情報投入装置10が取得して、一のノード装置に送信する。
【0198】
ここで、電子証明書とは、認証局から発行され、ノード装置1における利用者の固有の情報が含まれる証明書である。この電子証明書として、例えば、ITU−TX.509Iに規定された公開鍵証明書などがある。
【0199】
このように失効した電子証明書の情報を含む失効リストを用いる場合には、ノード装置1におけるルーティングテーブルに各ノード装置1の電子証明書の情報を含ませる。そして、失効メッセージを送信しようとするノード装置1の電子証明書が失効リストに存在するか否かの判定をルーティングテーブルを参照することによって行い、その電子証明書が失効リストに存在するときにはその電子証明書のノード装置1へは失効メッセージを送信しないようにする。
【0200】
また、ルーティングテーブルに各ノード装置1の電子証明書の情報を含ませずに、制御部11は、他のノード装置との通信時に失効しているか否かの判定をするようにしてもよい。例えば、ノード装置1の制御部11は、他のノード装置1へ失効メッセージを送信するときに、そのノード装置1から送信される電子証明書が失効リストに存在するか否かの判定を行い、その電子証明書が失効リストに存在するときにはノード装置1への失効メッセージの送信を行わないようにする。
【0201】
また、上述の実施形態では、ノード装置1の制御部11において、失効リストに含まれることとなるノード装置の情報をインデックステーブルやルーティングテーブルから削除することとしたが、この削除処理を行わず、失効リストを参照して、各種メッセージの送信、転送、応答などを行ってもよい。例えば、制御部11は、検索メッセージを受信したとき、その検索メッセージの送信元のノード装置の情報が失効リストに含まれると判定すると、この検索メッセージに対する処理を行わないようにすることができる。
【0202】
また、上述の実施形態では、失効メッセージ送信処理起動(図16におけるステップS3)の後に失効リストに基づく処理(図16におけるステップS4)を行い、また、失効メッセージ転送処理起動(図16におけるステップS7)後に失効リストに基づく処理(図16におけるステップS8)を行うこととしたが、失効リストに基づく処理の後に失効メッセージ送信処理起動を行い、失効リストに基づく処理の後に失効メッセージ転送処理起動を行ってもよい。この場合、情報投入装置10や他のノード装置1から受信した失効リストに含まれるノード装置の情報をルーティングテーブルから削除した後に、失効メッセージ送信処理や失効メッセージ転送処理を行うことになるから、ルーティングテーブルから取り出したノード装置が失効リストに存在するか否かの判定等の処理(図18におけるステップS21の処理、図21におけるステップS51,S54の処理、図24におけるステップS87の処理)が不要となる。
【図面の簡単な説明】
【0203】
【図1】本実施形態に係る情報通信システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】ID空間の説明図である。
【図3】DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【図4】図1におけるノード装置が有するルーティングテーブルの一例である。
【図5】情報保持ノード装置の登録メッセージが転送される様子をスパニングツリー状に表した図である。
【図6】図1におけるノード装置のインデックステーブルの一例を示す図である。
【図7】DHTによって情報保持ノード装置が検索される様子の一例を示す図である。
【図8】本実施形態に係る情報通信システムにおける失効リストの一例を示す図である。
【図9】図1のノード装置が有するルーティングテーブルの一例である。
【図10】生成される失効メッセージを模式的に表した図である。
【図11】失効メッセージが送信される様子の第1段階を示す図である。
【図12】失効メッセージが送信される様子の第2段階を示す図である。
【図13】失効メッセージが送信される様子の第3段階を示す図である。
【図14】(A)、(B)は、失効メッセージが送信される様子の第4段階を示す図である。(C)は、失効メッセージが送信される様子の最終段階を示す図である。
【図15】ノード装置1の概要構成例を示す図である。
【図16】第1実施形態のノード装置におけるメイン処理を示すフローチャートである。
【図17】第1実施形態のノード装置における失効メッセージ送信処理を示すフローチャートである。
【図18】第1実施形態のノード装置における失効メッセージ送信処理を示すフローチャートである。
【図19】第1実施形態のノード装置における失効リストに基づく処理を示すフローチャートである。
【図20】第1実施形態のノード装置における失効メッセージ転送処理を示すフローチャートである。
【図21】第1実施形態のノード装置における失効メッセージ転送処理を示すフローチャートである。
【図22】第2実施形態のノード装置における失効メッセージ送信処理を示すフローチャートである。
【図23】第2実施形態のノード装置における失効メッセージ転送処理を示すフローチャートである。
【図24】第2実施形態のノード装置におけるメッセージ送信処理を示すフローチャートである。
【符号の説明】
【0204】
1 ノード装置
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S 情報通信システム

【特許請求の範囲】
【請求項1】
通信経路を介して互いに接続された複数のノード装置の参加により形成される情報通信システムにおける前記ノード装置であって、
当該情報通信システムへの参加資格が失効したノード装置の情報を含む失効リストを記憶する失効リスト記憶手段と、
所定の情報を保持するノード装置の所在情報を記憶する情報保持ノード記憶手段と、
他のノード装置からの要求に応じて、前記情報保持ノード記憶手段から前記所定の情報を保持するノード装置の所在情報を取り出して、前記他のノード装置へ送信する要求応答手段と、
前記失効リストに含まれるノード装置の所在情報を前記情報保持ノード記憶手段から削除する情報保持ノード削除手段と、を有する
ことを特徴とする記載のノード装置。
【請求項2】
所定の規則に従い、当該情報通信システムに含まれる前記ノード装置を複数のグループに分けて当該各グループを第1段階のグループとし、前記第1段階のグループのうち自ノード装置が属するグループをさらに複数のグループに分けて当該各グループを第2段階のグループとし、前記第2段階のグループ分けと同様のグループ分けにより第n(nは3以上の自然数)段階までの各グループとして、各段階の各グループに属する一のノード装置の所在情報をそれぞれ記憶する記憶手段と、
前記失効リストに含まれるノード装置の所在情報を前記記憶手段から削除する失効処理手段と、を備える
ことを特徴とする請求項1に記載のノード装置。
【請求項3】
所定の規則に従って前記複数のノード装置が複数のグループに分けられた各前記グループに含まれる一の前記ノード装置を決定し、決定された前記各グループのノード装置に向けて送信すべき前記失効リストを送信する失効リスト送信手段と、
他の前記ノード装置から受信した前記失効リストが自ノード装置を含むグループ宛の場合には、自ノード装置が属する前記グループが前記所定の規則に従ってさらに複数のグループに分けられた各前記グループに含まれる一の前記ノード装置を決定し、決定された前記各グループ全ての前記ノード装置に向けて前記失効リストを送信する失効リスト転送手段と、を備える
ことを特徴とする請求項1又は請求項2に記載のノード装置。
【請求項4】
前記失効リスト送信手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、所定の段階の各グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて前記失効リストを送信し、
前記失効リスト転送手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、前記自ノード装置が属するグループの段階の次段階の各前記グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて前記失効リストを送信する
ことを特徴とする請求項3に記載のノード装置。
【請求項5】
前記失効リスト転送手段は、前記記憶手段に所在情報が記憶された前記ノード装置であって、前記自ノード装置が属するグループの段階の次段階よりも下位の段階の各前記グループに含まれる一の前記ノード装置を決定し、決定された前記ノード装置に向けて受信した前記失効リストを送信する
ことを特徴とする請求項3又は請求項4に記載のノード装置。
【請求項6】
前記記憶手段は、前記所定の規則として分散ハッシュテーブルを利用して、前記ノード装置の前記所在情報を記憶することを特徴とする請求項2から5のいずれか一項に記載のノード装置。
【請求項7】
前記失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置において他の前記ノード装置との間の接続認証に用いる電子証明書が含まれる
ことを特徴とする請求項1から6のいずれか一項に記載のノード装置。
【請求項8】
前記失効リストには、当該情報通信システムへの参加資格を失効したノード装置の情報として当該ノード装置の固有情報が含まれる
ことを特徴とする請求項1から6のいずれか一項に記載のノード装置。
【請求項9】
コンピュータを、請求項1から8のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2008−250571(P2008−250571A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−89816(P2007−89816)
【出願日】平成19年3月29日(2007.3.29)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】