(57)【特許請求の範囲】
【請求項１】
内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイであって、
各前記サーバのアドレスを記憶している記憶部と、
ダウンロードするデータをバッファリングするダウンロードバッファ部と、
前記要求元端末が前記複数のサーバのいずれかに格納されている当該コンテンツの転送を要求した第１のＩＰパケットを検知したならば、優先的にコンテンツを転送すると識別し、各前記サーバの転送速度順を転送順序とすると共に各前記サーバの転送速度に基いて各前記サーバから次に転送する当該コンテンツのサイズを決定し、当該コンテンツの転送を要求するＩＰパケットを各前記サーバに並行して代理送信し、各前記サーバから当該コンテンツの転送を受けて前記ダウンロードバッファ部にバッファリングして、各前記サーバの転送速度を再測定することを繰り返すＰｒｏｘｙ処理部と、を有しており、
前記Ｐｒｏｘｙ処理部は、前記要求元端末への応答の第２のＩＰパケットの送信元アドレスに前記第１のＩＰパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信する、
ことを特徴とするコンテンツ優先転送ゲートウェイ。
【請求項２】
前記Ｐｒｏｘｙ処理部は、前記内部ネットワークから送信されたＨＴＴＰのｇｅｔ要求のＩＰパケットの宛先アドレスが前記複数のサーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別して、ＨＴＴＰのｇｅｔ要求のＩＰパケットを各前記サーバに並行して代理送信する、
ことを特徴とする請求項１に記載のコンテンツ優先転送ゲートウェイ。
【請求項３】
前記Ｐｒｏｘｙ処理部は、各前記サーバに対してＤＮＳ（Domain Name System）でアドレス解決をする際のサーバアドレスの返却順で転送順序を設定して、新規フローの最初の代理送信において各前記サーバから前記コンテンツの各位置の所定サイズのデータを先頭から末尾に向けてダウンロードし、
以降は各前記サーバの転送速度の順で転送順序を設定する、
ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイ。
【請求項４】
前記記憶部は、前記コンテンツを優先的に転送する端末のＩＰアドレスの情報テーブルを記憶しており、
前記Ｐｒｏｘｙ処理部は、前記第１のＩＰパケットの送信元アドレスが前記情報テーブルに存在したならば、ＩＰパケットを各前記サーバに並行して代理送信する、
ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイ。
【請求項５】
前記Ｐｒｏｘｙ処理部は、前記第２のＩＰパケットのＴＯＳ（Type Of Service）フィールドのＤＳＣＰに、ＡＦ（Assured fowarding）の値セットを設定する、
ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイ。
【請求項６】
前記Ｐｒｏｘｙ処理部は、優先転送トンネルを介して前記第２のＩＰパケットを前記要求元端末に転送する、
ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイ。
【請求項７】
前記Ｐｒｏｘｙ処理部は、各前記サーバからのデータのダウンロードと、前記ダウンロードバッファ部にバッファリングされている前記コンテンツの前記要求元端末への代理送信とを同期して実行する、
ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイ。
【請求項８】
内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイが行うコンテンツ優先転送方法であって、
前記コンテンツ優先転送ゲートウェイは、処理部と、各前記サーバそれぞれのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、を有しており、
前記処理部は、前記内部ネットワークから送信されたＨＴＴＰのｇｅｔ要求の第１のＩＰパケットの送信元アドレスが前記要求元端末、当該第１のＩＰパケットの宛先アドレスが各前記サーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別し、
前記第１のＩＰパケットの要求サイズを所定サイズに変更したＨＴＴＰのｇｅｔ要求のＩＰパケットを各前記サーバに並行して代理送信し、各前記サーバのＨＴＴＰの２００（ＯＫ）のＩＰパケットを代理応答してデータを前記ダウンロードバッファ部にバッファリングすると共に各前記サーバの転送速度を再測定して各前記サーバから次回ダウンロードするデータのサイズを決定することを繰り返し、
前記要求元端末へのＨＴＴＰの２００（ＯＫ）の第２のＩＰパケットの送信元アドレスに前記第１のＩＰパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信する、
ことを特徴とするコンテンツ優先転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワークに接続されている複数のミラーサーバからコンテンツを効率的に転送するコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイに関する。
【背景技術】
【０００２】
近年、インターネット上でダウンロードを実施する際、同一のデータやコンテンツの複製を格納している複数のサーバを用意し、サーバ間でロードバランスをすることで、サーバの負荷分散により、負荷集中によるダウンロード速度の低下を防ぎ、転送効率の向上を実現する技術が知られている。この同一のデータやコンテンツを格納している複数のサーバは、ミラーサーバと呼ばれている。
非特許文献１には、複数サーバから分割ダウンロードして、ダウンロードの高速化を図る技術が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「複数サーバーから分割ダウンロードして高速化を図る「Star Downloader」v1.1」、[online]、２００２年２月１２日、窓の杜、［平成２３年５月３１日検索］、インターネット （URL:http://www.forest.impress.co.jp/article/2002/02/12/stardownloader.html）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１の技術は、複数のミラーサーバから単一のコンテンツを並列受信することで高速化するには有効である。しかし、複数のミラーサーバのうちダウンロード速度の遅いものが存在する場合や、特定のミラーサーバに係る回線状況の悪化により、ダウンロード速度が低下する虞がある。また、Youtube（登録商標）に代表される動画サイトのように、コンテンツの全てをダウンロードする前にコンテンツの再生が可能となる場合、コンテンツの最初の部分を応答速度の遅いサーバからダウンロードすると、再生開始までのオーバヘッドが大きくなる虞がある。
【０００５】
そこで、本発明は、複数のミラーサーバからコンテンツを高速でダウンロードし、かつ、コンテンツの再生開始までのオーバヘッドを少なくすることを可能とするコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイを提供することを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、請求項１に記載の発明は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイである。このコンテンツ優先転送ゲートウェイは、各前記サーバのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、前記要求元端末が前記複数のサーバのいずれかに格納されている当該コンテンツの転送を要求した第１のＩＰパケットを検知したならば、優先的にコンテンツを転送すると識別し、各前記サーバの転送速度順を転送順序とすると共に各前記サーバの転送速度に基いて各前記サーバから次に転送する当該コンテンツのサイズを決定し、当該コンテンツの転送を要求するＩＰパケットを各前記サーバに並行して代理送信し、各前記サーバから当該コンテンツの転送を受けて前記ダウンロードバッファ部にバッファリングして、各前記サーバの転送速度を再測定することを繰り返すＰｒｏｘｙ処理部と、を有している。前記Ｐｒｏｘｙ処理部は、前記要求元端末への応答の第２のＩＰパケットの送信元アドレスに前記第１のＩＰパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信することを特徴とするコンテンツ優先転送ゲートウェイとした。
【０００７】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身がＨＴＴＰプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末や各サーバに機能を追加することなく、優先転送サービスを提供可能となる。
【０００８】
請求項２に記載の発明では、前記Ｐｒｏｘｙ処理部は、前記内部ネットワークから送信されたＨＴＴＰのｇｅｔ要求のＩＰパケットの宛先アドレスが前記複数のサーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別して、ＨＴＴＰのｇｅｔ要求のＩＰパケットを各前記サーバに並行して代理送信する、ことを特徴とする請求項１に記載のコンテンツ優先転送ゲートウェイとした。
【０００９】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、内部ネットワークから送信されたＨＴＴＰのｇｅｔ要求のＩＰパケットの宛先アドレスに基づいて、優先転送サービスか否かの判定と、優先転送を実施することができる。
【００１０】
請求項３に記載の発明では、前記Ｐｒｏｘｙ処理部は、各前記サーバに対してＤＮＳ（Domain Name System）でアドレス解決をする際のサーバアドレスの返却順で転送順序を設定して、新規フローの最初の代理送信において各前記サーバから前記コンテンツの各位置の所定サイズのデータを先頭から末尾に向けてダウンロードし、以降は各前記サーバの転送速度の順で転送順序を設定する、ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイとした。
【００１１】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイは、各サーバに対してＤＮＳでアドレス解決をする際のサーバアドレスの返却順で転送順序を設定する。これによって、新規フローの最初の代理送信以前に、各サーバの転送順序を設定することができる。
【００１２】
請求項４に記載の発明では、前記記憶部は、前記コンテンツを優先的に転送する端末のＩＰアドレスの情報テーブルを記憶しており、前記Ｐｒｏｘｙ処理部は、前記第１のＩＰパケットの送信元アドレスが前記情報テーブルに存在したならば、ＩＰパケットを各前記サーバに並行して代理送信する、ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイとした。
【００１３】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、契約したユーザのみ、この優先転送サービスを提供可能となる。
【００１４】
請求項５に記載の発明では、前記Ｐｒｏｘｙ処理部は、前記第２のＩＰパケットのＴＯＳ（Type Of Service）フィールドのＤＳＣＰに、ＡＦ（Assured fowarding）の値セットを設定する、ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイとした。
【００１５】
請求項６に記載の発明では、前記Ｐｒｏｘｙ処理部は、優先転送トンネルを介して前記第２のＩＰパケットを前記要求元端末に転送する、ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイとした。
【００１６】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、要求元端末への応答の第２のＩＰパケットを優先的に転送することができる。
【００１７】
請求項７に記載の発明では、前記Ｐｒｏｘｙ処理部は、各前記サーバからのデータのダウンロードと、前記ダウンロードバッファ部にバッファリングされている前記コンテンツの前記要求元端末への代理送信とを同期して実行する、ことを特徴とする請求項１または請求項２に記載のコンテンツ優先転送ゲートウェイとした。
【００１８】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身が必要とするバッファサイズを小さく抑えることが可能となる。
【００１９】
請求項８に記載の発明は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイが行うコンテンツ優先転送方法である。前記コンテンツ優先転送ゲートウェイは、処理部と、各前記サーバそれぞれのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、を有している。前記処理部は、前記内部ネットワークから送信されたＨＴＴＰのｇｅｔ要求の第１のＩＰパケットの送信元アドレスが前記要求元端末、当該第１のＩＰパケットの宛先アドレスが各前記サーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別し、前記第１のＩＰパケットの要求サイズを所定サイズに変更したＨＴＴＰのｇｅｔ要求のＩＰパケットを各前記サーバに並行して代理送信し、各前記サーバのＨＴＴＰの２００（ＯＫ）のＩＰパケットを代理応答してデータを前記ダウンロードバッファ部にバッファリングすると共に各前記サーバの転送速度を再測定して各前記サーバから次回ダウンロードするデータのサイズを決定することを繰り返し、前記要求元端末へのＨＴＴＰの２００（ＯＫ）の第２のＩＰパケットの送信元アドレスに前記第１のＩＰパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信することを特徴とするコンテンツ優先転送方法とした。
【００２０】
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身がＨＴＴＰプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末や各サーバに機能を追加することなく、優先転送サービスを提供可能となる。
【発明の効果】
【００２１】
本発明によれば、複数のミラーサーバからコンテンツを高速でダウンロードし、かつ再生開始までのオーバヘッドを少なくすることを可能とするコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイを提供することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態に於けるネットワークの構成例を示す図である。
【図２】第１の実施形態に於ける端末のサーバ保持テーブルの例を示す図である。
【図３】第１の実施形態に於けるダウンロード動作を示すフローチャートである。
【図４】第１の実施形態に於けるダウンロードデータの分割例を示す図である。
【図５】第１の実施形態に於けるダウンロード動作を示すシーケンス図である。
【図６】第２の実施形態に於けるネットワークの構成例を示す図である。
【図７】第２の実施形態に於けるゲートウェイの構成例を示す図である。
【図８】第２の実施形態に於けるゲートウェイのサーバ保持テーブルなどの例を示す図である。
【図９】第２の実施形態に於ける優先転送判定キャッシュの例を示す図である。
【図１０】第２の実施形態に於けるゲートウェイの動作を示す図である。
【図１１】第２の実施形態に於けるダウンロード処理を示すシーケンス図である。
【発明を実施するための形態】
【００２３】
以降、本発明を実施するための形態を、図を参照して詳細に説明する。
【００２４】
（第１の実施形態の構成）
図１は、第１の実施形態に於けるネットワークの構成例を示す図である。
インターネット１００には、ホームゲートウェイ（ＨＧＷ：Home Gate Way）で接続されている端末１０−１と、サービス提供サーバＡ（２０−１）と、サービス提供サーバＢ（２０−２）とが、それぞれ通信可能に接続されている。ホームゲートウェイは、端末１０−１をインターネット１００に接続するゲートウェイである。なお、以下では、ホームゲートウェイ（ＨＧＷ）で接続されている端末１０−１を、単に端末１０−１と記載する。
【００２５】
端末１０−１は、サービス提供サーバＡ（２０−１）およびサービス提供サーバＢ（２０−２）に対してＨＴＴＰ（HyperText Transfer Protocol）プロトコルでアクセスし、コンテンツをダウンロードすることが可能である。インターネット１００には複数の図示しない端末１０−ｎ（ｎは自然数）が接続されているが、それらの代表として端末１０−１を例に説明する。
【００２６】
端末１０−１は、例えばコンピュータであり、ＣＰＵ（Central Processing Unit）である図示しない処理部と、ＲＡＭ（Random Access Memory）とＲＯＭ（Read Only Memory）とＨＤＤ（Hard disk drive）などである図示しない記憶部とを有している。処理部は、演算処理と、判断処理と、判断処理の結果に基く分岐処理とを行う。記憶部は、データ（コンテンツを含む）とプログラムとを記憶し、後述するサービス提供サーバＡ（２０−１）と、サービス提供サーバＢ（２０−２）のアドレスとしてのＵＲＬ（Uniform Resource Locator）を記憶している。
【００２７】
サービス提供サーバＡ（２０−１）と、サービス提供サーバＢ（２０−２）とは、例えばサーバであるコンピュータであり、ＣＰＵである図示しない処理部と、ＲＡＭとＲＯＭとＨＤＤなどである図示しない記憶部とを有している。処理部は、演算処理と、判断処理と、判断処理の結果に基く分岐処理とを行う。記憶部は、データ（コンテンツを含む）とプログラムとを記憶する。
【００２８】
本実施形態は、例えば図１に示す構成のネットワークに於いて、端末１０−１は、あらかじめ設定したミラーサーバ群であるサービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）とのサーバアドレスを基に、これらのサーバの性能や転送状況に応じて分割ダウンロードすることで、優先的かつ高速にダウンロードする技術である。
インターネット１００には、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）の他にも、複数の図示しないサーバ群２０−ｎが接続されており、同様なミラーサーバ群に対しても、本実施形態の技術を適用して高速にダウンロードが可能である。
【００２９】
本実施形態の端末１０−１は、ＨＴＴＰプロトコルを使用してダウンロードする。しかし、これに限られず、ＨＴＴＰＳ（Hypertext Transfer Protocol over Secure Socket Layer）プロトコル、ＦＴＰ（File Transfer Protocol）プロトコル、ＲＴＳＰ（Real Time Streaming Protocol）プロトコルなど、他のプロトコルを使用してダウンロードしても良い。
【００３０】
本実施形態の端末１０−１は、ミラーサーバ群のアドレスをあらかじめ保持している。しかし、これに限られず、端末１０−１がＤＮＳ（Domain Name System）でアドレス解決をする際に、図示しないＤＮＳサーバが複数のミラーサーバのアドレスを返却して設定しても良い。
【００３１】
図２は、第１の実施形態に於ける端末のサーバ保持テーブルの例を示す図である。
サーバ保持テーブル１１は、端末１０−１の記憶部に格納されている。サーバ保持テーブル１１には、Ｓｅｒｖｉｃｅ１１ａの項目と、ＳｅｒｖｅｒＵＲＬ１１ｂの項目と、Ｐｒｉｏｒｉｔｙ１１ｃの項目とが含まれている。
【００３２】
Ｓｅｒｖｉｃｅ１１ａの項目には、サービス名を示す情報が格納されている。本実施形態のＳｅｒｖｉｃｅ１１ａの項目には、このサービスを提供するサーバのアドレスとしてのＵＲＬの一部が格納されている。
ＳｅｒｖｅｒＵＲＬ１１ｂの項目には、このサービスを提供するインターネット１００上の複数のミラーサーバのアドレスとしてのＵＲＬが格納されている。
Ｐｒｉｏｒｉｔｙ１１ｃの項目には、このサービスを提供するサーバの優先度が格納されている。本実施形態に於いて、サーバの優先度は、値が小さいほど優先度が高い。
【００３３】
端末１０−１は、いずれかのサーバからデータやコンテンツをダウンロードする際には、当該サーバがサーバ保持テーブル１１に登録されているか否かを判定する。サーバ保持テーブル１１に登録されたサーバであったならば、同一のサービスを提供する複数のミラーサーバに対してＨＴＴＰのｇｅｔ要求を並列に送信する。
【００３４】
サーバ保持テーブル１１は、ユーザの契約時に登録される。しかし、これに限られず、ＤＮＳで当該端末１０−１のアドレス解決をする際に、これら複数のサーバアドレスを返却して設定しても良い。このとき、サーバアドレスの返却順にサーバの優先度が設定される。
【００３５】
（第１の実施形態の動作）
図３は、第１の実施形態に於けるダウンロード動作を示すフローチャートである。
端末１０−１の処理部は、ユーザから、サービス提供サーバＡ（２０−１）またはサービス提供サーバＢ（２０−２）のいずれかに格納されているコンテンツを転送する指示を受けて、図３の処理を開始する。
端末１０−１の処理部は、ＨＴＴＰダウンロードを実施する際に、端末１０−１の記憶部に格納されているサーバ保持テーブル１１のＳｅｒｖｅｒＵＲＬ１１ｂの項目からミラーサーバのアドレスリストを取得する。
【００３６】
ステップＳ１１に於いて、端末１０−１の処理部は、サーバ保持テーブル１１のＰｒｉｏｒｉｔｙ１１ｃの項目のミラーサーバの優先度の順に、各ミラーサーバから、ダウンロード対象ファイルの所定量（ここでは１Ｍｂｙｔｅｓ）をダウンロードする。サーバ保持テーブル１１は、端末１０−１の記憶部に格納されている。ここでは、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）の２台からダウンロードするので、それぞれのミラーサーバから、所定量をサーバ台数で割った（１Ｍｂｙｔｅｓ÷２＝５１２Ｋｂｙｔｅｓ）のデータをダウンロードする。
このミラーサーバの優先度は、ＲＴＴ（Round Trip Time）によって決定される。ＲＴＴは、それぞれのミラーサーバにＨＴＴＰ要求を送信してから、当該サーバからＨＴＴＰ応答が戻ってくるまでに掛る時間である。ＲＴＴは、サーバの応答速度である。
すなわち、端末１０−１の処理部は、ユーザから、複数のサーバのいずれかに格納されているコンテンツを転送する指示を受けた場合には、最初、複数のサーバそれぞれから所定サイズのコンテンツの転送を受けて、複数のサーバぞれぞれの転送速度と応答速度とを測定する。
【００３７】
ステップＳ１２に於いて、端末１０−１の処理部は、この一定量のダウンロードの終了と共に、各ミラーサーバからのダウンロード速度とＲＴＴを計算する。転送速度であるダウンロード速度は、ダウンロードのデータ量を、このデータをダウンロードするのに要した時間で除算したものである。
すなわち、端末１０−１の処理部は、複数のサーバぞれぞれの転送速度と応答速度とを再測定している。
【００３８】
ステップＳ１３に於いて、端末１０−１の処理部は、各ミラーサーバの優先度を、ＲＴＴが小さい順に変更する。それに伴い、サーバ保持テーブル１１のＰｒｉｏｒｉｔｙ１１ｃの項目のサーバの優先度の情報を変更する。このサーバ保持テーブル１１は、端末１０−１の記憶部に格納されている。
すなわち、端末１０−１の処理部は、複数のサーバの応答速度順を転送順序としている。
【００３９】
ステップＳ１４に於いて、端末１０−１の処理部は、各ミラーサーバから次にダウンロードするデータ量を決定する。ダウンロードするデータ量は、計算したダウンロード速度に、所定時間（本実施形態では３０秒）を掛けた量とする。
すなわち、端末１０−１の処理部は、複数のサーバそれぞれの転送速度に基いて前記複数のサーバそれぞれに転送を要求するコンテンツのサイズを決定している。
【００４０】
ステップＳ１５に於いて、端末１０−１の処理部は、各ミラーサーバのダウンロード対象ファイルから、サーバの優先度の順に、決定したデータ量をダウンロードする。
すなわち、端末１０−１の処理部は、複数のサーバそれぞれから当該コンテンツの転送を受ける。
【００４１】
ステップＳ１６に於いて、端末１０−１の処理部は、ダウンロード対象ファイルの全データのダウンロードが完了したか否かを判断する。ダウンロード対象ファイルの全データのダウンロードが完了していなかったならば（Ｎｏ）、ステップＳ１２の処理に戻る。ダウンロード対象ファイルの全データのダウンロードが完了したならば（Ｙｅｓ）、図３の処理を終了する。
【００４２】
図３の動作では、最初に、これら複数のミラーサーバそれぞれから所定サイズのコンテンツを転送して、これら複数のミラーサーバぞれぞれの転送速度を算出する。そののち、これら複数のミラーサーバそれぞれの転送速度に基いて複数のサーバそれぞれから次に転送する当該コンテンツのサイズを決定し、これら複数のミラーサーバそれぞれから当該コンテンツを転送して、複数のミラーサーバぞれぞれの転送速度を算出することを繰り返している。
【００４３】
図４（ａ），（ｂ）は、第１の実施形態に於けるダウンロードデータの分割例を示す図である。なお、以下の図面では、サービス提供サーバＡ（２０−１）を「サーバＡ」と記載し、サービス提供サーバＢ（２０−２）を「サーバＢ」と記載している。
【００４４】
図４（ａ）は、ダウンロードデータの分割イメージを示す図である。
ダウンロード対象ファイルは、データＤ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５，Ｄ６のように分割されている。図示していないＤ６より後ろの部分も、同様に分割されている。
データＤ１は、ダウンロード対象ファイルの冒頭部であり、５１２Ｋｂｙｔｅｓのサイズである。
データＤ２は、データＤ１の直後にあり、５１２Ｋｂｙｔｅｓのサイズである。
【００４５】
データＤ３は、データＤ２の直後にあり、サービス提供サーバＡ（２０−１）からデータＤ１をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
【００４６】
データＤ４は、データＤ３の直後にあり、サービス提供サーバＢ（２０−２）からデータＤ２をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
【００４７】
データＤ５は、データＤ４の直後にあり、サービス提供サーバＡ（２０−１）からデータＤ３をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
【００４８】
データＤ６は、データＤ５の直後にあり、サービス提供サーバＢ（２０−２）からデータＤ４をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
【００４９】
図４（ｂ）は、各ミラーサーバからのダウンロードイメージを示す図である。
横方向は時間軸ｔを示し、右横方向に時間経過を示している。時間軸ｔの上側は、サービス提供サーバＡ（２０−１）からのダウンロードイメージを示している。時間軸ｔの下側は、サービス提供サーバＢ（２０−２）からのダウンロードイメージを示している。ダウンロードイメージの矩形は、ダウンロードしたときの帯域を高さで示し、ダウンロード時間を幅で示している。
図４に於いて、サービス提供サーバＡ（２０−１）のダウンロード速度は、サービス提供サーバＢ（２０−２）の約２倍である。
【００５０】
本実施形態では、端末１０−１に、予めサービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）が登録されており、サービス提供サーバＡ（２０−１）の優先度が高い。また、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）とは、同一のダウンロード対象ファイルを保持している。
【００５１】
端末１０−１は、優先度の高いサービス提供サーバＡ（２０−１）から、ダウンロード対象ファイルの先頭部のデータＤ１をダウンロードし、並列にサービス提供サーバＢ（２０−２）から、データＤ２のダウンロードを開始する。端末１０−１は、データＤ１のダウンロード時間と、データＤ２のダウンロード時間とを測定する。測定したダウンロード時間に基いて、端末１０−１は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【００５２】
端末１０−１は、次にダウンロードするデータＤ３のサイズと、データＤ４のサイズを計算する。データＤ３のサイズは、サービス提供サーバＡ（２０−１）からデータＤ１をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。データＤ４のサイズは、サービス提供サーバＢ（２０−２）からデータＤ２をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
【００５３】
端末１０−１は、優先度の高いサービス提供サーバＡ（２０−１）から、ダウンロード対象ファイルのデータＤ３をダウンロードし、並列にサービス提供サーバＢ（２０−２）から、データＤ４のダウンロードを開始する。このとき、データＤ３のダウンロード時間と、データＤ４のダウンロード時間とは、ほぼ等しくなる。この結果に基いて、端末１０−１は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【００５４】
端末１０−１は、次にダウンロードするデータＤ５のサイズと、データＤ６のサイズを計算する。データＤ５のサイズは、サービス提供サーバＡ（２０−１）からデータＤ３をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。データＤ６のサイズは、サービス提供サーバＢ（２０−２）からデータＤ４をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【００５５】
端末１０−１は、優先度の高いサービス提供サーバＡ（２０−１）から、ダウンロード対象ファイルのデータＤ５をダウンロードし、並列にサービス提供サーバＢ（２０−２）から、データＤ６のダウンロードを開始する。このとき、データＤ５のダウンロード時間と、データＤ６のダウンロード時間とは、ほぼ等しくなる。この結果に基いて、端末１０−１は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。これを、ダウンロード対象ファイルを全てダウンロードするまで繰り返す。
【００５６】
特定のサーバの転送が停止した場合、または、各ミラーサーバ間の転送速度の比が所定値（例えば１０倍）を超えた場合には、転送が停止したサーバ、または、転送速度の比が最速のサーバの所定閾値（例えば１／１０）以下であるサーバへの要求を停止し、残った各ミラーサーバからダウンロードを行う。
【００５７】
すなわち、端末１０−１の処理部は、複数のサーバのうち転送速度が最速のサーバといずれかのサーバとの転送速度の比が所定閾値以下であった場合、以降、当該サーバにコンテンツの転送を要求しない。これにより、コンテンツのダウンロード速度が極端に低下することを抑止可能である。
【００５８】
図５は、第１の実施形態に於けるダウンロード動作を示すシーケンス図である。
処理が開始すると、シーケンスＱ１０に於いて、端末１０−１の処理部は、サービス提供サーバＡ（２０−１）に、ＨＴＴＰのｇｅｔ要求を送信して、５１２ＫｂｙｔｅｓのデータＤ１を要求する。
【００５９】
シーケンスＱ１１に於いて、サービス提供サーバＡ（２０−１）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、５１２ＫｂｙｔｅｓのデータＤ１を応答する。
【００６０】
シーケンスＱ１２に於いて、端末１０−１の処理部は、サービス提供サーバＢ（２０−２）に、ＨＴＴＰのｇｅｔ要求を送信して、５１２ＫｂｙｔｅｓのデータＤ２を要求する。この処理は、シーケンスＱ１０と並行して行われる。
【００６１】
シーケンスＱ１３に於いて、サービス提供サーバＢ（２０−２）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、５１２ＫｂｙｔｅｓのデータＤ２を応答する。
【００６２】
シーケンスＱ１４に於いて、端末１０−１の処理部は、サービス提供サーバＡ（２０−１）、サービス提供サーバＢ（２０−２）と端末１０−１との間の転送速度を算出し、転送速度に応じて、各ミラーサーバからのダウンロード量を決定する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【００６３】
シーケンスＱ１５に於いて、端末１０−１の処理部は、サービス提供サーバＡ（２０−１）に、ＨＴＴＰのｇｅｔ要求を送信して、１２０ＭｂｉｔのデータＤ３を要求する。
シーケンスＱ１６に於いて、サービス提供サーバＡ（２０−１）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、１２０ＭｂｉｔのデータＤ３を応答する。
【００６４】
シーケンスＱ１７に於いて、端末１０−１の処理部は、サービス提供サーバＢ（２０−２）に、ＨＴＴＰのｇｅｔ要求を送信して、３０ＭｂｉｔのデータＤ４を要求する。
シーケンスＱ１８に於いて、サービス提供サーバＢ（２０−２）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、３０ＭｂｉｔのデータＤ４を応答する。
【００６５】
シーケンスＱ１９に於いて、端末１０−１の処理部は、サービス提供サーバＡ（２０−１）、サービス提供サーバＢ（２０−２）と端末１０−１との間の転送速度を算出し、転送速度に応じて、各ミラーサーバからのダウンロード量を決定する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【００６６】
シーケンスＱ２０に於いて、端末１０−１の処理部は、サービス提供サーバＢ（２０−２）に、ＨＴＴＰのｇｅｔ要求を送信して、１５０ＭｂｉｔのデータＤ５を要求する。
シーケンスＱ２１に於いて、サービス提供サーバＢ（２０−２）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、１５０ＭｂｉｔのデータＤ５を応答する。
【００６７】
シーケンスＱ２２に於いて、端末１０−１の処理部は、サービス提供サーバＡ（２０−１）に、ＨＴＴＰのｇｅｔ要求を送信して、１５０ＭｂｉｔのデータＤ６を要求する。
シーケンスＱ２３に於いて、サービス提供サーバＡ（２０−１）の処理部は、ＨＴＴＰの２００（ＯＫ）を応答して、１５０ＭｂｉｔのデータＤ６を応答する。
このように、シーケンスＱ１９〜Ｑ２３と同様の動作を転送終了まで繰り返し、ダウンロード対象ファイルを全て受信する。
【００６８】
（第１の実施形態の効果）
以上説明した第１の実施形態では、次の（Ａ）〜（Ｄ）のような効果がある。
【００６９】
（Ａ）  ダウンロード時に、各ミラーサーバのダウンロード速度に応じてファイルを分割してダウンロードすることにより、各ミラーサーバの能力に合わせた高速な転送が可能である。
（Ｂ）  定期的にダウンロード量を再計算することにより、ネットワークの状況に合わせた高速転送が可能である。
【００７０】
（Ｃ）  ＲＴＴの比較により、応答速度の速いサーバから優先的にダウンロードしている。これにより、例えば動画サイトのように、全データをダウンロードする前にコンテンツの利用が可能となる場合に於いて、ダウンロード開始からコンテンツの利用（例えば動画再生など）までのオーバヘッド（待ち時間）を小さくすることが可能である。
【００７１】
（Ｄ）  契約者の端末１０−ｎが、本提案技術を実装することにより、特定のサーバやサーバファームに負荷をかけること無しに、インターネット１００上にあるミラーサーバ群からの高速転送が可能である。
【００７２】
（第２の実施形態の構成）
図６は、第２の実施形態に於けるネットワークの構成例を示す図である。図１に示す第１の実施形態のネットワークと同一の要素には同一の符号を付与している。
【００７３】
第２の実施形態のネットワークは、第１の実施形態のネットワークとは異なるエッジルータ３０と自事業者網１００Ａとゲートウェイ４０を有している他は、第１の実施形態のネットワークと同様の構成を有している。自事業者網１００Ａは、内部ネットワークである。インターネット１００は、外部ネットワークである。
【００７４】
第２の実施形態のネットワークに於いて、端末１０−１は、エッジルータ３０と自事業者網１００Ａとゲートウェイ４０とを介して、インターネット１００に接続されている。
【００７５】
端末１０−１は、サービス提供サーバＡ（２０−１）やサービス提供サーバＢ（２０−２）からデータをダウンロードする際には、エッジルータ３０と自事業者網１００Ａとゲートウェイ４０とを介して通信する必要がある。
すなわち、ゲートウェイ４０は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元である端末１０−１に転送するコンテンツ優先転送ゲートウェイである。
【００７６】
第２の実施形態では、端末１０−１およびゲートウェイ４０が、ＩＰｖ４（Internet Protocol Version 4）のＩＰヘッダのＴＯＳ（Type Of Service）値を書き換えることにより、自事業者網１００Ａ内で優先転送を実施している。しかし、これに限られず、優先転送トンネルをゲートウェイ４０経由で確立し、この優先転送トンネルを用いて優先転送しても良い。
ここで優先転送トンネルとは、ＩＰｓｅｃ（Security Architecture for Internet Protocol）トンネルともいい、インターネット上の２地点間に仮想的なトンネルを作り、そこにＩＰパケットを通す技術のことをいう。さらにＩＰｓｅｃトンネルでは、この仮想的なトンネルを通すパケットを暗号化し、第三者による盗聴を抑止している。
【００７７】
図７は、第２の実施形態に於けるゲートウェイの構成例を示す図である。
ゲートウェイ４０は、ＨＴＴＰ／ＲＴＳＰプロキシ（Ｐｒｏｘｙ）部４１と、ダウンロードバッファ部４５と、ユーザ情報テーブル４６と、優先転送サービス判定テーブル４７と、サーバ情報テーブル４８とを有している。ＨＴＴＰ／ＲＴＳＰプロキシ部４１は、Ｐｒｏｘｙ処理部４２と、優先転送判定キャッシュ４３と、ダウンロード速度検出部４４とを有している。
【００７８】
Ｐｒｏｘｙ処理部４２は、図６に示す自事業者網１００Ａなどを介して端末１０−１と通信可能に接続されている。Ｐｒｏｘｙ処理部４２は更に、図６に示すインターネット１００などを介してサービス提供サーバ群２０−ｎと相互に通信可能に接続されている。
【００７９】
Ｐｒｏｘｙ処理部４２は、ダウンロードバッファ部４５と、ユーザ情報テーブル４６と、優先転送サービス判定テーブル４７と、優先転送判定キャッシュ４３とに接続されている。Ｐｒｏｘｙ処理部４２の出力側は、ダウンロード速度検出部４４に接続されている。ダウンロード速度検出部４４の出力側は、ダウンロードバッファ部４５に接続されている。ダウンロードバッファ部４５の出力側は、Ｐｒｏｘｙ処理部４２に接続されている。
【００８０】
ゲートウェイ４０の図示しない記憶部は、優先転送判定キャッシュ４３と、ユーザ情報テーブル４６と、優先転送サービス判定テーブル４７と、サーバ情報テーブル４８とを記憶している。ダウンロードバッファ部４５は、ゲートウェイ４０の図示しない記憶部の一部である。
【００８１】
すなわち、ゲートウェイ４０は、Ｐｒｏｘｙ処理部４２と、複数のサーバそれぞれのアドレスを記憶している図示しない記憶部とを有している。
【００８２】
図８（ａ）〜（ｃ）は、第２の実施形態に於けるゲートウェイのサーバ保持テーブルなどの例を示す図である。
図８に示す各テーブルは、第１の実施形態のサーバ保持テーブル１１を拡張したものに相当する。
図８（ａ）は、ユーザ情報テーブル４６を示す図である。
ユーザ情報テーブル４６は、ｕｓｅｒＩＤ４６ａの項目と、ＳｒｃＩＰ４６ｂの項目とを含んでいる。ｕｓｅｒＩＤ４６ａの項目には、ユーザの契約情報が一意に特定可能なユーザＩＤが格納されている。ＳｒｃＩＰ４６ｂの項目には、ユーザの端末１０−１（またはＨＧＷ）に割り当てられたＩＰアドレスが格納されている。
【００８３】
ユーザ情報テーブル４６の情報は、ユーザの契約時、または、ユーザへのＩＰアドレス払い出し時に登録される。ゲートウェイ４０は、新規ＨＴＴＰコネクションを検出した際に、ユーザ情報テーブル４６を参照し、どのユーザのＨＴＴＰコネクションであるかを識別する。
【００８４】
図８（ｂ）は、優先転送サービス判定テーブル４７を示す図である。
優先転送サービス判定テーブル４７は、ｕｓｅｒＩＤ４７ａの項目と、Ｓｅｒｖｉｃｅ４７ｂの項目と、ＴＯＳ４７ｃの項目とを有している。優先転送サービス判定テーブル４７には、ユーザの識別子（ユーザＩＤ）と、当該ユーザが契約している優先転送対象のサービスと、優先転送の内容とが格納されている。
【００８５】
ｕｓｅｒＩＤ４７ａの項目には、ユーザの契約情報が一意に特定可能なユーザＩＤが格納されている。Ｓｅｒｖｉｃｅ４７ｂの項目には、サービス名を示す情報が格納されている。本実施形態のＳｅｒｖｉｃｅ４７ｂの項目には、このサービスを提供するサーバのＵＲＬの一部が格納されている。ＴＯＳ４７ｃの項目には、このゲートウェイ４０がＨＴＴＰの２００（ＯＫ）の応答を端末１０−１に返す際のＩＰヘッダのＴＯＳに付与するデータが格納されている。図８（ｂ）では、ＴＯＳ４７ｃの項目には、いずれもＡＦ（Assured Forwarding）の値セットが格納されている。
【００８６】
ＴＯＳに設定される項目として「IP Precedence」や「DSCP」などがある。
IP Precedenceは、ＴＯＳの先頭３ｂｉｔを使用する。IP Precedenceの数字が大きいほど、そのＩＰパケットは重要なパケットとして各機器に認識される。但し、ユーザが設定できる値の最大は５とされている。６と７とはルーティングアップデートやkeep aliveなどで使われるため、ユーザが設定しないように推奨されている。
DSCPは、ＴＯＳの先頭６ｂｉｔを使用する。DSCPの先頭３ｂｉｔは、クラス分けに使用され、IP Precedenceと同じ意味を示す。DSCPの続く３ｂｉｔは、ドロップの割合を示すフィールドして使用され、かつ、この最後の１ｂｉｔは、1のときにテスト用を示すフィールドとして使用される。
DSCPに設定される値セットには、ＣＳ（Class Selector）、ＥＦ（Expedited Forwarding）、ＡＦ（Assured Forwarding）という名称が付与されている。
ＣＳの値セットの場合には、先頭３ｂｉｔだけが使用され、残りの３ｂｉｔには「000」のビットパターンが設定される
ＥＦの値セットは、「101110」のビットパターンである。これはユーザーデータで送る最優先（帯域保証 + 低遅延）を意味している。ＥＦは、音声用パケットなどの遅延が許されないトラフィックに使用される。
ＡＦの値セットは、前述したＣＳの場合とＥＦの場合とに含まれない、その他の値セットである。ＡＦの値セットには、ＡＦ１１〜ＡＦ４３があり、後半の値が大きいほどＩＰパケットがドロップしやすくなる。
【００８７】
第２の実施形態のゲートウェイ４０は、「ＩＤ  Ａ」の識別子を有するユーザが、downloadA.comのサービスサイトにアクセスする際に、ダウンロード型サービスの優先転送を実施している。ゲートウェイ４０は更に、自事業者網１００Ａに送信するＩＰヘッダのＴＯＳフィールドにＡＦの値セットを設定し、優先的に転送する。
【００８８】
優先転送サービス判定テーブル４７は、ユーザの契約時に登録される。優先転送サービス判定テーブル４７は、ゲートウェイ４０が新規ＨＴＴＰコネクションまたは新規ＲＴＳＰコネクションを検出した際に、優先転送サービスを行うか否かと、どのような優先転送サービスを実施するか（例えば、ダウンロード型、ストリーミング型など）を決定するために用いられる。
【００８９】
図８（ｃ）は、サーバ情報テーブル４８を示す図である。
サーバ情報テーブル４８は、Ｓｅｒｖｉｃｅ４８ａの項目と、ＳｅｒｖｅｒＵＲＬ４８ｂの項目と、Ｐｒｉｏｒｉｔｙ４８ｃの項目とを有している。Ｓｅｒｖｉｃｅ４８ａの項目には、サービス名（本例では、ＵＲＬの一部）が格納されている。ＳｅｒｖｅｒＵＲＬ４８ｂの項目には、優先対象のサービスを提供する図示しない他事業者網もしくはインターネット１００上の複数のミラーサーバのアドレスが格納されている。Ｐｒｉｏｒｉｔｙ４８ｃの項目には、各ミラーサーバの優先度の情報が格納されている。サーバ情報テーブル４８は、第１の実施形態のサーバ保持テーブル１１に相当する。
【００９０】
ゲートウェイ４０は、優先転送対象のサービスに対するＨＴＴＰ要求を検出した際に、サーバ情報テーブル４８に登録されたミラーサーバに対してＨＴＴＰ要求を送信する。
【００９１】
サーバ情報テーブル４８は、ユーザの契約時に登録される。更に、事業者により優先転送サービスとサービス提供サーバが追加登録されても良く、ＤＮＳでアドレス解決をする際に複数のサーバアドレスを返却することにより設定されても良い。このとき、各ミラーサーバの優先度は、サーバアドレスの返却順で設定される。
【００９２】
図９は、第２の実施形態に於ける優先転送判定キャッシュの例を示す図である。
優先転送判定キャッシュ４３は、ＳｒｃＩＰ４３ａの項目と、ＤｓｔＩＰ４３ｂの項目と、ＳｒｃＰｏｒｔ４３ｃの項目と、ＤｓｔＰｏｒｔ４３ｄの項目と、Ｐｒｏｔｏｃｏｌ４３ｅの項目と、Ｓｅｒｖｉｃｅ４３ｆの項目と、優先４３ｇの項目と、ＴＯＳ４３ｈの項目とを有している。ＳｒｃＩＰ４３ａの項目には、ＩＰパケットの送信元のＩＰアドレスが格納されている。ＤｓｔＩＰ４３ｂの項目には、ＩＰパケットの宛先のＩＰアドレスが格納されている。ＳｒｃＰｏｒｔ４３ｃの項目には、ＩＰパケットの送信元のポート番号が格納されている。ＤｓｔＰｏｒｔ４３ｄの項目には、ＩＰパケットの宛先のポート番号が格納されている。Ｐｒｏｔｏｃｏｌ４３ｅの項目には、ＩＰパケットのプロトコルの種別を示す文字列が格納されている。Ｓｅｒｖｉｃｅ４３ｆの項目には、サービス名（本例では、ＵＲＬの一部）が格納されている。優先４３ｇの項目には、優先転送サービスであるか否かを示す情報が格納されている。優先転送サービスのときには“１”が、優先転送サービスではないときには“０”が格納されている。ＴＯＳ４３ｈの項目には、ＩＰパケットのＴＯＳフィールドに設定する値が１６進数で格納されている。ＳｒｃＩＰ４３ａの項目と、ＤｓｔＩＰ４３ｂの項目と、ＳｒｃＰｏｒｔ４３ｃの項目と、ＤｓｔＰｏｒｔ４３ｄの項目と、Ｐｒｏｔｏｃｏｌ４３ｅの項目とは、コネクションの情報である。
優先転送判定キャッシュ４３は、コネクションが、優先転送対象か、どういった優先転送を実施するかの判定結果を保持するテーブルである。
【００９３】
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、コネクションが優先転送サービスではない場合、サービス名にＮｕｌｌを設定し、優先転送のフラグに０を設定する。ゲートウェイ４０のＰｒｏｘｙ処理部４２は、コネクションを検出した際には、この優先転送判定キャッシュ４３を検索する。当該コネクションが優先転送判定キャッシュ４３に登録されていれば、登録されていたコネクションの情報をもとに、当該コネクションの転送を制御する。当該コネクションが優先転送判定キャッシュ４３に登録されていなければ、新規コネクションの検出と判断する。優先転送判定キャッシュ４３は、ユーザ情報テーブル４６と優先転送サービス判定テーブル４７とに基いて設定される。
【００９４】
（第２の実施形態の動作）
図１０は、第２の実施形態に於けるゲートウェイの動作を示す図である。
以下、順番にゲートウェイ４０の動作を説明する。
【００９５】
（１）  識別済みのフローか確認する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、端末１０−１からＨＴＴＰのｇｅｔ要求を受信した際に、優先転送サービス判定テーブル４７により、新規コネクションか否かを判定する。すなわち、識別済のフローか否かを確認する。
【００９６】
（２）  未識別のフローの場合、ユーザを識別する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、新規コネクションであり、未識別のフローであると判定された場合、ユーザ情報テーブル４６からユーザＩＤを特定して、このフローに係るユーザを識別する。
【００９７】
（３）  優先転送サービスか否かを識別する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は更に、優先転送サービス判定テーブル４７によって、当該コネクションが優先転送対象のサービスか否かを識別する。すなわち、要求元である端末１０−１から、優先転送対象のサービスに係る複数のサーバのいずれかに格納されているコンテンツを要求したか否かを識別する。
すなわち、Ｐｒｏｘｙ処理部４２は、要求元である端末１０−１が複数のサーバのいずれかに格納されているコンテンツの転送を要求したか否かを判定している。
【００９８】
（４）  フロー識別結果を登録する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、当該コネクションが優先転送対象であると判定した場合、優先転送判定キャッシュ４３に、フロー識別結果であるコネクションの情報と、優先転送サービスの情報と、優先転送の種類とを登録する。
【００９９】
（５）サーバリストを取得する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サーバ情報テーブル４８からサーバ群２０−ｎのリストを取得する。本実施形態では、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）とがサービス提供サーバである。
【０１００】
（６）  ＨＴＴＰのｇｅｔ要求を転送する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、優先度が高いサービス提供サーバＡ（２０−１）に対し、ファイルの最初からダウンロードを代理要求する（ＨＴＴＰのｇｅｔ要求を代理送信する）。優先度が低いサービス提供サーバＢ（２０−２）に対しては、ファイルの５１２Ｋｂｙｔｅｓ以降に対して、ダウンロードを代理要求する（ＨＴＴＰのｇｅｔ要求を代理送信する）。
【０１０１】
（７）  優先転送対象か否かを確認する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＡ（２０−１）やサービス提供サーバＢ（２０−２）からの応答ＨＴＴＰの２００（ＯＫ）を受信すると、優先転送サービス判定テーブル４７のコネクションの情報をもとに、この応答のＩＰパケットが優先転送対象であるか否かを確認する。
【０１０２】
（８）  バッファへ保存する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、応答のＩＰパケットが優先転送対象であれば、このＩＰパケットを宛先に送らずに、ダウンロード速度検出部４４でデータ転送量をカウントし、ダウンロードバッファ部４５に応答のＩＰパケットを一時的に保存する。ダウンロードバッファ部４５は、記憶部の一部であり、要求元である端末１０−１が要求したコンテンツを記憶する領域である。
【０１０３】
（９）  ＴＯＳリマーキングを実施し、優先転送する。
ゲートウェイ４０のＰｒｏｘｙ処理部４２は、ダウンロードバッファ部４５に一次的に記憶された応答のＩＰパケットに対して、ＴＯＳフィールドのリマーキング（書き換え）を実施し、自事業者網１００Ａ内を優先して転送する。
【０１０４】
Ｐｒｏｘｙ処理部４２は、優先度が高いサービス提供サーバＡ（２０−１）からのダウンロードによって、応答速度であるＲＴＴを再測定する。
その後、ダウンロード速度検出部４４は、優先度が高いサービス提供サーバＡ（２０−１）からの最初のダウンロードが終了した場合、ダウンロードしたデータ量を掛った時間で除算してダウンロード速度を再測定する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバＡ（２０−１）からのダウンロードのデータ量を決定する。
【０１０５】
Ｐｒｏｘｙ処理部４２は、優先度が低いサービス提供サーバＢ（２０−２）からのダウンロードによって、応答速度であるＲＴＴを再測定する。
ダウンロード速度検出部４４は、優先度が低いサービス提供サーバＢ（２０−２）からの最初のダウンロードが終了した場合、ダウンロードしたデータ量を掛った時間で除算してダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバＢ（２０−２）からのダウンロードのデータ量を決定する。
【０１０６】
サービス提供サーバＡ（２０−１）の応答速度が、サービス提供サーバＢ（２０−２）の応答速度よりも速いならば、次のダウンロードもサービス提供サーバＡ（２０−１）がコンテンツの先頭側をダウンロードする。
サービス提供サーバＡ（２０−１）のダウンロード速度が４Ｍｂｐｓであったとき、ファイルの次の１２０Ｍｂｉｔをサービス提供サーバＡ（２０−１）からダウンロードする。サービス提供サーバＢ（２０−２）のダウンロード速度が１Ｍｂｐｓであったとき、ファイルの次の３０Ｍｂｉｔをサービス提供サーバＢ（２０−２）からダウンロードする。
【０１０７】
Ｐｒｏｘｙ処理部４２は、優先度が高いサービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）からのダウンロードによって、応答速度であるＲＴＴを再測定する。この応答速度順を次の転送順序とする。
このダウンロードが完了すると、ダウンロード速度検出部４４は、サービス提供サーバＡ（２０−１）からダウンロードしたデータ量を掛った時間で除算して、ダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバＡ（２０−１）からのダウンロードのデータ量を決定する。
【０１０８】
ダウンロード速度検出部４４は同様に、サービス提供サーバＢ（２０−２）からダウンロードしたデータ量を掛った時間で除算して、ダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバＢ（２０−２）からのダウンロードのデータ量を決定する。
このような処理を繰り返して、要求されたデータをダウンロードバッファ部４５にダウンロードして記憶する。
【０１０９】
要求元である端末１０−１からのＨＴＴＰのｇｅｔ要求に応じて、ＨＴＴＰの２００（ＯＫ）応答を代理送信し、ダウンロードバッファ部４５に記憶されているコンテンツを送信する。
【０１１０】
図１１は、第２の実施形態に於けるダウンロード処理を示すシーケンス図である。
第２の実施形態では、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）とが予め登録されており、サービス提供サーバＡ（２０−１）の優先度が高く設定されている。また、サービス提供サーバＡ（２０−１）とサービス提供サーバＢ（２０−２）とは同一のダウンロード対象ファイルを保持している。
【０１１１】
シーケンスＱ４０に於いて、端末１０−１の処理部は、優先転送サービスを意識せずにダウンロードを開始し、ＩＰパケットの宛先アドレスをサービス提供サーバＡ（２０−１）のアドレスに設定したＨＴＴＰのｇｅｔ要求を送信する。このｇｅｔ要求に於ける要求データサイズは、任意のサイズで良い。このＨＴＴＰリクエストは、ゲートウェイ４０をいったん通過する。
【０１１２】
シーケンスＱ４１に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、当該リクエストが優先転送サービスであるか否かを判定する。本実施形態では、優先転送サービスであるため、以降、優先度の順に各ミラーサーバから並列にダウンロードを行い、端末１０−１に対して優先転送サービスのリクエストの代理応答を行う。
【０１１３】
シーケンスＱ４２に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＡ（２０−１）に対して、ＩＰパケットの送信元アドレスを端末１０−１のアドレスに設定したＨＴＴＰのｇｅｔ要求を代理送信して、５１２ＭｂｙｔｅｓのデータＤ１を要求する。
【０１１４】
シーケンスＱ４３に於いて、サービス提供サーバＡ（２０−１）の処理部は、ＩＰパケットの宛先アドレスを端末１０−１のアドレスに設定したＨＴＴＰの２００（ＯＫ）を応答して、データＤ１を送信する。ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＡ（２０−１）からのデータＤ１のダウンロードによって、応答速度であるＲＴＴを再測定する。
【０１１５】
シーケンスＱ４４に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、受信したＩＰパケットの宛先アドレスが端末１０−１のアドレスであり、よって、優先転送サービスの応答であると判断したならば、このＩＰパケットを端末１０−１には送信せずに、受信したデータＤ１をダウンロードバッファ部４５にバッファリングする。
【０１１６】
シーケンスＱ４５に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、ＩＰパケットの送信元アドレスをサービス提供サーバＡ（２０−１）のアドレスに設定したＨＴＴＰの２００（ＯＫ）を応答して、ダウンロードバッファ部４５にバッファリングしていたデータＤ１を代理送信する。
【０１１７】
シーケンスＱ４７に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＢ（２０−２）に対して、ＩＰパケットの送信元アドレスを端末１０−１のアドレスに設定したＨＴＴＰのｇｅｔ要求を代理送信して、５１２ＭｂｙｔｅｓのデータＤ２を要求する。この処理は、シーケンスＱ４２と並行して行われる。
【０１１８】
シーケンスＱ４８に於いて、サービス提供サーバＢ（２０−２）の処理部は、ＩＰパケットの宛先アドレスを端末１０−１のアドレスに設定したＨＴＴＰの２００（ＯＫ）を応答して、データＤ２を送信する。ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＢ（２０−２）からのデータＤ２のダウンロードによって、応答速度であるＲＴＴを再測定する。
【０１１９】
シーケンスＱ４９に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、受信したＩＰパケットの宛先アドレスが端末１０−１のアドレスであり、よって優先転送サービスの応答であると判断したならば、このＩＰパケットを端末１０−１には送信せずに、受信したデータＤ２をダウンロードバッファ部４５にバッファリングする。
【０１２０】
シーケンスＱ５０に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、端末１０−１に対して、ＩＰパケットの送信元アドレスをサービス提供サーバＡ（２０−１）のアドレスに設定したＨＴＴＰの２００（ＯＫ）を応答して、ダウンロードバッファ部４５にバッファリングしていたデータＤ２を代理送信する。
【０１２１】
以降、端末１０−１は、ゲートウェイ４０を介して、ＩＰパケットの宛先アドレスをサービス提供サーバＡ（２０−１）のアドレスに設定したＨＴＴＰのｇｅｔ要求を送信し、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、ＨＴＴＰの２００（ＯＫ）を代理応答する。
【０１２２】
シーケンスＱ５１に於いて、最初の１Ｍｂｙｔｅｓのダウンロードが完了すると、ゲートウェイ４０のダウンロード速度検出部４４は、このデータＤ１，Ｄ２のデータサイズとダウンロード時間を基に、ゲートウェイ４０と各ミラーサーバとの間の転送速度をそれぞれ算出する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【０１２３】
サービス提供サーバＡ（２０−１）の転送速度が４Ｍｂｐｓであった場合、この転送速度に所定時間の３０秒を乗算して、次のダウンロードサイズの１２０Ｍｂｉｔを算出する。サービス提供サーバＢ（２０−２）の転送速度が１Ｍｂｐｓであった場合、この転送速度に所定時間の３０秒を乗算して、次のダウンロードサイズの３０Ｍｂｉｔを算出する。
【０１２４】
シーケンスＱ５２に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＡ（２０−１）に対して、ＩＰパケットの送信元アドレスを端末１０−１のアドレスに設定したＨＴＴＰのｇｅｔ要求を代理送信して、１２０ＭｂｉｔのデータＤ３を要求する。
【０１２５】
シーケンスＱ５３に於いて、サービス提供サーバＡ（２０−１）の処理部は、ＩＰパケットの宛先アドレスを端末１０−１に設定したＨＴＴＰの２００（ＯＫ）を応答して、データＤ３を送信する。ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＡ（２０−１）からのデータＤ３のダウンロードによって、応答速度であるＲＴＴを再測定する。
【０１２６】
シーケンスＱ５４に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、受信したＩＰパケットの宛先アドレスが端末１０−１のアドレスであり、よって優先転送サービスの応答であると判断したならば、このＩＰパケットを端末１０−１には転送せずに、受信したデータＤ３をダウンロードバッファ部４５にバッファリングする。
【０１２７】
シーケンスＱ５５に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＢ（２０−２）に対して、ＩＰパケットの送信元アドレスを端末１０−１のアドレスに設定したＨＴＴＰのｇｅｔ要求を代理送信して、３０ＭｂｉｔのデータＤ４を要求する。この処理は、シーケンスＱ５２と並行して行われる。
【０１２８】
シーケンスＱ５６に於いて、サービス提供サーバＢ（２０−２）の処理部は、ＩＰパケットの宛先アドレスを端末１０−１のアドレスに設定したＨＴＴＰの２００（ＯＫ）を応答して、データＤ４を送信する。ゲートウェイ４０のＰｒｏｘｙ処理部４２は、サービス提供サーバＢ（２０−２）からのデータＤ４のダウンロードによって、応答速度であるＲＴＴを再測定する。
【０１２９】
シーケンスＱ５７に於いて、ゲートウェイ４０のＰｒｏｘｙ処理部４２は、受信したＩＰパケットの宛先アドレスが端末１０−１のアドレスであり、よって優先転送サービスの応答であると判断したならば、このＩＰパケットを端末１０−１には転送せずに、受信したデータＤ４をダウンロードバッファ部４５にバッファリングする。
【０１３０】
シーケンスＱ５８に於いて、データＤ３とデータＤ４のダウンロードが完了すると、ゲートウェイ４０のダウンロード速度検出部４４は、ゲートウェイ４０と各ミラーサーバとの間の転送速度をそれぞれ算出する。更に、各ミラーサーバのＲＴＴを計算し、このＲＴＴが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
【０１３１】
サービス提供サーバＡ（２０−１）の転送速度が５Ｍｂｐｓであった場合、この転送速度に所定時間の３０秒を乗算して、次のダウンロードサイズの１５０Ｍｂｉｔを算出する。サービス提供サーバＢ（２０−２）の転送速度が５Ｍｂｐｓであった場合、この転送速度に所定時間の３０秒を乗算して、次のダウンロードサイズの１５０Ｍｂｉｔを算出する。
【０１３２】
シーケンスＱ５９〜Ｑ６４の処理は、シーケンスＱ５２〜Ｑ５７の処理と同様である。上記の処理を繰り返すことで、ダウンロード対象ファイルの全体を転送する。
【０１３３】
特定のサーバの転送が停止した場合、または、各ミラーサーバ間の転送速度の比が所定値（例えば１０倍）を超えた場合には、転送が停止したサーバ、または、転送速度の比が最速のサーバの所定閾値（例えば１／１０）以下であるサーバへの要求を停止し、残った各ミラーサーバからダウンロードを行う。
【０１３４】
すなわち、端末１０−１の処理部は、これら複数のミラーサーバのうちいずれかのサーバの転送速度の比が、所定閾値以下（例えば１／１０以下）であった場合、以降、当該サーバからのコンテンツの転送を行わない。これにより、コンテンツのダウンロード速度が極端に低下することを抑止可能である。
【０１３５】
（第２の実施形態の効果）
以上説明した第２の実施形態では、次の（Ｅ）〜（Ｇ）のような効果がある。
【０１３６】
（Ｅ）  自事業者網１００Ａとインターネット１００（他事業者網など）を接続するゲートウェイ４０がＨＴＴＰプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末１０−１やサーバ群２０−ｎに機能を追加することなく、優先転送サービスを提供可能となる。
【０１３７】
（Ｆ）  回線事業者の契約ユーザが、優先転送サービスのための事業間連携を実施していない他事業者網のサーバ群や、インターネット１００上にあるサーバ群２０−ｎから、データのダウンロードを実施する際でも、端末１０−ｎやサーバ群２０−ｎに機能追加すること無しに高速なダウンロードを実現可能である。
【０１３８】
（Ｇ）  ゲートウェイ４０から端末１０−１へのＨＴＴＰの２００（ＯＫ）応答は、ＩＰパケットのＴＯＳフィールドの優先度を上げている。これにより、当該ＩＰパケットは、自事業者網１００Ａ内を優先的に送信される。
【０１３９】
（変形例）
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の（ａ）〜（ｆ）のようなものがある。
【０１４０】
（ａ）  第２の実施形態では、自事業者網１００Ａとインターネット１００とを接続しているゲートウェイ４０がＨＴＴＰプロキシとなり、優先転送サービスかの判定と、優先転送とを実施している。しかし、これに限られず、ホームゲートウェイやエッジルータ３０がＨＴＴＰプロキシとなり、優先転送サービスかの判定と、優先転送とを実施しても良い。
【０１４１】
（ｂ）  第１の実施形態では、サーバ保持テーブル１１は、予め端末１０−１に登録されている。第２の実施形態では、サーバ保持テーブル１１は、予めゲートウェイ４０に登録されている。しかし、これに限られず、サーバ群２０−ｎのいずれかにサーバ保持テーブル１１と同様な情報を格納し、当該情報を端末１０−１やゲートウェイ４０などが読み取ることによって、コンテンツ優先転送を実施するように構成しても良い。
【０１４２】
（ｃ）  第１〜第２の実施形態では、いずれもＩＰｖ４のネットワーク上に実現されている。しかし、これに限られず、ＩＰｖ６（Internet Protocol Version 6）のネットワーク上に実現されていても良い。
【０１４３】
（ｄ）  第２の実施形態では、端末１０−１とゲートウェイ４０との間の通信と、ゲートウェイ４０とミラーサーバ群（サービス提供サーバＡ（２０−１）およびサービス提供サーバＢ（２０−２））との間の通信とは同期していない。しかし、これに限られず、端末１０−１がミラーサーバ群のいずれかにＨＴＴＰのｇｅｔ要求を送信したとき、これに同期して、要求したデータサイズ（コンテンツサイズ）を各ミラーサーバに代理要求し、このサイズのコンテンツをバッファに記憶し、このバッファに記憶したコンテンツを端末１０−１に送信しても良い。これにより、ゲートウェイ４０が必要とするバッファサイズを小さく抑えることが可能となる。
【０１４４】
（ｅ）  第１〜第２の実施形態では、いずれも最初に所定サイズのデータを各ミラーサーバから転送して、転送速度を測定している。しかし、これに限られず、各ミラーサーバからの転送速度の履歴を記憶部に記憶し、この転送速度に所定時間を掛けて最初のデータ転送サイズを決定しても良い。これにより、コンテンツの最初の転送時に於いても、各ミラーサーバから転送速度に応じたサイズのデータを受信できる。
【０１４５】
（ｆ）  第１の実施形態は、図３に示されているダウンロード動作をコンピュータに行わせるためのコンテンツ優先転送プログラムであっても良い。
【符号の説明】
【０１４６】
１０−１，１０−ｎ  端末（要求元）
１１  サーバ保持テーブル
２０−１，２０−２  サービス提供サーバ（複数のサーバ）
３０  エッジルータ
４０  ゲートウェイ（コンテンツ優先転送ゲートウェイ）
４１  ＨＴＴＰ／ＲＴＳＰプロキシ部
４２  Ｐｒｏｘｙ処理部（処理部）
４３  優先転送判定キャッシュ（記憶部）
４４  ダウンロード速度検出部
４５  ダウンロードバッファ部（記憶部）
４６  ユーザ情報テーブル（記憶部）
４７  優先転送サービス判定テーブル（記憶部）
４８  サーバ情報テーブル（記憶部）
１００  インターネット（外部ネットワーク）
１００Ａ  自事業者網（内部ネットワーク）
【図１】
0005690224.tif 000002
【図２】
0005690224.tif 000003
【図３】
0005690224.tif 000004
【図４】
0005690224.tif 000005
【図５】
0005690224.tif 000006
【図６】
0005690224.tif 000007
【図７】
0005690224.tif 000008
【図８】
0005690224.tif 000009
【図９】
0005690224.tif 000010
【図１０】
0005690224.tif 000011
【図１１】
0005690224.tif 000012