(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6984097
(24)【登録日】2021年11月29日
(45)【発行日】2021年12月17日
(54)【発明の名称】エッジプロキシを持つコンテンツデリバリネットワークアーキテクチャ
(51)【国際特許分類】
G06F 13/00 20060101AFI20211206BHJP
G06F 16/957 20190101ALI20211206BHJP
H04L 12/743 20130101ALI20211206BHJP
【FI】
G06F13/00 540B
G06F16/957
H04L12/743
【請求項の数】19
【全頁数】22
(21)【出願番号】特願2016-548708(P2016-548708)
(86)(22)【出願日】2015年2月19日
(65)【公表番号】特表2017-509053(P2017-509053A)
(43)【公表日】2017年3月30日
(86)【国際出願番号】US2015016612
(87)【国際公開番号】WO2015127075
(87)【国際公開日】20150827
【審査請求日】2018年2月14日
【審判番号】不服2019-13638(P2019-13638/J1)
【審判請求日】2019年10月11日
(31)【優先権主張番号】61/941,576
(32)【優先日】2014年2月19日
(33)【優先権主張国】US
(31)【優先権主張番号】62/110,119
(32)【優先日】2015年1月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508140877
【氏名又は名称】レベル スリー コミュニケーションズ,エルエルシー
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ローレンス、ジョセフ、シー.
(72)【発明者】
【氏名】ジョンズ、ケビン、シー.
(72)【発明者】
【氏名】パワー、ウィリアム、アール.
【合議体】
【審判長】
稲葉 和生
【審判官】
角田 慎治
【審判官】
林 毅
(56)【参考文献】
【文献】
米国特許出願公開第2012/0166591(US,A1)
【文献】
国際公開第2013/047207(WO,A1)
【文献】
国際公開第2012/144584(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F13/00
G06F12/00
G06F16/00
H04L12/743
(57)【特許請求の範囲】
【請求項1】
コンテンツデリバリネットワークであって、
電気通信ネットワークと通信するプロキシキャッシュデバイスであって、前記電気通信ネットワークは、前記電気通信ネットワークに接続されたユーザデバイスからコンテンツファイルに対する要求を前記プロキシキャッシュデバイスに送信する、前記プロキシキャッシュデバイスと、
ローカルネットワークを介して前記プロキシキャッシュデバイスと通信する複数のエッジクラスタであって、各エッジクラスタは複数のエッジサーバを含み、前記複数のエッジクラスタのそれぞれは、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュする、前記複数のエッジクラスタと、を備え、
前記プロキシキャッシュデバイスは、前記コンテンツファイルに対する複数の要求のそれぞれの要求に応答して、さらに、
前記コンテンツファイルに対する前記要求に少なくとも基づいてハッシュ値を計算し、
前記複数のエッジクラスタから、前記計算されたハッシュ値に関連付けられた1つのエッジサーバを選択し、
前記コンテンツファイルに対する前記要求を前記選択された1つのエッジサーバに送信し、
前記選択された1つのエッジサーバは、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュし、
前記プロキシキャッシュデバイスは、前記選択された1つのエッジサーバからの前記コンテンツファイルのコピーで前記コンテンツファイルに対する前記複数の要求に応答する、
コンテンツデリバリネットワーク。
【請求項2】
前記選択された1つのエッジサーバは、さらに、前記コンテンツファイルに対する前記要求に応答して、前記コンテンツファイルを前記プロキシキャッシュデバイスに提供し、前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルを前記電気通信ネットワークに提供する、請求項1に記載のコンテンツデリバリネットワーク。
【請求項3】
前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルをローカルストレージに格納する、請求項1または2に記載のコンテンツデリバリネットワーク。
【請求項4】
前記プロキシキャッシュデバイスは、さらに、前記コンテンツファイルに対する第2の要求に応答して、前記ローカルストレージからの前記コンテンツファイルを前記電気通信ネットワークに提供する、請求項3に記載のコンテンツデリバリネットワーク。
【請求項5】
前記コンテンツファイルに対する前記要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記ハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算される、請求項1から4のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項6】
前記ハッシュ値の前記計算は、前記プロキシキャッシュデバイスで受信された前記コンテンツファイルに対する追加の要求のために繰返し可能である、請求項1から5のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項7】
前記選択された1つのエッジサーバは、コンテンツプロバイダネットワークと通信し、さらに、前記コンテンツプロバイダネットワークから前記コンテンツファイルを取得する、請求項1から6のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項8】
コンテンツデリバリネットワークを動作させるための方法であって、コンテンツファイルに対する複数の要求のそれぞれの要求に応答して、
電気通信ネットワークを介して第1のプロキシキャッシュデバイスで前記コンテンツファイルに対する前記要求を受信する段階であって、前記電気通信ネットワークは、前記電気通信ネットワークに接続されたユーザデバイスから前記コンテンツファイルに対する前記要求を送信する、段階と、
前記コンテンツファイルに対する前記要求に少なくとも基づいて、第1のハッシュ値を計算する段階と、
複数のエッジクラスタから、前記計算された第1のハッシュ値に関連付けられた1つのエッジサーバを選択する段階であって、各エッジクラスタは複数のエッジサーバを含み、前記複数のエッジクラスタのそれぞれは、ローカルネットワークを介して前記第1のプロキシキャッシュデバイスと通信し、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュする、段階と、
前記コンテンツファイルに対する前記要求を前記選択された1つのエッジサーバに送信する段階と、
前記選択された1つのエッジサーバが、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュする段階と、
前記第1のプロキシキャッシュデバイスが、前記選択された1つのエッジサーバからの前記コンテンツファイルのコピーで前記コンテンツファイルに対する前記複数の要求に応答する段階と、
を備える方法。
【請求項9】
前記コンテンツファイルに対して前記送信された要求に少なくとも応答して、前記選択された1つのエッジサーバから前記第1のプロキシキャッシュデバイスで前記コンテンツファイルを受信する段階と、
前記コンテンツファイルを前記ユーザデバイスに提供する段階と、
をさらに備える、請求項8に記載の方法。
【請求項10】
前記第1のプロキシキャッシュデバイスと通信するローカルストレージに前記コンテンツファイルを格納する段階をさらに備える、請求項8又は9に記載の方法。
【請求項11】
前記コンテンツファイルに対する第2の要求を第2のプロキシキャッシュデバイスで受信する段階と、
前記コンテンツファイルに対する前記第2の要求に少なくとも基づいて第2のハッシュ値を計算する段階と、
計算された前記第2のハッシュ値に少なくとも基づいて前記複数のエッジサーバから、前記計算された第2のハッシュ値に関連付けられた前記選択された1つのエッジサーバを選択する段階と、
前記コンテンツファイルに対する前記第2の要求を前記選択された1つのエッジサーバに送信する段階と、をさらに備える、請求項8から10のいずれか一項に記載の方法。
【請求項12】
前記コンテンツファイルに対する前記要求および前記コンテンツファイルに対する第2の要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記第1のハッシュ値および第2のハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算される、請求項11に記載の方法。
【請求項13】
前記第1のハッシュ値および前記第2のハッシュ値は同一である、請求項11又は12に記載の方法。
【請求項14】
前記コンテンツファイルに対する第3の要求を前記第2のプロキシキャッシュデバイスで受信する段階と、
前記コンテンツファイルが前記第1のプロキシキャッシュデバイスと通信するローカルストレージに格納されているという判断に少なくとも基づいて、前記コンテンツファイルに対する前記第3の要求を前記第1のプロキシキャッシュデバイスに送信する段階と、
をさらに備える、請求項11から13のいずれか一項に記載の方法。
【請求項15】
前記コンテンツファイルを前記第1のプロキシキャッシュデバイスと通信するローカルストレージに格納する前に、前記コンテンツファイルに関連付けられた需要識別子を確認する段階をさらに備える、請求項10から14のいずれか一項に記載の方法。
【請求項16】
前記コンテンツファイルの前記需要識別子を確認する段階は、
前記第1のプロキシキャッシュデバイスで受信された前記コンテンツファイルに対する複数の要求の合計のカウント数を閾値と比較する段階と、
前記コンテンツファイルに対する複数の要求の合計の前記カウント数が、前記閾値に等しい、もしくはそれを超える場合、前記コンテンツファイルに関連付けられた前記需要識別子を設定する段階と、
を含む、請求項15に記載の方法。
【請求項17】
前記コンテンツファイルの前記需要識別子を確認する段階は、
前記コンテンツファイルの需要指標をネットワーク構成デバイスから受信する段階と、
前記コンテンツファイルの受信された前記需要指標を、前記第1のプロキシキャッシュデバイスにおける複数の受信されたコンテンツファイルとの比較のために記憶デバイスに格納する段階と、
を含む、請求項15又は16に記載の方法。
【請求項18】
電気通信ネットワークを介してコンテンツファイルを提供するための方法であって、電気通信ネットワークは、複数のエッジクラスタを含み、各エッジクラスタは複数のエッジサーバを含み、前記複数のエッジクラスタのそれぞれは、前記コンテンツファイルに対する要求を受信することに応答してコンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュし、
第1のプロキシキャッシュデバイスにおけるコンテンツファイルに対する第1の要求を、前記電気通信ネットワークと通信する複数のエンドユーザデバイスのうち第1のエンドユーザデバイスから受信する段階と、
前記コンテンツファイルに対する前記第1の要求に少なくとも基づいて、第1のハッシュ値を計算する段階と、
前記複数のエッジクラスタから、前記計算された第1のハッシュ値に関連付けられた1つのエッジサーバを選択する段階と、
前記コンテンツファイルに対する前記第1の要求を前記選択された1つのエッジサーバに送信する段階と、
前記選択された1つのエッジサーバが、前記コンテンツファイルに対する前記要求を受信することに応答して、前記コンテンツファイルのコピーを取得及び格納し、前記取得されたコンテンツファイルをキャッシュする段階と、
前記コンテンツファイルに対する第2の要求を第2のプロキシキャッシュデバイスで前記電気通信ネットワークと通信する前記複数のエンドユーザデバイスの第2のエンドユーザデバイスから受信する段階と、
前記コンテンツファイルに対する前記第2の要求に少なくとも基づいて、第2のハッシュ値を計算する段階と、
計算された前記第2のハッシュ値に少なくとも基づいて、前記計算された第2のハッシュ値に関連付けられた前記選択された1つのエッジサーバを選択する段階と、
前記コンテンツファイルに対する前記第2の要求を前記選択された1つのエッジサーバに送信する段階と、
前記第1のプロキシキャッシュデバイスおよび前記第2のプロキシキャッシュデバイスが、前記選択された1つのエッジサーバからの前記コンテンツファイルのコピーで前記コンテンツファイルに対する前記第1の要求及び前記第2の要求にそれぞれ応答する段階と、
を備える方法。
【請求項19】
前記コンテンツファイルに対する前記第1の要求および前記コンテンツファイルに対する前記第2の要求は、前記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、前記第1のハッシュ値および前記第2のハッシュ値は、少なくとも前記ユニフォームリソースロケータに基づいて計算され、
任意で、前記第1のハッシュ値および前記第2のハッシュ値は同一である、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照] 本出願は、米国特許法第119条(e)のもとで、2014年2月19日に出願された「CONTENT DELIVERY NETWORK ARCHITECTURE WITH EDGE PROXY」という名称の米国特許仮出願第61/941,576号、および2015年1月30日に出願された「PROXY SERVER FAILOVER AND LOAD CLUSTERING」という名称の米国特許仮出願第62/110,119号に対して優先権を主張する。これらの両方が、本明細書において参照によって全体として組み込まれる。[本開示の分野] 本発明の複数の実施形態は、概して、電気通信ネットワークを実装するための複数のシステムおよび方法に関し、より具体的には、ポピュラーなコンテンツをキャッシュし、複数のコンテンツ記憶デバイスの間でコンテンツの複数の要求をスライシングするエッジ(Edge)プロキシキャッシュを含むコンテンツデリバリネットワークのための複数のシステムおよび方法に関する。
【背景技術】
【0002】
コンテンツデリバリネットワーク(CDN)は、動画、マルチメディア、画像、オーディオファイル、文書、ソフトウェア、および複数の他の電子リソース等のコンテンツを、1または複数のコンテンツプロバイダに代わって複数のエンドユーザに分散するために次第に用いられている。CDNを用いることにより、複数のコンテンツプロバイダは、追加のインフラストラクチャを配置することなく、コンテンツ配信の速さおよび信頼性を増やすことが可能になる。さらに、CDNは、1または複数の既存のネットワーク内にコンテンツを格納する必要なく、既存のネットワークを介したコンテンツの配布を可能にする。
【0003】
通常、CDNは、コンテンツが要求するエンドユーザに供給され得る数個のコンテンツサーバを含む。一例において、これらのコンテンツサーバは、エンドユーザが通信している電気通信ネットワークを介してアクセスされ得る。ネットワークは、ルータ、インターネットサービスプロバイダネットワーク、他の中間ネットワーク等、エンドユーザを要求されたコンテンツに接続することを容易にする任意の数の構成要素を含んでよい。一般に、CDNから入手可能なコンテンツは、CDNまたは他の複数のアップストリームコンテンツプロバイダに接続された1または複数のエッジクラスタに格納される。コンテンツに対する複数の要求は、次に、複数の要求する顧客へコンテンツを提供するべく、複数のエッジクラスタまたはコンテンツプロバイダにCDNによって送信される。しかしながら、CDNは、どのアップストリームコンテンツ記憶デバイスがコンテンツに対する受信された要求に応答してエンドユーザにコンテンツを提供することに対する制御はほとんど有していないことが多い。
【0004】
本開示の様々な態様は、これらおよび他の課題を念頭に置いて開発されたのである。
【発明の概要】
【0005】
本開示の一実装は、コンテンツデリバリネットワークの形態を取ってよい。コンテンツデリバリネットワークは、アクセスネットワークと通信するルータであって、アクセスネットワークは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する要求を送信するように構成されている、ルータと、ルータを通信し、ルータからコンテンツファイルに対する要求を受信するように構成されているプロキシキャッシュデバイスと、ローカルネットワークを介してプロキシキャッシュデバイスと通信する複数のエッジサーバであって、各々がコンテンツファイルに対する要求を受信することに応答して、コンテンツファイルを取得するように構成されている、複数のエッジサーバと、を備える。加えて、プロキシキャッシュデバイスは、少なくともコンテンツファイルに対する要求に基づいてハッシュ値を計算し、計算されたハッシュ値に少なくとも基づいて複数のエッジサーバから第1のエッジサーバを選択し、コンテンツファイルに対する要求を選択されたエッジサーバに送信するようにさらに構成されている。
【0006】
本開示の別の実装は、コンテンツデリバリネットワークを動作させるための方法の形態を取ってよい。当該方法は、ルータから第1のプロキシキャッシュデバイスでコンテンツファイルに対する第1の要求を受信する動作であって、アクセスネットワークと通信するルータは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する第1の要求を送信するように構成されている、動作と、コンテンツファイルに対する第1の要求に少なくとも基づいて、第1のハッシュ値を計算する動作とを含んでよい。さらに、複数の動作は、計算された第1のハッシュ値に少なくとも基づいて、複数のエッジサーバから第1のエッジサーバを選択する段階を含んでよく、複数のエッジサーバは、ローカルネットワークを介してプロキシキャッシュデバイスと通信し、コンテンツファイルに対する第1の要求を受信する段階およびコンテンツファイルに対する第1の要求を選択されたエッジサーバへ送信する段階に応答して、コンテンツファイルを取得するように構成されている。
【0007】
本開示のさらに別の実装は、電気通信ネットワークを介してコンテンツファイルを提供するための方法の形態を取ってもよい。当該方法は、電気通信ネットワークと通信する複数のエンドユーザデバイスの第1のエンドユーザデバイスから第1のプロキシキャッシュデバイスでコンテンツファイルに対する第1の要求を受信する動作と、コンテンツファイルに対する第1の要求に少なくとも基づいて、第1のハッシュ値を計算する動作と、計算された第1のハッシュ値に少なくとも基づいて、複数のエッジサーバから第1のエッジサーバを選択する動作であって、複数のエッジサーバは、コンテンツファイルに対する第1の要求を受信することに応答して、コンテンツファイルを取得し、コンテンツファイルに対する第1の要求を選択されたエッジサーバに送信するように構成されている、選択する動作と、を含んでよい。当該方法は、また、第2のプロキシキャッシュデバイスで、電気通信ネットワークと通信する複数のエンドユーザデバイスの第2のエンドユーザデバイスからコンテンツファイルに対する第2の要求を受信する動作と、コンテンツファイルに対する第2の要求に少なくとも基づいて、第2のハッシュ値を計算する動作と、計算された第2のハッシュ値に少なくとも基づいて複数のエッジサーバから第1のエッジサーバを選択する動作と、コンテンツファイルに対する第2の要求を選択されたエッジサーバへ送信する動作と、を含んでよい。
【図面の簡単な説明】
【0008】
【
図1】コンテンツデリバリネットワーク(CDN)を介してコンテンツを配布する例示的なネットワーク環境である。
【0009】
【
図2】ネットワークのプロキシサーバまたはプロキシキャッシュにコンテンツに対する要求をルーティングするための例示的な論理ネットワーク環境である。
【0010】
【
図3】要求するユーザデバイスにコンテンツを提供するエッジサーバを決定するべく、スライシング機能を用いるCDNのための方法を示すフローチャートである。
【0011】
【
図4】要求するユーザデバイスにコンテンツを提供するべく、プロキシキャッシュデバイスを用いるCDNのための方法を示すフローチャートである。
【0012】
【
図5】本開示の複数の実施形態を実装するときに用いられてよいコンピューティングシステムの例を示す図である。
【発明を実施するための形態】
【0013】
本開示の複数の態様は、ネットワークのエッジにおいて、および要求するデバイスとCDNのエッジクラスタとの間において、1または複数のプロキシキャッシュデバイスおよび/またはプロキシサーバを用いるコンテンツデリバリネットワーク(CDN)アーキテクチャについての複数のシステム、複数の方法、複数のコンピュータプログラム製品等を伴う。一例において、プロキシは、CDNによって提供されるコンテンツに対するクライアント要求を受信する。コンテンツは、コンテンツの多数の他の形態の間において、ソフトウェアパッチからデジタル映画まで及んでよい。プロキシキャッシュデバイスは、1または複数のエッジクラスタを成す様々な潜在的デバイスよりも比較的高速のデバイスである。よって、プロキシが要求されたコンテンツをキャッシュした場合、それは、クライアントコンテンツ要求を、エッジクラスタからコンテンツを提供するよりも速く直接的にサービスすることが可能である。そうでなければ、プロキシキャッシュは、エッジクラスタからコンテンツを要求し、コンテンツに対する複数の追加の要求に応答して素早く取得するためにコンテンツを格納してよい。一実施形態において、プロキシキャッシュは、要求または一連の要求の分析を実行して、コンテンツがプロキシキャッシュデバイスでキャッシュされたか判断してよい。
【0014】
加えて、プロキシが要求されたコンテンツのキャッシュコピーを有していない場合、プロキシキャッシュは、ハッシュ動作を実行してよく、複数の利用可能なエッジクラスタの間でコンテンツ要求をスライシングするように構成されてよい。このように、コンテンツの複数のコピーは、CDNの様々なエッジクラスタに格納される必要はない。例えば、コンテンツAに対する要求が第1のエッジプロキシキャッシュでハッシュ化される場合、プロキシキャッシュは、ハッシュ動作の複数の結果に基づいて、複数のエッジクラスタの1つからコンテンツを要求する。エッジクラスタがコンテンツのコピーを有していない場合、エッジクラスタは、記憶デバイスからコピーを取得し、そのコピーを格納し、要求するプロキシキャッシュに要求されたコンテンツを配信する。コンテンツに対する要求が後に第2のプロキシキャッシュで受信されるのであれば、第2のプロキシキャッシュは、要求されたコンテンツのためにハッシュ動作を実行し、ハッシュの複数の結果に基づいてエッジクラスタへ向けられるであろう。ここで、エッジクラスタは、コンテンツのコピーを有し、要求を即座に満たし得、第2のプロキシキャッシュへコピーを戻し得る。同様に、第2のプロキシキャッシュは、それがキャッシュ格納されたままであるという条件で、エッジクラスタからコンテンツを要求するよりむしろ第1のプロキシから直接コンテンツを要求するかもしれない。そのようなシナリオは、比較的小さく一貫した複数のコンテンツタイプの、定期的にスケジュールされる複数のソフトウェアパッチと共に特に用いられ得る可能性がある。
【0015】
図1は、ユーザのデバイスからのコンテンツに対する要求に基づいて、1または複数のユーザにコンテンツを配布するための例示的なネットワーク環境100である。一実装において、CDN102は、1または複数のアクセスネットワーク106に通信可能に結合される。一般に、CDN102は、1または複数のコンテンツサーバ(以下にエッジクラスタまたはエッジサーバとしてより詳細に説明される)、要求およびその要求が受信されコンテンツが提供される基本的なIPネットワークに応答してユーザにコンテンツを提供するように全てが構成された1または複数のプロキシキャッシュサーバおよびルータを備える。複数のCDNサーバに関連付けられた基本的なIPネットワークは、ネットワークを介して通信を送受信するように構成された任意のタイプのIPベースの通信ネットワークの形態であってよく、任意の数および複数のタイプの電気通信構成要素を含んでよい。このように、複数のCDNベースの構成要素が、既存のIPベースの通信ネットワークに加えられてよい。そうすることにより、複数の構成要素は、コンテンツに対する要求を受信し、記憶デバイスからコンテンツを取得し、コンテンツを支持するIPネットワークを介して要求するデバイスに提供してよい。簡素化のため、本開示にわたる「CDN」という用語の使用は、他の場合に表記されていない限り、通信を処理し送信するための1または複数のコンテンツサーバおよび基本的なIPネットワークの組み合わせを指す。
【0016】
一実施形態において、アクセスネットワーク106は、例えば、CDN102へのアクセスを提供する1または複数のインターネットサービスプロバイダ(ISP)等、1または複数のエンティティの制御下にあってよい、または1または複数のエンティティによって操作され/保持されてよい。よって、例えば、アクセスネットワーク106は、インターネットアクセスをユーザデバイス104に提供してよい。加えて、アクセスネットワーク106は、CDN102のIPネットワークへの数個の接続を含んでよい。例えば、アクセスネットワーク106は、アクセスポイント120を含む。また、ユーザデバイス104は、任意の数のアクセスネットワーク106に接続されてもよい。そうすることにより、CDN102へのアクセスは、別のアクセスネットワークを介して生じてよい。一般に、CDN102へのアクセス(またはCDNに関連付けられた基本的なIPネットワーク)が、任意の数のアクセスネットワークを介してCDNへの任意の数の入力ポートを介して生じてよい。
【0017】
CDN102は、パーソナルコンピュータ、モバイルデバイス、タブレット(例えば、iPad(登録商標))または同様のもの等、概して任意の形態のコンピューティングデバイスであるユーザデバイス104に、コンテンツを提供することが可能である。コンテンツは、動画、マルチメディア、画像、オーディオファイル、テキスト、文書、ソフトウェア、および複数の他の電子リソースを限定せずに含んでよい。ユーザデバイス104は、コンテンツを要求し、受信し、処理し、表示するように構成されている。一実装において、ユーザデバイス104は、コンテンツアイテムへのリンク(例えば、ハイパーリンク)が選択され得る、またはそうでなければ入力され得るインターネットブラウザアプリケーションを含み、要求をCDN102におけるディレクトリサーバ110に送信させる。
【0018】
コンテンツに対する要求は、CDNのルータ110で受信されてよい。特定の一実施形態において、要求は、ルータで受信される前に、IPネットワークの数個の構成要素を介して送信される。加えて、CDN102は、選択されたリンクに関連付けられたコンテンツが取得され得るネットワークアドレス(例えば、IPネットワーク内のIPアドレス)を提供することにより、要求に応答するように構成されたディレクトリサーバを含んでよい。ディレクトリサーバは、リンク名(例えば、URLまたは他の識別子)をユーザデバイス104がコンテンツを取得することが可能な関連するネットワークアドレスに変える。特定の一実施形態において、ディレクトリサーバは、コンテンツに対する要求に応答するべく、IPアドレスをネットワークの1または複数のプロキシサーバまたはプロキシキャッシュに提供する。
【0019】
一実装において、CDN102は、1または複数のエッジサーバ112(複数のエッジサーバが合わせてクラスタリングされた場合、「エッジクラスタ」とも時々呼ばれる)を含む。1または複数のエッジサーバ112は、別のネットワークからのコンテンツをキャッシュし、それがルータ110および/またはユーザデバイス104により地理的または論理的に近い位置で、それを利用可能にしてよい。複数のエッジクラスタ112は、複数のネットワークロードを減らし、容量を解放し、配信コストを下げてよく、および/または コンテンツダウンロード時間を低減してよい。複数のエッジクラスタ112は、要求されたコンテンツを、ユーザデバイス104または例えばアクセスネットワーク106における中間デバイスであってよい要求元に提供するように構成されている。一実装において、複数のエッジクラスタ112のうち1または複数は、キャッシュにローカルに格納されている要求されたコンテンツを提供する。別の実装において、複数のエッジクラスタ112は、メディアアクセスサーバ(MAS)(例えば、コンテンツ配信サーバまたはコンテンツプロバイダネットワーク118のコンテンツ配信元サーバ116)等の別の送信元から、要求されたコンテンツを取得する。コンテンツは、次に、複数の要求に応答してユーザデバイス104に供給される。
【0020】
一般に、CDN102は、以下のやり方でエンドユーザ104にコンテンツを提供する。最初に、CDN102は、アクセスネットワーク106を介してユーザ104からコンテンツに対する要求を受信する。1または複数のディレクトリサーバを含むドメイン名システム(DNS)を用いるCDNは、複数のエンドユーザに要求されたコンテンツを配信するための少なくとも1つの適切なエッジクラスタ112または他のアップストリームコンテンツネットワーク118を決定する。DNSは、次に、選択されたエッジクラスタ112またはコンテンツネットワーク118用のIPアドレスをエンドユーザデバイス104に戻す。そうすることにより、エンドユーザデバイスは、ユーザのアクセスネットワーク106を介してエッジクラスタ112に接続し、要求されたコンテンツを受信し始める。より具体的に、ユーザのデバイス104に提供されるIPアドレスによって識別されたエッジクラスタ112からのコンテンツに対する要求は、IPネットワーク102のルータ110で受信される。一実施形態において、ルータ110は、IPネットワーク102を介してエッジクラスタ112に要求を送信する。そうすることにより、エッジクラスタは、ユーザのデバイス104にコンテンツを提供する。
【0021】
一般に、コンテンツに対する要求に応答してDNSによって提供されるIPアドレスは、ユーザのデバイスを特定のコンテンツホストエンティティについて全てまたはいくつかのコンテンツをホストするサーバに接続する。言い換えれば、DNSによって提供されるIPアドレスは、エンドユーザを要求されたコンテンツファイルに直接的には接続しなくてよいが、むしろ格納するサーバ(エッジクラスタのエッジサーバ等)に接続してよく、あるいはいくつかのコンテンツファイルについて(コンテンツプロバイダネットワーク118から等の)特定のコンテンツファイルにアクセスしてよい。エッジクラスタ112またはコンテンツプロバイダネットワーク118は、次に、要求されたコンテンツファイルをエンドユーザ104に提供する。よって、多数のエッジクラスタまたはエッジサーバがコンテンツプロバイダネットワーク118へのアクセスを有してよいので、DNSは、コンテンツ要求を満たすべく、コンテンツプロバイダネットワークへのアクセスを持つ複数のエッジサーバまたはクラスタのいずれにもIPアドレスを割り当ててよい。一実装において、コンテンツをエンドユーザ104に提供するべく、エッジクラスタ112またはコンテンツプロバイダネットワーク118を割り当てることは、要求を満たすことが可能なローカルな地域の各エッジクラスタ112の間においてランダムであってよい。
【0022】
CDN102の特定の一実施形態において、プロキシサーバまたはプロキシキャッシュ114は、ルータ110とエッジクラスタ112との間に論理的に位置してよい。一般に、プロキシキャッシュ114は、ローカルな地域で数個のエッジクラスタ112にわたるコンテンツをスライスし得る、および/または複数のユーザ要求を終了するためにポピュラーなコンテンツを利用できるようにキャッシュし得る高性能キャッシュである。よって、一実装において、プロキシキャッシュ114は、ポピュラーなコンテンツに対して受信された要求に応答して、コンテンツのプロバイダとして作動してよい。プロキシキャッシュ114におけるコンテンツのストレージをトリガするコンテンツの需要は、受信された要求の数、ネットワーク102によるカスタム選択、複数のネットワーク設定手順等、任意の複数の基準に基づいてよい。別の実装において、プロキシキャッシュ114は、コンテンツが提供されてよい特定のエッジクラスタ112を決定してよく、これによりCDN102によって格納されるコンテンツのコピー数を減らす。例えば、特定のエリアまたは(CDN102のメトロネットワークセグメント等)ネットワーク102のセグメントにおける全てのプロキシキャッシュ114は、複数のエッジクラスタに格納された同じコンテンツの複数のコピーを有するよりむしろ、メトロネットワークの同一のエッジクラスタ112からのコンテンツに対する複数の要求を満たしてよい。CDN102アーキテクチャにおける複数のプロキシキャッシュ114デバイスの動作が、以下でより詳細に説明される。
【0023】
図1において、アクセスネットワーク106と通信するルータ110を含むことが示されるが、ネットワーク102における任意の電気通信デバイスは、ユーザ104から要求を受信し、要求をプロキシサーバ114またはエッジクラスタ112に送信してよいことは理解されるべきである。別の実施形態において、ユーザ104は、アクセスネットワーク106を用いることなく、ネットワーク102と直接通信してよい。この実施形態において、ユーザの要求は、プロキシサーバ114またはエッジクラスタ112に直接送信されてよい。さらに、および以下でより詳細に説明されるように、プロキシサーバ114は、ユーザのデバイス104と通信するアクセスネットワーク106においてインスタンス化されてよい。よって、一般に、プロキシサーバ114は、本明細書で記述される通信網に沿って任意の位置に論理的に位置してよい。
【0024】
図2は、コンテンツに対する要求をネットワークのプロキシサーバまたはプロキシキャッシュにルーティングするための例示的な論理ネットワーク環境である。一般に、
図2の論理ネットワーク環境200の複数の構成要素は、
図1に関して上記で説明された複数の構成要素と同様である。特に、ネットワーク環境200は、エンドユーザデバイスがCDNに接続するアクセスネットワークまたはISP106を含む。
図2において、ISP106の数個のインスタンスを含むことが示されるが、ISPが同じ論理ネットワークであってよいことは、理解されるべきである。複数のISP106は、CDNネットワークに関連付けられた1または複数のルータ202−208に接続する。この場合もまた、ISP106と同様に、
図2に示されるルータ202−208は、CDN102に関連付けられた1つのルータまたは数個のルータであってよい。上記で説明されたように、ルータ202−208は、CDNを介して入手可能なコンテンツに対する要求を受信してよく、それらの要求は、エッジクラスタまたはコンテンツが入手可能なコンテンツプロバイダネットワークのIPアドレスによって識別される。一実施形態において、ルータ202−208は、次に、(メトロIPネットワーク210等の)ローカルネットワークを介して、受信された要求におけるIPアドレスに関連付けられたエッジクラスタ212−218に複数の要求をルーティングしてよい。メトロIPネットワーク210は、1または複数のエッジクラスタ212−218をCDN102に接続するローカルエリアネットワーク(LAN)を提供する。さらに、
図2では示されないが、エッジクラスタ212−218は、コンテンツプロバイダネットワーク118のMAS116に接続されてよい、またはそうでなければMAS116からのコンテンツにアクセスしてよい。
【0025】
別の実施形態において、CDNについてのDNSが、コンテンツに応答してネットワークのプロキシキャッシュ220−226デバイスに関連付けられたIPアドレスを提供してよい。例えば、DNSは、特定のメトロIPネットワーク210に関連付けられた、受信されたコンテンツに対するあらゆる要求のために、プロキシキャッシュ220−226のIPアドレスを提供するように構成されてよい。別の実施形態において、受信されたコンテンツに対する全てではないもののいくつかの要求が、入手可能なプロキシキャッシュ220−226の1つに送信されてよい。コンテンツについて受信された複数の要求が、プロキシキャッシュ220−226を介してルーティングされるかどうかは、ネットワークまたはCDN管理者によってネットワーク設定を介して確立されてよい。
【0026】
ネットワーク200の1または複数のプロキシキャッシュ220−226を介して複数の要求のルーティングを容易にするべく、1または複数のプロキシキャッシュは、論理的にエッジクラスタ212−218とISP106を介してユーザデバイスとの間で位置してよい。一実施形態において、プロキシキャッシュ202−208は、論理的に電気通信ネットワークのルータ202−208とメトロIPネットワーク210との間で位置する。プロキシキャッシュ220−226は、プロキシキャッシュとルータ202−208もしくはコンテンツの高速送信用の複数のルータとの間で20ギガバイト接続を提供してよい。さらに、以下でより詳細に説明されるように、プロキシキャッシュ220−226は、エリアにおける数個のエッジクラスタ112にわたってコンテンツをスライスする、および/または複数のユーザ要求を終了するためにポピュラーなコンテンツを利用できるようにキャッシュするように構成されている。
【0027】
上述のように、プロキシキャッシュ220−226は、
図2に示される論理網に沿った任意の位置にあってよい。例えば、プロキシキャッシュ220−226は、ISP106でインスタンス化され、ユーザのデバイス104からルータ204もしくは他の電気通信デバイスを介して、またはユーザのデバイスから直接、コンテンツ要求を受信してよい。別の実施形態において、プロキシキャッシュ220−226は、メトロIPネットワーク210内でインスタンス化されてよい。一般に、プロキシキャッシュ220−226は、ユーザのデバイスとエッジクラスタ212−218との間の任意の位置に論理的に位置してよい。
図2のネットワーク構成は、プロキシキャッシュ220−226を用いるネットワークの一例にすぎない。
【0028】
図2の論理ネットワーク構成またはアーキテクチャを念頭に置いて、
図3は、コンテンツを要求するユーザデバイスに提供するべく、スライシング機能を用いてエッジクラスタを決定するCDNのための方法を示すフローチャートである。一般に、
図3の複数の動作は、1または複数の命令の実行を介して、および/またはプロキシキャッシュ220−226の1または複数のハードウェアベースの回路を介して、ネットワークのプロキシキャッシュの1または複数により実行される。以下でより詳細に説明されるように、
図3の方法は、メトロネットワーク210のエッジクラスタ212−218によって格納されたコンテンツのコピー数を減らすことによって、CDN102の性能を改善する。そうすることにより、1つのピアキャッシュが、メトロネットワークに関連付けられた、またはそうでなければそれと通信するプロキシキャッシュ220−226の各々にコンテンツを提供してよい。
【0029】
動作302で開始して、CDN102を介して入手可能なコンテンツに対する要求が、第1のプロキシキャッシュで受信される。一例において、要求は、エンドユーザのデバイスからISP106で受信されてよく、CDN DNSデバイスによって提供されるIPアドレスに基づいてルータ202にルーティングされる。応答して、ルータ202は、次に、プロキシキャッシュによるさらなる処理のためにプロキシキャッシュ220の提供されたIPアドレスに関連付けられたネットワーク200のプロキシキャッシュに要求を送信してよい。
【0030】
一般に、メトロIPネットワーク210と通信する各エッジクラスタ212−218は、コンテンツを取得し、メトロIPネットワーク210で受信されたコンテンツに対する複数の要求を供給するように構成されている。しかしながら、特定のコンテンツファイルに対する要求が、複数のエッジクラスタ212−218によって供給されると、コンテンツの複数のコピーは、次に、そのコンテンツに対する複数の今後の要求のために、複数のエッジクラスタによって格納されてよい。よって、CDN102の効率および速さは、特定のエッジクラスタ212−218が、メトロIPネットワーク210で受信された各要求に対して要求されたコンテンツを提供するように選択される場合に改善し得る。そのように、動作304において、プロキシキャッシュ220は、コンテンツが要求に応答して提供されてよいエッジクラスタ212−218を決定するべく、ハッシュ値計算を実行する。一般に、プロキシキャッシュ220は、ハッシュ値を決定するべく任意の計算を実行してよい。特定の一実施形態において、プロキシキャッシュ220は、受信された要求を用い、繰返し可能なやり方でハッシュ値を計算してよい。そうすることにより、同一のハッシュ値が、特定のコンテンツファイルに対する各要求に戻される。例えば、プロキシキャッシュ220は、ハッシュ値を計算するべく、コンテンツに対する要求に含まれるユニフォームリソースロケータ(URL)アドレスを用いてよい。よって、要求に含まれるIPアドレスが要求されたコンテンツファイルに関連することから、同一のハッシュ値がコンテンツファイルに対する各要求のために計算されてもよい。要求の複数の他の態様が、クライアントデバイスの識別子(IPアドレス、ネットワーク識別等)等のハッシュ値、他のルーティング経路情報、コンテンツURLによって識別可能なコンテンツファイル名、ルータ識別子、CDNにコンテンツを提供するのに利用可能なサーバの数等を計算するのに用いられてよい。しかしながら、コンテンツファイルの複数のコピーがエッジクラスタ212−218内に格納されていないことを保証するべく、ハッシュ値計算は、繰返し可能であってよい。そうすることにより、その特定のコンテンツファイルに対する要求を受信する環境200における各プロキシキャッシュ220−226が、要求に応答して、同一または同様のハッシュ値を計算する。
【0031】
プロキシキャッシュ220−226の1または複数は、ハッシュ値またはある範囲のハッシュ値をメトロIPネットワーク210に関連付けられた利用可能なエッジクラスタ212−218に関連付けてよい。例えば、利用可能なエッジクラスタ212−218の各々には、プロキシキャッシュ220−226によってある範囲のハッシュ値が割り当てられてよい。よって、ハッシュ値の計算に応答して、プロキシキャッシュ220は、どのエッジクラスタ212−218がハッシュ値に関連付けられるかを決定してよく、要求されたコンテンツが読み出されるそのエッジクラスタを選択してよい。それでもさらに、ハッシュ値は、特定のエッジサーバまたは他のアップストリームコンテンツ提供デバイスに関連付けられてよく、そうすることにより、特定の記憶デバイスがハッシュ値計算を介して識別される。動作304においても、プロキシキャッシュ220は、ハッシュ値に基づいて、コンテンツに対する要求を選択されたエッジクラスタ212−218にルーティングする。上記の例を続けると、プロキシキャッシュ220によって計算されたハッシュ値は、コンテンツが複数の要求するクライアントに提供されるメトロIPネットワーク210のエッジクラスタとしてエッジクラスタC216を選択してよい。
【0032】
動作306において、プロキシキャッシュ220は、一度エッジクラスタがコンテンツを取得すると、エッジクラスタ216から要求されたコンテンツを受信する。一実施形態において、コンテンツはエッジクラスタ216によって格納される。そうすることにより、コンテンツを取得することは、ストレージからコンテンツを読み出すことを含む。別の実施形態において、コンテンツは、エッジクラスタ216で入手可能でなくてもよい。この実施形態において、エッジクラスタ216は、メディアアクセスサーバ(MAS)(例えば、コンテンツ配信サーバまたはコンテンツプロバイダネットワーク118のコンテンツ配信元サーバ116)等の別の送信元から、要求されたコンテンツを読み出してよい。コンテンツは、次に、要求に応答してプロキシキャッシュ220に提供される。さらに、コンテンツは、次に、コンテンツに対する要求に応答してメトロIPネットワーク210による今後の使用のためのMASからの読み出しの直後に、エッジクラスタ216で格納されてよい。コンテンツは、次に、プロキシキャッシュ220によって受信された要求に応答して、ISP106を介して戻りクライアントのデバイスに提供されてよい。以下で
図4に関して説明されるように、コンテンツは、また、そのコンテンツに対する複数の追加の要求に応答して素早い読み出しのためにプロキシキャッシュ220に格納されてもよい。
【0033】
ネットワーク200におけるプロキシキャッシュ220−226のそれぞれは、コンテンツに対する要求が受信されるとき、上記で記述されたような複数の同様の動作を実行してよい。例えば、動作308において、(プロキシキャッシュ226等の)第2のプロキシキャッシュが上述の同じコンテンツファイルに対する要求を関連するルータ208を介して受信してよい。この要求は、上述のように同じクライアントデバイスから受信されてもよく、または受信されなくてもよい。例えば、複数のポピュラーなコンテンツファイルが、ISP106に関連付けられた数個のクライアントデバイスによって要求されてもよい。プロキシキャッシュ226で要求を受信することに応答して、および上記と同様に、プロキシキャッシュは、動作310においてどのエッジクラスタ216でコンテンツが入手可能であるか決定するべくハッシュ値計算を実行してよい。しかしながら、上記でもまた述べられたように、および以下でより詳細に説明されるように、メトロIPネットワーク210に関連付けられたプロキシキャッシュは、1または複数のコンテンツファイルを格納してよい。よって、ハッシュ値を計算する前またはそれに加えて、プロキシキャッシュ226は、要求されたコンテンツが別のプロキシキャッシュ220−224で入手可能であるか、またはエッジクラスタ212−218の1または複数を介して入手可能であるか決定してよい。ネットワーク200の別のプロキシキャッシュ220−224からのコンテンツの読み出しは、
図4を参照して以下でより詳細に説明される。
【0034】
コンテンツが別のプロキシキャッシュ220−224から入手可能でない場合、プロキシキャッシュ226は、上記で説明されたようにハッシュ値を計算する。一実施形態において、ハッシュ値計算は、ネットワーク200における各プロキシキャッシュ220−226について同一または同様である。よって、ハッシュ値計算は、上記で説明されたハッシュ値計算と同様に、コンテンツがエッジクラスタC216を介して入手可能であるという指標を提供してよい。コンテンツに対する要求は、次に、選択されたエッジクラスタ216に送信されてよく、選択されたエッジクラスタ216は、同様に、コンテンツをプロキシキャッシュ226に提供してよい。動作312において、プロキシキャッシュ226は、エッジクラスタ(または、コンテンツがプロキシキャッシュレベルで格納されている場合は別のプロキシキャッシュ)からコンテンツ216を受信してよく、そのコンテンツを要求するユーザデバイスに提供してよい。
【0035】
上記の例において、プロキシキャッシュ220およびプロキシキャッシュ226の両方は、コンテンツがエッジクラスタ216からエンドユーザに提供されるように要求する。より具体的に、コンテンツに対する要求に基づいて同一のハッシュ値を計算することにより、プロキシキャッシュ220、226の両方は、コンテンツに対する要求を同じエッジクラスタ216に送信する。このように、1つのみのエッジクラスタ216(および潜在的にエッジクラスタ内の1つのみのエッジサーバ)が、コンテンツをエンドユーザに提供する。以前、コンテンツは、ネットワーク200のエッジクラスタ212−218のいずれかによってエンドユーザに提供されていたかもしれない。さらに、エッジクラスタ212−218の各々は、コンテンツプロバイダから取得されたコンテンツのコピーを格納するように構成されているので、コンテンツの複数のコピーは、ネットワーク200の複数のエッジクラスタに格納されてよい。しかしながら、同じエッジクラスタ216が、要求に応答してコンテンツを提供するべくプロキシキャッシュ220−226によって選択されると、ハッシュ値の使用を介して、コンテンツの1つのみのコピーが、エッジクラスタ212−218に格納される。そのように、コンテンツが提供されるエッジクラスタ選択を実行するプロキシキャッシュ220−226の使用は、コンテンツファイルの複数のコピーの格納の可能性を取り除くことによって、メトロネットワーク200における複数の構成要素の全体的な効率を増やす。
【0036】
CDNの全体的な効率および速さは、プロキシキャッシュ220−226の1または複数において(最も要求されたコンテンツファイル等の)最もポピュラーなコンテンツファイルの1または複数を格納することによってさらに改善され得る。
図4は、コンテンツを要求するユーザデバイスに提供するべくプロキシキャッシュデバイスを用いるCDNのための方法を示すフローチャートである。一般に、
図4の動作は、1または複数の命令の実行を介して、および/またはプロキシキャッシュの1または複数のハードウェアベースの回路を介して、ネットワークのプロキシキャッシュ220−226の1または複数により実行される。
図4の方法の動作は、1または複数のコンテンツファイルを、要求するユーザデバイスに論理的により近く維持し、コンテンツファイルが要求するデバイスに提供される速さを増加させる。
【0037】
一般に、動作402−406は、
図3の動作302−306を参照して上記で説明された複数の動作と同じである。よって、(プロキシキャッシュ220等の)プロキシキャッシュは、動作402においてコンテンツに対する要求を受信する。プロキシキャッシュ220は、次に、ハッシュ値計算を実行し、コンテンツが取得される(エッジクラスタ216等の)エッジクラスタを決定して動作404において要求を選択されたエッジクラスタにルーティングする。動作406において、プロキシキャッシュ220は、選択されたエッジクラスタからコンテンツを受信し、要求するエンドユーザにコンテンツを提供する。
【0038】
動作408において、プロキシキャッシュ220は、受信されたコンテンツファイルはポピュラーなファイルであるか判断し、コンテンツファイルがポピュラーである場合、コンテンツファイルをローカルストレージに格納する。一般に、プロキシキャッシュ220は、受信されたコンテンツファイルが、ポピュラーであるか決定するのにいずれの測定基準を用いてもよい。一例において、プロキシキャッシュ220は、プロキシキャッシュで受信される各要求の現在までの合計を維持してよい。プロキシキャッシュ220で受信されるコンテンツファイルに対する要求の数が、複数の要求の閾値に等しいか、またはそれを超える場合、プロキシキャッシュは、コンテンツファイルがポピュラーなファイルであると判断し、そのファイルをローカルストレージに格納してよい。別の例において、プロキシキャッシュ220は、複数のソフトウェアパッチまたはテキストベースのコンテンツファイル等、特定のタイプの複数のコンテンツファイルをローカルに格納するように構成されてよい。よって、エッジクラスタ216から受信されたコンテンツファイルが、プロキシキャッシュ構成において示されたコンテンツファイルのタイプである場合、コンテンツファイルは、ローカルストレージに格納されてよい。さらに別の例において、CDN200は、CDNがプロキシキャッシュ220−226のそれぞれに対してポピュラーであるとみなされたコンテンツファイルのリストを提供してよい。この例において、プロキシキャッシュ220がポピュラーなコンテンツファイルのリストに適合するコンテンツファイルを受信する場合、コンテンツファイルは、プロキシキャッシュによってローカルストレージに格納される。
【0039】
受信されたコンテンツファイルの需要を決定するのに用いられる測定基準に関わらず、コンテンツファイルは、プロキシキャッシュ220によって格納されてよく、ネットワーク200を介して受信される複数の今後の要求についてプロキシキャッシュから入手可能にされてよい。よって、動作410において、プロキシキャッシュ220は、ネットワーク200のエンドユーザからコンテンツファイルに対する追加の要求を受信してよい。プロキシキャッシュ220は、応答して、ローカルに格納されているコンテンツファイルとして要求されたコンテンツファイルを識別してよく、コンテンツファイルをローカルストレージからエンドユーザに提供してよい。理解されるべきであるように、プロキシキャッシュ220−226にポピュラーなコンテンツファイルを格納することによって、コンテンツファイルは、コンテンツファイルがエッジクラスタ212−218またはコンテンツプロバイダネットワークから要求される場合よりも速くエンドユーザに提供されてよい。よって、プロキシキャッシュ層でポピュラーなコンテンツファイルを格納することによって、ネットワーク200は、エッジクラスタ層からコンテンツを提供する以前の複数のネットワーク構成よりも速くコンテンツファイルをエンドユーザに提供する。
【0040】
加えて、(プロキシキャッシュ220等の)プロキシキャッシュで格納されたコンテンツファイルは、ネットワーク200における他のプロキシキャッシュ222−226に入手可能にされてよい。
図3の方法を参照して上記で説明されたように、プロキシキャッシュは、要求されたコンテンツファイルが、ネットワーク200のプロキシキャッシュレベル220−226、またはエッジクラスタレベル212−218で(または、さらにコンテンツプロバイダネットワークに対してアップストリームでも)格納されているか決定するように構成されてよい。コンテンツがネットワーク200第1のプロキシキャッシュ220で格納されている場合、コンテンツファイルに対する要求を受信する(プロキシキャッシュ226等の)第2のプロキシキャッシュが、コンテンツファイルをローカルに格納した第1のプロキシキャッシュ220にその要求を送信してよい。一実施形態において、ローカルに格納されたコンテンツファイルを有する第1のプロキシキャッシュ220は、次に、コンテンツファイルをエンドユーザに提供してよい。別の実施形態において、コンテンツファイルは、送信された要求を受信したことに応答して、第1のプロキシキャッシュ220によって第2のプロキシキャッシュ226に提供されてよい。この実施形態において、コンテンツファイルは、次に、そのコンテンツファイルが第2のプロキシキャッシュに関連付けられた需要測定基準に適合する場合、第2のプロキシキャッシュ226によってエンドユーザに提供されてよく、第2のプロキシキャッシュによってローカルに格納されてよい。このように、ネットワーク200のプロキシキャッシュレベル220−226に格納されたコンテンツファイルは、エンドユーザに提供されてよい。
【0041】
上記のシナリオにおいて、第2のプロキシキャッシュ226は、ネットワーク200の他のプロキシキャッシュ220−224によってローカルに格納されたコンテンツファイルについて認識させられてよい。一実施形態において、格納されたファイルの識別およびプロキシキャッシュの格納の識別を含む、格納されたファイルのフラグまたは他の指標は、コンテンツファイルがプロキシキャッシュによってローカルに格納されている場合、ネットワーク200のプロキシキャッシュ220−226に送信されてよく、それによって格納されてよい。コンテンツファイルに対する要求を受信するプロキシキャッシュは、次に、コンテンツファイルがどこで格納されてよく、入手可能にされてよいか決定するべく、格納された複数のコンテンツファイルのリストを確認してよい。プロキシキャッシュデバイスがどのように、コンテンツファイルがネットワーク200のプロキシキャッシュレベル220−226から入手可能であることを判断するかに関わらず、コンテンツファイルは、プロキシキャッシュレベルから取得されてよく、および/またはエンドユーザに提供されてよく、これにより、コンテンツがエンドユーザに提供される速さを増加させる。
【0042】
図5は、上記で開示されたネットワークの構成要素の複数の実施形態を実装するときに用いられてよいコンピューティングデバイスまたはコンピュータシステム500の例を示すブロック図である。例えば、
図5のコンピューティングシステム500は、上記で説明されたルータまたはプロキシキャッシュを実装するのに用いられてよい。コンピュータシステム(システム)は、1または複数のプロセッサ502−506を含む。プロセッサ502−506は、プロセッサバス512とのインタラクションを管理するべく、1または複数の内部レベルのキャッシュ(不図示)およびバスコントローラまたはバスインタフェースユニットを含んでよい。ホストバスまたはフロントサイドバスとしてもまた知られているプロセッサバス512は、プロセッサ502−506をシステムインタフェース514と結合させるのに用いられてよい。システムインタフェース514は、システム500の複数の他の構成要素をプロセッサバス512とインタフェース接続するべく、プロセッサバス512に接続されてよい。例えば、システムインタフェース514は、メインメモリ516をプロセッサバス512とインタフェース接続するためのメモリコントローラ514を含んでよい。メインメモリ516は、典型的には、1または複数のメモリカードおよび制御回路(不図示)を含む。システムインタフェース514は、また、1または複数のI/OブリッジまたはI/Oデバイスをプロセッサバス512とインタフェース接続する入出力(I/O)インタフェース520も含んでよい。1または複数のI/Oコントローラおよび/またはI/Oデバイスは、示されるように、I/Oコントローラ528およびI/Oデバイス540等のI/Oバス526に接続されてよい。
【0043】
I/Oデバイス540は、また、情報および/または複数のコマンド選択をプロセッサ502−506に通信するための英数字および他の複数のキーを含む、英数字入力デバイス等の入力デバイス(不図示)も含んでよい。別のタイプのユーザ入力デバイスは、マウス、トラックボール、もしくは方向情報および複数のコマンド選択をプロセッサ502−506に通信し、かつ表示デバイスにおけるカーソル動作を制御するための複数のカーソル方向キー等のカーソル制御を含む。
【0044】
システム500は、メインメモリ516と呼ばれる動的記憶デバイス、またはランダムアクセスメモリ(RAM)または情報とプロセッサ502−506によって実行されることになる複数の命令とを格納するためにプロセッサバス512に結合された他の複数のコンピュータ可読デバイスを含んでよい。メインメモリ516は、また、プロセッサ502−506による複数の命令の実行中、一時的変数または他の中間情報を格納するために用いられてもよい。システム500は、リードオンリーメモリ(ROM)および/またはプロセッサ502−506についての静的情報および複数の命令を格納するためのプロセッサバス512に結合された他の静的記憶デバイスを含んでよい。
図5で説明されたシステムは、本開示の複数の態様に従って使用し得るまたは構成され得るコンピュータシステムの1つの可能な例にすぎない。
【0045】
一実施形態に従って、上記の複数の技術は、メインメモリ516に含まれる1または複数の命令の1または複数のシーケンスを実行するプロセッサ504に応答して、コンピュータシステム500によって実行されてよい。これらの命令は、記憶デバイス等の別の機械可読媒体からメインメモリ516へと読み込まれてよい。メインメモリ516に含まれる複数の命令の複数のシーケンスの実行により、プロセッサ502−506が本明細書で記述される複数の処理ステップを実行させられてよい。複数の代替的な実施形態において、電気回路が複数のソフトウェア命令の代わりに、またはそれらと組み合わせて用いられてよい。よって、本開示の複数の実施形態は、ハードウェアおよびソフトウェア構成要素の両方を含んでよい。
【0046】
機械可読媒体は、機械(例えば、コンピュータ)によって可読な形態(例えば、ソフトウェア、処理アプリケーション)で情報を格納もしくは送信するための任意の機構を含む。そのような複数の媒体は、限定されないが、不揮発性媒体および揮発性媒体の形を取ってよい。複数の不揮発性媒体は、光学もしくは磁気ディスクを含む。複数の揮発性媒体は、メインメモリ516等の動的メモリを含む。機械可読媒体の一般的な形態は、限定されないが、磁気格納媒体(例えば、フロッピー(登録商標)ディスケット)、光学記憶媒体(例えば、CD‐ROM)、磁気光学記憶媒体、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能メモリ(例えば、EPROMおよびEEPROM)、フラッシュメモリ、または複数の電子命令を格納するために適した他の複数のタイプの媒体を含んでよい。
【0047】
本開示の複数の実施形態は、本明細書において記述される様々なステップを含む。複数のステップは、複数のハードウェアコンポーネントによって実行されてよく、または機械で実行可能な複数の命令において具現化されてよく、それらは、複数の命令でプログラムされた汎用もしくは専用プロセッサに複数のステップを実行させるのに用いられてよい。代替として、複数のステップは、ハードウェア、ソフトウェアおよび/またはファームウェアの組み合わせによって実行されてもよい。
【0048】
本発明の範囲から逸脱することなく、様々な修正および追加が、説明された複数の例示的な実施形態に対してなされ得る。例えば、上述の複数の実施形態は複数の特定の特徴を指す一方、本発明の範囲は、また、記述された全ての特徴を含まない複数の特徴および実施形態の複数の異なる組み合わせを有する複数の実施形態も含む。従って、本発明の範囲は、全てのそのような代替的修正および変形をそれらの全ての均等物と合わせて包含することを目的としている。
[項目1]
コンテンツデリバリネットワークであって、
電気通信ネットワークと通信するプロキシキャッシュデバイスであって、上記電気通信ネットワークは、アクセスネットワークに接続されたユーザデバイスからコンテンツファイルに対する要求を上記プロキシキャッシュデバイスに送信する、上記プロキシキャッシュデバイスと、
ローカルネットワークを介して上記プロキシキャッシュデバイスと通信する複数のエッジサーバであって、上記複数のエッジサーバのそれぞれは、上記コンテンツファイルに対する上記要求を受信することに応答して、上記コンテンツファイルを取得する、上記複数のエッジサーバと、を備え、
上記プロキシキャッシュデバイスは、さらに、上記コンテンツファイルに対する上記要求に少なくとも基づいてハッシュ値を計算し、上記計算されたハッシュ値に少なくとも基づいて上記複数のエッジサーバから第1のエッジサーバを選択し、上記コンテンツファイルに対する上記要求を上記選択されたエッジサーバに送信する、
コンテンツデリバリネットワーク。
[項目2]
上記第1のエッジサーバは、さらに、上記コンテンツファイルに対する上記要求に応答して、上記コンテンツファイルを上記プロキシキャッシュデバイスに提供し、上記プロキシキャッシュデバイスは、さらに、上記コンテンツファイルを上記アクセスネットワークに提供する、項目1に記載のコンテンツデリバリネットワーク。
[項目3]
上記プロキシキャッシュデバイスは、さらに、上記コンテンツファイルをローカルストレージに格納する、項目1または2に記載のコンテンツデリバリネットワーク。
[項目4]
上記プロキシキャッシュは、さらに、上記コンテンツファイルに対する第2の要求に応答して、上記ローカルストレージからの上記コンテンツファイルを上記アクセスネットワークに提供する、項目3に記載のコンテンツデリバリネットワーク。
[項目5]
上記コンテンツファイルに対する上記要求は、上記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、上記ハッシュ値は、少なくとも上記ユニフォームリソースロケータに基づいて計算される、項目1から4のいずれか一項に記載のコンテンツデリバリネットワーク。
[項目6]
上記ハッシュ値の上記計算は、上記プロキシキャッシュデバイスで受信された上記コンテンツファイルに対する追加の要求のために繰返し可能である、項目5に記載のコンテンツデリバリネットワーク。
[項目7]
上記第1のエッジサーバは、コンテンツプロバイダネットワークと通信し、さらに、上記コンテンツプロバイダネットワークから上記コンテンツファイルを取得し、上記コンテンツファイルを格納する、項目1から6のいずれか一項に記載のコンテンツデリバリネットワーク。
[項目8]
コンテンツデリバリネットワークを動作させるための方法であって、
電気通信ネットワークを介して第1のプロキシキャッシュデバイスでコンテンツファイルに対する第1の要求を受信する段階であって、上記電気通信ネットワークは、上記電気通信ネットワークに接続されたユーザデバイスから上記コンテンツファイルに対する上記第1の要求を送信する、段階と、
上記コンテンツファイルに対する上記第1の要求に少なくとも基づいて、第1のハッシュ値を計算する段階と、
上記計算された第1のハッシュ値に少なくとも基づいて、複数のエッジサーバから第1のエッジサーバを選択する段階であって、上記複数のエッジサーバは、ローカルネットワークを介して上記第1のプロキシキャッシュデバイスと通信し、上記コンテンツファイルに対する上記第1の要求を受信することに応答して、上記コンテンツファイルを取得する、段階と、
上記コンテンツファイルに対する上記第1の要求を上記選択されたエッジサーバに送信する段階と、
を備える、方法。
[項目9]
上記コンテンツファイルに対して上記送信された要求に少なくとも応答して、上記選択されたエッジサーバから上記第1のプロキシキャッシュで上記コンテンツファイルを受信する段階と、
上記コンテンツファイルを上記ユーザデバイスに提供する段階と、
をさらに備える、項目8に記載の方法。
[項目10]
上記第1のプロキシキャッシュデバイスと通信するローカルストレージに上記コンテンツファイルを格納する段階をさらに備える、項目9に記載の方法。
[項目11]
上記コンテンツファイルに対する第2の要求を第2のプロキシキャッシュデバイスで受信する段階と、
上記コンテンツファイルに対する上記第2の要求に少なくとも基づいて第2のハッシュ値を計算する段階と、
計算された上記第2のハッシュ値に少なくとも基づいて上記複数のエッジサーバから上記第1のエッジサーバを選択する段階と、
上記コンテンツファイルに対する上記第2の要求を上記選択されたエッジサーバに送信する段階と、をさらに備える、項目10に記載の方法。
[項目12]
上記コンテンツファイルに対する上記第1の要求および上記コンテンツファイルに対する上記第2の要求は、上記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、上記第1のハッシュ値および上記第2のハッシュ値は、少なくとも上記ユニフォームリソースロケータに基づいて計算される、項目11に記載の方法。
[項目13]
上記第1のハッシュ値および上記第2のハッシュ値は同一である、項目12に記載の方法。
[項目14]
上記コンテンツファイルに対する第3の要求を上記第2のプロキシキャッシュデバイスで受信する段階と、
上記コンテンツファイルが上記第1のプロキシキャッシュと通信する上記ローカルストレージに格納されているという判断に少なくとも基づいて、上記コンテンツファイルに対する上記第3の要求を上記第1のプロキシキャッシュデバイスに送信する段階と、
をさらに備える、項目11に記載の方法。
[項目15]
上記コンテンツファイルを上記第1のプロキシキャッシュデバイスと通信するローカルストレージに格納する前に、上記コンテンツファイルに関連付けられた需要識別子を確認する段階をさらに備える、項目10に記載の方法。
[項目16]
上記コンテンツファイルの上記需要識別子を確認する段階は、
上記第1のプロキシキャッシュで受信された上記コンテンツファイルに対する複数の要求の合計のカウント数を閾値と比較する段階と、
上記コンテンツファイルに対する複数の要求の合計の上記カウント数が、上記閾値に等しい、もしくはそれを超える場合、上記コンテンツファイルに関連付けられた上記需要識別子を設定する段階と、
を含む、項目15に記載の方法。
[項目17]
上記コンテンツファイルの上記需要識別子を確認する段階は、
上記コンテンツファイルの需要指標をネットワーク構成デバイスから受信する段階と、
上記コンテンツファイルの受信された上記需要指標を、上記第1のプロキシキャッシュデバイスにおける複数の受信されたコンテンツファイルとの比較のために記憶デバイスに格納する段階と、
を含む、項目15に記載の方法。
[項目18]
電気通信ネットワークを介してコンテンツファイルを提供するための方法であって、
第1のプロキシキャッシュデバイスにおけるコンテンツファイルに対する第1の要求を、上記電気通信ネットワークと通信する複数のエンドユーザデバイスのうち第1のエンドユーザデバイスから受信する段階と、
上記コンテンツファイルに対する上記第1の要求に少なくとも基づいて、第1のハッシュ値を計算する段階と、
計算された上記第1のハッシュ値に少なくとも基づいて、複数のエッジサーバから第1のエッジサーバを選択する段階であって、上記複数のエッジサーバは、上記コンテンツファイルに対する上記第1の要求を受信する段階に応答して、上記コンテンツファイルを取得する、段階と、
上記コンテンツファイルに対する上記第1の要求を上記選択されたエッジサーバに送信する段階と、
上記コンテンツファイルに対する第2の要求を第2のプロキシキャッシュデバイスで上記電気通信ネットワークと通信する上記複数のエンドユーザデバイスの第2のエンドユーザデバイスから受信する段階と、
上記コンテンツファイルに対する上記第2の要求に少なくとも基づいて、第2のハッシュ値を計算する段階と、
計算された上記第2のハッシュ値に少なくとも基づいて上記複数のエッジサーバから上記第1のエッジサーバを選択する段階と、
上記コンテンツファイルに対する上記第2の要求を上記選択されたエッジサーバに送信する段階と、
を備える、方法。
[項目19]
上記コンテンツファイルに対する上記第1の要求および上記コンテンツファイルに対する上記第2の要求は、上記コンテンツファイルに関連付けられたユニフォームリソースロケータを含み、上記第1のハッシュ値および上記第2のハッシュ値は、少なくとも上記ユニフォームリソースロケータに基づいて計算される、項目18に記載の方法。
[項目20]
上記第1のハッシュ値および上記第2のハッシュ値は同一である、項目19に記載の方法。