(57)【要約】【課題】コンテンツの要求メッセージの伝搬範囲を抑える。【解決手段】通信装置は、キーワードと複数の出力先との対応関係を記憶する記憶部と、キーワード及び被分配値を含むコンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定する決定部と、所定の分配ルールに従って前記被分配値を前記複数の出力先に分配する分配部と、前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たな被分配値として含まれた前記コンテンツ要求メッセージを送信する送信部と、を含む。【選択図】図８
2019029930.tif 000002
【特許請求の範囲】
【請求項１】
キーワードと複数の出力先との対応関係を記憶する記憶部と、
キーワード及び被分配値を含むコンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定する決定部と、
所定の分配ルールに従って前記被分配値を前記複数の出力先に分配する分配部と、
前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たな被分配値として含まれた前記コンテンツ要求メッセージを送信する送信部と、
を含む通信装置。
【請求項２】
前記被分配値は前記キーワードに対応するコンテンツの数量を示す値であり、
前記コンテンツ要求メッセージの各出力先に分配された値に応じた数量のコンテンツを前記各出力先から受信し、前記各出力先から受信されたコンテンツを前記コンテンツ要求メッセージの送信元へ向けて送信する中継部
をさらに含む請求項１に記載の通信装置。
【請求項３】
前記分配部は、前記複数の出力先に対して決められた所定の割合で前記被分配値を分配する
請求項１又は２に記載の通信装置。
【請求項４】
前記分配部は、前記複数の出力先のそれぞれが有するリンク速度の割合に従って前記被分配値を分配する
請求項１又は２に記載の通信装置。
【請求項５】
前記キーワードを含むメッセージを前記決定部によって決定された各出力先から送信するとともに、前記各出力先から前記キーワードに対応するコンテンツの数量を含む前記メッセージの応答メッセージを受信して前記メッセージの送信元へ向けて転送する転送制御部
をさらに含む請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
指定ホップ数をさらに含む前記メッセージが受信された場合に、前記指定ホップ数の値を減算又は加算する処理と、減算又は加算結果が所定値となる場合に前記メッセージの送信を停止し、前記減算又は加算結果が所定値とならない場合に前記キーワードを含むとともに前記減算又は加算結果が新たな指定ホップ数に設定された前記メッセージを前記判定部によって決定された各出力先に送信する処理を前記転送制御部は行う
請求項５に記載の通信装置。
【請求項７】
キーワードと複数の出力先との対応関係を記憶し、
キーワード及び被分配値を含むコンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定し、
所定の分配ルールに従って前記被分配値を前記複数の出力先に分配し、
前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たな被分配値として含まれた前記コンテンツ要求メッセージを送信する
ことを含む通信装置の通信制御方法。
【請求項８】
キーワード及びコンテンツの数量を示す値を含むコンテンツ要求メッセージの生成部と、
前記コンテンツ要求メッセージをネットワークへ送信する送信部と、
前記コンテンツの数量を示す値に応じた数量を有するとともに前記キーワードに対応するコンテンツを前記ネットワークから受信する受信部と
を含む通信装置。
【請求項９】
前記送信部は、前記コンテンツ要求メッセージを送信する前に、前記キーワードを含むメッセージを前記ネットワークへ送信し、
前記受信部は、前記キーワードを含むコンテンツの数量を示す情報を含む前記メッセージの応答メッセージを前記ネットワークから受信する
請求項８に記載の通信装置。
【請求項１０】
前記メッセージが中継される毎に減算又は加算され、減算又は加算結果が所定値になった場合に前記メッセージの中継を停止する処理に用いる指定ホップ数をさらに含む前記メッセージを前記送信部は送信する
請求項９に記載の通信装置。
【請求項１１】
前記生成部は、前記ネットワークに係る負荷情報に基づいて前記コンテンツ要求メッセージに含める前記コンテンツの数量を示す値を決定する
請求項８から１０のいずれか１項に記載の通信装置。
【請求項１２】
キーワード及びコンテンツの数量を示す値を含む第１装置からのコンテンツ要求メッセージを中継する複数の中継装置と、
前記キーワードに対応するコンテンツを有する複数の第２装置とを含み、
前記複数の中継装置のそれぞれは、
キーワードと第２装置へ向かう複数の出力先との対応関係を記憶する記憶部と、
前記コンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定する決定部と、
所定の分配ルールに従って前記コンテンツの数量を示す値を前記複数の出力先に分配する分配部と、
前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たなコンテンツの数量を示す値として含まれた前記コンテンツ要求メッセージを送信する送信部と、
前記コンテンツ要求メッセージの各出力先に分配された値に応じた数量のコンテンツを前記各出力先から受信し、前記各出力先から受信されたコンテンツを前記第１装置へ向けて送信する中継部と、を含み、
前記複数の第２装置のそれぞれは、
前記コンテンツ要求メッセージ中のコンテンツの数量を示す値に応じた数量を有するともに前記キーワードに対応するコンテンツを複数のコンテンツの中から所定の選択ルールを用いて選択する処理部を含む
通信システム。
【請求項１３】
前記処理部は、前記キーワードに対応するコンテンツをランダムに選択する
請求項１２に記載の通信システム。
【請求項１４】
前記処理部は、前記キーワードに対応するコンテンツを前記キーワードとの相関度に基づき選択する
請求項１２に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置，及び通信装置の通信制御方法に関する。
【背景技術】
【０００２】
Information-Centric Networking（ＩＣＮ）と呼ばれる新しいネットワークアーキテクチャが注目されつつある。ＩＣＮではネットワークを介してコンテンツを得る場合に、取得を要求するコンテンツを名前（コンテンツ名）で指定したコンテンツ要求メッセージをネットワークへ送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２７４７３７号公報
【特許文献２】特開２０１０−６２６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンテンツ名が不明である場合に、コンテンツの要求元がキーワードを含むコンテンツの要求メッセージをネットワークへ送信することが考えられる。この場合、ネットワークにおいて要求メッセージを中継する中継ノードは、キーワードに対応するコンテンツの存在場所へ向かう経路情報を有し、経路情報に基づいて要求メッセージを転送する。
【０００５】
コンテンツの存在場所は、要求メッセージの受信に応じて、キーワードに対応するコンテンツを含む応答メッセージをコンテンツの要求元へ向けて送信する。応答メッセージは、要求メッセージの経路を逆に辿って要求元に受信される。
【０００６】
キーワードに対応するコンテンツの存在場所がネットワーク上に多数存在し、各中継ノードの経路テーブルに各存在場所に向かう複数の経路情報（分岐する経路情報）が登録される場合があり得る。この場合、１つの要求メッセージが各中継ノードで分岐して広範囲に拡散することで、ネットワーク上に大量のトラフィックが発生するという問題が起こり得る。
【０００７】
本発明は、コンテンツ要求メッセージの伝搬範囲やトラフィック量を抑えることのできる通信装置及び通信装置の通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様は、キーワードと複数の出力先との対応関係を記憶する記憶部と、キーワード及び被分配値を含むコンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定する決定部と、所定の分配ルールに従って前記被分配値を前記複数の出力先に分配する分配部と、前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たな被分配値として含まれた前記コンテンツ要求メッセージを送信する送信部と、を含む通信装置である。
【０００９】
他の態様は、上記した通信装置と同様の特徴を有する通信装置の通信制御方法、キーワードに対応するコンテンツを有する装置や方法、コンテンツ要求メッセージを送信するコンテンツの要求元の装置や方法などを含む。
【発明の効果】
【００１０】
一側面では、コンテンツ要求メッセージの伝搬範囲やトラフィック量を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】図１はＩＣＮが適用された通信システムの一例を示す。
【図２】図２は参考例の説明図である。
【図３】図３は実施形態に係る通信システムの構成例を示す。
【図４】図４はノードとして動作可能な通信装置の構成例を示す。
【図５】図５はコンテンツの要求メッセージのフォーマット例を示す。
【図６】図６は要求メッセージに対する応答メッセージのフォーマット例を示す。
【図７】図７は動作例１の説明図である。
【図８】図８は動作例１を説明するシーケンス図である。
【図９】図９は動作例２の説明図である。
【図１０】図１０は動作例２を説明するシーケンス図である。
【図１１】図１１は動作例３の説明図である。
【図１２】図１２は動作例３を説明するシーケンス図である。
【図１３】図１３は、動作例３におけるリクエスタの処理例を示すフローチャートである。
【図１４】図１４は、変形例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施形態に係る通信装置は、例えば、キーワードと複数の出力先との対応関係を記憶する記憶部と、キーワード及び被分配値を含むコンテンツ要求メッセージが受信された場合に、前記対応関係に基づいて前記コンテンツ要求メッセージの出力先を決定する決定部を含む。前記通信装置は、さらに、所定の分配ルールに従って前記被分配値を前記複数の出力先に分配する分配部を含む。前記通信装置は、さらに、前記複数の出力先のうち前記分配部によって分配された値が所定値を下回る出力先以外の出力先から、分配された値が新たな被分配値として含まれた前記コンテンツ要求メッセージを送信する送信部を含む。
【００１３】
通信装置によれば、コンテンツ要求メッセージの複数の出力先が決定され、各出力先に被分配値が分配された結果において、分配された値が所定値を下回る出力先からコンテンツ要求メッセージが送信されない。よって、コンテンツ要求メッセージの伝搬範囲が抑えられるともに、トラフィック量が抑えられる。これによって、ネットワークに過大な負荷がかかるのを回避できる。また、ネットワークリソースの有効利用を図ったり、要求メッセージの送信が他のトラフィックに影響を与えるのを回避したりすることができる。所定値は例えば正の整数である。例えば、分配される値が０の場合（所定値＝１を下回る）に送信が停止されるようにする。
【００１４】
前記被分配値は、コンテンツ要求メッセージの伝搬範囲の規制によるトラフィック量削減を目的として使用される場合、被分配値自体に意味がなくてもよい。もっとも、被分配値は、例えば、前記キーワードに対応するコンテンツの数量を示す値としても良い。この場合、例えば、通信装置が前記コンテンツ要求メッセージの各出力先に分配された値に応じた数量のコンテンツを前記各出力先から受信し、前記各出力先から受信されたコンテンツを前記コンテンツ要求メッセージの送信元へ向けて送信する中継部をさらに含む構成を採用しても良い。
【００１５】
上記構成が採用される場合、キーワードに対応するコンテンツを有する装置が、コンテンツの数量を示す値に応じた数量のコンテンツをコンテンツ要求メッセージへ向けて送信するように、コンテンツを有する装置を制御できる。これによって、コンテンツの要求メ
ッセージの要求元へ送信されるコンテンツの数量を規制（制限）でき、コンテンツの送信によって発生するトラフィック量を抑えることができる。また、コンテンツの要求元の処理負荷を抑止し、一定時間以内でコンテンツの収集結果や演算結果を得ることができる。「コンテンツの数量」は、コンテンツの数及び量の少なくとも一方を示す。コンテンツの量は、コンテンツのデータ量（データサイズ）であり、例えばバイト数やビット数で表現し得る。コンテンツの数やバイト数をまとめて「要求数」と呼ぶこともある。
【００１６】
通信装置が適用する分配ルールは適宜選択できる。例えば、通信装置に含まれる前記分配部は、例えば、前記複数の出力先に対して決められた所定の割合で前記被分配値を分配してもよい。或いは、前記分配部は、前記複数の出力先のそれぞれが有するリンク速度の割合に従って前記被分配値を分配してもよい。
【００１７】
通信装置は、以下のような転送制御部をさらに含んでもよい。転送制御部は、前記キーワードを含むメッセージを前記決定部が決定した各出力先から転送する。また、転送制御部は、前記各出力先から前記キーワードに対応するコンテンツの数量を含む前記メッセージの応答メッセージを受信し前記メッセージの送信元へ向けて転送する。上記構成が採用される場合、コンテンツ要求メッセージの送信元は、コンテンツ要求メッセージの送信前に、上記メッセージを送信して、コンテンツ要求メッセージの送信によって得られるコンテンツの数量を知ることができる。コンテンツの数量に応じて被分配値（コンテンツの数量を示す値）を設定できる。
【００１８】
前記メッセージは、指定ホップ数をさらに含むことができる。指定ホップ数は、前記メッセージの中継が許容される回数を示す。この場合、転送制御部は、前記メッセージを受信した場合に、前記指定ホップ数の値を減算又は加算する。また、転送制御部は、減算又は加算結果が所定値となる場合に前記メッセージの送信を停止する。また、転送制御部は、前記減算又は加算結果が所定値とならない場合に前記キーワードを含むとともに前記減算又は加算結果が新たな指定ホップ数に設定された前記メッセージを前記判定部によって決定された各出力先から送信する。指定ホップ数を用いて転送制御部が上記処理を行うことで前記メッセージの伝搬範囲を規制して、トラフィック量が徒に増加するのを回避することができる。
【００１９】
また、コンテンツ要求メッセージの送信元となる通信装置は、以下の構成を採用することができる。すなわち、通信装置は、キーワード及びコンテンツの数量を示す値を含むコンテンツ要求メッセージをネットワークへ送信する送信部を含む。さらに、通信装置は、前記コンテンツの数量を示す値に応じた数量を有するとともに前記キーワードに対応するコンテンツを前記ネットワークから受信する受信部を含む。上記構成によれば、コンテンツの数量が指定されることで、その数量以上のコンテンツに係るトラフィックが生じるのを回避することができる。すなわち、トラフィック量を抑えることができる。
【００２０】
コンテンツ要求メッセージの送信元となる通信装置に関して、さらに、以下の構成を採用できる。前記送信部は、前記コンテンツ要求メッセージを送信する前に、前記キーワードを含むメッセージを前記ネットワークへ送信する。前記受信部は、前記キーワードを含むコンテンツの数量を示す情報を含む前記メッセージの応答メッセージを前記ネットワークから受信する。このような構成を採用することで、キーワードに対応するコンテンツの数量を事前に知ることができ、トラフィック量が抑えられるように、コンテンツの数量の指定を行うことができる。
【００２１】
また、前記メッセージが中継される毎に減算又は加算され、減算又は加算結果が所定値になった場合に前記メッセージの中継を停止する処理に用いる指定ホップ数をさらに含む前記メッセージを前記送信部は送信する構成を採用してもよい。この場合、前記メッセー
ジの伝搬範囲を抑えて、前記メッセージの転送に係るトラフィック量を抑えることができる。
【００２２】
以下、図面を参照して、実施形態に係る通信装置，及び通信装置の通信制御方法について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。図１は、ＩＣＮが適用された通信システムの一例を示す。通信システムは、ネットワーク１に接続される端末（クライアント）２と、サーバ３とを含む。ネットワーク１は、複数のネットワークノード４（以下「ノード４」）を含む。
【００２３】
サーバ３は、情報提供者から得られたコンテンツを記憶している。端末２は情報要求者の端末であり、コンテンツの取得を所望している。ＩＣＮでは、コンテンツの要求メッセージ（Interestと呼ばれる）において、取得を希望するコンテンツの名前を指定する。図１の例では、コンテンツ名は“/fj/video1”であり、要求メッセージにコンテンツ名が含まれる。
【００２４】
端末２からの要求メッセージは、ネットワーク１を形成するノード４によって中継され、サーバ３に到達する。要求メッセージを受信したサーバ３はコンテンツを含む応答メッセージ（Dataと呼ばれる）を端末２宛てに送信する。複数のノード４のうち、コンテンツを中継するノード４は、キャッシュメモリを有し、コンテンツのコピーをキャッシュメモリに記憶する。
【００２５】
コンテンツの要求メッセージ（Interest）に含まれるコンテンツ名（図１では "/fj/video1"）については、下記を前提とする。
・コンテンツ名は、コンテンツ（例：データ、ファイル等）の名前を表す。例えば、コンテンツ名は階層構造で定義される。
・特定の１つのコンテンツに対するコンテンツ名はネットワーク上で一意だが、そのコンテンツのキャッシュ（コピー）が複数の場所にある可能性がある。
【００２６】
ＩＣＮでは、サーバ３がコンテンツ名をネットワーク１に広告し、各ノード４がコンテンツ名による経路テーブルを作成する。経路テーブルの作成によって、コンテンツ名による要求メッセージのルーティングが可能となる。
【００２７】
ＩＣＮに準拠又は適合するネットワーク１において、コンテンツ名を指定した要求メッセージがルーティングされる場合に、経路上のノード４に指定されたコンテンツのキャッシュ（コピー）が記憶されている場合がある。この場合、ノード４は要求メッセージにより要求されたコンテンツのコピーを要求メッセージの送信元に送信し、要求メッセージをサーバ３へ向けて転送しない。
【００２８】
図１では、サーバ３にコンテンツのオリジナルがあり、コンテンツのキャッシュ（コピー）がネットワーク１内のノード４にあるケースを示す。この場合、コンテンツのコピーを有するノード４は、情報要求者からの当該のコンテンツ名を指定したコンテンツ要求に対し、コンテンツのコピーを含む応答メッセージを生成して要求元に送信する。
【００２９】
コンテンツ名が判明している場合に、クライアントはＩＣＮを用いてコンテンツを取得することができる。目的のコンテンツ名が不明である場合、取得を所望するコンテンツに関連した情報、例えばキーワードを用いてコンテンツ名を特定する。実施形態では、一例として、コンテンツ名の探索用のキーワードを指定し、関連するコンテンツを一括して取得する方法について説明する。
【００３０】
実施形態に係る通信制御方法を用いたコンテンツ収集方法の適用先としては、例えば、
Internet of Things（ＩｏＴ）の分野において、特定の条件にマッチするセンサデータを一括して収集することが考えられる。例えば、或る地域内にある各地点の降水量情報を一括して収集することが考えられる。或いは、多数のセンサデータから集めた情報により最大値、最小値、平均値等を導出することが考えられる。例えば、或る地域内にある温度センサの情報から上記或る地域における最大温度を抽出する場合が考えられる。
【００３１】
＜参考例＞
実施形態の説明の前に、参考例について説明する。参考例では、プロデューサ（コンテンツの提供者）が、保持するコンテンツのキーワードを事前にネットワークに広告し、各ノードはキーワードに基づく経路テーブルを作成する。リクエスタ（コンテンツの要求者）がキーワードを指定して要求メッセージをネットワークに送信する。すると、本要求メッセージはキーワードを基にルーティングされてプロデューサに届く。プロデューサは、対応するコンテンツを含む応答メッセージを送信する。応答メッセージは、要求メッセージの送信経路を逆に辿ってリクエスタに到達する。
【００３２】
図２は参考例の説明図である。キーワードとはコンテンツと関連づけられた関連語である。一般に、１つのコンテンツは複数のキーワードを持ち、逆に１つのキーワードは異なる場所にある複数のコンテンツに付与される。この場合、次のような手順でコンテンツ収集が行われる。
【００３３】
（１）プロデューサＰ１，プロデューサＰ２，プロデューサＰ３，プロデューサＰ４は、保持するコンテンツのキーワード（図２の参考例では“Ｘ”）を事前にネットワークに広告する。広告されたキーワードを受信するＮ１，ノードＮ２及びノードＮ３はキーワードに基づく経路テーブルを作成する。
【００３４】
（２）リクエスタは、指定されたキーワード“Ｘ”を含む要求メッセージを送信する。
（３）ノードＮ１，ノードＮ２及びノードＮ３は、キーワードで要求メッセージをルーティングする。要求メッセージは、“Ｘ”の広告を受信した方向と逆方向に送信される。この結果、広告の受信方向が複数ある場合、要求メッセージがコピーされ、各受信方向に対応する複数のネットワークインタフェース（Faceと呼ばれる）から送出される。最終的に、要求メッセージは、広告元である複数のプロデューサＰ１，プロデューサＰ２，プロデューサＰ３，プロデューサＰ４に届く。
【００３５】
（４）要求メッセージに対応するコンテンツ“Ｘ”を含む応答メッセージが、プロデューサＰ１，プロデューサＰ２，プロデューサＰ３，プロデューサＰ４から送信される。応答メッセージは、要求メッセージの経路を逆方向に辿り、ノードＮ１，ノードＮ２及びノードＮ３で合成されて、最終的に１つの応答メッセージとしてリクエスタに到達する。
【００３６】
上記した参考例では、１つのキーワードに合致するコンテンツの数や存在箇所が複数の場合がある。この場合に、要求メッセージの拡散範囲や到達範囲が広範となり、無駄な要求メッセージや応答メッセージのトラフィックが発生する可能性があった。
【００３７】
また、１つのキーワードに合致するコンテンツの数が複数存在する場合、膨大な数やデータ量のコンテンツをリクエスタに送信するトラフィックが発生する場合が起こり得る。このトラフィックにはリクエスタにとって無用のコンテンツを含む応答メッセージも含まれており、無駄なトラフィックである。以下に説明する実施形態では、キーワードに基づいて要求メッセージのルーティングを行うネットワークにおいて、要求メッセージの拡散範囲が無駄に広がるのを回避できる通信装置，及び通信装置の通信制御方法について説明する。
【００３８】
＜通信システムの構成＞
図３は実施形態に係る通信システムの構成例を示す。通信システムは、リクエスタ１２と、複数のプロデューサ１３と、ネットワーク１を形成する複数のノード１４とを含む。リクエスタ１２，プロデューサ１３，ノード１４のそれぞれは通信装置である。リクエスタ１２は「第１装置」の一例であり、プロデューサ１３は「第２装置」の一例であり、ノード１４は「中継装置」の一例である。
【００３９】
図３の例では、複数のプロデューサ１３の例示として、プロデューサ１３Ａと、プロデューサ１３Ｂと、プロデューサ１３Ｃと、プロデューサ１３Ｄとが例示されている。ノード１４は、要求メッセージや応答メッセージ（コンテンツ）の中継ノードとして動作する。
【００４０】
プロデューサ１３は、単数又は複数のコンテンツを有することができる。図３の例では、プロデューサ１３Ａと、プロデューサ１３Ｂと、プロデューサ１３Ｃと、プロデューサ１３Ｄとは、キーワード“Ｘ”に対応する複数種類のコンテンツを有している。キーワード“Ｘ”に対応する複数のコンテンツはプロデューサ１３間で同一であっても異なっていてもよい。
【００４１】
プロデューサ１３Ａ，プロデューサ１３Ｂ，プロデューサ１３Ｃ及びプロデューサ１３Ｄのそれぞれは、キーワード“Ｘ”の広告メッセージをネットワーク１へ送信する。広告メッセージはノード１４によって中継され、ネットワーク１内で伝搬する。広告メッセージを受信するノード１４は、広告メッセージを受信した通信インタフェース（以下、「フェイス（Face）」という）とキーワードとの対応関係を経路テーブルに登録する（学習する）。
【００４２】
要求メッセージは、例えば、他のノードと接続されたフェイスに転送される。その結果、図３では、ノード１４ａ，ノード１４ｂ，ノード１４ｃの経路テーブルにキーワード“Ｘ”とキーワード“Ｘ”に対応する出力先の通信インタフェースとの対応関係を示すエントリが登録される。図３には、ノード１４ａが有する経路テーブルが図示されており、キーワード“Ｘ”についての要求メッセージを複数の出力先の一例であるフェイスＦ２及びフェイスＦ３から出力する内容が登録されている。
【００４３】
図３の例では、広告の結果として、ノード１４ａを頂点とし、各プロデューサ１３を末端とするツリーが形成されている。ツリーはリクエスタ１２から送信されるキーワード“Ｘ”を含むコンテンツの要求メッセージの伝搬経路となる。
【００４４】
＜ノードの構成例＞
図４はノード１４として動作可能な通信装置の構成例を示す。通信装置２０は、通信機能を有する情報処理装置（コンピュータ）である。通信装置２０として、サーバマシン、パーソナルコンピュータ、ワークステーションなどの専用又は汎用のコンピュータを適用することができる。但し、上記以外のコンピュータが適用される場合もあり得る。
【００４５】
通信装置２０は、バスを介して相互に接続されたＣＰＵ２１と、メモリ２２と、データ通信用の複数の通信インタフェース２５と、管理用の通信インタフェース２６とを含む。
【００４６】
メモリ２２は、主記憶装置２３と補助記憶装置２４とを含む。主記憶装置２３はプログラムの展開領域、ＣＰＵ２１の作業領域、データやプログラムの記憶領域、通信データのバッファ領域などとして使用される。主記憶装置２３は、例えばRandom Access Memory（ＲＡＭ）、ＲＡＭとRead Only Memory（ＲＯＭ）との組み合わせで形成される。
【００４７】
補助記憶装置２４はデータやプログラムの記憶領域として使用される。補助記憶装置２４は、例えば、ハードディスクドライブ（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フ
ラッシュメモリ、Electrically Erasable Programmable Read-Only Memory（ＥＥＰＲＯ
Ｍ）などの不揮発性記憶媒体で形成される。メモリ２２，主記憶装置２３，補助記憶装置２４は、「記憶装置」、「記憶媒体」、「メモリ」、「記憶部」の一例である。
【００４８】
通信インタフェース２５及び通信インタフェース２６は、パケット（データ）の送受信を司る。通信インタフェース２５及び通信インタフェース２６として、例えばネットワークインタフェースカード（ＮＩＣ）を適用できる。
【００４９】
ＣＰＵ２１は、メモリ２２に記憶されたプログラムを実行して、ノード１４としての処理を行う。例えば、ＣＰＵ２１は、プロデューサ１３からの広告メッセージを受信してフェイスとキーワードとの関係を学習し、経路テーブルに登録する処理を行う。或いは、ＣＰＵ２１は、要求メッセージの中継処理や、応答メッセージ（コンテンツ）の中継処理や、コンテンツのコピー（キャッシュ）を記憶する処理などを行う。
【００５０】
さらに、ＣＰＵ２１は、要求メッセージの受信時に対応するキャッシュが記憶されているかを確認し、キャッシュがある場合にキャッシュを要求元に送信する処理を行う。メモリ２２は、経路テーブルや、キャッシュ（コンテンツのコピー）を記憶する。メモリ２２は、「キーワードと出力先との対応関係を記憶する記憶部」の一例である。
【００５１】
ＣＰＵ２１は、「制御装置」、「制御部」、「コントローラ」、「決定部」、「分配部」、「送信部」、「中継部」、「転送制御部」の一例である。ＣＰＵ２１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ２１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。ＣＰＵ２１で行われる処理の少なくとも一部は、マルチコア又は複数のＣＰＵで実行されても良い。ＣＰＵ２１で行われる処理の少なくとも一部は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(ＤＳＰ)、Graphics Processing Unit（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。
【００５２】
また、ＣＰＵ２１によって行われる処理の少なくとも一部は、集積回路（ＩＣ）、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circuit
（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、Complex Programmable Logic Device（ＣＰＬＤ）及びField-Programmable Gate Array(ＦＰＧＡ)を含む。ＣＰＵ２１で行われる処理の少なくとも一部は、プロセッサと集積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip）、システムＬＳＩ、チップセットなどと呼ばれる。
【００５３】
また、通信装置２０は、リクエスタ１２として動作する通信装置として使用できる。この場合、ＣＰＵ２１は、プログラムの実行によって、通信装置２０がリクエスタ１２として動作するための処理を行う。例えば、コンテンツの要求メッセージを生成して送信する処理や、要求メッセージに対する応答メッセージ（コンテンツ）を受信する処理などを行う。リクエスタ１２として動作する通信装置２０のＣＰＵ２１は、「生成部」、「送信部」及び「受信部」の一例である。
【００５４】
さらに、通信装置２０は、プロデューサ１３として動作する通信装置として使用できる。この場合、ＣＰＵ２１は、プログラムの実行によって、通信装置２０がプロデューサ１３として動作するための処理を行う。例えば、コンテンツの要求メッセージを受けて、対
応するコンテンツをメモリ２２から読み出し、コンテンツを含む応答メッセージを生成して送信する処理をＣＰＵ２１は行う。或いは、コンテンツの広告メッセージを生成して送信する処理をＣＰＵ２１は行う。プロデューサ１３として動作する通信装置２０のＣＰＵ２１は、「処理部」の一例である。
【００５５】
＜メッセージフォーマット＞
次に、実施形態で使用されるメッセージのフォーマット例を説明する。図５はコンテンツの要求メッセージのフォーマット例を示す。図６は要求メッセージに対する応答メッセージのフォーマット例を示す。コンテンツの要求メッセージは、「コンテンツ要求メッセージ」、「メッセージ」の一例である。要求メッセージは、ヘッダ部と、“Ｎａｍｅ”フィールドとを含む。ヘッダ部は“Hops”フィールドと“Reqts”フィールドとを含む。
【００５６】
Hopsフィールドには、要求メッセージを中継するノード１４の数（ホップ数）を示す値（指定ホップ数の一例）が記憶される。リクエスタ１２が要求メッセージを送信する時に、所望の値をセットして送信する。値が全て“１”（all 1）である場合は、値がない（
セットされていない、no_set）こと、すなわちHopsフィールドが無効であることを意味する。Hopsフィールドの値が全て“１”の場合、要求メッセージを受信したノード１４（ＣＰＵ２１）は、Hopsフィールドの値に関する処理を行わない。
【００５７】
これに対し、Hopsフィールドの値が“all 1”以外の値（整数値）である場合には、要
求メッセージを受信したノード１４（ＣＰＵ２１）は、Hopsフィールドの値を１つ減らしてから中継を行う。従って、Hopsフィールドの値は、ノード１４で中継される毎にデクリメント（１つ減算）される。Hopsフィールドの値が０である要求メッセージを受信したノード１４は、要求メッセージの中継（転送）を行わない。
【００５８】
なお、HopsフィールドとReqtsフィールドとのいずれか一方に有効な値がセットされ、
双方に有効な値がセットされることはない。Hopsフィールドは、要求メッセージ（主としてコンテンツ数を調べる要求メッセージ）の到達範囲をホップ数で制限するために使用される。
【００５９】
Reqtsフィールドには、リクエスタ１２が要求するコンテンツの数、またはデータ量（
例えばバイト数）を示す情報（値）が記憶される。値は、例えば整数値と単位（個 or バイト）とで形成される。Reqtsフィールドの値は、「被分配値」、「キーワードに対応す
るコンテンツの数量を示す値」の一例である。
【００６０】
なお、Hopsフィールドと同様に、値が“all 1”である場合は、値がない（セットされ
ていない．no_set）こと、すなわちReqtsフィールドが無効であることを意味する。Reqtsフィールドが“all 1”である場合、ノード１４は、Reqtsフィールドの値に対する処理を行わない。
【００６１】
これに対し、Reqtsフィールドの値が“all 1”以外の値（整数値）である場合は、ノード１４（のＣＰＵ２１）は、要求メッセージを２以上のフェイス（経路）から送信する場合に、適用が決まっている分配ルールに基づいて、Reqtsフィールドの値を各フェイス（
経路）に分配する。各経路へ送信される要求メッセージ中のReqtsフィールドの値は分配
された値となる。ＣＰＵ２１は、分配の結果として割り当てられた値が所定値以下である（０の場合も含む）経路については、対応するフェイスから要求メッセージを送信しない。
【００６２】
Ｎａｍｅフィールドは、要求種別と指定キーワードとが少なくとも記述される可変長のフィールドである。要求種別と指定キーワードとは、記号“/”で区切られる。要求種別
は、“kw_contents”（キーワードに合致するコンテンツの要求）と、“kw_number”（キーワードに合致するコンテンツの数の要求）との２種類である。指定キーワードは、複数のキーワードを演算子（&, OR, etc.）で結合して表現する。Nameの表記例を以下に示す
。
（例１）
/kw_contents/?kw=printer&kw=repair
→指定キーワード"printer"及び指定キーワード"repair"にマッチするコンテンツを要求（例２）
/kw_number/?kw=tokyoORkw=osaka 
→指定キーワード"tokyo"又は指定キーワード"osaka"にマッチするコンテンツの数を要求
【００６３】
上述したように、各コンテンツの存在場所（図３の例では各プロデューサ１３）からキーワードがルーティング情報として広告され、各ノード１４はキーワードに対するルーティングテーブル（経路テーブル）を形成する。
【００６４】
各ノード１４は、要求メッセージの受信時には、Ｎａｍｅフィールドに記述された指定キーワードにマッチする出力インタフェース（フェイス）が経路テーブルの参照によって決定され、決定されたフェイスから要求メッセージが送信される。但し、指定キーワードにマッチするフェイスが経路テーブルに登録されていても、ヘッダ部の値で要求メッセージが送信されない場合がある。
【００６５】
なお、Ｎａｍｅフィールドの値はノード１４で書替えられることはない。Reqtsフィー
ルドは、要求メッセージ（主としてキーワードに合致するコンテンツの要求メッセージ）の到達範囲を、コンテンツの数、またはデータ量（バイト数）で制限するために用いる。
【００６６】
図６に示すように、応答メッセージは、ヘッダ部（Hopsフィールド及びReqtsフィール
ド）と、Ｎａｍｅフィールドと、“Content”フィールドとを含む。Contentフィールド以外（Hops, Reqts, Name）は、要求メッセージと同様であるので説明を省略する。但し、
これらのフィールドには、宛先ノードにおいて要求メッセージからコピーされた値が設定される。HopsフィールドとＮａｍｅフィールドとの各値は、リクエスタ１２へ向かう経路上のノード１４によって書替えられることはない。
【００６７】
Reqtsフィールドの値は、応答メッセージの合成に伴って、合成対象の応答メッセージ
中のReqtフィールドの値がマージされた値となる。ノード１４は、要求メッセージを受信したフェイス（送信元フェイス）を記憶しておき、応答メッセージのルーティングは、要求メッセージの送信元フェイスを出力先のフェイスとして特定することで行われる。
【００６８】
Contentフィールドは可変長のフィールドであり、コンテンツの要求（要求メッセージ
で“Name=/kw_contents/...”）に対しては、キーワードに合致するコンテンツを複数個
入れることが可能となっている。要求メッセージの宛先ノード（プロデューサ１３）が要求メッセージで要求された数のコンテンツを入れる。ノード１４では、応答メッセージがマージされる毎に、各応答メッセージのContentフィールドに入っている全コンテンツが
本フィールドにまとめられる。
【００６９】
コンテンツの数の要求（要求メッセージで“Name=/kw_number/...”）に対しては、キ
ーワードに合致するコンテンツの数が入れられる。要求メッセージの宛先ノード（プロデューサ１３）が要求メッセージで要求されたキーワードに合致するコンテンツの数を入れる。ノード１４では、応答メッセージがマージされる毎に、マージされる応答メッセージ中のコンテンツ数の和がContentフィールドに入れられる。
【００７０】
＜動作例＞
以下、実施形態に係る通信システムの動作例を説明する。
＜＜動作例１＞＞
動作例１では、ノード１４での要求数の分配ルールが「均等」であり、プロデューサ１３でのコンテンツ選択ルールが「ランダム」である。図７は動作例１の説明図であり、図８は動作例１を説明するシーケンス図である。
【００７１】
[1] 要求数の決定、要求メッセージの送信
リクエスタ１２（のＣＰＵ２１）は、収集を所望するコンテンツの数“１００”を含むコンテンツの要求メッセージをネットワークに送信する（図７（１），図８＜１＞）。この場合、要求メッセージに含まれるパラメータは、Hops=no_set、Reqts=100[個]、Name=/kw_contents/?kw=X (キーワード“Ｘ”に対応するコンテンツの取得要求)である。
【００７２】
[２] 要求数メッセージの中継
要求メッセージを受信するノード１４のＣＰＵ２１は、経路テーブルを参照して要求メッセージを送信するフェイス（通信インタフェース２５）を決定する。例えば、ノード１４ａでは、要求メッセージを送信するフェイスとして、フェイスＦ２及びフェイスＦ３が決定される。
【００７３】
要求メッセージの転送経路が分岐する場合、ＣＰＵ２１は、Reqsフィールドに設定されているコンテンツ数を各経路（フェイスＦ２及びフェイスＦ３）に均等に分割して中継する。ノード１４ａでは、コンテンツ数“１００”の要求メッセージを受信している。このため、フェイスＦ２及びフェイスＦ３のそれぞれから送出される要求メッセージ中のコンテンツ数は、分配ルール＝均等分配に従ってコンテンツ数“５０”となる（図７（２）及び（３），図８＜２＞及び＜３＞）。
【００７４】
フェイスＦ２から送出される要求メッセージはノード１４ｂに受信され、フェイスＦ３から送出される要求メッセージはノード１４ｃに受信される。ノード１４ｂでは、要求メッセージの転送先がフェイスＦ２及びフェイスＦ３に分岐する。このため、ノード１４ｂのＣＰＵ２１は、コンテンツ数“５０”を分配ルール＝均等に従ってフェイスＦ２及びフェイスＦ３に分配する。この結果、ＣＰＵ２１は、コンテンツ数が“２５”に更新された要求メッセージをフェイスＦ２及びフェイスＦ３のそれぞれから送出する（図７（４）及び（５），図８＜４＞及び＜５＞）。
【００７５】
ノード１４ｃでも、要求メッセージの転送先がフェイスＦ２及びフェイスＦ３に分岐する。このため、ノード１４ｃのＣＰＵ２１は、コンテンツ数“５０”を分配ルール＝均等に従ってフェイスＦ２及びフェイスＦ３に分配する。この結果、ＣＰＵ２１は、コンテンツ数は“２５”を含む要求メッセージをフェイスＦ２及びフェイスＦ３のそれぞれから送出する（図７（６）及び（７），図８＜６＞及び＜７＞）。
【００７６】
[３] 応答メッセージの送信、リクエスタでの受信
ノード１４ｂから送信された要求メッセージは、プロデューサ１３Ａ及びプロデューサ１３Ｂにて受信される。プロデューサ１３Ａ及びプロデューサ１３Ｂはキーワード“Ｘ”に対応するコンテンツを有しており、コンテンツはメモリ２２に記憶されている。
【００７７】
この場合、プロデューサ１３Ａ及びプロデューサ１３ＢのＣＰＵ２１は、要求メッセージで指定された数“２５”のコンテンツをコンテンツの選択ルール＝ランダムに従って、無作為に選択する。ＣＰＵ２１は、選択したコンテンツをメモリ２２から読み出し、読み出したコンテンツを含む応答メッセージを生成する。ＣＰＵ２１は、要求メッセージの受信元（ノード１４ｂ）に送信する（図７（８）及び（９），図８＜８＞及び＜９＞）。な
お、キーワード“Ｘ”に対応するコンテンツが２５個に満たない場合、対応する全てのコンテンツが応答メッセージに含められる。よって、応答メッセージに含まれるコンテンツの数は指定されたコンテンツ数に応じた数（指定されたコンテンツ数以下の数）となる。
【００７８】
ノード１４ｃから送信された要求メッセージは、プロデューサ１３Ｃ及びプロデューサ１３Ｄにて受信される。プロデューサ１３Ｃ及びプロデューサ１３ＤのＣＰＵ２１は、プロデューサ１３Ａ及びプロデューサ１３ＢのＣＰＵ２１と同様の処理を行う。この結果、ランダムに選択された２５個のコンテンツを含む応答メッセージがプロデューサ１３Ｃ及びプロデューサ１３Ｄから要求メッセージの送信元（ノード１４ｃ）に送信される（図７（１０）及び（１１），図８＜１０＞及び＜１１＞）。
【００７９】
ノード１４ｂでは、ＣＰＵ２１がプロデューサ１３Ａ及びプロデューサ１３Ｂからの応答メッセージの合成処理を行う（図８＜１２＞）。すなわち、ＣＰＵ２１は、各応答メッセージ中のコンテンツ数“２５”をマージしたコンテンツ数“５０”を含むとともに、各応答メッセージ中のコンテンツを含む応答メッセージを生成する。ＣＰＵ２１は、要求メッセージの受信元（ノード１４ａ）に送信する（図７（１２），図８＜１３＞）。
【００８０】
ノード１４ｃでは、ＣＰＵ２１がプロデューサ１３Ｃ及びプロデューサ１３Ｄからの応答メッセージの合成処理を行う（図８＜１４＞）。すなわち、ＣＰＵ２１は、各応答メッセージ中のコンテンツ数“２５”をマージしたコンテンツ数“５０”を含むとともに、各応答メッセージ中のコンテンツを含む応答メッセージを生成する。ＣＰＵ２１は、要求メッセージの受信元（ノード１４ａ）に送信する（図７（１３），図８＜１５＞）。
【００８１】
ノード１４ａでは、ＣＰＵ２１がノード１４ｂ及びノード１４ｃからの応答メッセージの合成処理を行う（図８＜１６＞）。すなわち、ＣＰＵ２１は、コンテンツ数“５０”がマージされたコンテンツ数“１００”を含み、且つ各応答メッセージ中のコンテンツを含む応答メッセージを生成し、要求メッセージの受信元（リクエスタ１２）に送信する（図７（１４），図８＜１７＞）。リクエスタ１２は、キーワード“Ｘ”に対応する１００個のコンテンツを含む応答メッセージを受信する。
【００８２】
＜＜動作例２＞＞
動作例２では、ノード１４での要求数分配ルールを「リンク速度の比率」、プロデューサでのコンテンツ選択ルールを「キーワードとの相関度」とした場合に対応する実施例である。図９は動作例２の説明図であり、図１０は動作例２を説明するシーケンス図である。
【００８３】
[１] 要求数の決定、要求メッセージの送信
リクエスタ１２がコンテンツの要求メッセージをネットワーク１に送信する（図９（１），図１０＜１＞）。要求メッセージ中のパラメータは動作例１と同じである。
【００８４】
[２] 要求数メッセージの中継
動作例２に係る通信システムにおける、各リンク速度（帯域）は図９に示す通りである。例えば、リクエスタ１２とノード１４ａとの間のリンク速度１０Mbpsであり、ノード１４ａとノード１４ｂとの間のリンク速度は１Mbpsである。
【００８５】
ノード１４ａ，ノード１４ｂ，ノード１４ｃは、要求メッセージを分岐する（複数の出力先（フェイス）から送信する）場合、コンテンツ数量をリンク速度の比率に応じて分配する。
【００８６】
例えば、ノード１４ａでは、要求メッセージ中のコンテンツ数“１００”を２つの経路
に分岐させる。２つの経路はフェイスＦ２（ノード１４への方向：１Mbps）と、フェイスＦ３（ノード１４ｃへの方向：４Mbps）である。なお、ノード１４ａ，ノード１４ｂ及びノード１４ｃは、動作例１（図７）と同様に、要求メッセージの出力先であるフェイスＦ２及びフェイスＦ３を有している（図９での図示は省略）。
【００８７】
ノード１４ａのＣＰＵ２１は、リンク速度の割合（比率）が１：４であるのに応じて、コンテンツ数“１００”のうちのコンテンツ数“２０”をフェイスＦ２に分配し、コンテンツ数“８０”をフェイスＦ３に分配する。ＣＰＵ２１は、コンテンツ数“２０”が新たなコンテンツ数としてReqtsフィールドに設定された要求メッセージをフェイスＦ２から
送信する（図９（２），図１０＜２＞）。また、ＣＰＵ２１は、コンテンツ数“８０” 
が新たなコンテンツ数としてReqtsフィールドに設定された要求メッセージをフェイスＦ
３から送信する（図９（３），図１０＜３＞）。
【００８８】
ノード１４ｂのＣＰＵ２１は、リンク速度の割合（比率）が１：４であるのに応じて、コンテンツ数“４”をフェイスＦ２に分配し、コンテンツ数“１６”をフェイスＦ３に分配する。ノード１４ｂのＣＰＵ２１は、新たなコンテンツ数を設定した要求メッセージをフェイスＦ２及びフェイスＦ３から送信する（図９（４）及び（５），図１０＜４＞及び＜５＞）。
【００８９】
ノード１４ｃのＣＰＵ２１は、リンク速度の割合（比率）が１：４であるのに応じて、コンテンツ数“１６”をフェイスＦ２に分配し、コンテンツ数“６４”をフェイスＦ３に分配する。ノード１４ｃのＣＰＵ２１は、新たなコンテンツ数を設定した要求メッセージをフェイスＦ２及びフェイスＦ３から送信する（図９（６）及び（７），図１０＜６＞及び＜７＞）。
【００９０】
[３]応答メッセージの送信、リクエスタでの受信
各プロデューサ１３のメモリ２２には、キーワード“Ｘ”に対応する複数のコンテンツと、各コンテンツとキーワード“Ｘ”との相関度を示す値とが記憶されている。相関度は、例えば、コンテンツ中でのキーワードの出現回数を示す値である。
【００９１】
要求メッセージを受信したプロデューサ１３は、要求メッセージで指定されたコンテンツ数に応じた数の、キーワード“Ｘ”と合致（マッチ）するコンテンツを含む応答メッセージを生成して送信する。
【００９２】
図９に示す例では、プロデューサ１３Ａに対してコンテンツ数“４”が指定され、プロデューサ１３Ｂに対してコンテンツ数“１６”が指定されている。また、プロデューサ１３Ｃに対してコンテンツ数“１６”が指定され、プロデューサ１３Ｂに対してコンテンツ数“６４”が指定されている。
【００９３】
各プロデューサ１３のＣＰＵ２１は、指定されたコンテンツ数を上限として、キーワード“Ｘ”に対応するコンテンツを選択する。このとき、ＣＰＵ２１は、キーワード“Ｘ”との相関度が高い順でコンテンツを選出する。
【００９４】
各プロデューサ１３からの応答メッセージは、各ノード１４で合成され最終的にリクエスタ１２で受信される（図９（８）〜（１４），図１０＜８＞〜＜１７＞）。この動作は、動作例１と同じであるので説明を省略する。
【００９５】
動作例２では、キーワードとの相関度に基づく優先順位でコンテンツが選択される例を示した。相関度の決め方としては、コンテンツの中でのキーワードの出現回数、コンテンツの中の文脈での使われ方、キーワードの出現場所（例、コンテンツのタイトルに出現）
、などで決定する。このコンテンツ選択ルールは、各プロデューサ１３が事前に静的にメモリ２２などに記憶しておくことが考えられる。或いは、リクエスタ１２が要求メッセージの中にコンテンツ選択ルールを含め、各プロデューサ１３は要求メッセージ中のコンテンツ選択ルールに従ってコンテンツ選択を行うのでもよい。
【００９６】
＜＜動作例３＞＞
動作例３として、リクエスタ１２がキーワード“Ｘ”にマッチするコンテンツの数を事前にネットワーク１から入手する動作例を説明する。動作例３は、動作例１及び動作例２の前処理に該当する。
【００９７】
図１１は動作例３の説明図であり、図１２は動作例３を説明するシーケンス図である。図１３は、動作例３におけるリクエスタ１２の処理例を示すフローチャートである。
【００９８】
[１]コンテンツ数の要求メッセージの送信
リクエスタ１２のＣＰＵ２１は、ネットワーク１でキーワードにマッチするコンテンツの数を事前に調べるために、コンテンツ数の要求メッセージを生成する（図１３のＯＰ００１）。要求メッセージに含めるパラメータとしては、例えば、Hops=10（指定ホップ数
が１０）、Reqts=no_set（Reqsフィールド無効）、Name=/kw_number/?kw=X (キーワード
“Ｘ”に対応するコンテンツの数の取得要求)、とする。
【００９９】
リクエスタ１２のＣＰＵ２１は、要求メッセージを送信する（図１１（１），図１２＜１＞，図１３のＯＰ００２）。その後、要求メッセージの応答メッセージを待機する状態となる（図１３のＯＰ００３）。
【０１００】
[２]要求メッセージの中継
ノード１４ａ，ノード１４ｂ，ノード１４ｃのＣＰＵ２１は、要求メッセージを受信すると、指定ホップ数を１減算（デクリメント）する。ノード１４ａ，ノード１４ｂ，ノード１４ｃのＣＰＵ２１は、減算によって指定ホップ数が０になったら要求メッセージの送信を停止する。これにより、コンテンツ数の要求メッセージの伝搬範囲を制限してトラフィック量を抑えることができる。なお、指定ホップ数を加算し加算結果が所定値になったら要求メッセージの送信を停止するようにしてもよい。
【０１０１】
要求メッセージの出力先は、経路テーブルを参照し、キーワードに対応する出力先（フェイス）を特定することで行う。但し、動作例１、２と異なり、経路が分岐する場合（複数のフェイスから要求メッセージを送信する場合）でも、ReqtsフィールドやNameフィー
ルドの値は変更されない。
【０１０２】
動作例３では、ノード１４ａからノード１４ｂ及びノード１４ｃへ向けて要求メッセージが送信される（図１１（２）及び（３），図１２＜２＞及び＜３＞）。また、ノード１４ｂからプロデューサ１３Ａ及びプロデューサ１３Ｂへ向けて要求メッセージが送信される（図１１（４）及び（５），図１２＜４＞及び＜５＞）。また、ノード１４ｃからプロデューサ１３Ｃ及びプロデューサ１３Ｄへ向けて要求メッセージが送信される（図１１（６）及び（７），図１２＜６＞及び＜７＞）。
【０１０３】
[３]応答メッセージの送信、リクエスタでの受信
プロデューサ１３は、キーワードに合致（マッチ）するコンテンツ、及びコンテンツの数をメモリ２２に記憶している。動作例３では、プロデューサ１３Ａは、キーワードに対応する１０個のコンテンツを有し、プロデューサ１３Ｂは、キーワードに対応する５０個のコンテンツを有している。また、プロデューサ１３Ｃは、キーワードに対応するコンテンツが０であり、プロデューサ１３Ｄは、キーワードに対応する１００個のコンテンツを
有している。
【０１０４】
要求メッセージを受けたプロデューサ１３は、要求メッセージで指定されたキーワードに合致するコンテンツの数を含む応答メッセージを生成して送信する。ノード１４ｂのＣＰＵ２１は、プロデューサ１３Ａ及びプロデューサ１３Ｂからの応答メッセージを受信し（図１１（８）及び（９），図１２＜８＞及び＜９＞）、応答メッセージを合成する（図１２＜１２＞）。このとき、ＣＰＵ２１は、コンテンツ数“１０”とコンテンツ数“５０”との和であるコンテンツ数“６０”を求め、合成した応答メッセージに含める。
【０１０５】
ノード１４ｃのＣＰＵ２１は、プロデューサ１３Ｃ及びプロデューサ１３Ｄからの応答メッセージを受信し（図１１（１０）及び（１１），図１２＜１０＞及び＜１１＞）、応答メッセージを合成する（図１２＜１４＞）。このとき、ＣＰＵ２１は、コンテンツ数“０”とコンテンツ数“１００”との和であるコンテンツ数“１００”を求め、合成した応答メッセージに含める。
【０１０６】
ノード１４ａのＣＰＵ２１は、ノード１４ｂ及びノード１４ｃから応答メッセージを受信し（図１１（１２）及び（１３），図１２＜１３＞及び＜１５＞）、応答メッセージを合成する（図１２＜１６＞）。このとき、ＣＰＵ２１は、コンテンツ数“６０”とコンテンツ数“１００”との和であるコンテンツ数“１６０”を求め、合成した応答メッセージに含める。ノード１４ａのＣＰＵ２１は、合成した応答メッセージをリクエスタ１２へ送信する。リクエスタ１２は、キーワードに対応するコンテンツの数が１６０個であることをしることができる。
【０１０７】
具体的には、リクエスタ１２のＣＰＵ２１は、応答メッセージを受信すると（図１３、ＯＰ００３のＹｅｓ）、応答メッセージ中のコンテンツ数“１６０”をキーワードに対応するコンテンツの数に設定し、メモリ２２に記憶する（図１３、ＯＰ００４）。
【０１０８】
[４]要求数の決定、コンテンツ要求メッセージの送信
リクエスタ１２のＣＰＵ２１は、コンテンツの要求メッセージを生成する（ＯＰ００５）。このとき、ＣＰＵ２１は、ＯＰ００４で設定したコンテンツ数に基づいて、実際に要求するコンテンツ数を決定する。例えば、ネットワーク１から得られたコンテンツ数“１６０”の２０％（３２）を設定する。但し、２０％以外の割合でもよい。
【０１０９】
リクエスタ１２のＣＰＵ２１は、コンテンツ要求メッセージを送信し（ＯＰ００６）、応答メッセージを待機する（ＯＰ００７）。そして、応答メッセージの受信によって、応答メッセージに含まれた実際のコンテンツを取得することができる。
【０１１０】
動作例３では、事前にコンテンツ数を調査して、所望量のコンテンツが得られるコンテンツの要求メッセージを生成する。これによって、無駄なトラフィックの発生を回避したり、リクエスタ１２での受信処理の負荷が上昇するのを回避したりすることができる。
【０１１１】
＜＜動作例４＞＞
また、実施形態におけるリクエスタ１２が、通信システムの状態に基づいて、ネットワーク１から取得するコンテンツ数をダイナミックに変えることも考えられる。例えば、一定時間以内にコンテンツ取得を完結させるために、リクエスタ１２のＣＰＵ２１は、以下の処理を行う。
【０１１２】
すなわち、ＣＰＵ２１は、ネットワークの混雑度やノード１４の負荷に基づいて、混雑度や負荷が小さい（低い）程、コンテンツの取得を要求する数量（要求数）が大きくなるように決定する。混雑度は、例えば、ネットワークへデータを送信してからデータの応答
が返ってくるまでのラウンドトリップタイム（ＲＴＴ）である。ノード１４の負荷は、例えばノード１４のＣＰＵ２１の使用率などである。
【０１１３】
図１４は、動作例４に係る処理を示すフローチャートである。ネットワーク１には図示しない管理サーバが接続されている。管理サーバは、ネットワーク１の負荷情報（各リンクの使用率の移動平均）と、ノード１４の負荷情報（ネットワーク１の各ノード１４のＣＰＵ使用率の移動平均）とを定期的に計測及び記録する。
【０１１４】
図１４の処理は、例えば定期的に実行される。但し、開始タイミングは適宜選択可能である。ＯＰ０１１では、リクエスタ１２のＣＰＵ２１は、管理サーバにネットワーク１の負荷情報（ネットワーク負荷情報）、或いはノード１４の負荷情報（ノード負荷情報）の問い合わせメッセージを送信する。ここでは、一例としてネットワーク負荷情報が応答される場合について説明するが、逆でもよい。
【０１１５】
ＯＰ０１２では、ＣＰＵ２１は問い合わせの応答メッセージ（ネットワーク負荷情報）を待機する。応答メッセージが受信されると処理がＯＰ０１３に進む。ＯＰ０１３では、ＣＰＵ２１は、ネットワーク負荷情報（応答値）を応答メッセージから取り出し、パラメータ“Load”の値として設定する。応答値は、例えば０以上１以下の値をとる。
【０１１６】
ＯＰ０１４では、ＣＰＵ２１はコンテンツの要求メッセージを生成する。このとき、ＣＰＵ２１は、１からパラメータ“Load”の値を減じた値をコンテンツの要求数（C_num）
に乗じる。C_numの値は、要求数の最大値であり、“Load”の値が小さい程、要求数は増
える。ＯＰ０１５では、コンテンツの要求メッセージを送信し、ＯＰ０１６で応答メッセージを待機し、応答メッセージが受信されると図１４の処理を終了する。
【０１１７】
このようにして、ネットワーク１の負荷やノード１４の負荷（ネットワークに係る負荷の一例）を考慮して、取得を要求するコンテンツの数量（要求数）を決定するので、要求メッセージの送信に伴うネットワーク１への負荷を軽減できる。
【０１１８】
＜実施形態の効果＞
実施形態によれば、リクエスタ１２が、キーワードと被分配値（コンテンツ数）とを含むコンテンツの要求メッセージをネットワーク１に送信する。ネットワーク１のノード１４において、コンテンツの要求メッセージを複数の出力先（フェイス）へ送信する場合に、被分配値（コンテンツ数）が所定の分配ルールに従って各出力先に分配される。このとき、分配された値が所定値を下回る（分配された値が０の場合を含む）出力先に関しては、要求メッセージの送信が行われない。よって、コンテンツの要求メッセージの伝搬範囲（拡散範囲）やトラフィック量を抑えることができる。
【０１１９】
また、各プロデューサ１３は、コンテンツ数を上限として、キーワードに対応するコンテンツを含む応答メッセージを生成し、リクエスタ１２へ向けて送信する。これによって、コンテンツの送信に伴うトラフィック量をコンテンツ数に応じた範囲に抑えることができる。また、リクエスタ１２のコンテンツの受信に伴う処理負荷を抑止し、一定時間以内でコンテンツの収集結果や演算結果を得ることを可能にする。
【０１２０】
＜変形例＞
実施形態は、以下のような変形が可能である。例えば、実施形態において、Reqtsフィ
ールドの値は、コンテンツ数を示す値であった。但し、Reqtsフィールドの値は、コンテ
ンツのデータ量（バイト数やビット数）を示す値であってもよい。データ量を指定することで、リクエスタ１２へのコンテンツの送信に伴って発生するトラフィック量を抑えることができる。
【０１２１】
また、分配ルールとして、実施形態では、均等分配、リンク速度（帯域）の比率に応じた分配率での分配を例示した。これら以外の分配ルールとしては、出力先（経路先）のコンテンツ数の比率に応じた分配や、経路先のコンテンツのキーワードとの相関度に応じて分配などが考えられる。
【０１２２】
経路先のコンテンツ数や相関度を分配に使う場合、プロデューサ１３がキーワードを広告する場合に、キーワードに合致するコンテンツの数、あるいはキーワードとコンテンツとの相関度を合わせて広告する。各ノード１４は、コンテンツの数や相関度を経路テーブルの出力先（インタフェース）の情報と関連付けて記憶する。そして、コンテンツの要求メッセージの受信時に参照する。分配ルールは、例えば、各ノード１４に対し事前にスタティックに記憶させる。但し、リクエスタ１２が要求メッセージの中に分配ルールを定義し各ノード１４が要求メッセージ中の分配ル−ルに従うようにしても良い。実施形態にて説明した構成は例示であり、適宜組み合わせることができる。
【符号の説明】
【０１２３】
１・・・ネットワーク
１２・・・リクエスタ
１３・・・プロデューサ
１４・・・ノード
２０・・・通信装置
２１・・・ＣＰＵ
２２・・・メモリ
【図１】
2019029930.tif 000003
【図２】
2019029930.tif 000004
【図３】
2019029930.tif 000005
【図４】
2019029930.tif 000006
【図５】
2019029930.tif 000007
【図６】
2019029930.tif 000008
【図７】
2019029930.tif 000009
【図８】
2019029930.tif 000010
【図９】
2019029930.tif 000011
【図１０】
2019029930.tif 000012
【図１１】
2019029930.tif 000013
【図１２】
2019029930.tif 000014
【図１３】
2019029930.tif 000015
【図１４】
2019029930.tif 000016