(57)【要約】  本開示の複数の態様は、要求するデバイスとＣＤＮのエッジクラスタとの間で１または複数のプロキシキャッシュデバイスを用いるコンテンツデリバリネットワーク（ＣＤＮ）アーキテクチャシステム、方法、コンピュータプログラム製品等を伴う。プロキシキャッシュデバイスは、１または複数のエッジクラスタを構成する様々な潜在的デバイスと比較して比較的高速のデバイスである。よって、プロキシが要求されたコンテンツをキャッシュした場合、エッジクラスタからコンテンツを提供するより速い速度でクライアントコンテンツ要求を直接サービスすることが可能である。そうでなければ、プロキシキャッシュは、エッジクラスタからのコンテンツを要求し、そのコンテンツに対する複数の追加の要求に応答して、素早い読み出しのためにコンテンツを格納してよい。一実施形態において、プロキシキャッシュは、コンテンツがプロキシキャッシュデバイスでキャッシュされているか決定するべく、要求もしくは一連の要求の分析を実行してよい。
2017509053.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデリバリネットワークであって、
電気通信ネットワークと通信するプロキシキャッシュデバイスであって、前記電気通信ネットワークは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する要求を前記プロキシキャッシュデバイスに送信する、前記プロキシキャッシュデバイスと、
ローカルネットワークを介して前記プロキシキャッシュデバイスと通信する複数のエッジサーバであって、前記複数のエッジサーバのそれぞれは、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルを取得する、前記複数のエッジサーバと、を備え、
前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルに対する前記要求に少なくとも基づいてハッシュ値を計算し、前記計算されたハッシュ値に少なくとも基づいて前記複数のエッジサーバから第１のエッジサーバを選択し、前記コンテンツファイルに対する前記要求を前記選択されたエッジサーバに送信する、
コンテンツデリバリネットワーク。
【請求項２】
前記第１のエッジサーバは、さらに、前記コンテンツファイルに対する前記要求に応答して、前記コンテンツファイルを前記プロキシキャッシュデバイスに提供し、前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルを前記アクセスネットワークに提供する、請求項１に記載のコンテンツデリバリネットワーク。
【請求項３】
前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルをローカルストレージに格納する、請求項１または２に記載のコンテンツデリバリネットワーク。
【請求項４】
前記プロキシキャッシュは、さらに、前記コンテンツファイルに対する第２の要求に応答して、前記ローカルストレージからの前記コンテンツファイルを前記アクセスネットワークに提供する、請求項３に記載のコンテンツデリバリネットワーク。
【請求項５】
前記コンテンツファイルに対する前記要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記ハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算される、請求項１から４のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項６】
前記ハッシュ値の前記計算は、前記プロキシキャッシュデバイスで受信された前記コンテンツファイルに対する追加の要求のために繰返し可能である、請求項５に記載のコンテンツデリバリネットワーク。
【請求項７】
前記第１のエッジサーバは、コンテンツプロバイダネットワークと通信し、さらに、前記コンテンツプロバイダネットワークから前記コンテンツファイルを取得し、前記コンテンツファイルを格納する、請求項１から６のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項８】
コンテンツデリバリネットワークを動作させるための方法であって、
電気通信ネットワークを介して第１のプロキシキャッシュデバイスでコンテンツファイルに対する第１の要求を受信する段階であって、前記電気通信ネットワークは、前記電気通信ネットワークに接続されたユーザデバイスから前記コンテンツファイルに対する前記第１の要求を送信する、段階と、
前記コンテンツファイルに対する前記第１の要求に少なくとも基づいて、第１のハッシュ値を計算する段階と、
前記計算された第１のハッシュ値に少なくとも基づいて、複数のエッジサーバから第１のエッジサーバを選択する段階であって、前記複数のエッジサーバは、ローカルネットワークを介して前記第１のプロキシキャッシュデバイスと通信し、前記コンテンツファイルに対する前記第１の要求を受信することに応答して、前記コンテンツファイルを取得する、段階と、
前記コンテンツファイルに対する前記第１の要求を前記選択されたエッジサーバに送信する段階と、
を備える、方法。
【請求項９】
前記コンテンツファイルに対して前記送信された要求に少なくとも応答して、前記選択されたエッジサーバから前記第１のプロキシキャッシュで前記コンテンツファイルを受信する段階と、
前記コンテンツファイルを前記ユーザデバイスに提供する段階と、
をさらに備える、請求項８に記載の方法。
【請求項１０】
前記第１のプロキシキャッシュデバイスと通信するローカルストレージに前記コンテンツファイルを格納する段階をさらに備える、請求項９に記載の方法。
【請求項１１】
前記コンテンツファイルに対する第２の要求を第２のプロキシキャッシュデバイスで受信する段階と、
前記コンテンツファイルに対する前記第２の要求に少なくとも基づいて第２のハッシュ値を計算する段階と、
計算された前記第２のハッシュ値に少なくとも基づいて前記複数のエッジサーバから前記第１のエッジサーバを選択する段階と、
前記コンテンツファイルに対する前記第２の要求を前記選択されたエッジサーバに送信する段階と、をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記コンテンツファイルに対する前記第１の要求および前記コンテンツファイルに対する前記第２の要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記第１のハッシュ値および前記第２のハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算される、請求項１１に記載の方法。
【請求項１３】
前記第１のハッシュ値および前記第２のハッシュ値は同一である、請求項１２に記載の方法。
【請求項１４】
前記コンテンツファイルに対する第３の要求を前記第２のプロキシキャッシュデバイスで受信する段階と、
前記コンテンツファイルが前記第１のプロキシキャッシュと通信する前記ローカルストレージに格納されているという判断に少なくとも基づいて、前記コンテンツファイルに対する前記第３の要求を前記第１のプロキシキャッシュデバイスに送信する段階と、
をさらに備える、請求項１１に記載の方法。
【請求項１５】
前記コンテンツファイルを前記第１のプロキシキャッシュデバイスと通信するローカルストレージに格納する前に、前記コンテンツファイルに関連付けられた需要識別子を確認する段階をさらに備える、請求項１０に記載の方法。
【請求項１６】
前記コンテンツファイルの前記需要識別子を確認する段階は、
前記第１のプロキシキャッシュで受信された前記コンテンツファイルに対する複数の要求の合計のカウント数を閾値と比較する段階と、
前記コンテンツファイルに対する複数の要求の合計の前記カウント数が、前記閾値に等しい、もしくはそれを超える場合、前記コンテンツファイルに関連付けられた前記需要識別子を設定する段階と、
を含む、請求項１５に記載の方法。
【請求項１７】
前記コンテンツファイルの前記需要識別子を確認する段階は、
前記コンテンツファイルの需要指標をネットワーク構成デバイスから受信する段階と、
前記コンテンツファイルの受信された前記需要指標を、前記第１のプロキシキャッシュデバイスにおける複数の受信されたコンテンツファイルとの比較のために記憶デバイスに格納する段階と、
を含む、請求項１５に記載の方法。
【請求項１８】
電気通信ネットワークを介してコンテンツファイルを提供するための方法であって、
第１のプロキシキャッシュデバイスにおけるコンテンツファイルに対する第１の要求を、前記電気通信ネットワークと通信する複数のエンドユーザデバイスのうち第１のエンドユーザデバイスから受信する段階と、
前記コンテンツファイルに対する前記第１の要求に少なくとも基づいて、第１のハッシュ値を計算する段階と、
計算された前記第１のハッシュ値に少なくとも基づいて、複数のエッジサーバから第１のエッジサーバを選択する段階であって、前記複数のエッジサーバは、前記コンテンツファイルに対する前記第１の要求を受信する段階に応答して、前記コンテンツファイルを取得する、段階と、
前記コンテンツファイルに対する前記第１の要求を前記選択されたエッジサーバに送信する段階と、
前記コンテンツファイルに対する第２の要求を第２のプロキシキャッシュデバイスで前記電気通信ネットワークと通信する前記複数のエンドユーザデバイスの第２のエンドユーザデバイスから受信する段階と、
前記コンテンツファイルに対する前記第２の要求に少なくとも基づいて、第２のハッシュ値を計算する段階と、
計算された前記第２のハッシュ値に少なくとも基づいて前記複数のエッジサーバから前記第１のエッジサーバを選択する段階と、
前記コンテンツファイルに対する前記第２の要求を前記選択されたエッジサーバに送信する段階と、
を備える、方法。
【請求項１９】
前記コンテンツファイルに対する前記第１の要求および前記コンテンツファイルに対する前記第２の要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記第１のハッシュ値および前記第２のハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算される、請求項１８に記載の方法。
【請求項２０】
前記第１のハッシュ値および前記第２のハッシュ値は同一である、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］  本出願は、米国特許法第１１９条（ｅ）のもとで、２０１４年２月１９日に出願された「ＣＯＮＴＥＮＴ  ＤＥＬＩＶＥＲＹ  ＮＥＴＷＯＲＫ  ＡＲＣＨＩＴＥＣＴＵＲＥ  ＷＩＴＨ  ＥＤＧＥ  ＰＲＯＸＹ」という名称の米国特許仮出願第６１／９４１，５７６号、および２０１５年１月３０日に出願された「ＰＲＯＸＹ  ＳＥＲＶＥＲ  ＦＡＩＬＯＶＥＲ  ＡＮＤ  ＬＯＡＤ  ＣＬＵＳＴＥＲＩＮＧ」という名称の米国特許仮出願第６２／１１０，１１９号に対して優先権を主張する。これらの両方が、本明細書において参照によって全体として組み込まれる。［本開示の分野］  本発明の複数の実施形態は、概して、電気通信ネットワークを実装するための複数のシステムおよび方法に関し、より具体的には、ポピュラーなコンテンツをキャッシュし、複数のコンテンツ記憶デバイスの間でコンテンツの複数の要求をスライシングするエッジ（Ｅｄｇｅ）プロキシキャッシュを含むコンテンツデリバリネットワークのための複数のシステムおよび方法に関する。
【背景技術】
【０００２】
コンテンツデリバリネットワーク（ＣＤＮ）は、動画、マルチメディア、画像、オーディオファイル、文書、ソフトウェア、および複数の他の電子リソース等のコンテンツを、１または複数のコンテンツプロバイダに代わって複数のエンドユーザに分散するために次第に用いられている。ＣＤＮを用いることにより、複数のコンテンツプロバイダは、追加のインフラストラクチャを配置することなく、コンテンツ配信の速さおよび信頼性を増やすことが可能になる。さらに、ＣＤＮは、１または複数の既存のネットワーク内にコンテンツを格納する必要なく、既存のネットワークを介したコンテンツの配布を可能にする。
【０００３】
通常、ＣＤＮは、コンテンツが要求するエンドユーザに供給され得る数個のコンテンツサーバを含む。一例において、これらのコンテンツサーバは、エンドユーザが通信している電気通信ネットワークを介してアクセスされ得る。ネットワークは、ルータ、インターネットサービスプロバイダネットワーク、他の中間ネットワーク等、エンドユーザを要求されたコンテンツに接続することを容易にする任意の数の構成要素を含んでよい。一般に、ＣＤＮから入手可能なコンテンツは、ＣＤＮまたは他の複数のアップストリームコンテンツプロバイダに接続された１または複数のエッジクラスタに格納される。コンテンツに対する複数の要求は、次に、複数の要求する顧客へコンテンツを提供するべく、複数のエッジクラスタまたはコンテンツプロバイダにＣＤＮによって送信される。しかしながら、ＣＤＮは、どのアップストリームコンテンツ記憶デバイスがコンテンツに対する受信された要求に応答してエンドユーザにコンテンツを提供することに対する制御はほとんど有していないことが多い。
【０００４】
本開示の様々な態様は、これらおよび他の課題を念頭に置いて開発されたのである。
【発明の概要】
【０００５】
本開示の一実装は、コンテンツデリバリネットワークの形態を取ってよい。コンテンツデリバリネットワークは、アクセスネットワークと通信するルータであって、アクセスネットワークは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する要求を送信するように構成されている、ルータと、ルータを通信し、ルータからコンテンツファイルに対する要求を受信するように構成されているプロキシキャッシュデバイスと、ローカルネットワークを介してプロキシキャッシュデバイスと通信する複数のエッジサーバであって、各々がコンテンツファイルに対する要求を受信することに応答して、コンテンツファイルを取得するように構成されている、複数のエッジサーバと、を備える。加えて、プロキシキャッシュデバイスは、少なくともコンテンツファイルに対する要求に基づいてハッシュ値を計算し、計算されたハッシュ値に少なくとも基づいて複数のエッジサーバから第１のエッジサーバを選択し、コンテンツファイルに対する要求を選択されたエッジサーバに送信するようにさらに構成されている。
【０００６】
本開示の別の実装は、コンテンツデリバリネットワークを動作させるための方法の形態を取ってよい。当該方法は、ルータから第１のプロキシキャッシュデバイスでコンテンツファイルに対する第１の要求を受信する動作であって、アクセスネットワークと通信するルータは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する第１の要求を送信するように構成されている、動作と、コンテンツファイルに対する第１の要求に少なくとも基づいて、第１のハッシュ値を計算する動作とを含んでよい。さらに、複数の動作は、計算された第１のハッシュ値に少なくとも基づいて、複数のエッジサーバから第１のエッジサーバを選択する段階を含んでよく、複数のエッジサーバは、ローカルネットワークを介してプロキシキャッシュデバイスと通信し、コンテンツファイルに対する第１の要求を受信する段階およびコンテンツファイルに対する第１の要求を選択されたエッジサーバへ送信する段階に応答して、コンテンツファイルを取得するように構成されている。
【０００７】
本開示のさらに別の実装は、電気通信ネットワークを介してコンテンツファイルを提供するための方法の形態を取ってもよい。当該方法は、電気通信ネットワークと通信する複数のエンドユーザデバイスの第１のエンドユーザデバイスから第１のプロキシキャッシュデバイスでコンテンツファイルに対する第１の要求を受信する動作と、コンテンツファイルに対する第１の要求に少なくとも基づいて、第１のハッシュ値を計算する動作と、計算された第１のハッシュ値に少なくとも基づいて、複数のエッジサーバから第１のエッジサーバを選択する動作であって、複数のエッジサーバは、コンテンツファイルに対する第１の要求を受信することに応答して、コンテンツファイルを取得し、コンテンツファイルに対する第１の要求を選択されたエッジサーバに送信するように構成されている、選択する動作と、を含んでよい。当該方法は、また、第２のプロキシキャッシュデバイスで、電気通信ネットワークと通信する複数のエンドユーザデバイスの第２のエンドユーザデバイスからコンテンツファイルに対する第２の要求を受信する動作と、コンテンツファイルに対する第２の要求に少なくとも基づいて、第２のハッシュ値を計算する動作と、計算された第２のハッシュ値に少なくとも基づいて複数のエッジサーバから第１のエッジサーバを選択する動作と、コンテンツファイルに対する第２の要求を選択されたエッジサーバへ送信する動作と、を含んでよい。
【図面の簡単な説明】
【０００８】
【図１】コンテンツデリバリネットワーク（ＣＤＮ）を介してコンテンツを配布する例示的なネットワーク環境である。
【０００９】
【図２】ネットワークのプロキシサーバまたはプロキシキャッシュにコンテンツに対する要求をルーティングするための例示的な論理ネットワーク環境である。
【００１０】
【図３】要求するユーザデバイスにコンテンツを提供するエッジサーバを決定するべく、スライシング機能を用いるＣＤＮのための方法を示すフローチャートである。
【００１１】
【図４】要求するユーザデバイスにコンテンツを提供するべく、プロキシキャッシュデバイスを用いるＣＤＮのための方法を示すフローチャートである。
【００１２】
【図５】本開示の複数の実施形態を実装するときに用いられてよいコンピューティングシステムの例を示す図である。
【発明を実施するための形態】
【００１３】
本開示の複数の態様は、ネットワークのエッジにおいて、および要求するデバイスとＣＤＮのエッジクラスタとの間において、１または複数のプロキシキャッシュデバイスおよび／またはプロキシサーバを用いるコンテンツデリバリネットワーク（ＣＤＮ）アーキテクチャについての複数のシステム、複数の方法、複数のコンピュータプログラム製品等を伴う。一例において、プロキシは、ＣＤＮによって提供されるコンテンツに対するクライアント要求を受信する。コンテンツは、コンテンツの多数の他の形態の間において、ソフトウェアパッチからデジタル映画まで及んでよい。プロキシキャッシュデバイスは、１または複数のエッジクラスタを成す様々な潜在的デバイスよりも比較的高速のデバイスである。よって、プロキシが要求されたコンテンツをキャッシュした場合、それは、クライアントコンテンツ要求を、エッジクラスタからコンテンツを提供するよりも速く直接的にサービスすることが可能である。そうでなければ、プロキシキャッシュは、エッジクラスタからコンテンツを要求し、コンテンツに対する複数の追加の要求に応答して素早く取得するためにコンテンツを格納してよい。一実施形態において、プロキシキャッシュは、要求または一連の要求の分析を実行して、コンテンツがプロキシキャッシュデバイスでキャッシュされたか判断してよい。
【００１４】
加えて、プロキシが要求されたコンテンツのキャッシュコピーを有していない場合、プロキシキャッシュは、ハッシュ動作を実行してよく、複数の利用可能なエッジクラスタの間でコンテンツ要求をスライシングするように構成されてよい。このように、コンテンツの複数のコピーは、ＣＤＮの様々なエッジクラスタに格納される必要はない。例えば、コンテンツＡに対する要求が第１のエッジプロキシキャッシュでハッシュ化される場合、プロキシキャッシュは、ハッシュ動作の複数の結果に基づいて、複数のエッジクラスタの１つからコンテンツを要求する。エッジクラスタがコンテンツのコピーを有していない場合、エッジクラスタは、記憶デバイスからコピーを取得し、そのコピーを格納し、要求するプロキシキャッシュに要求されたコンテンツを配信する。コンテンツに対する要求が後に第２のプロキシキャッシュで受信されるのであれば、第２のプロキシキャッシュは、要求されたコンテンツのためにハッシュ動作を実行し、ハッシュの複数の結果に基づいてエッジクラスタへ向けられるであろう。ここで、エッジクラスタは、コンテンツのコピーを有し、要求を即座に満たし得、第２のプロキシキャッシュへコピーを戻し得る。同様に、第２のプロキシキャッシュは、それがキャッシュ格納されたままであるという条件で、エッジクラスタからコンテンツを要求するよりむしろ第１のプロキシから直接コンテンツを要求するかもしれない。そのようなシナリオは、比較的小さく一貫した複数のコンテンツタイプの、定期的にスケジュールされる複数のソフトウェアパッチと共に特に用いられ得る可能性がある。
【００１５】
図１は、ユーザのデバイスからのコンテンツに対する要求に基づいて、１または複数のユーザにコンテンツを配布するための例示的なネットワーク環境１００である。一実装において、ＣＤＮ１０２は、１または複数のアクセスネットワーク１０６に通信可能に結合される。一般に、ＣＤＮ１０２は、１または複数のコンテンツサーバ（以下にエッジクラスタまたはエッジサーバとしてより詳細に説明される）、要求およびその要求が受信されコンテンツが提供される基本的なＩＰネットワークに応答してユーザにコンテンツを提供するように全てが構成された１または複数のプロキシキャッシュサーバおよびルータを備える。複数のＣＤＮサーバに関連付けられた基本的なＩＰネットワークは、ネットワークを介して通信を送受信するように構成された任意のタイプのＩＰベースの通信ネットワークの形態であってよく、任意の数および複数のタイプの電気通信構成要素を含んでよい。このように、複数のＣＤＮベースの構成要素が、既存のＩＰベースの通信ネットワークに加えられてよい。そうすることにより、複数の構成要素は、コンテンツに対する要求を受信し、記憶デバイスからコンテンツを取得し、コンテンツを支持するＩＰネットワークを介して要求するデバイスに提供してよい。簡素化のため、本開示にわたる「ＣＤＮ」という用語の使用は、他の場合に表記されていない限り、通信を処理し送信するための１または複数のコンテンツサーバおよび基本的なＩＰネットワークの組み合わせを指す。
【００１６】
一実施形態において、アクセスネットワーク１０６は、例えば、ＣＤＮ１０２へのアクセスを提供する１または複数のインターネットサービスプロバイダ（ＩＳＰ）等、１または複数のエンティティの制御下にあってよい、または１または複数のエンティティによって操作され／保持されてよい。よって、例えば、アクセスネットワーク１０６は、インターネットアクセスをユーザデバイス１０４に提供してよい。加えて、アクセスネットワーク１０６は、ＣＤＮ１０２のＩＰネットワークへの数個の接続を含んでよい。例えば、アクセスネットワーク１０６は、アクセスポイント１２０を含む。また、ユーザデバイス１０４は、任意の数のアクセスネットワーク１０６に接続されてもよい。そうすることにより、ＣＤＮ１０２へのアクセスは、別のアクセスネットワークを介して生じてよい。一般に、ＣＤＮ１０２へのアクセス（またはＣＤＮに関連付けられた基本的なＩＰネットワーク）が、任意の数のアクセスネットワークを介してＣＤＮへの任意の数の入力ポートを介して生じてよい。
【００１７】
ＣＤＮ１０２は、パーソナルコンピュータ、モバイルデバイス、タブレット（例えば、ｉＰａｄ（登録商標））または同様のもの等、概して任意の形態のコンピューティングデバイスであるユーザデバイス１０４に、コンテンツを提供することが可能である。コンテンツは、動画、マルチメディア、画像、オーディオファイル、テキスト、文書、ソフトウェア、および複数の他の電子リソースを限定せずに含んでよい。ユーザデバイス１０４は、コンテンツを要求し、受信し、処理し、表示するように構成されている。一実装において、ユーザデバイス１０４は、コンテンツアイテムへのリンク（例えば、ハイパーリンク）が選択され得る、またはそうでなければ入力され得るインターネットブラウザアプリケーションを含み、要求をＣＤＮ１０２におけるディレクトリサーバ１１０に送信させる。
【００１８】
コンテンツに対する要求は、ＣＤＮのルータ１１０で受信されてよい。特定の一実施形態において、要求は、ルータで受信される前に、ＩＰネットワークの数個の構成要素を介して送信される。加えて、ＣＤＮ１０２は、選択されたリンクに関連付けられたコンテンツが取得され得るネットワークアドレス（例えば、ＩＰネットワーク内のＩＰアドレス）を提供することにより、要求に応答するように構成されたディレクトリサーバを含んでよい。ディレクトリサーバは、リンク名（例えば、ＵＲＬまたは他の識別子）をユーザデバイス１０４がコンテンツを取得することが可能な関連するネットワークアドレスに変える。特定の一実施形態において、ディレクトリサーバは、コンテンツに対する要求に応答するべく、ＩＰアドレスをネットワークの１または複数のプロキシサーバまたはプロキシキャッシュに提供する。
【００１９】
一実装において、ＣＤＮ１０２は、１または複数のエッジサーバ１１２（複数のエッジサーバが合わせてクラスタリングされた場合、「エッジクラスタ」とも時々呼ばれる）を含む。１または複数のエッジサーバ１１２は、別のネットワークからのコンテンツをキャッシュし、それがルータ１１０および／またはユーザデバイス１０４により地理的または論理的に近い位置で、それを利用可能にしてよい。複数のエッジクラスタ１１２は、複数のネットワークロードを減らし、容量を解放し、配信コストを下げてよく、および／または コンテンツダウンロード時間を低減してよい。複数のエッジクラスタ１１２は、要求されたコンテンツを、ユーザデバイス１０４または例えばアクセスネットワーク１０６における中間デバイスであってよい要求元に提供するように構成されている。一実装において、複数のエッジクラスタ１１２のうち１または複数は、キャッシュにローカルに格納されている要求されたコンテンツを提供する。別の実装において、複数のエッジクラスタ１１２は、メディアアクセスサーバ（ＭＡＳ）（例えば、コンテンツ配信サーバまたはコンテンツプロバイダネットワーク１１８のコンテンツ配信元サーバ１１６）等の別の送信元から、要求されたコンテンツを取得する。コンテンツは、次に、複数の要求に応答してユーザデバイス１０４に供給される。
【００２０】
一般に、ＣＤＮ１０２は、以下のやり方でエンドユーザ１０４にコンテンツを提供する。最初に、ＣＤＮ１０２は、アクセスネットワーク１０６を介してユーザ１０４からコンテンツに対する要求を受信する。１または複数のディレクトリサーバを含むドメイン名システム（ＤＮＳ）を用いるＣＤＮは、複数のエンドユーザに要求されたコンテンツを配信するための少なくとも１つの適切なエッジクラスタ１１２または他のアップストリームコンテンツネットワーク１１８を決定する。ＤＮＳは、次に、選択されたエッジクラスタ１１２またはコンテンツネットワーク１１８用のＩＰアドレスをエンドユーザデバイス１０４に戻す。そうすることにより、エンドユーザデバイスは、ユーザのアクセスネットワーク１０６を介してエッジクラスタ１１２に接続し、要求されたコンテンツを受信し始める。より具体的に、ユーザのデバイス１０４に提供されるＩＰアドレスによって識別されたエッジクラスタ１１２からのコンテンツに対する要求は、ＩＰネットワーク１０２のルータ１１０で受信される。一実施形態において、ルータ１１０は、ＩＰネットワーク１０２を介してエッジクラスタ１１２に要求を送信する。そうすることにより、エッジクラスタは、ユーザのデバイス１０４にコンテンツを提供する。
【００２１】
一般に、コンテンツに対する要求に応答してＤＮＳによって提供されるＩＰアドレスは、ユーザのデバイスを特定のコンテンツホストエンティティについて全てまたはいくつかのコンテンツをホストするサーバに接続する。言い換えれば、ＤＮＳによって提供されるＩＰアドレスは、エンドユーザを要求されたコンテンツファイルに直接的には接続しなくてよいが、むしろ格納するサーバ（エッジクラスタのエッジサーバ等）に接続してよく、あるいはいくつかのコンテンツファイルについて（コンテンツプロバイダネットワーク１１８から等の）特定のコンテンツファイルにアクセスしてよい。エッジクラスタ１１２またはコンテンツプロバイダネットワーク１１８は、次に、要求されたコンテンツファイルをエンドユーザ１０４に提供する。よって、多数のエッジクラスタまたはエッジサーバがコンテンツプロバイダネットワーク１１８へのアクセスを有してよいので、ＤＮＳは、コンテンツ要求を満たすべく、コンテンツプロバイダネットワークへのアクセスを持つ複数のエッジサーバまたはクラスタのいずれにもＩＰアドレスを割り当ててよい。一実装において、コンテンツをエンドユーザ１０４に提供するべく、エッジクラスタ１１２またはコンテンツプロバイダネットワーク１１８を割り当てることは、要求を満たすことが可能なローカルな地域の各エッジクラスタ１１２の間においてランダムであってよい。
【００２２】
ＣＤＮ１０２の特定の一実施形態において、プロキシサーバまたはプロキシキャッシュ１１４は、ルータ１１０とエッジクラスタ１１２との間に論理的に位置してよい。一般に、プロキシキャッシュ１１４は、ローカルな地域で数個のエッジクラスタ１１２にわたるコンテンツをスライスし得る、および／または複数のユーザ要求を終了するためにポピュラーなコンテンツを利用できるようにキャッシュし得る高性能キャッシュである。よって、一実装において、プロキシキャッシュ１１４は、ポピュラーなコンテンツに対して受信された要求に応答して、コンテンツのプロバイダとして作動してよい。プロキシキャッシュ１１４におけるコンテンツのストレージをトリガするコンテンツの需要は、受信された要求の数、ネットワーク１０２によるカスタム選択、複数のネットワーク設定手順等、任意の複数の基準に基づいてよい。別の実装において、プロキシキャッシュ１１４は、コンテンツが提供されてよい特定のエッジクラスタ１１２を決定してよく、これによりＣＤＮ１０２によって格納されるコンテンツのコピー数を減らす。例えば、特定のエリアまたは（ＣＤＮ１０２のメトロネットワークセグメント等）ネットワーク１０２のセグメントにおける全てのプロキシキャッシュ１１４は、複数のエッジクラスタに格納された同じコンテンツの複数のコピーを有するよりむしろ、メトロネットワークの同一のエッジクラスタ１１２からのコンテンツに対する複数の要求を満たしてよい。ＣＤＮ１０２アーキテクチャにおける複数のプロキシキャッシュ１１４デバイスの動作が、以下でより詳細に説明される。
【００２３】
図１において、アクセスネットワーク１０６と通信するルータ１１０を含むことが示されるが、ネットワーク１０２における任意の電気通信デバイスは、ユーザ１０４から要求を受信し、要求をプロキシサーバ１１４またはエッジクラスタ１１２に送信してよいことは理解されるべきである。別の実施形態において、ユーザ１０４は、アクセスネットワーク１０６を用いることなく、ネットワーク１０２と直接通信してよい。この実施形態において、ユーザの要求は、プロキシサーバ１１４またはエッジクラスタ１１２に直接送信されてよい。さらに、および以下でより詳細に説明されるように、プロキシサーバ１１４は、ユーザのデバイス１０４と通信するアクセスネットワーク１０６においてインスタンス化されてよい。よって、一般に、プロキシサーバ１１４は、本明細書で記述される通信網に沿って任意の位置に論理的に位置してよい。
【００２４】
図２は、コンテンツに対する要求をネットワークのプロキシサーバまたはプロキシキャッシュにルーティングするための例示的な論理ネットワーク環境である。一般に、図２の論理ネットワーク環境２００の複数の構成要素は、図１に関して上記で説明された複数の構成要素と同様である。特に、ネットワーク環境２００は、エンドユーザデバイスがＣＤＮに接続するアクセスネットワークまたはＩＳＰ１０６を含む。図２において、ＩＳＰ１０６の数個のインスタンスを含むことが示されるが、ＩＳＰが同じ論理ネットワークであってよいことは、理解されるべきである。複数のＩＳＰ１０６は、ＣＤＮネットワークに関連付けられた１または複数のルータ２０２−２０８に接続する。この場合もまた、ＩＳＰ１０６と同様に、図２に示されるルータ２０２−２０８は、ＣＤＮ１０２に関連付けられた１つのルータまたは数個のルータであってよい。上記で説明されたように、ルータ２０２−２０８は、ＣＤＮを介して入手可能なコンテンツに対する要求を受信してよく、それらの要求は、エッジクラスタまたはコンテンツが入手可能なコンテンツプロバイダネットワークのＩＰアドレスによって識別される。一実施形態において、ルータ２０２−２０８は、次に、（メトロＩＰネットワーク２１０等の）ローカルネットワークを介して、受信された要求におけるＩＰアドレスに関連付けられたエッジクラスタ２１２−２１８に複数の要求をルーティングしてよい。メトロＩＰネットワーク２１０は、１または複数のエッジクラスタ２１２−２１８をＣＤＮ１０２に接続するローカルエリアネットワーク（ＬＡＮ）を提供する。さらに、図２では示されないが、エッジクラスタ２１２−２１８は、コンテンツプロバイダネットワーク１１８のＭＡＳ１１６に接続されてよい、またはそうでなければＭＡＳ１１６からのコンテンツにアクセスしてよい。
【００２５】
別の実施形態において、ＣＤＮについてのＤＮＳが、コンテンツに応答してネットワークのプロキシキャッシュ２２０−２２６デバイスに関連付けられたＩＰアドレスを提供してよい。例えば、ＤＮＳは、特定のメトロＩＰネットワーク２１０に関連付けられた、受信されたコンテンツに対するあらゆる要求のために、プロキシキャッシュ２２０−２２６のＩＰアドレスを提供するように構成されてよい。別の実施形態において、受信されたコンテンツに対する全てではないもののいくつかの要求が、入手可能なプロキシキャッシュ２２０−２２６の１つに送信されてよい。コンテンツについて受信された複数の要求が、プロキシキャッシュ２２０−２２６を介してルーティングされるかどうかは、ネットワークまたはＣＤＮ管理者によってネットワーク設定を介して確立されてよい。
【００２６】
ネットワーク２００の１または複数のプロキシキャッシュ２２０−２２６を介して複数の要求のルーティングを容易にするべく、１または複数のプロキシキャッシュは、論理的にエッジクラスタ２１２−２１８とＩＳＰ１０６を介してユーザデバイスとの間で位置してよい。一実施形態において、プロキシキャッシュ２０２−２０８は、論理的に電気通信ネットワークのルータ２０２−２０８とメトロＩＰネットワーク２１０との間で位置する。プロキシキャッシュ２２０−２２６は、プロキシキャッシュとルータ２０２−２０８もしくはコンテンツの高速送信用の複数のルータとの間で２０ギガバイト接続を提供してよい。さらに、以下でより詳細に説明されるように、プロキシキャッシュ２２０−２２６は、エリアにおける数個のエッジクラスタ１１２にわたってコンテンツをスライスする、および／または複数のユーザ要求を終了するためにポピュラーなコンテンツを利用できるようにキャッシュするように構成されている。
【００２７】
上述のように、プロキシキャッシュ２２０−２２６は、図２に示される論理網に沿った任意の位置にあってよい。例えば、プロキシキャッシュ２２０−２２６は、ＩＳＰ１０６でインスタンス化され、ユーザのデバイス１０４からルータ２０４もしくは他の電気通信デバイスを介して、またはユーザのデバイスから直接、コンテンツ要求を受信してよい。別の実施形態において、プロキシキャッシュ２２０−２２６は、メトロＩＰネットワーク２１０内でインスタンス化されてよい。一般に、プロキシキャッシュ２２０−２２６は、ユーザのデバイスとエッジクラスタ２１２−２１８との間の任意の位置に論理的に位置してよい。図２のネットワーク構成は、プロキシキャッシュ２２０−２２６を用いるネットワークの一例にすぎない。
【００２８】
図２の論理ネットワーク構成またはアーキテクチャを念頭に置いて、図３は、コンテンツを要求するユーザデバイスに提供するべく、スライシング機能を用いてエッジクラスタを決定するＣＤＮのための方法を示すフローチャートである。一般に、図３の複数の動作は、１または複数の命令の実行を介して、および／またはプロキシキャッシュ２２０−２２６の１または複数のハードウェアベースの回路を介して、ネットワークのプロキシキャッシュの１または複数により実行される。以下でより詳細に説明されるように、図３の方法は、メトロネットワーク２１０のエッジクラスタ２１２−２１８によって格納されたコンテンツのコピー数を減らすことによって、ＣＤＮ１０２の性能を改善する。そうすることにより、１つのピアキャッシュが、メトロネットワークに関連付けられた、またはそうでなければそれと通信するプロキシキャッシュ２２０−２２６の各々にコンテンツを提供してよい。
【００２９】
動作３０２で開始して、ＣＤＮ１０２を介して入手可能なコンテンツに対する要求が、第１のプロキシキャッシュで受信される。一例において、要求は、エンドユーザのデバイスからＩＳＰ１０６で受信されてよく、ＣＤＮ  ＤＮＳデバイスによって提供されるＩＰアドレスに基づいてルータ２０２にルーティングされる。応答して、ルータ２０２は、次に、プロキシキャッシュによるさらなる処理のためにプロキシキャッシュ２２０の提供されたＩＰアドレスに関連付けられたネットワーク２００のプロキシキャッシュに要求を送信してよい。
【００３０】
一般に、メトロＩＰネットワーク２１０と通信する各エッジクラスタ２１２−２１８は、コンテンツを取得し、メトロＩＰネットワーク２１０で受信されたコンテンツに対する複数の要求を供給するように構成されている。しかしながら、特定のコンテンツファイルに対する要求が、複数のエッジクラスタ２１２−２１８によって供給されると、コンテンツの複数のコピーは、次に、そのコンテンツに対する複数の今後の要求のために、複数のエッジクラスタによって格納されてよい。よって、ＣＤＮ１０２の効率および速さは、特定のエッジクラスタ２１２−２１８が、メトロＩＰネットワーク２１０で受信された各要求に対して要求されたコンテンツを提供するように選択される場合に改善し得る。そのように、動作３０４において、プロキシキャッシュ２２０は、コンテンツが要求に応答して提供されてよいエッジクラスタ２１２−２１８を決定するべく、ハッシュ値計算を実行する。一般に、プロキシキャッシュ２２０は、ハッシュ値を決定するべく任意の計算を実行してよい。特定の一実施形態において、プロキシキャッシュ２２０は、受信された要求を用い、繰返し可能なやり方でハッシュ値を計算してよい。そうすることにより、同一のハッシュ値が、特定のコンテンツファイルに対する各要求に戻される。例えば、プロキシキャッシュ２２０は、ハッシュ値を計算するべく、コンテンツに対する要求に含まれるユニフォームリソースロケータ（ＵＲＬ）アドレスを用いてよい。よって、要求に含まれるＩＰアドレスが要求されたコンテンツファイルに関連することから、同一のハッシュ値がコンテンツファイルに対する各要求のために計算されてもよい。要求の複数の他の態様が、クライアントデバイスの識別子（ＩＰアドレス、ネットワーク識別等）等のハッシュ値、他のルーティング経路情報、コンテンツＵＲＬによって識別可能なコンテンツファイル名、ルータ識別子、ＣＤＮにコンテンツを提供するのに利用可能なサーバの数等を計算するのに用いられてよい。しかしながら、コンテンツファイルの複数のコピーがエッジクラスタ２１２−２１８内に格納されていないことを保証するべく、ハッシュ値計算は、繰返し可能であってよい。そうすることにより、その特定のコンテンツファイルに対する要求を受信する環境２００における各プロキシキャッシュ２２０−２２６が、要求に応答して、同一または同様のハッシュ値を計算する。
【００３１】
プロキシキャッシュ２２０−２２６の１または複数は、ハッシュ値またはある範囲のハッシュ値をメトロＩＰネットワーク２１０に関連付けられた利用可能なエッジクラスタ２１２−２１８に関連付けてよい。例えば、利用可能なエッジクラスタ２１２−２１８の各々には、プロキシキャッシュ２２０−２２６によってある範囲のハッシュ値が割り当てられてよい。よって、ハッシュ値の計算に応答して、プロキシキャッシュ２２０は、どのエッジクラスタ２１２−２１８がハッシュ値に関連付けられるかを決定してよく、要求されたコンテンツが読み出されるそのエッジクラスタを選択してよい。それでもさらに、ハッシュ値は、特定のエッジサーバまたは他のアップストリームコンテンツ提供デバイスに関連付けられてよく、そうすることにより、特定の記憶デバイスがハッシュ値計算を介して識別される。動作３０４においても、プロキシキャッシュ２２０は、ハッシュ値に基づいて、コンテンツに対する要求を選択されたエッジクラスタ２１２−２１８にルーティングする。上記の例を続けると、プロキシキャッシュ２２０によって計算されたハッシュ値は、コンテンツが複数の要求するクライアントに提供されるメトロＩＰネットワーク２１０のエッジクラスタとしてエッジクラスタＣ２１６を選択してよい。
【００３２】
動作３０６において、プロキシキャッシュ２２０は、一度エッジクラスタがコンテンツを取得すると、エッジクラスタ２１６から要求されたコンテンツを受信する。一実施形態において、コンテンツはエッジクラスタ２１６によって格納される。そうすることにより、コンテンツを取得することは、ストレージからコンテンツを読み出すことを含む。別の実施形態において、コンテンツは、エッジクラスタ２１６で入手可能でなくてもよい。この実施形態において、エッジクラスタ２１６は、メディアアクセスサーバ（ＭＡＳ）（例えば、コンテンツ配信サーバまたはコンテンツプロバイダネットワーク１１８のコンテンツ配信元サーバ１１６）等の別の送信元から、要求されたコンテンツを読み出してよい。コンテンツは、次に、要求に応答してプロキシキャッシュ２２０に提供される。さらに、コンテンツは、次に、コンテンツに対する要求に応答してメトロＩＰネットワーク２１０による今後の使用のためのＭＡＳからの読み出しの直後に、エッジクラスタ２１６で格納されてよい。コンテンツは、次に、プロキシキャッシュ２２０によって受信された要求に応答して、ＩＳＰ１０６を介して戻りクライアントのデバイスに提供されてよい。以下で図４に関して説明されるように、コンテンツは、また、そのコンテンツに対する複数の追加の要求に応答して素早い読み出しのためにプロキシキャッシュ２２０に格納されてもよい。
【００３３】
ネットワーク２００におけるプロキシキャッシュ２２０−２２６のそれぞれは、コンテンツに対する要求が受信されるとき、上記で記述されたような複数の同様の動作を実行してよい。例えば、動作３０８において、（プロキシキャッシュ２２６等の）第２のプロキシキャッシュが上述の同じコンテンツファイルに対する要求を関連するルータ２０８を介して受信してよい。この要求は、上述のように同じクライアントデバイスから受信されてもよく、または受信されなくてもよい。例えば、複数のポピュラーなコンテンツファイルが、ＩＳＰ１０６に関連付けられた数個のクライアントデバイスによって要求されてもよい。プロキシキャッシュ２２６で要求を受信することに応答して、および上記と同様に、プロキシキャッシュは、動作３１０においてどのエッジクラスタ２１６でコンテンツが入手可能であるか決定するべくハッシュ値計算を実行してよい。しかしながら、上記でもまた述べられたように、および以下でより詳細に説明されるように、メトロＩＰネットワーク２１０に関連付けられたプロキシキャッシュは、１または複数のコンテンツファイルを格納してよい。よって、ハッシュ値を計算する前またはそれに加えて、プロキシキャッシュ２２６は、要求されたコンテンツが別のプロキシキャッシュ２２０−２２４で入手可能であるか、またはエッジクラスタ２１２−２１８の１または複数を介して入手可能であるか決定してよい。ネットワーク２００の別のプロキシキャッシュ２２０−２２４からのコンテンツの読み出しは、図４を参照して以下でより詳細に説明される。
【００３４】
コンテンツが別のプロキシキャッシュ２２０−２２４から入手可能でない場合、プロキシキャッシュ２２６は、上記で説明されたようにハッシュ値を計算する。一実施形態において、ハッシュ値計算は、ネットワーク２００における各プロキシキャッシュ２２０−２２６について同一または同様である。よって、ハッシュ値計算は、上記で説明されたハッシュ値計算と同様に、コンテンツがエッジクラスタＣ２１６を介して入手可能であるという指標を提供してよい。コンテンツに対する要求は、次に、選択されたエッジクラスタ２１６に送信されてよく、選択されたエッジクラスタ２１６は、同様に、コンテンツをプロキシキャッシュ２２６に提供してよい。動作３１２において、プロキシキャッシュ２２６は、エッジクラスタ（または、コンテンツがプロキシキャッシュレベルで格納されている場合は別のプロキシキャッシュ）からコンテンツ２１６を受信してよく、そのコンテンツを要求するユーザデバイスに提供してよい。
【００３５】
上記の例において、プロキシキャッシュ２２０およびプロキシキャッシュ２２６の両方は、コンテンツがエッジクラスタ２１６からエンドユーザに提供されるように要求する。より具体的に、コンテンツに対する要求に基づいて同一のハッシュ値を計算することにより、プロキシキャッシュ２２０、２２６の両方は、コンテンツに対する要求を同じエッジクラスタ２１６に送信する。このように、１つのみのエッジクラスタ２１６（および潜在的にエッジクラスタ内の１つのみのエッジサーバ）が、コンテンツをエンドユーザに提供する。以前、コンテンツは、ネットワーク２００のエッジクラスタ２１２−２１８のいずれかによってエンドユーザに提供されていたかもしれない。さらに、エッジクラスタ２１２−２１８の各々は、コンテンツプロバイダから取得されたコンテンツのコピーを格納するように構成されているので、コンテンツの複数のコピーは、ネットワーク２００の複数のエッジクラスタに格納されてよい。しかしながら、同じエッジクラスタ２１６が、要求に応答してコンテンツを提供するべくプロキシキャッシュ２２０−２２６によって選択されると、ハッシュ値の使用を介して、コンテンツの１つのみのコピーが、エッジクラスタ２１２−２１８に格納される。そのように、コンテンツが提供されるエッジクラスタ選択を実行するプロキシキャッシュ２２０−２２６の使用は、コンテンツファイルの複数のコピーの格納の可能性を取り除くことによって、メトロネットワーク２００における複数の構成要素の全体的な効率を増やす。
【００３６】
ＣＤＮの全体的な効率および速さは、プロキシキャッシュ２２０−２２６の１または複数において（最も要求されたコンテンツファイル等の）最もポピュラーなコンテンツファイルの１または複数を格納することによってさらに改善され得る。図４は、コンテンツを要求するユーザデバイスに提供するべくプロキシキャッシュデバイスを用いるＣＤＮのための方法を示すフローチャートである。一般に、図４の動作は、１または複数の命令の実行を介して、および／またはプロキシキャッシュの１または複数のハードウェアベースの回路を介して、ネットワークのプロキシキャッシュ２２０−２２６の１または複数により実行される。図４の方法の動作は、１または複数のコンテンツファイルを、要求するユーザデバイスに論理的により近く維持し、コンテンツファイルが要求するデバイスに提供される速さを増加させる。
【００３７】
一般に、動作４０２−４０６は、図３の動作３０２−３０６を参照して上記で説明された複数の動作と同じである。よって、（プロキシキャッシュ２２０等の）プロキシキャッシュは、動作４０２においてコンテンツに対する要求を受信する。プロキシキャッシュ２２０は、次に、ハッシュ値計算を実行し、コンテンツが取得される（エッジクラスタ２１６等の）エッジクラスタを決定して動作４０４において要求を選択されたエッジクラスタにルーティングする。動作４０６において、プロキシキャッシュ２２０は、選択されたエッジクラスタからコンテンツを受信し、要求するエンドユーザにコンテンツを提供する。
【００３８】
動作４０８において、プロキシキャッシュ２２０は、受信されたコンテンツファイルはポピュラーなファイルであるか判断し、コンテンツファイルがポピュラーである場合、コンテンツファイルをローカルストレージに格納する。一般に、プロキシキャッシュ２２０は、受信されたコンテンツファイルが、ポピュラーであるか決定するのにいずれの測定基準を用いてもよい。一例において、プロキシキャッシュ２２０は、プロキシキャッシュで受信される各要求の現在までの合計を維持してよい。プロキシキャッシュ２２０で受信されるコンテンツファイルに対する要求の数が、複数の要求の閾値に等しいか、またはそれを超える場合、プロキシキャッシュは、コンテンツファイルがポピュラーなファイルであると判断し、そのファイルをローカルストレージに格納してよい。別の例において、プロキシキャッシュ２２０は、複数のソフトウェアパッチまたはテキストベースのコンテンツファイル等、特定のタイプの複数のコンテンツファイルをローカルに格納するように構成されてよい。よって、エッジクラスタ２１６から受信されたコンテンツファイルが、プロキシキャッシュ構成において示されたコンテンツファイルのタイプである場合、コンテンツファイルは、ローカルストレージに格納されてよい。さらに別の例において、ＣＤＮ２００は、ＣＤＮがプロキシキャッシュ２２０−２２６のそれぞれに対してポピュラーであるとみなされたコンテンツファイルのリストを提供してよい。この例において、プロキシキャッシュ２２０がポピュラーなコンテンツファイルのリストに適合するコンテンツファイルを受信する場合、コンテンツファイルは、プロキシキャッシュによってローカルストレージに格納される。
【００３９】
受信されたコンテンツファイルの需要を決定するのに用いられる測定基準に関わらず、コンテンツファイルは、プロキシキャッシュ２２０によって格納されてよく、ネットワーク２００を介して受信される複数の今後の要求についてプロキシキャッシュから入手可能にされてよい。よって、動作４１０において、プロキシキャッシュ２２０は、ネットワーク２００のエンドユーザからコンテンツファイルに対する追加の要求を受信してよい。プロキシキャッシュ２２０は、応答して、ローカルに格納されているコンテンツファイルとして要求されたコンテンツファイルを識別してよく、コンテンツファイルをローカルストレージからエンドユーザに提供してよい。理解されるべきであるように、プロキシキャッシュ２２０−２２６にポピュラーなコンテンツファイルを格納することによって、コンテンツファイルは、コンテンツファイルがエッジクラスタ２１２−２１８またはコンテンツプロバイダネットワークから要求される場合よりも速くエンドユーザに提供されてよい。よって、プロキシキャッシュ層でポピュラーなコンテンツファイルを格納することによって、ネットワーク２００は、エッジクラスタ層からコンテンツを提供する以前の複数のネットワーク構成よりも速くコンテンツファイルをエンドユーザに提供する。
【００４０】
加えて、（プロキシキャッシュ２２０等の）プロキシキャッシュで格納されたコンテンツファイルは、ネットワーク２００における他のプロキシキャッシュ２２２−２２６に入手可能にされてよい。図３の方法を参照して上記で説明されたように、プロキシキャッシュは、要求されたコンテンツファイルが、ネットワーク２００のプロキシキャッシュレベル２２０−２２６、またはエッジクラスタレベル２１２−２１８で（または、さらにコンテンツプロバイダネットワークに対してアップストリームでも）格納されているか決定するように構成されてよい。コンテンツがネットワーク２００第１のプロキシキャッシュ２２０で格納されている場合、コンテンツファイルに対する要求を受信する（プロキシキャッシュ２２６等の）第２のプロキシキャッシュが、コンテンツファイルをローカルに格納した第１のプロキシキャッシュ２２０にその要求を送信してよい。一実施形態において、ローカルに格納されたコンテンツファイルを有する第１のプロキシキャッシュ２２０は、次に、コンテンツファイルをエンドユーザに提供してよい。別の実施形態において、コンテンツファイルは、送信された要求を受信したことに応答して、第１のプロキシキャッシュ２２０によって第２のプロキシキャッシュ２２６に提供されてよい。この実施形態において、コンテンツファイルは、次に、そのコンテンツファイルが第２のプロキシキャッシュに関連付けられた需要測定基準に適合する場合、第２のプロキシキャッシュ２２６によってエンドユーザに提供されてよく、第２のプロキシキャッシュによってローカルに格納されてよい。このように、ネットワーク２００のプロキシキャッシュレベル２２０−２２６に格納されたコンテンツファイルは、エンドユーザに提供されてよい。
【００４１】
上記のシナリオにおいて、第２のプロキシキャッシュ２２６は、ネットワーク２００の他のプロキシキャッシュ２２０−２２４によってローカルに格納されたコンテンツファイルについて認識させられてよい。一実施形態において、格納されたファイルの識別およびプロキシキャッシュの格納の識別を含む、格納されたファイルのフラグまたは他の指標は、コンテンツファイルがプロキシキャッシュによってローカルに格納されている場合、ネットワーク２００のプロキシキャッシュ２２０−２２６に送信されてよく、それによって格納されてよい。コンテンツファイルに対する要求を受信するプロキシキャッシュは、次に、コンテンツファイルがどこで格納されてよく、入手可能にされてよいか決定するべく、格納された複数のコンテンツファイルのリストを確認してよい。プロキシキャッシュデバイスがどのように、コンテンツファイルがネットワーク２００のプロキシキャッシュレベル２２０−２２６から入手可能であることを判断するかに関わらず、コンテンツファイルは、プロキシキャッシュレベルから取得されてよく、および／またはエンドユーザに提供されてよく、これにより、コンテンツがエンドユーザに提供される速さを増加させる。
【００４２】
図５は、上記で開示されたネットワークの構成要素の複数の実施形態を実装するときに用いられてよいコンピューティングデバイスまたはコンピュータシステム５００の例を示すブロック図である。例えば、図５のコンピューティングシステム５００は、上記で説明されたルータまたはプロキシキャッシュを実装するのに用いられてよい。コンピュータシステム（システム）は、１または複数のプロセッサ５０２−５０６を含む。プロセッサ５０２−５０６は、プロセッサバス５１２とのインタラクションを管理するべく、１または複数の内部レベルのキャッシュ（不図示）およびバスコントローラまたはバスインタフェースユニットを含んでよい。ホストバスまたはフロントサイドバスとしてもまた知られているプロセッサバス５１２は、プロセッサ５０２−５０６をシステムインタフェース５１４と結合させるのに用いられてよい。システムインタフェース５１４は、システム５００の複数の他の構成要素をプロセッサバス５１２とインタフェース接続するべく、プロセッサバス５１２に接続されてよい。例えば、システムインタフェース５１４は、メインメモリ５１６をプロセッサバス５１２とインタフェース接続するためのメモリコントローラ５１４を含んでよい。メインメモリ５１６は、典型的には、１または複数のメモリカードおよび制御回路（不図示）を含む。システムインタフェース５１４は、また、１または複数のＩ／ＯブリッジまたはＩ／Ｏデバイスをプロセッサバス５１２とインタフェース接続する入出力（Ｉ／Ｏ）インタフェース５２０も含んでよい。１または複数のＩ／Ｏコントローラおよび／またはＩ／Ｏデバイスは、示されるように、Ｉ／Ｏコントローラ５２８およびＩ／Ｏデバイス５４０等のＩ／Ｏバス５２６に接続されてよい。
【００４３】
Ｉ／Ｏデバイス５４０は、また、情報および／または複数のコマンド選択をプロセッサ５０２−５０６に通信するための英数字および他の複数のキーを含む、英数字入力デバイス等の入力デバイス（不図示）も含んでよい。別のタイプのユーザ入力デバイスは、マウス、トラックボール、もしくは方向情報および複数のコマンド選択をプロセッサ５０２−５０６に通信し、かつ表示デバイスにおけるカーソル動作を制御するための複数のカーソル方向キー等のカーソル制御を含む。
【００４４】
システム５００は、メインメモリ５１６と呼ばれる動的記憶デバイス、またはランダムアクセスメモリ（ＲＡＭ）または情報とプロセッサ５０２−５０６によって実行されることになる複数の命令とを格納するためにプロセッサバス５１２に結合された他の複数のコンピュータ可読デバイスを含んでよい。メインメモリ５１６は、また、プロセッサ５０２−５０６による複数の命令の実行中、一時的変数または他の中間情報を格納するために用いられてもよい。システム５００は、リードオンリーメモリ（ＲＯＭ）および／またはプロセッサ５０２−５０６についての静的情報および複数の命令を格納するためのプロセッサバス５１２に結合された他の静的記憶デバイスを含んでよい。図５で説明されたシステムは、本開示の複数の態様に従って使用し得るまたは構成され得るコンピュータシステムの１つの可能な例にすぎない。
【００４５】
一実施形態に従って、上記の複数の技術は、メインメモリ５１６に含まれる１または複数の命令の１または複数のシーケンスを実行するプロセッサ５０４に応答して、コンピュータシステム５００によって実行されてよい。これらの命令は、記憶デバイス等の別の機械可読媒体からメインメモリ５１６へと読み込まれてよい。メインメモリ５１６に含まれる複数の命令の複数のシーケンスの実行により、プロセッサ５０２−５０６が本明細書で記述される複数の処理ステップを実行させられてよい。複数の代替的な実施形態において、電気回路が複数のソフトウェア命令の代わりに、またはそれらと組み合わせて用いられてよい。よって、本開示の複数の実施形態は、ハードウェアおよびソフトウェア構成要素の両方を含んでよい。
【００４６】
機械可読媒体は、機械（例えば、コンピュータ）によって可読な形態（例えば、ソフトウェア、処理アプリケーション）で情報を格納もしくは送信するための任意の機構を含む。そのような複数の媒体は、限定されないが、不揮発性媒体および揮発性媒体の形を取ってよい。複数の不揮発性媒体は、光学もしくは磁気ディスクを含む。複数の揮発性媒体は、メインメモリ５１６等の動的メモリを含む。機械可読媒体の一般的な形態は、限定されないが、磁気格納媒体（例えば、フロッピー（登録商標）ディスケット）、光学記憶媒体（例えば、ＣＤ‐ＲＯＭ）、磁気光学記憶媒体、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能メモリ（例えば、ＥＰＲＯＭおよびＥＥＰＲＯＭ）、フラッシュメモリ、または複数の電子命令を格納するために適した他の複数のタイプの媒体を含んでよい。
【００４７】
本開示の複数の実施形態は、本明細書において記述される様々なステップを含む。複数のステップは、複数のハードウェアコンポーネントによって実行されてよく、または機械で実行可能な複数の命令において具現化されてよく、それらは、複数の命令でプログラムされた汎用もしくは専用プロセッサに複数のステップを実行させるのに用いられてよい。代替として、複数のステップは、ハードウェア、ソフトウェアおよび／またはファームウェアの組み合わせによって実行されてもよい。
【００４８】
本発明の範囲から逸脱することなく、様々な修正および追加が、説明された複数の例示的な実施形態に対してなされ得る。例えば、上述の複数の実施形態は複数の特定の特徴を指す一方、本発明の範囲は、また、記述された全ての特徴を含まない複数の特徴および実施形態の複数の異なる組み合わせを有する複数の実施形態も含む。従って、本発明の範囲は、全てのそのような代替的修正および変形をそれらの全ての均等物と合わせて包含することを目的としている。
【図１】
2017509053.tif 000003
【図２】
2017509053.tif 000004
【図３】
2017509053.tif 000005
【図４】
2017509053.tif 000006
【図５】
2017509053.tif 000007
【国際調査報告】
2017509053.tif 000008