【実施例1】
【0013】
以下の実施例では、実施例1に係るCCNネットワークシステムの構成、ルータの構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。
【0014】
[CCNネットワークシステムの構成]
最初に、
図1を用いて、CCN(Content-Centric Networking)ネットワークシステム100の構成を説明する。
図1は、実施例1に係るCCNネットワークシステムを説明するための図である。
図1に示すように、このCCNネットワークシステム100には、複数のルータ10A〜10Eと、サーバ20と、複数のクライアント30A、30Bとが含まれ、CCNリンクを介して接続されている。
【0015】
具体的には、ルータ10Aは、サーバ20、ルータ10Bおよびルータ10EとCCNリンクを介して接続され、ルータ10Bは、ルータ10Aおよびルータ10CとCCNリンクを介して接続され、ルータ10Cは、クライアント30A、ルータ10Bおよびルータ10DとCCNリンクを介して接続され、ルータ10Dは、クライアント30B、ルータ10Cおよびルータ10EとCCNリンクを介して接続され、ルータ10Eは、クライアント30B、ルータ10Cおよびルータ10EとCCNリンクを介して接続されており、接続された端末同士が直接通信できる状態にある。なお、以下では、ルータ10A〜10Eについて、特に区別することなく説明する場合には、「ルータ10」と記載して説明する。また、クライアント30A、30Bについても同様に、特に区別することなく説明する場合には、「クライアント30」と記載して説明する。
【0016】
ルータ10は、コンテンツストアと呼ばれるバッファメモリ13aを有しており、中継した応答パケットをバッファメモリ13a内にキャッシュする。また、ルータ10は、コンテンツの要求を受信された際に、要求されたコンテンツデータがバッファメモリ13aに存在する場合には、バッファメモリ13aからコンテンツデータを応答パケットとして返送する。なお、ルータ10の構成については、後に
図2を用いて詳述する。
【0017】
サーバ20は、コンテンツデータを記憶しており、コンテンツを要求するInterestパケットをルータ10から受信すると、Interestパケットに相当するデータパケットを返信する。例えば、
図1の例を用いて説明すると、サーバ20は、コンテンツを要求するInterestパケットをルータ10Aから受信すると、受信したInterestパケットに相当するデータパケットをルータ10Aに送信する。
【0018】
クライアント30は、コンテンツを要求する場合には、接続されたルータ10に対してInterestパケットを送信し、その後、ルータ10からコンテンツを受信する。例えば、
図1の例を用いて説明すると、クライアント30Bは、コンテンツを要求する場合には、接続されたルータ10Dに対してInterestパケットを送信し、その後、ルータ10Dからコンテンツを受信する。
【0019】
[ルータの構成]
次に、
図2を用いて、
図1に示したルータ10の構成を説明する。
図2は、実施例1に係るルータ10の構成を示すブロック図である。
図2に示すように、このルータ10は、通信制御部11、制御部12、記憶部13を有し、図示しないCCNリンクを介して、サーバ20、クライアント30または他のルータと接続される。以下にこれらの各部の処理を説明する。
【0020】
通信制御部11は、接続されるサーバ20、クライアント30または他のルータとの間でやり取りする各種情報に関する通信を制御する。例えば、通信制御部11は、サーバ20に対してInterestパケットを送信し、また、送信したInterestパケットに相当するデータパケットを受信する。また、通信制御部11は、クライアント30または他のルータからInterestパケットを受信し、また、クライアント30または他のルータに対して送信したInterestパケットに相当するデータパケットを送信する。
【0021】
記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、バッファメモリ13aおよび経路制御表記憶部13bを有する。
【0022】
バッファメモリ13aは、コンテンツデータを記憶する。具体的には、バッファメモリ13aは、ルータ10がサーバ20または他のルータからコンテンツデータを受信した際に、該コンテンツデータが格納される。
【0023】
経路制御表記憶部13bは、コンテンツデータを識別するコンテンツ識別情報に対応付けて、コンテンツデータの要求先の中継装置に関する情報を登録する経路制御表を記憶する。例えば、経路制御表記憶部13bは、
図3に例示するように、コンテンツデータを識別する「prefix」に対応付けて、コンテンツデータの要求先のルータまたはサーバ20の宛先を示す「宛先」を記憶する。
【0024】
制御部12は、各種の処理手順などを規定したプログラムおよび所要データによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、格納部12a、データ送信部12b、要求部12c、登録送信部12d、登録部12e、登録転送部12f、キャッシュ削除部12g、解除パケット送信部12h、削除部12i、および削除転送部12jを有する。
【0025】
格納部12aは、コンテンツデータを受信した場合に、該コンテンツデータをバッファメモリ13aに格納する。例えば、格納部12aは、サーバ20または他のルータからコンテンツデータを受信した際に、該コンテンツデータをバッファメモリ13aにキャッシュする。
【0026】
データ送信部12bは、コンテンツデータの要求を受け付けた際に、該要求を受け付けたコンテンツデータがバッファメモリ13aに記憶されている場合には、該バッファメモリ13aからコンテンツデータを読み出して、該コンテンツデータを要求元の他のルータまたはクライアント30に送信する。
【0027】
ここで、
図4の例を用いて、データ送信部12bの処理を具体的に説明する。
図4では、
図1に示したCCNネットワークシステムにおいて、各ルータ10A〜10Eがそれぞれ記憶する経路制御表(
図4では、FIB(Forwarding Information Base)と記載)が例示されている。例えば、ルータ10Dがクライアント30Bからコンテンツ「/Osaka-u.ac.jp/info.txt」の要求を受け付けた場合に、ルータ10Dは、コンテンツ「/Osaka-u.ac.jp/info.txt」がバッファメモリ13aに記憶されている場合には、該バッファメモリ13aからコンテンツデータを読み出して、クライアント30Bに送信する。
【0028】
要求部12cは、コンテンツデータの要求を受け付けた際に、該要求を受け付けたコンテンツデータがバッファメモリ13aに記憶されていない場合には、経路制御表記憶部13bが記憶する経路制御表を参照し、コンテンツデータの要求先である他のルータへコンテンツデータを要求する。具体的には、要求部12cは、コンテンツデータの要求を受け付けた際に、該要求を受け付けたコンテンツデータがバッファメモリ13aに記憶されていない場合には、経路制御表記憶部13bが記憶する経路制御表において、要求を受け付けたコンテンツデータのコンテンツ識別情報に対応付けられた、コンテンツデータの要求先である他のルータへコンテンツデータを要求する。
【0029】
例えば、上記した
図4の例を用いて説明すると、ルータ10Dがクライアント30Bからコンテンツ「/Osaka-u.ac.jp/info.txt」の要求を受け付けた場合に、ルータ10Dは、コンテンツ「/Osaka-u.ac.jp/info.txt」がバッファメモリ13aに記憶されていない場合には、経路制御表を参照して、「/Osaka-u.ac.jp/info.txt」に対応付けられた宛先であるルータ10Eへコンテンツ「/Osaka-u.ac.jp/info.txt」を要求する。なお、その後は、ルータ10E、ルータ10A、サーバ20と、それぞれの経路制御表に沿ってコンテンツデータが要求され、サーバ20がルータ10Aにコンテンツデータを送信し、ルータ10A、ルータ10E、ルータ10Dと転送され、最終的にクライアント30Bにコンテンツデータが到達する。
【0030】
登録送信部12dは、格納部12aによってコンテンツデータがバッファメモリ13aに格納された場合には、隣接する他のルータに対して、該格納されたコンテンツデータに対応付けて、コンテンツデータの要求先のルータの情報として自装置に関する情報を経路制御表に登録する旨の登録要求(FIB登録パケット)を送信する。
【0031】
また、登録送信部12dは、FIB登録パケットを送信する際に、キャッシュしたコンテンツデータの種別に応じて、登録要求を送信するか否かを判定し、登録要求を送信すると判定した場合には、該登録要求を隣接する他のルータに送信する処理を行う。例えば、他の利用者から要求が来ないような特定のコンテンツ、すなわちアクセスコントロールされたコンテンツなどの特定のコンテンツかどうか判定し、特定のコンテンツに対応するFIB登録パケットを送信しないことで、他の利用者から要求が来ないような特定のコンテンツにはルーティングを行わない。
【0032】
例えば、上記した
図4の例を用いて説明すると、ルータ10Dがコンテンツ「/Osaka-u.ac.jp/info.txt」をバッファメモリ13aに格納した場合に、ルータ10Dは、コンテンツデータを転送したクライアント30B、コンテンツデータを受信したルータ10E以外の接続された端末、すなわち、ルータ10Cに対してFIB登録パケットを送信する。
【0033】
登録部12eは、他のルータから登録要求を受信した場合には、該受信した登録要求に応じて、prefixに対応付けて、コンテンツデータの要求先のルータまたはサーバ20の宛先を経路制御表に登録する。例えば、上記した
図4の例を用いて説明すると、ルータ10Cがルータ10DからFIB登録パケットを受信すると、ルータ10Cは、FIB登録パケットに含まれるコンテンツ名と送信元のルータをFIBエントリとして経路制御表に登録する。
【0034】
登録転送部12fは、他のルータから登録要求を受信した場合には、該受信した登録要求を隣接する他のルータに転送する。例えば、上記した
図4の例を用いて説明すると、ルータ10Cは、ルータ10Dから登録要求を受信した場合には、FIB登録パケットを受信したルータ10D以外の接続されたルータ、すなわちルータ10Bに対してFIB登録パケットを転送する。この結果、
図5に例示するように、ルータ10Bおよびルータ10Cの経路制御表が変更される。例えば、
図5の例では、ルータ10Cの経路制御表に、prefix「/Osaka-u.ac.jp/info.txt」と宛先「10B、10D」とが対応付いたFIBエントリが追加されている。
【0035】
その後、
図5の例において、クライアント30Bが要求したコンテンツと同じコンテンツ「/Osaka-u.ac.jp/info.txt」をクライアント30Aがルータ10Cに対して要求した場合には、ルータ10Cが経路制御表においてprefix「/Osaka-u.ac.jp/info.txt」に対応付けられた宛先ルータのうち、1つないし複数のルータ、すなわち、ルータ「10B」、ルータ「10D」のいずれかのルータ、または、ルータ「10B」およびルータ「10D」の両方に対して、コンテンツデータを要求するためのInterestパケットを送信する。ここで、宛先ルータを1つにすれば、トラフィック量を削減することができ、宛先を複数にすれば応答時間を短縮することができる。
【0036】
上記の説明から、ルータ10CからInterestパケットを受信したルータ10Dは、コンテンツ「/Osaka-u.ac.jp/info.txt」をバッファメモリ13aに記憶しているので、ルータ10Cに送信する。そして、ルータ10Cは、コンテンツ「/Osaka-u.ac.jp/info.txt」をクライアント30Aに送信する。このため、サーバ20からコンテンツデータを取得した場合には8ホップかかっていたが、本実施例では、4ホップでコンテンツを取得することが可能となる。このように、実施例1に係るルータ10は、コンテンツが要求する利用者から近いルータ10にキャッシュされている場合には、そのコンテンツに対して利用者の要求パケットをルーティングできるようにし、応答時間を早くすることが可能となる。また、宛先ルータを1つにすることで、通信トラフィック量を軽減することが可能となる。
【0037】
キャッシュ削除部12gは、バッファメモリ13aに記憶されたコンテンツデータを削除する。例えば、キャッシュ削除部12gは、バッファメモリ13aの容量が不足した場合等の所定の条件が発生した場合に、バッファメモリ13aに記憶されたコンテンツデータを削除する。
【0038】
解除パケット送信部12hは、バッファメモリ13aに記憶されたコンテンツデータが削除された場合には、隣接する他のルータに対して、該削除されたコンテンツデータのprefixと対応付けて記憶されたコンテンツデータの要求先である宛先を経路制御表から削除する旨の削除要求としてFIB解除パケットを送信する。
【0039】
例えば、
図5の例を用いて説明すると、ルータ10Dは、バッファメモリ13aに記憶されたコンテンツデータを削除した場合には、隣接するルータ10Eおよびルータ10CにFIB解除パケットを送信する。
【0040】
削除部12iは、他のルータから削除要求を受信した場合には、該受信した削除要求に応じて、prefixと対応付けて記憶されたコンテンツデータの要求先である宛先を経路制御表から削除する。例えば、
図5の例を用いて説明すると、FIB解除パケットを受信したルータ10Eおよびルータ10Cは、FIB解除パケットに含まれるコンテンツ名に相当するFIBエントリにおいて、FIB解除パケットの送信元のルータ10Dを削除する。
【0041】
また、削除部12iは、登録要求に設定されたコンテンツが参照された回数の情報に応じて、コンテンツ識別子と対応付けて記憶されたコンテンツデータの要求先に関する情報を前記経路制御表から削除するようにしてもよい。例えば、FIB登録パケットにコンテンツがどれだけの回数参照されたかを表すパラメータを埋め込み、ルータ10がFIB登録パケットを受信したときに、当該コンテンツに人気があるか否かに応じて、コンテンツに係る情報が経路制御表に登録される期間を決定し、登録される期間を経過した場合には、コンテンツのFIBエントリを削除する。
【0042】
削除転送部12jは、他のルータから削除要求を受信した場合には、自身が当該コンテンツを所持していない場合に限り、該受信した削除要求を隣接する他のルータに転送する。例えば、
図5の例を用いて説明すると、FIB解除パケットを受信したルータ10Cは、自身が当該コンテンツを所持していない場合に限り、ルータ10Bに対してFIB解除パケットを転送する。
【0043】
上記した
図5の例において削除処理を行った結果、
図6に例示するように、ルータ10Bおよびルータ10Cの経路制御表が変更される。例えば、
図5と
図6とを比較すると、ルータ10Cの経路制御表において、prefix「/Osaka-u.ac.jp/info.txt」に対応付けられた宛先「10D」が削除されている。また、同様に、ルータ10Bの経路制御表において、prefix「/Osaka-u.ac.jp/info.txt」に対応付けられた宛先「10C」が削除されている。
【0044】
このように、実施例1に係るルータ10では、コンテンツが要求する利用者から近いルータ10にキャッシュされている場合には、そのコンテンツに対して利用者の要求パケットをルーティングできるようにし、通信トラフィック量を軽減するとともに、応答時間を早くすることが可能となる。また、実施例1に係るルータ10では、コンテンツのキャッシュが削除された場合には、ルーティング経路を適切に削除することが可能である。
【0045】
[ルータによる処理]
次に、
図7、
図8を用いて、実施例1に係るルータ10による処理を説明する。
図7は、実施例1に係るルータによる登録処理の流れを示すシーケンス図である。
図8は、実施例1に係るルータによる削除処理の流れを示すシーケンス図である。なお、以下で説明する処理は、上記で説明した
図4〜
図6に示したCCNネットワークシステム100の例を用いて説明する。
【0046】
図7に示すように、サーバ20は、ルータ10Aに対してコンテンツデータを含むDataパケットを送信する(ステップS1)。そして、ルータ10Aは、Dataパケットのコンテンツデータをバッファメモリ13aにキャッシュし(ステップS2)、Dataパケットをルータ10Eに送信する(ステップS3)。
【0047】
そして、続いて、ルータ10Aは、FIB登録パケットを送信するか判定する(ステップS4)。具体的には、ルータ10Aは、キャッシュしたコンテンツデータの種別に応じて、FIB登録パケットを送信するか否かを判定する。この結果、ルータ10Aは、FIB登録パケットを送信しないと判定した場合には、そのまま処理を終了する。例えば、他の利用者から要求が来ないような特定のコンテンツ、すなわちアクセスコントロールされたコンテンツなどの特定のコンテンツかどうか判定し、特定のコンテンツであればFIB登録パケットを送信しないことで、他の利用者から要求が来ないような特定のコンテンツにはルーティングを行わない。
【0048】
また、ルータ10Aは、該登録要求を送信すると判定した場合には、FIB登録パケットをルータ10Bに送信する(ステップS5)。そして、ルータ10Bは、FIB登録パケットのパラメータにおいて、FIBに登録する時間が0であるか判定する(ステップS6)。この結果、ルータ10Bは、FIBに登録する時間が0である場合には、コンテンツの保存時間が切れているものとして、FIB登録せずに、処理を終了する。
【0049】
また、ルータ10Bは、FIBに登録する時間が0でない場合には、FIB登録パケットに応じてFIBエントリを経路制御表に登録する(ステップS7)。そして、ルータ10Bは、FIB登録パケットに設定された転送される範囲を指定する情報(例えば、FIBパケットの生存時間)を参照して、FIB登録パケットを転送するか否かを判定する(ステップS8)。ここで、FIB登録パケットに設定された転送される範囲を指定する情報(例えば、FIBパケットの生存時間)は、コンテンツの賞味期限などに応じて決められ、許可された範囲のルータのみにルーティングを許可する。
【0050】
この結果、ルータ10Bは、FIB登録パケットを転送しないと判定した場合には、そのまま処理を終了する。また、ルータ10Bは、FIB登録パケットを転送すると判定した場合には、FIB登録パケットをルータ10Cに送信する(ステップS9)。なお、FIB登録パケットを受信したルータ10Cは、上記のステップS6〜9の処理を行う。
【0051】
次に、
図8を用いて、ルータによる削除処理の流れを説明する。
図8に示すように、ルータ10Dは、バッファメモリ13aに記憶されたコンテンツデータのキャッシュが取り除かれると(ステップS10)、FIBエントリの削除を要求するFIB解除パケットをルータ10Cに送信する(ステップS11)。
【0052】
そして、ルータ10Cは、FIB解除パケットを受信すると、FIBから該当するコンテンツのFIBエントリを削除する(ステップS12)。例えば、ルータ10Cのコンテンツ「/osaka-u.ac.jp/info.txt」のFIBエントリのルータ10Dへの宛先は、ルータ10Dが送信したFIB解除パケットによって削除される。
【0053】
そして、ルータ10Cは、FIB解除パケットを転送するか否かを判定する(ステップS13)。例えば、ルータ10Cは、FIB解除パケットに設定された転送される範囲を指定する情報(例えば、FIB解除パケットの生存時間)を参照して、FIB解除パケットを転送するか否かを判定する。この結果、ルータ10Cは、FIB解除パケットを転送しないと判定した場合には、そのまま処理を終了する。また、ルータ10Cは、FIB解除パケットを転送すると判定した場合には、FIB解除パケットをルータ10Bに転送する(ステップS14)。そして、ルータ10Bは、FIB解除パケットを受信すると、FIBから該当するコンテンツのFIBエントリを削除する(ステップS15)。
【0054】
[実施例1の効果]
上述してきたように、ルータ10は、コンテンツデータを識別するコンテンツ識別情報に対応付けて、コンテンツデータの要求先のルータに関する情報を登録する経路制御表を記憶する経路制御表記憶部13bを有する。そして、ルータ10は、コンテンツデータを受信した場合に、該コンテンツデータをバッファメモリ13aに格納する。また、ルータ10は、コンテンツデータの要求を受け付けた際に、該要求を受け付けたコンテンツデータが前記バッファメモリに記憶されている場合には、該バッファメモリからコンテンツデータを読み出して、該コンテンツデータを要求元の端末に送信する。また、ルータ10は、コンテンツデータの要求を受け付けた際に、該要求を受け付けたコンテンツデータがバッファメモリ13aに記憶されていない場合には、経路制御表記憶部13bが記憶する経路制御表を参照し、コンテンツデータの要求先である他のルータへコンテンツデータを要求する。また、コンテンツデータが格納された場合には、隣接する他のルータに対して、該格納されたコンテンツデータに対応付けて、コンテンツデータの要求先のルータの情報として自装置に関する情報を経路制御表に登録する旨の登録要求を送信する。また、ルータ10は、他のルータから前記登録要求を受信した場合には、該受信した登録要求に応じて、コンテンツ識別情報に対応付けて、コンテンツデータの要求先のルータに関する情報を前記経路制御表に登録する。ルータ10は、他のルータから前記登録要求を受信した場合には、該受信した登録要求を隣接する他のルータに転送する。このため、コンテンツが要求する利用者から近いルータ10にキャッシュされている場合には、そのコンテンツに対して利用者の要求パケットをルーティングできる結果、通信トラフィック量を軽減するとともに、応答時間を早くすることが可能となる。また、サーバ20がネットワークから切断した場合や、要求パケットがサーバ20に届かない状況でもコンテンツを取得することが可能である。
【0055】
また、実施例1によれば、ルータ10は、格納されたコンテンツデータの種別に応じて、登録要求を送信するか否かを判定し、該登録要求を送信すると判定した場合には、該登録要求を隣接する他の中継装置に送信する。このため、アクセスコントロールされたコンテンツや、ライブストリーミングのコンテンツといった、他のユーザから中長期に渡って要求パケットが来ないであろうコンテンツに対するFIB登録パケットを送信しないことで、FIB登録パケットの送信にかかるトラヒック量を削減することが可能である。
【0056】
また、実施例1によれば、ルータ10は、コンテンツデータが削除された場合には、隣接する他のルータに対して、該削除されたコンテンツデータのコンテンツ識別情報と対応付けて記憶されたコンテンツデータの要求先に関する情報を経路制御表から削除する旨の削除要求を送信する。また、ルータ10は、他のルータから削除要求を受信した場合には、該受信した削除要求に応じて、コンテンツ識別情報と対応付けて記憶されたコンテンツデータの要求先に関する情報を経路制御表から削除する。また、ルータ10は、他のルータから削除要求を受信した場合には、該受信した削除要求を隣接する他のルータに転送する。このため、コンテンツのキャッシュが削除された場合には、ルーティング経路を適切に削除することが可能である。
【0057】
また、実施例1によれば、ルータ10は、登録要求が転送される範囲を指定する情報を該登録要求に設定して、該登録要求を隣接する他のルータに送信する。また、ルータ10は、削除要求が転送される範囲を指定する情報を該削除要求に設定して、該削除要求を隣接する他のルータに送信する。このため、許可された範囲のみにキャッシュされたコンテンツへのルーティングを許可することで、FIB登録パケットにかかるトラフィック量を削除する。
【実施例3】
【0065】
ところで、上記の実施例1では、FIB解除パケットを受信した場合に経路制御表のエントリを削除する場合を説明したが、これに限定されるものではなく、コンテンツデータの要求が行われた際に、該要求されたコンテンツデータの要求に対する応答が無かった回数に応じて、経路制御表のエントリを削除するようにしてもよい。
【0066】
そこで、以下の実施例3では、コンテンツデータの要求が行われた際に、該要求されたコンテンツデータの要求に対する応答が無かった回数に応じて、経路制御表のエントリを削除する場合として、
図10および
図11を用いて、実施例3におけるルータの処理について説明する。
図10は、実施例3に係るルータによる削除処理の流れを示すフローチャートである。
図11は、実施例3に係るルータによる削除処理の流れを示すシーケンス図である。
【0067】
図10に示すように、ルータ10は、要求パケットを隣接するルータに送信し(ステップS31)、要求がタイムアウトしたか否かを判定する(ステップS32)。この結果、ルータ10は、要求がタイムアウトせずに、要求パケットに対する返信があった場合には、要求パケットを送信する際に参照したFIBエントリの要求成功回数を1増やし(ステップS33)、ステップS31に戻る。
【0068】
また、ルータ10は、要求パケットに対する返信がなく、要求がタイムアウトした場合には、要求パケットを送信する際に参照したFIBエントリの要求失敗回数を1増やす(ステップS34)。その後、ルータ10は、一定時間が経過すると、要求失敗回数が一定値以上であるか判定する(ステップS35)。この結果、ルータ10は、要求失敗回数が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除する(ステップS37)。
【0069】
また、ルータ10は、要求失敗回数が一定値以上でない場合には、要求失敗回数と要求成功回数の比が一定値以上であるか判定する(ステップS36)。この結果、ルータ10は、要求失敗回数と要求成功回数の比が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除する(ステップS37)。
【0070】
次に、上記の処理について、
図11のシーケンス図を用いて、ルータ10Bおよびルータ10Cの例を挙げて説明する。
図11に示すように、ルータ10Bは、要求パケットを隣接するルータ10Cに送信する(ステップS41)。ルータ10Cは、要求パケットを受信して、応答パケットを送信する(ステップS42)。ルータ10Bは、要求パケットを受信すると、要求パケットを送信する際に参照したFIBエントリの要求成功回数を1増やす(ステップS43)。また、図示しないが、ルータ10は、要求パケットに対する返信がなく、要求がタイムアウトした場合には、要求パケットを送信する際に参照したFIBエントリの要求失敗回数を1増やす。その後、ルータ10Bは、要求パケットを隣接するルータ10Cに送信し(ステップS44)、応答パケットを受信(または、応答パケットの受信失敗)を繰り返し、一定時間が経過したところで、要求失敗回数が一定値以上であるか判定する(ステップS45)。
【0071】
この結果、ルータ10Bは、要求失敗回数が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除する(ステップS47)。また、ルータ10Bは、要求失敗回数が一定値以上でない場合には、要求失敗回数と要求成功回数の比が一定値以上であるか判定する(ステップS46)。この結果、ルータ10Bは、要求失敗回数と要求成功回数の比が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除する(ステップS47)。
【0072】
なお、上記の説明では、要求失敗回数が一定値以上であるか、及び、要求失敗回数と要求成功回数の比が一定値以上であるかを判定し、要求失敗回数が一定値以上である場合、または、要求失敗回数と要求成功回数の比が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除する例を説明したが、この例に限定されるものではない。例えば、要求失敗回数が一定値以上であるか判定する判定処理、若しくは、要求失敗回数と要求成功回数の比が一定値以上であるか判定する判定処理のどちらか一方の判定処理のみを行い、要求失敗回数が一定値以上である場合、または、要求失敗回数と要求成功回数の比が一定値以上である場合には、要求パケットを送信する際に参照したFIBエントリを削除するようにしてもよい。
【0073】
このように実施例3によれば、要求されたコンテンツデータの要求に対する応答が無かった回数に応じて、コンテンツ識別情報と対応付けて記憶されたコンテンツデータの要求先に関する情報を経路制御表から削除する。このため、一定回数以上タイムアウトした要求のルーティング先には、コンテンツのキャッシュがないと判断し、それに対応するFIBエントリを削除、つまり、ルーティング経路を削除することができる。この結果、コンテンツがキャッシュされていないと予想されるノードへルーティングしてしまう回数を削減することが可能となる。
【0074】
また、実施例3によれば、要求されたコンテンツデータの要求に対する応答が無かった回数と要求されたコンテンツデータの要求に対する応答を受信した回数との比率に応じて、コンテンツ識別情報と対応付けて記憶されたコンテンツデータの要求先に関する情報を経路制御表から削除する。このため、タイムアウトした場合の比としなかった場合の比が一定の値以上になったルーティング先には、コンテンツのキャッシュがないと判断し、それに対応するFIBエントリを削除、つまり、ルーティング経路を削除することができる。この結果、コンテンツがキャッシュされていないと予想されるノードへルーティングしてしまう回数を削減することが可能となる。
【0075】
[システム構成]
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0076】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0077】
[プログラム]
また、上記実施例において説明したルータ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例1に係るルータ10が実行する処理をコンピュータが実行可能な言語で記述した中継プログラムを作成することもできる。この場合、コンピュータが中継プログラムを実行することにより、上記実施例と同様の効果を得ることができる。さらに、かかる中継プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され中継プログラムをコンピュータに読み込ませて実行することにより上記実施例1と同様の処理を実現してもよい。以下に、
図2に示したルータ10と同様の機能を実現する中継プログラムを実行するコンピュータの一例を説明する。
【0078】
図12は、中継プログラムを実行するコンピュータ1000を示す図である。
図12に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0079】
メモリ1010は、
図12に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、
図12に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、
図12に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、
図12に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、
図12に例示するように、例えばディスプレイ1061に接続される。
【0080】
ここで、
図12に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の中継プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
【0081】
また、上記実施例で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、格納手順、データ送信手順、要求手順、登録送信手順、登録手順、登録転送手順を実行する。
【0082】
なお、中継プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、中継プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。