JP4670726B2 - ノード装置、情報処理方法及びノード装置用プログラム - Google Patents

ノード装置、情報処理方法及びノード装置用プログラム Download PDF

Info

Publication number
JP4670726B2
JP4670726B2 JP2006125030A JP2006125030A JP4670726B2 JP 4670726 B2 JP4670726 B2 JP 4670726B2 JP 2006125030 A JP2006125030 A JP 2006125030A JP 2006125030 A JP2006125030 A JP 2006125030A JP 4670726 B2 JP4670726 B2 JP 4670726B2
Authority
JP
Japan
Prior art keywords
node
identification information
information
node device
node identification
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.)
Active
Application number
JP2006125030A
Other languages
English (en)
Other versions
JP2007300271A (ja
Inventor
英輝 松尾
建太郎 牛山
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006125030A priority Critical patent/JP4670726B2/ja
Priority to PCT/JP2007/055702 priority patent/WO2007125698A1/ja
Publication of JP2007300271A publication Critical patent/JP2007300271A/ja
Priority to US12/232,599 priority patent/US8514742B2/en
Application granted granted Critical
Publication of JP4670726B2 publication Critical patent/JP4670726B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/80Ingress point selection by the source endpoint, e.g. selection of ISP or POP

Description

本願は、ノード装置、情報処理方法及びノード装置用プログラムの技術分野に属し、より詳細には、インターネット等のネットワークを介して映画等のコンテンツ(配信情報)を配信する配信システムに含まれるノード装置及び当該ノード装置において実行される情報処理方法並びに当該ノード装置における情報処理に供されるノード装置用プログラムの技術分野に属する。
近年、インターネット等のネットワークを介して上記コンテンツを蓄積しているサーバ等に端末装置からアクセスし、その端末装置において視聴が所望されているコンテンツを当該端末装置に配信して視聴する、いわゆるコンテンツ配信についての研究開発が盛んである。
ここで、従来の上記コンテンツ配信を行う配信システムの基本的構成は、例えば下記特許文献1に例示されるように、コンテンツの配信を所望する端末装置から上記ネットワークを介してそのコンテンツを蓄積するサーバ等に接続し、その接続を確立した上で所望するコンテンツの配信、即ち当該コンテンツに相当するコンテンツデータの伝送をその端末装置において受ける構成となっている。
一方、近年では、上記コンテンツ配信を行う配信システムの他の構成として、いわゆるP2P(Peer to Peer)グリッド型の配信システム(以下、単に配信システムと称する)がある。ここで、当該配信システムとは、上記ネットワークを用いて上記コンテンツの配信を行う配信システムであって、当該ネットワークに属する端末装置間で、当該コンテンツに相当するコンテンツデータが相互に直接授受される(換言すれば、コンテンツを複数の端末装置間で共有する)配信システムであり、その配信システムに加入している全ての端末装置が、上記サーバとしての機能を有すると共に上記コンテンツの配信を受ける配信先装置としての機能をも備える配信システムである(なお、以下の説明では当該端末装置を単にノードと称する)。
そして、当該配信システムにおいては、あるノードにおいてコンテンツの配信を受けようとする場合、そのノードにおいては、配信を所望するコンテンツに相当するコンテンツデータを蓄積している他のノードを上記ネットワーク上において識別するためのノード識別情報と、そのコンテンツを他のコンテンツから識別するためのコンテンツ識別情報と、を対とした情報(以下、当該情報をインデックス情報と称する)を参照し、このインデックス情報内のノード識別情報により示されるノードから所望のコンテンツの配信を受ける必要がある。
そこで、一般の配信システムにおいては、例えば下記特許文献1に例示されるように、一又は複数のコンテンツに関する上記インデックス情報を、纏めて複数のノード内に夫々記憶(分散記憶)させ、これをそのコンテンツの配信を受けるノードから参照する構成とされている。より具体的には、例えば当該配信システムを構成するネットワークがインターネットである場合には、配信が所望されるコンテンツを特定できる検索情報(例えば映画のタイトル名)とそれを記憶しているノードのIP(Internet Protocol)アドレスとの組を認識し、そのIPアドレスを手掛かりとして所望するコンテンツの授受を行う必要がある。
従って、上記配信システムの如き不特定多数のノードがコンテンツを共有し合うような配信システムにおいては、全てのコンテンツの検索情報とそれを記憶しているノードのIPアドレスとの組を各ノードが認識しておくことが必要となる。
しかしながら、ネットワークに接続されているノードの数が多くなった場合、各ノードにおける物理的な記録可能量の制限等が理由となって、全てのコンテンツの検索情報とそのコンテンツを記憶しているノードのIPアドレスを各ノードが夫々に記録しておくことは現実的ではない(例えば、ネットワークに百万台のノードが接続されている場合、その百万台分のIPアドレスを各ノードが互いに全て記録しておくことは全く現実的ではない)。
また、各ノードが全てのコンテンツの検索情報とそれを記憶するノードのIPアドレスを記録しておく場合、ネットワーク内の各ノードにおける電源スイッチのオン/オフが頻繁な場合(例えば当該ノードをパーソナルコンピュータにより実現する場合は頻繁に電源スイッチが操作され得ることになる)にも、各ノードに記録されたIPアドレス等の更新が頻繁になり、現実的にはネットワーク全体としての運用が困難となる。
そこで、上述したような問題点に対処すべく、必要最低限のノードのIPアドレスを含むインデックス情報のみを記録し、そのIPアドレスを認識していない他のノードに対しては、そのノードに配信すべきコンテンツやその配信のために必要なメッセージ等を、他のノードを介して転送して届けるという仕組みの配信システムが研究されており、その一つに、下記非特許文献2に示されているように、いわゆるDHT(Distributed Hash Table;分散ハッシュテーブル)を用いた配信システムがある。
次に、当該DHTを用いた配信システムについて、概要を説明する。
上記DHTを用いた配信システムでは、各ノードを相互に識別するためのノードID(Identification)を当該各ノードに付与する。このとき、当該ノードIDは、それらが参加している配信システム内において各ノード毎にユニークな、即ち他のノードとは異なる番号を付与する。この番号は、そのネットワークにおけるノードの最大運用台数を収容できるだけのビット数(ビット長)を有するものとなる。より具体的には、例えば128ビットのノードIDを用いれば、最大で、2128≒340×1036台のノードを一つのネットワーク内に接続することができる。そして、当該ノードIDとして一般的には、ノード自体に付与されているIPアドレスやいわゆるMAC(Media Access Control)アドレス、或いはノード自体の製造番号等の、当該ノード毎に固有の値に対してハッシュ関数を適用して得られる値を用いる。
また、上記DHTを用いた配信システムでは、その配信システムによって配信されるコンテンツ自体にも、それに対応する上記コンテンツ識別情報として、他のコンテンツとは異なるユニークなコンテンツIDを付与する。このコンテンツIDのビット長も上記ノードIDのビット長と同一とされる。そして、当該コンテンツIDとして一般的には、そのコンテンツのタイトルを示すタイトルデータ、コンテンツを構成するデータの属性を示す属性データ、コンテンツを構成するデータのうち先頭から数バイト分のデータ等に対してハッシュ関数を適用して得られる値を用いる。
次に、上述した如き「IPアドレスを認識していない他のノードに対しては、そのノードに配信すべきコンテンツを他のノードを介して転送して届けるという仕組み」を実現するため、DHTを用いた配信システムにおいては、「ルーティングテーブル」なるものを用いる。
このルーティングテーブルについて詳細は後述するが、概括的には、当該ルーティングテーブルは、各ノード内に夫々記憶されているものであって、配信システム内の全てのノードを所定の条件(例えば各ノードを示すノードID夫々の値により設定される条件)に基づいて階層的に分類して得られるノードグループ毎に、転送可能なノードを示す上記ノードIDが記述されているものである。
そして、上記メッセージやコンテンツ等をある特定のノードに宛てて(或いは所望するコンテンツを示すコンテンツIDを付して)送信する場合、その送信元となるノードは、自己が記憶しているルーティングテーブル内に記述されているノードIDにより示されるあるノードに向けてそのメッセージ等を送信し、そのメッセージ等を受信した当該あるノードは、更に自己が記憶しているルーティングテーブル内に記述されているノードIDにより示される他のノードに向けてそのメッセージ等を転送する。このような転送処理が、上記階層状のノードグループ内で当該階層毎に繰り返されることで、最終的に当該メッセージ等が目的のノードに到達する仕組みとなっている。
特開2004−265273号公報 岡敏生、森川博之、青山友紀、「分散ハッシュテーブルの軽量な負荷分散手法の検討」、電子情報通信学会技術研究報告、(日本)、社団法人電子情報通信学会、2004年2月5日、第103巻、第650号、p.7−12
しかしながら、上述した従来のルーティングテーブルの構成によると、例えば、現在記述されているノードIDにより示されるノードが配信システムから脱落する等の理由により当該ノードIDが無効になった場合においては、その無効になったこと自体が、実際にそのノードID(無効になったノードID)により示されるノードに向けてメッセージ等を送信してみて初めて認識できるのであり、その場合には再度新たな(有効な)ノードを配信システム内において探索する等の処理が必要となり、結果として当該無効なノードIDが記述されていた場合においてはメッセージ等の転送効率が極端に悪くなると言う問題点があった。
そこで、本発明は上記の各問題点に鑑みて為されたもので、その目的の一例は、上記配信システムにおいて、メッセージ等を効率的且つ迅速に伝送することができるノード装置及び当該ノード装置において実行される情報処理方法並びに当該ノード装置における情報処理に供されるノード装置用プログラムを提供することにある。
上記の課題を解決するために、請求項1に記載の発明は、相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶する記憶部等のノード識別情報記憶手段と、記憶されている各前記ノード識別情報を参照して前記授受に用いる参照手段と、を備え、前記ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上されている。
よって、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
上記の課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置において、前記ノード識別情報記憶手段においては、前記樹形図における前記階層が下位になるに従って、当該階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が減少しているように構成される。
よって、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
上記の課題を解決するために、請求項3に記載の発明は、請求項1又は2に記載のノード装置において、前記参照手段は、一つの前記ノードグループに分類されている各前記ノード装置に夫々対応する前記ノード識別情報を、予め設定された参照順に従って順次参照して前記情報の授受に用いるように構成される。
よって、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
上記の課題を解決するために、請求項4に記載の発明は、請求項3に記載のノード装置において、各前記階層における前記記憶可能数は、前記参照順に指数関数的に減少している。
よって、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
上記の課題を解決するために、請求項5に記載の発明は、請求項3又は4に記載のノード装置において、前記記憶可能数が、予め設定された単位時間当たりに前記ネットワークから前記ノード装置が脱退する数に対応して各階層毎に予め定められている。
よって、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
上記の課題を解決するために、請求項6に記載の発明は、請求項3から5のいずれか一項に記載のノード装置において、前記参照手段は、一の前記ノードグループに分類されている前記ノード識別情報を参照した場合において当該参照したノード識別情報を前記授受に用いることが不能であるとき、前記参照順において前記一のノード識別情報の次に参照されるべき他の前記ノード識別情報を参照して前記授受に用いるように構成されている。
よって、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
上記の課題を解決するために、請求項7に記載の発明は、請求項3から6のいずれか一項に記載のノード装置において、前記授受に用いることが不能である前記ノード識別情報である不能ノード識別情報があるとき、当該不能ノード識別情報を前記ノード識別情報記憶手段から削除する制御部等の削除手段と、一の前記ノードグループにおける前記参照順において前記不能ノード識別情報の直近下位の順位にあった前記ノード識別情報の当該順位を、削除された前記不能ノード識別情報に対応していた前記参照順における順位とする制御部等の順位変更手段と、を備える。
よって、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
上記の課題を解決するために、請求項8に記載の発明は、請求項3から7のいずれか一項に記載のノード装置において、一の前記ノードグループにおける前記参照順内のいずれかの順位に対応すべき新たな前記ノード識別情報があるとき、当該新たなノード識別情報が対応すべき前記順位にそれまで対応していた前記ノード識別情報が対応する新たな前記順位を、前記新たなノード識別情報が対応すべき前記順位より下位の前記順位とする制御部等の順位変更手段を備える。
よって、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
上記の課題を解決するために、請求項9に記載の発明は、請求項3から8のいずれか一項に記載のノード装置において、前記参照順は、参照されるべき前記ノード識別情報により識別される前記ノード装置との間の前記授受の際に要する負荷が低い当該ノード識別情報ほど先に参照される参照順であるように構成される。
よって、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
上記の課題を解決するために、請求項10に記載の発明は、請求項3から8のいずれか一項に記載のノード装置において、前記参照順は、各前記ノード識別情報により識別される前記ノード装置から前記ネットワークを介していずれかのメッセージを受信した順番に対応している。
よって、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
上記の課題を解決するために、請求項11に記載の発明は、請求項3から8のいずれか一項に記載のノード装置において、前記参照順は、前記授受される情報を識別する情報識別情報と、当該情報識別情報により識別される前記情報を蓄積している前記ノード装置の前記ネットワーク内の位置を示すアドレス情報と、の対により構成される対情報(インデックス情報)の記憶数に対応している。
よって、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
上記の課題を解決するために、請求項12に記載の発明は、相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において実行される情報処理方法において、前記ノード装置は、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶する記憶部等のノード識別情報記憶手段を備え、当該ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされており、記憶されている各前記ノード識別情報を参照して前記授受に用いる参照行程を含むように構成されている。
よって、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
上記の課題を解決するために、請求項13に記載の発明は、コンピュータを、請求項1から11のいずれか一項に記載のノード装置として機能させる。
よって、当該コンピュータを請求項1に記載のノード装置として機能させる場合には、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
更に、当該コンピュータを請求項2に記載のノード装置として機能させる場合には、当該コンピュータを請求項1に記載のノード装置として機能させる場合に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
更にまた、当該コンピュータを請求項3に記載のノード装置として機能させる場合には、当該コンピュータを請求項1又は2に記載のノード装置として機能させる場合に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
また、当該コンピュータを請求項4に記載のノード装置として機能させる場合には、当該コンピュータを請求項3に記載のノード装置として機能させる場合に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
更に、当該コンピュータを請求項5に記載のノード装置として機能させる場合には、当該コンピュータを請求項3又は4に記載のノード装置として機能させる場合に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
また、当該コンピュータを請求項6に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から5のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
更に、当該コンピュータを請求項7に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から6のいずれか一項に記載のノード装置として機能させる場合に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
更にまた、当該コンピュータを請求項8に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から7のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
また、当該コンピュータを請求項9に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
更に、当該コンピュータを請求項10に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
更にまた、当該コンピュータを請求項11に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
請求項1に記載の発明によれば、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
請求項2に記載の発明によれば、請求項1に記載の発明の効果に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
請求項3に記載の発明によれば、請求項1又は2に記載の発明の効果に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
請求項4に記載の発明によれば、請求項3に記載の発明の効果に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
請求項5に記載の発明によれば、請求項3又は4に記載の発明の効果に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
請求項6に記載の発明によれば、請求項3から5のいずれか一項に記載の発明の効果に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
請求項7に記載の発明によれば、請求項3から6のいずれか一項に発明の効果に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
請求項8に記載の発明によれば、請求項3から7のいずれか一項に記載の発明の効果に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
請求項9に記載の発明によれば、請求項3から8のいずれか一項に記載の発明の効果に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
請求項10に記載の発明によれば、請求項3から8のいずれか一項に記載の発明の効果に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
請求項11に記載の発明によれば、請求項3から8のいずれか一項に記載の発明の効果に加えて一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
請求項12に記載の発明によれば、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
請求項13に記載の発明によれば、コンピュータを請求項1に記載のノード装置として機能させる場合には、ノード識別情報記憶手段において、ノードグループの階層構成を示す樹形図における最上位階層に属するノード装置に対応するノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の階層に属するノード装置に対応するノード識別情報の記憶可能数以上されているので、代替として情報の授受に供することが可能なノード識別情報のノード装置における記憶可能数を最上階層について多くしておくことで、端末装置がネットワークから脱落する等の事態が発生した場合でも、迅速に代替となるノード識別情報を発見して情報の授受を効率的且つ迅速に実行することができる。
更に、当該コンピュータを請求項2に記載のノード装置として機能させる場合には、当該コンピュータを請求項1に記載のノード装置として機能させる場合に加えて、ノードグループの階層構成を示す樹形図における階層が下位になるに従って、当該階層に属するノード装置に対応するノード識別情報の記憶可能数が減少しているので、ノード識別情報記憶手段としての記憶量を節約しつつ、当該ノードグループにおける階層構造に対応して効率的に代替となるノード識別情報を取得することができる。
更にまた、当該コンピュータを請求項3に記載のノード装置として機能させる場合には、当該コンピュータを請求項1又は2に記載のノード装置として機能させる場合に加えて、予め設定された参照順に沿ってノード識別情報を参照して情報の授受に用いるので、効率的な代替ノード識別情報の取得とノード識別情報記憶手段としての記憶量の節約とを両立させることができる。
また、当該コンピュータを請求項4に記載のノード装置として機能させる場合には、当該コンピュータを請求項3に記載のノード装置として機能させる場合に加えて、樹形図を構成する各階層において参照順に指数関数的に記憶可能数が減少するように構成されているので、ネットワークに参加しているノード装置の増減数の実情に応じて必要最小限のノード識別情報を記憶することができる。
更に、当該コンピュータを請求項5に記載のノード装置として機能させる場合には、当該コンピュータを請求項3又は4に記載のノード装置として機能させる場合に加えて、各階層における記憶可能数が、ネットワークからのノード装置の脱退数に応じて定められているので、一つのノード装置内のノード識別情報の数を必要最小限としてノード識別情報記憶手段の記憶容量を節約することができる。
また、当該コンピュータを請求項6に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から5のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノード識別情報を参照した場合において当該参照したノード識別情報を情報の授受に用いることが不能であるとき、参照順においてその一のノード識別情報の次に参照されるべき他のノード識別情報を参照して情報の授受に用いるので、次に参照すべきノード識別情報を迅速に発見して情報の授受に供させることができる。
更に、当該コンピュータを請求項7に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から6のいずれか一項に記載のノード装置として機能させる場合に加えて、不能ノード識別情報があった場合にこれをノード識別情報記憶手段から削除し、参照順においてその下位にあったノード識別情報を繰り上げて補填するので、不能ノード識別情報があったとしてもこれを迅速に補填することで効率的な情報の授受を維持することができる。
更にまた、当該コンピュータを請求項8に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から7のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループにおける参照順内のいずれかの順位に対応すべき新たなノード識別情報があるとき、そのノード識別情報を対応する参照順の順位に配置し、当該新たな配置位置にあったノード識別情報を参照順において後の順位とするので、新たなノード識別情報を配置して更に効率的に情報の授受を行うことができ、それまで配置されていたノード識別情報をも引き続き活用することもできる。
また、当該コンピュータを請求項9に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、情報の授受の際に要する負荷に応じて定められているので、ネットワーク内の情報の授受をより効率的且つ迅速に行うことができる。
更に、当該コンピュータを請求項10に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、ノード識別情報により識別されるノード装置からいずれかのメッセージを受信した順に対応して定められているので、ノード識別情報記憶手段内の構成変更を最小限に抑制できることで、ネットワークにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができる。
更にまた、当該コンピュータを請求項11に記載のノード装置として機能させる場合には、当該コンピュータを請求項3から8のいずれか一項に記載のノード装置として機能させる場合に加えて、一のノードグループ内におけるノード識別情報の参照順が、対情報の記憶数に対応しているので、情報の授受に関わる可能性があるノード装置を示す対情報の数に対応した順でノード識別情報が参照されるので、より迅速に必要な情報の授受を開始することができる。
次に、本発明を実施するための最良の形態について、図面に基づいて説明する。なお、以下に説明する実施形態は、インターネット等のネットワークを用いて上記コンテンツの配信を行う上記配信システムに対して本発明を適用した場合の実施の形態である。
(I)配信システムの全体構成等
始めに、図1を参照して、実施形態に係る上記配信システム全体の概要構成等について説明する。なお、図1は、実施形態に係る配信システムにおける各ノードの接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の物理的なネットワーク)8が構築されているとする。なお、図1の例におけるネットワーク(通信ネットワーク)8には、メッセージ(パケット)を転送するためのルータが適宜挿入されているが、図1では、図示を省略している。
実施形態に係る配信システムSは、このようなネットワーク8を介して相互に接続された複数のノードA、B、C、…、X、Y、Z、…を備えて構成されるネットワークシステムとなっている。そして、各ノードA、B、C…X、Y、Z、…には、固有の製造番号及び宛先情報としての上記IPアドレスが割り当てられている。このような製造番号及びIPアドレスは、複数のノード間で重複しないものである。
次に、実施形態に係るDHTを利用したアルゴリズムについて説明する。
上述した配信システムSにおいては、上記DHTを利用したアルゴリズムにより、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築される。すなわち、当該オーバーレイネットワーク9は、上記した既存の(物理的な)ネットワーク8を用いて形成された仮想的なリンクを構成するネットワークである。
そして、以下に説明する実施形態は、このDHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノードを、一般に、オーバーレイネットワーク9に「参加」しているノードという。なお、オーバーレイネットワーク9への参加は、未だ参加していないノードが、既に参加している任意のノードに対して参加要求メッセージを送信することによって行われる。
一方、各ノードは、上述したように固有のノード識別情報としてのノードID(上述したようにIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化して得た一定桁数からなるハッシュ値を有するノードID)を有しており、当該ノードIでは一つのID空間(当該ID空間については、後ほど詳述する)に偏りなく分散して配置されることになる。そして、この共通のハッシュ関数により求められたノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
(II)DHTにおけるルーティングテーブルの一般的運用方法等
次に、上記DHTの具体的内容であるルーティングテーブルの作成手法並びにそれを用いたコンテンツの検索方法の一般例について、図2及び図3を用いて説明する。なお、図2は、当該ルーティングテーブルが作成される様子の一例を示す図であり、図3は、実際に作成されたルーティングテーブルの一例を示す図である。
(ア)ルーティングテーブルの作成手法
上述したように、各ノードに付与されたノードIDは、共通のハッシュ関数によって生成されたものであるため、図2(A)乃至図2(C)に示す如く、同一のリング状の上記ID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。なお同図は、8bitでノードIDを付与し、図示したものであり、図中黒点はノードIDを示し、反時計回りでIDが増加するものとする。
上記ルーティングテーブルの作成を考える場合、最初に、図2(A)に示す如く、上記ID空間が所定の規則に従って幾つかのグループ(ノードグループ)としてのエリアに分割される(分けられる)。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すこととした。そして、あるノードNのノードIDを「1023」とし、このノードNのルーティングテーブルを作るものとする。
(A)レベル1のルーティング
図2(A)に例示するようにID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」、「1XXX」、「2XXX」、「3XXX」(Xは0から3の整数、以下同様。)で分けられる。このとき、上記ノードNは、当該ノードN自身のノードIDが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。
そして、当該ノードNは、自身の存在するエリア(すなわち、「1XXX」のエリア)以外のエリアに存在する(換言すれば、レベル1において他のノードグループに属する)各ノードを代表のノードとして任意に選択し、当該選択されたノードIDのIPアドレス等(実際には、ポート番号等も含まれる、以下同様。)を、そのノードNに記憶されるべきレベル1のルーティングテーブルにおける各欄(当該ルーティングテーブルを構成するマトリクスル状の各欄を、以下単にエントリと称する)に登録(記憶)させる。このとき、図3(A)がレベル1のルーティングテーブルの一例である。なお、レベル1のルーティングテーブルにおける2列目のエントリは、ノードN自身を示しているため、IPアドレス等を登録する必要は無い。
(B)レベル2のルーティング
次に、図2(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自身の存在するエリアを更に4分割し、4つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分ける(つまり、ノードN自身が属するノードグループを更に複数の小ノードグループに分ける)。
そして、レベル1の場合と同様に、自身が存在するエリア以外のエリア(図2(B)において更に分割されたエリア)に存在する各ノードを代表のノードとして任意に選択し、当該ノードIDのIPアドレス等をレベル2のルーティングテーブルにおける各エントリに登録する。このとき、図3(B)がレベル2のルーティングテーブルの一例である。なお、レベル2のルーティングテーブルにおける1列目の欄は、ノードN自身を示しているため、IPアドレス等を登録する必要は無い。
(C)レベル3のルーティング
更に、図2(C)に示す如く、上記レベル2のルーティングによって4分割したエリアのうち、自身の存在するエリアを更に細かく4分割し、4つのエリア「100X」、「101X」、「102X」、「103X」に分ける(つまり、ノードN自身が属する小ノードグループを更に複数の小ノードグループに分ける)。
そして、上記レベル1又は2の場合と同様に、自身の存在するエリア以外のエリア(図2(C)において更に分割されたエリア)に存在する各ノードを代表のノードとして任意に選択し、当該ノードIDのIPアドレス等をレベル3のルーティングテーブルにおける各エントリに登録する。このとき、図3(C)がレベル3のルーティングテーブルの一例である。なお、レベル3のルーティングテーブルにおける3列目の欄は、ノードN自身を示しているため、IPアドレス等を登録する必要は無く、2列目及び4列目の欄はそのエリアにノードが存在しない(すなわち、図2(C)において更に分割されたエリアのうちノードN自身が属しているエリアには、ノードIDが「1000」であるノード以外には他にノードが存在しない)ため、空白となる。
このようにして、最終的にレベル4まで同様にルーティングテーブルが図3(D)に示す如く作成されることにより、8bitのID全てを網羅したルーティングテーブルが、ノードN内に記憶されるべきものとして完成することになる。このとき、図3に夫々示すように、出来上がったルーティングテーブルにおいては、レベルが上がる(例えばレベル2からレベル3に上がる)毎にルーティングテーブルの中に空白が目立つようになる。
以上説明した手法(規則)に従って作成したルーティングテーブルを、全てのノードが夫々作成して記憶することになる(係るルーティングテーブルの作成は、例えば、未参加のノードがオーバーレイネットワーク9に参加する際に行われるが、本発明とは直接の関係がないので詳しい説明を省略する)。
このように、各ノードは、他のノードの宛先情報としてのIPアドレス等と、各区分されたノードグループとしての、ノードID空間のエリア(すなわちDHTの各レベル及び各列)と、を相互に対応付けて記憶している。
つまり、各ノードは、複数に分けられた各エリア(ノードグループ)に属する一のノードのIPアドレス等を、夫々のエリアに対応付けて一の段階(レベル)として規定し、更に自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノードのIPアドレス等を、夫々のエリアに対応付けて次の段階(レベル)として規定するルーティングテーブルを記憶している。
ここで、ノードIDの桁数に応じてレベルの数が決まり、進数の数に応じて図3(D)における各レベルの注目桁の数が決まる。より具体的には、例えば16桁16進数である場合には、64bitのノードIDとなり、レベル16で注目桁の(英)数字は0〜Fとなる。また、後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」ともいう。
(イ)コンテンツデータの保存及び検索方法
次に、配信システムSにおいて取得可能なコンテンツデータの保存及び上記ルーティングテーブルを用いた検索方法について説明する。
オーバーレイネットワーク9においては、様々なコンテンツ(例えば、映画や音楽等)に相当するコンテンツデータが、複数のノードに分散して保存(格納)されている(言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている)。
より具体的には、例えば、あるノードA及びノードDには、タイトルが「XXX」の映画のコンテンツデータが保存され、一方、他のノードB及びノードCには、タイトルが「YYY」の他の映画のコンテンツデータが保存されるというように、複数のノード(以下、「コンテンツホルダ」という)に分散されて保存される。そして、これらのコンテンツデータには、夫々、コンテンツ名(タイトル)及び上述したコンテンツID等の情報が付加されている。
一方、このように分散保存されているコンテンツデータの所在、つまり、当該コンテンツデータを保存したノードのIPアドレス等と、当該コンテンツデータに対応するコンテンツID等と、の組が含まれるインデックス情報が、当該コンテンツデータの所在の管理元のノード(以下、当該ノードを、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」と称する)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。すなわち、例えば、タイトルが「XXX」の映画のコンテンツデータのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードMにより管理され、タイトルが「YYY」の映画のコンテンツデータのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードにより管理される。
つまり、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一のコンテンツデータ(コンテンツIDが同一)が、夫々、複数のコンテンツホルダに保存されている場合であっても、係るコンテンツデータのインデックス情報は、一つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードであるように定められる。
このようにしてコンテンツデータを保存したノード(以下、当該ノードをコンテンツホルダと称する)は、当該コンテンツデータを保存したことをそのルートノードに知らせるために、そのコンテンツデータのコンテンツID及び自己のIPアドレス等が含まれるパブリッシュ(登録通知)メッセージ(コンテンツデータを保存したので、IPアドレス等の登録の要求を示す登録メッセージ)を生成し、当該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、当該コンテンツIDを手掛かりとする以下のDHTルーティング処理によってルートノードに到着することになる。
次に、当該DHTルーティング処理について具体的に図4を用いて説明する。なお、図4は、コンテンツホルダから送出されたパブリッシュメッセージの流れの一例をDHTのノードID空間にて示した概念図である。
図4の例において、例えば、コンテンツホルダであるノードAは、自己のDHTのレベル1のルーティングテーブルを参照して、パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えば図4に示すノードHのIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを送信する。
これに対して、図4に示すノードHは、当該パブリッシュメッセージを受信し、自己のDHTのレベル2のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えば図4に示すノードIのIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを転送する。
これに対して、図4に示すノードIは、当該パブリッシュメッセージを受信し、自己のDHTのレベル3のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えば図4に示すノードMの転送先ノード情報に含まれるIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを転送する。
これに対して、当該ノードMは、当該パブリッシュメッセージを受信し、自身のDHTのレベル4のルーティングテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDが自身である、つまり、自身がそのコンテンツIDのルートノードであることを認識し、当該パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)することになる。
なお、パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報は、コンテンツホルダからルートノードに至るまでの転送経路におけるノード(以下、「中継ノード」という。図4の例では、ノードH及びノードI)においても登録(キャッシュ)される(このように、インデックス情報をキャッシュする中継ノードをキャッシュノードという)。
そして、あるノードの使用者が、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノード(以下、「リクエスタ」という)は、当該ユーザによりコンテンツカタログ情報から選択されたコンテンツデータのコンテンツIDを含むコンテンツ所在問合せ(検索)メッセージを、自己のDHTのルーティングテーブルに従って他のノードに対して送出する。これにより、当該コンテンツ所在問合せメッセージは、上述したパブリッシュメッセージと同様に、コンテンツIDを手掛かりとするDHTルーティングによって、いくつかの中継ノードを経由(転送)されて、そのコンテンツIDのルートノードに辿り着く。
そして、上記リクエスタは、当該ルートノードから、上述したそのコンテンツデータのインデックス情報を取得(受信)し、当該IPアドレス等に基づいて上記コンテンツデータを保存しているコンテンツホルダに接続し、そこから当該コンテンツデータを取得(ダウンロード)することが可能になる。
なお、上記リクエスタは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード(キャッシュノード)から当該IPアドレス等を取得(受信)することもできる。
(III)第1実施形態
次に、上述した配信システムS内の各ノードNに記憶されている本願のルーティングテーブルに係る第1実施形態について、当該ノードN自体の構成と共に図5乃至図15を用いて説明する。
なお、図5は第1実施形態に係るノードの概要構成を示すブロック図であり、図6及び図7は当該ノードに記憶されているルーティングテーブルの概要構成を示す模式図であり、図8乃至図14は当該ルーティングテーブルに対する実施形態に係る処理を夫々示すフローチャートであり、図15は当該ルーティングテーブルの更新処理を例示する図である。
始めに、第1実施形態に係るノードの概要構成及び全体動作について、図5を用いて説明する。なお、以下の各実施形態においては、上記コンテンツホルダ、リクエスタ、ルートノード及びその他のノードNは、基本的に全て同一のハードウエア構成を有するものであるので、それらを代表して一般のノードNの構成について、図5を用いてその概要を説明する。
図5に示すように、第1実施形態に係る配信システムSに含まれているノードNは、演算機能を有するCPU、作業用RAM(Random Access Memory)、各種データ及びプログラムを記録するROM(Read Only Memory)等から構成された参照手段、削除手段及び順位変更手段としての制御部11と、上記コンテンツ自体としてのコンテンツデータ、上記ルーティングテーブル及びその他の必要なプログラム等を記録保存(格納)するHDD等から構成されたノード識別情報記憶手段としての記憶部12と、受信されたコンテンツデータを一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコード(符号化)されたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT(Cathode Ray Tube)又は液晶ディスプレイ等よりなる表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD/A(Digital/Analog)変換した後これを増幅器等により増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNとの間の情報の通信制御を行なうための通信部20と、夫々の使用者からの指示を受け付け当該指示に応じた指示信号を制御部11に出力する入力部(例えば、キーボード、マウス或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、及び通信部20はバス22を介して相互にデータの授受が可能に接続されている。
そして、制御部11におけるCPUが記憶部12等に記録された各種プログラムを実行することにより、制御部11が、リクエスタ、ルートノード、コンテンツホルダ又はそれら以外の一般のノードNのいずれか一つとしての全体動作を統括制御する。
次に、ノード一般(ルートノード、コンテンツホルダ及びリクエスタを含む)としての基本的な共通動作を含めて、第1実施形態に係るルーティングテーブルの構成及びそれに対する処理について夫々説明する。
なお、以下の説明においては、ルーティングテーブルの規模は、レベルが1乃至4まで(すなわち、図3(D)で示したものと同様の8bit(4桁)対応のルーティングテーブル)で、一レベル当たりの分割数が四つであるルーティングテーブルであるものとする。
図6に示すように、上記記憶部12内に記憶されている第1実施形態に係るルーティングテーブルRTは、上記DHTルーティング処理に主として用いられるメインテーブルMRと、当該メインテーブルMRの代替として順次用いられるサブテーブルR1乃至R3と、により構成されている。
この構成において、メインテーブルMRはレベル1乃至4までの四つのレベル分のエントリEを合計16個(四つのレベル×四つのエリア)含んでいる。また、サブテーブルR1は、レベル1及び2の二つのレベル分のエントリEを合計8個(二つのレベル×四つのエリア)含んでおり、更にサブテーブルR2及びR3は、各々、レベル1のみのエントリEを4個(一つのレベル×四つのエリア)夫々含んでいる。すなわち、ルーティングテーブルRTとしては、各テーブルにおけるレベル数を、メインテーブルMRからみて指数関数的に減少させている。
そして、各エントリEには、対応するレベルのルーティング先(転送先)のノードNを示すノードID及びIPアドレス等に加えて、当該ルーティング先のノードまでメッセージ等が到達するまでに中継されるノードの数であるホップ数が、当該ルーティング先のノードまでのネットワーク上の距離(換言すれば、当該ルーティング先のノードまでメッセージ等を到達させる際の容易性)を示す情報として記述されている。なお、上述したように、一つのルーティングテーブル内では、レベルが上がるにつれて空白となるエントリEが増大していくことになる。なお、当該ノードID、IPアドレス等及びホップ数を、纏めて以下「ノード情報」と称する。
なお、第1実施形態に係る記憶部12においては、図6に示すメインテーブルMR乃至サブテーブルR3を全て記憶可能な記憶領域が(各エントリE内に実際にノード情報が記憶されていると否とに拘わらず)、当該ルーティングテーブルRT用の記憶領域として常に確保されている。
このとき、当該ルーティングテーブルRT用の記憶領域として具体的には、自信のノードIDと一致しているエントリEにはノード情報を記述する必要がないので、そのための記憶領域を確保する必要はない。例えば、ルーティングテーブルRTにおいて、そのレベル1にエントリEを四個記憶できる場合、
一つのレベル×{(四つのエリア)−(自身のノードIDと一致しているエリア(1つ))}=12
となるので、そのエントリEにノード情報が記憶されているか否かに拘わらず、合計12個エントリ分の記憶領域が確保されていればよい。すなわち図7に例示するように、自身のノードIDが例えば「1203」であった場合、1行(レベル1)2列に登録されるノード情報は存在しない。よって、レベル1として確保すべき記憶領域は、図7において右下ハッチングで表示されるエントリ3個分の記憶領域である。これと同様に、図7に例示する場合には、レベル2としてはエントリEを2個所持できるので合計エントリ6個分の記憶領域があればよく、またレベル3としてはエントリEを1個所持できるので合計エントリ3個の記憶領域があればよく、更にレベル4としてはエントリEを1個所持できるので合計エントリ3個の記憶領域があればよい。
次に、第1実施形態に係るルーティングテーブルRTを構成するメインテーブルMR、サブテーブルR1乃至R3においては、各テーブル内の同一レベル且つ同一エリアに相当するエントリEには、当該同一エリア(同一ノードグループ)に属する転送先となり得るノードのノード情報が、ホップ数の少ないノードから順にメインテーブルMR、サブテーブルR1乃至R3に夫々一ノード分だけ記述されている。
より具体的には、例えば図6に例示するメインテーブルMRのエントリME1に注目した場合、当該エントリME1内に記述されているノード情報により示されるノードと同じエリアに属する他の一つのノードを示すノード情報が、当該エントリME1と同一レベル同一エリアに相当するサブテーブルR1のエントリR1E1、サブテーブルR2のエントリR2E1及びサブテーブルR3のエントリR3E1内に夫々記述されている。
そして、メインテーブルMRのエントリME1内に記述されているノードIDにより示されるノードまでのホップ数は、サブテーブルR1のエントリR1E1内に記述されているノードIDにより示されるノードまでのホップ数より少なく、当該エントリR1E1内に記述されているノードIDにより示されるノードまでのホップ数は、サブテーブルR2のエントリR2E1内に記述されているノードIDにより示されるノードまでのホップ数より少なく、更に当該エントリR2E1内に記述されているノードIDにより示されるノードまでのホップ数は、サブテーブルR3のエントリR3E1内に記述されているノードIDにより示されるノードまでのホップ数より少なくなっている。
なお、図6に示すルーティングテーブルRTにおいて、エントリME1、R1E1、R2E1及びR3E1内に夫々記述されているノードIDにより示されるノードまでのホップ数を相互に等しく構成することも可能である。この場合は、他のノードからメッセージを受け取った時刻が最近のノードを示すノードIDがエントリME1内に記述されることになる。
このような構成を備えるルーティングテーブルRTを用いてDHTルーティング処理を実行する場合、例えばメインテーブルMRのエントリME1内に記述されているノードIDにより示されるノードが、例えば当該ノード自体が配信システムSから脱退した等の理由により当該配信システムS内に存在しなくなったことが認識された場合、他のルーティング先のノードNを新たに探索することなく、サブテーブルR1のエントリR1E1内に記述されているノード情報により示される(同じエリア内の)他のノードNを新たなルーティング先に直ちに切り換えて必要なDHTルーティング処理を継続する。
そして、当該他のノードをルーティング先としたDHTルーティング処理後においては、元々エントリR1E1に記述されていたノード情報をエントリME1内に書き換えると共に、元々エントリR2E1に記述されていたノード情報をエントリR1E1内に書き換え、更に元々エントリR3E1に記述されていたノード情報をエントリR2E1内に書き換えるルーティングテーブルRTの更新処理を行い、新たなDHTルーティング処理に備える。
更に、例えば現在エントリME1内に記述されているノードIDにより示されるノードよりもホップ数が少ない同一レベル同一エリア内の他のノードが発見された場合には、その新たに発見されたノードを示すノード情報を新たにエントリME1内に記述し、元々エントリME1に記述されていたノード情報をエントリR1E1内に書き換えると共に、元々エントリR1E1に記述されていたノード情報をエントリR2E1内に書き換え、更に元々エントリR2E1に記述されていたノード情報をエントリR3E1内に書き換えるルーティングテーブルRTの更新処理を行い、新たなDHTルーティング処理に備える。
なお、図6に示す場合において、メインテーブルMRがレベル4まで対応しているのに対し、サブテーブルR1はレベル2にまでしか対応しておらず、更にサブテーブルR2及びR3についてはレベル1にまでしか対応していない。これは、図3(D)に例示した如く、ルーティングテーブルRTに含まれるメインテーブルMRにおいて、その最下行に記述されるべきノード情報は1つしか存在しないためであり、従って、第1実施形態の場合では、サブテーブルR1乃至R3におけるレベル4に相当する行にノード情報が記述されることはあり得ないからである。
また、第1実施形態に係るルーティングテーブルRTに含まれるテーブルの数自体(図6に示す場合は「4」)は、例えば実験的その他の手法により任意に決定し得るものであるが、より具体的には、例えば配信システムSにおける統計的なノードの脱退率等を根拠として決定することが望ましい。
次に、第1実施形態に係るルーティングテーブルRTに係る上記更新処理等について、具体的に図8乃至図15を用いて説明する。なお、当該図8乃至図15に夫々各フローチャートに対応する処理は各ノードN内の制御部11が実行するものである。
先ず、図8(a)を用いて第1実施形態に係るノードNにおける一般的な処理について説明する。なお図8(a)は、当該一般的な処理を示すフローチャートである。
図8(a)に示すように、第1実施形態に係るノードNにおいては、配信システムSに新たに参加するに当たり、自身が記憶しているルーティングテーブルRT内の各エントリE内に記述されている全てのノードID等の情報を初期化し(ステップS1)、更に上記参加要求メッセージを送信して配信システムS内に参加する(ステップS2)。
当該参加後は、自身の電源スイッチがオフとされたか否かを常に監視し(ステップS3)、オフとされたときは(ステップS3;YES)そのまま処理を終了し、一方、オフとされていないときは(ステップS3;NO)、次に、何らかのメッセージを他のノードNから受信したか否かを確認する(ステップS4)。
そして、何らかのメッセージを他のノードNから受信したときは(ステップS4;YES)、その受信したメッセージを転送する転送先をメインテーブルMR内において探索する等の後述するメッセージ転送処理を実行し(ステップS5)、更に当該メッセージ転送処理の結果を用いたルーティングテーブルRTへのノード情報の新たな登録処理を実行し(ステップS6)、上記ステップS3に戻って上述した処理を繰り返す。なお、上記ステップS5及びS6の処理については、後ほど詳述する。
一方、ステップS4の判定において、何らメッセージを受信していないときは(ステップS4;NO)、当該ノードNとして予め設定されている他の処理を実行し(ステップS7)、上記ステップS3に戻戻って上述した処理を繰り返す。
次に、上記ステップS5としてのメッセージ転送処理について、具体的に図8(b)を用いて説明する。なお、図8(b)は当該メッセージ転送処理を示すフローチャートである。
図8(b)に示すように、当該メッセージ転送処理としては、何らかのメッセージを受信した場合(図8(a)ステップS4;YES参照)、先ず、自身が記憶しているメインテーブルMR内において次の転送先となるエントリを探索する(ステップS10)。
そして、当該探索処理の過程において自身がルートノードであることが判明したか否かを確認し(ステップS11)、自身がルートノードであるときは(ステップS11;YES)、もはや転送先のノードNは存在しないこととなるので、そのメッセージに対応する処理を実行して上記ステップS6の処理に移行する。
一方、ステップS11の判定において、自身がルートノードではなく、次に転送すべきノードNが探索できたときは(ステップS11;NO)、その探索結果を用いて当該受信したメッセージを転送し(ステップS12)、その転送が成功したか否かを確認する(ステップS13)。このステップS13の処理として具体的には、例えば、転送先のノードNからの返答メッセージの有無等により確認することができる。
ステップS13の確認において、当該転送が成功したときは(ステップS13;YES)、そのまま上記ステップS6に移行し、一方、例えば転送先のノードNが配信システムSから脱退していた等の理由により当該転送が成功しなかった場合は(ステップS13;NO)、現在のメインテーブルMRから当該転送が成功しなかった転送先のノードNを示すノード情報を削除する処理を行い(ステップS14)、上記ステップS10に戻って再度上記削除処理(ステップS14)後のメインテーブルMR内において次の転送先のノードを探索する。
ここで、後述するように、上記ステップS14の削除処理においては、メッセージの転送が成功しなかったノードのノード情報をメインテーブルMRから削除した後、その削除されたノード情報が記述されていたメインテーブルMRのエントリEに、当該エントリEと同一レベル同一エリアに相当するサブテーブルR1のエントリEに記述されていたノード情報を記述する処理を実行する。よって、上記ステップS14及びS10の処理が繰り返されることで、結果的に、図6に示すメインテーブルMR→サブテーブルR1→サブテーブルR2→サブテーブルR3の順で、当該同一レベル同一エリアに相当するエントリEが順次参照されてメッセージの転送処理に供されることとなる。
次に、上記ステップS14としてのメッセージ削除処理について、具体的に図9(a)を用いて説明する。なお、図9(a)は当該メッセージ削除処理を示すフローチャートである。
図9(a)に示すように、当該メッセージ削除処理としては、先ず、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルMRのエントリEが、当該エントリEと同一レベル同一エリアに相当するサブテーブルR1のエントリEを有するものであるか否かを確認する(ステップS30)。
なお、以下の説明では、同一レベル同一エリアに相当するエントリEが少なくともサブテーブルR1に存在するメインテーブルMRのエントリEを、「多重化されているエントリ」と称する。より具体的に図6を用いて説明すると、第1実施形態に係るメインテーブルMRにおいては、レベル1及び2が多重化されているエントリとなり、レベル3及び4は多重化されていないエントリとなる。
そして、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルMRのエントリEが多重化されたエントリであった場合は(ステップS30;YES)、当該多重化されたメインテーブルMRのエントリEからノード情報を削除する処理を実行し(ステップS32)、上記図8(b)ステップS10の処理に移行する。
一方、ステップS30の判定において、メッセージの転送が成功しなかったノードのノード情報が記述されていたメインテーブルMRのエントリEが多重化されていないエントリであった場合は(ステップS30;NO)、当該多重化されていないメインテーブルMRのエントリEからノード情報を削除する処理を実行し(ステップS31)、上記図8(b)ステップS10の処理に移行する。
次に、上記ステップS31の処理について、具体的に図9(b)を用いて説明する。なお、図9(b)は当該ステップS31の削除処理を示すフローチャートである。
図9(b)に示すように、ステップS31の削除処理としては、先ず、メッセージの転送が成功しなかったノードのノード情報と、当該ノード情報が記述されているはずのメインテーブルMRのエントリEに実際に記述されているノード情報と、を比較し(ステップS60)、両者が同一である場合は(ステップS60;同一)、そのエントリEに実際に記述されているノード情報を削除して(ステップS61)上記図8(b)ステップS10の処理に移行する。
一方、ステップS60の判定において、例えば転送成功の判定処理の際のエラー等に起因して両者が異なっているときは、同じノード情報を用いた転送処理を再度実行する必要があるとして(ステップS60;相違)、当該エントリE内に実際に記述されているノード情報を削除することなく上記図8(b)ステップS10の処理に移行する。
次に、上記ステップS32の処理について、具体的に図10を用いて説明する。なお、図10(a)は当該ステップS32の削除処理を示すフローチャートであり、図10(b)は当該削除処理の状態を示す模式図である。
図10(a)に示すように、ステップS32の削除処理としては、先ず、ルーティングテーブルRTにおける参照順の各テーブルの番号を示すパラメータiを初期化する(ステップS65)。このパラメータiにつき、図6に示す場合には、メインテーブルMRがパラメータi=「0」に相当し、サブテーブルR1がパラメータi=「1」に相当し、更にサブテーブルR2がパラメータi=「2」に相当することになる。
パラメータiが初期化されると、次に、現在の当該パラメータiの値が、ルーティングテーブルRTにおける多重化数を示すパラメータMAX(図6に示す場合、その値は「3」である)未満であるか否かを確認する(ステップS66)。そして、現在の当該パラメータiの値がパラメータMAXの値未満でないときは(ステップS66;NO)、更に参照すべき下位のサブテーブルが存在しないことになるので、上記図8(b)ステップS10の処理に移行する。
一方、ステップS66の判定において、現在の当該パラメータiの値がパラメータMAXの値未満であるときは(ステップS66;YES)、次に、ノード情報を削除すべきエントリEが現在のパラメータiにより示されるテーブル内にあるエントリEであるか否かを確認し(ステップS67)、ノード情報を削除すべきエントリEが現在のパラメータiにより示されるテーブル内にあるエントリEでないときは(ステップS67;NO)、現在のパラメータiの値を「1」だけインクリメントして(ステップS72)上記ステップS66の処理に戻る。
ここで、メインテーブルMRのエントリEを一律に削除せずに削除対象となるエントリEを他のサブテーブルR1乃至R3を含めてループ処理で検索する理由は、メッセージの転送処理を行っている間に新たなエントリEがメインテーブルMRに登録されることがあるため、メインテーブルMRのエントリEが常に削除対象のエントリEとなるは限らないからである。
他方、ステップS67の判定において、ノード情報を削除すべきエントリEが現在のパラメータiにより示されるテーブル内にあるエントリEであるときは(ステップS67;YES)、次に、一つ下位にあるテーブルにおける同一レベル同一エリアのエントリEに記述されているノード情報を用いて、削除対象となっているノード情報(現在のパラメータiの値により示されるテーブルのエントリE内に記述されている削除対象のノード情報)を書き換え(すなわち、テーブル間におけるノード情報の繰り上げ。ステップS68)、現在のパラメータiの値を「1」だけインクリメントする(ステップS69)。
そして、当該インクリメント後のパラメータiの値がパラメータMAXの値から「1」を減じた値になったか否かを確認し(ステップS70)、当該値になっていないときは(ステップS70;NO)、上記テーブル間におけるノード情報の繰り上げを下位のテーブルについて繰り返すべく上記ステップS68の処理に戻り、一方、インクリメント後のパラメータiの値がパラメータMAXの値から「1」を減じた値になったときは(ステップS70;YES)、そのときのパラメータi(=MAX―1)により示されるテーブルの該当するエントリE内のノード情報を消去して(ステップS71)上記図8(b)ステップS10の処理に移行する。
以上説明した図10(a)に示す処理が実行されることで、結果として、図10(b)に図6に示す場合について例示し、更に図15において符号「A」乃至「C」を用いて例示するように、メインテーブルMRのエントリME1内に記述されていたノード情報が削除された場合、サブテーブルR1のエントリR1E1に記述されているノード情報が当該エントリME1内に記述されると共に、サブテーブルR2のエントリR2E1に記述されているノード情報がサブテーブルR1のエントリR1E1内に記述され、サブテーブルR3のエントリR3E1に記述されているノード情報がサブテーブルR2のエントリR2E1内に記述され、更にサブテーブルR3のエントリR3E1に記述されているノード情報が消去されて当該エントリR3E1が空の状態となる。
次に、上記ステップS6としてのテーブルへの登録処理について、具体的に図11を用いて説明する。なお、図11は当該登録処理を示すフローチャートである。
図11に示すように、当該登録処理としては、先ず、図8(a)ステップS4の処理において受信したメッセージの送信元のノードを示すノード情報を取得し(ステップS20)、その取得したノード情報に基づき、そのノード情報を記述すべきメインテーブルMRのエントリEがいずれであるかを確認する(ステップS21)。
次に、当該確認されたエントリEが多重化されたエントリであるか否かを確認し(ステップS22)、多重化されているときは(ステップS22;YES)、当該多重化されたメインテーブルMRのエントリEに対する新たなノード情報の記述処理を実行し(ステップS24)、上記図8(a)ステップS3の処理に移行する。
一方、ステップS22の判定において、確認されたエントリEが多重化されていないエントリであるときは(ステップS22;NO)、当該多重化されていないメインテーブルMRのエントリEに対する新たなノード情報の記述処理を実行し(ステップS23)、上記図8(a)ステップS3の処理に移行する。
次に、上記ステップS23の登録処理について、具体的に図12(a)を用いて説明する。なお、図12(a)は当該ステップS23の登録処理を示すフローチャートである。
図12(a)に示すように、ステップS23の登録処理としては、先ず、対象となっているメインテーブルMRのエントリEが、ノード情報が記述されていない空の状態であるか否かを確認し(ステップS35)、メインテーブルMRの当該エントリEが空の状態であるときは(ステップS35;YES)、そのまま当該エントリEに新しいノード情報を記述して(ステップS36)、上記図8(a)ステップS3の処理に移行する。
一方、ステップS35の判定において、メインテーブルMRの当該エントリEに既にノード情報が記述されているときは(ステップS35;NO)、次に、その記述されているノード情報内のホップ数と、新たに記述しようとしているノード情報内のホップ数とを比較し(ステップS37、S38)、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より小さいか又は双方が等しいときは(ステップS38;YES)、当該新たなノード情報を用いて既に記述されているノード情報を書き換え(ステップS36)、上記図8(a)ステップS3の処理に移行する。
他方、ステップS38の判定において、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より大きいときは(ステップS38;NO)、当該記述済みのノード情報を継続して使用するものとしてそのまま上記図8(a)ステップS3の処理に移行する。
次に、上記ステップS24の登録処理について、具体的に図12(b)を用いて説明する。なお、図12(b)は当該ステップS24の登録処理を示すフローチャートである。
図12(b)に示すように、ステップS24の登録処理としては、先ず、上記ステップS35の処理と同様に、対象となっているメインテーブルMRのエントリEが空の状態であるか否かを確認し(ステップS40)、メインテーブルMRの当該エントリEが空の状態であるときは(ステップS40;YES)、そのまま当該エントリEに新しいノード情報を記述して(ステップS41)、上記図8(a)ステップS3の処理に移行する。
一方、ステップS40の判定において、メインテーブルMRの当該エントリEに既にノード情報が記述されているときは(ステップS40;NO)、次に、新たに記述しようとしているノード情報を記述すべきテーブルを取得する登録位置取得を実行して当該ノード情報を記述し(ステップS42)、上記図8(a)ステップS3の処理に移行する。
次に、上記ステップS42の取得処理について、具体的に図13を用いて説明する。なお、図13は当該ステップS42の取得処理を示すフローチャートである。
図13に示すように、ステップS42の取得処理としては、先ず、上記パラメータiを初期化し(ステップS45)、その後、現在の当該パラメータiの値が上記パラメータMAX未満であるか否かを確認する(ステップS46)。そして、現在の当該パラメータiの値がパラメータMAXの値未満でないときは(ステップS46;NO)、更に参照すべき下位のサブテーブルが存在しないことになるので、そのまま上記図8(a)ステップS3の処理に移行する。
一方、ステップS46の判定において、現在の当該パラメータiの値がパラメータMAXの値未満であるときは(ステップS46;YES)、次に、現在のパラメータiにより示されるテーブル内にあるエントリEであって新たなノード情報が登録されるべきレベル及びエリアにあるエントリEが、現在何らノード情報が記述されていない空の状態であるか否かを確認する(ステップS47)。
そして、当該エントリEが空の状態であるときは(ステップS47;YES)、そのパラメータiにより示されるテーブル内にある当該エントリE内に当該新たなノード情報を記述し(ステップS51)、上記図8(a)ステップS3の処理に移行する。
他方、ステップS47の判定において、当該エントリEが空の状態でないときは(ステップS47;NO)、次に、その記述されているノード情報内のホップ数と、新たに記述しようとしているノード情報内のホップ数とを比較し(ステップS48、S49)、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より小さいか又は双方が等しいときは(ステップS49;YES)、当該新たなノード情報を記述するテーブル内のエントリEを取得する後述の取得処理を実行し(ステップS50)、その取得したエントリE内に当該新たなノード情報を記述して(ステップS51)上記図8(a)ステップS3の処理に移行する。
また、ステップS49の判定において、新たに記述しようとしているノード情報内のホップ数の方が、既に記述されているノード情報内のホップ数より大きいときは(ステップS49;NO)、現在のパラメータiの値を「1」だけインクリメントして(ステップS52)上記ステップS46の処理に戻る。
次に、上記ステップS50の取得処理について、具体的に図14を用いて説明する。なお、図14(a)は当該ステップS50の取得処理を示すフローチャートであり、図14(b)は当該取得処理の状態を示す模式図である。
図14(a)に示すように、ステップS50の取得処理としては、先ず、上記パラメータiと同様にルーティングテーブルRTにおける参照順の各テーブルの番号を示すパラメータjを(パラメータMAX−1)の値に設定し(ステップS55)、次に、現在のパラメータiの値と現在のパラメータjの値を比較する(ステップS56)。
そして、現在のパラメータiの値が現在のパラメータjの値より小さいときは(ステップS56;YES)、現在のパラメータjの値により示されるテーブルの一つ上位にあるテーブル(j−1番目のテーブル)における同一レベル同一エリアのエントリEに記述されているノード情報を用いて、当該現在のパラメータjの値により示されるテーブルにおける同一レベル同一エリアのエントリEの内容を書き換え(すなわち、テーブル間におけるノード情報の繰り下げ。ステップS57)、現在のパラメータjの値を「1」だけデクリメントして(ステップS58)上記ステップS56の処理に戻る。
一方、ステップS56の判定において、現在のパラメータiの値が現在のパラメータjの値より小さくないときは(ステップS56;NO)、そのまま上記図13ステップS51の処理に移行する。
以上説明した図13及び図14(a)に示す処理が実行されることで、結果として、図14(b)に図6に示す場合について例示し、更に図15において「○数字1」矢印及び「○数字2」矢印を用いて例示するように、サブテーブルR1のエントリR1E1内に記述されていたノード情報を新たなノード情報で書き換える場合、サブテーブルR1の当該エントリR1E1にそれまで記述されていたノード情報がサブテーブルR2のエントリR2E1に移され(当該エントリR2E1の既存のノード情報が書き換えられ)、更にサブテーブルR2の当該エントリR2E1にそれまで記述されていたノード情報がサブテーブルR3のエントリR3E1に移され(当該エントリR3E1の既存のノード情報が書き換えられる)、上記空いたエントリR1E1内に当該新たなノード情報が記述されることとなる。
以上夫々説明したように、第1実施形態に係るルーティングテーブルRTに係る処理によれば、ルーティングテーブルRT内に複数のテーブルを記憶し、当該各テーブル内のマトリクスにおける同一位置に夫々配置されているノード情報を、参照順に従って順次参照してメッセージ等の転送処理に用いるので、代替として当該転送処理に供することが可能なノード情報を予め複数記憶しておくことで、例えば既存の転送先であるノードNが配信システムSから脱落する等の事態が発生した場合でも、迅速に代替となるノード情報を発見して当該転送処理を効率的且つ迅速に実行することができる。
従って、当該転送処理を効率的且つ迅速に伝送することができると共に、ノードNの配信システムSからの脱落等の事態に対しても柔軟にルーティングテーブルRTを変更することで、配信システムSとしての対故障性を向上させつつ伝送効率の向上に資することができる。
また、当該各テーブルにおける各行が、ノードNが属する配信システムS上のノードグループにおける各階層に各々対応付けられており、更に二番目以降に参照されるべきサブテーブルR1又はR2の行数が最初に参照されるべきメインテーブルMRの行数よりも少ないので、記憶部12としての記憶量を節約しつつ各ノードグループの態様に合わせて効率的にノード情報を参照することができる。
更に、当該各テーブルにおける各行が、最上位の当該行から順に、ノードグループの最上位階層から各階層に順に対応付けられているので、配信システムS内のノードグループにおける階層構造に対応して効率的に代替となるノード情報を取得することができる。
更にまた、当該各テーブルにおいては、参照順が下位になるのに従い、各テーブルにおける下位の行から順に少なくなっているので、代替となるノード情報の効率的な取得と記憶部12としての記憶量の節約とを両立させることができる。
また、ルーティングテーブルRTを構成する各テーブルにおいて、参照順に指数関数的に行数が減少するように当該各テーブルを構成することで、配信システムSに参加しているノード装置の増減数の実情に応じて必要最小限の構成を備えるルーティングテーブルRTを実現することができる。
更に、ルーティングテーブルRT内に記憶されているテーブルの数が、配信システムSからのノードNの脱退数に応じて定められているので、一つのノードN内のテーブルの数を必要最小限として記憶部12の記憶容量を節約することができる。
更にまた、メインテーブルMRのノード情報を参照した場合において当該参照したノード情報を転送処理に用いることが不能であるとき、参照順においてサブテーブルR1内のマトリクスにおいて当該使用不能だったノード情報と同一位置に配置されている他のノード情報を参照して転送処理に用いるので、次に参照すべきノード情報を迅速に発見して情報の授受に供させることができる。
また、転送処理に用いることができないノード情報があった場合に、これをメインテーブルMRから削除すると共に、参照順においてその下位にあったノード情報を繰り上げてメインテーブルMRを補填するので、転送処理に用いることができないノード情報があったとしてもこれを迅速に補填することで効率的な転送処理を維持することができる。
更に、新たにいずれかのテーブルに配置すべきノード情報があるとき、そのノード情報を対応する参照順のテーブルに配置すると共に、当該新たな配置位置にあったノード情報を参照順において後にある他のテーブルの対応する位置に再配置するので、新たなノード情報を配置して更に効率的に情報の授受を行うことができると共に、それまで配置されていたノード情報を再配置して活用することもできる。
(IV)第2実施形態
次に、本発明に係るルーティングテーブルの他の実施形態である第2実施形態について、図16を用いて説明する。なお、図16は第2実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図である。
また、第2実施形態に係るルーティングテーブルにおいて、第1実施形態に係るルーティングテーブルRTと同様の構成部材については、同様の部材番号を付して細部の説明は省略する。
上述した第1実施形態においては、メインテーブルMR以外のサブテーブルR1乃至R3のレベル数(当該サブテーブル自体の行数)については、当該サブテーブルR1からR3に向けて指数関数的に減少させる構成としたが、以下に説明する第2実施形態の如く、これらサブテーブル間で同一のレベル数としてもよい。
すなわち、図16に示すように、第2実施形態に係るルーティングテーブルRRTを、記憶部12におけるルーティングテーブルRT用として確保可能な記憶容量が多いことを前提として、メインテーブルMRの他に、当該メインテーブルMRに対して第1実施形態に係るサブテーブルR1乃至R3と同様の関係を有するサブテーブルRR1乃至RR3により構成するとき、メインテーブルMRにおけるレベル数を「4」とするとき、サブテーブルRR1乃至RR3におけるレベル数を全て「3」としてもよい。この場合、レベル1乃至3が多重化されているエントリとなり、レベル4が多重化されていないエントリとなる。
なお、図16に示す場合において、メインテーブルMRがレベル4まで対応しているのに対し、サブテーブルRR1乃至RR3はレベル3にまでしか対応していないが、これは、上記図3(D)に例示した如く、ルーティングテーブルRRTに含まれる各テーブルにおいて、最下行には、各エントリME1に記述されるべきノード情報は1つしか存在しないためであり、従って、第2実施形態の場合では、サブテーブルRR1乃至RR3におけるレベル4に相当する行にノード情報が記述されることはあり得ないからである。
(V)第1実施形態又は第2実施形態の変形形態
次に、上述してきた第1実施形態又は第2実施形態に係る変形形態について説明する。
上述した各実施形態においては、ルーティングテーブルRT又RRTを構成する各テーブルの参照順を、転送先となるノードまでのホップ数を用いてその少ない順に規定したが、これ以外に、例えば、
(i)メッセージ等の授受の際に要する負荷に応じて定める方法、
(ii)ノード情報により識別されるノードNからいずれかのメッセージを受信した順に対応して定める方法、
(iii)上記インデックス情報を記憶している数に基づき、当該記憶数が多いほど先に参照するように定める方法、
が可能である。
これらの場合については、上記(i)の場合には配信システムS内の転送処理をより効率的且つ迅速に行うことができると言う効果を奏し、上記(ii)の場合には各テーブルの構成変更を最小限に抑制できることで、配信システムSにおけるメッセージの伝送経路の変更を最小限に抑制して効率的に当該メッセージを伝送することができると言う効果を奏し、更に上記(iii)の場合には転送処理に関わる可能性があるノードNを示すインデックス情報の数に対応した順でテーブルが参照されるので、より迅速に必要な情報の授受を開始することができると言う効果を奏することができる。
(VI)第3実施形態
本発明に係る他の実施形態である第3実施形態について、図17及び図18を用いて説明する。なお、図17は第3実施形態に係るテーブルへの登録処理を示すフローチャートであり、図18は第3実施形態に係る転送先ノードの探索処理を示すフローチャートである。そして、当該各フローチャートにおいて、上述した第1実施形態に係る処理と同様の処理については、同様のステップ番号を付して細部の説明は省略する。
また、第3実施形態に係る各ノードの構成は、基本的に上記第1又は第2実施形態に係るノードNの構成と同様であるので、当該第1又は第2実施形態に係るノードNと同様の構成部材については、同様の部材番号を用いて細部の説明は省略する。
更に、以下の第3実施形態に係るルーティングテーブルの構成としては、例えば図6を用いて説明した第1実施形態に係るルーティングテーブルRTの構成と同様としてもよいし、或いは図16を用いて説明した第2実施形態に係るルーティングテーブルRRTの構成と同様としてもよいが、当該第3実施形態に係るルーティングテーブルにおいては、上記ルーティングテーブルRT又はRRTとは異なり、各テーブル内に参照順は設けられていない。
次に、第3実施形態に係るルーティングテーブルに係る上記更新処理等について、具体的に図17及び図18を用いて説明する。なお、当該図17及び図18に夫々各フローチャートに対応する処理は各ノードN内の制御部11が実行するものである。
先ず、第3実施形態に係るノードNにおける一般的な処理については、上記図8(a)を用いて説明した処理と同様であるので、細部の説明は省略する。
次に、上記ステップS6としての第3実施形態に係るテーブルへの登録処理について、具体的に図17を用いて説明する。なお、図17は当該登録処理を示すフローチャートである。
図17に示すように、当該登録処理としては、先ず、図8(a)ステップS4の処理において受信したメッセージの送信元のノードを示すノード情報を取得し(ステップS20)、その取得したノード情報に基づき、そのノード情報を記述すべきメインテーブルMRのエントリEがいずれであるかを確認する(ステップS21)。
次に、当該確認されたエントリEが多重化されたエントリであるか否かを確認し(ステップS22)、多重化されているときは(ステップS22;YES)、第3実施形態に係るルーティングテーブルに含まれているいずれかのテーブル内に空いている(すなわち、ノード情報が記述されていない)エントリEが存在しているか否かを確認する(ステップS92)。そして、当該空いているエントリEが存在していないときは(ステップS92;NO)、現在記憶されているテーブルの中からいずれかのエントリEを例えばランダムに選択してそれに記述されているノード情報を削除し(ステップS93)、そのノード情報が削除されたエントリEが含まれているテーブルを選び(ステップS95)、その選んだテーブルに含まれている(ノード情報が削除された)エントリEに対して新たなノード情報の記述処理を実行し(ステップS91)、上記図8(a)ステップS3の処理に移行する。
一方、上記ステップS92の判定において、空いているエントリEが存在しているときは(ステップS92;YES)、その空いているエントリEが1個か否かを次に確認する(ステップS94)。
そして、当該空いているエントリEが1個であるときは(ステップS94;YES)、上記ステップS95に移行して更にステップS91の処理を実行し、一方、当該空いているエントリEが複数個あるときは(ステップS94;NO)、当該空いているエントリEを含んでいるテーブルを例えばランダムに選択し(ステップS96)、その選択したテーブルに含まれている空きエントリEに対して新たなノード情報の記述処理を実行し(ステップS91)、上記図8(a)ステップS3の処理に移行する。
一方、ステップS22にて、多重化されているときは(ステップS22;NO)、現在エントリEに記述されているノード情報を削除(ステップS90)し、エントリEに対して新たなノード情報の記述処理を実行して(ステップS91)、上記図8(a)ステップS3の処理に移行する。
次に、上記ステップS5としての第3実施形態に係るメッセージ転送処理について、具体的に図18を用いて説明する。なお、図18は当該メッセージ転送処理を示すフローチャートである。
図18に示すように、当該メッセージ転送処理としては、何らかのメッセージを受信した場合(図8(a)ステップS4;YES参照)、先ず、第1又は第2実施形態の場合と同様に、自身が記憶しているメインテーブルMR内において次の転送先となるエントリを探索する(ステップS10)。
そして、当該探索処理の過程において自身がルートノードであることが判明したか否かを確認し(ステップS11)、自身がルートノードであるときは(ステップS11;YES)、もはや転送先のノードNは存在しないこととなるので、そのメッセージに対応する処理を実行して上記ステップS6の処理に移行する。
一方、ステップS11の判定において、自身がルートノードではないときは(ステップS11;NO)、次に、当該探索処理の過程において指定されたノードIDに相当する転送先が属するエントリEが多重化されているか否かを確認し(ステップS70)、多重化されていない場合は(ステップS70;NO)、当該転送先が属するエントリEが空いているか否かを確認する(ステップS71)。そして、当該転送先が属するエントリEが空いている(ノード情報が記述されていない)ときは(ステップS71;YES)、次の転送先を探索すべく上記ステップS10に戻る。
他方、上記ステップS71の判定において、当該エントリEが空ではなくノード情報が記述されているときは(ステップS71;NO)、そのエントリEを探索結果として選択し(ステップS75)、その探索結果を用いて当該受信したメッセージを転送し(ステップS12)、その転送が成功したか否かを確認する(ステップS13)。
ステップS13の確認において、当該転送が成功したときは(ステップS13;YES)、そのまま上記図8(a)ステップS6に移行し、一方、例えば転送先のノードNが配信システムSから脱退していた等の理由により当該転送が成功しなかった場合は(ステップS13;NO)、その転送が成功しなかった転送先のノードNを示すノード情報をルーティングテーブルから削除する処理を行い(ステップS76)、上記ステップS10に戻って当該削除処理(ステップS76)後のルーティングテーブル内において次の転送先のノードを再度探索する。
一方、上記ステップS70の確認において、指定されたノードIDに相当する転送先が属するエントリEが多重化されている場合は(ステップS70;YES)、次に当該多重化されているエントリEのいずれかにノード情報が記述されているか否かを確認する(ステップS72)。そして、当該いずれのエントリE内にもノード情報が記述されていないときは(ステップS72;NO)、再度上記ステップS10に戻って次の転送先のノードを探索する。
他方、ステップS72の確認において、いずれかのエントリE内にノード情報が記述されているときは(ステップS72;YES)、そのノード情報が記述されているエントリEの数が「1」であるか否かを確認し(ステップS73)、当該数が「1」であるときは(ステップS73;YES)、その空のエントリEを選択して(ステップS75)、上記ステップS12以降の処理に移行する。
また、ステップS73の確認において、当該数が「1」でなく「2」以上であるときは(ステップS73;NO)、その複数ある空のエントリEの中から一つを例えばランダムに選択し(ステップS74)、上記ステップS12以降の処理に移行する。
以上夫々説明したように、第3実施形態に係るルーティングテーブルに係る処理によれば、参照順が予め設定されていないルーティングテーブルを用いることで、上記第1実施形態又は第2実施形態と同様の効果を簡易な処理で実現することができる。
なお、上述した図8乃至図14並びに図17及び図18に夫々示すフローチャートに対応するプログラムを、フレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、又はインターネット等を介して取得して記録しておき、これらを汎用のコンピュータで読み出して実行することにより、当該コンピュータを実施形態に係るノードN内の制御部11として夫々機能させることも可能である。
以上夫々説明したように、本発明はネットワークを介したコンテンツの配信の分野に利用することが可能であり、特にダウンロード形式によるコンテンツの配信の分野に適用すれば特に顕著な効果が得られる。
実施形態に係る配信システムにおける各ノードの接続態様の一例を示す図である。 実施形態に係る配信システムにおけるルーティングテーブルが作成される様子の一例を示す図であり、(A)はその第一例を示す図であり、(B)はその第二例を示す図であり、(C)はその第三例を示す図である。 実施形態に係る配信システムにおいて実際に作成されたルーティングテーブルの一例を示す図であり、(A)はその第一例を示す図であり、(B)はその第二例を示す図であり、(C)はその第三例を示す図であり、(D)はその第四例を示す図である。 実施形態に係る配信システムにおけるパブリッシュメッセージの流れの一例を示す概念図である。 第1実施形態に係るノードの概要構成を示すブロック図である。 第1実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図(I)である。 第1実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図(II)である。 第1実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート(I)であり、(a)は一般的な処理を示すフローチャートであり、(b)はメッセージ転送処理を示すフローチャートである。 第1実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート(II)であり、(a)はテーブルからの削除処理を示すフローチャートであり、(b)は非多重化ポイントからの削除処理を示すフローチャートである。 第1実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート等であり、(a)は多重化ポイントからの削除処理を示すフローチャートであり、(b)その概念図である。 第1実施形態に係るノードに記憶されているルーティングテーブルへの登録処理を示すフローチャートである。 第1実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート(III)であり、(a)は非多重化ポイントへの登録処理を示すフローチャートであり、(b)は多重化ポイントへの登録処理を示すフローチャートである。 第1実施形態に係るノードに記憶されているルーティングテーブルに置ける登録位置の取得処理を示すフローチャートである。 第1実施形態に係るノードに記憶されているルーティングテーブルに対する処理を示すフローチャート等であり、(a)は登録座標の取得処理を示すフローチャートであり、(b)その概念図である。 第1実施形態に係るノードに記憶されているルーティングテーブルの更新処理を示す模式図である。 第2実施形態に係るノードに記憶されているルーティングテーブルの概要構成を示す模式図である。 第3実施形態に係るノードに記憶されているルーティングテーブルへの登録処理を示すフローチャートである。 第3実施形態に係るメッセージ転送処理を示すフローチャートである。
符号の説明
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S 配信システム
N ノード
RT、RRT ルーティングテーブル
MR メインテーブル
R1、R2、R3、RR1、RR2、RR3 サブテーブル
E、ME1、R1E1、R2E1、R3E1、RR1E1、RR2E1、RR3E1 エントリ

Claims (13)

  1. 相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において、
    前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶するノード識別情報記憶手段と、
    記憶されている各前記ノード識別情報を参照して前記授受に用いる参照手段と、
    を備え、
    前記ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされていることを特徴とするノード装置。
  2. 請求項1に記載のノード装置において、
    前記ノード識別情報記憶手段においては、前記樹形図における前記階層が下位になるに従って、当該階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が減少していることを特徴とするノード装置。
  3. 請求項1又は2に記載のノード装置において、
    前記参照手段は、一つの前記ノードグループに分類されている各前記ノード装置に夫々対応する前記ノード識別情報を、予め設定された参照順に従って順次参照して前記情報の授受に用いることを特徴とするノード装置。
  4. 請求項3に記載のノード装置において、
    各前記階層における前記記憶可能数は、前記参照順に指数関数的に減少していることを特徴とするノード装置。
  5. 請求項3又は4に記載のノード装置において、
    前記記憶可能数が、予め設定された単位時間当たりに前記ネットワークから前記ノード装置が脱退する数に対応して各階層毎に予め定められていることを特徴とするノード装置。
  6. 請求項3から5のいずれか一項に記載のノード装置において、
    前記参照手段は、一の前記ノードグループに分類されている前記ノード識別情報を参照した場合において当該参照したノード識別情報を前記授受に用いることが不能であるとき、前記参照順において前記一のノード識別情報の次に参照されるべき他の前記ノード識別情報を参照して前記授受に用いることを特徴とするノード装置。
  7. 請求項3から6のいずれか一項に記載のノード装置において、
    前記授受に用いることが不能である前記ノード識別情報である不能ノード識別情報があるとき、当該不能ノード識別情報を前記ノード識別情報記憶手段から削除する削除手段と、
    一の前記ノードグループにおける前記参照順において前記不能ノード識別情報の直近下位の順位にあった前記ノード識別情報の当該順位を、削除された前記不能ノード識別情報に対応していた前記参照順における順位とする順位変更手段と、
    を備えることを特徴とするノード装置。
  8. 請求項3から7のいずれか一項に記載のノード装置において、
    一の前記ノードグループにおける前記参照順内のいずれかの順位に対応すべき新たな前記ノード識別情報があるとき、当該新たなノード識別情報が対応すべき前記順位にそれまで対応していた前記ノード識別情報が対応する新たな前記順位を、前記新たなノード識別情報が対応すべき前記順位より下位の前記順位とする順位変更手段を備えることを特徴とするノード装置。
  9. 請求項3から8のいずれか一項に記載のノード装置において、
    前記参照順は、参照されるべき前記ノード識別情報により識別される前記ノード装置との間の前記授受の際に要する負荷が低い当該ノード識別情報ほど先に参照される参照順であることを特徴とするノード装置。
  10. 請求項3から8のいずれか一項に記載のノード装置において、
    前記参照順は、各前記ノード識別情報により識別される前記ノード装置から前記ネットワークを介していずれかのメッセージを受信した順番に対応していることを特徴とするノード装置。
  11. 請求項3から8のいずれか一項に記載のノード装置において、
    前記参照順は、前記授受される情報を識別する情報識別情報と、当該情報識別情報により識別される前記情報を蓄積している前記ノード装置の前記ネットワーク内の位置を示すアドレス情報と、の対により構成される対情報の記憶数に対応していることを特徴とするノード装置。
  12. 相互に情報の授受を行うように接続された複数のノード装置により形成されているネットワークに含まれている当該ノード装置であって、他の前記ノード装置から識別するための固有のノード識別情報を各々に有し且つ前記ネットワークを階層的に樹形図状に区分して得られるノードグループのいずれかに分類されているノード装置において実行される情報処理方法において、
    前記ノード装置は、前記授受に係る他の前記ノード装置夫々に対応する複数の前記ノード識別情報を記憶するノード識別情報記憶手段を備え、
    当該ノード識別情報記憶手段においては、前記樹形図における最上位階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数が、当該最上位階層以外の他のいずれか一の前記階層に属する前記ノード装置に対応する前記ノード識別情報の記憶可能数以上とされており、
    記憶されている各前記ノード識別情報を参照して前記授受に用いる参照行程を含むことを特徴とする情報処理方法。
  13. コンピュータを、請求項1から11のいずれか一項に記載のノード装置として機能させることを特徴とするノード装置用プログラム。
JP2006125030A 2006-04-28 2006-04-28 ノード装置、情報処理方法及びノード装置用プログラム Active JP4670726B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006125030A JP4670726B2 (ja) 2006-04-28 2006-04-28 ノード装置、情報処理方法及びノード装置用プログラム
PCT/JP2007/055702 WO2007125698A1 (ja) 2006-04-28 2007-03-20 ノード装置、情報処理方法及びノード装置用プログラムが記録された記録媒体
US12/232,599 US8514742B2 (en) 2006-04-28 2008-09-19 Node device, information process method, and recording medium recording node device program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006125030A JP4670726B2 (ja) 2006-04-28 2006-04-28 ノード装置、情報処理方法及びノード装置用プログラム

Publications (2)

Publication Number Publication Date
JP2007300271A JP2007300271A (ja) 2007-11-15
JP4670726B2 true JP4670726B2 (ja) 2011-04-13

Family

ID=38655234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006125030A Active JP4670726B2 (ja) 2006-04-28 2006-04-28 ノード装置、情報処理方法及びノード装置用プログラム

Country Status (3)

Country Link
US (1) US8514742B2 (ja)
JP (1) JP4670726B2 (ja)
WO (1) WO2007125698A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996726B2 (en) * 2008-06-19 2015-03-31 Qualcomm Incorporated Methods and apparatus for event distribution and routing in peer-to-peer overlay networks
JP6984097B2 (ja) * 2014-02-19 2021-12-17 レベル スリー コミュニケーションズ,エルエルシー エッジプロキシを持つコンテンツデリバリネットワークアーキテクチャ
RU2717909C2 (ru) * 2015-08-12 2020-03-26 Филипс Лайтинг Холдинг Б.В. Экологически чистый источник энергии для плотных больших сетей (масштабирование прокси-таблицы)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101253A1 (en) * 2001-11-29 2003-05-29 Takayuki Saito Method and system for distributing data in a network
JP2005353039A (ja) * 2004-04-16 2005-12-22 Microsoft Corp データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング
JP2006101277A (ja) * 2004-09-30 2006-04-13 Brother Ind Ltd 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3372455B2 (ja) * 1997-07-03 2003-02-04 富士通株式会社 パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
EP1293063A2 (en) * 2000-06-14 2003-03-19 Coreexpress, Inc. Route selection within a network with peering connections
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
JP3696806B2 (ja) * 2001-06-19 2005-09-21 富士通株式会社 通信性能測定装置
JP3925188B2 (ja) * 2001-12-20 2007-06-06 日本電気株式会社 アプリケーションレイヤ・マルチキャスト方法及び中継ノードシステム
US7194002B2 (en) * 2002-02-01 2007-03-20 Microsoft Corporation Peer-to-peer based network performance measurement and analysis system and method for large scale networks
JP2004265273A (ja) 2003-03-04 2004-09-24 Yokogawa Electric Corp 情報共有システム
US7558875B2 (en) * 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
US7324824B2 (en) * 2003-12-09 2008-01-29 Awarepoint Corporation Wireless network monitoring system
KR100703726B1 (ko) * 2004-12-11 2007-04-05 삼성전자주식회사 모바일 애드 혹 네트워크 환경에서 이웃 노드 관리 및라우팅 경로 설정 방법 및 이를 이용한 네트워크 장치
JP4622546B2 (ja) * 2005-01-31 2011-02-02 パナソニック株式会社 通信方法及び無線通信装置
US20070230468A1 (en) * 2006-03-31 2007-10-04 Matsushita Electric Industrial Co., Ltd. Method to support mobile devices in a peer-to-peer network
US7881223B2 (en) * 2006-03-31 2011-02-01 Panasonic Corporation Method for on demand distributed hash table update
US8041942B2 (en) * 2006-09-05 2011-10-18 Panasonic Corporation Robust peer-to-peer networks and methods of use thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101253A1 (en) * 2001-11-29 2003-05-29 Takayuki Saito Method and system for distributing data in a network
JP2005353039A (ja) * 2004-04-16 2005-12-22 Microsoft Corp データオーバーレイ、自己編成メタデータオーバーレイおよびアプリケーションレベルマルチキャスティング
JP2006101277A (ja) * 2004-09-30 2006-04-13 Brother Ind Ltd 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等

Also Published As

Publication number Publication date
JP2007300271A (ja) 2007-11-15
US20090028070A1 (en) 2009-01-29
US8514742B2 (en) 2013-08-20
WO2007125698A1 (ja) 2007-11-08

Similar Documents

Publication Publication Date Title
JP4862463B2 (ja) 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4375303B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
US8195764B2 (en) Information delivery system, delivery request program, transfer program, delivery program, and the like
US8713145B2 (en) Information distribution system, information distributing method, node, and recording medium
JP2007280303A (ja) 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
US7853718B2 (en) Information delivery system, reregistration message sending method, node device, and recording medium recording node processing program
JP2010028551A (ja) コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法
JP2006191489A (ja) ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
JP2008129694A (ja) 情報配信システム、情報配信方法、配信装置及びノード装置等
JP4670726B2 (ja) ノード装置、情報処理方法及びノード装置用プログラム
US8332463B2 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP4779733B2 (ja) 配信システム及び配信システム制御方法、蓄積装置及び蓄積装置用プログラム並びにノード装置及びノード装置用プログラム
JP4622755B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
JP4735371B2 (ja) 配信システム、制御装置及び制御装置用プログラム、管理装置及び管理装置用プログラム、補助装置及び補助装置用プログラム並びに配信システム制御方法
JP4797679B2 (ja) コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
JP4623030B2 (ja) ツリー型放送システム、接続先決定方法、接続管理装置、及び接続管理処理プログラム等
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2010039722A (ja) ノード装置、管理ノード装置、ノード処理プログラム、管理ノード処理プログラム、コンテンツ分散保存システム、複製データ取得方法
JP2008059398A (ja) 識別情報割当装置及びその情報処理方法並びにそのプログラム
JP5218356B2 (ja) 情報通信システム、情報通信方法、サポート装置及び情報通信処理プログラム
JP2009230573A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP2008181408A (ja) 通信システム、稼動制御方法、ノード装置及びノード処理プログラム
JP2009247015A (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090402

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: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110103

R150 Certificate of patent or registration of utility model

Ref document number: 4670726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3