(57)【要約】【課題】コンテンツをノード内のストレージにキャッシュとして蓄積してから転送するネットワークシステムにおいてコンテンツのキャッシュの利用可能性を高める。【解決手段】各ノードＡ１１〜Ａ１４は、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルＡ１１３を参照して、転送経路の候補となる経路を決定し、１つ以上の候補経路のうち、コンテンツの少なくとも一部がキャッシュ断片として蓄積されている次ホップノードを含む候補経路を転送経路として優先的に選択する経路選択部Ａ１１２と、コンテンツを転送経路上の次ホップノードに転送するＤＴＮ転送部Ａ１１１とを有する。【選択図】  図１
2008205890.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツをノード内のストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるルーティング方法であって、
各ノードは、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手順と、
１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている次ホップノードを含む候補経路を転送経路として優先的に選択する転送経路選択手順と、
前記コンテンツをノード内の転送部から前記転送経路上の次ホップノードに転送する転送手順とを実行することを特徴とするルーティング方法。
【請求項２】
請求項１に記載のルーティング方法において、
前記転送経路選択手順は、複数の前記候補経路上の次ホップノードに前記キャッシュ断片が蓄積されている場合に、前記キャッシュ断片のサイズに基づいて転送経路を選択する手順を含むことを特徴とするルーティング方法。
【請求項３】
請求項１又は２に記載のルーティング方法において、
前記転送経路選択手順は、前記コンテンツの宛先ノード以外の他のノードへ転送した方が良いか否かを判断する手順と、前記他のノードへ転送した方が良いと判断した場合に、前記宛先ノードへの候補経路の中から転送経路を選択する代わりに、前記他のノードへの転送経路を選択する手順とを含むことを特徴とするルーティング方法。
【請求項４】
請求項１乃至３のいずれか１項に記載のルーティング方法において、
前記転送経路選択手順は、前記選択した転送経路に含まれない隣接ノードのキャッシュ断片を補完できると判断した場合に、前記転送部に対して前記選択した転送経路に前記コンテンツを転送するよう指示すると同時に、前記コンテンツを複製して前記隣接ノードに転送するよう指示する手順を含むことを特徴とするルーティング方法。
【請求項５】
請求項１乃至４のいずれか１項に記載のルーティング方法において、
前記転送経路選択手順は、前記候補経路が複数存在し、候補経路ごとに前記キャッシュ断片の補完に必要なセグメントが異なる場合に、複数の転送経路を選択し、選択した各転送経路へ前記コンテンツの異なるセグメントを振り分けて転送するよう前記転送部に指示する手順を含むことを特徴とするルーティング方法。
【請求項６】
請求項１乃至５のいずれか１項に記載のルーティング方法において、
前記転送経路選択手順は、（１）前記候補経路上の次ホップノードにおける前記コンテンツのキャッシュの有無、（２）前記候補経路上の次ホップノードが前記ネットワークシステムから離脱した時間の割合であるネットワーク離脱率、（３）前記候補経路上の次ホップノードに接続された隣接ノードの数、（４）前記候補経路上の次ホップノードからの前記コンテンツに対する要求頻度およびこの次ホップノードの隣接ノードからの前記コンテンツに対する要求頻度、（５）前記候補経路上の次ホップノードのリソース状態の５つのパラメータのうち、少なくとも１つのパラメータに基づいて、前記候補経路の中から前記転送経路を選択することを特徴とするルーティング方法。
【請求項７】
コンテンツをノード内のストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるルーティング方法であって、
ソースノードは、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手順と、
１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている中継ノードを含む候補経路を転送経路として優先的に選択する第１の転送経路選択手順と、
前記コンテンツをソースノード内の転送部から前記転送経路上の次ホップノードに転送する第１の転送手順とを実行し、
中継ノードは、前記ソースノードによって選択された経路を転送経路として選択する第２の転送経路選択手順と、
受信したコンテンツを中継ノード内の転送部から前記転送経路上の次ホップノードに転送する第２の転送手順とを実行することを特徴とするルーティング方法。
【請求項８】
請求項７に記載のルーティング方法において、
前記第１の転送経路選択手順は、複数の前記候補経路上の中継ノードに前記キャッシュ断片が蓄積されている場合に、１つ以上の前記中継ノードに蓄積されている前記キャッシュ断片の合計サイズを候補経路ごとに求め、この合計サイズに基づいて前記候補経路の中から転送経路を選択する手順を含むことを特徴とするルーティング方法。
【請求項９】
請求項７又は８に記載のルーティング方法において、
前記第１の転送経路選択手順は、複数の前記候補経路上の中継ノードに前記キャッシュ断片が蓄積されている場合に、前記キャッシュ断片を蓄積している中継ノードの数を候補経路ごとに求め、この中継ノードの数に基づいて前記候補経路の中から転送経路を選択する手順を含むことを特徴とするルーティング方法。
【請求項１０】
請求項７乃至９のいずれか１項に記載のルーティング方法において、
前記第１の転送経路選択手順は、前記コンテンツの宛先ノード以外の他のノードへ転送した方が良いか否かを判断する手順と、前記他のノードへ転送した方が良いと判断した場合に、前記宛先ノードへの候補経路の中から転送経路を選択する代わりに、前記他のノードへの転送経路を選択する手順とを含むことを特徴とするルーティング方法。
【請求項１１】
請求項７乃至１０のいずれか１項に記載のルーティング方法において、
前記第１の転送経路選択手順又は前記第２の転送経路選択手順は、前記転送経路に含まれない隣接ノードのキャッシュ断片を補完できると判断した場合に、自ノードの前記転送部に対して前記転送経路に前記コンテンツを転送するよう指示すると同時に、前記コンテンツを複製して前記隣接ノードに転送するよう指示する手順を含むことを特徴とするルーティング方法。
【請求項１２】
請求項７乃至１１のいずれか１項に記載のルーティング方法において、
前記第１の転送経路選択手順は、前記候補経路が複数存在し、候補経路ごとに前記キャッシュ断片の補完に必要なセグメントが異なる場合に、複数の転送経路を選択し、選択した各転送経路へ前記コンテンツの異なるセグメントを振り分けて転送するよう自ノードの前記転送部に指示する手順を含むことを特徴とするルーティング方法。
【請求項１３】
請求項７乃至１２のいずれか１項に記載のルーティング方法において、
前記第１の転送経路選択手順は、（１）前記候補経路上の中継ノードにおける前記コンテンツのキャッシュの有無、（２）前記候補経路上の中継ノードが前記ネットワークシステムから離脱した時間の割合であるネットワーク離脱率、（３）前記候補経路上の中継ノードに接続された隣接ノードの数、（４）前記候補経路上の中継ノードからの前記コンテンツに対する要求頻度およびこの中継ノードの隣接ノードからの前記コンテンツに対する要求頻度、（５）前記候補経路上の中継ノードのリソース状態の５つのパラメータのうち、少なくとも１つのパラメータに基づいて、前記候補経路の中から前記転送経路を選択することを特徴とするルーティング方法。
【請求項１４】
コンテンツをノード内のストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるルーティング方法であって、
各ノードは、コンテンツの転送開始時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する第１の候補経路決定手順と、
１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されているノードを含む候補経路を転送経路として優先的に選択する第１の転送経路選択手順と、
前記コンテンツをノード内の転送部から前記転送経路上の次ホップノードに転送する転送手順と、
前記コンテンツの転送途中で前記転送経路を変更する必要がある場合に、前記ルーティングテーブルを参照して候補経路を決定する第２の候補経路決定手順と、
この第２の候補経路決定手順で決定された１つ以上の候補経路のうち、前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されているノードを含む候補経路を転送経路として優先的に選択し、選択した転送経路へ前記コンテンツを転送するよう前記転送部に指示する第２の転送経路選択手順とを実行することを特徴とするルーティング方法。
【請求項１５】
請求項１４に記載のルーティング方法において、
前記第２の転送経路選択手順は、複数の前記候補経路上のノードに前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されている場合に、１つ以上のノードに蓄積されている前記キャッシュ断片の合計サイズを候補経路ごとに求め、この合計サイズに基づいて前記候補経路の中から転送経路を選択する手順を含むことを特徴とするルーティング方法。
【請求項１６】
請求項１４又は１５に記載のルーティング方法において、
前記第２の転送経路選択手順は、複数の前記候補経路上のノードに前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されている場合に、前記キャッシュ断片を蓄積しているノードの数を候補経路ごとに求め、このノードの数に基づいて前記候補経路の中から転送経路を選択する手順を含むことを特徴とするルーティング方法。
【請求項１７】
請求項１４乃至１６のいずれか１項に記載のルーティング方法において、
前記第２の転送経路選択手順は、前記コンテンツの宛先ノード以外の他のノードへ転送した方が良いか否かを判断する手順と、前記他のノードへ転送した方が良いと判断した場合に、前記宛先ノードへの候補経路の中から転送経路を選択する代わりに、前記他のノードへの転送経路を選択する手順とを含むことを特徴とするルーティング方法。
【請求項１８】
請求項１４乃至１７のいずれか１項に記載のルーティング方法において、
前記第２の転送経路選択手順は、前記転送経路に含まれない隣接ノードのキャッシュ断片を補完できると判断した場合に、自ノードの前記転送部に対して前記転送経路に前記コンテンツを転送するよう指示すると同時に、前記コンテンツを複製して前記隣接ノードに転送するよう指示する手順を含むことを特徴とするルーティング方法。
【請求項１９】
請求項１４乃至１８のいずれか１項に記載のルーティング方法において、
前記第２の転送経路選択手順は、（１）前記候補経路上のノードにおける前記コンテンツのキャッシュの有無、（２）前記候補経路上のノードが前記ネットワークシステムから離脱した時間の割合であるネットワーク離脱率、（３）前記候補経路上のノードに接続された隣接ノードの数、（４）前記候補経路上のノードからの前記コンテンツに対する要求頻度およびこのノードの隣接ノードからの前記コンテンツに対する要求頻度、（５）前記候補経路上のノードのリソース状態の５つのパラメータのうち、少なくとも１つのパラメータに基づいて、前記候補経路の中から前記転送経路を選択することを特徴とするルーティング方法。
【請求項２０】
コンテンツをストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるノードであって、
コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、
１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている次ホップノードを含む候補経路を転送経路として優先的に選択する経路選択手段と、
前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有することを特徴とするノード。
【請求項２１】
コンテンツをストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるノードであって、
ソースノードとして動作する場合に、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、
ソースノードとして動作する場合は、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている中継ノードを含む候補経路を転送経路として優先的に選択し、中継ノードとして動作する場合は、前記ソースノードによって選択された経路を転送経路として選択する経路選択手段と、
前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有することを特徴とするノード。
【請求項２２】
コンテンツをストレージにキャッシュとして蓄積してから転送するネットワークシステムにおけるノードであって、
コンテンツの転送を開始する場合又は前記コンテンツの転送途中で前記転送経路を変更する必要がある場合に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、
前記コンテンツの転送を開始する場合は、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されているノードを含む候補経路を転送経路として優先的に選択し、前記転送経路を変更する必要がある場合は、前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されているノードを含む候補経路を転送経路として優先的に選択する経路選択手段と、
前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有することを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送経路の途中のリンクの接続性が一時的に失われていてもエンド−エンド間の通信を可能にするＤＴＮ（Delay Tolerant Network）のように、コンテンツを一旦蓄積してから転送する種類のネットワークシステムに係り、特に蓄積したコンテンツをキャッシュとして再利用する場合のコンテンツの利用可能性を高めることができるルーティング方法およびノードに関するものである。
【背景技術】
【０００２】
従来より、不安定で信頼性が低いネットワークで信頼性が高いデータ転送を実現するネットワーク制御方式として、ＤＴＮ（Delay Tolerant Network）が知られている。ＤＴＮでは、転送するデータを中継ノードで一旦蓄積し、次のホップへの接続がない場合は中継ノードにデータを蓄積したまま転送を待機し、次のホップに接続された際にデータ転送を行うという方式をとることにより、エンド−エンド間の遅延は大きくなるものの、高いデータ配送確率を実現することができるという効果がある。
【０００３】
ＤＴＮでは、転送中継時にコンテンツ単位で蓄積・転送を行うと、コンテンツサイズが大きい場合に遅延が大きくなるため、コンテンツを単位サイズに断片化するフラグメントを行い、断片化されたデータ単位でパイプライン的に蓄積・転送を行うことが望ましいとされている。
ＤＴＮにおけるルーティング方法の例としては、非特許文献１に記載された方法がある。非特許文献１においては、ＤＴＮにおける様々なルーティング方法を評価している。
【０００４】
ＤＴＮにおいては、中継ノードでデータを蓄積しながら転送を行うため、中継ノードで蓄積したデータ（以下、コンテンツと呼ぶ）をキャッシュとして保存することにより、次回に他のノードが同一のコンテンツを要求した際に、該コンテンツを元々持っていたオリジンノードだけでなく、該コンテンツをキャッシュしているノードからもコンテンツを取得することができる。その結果、ＤＴＮでは、ネットワークが不安定な場合（例えばオリジンノードへの接続性が失われている場合）であっても、コンテンツの利用可能性を高めることができる。
【０００５】
【非特許文献１】S.Jain， K.Fall and R.Patra，「Routing in a Delay Tolerant Network」，In ACM Sigcomm 2004，Portland，OR，2004
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＤＴＮにおいては、中継ノードで蓄積したコンテンツをキャッシュとして保存する場合に、以下に挙げる問題点があった。
第１の問題点は、断片化されたデータ単位で蓄積・転送を行う場合に、コンテンツ転送途中で転送経路が切り替わると、コンテンツの一部だけしかキャッシュされない場合があるということである。
【０００７】
例えば、図１４のノードＡ１〜Ａ４がリンクＤ１〜Ｄ４で接続されているネットワークにおいて、コンテンツＣ１を経路Ｂ１に沿ってノードＡ１からノードＡ３まで転送するものとする。コンテンツＣ１には、「１」〜「９」のデータが連続的に含まれ、各データ単位で断片化されて転送される。このとき、転送途中で何らかの原因、例えばノードＡ１とノードＡ２との間のリンクＤ１が切断された等の原因により、転送経路が経路Ｂ１から経路Ｂ２へ切り替わったとする。この経路変更がデータ「１」〜「３」の転送が完了したところで発生したとすると、ノードＡ２にはデータ「１」〜「３」だけを含むキャッシュ断片Ｃ２が残り、ノードＡ４にはデータ「４」〜「９」だけを含むキャッシュ断片Ｃ３がキャッシュとして残る。
【０００８】
このような断片化したコンテンツのキャッシュは、そのままでは利用性に乏しいため、キャッシュとして残さずに廃棄してしまうか、あるいは断片化したキャッシュ同士を互いに補うように組み合わせて、完全なコンテンツとして再利用するという方法が考えられる。しかし、断片化したキャッシュを組み合わせる場合でも、断片化していない完全なキャッシュを残す場合と比べて、キャッシュの利用可能性は低くなる。以上のように、従来のＤＴＮルーティング方法では、最終宛先であるノードＡ３への到達可能性を高めるように制御することができるが、一方でキャッシュの利用可能性が低くなってしまうという問題点があった。
【０００９】
第２の問題点は、従来のＤＴＮルーティング方法を用いると、選択された転送経路上の中継ノードが、コンテンツをキャッシュとして保存するのに最適なノードになるとは限らないということである。
例えば、図１５のノードＡ５〜Ａ９がリンクＤ５〜Ｄ９で接続されているネットワークにおいて、ノードＡ５からノードＡ７まで、あるコンテンツを転送する際に、最短のホップ数となるのは、ノードＡ５→ノードＡ６→ノードＡ７という経路である。この場合、該コンテンツのキャッシュは、ノードＡ６に残ることになる。
【００１０】
しかしながら、このコンテンツの転送後、直ぐにノードＡ６がネットワークから離脱し、ノードＡ８やノードＡ９がネットワークに安定的に残留した場合、ノードＡ６に残されたコンテンツのキャッシュは全く利用されないことになる。この場合、コンテンツは、ノードＡ５→ノードＡ６→ノードＡ７の経路ではなく、ノードＡ５→ノードＡ８→ノードＡ９→ノードＡ７の経路で転送し、ノードＡ８やノードＡ９にコンテンツのキャッシュを残した方がネットワーク全体からみるとキャッシュの利用可能性の面では良かったことになる。このように、従来のＤＴＮルーティング方法では、コンテンツをキャッシュとして保存するのに最適な経路を選択するとは限らないという問題点があった。
【００１１】
本発明の目的は、コンテンツをノード内のストレージにキャッシュとして蓄積してから転送するネットワークシステムにおいて、ノードに保存されるコンテンツのキャッシュの利用可能性を高めることができるルーティング方法およびノードを提供することにある。
【課題を解決するための手段】
【００１２】
本発明のルーティング方法において、各ノードは、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手順と、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている次ホップノードを含む候補経路を転送経路として優先的に選択する転送経路選択手順と、前記コンテンツをノード内の転送部から前記転送経路上の次ホップノードに転送する転送手順とを実行することを特徴とする。
また、本発明のルーティング方法において、ソースノードは、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手順と、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている中継ノードを含む候補経路を転送経路として優先的に選択する第１の転送経路選択手順と、前記コンテンツをソースノード内の転送部から前記転送経路上の次ホップノードに転送する第１の転送手順とを実行し、中継ノードは、前記ソースノードによって選択された経路を転送経路として選択する第２の転送経路選択手順と、受信したコンテンツを中継ノード内の転送部から前記転送経路上の次ホップノードに転送する第２の転送手順とを実行することを特徴とする。
また、本発明のルーティング方法において、各ノードは、コンテンツの転送開始時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する第１の候補経路決定手順と、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されているノードを含む候補経路を転送経路として優先的に選択する第１の転送経路選択手順と、前記コンテンツをノード内の転送部から前記転送経路上の次ホップノードに転送する転送手順と、前記コンテンツの転送途中で前記転送経路を変更する必要がある場合に、前記ルーティングテーブルを参照して候補経路を決定する第２の候補経路決定手順と、この第２の候補経路決定手順で決定された１つ以上の候補経路のうち、前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されているノードを含む候補経路を転送経路として優先的に選択し、選択した転送経路へ前記コンテンツを転送するよう前記転送部に指示する第２の転送経路選択手順とを実行することを特徴とする。
【００１３】
また、本発明のノードは、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている次ホップノードを含む候補経路を転送経路として優先的に選択する経路選択手段と、前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有するものである。
また、本発明のノードは、ソースノードとして動作する場合に、コンテンツの転送時に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、ソースノードとして動作する場合は、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されている中継ノードを含む候補経路を転送経路として優先的に選択し、中継ノードとして動作する場合は、前記ソースノードによって選択された経路を転送経路として選択する経路選択手段と、前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有するものである。
また、本発明のノードは、コンテンツの転送を開始する場合又は前記コンテンツの転送途中で前記転送経路を変更する必要がある場合に、各宛先ノードへの経路が登録されたルーティングテーブルを参照して、転送経路の候補となる経路を決定する候補経路決定手段と、前記コンテンツの転送を開始する場合は、１つ以上の前記候補経路のうち、前記コンテンツの少なくとも一部がキャッシュ断片として蓄積されているノードを含む候補経路を転送経路として優先的に選択し、前記転送経路を変更する必要がある場合は、前記転送経路を変更する前の転送によって前記キャッシュ断片が蓄積されているノードを含む候補経路を転送経路として優先的に選択する経路選択手段と、前記コンテンツを前記転送経路上の次ホップノードに転送する転送手段とを有するものである。
【発明の効果】
【００１４】
本発明によれば、キャッシュ断片の発生を抑制し、完全なキャッシュをより多く残すことでキャッシュの利用可能性を高めることができる。その理由は、コンテンツの転送経路を決定する際に、候補経路上のノードにおいて、該コンテンツのキャッシュ断片が存在するかどうかをチェックし、キャッシュ断片が存在する場合は、そのキャッシュ断片を補完して完全なキャッシュとなるような経路を優先的に選択するからである。また、もう１つの理由は、コンテンツの転送途中で転送経路を変更し代替経路へ切り替える際に、代替となる候補経路上の中継ノードにおいて、経路変更前に残されたキャッシュ断片があるかどうかをチェックし、もしキャッシュ断片があれば、そのキャッシュ断片を補完して完全なキャッシュとなるような経路を優先的に選択するからである。これにより、本発明では、転送経路の変化などの原因でコンテンツの一部が断片化されてキャッシュされた場合でも、キャッシュの利用可能性を高めることができる。
【００１５】
また、本発明では、経路上のノードがコンテンツをキャッシュとして保存した場合にキャッシュ効果が高くなる転送経路を選択することができる。その理由は、（１）候補経路上のノードにおけるコンテンツのキャッシュの有無、（２）候補経路上のノードのネットワーク離脱率、（３）候補経路上のノードに接続された隣接ノードの数、（４）候補経路上のノードからのコンテンツに対する要求頻度およびこのノードの隣接ノードからのコンテンツに対する要求頻度、（５）候補経路上のノードのリソース状態の５つのパラメータのうち、少なくとも１つのパラメータを考慮して転送経路を選択するからである。
【発明を実施するための最良の形態】
【００１６】
［第１の実施の形態］
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は本発明の第１の実施の形態に係るＤＴＮの構成を示すブロック図である。
ＤＴＮは、ノードＡ１１〜Ａ１４と、ノードＡ１１とＡ１２間を接続するリンクＤ１２と、ノードＡ１１とＡ１４間を接続するリンクＤ１４と、ノードＡ１２とＡ１３間を接続するリンクＤ２３と、ノードＡ１２とＡ１４間を接続するリンクＤ２４と、ノードＡ１３とＡ１４間を接続するリンクＤ３４とから構成される。
【００１７】
ノードＡ１１は、ＤＴＮ転送部Ａ１１１と、経路選択部Ａ１１２と、ルーティングテーブルＡ１１３と、キャッシュテーブルＡ１１４と、キャッシュ情報交換部Ａ１１５と、ストレージＡ１１６とから構成される。経路選択部Ａ１１２は、転送経路の候補となる候補経路を決定する候補経路決定手段を含む。ノードＡ１２〜Ａ１４については、ノードＡ１１と同一の構成をとるため、説明は省略する。
【００１８】
各ノードＡ１１〜Ａ１４のＤＴＮ転送部Ａ１１１は、コンテンツの転送を行う機能を備えている。コンテンツの転送時、ＤＴＮ転送部Ａ１１１は、受信したデータを一旦ストレージＡ１１６へ蓄積し、このデータを経路選択部Ａ１１２により解決された次ホップノードへ転送する。この際、ＤＴＮ転送部Ａ１１１は、コンテンツ全体を蓄積してから転送するのではなく、断片化されたブロック単位で蓄積・転送を行う。
【００１９】
例えば、ＤＴＮ転送部Ａ１１１は、６４キロバイトのブロック単位でコンテンツの蓄積・転送を行うものとすると、５７６キロバイトのコンテンツを転送する際は、コンテンツを９つのブロックに分けて蓄積・転送を行う。このように、本実施の形態では、断片化されたブロック単位で蓄積・転送を行うことにより、転送途中でブロックの消失が発生して再送を行う場合でも、コンテンツ全体を再送する必要はなく、消失したブロックだけを再送すればいいようになり、ネットワークにかかる負荷を下げることができる。また、中継時にコンテンツ全体を蓄積してから次ホップノードへ転送する処理を行うと、エンド−エンド間の転送遅延がホップ数に比例して増大する。これに対して、本実施の形態のように小さいブロック単位で蓄積・転送する処理を繰り返すこと（すなわち、あるブロックを受信し蓄積したら即座に転送する動作をパイプライン的に繰り返すこと）により、エンド−エンド間の転送遅延を大幅に削減することが可能となる。
【００２０】
ＤＴＮ転送部Ａ１１１によってストレージＡ１１６へ蓄積されたコンテンツは、キャッシュとして再利用される。この際、ストレージＡ１１６に既に同一のコンテンツがキャッシュとして蓄積されている場合は、改めてキャッシュとして蓄積する必要はない。ただし、ＤＴＮ転送部Ａ１１１は、受信したコンテンツと同一のコンテンツの一部だけが断片化されてキャッシュとしてストレージＡ１１６に蓄積されている場合は、受信したコンテンツからキャッシュの欠落部分を取得して、この取得した部分をストレージＡ１１６に蓄積することにより、キャッシュの欠落部分を補完する。
【００２１】
なお、本発明におけるコンテンツの転送とは、中継ノードとして転送するだけではなく、ソースノードとしてコンテンツを送信する場合も含んでいる。ただし、ソースノードとしてコンテンツを送信する場合はストレージＡ１１６への蓄積処理は必要ない。
【００２２】
次に、経路選択部Ａ１１２は、ＤＴＮ転送部Ａ１１１の要求に応じて、転送しようとするコンテンツに対応する転送先の隣接ノード、すなわち次ホップノードを選択し、選択した次ホップノードをＤＴＮ転送部Ａ１１１に通知する。経路選択部Ａ１１２は、ルーティングテーブルＡ１１３を参照することにより、コンテンツの宛先に対応する転送経路の候補となる候補経路を解決する。次に、経路選択部Ａ１１２は、キャッシュテーブルＡ１１４を参照することにより、転送しようとするコンテンツの、各経路におけるキャッシュ状況を調べる。そして、経路選択部Ａ１１２は、各経路のキャッシュ状況に基づいて、候補経路の中から最適な経路を選択する。
【００２３】
複数の候補経路の中から最適な経路を選択する方法としては、様々なアルゴリズムが考えられる。例えば、候補経路のうち、転送しようとするコンテンツのキャッシュ断片が経路上の中継ノードに存在する経路を優先的に選択するという方法が考えられる。また、複数の候補の経路上のノードにキャッシュ断片が存在する場合は、次ホップノードに存在するキャッシュ断片のサイズが大きい方の経路を選択するという方法も考えられる。このように、次ホップノードのキャッシュ断片のサイズが大きい方の経路を選択すれば、キャッシュ断片を補完できる可能性が高くなる。また、逆に次ホップノードに存在するキャッシュ断片のサイズが小さい方の経路を選択してもよい。キャッシュ断片のサイズが小さい方の経路を選択すれば、キャッシュ断片が補完される量が大きくなる。
【００２４】
なお、各中継ノードの経路選択部Ａ１１２で次ホップノードの選択を行うホップバイホップ型のルーティングではなく、ソースノードの経路選択部Ａ１１２でソースルート型のルーティングを行ってもよい。ソースルート型のルーティングを行う場合は、ソースノードの経路選択部Ａ１１２で予め転送経路を指定し、その経路に沿って転送が行われる。この場合、転送経路情報は、データのヘッダ情報としてエンコードされており、中継ノードの経路選択部Ａ１１２は、受信したデータのヘッダ情報を参照して次ホップノードを選択する。
【００２５】
ルーティングテーブルＡ１１３には、ＤＴＮ転送部Ａ１１１が受信したデータの次ホップノードを解決するための経路エントリが登録されている。ルーティングテーブルＡ１１３の各エントリは、ＡＯＤＶ（Ad Hoc On Demand Distance Vector algorithm）やＯＬＳＲ（Optimized Link State Routing protocol）などのＭＡＮＥＴ（Mobile Adhoc NETwork）ルーティングプロトコルにより設定されてもよいし、あるいはＤＴＮ用の独自のルーティングプロトコルにより設定されてもよい。
【００２６】
ルーティングテーブルＡ１１３の例を図２および図３に示す。まず、図２に示すルーティングテーブルＡ１１３は、ホップバイホップ型のルーティングが行われる場合のテーブルである。ホップバイホップ型のルーティングを行う場合、各ノードの経路選択部Ａ１１２は、コンテンツの転送時に自ノードのルーティングテーブルＡ１１３を参照する。図２のルーティングテーブルＡ１１３には、各宛先への最短ホップとなる経路が次ホップノードの形で登録されている。例えば、ノードＡ１２への経路は、次ホップノードがノードＡ１２で、次ホップノードのＩＰアドレスが１０．０．０．１２と登録されている。また、ノードＡ１３への経路としては、同一ホップ数の２つの候補経路が登録されている。一方の候補経路では、次ホップノードがノードＡ１２で、そのＩＰアドレスが１０．０．０．１２であり、他の候補経路では、次ホップノードがノードＡ１４で、そのＩＰアドレスが１０．０．０．１４である。
【００２７】
次に、図３に示すルーティングテーブルＡ１１３は、ソースルート型のルーティングが行われる場合のテーブルである。ソースルート型のルーティングを行う場合、コンテンツを送信するソースノードの経路選択部Ａ１１２は、自ノードのルーティングテーブルＡ１１３を参照して経路を選択し、ソースノードのＤＴＮ転送部Ａ１１１は、経路選択部Ａ１１２からの通知に応じて、途中の中継ノードをヘッダ情報によって指定した形でコンテンツを送信する。図３のルーティングテーブルＡ１１３には、各宛先への候補経路が全て登録されている。例えば、ノードＡ１２への経路としては、３つの候補経路が登録されている。１番目の候補経路では、次ホップノードがノードＡ１２で、そのＩＰアドレスが１０．０．０．１２であり、２番目、３番目の候補経路では、次ホップノードがノードＡ１４で、そのＩＰアドレスが１０．０．０．１４である。また、１番目の候補経路では、中継ノードが存在せず、２番目の候補経路では、中継ノードがノードＡ１４であり、３番目の候補経路では、中継ノードがノードＡ１４とノードＡ１３であることが分かる。
【００２８】
キャッシュテーブルＡ１１４は、ネットワーク内の他のノードが持っているコンテンツキャッシュを登録したテーブルである。キャッシュテーブルＡ１１４内の各エントリは、キャッシュ情報交換部Ａ１１５から登録される。キャッシュテーブルＡ１１４に登録されるキャッシュのエントリは、ネットワーク内の全てのノードのキャッシュに関するものでもよいし、一部のノードのキャッシュに関するものであってもよい。キャッシュテーブルＡ１１４の例を図４に示す。
【００２９】
図４に示すキャッシュテーブルＡ１１４には、ノードＡ１２〜Ａ１４のそれぞれにキャッシュとして蓄積されているコンテンツの識別番号（ＩＤ）、コンテンツのサイズ、およびキャッシュ状態の詳細が登録されている。キャッシュテーブルＡ１１４によれば、例えばノードＡ１２にはコンテンツ１とコンテンツ２がキャッシュとして蓄積されており、そのサイズはそれぞれ５７６キロバイト、１０２４キロバイトであることが分かる。このときのサイズは、コンテンツ本来のサイズであり、コンテンツが断片化されてその一部がキャッシュとして蓄積されている場合は、蓄積されている断片のサイズはキャッシュテーブルＡ１１４に登録されているサイズよりも小さくなる。
【００３０】
また、図４のキャッシュテーブルＡ１１４によれば、ノードＡ１２に蓄積されているコンテンツ１のキャッシュ状態は０−５７５となっている。このキャッシュ状態は、０キロバイト目から５７５キロバイト目まで蓄積された状態、すなわち５７６キロバイトのコンテンツ１の全てが蓄積された状態であることを示している。また、ノードＡ１２に蓄積されているコンテンツ２のキャッシュ状態は０−１２７となっている。このキャッシュ状態は、１０２４キロバイトのコンテンツ２のうち、最初の１２８キロバイト分しか蓄積されていないことを示している。
【００３１】
キャッシュ情報交換部Ａ１１５は、ネットワークの他のノードおよび自ノードが持っているコンテンツのキャッシュのリストを他のノードと交換する。キャッシュ情報交換部Ａ１１５は、交換したキャッシュのリストをキャッシュテーブルＡ１１４へ登録する。キャッシュ情報交換部Ａ１１５がキャッシュリストを交換する方法としては、ノード間で定期的に交換されるＨｅｌｌｏメッセージと一緒に互いのノードが持つキャッシュリストを交換する方法や、キャッシュリスト交換の専用のメッセージを定義し、キャッシュリストの変更をトリガとして他のノードとキャッシュリストの同期をとる方法などが考えられる。キャッシュ情報交換部Ａ１１５は、他の全部のノードとキャッシュリストを交換してもよいし、一部のノードとだけ交換してもよい。一部のノードと交換する場合には、例えば隣接ノードとだけキャッシュリストを交換するなどの方法が考えられる。
【００３２】
ストレージＡ１１６は、オリジンコンテンツやキャッシュを蓄積する機能を有する。ＤＴＮ転送部Ａ１１１で受信したコンテンツは、ストレージＡ１１６へ蓄積される。ストレージＡ１１６の例としては、ハードディスク装置やフラッシュメモリなどが考えられる。
リンクＤ１２，Ｄ１４，Ｄ２３，Ｄ３４は、図１に示すようにノードＡ１１〜Ａ１４の各々を接続している。本実施の形態では、各リンクは、有線リンクのような安定した接続性をもつリンクではなく、無線リンクのような不安定な接続性をもつリンクであるとし、途中で切断したり、接続しているノードが動的に変化したりするものとする。
【００３３】
次に、図５を参照して、本実施の形態において図１のノードＡ１１がコンテンツを転送する動作を詳細に説明する。図５の例では、ホップバイホップ型のルーティングが行われるものとして説明する。
まず、ノードＡ１１のＤＴＮ転送部Ａ１１１は、中継ノードとしての転送時またはソースノードとしての送信時にコンテンツを送信する際（図５のステップＳ１０１）、経路選択部Ａ１１２に経路を問い合わせる（ステップＳ１０２）。
【００３４】
この問い合わせに応じて、経路選択部Ａ１１２は、ルーティングテーブルＡ１１３を参照し、転送しようとするコンテンツの宛先ノードに対応する候補経路を決定する（ステップＳ１０３）。ここでは、転送しようとするコンテンツの宛先をノードＡ１３とし、ルーティングテーブルＡ１１３は図２と同一の状態にあるものとする。このため、経路選択部Ａ１１２は、転送しようとするコンテンツに対する候補経路として、次ホップがノードＡ１２の経路と、次ホップがノードＡ１４の経路の２つを決定する。
【００３５】
次に、経路選択部Ａ１１２は、キャッシュテーブルＡ１１４を参照し、ステップＳ１０３で決定した候補経路のそれぞれについて次ホップノードに蓄積されたキャッシュを調べ（ステップＳ１０４）、転送しようとするコンテンツのキャッシュが次ホップノードに存在するか否かを判定する（ステップＳ１０５）。ここでは、転送しようとするコンテンツのキャッシュ断片が次ホップノードに存在する場合に、より大きいサイズのキャッシュ断片を持つ次ホップノードへコンテンツを優先的に転送する、というアルゴリズムが採られているものとする。また、キャッシュテーブルＡ１１４は図４と同一の状態にあるものとし、転送しようとするコンテンツはコンテンツ２であるとする。
【００３６】
図４に示したキャッシュテーブルＡ１１４によれば、ノードＡ１２とノードＡ１４の両方共に、コンテンツ２のキャッシュの断片が存在する。ノードＡ１２には、合計１０２４キロバイトのコンテンツ２のうち、０バイト目から１２７キロバイト目までの１２８キロバイトのキャッシュ断片が存在し、ノードＡ１４には、１２８キロバイト目から５１１キロバイト目までの３８４キロバイトのキャッシュ断片が存在することが分かる。
【００３７】
経路選択部Ａ１１２は、ノードＡ１４の方がノードＡ１２より大きなサイズのキャッシュ断片を蓄積しているので、ノードＡ１４を次ホップノードとする経路を選択し、選択した経路をＤＴＮ転送部Ａ１１１に通知する（ステップＳ１０６）。ＤＴＮ転送部Ａ１１１は、経路選択部Ａ１１２から通知された次ホップノードＡ１４にコンテンツを転送する。また、経路選択部Ａ１１２は、ステップＳ１０５において転送しようとするコンテンツのキャッシュが候補経路上の次ホップノードに存在しないと判定した場合、候補経路の中からいずれか１つの経路をランダムに選択し、選択した経路をＤＴＮ転送部Ａ１１１に通知する（ステップＳ１０７）。
【００３８】
以上で、ノードＡ１１の動作が終了する。次ホップノードＡ１４もノードＡ１１と同様に動作し、受信したコンテンツをストレージＡ１１６に蓄積してからノードＡ１３にコンテンツを転送する。前述のとおり、図５に示した動作は各ノードがコンテンツをホップバイホップ型のルーティングにより転送する動作である。次に、ソースルート型のルーティングによりコンテンツが転送される場合について図６を参照して説明する。
まず、ノードＡ１１のＤＴＮ転送部Ａ１１１は、ソースノードとしての送信時にコンテンツを送信する際（図６のステップＳ２０１）、経路選択部Ａ１１２に経路を問い合わせる（ステップＳ２０２）。
【００３９】
この問い合わせに応じて、経路選択部Ａ１１２は、ルーティングテーブルＡ１１３を参照し、転送しようとするコンテンツの宛先ノードに対応する候補経路を決定する（ステップＳ２０３）。ここでは、転送しようとするコンテンツの宛先をノードＡ１２とし、ルーティングテーブルＡ１１３は図３と同一の状態にあるものとする。このため、経路選択部Ａ１１２は、転送しようとするコンテンツに対する候補経路として、中継ノードなしに直接ノードＡ１２へ至る経路と、ノードＡ１４を経てノードＡ１２へ至る経路と、ノードＡ１４からノードＡ１３を経てノードＡ１２へ至る経路の３つを決定する。
【００４０】
次に、経路選択部Ａ１１２は、キャッシュテーブルＡ１１４を参照し、ステップＳ２０３で決定した候補経路のそれぞれについて中継ノードに蓄積されたコンテンツのキャッシュを調べ（ステップＳ２０４）、転送しようとするコンテンツのキャッシュが中継ノードに存在するか否かを判定する（ステップＳ２０５）。ここでは、転送しようとするコンテンツのキャッシュ断片が中継ノードに存在する場合に、各中継ノードにおける当該コンテンツのキャッシュ断片の合計サイズが最も大きい候補経路へコンテンツを優先的に転送する、というアルゴリズムが採られているものとする。また、キャッシュテーブルＡ１１４は図４と同一の状態にあるものとし、転送しようとするコンテンツはコンテンツ３であるとする。
【００４１】
図４に示したキャッシュテーブルＡ１１４によれば、ノードＡ１３とノードＡ１４にコンテンツ３のキャッシュが存在する。ノードＡ１３には、合計５１２キロバイトのコンテンツ３のうち、０キロバイト目から６３キロバイト目までの６４キロバイト、および３８４キロバイト目から５１１キロバイト目までの１２８キロバイトの合計１９２キロバイトのキャッシュ断片が存在することが分かる。また、ノードＡ１４には、０キロバイト目から５１１キロバイト目までのコンテンツ３全体が蓄積されていることが分かる。
【００４２】
経路選択部Ａ１１２は、全ての候補経路の中で、転送しようとするコンテンツのキャッシュ断片の合計サイズが最も大きい経路を検索すると、ノードＡ１４とノードＡ１３を経てノードＡ１２へ至る経路でキャッシュ断片の合計サイズが最も大きくなるため、この経路を転送経路として選択しＤＴＮ転送部Ａ１１１に通知する（ステップＳ２０６）。ＤＴＮ転送部Ａ１１１は、経路選択部Ａ１１２から通知された転送経路の情報をコンテンツのヘッダ情報に設定して、コンテンツを転送経路上の次ホップノードＡ１４に転送する。また、経路選択部Ａ１１２は、ステップＳ２０５において転送しようとするコンテンツのキャッシュが候補経路上の次ホップノードに存在しないと判定した場合、候補経路の中からいずれか１つの経路をランダムに選択し、選択した経路をＤＴＮ転送部Ａ１１１に通知する（ステップＳ２０７）。
【００４３】
以上で、ノードＡ１１の動作が終了する。中継ノードであるノードＡ１４とノードＡ１３では、経路選択部Ａ１１２は、受信したブロックのヘッダ情報を参照して次ホップノードを選択する。
図６に示した動作では、転送しようとするコンテンツのキャッシュ断片が中継ノードに存在する場合に、各中継ノードにおける当該コンテンツのキャッシュ断片の合計サイズが最も大きい候補経路へコンテンツを優先的に転送する場合について説明したが、転送しようとするコンテンツのキャッシュ断片を持つノードの数が最も多い候補経路へコンテンツを優先的に転送するというアルゴリズムを採用してもよい。
【００４４】
次に、本実施の形態の効果について説明する。本実施の形態では、コンテンツの転送経路を決定する際に、候補経路上のノードに該コンテンツのキャッシュ断片が存在するかどうかをチェックし、キャッシュ断片が存在する場合は、そのキャッシュ断片を補完して完全なキャッシュとなるような経路を優先的に選択する。そのため、従来はキャッシュとして利用できなかったキャッシュ断片を、完全なキャッシュとなるように補完することができ、キャッシュとして利用可能にすることができる。また、本実施の形態では、途中のノードにキャッシュ断片が既に存在する経路を優先的に選択することにより、転送されるコンテンツにとっても、途中で経路が変わった場合にキャッシュ断片が残る可能性が相対的に小さくなることが期待できる。すなわち、既に存在しているキャッシュ断片と、経路変更により残ったキャッシュ断片とを合わせて完全なキャッシュとして利用できる可能性が高くなる。
【００４５】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。本実施の形態においても、ＤＴＮ及びノードの構成は第１の実施の形態と同様であるので、図１の符号を用いて説明する。
第１の実施の形態では、経路選択部Ａ１１２は、ルーティングテーブルＡ１１３を参照して、コンテンツの宛先までの経路を解決したが、必ずしもコンテンツの宛先までの経路を解決する必要はない。
【００４６】
ＤＴＮでは、ソースノードから宛先ノードまでのコンテンツの到達性がなくても、一旦途中のノードまで転送を行って途中のノードにコンテンツを蓄積しておき、蓄積した途中のノードから宛先ノードまでの到達性が生まれたタイミングでコンテンツの転送を再開するという処理が可能である。したがって、経路選択部Ａ１１２が、宛先ノードまでの経路が存在しないと判断した場合や、宛先ノードへの経路が存在しても他のノードを宛先とする経路の方がいいと判断した場合は、宛先ノード以外の他のノードまでの経路を選択することもできる。これらの場合、経路選択部Ａ１１２によって選択される経路は、ルーティングテーブルＡ１１３にコンテンツの宛先までの経路として登録された経路の中からではなく、コンテンツの宛先ノード以外のノードへの経路の中から選ばれる。
【００４７】
例えば、図１のノードＡ１１において、コンテンツの宛先がノードＡ１３であるときに、リンクＤ２３およびリンクＤ３４が切断し、ノードＡ１３への経路が存在しなかったとする。この場合は、ノードＡ１２とノードＡ１４のいずれかまでコンテンツを転送しておき、リンクＤ２３またはリンクＤ３４の接続が復旧したときにコンテンツの転送を再開することが好ましいと考えられる。ノードＡ１１の経路選択部Ａ１１２は、ノードＡ１２とノードＡ１４のいずれにコンテンツを転送するかの判断において、キャッシュテーブルＡ１１４を参照し、ノードＡ１２への転送経路とノードＡ１４への転送経路を比較し、転送しようとするコンテンツのキャッシュ断片がより多く存在する転送経路を優先的に選択する。
【００４８】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。本実施の形態においても、ＤＴＮ及びノードの構成は第１の実施の形態と同様であるので、図１の符号を用いて説明する。
ＤＴＮでは、転送途中でコンテンツを複製し、同一のコンテンツを途中で分岐させて転送することも可能である。そこで、キャッシュ断片を補うために転送途中でコンテンツを複製し、分岐した経路を用いてコンテンツを転送する方法が考えられる。例えば、図１のノードＡ１１からノードＡ１３までコンテンツを転送する際に、リンクＤ１４とリンクＤ３４が切断している場合、転送経路としてはノードＡ１１からノードＡ１２を経由してノードＡ１３へ至る経路しか利用できない。このときに、転送しようとするコンテンツのキャッシュ断片がノードＡ１４に存在している場合は、ノードＡ１２を経由してノードＡ１４にもコンテンツを転送し、ノードＡ１４のキャッシュ断片を補完するようにしてもよい。
【００４９】
ノードＡ１２の経路選択部Ａ１１２は、ノードＡ１１から受信したコンテンツを転送しようとする際に、キャッシュテーブルＡ１１４を参照し、転送しようとするコンテンツのキャッシュ断片がノードＡ１４に存在し、このキャッシュ断片を補完するために、コンテンツをノードＡ１３だけでなく、ノードＡ１４にも転送することを決定した場合、ＤＴＮ転送部Ａ１１１に対してノードＡ１１から受信したコンテンツをノードＡ１３に転送するよう指示すると共に、受信したコンテンツを複製してノードＡ１４にも転送するよう指示する。この指示に応じて、ノードＡ１２のＤＴＮ転送部Ａ１１１は、ノードＡ１１から受信したコンテンツをノードＡ１３に転送すると共に、このコンテンツを複製してノードＡ１４に転送する。
【００５０】
このようなコンテンツの複製と転送に際しては、ノードＡ１４に必ずしもコンテンツ全体を転送する必要はなく、キャッシュテーブルＡ１１４を参照してキャッシュ断片の不足したセグメントを特定し、この不足したセグメントだけをノードＡ１４に転送するようにしてもよい。なお、セグメントとは、コンテンツを分割した１つ以上のブロックからなるデータ単位のことを言う。不足したセグメントの特定は、ソースノードであるノードＡ１１の経路選択部Ａ１１２で行ってもよいし、中継ノードであるノードＡ１２の経路選択部Ａ１１２で行ってもよい。このようにコンテンツを複製して複数の経路に転送することにより、本実施の形態では、キャッシュ断片を持つノードが必ずしもソースノードから宛先ノードへの転送経路上に存在しない場合でも、キャッシュ断片を補完することが可能となる。
【００５１】
［第４の実施の形態］
次に、本発明の第４の実施の形態について説明する。本実施の形態においても、ＤＴＮ及びノードの構成は第１の実施の形態と同様であるので、図１の符号を用いて説明する。
ＤＴＮでは、コンテンツのセグメントごとに異なる経路を通って転送することも可能である。そこで、各候補経路上の中継ノードに、転送しようとするコンテンツのキャッシュ断片が存在し、候補経路ごとにキャッシュ断片を補完するために必要なセグメントが異なる場合に、候補経路ごとに不足したコンテンツのセグメントを最大限補えるように複数の経路を選択し、各経路へコンテンツのセグメントを振り分けるという転送方法をとることもできる。
【００５２】
例えば１つの例として、図１のノードＡ１１においてホップバイホップ型のルーティングを行う場合に、転送しようとするコンテンツはコンテンツ２であり、コンテンツ２の宛先はノードＡ１３であり、ルーティングテーブルＡ１１３とキャッシュテーブルＡ１１４はそれぞれ図２、図４と同一の状態にあるものとする。キャッシュテーブルＡ１１４を参照すると、ノードＡ１２には、コンテンツ２の０キロバイト目から１２７キロバイト目までのキャッシュ断片が存在し、１２８キロバイト目から１０２３キロバイト目までのセグメントが不足していることが分かる。一方、ノードＡ１４には、コンテンツ２の１２８キロバイト目から５１１キロバイト目までのキャッシュ断片が存在し、０キロバイト目から１２７キロバイト目までのセグメントと５１２キロバイト目から１０２３キロバイト目までのセグメントが不足していることが分かる。
【００５３】
そこで、ノードＡ１１の経路選択部Ａ１１２は、コンテンツ２の０キロバイト目から１２７キロバイト目までのセグメントを、次ホップがノードＡ１４である経路へ転送することを決定すると共に、コンテンツ２の１２８キロバイト目から１０２３キロバイト目までのセグメントを、次ホップがノードＡ１２である経路へ転送することを決定する。このような転送がノードＡ１１のＤＴＮ転送部Ａ１１１によって行われると、ノードＡ１２では、コンテンツ２の不足したセグメントはなくなり、完全なキャッシュとなる。また、ノードＡ１４では、コンテンツ２の不足したセグメントは５１２キロバイト目から１０２３キロバイト目までのセグメントだけに減少する。
【００５４】
また、２つ目の例として、図１のノードＡ１１においてソースルート型のルーティングを行う場合に、転送しようとするコンテンツはコンテンツ２であり、コンテンツ２の宛先はノードＡ１３であり、ルーティングテーブルＡ１１３とキャッシュテーブルＡ１１４はそれぞれ図３、図４と同一の状態にあるものとする。ノードＡ１２，Ａ１４に存在するコンテンツ２のキャッシュ断片と、ノードＡ１２，Ａ１４で不足しているコンテンツ２のセグメントは、上記のとおりである。
【００５５】
そこで、ノードＡ１１の経路選択部Ａ１１２は、コンテンツ２の０キロバイト目から１２７キロバイト目までのセグメントを、ノードＡ１４を経てノードＡ１３へ至る経路へ転送することを決定し、コンテンツ２の１２８キロバイト目から５１１キロバイト目までのセグメントを、ノードＡ１２からノードＡ１４を経てノードＡ１３へ至る経路へ転送することを決定し、コンテンツ２の５１２キロバイト目から１０２３キロバイト目までのセグメントを、ノードＡ１２を経てノードＡ１３へ至る経路へ転送することを決定する。このような転送がノードＡ１１のＤＴＮ転送部Ａ１１１によって行われると、ノードＡ１２，Ａ１４におけるキャッシュ断片の不足したセグメントが、１度の転送で全て補完されることになる。このように各経路へコンテンツのセグメントを振り分けて転送することにより、本実施の形態では、キャッシュ断片を持つノードが複数あり、それぞれのノードで異なるセグメントが不足している場合に、少ない数のコンテンツの転送で不足しているセグメントを補完することが可能となる。
【００５６】
［第５の実施の形態］
次に、本発明の第５の実施の形態について説明する。本実施の形態においても、ＤＴＮ及びノードの構成は第１の実施の形態と同様であるので、図１の符号を用いて説明する。
第１の実施の形態では、複数の候補経路の中から最適な経路を選択する際に、候補経路上の次ホップノード又は中継ノードにおけるキャッシュ断片の有無や、キャッシュ断片のサイズに基づいて経路が選択されるものとして説明したが、その他、様々なパラメータに基づいて経路の選択を行うことができる。以下にその例を挙げる。
【００５７】
経路選択に用いる第１のパラメータは、候補経路上の次ホップノード（ホップバイホップ型のルーティングの場合）あるいは候補経路上の１つ以上の中継ノード（ソースルート型のルーティングの場合）におけるコンテンツのキャッシュの有無である。
第１の実施の形態では、キャッシュ断片をできるだけ補完するという方針で転送経路を選択したが、本実施の形態では、できるだけ新しいキャッシュを生成するという方針で転送経路を選択する。
【００５８】
例えば、ルーティングテーブルＡ１１３とキャッシュテーブルＡ１１４がそれぞれ図２、図４と同一の状態にあり、ノードＡ１１がノードＡ１３を宛先としてコンテンツ３を転送する場合を考える。この場合、ノードＡ１４を次ホップノードとする経路を選択すると、ノードＡ１４には既にコンテンツ３の全てがキャッシュとして蓄積されているので、ノードＡ１４に新しいキャッシュが蓄積される可能性は無い。これに対して、ノードＡ１２を次ホップノードとする経路を選択すると、ノードＡ１２にはコンテンツ３のキャッシュが存在しないので、中継転送時にノードＡ１２に新しいキャッシュが蓄積される可能性がある。
【００５９】
そこで、ノードＡ１１の経路選択部Ａ１１２は、コンテンツ３を転送しようとする際に、キャッシュテーブルＡ１１４を参照し、コンテンツ３のキャッシュ断片がノードＡ１４にあってノードＡ１２に無く、ノードＡ１２の方が新しいキャッシュが生成される可能性が高いと判断すると、ノードＡ１２を次ホップノードとする経路を優先的に選択する。この選択に応じてノードＡ１１のＤＴＮ転送部Ａ１１１がコンテンツ３をノードＡ１２に転送すると、ノードＡ１２に新しいキャッシュが蓄積される。
【００６０】
［第６の実施の形態］
次に、本発明の第６の実施の形態について説明する。図７は本発明の第６の実施の形態に係るＤＴＮの構成を示すブロック図である。本実施の形態では、経路選択に用いる第２のパラメータを説明する。第２のパラメータは、候補経路上の次ホップノード（ホップバイホップ型のルーティングの場合）あるいは候補経路上の１つ以上の中継ノード（ソースルート型のルーティングの場合）のネットワーク離脱率である。ネットワーク上の各ノードは、電源が切れたり、電波が届かなくなって全ての隣接ノードとのリンクが切断されたりして、ネットワークから離脱することがある。ノードのネットワーク離脱率とは、ネットワークの稼働時間に対して当該ノードがネットワークから離脱している時間の割合である。
【００６１】
本実施の形態では、図７に示すようにノードＡ１１には、第１の実施の形態の構成に加えて、ネットワーク内の各ノードにおけるネットワーク離脱率の情報を他のノードと交換するネットワーク離脱率交換部Ａ１１７と、各ノードのネットワーク離脱率を記憶するネットワーク離脱率テーブルＡ１１８とが備えられている。ノードＡ１２〜Ａ１４の構成は、ノードＡ１１と同一である。
【００６２】
本実施の形態においてネットワーク離脱率を利用して経路を選択する方法としては、ネットワーク離脱率の低いノードを次ホップノード又は１つ以上の中継ノードとして含む転送経路を優先的に選ぶという方法が考えられる。すなわち、ホップバイホップ型のルーティングを行う場合、各ノードの経路選択部Ａ１１２は、ネットワーク離脱率テーブルＡ１１８を参照し、複数の候補経路のうち次ホップノードのネットワーク離脱率が最も低い経路を選択する。また、ソースルート型のルーティングを行う場合、ソースノードの経路選択部Ａ１１２は、ネットワーク離脱率テーブルＡ１１８を参照し、複数の候補経路のうち中継ノードのネットワーク離脱率の合計が最も低い経路を選択する。あるいは、ソースノードの経路選択部Ａ１１２は、ネットワーク離脱率テーブルＡ１１８を参照して、中継ノードのネットワーク離脱率の最小値を候補経路ごとに求め、ネットワーク離脱率の最小値が最も低い経路を選択する。
【００６３】
このような経路の選択に応じてＤＴＮ転送部Ａ１１１がコンテンツを転送することにより、本実施の形態では、転送途中で次ホップノードや中継ノードがネットワークから離脱してコンテンツ転送が失敗する可能性をできるだけ低くすることができ、また次ホップノードや中継ノードにキャッシュを蓄積できる可能性を高めることができる。
【００６４】
［第７の実施の形態］
次に、本発明の第７の実施の形態について説明する。図８は本発明の第７の実施の形態に係るＤＴＮの構成を示すブロック図である。本実施の形態では、経路選択に用いる第３のパラメータを説明する。第３のパラメータは、候補経路上の次ホップノード（ホップバイホップ型のルーティングの場合）あるいは候補経路上の１つ以上の中継ノード（ソースルート型のルーティングの場合）に接続される隣接ノードの数（リンク数）である。
【００６５】
本実施の形態では、図８に示すようにノードＡ１１には、第１の実施の形態の構成に加えて、ネットワーク内の各ノードにおける隣接ノード数の情報を他のノードと交換するトポロジ情報交換部Ａ１１９と、各ノードの隣接ノード数を記憶するトポロジ情報記憶部Ａ１２０とが備えられている。ノードＡ１２〜Ａ１４の構成は、ノードＡ１１と同一である。
【００６６】
本実施の形態において、隣接ノード数を利用して経路を選択する方法としては、隣接ノード数の多いノードを次ホップノード又は１つ以上の中継ノードとして含む転送経路を優先的に選ぶという方法が考えられる。すなわち、ホップバイホップ型のルーティングを行う場合、各ノードの経路選択部Ａ１１２は、トポロジ情報記憶部Ａ１２０を参照し、複数の候補経路のうち次ホップノードにおける隣接ノード数が最も多い経路を選択する。また、ソースルート型のルーティングを行う場合、ソースノードの経路選択部Ａ１１２は、トポロジ情報記憶部Ａ１２０を参照し、複数の候補経路のうち中継ノードにおける隣接ノード数の合計が最も多い経路を選択する。あるいは、ソースノードの経路選択部Ａ１１２は、トポロジ情報記憶部Ａ１２０を参照して、中継ノードにおける隣接ノード数の最大値を候補経路ごとに求め、隣接ノード数の最大値が最も大きい経路を選択する。
【００６７】
このような経路の選択に応じてＤＴＮ転送部Ａ１１１がコンテンツを転送することにより、本実施の形態では、隣接ノード数が多いノードにキャッシュを蓄積させることができ、キャッシュの利用可能性をより高めることができる。
【００６８】
［第８の実施の形態］
次に、本発明の第８の実施の形態について説明する。図９は本発明の第８の実施の形態に係るＤＴＮの構成を示すブロック図である。本実施の形態では、経路選択に用いる第４のパラメータを説明する。第４のパラメータは、候補経路上の次ホップノードとその隣接ノード（ホップバイホップ型のルーティングの場合）、あるいは候補経路上の１つ以上の中継ノードとその隣接ノード（ソースルート型のルーティングの場合）からのコンテンツに対する要求頻度である。ここで、要求頻度とは、あるコンテンツに対する単位時間当たりの要求数としてもよいし、その他何らかの方法で正規化された値でもよい。
【００６９】
本実施の形態では、図９に示すようにノードＡ１１には、第１の実施の形態の構成に加えて、ネットワーク内の各ノードにおけるコンテンツごとの要求頻度の情報を他のノードと交換するリクエスト情報交換部Ａ１２１と、各ノードのコンテンツごとの要求頻度を記憶するリクエスト情報記憶部Ａ１２２とが備えられている。ノードＡ１２〜Ａ１４の構成は、ノードＡ１１と同一である。
【００７０】
本実施の形態において、コンテンツに対する要求頻度を利用して経路を選択する方法としては、次ホップノードとその隣接ノード、あるいは１つ以上の中継ノードとその隣接ノードからのコンテンツに対する要求頻度が多い経路を優先的に選択するという方法が考えられる。すなわち、ホップバイホップ型のルーティングを行う場合、各ノードの経路選択部Ａ１１２は、リクエスト情報記憶部Ａ１２２を参照し、転送しようとするコンテンツに対して次ホップノードとその隣接ノードからの要求頻度が最も多い候補経路を選択する。また、ソースルート型のルーティングを行う場合、ソースノードの経路選択部Ａ１１２は、リクエスト情報記憶部Ａ１２２を参照し、転送しようとするコンテンツに対して中継ノードとその隣接ノードからの要求頻度の合計が最も多い候補経路を選択する。あるいは、ソースノードの経路選択部Ａ１１２は、リクエスト情報記憶部Ａ１２２を参照して、中継ノードとその隣接ノードからの要求頻度の最大値を候補経路ごとに求め、要求頻度の最大値が最も大きい経路を選択する。
【００７１】
このような経路の選択に応じてＤＴＮ転送部Ａ１１１がコンテンツを転送することにより、本実施の形態では、コンテンツのキャッシュ効果をより高めることができる。
【００７２】
［第９の実施の形態］
次に、本発明の第９の実施の形態について説明する。図１０は本発明の第９の実施の形態に係るＤＴＮの構成を示すブロック図である。本実施の形態では、経路選択に用いる第５のパラメータを説明する。第５のパラメータは、候補経路上の次ホップノード（ホップバイホップ型のルーティングの場合）あるいは候補経路上の１つ以上の中継ノード（ソースルート型のルーティングの場合）が持つリソース状態である。ここで、リソース状態の例としては、ノードの電池残量、記憶容量、ＣＰＵ速度などが挙げられる。
【００７３】
本実施の形態では、図１０に示すようにノードＡ１１には、第１の実施の形態の構成に加えて、ネットワーク内の各ノードにおけるリソース状態の情報を他のノードと交換するリソース状態交換部Ａ１２３と、各ノードのリソース状態を記憶するリソース状態記憶部Ａ１２４とが備えられている。ノードＡ１２〜Ａ１４の構成は、ノードＡ１１と同一である。
【００７４】
本実施の形態において、リソース状態を利用して経路を選択する方法としては、リソースの多いノードを次ホップノード又は１つ以上の中継ノードとして含む転送経路を優先的に選ぶという方法が考えられる。すなわち、ホップバイホップ型のルーティングを行う場合、各ノードの経路選択部Ａ１１２は、リソース状態記憶部Ａ１２４を参照し、複数の候補経路のうち次ホップノードのリソースが最も多い経路を選択する。また、ソースルート型のルーティングを行う場合、ソースノードの経路選択部Ａ１１２は、リソース状態記憶部Ａ１２４を参照し、複数の候補経路のうち各中継ノードにおけるリソースの合計が最も多い経路を選択する。あるいは、ソースノードの経路選択部Ａ１１２は、リソース状態記憶部Ａ１２４を参照して、中継ノードにおけるリソースの最大値を候補経路ごとに求め、リソースの最大値が最も大きい経路を選択する。
【００７５】
このような経路の選択に応じてＤＴＮ転送部Ａ１１１がコンテンツを転送することにより、本実施の形態では、リソースが多いノードにキャッシュを蓄積させることができ、キャッシュの利用可能性をより高めることができる。
【００７６】
なお、以上の説明では、第１〜第９の実施の形態を個別に説明しているが、第１〜第９の実施の形態を適宜組み合わせて、前記の第１〜第５のパラメータのうち１つ以上のパラメータに基づいて転送経路を選択するようにしてもよい。
【００７７】
［第１０の実施の形態］
次に、本発明の第１０の実施の形態について説明する。図１１は本発明の第１０の実施の形態に係るＤＴＮの構成を示すブロック図である。
ＤＴＮは、ノードＡ２１〜Ａ２４と、ノードＡ２１とＡ２２間を接続するリンクＤ１２と、ノードＡ２１とＡ２４間を接続するリンクＤ１４と、ノードＡ２２とＡ２３間を接続するリンクＤ２３と、ノードＡ２２とＡ２４間を接続するリンクＤ２４と、ノードＡ２３とＡ２４間を接続するリンクＤ３４とから構成される。
【００７８】
ノードＡ２１は、ＤＴＮ転送部Ａ２１１と、経路選択部Ａ２１２と、ルーティングテーブルＡ２１３と、キャッシュ状態記憶部Ａ２１４と、キャッシュ状態取得部Ａ２１５と、ストレージＡ２１６とから構成される。経路選択部Ａ２１２は、候補経路決定手段を含む。ノードＡ２２〜Ａ２４については、ノードＡ２１と同一の構成をとるため、説明は省略する。また、ＤＴＮ転送部Ａ２１１、ルーティングテーブルＡ２１３、ストレージＡ２１６は、それぞれ第１の実施の形態のＤＴＮ転送部Ａ１１１、ルーティングテーブルＡ１１３、ストレージＡ１１６と同一の機能であるため、詳細な説明は省略する。
【００７９】
経路選択部Ａ２１２は、ＤＴＮ転送部Ａ２１１の要求に応じて、転送しようとするコンテンツに対応する転送経路を選択し、選択した経路をＤＴＮ転送部Ａ２１１に通知する。ここで、ＤＴＮ転送部Ａ２１１は、第１の実施の形態のＤＴＮ転送部Ａ１１１と同様に、単位サイズのブロック単位でパイプライン型のコンテンツの蓄積・転送を行い、ブロック単位で経路選択部Ａ２１２に経路の問い合わせを行うものとする。本実施の形態では、ソースルート型のルーティングが行われるものとして説明するが、ホップバイホップ型のルーティングを行うことも可能である。
【００８０】
経路選択部Ａ２１２は、通常時はルーティングテーブルＡ２１３だけを参照して、候補経路の中からコンテンツを転送する経路を決定するが、コンテンツの転送途中で、リンクの切断やノードの離脱などの理由により経路を変更する必要がある場合は、ルーティングテーブルＡ２１３に加えて、キャッシュ状態記憶部Ａ２１４を参照して転送経路を決定する。
【００８１】
例えば、図１１のトポロジにおいて、ソースノードがノードＡ２１、宛先ノードがノードＡ２３であり、ノードＡ２１→ノードＡ２２→ノードＡ２３の経路で転送している際に、リンクＤ１２の切断が発生したとすると、同一経路では転送が継続できないため、経路を変更する必要がある。この場合、経路選択部Ａ２１２は、ルーティングテーブルＡ２１３を参照して、宛先ノードＡ２３への新たな候補経路を決定し、新しい経路を選択するが、その際に、キャッシュ状態記憶部Ａ２１４を参照し、以前の転送経路上の中継ノードに残したキャッシュ断片をできるだけ補完できる経路を優先的に選択する。
【００８２】
キャッシュ状態記憶部Ａ２１４は、コンテンツの転送過程において、転送経路上の中継ノードにコンテンツがどれだけキャッシュされているかを示すキャッシュ状態の情報を記憶する。キャッシュ状態記憶部Ａ２１４には、転送中のコンテンツについてどの中継ノードにどのセグメントがキャッシュとして蓄積されたかを示す情報が、キャッシュ状態取得部Ａ２１５によって書き込まれる。
【００８３】
図１２は、ノードＡ２１のキャッシュ状態記憶部Ａ２１４に記憶されるキャッシュ状態の例を示す図である。キャッシュ状態記憶部Ａ２１４には、転送中のコンテンツのＩＤ、コンテンツの全体サイズ、コンテンツをキャッシュとして蓄積している中継ノードのＩＤ、および中継ノードにおいてどのセグメントが蓄積されているかを示すキャッシュ状態の詳細が登録されている。キャッシュ状態記憶部Ａ２１４によれば、例えばコンテンツ７の全体サイズは５１２キロバイトであり、ノードＡ２２とノードＡ２３にキャッシュが蓄積され、ノードＡ２２には、０キロバイト目から２５５キロバイト目までの２５６キロバイトがキャッシュ断片として蓄積され、ノードＡ２３には、１２８キロバイト目から２５５キロバイト目までの１２８キロバイトがキャッシュ断片として蓄積されていることが分かる。
【００８４】
キャッシュ状態取得部Ａ２１５は、転送中のコンテンツについてどの中継ノードにどのセグメントがキャッシュとして蓄積されたかを示す情報を取得する。この情報の取得方法としては、コンテンツのブロックごとに受信して蓄積する度に各ノードから前段のノードへ通知されるＡｃｋ（確認応答）メッセージを利用して、情報を取得する方法などが考えられる。
【００８５】
キャッシュ状態取得部Ａ２１５は、転送中のコンテンツについてどの中継ノードにどのセグメントがキャッシュとして蓄積されたかを示す情報だけでなく、該コンテンツの転送前に残されたキャッシュ断片の情報も合わせてキャッシュ状態とし、キャッシュ状態記憶部Ａ２１４へ書き込んでもよい。例えば、図１２に示したキャッシュ状態記憶部Ａ２１４において、コンテンツ５を例にとると、コンテンツ５の転送前に残されたキャッシュ断片が１９２キロバイト目から２５５キロバイト目までの６４キロバイトで、転送中のコンテンツ５のキャッシュ断片が０キロバイト目から１９１キロバイト目までの１９２キロバイトである場合、キャッシュ状態取得部Ａ２１５は、２つを合わせた０キロバイト目から２５５キロバイト目までの２５６キロバイトのキャッシュ断片が中継ノードに残っているものとして、キャッシュ状態記憶部Ａ２１４へ書き込む。
【００８６】
次に、図１３を参照して、本実施の形態において図１１のノードＡ２１がコンテンツを転送する動作を詳細に説明する。ここでは、ソースルーティング型のルーティングが行われるものとして説明する。
まず、ノードＡ２１のＤＴＮ転送部Ａ２１１は、中継ノードとしての転送時またはソースノードとしての送信時にコンテンツを送信する際（図１３のステップＳ３０１）、経路選択部Ａ２１２に経路を問い合わせる（ステップＳ３０２）。
【００８７】
この問い合わせに応じて、経路選択部Ａ２１２は、ルーティングテーブルＡ２１３を参照し、転送しようとするコンテンツの宛先ノードに対応する候補経路を決定する（ステップＳ３０３）。ここでは、転送しようとするコンテンツの宛先をノードＡ２３とし、ルーティングテーブルＡ２１３は図３に示したルーティングテーブルＡ１１３と同一の状態にあるものとする。このため、経路選択部Ａ２１２は、転送しようとするコンテンツに対する候補経路として、ノードＡ２２を経てノードＡ２３へ至る経路と、ノードＡ２４を経てノードＡ２３へ至る経路と、ノードＡ２２からノードＡ２４を経てノードＡ２３へ至る経路と、ノードＡ２４からノードＡ２２を経てノードＡ２３へ至る経路の４つを決定する。
【００８８】
次に、経路選択部Ａ２１２は、ステップＳ３０３で決定した候補経路の中から、転送に用いる経路を選択する（ステップＳ３０４）。本実施の形態では、ホップ数が最小の経路を優先的に選択するアルゴリズムが採られているものとする。ステップＳ３０３で決定した４つの候補経路のうち、ノードＡ２２を経てノードＡ２３へ至る経路と、ノードＡ２４を経てノードＡ２３へ至る経路とが共に２ホップでホップ数が最小となる。この場合、経路選択部Ａ２１２は、この２つの経路のうちどちらか一方をランダムに選択する。ここでは、ノードＡ２２を経てノードＡ２３へ至る経路が選択されたとする。
【００８９】
次に、ＤＴＮ転送部Ａ２１１は、ステップＳ３０４で選択された経路上にコンテンツの転送を開始するが、コンテンツを単位サイズ（例えば６４キロバイト）のブロックに分け、ブロック単位で転送を行う。このとき、ＤＴＮ転送部Ａ２１１は、第１の実施の形態のＤＴＮ転送部Ａ１１１と同様に、経路選択部Ａ２１２から通知された経路の情報をブロックのヘッダ情報に設定して、ブロックを経路上の次ホップノードＡ２２に転送する。全ブロックの転送が終了すると（ステップＳ３０５においてＹＥＳ）、コンテンツの転送が終了する。
【００９０】
一方、コンテンツの転送途中では（ステップＳ３０５においてＮＯ）、ブロック単位の転送が完了する度に経路選択部Ａ２１２において転送経路の解決が行われる。すなわち、経路選択部Ａ２１２は、コンテンツの転送途中である場合、ブロックの転送が完了した時点で再度ルーティングテーブルＡ２１３を参照し（ステップＳ３０６）、ステップＳ３０４で選択した経路が引き続き利用可能か否かを確認する（ステップＳ３０７）。
【００９１】
経路選択部Ａ２１２は、経路に変更がないと判断した場合、同じ経路を用いてコンテンツの続きのブロックを転送するようＤＴＮ転送部Ａ２１１に指示し、ステップＳ３０５へ戻る。また、経路選択部Ａ２１２は、リンクの切断やノードの離脱などの理由により経路を変更する必要があり、ステップＳ３０４で選択した経路を利用できないと判断した場合は、ステップＳ３０６で決定した新しい候補経路の中から転送経路を選択すべく、ステップＳ３０８へ進む。
【００９２】
ここでは、ステップＳ３０４で選択された、ノードＡ２２を経てノードＡ２３へ至る経路のうち、リンクＤ１２が切断し利用不可になったものとする。リンクＤ１２が切断すると、ルーティングテーブルＡ２１３が更新される。これにより、経路選択部Ａ２１２は、ステップＳ３０３で決定した４つの候補経路のうち、ノードＡ２２を経てノードＡ２３へ至る経路と、ノードＡ２２からノードＡ２４を経てノードＡ２３へ至る経路とを利用不可と判断し、新しい候補経路を、ノードＡ２４を経てノードＡ２３へ至る経路と、ノードＡ２４からノードＡ２２を経てノードＡ２３へ至る経路の２つとする（ステップＳ３０６）。
【００９３】
そして、経路選択部Ａ２１２は、キャッシュ情報記憶部Ａ２１４を参照し、ステップＳ３０６で決定した新しい候補経路上に、転送途中のコンテンツの経路変更前に残されたキャッシュ断片があるか否かを調べる（ステップＳ３０８，Ｓ３０９）。ここでは、キャッシュ状態記憶部Ａ２１４は図１２と同一の状態にあるものとし、転送途中のコンテンツをコンテンツ５とする。図１２に示したキャッシュ状態記憶部Ａ２１４によれば、コンテンツ５は、ノードＡ２２にキャッシュとして蓄積され、全体で５７６キロバイトのうち、０キロバイト目から１２７キロバイト目までの１２８キロバイトのキャッシュ断片が蓄積されていることが分かる。
【００９４】
候補経路のうち中継ノードのキャッシュ断片の合計サイズが最も大きい経路を選択するというアルゴリズムが採られているものとすると、経路選択部Ａ２１２は、ステップＳ３０６で決定した新しい候補経路のうち、ノードＡ２４からノードＡ２２を経てノードＡ２３へ至る経路を選択する（ステップＳ３１０）。ＤＴＮ転送部Ａ２１１は、ステップＳ３１０で選択された経路上の次ホップノードにブロックを転送する。また、経路選択部Ａ２１２は、ステップＳ３０６で決定した候補経路上にキャッシュ断片が存在しないと判断した場合（ステップＳ３０９においてＮＯ）、候補経路の中から新しい転送経路を他の基準で選択する（ステップＳ３１１）。他の基準の例としては、ランダムに経路を選択する、あるいはホップ数の小さい経路を優先的に選択する、などが挙げられる。
【００９５】
経路選択部Ａ２１２は、ステップＳ３１０，Ｓ３１１の後はステップＳ３０５へ戻り、コンテンツの続きのブロックの転送を継続する。
以上で、ノードＡ２１の動作が終了する。中継ノードであるノードＡ２２やＡ２４では、経路選択部Ａ２１２は、受信したブロックのヘッダ情報を参照して次ホップノードを選択する。
【００９６】
次に、本実施の形態の効果について説明する。本実施の形態では、コンテンツの転送途中で転送経路を変更し代替経路へ切り替える際に、代替となる候補経路上の中継ノードにおいて、経路変更前に残されたキャッシュ断片があるかどうかをチェックし、もしキャッシュ断片があれば、そのキャッシュ断片を補完して完全なキャッシュとなるような経路を優先的に選択する。そのため、従来は転送経路の変更により、各経路上にバラバラに残ってしまうことがあったキャッシュ断片の発生を抑制し、完全なキャッシュをより多く残せる可能性を高めることができる。
【００９７】
なお、本実施の形態では、経路選択部Ａ２１２は、ルーティングテーブルＡ２１３を参照して、コンテンツの宛先までの経路を解決したが、第２の実施の形態において述べたように、必ずしもコンテンツの宛先までの経路を解決する必要はない。経路選択部Ａ２１２は、宛先までの経路が存在しないと判断した場合や、宛先への経路が存在しても他のノードを宛先とする経路の方がいいと判断した場合は、宛先ノード以外の他のノードまでの経路を選択することもできる。
【００９８】
例えば、図１１のノードＡ２１において、ノードＡ２２を経て宛先ノードＡ２３へ至る経路でコンテンツを転送しているときに、転送途中でリンクＤ２３およびリンクＤ３４が切断し、ノードＡ２３への経路が消滅したとする。この場合は、ノードＡ２２とノードＡ２４のいずれかまでコンテンツを転送しておき、リンクＤ２３またはリンクＤ３４の接続が復旧したときにコンテンツの転送を再開することが好ましいと考えられる。ノードＡ２１の経路選択部Ａ２１２は、ノードＡ２２とノードＡ２４のいずれにコンテンツを転送するかの判断において、キャッシュ状態記憶部Ａ２１４を参照し、ノードＡ２２への転送経路とノードＡ２４への転送経路を比較し、経路変更前により多くのキャッシュ断片が残された方の経路を優先的に選択する。
【００９９】
また、第３の実施の形態と同様に、本実施の形態においても、キャッシュ断片を補うために転送途中でコンテンツを複製し、分岐した経路を用いてコンテンツを転送する方法をとってもよい。例えば、図１１のノードＡ２１からノードＡ２４を経て宛先ノードＡ２３へ至る経路でコンテンツを転送しているときに、転送途中でリンクＤ１４とリンクＤ３４が切断したために、ノードＡ２１からノードＡ２２を経てノードＡ２３へ至る経路に変更しなければならなくなったとする。このとき、ノードＡ２４には、経路変更前の転送時に残されたコンテンツのキャッシュ断片が存在しているはずである。
【０１００】
ノードＡ２２の経路選択部Ａ２１２は、ノードＡ２１から受信したコンテンツを転送しようとする際に、キャッシュ状態記憶部Ａ２１４を参照した結果、転送しようとするコンテンツのキャッシュ断片がノードＡ２４に存在することを確認した場合、ＤＴＮ転送部Ａ１１１に対してノードＡ２１から受信したコンテンツをノードＡ２３に転送するよう指示すると共に、受信したコンテンツを複製してノードＡ２４にも転送するよう指示する。この指示に応じて、ノードＡ２２のＤＴＮ転送部Ａ２１１は、ノードＡ２１から受信したコンテンツをノードＡ２３に転送すると共に、このコンテンツを複製してノードＡ２４に転送する。
【０１０１】
このようなコンテンツの複製と転送に際しては、ノードＡ２４に必ずしもコンテンツ全体を転送する必要はなく、キャッシュ状態記憶部Ａ２１４を参照してキャッシュ断片の不足したセグメントを特定し、この不足したセグメントだけをノードＡ２４に転送するようにしてもよい。この不足したセグメントの特定は、ソースノードであるノードＡ２１の経路選択部Ａ２１２で行ってもよいし、中継ノードであるノードＡ２２の経路選択部Ａ２１２で行ってもよい。このようにコンテンツを複製して複数の経路に転送することにより、本実施の形態では、キャッシュ断片を持つノードが必ずしもソースノードから宛先ノードへの転送経路上に存在しない場合でも、キャッシュ断片を補完することが可能となる。
【０１０２】
また、第４の実施の形態と同様に、本実施の形態においても、各候補経路上の中継ノードに、転送しようとするコンテンツのキャッシュ断片が存在し、候補経路ごとにキャッシュ断片を補完するために必要なセグメントが異なる場合に、候補経路ごとに不足したコンテンツのセグメントを最大限補えるように複数の経路を選択し、各経路へコンテンツのセグメントを振り分けるという転送方法をとってもよい。
【０１０３】
また、本実施の形態は、第５〜第９の実施の形態と組み合わせて実施可能である。本実施の形態は、コンテンツの転送途中で転送経路を変更し代替経路へ切り替える際に、代替となる候補経路上の中継ノードにおいて、経路変更前に残されたキャッシュ断片の存在の有無またはそのサイズに基づいて転送経路の選択を行うものである。この選択の際に、キャッシュ利用可能性に関係する前記の第１〜第５のパラメータのうち１つ以上のパラメータに基づいて転送経路を選択するようにしてもよい。
【０１０４】
なお、第１〜第１０の実施の形態におけるノードは、例えばＣＰＵ、記憶装置およびインタフェースを備えたコンピュータとこれらのハードウェア資源を制御するプログラムによって実現することができる。このようなコンピュータを動作させるためのノードプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカードなどの記録媒体に記録された状態で提供される。ＣＰＵは、読み込んだプログラムを記憶装置に書き込み、このプログラムに従って第１〜第１０の実施の形態で説明した処理を実行する。
【産業上の利用可能性】
【０１０５】
本発明は、ＤＴＮのようにコンテンツを一旦蓄積してから転送する種類のネットワークシステムに適用することができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図２】本発明の第１の実施の形態におけるルーティングテーブルの例を示す図である。
【図３】本発明の第１の実施の形態におけるルーティングテーブルの他の例を示す図である。
【図４】本発明の第１の実施の形態におけるキャッシュテーブルの例を示す図である。
【図５】本発明の第１の実施の形態においてノードがコンテンツを転送する動作例を示すフローチャートである。
【図６】本発明の第１の実施の形態においてノードがコンテンツを転送する他の動作例を示すフローチャートである。
【図７】本発明の第６の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図８】本発明の第７の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図９】本発明の第８の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図１０】本発明の第９の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図１１】本発明の第１０の実施の形態に係るＤＴＮの構成を示すブロック図である。
【図１２】本発明の第１０の実施の形態におけるキャッシュ状態記憶部の例を示す図である。
【図１３】本発明の第１０の実施の形態においてノードがコンテンツを転送する動作例を示すフローチャートである。
【図１４】従来のＤＴＭのルーティング方法における第１の問題点を説明するための図である。
【図１５】従来のＤＴＭのルーティング方法における第２の問題点を説明するための図である。
【符号の説明】
【０１０７】
Ａ１１〜Ａ１４，Ａ２１〜Ａ２４…ノード、Ａ１１１，Ａ２１１…ＤＴＮ転送部、Ａ１１２，Ａ２１２…経路選択部、Ａ１１３，Ａ２１３…ルーティングテーブル、Ａ１１４…キャッシュテーブル、Ａ２１４…キャッシュ状態記憶部、Ａ１１５…キャッシュ情報交換部、Ａ２１５…キャッシュ状態取得部、Ａ１１６，Ａ２１６…ストレージ、Ａ１１７…ネットワーク離脱率交換部、Ａ１１８…ネットワーク離脱率テーブル、Ａ１１９…トポロジ情報交換部、Ａ１２０…トポロジ情報記憶部、Ａ１２１…リクエスト情報交換部、Ａ１２２…リクエスト情報記憶部、Ａ１２３…リソース状態交換部、Ａ１２４…リソース状態記憶部、Ｄ１２，Ｄ１４，Ｄ２３，Ｄ２４，Ｄ３４…リンク。
【図１】
2008205890.tif 000003
【図２】
2008205890.tif 000004
【図３】
2008205890.tif 000005
【図４】
2008205890.tif 000006
【図５】
2008205890.tif 000007
【図６】
2008205890.tif 000008
【図７】
2008205890.tif 000009
【図８】
2008205890.tif 000010
【図９】
2008205890.tif 000011
【図１０】
2008205890.tif 000012
【図１１】
2008205890.tif 000013
【図１２】
2008205890.tif 000014
【図１３】
2008205890.tif 000015
【図１４】
2008205890.tif 000016
【図１５】
2008205890.tif 000017