(57)【要約】      （修正有）【課題】ネットワーク障害を引き起こすリスクなく、ロードバランサに依存することなく、全ての既存の加入者クライアントに対して透過型キャッシングを提供する。【解決手段】コンテンツ要求が、クライアント４からオリジンサーバ３０３へ送信され３１、透過型キャッシュサーバ３０１へミラーリングする３２２。透過型キャッシュサーバが、コンテンツを配信すること３３を決定した場合、オリジンサーバとクライアントと間に設定されるコンテンツ配信セッションをオリジンサーバから引き継ぐ。キャッシュ障害により透過型キャッシュサーバが配信を行わない、または、オリジンサーバがまだ接断されず、透過型キャッシュサーバがコンテンツを配信しない場合、コンテンツ配信セッションは、オリジンサーバとクライアントとの間で続行する３４。【選択図】図３
2017216011.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークにおけるコンテンツキャッシングおよび配信のための方法であって、
ＩＰネットワークにおいてクライアント（４）から受信されたコンテンツの要求を少なくとも１つの透過型キャッシュサーバ（３０１）へミラーリングすること（３２２）と、
要求されたコンテンツがクライアント（４）へ、選択されたキャッシュサーバから配信されるか、または、ＩＰネットワークを介してクライアント（４）に接続され、ＩＰネットワークが受信された要求をルーティングする、オリジンサーバ（３０３）から配信されるかを決定することと
を備える、方法。
【請求項２】
要求されたコンテンツがクライアント（４）へ配信されるかを決定するステップが、透過型キャッシュサーバ（３０１）により実施される、請求項１に記載のコンテンツキャッシングおよび配信のための方法。
【請求項３】
透過型キャッシュサーバ（３０１）が、選択されたキャッシュサーバから要求されたコンテンツを配信すること（３３）を決定する、請求項２に記載のコンテンツキャッシングおよび配信のための方法。
【請求項４】
選択されたキャッシュサーバが透過型キャッシュサーバ（３０１）である、請求項３に記載のコンテンツキャッシングおよび配信のための方法。
【請求項５】
透過型キャッシュサーバ（３０１）がオリジンサーバ（３０３）の切断をトリガすることをさらに備える、請求項２から４のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項６】
透過型キャッシュサーバ（３０１）が、クライアント（４）およびオリジンサーバ（３０３）の間に設定されるコンテンツ配信セッションの制御を引き継ぐことをさらに備える、請求項３から５のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項７】
コンテンツ配信セッションの制御を引き継ぐことが、ＩＰネットワークのアプリケーション層で行われる、請求項６に記載のコンテンツキャッシングおよび配信のための方法。
【請求項８】
コンテンツ配信セッションの制御を引き継ぐことが、ＩＰネットワークのトランスポート層またはネットワーク層で行われる、請求項６に記載のコンテンツキャッシングおよび配信のための方法。
【請求項９】
受信された要求をミラーリングすること（３２２）が、ＩＰネットワークのルータ（３０２）により行われ、ルータ（３０２）には、透過型キャッシングにおいてコンテンツをミラーリングするためのポートミラーが設けられる、請求項１から８のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項１０】
ＩＰネットワークにおいてクライアント（４）から受信されたコンテンツの要求のミラーを取得するための手段と、
要求されたコンテンツがクライアント（４）へ、選択されたキャッシュサーバから配信されるか、または、ＩＰネットワークを介してクライアント（４）に接続され、ＩＰネットワークが受信された要求をルーティングする、オリジンサーバ（３０３）から配信されるかを決定するための手段と
を備える、コンテンツキャッシングおよび配信のための透過型キャッシュサーバ（３０１）。
【請求項１１】
透過型キャッシュサーバ（３０１）が、透過型キャッシュサーバ（３０１）または他のキャッシュサーバから要求されたコンテンツを配信すること（３３）を決定する、請求項１０に記載のコンテンツキャッシングおよび配信のための透過型キャッシュサーバ（３０１）。
【請求項１２】
クライアント（４）に対してオリジンサーバ（３０３）の切断をトリガするための手段をさらに備える、請求項１１に記載のコンテンツキャッシングおよび配信のための透過型キャッシュサーバ（３０１）。
【請求項１３】
アプリケーション層、トランスポート層およびネットワーク層から選択されたＩＰネットワークの層から、クライアント（４）およびオリジンサーバ（３０３）の間に設定されるコンテンツ配信セッションの制御を引き継ぐための手段をさらに備える、請求項１１または１２に記載のコンテンツキャッシングおよび配信のための透過型キャッシュサーバ（３０１）。
【請求項１４】
プログラムがコンピュータ上で実行されたときに、請求項１から９のいずれか一項に記載の方法を実施するためのコンピュータ実行可能な命令を備える、コンピュータプログラム製品。
【請求項１５】
請求項１から９のいずれか一項に記載の方法を実施するための機械実行可能な命令のプログラムを符号化する、デジタルデータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークに関し、より詳細には、コンテンツデリバリーネットワーク（ＣＤＮ）サービスを含むインターネットプロトコル（ＩＰ）ネットワークにおけるマルチメディアコンテンツ（たとえば、テキスト、音声、映像、ソフトウェアなど、およびそれらの任意の組合せ）のキャッシングおよび配信に関する。
【背景技術】
【０００２】
ウェブキャッシングまたはコンテンツキャッシングは、最も人気の（ウェブ）コンテンツ（オーバーザトップコンテンツまたはＯＴＴコンテンツとしても知られている）は、ウェブ上の元のコンテンツの場所であるオリジンサーバではなく、サービスプロバイダネットワークに格納されそこから配信されることを意味する。サービスプロバイダおよびネットワーク事業者は、ピアリングリンク上の帯域幅を削減し、加入者にとっての体感品質（ＱｏＥ：Ｑｕａｌｉｔｙ  ｏｆ  Ｅｘｐｅｒｉｅｎｃｅ）を向上するために、キャッシングを広く配備した。コンテンツキャッシングは通常、コンテンツ所有者およびネットワーク事業者間の取引関係を要する。コンテンツ所有者はコンテンツをネットワーク事業者に提供し、ネットワーク事業者はコンテンツをキャッシュし、自身のコンテンツデリバリーネットワーク（ＣＤＮ）から加入者へ配信する。
【０００３】
コンテンツデリバリーネットワークまたはコンテンツディストリビューションネットワーク（ＣＤＮ）は、ネットワークの様々なノードに配置されるデータのコピーを含むコンピュータのシステムであり、より具体的には、ＣＤＮは、コンテンツをより効率的にユーザに配信するために複数の場所に分散されたウェブキャッシュの集まりである。ＣＤＮは、上手く設計され実装された場合、エンドユーザのより近くへ多数のコピーを配置することで、キャッシュしたデータへのアクセスを改善することが可能であり、データへのアクセス帯域幅の増加、より良いスケーリング、回復力、および待ち時間の削減をもたらす。オリジン（ウェブ）サーバは多くの場合、最初のコンテンツのコピーを含み、コンテンツ要求を処理する場合に、コンテンツヘッダーおよびキャッシングヘッダーなどのコンテンツ固有の応答を生成するためのコンテンツメタデータにアクセスできる。ウェブキャッシュはコンテンツ固有の応答を生成するためのコンテンツメタデータにアクセスできないので、代わりに、オリジンウェブサーバからのコンテンツ応答およびコンテンツをキャッシュする。ＣＤＮにしばしばキャッシュされるデータまたはメディアコンテンツの種類は、マルチメディアオブジェクト（音声および映像オブジェクト）、ウェブオブジェクト（テキスト、グラフィック、ＵＲＬおよびスクリプト）、ダウンロード可能オブジェクト（メディアファイル、ソフトウェア、ドキュメント）、アプリケーション、ライブメディア（イベント）、およびデータベースクエリを含む。ウェブキャッシングは概念的には単純であるが（最も人気のインターネットコンテンツを格納し、事業者ネットワークから配信し、常に遠隔のコンテンツソースから取り出さない）、サービス、コンテンツおよびネットワークの整合性を保証するように行われなければならない。
【０００４】
ネット上のＣＤＮを配備する際に、サービスプロバイダは、多数の異なるオンラインソースからプレミアムコンテンツを視聴する、増加する消費者人口に対してサービスを提供することを目標にしている。しかしながら、サービスプロバイダは通常、全てのオンラインコンテンツプロバイダと取引関係を有するわけではないので、一部のコンテンツは、最初は、コンテンツ所有者によりＣＤＮを介した配信のためにネットワーク事業者に提供されない。ほとんどのネットワーク事業者は、コンテンツが最初はコンテンツ所有者により提供されなくとも、伝送コストを減らし、ＱｏＥを向上し、オンラインコンテンツに対するトラフィックの急増を管理する必要がある。透過型キャッシングは、これらの課題に取り組む新しいキャッシング技術である。これらの解決方法により、サービスプロバイダは、オーバーザトップ（ＯＴＴ）コンテンツをキャッシュし、自身のネットワーク内から配信することが可能になる。透過型キャッシングはＣＤＮの１つの用途（応用）と見なされ得、他の用途（たとえば、マルチスクリーンビデオ配信、Ｂ２Ｂ顧客用のマルチテナントＣＤＮ、ＣＤＮ援用ビデオオンデマンド、．．．）と何ら変わりはない。コンテンツデリバリーネットワークおよび透過型キャッシングシステムの両方は、事業者のネットワークエッジでコンテンツをキャッシュする。全ネットワーク事業者半数以上は、２０１４年までに透過型キャッシングおよびＣＤＮを配備するよう期待されている。
【０００５】
「透過型キャッシング」という用語は、コンテンツ所有者の関与なしに、大抵知らずに、コンテンツがキャッシュされ配信されることを指す。多くの場合、透過型キャッシングは：
−  常に新鮮なコンテンツを配信し、
−  エンドツーエンドアプリケーションロジックを維持して、ユーザ認証、ジオコントロールおよびデバイス固有のコンテンツなどの領域における完全な機能性を保証し、
−  著作権法の完全な遵守を可能とし、
−  事業者ネットワークに対してセキュリティ侵害をもたらし得る追加のアクセスポイントを導入せず、
−  コンテンツのオリジネータおよびエンドユーザの両方に対して不可視である、
キャッシングを指す。
【０００６】
透過型キャッシングにより、コンテンツは事業者ネットワークのエッジに格納されそこから供給されて、コアおよびＩＰトランジットネットワークリソースを節約し、加入者への配信を加速する。透過型キャッシングは、人気のウェブ（インターネット）コンテンツを自動的にインターセプトし、ネットワークと、オリジンウェブ位置へのピアリングポイントとをトランジットする代わりに、キャッシュからコンテンツ要求を処理する。トランジット帯域幅の需要を低下させ遅延を最小化することで、ネットワーク事業者は、特にピーク期間中により良いＱｏＥを提供し、ピアリングコストを削減し得る。
【０００７】
この種類のキャッシングはコンテンツ所有者にとって「透過」または「不可視」であるので、ネットワーク事業者は、コンテンツ所有者との取引関係がなんらかの理由で可能でない場合に、従来のキャッシングの利益を享受することができる。透過型キャッシングは、従来のキャッシングの上述の特徴、たとえば、加入者に近い場所からコンテンツを配信すること、コンテンツの「鮮度」を維持すること、地理的制限のようなエンドツーエンドのビジネスルールとアプリケーションロジックを維持すること、およびコンテンツのセキュリティを保証することを有する。
【０００８】
透過型キャッシュの最良の知られている従来技術の解決方法は、「データパス」ベースで配備され、図１に示される：コンテンツに対する各クライアント要求はキャッシュにルーティングされ、キャッシュは要求を処理するか、またはコンテンツオリジンサーバへ渡す。この種の既存の解決方法は、透過型キャッシュをデータパス上にたとえばポリシーベースルーティング（ＰＢＲ）を用いて配備することに基づくものであり、以下に説明するいくつかの欠点を有する。明らかに、これらの手法により、任意のキャッシュ障害はネットワーク障害をもたらす。ロードバランサが、ネットワーク障害から保護するために透過型キャッシュの前で少なくともＮ＋１の冗長度で用いられ得るが、これにより、解決方法全体が高価になり、透過型キャッシュが、下位のネットワークトポロジに密接にオーバーレイすること、たとえば透過型キャッシュを交換機（ｅｘｃｈａｎｇｅ）のようなネットワーク位置の奥深くに配備することが妨げられる。単一の透過型キャッシュが全ての交換機ユーザにサービス可能だとしても、予備のロードバランサおよび予備のキャッシュが、キャッシュ障害の場合のネットワーク障害を防ぐために必要になり、複雑性とコストが増加する。
【０００９】
透過型キャッシュをデータパス上に配備することに基づく従来技術の解決方法のいくつかの欠点が存在し、以下のように要約され得る：
−  クライアント要求をインターセプトし処理するステップ（３ａ、３ｂ）における透過型キャッシュ障害（図１）は、ネットワーク障害を引き起こす：キャッシュ障害が意味するのは、クライアント要求が、キャッシュから処理（３ａ）できず、他のキャッシュにリダイレクトできずまたはオリジンサーバ（７）に渡せず、したがって加入者クライアントがタイムアウトすることである。
−  当業者はロードバランサを透過型キャッシュ（複数可）の前にＮ＋１の冗長度で配備することが可能であるが、ロードバランサおよび透過型キャッシュ（複数可）をホストする集中化された場所を必要とするので、この強化により解決方法が高価になる。
−  ハイパーテキスト転送プロトコル（ＨＴＴＰ）リダイレクトを併用したロードバランサ手法は、たとえばＨＴＴＰ３０２メッセージを用いるオフドメインリダイレクトをサポートするクライアントのみに有効である。Ｘｂｏｘを含む一部の知られているクライアントは、オフドメインリダイレクトを許可しない。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｖｅｒｉｖｕｅ．ｃｏｍ／ｐｒｏｄｕｃｔｓ−ｃａｒｒｉｅｒ−ｃｄｎ−ｔｒａｎｓｐａｒｅｎｔ−ｃａｃｈｅ．ａｓｐ
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、ネットワーク障害を引き起こすリスクなく、ロードバランサに依存することなく、全ての既存の加入者クライアントに対して透過型キャッシングを可能にする必要がある。
【課題を解決するための手段】
【００１２】
「データパス上（ｏｎ−ｔｈｅ−ｄａｔａ  ｐａｔｈ）」ベースの透過型キャッシングの上述の全ての欠点を克服する透過型キャッシングのための強化された解決方法への目下の必要性を踏まえて、本明細書で提案される「パス外（ｏｕｔ−ｏｆ−ｐａｔｈ）」ベースの様々な例示の実施形態の概要を提示する。
【００１３】
いくつかの簡略化および省略が以下の概要においてなされることがあり、概要は、様々な例示の実施形態の一部の態様を強調し紹介するものであって、その範囲を限定するものではない。当業者が本発明の概念を実施し使用できるようにするのに十分な好ましい例示の実施形態の詳細な説明が、以降の節に続く。
【００１４】
本発明は、Ｘｂｏｘなどの全ての知られている加入者クライアントによく適しており、クライアントの修正を必要としない。
【００１５】
本発明は、インターネットおよびオンラインＣＤＮに適用可能である。
【００１６】
本発明は、透過型キャッシュが障害をおこした場合にネットワーク障害を引き起こすリスクなしで、ネットワーク位置の奥深くへの単一の透過型キャッシュの配備を可能とする、透過型キャッシングのための「パス外」の方法／システムを提案する。
【００１７】
本発明の実施形態では、「パス外」の提案は、コンテンツトラフィックのミラーリングを用いて、コンテンツトラフィックを複製（ミラーリング）し、透過型キャッシュへトラフィックのコピーを送信する。例示の実施形態では、コンテンツトラフィックのミラーリングは、たとえば、アルカテル−ルーセント７７５０サービスルータ（ＳＲ）、他のボーダーネットワークゲートウェイ（ＢＮＧ）により提供されるポートミラー機能を用いる、あるいは代替的にネットワークタップを用いるなど、多数の方法で実施され得る。７７５０ＳＲポートミラーリングは、透過型キャッシングのためにトラフィックを複製する最もコスト効率の良い方法である。
【００１８】
本発明の態様によれば、
−  クライアントからＣＤＮ等のＩＰネットワークへのマルチメディアコンテンツの要求が受信され、
−  受信された要求が、ＩＰネットワークから、たとえばＩＰサービスルータを介して、オリジンサーバへルーティングされる、
マルチメディアコンテンツ配信のための透過型キャッシングの方法が提供され、方法は以下のステップ：
−  受信された要求を透過型キャッシュサーバにミラーリングすることと、
−  コンテンツ配信時に、透過型キャッシュサーバまたは他のキャッシュがコンテンツを配信するか否かを決定することと
を備える。
【００１９】
本発明の可能な実施形態では、決定がコンテンツを透過型キャッシュまたは他のＣＤＮの位置から配信することである場合、方法は、透過型キャッシュまたは他のキャッシュによりコンテンツ配信を引き継ぐことと、オリジンサーバからの配信を停止することとをさらに備える。
【００２０】
本発明の他の可能な実施形態では、決定がコンテンツをオリジンサーバから配信することである場合、方法は、オリジンサーバからクライアントへのコンテンツ配信を通常通り進行させることを可能とする。
【００２１】
マルチメディアコンテンツは、１つまたは複数のメディアオブジェクトまたはメディアセグメントにより定義され得る。例示の実施形態では、本発明は、（動的適応型ＨＴＴＰストリーミング（Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）：ＤＡＳＨとしても知られている）プログレッシブＨＴＴＰコンテンツ配信またはセグメント化ＨＴＴＰコンテンツ配信に適用可能である。オリジンサーバは、コンテンツを格納するか、または、インターネットを通じて配信されるコンテンツが元々格納されている、インターネットコンテンツプロバイダネットワークのコンテンツソースノードから（または他の手段で）取得することができる。
【００２２】
本発明の実施形態では、透過型キャッシュサーバは、コンテンツを配信するかまたはオリジンサーバに配信させるかの決定を担当する、ＣＤＮに接続された透過型キャッシュ（複数可）などの、事業者ネットワークのネットワークエンティティである。代替の実施形態では、キャッシュがコンテンツを配信しないと決定した、またはキャッシュが単純に障害をおこした場合、オリジンサーバがコンテンツを配信する。キャッシュは、（キャッシュをフィルすること（ｆｉｌｌｉｎｇ）としても知られる）今後の要求用にコンテンツをキャッシングするために、複製された（ミラーリングされた）トラフィックを用いてもよい。他の代替の実施形態では、キャッシュがコンテンツを配信すると決定した場合、キャッシュ自身が、オリジンサーバからコンテンツ配信セッションを「引継」して、それになりすまし、前記オリジンサーバを切断する。透過型キャッシュサーバによるこのコンテンツ配信セッションの引継およびオリジンサーバの切断は、クライアントに対して透過的に行われる。
【００２３】
一実施形態では、セッションを引き継ぐために、透過型キャッシュはオリジン（ウェブ）サーバおよびクライアントを偽装し、加えて、たとえばＴＣＰのシーケンス（ＳＥＱ）番号および確認応答（ＡＣＫ）番号を用いて、ネットワークレベルでそれらを模倣する必要がある。透過型キャッシュによる透過的な引継（およびウェブサーバの最後の切断）は、いくつかのステップから構成されてもよい：
【００２４】
ステップ１）たとえばハイパーテキスト転送プロトコル（ＨＴＴＰ）を用いた、アプリケーションレベルでの引継が後に続く、トランスポートレベルでのセッション引継。
【００２５】
本発明の実施形態では、透過型キャッシュサーバは、ＴＣＰセッションをインターセプトし、アプリケーションレベルのリダイレクトメッセージ（たとえばＨＴＴＰ３０２リダイレクト）をオリジンサーバおよびクライアント間の通信に挿入することで、オリジンサーバを偽装し模倣する。リダイレクトメッセージは、透過型キャッシュサーバ自体または他の指名されたキャッシュを指す。このステップは、リダイレクトメッセージがクライアントにはオリジンサーバからの本物のメッセージに見えるので、透過的である。
【００２６】
ステップ２）たとえば伝送制御プロトコル（ＴＣＰ）を用いた、トランスポート層またはネットワーク層でのセッション引継。
【００２７】
本発明の実施形態では、クライアントがステップ１）のリダイレクトメッセージに応答せず、セッションがクライアントおよびオリジンサーバ間で続く場合、透過型キャッシュサーバは、トランスポートまたはネットワークセッションの引継を続行する。たとえばＴＣＰセッション中に、キャッシュがオリジンサーバに対してクライアントを偽装し、クライアントに対してオリジンサーバを偽装して、オリジンのＴＣＰのＳＥＱ番号およびＴＣＰのＡＣＫ番号を模倣し、オリジンサーバとの接続をリセットするためにクライアントを模倣する。
【００２８】
ステップ３）透過型キャッシュサーバによりコンテンツを配信することが決定されるとすぐに、キャッシュサーバは、たとえばウィンドウサイズが値０に設定されたＴＣＰパケットをオリジンサーバに送信するなどして、データバッファがいっぱいのときのクライアントの動作を模倣して、ウェブサーバがクライアントと通信することを防止するように試みてもよい。このステップでは、たとえばパケットがまたがる場合に、オリジンサーバが完全に切断されるまでは、引き継がれたセッションをキャッシュに解放させないようにする。
【００２９】
ステップ４）透過型キャッシュサーバは、クライアントの接続リセット動作を模倣することで、クライアントに影響を与えずにオリジン（ウェブ）サーバを切断する。
【００３０】
ステップ３）および４）は、ネットワークの待ち時間および競合状態に起因して、成功するまで複数回繰り返されてもよい。
【００３１】
代替の実施形態では、キャッシュは、たとえばクライアントがアプリケーションレベルの引継に応答しない場合に、ステップ２）および４）で説明したトランスポート層またはネットワーク層でのセッション引継を進めないことを選択してもよい。キャッシュは代わりに、そのようなクライアントの動作について学習することができる。そしてキャッシュは、セグメント化ＨＴＴＰコンテンツのＵＲＬを指定するマニフェストファイルを、同じクライアントからの以降の要求のためにキャッシュを指すように変更する（書き換える）ことができる。このシナリオでは、キャッシュは、ステップ１）および３）を実行するが、ステップ１）でリダイレクトメッセージを挿入する代わりにマニフェストファイルを配信することができる。たとえばクライアントがアプリケーションレベルの引継をサポートしないことをキャッシュが他の手段で知ることができる場合は、キャッシュは、以前失敗したアプリケーション引継を試行せずに、マニフェストファイルを配信することを選択してもよい。そのような他の手段は、事前提供されたメタデータまたはインターセプトされたコンテンツ要求から取得された情報を含み得る。
【００３２】
透過型キャッシュサーバがコンテンツを配信しないと決定した場合、透過型キャッシュによるコンテンツ配信セッションの引継はなく、代わりに、コンテンツ配信セッションがオリジンサーバおよびクライアント間で続行する。キャッシュがコンテンツを配信すると決定し、また、たとえばオリジンサーバが十分に速く切断されなかった場合もまた、コンテンツ配信セッションはオリジンサーバおよびクライアント間で続行し得る。この場合、引継ステップの一部は、透過型キャッシュサーバがオリジンサーバを成功裏に切断し、それに「なりすまして」要求の配信を継続できるまで、反復される必要がある。
【００３３】
方法ステップの順序は重要な問題ではないため、他の方法ステップの順序もまた可能である。
【００３４】
本発明の他の態様によれば：
−  クライアントからＣＤＮなどのネットワークへのミラーリングされたコンテンツ要求を受信するための手段と、（ネットワークは、受信した要求をミラーリングさせるための手段を備える）
−  コンテンツを配信するか否かを決定するための手段と（その場合、受信した要求がＣＤＮからルーティングされるオリジンサーバに、クライアントへのコンテンツ配信を行わせる）
を備える、透過型キャッシュサーバが提供される。
【００３５】
可能な実施形態では、透過型キャッシュからコンテンツを配信するように決定された場合、透過型キャッシュサーバは：
−  透過型キャッシュサーバ自身によりコンテンツ配信を引き継ぐための、または、他の（透過型）キャッシュに対してコンテンツ配信を引き継ぐことを示すための手段と、
−  キャッシュからコンテンツを配信するように決定されて以降、オリジンサーバがコンテンツを配信するのをやめさせるためにオリジンサーバの切断をトリガするための手段と（決定がキャッシュからコンテンツを配信しないことである場合、透過型キャッシュサーバはオリジンサーバにコンテンツを通常通り配信させる）
をさらに備える。
【００３６】
本発明の他の態様は、上記で定義されたものである少なくとも透過型キャッシュサーバとオリジンサーバとを備える任意の知られているネットワークトポロジ（たとえばリング、メッシュなど）の通信ネットワークである、メディアコンテンツ配信のためのシステムに関する。
【００３７】
本発明の他の態様によれば、プログラムがコンピュータ上で実行された場合に、先に開示された方法のステップのいずれかを行うためのコンピュータ実行可能な命令を備えるコンピュータプログラム製品が提供され、先に開示された方法のステップのいずれかを行うための機械実行可能な命令のプログラムを符号化するデジタルデータ記憶媒体もまた提供される。
【００３８】
本発明のこれらおよび他の態様は、以下に記載される実施形態から明らかとなり、それらを参照して説明されるだろう。
【００３９】
提示された実施形態は、従来技術と比較した場合に以下の利点を潜在的に有する：
−  本提案は、従来技術の解決方法と異なり、オフドメインリダイレクトに関するクライアントポリシー（サポート）に関わらず、任意のクライアントの種類で動作する。
−  着信するクライアント要求はオリジンサーバにより、およびキャッシュにより見られているので、任意の起こり得る（透過型）キャッシュ障害はネットワーク障害の発生に影響しない。
−  結果としてロードバランサはネットワーク障害を防ぐために冗長性のために必要とされず、パス外透過型キャッシュはネットワークトポロジに密接にオーバーレイでき、たとえば、ボーダーネットワークゲートウェイ（ＢＮＧ）などのサービスルータと共に配置され得る。
−  従来技術の透過型キャッシング解決方法は、キャッシュ障害の場合にネットワーク障害を防ぐために、少なくとも２つの透過型キャッシュと、１つのロードバランサを必要とする。しかしながら本提案は、単一の透過型キャッシュに対するキャッシュ障害の場合のネットワーク障害からの優れた保護を提供し、これは他の利益をもたらす：本提案は、透過型キャッシュをネットワークトポロジにオーバーレイする、より広くより柔軟な配備の選択肢を広げ、たとえばネットワーク事業者が透過型キャッシュを交換機に地理的に分散させることを可能とする。
−  ポートミラー機能を用いたトラフィックミラーリングの最もコスト効率のよい実装の１つは、既存のネットワーク機能を用いて実装可能であり、たとえば、それはアルカテル−ルーセント７７５０サービスルータＢＮＧで利用可能であり、提案された統一透過型キャッシュのために活用され得る。
【００４０】
本発明の実施形態による方法、システムおよび装置の一部の実施形態を、ほんの一例として、添付の図面を参照して、以下説明する。
【図面の簡単な説明】
【００４１】
【図１】コンテンツをコンテンツデリバリーネットワークに要求するように透過型キャッシュがクライアントに促す場合の、従来技術によるデータパス上での透過型キャッシングのためのシステムを示す図である。
【図２】透過型キャッシュが、コンテンツを格納しているオリジンサーバへクライアント要求をリダイレクトする場合の、従来技術によるデータパス上での透過型キャッシングのためのシステムを示す図である。
【図３】本発明の実施形態によるデータパス外での透過型キャッシングのためのメインステップの概略図である。
【図４】本発明の実施形態による、透過型キャッシュによるアプリケーションレベルでのコンテンツ配信セッションの引継に関するメッセージおよびステップのフロー図である。
【図５】本発明の実施形態による、透過型キャッシュによるトランスポートレベルでのコンテンツ配信セッションの引継およびオリジンサーバの切断に関するメッセージおよびステップのフローの図である。
【発明を実施するための形態】
【００４２】
図面を通じて、同様の参照番号は同様の要素を指す。
【００４３】
図１−２は、従来技術の実施形態の例を示す：ｈｔｔｐ：／／ｗｗｗ．ｖｅｒｉｖｕｅ．ｃｏｍ／ｐｒｏｄｕｃｔｓ−ｃａｒｒｉｅｒ−ｃｄｎ−ｔｒａｎｓｐａｒｅｎｔ−ｃａｃｈｅ．ａｓｐにおいてＶｅｒｉｖｕｅ（Ｒ）により提示され、ＯｎｅＶａｎｔａｇｅ（ＴＭ）と呼ばれる、透過型キャッシングのための「データパス上」の方法：クライアント（４）は、コンテンツソースであるオブジェクトストアまたはオリジンサーバ（７）に直接的にＴＣＰ接続（１）を開始する。ネットワーク（６）のスイッチまたはルータ（２）はＨＴＴＰパケットを認識し、元の宛先へ転送する代わりに、ＯｎｅＶａｎｔａｇｅ透過型キャッシュ（５）へ回す。ポリシーベースルーティングおよびウェブキャッシュ通信プロトコルを含む、ネットワーク（６）におけるＨＴＴＰパケットのインターセプトを遂行するためのいくつかの方法が存在する。ＯｎｅＶａｎｔａｇｅ透過型キャッシュ（５）はコンテンツの「キャッシュ能力」を決定し、コンテンツがキャッシュ可能である場合、図１に示すように、透過型キャッシュ（５）は、コンテンツを事業者のＣＤＮに要求するようにクライアントを仕向けるＨＴＴＰリダイレクトメッセージを発行する（３ａ）。そうでなければ、コンテンツがキャッシュ可能でない場合、図２に示すように、透過型キャッシュ（５）は、オリジンサーバ（７）、すなわちインターネットにおけるコンテンツの元の宛先へ要求を渡す。
【００４４】
類似の「データパス上」の従来技術の解決方法は、Ｃｉｓｃｏ、ＪｕｎｉｐｅｒおよびＰｅｅｒＡｐｐを含む、他の透過型キャッシングプロバイダから利用可能である。
【００４５】
本発明は、他の特定の装置、システム、および／または方法で具現化され得る。説明される実施形態は、全ての観点で例示的なものにすぎず限定的なものでないとみなされるべきである。特に、本発明の範囲は、本明細書の説明および図面ではなく、添付の特許請求の範囲により示される。特許請求の範囲の均等の意味および範囲内に入る全ての変更は、その範囲に含まれるべきである。
【００４６】
図３は、本発明の好ましい実施形態による、透過型キャッシュがパス外で動作する事業者ＩＰネットワークのアーキテークチャのハイレベルブロック図を示す。オリジンサーバ（３０３）は、クライアント（４）と通信可能であり、事業者ＩＰネットワークの１つまたは複数のルータ（３０２）を介してコンテンツを配信可能であり、事業者ＩＰネットワークは１つまたは複数の透過型キャッシュサーバ（３０１）をさらに備える。少なくとも１つの透過型キャッシュサーバ（３０１）は、コンテンツデリバリーネットワークすなわちＣＤＮと通信可能である。ＩＰルータ（３０２）および透過型キャッシュサーバ（３０１）は、ＩＰリンクを介して、または負荷分散のためのハッシュ化されたリンクアグリゲーショングループ（３１０）を用いて、通信可能である。
【００４７】
クライアントコンテンツ要求はクライアント（４）からネットワークへ送信され（３１）、それに応答してネットワークは要求をたとえばＩＰサービスルータ（３０２）を用いてインターネットの元の宛先へルーティングし（３２１）、また、要求を透過型キャッシュサーバ（３０１）の少なくとも１つにミラーリングする（３２２）。コンテンツ配信セッションは、クライアント（４）と、デフォルトでクライアントのコンテンツ要求を処理することになっているオリジンサーバ（３０３）との間に設定される。コンテンツ要求が透過型キャッシュサーバ（３０１）にミラーリングされると、このキャッシュサーバ（３０１）はコンテンツを配信するか否かを決定する。透過型キャッシュサーバ（３０１）がコンテンツを配信すること（３３）を決定した場合、この透過型キャッシュサーバ（３０１）は、以下説明される図４−５のステップに従って、オリジンサーバ（３０３）からコンテンツ配信セッションの制御を引き継ぎ、オリジンサーバ（３０３）を切断し、またはオリジンサーバを切断させる。たとえば、キャッシングポリシーまたはキャッシュ障害さえが原因でコンテンツがキャッシュされないという理由で、透過型キャッシュサーバ（３０１）の決定が配信を行わないことであるという理由で、または、透過型キャッシュサーバ（３０１）の決定がコンテンツを配信することである場合にオリジンサーバ（３０３）がまだ接続されているという理由で、透過型キャッシュサーバ（３０１）がコンテンツを配信するエンティティでない場合、コンテンツ配信セッションはオリジンサーバ（３０１）およびクライアント（４）間で続行する（３４）。透過型キャッシュサーバ（３０１）からコンテンツを配信するために、オリジンサーバ（３０３）が透過型キャッシュサーバ（３０１）の切断トリガにより十分速く切断されていない場合、透過型キャッシュサーバ（３０１）が成功裏にオリジンサーバ（３０３）を切断するかまたはオリジンサーバの切断をトリガし、オリジンサーバ（３０１）の代わりに要求の配信を継続できるまで、コンテンツ配信セッションを引き継ぐためのいくつかのステップが繰り返される必要がある。
【００４８】
透過型キャッシュサーバ（３０１）がコンテンツを配信すること（３３）を決定した場合、コンテンツ配信セッションを引き継ぐためのステップが、図４−５に、ＨＴＴＰプロトコルおよびＴＣＰプロトコル、アプリケーションレベルおよびトランスポートレベルに対してそれぞれ例示される。図４−５は、ＴＣＰトランスポートを介するＨＴＴＰ配信のためのパス外透過型キャッシングの可能な実施形態による、アプリケーション層およびトランスポート層それぞれにおけるセッション引継を示す。本例示は、プログレッシブＨＴＴＰコンテンツ配信およびセグメント化ＨＴＴＰコンテンツ配信の両方に適用可能である。
【００４９】
図４は、ＨＴＴＰアプリケーション層でのコンテンツ配信セッション引継を示す。透過型キャッシュサーバ（３０１）は、オリジンウェブサーバ（３０３）のＩＰアドレスおよびＴＣＰポート番号を偽装し（４１）、前記オリジンサーバ（３０３）により使用されるはずであったＴＣＰのＳＥＱ番号およびＴＣＰのＡＣＫ番号を用いてオリジンサーバ（３０３）を模倣する（４２）。透過型キャッシュサーバ（３０１）は、オリジンサーバ（３０３）およびクライアント（４）間の通信にＨＴＴＰ３０２リダイレクトメッセージをインジェクトし（４３）、クライアント（４）に、切断し（４４）キャッシュサーバ（３０１）または他の選択されたキャッシュに再接続する（４５）ように依頼して、コンテンツを配信する（４６）。
【００５０】
キャッシュサーバ（３０１）がアプリケーションレベルＨＴＴＰリダイレクトを用いてセッションを引き継ぐことができない場合、たとえばクライアント（４）がリダイレクトメッセージに応答せずにセッションがクライアント（４）およびオリジンサーバ（３０１）間で続く場合、キャッシュサーバ（３０１）は、トランスポートまたはネットワークレベルの配信セッションの引継にフォールバックすることができる。
【００５１】
図５は、ＨＴＴＰトランスポート層におけるコンテンツ配信セッションの引継を示す。キャッシュサーバ（３０１）は、二重の偽装および模倣（５０１、５０２）を用いる：オリジンサーバ（３０３）に対してクライアント（４）を偽装し、クライアント（４）に対してオリジンサーバ（３０３）を偽装して、正しいＴＣＰのＳＥＱ番号およびＴＣＰのＡＣＫ番号を模倣し、ＴＣＰセッションを引き継ぐ（５０２）。キャッシュサーバ（３０１）によりコンテンツを配信するように決定されるとすぐに、キャッシュサーバ（３０１）は、クライアントのＳＥＱ番号およびＡＣＫ番号を模倣する、ウィンドウサイズが０に設定されたＴＣＰのＡＣＫメッセージをオリジンサーバ（３０３）に送信することで、データバッファがいっぱいのときのクライアントの動作を模倣して（５０１）、オリジンサーバ（３０３）がクライアント（４）と通信することを防止する。このステップは、たとえばパケットがまたがる場合（５０３）に、オリジンサーバ（３０３）が追加のデータを送信することを妨害し、オリジンサーバ（３０３）が切断されるまでは、引き継がれたセッションをキャッシュに解放させないようにする。ここで注意されたいのは、オリジンサーバ（３０３）から余分なデータを送信しないようにオリジンサーバ（３０３）に対処しながら、常に追加のデータがキャッシュサーバ（３０１）から送信され、一方、オリジンサーバ（３０３）は、データの送信をやめ（５０４）、ＴＣＰ接続をリセットするように指示されることである。最後に、キャッシュサーバ（３０１）は、クライアントのＴＣＰのＳＥＱ番号を模倣するときにクライアントの接続リセット動作を模倣して、クライアントに影響することなくオリジンサーバ（３０３）を切断する（５０５）。
【００５２】
代替の実施形態では、キャッシュサーバ（３０１）がアプリケーションレベルのリダイレクトを用いてセッションを引き継ぐことができない場合、たとえばクライアント（４）がリダイレクトメッセージに応答せずセッションがクライアント（４）との間で続く場合（３４）、キャッシュは代わりに、セグメント化ＨＴＴＰコンテンツのＵＲＬを指定するマニフェストファイルを、キャッシュを指すように変更または書き換ることができる。この場合、手順は図４と類似するが、キャッシュがステップ（４３）のリダイレクトメッセージの代わりにマニフェストファイルを送信するという違いがある。
【００５３】
当業者は、上述の様々な方法のステップが、プログラムされたコンピュータにより実施され得ることを容易に理解するだろう。本明細書では、一部の実施形態はまた、機械可読またはコンピュータ可読であり、機械実行可能またはコンピュータ実行可能な命令のプログラムを符号化するものであって、前記命令は前記上述の方法のステップの一部または全部を実施する、デジタルデータ記憶媒体などのプログラム記憶装置を含むものとする。プログラム記憶装置は、たとえば、デジタルメモリ、磁気ディスクおよび磁気テープなどの磁気記憶媒体、ハードドライブ、または光学的可読デジタルデータ記憶媒体でもよい。実施形態はまた、上述の方法の前記ステップを実行するようにプログラムされたコンピュータを含むものとする。
【００５４】
説明および図面は単に本発明の原理を例示するにすぎない。したがって、本明細書では明示的に説明したり示したりしないが、本発明の原理を具現化し、その範囲に含まれる様々な配置構成を当業者が考案できるであろうことは理解されよう。さらに、本明細書で列挙された全ての実施例は、主に、本発明の原理および本発明者（ら）により当技術の促進へ捧げられた概念を理解する際に読者を補助する教育上の目的のためだけのものであるよう明らかに意図され、そのような具体的に列挙された実施例および条件に限定されないよう解釈されたい。さらに、本発明の原理、態様、および実施形態、ならびにそれらの特定の実施例を列挙する本明細書の全ての記述は、それらの均等物を含むものとする。
【００５５】
本明細書の任意のブロック図が、本発明の原理を具現化する例示の回路の概念図を表すことは当業者に理解されたい。同様に、任意のフローチャート、フロー図、状態遷移図、疑似コードなどは、コンピュータ可読媒体内に実質的に表され、したがってコンピュータまたはプロセッサにより、そのようなコンピュータまたはプロセッサが明示的に示されていようとなかろうと、実行され得る、様々な処理を表すことは理解されよう。
【図１】
2017216011.tif 000003
【図２】
2017216011.tif 000004
【図３】
2017216011.tif 000005
【図４】
2017216011.tif 000006
【図５】
2017216011.tif 000007
【手続補正書】
【提出日】平成29年8月17日(2017.8.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＩＰネットワークにおけるコンテンツキャッシングおよび配信のための方法であって、
要求されたコンテンツについての、クライアントからＩＰネットワークへのオリジナル要求を受信するステップであって、前記オリジナル要求がＩＰネットワークから第１のキャッシュサーバ（３０１）を通過することなしにオリジンサーバ（３０３）へルーティングされる、前記受信するステップと、
ＩＰネットワーク（６）により、オリジナル要求の複製であるミラーリングされた要求を生成するステップであって、前記ミラーリングされた要求が第１のキャッシュサーバ（３０１）へルーティングされる、前記生成するするステップと、
要求されたコンテンツがクライアント（４）へ、選択されたキャッシュサーバから配信されるか、または、ＩＰネットワークを介してクライアント（４）に接続され、ＩＰネットワーク（６）が受信されたオリジナル要求をルーティングする、オリジンサーバ（３０３）から配信されるかを、第１のキャッシュサーバ（３０１）により、決定するステップと
を備えることを特徴とする、方法。
【請求項２】
第１のキャッシュサーバ（３０１）が、選択されたキャッシュサーバから要求されたコンテンツを配信すること（３３）を決定する、請求項１に記載のコンテンツキャッシングおよび配信のための方法。
【請求項３】
選択されたキャッシュサーバが第１のキャッシュサーバ（３０１）である、請求項２に記載のコンテンツキャッシングおよび配信のための方法。
【請求項４】
第１のキャッシュサーバ（３０１）がクライアント（４）からオリジンサーバ（３０３）の切断をトリガすることをさらに備える、請求項１から３のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項５】
第１のキャッシュサーバ（３０１）が、クライアント（４）およびオリジンサーバ（３０３）の間に設定されるコンテンツ配信セッションの制御を引き継ぐことをさらに備える、請求項２から４のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項６】
コンテンツ配信セッションの制御を引き継ぐことが、ＩＰネットワーク（６）のアプリケーション層で行われる、請求項５に記載のコンテンツキャッシングおよび配信のための方法。
【請求項７】
コンテンツ配信セッションの制御を引き継ぐことが、ＩＰネットワーク（６）のトランスポート層またはネットワーク層で行われる、請求項５に記載のコンテンツキャッシングおよび配信のための方法。
【請求項８】
ミラーリングされた要求を生成することが、ＩＰネットワーク（６）のルータ（３０２）により行われ、ルータ（３０２）には、ポートミラーが設けられる、請求項１から７のいずれか一項に記載のコンテンツキャッシングおよび配信のための方法。
【請求項９】
第１のキャッシュサーバと、
ルータを備え、
ルータが、要求されたコンテンツについての、クライアントからＩＰネットワークへのオリジナル要求を受信し、前記オリジナル要求がＩＰネットワークから第１のキャッシュサーバを通過することなしにオリジンサーバ（３０３）へルーティングされ、
前記ルータは、さらに、オリジナル要求の複製であるミラーリングされた要求を生成し、前記ミラーリングされた要求が第１のキャッシュサーバへルーティングされ、
第１のキャッシュサーバが、要求されたコンテンツがクライアント（４）へ、選択されたキャッシュサーバから配信されるか、または、ＩＰネットワーク（６）を介してクライアント（４）に接続され、ＩＰネットワーク（６）が受信されたオリジナル要求をルーティングする、オリジンサーバ（３０３）から配信されるかを決定する、ことを特徴とする、コンテンツキャッシングおよび配信のためのシステム。
【請求項１０】
第１のキャッシュサーバ（３０１）が、第１のキャッシュサーバ（３０１）または第２のキャッシュサーバから要求されたコンテンツを配信すること（３３）を決定する、請求項９に記載のコンテンツキャッシングおよび配信のためのシステム。
【請求項１１】
第１のキャッシュサーバが、クライアント（４）からオリジンサーバ（３０３）の切断をトリガする、請求項１０に記載のコンテンツキャッシングおよび配信のためのシステム。
【請求項１２】
第１のキャッシュサーバが、アプリケーション層、トランスポート層およびネットワーク層から選択されたＩＰネットワーク（６）の層から、クライアント（４）およびオリジンサーバ（３０３）の間に設定されるコンテンツ配信セッションの制御を引き継ぐ、請求項１０または１１に記載のコンテンツキャッシングおよび配信のためのシステム。
【請求項１３】
プログラムがコンピュータ上で実行されたときに、該コンピュータに、請求項１から８のいずれか一項に記載の方法を実施させるためのコンピュータ実行可能な命令を備える、コンピュータプログラム。
【請求項１４】
プログラムがコンピュータで実行されたときに、請求項１から８のいずれか一項に記載の方法を実施するように動作可能な機械実行可能な命令のプログラムを有する、非一時的機械読み出し可能な媒体。