JP2008276551A - 通信システム、通信方法、及び通信プログラム - Google Patents

通信システム、通信方法、及び通信プログラム Download PDF

Info

Publication number
JP2008276551A
JP2008276551A JP2007119881A JP2007119881A JP2008276551A JP 2008276551 A JP2008276551 A JP 2008276551A JP 2007119881 A JP2007119881 A JP 2007119881A JP 2007119881 A JP2007119881 A JP 2007119881A JP 2008276551 A JP2008276551 A JP 2008276551A
Authority
JP
Japan
Prior art keywords
node
content
message
content node
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007119881A
Other languages
English (en)
Other versions
JP5228369B2 (ja
Inventor
Takayuki Shizuno
隆之 静野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007119881A priority Critical patent/JP5228369B2/ja
Publication of JP2008276551A publication Critical patent/JP2008276551A/ja
Application granted granted Critical
Publication of JP5228369B2 publication Critical patent/JP5228369B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 あるノードに冗長に情報を持たせることなく、P2Pネットワークに参加している任意のノードが離脱した時に当該P2Pネットワークを修復できる通信システムを提供する。
【解決手段】 P2P型リングネットワークをコンテンツオリエンテッドな構成にし、リングネットワークにはコンテンツノードが参加することによって、各ノードにコンテンツの場所情報を登録する必要をなくし、さらにあるノードが離脱しコンテンツノードがリングネットワークから離脱した場合に、離脱したコンテンツノードの下流側のコンテンツノードが離脱したコンテンツノードの上流側コンテンツノードを検索し、両者を結びつけリングネットワークを修復する。
【選択図】図3

Description

本発明は、通信システム、通信方法、及びプログラムに関し、特にIPネットワーク上において、サーバを介さず端末同士が直接通信する通信システム、通信方法及びプログラムに関する。
近年、P2P(Peer to Peer)技術を用いたファイル共有ネットワークにより、テキストだけでなく画像や音声、映像といった様々なコンテンツがユーザ間で直接やりとりされるようになってきた。
P2P技術の例としてコード(Chord)がある。コード(Chord)は分散ハッシュテーブルを用いるP2P技術の一つで、参加するノードはハッシュ関数を用いて生成されたID(identifier)を付与され、そのIDの順にオーバーレイネットワーク上でリング状に接続する。コンテンツも同様にハッシュ関数によりIDを付与され、コンテンツIDとコンテンツ場所情報の組み合わせデータがIDに従いネットワークに参加するノードに保存される。ノードがあるコンテンツを検索する場合、分散ハッシュテーブルを用いて検索メッセージをノード間でルーティングし、所望のコンテンツの場所情報を持つノードを検索する。ノードは定期的に近隣のノードと存在を確認しあうことでコード(Chord)リングを維持する。
電話で通話を行う場合のように端末同士を繋げる目的の場合にもコード(Chord)を利用できる。例えばP2P−SIP(Session Initiation Protocol)ではSIP−URI(Uniform Resource Identifier)をコンテンツとしてSIP−URIをハッシュ関数に適用した結果をコンテンツIDとしてIP(Internet Protocol)アドレスと共にコード(Chord)リングに登録しておき、通信する場合はSIP−URIをキーにIPアドレスをコード(Chord)リング上で検索する。
コード(Chord)に限らず一般のP2Pネットワークでは参加するノードは任意のタイミングでP2Pネットワークを離脱することができる。コード(Chord)の場合、あるノードが離脱してしまうとコンテンツIDとIPアドレス情報が消滅してしまうため、その情報をバックアップする必要がある。
例えばバックアップを、リングを伝い上流・下流それぞれ数ノードに対し情報のコピーを渡しておく、といった方法がある。
あるいは特許文献1(特開2004−72603号公報)のように、ノードそれぞれにバックアップのノードを設定し、そのノードにデータのコピーを渡しておく、といった方法もある。
このようにコンテンツIDとコンテンツ場所情報の組み合わせデータを残しておくことで、ノードの離脱が発生してもコード(Chord)リングを正常に動作させることができる。
特開2004−72603号公報
従来の問題は、ノードが離脱した場合でも正常に動作するために他のノードに自ノードの持つ情報をバックアップしなければならない、ということである。
その理由は、P2Pネットワークでは任意のタイミングでノードの離脱が許されるためである。そのためにはあるノードは他のノードに離脱する前に自ノードの持つ情報をコピーしておかなければならない。また、あるノードとバックアップのノード両方が同時にP2Pネットワークから離脱する可能性があるため、そのような状況を避けるためにはバックアップのノードを増やさなければならず、結果として1つのノードに保存しなければならない情報量が多量になってしまう。すなわちリング修復能力を高めるためには1つのノードが保存しなければならない情報量が増え、一方で1つのノードが保存しなければならない情報量を削減しようとするとリング修復能力が低下してしまう。
(目的)
本発明の目的は、あるノードに冗長に情報を持たせることなく、P2Pネットワークに参加している任意のノードが離脱した時に当該P2Pネットワークを修復できる通信システムを提供することにある。
上記課題を解決するため本発明は、1又は複数のコンテンツを保持するノード上の当該コンテンツに対して一意の識別情報を付与し、前記コンテンツをコンテンツノードとする、コンテンツオリエンテッドなP2P型のネットワークリングを構成することを特徴とする。
以下に、発明を実施するための最良の形態で使用される番号を括弧付きで用いて、課題を解決するための手段をより詳細に説明する。これらの番号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために付加されたものである。但し、それらの番号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の第1の通信システムは、1つまたは複数のコンテンツを持つ複数のノードで構成され、各ノードは外部ネットワークと接続され、他のノードまたはコンテンツノードとの情報を送受信する送受信部1と、コンテンツデータベース6に登録されているコンテンツ1つに対し1つ生成され、担当するコンテンツについてのコンテンツノード機能を提供するコンテンツノード機能部2と、コンテンツデータベース6にコンテンツが登録させると、追加されたコンテンツを担当するコンテンツノード機能部2を追加するコンテンツノード生成機能部3と、コンテンツデータベース6からコンテンツが削除させると、削除されたコンテンツを担当していたコンテンツノード機能部2を削除するコンテンツノード削除機能部4と、検索したいコンテンツのID番号をハッシュ関数から求め、コンテンツノード機能部にコンテンツ検索リクエストを送信することで、コンテンツを検索するコンテンツノード検索機能部5と、他のノードに対し公開するコンテンツを保存するコンテンツデータベース6と、ノード内に存在するコンテンツノード機能部2で用いるフィンガーテーブルを保存するフィンガーテーブルデータベース7と、を有する。このような構成を採用し、P2Pネットワークをコンテンツオリエンテッドな構成にし、当該ネットワークにはコンテンツノードが参加することによって、各ノードにコンテンツの場所情報を登録する必要をなくし、さらにあるノードが離脱しコンテンツノードが当該ネットワークから離脱した場合に、離脱したコンテンツノードの下流側のコンテンツノードが離脱したコンテンツノードの上流側コンテンツノードを検索し、両者を結びつけ当該ネットワークを修復することによって、本発明の目的を達成することができる。
送受信部1は、外部ネットワークと接続されており、コンテンツノード機能部2から発信されるDHT参加メッセージとコンテンツ検索メッセージとキープアライブ(keep alive)メッセージとを、そのメッセージに記載の他のノードへ情報を送信する機能と、他のノードからDHT参加メッセージとコンテンツ検索メッセージとキープアライブ(keep alive)メッセージとを受信した場合、そのメッセージに記載のコンテンツノード機能部2に、そのメッセージを通知する機能と、を有する。この動作により他のノードまたは他のコンテンツノードとの情報の送受信を実現する。
コンテンツノード機能部2は、コンテンツデータベース6に登録されているコンテンツ1つに対し1つ生成され、担当するコンテンツのコンテンツノードをP2Pネットワーク上に登録する機能を提供するDHT参加機能部21と、所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信するDHT検索機能部22と、他のコンテンツノードとキープアライブ(keep alive)メッセージを送受信しあい、当該ネットワークを維持する機能を持つDHT管理機能部23と、を有する。この構成により当該ネットワークを構成するためのDHT管理と、当該ネットワーク上でのコンテンツ検索機能を提供する。
コンテンツノード機能部2は、コンテンツノード生成機能部により生成されると、DHT参加機能部21を用いてP2Pネットワーク上に自コンテンツノードを参加させる機能と、他のコンテンツノードからDHT参加メッセージを受信すると、DHT管理部23を用いて、DHT参加メッセージを送信してきたコンテンツノードを当該ネットワーク上に参加させる機能と、コンテンツノード検索機能部5から、コンテンツ検索リクエストを受けると、DHT検索機能部22を用いフィンガーテーブルデータベース7を参照し、自コンテンツノードに関するフィンガーテーブル以外の同じノード内に存在する他のコンテンツノードに関するフィンガーテーブルも参照した上で所定のアルゴリズムに従ってコンテンツノードを検索、コンテンツメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する機能と、他のコンテンツノードからコンテンツ検索メッセージを受信すると、DHT検索機能部を用いフィンガーテーブルデータベース7を参照し、自コンテンツノードに関するフィンガーテーブル以外の同じノード内に存在する他のコンテンツノードに関するフィンガーテーブルも参照した上で所定のアルゴリズムに従ってコンテンツノードを検索、コンテンツメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する機能と、コンテンツノード削除機能部4からコンテンツノード削除リクエストを受信すると、自身を削除する機能と、を有する。
DHT参加機能部21は、他のコンテンツノードに対し、DHT参加メッセージを送信することで、担当するコンテンツのコンテンツノードをP2Pネットワーク上に登録する機能を有する。
DHT検索機能部22は、コンテンツノード検索機能部からのコンテンツノード検索リクエストを受信すると、フィンガーテーブルデータベース7を参照し、自コンテンツノードに関するフィンガーテーブル以外の同じノード内に存在する他のコンテンツノードに関するフィンガーテーブルも参照した上で所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する機能と、他のコンテンツノードか らコンテンツ検索メッセージを受信すると、フィンガーテーブルデータベース7を参照し、自コンテンツノードに関するフィンガーテーブル以外の同じノード内に存在する他のコンテンツノードに関するフィンガーテーブルも参照した上で所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する機能と、を有する。
DHT管理部23は、他のコンテンツノードとフィンガーテーブルデータベース7に含まれる自コンテンツノードに関するフィンガーテーブルの情報を含むキープアライブ(keep alive)メッセージを送受信しあい、フィンガーテーブルの情報を更新し、P2Pネットワークを維持する機能と、キープアライブ(keep alive)メッセージの送受信を定期的に実施し、キープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードは当該ネットワークを離脱したとすることで、他のコンテンツノードの離脱を検出する機能と、あるコンテンツノードが離脱したことを検出した場合、かつ離脱したコンテンツノードが自コンテンツノードから見て下流であった場合、離脱したコンテンツ ノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間待つ機能と、あるコンテンツノードが離脱したことを検出した場合、かつ離脱したコンテンツノードが自コンテンツノードから見て上流であった場合、DHT検索機能部22を用い離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信することで、離脱したコンテンツノード先に存在するコンテンツノードと通信し当該ネットワークを修復する機能と、離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを待っている場合に、離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを送信してきたコンテンツノードとキープアライブ(keep alive)メッセージを送受信しあうことでリングの修復を完了する機能と、離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを待ち、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージが一定時間経過後も届かない場合、フィンガーテーブルデータベース7を参照し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試み、接続が成功した場合はそのコンテンツノードとリングを修復し、接続できなかった場合は再度フィンガーテーブルデータベース7を参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返す機能と、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待つ場合、一定時間経過す る間に複数の離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを受信した場合、通常のコンテンツ検索メッセージと同様フィンガーテーブルデータベース7を参照し効率のよいコンテンツ検索メッセージ送信先がある場合は、そのコンテンツノードに対し、コンテンツ検索 メッセージを送信する機能と、フィンガーテーブルデータベース7を参照し効率のよいコンテンツ検索メッセージ送信先がない場合、すなわち複数のリング修復 オプションの付いたコンテンツ検索メッセージについて自コンテンツノードが最適な受信者であった場合、コンテンツ検索メッセージ送信元のコンテンツノードのID番号を比較し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試み、それ以外のコンテンツ検索メッセージについては全て破棄する機能と、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信後、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待っていたコンテンツノードからのキープアライブ(keep alive)メッセージを待つ機能と、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信後一定時間経過後もキープアライブ(keep alive)メッセージを受信しない場合は、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージの再送を実施する機能と、再送を含む全てのコンテンツ検索メッセージに対してもキープアライブ(keep alive)メッセージを受信しない場合は、フィンガーテーブルデータベース7を参照し、自コンテンツノードのID番号よりも小さくかつ、最も近いID番号を持つコンテンツノードから順に接続を試み、接続が成功した場合はそのコンテンツノードとリングを修復し、接続できなかった場合は再度フィンガーテーブルデータベース7を参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返す機能と、を有する。
本発明の第1の通信方法は、他のコンテンツノードと、キープアライブ(keep alive)メッセージの送受信を定期的に実施し、キープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードはP2Pネットワークを離脱したとすることによってコンテンツノードの離脱を検出するステップS−1と、離脱したコンテンツノードの当該ネットワーク上での方向を確認するステップS−2と、離脱したコンテンツノードの当該ネットワーク上での方向が、離脱したコンテンツノードが自コンテンツノードから見て下流であった場合の動作を規定するステップS−Aと、離脱したコンテンツノードの当該ネットワーク上での方向が、離脱したコンテンツノードが自コンテンツノードから見て上流であった場合の動作を規定するステップS−Bと、キープアライブ(keep alive)メッセージを送受信し、当該ネットワークを修復するステップS−C1と、を有する。
また、ステップS−Aは、離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間待つ状態になるステップS−A1と、離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間内に受信したかどうかを確認するステップS−A2と、離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間内に受信しなかった場合に、フィンガーテーブルデータベースを参照し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みるステップS−A3と、離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間内に受信した場合に、フィンガーテーブルデータベースを参照し効率のよいコンテンツ検索メッセージ送信先があるか確認するステップS−A4と、ステップS−A4で決定したコンテンツノードに対し、キープアライブ(keep alive)メッセージを送信するステップS−A6と、を有する。
ステップS−Bは、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信するステップS−B1と、一定時間以内にキープアライブ(keep alive)メッセージを受信したか確認するステップS−B2と、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを再送するステップS−B3と、一定時間以内にキープアライブ(keep alive)メッセージを受信したか確認するステップS−B4と、フィンガーテーブルデータベースを参照し、自コンテンツノードのID番号よりも小さくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みるステップS−B5と、を有する。
本発明の通信プログラムは、上記通信方法を、コンピュータに実行させるためのプログラムである。
本発明の第1の効果は、あるノードに冗長に情報を持たせることなく、P2Pネットワークに参加していた任意のノードが離脱した時に当該ネットワークを修復できることである。
その理由は、1又は複数のコンテンツを保持するノード上の当該コンテンツに対して一意の識別情報を付与し、前記コンテンツをコンテンツノードとする、コンテンツオリエンテッドなP2P型のネットワークリングを構成するからである。すなわち、P2P型ネットワークリングをコンテンツオリエンテッドな構成にし、当該ネットワークリングにはコンテンツノードが参加することによって、各ノードにコンテンツの場所情報を登録する必要をなくし、さらに、あるノードが離脱しコンテンツノードが当該ネットワークリングから離脱した場合に、離脱したコンテンツノードの下流側のコンテンツノードが離脱したコンテンツノードの上流側コンテンツノードを検索し、両者を結びつけることにより、当該ネットワークを修復するためである。
(第1の実施の形態)
以下に本発明の第1の実施の形態について添付図を参照して説明する。
(第1の実施の形態の構成)
図1は、本実施の形態による通信システムの物理的構成を示す概略図である。
図1を参照すると、本実施の形態による通信システムは、ネットワーク上に配置された情報処理端末であるノード100が、複数のコンテンツを有しうるものとする。
図2は、本実施の形態による通信システムの論理的構成を示す概略図である。
図2を参照すると、本実施の形態による通信システムは、P2P(Peer to Peer)のネットワークをコンテンツオリエンテッドな構成し、ノード100が有する各コンテンツ(コンテンツノード)に一意のノードID(identifier)を割り振り、ノードID(identifier)2、3、・・・、56、61としてストラクチャードに当該ネットワーク上に参加させたものである。なお、本実施の形態によるネットワークのトポロジはリング(リングネットワーク)であるが、トポロジはリングに制限されるものではない。
図3は、本実施の形態によるノードの構成を示すブロック図である。
図3を参照すると、本実施の形態の通信システムを構成するノードは、送受信部1と、コンテンツノード機能部2と、コンテンツノード生成機能部3と、コンテンツノード削除機能部4と、コンテンツノード検索機能部5と、コンテンツデータベース6と、フィンガーテーブルデータベース7を有する。
またコンテンツノード機能部2は、DHT(Distributed Hash Table)参加機能部21と、DHT検索機能部22と、DHT管理機能部23と、を有する。
送受信部1は、外部ネットワークと接続されており、コンテンツノード機能部2から発信されるDHT参加メッセージとコンテンツ検索メッセージとキープアライブ(keep alive)メッセージとを、そのメッセージに記載の他のノードへ情報を送信する。また、他のノードからDHT参加メッセージとコンテンツ検索メッセージとキープアライブ(keep alive)メッセージとを受信した場合、そのメッセージに記載のコンテンツノード機能部2に、そのメッセージを通知する。
コンテンツノード機能部2は、コンテンツデータベース6に登録されているコンテンツ1つに対し1つ生成され、担当するコンテンツについてのコンテンツノード機能を提供する。すなわち、コンテンツノード機能部2のひとつがリングネットワーク上のコンテンツノード1つに該当し、リングネットワークを構成するためのDHT管理と、リングネットワーク上でのコンテンツ検索機能を提供する。ここで、コンテンツノードのリングネットワーク上のID(identifier)は、コンテンツに関する情報をハッシュ関数に適用した結果を用いる。コンテンツに関する情報とは、例えばコンテンツ名、などがある。
コンテンツノード機能部2は、コンテンツノード生成機能部3により生成されると、DHT参加機能部21を用いてリングネットワーク上に自コンテンツノード(自コンテンツノード機能部2)を参加させる。
また、コンテンツノード機能部2は、他のコンテンツノードからDHT参加メッセージを受信すると、DHT管理部23を用いて、DHT参加メッセージを送信してきたコンテンツノードをリングネットワーク上に参加させる。
また、コンテンツノード機能部2は、コンテンツノード検索機能部5から、コンテンツ検索リクエストを受けると、DHT検索機能部22を用いコンテンツ検索メッセージを送受信部1に発信する。すなわち、DHT検索機能部22は、フィンガーテーブルデータベース7を参照し、後述する所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
ここで、フィンガーテーブルデータベース7にはノードに存在するコンテンツノード機能部2全てに関するフィンガーテーブルが保存されている。DHT検索機能部22がフィンガーテーブルデータベース7を参照し、所定のアルゴリズムに従ってメッセージ送信先を決める場合に、自コンテンツノード機能部に関するフィンガーテーブル以外に他のコンテンツノード機能部に関するフィンガーテーブルも参照することで、自コンテンツノードに関するフィンガーテーブルを参照するだけでは知ることのできないコンテンツノード情報を得ることができる。すなわち、多くのコンテンツノード情報を参照できるため、効率のよいメッセージ送信先を決めることができる。ここで効率のよいメッセージ送信先とは、コンテンツ検索メッセージで検索したいコンテンツノードそのものであるが、その情報がない場合は、検索したいコンテンツノードのID番号よりも小さいID番号を持つコンテンツノードの中で最大のID番号を持つコンテンツノードである。
また、コンテンツノード機能部2は、他のコンテンツノードからコンテンツ検索メッセージを受信すると、DHT検索機能部22及びフィンガーテーブルデータベース7を用い所定のアルゴリズムに従ってコンテンツノードを検索、コンテンツメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
また、コンテンツノード機能部2は、コンテンツノード削除機能部4からコンテンツノード削除リクエストを受信すると、自身を削除する。
DHT参加機能部21は、担当するコンテンツのコンテンツノードをリングネットワーク上に登録する機能を提供する。すなわち、リングネットワーク上にコンテンツノードを登録するために、他のコンテンツノードに対し、DHT参加メッセージを送信する。
DHT検索機能部22は、コンテンツノード検索機能部5からのコンテンツノード検索リクエストを受信すると、フィンガーテーブルデータベース7を参照し、所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
また、DHT検索機能部22は、他のコンテンツノードからコンテンツ検索メッセージを受信すると、フィンガーテーブルデータベース7を参照し、所定のアルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
DHT管理部23は、他のコンテンツノードとキープアライブ(keep alive)メッセージを送受信しあい、リングネットワークを維持する機能を持つ。ここで、キープアライブ(keep alive)メッセージにはフィンガーテーブルデータベース7に含まれる自コンテンツノードに関するフィンガーテーブルも含まれ、他のコンテンツノードとフィンガーテーブルを送受信しあうことでフィンガーテーブルを最新の状態にする。すなわち、他のコンテンツノードから受信したフィンガーテーブルが自コンテンツノードの持つフィンガーテーブルより新しい場合、他のコンテンツノードから受信したフィンガーテーブルの情報を参照し、自コンテンツノードのフィンガーテーブルを更新する。ここで、キープアライブ(keep alive)メッセージはリングネットワーク上上流及び下流のコンテンツノード1つまたは複数に対し実行される。
ここで、リングネットワーク上で上流とは、リングネットワークにおいてあるコンテンツノードから見てID番号が小さいコンテンツノードが存在する方向を指し、リングネットワーク上で下流とは、リングネットワークにおいてあるコンテンツノードから見てID番号が大きいコンテンツノードが存在する方向を指す。ただしID番号の継ぎ目に当たる部分において、あるコンテンツノードから見てどちらの方向のコンテンツノードIDも小さい場合は、より小さいID番号を持つコンテンツノード側を下流とし、逆側を上流とする。
さらに、DHT管理部23は、キープアライブ(keep alive)メッセージの送受信を定期的に実施することで、他のコンテンツノードの離脱を検出する。すなわちキープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードはリングネットワークを離脱したとする。
DHT管理部23は、あるコンテンツノードが離脱したことを検出した場合、離脱したコンテンツノード先に存在するコンテンツノードと通信しリングネットワークを修復する機能を持つ。離脱したコンテンツノードが自コンテンツノードから見て下流であった場合、離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間待つ。一方、離脱したコンテンツノードが自コンテンツノードから見て上流であった場合、DHT検索機能部22を用い離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信する。
離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを待っていたDHT管理部23は、離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを送信してきたコンテンツノードとキープアライブ(keep alive)メッセージを送受信しあうことでリングの修復を完了する。
ここで、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待つ場合、ネットワーク上の状態及びリングネットワークの破損状態によっては離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージが一定時間経過後も届かない場合も考えられる。この場合、フィンガーテーブルデータベース7を参照し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。接続が成功した場合はそのコンテンツノードとリングを修復し、接続できなかった場合は再度フィンガーテーブルデータベース7を参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返す。
さらに、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待つ場合、一定時間経過する間に複数の離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを受信する可能性もある。この場合、まずは通常のコンテンツ検索メッセージと同様フィンガーテーブルデータベース7を参照し効率のよいコンテンツ検索メッセージ送信先がある場合は、そのコンテンツノードに対し、コンテンツ検索メッセージを送信する。一方フィンガーテーブルデータベース7を参照し効率のよいコンテンツ検索メッセージ送信先がない場合、すなわち複数のリング修復オプションの付いたコンテンツ検索メッセージについて自コンテンツノードが最適な受信者であった場合、コンテンツ検索メッセージ送信元のコンテンツノードのID番号を比較し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。それ以外のコンテンツ検索メッセージについては全て破棄する。
また、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信する場合、DHT検索機能部22はリング修復オプションのないコンテンツ検索メッセージと同様、フィンガーテーブルデータベース7を参照する場合に、自コンテンツノード機能部2に関するフィンガーテーブル以外に他のコンテンツノード機能部2に関するフィンガーテーブルも参照することで、自コンテンツノードに関するフィンガーテーブルを参照するだけでは知ることのできないコンテンツノード情報を得ることができる。すなわち、多くのコンテンツノード情報を参照できるため、効率のよいメッセージ送信先を決めることができる。ここで効率のよいメッセージ送信先とは、コンテンツ検索メッセージで検索したいコンテンツノード、すなわち離脱したコンテンツノードのID番号よりも小さいID番号を持つコンテンツノードの中で最大のID番号を持つコンテンツノードである。このような検索を繰り返すことで、離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを待つコンテンツノードにメッセージが届けられる。
離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信後、DHT管理部23は離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待っていたコンテンツノードからのキープアライブ(keep alive)メッセージを待つ。
ここで、一定時間経過後もキープアライブ(keep alive)メッセージを受信しない場合は、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージの再送を実施する。再送回数は1回とは限らず、ネットワーク状態により再送を複数回実施することもできる。
この再送した全てのコンテンツ検索メッセージに対してもキープアライブ(keep alive)メッセージを受信しない場合は、フィンガーテーブルデータベース7を参照し、自コンテンツノードのID番号よりも小さくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。接続が成功した場合はそのコンテンツノードとリングを修復し、接続できなかった場合は再度フィンガーテーブルデータベース7を参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返す。
コンテンツノード生成機能部3は、コンテンツデータベース6にコンテンツが登録されると、追加されたコンテンツを担当するコンテンツノード機能部2を追加する。
コンテンツノード削除機能部4は、コンテンツデータベース6からコンテンツが削除されると、削除されたコンテンツを担当していたコンテンツノード機能部2を削除する。
すなわち、コンテンツデータベース6に新たにコンテンツが追加された場合、ノードはコンテンツノード生成機能部3を用い、追加されたコンテンツを担当するコンテンツノード機能部2を追加する。追加されたコンテンツノード機能部は、DHT参加機能部21を用い自身をリングネットワークに参加させる。一方、コンテンツデータベース6からコンテンツが削除された場合、ノードはコンテンツノード削除機能部4を用い、削除されたコンテンツを担当していたコンテンツノード機能部2を削除する。
コンテンツノード検索機能部5は、検索したいコンテンツのID番号をハッシュ関数から求め、コンテンツノード機能部2にコンテンツ検索リクエストを送信することで、コンテンツを検索する。ここで、ノード内に存在するコンテンツノード機能部2のうち、検索したいコンテンツのID番号よりID番号が小さいコンテンツを担当するコンテンツノード機能部の中で最大のID番号を担当するコンテンツノード機能部2に対し、コンテンツ検索リクエストを送信することで、効率のよい検索を実施することができる。
コンテンツデータベース6は、他のノードに対し公開するコンテンツを保存する。なお、コンテンツとは、便宜上設けた概念であり、例えば、URI(Uniform Resource Identifier)のように、インターネット上における情報資源の存在場所を指し示す情報が含まれる。
フィンガーテーブルデータベース7は、ノード内に存在するコンテンツノード機能部2で用いるフィンガーテーブルを保存する。また、ノード100は、自ノード内に複数の前記フィンガーテーブルが存在する場合、各フィンガーテーブルを関連付けてフィンガーテーブルデータベース7に保存する。フィンガーテーブルとは本実施の形態における所定のアルゴリズムにおいてコンテンツノードを検索する場合に用いるルーティングテーブルのようなもので、コンテンツノードのID番号とIPアドレスなどのコンテンツノードに関する情報が記載されている。
ハッシュ空間を2 の値で定義し(mはパラメータ)、ノード100の各コンテンツノードに対し、各コンテンツノードを識別するノードIDをハッシュ関数を用いて算出し、付与する。
従って、1つのノード100が複数のノードIDを持つ場合があり、1つのノード100が複数のコンテンツ(ノードID)を持つ場合、ハッシュ空間ではノードが各コンテンツノードによって複数存在しているように見える。
ノード100の存在場所となるIPアドレスと、コンテンツの存在場所となるノードIDの組がフィンガーテーブルとしてフィンガーテーブルデータベース7に記録され、当該フィンガーテーブルの情報が、本実施の形態における所定のアルゴリズムによって各ノードに分散する。
各コンテンツノードは、ハッシュ空間上で当該コンテンツノードの上流側の隣に位置するコンテンツノード(Pノード)のノードID及びIPアドレスと、ハッシュ空間上で当該コンテンツノードの下流側の隣に位置するコンテンツノード(Sノード)のノードID及びIPアドレスとを有する。
また、各コンテンツノードは、フィンガーテーブルとして、ノードID及びIPアドレスの組をmエントリ有し、自身のノードID=Aとして、iエントリ目のノードIDを、(A+2) mod 2 0≦i≦m−1の式(1)によって求めるとする場合、当該iエントリ目のノードIDより大きいノードIDを持つ現存するノードのノードIDの情報を有する。
図4は、本実施の形態の形態による各ノードが有するフィンガーテーブルデータベース7をまとめて示した図である。
図4を参照すると、ハッシュ空間において、各コンテンツノードは、当該コンテンツノードの上流側の隣に位置するコンテンツノード(Pノード)のノードIDと、当該コンテンツノードの下流側の隣に位置するコンテンツノード(Sノード)のノードIDと、ハッシュ空間2(m=6)において、上記式(1)によって求められるm=0からm=6−1までのノードIDとを有する。
例えば、ノードIDのコンテンツノードは、フィンガーテーブルとして、P=61、S=3、i(0)=3、i(1)=8、i(2)=8、i(3)=13、i(4)=18、i(5)=37の情報を有する。
なお、本実施の形態は、分散ハッシュを用いることなく一意のIDを割り振ったストラクチャードのリングネットワークにも適用できる。
(第1の実施の形態の動作)
次に、図を参照して本実施の形態のハッシュ空間が 2=64の場合における通信システムの動作について詳細に説明する。
図5は、本実施の形態のステイビライゼイション(stabilization)動作を示すシーケンス図である。
各コンテンツノードは、Pノード(predecessorノード)との間及びSノード(successorノード)との間でキープアライブメッセージの送受信を定期的に実施し、互いに互いの差分データをやり取りする。
各コンテンツノードは、どのデータがステイビライゼイション動作を行う相手にとって新しいデータなのかを示すフラグを用いることによって、データの差分を提供し、データの差分がない場合(データの更新がなされていない場合)、空のレスポンスを行う。
各コンテンツノードは、データの差分を要求するステイビライゼイションメッセージに対して返事がない場合、保持しているデータを用い、返事がないSノードの隣のSノードに対してステイビライゼイションメッセージを送信し、あるいは、返事がないPノードの隣のPノードに対してステイビライゼイションメッセージを送信し、ステイビライゼイション動作を行う。
図6は、ノード又はコンテンツノードがリングネットワークから離脱した際のステイビライゼイション動作を示すシーケンス図である。
図6を参照すると、ノードID40のコンテンツノードと、ノードID48のコンテンツノードが、互いにステイビライゼイションメッセージの送受信を定期的に行い、ノードID33のコンテンツノードと、ノードID40のコンテンツノードが、互いにステイビライゼイションメッセージの送受信を定期的に行っている。
次いで、ノードID40のコンテンツノードが、互いにステイビライゼイションメッセージの送受信を定期的に行っているノードID48のコンテンツノード及びID33のコンテンツノードに対し、リングネットワークを離脱する旨を通知することなくリングネットワークから離脱すると、ノードID48のコンテンツノードノード及びID33のコンテンツノードは、送信したステイビライゼイションメッセージに対する応答がないことにより、ノードID40のコンテンツノードの離脱を認識する。
次いで、ノードID33のコンテンツノードは、返事がないSノード(ノードID40のコンテンツノード)の隣のSノード(ノードID48のコンテンツノード)に対してステイビライゼイションメッセージを送信し、一方、ノードID48のコンテンツノードは、返事がないPノード(ノードID40のコンテンツノード)の隣のPノード(ノードID33のコンテンツノード)に対してステイビライゼイションメッセージを送信し、互いにステイビライゼイションメッセージの送受信を定期的に行う。
なお、ノードID40のコンテンツノードが、互いにステイビライゼイションメッセージの送受信を定期的に行っているノードID48のコンテンツノード及びID33のコンテンツノードに対し、リングネットワークを離脱する旨(終了メッセージ)を通知して離脱した正規終了時は、終了メッセージを受けたノード(ノードID33のコンテンツノード及びノードID48のコンテンツノード)の動作はステイビライゼイション動作における離脱認識時と同様の動作である。
次に、リングネットワーク修復における基本動作の概略を説明する。
まず、ノード100又はコンテンツノードが、ノードIDが連続した2ノード(コンテンツノード)の消滅(リングネットワークからの離脱)を検出すると、上流ノードが離脱したノード100又はコンテンツノードが、送信先を自身のフィンガーテーブル上最もノードIDの値が大きいノードとして、エラーメッセージ付きで離脱したノード(コンテンツノード)を検索するメッセージを出す。下流ノードが離脱したノード100又はコンテンツノードは、エラー待ち状態に移行する。
リングネットワーク上の各ノードは、通常シーケンスでメッセージを転送する。
エラー待ち状態のノード100又はコンテンツノードは、メッセージを受信すると、検索先とフィンガーテーブルを比べ、検索先のノードIDの値を越えない最大のノードIDを付与されたノード(コンテンツノード)に対し、受信したメッセージを転送する。
エラー待ち状態のノード100又はコンテンツノードは、メッセージを受信した際、転送先がない(=条件に適合するのが自ノード(コンテンツノード))場合、メッセージの送信元と接続する。
なお、エラー待ち状態のノード100又はコンテンツノードは、複数のメッセージを受信した場合、ノードIDの小さい方を優先してメッセージを転送する。
一方、上流ノードが離脱したノード100又はコンテンツノードは、送信したメッセージに対する応答が一定時間待ってもない場合、1度だけメッセージを再送する。
図7は、ノード100又はコンテンツノードがリングネットワークから離脱した場合のリングネットワーク修復のより詳細な動作例を示すフローチャートである。
図7を参照すると、ノード100又はコンテンツノードが、ノードIDが連続した2ノード(コンテンツノード)の消滅(リングネットワークからの離脱)を検出すると(ステップS−1)、消滅したノード(コンテンツノード)のノードIDと自身のノードIDの値の大きさを比較し、ノードIDの大小を判別する(ステップS−2)。
ステップS101において、ノード100又はコンテンツノードは、他のコンテンツノードと、キープアライブ(keep alive)メッセージの送受信を定期的に実施することで、他のコンテンツノードの離脱を検出する。すなわちキープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードはリングネットワークを離脱したとする。
他のコンテンツノードの離脱が検出された場合、離脱したコンテンツノードのリングネットワーク上での方向により、動作が異なる。離脱したコンテンツノードが自ノード100又はコンテンツノードから見て下流であった場合、ステップS−A1へ移行する。一方、離脱したコンテンツノードが自自ノード100又はコンテンツノードから見て上流であった場合、ステップS−B1へ移行する。
消滅(離脱)したノード(コンテンツノード)のノードIDが自身のノードIDより小さい場合(上流ノードが離脱した場合)、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、離脱したコンテンツノードを検索するリング修復オプションのついたエラー付き検索メッセージの受信待ち状態となる(ステップS−A1)。
次いで、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、一定時間内にエラー付き検索メッセージを受信しなかった場合(ステップS−A2)、フィンガーテーブルデータベースを参照し、フィンガーテーブル上最も自身のノードIDに近いノードIDのノード(コンテンツノード)と前述のステイビライゼイション動作を行う(ステップS−A3)。
すなわち、ステップS−A3において、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、自コンテンツノードのノードIDよりも大きくかつ、最も近いノードIDを持つコンテンツノードから順に接続を試み、接続が成功した場合はステップS114に移行し、接続できなかった場合は再度フィンガーテーブルデータベースを参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返した後、ステップS114に移行する。
一方、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、一定時間内にエラー付き検索メッセージを受信した場合(ステップS−A2)、自身が最適受信者であるか否かを判定する(ステップS−A4)。この判定は、検索対象となるノードIDの最大値を超えない最大のノードIDの値が自身のノードIDである場合に、自身が最適受信者であると判定する。
ステップS−A4において、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、自身が最適受信者でないと判定した場合、フィンガーテーブルに基づいてエラー付き検索メッセージを転送し(ステップS−A5)、ステップS−A2に戻り、一方、自身が最適受信者であると判定した場合、エラー付き検索メッセージに対してレスポンス(キープアライブ(keep alive)メッセージ)を送信する(ステップS−A6)。
ステップS−A6において、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、複数のエラー付き検索メッセージを受信した場合、送信元のノードIDがより小さい値の送信元から受信したエラー付き検索メッセージに対するレスポンスの送信を優先し、他から受信したエラー付き検索メッセージを破棄する。
次いで、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードが、レスポンスの送信元のノード(コンテンツノード)と接続してキープアライブ(keep alive)メッセージを送受信することによって(ステップS−C1)、リングネットワークが修復される。
これに対し、ステップS−2において、消滅(離脱)したノード(コンテンツノード)のノードIDが自身のノードIDより大きい場合(下流ノードが離脱した場合)、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、検索対象を離脱したノード(コンテンツノード)とし、離脱したノード(コンテンツノード)を検索するリング修復オプションを付けたエラー付き検索メッセージを送信する(ステップS−B1)。
次いで、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、送信したエラー付き検索メッセージ対するレスポンス(キープアライブ(keep alive)メッセージ)を一定時間内に受信した場合(ステップS−B2)、レスポンスの送信元のノード(コンテンツノード)と接続してキープアライブ(keep alive)メッセージを送受信することによって(ステップS−C1)、リングネットワークが修復される。
一方、ステップS−B2において、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、送信したエラー付き検索メッセージ対するレスポンス(キープアライブ(keep alive)メッセージ)を受信しなかった場合、一定時間経過後に、離脱したノード(コンテンツノード)を検索するリング修復オプションを付けたエラー付き検索メッセージを再送し(ステップS−B3)、再送したエラー付き検索メッセージ対するレスポンス(キープアライブ(keep alive)メッセージ)を一定時間内に受信しなかった場合(ステップS−B4)、フィンガーテーブル上最も自身のノードIDに遠いノードIDのノード(コンテンツノード)と前述のステイビライゼイション動作を行う(ステップS−B5)。なお、ノード(コンテンツノード)の離脱を検出したノード100又はコンテンツノードは、ステップS−B5においてステイビライゼイション動作を行えない場合、ダウンする。
一方、再送したエラー付き検索メッセージ対するレスポンス(キープアライブ(keep alive)メッセージ)を一定時間内に受信した場合(ステップS−B4)、レスポンスの送信元のノード(コンテンツノード)と接続してキープアライブ(keep alive)メッセージを送受信することによって(ステップS−C1)、リングネットワークが修復される。
なお、ステップS−2において、上流ノード及び下流ノードが離脱した場合、ステップS−A1〜の処理及びステップS−B1〜の処理の両方を行う。
(第1の実施の形態の効果)
次に、本実施の形態の効果について説明する。
本実施の形態によれば、P2Pのネットワークをコンテンツオリエンテッドな構成にし、複数のコンテンツを有しうるノード上のコンテンツ(コンテンツノード)に一意のノードIDを割り振り、ストラクチャードに当該ネットワークに参加することによって、各ノードにコンテンツの場所情報を登録する必要をなくし、さらにあるノードが離脱しコンテンツノードが当該ネットワークから離脱した場合に、離脱したコンテンツノードの下流側のコンテンツノードが、離脱したコンテンツノードの上流側コンテンツノードを検索し、両者を結びつけ当該ネットワークを修復することによって、ノードに冗長に情報を持たせることなく、任意のノードが離脱した時にリングが修復することができる。
また、本実施の形態によれば、1つのノード100に存在するコンテンツノード機能部2全てに関するフィンガーテーブルが当該ノード100のフィンガーテーブルデータベース7に保存されているため、DHT検索機能部22がフィンガーテーブルデータベース7を参照し、所定のアルゴリズムに従ってメッセージ送信先を決める場合に、自コンテンツノード機能部2に関するフィンガーテーブル以外に他のコンテンツノード機能部2に関するフィンガーテーブルも参照することで、自コンテンツノードに関するフィンガーテーブルを参照するだけでは知ることのできないコンテンツノード情報を得ることができる。すなわち、多くのコンテンツノード情報を参照できるため、効率のよいメッセージ送信先を決めることができる。従って、1つのノード100に存在する複数のコンテンツノード機能部2間で当該メッセージのやりとりを行うことを防止でき、また、あるノード100から一旦出力された当該メッセージが当該ノード100に戻ってくることを防止できる。
(第2の実施の形態)
以下に本発明の第2の実施の形態について添付図を参照して説明する。
本実施の形態による通信システムのネットワークが、コード(Chord)の技術を用いたコード(Chord)リングである点で第1の実施の形態と相違する。以下、第1の実施の形態と相違する点を中心に説明する。
(第2の実施の形態の構成)
本実施の形態によるコンテンツノード機能部2は、コンテンツデータベース6に登録されているコンテンツ1つに対し1つ生成され、担当するコンテンツについてのコンテンツノード機能を提供する。すなわち、コンテンツノード機能部2のひとつがコード(Chord)リング上のコンテンツノード1つに該当し、コード(Chord)リングを構成するためのDHT管理と、コード(Chord)リング上でのコンテンツ検索機能を提供する。ここで、コンテンツノードのコード(Chord)リング上のIDは、コンテンツに関する情報をハッシュ関数に適用した結果を用いる。コンテンツに関する情報とは、例えばコンテンツ名、などがある。
本実施の形態によるコンテンツノード機能部2は、コンテンツノード生成機能部3により生成されると、DHT参加機能部21を用いてコード(Chord)リング上に自コンテンツノード(コンテンツノード機能部2)を参加させる。
また、本実施の形態によるコンテンツノード機能部2は、他のコンテンツノードからDHT参加メッセージを受信すると、DHT管理部23を用いて、DHT参加メッセージを送信してきたコンテンツノードをコード(Chord)リング上に参加させる。
また、本実施の形態によるコンテンツノード機能部2は、コンテンツノード検索機能部5から、コンテンツ検索リクエストを受けると、DHT検索機能部22を用いコンテンツ検索メッセージを送受信部1に発信する。すなわち、DHT検索機能部22は、フィンガーテーブルデータベース7を参照し、コード(Chord)アルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
ここで、本実施の形態によるフィンガーテーブルデータベース7にはノードに存在するコンテンツノード機能部2全てに関するフィンガーテーブルが保存されている。DHT検索機能部22がフィンガーテーブルデータベース7を参照し、コード(Chord)アルゴリズムに従ってメッセージ送信先を決める場合に、自コンテンツノード機能部に関するフィンガーテーブル以外に他のコンテンツノード機能部に関するフィンガーテーブルも参照することで、自コンテンツノードに関するフィンガーテーブルを参照するだけでは知ることのできないコンテンツノード情報を得ることができる。すなわち、多くのコンテンツノード情報を参照できるため、効率のよいメッセージ送信先を決めることができる。ここで効率のよいメッセージ送信先とは、コンテンツ検索メッセージで検索したいコンテンツノードそのものであるが、その情報がない場合は、検索したいコンテンツノードのID番号よりも小さいID番号を持つコンテンツノードの中で最大のID番号を持つコンテンツノードである。
また、本実施の形態によるコンテンツノード機能部2は、他のコンテンツノードからコンテンツ検索メッセージを受信すると、DHT検索機能部22及びフィンガーテーブルデータベース7を用いコード(Chord)アルゴリズムに従ってコンテンツノードを検索、コンテンツメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
本実施の形態によるDHT参加機能部21は、担当するコンテンツのコンテンツノードをコード(Chord)リング上に登録する機能を提供する。すなわち、コード(Chord)リング上にコンテンツノードを登録するために、他のコンテンツノードに対し、DHT参加メッセージを送信する。
本実施の形態によるDHT検索機能部22は、コンテンツノード検索機能部5からのコンテンツノード検索リクエストを受信すると、フィンガーテーブルデータベース7を参照し、コード(Chord)アルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
また、本実施の形態によるDHT検索機能部22は、他のコンテンツノードからコンテンツ検索メッセージを受信すると、フィンガーテーブルデータベース7を参照し、コード(Chord)アルゴリズムに従ってメッセージ送信先を決め、コンテンツ検索メッセージにメッセージ送信先を記載の上送受信部1に発信する。
本実施の形態によるDHT管理部23は、他のコンテンツノードとキープアライブ(keep alive)メッセージを送受信しあい、コード(Chord)リングを維持する機能を持つ。ここで、キープアライブ(keep alive)メッセージにはフィンガーテーブルデータベース7に含まれる自コンテンツノードに関するフィンガーテーブルも含まれ、他のコンテンツノードとフィンガーテーブルを送受信しあうことでフィンガーテーブルを最新の状態にする。すなわち、他のコンテンツノードから受信したフィンガーテーブルが自コンテンツノードの持つフィンガーテーブルより新しい場合、他のコンテンツノードから受信したフィンガーテーブルの情報を参照し、自コンテンツノードのフィンガーテーブルを更新する。ここで、キープアライブ(keep alive)メッセージはコード(Chord)リング上上流及び下流のコンテンツノード1つまたは複数に対し実行される。
ここで、コード(Chord)リング上で上流とは、コード(Chord)リングにおいてあるコンテンツノードから見てID番号が小さいコンテンツノードが存在する方向を指し、コード(Chord)リング上で下流とは、コード(Chord)リングにおいてあるコンテンツノードから見てID番号が大きいコンテンツノードが存在する方向を指す。ただしID番号の継ぎ目に当たる部分において、あるコンテンツノードから見てどちらの方向のコンテンツノードIDも小さい場合は、より小さいID番号を持つコンテンツノード側を下流とし、逆側を上流とする。
さらに、本実施の形態によるDHT管理部23は、キープアライブ(keep alive)メッセージの送受信を定期的に実施することで、他のコンテンツノードの離脱を検出する。すなわちキープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードはコード(Chord)リングを離脱したとする。
本実施の形態によるDHT管理部23は、あるコンテンツノードが離脱したことを検出した場合、離脱したコンテンツノード先に存在するコンテンツノードと通信しコード(Chord)リングを修復する機能を持つ。
コンテンツデータベース6に新たにコンテンツが追加された場合、本実施の形態によるノード100はコンテンツノード生成機能部3を用い、追加されたコンテンツを担当するコンテンツノード機能部2を追加する。追加された本実施の形態によるコンテンツノード機能部は、DHT参加機能部21を用い自身をコード(Chord)リングに参加させる。一方、コンテンツデータベース6からコンテンツが削除された場合、ノードはコンテンツノード削除機能部4を用い、削除されたコンテンツを担当していたコンテンツノード機能部2を削除する。
本実施の形態によるフィンガーテーブルデータベース7は、ノード内に存在するコンテンツノード機能部2で用いるフィンガーテーブルを保存する。フィンガーテーブルとはコード(Chord)アルゴリズムにおいてコンテンツノードを検索する場合に用いるルーティングテーブルのようなもので、コンテンツノードのID番号とIPアドレスなどのコンテンツノードに関する情報が記載されている。
(第2の実施の形態の動作)
次に、図8を参照して本実施の形態の動作について詳細に説明する。
(1)ステップS−11
本発明の初期状態である。
(2)ステップS−12
他のコンテンツノードと、キープアライブ(keep alive)メッセージの送受信を定期的に実施することで、他のコンテンツノードの離脱を検出する。すなわちキープアライブ(keep alive)メッセージを送信後、一定時間返信がなく、キープアライブ(keep alive)メッセージを再送しても返信がない場合は、そのコンテンツノードはコード(Chord)リングを離脱したとする。
(3)ステップS−13
他のコンテンツノードの離脱を検出した場合、離脱したコンテンツノードのコード(Chord)リング上での方向により、動作が異なる。離脱したコンテンツノードが自コンテンツノードから見て下流であった場合、ステップS−A11へ移行する。一方、離脱したコンテンツノードが自コンテンツノードから見て上流であった場合、ステップS−B1へ移行する。
(4)ステップS−A11
離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間待つ状態になる。
(5)ステップS−A12
離脱したコンテンツノードから見て下流のノードからの離脱したコンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを一定時間内に受信した場合は、ステップS−A4に移行する。一方、そうでなかった場合はステップS−A13に移行する。
(6)ステップS−A13
フィンガーテーブルデータベースを参照し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。接続が成功した場合はステップS−C11に移行する。接続できなかった場合は再度フィンガーテーブルデータベースを参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返した後、ステップS−C11に移行する。
(7)ステップS−A14
通常のコンテンツ検索メッセージと同様フィンガーテーブルデータベースを参照し効率のよいコンテンツ検索メッセージ送信先がある場合は、そのコンテンツノードに対し、コンテンツ検索メッセージを送信し、ステップS−A11に移行する。一方フィンガーテーブルデータベースを参照し効率のよいコンテンツ検索メッセージ送信先がない場合、すなわち複数のリング修復オプションの付いたコンテンツ検索メッセージについて自コンテンツノードが最適な受信者であった場合、コンテンツ検索メッセージ送信元のコンテンツノードのID番号を比較し、自コンテンツノードのID番号よりも大きくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。それ以外のコンテンツ検索メッセージについては全て破棄する。
(8)ステップS−A15
ステップS−A14で決定したコンテンツノードに対し、キープアライブ(keep alive)メッセージを送信する。
(9)ステップS−B11
離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを送信する。
(10)ステップS−B12
一定時間以内にキープアライブ(keep alive)メッセージを受信した場合は、ステップS−C11に移行する。それ以外はステップS−B3に移行する。
(11)ステップS−B13
離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを再送する。
(12)ステップS−B4
一定時間以内にキープアライブ(keep alive)メッセージを受信した場合は、ステップS−C1に移行する。それ以外はステップS−B5に移行する。
(13)ステップS−B15
フィンガーテーブルデータベースを参照し、自コンテンツノードのID番号よりも小さくかつ、最も近いID番号を持つコンテンツノードから順に接続を試みる。接続が成功した場合はステップS−C11に移行する。接続できなかった場合は再度フィンガーテーブルデータベースを参照し、接続可能なコンテンツノードが見つかるまで上記動作を繰り返した後、ステップS−C11に移行する。
(14)ステップS−C1
キープアライブ(keep alive)メッセージを送受信し、コード(Chord)リングを修復する。ステップS−1に移行する。
本実施の形態の動作について、ステップS−B11からステップS−B14までにおいて、離脱したコンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージの再送を1度しか実施していないが、再送回数は1回とは限らず、ネットワーク状態により再送を複数回実施することもできる。
(第2の実施の形態の効果)
次に、本実施の形態の効果について説明する。
本実施の形態によれば、コード(Chord)リングをコンテンツオリエンテッドな構成にし、コード(Chord)リングにはコンテンツノードが参加することによって、各ノードにコンテンツの場所情報を登録する必要をなくし、さらにあるノードが離脱しコンテンツノードがコード(Chord)リングから離脱した場合に、離脱したコンテンツノードの下流側のコンテンツノードが離脱したコンテンツノードの上流側コンテンツノードを検索し、両者を結びつけコード(Chord)リングを修復することによって、ノードに冗長に情報を持たせることなく、任意のノードが離脱した時にリングが修復することができる。
また、本実施の形態によれば、例えばP2P−SIP(Session Initiation Protocol)において、SIP−URI(Uniform Resource Identifier)をコンテンツとしてSIP−URIをハッシュ関数に適用した結果をコンテンツIDとしてIP(Internet Protocol)アドレスと共にコード(Chord)リングに登録しておき、通信する場合はSIP−URIをキーにIPアドレスをコード(Chord)リング上で検索することによって、電話で通話を行う場合のように端末同士を繋げる場合にも、上記本実施の形態の効果を達成することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図9を参照すると、本実施の形態は、本発明の第1の実施の形態と同様に、送受信部1と、コンテンツノード機能部2と、コンテンツノード生成機能部 3と、コンテンツノード削除機能部4と、コンテンツノード検索機能部5と、コンテンツデータベース6と、フィンガーテーブルデータベース7を有する。
更に、本実施の形態は、通信システム用プログラム8を有する。
分散認証システム用プログラム8は、送受信部1と、コンテンツノード機能部2と、コンテンツノード生成機能部3と、コンテンツノード削除機能部4と、コンテンツノード検索機能部5と、コンテンツデータベース6と、フィンガーテーブルデータベース7と、に読み込まれ送受信部1と、コンテンツノード機能部2と、コンテンツノード生成機能部3と、コンテンツノード削除機能部4と、コンテンツノード検索機能部5と、コンテンツデータベース6と、フィンガーテーブルデータベース7の動作を制御する。送受信部1と、コンテンツノード機能部2と、コンテンツノード生成機能部3と、コンテンツノード削除機能部4と、コンテンツノード検索機能部5と、コンテンツデータベース6と、フィンガーテーブルデータベース7は、通信システム用プログラム8の制御により第1の実施の形態における通信システムによる処理と同一の処理を実行する。
ここで、ノード100のハードウェア構成の説明をする。
図10は、本実施の形態による通信システムのノード100のハードウェア構成例を示すブロック図である。
図10を参照すると、本発明によるノード100は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)1001、RAM(Random Access Memory)等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部1002、インターネット2000を介してデータの送受信を行う通信制御部1003、液晶ディスプレイ、プリンタやスピーカ等の提示部1004、キーボードやマウス等の入力部1005、周辺機器と接続してデータの送受信を行うインタフェース部1006、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置である補助記憶部1007、本情報処理装置の上記各構成要素を相互に接続するシステムバス1008等を備えている。
本発明によるノード100は、その動作を、ノード100内部にそのような機能を実現するプログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品からなる回路部品を実装してハードウェア的に実現することは勿論として、上記した各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のCPU1001で実行することにより、ソフトウェア的に実現することができる。
すなわち、CPU1001は、補助記憶部1007に格納されている分散認証システム用プログラム8を、主記憶部1002にロードして実行し、ノード100の動作を制御することにより、上述した各機能をソフトウェア的に実現する。
(第3の実施の形態の効果)
次に、本実施の形態の効果について説明する。
本実施の形態によれば、本発明の第1及び第2の実施の形態の効果と同様の効果を得るために、通信システム用プログラムである分散認証システム用プログラム8を用いることによりコンピュータを通信システムとして動作させることができる。
実施例1において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図11は、ノード100又はコンテンツノードがリングネットワークから離脱した場合のリングネットワーク修復の動作例を示すフローチャートであり、図12は、当該動作例の状態遷移を示す図である。
前提として、ノードID13、16、37、42のノード(以下、ノード(13、16、37、42)のように記載)が、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図13に、ノード(13、16、37、42)が離脱した状態のフィンガーテーブルを示す。なお、図13において、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示す。
図11〜図13を参照すると、それぞれ上流のノードが切れたノード(18、48)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(18)は、当該メッセージをノード(52)に送信してノード(16)を検索し、また、ノード(48)は、当該メッセージをノード(16)に送信しても応答が無いため、当該メッセージをiエントリの値が次に大きいノード(2)に送信してノード(42)を検索する。
また、ステップS201において、それぞれ下流のノードが切れたノード(33、8)は、当該メッセージ待ち状態に移行する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(52)は、ノード(18)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(16)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(16)を超えないiエントリの値が最も大きいノードIDのノード(ノード(8))に対して、コンテンツ検索メッセージを転送する。ノード(8)は、ノード(52)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(16)を超えない最大のノード(13)に対してコンテンツ検索メッセージを転送しても失敗するため、検索対象のノード(16)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
一方、ノード(2)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送すると失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(18)に対して、コンテンツ検索メッセージを転送する。ノード(18)は、ノード(2)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送すると失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(27)に対して、コンテンツ検索メッセージを転送する。ノード(27)は、ノード(18)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送すると失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(33)に対して、コンテンツ検索メッセージを転送する。ノード(33)は、ノード(27)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(8、33)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(8)はノード(18)と再接続し、ノード(33)はノード(48)と再接続することによって、リングネットワークが修復する。
実施例2において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図14は、当該動作例の状態遷移を示す図である。
前提として、実施例1の状態に加え、ノード(18)も、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図15に、ノード(13、16、18、37、42)が離脱した状態のフィンガーテーブルを示す。なお、図15において、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示す。
図11、図14及び図15を参照すると、それぞれ上流のノードが切れたノード(22、48)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(22)は、当該メッセージをノード(56)に送信してノード(18)を検索し、また、ノード(48)は、当該メッセージをノード(16)に送信しても応答が無いため、当該メッセージをiエントリの値が次に大きいノード(2)に対して送信してノード(42)を検索する。
また、ステップS201において、それぞれ下流のノードが切れたノード(33、8)は、当該メッセージ待ち状態に移行する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(56)は、ノード(22)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(16)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(16)を超えないiエントリの値が最も大きいノードIDのノード(ノード(8))に対して、コンテンツ検索メッセージを転送する。ノード(8)は、ノード(56)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(16)を超えない最大のノード(13)に対してコンテンツ検索メッセージを転送しても失敗するため、検索対象のノード(16)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
一方、ノード(2)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送すると失敗し、ノード(42)を超えないiエントリの値が次に大きいノード(18)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(42)を超えないiエントリの値が次に大きいノード(13)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(8)に対して、コンテンツ検索メッセージを転送する。ノード(8)は、ノード(2)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(27)に対してコンテンツ検索メッセージを転送する。ノード(27)は、ノード(8)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送すると失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(33)に対して、コンテンツ検索メッセージを転送する。ノード(33)は、ノード(27)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送をしても失敗するため、ノード(42)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(8、33)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(8)はノード(22)と再接続し、ノード(33)はノード(48)と再接続することによって、リングネットワークが修復する。
実施例3において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図16は、当該動作例の状態遷移を示す図である。
前提として、ノード(27、30、37、42)が、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図17に、ノード(27、30、37、42)が離脱した状態のフィンガーテーブルを示す。なお、図17において、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示す。
図11、図16及び図17を参照すると、それぞれ上流のノードが切れたノード(33、48)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(33)は、当該メッセージをノード(2)に送信してノード(30)を検索し、また、ノード(48)は、当該メッセージをノード(16)に送信してノード(42)を検索する。
また、ステップS201において、それぞれ下流のノードが切れたノード(22、33)は、当該メッセージ待ち状態に移行する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(2)は、ノード(33)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(30)を超えないiエントリの値が最も大きいノードIDのノード(ノード(18))に対して、コンテンツ検索メッセージを転送する。ノード(18)は、ノード(2)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノード(27)に対してコンテンツ検索メッセージを転送しても失敗するため、検索対象のノード(30)を超えないiエントリの値が次に大きいノード(22)に対して、コンテンツ検索メッセージを転送する。ノード(22)は、ノード(18)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノード(27)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(30)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
一方、ノード(16)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(42)を超えない最大のノード(33)に対してコンテンツ検索メッセージを転送する。ノード(33)は、ノード(16)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(30)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(22、33)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(22)はノード(33)と再接続し、ノード(33)はノード(48)と再接続することによって、リングネットワークが修復する。
実施例4において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図18は、当該動作例の状態遷移を示す図である。
前提として、ノード(2、3、16、18、27、30、37、42、52)が、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図19に、ノード(2、3、16、18、27、30、37、42、52)が離脱した状態のフィンガーテーブルを示す。なお、図19において、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示し、太字下線の部分はフィンガーテーブルを更新した箇所を示す。
図11、図18及び図19を参照すると、それぞれ上流のノードが切れたノード(8、22、33、48)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(8)は、自身のフィンガーテーブル上、検索対象のノード(3)を超えないノード(42、27、16)に対してコンテンツ検索メッセージを転送しても失敗するため、当該メッセージをiエントリの値が次に大きいノード(13)に送信してノード(3)を検索する。また、ノード(22)は、当該メッセージをノード(56)に送信してノード(18)を検索する。また、ノード(33)は、自身のフィンガーテーブル上、検索対象のノード(30)を超えないノード(2、52、42、37)に対してコンテンツ検索メッセージを転送しても失敗するため、検索対象のノード(30)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。また、ノード(48)は、自身のフィンガーテーブル上、検索対象のノード(42)を超えないノード(16、2)に対してコンテンツ検索メッセージを転送しても失敗するため、当該メッセージをiエントリの値が次に大きいノード(56)に送信してノード(42)を検索する。
また、ステップS201において、それぞれ下流のノードが切れたノード(13、22、33、61)は、当該メッセージ待ち状態に移行する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(13)は、ノード(8)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(3)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(3)を超えないiエントリの値が最も大きいノードIDのノード(ノード(48))に対して、コンテンツ検索メッセージを転送する。ノード(48)は、ノード(13)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(3)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(3)を超えない最大のノード(2)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(3)を超えないiエントリの値が次に大きいノード(56)に対して、コンテンツ検索メッセージを転送する。ノード(56)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(3)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(3)を超えない最大のノード(2)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(3)を超えないiエントリの値が次に大きいノード(61)に対して、コンテンツ検索メッセージを転送する。ノード(61)は、ノード(56)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(3)を超えない最大のノード(2)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(3)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
また、ノード(56)は、ノード(22)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(18)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(18)を超えないiエントリの値が最も大きいノードIDのノード(ノード(8))に対して、コンテンツ検索メッセージを転送する。ノード(8)は、ノード(56)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(18)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(18)を超えない最大のノード(16)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(18)を超えないiエントリの値が次に大きいノード(13)に対して、コンテンツ検索メッセージを転送する。ノード(13)は、ノード(8)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(18)を超えない最大のノード(16)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(18)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
さらに、ノード(56)は、ノード(22)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(27)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えないiエントリの値が次に大きいノードIDのノード(ノード(8))に対して、コンテンツ検索メッセージを転送する。ノード(8)は、ノード(56)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(27)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(42)を超えないiエントリの値が次に大きいノード(16)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(13)に対して、コンテンツ検索メッセージを転送する。ノード(13)は、ノード(8)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノード(30)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えないiエントリの値が次に大きいノード(22)に対して、コンテンツ検索メッセージを転送する。ノード(22)は、ノード(13)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないが、ノード(42)を超えない最大のノード(30)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(42)を超えないiエントリの値が次に大きいノード(27)に対してコンテンツ検索メッセージを転送しても失敗するため、ノード(42)を超えない最大のノードが自身であり自身が最適受信者となることから、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(61、13、33、22)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(61)はノード(8)と再接続し、ノード(13)はノード(22)と再接続し、ノード(22)はノード(48と再接続することによって、リングネットワークが修復するが、ノード(33)はいずれのノードからもコンテンツ検索メッセージが送信されないためダウンする。
このため、実施例4の通信ネットワークは、ノード(8、13、22、48、56、61)によってリングネットワークを再構成する。
なお、ノード(48)とノード(56)の間は、ノード(52)がひとつ落ちた状態で、通常シーケンスによって接続を維持する(図6参照)。
実施例5において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図20は、当該動作例の状態遷移を示す図である。
前提として、ノード(3、8、13、18、27、30、37、42、52、56、61)が、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図21に、ノード(3、8、13、18、27、30、37、42、52、56、61)が離脱した状態のフィンガーテーブルを示す。なお、図21において、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示し、太字下線の部分はフィンガーテーブルを更新した箇所を示す。
図11、図20及び図21を参照すると、それぞれ上流のノードが切れたノード(2、16、33、48)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(16)は、自身のフィンガーテーブル上、検索対象のノード(13)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(13)を超えないiエントリの値が最も大きいノードIDのノード(ノード(48))に対して当該メッセージを送信してノード(13)を検索する。また、ノード(33)は、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(30)を超えないiエントリの値が最も大きいノードIDのノード(ノード(2))に対して当該メッセージを送信してノード(30)を検索する。また、ノード(48)は、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(42)を超えないiエントリの値が最も大きいノードIDのノード(ノード(16))に対して当該メッセージを送信してノード(42)を検索する。また、ノード(2)は、自身のフィンガーテーブル上、検索対象のノード(61)を超えないノード(37、18、13、8、3)に対してコンテンツ検索メッセージを転送しても失敗するため、検索対象のノード(61)を超えない最大のノードが自身であり自身が最適受信者となるため、エラーメッセージの受信を待機する状態となる。
また、ステップS201において、それぞれ下流のノードが切れたノード(2、22、33、48)は、当該メッセージ待ち状態に移行する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(48)は、ノード(16)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(13)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(13)を超えないiエントリの値が最も大きいノードIDのノード(ノード(2))に対して、コンテンツ検索メッセージを転送する。ノード(2)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(13)を超えない最大のノード(8)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(13)を超えないiエントリの値が次に大きいノード(3)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(13)を超えない最大のノードが自身であり自身が最適受信者となることから、エラーメッセージの受信を待機する状態となる。
また、ノード(16)は、ノード(48)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(42)を超えないiエントリの値が最も大きいノードIDのノード(ノード(33))に対して、コンテンツ検索メッセージを転送する。ノード(33)は、ノード(16)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(42)を超えない最大のノード(37)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(42)を超えない最大のノードが自身であり自身が最適受信者となることから、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(2、33)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(2)がノード(16)と再接続し、ノード(33)がノード(48)と再接続することによって、リングネットワークが修復する。
ここで、最適受信者のノード(2)は、ノード(16)を送信元とするコンテンツ検索メッセージと、ノード(33)を送信元とするコンテンツ検索メッセージと受信するが、ノードIDの値がより小さいノード(16)を送信元とするコンテンツ検索メッセージを優先し、ノード(33)を送信元とするコンテンツ検索メッセージを破棄するため、ノード(16)と再接続している。
なお、ノード(16)とノード(22)の間は、ノード(18)がひとつ落ちた状態で、通常シーケンスによって接続を維持する(図6参照)。
実施例6において、第1の実施の形態によるリングネットワーク修復の1動作例をより詳細に説明する。
図22は、当該動作例の状態遷移を示す図である。
前提として、実施例5と比較し、リングネットワーク上に元々ノード(3、8、13、18、37、42)が参加しておらず、ノード(27、30、52、56、61)が、リングネットワークを離脱する旨(終了メッセージ)を他のノードに対して通知することなく離脱したものとする。
図23に、リングネットワーク上に元々ノード(3、8、13、18、37、42)が参加しておらず、ノード(27、30、52、56、61)が離脱した状態のフィンガーテーブルを示す。なお、図23において、ドット部分はリングネットワーク上に元々参加していないノードのノードIDを示し、空欄部分は離脱したノードのノードIDを示し、斜線部分はコンテンツ検索メッセージの転送に失敗した箇所を示し、太字下線の部分はフィンガーテーブルを更新した箇所を示す。
図11、図22及び図23を参照すると、それぞれ上流のノードが切れたノード(2、33)は、離脱した右隣のノードを検索対象とし、自身のフィンガーテーブル上、iエントリの値が最も大きいノードIDのノードに対して、エラーメッセージ(IPアドレス付き)を付加したコンテンツ検索メッセージ(エラー付き検索メッセージ)を送信して検索を実施する(ステップS101)。
すなわち、ノード(2)は、自身のフィンガーテーブル上、検索対象のノード(61)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(61)を超えないiエントリの値が最も大きいノードIDのノード(ノード(16)=Sノード)に対して当該メッセージを送信してノード(61)を検索する。また、ノード(33)は、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(30)を超えないiエントリの値が最も大きいノードIDのノード(ノード(2))に対して当該メッセージを送信してノード(30)を検索する。
次いで、当該メッセージを受け取ったノードは、通常の検索シーケンスに従って当該メッセージを転送する(ステップS102)。
すなわち、ノード(16)は、ノード(2)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(61)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(61)を超えないiエントリの値が最も大きいノードIDのノード(ノード(48))に対して、コンテンツ検索メッセージを転送する。ノード(48)は、ノード(16)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(61)を超えない最大のノード(52)に対してコンテンツ検索メッセージを転送しても失敗し、ノード(61)を超えない最大のノードが自身であり自身が最適受信者となることから、エラーメッセージの受信を待機する状態となる。
また、ノード(2)は、ノード(33)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(30)を超えないiエントリの値が最も大きいノードIDのノード(ノード(16)=Sノード)に対して当該メッセージを送信する。ノード(16)は、ノード(2)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身ではないことから自身が最適受信者ではないため、ノード(30)を超えないiエントリの値が最も大きいノードIDのノード(ノード(22))に対して、コンテンツ検索メッセージを転送する。ノード(22)は、ノード(16)からコンテンツ検索メッセージを受信すると、自身のフィンガーテーブル上、検索対象のノード(30)を超えない最大のノードが自身であり自身が最適受信者となることから、エラーメッセージの受信を待機する状態となる。
次いで、エラーメッセージの受信待機状態の当該ノード(48、22)は、一定時間エラーメッセージを受信しない場合、それぞれコンテンツ検索メッセージの送信元のノードと再接続する(ステップS103)。
すなわち、一定時間エラーメッセージを受信しない場合、ノード(48)がノード(2)と再接続し、ノード(22)がノード(33)と再接続することによって、リングネットワークが修復する。
実施例7において、第1の実施の形態によるリングネットワークにノードを追加する際の1動作例を詳細に説明する。
図24は、実施例7におけるリングネットワークの初期構成を示す図である。
図24を参照すると、前提として、ノード(3、10、14、29、33、48)が、リングネットワークに参加している。
図25は、実施例7による各ノードが有するフィンガーテーブルデータベース7をまとめて示した図である。
すなわち、図25を参照すると、各ノードについて、各ノードの前後のノードのノードID及びIPアドレスと、iエントリ毎のノードID及びIPアドレスが示されている。
ここで、ブートストラップノードのノードIDをノード(3)として、ノード(40)をリングネットワークに追加した際の動作を説明する。
図26は、実施例7によるノードを追加した際の動作を示すシーケンス図であり、図27及び図28は、ノードを追加した際の概略を説明する図である。
ステップS201・FINDROUTE:ノードID40がノードID3に対してノードID40のノードID及びIPアドレスを通知する。
ステップS202・:ノードID3がノードID40に対して応答する。
ステップS203・TESTRANGE:ノードID3が、ノードID3のフィンガーテーブルに基づいて決定した宛先によって、ノードID29に対してノードID40のSノードの情報を要求する。
ステップS204・NOTINRANGE:ノードID29が、ノードID29のフィンガーテーブルに基づいて決定したノードID33のIPアドレスを、ノードID3に対して通知する。
ステップS205・TESTRANGE:ノードID3が、ノードID33に対してノードID40のSノードの情報を要求する。
ステップS206・INRANGE:ノードID33が、ノードID33のフィンガーテーブルに基づいて決定したノードID48のIPアドレスを、ノードID3に対して通知する。
ステップS207・:ノードID3が、ノードID48のIPアドレスを、ノードID40に対して通知する。
ステップS208・:ノードID40がノードID3に対して応答する。
ステップS209・NOTIFY:ノードID40が、ノードID40のIPアドレスを、ノードID48に対して通知する。
ステップS210・:ノードID48が、ノードID48のデータを、ノードID40に対して通知する。
ステップS211・NOTIFY:ノードID40が、ノードID40のIPアドレスを、ノードID33に対して通知する。
ステップS212・:ノードID33が、ノードID33のデータを、ノードID40に対して通知する。
このように、リングネットワークに新たに参加するノードID40は、隣接ノードのデータ全てを通知してもらう。なお、隣接ノードのみ保証される。
ノード(40)が新たに参加することで、既に参加しているノードは隣のノードとのリンクが切れる場合があるが、上記動作によって、ネットワークを修復できる。
図29に、上記動作終了後のノードID40、ノードID40に隣接するノードID33及びノードID48のフィンガーテーブルを示す。太字下線の部分が更新された箇所である。
図30に、上記動作終了後のノードID40、ノードID40に隣接するノードID33及びノードID48のより詳細なデータを示す。
図30に示すように、各ノードは自分自身のノード情報の他にPノード及びSノードのノード情報を持つ。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明の第1の実施の形態による通信システムの物理的構成を示す概略図である。 第1の実施の形態の形態による通信システムの論理的構成を示す概略図である。 第1の実施の形態によるノードの構成を示すブロック図である。 による各ノードが有するフィンガーテーブルデータベース7をまとめて示した図である。 第1の実施の形態によるステイビライゼイション動作を示すシーケンス図である。 第1の実施の形態によるノード又はコンテンツノードがリングネットワークから離脱した際のステイビライゼイション動作を示すシーケンス図である。 第1の実施の形態によるノード100又はコンテンツノードがリングネットワークから離脱した場合のリングネットワーク修復のより詳細な動作例を示すフローチャートである。 本発明の第2の実施の形態による通信システムの動作を示すフローチャートである。 本発明の第3の実施の形態によるノードの構成を示すブロック図である。 第3の実施の形態による通信システムのノード100のハードウェア構成例を示すブロック図である。 本発明の実施例1のノード100又はコンテンツノードがリングネットワークから離脱した場合のリングネットワーク修復の動作例を示すフローチャートである。 実施例1のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例1のノード(13、16、37、42)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例2のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例2のノード(13、16、18、37、42)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例3のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例3のノード(27、30、37、42)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例4のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例4のノード(2、3、16、18、27、30、37、42、52)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例5のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例5のノード(3、8、13、18、27、30、37、42、52、56、61)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例6のリングネットワーク修復の動作例の状態遷移を示す図である。 実施例6のリングネットワーク上に元々ノード(3、8、13、18、37、42)が参加しておらず、ノード(27、30、52、56、61)が離脱した状態のフィンガーテーブルを示す図である。 本発明の実施例7のリングネットワークの初期構成を示す図である。 実施例7による各ノードが有するフィンガーテーブルデータベース7をまとめて示した図である。 実施例7によるノードを追加した際の動作を示すシーケンス図である。 実施例7によるノードを追加した際の概略を説明する図である。 実施例7によるノードを追加した際の概略を説明する図である。 実施例7によるノード追加動作終了後のノードID40、ノードID40に隣接するノードID33及びノードID48のフィンガーテーブルを示す図である。 実施例7によるノード追加動作終了後のノードID40、ノードID40に隣接するノードID33及びノードID48のより詳細なデータを示す図である。
符号の説明
100:ノード
1:送受信部1
2:コンテンツノード機能部2
21:DHT参加機能部
22:DHT検索機能部
23:DHT管理部
3:コンテンツノード生成機能部3
4:コンテンツノード削除機能部4
5:コンテンツノード検索機能部5
6:コンテンツデータベース6
7:フィンガーテーブルデータベース7
8:通信システム用プログラム8
1001:CPU
1002:主記憶部
1003:通信制御部
1004:提示部
1005:入力部
1006:インタフェース部
1007:補助記憶部
1008:システムバス
2000:インターネット

Claims (40)

  1. 1又は複数のコンテンツを保持するノード上の当該コンテンツに対して一意の識別情報を付与し、前記コンテンツをコンテンツノードとする、コンテンツオリエンテッドなP2P型のネットワークリングを構成することを特徴とする通信システム。
  2. 隣接する前記コンテンツノードが前記ネットワークリングから離脱したことを検出した前記コンテンツノードは、
    離脱した前記コンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索し、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復することを特徴とする請求項1に記載の通信システム。
  3. 隣接して連続して位置する複数の前記コンテンツノードが前記ネットワークリングから離脱した場合、
    隣接の前記コンテンツノードが前記ネットワークリングから離脱したことを検出した前記コンテンツノードは、
    離脱した前記隣の連続する複数のコンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索し、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復することを特徴とする請求項1又は請求項2に記載の通信システム。
  4. 前記ノードは、
    前記ネットワークによって接続された他の前記ノード又は前記コンテンツノードと情報を送受信する送受信手段と、
    1又は複数のコンテンツを保持するコンテンツデータベースと、
    前記コンテンツデータベース内のコンテンツ毎に前記コンテンツノード生成し、当該コンテンツを担当するコンテンツノード機能を提供するコンテンツノード機能提供手段と、
    前記一意の識別情報に基づいて、前記コンテンツノードの検索を要求するコンテンツ検索リクエストを前記コンテンツノード機能提供手段に対して送信するコンテンツノード検索手段とを有することを特徴とする請求項1から請求項3のいずれか1項に記載の通信システム。
  5. 前記ノードは、
    前記一意の識別情報と、当該一意の識別情報を付与されたコンテンツを保持する前記ノードのIPアドレスと対応付けて記憶するフィンガーテーブルを有し、
    前記コンテンツノード検索手段は、
    前記フィンガーテーブルの前記一意の識別情報及び前記IPアドレスに基づいて前記コンテンツ検索リクエストを生成することを特徴とする請求項4に記載の通信システム。
  6. 前記ノードは、
    自ノード内に複数の前記フィンガーテーブルが存在する場合、各前記フィンガーテーブルを関連付けて保存することを特徴とする請求項4又は請求項5に記載の通信システム。
  7. 前記コンテンツノードは、
    他の前記コンテンツノードとの間で前記フィンガーテーブルの情報をやり取りし、前記フィンガーテーブルを更新することを特徴とする請求項5又は請求項6に記載の通信システム。
  8. 前記コンテンツデータベースからコンテンツが削除されると、削除された前記コンテンツを担当する前記コンテンツノード機能提供手段を削除する手段を有することを特徴とする請求項5又は請求項6に記載の通信システム。
  9. 前記コンテンツノード機能提供手段は、
    生成された前記コンテンツノードを前記ネットワーク上に参加させるためのDHT参加メッセージを生成し、
    前記送受信手段は、
    前記DHT参加メッセージ、前記コンテンツ検索メッセージ及びキープアライブメッセージを、当該メッセージで示された送信先に対して送信することを特徴とする請求項4から請求項8のいずれか1項に記載の通信システム。
  10. 前記送受信手段は、
    他の前記ノード又は他の前記コンテンツノードからの前記DHT参加メッセージ、コンテンツ検索メッセージもしくはキープアライブメッセージを、当該メッセージで示された他の前記コンテンツノードに対して送信することを特徴とする請求項9に記載の通信システム。
  11. 前記コンテンツノード機能提供手段は、
    前記コンテンツデータベースに登録されているコンテンツ1つに対し1つ生成され、
    担当するコンテンツのコンテンツノードを前記ネットワークリング上に登録する機能を提供するDHT参加機能提供手段と、
    所定のアルゴリズムに従って決めた前記DHT参加メッセージ、前記コンテンツ検索メッセージ及びキープアライブメッセージの送信先を、前記コンテンツ検索メッセージに記載して発信するDHT検索手段と、
    他の前記コンテンツノードとキープアライブメッセージを送受信し合い、前記ネットワークリングを維持する機能を持つDHT管理手段とを有することを特徴とする請求項9又は請求項10に記載の通信システム。
  12. 前記コンテンツノード機能提供手段は、
    他のコンテンツノードからDHT参加メッセージを受信した場合に、前記DHT参加機能提供手段を機能させ、
    前記コンテンツノード検索手段から前記コンテンツ検索リクエストを受信した場合、及び、他のコンテンツノードから前記コンテンツ検索メッセージを受信した場合に、前記DHT検索手段を機能させることを特徴とする請求項11に記載の通信システム。
  13. 前記DHT参加機能提供手段は、
    他の前記コンテンツノードに対し、前記DHT参加メッセージを送信することによって、担当するコンテンツの前記コンテンツノードを前記ネットワークリング上に登録する機能を有することを特徴とする請求項11又は請求項12に記載の通信システム。
  14. 前記DHT検索手段は、
    前記コンテンツノード検索手段からのコンテンツノード検索リクエストを受信すると、自コンテンツノードに関する前記フィンガーテーブル以外の同じノード内に存在する他の前記コンテンツノードに関するフィンガーテーブルも参照した上で、前記コンテンツ検索メッセージに記載する前記メッセージの送信先を所定のアルゴリズムに従って決めることを特徴とする請求項11から請求項13のいずれか1項に記載の通信システム。
  15. 前記DHT検索手段は、
    他の前記コンテンツノードからの前記コンテンツ検索メッセージを受信すると、自コンテンツノードに関する前記フィンガーテーブル以外の同じノード内に存在する他のコンテンツノードに関するフィンガーテーブルも参照した上で、前記コンテンツ検索メッセージに記載する前記メッセージの送信先を所定のアルゴリズムに従って決めることを特徴とする請求項11から請求項14のいずれか1項に記載の通信システム。
  16. DHT管理手段は、
    他の前記コンテンツノードと、互いに自コンテンツノードに関する前記フィンガーテーブルの情報を含むキープアライブメッセージを送受信しあい、フィンガーテーブルの情報を更新し、前記リングを維持することを特徴とする請求項11から請求項15のいずれか1項に記載の通信システム。
  17. DHT管理手段は、
    前記キープアライブメッセージの送受信を定期的に実施し、前記キープアライブメッセージを送信後、一定時間返信がなく、キープアライブメッセージを再送しても返信がない場合、
    そのコンテンツノードは前記ネットワークリングを離脱したと判断することによって、他の前記コンテンツノードの離脱を検出することを特徴とする請求項16に記載の通信システム。
  18. DHT管理手段は、
    ある前記コンテンツノードが離脱したことを検出した場合であって、かつ離脱した前記コンテンツノードが自コンテンツノードから見て下流であった場合、
    離脱した前記コンテンツノードから見てさらに下流のノードから送信された、離脱した前記コンテンツノードを検索するネットワークリング修復オプションのついたコンテンツ検索メッセージを一定時間待つことを特徴とする請求項17に記載の通信システム。
  19. DHT管理手段は、
    ある前記コンテンツノードが離脱したことを検出した場合、かつ離脱した前記コンテンツノードが自コンテンツノードから見て上流であった場合、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージをDHT検索手段を用いて送信することで、離脱した前記コンテンツノードから見てさらに上流に存在する前記コンテンツノードと通信し前記ネットワークリングを修復することを特徴とする請求項17又は請求項18に記載の通信システム。
  20. DHT管理手段は、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションのついたコンテンツ検索メッセージを待っている場合、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションのついたコンテンツ検索メッセージを送信してきた前記コンテンツノードとキープアライブメッセージを送受信しあうことで前記ネットワークリングの修復を完了することを特徴とする請求項18に記載の通信システム。
  21. DHT管理手段は、
    離脱した前記コンテンツノードを検索するリング修復オプションのついたコンテンツ検索メッセージを待ち、離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージが一定時間経過後も届かない場合、
    前記フィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記識別情報よりも大きくかつ、最も近い前記識別情報を持つ前記コンテンツノードから順に接続を試み、
    接続が成功した場合は当該コンテンツノードと前記ネットワークリングを修復し、接続できなかった場合は再度前記フィンガーテーブルデータベースを参照し、接続可能な前記コンテンツノードが見つかるまで上記動作を繰り返すことを特徴とする請求項18に記載の通信システム。
  22. DHT管理手段は、
    離脱した前記コンテンツノードを検索するリング修復オプションを付けたコンテンツ検索メッセージを待つ場合において、一定時間経過する間に複数の離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを受信した場合、
    通常の前記コンテンツ検索メッセージと同様に前記フィンガーテーブルデータベースを参照し前記コンテンツ検索メッセージの効率のよい送信先があるときは、そのコンテンツノードに対して前記コンテンツ検索メッセージを送信することを特徴とする請求項18に記載の通信システム。
  23. DHT管理手段は、
    前記フィンガーテーブルデータベースを参照し、ネットワークリング修復オプションの付いた複数のコンテンツ検索メッセージについて自コンテンツノードが最適な受信者であった場合、
    前記コンテンツ検索メッセージの送信元の前記コンテンツノードに付与された前記識別情報の値を比較し、自コンテンツノードの前記識別情報よりも大きくかつ、最も近い前記識別情報を持つ前記コンテンツノードから順に接続を試みることを特徴とする請求項22に記載の通信システム。
  24. DHT管理手段は、
    受信した複数のコンテンツ検索メッセージのうち、前記コンテンツ検索メッセージの送信元の前記コンテンツノードに付与された前記識別情報が、自コンテンツノードの前記識別情報よりも大きくかつ最も近い前記識別情報で無い場合、当該コンテンツ検索メッセージについては全て破棄することを特徴とする請求項22に記載の通信システム。
  25. DHT管理手段は、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを送信後、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを待っていた前記コンテンツノードからのキープアライブメッセージを待つことを特徴とする請求項19又は請求項22に記載の通信システム。
  26. DHT管理手段は、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを送信後、
    一定時間経過後もキープアライブメッセージを受信しない場合は、
    離脱した前記コンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージの再送を実施することを特徴とする請求項23から請求項25のいずれか1項に記載の通信システム。
  27. DHT管理手段は、
    再送を含む全ての前記コンテンツ検索メッセージに対してもキープアライブメッセージを受信しない場合、
    前記フィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記識別情報よりも小さくかつ、最も近い前記識別情報を持つ前記コンテンツノードから順に接続を試み、
    接続が成功した場合は当該コンテンツノードと前記ネットワークリングを修復し、接続できなかった場合は再度前記フィンガーテーブルデータベースを参照し、接続可能な前記コンテンツノードが見つかるまで上記動作を繰り返すことを特徴とする請求項26に記載の通信システム。
  28. 前記P2P型のネットワークリングはコードリングの構成を有することを特徴とする請求項1から請求項27のいずれか1項に記載の通信システム。
  29. P2P型のネットワークリングの通信システムにおける通信方法であって、
    1又は複数のコンテンツを保持するノード上の当該コンテンツに対して一意の識別情報を付与し、前記コンテンツをコンテンツノードとして、前記ネットワークリングにコンテンツオリエンテッドに参加させるステップと、
    隣接する前記コンテンツノードが前記ネットワークリングから離脱したことを検出した前記コンテンツノードにおいて、
    離脱した前記コンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索するステップと、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復するステップを有することを特徴とする通信方法。
  30. 隣接して連続して位置する複数の前記コンテンツノードが前記ネットワークリングから離脱した場合、
    隣接の前記コンテンツノードが前記ネットワークリングから離脱したことを検出した前記コンテンツノードにおいて、
    離脱した前記隣の連続する複数のコンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索するステップと、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復するステップを有することを特徴とする請求項29に記載の通信方法。
  31. 他のコンテンツノードと、キープアライブメッセージの送受信を定期的に実施し、キープアライブメッセージを送信後、一定時間返信がなく、キープアライブメッセージを再送しても返信がない場合に、当該他のコンテンツノードが前記ネットワークリングを離脱したと検出するステップと、
    自コンテンツノードを基準にして、離脱した前記他のコンテンツノードの前記ネットワークリング上での方向を確認するステップと、
    離脱した前記他のコンテンツノードの方向が自コンテンツノードを基準にして下流の場合、
    離脱した前記他のコンテンツノードからさらに下流のノードからの離脱した前記他のコンテンツノードを検索するネットワークリング修復オプションのついたコンテンツ検索メッセージの受信を待機する待機ステップと、
    受信しなかった場合に、前記一意の識別情報と、当該一意の識別情報を付与されたコンテンツを保持する前記ノードのIPアドレスとを対応付けて記憶するフィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記一意の識別情報よりも大きくかつ、当該一意の識別情報に最も近い前記一意の識別情報を持つ他の前記コンテンツノードから順に接続を試みるステップと、
    受信した場合に、前記フィンガーテーブルデータベースを参照し、前記コンテンツ検索メッセージの効率のよい送信先があるか否かを確認するステップと、
    確認した前記効率のよい送信先のコンテンツノードに対し、キープアライブメッセージを送信するステップとを有することを特徴とする請求項29又は請求項30に記載の通信方法。
  32. 前記待機ステップにおいて、前記コンテンツ検索メッセージの受信を所定の時間待機することを特徴とする請求項31に記載の通信方法。
  33. 他のコンテンツノードと、キープアライブメッセージの送受信を定期的に実施し、キープアライブメッセージを送信後、一定時間返信がなく、キープアライブメッセージを再送しても返信がない場合に、当該他のコンテンツノードが前記ネットワークリングを離脱したと検出するステップと、
    自コンテンツノードを基準にして、離脱した前記他のコンテンツノードの前記ネットワークリング上での方向を確認するステップと、
    離脱した前記他のコンテンツノードの方向が自コンテンツノードを基準にして上流の場合、
    離脱した前記他のコンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを送信するステップと、
    キープアライブメッセージを受信したか否かを確認する受信確認ステップと、
    キープアライブメッセージを受信した場合に、キープアライブメッセージを返信するステップとを有することを特徴とする請求項29から請求項32のいずれか1項に記載の通信方法。
  34. キープアライブメッセージを受信しなかった場合に、前記一意の識別情報と、当該一意の識別情報を付与されたコンテンツを保持する前記ノードのIPアドレスとを対応付けて記憶するフィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記一意の識別情報よりも小さくかつ、当該一意の識別情報に最も近い前記一意の識別情報を持つ他の前記コンテンツノードから順に接続を試みるステップを有することを特徴とする請求項33に記載の通信方法。
  35. 前記受信確認ステップにおいて、キープアライブメッセージの受信を所定の時間待機することを特徴とする請求項33又は請求項34に記載の通信方法。
  36. P2P型のネットワークリングを構成するノード上で実行される通信プログラムであって、
    前記ノードに
    1又は複数のコンテンツを保持するノード上の当該コンテンツに対して一意の識別情報を付与し、前記コンテンツをコンテンツノードとして、前記ネットワークリングにコンテンツオリエンテッドに参加させる機能を実現させ、
    隣接する前記コンテンツノードが前記ネットワークリングから離脱したことを検出した当該ノード上の前記コンテンツノードに、
    離脱した前記コンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索する機能と、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復する機能とを実現させることを特徴とする通信プログラム。
  37. 隣接して連続して位置する複数の前記コンテンツノードが前記ネットワークリングから離脱した場合、
    隣接の前記コンテンツノードが前記ネットワークリングから離脱したことを検出した当該ノード上の前記コンテンツノードに、
    離脱した前記隣の連続する複数のコンテンツノードのさらに隣に位置する前記ネットワークリングをコンテンツオリエンテッドに構成する他のコンテンツノードを検索する機能と、
    検索した当該コンテンツノードとの間で通信接続を実行することにより前記ネットワークリングを修復する機能とを実現させることを特徴とする請求項36に記載の通信プログラム。
  38. 前記ノード上の前記コンテンツノードに、
    他のコンテンツノードと、キープアライブメッセージの送受信を定期的に実施し、キープアライブメッセージを送信後、一定時間返信がなく、キープアライブメッセージを再送しても返信がない場合に、当該他のコンテンツノードが前記ネットワークリングを離脱したと検出する機能と、
    自コンテンツノードを基準にして、離脱した前記他のコンテンツノードの前記ネットワークリング上での方向を確認する機能と、
    離脱した前記他のコンテンツノードの方向が自コンテンツノードを基準にして下流の場合、
    離脱した前記他のコンテンツノードからさらに下流のノードからの離脱した前記他のコンテンツノードを検索するネットワークリング修復オプションのついたコンテンツ検索メッセージの受信を所定の時間待機する待機機能と、
    所定の時間内に受信しなかった場合に、前記一意の識別情報と、当該一意の識別情報を付与されたコンテンツを保持する前記ノードのIPアドレスとを対応付けて記憶するフィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記一意の識別情報よりも大きくかつ、当該一意の識別情報に最も近い前記一意の識別情報を持つ他の前記コンテンツノードから順に接続を試みる機能と、
    所定の時間内に受信した場合に、前記フィンガーテーブルデータベースを参照し、前記コンテンツ検索メッセージの効率のよい送信先があるか否かを確認する機能と、
    確認した前記効率のよい送信先のコンテンツノードに対し、キープアライブメッセージを送信する機能とを実現させることを特徴とする請求項36又は請求項37に記載の通信プログラム。
  39. 前記ノード上の前記コンテンツノードに、
    他のコンテンツノードと、キープアライブメッセージの送受信を定期的に実施し、キープアライブメッセージを送信後、一定時間返信がなく、キープアライブメッセージを再送しても返信がない場合に、当該他のコンテンツノードが前記ネットワークリングを離脱したと検出する機能と、
    自コンテンツノードを基準にして、離脱した前記他のコンテンツノードの前記ネットワークリング上での方向を確認する機能と、
    離脱した前記他のコンテンツノードの方向が自コンテンツノードを基準にして上流の場合、
    離脱した前記他のコンテンツノードを検索するネットワークリング修復オプションを付けたコンテンツ検索メッセージを送信する機能と、
    キープアライブメッセージを所定の時間内に受信したか否かを確認する受信確認機能と、
    所定の時間内にキープアライブメッセージを受信した場合に、キープアライブメッセージを返信する機能とを実現させることを特徴とする請求項36から請求項38のいずれか1項に記載の通信プログラム。
  40. 前記ノード上の前記コンテンツノードに、
    所定の時間内にキープアライブメッセージを受信しなかった場合に、前記一意の識別情報と、当該一意の識別情報を付与されたコンテンツを保持する前記ノードのIPアドレスとを対応付けて記憶するフィンガーテーブルデータベースを参照し、自コンテンツノードに付与された前記一意の識別情報よりも小さくかつ、当該一意の識別情報に最も近い前記一意の識別情報を持つ他の前記コンテンツノードから順に接続を試みる機能を実現させることを特徴とする請求項39に記載の通信プログラム。
JP2007119881A 2007-04-27 2007-04-27 通信システム、通信方法、及び通信プログラム Expired - Fee Related JP5228369B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007119881A JP5228369B2 (ja) 2007-04-27 2007-04-27 通信システム、通信方法、及び通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007119881A JP5228369B2 (ja) 2007-04-27 2007-04-27 通信システム、通信方法、及び通信プログラム

Publications (2)

Publication Number Publication Date
JP2008276551A true JP2008276551A (ja) 2008-11-13
JP5228369B2 JP5228369B2 (ja) 2013-07-03

Family

ID=40054419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007119881A Expired - Fee Related JP5228369B2 (ja) 2007-04-27 2007-04-27 通信システム、通信方法、及び通信プログラム

Country Status (1)

Country Link
JP (1) JP5228369B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015210550A (ja) * 2014-04-24 2015-11-24 カシオ計算機株式会社 分散データベース、データ共有方法、プログラム、装置
JP2016527589A (ja) * 2013-05-17 2016-09-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Icnを通じた大規模な会議のための多層プッシュハイブリッドサービス制御構造

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059133A (ja) * 2004-08-20 2006-03-02 Brother Ind Ltd 情報配信システム、ノード装置、所在情報検索方法、及び所在情報検索処理プログラム等

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059133A (ja) * 2004-08-20 2006-03-02 Brother Ind Ltd 情報配信システム、ノード装置、所在情報検索方法、及び所在情報検索処理プログラム等

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND200601598002; 西谷智広: 'P2Pアーキテクチャ' UNIX magazine 第21巻 第6号, 20061001, pp.26〜33, 株式会社アスキー *
CSNG200700773025; 白石俊之 ほか1名: 'Chordネットワークにおけるルーチング情報の効率的な維持管理方法' 電子情報通信学会技術研究報告 第106巻 第577号, 20070301, pp.137〜142, 社団法人電子情報通信学会 *
CSNJ200610013661; 中村元紀 ほか5名: 'ネットワーク分割に対するDHTの可用性向上' 電子情報通信学会2005年総合大会講演論文集 通信2 , 20050307, pp.S-26〜S-27, 社団法人電子情報通信学 *
JPN6012016626; 中村元紀 ほか5名: 'ネットワーク分割に対するDHTの可用性向上' 電子情報通信学会2005年総合大会講演論文集 通信2 , 20050307, pp.S-26〜S-27, 社団法人電子情報通信学 *
JPN6012016628; 白石俊之 ほか1名: 'Chordネットワークにおけるルーチング情報の効率的な維持管理方法' 電子情報通信学会技術研究報告 第106巻 第577号, 20070301, pp.137〜142, 社団法人電子情報通信学会 *
JPN6012016629; 西谷智広: 'P2Pアーキテクチャ' UNIX magazine 第21巻 第6号, 20061001, pp.26〜33, 株式会社アスキー *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016527589A (ja) * 2013-05-17 2016-09-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Icnを通じた大規模な会議のための多層プッシュハイブリッドサービス制御構造
US10171523B2 (en) 2013-05-17 2019-01-01 Futurewei Technologies, Inc. Multi-tier push service control architecture for large scale conference over ICN
JP2015210550A (ja) * 2014-04-24 2015-11-24 カシオ計算機株式会社 分散データベース、データ共有方法、プログラム、装置

Also Published As

Publication number Publication date
JP5228369B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
US7859992B2 (en) Router redundancy in data communication networks
US7065059B1 (en) Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network
US7542432B2 (en) Resource matched topology database synchronization in communications networks having topology state routing protocols
US7668082B1 (en) Network routing using link failure information
JP5227955B2 (ja) 自己統制ネットワークのための分散ハッシュメカニズム
US8130676B2 (en) Method for on demand distributed hash table update
JP5684110B2 (ja) ルーティングテーブルを維持する方法およびオーバレイネットワーク内で使用するためのノード
EP2421206A1 (en) Flooding-based routing protocol having database pruning and rate-controlled state refresh
CN1345148A (zh) 在具有拓扑状态路由协议的通信网络中实现拓扑数据库再同步的方法和装置
JPH07122862B2 (ja) ネットワークにおけるコンピュータ及びその運用方法
CN101753454B (zh) 路由器平滑重启方法、路由器和网络系统
CN103535016A (zh) 从活跃tcp应用到备用tcp应用的无中断切换
CN105704030A (zh) 用于基于距离的兴趣转发的系统和方法
CN105340226B (zh) 动态路由设备的主备系统切换的方法及其装置
JP5228369B2 (ja) 通信システム、通信方法、及び通信プログラム
JP2006227763A (ja) データ共有システム、データ共有方法及びプログラム
JP4685776B2 (ja) 同じラベルに整合する多数のノードを識別するコンピュータネットワーク
WO2016184012A1 (zh) 一种优先收发hello报文的方法及路由设备
WO2022083122A1 (zh) 网络设备系统的容错方法、装置、计算机设备和存储介质
CN109525496B (zh) 一种链路状态信息的更新方法及装置
JP4409604B2 (ja) オーバーレイネットワーク構築・維持方法及びプログラム
KR100872170B1 (ko) P2p 네트워크 다중 라우팅 방법
JP3705121B2 (ja) マルチプロセッサ型呼処理方式
JP2014003449A (ja) 転送装置及び転送方法
CN110493292B (zh) 能力通告方法及装置、系统、存储介质、电子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees