(57)【要約】【課題】コンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従ってコンテンツ要求メッセージを転送すると転送ループが発生することを防止する。【解決手段】誘導情報に従ってコンテンツ要求メッセージを転送した時に、コンテンツデータの識別情報、コンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報をルータに記録しておく。その後に受信したコンテンツ要求メッセージに含まれているコンテンツデータ識別情報と転送情報に含まれているコンテンツデータの識別情報が一致し、受信したコンテンツ要求メッセージに含まれているコンテンツ要求ノードの識別情報と転送情報に含まれているコンテンツ要求ノードの識別情報が一致し、受信したコンテンツ要求メッセージの転送元の識別情報と転送情報に含まれている転送先の識別情報とが異なる場合に、誘導情報に従った転送を禁止する。【選択図】図９
2012151806.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
【発明の概要】
【発明が解決しようとする課題】
【００１３】
非特許文献１で開示されたキャッシュへの誘導方式ＢＣでは、コンテンツ要求メッセージがループする可能性がある。ループが発生する状況について図２〜６を用いて説明する。図２〜６には、コンテンツサーバ１１１、ルータ２１１〜２１７、ユーザ端末３１１〜３１３が存在する。
【００１４】
まず図２では、ユーザ端末３１２が点線に沿ってコンテンツ要求メッセージの送信とコンテンツ応答メッセージの受信を行い、コンテンツサーバ１１１からコンテンツＢを取得する。その際にルータ２１１、２１３、２１４には実線矢印のようにコンテンツ応答メッセージの流れた方向を示すＢＣ情報が作成される。またルータ２１１、２１３、２１４、２１６にはコンテンツのキャッシュが保持される。
【００１５】
その後、図３において、ユーザ端末３１１が同一コンテンツＢを要求し、コンテンツ要求メッセージをコンテンツサーバ１１１宛に送信する。ここで、ルータ２１４のコンテンツキャッシュは既に削除されているとする。送信されたコンテンツ要求メッセージは、ルータ２１４においてＢＣ情報にヒットし、ルータ２１６へと転送される。ルータ２１６はコンテンツキャッシュを保持しているため、コンテンツ応答メッセージを作成してユーザ端末３１１へと送信する。それによりルータ２１４、２１６のＢＣ情報は図の実線矢印のように更新される。ルータ２１５にはＢＣ情報とコンテンツのキャッシュが作成される。
【００１６】
その後、図４において、ユーザ端末３１３が同じコンテンツＢを要求する。コンテンツ要求メッセージはルータ２１４に到達する。ここで、ルータ２１４、２１５、２１６のコンテンツキャッシュは既に削除されているものとする。その場合、ルータ２１４はコンテンツ要求メッセージをＢＣに沿ってルータ２１５へと転送する。
【００１７】
次に、図５において、ルータ２１５もキャッシュを保持しておらず、ＢＣ情報の下流ノードはＮＵＬＬ（ユーザ端末）であるため、これ以上コンテンツ要求メッセージを転送せず、ＢＣ情報の上流ノードであるルータ２１４へとコンテンツ要求メッセージを送り返す。それと同時にルータ２１５は、ＢＣ情報を既に無効と判断して削除する。ルータ２１５からコンテンツ要求メッセージを送り返されたルータ２１４は、自身のもつＢＣ情報を無効と判断して削除し、ＢＣ情報の上流ノードであるルータ２１６へとコンテンツ要求メッセージを転送する。コンテンツ要求メッセージを受信したルータ２１６は、自身のＢＣ情報を削除する。
【００１８】
次に、図６において、ルータ２１６はこれ以上上流ノードへとコンテンツ要求メッセージを転送できないため、コンテンツ要求メッセージをコンテンツサーバ１１１への最短経路の次ホップであるルータ２１４へと転送する。ルータ２１４は、コンテンツキャッシュもＢＣ情報も保持していないため、コンテンツ要求メッセージをコンテンツサーバ１１１の最短経路に沿ってルータ２１２へと転送する。同様にルータ２１２は、コンテンツ要求メッセージをルータ２１１へと転送する。ここでルータ２１１、２１３のコンテンツキャッシュは既に削除されているとする。ルータ２１１にはＢＣ情報が残っているため、ＢＣ情報の下流ノードであるルータ２１３へとコンテンツ要求メッセージを転送する。ルータ２１３にもＢＣ情報が残っているため、下流ノードであるルータ２１４へと転送する。ルータ２１４にはＢＣ情報が無いため、コンテンツサーバ１１１の最短経路の次ホップであるルータ２１２へと転送する。これが繰り返され、コンテンツ要求メッセージはループする。
【００１９】
本発明は、コンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従ってコンテンツ要求メッセージを転送すると転送ループが発生することを防止するためのルータ、転送ループ防止方法及びプログラムを提供することを目的とする。    
【課題を解決するための手段】
【００２０】
本発明の第１の観点によれば、或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録する手段と、その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止する手段と、を備えることを特徴とするルータが提供される。
【００２１】
本発明の第２の観点によれば、コンテンツ要求メッセージをコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送すると転送ループが発生することを防止するための、コンテンツ要求メッセージの転送ループ防止方法であって、
或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録するステップと、その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止するステップと、を有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法が提供される。
【００２２】
本発明の第３の観点によれば、コンピュータをルータとして機能させるためのプログラムであって、コンピュータを、或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録する手段と、その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止する手段と、として機能させるためのプログラムが提供される。
【発明の効果】
【００２３】
本発明によれば、ルータが、或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録する手段と、その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止する手段と、を備えるので、コンテンツ要求メッセージの転送ループを防止することができる。
【図面の簡単な説明】
【００２４】
【図１】通常のネットワーク構成の例を示す図である。
【図２】本発明の課題となるループ発生シーケンス（その１）を説明する図である。
【図３】本発明の課題となるループ発生シーケンス（その２）を説明する図である。
【図４】本発明の課題となるループ発生シーケンス（その３）を説明する図である。
【図５】本発明の課題となるループ発生シーケンス（その４）を説明する図である。
【図６】本発明の課題となるループ発生シーケンス（その５）を説明する図である。
【図７】本発明の実施形態によるルータの機能構成を示すブロック図である。
【図８】本発明の実施形態によるルータの転送情報の記録に関連した動作を説明するためのフローチャートである。
【図９】本発明の実施形態によるルータの記録されている転送情報を用いたループを回避するための動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。
【００２６】
本実施形態によるルータは、図７に示すように、メッセージ送受信処理部４０１と、メッセージ転送決定処理部４０２と、コンテンツキャッシュ記憶部４０３と、ＢＣ情報管理部４０４と、転送情報管理部４０５と、ループ判定処理部４０６を含む。
【００２７】
ルータは、メッセージ送受信処理部４０１を介して、隣接ルータ、コンテンツサーバおよびコンテンツ要求ノードであるユーザ端末とメッセージの交換を行う。メッセージ送受信処理部４０１は、コンテンツ応答メッセージを受信すると、コンテンツキャッシュ記憶部４０３にコンテンツデータを通知する。メッセージ送受信処理部４０１は、ＢＣ情報管理部４０４に、コンテンツ要求メッセージ・コンテンツ応答メッセージの送受信情報（コンテンツＩＤ、受信元、送信先、受信時刻、送信時刻など）を通知する。メッセージ送受信処理部４０１は、コンテンツ要求メッセージ・コンテンツ応答メッセージの送信に関しては、メッセージ転送先決定部４０２の転送先情報に従って、コンテンツ要求メッセージ・コンテンツ応答メッセージを転送する。
【００２８】
コンテンツキャッシュ記憶部４０３は、キャッシュされたコンテンツデータのアクセス時間を管理し、必要に応じて空き容量を確保してデータをその内部に保存する。
【００２９】
ＢＣ情報管理部４０４はＢＣテーブル４０７を保持し、メッセージ送受信処理部４０１から通知されたコンテンツ要求メッセージ・コンテンツ応答メッセージの送受信情報に基づきＢＣテーブルにＢＣ情報を記録する。
【００３０】
転送情報管理部４０５は、メッセージ送受信処理部４０１からコンテンツ要求メッセージの送受信情報（コンテンツＩＤ、コンテンツ要求ノードＩＤ、転送先）を取得し、ＢＣ情報に基づいてコンテンツ要求メッセージを転送した時には、その送受信情報を転送情報として転送管理テーブル４０８に記録する。
【００３１】
ループ判定処理部４０６は、メッセージ送受信処理部４０１からコンテンツ要求メッセージ送受信情報（コンテンツＩＤ、コンテンツ要求ノードＩＤ、受信元）を取得し、転送情報管理部４０５からこれまでの転送情報を取得し、コンテンツ要求メッセージがループしているかを判定し、判定結果をメッセージ転送処理部４０２へ通知する。
【００３２】
メッセージ転送決定処理部４０２は、ＢＣ情報管理部４０４から取得したＢＣ情報およびループ判定処理部４０６から取得したループ判定情報に基づき、メッセージの転送先を決定し、メッセージ送受信処理部４０１に通知する。
【００３３】
各ルータは、コンテンツ要求メッセージを受信した場合、当該コンテンツのキャッシュは保持しないが、当該コンテンツに関するＢＣ情報を保持している場合において、コンテンツ要求メッセージをＢＣ情報の下流ノードへと転送する。図６においては、ルータ２１１は、ユーザ端末３１３から送信されたコンテンツ要求メッセージをルータ２１２から受信し、ＢＣ情報に従ってルータ２１３へと転送する。
【００３４】
本実施形態では、ルータ２１１がルータ２１３へとＢＣ情報に従ってコンテンツ要求メッセージを転送する際に、ルータ２１１の転送情報管理部４０５が、以下の転送情報を転送管理テーブル４０８へと記録する。図８を参照すると、ルータは、コンテンツ要求メッセージを受信したならば（ステップＳ５０１）、そのコンテンツ要求メッセージを転送する（ステップＳ５０３）。次に、転送はＢＣ転送情報に従って行われたのかを判断し（ステップＳ５０５）、そうであれば、転送情報を転送管理テーブル４０８に記録する（ステップＳ５０７）。
・コンテンツID  = B
・コンテンツ要求ノードID  = 313
・転送先ノード = 213
【００３５】
ＩＰルーティングテーブルに従ってコンテンツ要求メッセージを転送した場合にも転送情報を記録すれば、ＩＰルーティングテーブルに従った場合のコンテンツ要求メッセージのループの発生の可能性を検出することが可能であるが、そのループを回避することは本発明の範囲外である。従って、ＩＰルーティングテーブルに従ってコンテンツ要求メッセージを転送した場合には転送情報を記録しない。
【００３６】
その後、前述のとおりコンテンツ要求メッセージがループしてルータ２１１が再びルータ２１２からコンテンツ要求メッセージを受信する。ルータ２１１のループ判定処理部４０６は、コンテンツ要求メッセージの受信元である２１２と、転送管理テーブル４０８に記録された転送情報を比較する。ループ判定処理部４０６は、具体的には、現在判断の対象となっているコンテンツ要求メッセージに含まれるコンテンツＩＤと何れかの転送情報に含まれるコンテンツＩＤが一致し、そのコンテンツ要求メッセージに含まれるコンテンツ要求ノードＩＤとその転送情報に含まれるコンテンツ要求ノードが一致し、そのコンテンツ要求メッセージの受信元ノードとその転送情報に含まれる転送先が異なる場合に、ＢＣ情報に従ってそのコンテンツ要求メッセージを転送するとそのコンテンツ要求メッセージの転送ループが発生すると判断する。また、ループ判定処理部４０６は、判断の対象となっているコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と何れかの転送情報に含まれるコンテンツデータの識別情報とが一致し、そのコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報とその転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、そのコンテンツ要求メッセージの受信元ノードの識別情報とその転送情報に含まれる転送先の識別情報とが一致する場合に、キャッシュミスが発生していると判断する。
【００３７】
ＢＣ情報に従ってコンテンツ要求メッセージを転送するとループが発生すると判定した場合、メッセージ転送決定処理部４０２に、コンテンツ要求メッセージがループ状態であることを通知する。メッセージ転送決定処理部４０２は、ループ判定処理部４０６からループ状態の通知を受けた場合、当該コンテンツ（ＩＤ＝Ｂ）に関する有効なＢＣ情報がＢＣテーブル４０７に存在したとしても、それを利用せず、コンテンツサーバ１１１への最短経路をＩＰルーティングテーブル（不図示）から検索し、その経路の次ホップ（ここではコンテンツサーバ１１１）に転送する。ループ判定処理部４０６は、ループを引き起こしているＢＣ情報の削除要求をＢＣ情報管理部４０４に通知する。ＢＣ情報管理部４０４は、ループ判定処理部４０６から要求されたＢＣ情報を削除する。
【００３８】
ループ判定処理部４０６は、上述したように、コンテンツ要求メッセージの受信元ノードと、転送情報に含まれる転送先ノードが同じである場合は、ループと判定しない。その場合、メッセージ転送決定処理部４０２は、通常のキャッシュミスが発生していると判断してＢＣ情報を削除し、コンテンツ要求メッセージをＢＣ情報の上流ノードもしくコンテンツサーバへの最短経路方向へと転送するよう決定する。ここでキャッシュミスとは、ルータにキャッシュされたコンテンツデータが削除されたために、ＢＣ情報に従った誘導先のルータでコンテンツのキャッシュが得られないことである。キャッシュミスと判断した場合には、すでに述べたように、ルータ２１１はコンテンツ要求メッセージをＢＣテーブルの情報の上流ノードであるルータ２１３へと転送し、ＢＣテーブルからコンテンツに関するＢＣ情報を削除する。ルータ２１１からコンテンツ要求メッセージを受信したルータ２１３は、自身のＢＣテーブルと比較し、メッセージの転送者と、ＢＣテーブル情報の下流ノードが、ともにルータ２１１であるため、ＢＣテーブル情報は既に無効になったと判断し、ＢＣ情報を削除しコンテンツ要求メッセージをＢＣテーブル情報の上流ノードもしくはサーバへの最短経路の次ホップへと転送する。これにより、ＢＣ情報に沿った経路上にコンテンツデータが存在しない場合、無効となったＢＣ情報を削除しながらコンテンツ要求メッセージをサーバへと届けることができる。
【００３９】
図９を参照すると、ルータは、コンテンツ要求メッセージを受信すると（ステップＳ５１１）、転送管理テーブルに記録されている全ての転送情報について、ステップＳ５１３ＳからステップＳ５１３Ｅまでのステップを繰り返す。
【００４０】
まず、受信したコンテンツ要求メッセージに含まれているコンテンツＩＤと現在の転送情報に含まれているコンテンツＩＤが一致するか否かを判断する（ステップＳ５１５）。一致しなければ（ステップＳ５１５でＮＯ）、現在の繰り返しを終了する。
【００４１】
一致すれば（ステップＳ５１５でＹＥＳ）、受信したコンテンツ要求メッセージに含まれているコンテンツ要求ノードＩＤと現在の転送情報に含まれているコンテンツ要求ノードＩＤが一致するか否かを判断する（ステップＳ５１７）。一致しなければ（ステップＳ５１７でＮＯ）、現在の繰り返しを終了する。
【００４２】
一致すれば（ステップＳ５１７でＹＥＳ）、受信した要求メッセージの送信元ＩＤと現在の転送情報に含まれている転送先とが一致するか否かを判断する（ステップＳ５２１）。
【００４３】
一致しなければ（ステップＳ５２１でＮＯ）、誘導情報に従ってコンテンツ要求メッセージを転送すると、コンテンツ要求メッセージの転送はループすると判断する（ステップＳ５２３）。すなわち、ステップＳ５１７からステップＳ５２１に進んだときにみた転送情報を記録した時に転送したコンテンツ要求メッセージは、今回ステップＳ５１１で受信したコンテンツ要求メッセージと同一であると判断する。ステップＳ５１７からステップＳ５２１に進んだときにみた転送情報に対応する誘導情報（その転送情報とコンテンツＩＤが一致する誘導情報）を削除し（ステップＳ５２５）、ステップＳ５１１で受信したコンテンツ要求メッセージをＩＰルーティングテーブルに基づいて転送する（ステップＳ５２７）。
【００４４】
一致すれば（ステップＳ５２１でＹＥＳ）、誘導情報に従ってコンテンツ要求メッセージを転送しても、キャッシュミスをすると判断し（ステップＳ５２９）、ステップＳ５１７からステップＳ５２１に進んだときにみた転送情報に対応する誘導情報（その転送情報とコンテンツＩＤが一致する誘導情報）を削除し（ステップＳ５３１）、ステップＳ５１１で受信したコンテンツ要求メッセージを誘導情報に基づいて逆転送する（ステップＳ５３３）。
【００４５】
何れの繰り返しでもステップＳ５１７でＹＥＳとならずにステップＳ５１３ＳからステップＳ５１３Ｅまでの繰り返しを全て終了した場合には、ステップＳ５１９に進み、誘導情報又はＩＰルーティング情報に基づいて、ステップＳ５１１で受信したコンテンツ要求メッセージを転送する。
【００４６】
転送管理テーブル４０８に記録された転送情報は、次のいずれかの条件で削除される。
【００４７】
１）メッセージ転送決定処理部４０２がコンテンツサーバへの経路を転送先として決定した場合
この場合には、ＢＣ情報に従わずに、ＩＰルーティングテーブルに従っているため、ＢＣ情報に従っていることに対応する転送情報は不要となるためである。
２）当該コンテンツ要求メッセージに対するコンテンツ応答メッセージを受信した場合
この場合には、コンテンツ要求メッセージがループしていないと判断できるためである。
３）一定時間が経過した場合
いつまでもルータに転送情報が記録されている転送情報が残っていると、不要な転送情報まで残ることとなり、また、一定時間が経過した後には転送情報が無効となっている可能性があるからである。
【００４８】
なお、本発明の実施形態によるルータの各部は、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータをルータの各部として機能させるためのプログラムをコンピュータが読み込んで実行することにより実現されることを意味する。  
【００４９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５０】
（付記１）
或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録する手段と、
その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止する手段と、
を備えることを特徴とするルータ。
【００５１】
（付記２）
付記１に記載のルータであって、
前記禁止を行った場合、前記第２のコンテンツ要求メッセージをＩＰルーティングテーブルに従って転送する手段を更に備えることを特徴とするルータ。
【００５２】
（付記３）
付記１又は２に記載のルータであって、
前記第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが一致する場合に、キャッシュミスが発生していると判断する手段を更に備えることを特徴とするルータ。
【００５３】
（付記４）
付記１乃至３の何れか１に記載のルータであって、
前記禁止を行った場合、自ルータに記録されている前記誘導情報を削除する手段を更に備えることを特徴とするルータ。
【００５４】
（付記５）
付記１乃至４の何れか１に記載のルータであって、
前記禁止を行った場合、前記第１のコンテンツ要求メッセージに対応するコンテンツ応答メッセージを受信した場合、又は、前記第１のコンテンツ要求メッセージに対応する転送情報を記録してから所定時間経過した場合に、前記第１のコンテンツ要求メッセージに対応する転送情報を削除する手段を更に備えることを特徴とするルータ。
【００５５】
（付記６）
コンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従ってコンテンツ要求メッセージを転送すると転送ループが発生することを防止するための、コンテンツ要求メッセージの転送ループ防止方法であって、
或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録するステップと、
その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止するステップと、
を有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法。
【００５６】
（付記７）
付記６に記載のコンテンツ要求メッセージの転送ループ防止方法であって、
前記禁止を行った場合、前記第２のコンテンツ要求メッセージをＩＰルーティングテーブルに従って転送するステップを更に有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法。
【００５７】
（付記８）
付記６又は７に記載のコンテンツ要求メッセージの転送ループ防止方法であって、
前記第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが一致する場合に、キャッシュミスが発生していると判断するステップを更に有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法。
【００５８】
（付記９）
付記６乃至８の何れか１に記載のコンテンツ要求メッセージの転送ループ防止方法であって、
前記禁止を行った場合、自ルータに記録されている前記誘導情報を削除するステップを更に有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法。
【００５９】
（付記１０）
付記６乃至９の何れか１に記載のコンテンツ要求メッセージの転送ループ防止方法であって、
前記禁止を行った場合、前記第１のコンテンツ要求メッセージに対応するコンテンツ応答メッセージを受信した場合、又は、前記第１のコンテンツ要求メッセージに対応する転送情報を記録してから所定時間経過した場合に、前記第１のコンテンツ要求メッセージに対応する転送情報を削除するステップを更に有することを特徴とするコンテンツ要求メッセージの転送ループ防止方法。
【００６０】
（付記１１）
コンピュータをルータとして機能させるためのプログラムであって、
コンピュータを、
或るコンテンツ要求ノードから或るコンテンツデータをそのコンテンツデータを保有するコンテンツサーバに要求するための第１のコンテンツ要求メッセージであって前記或るコンテンツデータの識別情報及び前記或るコンテンツ要求ノードの識別情報を少なくとも含む第１のコンテンツ要求メッセージを受信し、該第１のコンテンツ要求メッセージを前記或るコンテンツデータのキャッシュを保有するルータに誘導するための誘導情報に従って転送した時に、前記或るコンテンツデータの識別情報、前記或るコンテンツ要求ノードの識別情報及び転送先の識別情報を含む転送情報を自ルータに記録する手段と、
その後に受信した第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されており前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが異なる場合に、前記第１のコンテンツ要求メッセージと前記第２のコンテンツ要求メッセージとが同一であり、前記第１のコンテンツ要求メッセージがループしていると判断し、前記第２のコンテンツ要求メッセージを誘導情報に従って転送することを禁止する手段と、
として機能させるためのプログラム。
【００６１】
（付記１２）
付記１１に記載のプログラムであって、
コンピュータを更に、
前記禁止を行った場合、前記第２のコンテンツ要求メッセージをＩＰルーティングテーブルに従って転送する手段として機能させるためのプログラム。
【００６２】
（付記１３）
付記１１又は１２に記載のプログラムであって、
コンピュータを更に、
前記第２のコンテンツ要求メッセージに含まれるコンテンツデータの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツデータの識別情報とが一致し、前記第２のコンテンツ要求メッセージに含まれるコンテンツ要求ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応した転送情報に含まれるコンテンツ要求ノードの識別情報とが一致し、前記第２のコンテンツ要求メッセージの受信元ノードの識別情報と自ルータに記録されている前記第１のコンテンツ要求メッセージに対応する転送情報に含まれる転送先の識別情報とが一致する場合に、キャッシュミスが発生していると判断する手段として機能させるためのプログラム。
【００６３】
（付記１４）
付記１１乃至１３の何れか１に記載のプログラムであって、
コンピュータを更に、
前記禁止を行った場合、自ルータに記録されている前記誘導情報を削除する手段として機能させるためのプログラム。
【００６４】
（付記１５）
付記１１乃至１４の何れか１に記載のプログラムであって、
コンピュータを更に、
前記禁止を行った場合、前記第１のコンテンツ要求メッセージに対応するコンテンツ応答メッセージを受信した場合、又は、前記第１のコンテンツ要求メッセージに対応する転送情報を記録してから所定時間経過した場合に、前記第１のコンテンツ要求メッセージに対応する転送情報を削除する手段として機能させるためのプログラム。
【符号の説明】
【００６５】
１１１  コンテンツサーバ
２１１〜２１７  ルータ
３１１〜３１３  コンテンツ要求ノード
【図１】
2012151806.tif 000003
【図２】
2012151806.tif 000004
【図３】
2012151806.tif 000005
【図４】
2012151806.tif 000006
【図５】
2012151806.tif 000007
【図６】
2012151806.tif 000008
【図７】
2012151806.tif 000009
【図８】
2012151806.tif 000010
【図９】
2012151806.tif 000011