(57)【特許請求の範囲】
【請求項１】
第一キャッシュレイヤと、
第二キャッシュレイヤと、を含む、ＩＣＮルータであって、
前記第一キャッシュレイヤは、第一コンテンツメモリを含み、
前記第二キャッシュレイヤは、第二コンテンツメモリを含み、
前記第二コンテンツメモリは、前記第一コンテンツメモリよりも大きい容量を有するが、アクセス速度が低く、
当該ＩＣＮルータがデータを出力するように要求されたときに、前記第一キャッシュレイヤが前記第二キャッシュレイヤから該データをフェッチするように適合されているように、当該ＩＣＮルータは構成されており、
前記第一コンテンツメモリは、第一ブロックサイズを呈し、
前記第二コンテンツメモリは、第二ブロックサイズを呈し、
前記第二ブロックサイズは、前記第一ブロックサイズよりも大きく、
前記第一コンテンツメモリは、スワップ領域を有し、前記第一コンテンツメモリがそこを通じて前記第二コンテンツメモリに接続されており、
前記スワップ領域は、前記第二コンテンツメモリからフェッチされた前記第二ブロックサイズのブロックの一部として、前記第一ブロックサイズのブロックを個別に供給するように適合されている、ＩＣＮルータ。
【請求項２】
前記第一キャッシュレイヤは、さらに、前記第一コンテンツメモリのブロックにインデックスを付する第一インデックスメモリを含み、
前記第二キャッシュレイヤは、さらに、前記第二コンテンツメモリのブロックにインデックスを付する第二インデックスメモリを含む、請求項１に記載のＩＣＮルータ。
【請求項３】
前記第一コンテンツメモリは、前記第一インデックスメモリよりも大きい容量を有するが、アクセス速度が低く、
前記第二コンテンツメモリは、前記第二インデックスメモリよりも大きい容量を有するが、アクセス速度が低い、請求項２に記載のＩＣＮルータ。
【請求項４】
さらに、前記第二コンテンツメモリよりも大きい容量を有するが、アクセス速度が低い大容量メモリを含む第三キャッシュレイヤを含み、
当該ＩＣＮルータがデータを出力するように要求されたときに、前記第二キャッシュレイヤが前記第三キャッシュレイヤから該データをフェッチするように適合されているように当該ＩＣＮルータは構成されている、請求項１から３のいずれか一項に記載のＩＣＮルータ。
【請求項５】
前記第一コンテンツメモリは、さらに、前記第二コンテンツメモリに記憶されている複数のコンテンツのうちの少なくとも第一ブロックが記憶されている動画開始領域を含む、請求項１から４のいずれか一項に記載のＩＣＮルータ。
【請求項６】
前記動画開始領域に少なくとも前記第一ブロックが記憶されている前記複数のコンテンツは、最も要求されやすい、第二コンテンツメモリの複数のコンテンツである、請求項５に記載のＩＣＮルータ。
【請求項７】
ＩＣＮルータでのコンテンツアクセス方法であって、
前記ＩＣＮルータで、前記ＩＣＮルータの第二キャッシュレイヤの第二コンテンツメモリに少なくとも部分的に記憶さているコンテンツへの要求を受信する工程であって、該第二コンテンツメモリは第二ブロックサイズを呈する、工程ａと、
前記ＩＣＮルータの第一キャッシュレイヤの第一コンテンツメモリのスワップ領域で、要求された前記コンテンツのデータの第二ブロックサイズのブロックを、前記第二コンテンツメモリからフェッチする工程であって、該第一コンテンツメモリは第一ブロックサイズを呈する、工程ｂと、
前記第二ブロックサイズでフェッチされた各ブロックに対して、前記要求に応じて、前記第二ブロックサイズでフェッチされたブロックの一部として、前記第一ブロックサイズのブロックを順次供給する工程ｃと、
を含む方法。
【請求項８】
前記工程ａは、さらに、前記第一コンテンツメモリの動画開始領域にある、要求された前記コンテンツの第一ブロックを検索する工程を含む、請求項７に記載の方法。
【請求項９】
要求されたコンテンツの少なくとも第一ブロックが前記動画開始領域に記憶され、
前記工程ｂは、前記要求に応じて、動画開始領域に記憶されている要求されたコンテンツのブロックを順次供給する工程を同時的に含む、請求項８に記載の方法。
【請求項１０】
要求された前記コンテンツは再生される動画であり、
さらに、前記動画の供給を一時停止する要求を前記ＩＣＮルータで受信するときは、前記第一ブロックサイズで少なくとも一つのブロックを順次供給し、前記動画の供給を再開する要求を前記ＩＣＮルータで受信するときは、最後に供給されたブロックから、工程ｂ及び工程ｃを再度行う、工程ｄを含む、請求項７から９のいずれか一項に記載の方法。
【請求項１１】
請求項７から９のいずれか一項に記載の、ＩＣＮルータでのコンテンツアクセス方法を実行させるコンピュータプログラム。
【請求項１２】
請求項７から９のいずれか一項に記載の、ＩＣＮルータでのコンテンツアクセス方法を実行させるコンピュータプログラムが記憶されているコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、情報指向ネットワーキング（ＩＣＮ）のものである。より詳細には、本発明は、ＩＣＮルータに関連する。
【背景技術】
【０００２】
情報指向ネットワーキング（ＩＣＮ）は、コンピュータネットワークアーキテクチャの別アプローチである。その根本的な原理は、通信ネットワークにより、ユーザはデータが取り出される特定の物理的位置を参照することを要することなく、必要なデータに集中することができるべきであるということある。これは、現在のインターネット利用量の大部分（９０％）が一つのソースから多数のユーザにばらまかれたデータであるという事実に由来する。
【０００３】
ＩＣＮは、ホストアドレスよりも名前付きデータ（named-data）が中心とされた通信である、新たなネットワーキングモデルを導入している。全くもって、ＩＣＮにおいては、全てのデータパケットが、物理的位置の代わりに固有の名前によって識別され、アドレスされ、取り出されるのである。
【０００４】
近年、複数のＩＣＮアーキテクチャが提案されているが、最も知られた例としては、名前付きデータネットワーキング（ＮＤＮ）としても知られる、コンテンツ指向ネットワーキング（ＣＣＮ）が代表される。ＩＣＮアーキテクチャは、概して、異なる多数の選択肢がある（例えば、フラットｖｓ階層的名前付けストラテジー、ルーティング及び転送ストラテジー、最小アドレス可能エンティティのグラニュラリティ（granularity）等）が、それらは、概して、アーキテクチャでの基本的なものとしてのキャッシング機能を特徴とすること等の、共通のポイントを有している。提案されている全てのＩＣＮを包含する共通した専門用語が現在のところ見当たらないため、本文では、明確性のため、ＣＣＮの専門用語を適用するが、本アプローチはより広い範囲に適用可能であるとする。
【０００５】
ゆえに、ＩＣＮにおいて、全てのノード（ルータ）は、潜在的にコンテンツ（これは、「チャンク」に分割される。つまり、所与のサイズを備えたデータの基本的なフラグメント、言い換えれば、「ブロック」）を記憶し、同じコンテンツに対する将来的な要求を進んで供給する。このため、キャッシュ／バッファメモリ等の記憶能力を改善したネットワークノードを配備することができる。全くもって、記憶リソースは、数分から数時間又は数日にわたる期間、ネットワークを通じて拡散した一時的なコンテンツの複製を維持するのに用いられることができるのである。異なる複製の可用性は、コンテンツの人気度、キャッシュ置換ポリシー等の複数のファクタに依存し、要求転送ポリシーによって影響を受ける。文言「要求転送ポリシー（request  forwarding  policy）」とは、ここでは広く、非限定的に、ノードを含むネットワーク内でコンテンツ要求の転送を管理するやり方／決まりを示す。現に、要求転送ポリシーは、より良好なエンドユーザーパフォーマンス（例えば、データ搬送時間）を提供し、ネットワークで送信されるデータ量を低減する、つまり、ネットワーク負荷を軽くするのに重要な役割を果たす。
【０００６】
実際のところ、ＩＣＮアーキテクチャの成功は、回線速度でデータトラフィックを処理することが可能な、大容量のキャッシュを提供できる能力にかかっている。これらの二つの要件は、トレードオフの関係にあり、現在のところ利用可能なメモリ技術の技術的制約により、最先端のものでも、１０Ｇｂｐｓを超える速度を維持（sustain）ことができる最も大きいもので約１０ＧＢのサイズである。
【０００７】
とりわけ、ＩＣＮキャッシュについては、主に二つのパフォーマンスの側面を考慮する必要がある。第一に、（ｉ）インタレスト（interest）がキャッシュされているコンテンツによりローカルで満たされることができるのか否か、又はそれが転送される（forward）ことが必要であるのか否かを決定するため、コンテンツ名をルックアップ（lookup）する。合致した場合は、（ｉｉ）  ルックアップは、応答パケットをアセンブルするのに送信される必要のある、コンテンツそのものを記憶するメモリ領域へのポインタを返す。
【０００８】
動作（ｉ）は、少量のデータを移動させることを必要とし、ゆえに、主な性能インジケータは、メモリアクセス待ち時間である。回線速度での動作を維持するためには、メモリインデックスは、最悪の場合でも、最大耐用（sustainable）可能データ速度のスループットと合致する頻度でアクセスされなくてはならない。言い換えると、総ルーターデータ速度（aggregate  router  data  rate）がＲで、データチャンクがＳｃ（概して、２〜３ｋＢ）を有するとすれば、時間単位当たりに転送されることのできるチャンクの最大数は、Ｒ／Ｓｃであり、アクセス≦１Ｒ／Ｓｃとなるように、インデックスへのアクセス数の上限も決める。
【０００９】
一方、動作（ｉｉ）は、チャンクサイズに依存し、（小さいチャンクの場合）アクセス待ち時間、又は（大きいチャンクの場合）外部データ速度、つまり、ランダムメモリブロックを読み込むときの耐用可能なスループット、のいずれかで駆動されることができる。
【００１０】
D.  Perino及びM.  Varvello著「A  reality  check  for  content  centric  networking」（ACM  SIGCOMM  ICN  workshop、２０１１）では、Ｈ＝４０bits長のコンテント名のハッシュを採用し、１００ＭＢのＳＲＡＭ（スタティックランダムアクセスメモリ）チップでインデックスが付され、順次アクセス及びＬＲＵ置換ポリシーを実装する１０ＧＢのＤＲＡＭ（ダイナミックランダムアクセスメモリ）に記憶された、Ｓｃ＝１５００Ｂのチャンクを供給する８×４０Ｇｂｐｓインタフェースをサポートするように設計されている。
【００１１】
しかし、そのようなメモリサイズでは、世界的に消費されるデジタルデータに対してはとるに足らないように思われ、ＩＣＮの成功は、大きいコンテンツ記憶の実現可能性に条件づけされる。従って、ＳＳＤ（ソリッドステートドライブ）（又は、ＨＤＤ（ハードディスクドライブ）までも）がキャッシュサイズを数ＴＢにまで大きくすることが望ましいだろう。たとえ、「A  reality  check  for  content  centric  networking」が１０ＧＢのＤＲＡＭによってインデックスが付される１ＴＢのＳＳＤキャッシュという最先端のルータ設計を提案するとしても、そのような設計はコアＩＣＮルータには利用可能ではない。これは、ＳＳＤの高いメモリアクセス待ち時間（少なくとも３０μｓ）がメモリ上で動作（ｉ）及び（ｉｉ）のボトルネックとなるためであり、０．５Ｇｂｐｓの最高（であり、不十分な）速度が報告されている。
【００１２】
このため、数Ｇｂｐｓ回線速度での動作を維持しながら、数テラバイトサイズにまでＩＣＮキャッシュを大きくした、シンプルで、さらに安価で、効率的なアーキテクチャの必要性がある。
【発明の概要】
【００１３】
これらの目的のため、本発明は、第一キャッシュレイヤと、第二キャッシュレイヤとを含むＩＣＮルータを提供し、第一キャッシュレイヤは、第一コンテンツメモリを含み、第二キャッシュレイヤは、第二コンテンツメモリを含み、第二コンテンツメモリは、第一コンテンツメモリよりも大きい容量を有するが、アクセス速度が低く、ＩＣＮルータがデータを出力するように要求されたときに、第一キャッシュレイヤが第二キャッシュレイヤからデータをフェッチするように適合されているようにＩＣＮルータは構成されており、第一コンテンツメモリは、第一ブロックサイズを呈し、第二コンテンツメモリは、第二ブロックサイズを呈し、第二ブロックサイズは、第一ブロックサイズよりも大きく、第一コンテンツメモリは、スワップ領域を有し、第一コンテンツメモリがそこを通じて第二コンテンツメモリに接続されており、スワップ領域は、第二コンテンツメモリからフェッチされた第二ブロックサイズのブロックの一部として、第一ブロックサイズのブロックを個別に供給するように適合されている。
【００１４】
チャンク間の相関関係を利用することにより、本ＩＣＮルータは、ＩＣＮデータプレーンで到着した要求を、後続するチャンクの要求の予測の判断材料として用いる。そして、多数のチャンクが、大容量ではあるがアクセス速度が低い第二コンテンツメモリ（例えば、ＳＳＤ）から、高速ではあるが小容量の第一コンテンツメモリ（例えば、ＤＲＡＭ）のスワップ領域に移動させられる。追加的に、複数のチャンクについてメモリ転送動作を一括して行うことにより、ＳＳＤがメモリアクセス時間により支配されている動作ポイントから、ＳＳＤ外部データ速度がボトルネックである動作ポイントへの移行が起きて、耐用可能データ速度の観点から一桁分の利得をえる。最終的に、システムは、（スワップ領域とやり取りする）高速な第一コンテンツメモリにカタログの大部分の第一チャンクを直接的に記憶することによって、（例えば、動画ストリーミングについて）短い起動時の待ち時間を得るようにさらに最適化されることができる。
【００１５】
本発明の好ましいが非限定的な特徴は次のようである。
・  第一キャッシュレイヤは、さらに、第一コンテンツメモリのブロックにインデックスを付する第一インデックスメモリを含み、前記第二キャッシュレイヤは、さらに、前記第二コンテンツメモリのブロックにインデックスを付する第二インデックスメモリを含む。
・  第一コンテンツメモリは、第一インデックスメモリよりも大きい容量を有するが、アクセス速度が低く、第二コンテンツメモリは、第二インデックスメモリよりも大きい容量を有するが、アクセス速度が低い。
・  ＩＣＮルータは、さらに、第二コンテンツメモリよりも大きい容量を有するが、アクセス速度が低い大容量メモリを含む第三キャッシュレイヤを含み、ＩＣＮルータがデータを出力するように要求されたときに、第二キャッシュレイヤが第三キャッシュレイヤからデータをフェッチするように適合されているようにＩＣＮルータは構成されている。
・  第一コンテンツメモリは、さらに、第二コンテンツメモリに記憶されている複数のコンテンツのうちの少なくとも第一ブロックが記憶されている動画開始領域を含む。
・  動画開始領域に少なくとも第一ブロックが記憶されている複数のコンテンツは、最も要求されやすい、第二コンテンツメモリの複数のコンテンツである。
【００１６】
第二観点において、本発明は、ＩＣＮルータでのコンテンツアクセス方法であって、
（ａ）  ＩＣＮルータで、ＩＣＮルータの第二キャッシュレイヤの第二コンテンツメモリに少なくとも部分的に記憶さているコンテンツへの要求を受信する工程であって、第二コンテンツメモリは第二ブロックサイズを呈する、工程ａと、
（ｂ）  ＩＣＮルータの第一キャッシュレイヤの第一コンテンツメモリのスワップ領域で、要求されたコンテンツのデータの第二ブロックサイズのブロックを、第二コンテンツメモリからフェッチする工程であって、第一コンテンツメモリは第一ブロックサイズを呈する、工程ｂと、
（ｃ）  第二ブロックサイズでフェッチされた各ブロックに対して、要求に応じて、第二ブロックサイズでフェッチされたブロックの一部として、第一ブロックサイズのブロックを順次供給する工程ｃと、
を含む方法。
【００１７】
本発明の好ましいが非限定的な特徴は次のようである。
・  工程ａは、さらに、第一コンテンツメモリの動画開始領域にある、要求されたコンテンツの第一ブロックを検索する工程を含む。
・  要求されたコンテンツの少なくとも第一ブロックが動画開始領域に記憶され、工程ｂは、要求に応じて、動画開始領域に記憶されている要求されたコンテンツのブロックを順次供給する工程を同時的に含む。
・  要求されたコンテンツは再生される動画であり、方法は、さらに、動画の供給を一時停止する要求をルータで受信するときは、第一ブロックサイズで少なくとも一つのブロックを順次供給し、動画の供給を再開する要求をルータで受信するときは、最後に供給されたブロックから、工程ｂ及び工程ｃを再度行う、工程ｄを含む。
【００１８】
第三及び第四観点によれば、本発明は、本発明の第二観点に従う、ＩＣＮルータでのコンテンツアクセス方法を実行するコード命令を含むコンピュータプログラム製品及び、本発明の第二観点に従う、ＩＣＮルータでのコンテンツアクセス方法を実行するコード命令を含むコンピュータプログラム製品が記憶されているコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【００１９】
本発明の上記及び他の目的、特徴並びに効果は、添付の図面に関連して理解される、本発明の例示的な実施形態の次の詳細な説明から明らかとなっている。
【００２０】
【図１】図１は、既知のメモリ技術の性質を表すテーブルである。
【図２】図２は、本発明に従う、ＩＣＮルータの実施形態を表す。
【図３】図３は、本発明に従う、ＩＣＮルータの実施形態を表す。
【発明を実施するための形態】
【００２１】
＜ＩＣＮキャッシュ＞
図１を参照すると、既知のメモリ技術の性質が示されている。各技術項目について、長所及び短所がそれぞれ緑色及び赤色でハイライトされている。
【００２２】
図１からは、比較的大きいメモリ読み取りサイズ（６４ＫＢ−１２８ＫＢ）で、高いＳＳＤメモリスループット（２０Ｇｂｐｓ−２４Ｇｂｐｓ）を達成することができることが分かる。一方、ＨＤＤ技術は、達成可能なデータ速度（１．４Ｇｂｐｓ）及びＳＡＴＡ相互接続（６Ｇｂｐｓ）の最大データ速度の両方での制限により、それほど好ましくはない。
【００２３】
ゆえに、ＳＳＤボトルネックをメモリアクセス時間から外部転送速度に移動するシステム設計であれば、維持可能な速度（４０ｘ〜４８ｘまで）の観点から一桁を超える利得を得られる可能性がある。付加的に、大きなＳＳＤサイズを与えると、キャッシングに関して好ましいパフォーマンスも期待できる。
【００２４】
＜ルータアーキテクチャ＞
図２を参照すると、本発明は、異種メモリ技術の本質的な差異を活用するマルチレイヤ階層キャッシングシステムを導入するＩＣＮルータ１を処理する。
【００２５】
ルータ１は、第一キャッシュレイヤＬ１及び第二キャッシュレイヤＬ２を含む。第一キャッシュレイヤＬ１は、第一コンテンツメモリ１１を含む。第二キャッシュレイヤＬ２は、第二コンテンツメモリ２１を含む。第二コンテンツメモリ２１は、第一コンテンツメモリより大きい容量を有するが、アクセス速度が低い。
【００２６】
ルータ１がデータを出力するように要求されたときに、第一キャッシュレイヤＬ１が第二キャッシュレイヤＬ２からデータをフェッチするように適合されているようにルータ１は構成されている。言い換えると、システムは、キャッシュの階層として組織化されている。つまり、（数テラバイト）Ｌ２キャッシュは、（数Ｇｂｐｓ）回線速度で動作する小さいＬ１キャッシュの後ろに隠されている。Ｌ１は、データプレーンにおいて高速サービスについての進行中のビデオのチャンクを含むべきであるという考えである。一方、Ｌ２は大きいが遅いので、カタログの重要な部分を記憶することができるが、Ｌ１への適切なプリフェッチを必要とする。
【００２７】
このような目的のため、第一コンテンツメモリ１１は、第一ブロックサイズを呈し、第二コンテンツメモリ２１は、第二ブロックサイズを呈し、第二ブロックサイズは、第一ブロックサイズよりも大きい（特には、第一ブロックサイズの複数倍）。最適なブロックサイズについては後に述べる。
【００２８】
第一コンテンツメモリ１１は、スワップ領域１１０を有し、第一コンテンツメモリ１１がそこを通じて第二コンテンツメモリ２１に接続されている。スワップ領域１１０は、第二コンテンツメモリ２１からフェッチされた第二ブロックサイズのブロックの一部として、第一ブロックサイズでブロックを個別に供給するように適合されている。ゆえに、第二ブロックサイズのブロックは、スワップ領域１１０によって、第一ブロックサイズの複数のブロックのまとまり（batch）として取り扱われる。
【００２９】
言い換えると、スワップ領域１１０は、第二ブロックサイズで第二コンテンツメモリ２１からフェッチされたデータを第一ブロックサイズで出力するように適合されている。例えば、第一ブロックサイズが４ｋＢであり、第二ブロックサイズが６４ｋＢである場合、スワップ領域１１０は、第二コンテンツメモリ２１からの６４ｋＢのブロックを、１６個の第一コンテンツメモリ１１の４ｋＢのブロックに変換する。ＩＣＮでは、オブジェクトは複数の名前付きチャンクに分割され、名前付きチャンクは、同一のオブジェクトに属する後続する他のチャンクの要求の予測の判断材料として用いられることができる。これは、プレフェッチ動作を積極的にトリガすることを示唆し、チャンクのまとまりにわたって動作することで、Ｌ２での高転送スループットを維持する。より詳細には、第一ブロックサイズは、チャンクサイズとして選択されることができ、第二ブロックサイズのブロックは、連続したチャンクのまとまりである。
【００３０】
ゆえに、（小さいが速い）第一キャッシュＬ１は、小さいブロックを個別に供給する一方で、複数の小さいブロックが（大きいが遅い）第二キャッシュＬ２から、第一コンテンツメモリ１１のスワップ領域１１０に移動される。これは、第二キャッシュＬ２にある小さいブロックにアクセスする際の待ち時間の問題を回避しており、より多くのブロックにアクセスすることで（複数の小さいブロックのまとまりを記憶することで）、ブロック単位での待ち時間のペナルティを回避するのと同時に、早いメモリ転送速度を達成している。
【００３１】
まとめると、チャンクのまとまりをＬ１に提供することによって、Ｌ１は、これらのチャンクを一つずつ最高速度で供給することができ、さらに、Ｌ２でのチャンクのまとまりで動作することによって、チャンクが個別に扱われるときに、Ｌ２のパフォーマンス制限を回避する。
【００３２】
好ましい実施形態においては、図１の現在のストレージ技術を用いると、第一コンテンツメモリ１１は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり、第二コンテンツメモリ２１は、ソリッドステートドライブ（ＳＳＤ）である。現在、利用可能な既存の技術では、２ＧＢと２０ＧＢ（好ましくは、約１０ＧＢ）との間の容量を備えた第一コンテンツメモリ１１と、２ＴＢと２０ＴＢ（好ましくは、訳１０ＴＢ）との間の容量を備えた第二コンテンツメモリ２１と、が許容される。ＤＲＡＭメモリだけが、唯一、回線速度でデータ要求を維持し、満足させることができるものであることに留意されたい。ＳＳＤからＤＲＡＭのスワップ領域１１０への積極的なメモリ転送により、おそらくデータプレーンでの要求の到着の関連で、キャッシュ階層全体では、回線速度でのデータ要求を維持し、満足させることができることが確保されている。
【００３３】
説明したように、チャンクサイズ（つまり、第一ブロックサイズ）は、最小データオブジェクトのグラニュラリティである。小さいチャンクサイズが好ましい（例えば、無数の小さいオブジェクトに対してパディング（padding）ペナルティを受けるのを回避する）。明らかに、チャンクサイズが全てのシステム動作の頻度を決定するため、より大きいチャンクサイズは、システムの複雑性を緩和するので有益でもある。現在進行中の取り組みでは、約４ｋＢであるより大きいチャンクサイズを採用しており、２ｋＢと２０ｋＢとの間のチャンクサイズ、好ましくは、１０ｋＢのチャンクサイズを合理的な妥協点と見なす。それでも、効率的なメモリ転送は、より大きい読み込み／書き出しサイズを必要とするので、早い外部データ速度を維持することのできるバッチサイズを達成するため、Ｂ個のチャンクをまとめる必要がある。図１から、ＳＳＤは、６４−１２８ｋＢのランダム読み出しにおいて、２０−２４ｋＧｂｐｓを達成するので、第二ブロックサイズは、６４ｋＢと１２８ｋＢとの間であることが安全である。つまり、Ｂ個のセットは、８個と３２個の間のチャンクを含み、好ましくは、Ｂ＝１０個のチャンクで、言い換えると、１００ｋＢの第二ブロックサイズを有するとよい。
【００３４】
ゆえに、ルータ１は、Ｌ２の外部データ速度がボトルネックとなるように設計される。また、ＰＣＩｅバスは、６４ＧｂｐｓまでのＩＯデータ速度をサポートするので、追加的な利得のため複数のパラレルＳＳＤを用いることができることも分かる。
【００３５】
＜インデックス＞
有利には、第一キャッシュレイヤＬ１は、さらに、第一コンテンツメモリ１１のブロックにインデックスを付する第一インデックスメモリ１２を含み、第二キャッシュレイヤＬ２は、さらに、第二コンテンツメモリ２１のブロックにインデックスを付する第二インデックスメモリ２２を含む。キャッシュインデックスは、データプレーンにおいて、各名前の検索でアクセスされる。インタレストパケット（interest  packet）がルータにヒットするときはいつでも、その名前がインデックスに存在する場合、インデックスは、ストレージメモリに対応する名前付きデータのメモリ位置を含んでいる。
【００３６】
ゆえに、各レベルにおいて、キャッシュは古典的な（classical）（インデックス、ストレージ）ペアに組織化されている。第一インデックスメモリ１２は、第一コンテンツメモリ１１よりも高速であり、同様に、第二インデックスメモリ２２は、第二コンテンツメモリ２１よりも高速であることが望ましい。同時に、メモリインデックスは、オブジェクトが置かれているコンテンツメモリ内の位置へのポインタを記憶することのみをすればよいので、インデックスメモリ１２及び２２は、それぞれ、コンテンツメモリ１１及び２１よりもかなり小さいサイズであるということになる。
【００３７】
その結果として、本ＩＣＮルータの好ましい実施形態においては（図２に表されているように）、Ｌ１ではＳＲＡＭチップがＤＲＡＭキャッシュにインデックスを付す一方、Ｌ２ではＤＲＡＭキャッシュがＳＳＤチップにインデックスを付す。
【００３８】
現在、利用可能で入手可能な技術では、２０ＭＢと２００ＭＢとの間にある容量（好ましくは、１００ＭＢ）を備えた第一インデックスメモリ１２、及び２ＧＢと２０ＧＢとの間にある容量（好ましくは１０ＧＢ）を備えた第二インデックスメモリ２２が許容される。
【００３９】
＜第三レイヤ＞
図３に表されているように、ルータ１は、さらに、第二コンテンツメモリ２１よりも大きい容量を有するが、アクセス速度が低い大容量メモリ３１（例えば、ＨＤＤ）を含む第三キャッシュレイヤＬ３を含んでもよい。ルータ１がデータを出力するように要求されたときに、第二キャッシュレイヤＬ２が第三キャッシュレイヤＬ３からそのデータをフェッチするように適合されているように、ルータ１は構成されている。この大容量メモリ３１には、第三インデックスメモリ（例えば、別のＤＲＡＭ）を設けることができる。
【００４０】
このＬ３は、費用のかからないやり方でＬ２のサイズを大きくするのに有益である可能性がある。第三ブロックサイズ（第二ブロックサイズを上回る）が、大容量メモリ３１に用いられてよい。これは、また、大容量メモリ３１の内容を一時的に記憶し、大容量メモリ３１からフェッチされた第三ブロックサイズのブロックの一部として、第二ブロックサイズのブロックを個別に供給するように適合されている第二スワップ領域２１０として、第二コンテンツメモリ２１の一部を管理することが必要であろう。
【００４１】
ＩＣＮアーキテクチャは、要求されたコンテンツが動画であるときに、特に有益である。今日、インターネットストリーミングは、ＹｏｕＴｕｂｅ（登録商標）、Ｋａｎｋａｎ、Ｈｕｌｕ（登録商標）等のポータルにより占められている。ネットワーキングの観点では、動画トラフィックは、再生がつっかえるのを回避するため、ネットワークが維持することが必要な（平均）ストリーミング速度によって特定されることができる。
【００４２】
ストリーミング速度は、一方では、物理的ディスプレイの技術的制約に依存し、他方では、その解像度で符号化されたコンテンツの可用性に依存する。物理的解像度は着実に上がっている（たとえば、４Ｋディスプレイが最近登場した）が、そのような非常に高解像度のコンテンツは、消費者市場では容易に利用可能とはいえない。
【００４３】
従って、無料で利用可能なインターネントコンテンツの大部分は、一般的には、かなり低い速度でストリーミングされている。例えば、ＹｏｕＴｕｂｅ等のよく知られている無料サービスのデフォルトの動画解像度は、計測値によると、５００Ｋｂｐｓの中速度でＨ２６４で符号化された６４０×３６０のものである。Ｎｅｔｆｌｉｘ（登録商標）等のよく知られている有料サービスでも、ＨＤ（１２８０×７２０、５Ｍｂｐｓ）又はＦＨＤ（１９２０×１０８０、７Ｍｂｐｓ）でのコンテンツはほんのわずかしか提供されていない。結果として、ストリーミング動画の平均サイズは、１０ＭＢ（低品質）〜１００ＭＢ（高品質）である。つまり、１０００個〜１００００個のチャンクである。
【００４４】
本ＩＣＮルータ１は、さらに、第二コンテンツメモリ２１に記憶されている複数のコンテンツの少なくとも第一ブロックが記憶される動画開始（ＳｏＶ）領域１１１を、第一コンテンツメモリ内に設けることによって、ＩＣＮの特異性を最適化することを提案している。より詳細には、動画開始領域１１１に少なくとも第一ブロックを記憶してもらっているコンテンツは、最も要求されやすい、つまり、人気のある動画である、第二コンテンツメモリ２１のコンテンツである。スワップ領域１１０、ＳｏＶ領域１１１及び第二コンテンツメモリ２１の各々は、リーストリーセントリィユーズド（ＬＲＵ）置換ポリシーに従って、管理されてよい。
【００４５】
割り当てられたよく知られた法則（通常は、ジップの法則（Zipf））に従うカタログサイズの５００，０００，０００の動画に対して、サブセットの大体５００，０００の動画が、要求の６５％を構成する。ゆえに、これら５００，０００の動画の第一チャンクを動画開始領域１１１に記憶しておくことで、これらの動画の一つの任意の要求は、要求を行っているユーザに第一チャンクを供給することで、即座に取り扱われることができつつ、スワップ領域１１０を介して、ビデオの残りについてＬ２からＬ１への転送を開始する。
【００４６】
（ｉ）  ＳｏＶ１１１は、カタログのプロパティに関連する一方、スワップサイズは、アクティブフローの最大値を反映すること、（ｉｉ）  スワップ領域１１０は、プレフェッチされたチャンクのまとまりの視聴時間（watching  time）（ストリーミング速度＝５００Ｋｂｐｓのときは、１．６ｓ、ストリーミング速度＝５Ｍのときは、１６０ｍｓ）以上に時間が経過する前に退去されないこと保証する程度に十分に大きくなくてはならないこと、を観察する。
【００４７】
簡潔性のため、ＳｏＶ領域１１１とスワップ領域１１０とが、第一コンテンツメモリ１１の等しい区画とすると、サイズが１０ＧＢでは、いずれの領域も５ＧＢのキャッシュ空間相当である。このため、ＳｏＶ１１１は（第一ブロックサイズが１０ｋＢで）５００，０００の動画を保持することができる一方、スワップ領域は（第二ブロックサイズが１００ｋＢで）５０，０００の同時フロー（concurrent  flow）を許容するので、潜在的には、２０−２４Ｇｂｐｓの総ストリーム（aggregate  streaming）まで維持する。
【００４８】
これらの図は、ユーザによって要求された残りの全てのチャンクがＬ２キャッシュから取り出され、スワップ領域１１０に一時的に記憶されている場合を示していることが分かる。これは、全くもって、スワップサイジングの最も悪い場合である。
【００４９】
平均的な動画のサイズが１０ＭＢとすると、今日のＹｏｕＴｕｂｅのカタログの上位５００，０００の動画を保持するには、約５ＴＢの第二コンテンツメモリ２１が必要となることを強調する。
【００５０】
キャッシングパフォーマンスは、主にＬ２サイズにより駆動されることが期待されるので、ルータが、２０−２４Ｇｂｐｓよりも遅いデータ速度で動作するときは、より小さいＬ１ＤＲＡＭキャッシュ１１を考慮することが道理にかなっている。これにより、完全にはまかなえない場合があるが、付加的なＳＳＤコストを補償することのできるコスト低減（主に、Ｌ１ＳＲＡＭ１２が収縮するので）となるためである。例えば、１ＧＢのスワップ領域１１０は、４−４．５Ｇｂｐｓのデータ速度を維持するのに必要とされる最小サイズに対応する。１ＧＢのＳｏＶ領域１１１は、かわりに、上位１０，００００の動画についての開始チャンクを記憶することができ、要求の５８％を超えて責任を持つ。
【００５１】
＜コンテンツの要求＞
Ｍ個の動画を有するカタログ内にあるオブジェクトｍのｉ番目のチャンクをｃｉで示す。全てのチャンクが等しいサイズＳｃを有し、例えば、１０ｋＢ（例えば、オブジェクトの一番最後のチャンクに対しては、パディングを用いるかもしれない）である。オブジェクトｍの第一チャンクｃ１の要求は、その前のチャンクの要求とは独立していると考えることができるが、同じオブジェクトのその後に続くチャンクｃｉ（ｉ＞１）の要求は時間的に非常に関連している。動画の場合、ストリーミング速度に関連した間隔によって分離されたチャンクであると大まかに想定されることができる。
【００５２】
第一チャンクｃ１についてのインタレストがＩＣＮルータ１にヒットすると、lookup()が、まず、第一コンテンツメモリ１１に対して発行され、ＳｏＶ領域１１１内でヒットする場合、（ｉ）ｃ１データを含むフレームが、アセンブルされ、send()を介して、返される。（ｉｉ）システムが第二コンテンツメモリ２１に信号を送り、Ｂ個の連続するチャンクのまとまり（つまり、第二ブロックサイズのブロック）をスワップ領域１１０にprefetch()する（そして、第一インデックスメモリ１２はこれに従って更新される）。
【００５３】
このため、動画のチャンクがＬ２からＬ１に移動し、対応する要求の前にＬ１インデックス１２を更新して、効率的にキャッシュにヒットする。
【００５４】
Ｌ１がｃ１をミスした場合（つまり、第一チャンクがＳｏＶ領域１１１に存在しない）、コンテンツ検索が、引き続き（ｉ）lookdown()を介してＩＣＮルータ１内のＬ２内及び／又は（ｉｉ）interest  forward()を介してルータ周辺内で行われる。動作（ｉ）〜（ｉｉ）は、並列的に行われる（これにより、ユーザへの遅延を最適化する）又は、順次的に行われる（これにより、ネットワークトラフィックを節約する）。順次的動作であれば、Ｌ２ミスの場合だけネットワークをトリガするが、Ｌ２インデックス内のlookdown()時間に比例した遅延が付加される。並列的動作であれば、この遅延を回避するが、Ｌ２ヒットの場合でも不必要なネットワークトラフィックを生成するかもしれない。
【００５５】
並列的動作は、よりよいユーザエクスペリエンスにつながり、オーバヘッドはオブジェクトの第一チャンクに制限される（例示の値に従うと、１０ＭＢの動画の１０ＫＢは、０．１％のオーバヘッドに対応する）。さらに、並列的動作はシステムの実装を簡潔にすることもできる。これは、（別のパスを介した再送信のための）タイマ及び任意のさらなる状態を維持することの必要性を回避するためである。
【００５６】
Ｌ１及びＬ２の分断をさらに押し進めると、原理的には、ＳｏＶ領域１１１及び第二コンテンツメモリ２１が全くばらばらのチャンクセットを記憶するようにすることがより効率的であろう。特に明記しない限り、キャッシングの観点から、Ｌ１及びＬ２の両方に第一チャンクの重複したコピーを記憶することは無駄である。これは、後者は利用されることがないためである。
【００５７】
しかし、第二コンテンツメモリ２１は第一コンテンツメモリ１１よりかなり大きく、特に持続性があるので、このわずかな重複があることによりシステムが、障害から容易に回復し、最も人気のあるオブジェクトの第一チャンクを転送することによってＳｏＶ領域１１１を再始動することができる。
【００５８】
第一チャンクを消費した後、ユーザはそれに続くチャンクの要求を開始することになる。プリフェッチにより、チャンクｃ２…ｃＢが、すぐに第一コンテンツメモリ１１で見つかるので、チャンクｃＢ＋１の要求が到着したときはいつでも、システムは積極的にｃＢ＋１…ｃＢ＋２についてlookdownすることができる。ＣＣＮ表現においては、チャンクの名前の最後の部分はチャンクの連続番号を表すので、チャンクｃｋを受信したら、lookdown()決定は、単純な法（modulus）の割り算、ｋ％Ｂ＝Ｂ−１を検査する必要があるだけなので簡単である。
【００５９】
＜最適化＞
ユーザが時間的に飛ばして、順次的な視聴モードを壊さない限り、この行動が継続される。順次的な動作が広く優勢である一方で、ユーザが一時停止したり、巻き戻し又は早送りしたりすることができる、進化したＶＣＲ機能等の追加的な価値サービスにユーザはますます依存して、順次的ではないチャンクの要求パターンを生成するかもしれないことは依然として認識される。
【００６０】
追加的なシステム最適化は、正確な動作には必要ではないが、ＩＣＮネットワークのエッジへの適度な完全性を押し進めることによって利得を提供することができる。
【００６１】
−  一時停止：一時停止時間が十分に長い（つまり、最後の要求から、オブジェクトｍが第一コンテンツメモリ１１から退去するまでの時間である、スワップ領域１１０の特性時間より大きい）場合は、コンテンツは消失する。ゆえに、ユーザが再開するときは、代表的には、ユーザバッファにはまだない次のチャンクについてのユーザにより送信された第一インタレストパケットは上流に伝搬される。システムの効率性をあげるため、プリフェッチイングによりユーザのキャッシュを拡張するべきである。ユーザが動画を一時停止すると、復号器は、ダウンロードを一時停止にする前に、２、３のエクストラチャンクを自動的に取り出し続ける。そのようなエクストラチャンクは、ユーザのプリアウトバッファにローカルで記憶され、ゆえに、ユーザが一時停止した地点の後ろを視聴したいときに、それらはすでに利用可能なものとなっている。再生が再開したらすぐに、プレーヤーはユーザバッファにまだない次のチャンクについてのインタレストを積極的に送信するべきである。これにより、システムは、プリフェッチ機構を再開することができ、遅いキャッシュからスワップ領域へチャンクを通常のやり方で積極的に転送する。付記として、コンテンツが、Ｌ２に記憶されている可能性が高いので、プレーヤーは一時停止後の第一インタレストについては範囲を限定する（例えば、低いＴＴＬを設定する）ことで第一ＩＣＮルータを超えて伝搬する不要なlookupを回避することができる（そして、範囲が限定されたインタレストがＬ２内のコンテンツにヒットしない場合にのみ、タイムアウト後に、ユーザは新たなインタレストパケットを、非制限ＴＴＬで送信することになる）。
【００６２】
−  早送り：チャンクの再生時間のＢ倍よりも大きく先にとばす場合、新たなチャンクの要求は、Ｌ１キャッシュミスが生じ（言い換えると、要求されたチャンクは、第二コンテンツメモリからの他のブロック内にある）、第一チャンクｃ１について既に説明したような動作が生じる。けれども、再生は一時停止されていないので、この場合はわずかなバッファ遅延を妨げるものは何もない可能性がある。
【００６３】
-  巻き戻し：これは、ユーザのキャッシュによって完全に隠されることができる。前のチャンクが既に再生されているので、それらは、ユーザデバイス内で依然として利用可能であり、何ら特定の行動は必要とされない。
【００６４】
方法
第二観点によれば、本発明はＩＣＮルータ１でのコンテンツアクセス方法を提案する。
【００６５】
その方法は、ルータ１で、ルータ１の第二キャッシュレイヤ＋２の第二コンテンツメモリ２１に少なくとも部分的に記憶されているコンテンツの要求を受信する工程ａで開始する。第二コンテンツメモリ２１は、第二ブロックサイズを呈する。この工程ａはさらに、コンテンツが人気のある動画である場合に、それを含みやすい第一コンテンツメモリ１１の動画開始領域１１１に、要求されたコンテンツの第一ブロックを検索する工程を含む。
【００６６】
二番目の工程ｂにおいて、第一ブロックがＳｏＶ領域に見つかった場合は、それは要求に応じて供給される。同時に、説明したように、要求されたコンテンツのデータの第二ブロックサイズでのブロックが、ルータ１の第一キャッシュレイヤＬ１の第一コンテンツメモリ１１のスワップ領域１１０で、第二コンテンツメモリ２１からフェッチされる。第一コンテンツメモリ１１は第一ブロックサイズを呈する。既に説明したように、第一サイズのブロックがチャンクである場合は、第二サイズのブロックは、チャンクのまとまりである。
【００６７】
工程ｃにおいて、第二ブロックサイズでフェッチされたブロックの各々について、このブロックが含むチャンクは、要求に応じて、個別に順次供給される。
【００６８】
最後に、第二ブロックサイズでの新たなブロックが第二コンテンツメモリからプリフェッチされ、チャンクのまとまりの最後から二番目のコンテンツの要求を受信したら、第一コンテンツメモリのスワップ領域に複製される（つまり、ｋ％Ｂ＝Ｂ−１を満たすチャンクインデックスｋ）。
【００６９】
コンテンツが動画であるときは、前述した「最適化」が行われ得る。方法は、ゆえに、動画の供給を一時停止する要求をルータ１で受信するとき（つまり、ユーザが動画の再生を一時停止した）に、さらに、順次第一ブロックサイズで少なくとも一つのブロックを供給し（これにより、エクストラチャンクがユーザのプレイアウトバッファにローカルで記憶される）、動画の供給の再開の要求をルータ１で受信するとき、最後に供給したブロックから工程ｂ及びｃを行う（つまり、第二コンテンツメモリ２１からチャンクの固まりのフェッチングを再開）工程ｄを含んでよい。ユーザバッファ内に記憶されたチャンクがすでに利用可能であるので、ユーザに与える影響はないだろう。
【図１】
0006529577.tif 000002
【図２】
0006529577.tif 000003
【図３】
0006529577.tif 000004