(57)【要約】  本開示の複数の態様は、フェイルオーバおよびロードクラスタリング機能をコンテンツデリバリネットワーク（ＣＤＮ）の１または複数のプロキシサーバに提供するための複数のシステム、方法、コンピュータプログラムプロダクト等を含む。一実施形態において、１または複数のプロキシサーバは、フェイルオーバ機能を提供するべく仮想ホストインターネットプロトコル（ＩＰ）を告知してもよく、複数のプロキシサーバの２またはそれより多くは、また、仮想ネットワークＩＰアドレスと関連付けられるより広いＩＰアドレス範囲を含むよりジェネリックな仮想ネットワークＩＰアドレスを告知してもよい。別の実施形態において、ルータと通信する複数のプロキシサーバの各々は、ジェネリックなＩＰネットワークアドレスをルータに告知してもよい。ＣＤＮのエンドユーザからのコンテンツに対する要求を受信することに応答して、ルータは、プロキシサーバを選択してもよく、複数の受信された要求に対して複数のプロキシサーバの間でロードバランスを行ってもよい。
2017507575.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデリバリネットワークを操作するための方法であって、
電気通信ネットワークの複数のプロキシサーバの各々からルータにおいてネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信する段階であって、前記複数のプロキシサーバは、前記コンテンツデリバリネットワーク（ＣＤＮ）のコンテンツファイルを格納するストレージデバイスと通信し、前記複数のプロキシサーバの各々からの前記ネットワークＩＰアドレスは、第１のＩＰアドレス範囲を含む、段階と、
前記ＣＤＮと通信するエンドユーザデバイスから前記コンテンツファイルに対する第１の要求を受信する段階であって、前記第１の要求は、前記コンテンツファイルについて少なくとも宛先ＩＰアドレスを有する、段階と、
前記複数のプロキシサーバのうち第１のプロキシサーバを選択して要求された前記コンテンツファイルを前記エンドユーザデバイスに提供する段階と、
前記コンテンツファイルに対する前記第１の要求を前記第１のプロキシサーバに送信する段階と、を備える、方法。
【請求項２】
前記コンテンツファイルに対する前記第１の要求の少なくとも前記宛先ＩＰアドレスに基づいて、ハッシュ値を計算する段階を更に備える、請求項１に記載の方法。
【請求項３】
前記第１のプロキシサーバを選択する段階は、計算された前記ハッシュ値に少なくとも基づいている、請求項２に記載の方法。
【請求項４】
前記複数のプロキシサーバの前記第１のプロキシサーバから前記ルータにおいてホストＩＰアドレス告知を受信する段階であって、前記ホストＩＰアドレスは、第２のＩＰアドレス範囲を有し、前記第２のＩＰアドレス範囲は、前記第１のＩＰアドレス範囲より小さい、段階を更に備える、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記要求されたコンテンツファイルを前記エンドユーザデバイスに提供する前記複数のプロキシサーバの前記第１のプロキシサーバを選択する段階は、前記ホストＩＰアドレスに少なくとも基づいている、請求項４に記載の方法。
【請求項６】
前記複数のプロキシサーバの前記第１のプロキシサーバの故障の指標を受信する段階と、
受信された前記第１のプロキシサーバの前記故障の前記指標に少なくとも基づいて、ルーティングテーブルから前記ホストＩＰアドレスを取り除く段階と、を更に備える、請求項４に記載の方法。
【請求項７】
前記ＣＤＮと通信する前記エンドユーザデバイスから前記コンテンツファイルに対する第２の要求を受信する段階であって、前記第２の要求は、前記コンテンツファイルについて少なくとも前記宛先ＩＰアドレスを有する、段階と、
少なくとも前記複数のプロキシサーバの前記第１のプロキシサーバの故障の前記指標を受信する段階に応答して、前記複数のプロキシサーバの第２のプロキシサーバを選択し、前記要求されたコンテンツファイルを前記エンドユーザデバイスに提供する段階と、を更に備える、請求項６に記載の方法。
【請求項８】
前記ネットワークＩＰアドレス告知は、前記第１のプロキシサーバとのボーダーゲートウェイプロトコル（ＢＧＰ）セッションを介して受信される、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記ホストＩＰアドレス告知は、前記第１のプロキシサーバとのＢＧＰセッションを介して受信される、請求項４に記載の方法。
【請求項１０】
コンテンツデリバリネットワークであって、
前記コンテンツデリバリネットワーク（ＣＤＮ）と通信し、前記ＣＤＮと通信するエンドユーザデバイスからコンテンツファイルについて少なくとも宛先ＩＰアドレスを有する第１の要求を受信するルータと、
前記ルータおよび前記ＣＤＮの前記コンテンツファイルを格納するストレージデバイスと通信する複数のプロキシサーバと、を備え、
前記ルータは、更に、前記複数のプロキシサーバの各々から第１のＩＰアドレス範囲を有するネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信し、前記複数のプロキシサーバのうち第１のプロキシサーバを選択して前記ネットワークＩＰアドレスに少なくとも基づいて前記エンドユーザデバイスに要求された前記コンテンツファイルを提供し、前記コンテンツファイルに対する前記第１の要求を前記第１のプロキシサーバに送信する、
コンテンツデリバリネットワーク。
【請求項１１】
前記ルータは、更に、少なくとも前記コンテンツファイルに対する前記第１の要求の前記宛先ＩＰアドレスに基づいて、ハッシュ値を計算する、請求項１０に記載のコンテンツデリバリネットワーク。
【請求項１２】
前記第１のプロキシサーバを選択することは、前記計算されたハッシュ値に少なくとも基づいている、請求項１１に記載のコンテンツデリバリネットワーク。
【請求項１３】
前記第１のプロキシサーバは、前記ルータに対してホストＩＰアドレスを告知し、前記ホストＩＰアドレスは、第２のＩＰアドレス範囲を有し、前記第２のＩＰアドレス範囲は、前記第１のＩＰアドレス範囲より小さい、請求項１０から１２のいずれか一項に記載のコンテンツデリバリネットワーク。
【請求項１４】
前記複数のプロキシサーバのうち前記第１のプロキシサーバを選択して前記要求されたコンテンツファイルを前記エンドユーザデバイスに提供することは、前記ホストＩＰアドレスに少なくとも基づいている、請求項１３に記載のコンテンツデリバリネットワーク。
【請求項１５】
前記ルータは、前記複数のプロキシサーバの前記第１のプロキシサーバの故障の指標を受信し、受信された前記第１のプロキシサーバの前記故障の前記指標に少なくとも基づいてルーティングテーブルから前記ホストＩＰアドレスを取り除く、請求項１４に記載のコンテンツデリバリネットワーク。
【請求項１６】
前記ルータは、前記ＣＤＮと通信する前記エンドユーザデバイスから前記コンテンツファイルに対する第２の要求を受信し、前記第２の要求は、前記コンテンツファイルについて少なくとも前記宛先ＩＰアドレスを有し、前記複数のプロキシサーバの前記第１のプロキシサーバの故障の前記指標を受信することに少なくとも応答して、前記複数のプロキシサーバの第２のプロキシサーバを選択して前記要求されたコンテンツファイルを前記エンドユーザデバイスに提供する、請求項１５に記載のコンテンツデリバリネットワーク。
【請求項１７】
前記ネットワークＩＰアドレス告知および前記ホストＩＰアドレスは、前記第１のプロキシサーバとのボーダーゲートウェイプロトコル（ＢＧＰ）セッションを介して前記ルータで受信される、請求項１３に記載のコンテンツデリバリネットワーク。
【請求項１８】
電気通信ネットワークにおいてフェイルオーバ保護を提供するための方法であって、
前記電気通信ネットワークの少なくとも２つのプロキシサーバからルータにおいてネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信する段階であって、前記少なくとも２つのプロキシサーバは、コンテンツデリバリネットワーク（ＣＤＮ）のコンテンツファイルを格納するストレージデバイスと通信し、前記少なくとも２つのプロキシサーバの各々からの前記ネットワークＩＰアドレスは、第１のＩＰアドレス範囲を含む、段階と、
前記少なくとも２つのプロキシサーバの第１のプロキシサーバから前記ルータにおいてホストＩＰアドレス告知を受信する段階であって、前記ホストＩＰアドレスは、前記第１のＩＰアドレス範囲より小さい第２のＩＰアドレス範囲を有する、段階と、
前記少なくとも２つのプロキシサーバの前記第１のプロキシサーバの故障の指標を受信する段階と、
受信された前記第１のプロキシサーバの前記故障の前記指標に少なくとも基づいてルーティングテーブルから前記ホストＩＰアドレスを取り除く段階と、
前記ＣＤＮと通信するエンドユーザデバイスから前記コンテンツファイルに対する要求を受信する段階と、
複数のプロキシサーバの前記少なくとも２つのプロキシサーバの第２のプロキシサーバを選択して前記要求されたコンテンツファイルを前記エンドユーザデバイスに提供する段階と、
前記コンテンツファイルに対する前記要求を前記第２のプロキシサーバに送信する段階と、を備える、
方法。
【請求項１９】
前記ネットワークＩＰアドレス告知は、前記少なくとも２つのプロキシサーバとのボーダーゲートウェイプロトコル（ＢＧＰ）セッションを介して受信される、請求項１８に記載の方法。
【請求項２０】
前記ホストＩＰアドレス告知は、前記第１のプロキシサーバとのＢＧＰセッションを介して受信される、請求項１８または１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］  本特許協力条約（ＰＣＴ）特許出願の特許請求の範囲は、２０１４年２月１９日に出願された「ＣＯＮＴＥＮＴＳ  ＤＥＬＩＶＥＲＹ  ＮＥＴＷＯＲＫ  ＡＲＣＨＩＴＥＣＴＵＲＥ  ＷＩＴＨ  ＥＤＧＥ  ＰＲＯＸＹ」という名称の米国特許仮出願第６１／９４１，５７６号、および２０１５年１月３０日に出願された「ＰＲＯＸＹ  ＳＥＲＶＥＲ  ＦＡＩＬＯＶＥＲ  ＡＮＤ  ＬＯＡＤ  ＣＬＵＳＴＥＲＩＮＧ」という名称の米国特許仮出願第６２／１１０，１１９号に対して優先権を主張する。これらの両方が、本明細書において参照により全体として組み込まれる。
【０００２】
［本開示の分野］  本発明の複数の実施形態は、電気通信ネットワークを実行する、より具体的には、コンテンツデリバリネットワークの１または複数のプロキシサーバに対する複数のフェイルオーバおよびロードクラスタリング機能を提供するための複数のシステムおよび方法に概して関連する。
【背景技術】
【０００３】
コンテンツデリバリネットワーク（ＣＤＮ）は、ビデオ、マルチメディア、画像、オーディオファイル、文書、ソフトウェア、および他の電子リソース等のコンテンツを１または複数のコンテンツプロバイダに代わって複数のエンドユーザに配布するために、よく用いられるようになってきた。ＣＤＮを用いることにより、複数のコンテンツプロバイダは、追加のインフラストラクチャを配置することなく、コンテンツ配信の速さおよび信頼性を改善することが可能になる。さらに、ＣＤＮは、１または複数の既存のネットワーク内にコンテンツを格納する必要なく、既存のネットワークを介したコンテンツの配布を可能にする。
【０００４】
通常、ＣＤＮは、コンテンツが要求するエンドユーザに供給され得る数個のコンテンツサーバを含む。一例において、これらのコンテンツサーバは、エンドユーザが通信している電気通信ネットワークを介してアクセスされ得る。ネットワークは、ルータ、プロキシサーバ等、エンドユーザの要求されたコンテンツへの接続を容易にする任意の数の構成要素を含んでよい。しかしながら、いくつかの例において、ネットワークのコンポーネントの１または複数は、故障してしまうかもしれず、または、そうでなければコンテンツをエンドユーザに提供することが不可能かもしれない。例えば、コンポーネントの１または複数は、クラッシュし得、当該コンポーネントが再始動されるかまたは置換コンポーネントがネットワークに含まれるまで、動作を停止し得る。別の例において、コンポーネントの１または複数は、ネットワークからのトラフィックに圧倒され得る。これにより、１または複数のエンドユーザは、要求されたコンテンツのルーティングおよび送信のためのコンポーネントにもはや接続しないかもしれない。そのような状況において、ＣＤＮからのコンテンツの利用可能性は、ネットワークを介してエンドユーザに対し、一時的に損なわれ得る。
【０００５】
本開示の様々な態様は、これらおよび他の課題を念頭に置いて開発されたのである。
【発明の概要】
【０００６】
本開示の一実装は、コンテンツデリバリネットワークを操作するための方法の形を取ってよい。方法は、ルータにおいて電気通信ネットワークの複数のプロキシサーバの各々からネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信する段階であって、複数のプロキシサーバは、コンテンツデリバリネットワーク（ＣＤＮ）のコンテンツファイルを格納するように構成されたストレージデバイスと通信し、複数のプロキシサーバの各々からのネットワークＩＰアドレスは、第１のＩＰアドレス範囲を有する、段階と、ＣＤＮと通信するエンドユーザデバイスからコンテンツファイルに対する要求を受信する段階であって、要求は、コンテンツファイルについて少なくとも宛先ＩＰアドレスを有する、段階と、要求されたコンテンツファイルをエンドユーザデバイスに提供するべく複数のプロキシサーバの第１のプロキシサーバを選択する段階と、コンテンツファイルに対する要求を第１のプロキシサーバに送信する段階と、の操作を含んでよい。
【０００７】
本開示の別の実装は、コンテンツデリバリネットワークの形を取ってよい。コンテンツデリバリネットワークは、コンテンツデリバリネットワーク（ＣＤＮ）と通信、ＣＤＮと通信するエンドユーザデバイスからコンテンツファイルについての少なくとも宛先ＩＰアドレスを有する第１の要求を受信するように構成されたルータと、ルータと通信する複数のプロキシサーバと、ＣＤＮのコンテンツファイルを格納するように構成されたストレージデバイスとを備えてよい。更に、ルータは、複数のプロキシサーバの各々から第１のＩＰアドレス範囲を有するネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信し、要求されたコンテンツファイルをネットワークＩＰアドレスに少なくとも基づいてエンドユーザデバイスに提供するべく、複数のプロキシサーバの第１のプロキシサーバを選択し、コンテンツファイルに対する第１の要求を第１のプロキシサーバに送信するように更に構成され得る。
【０００８】
本開示のさらに他の実装は、電気通信ネットワークにおいてフェイルオーバ保護を提供するための方法の形を取ってよい。当該方法は、電気通信ネットワークの少なくとも２つのプロキシサーバからルータにおいてネットワークインターネットプロトコル（ＩＰ）アドレス告知を受信する段階であって、少なくとも２つのプロキシサーバは、コンテンツデリバリネットワーク（ＣＤＮ）のコンテンツファイルを格納するように構成されたストレージデバイスと通信し、少なくとも２つのプロキシサーバの各々からのネットワークＩＰアドレスは、第１のＩＰアドレス範囲を有する、段階と、少なくとも２つのプロキシサーバの第１のプロキシサーバからホストＩＰアドレス告知をルータで受信する段階であって、ホストＩＰアドレスは、第１のＩＰアドレス範囲より小さい第２のＩＰアドレス範囲を有する、段階と、の動作を含んでよい。加えて、方法は、少なくとも２つのプロキシサーバの第１のプロキシサーバの故障の指標を受信する段階と、受信された第１のプロキシサーバの故障の指標に少なくとも基づいてルーティングテーブルからホストＩＰアドレスを取り除く段階と、ＣＤＮと通信するエンドユーザデバイスからコンテンツファイルに対する要求を受信する段階と、要求されたコンテンツファイルをエンドユーザデバイスに提供するべく、複数のプロキシサーバの少なくとも２つのプロキシサーバの第２のプロキシサーバを選択する段階と、コンテンツファイルに対する要求を第２のプロキシサーバに送信する段階と、の動作を含んでよい。
【図面の簡単な説明】
【０００９】
【図１】コンテンツデリバリネットワーク（ＣＤＮ）を介してコンテンツを配布する例示的なネットワーク環境である。
【００１０】
【図２】ＣＤＮからのコンテンツに対する要求をネットワークのプロキシサーバにルーティングするための例示的なネットワーク環境である。
【００１１】
【図３】ボーダーゲートウェイプロトコル（ＢＧＰ）告知を用い、フェイルオーバ機能をネットワークのルータに提供するＣＤＮのための方法を示すフローチャートである。
【００１２】
【図４】ボーダーゲートウェイプロトコル（ＢＧＰ）告知を用い、ネットワークの数個のプロキシサーバ間のロードバランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）を提供するＣＤＮのための方法を示すフローチャートである。
【００１３】
【図５】本開示の複数の実施形態を実行するときに用いられてよいコンピューティングシステムの例を示す図である。
【発明を実施するための形態】
【００１４】
本開示の複数の態様は、フェイルオーバおよびロードクラスタリング機能をコンテンツデリバリネットワーク（ＣＤＮ）の１または複数のプロキシサーバに提供するための複数のシステム、方法、コンピュータプログラムプロダクト等を含む。一実施形態において、ＣＤＮは、ルータと通信する複数のプロキシサーバを含んでよく、当該ルータを介してプロキシサーバの１または複数のからのコンテンツに対する複数の要求が受信され得る。複数のプロキシサーバの１または複数は、プロキシサーバをＣＤＮの特定のコンテンツが利用可能であるデバイスとして識別する仮想ホストインターネットプロトコル（ＩＰ）アドレスを告知してよい。複数の仮想ＩＰアドレスは、ルータとのボーダーゲートウェイプロトコルＩ（ＢＧＰ）セッションを通して、告知されてよい。仮想ホストＩＰアドレスは、コンテンツがストレージデバイスから取り出された場合、コンテンツのための特定ＩＰアドレスであるか、またはホストＩＰルートアドレスであってよい。ルータと通信する複数のプロキシサーバにフェイルオーバ機能を提供するべく、（仮想ホストＩＰアドレスまたはホストＩＰルートを提供するプロキシサーバを含む）プロキシサーバの２またはそれより多くはまた、仮想ネットワークＩＰアドレスに関連付けられるより広いＩＰアドレス範囲を含む、よりジェネリックな仮想ネットワークＩＰアドレスを告知してよい。よって、プロキシサーバが、ホストＩＰアドレスが故障するか、またはそうでなければ動作不可能であると告知する場合、ルータは、コンテンツに対する複数の要求を、仮想ネットワークＩＰアドレスを告知した複数の他のプロキシサーバの１つにルーティングしてよい。このように、１つのプロキシサーバから特定ＩＰアドレスを、および別のプロキシサーバからジェネリックなＩＰアドレスを告知することにより、複数のプロキシサーバの１または複数は、特定のプロキシサーバが故障するときの状況において、コンテンツに対する複数の要求を受信してよい。
【００１５】
別の実施形態において、ルータと通信する複数のプロキシサーバの各々は、ジェネリックなＩＰネットワークアドレスをルータに告知してよい。ＣＤＮのエンドユーザからのコンテンツに対する要求を受信することに応答して、ルータは、コンテンツがエンドユーザに提供されるプロキシサーバを選択してよい。一例において、ルータは、コンテンツに対する要求に含まれる情報からハッシュ値を計算してよい。ハッシュ値に基づいて、ルータは、コンテンツを提供する複数のプロキシサーバの１つを選択する。更に、可能な複数のハッシュ値の間でプロキシサーバの選択を広げることにより、ルータは、複数のプロキシサーバの間でコンテンツに対する複数の要求のロードバランスを行ってよい。このように、複数の利用可能なプロキシサーバの各々またはいくつかからのジェネリックなＩＰネットワークアドレスを告知することにより、ルータは、ＣＤＮからの特定のコンテンツが利用可能である複数の利用可能なプロキシサーバの間でロードバランス機能を提供してよい。
【００１６】
図１は、コンテンツを１または複数のユーザに配布するための例示的なネットワーク環境１００である。一実装において、ＣＤＮ１０２は、１または複数のアクセスネットワーク１０６に通信可能に結合されている。一般に、ＣＤＮ１０２は、要求に応じてコンテンツを提供するように構成された（以下により詳細に説明される）１または複数のコンテンツサーバおよび／またはプロキシサーバと、要求が受信されコンテンツが提供される基本的なＩＰネットワークとを備える。複数のＣＤＮサーバに関連付けられる基本的なＩＰネットワークは、ネットワークを介して通信を送受信するように構成された任意のタイプのＩＰベースの通信ネットワークの形態であってよく、任意の数および複数のタイプの電気通信構成要素を含んでもよい。このように、複数のＣＤＮプロキシサーバは、既存のＩＰベースの通信ネットワークに追加されてよい。これにより、複数のＣＤＮプロキシサーバは、コンテンツに対する要求を受信し、コンテンツプロバイダネットワーク１１６からのコンテンツを取得し、コンテンツを要求するデバイスにサポートするＩＰネットワークを介して提供する。簡素化のため、本開示の全体にわたる用語「ＣＤＮ」の使用は、別の場合が記されていない限り、通信を処理し送信するための１または複数のコンテンツサーバおよび基本的なＩＰネットワークの組み合わせを指す。
【００１７】
一実施形態において、アクセスネットワーク１０６は、例えば、ＣＤＮ１０２にアクセスを提供する１または複数のインターネットサービスプロバイダ（ＩＳＰ）等の１または複数のエンティティの制御下にあってよく、またはそれらにより操作／維持されてよい。よって、例えば、アクセスネットワーク１０６は、ユーザデバイス１０４にインターネットアクセスを提供してよい。加えて、アクセスネットワーク１０６は、ＣＤＮ１０２のＩＰネットワークに対する数個の接続を含んでよい。例えば、アクセスネットワーク１０６はアクセスポイント１２０を含む。また、ユーザデバイス１０４は、任意の数のアクセスネットワーク１０６に接続されてよく、これにより、ＣＤＮ１０２へのアクセスは、別のアクセスネットワークを介して起こり得る。一般に、ＣＤＮ１０２（またはＣＤＮに関連付けられる基本的なＩＰネットワーク）へのアクセスは、任意の数のアクセスネットワークを介して、ＣＤＮへの任意の数の入力ポートを介して生じてよい。
【００１８】
ＣＤＮ１０２は、パーソナルコンピュータ、モバイルデバイス、タブレット（例えば、ｉＰａｄ（登録商標））、または同様のもの等、概して任意の形態のコンピューティングデバイスであるユーザデバイス１０４にコンテンツを提供することが可能である。コンテンツは、ビデオ、マルチメディア、画像、オーディオファイル、テキスト、文書、ソフトウェア、および複数の他の電子リソースを限定することなく含んでよい。ユーザデバイス１０４は、コンテンツを要求し、受信し、処理し、かつ提示するように構成されている。一実装において、ユーザデバイス１０４は、コンテンツアイテムへのリンク（例えば、ハイパーリンク）が選択されてよい、またはそうでなければ入力されてよいインターネットブラウザアプリケーションを含み、要求をＣＤＮ１０２のディレクトリサーバ１１０に送信させる。
【００１９】
コンテンツに対する要求は、ＣＤＮのルータ１１０で受信されてよい。特定の一実施形態において、要求は、ルータで受信される前にＩＰネットワークの数個の構成要素を介して送信される。加えて、ＣＤＮ１０２は、選択されたリンクに関連付けられたコンテンツが取得され得るネットワークアドレス（例えば、ＩＰネットワーク内のＩＰアドレス）を提供することにより、要求に応答するように構成されたディレクトリサーバを含んでよい。ディレクトリサーバは、リンク名（例えば、ＵＲＬまたは他の識別子）を、ユーザデバイス１０４がコンテンツを取得し得る関連するネットワークアドレスに変える。
【００２０】
一実装において、ＣＤＮ１０２は、（時には「エッジサーバ」とも呼ばれる）１または複数のエッジサーバ１１２、１１４を含み、それらは、別のサーバからのコンテンツをキャッシュし、ルータ１１０および／またはユーザデバイス１０４により地理的または論理的に近傍の位置でそれを利用可能にしてよい。プロキシサーバ１１２、１１４は、ネットワークロード、空き容量、より低い配信コストを低減してよく、および／またはコンテンツダウンロード時間を低減してよい。プロキシサーバ１１２、１１４は、要求されたコンテンツを、例えば、ユーザデバイス１０４またはアクセスネットワーク１０６における中間デバイスであってよい要求元に提供するように構成されている。一実装において、プロキシサーバ１１２、１１４の１または複数は、キャッシュにローカルに格納されている要求されたコンテンツを提供する。別の実装において、プロキシサーバ１１２、１１４は、メディアアクセスサーバ（ＭＡＳ）（例えば、コンテンツ配布サーバまたはコンテンツプロバイダネットワーク１１８のコンテンツ配信元サーバ１１６）等の別のソースからの要求されたコンテンツを取得する。コンテンツは、次に、複数の要求に応答してユーザデバイス１０４に供給される。
【００２１】
図２は、ネットワークのＣＤＮプロキシサーバからのコンテンツに対する要求をルーティングするための例示的なネットワーク環境である。特に、図２は、図１からのルータ１１０およびプロキシサーバ１１２、１１４の一実施形態を示す。よって、図２のネットワーク２００は、複数のプロキシサーバ２０４‐２１２と通信するルータ２０２を含む。図２では不図示であるが、上述され、図１に示された複数の構成要素ならびに追加的なネットワーキングおよびコンピューティング構成要素が、ネットワーク２００の複数の構成要素に接続されてよく、またはそれらと通信してよいことは理解されるべきである。特に、ルータ２０２は、ネットワークに接続されたエンドユーザからのコンテンツに対する複数の要求を受信するべく、ＩＰネットワークに接続されてよく、またはその一部であってよい。また、プロキシサーバ２０４‐２１２の１または複数は、コンテンツプロバイダネットワークまたはコンテンツストレージデバイスに接続されるか、またはそれと通信し、要求を受信することに応答してコンテンツにアクセスしてよい。上記で説明されたように、プロキシサーバ２０４‐２１２は、また、ネットワークにより頻繁に用いられるいくらかのコンテンツを格納してもよい。このようにプロキシサーバ２０４‐２１２は、ＣＤＮのための複数のコンテンツストレージデバイスおよび／または複数のルータデバイスとして動作し、別個のコンテンツストレージデバイスに格納されたコンテンツにアクセスしてよい。
【００２２】
示されるように、プロキシサーバ２０４‐２１２はルータ２０２と通信する。１つの特定の例において、プロキシサーバ２０４‐２１２は、ルータ２０２との２０ギガバイトの接続または複数の接続を含む。別の例において、プロキシサーバ２０４‐２１２は、ルータ２０２への４０ギガバイトの接続または複数の接続を含む。一般に、ルータ２０２とプロキシサーバ２０４‐２１２との間の任意のタイプのネットワーク接続が提示されてよい。更に、プロキシサーバ２０４‐２１２は、ルータ２０２に直接的に接続されていなくてもよいが、その代わりにネットワークおよび／または任意の数のネットワークデバイスを介して通信してよい。以下により詳細に説明されるように、ルータ２０２は、電気通信ネットワークから複数のパケットを受信し、ルーティングプロトコルおよび複数の受信されたパケットの１または複数に含まれるアドレスに少なくとも基づいて、パケットをプロキシサーバ２０４‐２１２の１または複数にルーティングするように構成されている。１つの特定の例において、複数のパケットは、ＣＤＮからのコンテンツに対する要求を含む。
【００２３】
プロキシサーバ２０４‐２１２は、ＣＤＮを介しして要求されたコンテンツのいくらかを格納すること、および／または受信されたパケットを、コンテンツが取得されるストレージデバイスに更に送信することのいずれかを介して、ＣＤＮのコンテンツを取得し提供するように概して構成されている。そのように、コンテンツに対する要求がＣＤＮを介してエンドユーザから受信される場合、ルータ２０２は、要求に関連付けられるアドレスを分析し、どのプロキシサーバ２０４‐２１２がコンテンツを取得するか決定する。ルータ２０２は、次に、その要求を選択されたプロキシサーバ２０４‐２１２に送信する。ルータ２０２から要求を受信すると、プロキシサーバ２０４‐２１２は、要求されたコンテンツを提供するか、または要求されたコンテンツをストレージデバイスから取得して次にそのコンテンツを提供するかのいずれかを行う。いずれかのイベントにおいて、任意のプロキシサーバ２０４‐２１２は、複数のプロキシサーバのクラスタがスケーラブルであるように、ストレージデバイスからの任意のコンテンツを提供するように構成されてよい。
【００２４】
プロキシサーバ２０４‐２１２がコンテンツを取得し提供することが不可能である場合、要求されたコンテンツを提供するときにサービスの何らかの混乱が生じ得る。例えば、プロキシサーバ２０４‐２１２の１または複数がクラッシュし得、またはそうでなければ何らかの理由でコンテンツを提供するのに動作不可能であるかもしれない。そのような場合、複数の故障したプロキシサーバ２０４‐２１２に接続された、またはそれらからコンテンツを受信する複数のエンドユーザは、それらのセッションが遮断されることを経験するかもしれず、または複数のプロキシサーバからコンテンツにアクセスすることが可能でないかもしれない。別の例において、プロキシサーバ２０４‐２１２の１または複数は、サーバにおけるＤｏＳ攻撃の間等、コンテンツに対する複数の要求に圧倒されるかもしれない。あまりにも多くのエンドユーザがプロキシサーバからのコンテンツを要求する場合、エンドユーザの１または複数は、プロキシサーバにアクセスするか、またはそうでなければプロキシサーバと通信することが不可能であるかもしれない。プロキシサーバ２０４‐２１２がクラッシュするか、利用不可になる場合、故障したプロキシサーバに接続された複数のエンドユーザが別のプロキシサーバに伝送される前にいくらか時間が取られるかもしれない。理解されるように、そのような状況は、ＣＤＮによりホスティングされるいくらかのコンテンツへのアクセスが、ネットワークの１または複数のユーザにとって利用不可であるかもしれないことから、ＣＤＮのオペレータにとって望ましくないかもしれない。
【００２５】
本開示は、ＣＤＮにおける１または複数のプロキシサーバ２０４‐２１２の潜在的な故障に対処するいくつかの方法を記載する。特に、図３は、複数のプロキシサーバと通信するネットワークのルータにフェイルオーバ機能を提供するべくボーダーゲートウェイプロトコル（ＢＧＰ）告知を用いるＣＤＮのための１つの方法を示すフローチャートである。一般に、図３の方法の複数の動作は、ＣＤＮの１または複数のルータによって実行されてよいが、電気通信ネットワークの別の数およびタイプの構成要素によって実行されてもよい。方法の複数の動作は、図２のネットワーク２００を参照して後に記載される。しかしながら、複数の動作は、本明細書で説明される任意のネットワーク構成またはそうでなければ周知のネットワーク構成で実行されてよいことは理解されるべきである。
【００２６】
動作３０２から開始して、ルータ２０２は、ＣＤＮの特定のコンテンツが、告知するプロキシサーバにおいて配置されてもよいことを示すホストインターネットプロトコル（ＩＰ）アドレスのルータと通信する１つのプロキシサーバ２０４‐２１２から、ＢＧＰ告知メッセージを受信する。一般に、ルータ２０２およびプロキシサーバ（この例では、プロキシサーバ２０４）は、プロキシサーバが、プロキシサーバから入手可能なコンテンツの１または複数の仮想ＩＰアドレスを告知するＢＧＰセッションに入ってもよい。告知された仮想ＩＰアドレスは、コンテンツに対する複数の要求のルーティングのためにルータ２０２によって格納されてもよい。特に、ルータ２０２は、プロキシサーバ２０４‐２１２の１または複数から入手可能なコンテンツに対する要求を受信してもよい。要求のヘッダに格納された情報に基づいて、ルータ２０２は、その要求がどこにルーティングされるべきか決定する。特に、ルータ２０２は、要求のヘッダにおける情報を格納されたルーティングテーブルと比較し、その要求がどのようにルーティングされるか決定する。一実施形態において、ルーティングテーブルにおける情報は、プロキシサーバ２０４‐２１２（ならびにネットワーク内の複数の他の構成要素）からのＢＧＰ告知を介して追加される。
【００２７】
プロキシサーバ２０４によって告知されるホスト仮想ＩＰアドレスは、ＣＤＮを通して入手可能なコンテンツに関連付けられる任意のタイプのＩＰアドレスであってよい。しかしながら、１つの特定の例において、仮想ＩＰアドレスは、Ｃｌａｓｓｌｅｓｓ  Ｉｎｔｅｒ−Ｄｏｍａｉｎ  Ｒｏｕｔｉｎｇ（ＣＩＤＲ）タイプのＩＰアドレスを含んでもよい。一般に、ＩＰアドレスにおけるＣＩＤＲ表記は、ＩＰアドレス範囲の告知を可能にする。ＩＰアドレスについてのＣＩＤＲ表記は、斜線およびアドレスの最後に加えられた１０進数を有する典型的なＩＰアドレスを含む。ＩＰアドレスに付された斜線および１０進数は、複数の隣接するアドレスの集約を可能にする。よって、１６個の隣接する／２４ネットワークが、複数のＩＰアドレスの最初の２０ビットが一致する場合、単一の／２０ルートとして集約され得る。これは、ＢＧＰセッションを通して告知される必要があるルートの数の低減を可能にする。また、理解されるように、ＩＰアドレスにおける斜線文字の後の１０進値がより大きいほど、構成要素に関連付けられるＩＰアドレス範囲はより小さいことを示す。これにより、／３２で終わるＩＰアドレスは、／２５で終わるＩＰアドレスよりも特定されたＩＰアドレスである。
【００２８】
上述されたように、プロキシサーバ２０４は、プロキシサーバを介してコンテンツの利用可能性について、ルータ２０２に仮想ＩＰアドレスを告知してもよい。一例において、プロキシサーバ２０４によって告知される仮想ＩＰアドレスは、コンテンツについての特定ホストＩＰアドレスであり得る。特定ホストＩＰアドレスは、コンテンツがプロキシサーバ２０４で格納される場合に用いられてもよい。例えば、ホストＩＰアドレスは、ＩＰアドレス４．２．２．１２６であり得る。しかしながら、プロキシサーバ２０４は、また、要求されたコンテンツを格納するストレージデバイスに対してルータとしても動作してよい。そのように、プロキシサーバ２０４によって告知された仮想ＩＰアドレスは、ホストＩＰルートであってもよく、ホストＩＰルートのためのＣＩＤＲ表記を含んでもよい。例えば、ホストＩＰルートは、ＩＰアドレス４．２．２．１／３２であってもよい。ＩＰホストアドレスおよび／またはＩＰホストルートアドレスは、ＩＰホストアドレスに関連付けられるコンテンツがプロキシサーバ２０４において位置してもよいことを、ルータ２０２（およびルータに接続されたネットワーク）に対して示す。一実施形態において、ＩＰホストアドレスおよびＩＰホストルートアドレスは、ＣＤＮのディレクトリサーバにより提供されてよく、プロキシサーバ２０４とのＢＧＰセッションの間に告知されてもよい。
【００２９】
動作３０４において、ルータは、ホストＩＰアドレスまたはホストＩＰルートが告知されたプロキシサーバ２０４およびルータ２０２と通信する少なくとも１つの他のプロキシサーバ（例えば、プロキシサーバ２０６）から仮想ネットワークＩＰアドレス告知を受信する。一般に、１または複数のプロキシサーバ２０４、２０６により告知される仮想ネットワークＩＰアドレスは、仮想ホストＩＰアドレスまたはルートほど特定されていないＩＰアドレスでない。上記の例を用いて、プロキシサーバ２０４およびプロキシサーバ２０６は、４．２．２．０／２５のネットワークＩＰアドレスを告知してもよい。従って、ネットワークＩＰアドレスが／２５のＣＩＤＲ表記を含み、ホストＩＰルートアドレスが／３２のＣＩＤＲ表記を含むので、ホストＩＰルートアドレスは、（それがＣＩＤＲ表記により包含されるより小さいＩＰアドレス範囲を含むことから）より特定のものである。プロキシサーバ２０４、２０６により告知された仮想ネットワークＩＰアドレスは、ルータ２０２のためのルーティングテーブルに格納されてもよい。
【００３０】
プロキシサーバ２０４およびプロキシサーバ２０６を含むことが上述されたが、ネットワークＩＰアドレスは、ルータ２０２と通信する任意の数のプロキシサーバ２０４‐２１２から告知されてもよいことは理解されるべきである。例えば、ネットワークＩＰアドレスは、プロキシサーバ２０４、プロキシサーバ２０８、およびプロキシサーバ２１０から告知されてもよい。特定の一実施形態において、ネットワークＩＰアドレスを告知するプロキシサーバ２０４‐２１２の数は、３つのプロキシサーバに限定される。以下でより詳細に説明される別の例において、ルータ２０２と通信する、またはそうでなければルータ２０２に割り当てられた各プロキシサーバ２０４‐２１２は、同一のネットワークＩＰアドレスを告知してもよい。
【００３１】
上述のように、ルータ２０２は、ルータによって格納されたルーティングテーブルに少なくとも基づいて、コンテンツに対する受信された要求をプロキシサーバにルーティングするように構成されている。特に、ルータ２０２は、ルータが最も特定ＩＰアドレスを有するプロキシサーバ２０４‐２１２に受信された要求をルーティングしてもよい。例えば、ルータ２０２は、上述されたように、２つの格納されたＩＰアドレスを特定のコンテンツに対して有するが、ルータは、コンテンツに対する複数の要求を、プロキシサーバ２０６を介してプロキシサーバ２０４にルーティングしてもよい。それは、プロキシサーバ２０４により告知されたホストＩＰアドレスが、プロキシサーバ２０６により告知されたネットワークＩＰアドレスより特定のものであるためである。そのように、ホストＩＰアドレスに関連付けられるコンテンツに対する全ての要求が、ルータ２０２で受信される場合、プロキシサーバ２０４にルーティングされる。
【００３２】
しかしながら、いくらかの状況において、プロキシサーバ２０４は、コンテンツを提供することが不可能になり得る。例えば、プロキシサーバ２０４は、故障するかまたはクラッシュし、動作不可能になるかもしれない。そのような状況において、ルータ２０２は、動作３０６におけるプロキシサーバ２０４の故障の指標を受信してもよい。それに応答して、ルータ２０２は、動作３０８で故障したプロキシサーバ２０４に関連付けられるルータのルーティングテーブルの複数のＩＰアドレスを取り除いてもよい。言い換えれば、プロキシサーバ２０４はコンテンツを提供または取得することが不可であるので、ルータ２０２は、複数の要求をプロキシサーバへルーティングする可能性を取り除く。上記の例を続けると、ルータは、次に、プロキシサーバ２０４のホストＩＰアドレスまたはルートを取り除いてもよい。
【００３３】
動作３１０において、ルータ２０２は、ＣＤＮに関連付けられるユーザデバイスからコンテンツに対する要求を受信する。この要求は、上述された要求と同様である。しかしながら、このインスタンスにおいて、コンテンツが取り出されてもよいプロキシサーバ２０４は故障した。従って、動作３１２において、ルータ２０２は、ルーティングテーブルを調べ、要求の宛先ＩＰアドレスに関連付けられた利用可能な最も特定されたルートに要求をルーティングする。プロキシサーバ２０６はネットワークＩＰアドレスを告知したことから、ルータ２０２は次に、要求をプロキシサーバ２０６にルーティングしてもよい。
【００３４】
上記の複数の動作を介して、プロキシサーバ２０４‐２１２は、複数の要求を受信してコンテンツをＣＤＮに提供するべく、フェイルオーバ代替プロキシサーバをルータ２０２に提供する。説明されたように、プロキシサーバ２０４は、プロキシサーバによって告知されたＩＰホストアドレスのため、コンテンツに対する複数の要求を動作可能な間に処理してもよい。しかしながら、プロキシサーバ２０４が故障する状況において、複数の要求は、プロキシサーバ２０６によって告知されたネットワークＩＰアドレスに基づいて、プロキシサーバ２０６に送信されてもよい。フェイルオーバプロキシサーバ２０６への複数の要求のルーティングは、プロキシサーバが故障するときにコンテンツへの複数の代替パスを見つけるように試みるネットワークの複数の以前の構成よりも速く起こってよい。むしろ、好適なプロキシサーバ２０４が故障する場合、フェイルオーバプロキシサーバ２０６により告知されたそれほど特定されていないネットワークＩＰアドレスがルーティングテーブルに既に含まれていることから、フェイルオーバプロキシサーバ２０６に対する複数の追加の要求のルーティングは、迅速に起こる。
【００３５】
加えて、フェイルオーバプロキシサーバ２０６は、故障した好適なプロキシサーバ２０４によって処理されている１または複数のセッションをとらえてもよい。一般に、コンテンツセッションは、ビデオファイルの複数のセグメント等、コンテンツの複数の部分に対する数個の要求を含んでもよい。プロキシサーバ２０４の故障時に複数のセグメントのいくつかが失われるかもしれず、またはエンドユーザに提供されないかもしれないが、プロキシサーバ２０４の故障後にルータ２０２に到達する複数のセグメントに対する任意の複数の要求は、フェイルオーバプロキシサーバによって告知されるそれほど特定されていないネットワークＩＰアドレスに基づいて、フェイルオーバプロキシサーバ２０６に自動的にルーティングされる。
【００３６】
上記の方法を介して、複数のプロキシサーバ２０４−２１２がプロキシサーバを介して入手可能なコンテンツのためのフェイルオーバ機能を含んでもよい。しかしながら、いくつかの状況において、フェイルオーバプロキシサーバ２０６に送信される複数の追加の要求は、フェイルオーバプロキシサーバが複数の要求に圧倒されるという結果をもたらし得る。これによりプロキシサーバの動作は悪化する。そのように、ルータ２０２で受信されるコンテンツに対する複数の要求のバランスを、ルータと通信するプロキシサーバ２０４‐２１２の間で取るように試みるロードバランシング機能がネットワーク２００構成に含まれてもよい。ロードバランシング機能（いくつかの状況では、フェイルオーバ機能に加えて）を提供するネットワーク２００の１つのそのような構成は、以下で示される。
【００３７】
特に、図４は、ボーダーゲートウェイプロトコル（ＢＧＰ）告知を用い、ネットワークの数個のプロキシサーバ間のロードバランシングを提供するＣＤＮのための方法を示すフローチャートである。図３の方法と同様に、図４の方法の複数の動作は、ＣＤＮの１または複数のルータによって実行されてもよいが、電気通信ネットワークの別の数およびタイプの構成要素によって実行されてもよい。方法の複数の動作は、図２のネットワーク２００を参照して以下に記載される。しかしながら、複数の動作は、本明細書で説明される、またはそうでなければ周知の任意のネットワーク構成によって実行されてもよいことは理解されるべきである。
【００３８】
動作４０２で開始して、ルータ２０２と通信する、またはそうでなければそれに関連付けられるプロキシサーバ２０４‐２１２は、ルータとのＢＧＰセッションを介してネットワークＩＰアドレスを告知する。プロキシサーバ２０４‐２１２によって告知されるネットワークＩＰアドレスは、上述のネットワークＩＰアドレスと同様であり得る。従って、一例において、ネットワークＩＰアドレスは、ネットワークＩＰアドレスである４．２．２．０／２５等、ＣＩＤＲ表記を含んでもよい。一般に、プロキシサーバ２０４‐２１２によって告知されるネットワークＩＰアドレスは、ネットワークのＩＰアドレス範囲の指標を提供する任意の形態のＩＰアドレスを含んでもよい。ＩＰアドレス範囲を含むネットワークＩＰアドレスを告知することで、プロキシサーバ２０４‐２１２は、ネットワークへの複数の接続としてルータ２０２により認識される。以下でより詳細に説明されるように、各プロキシサーバ２０４‐２１２からのネットワークＩＰアドレスの告知は、ルータ２０２が、要求に含まれる宛先ＩＰアドレスに基づいて複数のプロキシサーバのいずれかにコンテンツに対する要求を提供することを可能にする。
【００３９】
動作４０４において、ルータ２０２は、ＣＤＮに関連付けられたユーザデバイスからのコンテンツに対する要求を受信する。この要求は、上述された要求と同様である。しかしながら、ルーティングテーブルは、いずれの他の適格なルートよりも特定の１つのルートを含まないので、ルータ２０２は要求をプロキシサーバ２０４‐２１２のいずれかに送信してもよい。複数の利用可能なプロキシサーバのプロキシサーバ２０４‐２１２のうちどれに要求がルーティングされるか選択するべく、ルータは、動作４０６においてハッシュ値を計算してもよい。一般に、ハッシュ値は、プロキシサーバ２０４‐２１２の１つを選択し、要求をルーティングするべく、要求から決定される任意の繰返し可能な値であってもよい。特定の一実施形態において、ルータ２０２は、ハッシュ値を計算するべく要求のヘッダに含まれる送信元アドレス、宛先アドレス、送信元ポート等の要求ヘッダにおける情報を用いてもよい。要求ヘッダにおける情報を用いることにより、ハッシュ値は、ヘッダにおけるそのような情報がセッション内の要求によって異なることはないかもしれないので、特定のコンテンツ取得セッションについて繰返し可能であってよい。言い換えれば、セッションの間は同じままであるヘッダにおける情報を用いることにより、単一のプロキシサーバ２０４‐２１２が、選択されたプロキシサーバがセッション中に故障しない限り、要求されたコンテンツの全てを提供するように選択される。
【００４０】
計算されたハッシュ値は、次に、複数の利用可能なプロキシサーバから、動作４０８において要求を送信するプロキシサーバ２０４‐２１２を選択するのに用いられてもよい。例えば、ネットワークＩＰアドレスを告知する各プロキシサーバ２０４‐２１２は、ルータ２０２によりある範囲のハッシュ値が割り当てられてもよい。従って、ハッシュ値を計算すると、ルータ２０２は、どのプロキシサーバ２０４‐２１２がハッシュ値に関連付けられるか決定し、要求されたコンテンツが取り出されるそのプロキシサーバを選択してもよい。動作４１０において、ルータ２０２は、次に、コンテンツに対する要求を満たすために、選択されたプロキシサーバ２０４‐２１２に要求を送信してもよい。このように、ルータ２０２は、プロキシサーバの各々により告知されたネットワークＩＰアドレスに少なくとも基づいて、ＣＤＮからのコンテンツに対する複数の要求に対して複数の利用可能なプロキシサーバ２０４−２１２の間でロードバランスを行ってもよい。
【００４１】
上記の複数の動作を介して、ネットワークＩＰアドレスを告知するルータ２０２と通信する任意のプロキシサーバ２０４‐２１２は、ＣＤＮからのコンテンツに対する要求を満たしてよい。よって、ルータ２０２は、複数の要求を受信した際、様々なプロキシサーバ２０４‐２１２の間で複数の要求に対しロードバランスを行ってもよい。加えて、コンテンツセッション全体について同じであるプロキシサーバを選択するべくハッシュ値を算出することにより、要求されたコンテンツの各部分は、単一のプロキシサーバにより提供されてもよい。更に、ルータ２０２は、利用可能な複数のプロキシサーバ２０４−２１２のためのフェイルオーバ保護を提供してもよい。例えば、プロキシサーバ２０４‐２１２の１または複数が、コンテンツを提供するのに利用不可になる状況において、ルータ２０２は、利用不可なプロキシサーバを検知し得、それに従ってハッシュ値計算を調整し得る。言い換えれば、ルータ２０２は、残りの複数の利用可能なプロキシサーバの１つを示す複数の値を返すように、ハッシュ値計算を調整してもよい。よって、コンテンツに対する要求がルータ２０２で受信された場合、ハッシュ値の計算は、コンテンツが提供される残りの利用可能なプロキシサーバについての値を返してもよい。このように、ルータ２０２は、複数のサーバの１つが故障すれば、複数のプロキシサーバのプロキシサーバ２０４‐２１２の選択にフェイルオーバ機能を提供する。
【００４２】
特定の仮想ホストＩＰアドレスまたはルートおよびよりジェネリックな（または、より大きなＩＰアドレス範囲を含むように、より広範な）ネットワークＩＰアドレスを告知するＢＧＰ告知セッションを用いて、複数のプロキシサーバ２０４−２１２は、複数のプロキシサーバと通信するルータ２０２にフェイルオーバ機能および／またはロードバランシング機能を提供してもよい。具体的には、プロキシサーバ２０４‐２１２から告知された仮想ネットワークＩＰアドレスにより、ルータ２０２が、バランスが取られた方式でエンドユーザにコンテンツを提供するプロキシサーバを選択することが可能になってもよい。加えて、プロキシサーバ２０４‐２１２の１または複数は、より特定の仮想ＩＰホストアドレスを告知するプロキシサーバを介してコンテンツを提供するのに好適なプロキシサーバとして識別されてもよい。理解されるように、本明細書で説明される複数の方法は、ＢＧＰセッションの間にデバイスにより告知されるＩＰアドレスの数およびタイプによって、フェイルオーバおよび／またはロードバランシング機能を提供するように、いずれのネットワーキングデバイスまたはデバイスによって実行されてもよい。
【００４３】
図５は、上記で開示されたネットワークの構成要素の複数の実施形態を実行するのに用いられてもよいコンピューティングデバイスまたはコンピュータシステム５００の例を示すブロック図である。例えば、図５のコンピューティングシステム５００は、上述されたルータまたは複数のプロキシサーバを実装するのに用いられてよい。コンピュータシステム（システム）は、１または複数のプロセッサ５０２‐５０６を含む。プロセッサ５０２‐５０６は、プロセッサバス５１２とのインタラクションを管理するべく、１または複数の内部レベルのキャッシュ（不図示）およびバスコントローラまたはバスインタフェースユニットを含んでよい。ホストバスまたはフロントサイドバスとしてもまた知られているプロセッサバス５１２は、プロセッサ５０２‐５０６をシステムインタフェース５１４と結合させるのに用いられてよい。システムインタフェース５１４は、システム５００の複数の他の構成要素をプロセッサバス５１２とインタフェース接続するべく、プロセッサバス５１２に接続されてよい。例えば、システムインタフェース５１４は、メインメモリ５１６をプロセッサバス５１２とインタフェース接続するためのメモリコントローラ５１４を含んでよい。メインメモリ５１６は、典型的には、１または複数のメモリカードおよび制御回路（不図示）を含む。システムインタフェース５１４は、また、１または複数のＩ／ＯブリッジまたはＩ／Ｏデバイスをプロセッサバス５１２とインタフェース接続する入出力（Ｉ／Ｏ）インタフェース５２０も含んでよい。１または複数のＩ／Ｏコントローラおよび／またはＩ／Ｏデバイスは、示されるように、Ｉ／Ｏコントローラ５２８およびＩ／Ｏデバイス５４０等のＩ／Ｏバス５２６に接続されてよい。
【００４４】
Ｉ／Ｏデバイス５４０は、また、情報および／または複数のコマンド選択をプロセッサ５０２‐５０６に通信するための英数字および他の複数のキーを含む、英数字入力デバイス等の入力デバイス（不図示）も含んでよい。別のタイプのユーザ入力デバイスは、マウス、トラックボール、もしくは方向情報および複数のコマンド選択をプロセッサ５０２‐５０６に通信し、かつ表示デバイスにおけるカーソル動作を制御するための複数のカーソル方向キー等のカーソルコントロールを含む。
【００４５】
システム５００は、メインメモリ５１６と呼ばれる動的ストレージデバイス、またはランダムアクセスメモリ（ＲＡＭ）または情報とプロセッサ５０２‐５０６によって実行されることになる複数の命令とを格納するためにプロセッサバス５１２に結合された他の複数のコンピュータ可読デバイスを含んでよい。メインメモリ５１６は、また、プロセッサ５０２‐５０６による複数の命令の実行中、一時的変数または他の中間情報を格納するために用いられてもよい。システム５００は、リードオンリーメモリ（ＲＯＭ）および／またはプロセッサ５０２‐５０６についての静的情報および複数の命令を格納するためのプロセッサバス５１２に結合された他の静的ストレージデバイスを含んでよい。図５で説明されたシステムは、本開示の複数の態様に従って使用し得るまたは構成され得るコンピュータシステムの１つの可能な例にすぎない。
【００４６】
一実施形態に従って、上記の複数の技術は、メインメモリ５１６に含まれる１または複数の命令の１または複数のシーケンスを実行するプロセッサ５０４に応答して、コンピュータシステム５００によって実行されてよい。これらの命令は、ストレージデバイス等の別の機械可読媒体からメインメモリ５１６へと読み込まれてよい。メインメモリ５１６に含まれる複数の命令の複数のシーケンスの実行により、本明細書で記述される複数の処理ステップをプロセッサ５０２‐５０６に実行させてよい。複数の代替的な実施形態において、電気回路が複数のソフトウェア命令の代わりに、またはそれらと組み合わせて用いられてよい。よって、本開示の複数の実施形態は、ハードウェアおよびソフトウェア構成要素の両方を含んでよい。
【００４７】
機械可読媒体は、機械（例えば、コンピュータ）によって可読な形態（例えば、ソフトウェア、処理アプリケーション）で情報を格納または送信するための任意の機構を含む。そのような複数の媒体は、限定されないが、不揮発性媒体および揮発性媒体の形を取ってよい。複数の不揮発性媒体は、光学もしくは磁気ディスクを含む。複数の揮発性媒体は、メインメモリ５１６等の動的メモリを含む。機械可読媒体の一般的な形態は、限定されないが、磁気格納媒体（例えば、フロッピー（登録商標）ディスケット）、光学記憶媒体（例えば、ＣＤ‐ＲＯＭ）、磁気光学記憶媒体、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能メモリ（例えば、ＥＰＲＯＭおよびＥＥＰＲＯＭ）、フラッシュメモリ、または複数の電子命令を格納するのに適した他の複数のタイプの媒体を含んでよい。
【００４８】
本開示の複数の実施形態は、本明細書において記述される様々なステップを含む。複数のステップは、複数のハードウェアコンポーネントによって実行されてよく、または機械で実行可能な複数の命令において具現化されてよく、それらは、複数の命令でプログラムされた汎用もしくは専用プロセッサに複数のステップを実行させるのに用いられてよい。代替として、複数のステップは、ハードウェア、ソフトウェアおよび／またはファームウェアの組み合わせによって実行されてもよい。
【００４９】
本発明の範囲から逸脱することなく、様々な修正および追加が、説明された複数の例示的な実施形態に対してなされ得る。例えば、上記の複数の実施形態は複数の特定の特徴を指す一方、本発明の範囲は、また、記述された全ての特徴を含まない複数の特徴および実施形態の複数の異なる組み合わせを有する複数の実施形態も含む。従って、本発明の範囲は、全てのそのような代替的修正および変形をそれらの全ての均等物と合わせて包含することを目的としている。
【図１】
2017507575.tif 000003
【図２】
2017507575.tif 000004
【図３】
2017507575.tif 000005
【図４】
2017507575.tif 000006
【図５】
2017507575.tif 000007
【国際調査報告】
2017507575.tif 000008