(57)【要約】      （修正有）【課題】ルータの処理負荷を増大させる隣接ルータ間のキャッシュ情報交換を行わずに、キャッシュ位置を最適化する方法を提供する。【解決手段】CCN上のN個のルータに、Kビットの二進数で表される固有番号(ID)が割り当てられ、コンテンツの名称Aから得られるKビットのハッシュ値H(A)と該コンテンツを提供するオリジナルサーバのIDが対応付けられて格納されているOSTを有し、入力ポートnからinterestが到着すると、要求コンテンツAがキャッシュメモリに格納されているか、OSTを参照してオリジナルサーバを収容している場合には、該要求コンテンツAを該入力ポートに送出し、そうでない場合にはH(A)に基づいてPITを検索し、該入力ポートnが登録されていなければH(A)を該PITに登録する。コンテンツを受信した場合は、ハッシュ値H(A)に基づいて、PITを検索し、得られたポートに該コンテンツを送出する。【選択図】図１
2015162686.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツをキャッシュし、コンテンツ名を宛名としてデータ転送を行うCCN(Content Centric Networking)において、コンテンツを各ルータに分散配置するためのルータ上に具備されるキャッシュ制御装置であって、
前記CCN上のN個のルータに、K（但し、Kは2K≧Nを満たす最小の整数）ビットの二進数で表される固有番号(ノードID)がinterest割り当てられ、コンテンツを提供するオリジナルサーバが接続されている場合に、
コンテンツの名称Aから得られるKビットのハッシュ値H(A)と、該コンテンツを提供するオリジナルサーバのIDが対応付けられて格納されているオリジナルサーバテーブル（OST）と、
入力ポートnからinterestが到着すると、該interestの要求コンテンツAがキャッシュメモリに格納されているか、または、前記OSTを参照してオリジナルサーバを収容している場合には、該要求コンテンツAを該入力ポートに送出し、そうでない場合には、ハッシュ値H(A)に基づいて、到着入力ポートに関する情報を格納したテーブル（PIT）を検索し、該入力ポートnが登録されていなければ該ハッシュ値H(A)を該PITに登録するコンテンツ存在性検査手段と、
前記コンテンツを受信した場合は、ハッシュ値H(A)に基づいて、前記PITを検索し、得られたポートに該コンテンツを送出するコンテンツ受信手段と、
を有することを特徴とするキャッシュ制御装置。
【請求項２】
自装置に到着した前記interestのカウントに基づいて前記コンテンツの人気度を算出し、該人気度に応じてKのグループに分類し、ハッシュ値H(A)と共に人気度グループテーブル（PGT）に格納するコンテンツ人気グループ分類手段を更に有し、
前記コンテンツ存在性検査手段は、
前記PGTのハッシュ値H(A)のエントリを参照することにより、前記コンテンツAの人気度グループgを取得し、該ハッシュ値H(A)の上位gビットが当該ルータのノードIDの上位gビットと一致する場合のみ、該コンテンツAをキャッシュする手段を含む
請求項１記載のキャッシュ制御装置。
【請求項３】
前記コンテンツ名称と比較して、ビット数が少なく固定長であるノードIDをロケータに用いて前記interestを転送する手段を更に有する
請求項１記載のキャッシュ制御装置。
【請求項４】
目的ノードIDと次のホップ先を格納したテーブル（FIB）を更に有し、
前記PITは、
前記interestが到着した入力ポート番号を前記コンテンツ名称Aのハッシュ値と共に格納し、
前記コンテンツ受信手段は、
前記PITと前記FIBを参照して、到着した前記コンテンツの転送先出力ポートを決定する手段を含む
請求項１記載のキャッシュ制御装置。
【請求項５】
前記ノード毎に設定される前記ノードIDは、当該ノードIDの上位のビットから、空間的に離れた場所に存在するルータに同一のビットを割り当てるために、Sk(x)を上位kビットにx=(x1,x2,…,xk)が割り当てられたノードの集合とするとき、n∈Sk-1(x)の各ノードnに対して、第kビットの値を割り当てる処理を、k=1,2,…,Kの順番で反復させて得られたIDである
請求項１記載のキャッシュ制御装置。
【請求項６】
コンテンツをキャッシュし、コンテンツ名を宛名としてデータ転送を行うCCN(Content Centric Networking)において、コンテンツを各ルータに分散配置するためのルータ上に具備されるキャッシュ制御方法であって、
前記CCN上のN個のルータに、K（但し、Kは2K≧Nを満たす最小の整数）ビットの二進数で表される固有番号(ノードID)が割り当てられ、コンテンツを提供するオリジナルサーバが接続されており、
コンテンツの名称Aから得られるKビットのハッシュ値H(A)と、該コンテンツを提供するオリジナルサーバのIDが対応付けられて格納されているオリジナルサーバテーブル（OST）を有する装置において、
入力ポートnからinterestが到着すると、該interestの要求コンテンツAがキャッシュメモリに格納されているか、または、前記OSTを参照してオリジナルサーバを収容している場合には、該要求コンテンツAを該入力ポートに送出し、そうでない場合には、ハッシュ値H(A)に基づいて、到着入力ポートに関する情報を格納したテーブル（PIT）を検索し、該入力ポートnが登録されていなければ該ハッシュ値H(A)を該PITに登録するコンテンツ存在性検査ステップと、
前記コンテンツを受信した場合は、ハッシュ値H(A)に基づいて、前記PITを検索し、得られたポートに該コンテンツを送出するコンテンツ受信ステップと、
を行うことを特徴とするキャッシュ制御方法。
【請求項７】
前記ノード毎に設定される前記ノードIDについて、当該ノードIDの上位のビットから、空間的に離れた場所に存在するルータに同一のビットを割り当てるノード割当ステップを更に行い、
前記ノード割当ステップにおいて、
Sk(x)を上位kビットにx=(x1,x2,…,xk)が割り当てられたノードの集合とするとき、n∈Sk-1(x)の各ノードnに対して、第kビットの値を割り当てる処理を、k=1,2,…,Kの順番で反復する
請求項６記載のキャッシュ制御方法。
【請求項８】
コンピュータを
請求項１乃至５のいずれか１項に記載のキャッシュ制御装置の各手段として機能させるためのキャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御装置及び方法及びプログラムに係り、特に、ネットワーク機器（ルータ）において、コンテンツをキャッシュし、コンテンツ名を宛名としてデータ転送を行うCCN(Content Centric Networking)において、ネットワーク全体でのキャッシュを最適化するためのキャッシュ制御装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
CCNにおいては、コンテンツを取得したいユーザはInterestをオリジナル保有サーバに向けて送出し、ルータはコンテンツの名称をロケータとして用いてInterestを転送する。到着Interestの転送先リンクの選択を行うために、IP(Internet Protocol)と同様、FIB(Forwarding Information Base)がルータに構成されるが、コンテンツの名称を用いたLongest-prefix matchでエントリが検索される点が特徴である。そのためコンテンツ提供者は自身のコンテンツがネットワーク（NW）上を配信されるよう、NW上にコンテンツ名称を広告する必要がある。
【０００３】
ルータには転送したコンテンツを保持するためのキャッシュメモリ(content store)が実装されており、Interestの転送経路上のルータは自身が要求コンテンツをキャッシュしている場合にはInterestを次ホップルータに転送することなく要求コンテンツを要求元に対して送信する。またInterestがルータに到着した際に、Interest到着ポートをPIT(Pending Interest Table)と呼ばれるテーブルに保存しておくことで、コンテンツをInterestの転送経路を逆方向に転送する。CCNを用いることで、以下のようなメリットが期待されている。
【０００４】
・名前解決処理の回避：従来のインターネットではIPアドレスを用いてルーティングされるため、配信に先立ち、配信元となるサーバのIPアドレスをコンテンツの名称から解決するオーバヘッドが発生する。一方、CCNではコンテンツの名称を用いて直接、配信要求パケットがルーティングされるため、名前解決処理のオーバヘッドを回避できる。
【０００５】
・通信品質向上：経路上のルータにコンテンツがキャッシュされている場合、オリジナルサーバやキャッシュサーバから配信する場合と比較して、ユーザにより近い位置からコンテンツを配信することができ、遅延時間やNW負荷を低減できる。
【０００６】
・コンテンツ配信の民主化：従来、コンテンツ配信にはCDN(Contents Delivery Network)が広く用いられているが、CDNを利用できるコンテンツ提供者は企業等、資金力のあるユーザに限られている。CCNではコンテンツのキャッシュをNW事業者が運営し、プラットフォームサービスとして提供するため、個人レベルでキャッシュを用いた効率的な配信が可能である。
【０００７】
CCNではNW上を流れるコンテンツを各ルータがリアルタイムにキャッシュするため、キャッシュには高速性が要求されることから、TCAM(Ternary Content Addressable Memory)やSRAM(Static Random Access Memory)といった高速なメモリを用いて構成される。そのためCDNと比較してキャッシュ容量に制約があり、限られたキャッシュ資源の効率的な運用がより重要となる。キャッシュの資源利用効率は、どのコンテンツをキャッシュするかを決める方法と、キャッシュ容量が不足する場合に削除するコンテンツを決める方法の二つから決まるが、本明細書では前者を「キャッシュ判断法」（例えば、非特許文献１参照）、後者を「キャッシュ置換法」（例えば、非特許文献１参照）と呼ぶ。
【０００８】
CCNでは、キャッシュ判断法としてコンテンツの転送経路上の全ルータがキャッシュ対象とすること、またキャッシュ置換法としてはLRU(Least Recently Used)を用いることが想定されている（例えば、非特許文献２参照）。しかし一般的にコンテンツのアクセス頻度には偏りがあり、少数の高人気コンテンツにアクセスが集中する傾向が見られるため、多数のルータが少数の高人気コンテンツを重複してキャッシュする可能性が高い。しかし配信フローのホップ長を低減するという観点では、同じコンテンツを近隣のルータで重複してキャッシュする効果は小さい。そのため空間的に可能な限り分散した場所に各コンテンツを配置することで、キャッシュの効果を維持したまま、より多数のコンテンツがキャッシュされる状態を実現することが重要である。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】J. M. Wang, J. Zhang, and B. Bensaou, Intra-AS Cooperative Caching for Content-Centric Networks," ACM ICN 2013.
【非特許文献２】A Survey of Information-Centric Networking," IEEE Commun. Mag., vol.50, no.7, pp.26-36, July 2012.
【非特許文献３】山本幹, コンテンツオリエンテッドネットワーク, 信学論(B), J96-B, 6, pp.589-604
【発明の概要】
【発明が解決しようとする課題】
【００１０】
これまでに検討されてきたCCNにおけるキャッシュ判断法は、コンテンツの転送経路(default path)上のルータのみをキャッシュ位置の候補とするアプローチ（例えば、非特許文献３参照）と、default path以外のルータもキャッシュ位置の候補するアプローチ（例えば、非特許文献３参照）に大別することができる。前者の方式は、配信経路上のルータが確率的にキャッシュ判断を行うことで、コンテンツの人気度に応じたキャッシュ位置の住分けを図るもので、例えばユーザに近いルータにより高い確率でコンテンツがキャッシュされるよう、オリジナルコンテンツを保有するサーバ(オリジナルサーバ)から配信要求ユーザまでの配信経路上の相対的な位置に応じてキャッシュ確率を変えることが検討されている。しかしこれらの方式では、近隣に存在するルータ間でキャッシュの重複を避けることは困難である。
【００１１】
一方、default path以外のルータもキャッシュ位置候補とするアプローチは、近隣のルータ間でキャッシュしているコンテンツの情報を交換することで、より積極的にコンテンツのキャッシュ位置の住分けを図る。例えば周期的に隣接ルータ間で保有コンテンツの情報を交換し、集中制御的に貪欲算法を用いて各ルータがキャッシュ対象とするコンテンツを決定する方式や、集中制御的に最大リンク使用率が最小化するよう、コンテンツの配信経路と各コンテンツのキャッシュ位置を同時に決定する最適化問題を定義することが検討されている。これらの方式を用いることで、各コンテンツのキャッシュ位置の住分けが可能となるが、隣接ルータ間でキャッシュ情報を交換し、集中制御的にキャッシュ位置を最適化問題として解く必要があり、ルータの処理負荷が増大する。
【００１２】
本発明は、上記の点に鑑みなされたもので、ルータの処理負荷を増大させる隣接ルータ間のキャッシュ情報交換を行わずに、キャッシュ位置を最適化することが可能なキャッシュ制御装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
一態様によれば、コンテンツをキャッシュし、コンテンツ名を宛名としてデータ転送を行うCCNにおいて、コンテンツを各ルータに分散配置するためのルータ上に具備されるキャッシュ制御装置であって、
前記CCN上のN個のルータに、K（但し、Kは2K≧Nを満たす最小の整数）ビットの二進数で表される固有番号(ノードID)が割り当てられ、コンテンツを提供するオリジナルサーバが接続されている場合に、
コンテンツの名称Aから得られるKビットのハッシュ値H(A)と、該コンテンツを提供するオリジナルサーバのIDが対応付けられて格納されているオリジナルサーバテーブル（OST）と、
入力ポートnからinterestが到着すると、該interestの要求コンテンツAがキャッシュメモリに格納されているか、または、前記OSTを参照してオリジナルサーバを収容している場合には、該要求コンテンツAを該入力ポートに送出し、そうでない場合には、ハッシュ値H(A)に基づいて、到着入力ポートに関する情報を格納したテーブル（PIT）を検索し、該入力ポートnが登録されていなければ該ハッシュ値H(A)を該PITに登録するコンテンツ存在性検査手段と、
前記コンテンツを受信した場合は、ハッシュ値H(A)に基づいて、前記PITを検索し、得られたポートに該コンテンツを送出するコンテンツ受信手段と、を有するキャッシュ制御装置が提供される。
【発明の効果】
【００１４】
一態様によれば、ルータにおいてコンテンツをキャッシュし、コンテンツ名を宛名としてデータ転送を行うCCNにおいて、ルータの処理負荷を増大させる隣接ルータ間のキャッシュ情報交換を行わずに、キャッシュ位置を最適化することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態におけるキャッシュ制御装置の構成例。
【図２】本発明の一実施の形態におけるルータアーキテクチャ。
【図３】本発明の一実施の形態における人気度グループｇが１もしくは2の場合のコンテンツAのキャッシュ候補ノードの例。
【図４】本発明の一実施の形態におけるノードID割当手続きの最初の４ステップの例。
【図５】本発明の一実施の形態におけるb=a+2の場合の人気度グループ割当更新の例。
【図６】パラメータ(β)に対するYとDの特性。
【図７】各NWにおけるWと、本発明（DCC)のCCNのWと比較した改善率。
【図８】Wの改善率が最小の５つのNWと最大5つのNWにおける、各人気度グループのWの改善率。
【図９】各NWのZと、本発明（DCC）のZとのCCNと比較した削減率。
【図１０】Zの削減率が最小の5つのNWと、最大５つのNWにおける、各人気度グループのZの削減率。
【発明を実施するための形態】
【００１６】
以下、図面と共に本発明の実施の形態を説明する。
【００１７】
図１は、本発明の一実施の形態におけるキャッシュ制御装置の構成例である。
【００１８】
キャッシュ制御装置１００は、CCNにおけるコンテンツの分散配置を実現する装置であり、コンテンツ存在性検査部１０１、Interestカウント部１０２、PGT(Popularity Group Table)１０３、キャッシュメモリ１０４、コンテンツ送出部１０５、FIB(Forwarding Information Base)検査部１０６、FIB１０７、FIB構成部１０８、コンテンツ人気グループ分類部１０９、コンテンツ受信部１１０、コンテンツ人気グループ判定部１１１、PIT(Pending Interest Table)検査部１１２、PIT１１３、OST１１４を有する。当該キャッシュ制御装置１００は、全ルータに具備される。
【００１９】
隣接ルータやローカルユーザから到着したInterestは、コンテンツ存在性検査部１０１によって要求コンテンツが自身のキャッシュメモリ１０４に存在するか否かが検査される。
【００２０】
ローカルユーザからInterestが到着した場合は、Interestカウント部１０２によってPGT１０３の該当エントリのInterestカウント部１０２のカウンタ値ICがインクリメントされる。
【００２１】
要求コンテンツがキャッシュメモリ１０４に存在した場合は、コンテンツ送出部１０５によってコンテンツが隣接ルータやローカルユーザに転送される。要求コンテンツがキャッシュメモリ１０４に存在しない場合は、到着入力ポートに関する情報がPIT１１３に記載され、OST１１４を参照してオリジナルサーバ収容ノードのIDが取得され、FIB検査部１０６によってFIB１０７の該当エントリが検査されて該当出力ポートより隣接ルータにInterestが転送される。
【００２２】
またFIB構成部１０８は隣接ルータ間でFIBエントリに関する情報を交換してFIB１０７を構成する。
【００２３】
また一定周期で、コンテンツ人気グループ分類部１０９は、PGT１０３のIC値に基づき、各コンテンツをK個の人気度グループのいずれかに分類してPGT１０３に分類結果を保存する。
【００２４】
一方、隣接ルータからコンテンツがコンテンツ受信部１１０に到着すると、コンテンツ人気グループ判定部１１１がPGT１０３を検査して到着コンテンツの人気度グループに関する情報を得てキャッシュ判定を行い、キャッシュを行うと判断した場合にはキャッシュメモリ１０４に受信コンテンツをキャッシュする。そしてPIT検査部１１２によってPIT１１３の該当エントリが検査され、得られた出力ポート番号にコンテンツを転送する。
【００２５】
次に、本発明の実施の形態に係るCCNにおけるコンテンツの分散配置を実現するためのキャッシュ判断方法の処理について、詳細を説明する。
【００２６】
［1］  概要：
CCNが導入されたTier-1やTier-2の単一ISP（Internet Service Provider）のNWを想定する。自律した単一の事業主体がNW全体を管理するため、構成される全ルータにおいて同一のキャッシュ判断法を実行できる。またコンテンツを提供するコンテンツプロバイダが設置したオリジナルサーバがNW上のルータに接続された状態を想定する。本発明のキャッシュ判定方法（DCC: Dispersed Content Caching）の特徴を以下にまとめる。以下、本発明の方法をDCCと記す。
【００２７】
・ハッシュ値を用いたコンテンツ配置：
コンテンツ人気グループ判定部１１１は、各ルータにKビットの二進数で表される固有番号(ID)を割り当て、コンテンツの名称Aから得られるKビットのハッシュ値H(A)に該当するIDを有するルータのみがコンテンツAをキャッシュ対象とすることで、各ルータの自律的な判断で各コンテンツが空間的に分散配置された状態を実現する。
【００２８】
・人気度に応じたコピー配置数の制御：
コンテンツ人気グループ分類部１０９で各コンテンツを人気度に応じてKのグループに分類し、コンテンツ人気グループ判定部１１１で判定された高人気グループに存在するコンテンツほど、コンテンツ人気グループ判定部１１１がキャッシュ判断時に参照するPGT１０３のIDの参照ビット数を減らすことで、高人気コンテンツほど多数のキャッシュに配置された状態を実現する。
【００２９】
・ノードIDをロケータに用いたパケット転送：
FIB検査部１０６は、コンテンツの名称と比較してビット数が少なく固定長であるノードIDをロケータに用いることで、FIB１０７のエントリ数とエントリ検索処理負荷を低減する。
【００３０】
NW上にN個のルータが存在するとき、2K≧Nを満たす最小の整数をKとする。そして各ルータにはノードIDとして、0〜2K−1の範囲のKビットの任意の二進数を重複がないように割当てる。ノードIDの具体的な付与方法については［4］で後述する。
【００３１】
また、各ルータは到着Interestをカウントすることで自律的に各コンテンツの人気度を測定し、人気度に応じたキャッシュ判断を行う。
【００３２】
以下、本発明の詳細を、ルータの動作メカニズム、キャッシュ判断法、ルータIDの付与方法、コンテンツのグループ化法に分けて述べる。
【００３３】
［2］ルータの動作メカニズム：
図２に示すように、各ルータにはCCNで用いられるFIB１０７、PIT１１３、content storeに加えて、オリジナルサーバの位置を管理するOST(Original Server Table)１１３と、各コンテンツの人気度グループを管理するPGT(Popularity Group Table)１０３が用意される。FIB１０７は従来のCCNと同様、到着したInterestの目的アドレスに基づき転送先出力ポートを決めるために用いられるが、従来のCCNがコンテンツの名称Aのハッシュ値に基づきエントリを検索するのに対して、本発明（DCC）は目的ノードIDに基づき検索する。またPIT１１３も従来のCCNと同様、Interestの到着入力ポート番号を名称Aのハッシュ値H(A)と共に記憶しておき、コンテンツがInterestの転送経路を逆方向に転送されるよう、到着コンテンツの転送先出力ポートを決定するのに用いられる。
【００３４】
OST１１４には、コンテンツ名称Aのハッシュ値H(A)と、コンテンツ名称Aのオリジナルサーバが収容されたノードIDの対応付けが保存されている。ルータRが収容する（スタブISPなどユーザを直接収容する場合と、Tier-1 ISPなど、下位のISPを介して間接的に収容する場合がある）ユーザからコンテンツAに対するInterestがルータRに到着すると、コンテンツ存在性検査部１０１は、OST１１４のエントリをH(A)をキーに検索し、FIB検査部１０６が、取得されたオリジナルサーバのノードIDを目的ノードIDにセットしてFIB１０７の情報に従いInterestを送出する。
【００３５】
Interestが入力ポートnから到着したルータは、従来のCCNと同様、コンテンツAをキャッシュしているか、オリジナルサーバを収容する場合には、コンテンツAをポートnに送出する。そうでない場合、PIT検査部１１２がH(A)のエントリがPIT１１３に存在するかを判定し、存在すればPH（Previous Hop）に入力ポートnを追加し、存在しなければ新たにハッシュ値H(A)のエントリを作成しPHにnを設定する。一方、コンテンツを受信したルータのPIT検査部１１２は、ハッシュ値H(A)をキーにPIT１１３から得られる出力ポートにコンテンツを送出し、PIT１１３の該当エントリを削除する。この結果、コンテンツはInterestの転送経路を逆方向に経由して要求元に転送される。
【００３６】
PGT１０３は各コンテンツの人気度グループを管理するのに用いられ、各ハッシュ値H(A)に対して、Interest観測カウンタICと人気度グループPG (Popularity Group)のエントリを有する。各ルータは、自身が収容するユーザからのInterestを受信するごとに、Interestカウント部１０２でH(A)のPGT１０３のエントリのICをインクリメントする（他のルータから転送されてきたInterestもカウント対象とすると、各ルータのNW内の位置によってバイアスがかかることから、ローカルに受信したInterestのみを対象とする）。そして、コンテンツ人気グループ分類部１０９が、周期的に、各コンテンツmのInterest観測カウンタICの全コンテンツのICの総和に対する比率qmをコンテンツｍの要求比率の推定値として用いて［5］で後述する方法で各コンテンツmをK個の人気度グループのいずれかに分類し、PGT１０３のPGに登録する。ただし人気度の降順にグループIDを付与し、グループ1が人気度最大の、グループKが人気度最小のコンテンツがグループ化される。また全てのルータの各コンテンツに対するInterest観測カウンタICを、一定周期ごとにデクリメントすることで、コンテンツの人気度が時間的に変化する場合にも対応する。低人気コンテンツに対しては、観測されるInterestは少数であり要求比率の推定精度は低くなるが、アクセス総数が少ないため、割当て人気度グループの差異による影響は小さい。
【００３７】
このように本発明（DCC）におけるPIT１１３、OST１１４、PGT１０３は従来のCCNと同様、コンテンツの名称Aのハッシュ値H(A)をキーに検索されるが、FIBのエントリ検索はノードIDをキーに用いて実施される点が大きな特徴である。エントリ検索を固定長のノードIDで行う結果、FIBの必要メモリ量とエントリ検索処理コストの低減が期待される。
【００３８】
［3］  コンテンツキャッシュ判断法：
本節では、ルータにコンテンツが到着した際のキャッシュ判断法について述べる。
【００３９】
本節で述べる方式は、従来のCCNとは大きく異なる特徴を有しており、本発明（DCC）の核となる技術である。ルータRにコンテンツAが到着した際には、ルータRのコンテンツ受信部１１０は、コンテンツAの人気度グループSを、PGT１０３のハッシュ値H(A)のエントリを参照することで把握し、ハッシュ値H(A)の上位gビットがルータRのノードIDの上位gビットと一致する場合にのみ、Aをキャッシュメモリ１０４にキャッシュする。ただしAのオリジナルサーバを収容するルータはAをキャッシュしない。
【００４０】
図３に、ハッシュ値H(A)=101のコンテンツAのオリジナルサーバから、ルータe, d, c, b, aを経由してユーザ端末にコンテンツAが配信される場合を例として示す。コンテンツAの人気度グループgが1の場合、ハッシュ値H(A)の最上位ビット"1"と最上位ビットが一致するノードIDを有するルータはa, c, dの三つであり、これら三つのルータにおいてAがキャッシュされる。一方g=2の場合は、ハッシュ値H(A)の上位2ビット"10"と上位2ビットが一致するノードIDを有するルータはa, cの二つであり、これら二つのルータにおいてコンテンツAがキャッシュされる。
【００４１】
そのためノードIDのビットパタンが偏りなく割当られている場合(具体的な割当法については［4］で後述する)、人気度グループgに属するコンテンツは、Nのノード中
【００４２】
【数１】
2015162686.tif 000003
もしくは、
【００４３】
【数２】
2015162686.tif 000004
個のルータにおいて、キャッシュ対象となる。そのため高人気コンテンツほど多数のルータにキャッシュされる。また［4］で述べるように、任意の上位kビットが同一のノードIDを空間的に離れた場所に存在するルータに割当てることで、各コンテンツのキャッシュ位置の分散を図る。
【００４４】
コンテンツAを受信したルータRがAをキャッシュ対象と判断した際に、Rのキャッシュ容量が不足する場合には、キャッシュ済みコンテンツの一つを削除する。キャッシュ置換法としては、最後にアクセスされた時点からの経過時間が最大のコンテンツを削除するLRUが、CCNにおいても最適に近い性能を達成することから、本発明（DCC）においてもLRUを用いることを想定する。
【００４５】
［4］  ノードIDの付与方法
本発明（DCC）においては、ノードIDによって各コンテンツのキャッシュ位置が決定されるため、各ルータへのノードIDの割当法が重要である。本節では、システム管理者が事前処理として行うノードIDの割当法について述べる。
【００４６】
＜ノードIDの割り当て方針＞
高人気コンテンツの配置パタンほど全体の性能に与える影響が大きいことから、ノードIDの上位のビットから順番に、可能な限り空間的に離れた場所に存在するルータに同一のビットを割当てる。Sk(x)を、上位kビットにx=(x1,x2,…,xk)が割り当てられたノードの集合とする。そして、n∈Sk-1(x)の各ノードnに対して、第kビットの値を割り当てる処理を、k=1,2,…,Kの順番で反復する。但し、k=1のときは、全ノード集合Nが割り当て対象となる（S-1(φ）＝N)。
【００４７】
図４にN=11のルータにノードIDを割り当てる処理の最初の４ステップを例示する。図４（a）に示すように、最初にノードIDが完全に未割り当ての状態において、全ノードNを対象に第１ビットを割り当てる。各ビットは0か1の二つの値をとることから、第１ビットに0が割り当てられたノード集合S1(0)と、最上位ビットに１が割り当てられたノード集合S1(1)とに、これら二つのノード集合のサイズの差異が１以下となるようNを分割する。
【００４８】
次に、図４(b)に示すように、n∈S1(0)の各ノードnに対して第２ビットを割り当て、最上位２ビットに"00"が割り当てられたノード集合S2(0,0)と、"01"が割り当てられたノード集合S2(0,1)とにS1(0)を分割する。
【００４９】
そして、図４（c）に示すように、残るもう一方のノード集合S1(1)に対して第２ビットを割り当て、最上位２ビットに"10"が割り当てられたノード集合S2(1,0)と、"11"が割り当てられたノード集合S2(1,1)とにS1(1)を分割する。
【００５０】
次に、得られた４つの各ノード集合S2(0,0)，S2(0,1)，S2(1,0)，S2(1,1)の各々に対して第３ビットを割り当て、各々を二つのノード集合に分割する。図４(d)には、S2(0,0)をS3(0,0,0)とS3(0,0,1)とに分割する処理を例示する。以後、Nの全ノードにK個のビットが割り当てられるまで本処理を反復する。
【００５１】
＜ノード集合Sk-1(x)への第kビット割り当て法＞
次に、ノードID割り当て処理の各ステップにおいて、Sk-1(x)のノード集合に第kビットを割り当てる方法を述べる。
【００５２】
分割により生成される二つのノード集合AとBの構成ノード数を各々Na,Nbとし、y=|Sk-1(x)|とすると、yが偶数の場合はNa=y/2に、yが奇数の場合は
【００５３】
【数３】
2015162686.tif 000005
もしくは、
【００５４】
【数４】
2015162686.tif 000006
とすることで、AとBのサイズの差異を１以下にできる。また、Nb=y-Naとなる。
【００５５】
人気度グループkのコンテンツは最上位kビットが一致する全てのルータにおいてキャッシュ対象となることから、Nの各ノードからAへの最短ホップ距離と、Bへの最短ホップ距離との平均値Fを最小化するよう、ノードIDの第kビットを割り当てることが望ましい。そこで、Sk-1(x)をAとBとに分割する以下の最適化問題を定義する。
【００５６】
【数５】
2015162686.tif 000007
ただし、pnはノードnの収容ユーザ数比率であり、hn,jはノードnからノードjに至る最短ホップ距離である。N個のルータを二つのグループに分ける組み合わせ数はNの増加に対して指数関数的に増加することから、本最適化問題を厳密に解くことは困難である。そのため、以下に示す貪欲算法で解を求める。
【００５７】
(i)  AとBを、A=Sk-1(x)，B=φに初期設定。
【００５８】
(ii)  a∈Aの各ノードaをBに移した場合の平均値Fを算出し、Fが最小となるノードaをAからBに移動（A→A−{a}, B→B+{a}）。
【００５９】
(iii) ステップ(ii)を|A|＝Naとなるまで反復（yが奇数の場合は
【００６０】
【数６】
2015162686.tif 000008
もしくは
【００６１】
【数７】
2015162686.tif 000009
のうち、Fが小さい方を採用）。
【００６２】
＜ノードID割り当てに関する考察＞
上記で述べた方法で、各ルータにノードIDを割り当てることで、1≦k≦Kの各kに対して、最上位kビットが同一のIDが空間的に離れた位置に存在するルータに割り当てられ、コンテンツのキャッシュ位置を空間的に分散する効果が期待できる。
【００６３】
ところで、N≦２Kであるため、（2K−N）個のIDには割り当てルータが存在せず、コンテンツ名Aのハッシュ値H(A)が非割当IDに一致する人気度グループKのコンテンツは、どのルータにおいてもキャッシュされない。しかし、［2］で述べたように、Interestはオリジナルサーバに向けて転送されるため、この場合もコンテンツの配信は問題なく実施される。またキャッシュ対象ルータが存在しないコンテンツは、人気度が最も低いグループKのコンテンツのみであるため、全体の性能に与える影響は小さい。
【００６４】
ところでルータが増設された際には、空間的に分散されたノードID割当を維持するために、新たに追加されたルータだけでなくNW上の全ルータに対してノードIDを再度、割当てる。そのため既に存在するルータのノードIDが変化する可能性があるが、新たに割当てられたIDに基づきコンテンツをキャッシュすることで、古いIDに基づきキャッシュされたコンテンツはLRUにより削除されていく。そのため新しいIDに基づく割当状態に段階的に移行することができる。
【００６５】
次に各ノードから、各人気グループkに属するコンテンツのキャッシュ対象ノードまでの平均ホップ距離Ykについて考える。人気グループｋのコンテンツは、ハッシュ値の上位kビットがノードIDと一致するノードにのみキャッシュされる。そのためｋビットの二進数の全てのパタンの集合をXkとすると、人気グループｋの各コンテンツのキャッシュ対象ノードの集合Sk(x)は2kパタン存在する各x∈Xkに対して存在する。そのためYkは次式で得られる。
【００６６】
【数８】
2015162686.tif 000010
ただし、Onはオリジナルサーバから各ノードnに至る平均ホップ長で、各コンテンツのオリジナルサーバは確率pnで各ノードnに収容されているとき、
【００６７】
【数９】
2015162686.tif 000011
となる。
【００６８】
［5］  コンテンツのグループ化法：
［2］で述べたように、本発明(DCC)では、各コンテンツをK個人気度グループのいずれかに分類する。本節ではM個のコンテンツがNW全体で提供されているときに、これらを人気度に応じてK個のグループG1,G2,…,Gkに分類する方法を述べる。mgをGgに分類したコンテンツの数とし、
【００６９】
【数１０】
2015162686.tif 000012
と定義すると、
【００７０】
【数１１】
2015162686.tif 000013
となる。各コンテンツｍへの要求比率qmと、各人気度グループgのコンテンツのキャッシュ候補ルータまでの平均ホップ長Ygを用いると、NW上の各ルータから各コンテンツのキャッシュ候補ルータまでの平均ホップ長Yは、
【００７１】
【数１２】
2015162686.tif 000014
で得られる。ただしRgは人気度グループgのコンテンツへの総要求比率であり、
【００７２】
【数１３】
2015162686.tif 000015
と定義すると、R1=q(M1)で2≦g≦Kの各gに対して
Rg=Q(Mg)-Q(Mg-1)
となる。
【００７３】
このようにして得られるYを最小化するよう、コンテンツを人気度グループに分類することを考える。ただし高人気グループに多くのコンテンツを分類するほどYが減少するが、各ルータがキャッシュ対象とするコンテンツの数が増加するため、キャッシュヒット率が低下し、オリジナルサーバからの配信が増加する。一方で、与えられたmgに対して、各ルータにおけるキャッシュ候補コンテンツ数Dは、
【００７４】
【数１４】
2015162686.tif 000016
となる。そこで1以上の実数値をとる設計パラメータαを用いて、Dの上限を各ルータのキャッシュ容量Cのα倍で抑える制約条件を設ける。そして各Ggに割当てるコンテンツ数mgを導出するための最適化問題を次式で定義する。
【００７５】
【数１５】
2015162686.tif 000017
ただし、Mの増加に対して指数関数的に組合せ数が増加することから、以下に示す貪欲算法を用いてmgを導出する。ただしt回目の反復ステップにおけるYとDの値を各々、Yt，Dtとする。
【００７６】
(i)  初期状態ｔ＝0では、Mの全コンテンツGKに分類（mg=0(1≦g≦K−1),mK=M）
(ii)  1≦a≦K，a＜b≦K，mb>0を満たす任意の整数a，bに対して、mb→mb−1，ma→ma+1に修正したときのYt、Dtを計算。
【００７７】
(iii) aとbの全組み合わせ中、Dt≦αCを満たし、かつ、以下の評価式ηが最大となるa,とbの組、a*，b*に対して、mb*→mb*−1,ma*→ma*+1に修正。
【００７８】
【数１６】
2015162686.tif 000018
(iv)  ステップ(ii)(iii)を、Yt＜Yt-1，Dt≦αCを満たすaとbの組が存在する限り反復。
【００７９】
図５にb=a+2の場合を例示するように、上記ステップ(ii)において、a＜g≦bの範囲の各Ggの構成コンテンツの中で人気度最大のものが各々、Gg-1に移動する。コンテンツをより高人気のグループに移すため、常にHt＜Ht−1，Dt＞Dt-1となる。よって、Dtは反復が進むにつれ単調に増加することから、有限回数の反復で上記アルゴリズムは終了する。
【００８０】
また、Dが最大となるのは全コンテンツをG1に分類した場合で（m1=M）、その最大値はM/2となることから、アルゴリズム終了時点においてD=min（αC,M/2）となる。一方、Dが最小となるのは全コンテンツをGKに分類した場合で（mk=M）、上記アルゴリズムにおける初期状態が該当する。そのため、Dの取り得る最小値は、Dmin=M/2Kとなる。Dmin＞αCのとき、制約条件D≦αCを満たすコンテンツのグループ化パタンが存在しないため、αには設定可能な下限値αmin=N/C2Kが存在する。よって１以上の実数値を取るパラメータβを用いてα＝βαminに設定する。
【００８１】
［数値評価］
以下では、CAIDAのWebページ（http://www.caida.org/data）でPoPレベルのトポロジが公開されている商用ISPバックボーンNWのうち、ノード数Nが13以上の30のNWに、本発明で提案するDCCを適用した結果を示す。コンテンツ数をM=10,000に、各ノードnの要求発生比率pnをノードnが存在する都市の人口の比率に、各コンテンツmの要求比率qmをパラメタ1のZipf分布に、各ルータのキャッシュ容量をC=10(コンテンツ)に設定する。［2］で述べたように、各ルータはInterestの計測数に基づきqmを推定するが、数値評価ではqmの設定値を全ノードで用いる。全ルータのキャッシュが空の状態で計算機シミュレーションを開始し、全ルータのキャッシュにC個のコンテンツがキャッシュされた時点から統計を開始する。
【００８２】
評価にあたり平均ノード間ホップ距離Y0を、
【００８３】
【数１７】
2015162686.tif 000019
で定義する。Y0はキャッシュを用いないで全てのコンテンツをオリジナルサーバから配信したときの配信フロー平均ホップ長に相当する。評価に用いた30のNWにおいては、Y0は、1.77〜9.31の範囲の値である。
【００８４】
次に、上記のパラメータβの最適設定値について評価する。
【００８５】
30の各NWのKは規模に応じて4, 5, 6, 7のいずれかの値をとるが、図６（a）に、Kの値が各々異なる4つのNW(N1, N2, N3, N9)に対して、βを1≦β＜10の範囲で変化させたときの、各コンテンツのキャッシュ候補ルータまでの平均ホップ長Yをプロットする。同様に図６（b）に、これら4つの各NWにおける、各ルータの平均キャッシュ対象コンテンツ数Dをβに対してプロットする。
【００８６】
Dの増加に伴いキャッシュヒット率が低下するため、YとDの両方が小さいことが望ましい。βの増加に伴い、[5]で示した貪欲算法の制約条件が緩和され、より人気度の高いグループに多くのコンテンツが分類される結果、Yは減少するが、βが1に近い領域で減少度合が大きく、βの増加に伴いYの低減率は低下する。一方で、βの増加に伴いαが増加しDは線形に増加するが、M/2に達したところで一定となる。
【００８７】
以上の傾向から、β＝１から出発し、βを任意の定数
【００８８】
【数１８】
2015162686.tif 000020
だけ増加させたときのYの低減率が、Dの増加率より大きくなるβの最大値β*をβに設定する。以後の数値評価では
【００８９】
【数１９】
2015162686.tif 000021
に設定した。
【００９０】
評価に用いた30のNWにおいて、β*は1.10〜1.28の範囲の値となったが、Y0が大きなNWほどYを低減する効果が大きくなるためβ*は大きくDは小さい。YはNWの規模とは無関係で、Y0が大きなNWほど大きい。
【００９１】
［キャッシュヒット率］
DCCの有効性を確認するため、DCCにおける平均キャッシュヒット率Wを、従来のCCNにおけるWと比較する。配信要求が生じたノードから送出されたInterestがオリジナルサーバ収容ノードに到達する前に、Interest転送経路上の任意のルータにおいて該当コンテンツがキャッシュされていた場合にキャッシュがヒットしたとみなし、総配信要求数に対するキャッシュヒット回数の割合をWとする。ただしWの算出において、要求発生ノードにおいて該当コンテンツがキャッシュされていて、配信ホップ長がゼロとなる場合は対象外とする。またCCNではコンテンツのキャッシュ位置制御は行わず、コンテンツの転送経路(default-path)上の全てのルータにおいてキャッシュする。
【００９２】
図７（a）に、30の各NWにおけるWをY0に対して各々プロットする。また図７（b）には、DCCのCCNと比較したWの改善率をプロットする。ただしDCCとCCNにおけるWの値を各々Wd，Wcとすると、Wの改善率を(Wd−Wc)/Wcで定義する。DCCを用いることで全てのNWにおいてWの5%〜70%程度の改善効果が見られるが、Y0が大きなNWにおいてDCCの有効性が特に顕著となる。
【００９３】
また、図８（a）に、Wの改善率が30のNW中、最も小さかった5つのNWの各々に対して、各人気度グループgを構成するmg個のコンテンツのWの改善率をgに対してプロットする。図８（ｂ）には、同様に、Wの改善率が最も大きかった5つのNWの各々に対してグループ別Wの改善率をプロットする。多くのNWにおいて、最も人気の高いコンテンツが分類される上位3つのグループ、G1，G2，G3に分類された、人気の高いコンテンツに対してWの改善効果が見られる。特にG2やG3に分類された、トップレベルではないが人気度が比較的に高いコンテンツのW向上効果が大きい。全ルータがコンテンツをキャッシュ対象とした場合、人気度がトップレベルの少数のコンテンツによって多くのルータのキャッシュが埋まるため、人気度が下がるコンテンツのキャッシュヒット率が低下する。一方DCCを用いることで、トップレベルのコンテンツのキャッシュ位置が半数のルータに限定され、生じたキャッシュの空きスペースを、若干人気度が下がるコンテンツに対して有効に活用できる。
【００９４】
一方で、人気度が低いコンテンツが分類される、G4〜G7といったグループのWはDCCを用いることで低下する。これは従来のCCNでは、低人気のコンテンツであっても全ルータにおいてキャッシュ対象となり、LRUで削除されるまでの間、キャッシュされた状態が維持されるのに対して、本発明（DCC）では低人気のコンテンツに対しは常に少数のルータのみがキャッシュ位置の候補となるためである。以上のことから、本発明（DCC）は人気度に応じてコンテンツのキャッシュ位置を住分け、全体としての平均キャッシュヒット率を向上できることが確認される。
【００９５】
［配信フローのホップ長］
図９（a）に30の各NWの平均配信フローホップ長ZをY0に対してプロットし、図９（ｂ）に本発明（DCC）のCCNと比較したZの削減率をプロットする。ただし本発明のDCCとCCNにおけるZの値を各々Zd，Zcとすると、Zの削減率を（Zc−Zd）/Zcで定義する。キャッシュヒット時の平均ホップ長をZc、キャッシュミスによるオリジナルサーバからの配信時の平均ホップ長をZsとすると、Z=WZc+(1-W)ZsとなるがZsはDCCとCCNの両方において等しいため、本発明（DCC）によるZの削減効果はWの向上効果と比較して小さい。しかし本発明（DCC）を用いることで全てのNWにおいてZが減少し、従来のCCNと比較して3％〜20％程度の削減効果が見られる。キャッシュヒット率と同様、Y0が大きなNWにおいてDCCの有効性が特に顕著となる。
【００９６】
図１０（a）に、Zの削減率が30のNW中、最も小さかった5つのNWの各々に対して、各人気度グループgのZの削減率をgに対してプロットする。図１０（b）には同様に、Zの削減率が最も大きかった5つのNWの各々に対してグループ別Z削減率をプロットする。多くのNWにおいて、G1に分類された高人気コンテンツに対してZの削減効果が大きい。図８で見たように、Wの改善率はG2やG3がG1より大きいが、G1のコンテンツは多数のルータでキャッシュされており、キャッシュヒット時のZ削減効果は最大となる。人気度が高位〜中位のグループにおいてZの削減効果が見られるが、低位のグループにおいては若干、Zが増加する。
【００９７】
上記の図１に示すキャッシュ制御装置の構成の処理をプログラムとして構築し、CCN上のノードとなるコンピュータにインストールして実行させる、または、ネットワーク介して流通させることが可能である。
【００９８】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００９９】
１００  キャッシュ制御装置
１０１  コンテンツ存在性検査部
１０２  Interestカウント部
１０３  PGT
１０４  キャッシュメモリ
１０５  コンテンツ送出部
１０６  FIB検査部
１０７  FIB
１０８  FIB構成部
１０９  コンテンツ人気グループ分類部
１１０  コンテンツ受信部
１１１  コンテンツ人気グループ判定部
１１２  PIT検査部
１１３  PIT
１１４  OST
【図１】
2015162686.tif 000022
【図２】
2015162686.tif 000023
【図３】
2015162686.tif 000024
【図４】
2015162686.tif 000025
【図５】
2015162686.tif 000026
【図６】
2015162686.tif 000027
【図７】
2015162686.tif 000028
【図８】
2015162686.tif 000029
【図９】
2015162686.tif 000030
【図１０】
2015162686.tif 000031