(57)【要約】  ネットワーク障害によりサーバが到達不能である場合においてもコンテンツ要求ノードがコンテンツを取得できるようにするルータを提供する。  コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、を備える。
2012099035.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えることを特徴とするルータ。
【請求項２】
請求項１に記載のルータであって、
前記ＭＢＣ設定要求メッセージを受信したならば、誘導情報を自ルータに設定し、前記ＭＢＣ設定要求メッセージを他のルータに転送する手段を更に備えることを特徴とするルータ。
【請求項３】
請求項１又は２に記載のルータであって、
複数のルータから前記ＭＢＣ設定要求メッセージを受信した場合には、ホップ数が最低のＭＢＣ設定要求メッセージに従って誘導情報を自ルータに設定することを特徴とするルータ。
【請求項４】
請求項１乃至３の何れか１に記載のルータであって、
ＭＢＣ設定要求メッセージがブロードキャストされる範囲は、所定のホップ数の範囲であることを特徴とするルータ。
【請求項５】
請求項１乃至４の何れか１に記載のルータであって、
最短でも、不達となった前記コンテンツサーバへの経路が復活するまで、自ルータに格納されたコンテンツデータを維持することを特徴とするルータ。
【請求項６】
請求項１乃至５の何れか１に記載のルータであって、
前記ＭＢＣ設定要求メッセージは、コンテンツＩＤ、ホップ数及び転送上限回数を含むことを特徴とするルータ。
【請求項７】
請求項１乃至６の何れか１に記載のルータであって、
前記誘導情報は、コンテンツＩＤ、ホップ数、下流ノード及び登録時刻を含むことを特徴とするルータ。
【請求項８】
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータをキャッシュとして格納し、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストし、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、キャッシュとして格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する、
ことを特徴とするコンテンツサーバ不達時のキャッシュ利用方法。
【請求項９】
コンピュータをルータとして機能させるためのプログラムであって、
コンピュータを、
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えるルータ、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ、そのルータを用いて行われる、コンテンツサーバ不達時のキャッシュ利用方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークを介したコンテンツ（ビデオや書籍など）の流通が進んでいる。現状、特定のサーバに保存されており、特定のコンテンツを欲するユーザは、コンテンツを保存しているサーバのＩＰアドレスをＤＮＳ(Domain Name System)等により取得して、サーバに要求メッセージを送信することで、所望のコンテンツを取得している。しかし、コンテンツ数やユーザ数の増大により、サーバへの負荷や取得時間の増大が懸念される。特定の少数コンテンツ（Video On Demandや企業のＷｅｂページなど）に対しては、既存のＣＤＮ(Content Delivery Network)技術によって世界各地のサーバにキャッシュがおかれ、サーバの負荷分散や応答時間の短縮が図られている。しかし、ＣＤＮにそぐわない一過性のデータ（例えばセンサー測定データなど）やＣＤＮを使うほどコストをかけられないコンテンツ（たとえば商店街の割引クーポンデータなど）に対しては問題が解決されない。【０００３】
将来ネットワークを介してやりとりされるあらゆるコンテンツデータに対してサーバ負荷削減と取得時間の短縮を図る目的として、ネットワーク内にコンテンツキャッシュを保持し、コンテンツＩＤを用いてキャッシュへの誘導を行う技術 Breadcrumbs（以下、ＢＣ）が非特許文献１で開示されている。【０００４】
ＢＣの動作を、図１を使って説明する。図１で示すネットワークには、コンテンツサーバ１０１、ルータ２０１、２０２、２０３、およびユーザ端末３０１、３０２が存在する。まずユーザ端末３０１が、あるコンテンツＡを取得しようとしたとする。ユーザ端末３０１は、ＤＮＳなどの既存方式を用いて、コンテンツＡを保持するコンテンツサーバのＩＰアドレスを取得する。ここでは、コンテンツサーバ１０１のＩＰアドレスを取得したとする。ユーザ端末３０１はコンテンツサーバ１０１宛に、コンテンツ要求メッセージを送信する。コンテンツ要求メッセージには、要求するコンテンツのＩＤが含まれている。ユーザ端末３０１が送信したコンテンツ要求メッセージは、まずルータ２０２によって受信される。ルータ２０２は、ユーザ端末３０１から受信したコンテンツ要求メッセージをルータ２０１へと転送する。ルータ２０１は同様にコンテンツサーバ１０１へとコンテンツ要求メッセージを転送する。コンテンツ要求メッセージを受信したコンテンツサーバ１０１は、コンテンツデータを含むコンテンツ応答メッセージをユーザ端末３０１宛に送信する。コンテンツ応答メッセージは、まずルータ２０１が受信する。ここで、ルータ２０１はメッセージの内容を解析し、コンテンツデータのキャッシュを自身の記憶装置に保存して、ルータ２０２へとメッセージ転送する。その後、自身のBreadcrumbテーブル（以下、ＢＣテーブル）に次の情報を記録する。
［ＢＣ情報２０１−１］
・コンテンツID = A
・上流ノード = null
・下流ノード = 202
・データ通過時刻 = 2010/11/26 10:00:00
・リクエスト通過時刻 = null
もし、ルータ２０１においてコンテンツデータのキャッシュを保持するために十分な空き記憶領域が無い場合、最も過去にアクセスされたコンテンツキャッシュから削除することにより空き記憶容量を増やしてから、新しいコンテンツキャッシュを保存する。コンテンツキャッシュが削除されても、ＢＣ情報の下流ノード方向にまだキャッシュを持つルータが存在する可能性があるため、ＢＣ情報はそのまま保持する。ＢＣ情報は、データ通過時刻が一定時間（Ｔｆ）更新されなかった場合、もしくはリクエスト通過時刻が一定時間（Ｔｑ）更新されなかった場合に削除される。基本的には、ルータが持つコンテンツキャッシュの容量は全流通コンテンツ数に対して非常に小さいため、あまりダウンロードされないコンテンツのキャッシュは比較的早く削除される傾向となる。それに対してＢＣ情報はタイマーで削除され、タイマーも新しいダウンロードやリクエストの到着により延長されるため、キャッシュに比べて長く残る。【０００５】
コンテンツ応答メッセージをルータ２０１から受信したルータ２０２は、同様に自身の記憶装置にコンテンツデータのキャッシュを保存し、ユーザ端末３０１へとメッセージを転送する。その後、ルータ２０２は、以下の情報を自身のＢＣテーブルに記録する。
［ＢＣ情報２０２−１］
・コンテンツID = A
・上流ノード = 201
・下流ノード = null
・データ通過時刻 = 2010/11/26 10:00:10
・リクエスト通過時刻 = null
一定時間の後、記憶領域の不足などなんらかの理由によりルータ２０１の記憶装置からコンテンツＡのキャッシュデータが削除されたとする。【０００６】
その後、ユーザ端末３０２が同じコンテンツＡを要求したとする。ユーザ端末３０２は、ユーザ端末３０１と同様に、ＤＮＳなどを使いコンテンツＡのコンテンツサーバ１０１のＩＰアドレスを取得してコンテンツ要求メッセージを送信する。コンテンツ要求メッセージはルータ２０３が受信し、ルータ２０１へと転送される。ここで、ルータ２０１はコンテンツ要求メッセージに含まれるコンテンツＩＤ（＝Ａ）のキャッシュが自身の記録装置に保持されているかを確認する。保存されていない場合、自身のＢＣテーブルに記録されているＢＣ情報（［ＢＣ情報２０１−１］）と比較し、同じコンテンツＩＤで、かつデータ通過時刻が一定時間以内である情報が存在する場合、コンテンツ要求メッセージをコンテンツサーバ方向でなく、ＢＣテーブルに記録された下流ノード方向へと転送する。そのため、ルータ２０１はメッセージをルータ２０２へと転送する。その後、ルータ２０１は、自身のＢＣテーブルのコンテンツＡに関する情報（［ＢＣ情報２０１−１］）のリクエスト通過時刻を、コンテンツ要求メッセージを受信した時刻へと書き換える。
［ＢＣ情報２０１−２］
・コンテンツID = A
・上流ノード = null
・下流ノード = 202
・データ通過時刻 = 2010/11/26 10:00:00
・リクエスト通過時刻 = 2010/11/26 10:04:59
コンテンツ要求メッセージを受信したルータ２０２は、自身の記憶装置にコンテンツＡのキャッシュが保存されているかどうかを確認する。ルータ２０２にはユーザ３０１へと転送したコンテンツのキャッシュが保存されているため、ルータ２０２はコンテンツＡのデータを含めたコンテンツ応答メッセージを作成し、ユーザ３０２宛にルータ２０１へと送信する。その後、ルータ２０２は自身のＢＣテーブルのコンテンツＡに関する情報（［ＢＣ情報２０２−１］）の下流ノード、データ通過時刻、リクエスト通過時刻を以下のように書き換える。
［ＢＣ情報２０２−２］
・コンテンツID = A
・上流ノード = 201
・下流ノード = 201
・データ通過時刻 = 2010/11/26 10:05:01
・リクエスト通過時刻 = 2010/11/26 10:05:00
コンテンツ応答メッセージをルータ２０２から受信したルータ２０１は、再度コンテンツＡのデータを自身の記録装置へと保存し、ルータ２０３へと転送する。その後、自身のＢＣテーブルのコンテンツＡに関する情報（［ＢＣ情報２０１−２］）の上流ノード、下流ノード、データ通過時刻を以下のように書き換える。
［ＢＣ情報２０１−３］
・コンテンツID = A
・上流ノード = 202
・下流ノード = 203
・データ通過時刻 = 2010/11/26 10:05:10
・リクエスト通過時刻 = 2010/11/26 10:04:59
同様にルータ２０３もコンテンツ応答メッセージに含まれるコンテンツＡのキャッシュを保存し、ユーザ端末３０２にメッセージを転送する。その後、ルータ２０３は自身のＢＣテーブルに以下の情報を記録する。
［ＢＣ情報２０３−１］
・コンテンツID = A
・上流ノード = 201
・下流ノード = null
・データ通過時刻 = 2010/11/26 10:05:20
・リクエスト通過時刻 = null
もし、ルータ２０１からルータ２０２へとユーザ端末３０２のコンテンツ要求メッセージが転送された時に、ルータ２０２も既にコンテンツＡのキャッシュを保存していなかった場合、ルータ２０２は同様に自身のＢＣテーブルからコンテンツＡに関する情報（［ＢＣ情報２０２−１］）を検索する。ルータ２０２が保持する情報では、下流ノードはｎｕｌｌであるため、これ以上ＢＣに沿った転送ができない。そのため、ルータ２０２はコンテンツ要求メッセージをＢＣテーブルの情報の上流ノードであるルータ２０１へと転送し、ＢＣテーブルからコンテンツＡに関する情報を削除する。ルータ２０２からコンテンツ要求メッセージを受信したルータ２０１は、自身のＢＣテーブルと比較し、メッセージの転送者と、ＢＣテーブル情報（［ＢＣ情報２０１−２］）の下流ノードが、ともにルータ２０２であるため、ＢＣテーブル情報は既に無効になったと判断し、コンテンツ要求メッセージをＢＣテーブル情報の上流ノードもしくはコンテンツサーバ１０１への最短経路の次ホップへと転送する。この場合、ルータ２０１が保持するＢＣ情報（［ＢＣ情報２０１−２］）の上流ノードはｎｕｌｌであるため、ルータ２０１はコンテンツ要求メッセージをコンテンツサーバ１０１への最短経路に沿ってコンテンツサーバ１０１へ転送する。その後、ルータ２０１は、ＢＣテーブルのコンテンツＡに関する情報（［ＢＣ情報２０１−２］）を削除する。これにより、ＢＣ情報に沿った経路上にコンテンツデータが既に存在しない場合、無効となったＢＣ情報を削除しながらコンテンツ要求メッセージをコンテンツサーバ１０１へと届けることができる。【０００７】
上述のように、ルータがコンテンツデータのキャッシュを保持し、コンテンツ要求メッセージをコンテンツ応答メッセージが流れた方向へと誘導することにより、ネットワーク内に保持されたコンテンツデータを取得することで、コンテンツサーバ負荷の削減とコンテンツ取得時間の短縮を図ることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特願２００７−１８３７１４号公報
【非特許文献】
【０００９】
【非特許文献１】E. Rosensweig, J. Kurose, “Breadcrumbs: efficient, best-effort content location in cache networks", Proc. 2009 IEEE Infocom Mini-Conference
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ネットワーク経路を動的に制御するダイナミックルーティング機能によりネットワークが制御されている場合、ネットワーク障害によってコンテンツサーバが到達不能となり、各ルータはコンテンツサーバへの経路情報を持たない状態になる場合がある。ダイナミックルーティング機能を実現するルーティングプロトコルとしては、ＯＳＰＦ(Open Shortest Path First)やＢＧＰ(Border Gateway Protocol)など多数存在する。【００１１】
前述の非特許文献１で開示されるネットワーク内での要求メッセージ誘導技術においては、誘導情報であるＢＣ情報を持たないルータは要求メッセージをコンテンツサーバへと転送する。この際、ルータにコンテンツサーバへの経路が存在しないと、要求メッセージを転送することができないため、要求メッセージを破棄するか要求元ノードへエラーを返すなどの対応を行うことになる。結果として、要求元ノードのユーザ端末はコンテンツを取得できない。【００１２】
特許文献１に記載の技術は、リアルタイムでのデータ配信を目的としており、キャッシュされたデータを使って過去のデータを配信することはできない。引用文献１の段落００２４には、中継サーバが受信したデータをキャッシュとして蓄積するという記載があるが、そのキャッシュしたデータをどのように利用するかについての記載が全くない。また、経路障害時に、このキャッシュされたデータへの誘導も行っていない。【００１３】
本発明は、ネットワーク障害によりサーバが到達不能である場合においても、コンテンツ要求ノードがコンテンツを取得できるようにするルータ及びキャッシュ利用方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の観点によれば、コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、を備えることを特徴とするルータが提供される。【００１５】
本発明の第２の観点によれば、コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータをキャッシュとして格納し、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストし、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、キャッシュとして格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する、ことを特徴とするコンテンツサーバ不達時のキャッシュ利用方法が提供される。【００１６】
本発明の第３の観点によれば、コンピュータをルータとして機能させるためのプログラムであって、コンピュータを、コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、を備えるルータ、として機能させることを特徴とするプログラム。
【発明の効果】
【００１７】
本発明によれば、ネットワーク障害によりサーバが到達不能である場合においても、コンテンツ要求ノードがコンテンツを取得できる。
【図面の簡単な説明】
【００１８】
【図１】通常のネットワーク構成の例である。
【図２】本発明の実施形態におけるルータの機能構成を示す図である。
【図３】本発明の実施形態の動作シーケンスを説明する図（１／６）である。
【図４】本発明の実施形態の動作シーケンスを説明する図（２／６）である。
【図５】本発明の実施形態の動作シーケンスを説明する図（３／６）である。
【図６】本発明の実施形態の動作シーケンスを説明する図（４／６）である。
【図７】本発明の実施形態の動作シーケンスを説明する図（５／６）である。
【図８】本発明の実施形態の動作シーケンスを説明する図（６／６）である。
【符号の説明】
【００１９】
１１１  コンテンツサーバ
２１１〜２１４  ルータ
３１１、３１２  コンテンツ要求ノード
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。
【００２１】
本実施形態によるルータは、図２に示すとおり、メッセージ送受信処理部４０１と、メッセージ転送先決定部４０２と、コンテンツキャッシュ記憶部４０３と、ＩＰルーティング処理部４０４と、ＭＢＣ処理部４０５と、ＢＣ処理部４０６と、ＩＰルーティングテーブル４０７と、ＭＢＣ(Modest Breadcrumb)テーブル４０８と、ＢＣテーブル４０９を含む。
【００２２】
メッセージ送受信処理部４０１は、隣接ルータ、コンテンツサーバおよびコンテンツ要求ノードとの間で、要求メッセージ、応答メッセージおよびＭＢＣ設定要求メッセージの交換を行い、送受信したメッセージの情報をコンテンツキャッシュ記憶部４０３、ＭＢＣ処理部４０５およびＢＣ処理部４０６へと通知する。メッセージの送信に関しては、メッセージ転送先決定部４０２の転送先情報に従って、メッセージを転送する。
【００２３】
コンテンツキャッシュ記憶部４０３は、メッセージ送受信処理部４０１から取得した応答メッセージの受信情報に含まれるコンテンツデータをキャッシュする。また、空き記憶領域が不足した場合は、最もアクセスされた時間が古く、かつ、ＭＢＣを配布していないコンテンツを削除し、空き記録領域を増加させる。
【００２４】
ＩＰルーティング処理部４０４は、ＯＳＰＦ等のルーティングプロトコルによりＩＰネットワーク上の最短経路を計算し、ＩＰルーティングテーブル４０７に記録する。
【００２５】
メッセージ転送先決定部４０２は、ＩＰルーティング処理部４０４、ＭＢＣ処理部４０５、ＢＣ処理部４０５からそれぞれＩＰ経路情報、ＭＢＣ情報、ＢＣ情報を取得し、送信する要求メッセージもしくは応答メッセージの転送先を状況に応じて決定し、メッセージ送受信処理部４０１に通知する。
【００２６】
ＭＢＣ処理部４０５は、ＩＰルーティング処理部４０４からＩＰ経路情報を取得し、自身がキャッシュしているコンテンツのオリジナルを持つコンテンツサーバへの経路が到達可能かどうかを常時チェックする。キャッシュ状況は、コンテンツキャッシュ記憶部４０３より取得する。もし、自身がキャッシュを持つコンテンツのサーバが到達不能になった場合、ＭＢＣ設定要求メッセージを作成し、メッセージ送受信処理部４０１を介して隣接ルータに配布する。メッセージ送受信処理部４０１を介してＭＢＣ設定要求メッセージを受信したＭＢＣ処理部４０５は、ＭＢＣ情報をＭＢＣテーブル４０８に記録する。
【００２７】
ＢＣ処理部４０６は、メッセージ送受信処理部４０１から受信した応答メッセージ受信情報を基にＢＣ情報を作成し、ＢＣテーブル４０９に記録する。また、メッセージ送受信処理部４０１から受信した要求メッセージ受信情報を基にＢＣテーブル４０９に存在するＢＣ情報を更新する。
【００２８】
次に、図３乃至８を参照して、本発明の動作を説明する。
【００２９】
図３に示すとおり、ネットワークは、コンテンツサーバ１１１、ルータ２１１〜２１４、コンテンツ要求ノード３１１、３１２を含む。ネットワークの経路は、ＯＳＰＦ(Open Shortest Path First)などのルーティングプロトコルを使い動的に制御されているとする。
【００３０】
図３において、コンテンツ要求ノード３１１はコンテンツＢを取得するため、コンテンツＢを保有しているコンテンツサーバ１１１宛にコンテンツ要求メッセージを送信する。ルータ２１２およびルータ２１１はコンテンツ要求メッセージを、ＯＳＰＦで作成された最短経路に従い点線矢印に沿ってコンテンツサーバ１１１へと転送する。コンテンツ要求メッセージを受信したコンテンツサーバ１１１は、要求されたコンテンツＢのデータを含むコンテンツ応答メッセージを作成し、コンテンツ要求ノード３１１へと返信する。ルータ２１１およびルータ２１２は、コンテンツ応答メッセージを転送する。転送に際して、ルータ２１１およびルータ２１２は、コンテンツ応答メッセージに含まれるコンテンツデータをキャッシュし、コンテンツ応答メッセージの受信方向（上流ノードによって示す）と転送方向（下流ノードによって示す）、受信時刻を含む転送情報であるＢＣ情報を以下のとおり記録する（図中、実線矢印）。
［ＢＣ情報２１１−１］
・コンテンツID = B
・上流ノード = null
・下流ノード= 212
・データ通過時刻 = 2010/11/30 14:50:20
・リクエスト通過時刻 = null
［ＢＣ情報２１２−１］
・コンテンツID = B
・上流ノード = 211
・下流ノード = null
・データ通過時刻 = 2010/11/30 14:50:30
・リクエスト通過時刻 = null
その後、ルータ２１１は他のコンテンツデータをキャッシュするため、コンテンツＢのキャッシュを削除したとする。さらに、コンテンツサーバ１１１とルータ２１１の間のリンクが障害となり、ルータ２１１〜２１４においてコンテンツサーバ１１１への経路が削除され、コンテンツサーバ１１１が到達不能になったとする（図４）。
【００３１】
ここで、コンテンツサーバ１１１への経路が削除されたことを検知したルータ２１２は、自身の全隣接ルータに対して、Modest Breadcrumb設定要求メッセージ（以下、ＭＢＣ設定要求メッセージ）をブロードキャストする。ＭＢＣ設定要求メッセージを受信した隣接ルータは、自身の隣接ルータに対して転送を行う。ＭＢＣ設定要求メッセージには以下の情報が含まれる。
・コンテンツＩＤ
・ホップ数
・ＴＴＬ
ここでホップ数は、ＭＢＣ設定要求メッセージのオリジナルの送信者（ルータ２１２）からのホップ数を示し、転送されるごとに１が加算される。ＴＴＬは転送上限回数を示す値が入っており、ＭＢＣ設定要求メッセージは、ホップ数がＴＴＬに達した場合はそれ以上転送されない。
【００３２】
はじめてＭＢＣ設定要求メッセージを受信したルータは、ＭＢＣ情報を自身のＭＢＣテーブルに記録する。図５の例において点線矢印で示すように、ルータ２１２がＭＢＣ設定情報をルータ２１３とルータ２１１に送信し、ルータ２１３、２１１は転送を行う。ルータ２１４はルータ２１３と２１１の双方からＭＢＣ設定要求メッセージを受信する。
【００３３】
例えば、ルータ２１３は下記のようなModest Breadcrumbs情報（以下、ＭＢＣ情報）をＭＢＣテーブルに記録する。
［ＭＢＣ情報  ２１３−１］
・コンテンツID = B
・ホップ数 = 1
・下流ノード = 212
・登録時刻 = 2010/11/30 14:25:33
ルータ２１１は、下記のようなＭＢＣ情報をＭＢＣテーブルに記録する。
［ＭＢＣ情報  ２１１−１］
・コンテンツID = B
・ホップ数 = 1
・下流ノード = 212
・登録時刻 = 2010/11/30 14:25:35
ただし、ルータ２１１はコンテンツ要求ノード３１１がコンテンツＢをダウンロードした際に作成したＢＣ情報も保持している。この場合、ＢＣ情報のほうが、ＭＢＣ情報よりも優先的に利用される。
【００３４】
ルータ２１４は、ルータ２１３と２１１の双方からＭＢＣ設定要求メッセージを受信する。たとえば、ルータ２１４が、ＭＢＣ設定要求メッセージをルータ２１３から先に受信し、後からルータ２１１から受信したとする。ルータ２１４は、まず、ルータ２１３から受信すると、下記のようなＭＢＣ情報をＭＢＣテーブルに記録する。
［ＭＢＣ情報  ２１４−１］
・コンテンツID = B
・ホップ数 = 2
・下流ノード = 213
・登録時刻 = 2010/11/30 14:25:46
その後、ルータ２１４が、ルータ２１１からＭＢＣ設定要求メッセージを受信すると、記録された［ＭＢＣ情報２１４−１］のホップ数と、受信したＭＢＣ設定要求メッセージに設定されたホップ数を比較する。ＭＢＣ設定要求メッセージに設定されたホップ数のほうが、テーブルに記録されたホップ数よりも小さい場合は、ＭＢＣテーブルの情報をＭＢＣ設定要求メッセージの内容に合わせて上書きする。そうでなければ、メッセージは破棄する。こうすることにより、ホップ数が最小のＭＢＣ設定要求メッセージに合わせてＭＢＣ情報を記録することができる。
【００３５】
こうして、ＢＣ情報およびＭＢＣ情報に基づくキャッシュへの誘導経路が図６の実線矢印のように設定される。
【００３６】
次に、図７において、コンテンツ要求ノード３１２がコンテンツＢを要求し、ルータ２１４へコンテンツ要求メッセージを送信したとする。ルータ２１４はＢＣ情報もコンテンツサーバ１１１への経路も無いため、ＭＢＣ情報に従ってルータ２１３へとコンテンツ要求メッセージを転送する。同様にルータ２１３もＭＢＣ情報に従いコンテンツ要求メッセージをルータ２１２へ転送する。
【００３７】
コンテンツ要求ノード３１２からのコンテンツ要求メッセージを受信したルータ２１２は、自身が持つキャッシュを用いてコンテンツＢのデータを含むコンテンツ応答メッセージを作成し、コンテンツ要求ノード３１２へと送信する。コンテンツ応答メッセージの転送により、ルータ２１３、２１４には以下のＢＣ情報が作成され、コンテンツデータがキャッシュされる（図８）。
［ＢＣ情報２１３−１］
・コンテンツID = B
・上流ノード = 212
・下流ノード = 214
・データ通過時刻 = 2010/11/30 15:00:10
・リクエスト通過時刻 = null
［ＢＣ情報２１４−１］
・コンテンツID = B
・上流ノード = 213
・下流ノード = null
・データ通過時刻 = 2010/11/30 15:00:20
・リクエスト通過時刻 = null
設定されたＭＢＣ情報はタイマーにより、設定後一定時間経過すると削除される。
【００３８】
ＭＢＣ情報の優先度は、通常のＢＣ情報およびコンテンツサーバへのＩＰ経路情報よりも低い。そのため、ＭＢＣ設定要求メッセージが配布された後、ネットワーク障害が回復してコンテンツサーバへ到達可能になった場合は、ＭＢＣ情報が残っていたとしてもコンテンツ要求メッセージの転送先としてはコンテンツサーバへの経路が優先される。
【００３９】
ＭＢＣ情報を配布した２１２は、コンテンツサーバへの経路が復活するまでは、該当するコンテンツのキャッシュを削除しないで優先的に残す。
【００４０】
既にＭＢＣ情報配布後に、コンテンツキャッシュを取得したルータ２１３、２１４は、ＭＢＣ設定要求メッセージの配布を行わない。
【００４１】
ネットワーク障害によりコンテンツサーバが到達不能である場合においても、コンテンツのキャッシュを持つルータがＭＢＣ情報を配布することで、他のルータはコンテンツ要求メッセージをキャッシュ方向へと誘導することが可能となり、コンテンツ要求ノードはコンテンツを取得することができる。
【００４２】
なお、図２に示すルータの各部は、ハードウェアによって実現することもできるが、ソフトウェアによって実現することもできる。
【００４３】
また、図２に示すルータの各部により行われる方法は、ハードウェアによって実現することもできるが、ソフトウェアによって実現することもできる。
【００４４】
ここで、ソフトウェアによって機能部が実現できるとは、コンピュータをその機能部として機能させるためのプログラムをコンピュータが読み込んで実行することにより実現することができることを意味する。
【００４５】
また、ソフトウェアによって方法が実現できるとは、コンピュータにその方法を行わせるためのプログラムをコンピュータが読み込んで実行することによって実現できることを意味する。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００４６】
本願は、日本の特願２０１１−００８７４７（２０１１年１月１９日に出願）に基づいたものであり、又、特願２０１１−００８７４７に基づくパリ条約の優先権を主張するものである。特願２０１１−００８７４７の開示内容は、特願２０１１−００８７４７を参照することにより本明細書に援用される。
【００４７】
本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
【００４８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００４９】
（付記１）
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えることを特徴とするルータ。
【００５０】
（付記２）
付記１に記載のルータであって、
前記ＭＢＣ設定要求メッセージを受信したならば、誘導情報を自ルータに設定し、前記ＭＢＣ設定要求メッセージを他のルータに転送する手段を更に備えることを特徴とするルータ。
【００５１】
（付記３）
付記１又は２に記載のルータであって、
複数のルータから前記ＭＢＣ設定要求メッセージを受信した場合には、ホップ数が最低のＭＢＣ設定要求メッセージに従って誘導情報を自ルータに設定することを特徴とするルータ。
【００５２】
（付記４）
付記１乃至３の何れか１に記載のルータであって、
ＭＢＣ設定要求メッセージがブロードキャストされる範囲は、所定のホップ数の範囲であることを特徴とするルータ。
【００５３】
（付記５）
付記１乃至４の何れか１に記載のルータであって、
最短でも、不達となった前記コンテンツサーバへの経路が復活するまで、自ルータに格納されたコンテンツデータを維持することを特徴とするルータ。
【００５４】
（付記６）
付記１乃至５の何れか１に記載のルータであって、
前記ＭＢＣ設定要求メッセージは、コンテンツＩＤ、ホップ数及び転送上限回数を含むことを特徴とするルータ。
【００５５】
（付記７）
付記１乃至６の何れか１に記載のルータであって、
前記誘導情報は、コンテンツＩＤ、ホップ数、下流ノード及び登録時刻を含むことを特徴とするルータ。
【００５６】
（付記８）
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータをキャッシュとして格納し、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストし、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、キャッシュとして格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する、
ことを特徴とするコンテンツサーバ不達時のキャッシュ利用方法。
【００５７】
（付記９）
付記８に記載のキャッシュ利用方法であって、
前記ＭＢＣ設定要求メッセージを受信したならば、誘導情報を自ルータに設定し、前記ＭＢＣ設定要求メッセージを他のルータに転送することを特徴とするキャッシュ利用方法。
【００５８】
（付記１０）
付記８又は９記載のキャッシュ利用方法であって、
複数のルータから前記ＭＢＣ設定要求メッセージを受信した場合には、ホップ数が最低のＭＢＣ設定要求メッセージに従って誘導情報を自ルータに設定することを特徴とするキャッシュ利用方法。
【００５９】
（付記１１）
付記８乃至１０の何れか１に記載のキャッシュ利用方法であって、
ＭＢＣ設定要求メッセージがブロードキャストされる範囲は、所定のホップ数の範囲であることを特徴とするキャッシュ利用方法。
【００６０】
（付記１２）
付記８乃至１１の何れか１に記載のキャッシュ利用方法であって、
最短でも、不達となった前記コンテンツサーバへの経路が復活するまで、自ルータに格納されたコンテンツデータを維持することを特徴とするキャッシュ利用方法。
【００６１】
（付記１３）
付記８乃至１２の何れか１に記載のキャッシュ利用方法であって、
前記ＭＢＣ設定要求メッセージは、コンテンツＩＤ、ホップ数及び転送上限回数を含むことを特徴とするキャッシュ利用方法。
【００６２】
（付記１４）
付記８乃至１３の何れか１に記載のキャッシュ利用方法であって、
前記誘導情報は、コンテンツＩＤ、ホップ数、下流ノード及び登録時刻を含むことを特徴とするキャッシュ利用方法。
【００６３】
（付記１５）
コンピュータをルータとして機能させるためのプログラムであって、
コンピュータを、
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えるルータ、
として機能させることを特徴とするプログラム。
【００６４】
（付記１６）
付記１５に記載のプログラムであって、
前記コンピュータを、
前記ＭＢＣ設定要求メッセージを受信したならば、誘導情報を自ルータに設定し、前記ＭＢＣ設定要求メッセージを他のルータに転送する手段を更に備えるルータとして機能させることを特徴とするプログラム。
【００６５】
（付記１７）
付記１５又は１６に記載のプログラムであって、
複数のルータから前記ＭＢＣ設定要求メッセージを受信した場合には、ホップ数が最低のＭＢＣ設定要求メッセージに従って誘導情報を自ルータに設定することを特徴とするプログラム。
【００６６】
（付記１８）
付記１５乃至１７の何れか１に記載のプログラムであって、
ＭＢＣ設定要求メッセージがブロードキャストされる範囲は、所定のホップ数の範囲であることを特徴とするプログラム。
【００６７】
（付記１９）
付記１５乃至１８の何れか１に記載のプログラムであって、
最短でも、不達となった前記コンテンツサーバへの経路が復活するまで、自ルータに格納されたコンテンツデータを維持することを特徴とするプログラム。
【００６８】
（付記２０）
付記１５乃至１９の何れか１に記載のプログラムであって、
前記ＭＢＣ設定要求メッセージは、コンテンツＩＤ、ホップ数及び転送上限回数を含むことを特徴とするプログラム。
【００６９】
（付記２１）
付記１５乃至２０の何れか１に記載のプログラムであって、
前記誘導情報は、コンテンツＩＤ、ホップ数、下流ノード及び登録時刻を含むことを特徴とするプログラム。
【図１】
2012099035.tif 000003
【図２】
2012099035.tif 000004
【図３】
2012099035.tif 000005
【図４】
2012099035.tif 000006
【図５】
2012099035.tif 000007
【図６】
2012099035.tif 000008
【図７】
2012099035.tif 000009
【図８】
2012099035.tif 000010
【手続補正書】
【提出日】平成25年7月19日(2013.7.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えることを特徴とするルータ。
【請求項２】
請求項１に記載のルータであって、
前記ＭＢＣ設定要求メッセージを受信したならば、誘導情報を自ルータに設定し、前記ＭＢＣ設定要求メッセージを他のルータに転送する手段を更に備えることを特徴とするルータ。
【請求項３】
請求項１又は２に記載のルータであって、
複数のルータから前記ＭＢＣ設定要求メッセージを受信した場合には、ホップ数が最低のＭＢＣ設定要求メッセージに従って誘導情報を自ルータに設定することを特徴とするルータ。
【請求項４】
請求項１乃至３の何れか１に記載のルータであって、
ＭＢＣ設定要求メッセージがブロードキャストされる範囲は、所定のホップ数の範囲であることを特徴とするルータ。
【請求項５】
請求項１乃至４の何れか１に記載のルータであって、
最短でも、不達となった前記コンテンツサーバへの経路が復活するまで、自ルータに格納されたコンテンツデータを維持することを特徴とするルータ。
【請求項６】
請求項１乃至５の何れか１に記載のルータであって、
前記ＭＢＣ設定要求メッセージは、コンテンツＩＤ、ホップ数及び転送上限回数を含むことを特徴とするルータ。
【請求項７】
請求項１乃至６の何れか１に記載のルータであって、
前記誘導情報は、コンテンツＩＤ、ホップ数、下流ノード及び登録時刻を含むことを特徴とするルータ。
【請求項８】
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータをキャッシュとして格納し、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストし、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、キャッシュとして格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する、
ことを特徴とするコンテンツサーバ不達時のキャッシュ利用方法。
【請求項９】
コンピュータをルータとして機能させるためのプログラムであって、
コンピュータを、
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備えるルータ、
として機能させることを特徴とするプログラム。
【請求項１０】
コンテンツにアクセスするためのシステムであって、
コンテンツデータを格納するサーバと、
第一ルータであって、
コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、
前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、
前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、
を備える第一ルータと、
前記他のルータに含まれる一つ又は複数の第二ルータであって、前記コンテンツ要求メッセージを前記誘導情報に従い前記第一ルータに転送する手段を備える第二ルータと、
を備えることを特徴とするシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明の第３の観点によれば、コンピュータをルータとして機能させるためのプログラムであって、コンピュータを、コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、を備えるルータ、として機能させることを特徴とするプログラムが提供される。
本発明の第４の観点によれば、コンテンツにアクセスするためのシステムであって、コンテンツデータを格納するサーバと、第一ルータであって、コンテンツサーバから送信されてきたコンテンツ応答メッセージに含まれるコンテンツデータを格納する手段と、前記コンテンツサーバ宛に前記コンテンツデータを要求するためのコンテンツ要求メッセージがコンテンツ要求ノードから送信された時に前記コンテンツ要求メッセージを自ルータに転送するための誘導情報を他のルータに設定するためのＭＢＣ設定要求メッセージを、前記コンテンツサーバが不達となった時に、他のルータにブロードキャストする手段と、前記コンテンツサーバ宛の前記コンテンツデータを要求するためのコンテンツ要求メッセージが前記誘導情報に従って転送されてきたならば、格納されているコンテンツデータを含んだコンテンツ応答メッセージを返信する手段と、を備える第一ルータと、前記他のルータに含まれる一つ又は複数の第二ルータであって、前記コンテンツ要求メッセージを前記誘導情報に従い前記第一ルータに転送する手段を備える第二ルータと、を備えることを特徴とするシステムが提供される。
【国際調査報告】
2012099035.tif 000011
2012099035.tif 000012
2012099035.tif 000013