JP5690224B2 - コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ - Google Patents

コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ Download PDF

Info

Publication number
JP5690224B2
JP5690224B2 JP2011130700A JP2011130700A JP5690224B2 JP 5690224 B2 JP5690224 B2 JP 5690224B2 JP 2011130700 A JP2011130700 A JP 2011130700A JP 2011130700 A JP2011130700 A JP 2011130700A JP 5690224 B2 JP5690224 B2 JP 5690224B2
Authority
JP
Japan
Prior art keywords
server
content
transfer
packet
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011130700A
Other languages
English (en)
Other versions
JP2013004995A (ja
Inventor
伸也 河野
伸也 河野
藤嗣彦 田村
藤嗣彦 田村
安川 正祥
正祥 安川
裕昭 佐藤
裕昭 佐藤
司 岡本
司 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011130700A priority Critical patent/JP5690224B2/ja
Publication of JP2013004995A publication Critical patent/JP2013004995A/ja
Application granted granted Critical
Publication of JP5690224B2 publication Critical patent/JP5690224B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、IP(Internet Protocol)ネットワークに接続されている複数のミラーサーバからコンテンツを効率的に転送するコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイに関する。
近年、インターネット上でダウンロードを実施する際、同一のデータやコンテンツの複製を格納している複数のサーバを用意し、サーバ間でロードバランスをすることで、サーバの負荷分散により、負荷集中によるダウンロード速度の低下を防ぎ、転送効率の向上を実現する技術が知られている。この同一のデータやコンテンツを格納している複数のサーバは、ミラーサーバと呼ばれている。
非特許文献1には、複数サーバから分割ダウンロードして、ダウンロードの高速化を図る技術が開示されている。
「複数サーバーから分割ダウンロードして高速化を図る「Star Downloader」v1.1」、[online]、2002年2月12日、窓の杜、[平成23年5月31日検索]、インターネット (URL:http://www.forest.impress.co.jp/article/2002/02/12/stardownloader.html)
非特許文献1の技術は、複数のミラーサーバから単一のコンテンツを並列受信することで高速化するには有効である。しかし、複数のミラーサーバのうちダウンロード速度の遅いものが存在する場合や、特定のミラーサーバに係る回線状況の悪化により、ダウンロード速度が低下する虞がある。また、Youtube(登録商標)に代表される動画サイトのように、コンテンツの全てをダウンロードする前にコンテンツの再生が可能となる場合、コンテンツの最初の部分を応答速度の遅いサーバからダウンロードすると、再生開始までのオーバヘッドが大きくなる虞がある。
そこで、本発明は、複数のミラーサーバからコンテンツを高速でダウンロードし、かつ、コンテンツの再生開始までのオーバヘッドを少なくすることを可能とするコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイを提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイである。このコンテンツ優先転送ゲートウェイは、各前記サーバのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、前記要求元端末が前記複数のサーバのいずれかに格納されている当該コンテンツの転送を要求した第1のIPパケットを検知したならば、優先的にコンテンツを転送すると識別し、各前記サーバの転送速度順を転送順序とすると共に各前記サーバの転送速度に基いて各前記サーバから次に転送する当該コンテンツのサイズを決定し、当該コンテンツの転送を要求するIPパケットを各前記サーバに並行して代理送信し、各前記サーバから当該コンテンツの転送を受けて前記ダウンロードバッファ部にバッファリングして、各前記サーバの転送速度を再測定することを繰り返すProxy処理部と、を有している。前記Proxy処理部は、前記要求元端末への応答の第2のIPパケットの送信元アドレスに前記第1のIPパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信することを特徴とするコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身がHTTPプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末や各サーバに機能を追加することなく、優先転送サービスを提供可能となる。
請求項2に記載の発明では前記Proxy処理部は、前記内部ネットワークから送信されたHTTPのget要求のIPパケットの宛先アドレスが前記複数のサーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別して、HTTPのget要求のIPパケットを各前記サーバに並行して代理送信する、ことを特徴とする請求項1に記載のコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、内部ネットワークから送信されたHTTPのget要求のIPパケットの宛先アドレスに基づいて、優先転送サービスか否かの判定と、優先転送を実施することができる
請求項3に記載の発明では前記Proxy処理部は、各前記サーバに対してDNS(Domain Name System)でアドレス解決をする際のサーバアドレスの返却順で転送順序を設定して、新規フローの最初の代理送信において各前記サーバから前記コンテンツの各位置の所定サイズのデータを先頭から末尾に向けてダウンロードし、以降は各前記サーバの転送速度の順で転送順序を設定する、ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイは各サーバに対してDNSでアドレス解決をする際のサーバアドレスの返却順で転送順序を設定する。これによって、新規フローの最初の代理送信以前に、各サーバの転送順序を設定することができる。
請求項4に記載の発明では前記記憶部は、前記コンテンツを優先的に転送する端末のIPアドレスの情報テーブルを記憶しており、前記Proxy処理部は、前記第1のIPパケットの送信元アドレスが前記情報テーブルに存在したならば、IPパケットを各前記サーバに並行して代理送信する、ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、契約したユーザのみ、この優先転送サービスを提供可能となる。
請求項5に記載の発明では前記Proxy処理部は、前記第2のIPパケットのTOS(Type Of Service)フィールドのDSCPに、AF(Assured fowarding)の値セットを設定する、ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイとした。
請求項6に記載の発明では前記Proxy処理部は、優先転送トンネルを介して前記第2のIPパケットを前記要求元端末に転送する、ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、要求元端末への応答の第2のIPパケットを優先的に転送することができる。
請求項7に記載の発明では前記Proxy処理部は、各前記サーバからのデータのダウンロードと、前記ダウンロードバッファ部にバッファリングされている前記コンテンツの前記要求元端末への代理送信とを同期して実行する、ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイとした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身が必要とするバッファサイズを小さく抑えることが可能となる。
請求項8に記載の発明は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイが行うコンテンツ優先転送方法である。前記コンテンツ優先転送ゲートウェイは、処理部と、各前記サーバそれぞれのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、を有している。前記処理部は、前記内部ネットワークから送信されたHTTPのget要求の第1のIPパケットの送信元アドレスが前記要求元端末、当該第1のIPパケットの宛先アドレスが各前記サーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別し、前記第1のIPパケットの要求サイズを所定サイズに変更したHTTPのget要求のIPパケットを各前記サーバに並行して代理送信し、各前記サーバのHTTPの200(OK)のIPパケットを代理応答してデータを前記ダウンロードバッファ部にバッファリングすると共に各前記サーバの転送速度を再測定して各前記サーバから次回ダウンロードするデータのサイズを決定することを繰り返し、前記要求元端末へのHTTPの200(OK)の第2のIPパケットの送信元アドレスに前記第1のIPパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信することを特徴とするコンテンツ優先転送方法とした。
このようにすることで、本発明に係るコンテンツ優先転送ゲートウェイによれば、自身がHTTPプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末や各サーバに機能を追加することなく、優先転送サービスを提供可能となる。
本発明によれば、複数のミラーサーバからコンテンツを高速でダウンロードし、かつ再生開始までのオーバヘッドを少なくすることを可能とするコンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイを提供することが可能となる。
第1の実施形態に於けるネットワークの構成例を示す図である。 第1の実施形態に於ける端末のサーバ保持テーブルの例を示す図である。 第1の実施形態に於けるダウンロード動作を示すフローチャートである。 第1の実施形態に於けるダウンロードデータの分割例を示す図である。 第1の実施形態に於けるダウンロード動作を示すシーケンス図である。 第2の実施形態に於けるネットワークの構成例を示す図である。 第2の実施形態に於けるゲートウェイの構成例を示す図である。 第2の実施形態に於けるゲートウェイのサーバ保持テーブルなどの例を示す図である。 第2の実施形態に於ける優先転送判定キャッシュの例を示す図である。 第2の実施形態に於けるゲートウェイの動作を示す図である。 第2の実施形態に於けるダウンロード処理を示すシーケンス図である。
以降、本発明を実施するための形態を、図を参照して詳細に説明する。
(第1の実施形態の構成)
図1は、第1の実施形態に於けるネットワークの構成例を示す図である。
インターネット100には、ホームゲートウェイ(HGW:Home Gate Way)で接続されている端末10−1と、サービス提供サーバA(20−1)と、サービス提供サーバB(20−2)とが、それぞれ通信可能に接続されている。ホームゲートウェイは、端末10−1をインターネット100に接続するゲートウェイである。なお、以下では、ホームゲートウェイ(HGW)で接続されている端末10−1を、単に端末10−1と記載する。
端末10−1は、サービス提供サーバA(20−1)およびサービス提供サーバB(20−2)に対してHTTP(HyperText Transfer Protocol)プロトコルでアクセスし、コンテンツをダウンロードすることが可能である。インターネット100には複数の図示しない端末10−n(nは自然数)が接続されているが、それらの代表として端末10−1を例に説明する。
端末10−1は、例えばコンピュータであり、CPU(Central Processing Unit)である図示しない処理部と、RAM(Random Access Memory)とROM(Read Only Memory)とHDD(Hard disk drive)などである図示しない記憶部とを有している。処理部は、演算処理と、判断処理と、判断処理の結果に基く分岐処理とを行う。記憶部は、データ(コンテンツを含む)とプログラムとを記憶し、後述するサービス提供サーバA(20−1)と、サービス提供サーバB(20−2)のアドレスとしてのURL(Uniform Resource Locator)を記憶している。
サービス提供サーバA(20−1)と、サービス提供サーバB(20−2)とは、例えばサーバであるコンピュータであり、CPUである図示しない処理部と、RAMとROMとHDDなどである図示しない記憶部とを有している。処理部は、演算処理と、判断処理と、判断処理の結果に基く分岐処理とを行う。記憶部は、データ(コンテンツを含む)とプログラムとを記憶する。
本実施形態は、例えば図1に示す構成のネットワークに於いて、端末10−1は、あらかじめ設定したミラーサーバ群であるサービス提供サーバA(20−1)とサービス提供サーバB(20−2)とのサーバアドレスを基に、これらのサーバの性能や転送状況に応じて分割ダウンロードすることで、優先的かつ高速にダウンロードする技術である。
インターネット100には、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)の他にも、複数の図示しないサーバ群20−nが接続されており、同様なミラーサーバ群に対しても、本実施形態の技術を適用して高速にダウンロードが可能である。
本実施形態の端末10−1は、HTTPプロトコルを使用してダウンロードする。しかし、これに限られず、HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)プロトコル、FTP(File Transfer Protocol)プロトコル、RTSP(Real Time Streaming Protocol)プロトコルなど、他のプロトコルを使用してダウンロードしても良い。
本実施形態の端末10−1は、ミラーサーバ群のアドレスをあらかじめ保持している。しかし、これに限られず、端末10−1がDNS(Domain Name System)でアドレス解決をする際に、図示しないDNSサーバが複数のミラーサーバのアドレスを返却して設定しても良い。
図2は、第1の実施形態に於ける端末のサーバ保持テーブルの例を示す図である。
サーバ保持テーブル11は、端末10−1の記憶部に格納されている。サーバ保持テーブル11には、Service11aの項目と、ServerURL11bの項目と、Priority11cの項目とが含まれている。
Service11aの項目には、サービス名を示す情報が格納されている。本実施形態のService11aの項目には、このサービスを提供するサーバのアドレスとしてのURLの一部が格納されている。
ServerURL11bの項目には、このサービスを提供するインターネット100上の複数のミラーサーバのアドレスとしてのURLが格納されている。
Priority11cの項目には、このサービスを提供するサーバの優先度が格納されている。本実施形態に於いて、サーバの優先度は、値が小さいほど優先度が高い。
端末10−1は、いずれかのサーバからデータやコンテンツをダウンロードする際には、当該サーバがサーバ保持テーブル11に登録されているか否かを判定する。サーバ保持テーブル11に登録されたサーバであったならば、同一のサービスを提供する複数のミラーサーバに対してHTTPのget要求を並列に送信する。
サーバ保持テーブル11は、ユーザの契約時に登録される。しかし、これに限られず、DNSで当該端末10−1のアドレス解決をする際に、これら複数のサーバアドレスを返却して設定しても良い。このとき、サーバアドレスの返却順にサーバの優先度が設定される。
(第1の実施形態の動作)
図3は、第1の実施形態に於けるダウンロード動作を示すフローチャートである。
端末10−1の処理部は、ユーザから、サービス提供サーバA(20−1)またはサービス提供サーバB(20−2)のいずれかに格納されているコンテンツを転送する指示を受けて、図3の処理を開始する。
端末10−1の処理部は、HTTPダウンロードを実施する際に、端末10−1の記憶部に格納されているサーバ保持テーブル11のServerURL11bの項目からミラーサーバのアドレスリストを取得する。
ステップS11に於いて、端末10−1の処理部は、サーバ保持テーブル11のPriority11cの項目のミラーサーバの優先度の順に、各ミラーサーバから、ダウンロード対象ファイルの所定量(ここでは1Mbytes)をダウンロードする。サーバ保持テーブル11は、端末10−1の記憶部に格納されている。ここでは、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)の2台からダウンロードするので、それぞれのミラーサーバから、所定量をサーバ台数で割った(1Mbytes÷2=512Kbytes)のデータをダウンロードする。
このミラーサーバの優先度は、RTT(Round Trip Time)によって決定される。RTTは、それぞれのミラーサーバにHTTP要求を送信してから、当該サーバからHTTP応答が戻ってくるまでに掛る時間である。RTTは、サーバの応答速度である。
すなわち、端末10−1の処理部は、ユーザから、複数のサーバのいずれかに格納されているコンテンツを転送する指示を受けた場合には、最初、複数のサーバそれぞれから所定サイズのコンテンツの転送を受けて、複数のサーバぞれぞれの転送速度と応答速度とを測定する。
ステップS12に於いて、端末10−1の処理部は、この一定量のダウンロードの終了と共に、各ミラーサーバからのダウンロード速度とRTTを計算する。転送速度であるダウンロード速度は、ダウンロードのデータ量を、このデータをダウンロードするのに要した時間で除算したものである。
すなわち、端末10−1の処理部は、複数のサーバぞれぞれの転送速度と応答速度とを再測定している。
ステップS13に於いて、端末10−1の処理部は、各ミラーサーバの優先度を、RTTが小さい順に変更する。それに伴い、サーバ保持テーブル11のPriority11cの項目のサーバの優先度の情報を変更する。このサーバ保持テーブル11は、端末10−1の記憶部に格納されている。
すなわち、端末10−1の処理部は、複数のサーバの応答速度順を転送順序としている。
ステップS14に於いて、端末10−1の処理部は、各ミラーサーバから次にダウンロードするデータ量を決定する。ダウンロードするデータ量は、計算したダウンロード速度に、所定時間(本実施形態では30秒)を掛けた量とする。
すなわち、端末10−1の処理部は、複数のサーバそれぞれの転送速度に基いて前記複数のサーバそれぞれに転送を要求するコンテンツのサイズを決定している。
ステップS15に於いて、端末10−1の処理部は、各ミラーサーバのダウンロード対象ファイルから、サーバの優先度の順に、決定したデータ量をダウンロードする。
すなわち、端末10−1の処理部は、複数のサーバそれぞれから当該コンテンツの転送を受ける。
ステップS16に於いて、端末10−1の処理部は、ダウンロード対象ファイルの全データのダウンロードが完了したか否かを判断する。ダウンロード対象ファイルの全データのダウンロードが完了していなかったならば(No)、ステップS12の処理に戻る。ダウンロード対象ファイルの全データのダウンロードが完了したならば(Yes)、図3の処理を終了する。
図3の動作では、最初に、これら複数のミラーサーバそれぞれから所定サイズのコンテンツを転送して、これら複数のミラーサーバぞれぞれの転送速度を算出する。そののち、これら複数のミラーサーバそれぞれの転送速度に基いて複数のサーバそれぞれから次に転送する当該コンテンツのサイズを決定し、これら複数のミラーサーバそれぞれから当該コンテンツを転送して、複数のミラーサーバぞれぞれの転送速度を算出することを繰り返している。
図4(a),(b)は、第1の実施形態に於けるダウンロードデータの分割例を示す図である。なお、以下の図面では、サービス提供サーバA(20−1)を「サーバA」と記載し、サービス提供サーバB(20−2)を「サーバB」と記載している。
図4(a)は、ダウンロードデータの分割イメージを示す図である。
ダウンロード対象ファイルは、データD1,D2,D3,D4,D5,D6のように分割されている。図示していないD6より後ろの部分も、同様に分割されている。
データD1は、ダウンロード対象ファイルの冒頭部であり、512Kbytesのサイズである。
データD2は、データD1の直後にあり、512Kbytesのサイズである。
データD3は、データD2の直後にあり、サービス提供サーバA(20−1)からデータD1をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
データD4は、データD3の直後にあり、サービス提供サーバB(20−2)からデータD2をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
データD5は、データD4の直後にあり、サービス提供サーバA(20−1)からデータD3をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
データD6は、データD5の直後にあり、サービス提供サーバB(20−2)からデータD4をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
図4(b)は、各ミラーサーバからのダウンロードイメージを示す図である。
横方向は時間軸tを示し、右横方向に時間経過を示している。時間軸tの上側は、サービス提供サーバA(20−1)からのダウンロードイメージを示している。時間軸tの下側は、サービス提供サーバB(20−2)からのダウンロードイメージを示している。ダウンロードイメージの矩形は、ダウンロードしたときの帯域を高さで示し、ダウンロード時間を幅で示している。
図4に於いて、サービス提供サーバA(20−1)のダウンロード速度は、サービス提供サーバB(20−2)の約2倍である。
本実施形態では、端末10−1に、予めサービス提供サーバA(20−1)とサービス提供サーバB(20−2)が登録されており、サービス提供サーバA(20−1)の優先度が高い。また、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)とは、同一のダウンロード対象ファイルを保持している。
端末10−1は、優先度の高いサービス提供サーバA(20−1)から、ダウンロード対象ファイルの先頭部のデータD1をダウンロードし、並列にサービス提供サーバB(20−2)から、データD2のダウンロードを開始する。端末10−1は、データD1のダウンロード時間と、データD2のダウンロード時間とを測定する。測定したダウンロード時間に基いて、端末10−1は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
端末10−1は、次にダウンロードするデータD3のサイズと、データD4のサイズを計算する。データD3のサイズは、サービス提供サーバA(20−1)からデータD1をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。データD4のサイズは、サービス提供サーバB(20−2)からデータD2をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。
端末10−1は、優先度の高いサービス提供サーバA(20−1)から、ダウンロード対象ファイルのデータD3をダウンロードし、並列にサービス提供サーバB(20−2)から、データD4のダウンロードを開始する。このとき、データD3のダウンロード時間と、データD4のダウンロード時間とは、ほぼ等しくなる。この結果に基いて、端末10−1は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
端末10−1は、次にダウンロードするデータD5のサイズと、データD6のサイズを計算する。データD5のサイズは、サービス提供サーバA(20−1)からデータD3をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。データD6のサイズは、サービス提供サーバB(20−2)からデータD4をダウンロードしたときのダウンロード速度に、所定時間を掛けたサイズである。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
端末10−1は、優先度の高いサービス提供サーバA(20−1)から、ダウンロード対象ファイルのデータD5をダウンロードし、並列にサービス提供サーバB(20−2)から、データD6のダウンロードを開始する。このとき、データD5のダウンロード時間と、データD6のダウンロード時間とは、ほぼ等しくなる。この結果に基いて、端末10−1は、各ミラーサーバの直近のダウンロード速度を計算する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。これを、ダウンロード対象ファイルを全てダウンロードするまで繰り返す。
特定のサーバの転送が停止した場合、または、各ミラーサーバ間の転送速度の比が所定値(例えば10倍)を超えた場合には、転送が停止したサーバ、または、転送速度の比が最速のサーバの所定閾値(例えば1/10)以下であるサーバへの要求を停止し、残った各ミラーサーバからダウンロードを行う。
すなわち、端末10−1の処理部は、複数のサーバのうち転送速度が最速のサーバといずれかのサーバとの転送速度の比が所定閾値以下であった場合、以降、当該サーバにコンテンツの転送を要求しない。これにより、コンテンツのダウンロード速度が極端に低下することを抑止可能である。
図5は、第1の実施形態に於けるダウンロード動作を示すシーケンス図である。
処理が開始すると、シーケンスQ10に於いて、端末10−1の処理部は、サービス提供サーバA(20−1)に、HTTPのget要求を送信して、512KbytesのデータD1を要求する。
シーケンスQ11に於いて、サービス提供サーバA(20−1)の処理部は、HTTPの200(OK)を応答して、512KbytesのデータD1を応答する。
シーケンスQ12に於いて、端末10−1の処理部は、サービス提供サーバB(20−2)に、HTTPのget要求を送信して、512KbytesのデータD2を要求する。この処理は、シーケンスQ10と並行して行われる。
シーケンスQ13に於いて、サービス提供サーバB(20−2)の処理部は、HTTPの200(OK)を応答して、512KbytesのデータD2を応答する。
シーケンスQ14に於いて、端末10−1の処理部は、サービス提供サーバA(20−1)、サービス提供サーバB(20−2)と端末10−1との間の転送速度を算出し、転送速度に応じて、各ミラーサーバからのダウンロード量を決定する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
シーケンスQ15に於いて、端末10−1の処理部は、サービス提供サーバA(20−1)に、HTTPのget要求を送信して、120MbitのデータD3を要求する。
シーケンスQ16に於いて、サービス提供サーバA(20−1)の処理部は、HTTPの200(OK)を応答して、120MbitのデータD3を応答する。
シーケンスQ17に於いて、端末10−1の処理部は、サービス提供サーバB(20−2)に、HTTPのget要求を送信して、30MbitのデータD4を要求する。
シーケンスQ18に於いて、サービス提供サーバB(20−2)の処理部は、HTTPの200(OK)を応答して、30MbitのデータD4を応答する。
シーケンスQ19に於いて、端末10−1の処理部は、サービス提供サーバA(20−1)、サービス提供サーバB(20−2)と端末10−1との間の転送速度を算出し、転送速度に応じて、各ミラーサーバからのダウンロード量を決定する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
シーケンスQ20に於いて、端末10−1の処理部は、サービス提供サーバB(20−2)に、HTTPのget要求を送信して、150MbitのデータD5を要求する。
シーケンスQ21に於いて、サービス提供サーバB(20−2)の処理部は、HTTPの200(OK)を応答して、150MbitのデータD5を応答する。
シーケンスQ22に於いて、端末10−1の処理部は、サービス提供サーバA(20−1)に、HTTPのget要求を送信して、150MbitのデータD6を要求する。
シーケンスQ23に於いて、サービス提供サーバA(20−1)の処理部は、HTTPの200(OK)を応答して、150MbitのデータD6を応答する。
このように、シーケンスQ19〜Q23と同様の動作を転送終了まで繰り返し、ダウンロード対象ファイルを全て受信する。
(第1の実施形態の効果)
以上説明した第1の実施形態では、次の(A)〜(D)のような効果がある。
(A) ダウンロード時に、各ミラーサーバのダウンロード速度に応じてファイルを分割してダウンロードすることにより、各ミラーサーバの能力に合わせた高速な転送が可能である。
(B) 定期的にダウンロード量を再計算することにより、ネットワークの状況に合わせた高速転送が可能である。
(C) RTTの比較により、応答速度の速いサーバから優先的にダウンロードしている。これにより、例えば動画サイトのように、全データをダウンロードする前にコンテンツの利用が可能となる場合に於いて、ダウンロード開始からコンテンツの利用(例えば動画再生など)までのオーバヘッド(待ち時間)を小さくすることが可能である。
(D) 契約者の端末10−nが、本提案技術を実装することにより、特定のサーバやサーバファームに負荷をかけること無しに、インターネット100上にあるミラーサーバ群からの高速転送が可能である。
(第2の実施形態の構成)
図6は、第2の実施形態に於けるネットワークの構成例を示す図である。図1に示す第1の実施形態のネットワークと同一の要素には同一の符号を付与している。
第2の実施形態のネットワークは、第1の実施形態のネットワークとは異なるエッジルータ30と自事業者網100Aとゲートウェイ40を有している他は、第1の実施形態のネットワークと同様の構成を有している。自事業者網100Aは、内部ネットワークである。インターネット100は、外部ネットワークである。
第2の実施形態のネットワークに於いて、端末10−1は、エッジルータ30と自事業者網100Aとゲートウェイ40とを介して、インターネット100に接続されている。
端末10−1は、サービス提供サーバA(20−1)やサービス提供サーバB(20−2)からデータをダウンロードする際には、エッジルータ30と自事業者網100Aとゲートウェイ40とを介して通信する必要がある。
すなわち、ゲートウェイ40は、内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元である端末10−1に転送するコンテンツ優先転送ゲートウェイである。
第2の実施形態では、端末10−1およびゲートウェイ40が、IPv4(Internet Protocol Version 4)のIPヘッダのTOS(Type Of Service)値を書き換えることにより、自事業者網100A内で優先転送を実施している。しかし、これに限られず、優先転送トンネルをゲートウェイ40経由で確立し、この優先転送トンネルを用いて優先転送しても良い。
ここで優先転送トンネルとは、IPsec(Security Architecture for Internet Protocol)トンネルともいい、インターネット上の2地点間に仮想的なトンネルを作り、そこにIPパケットを通す技術のことをいう。さらにIPsecトンネルでは、この仮想的なトンネルを通すパケットを暗号化し、第三者による盗聴を抑止している。
図7は、第2の実施形態に於けるゲートウェイの構成例を示す図である。
ゲートウェイ40は、HTTP/RTSPプロキシ(Proxy)部41と、ダウンロードバッファ部45と、ユーザ情報テーブル46と、優先転送サービス判定テーブル47と、サーバ情報テーブル48とを有している。HTTP/RTSPプロキシ部41は、Proxy処理部42と、優先転送判定キャッシュ43と、ダウンロード速度検出部44とを有している。
Proxy処理部42は、図6に示す自事業者網100Aなどを介して端末10−1と通信可能に接続されている。Proxy処理部42は更に、図6に示すインターネット100などを介してサービス提供サーバ群20−nと相互に通信可能に接続されている。
Proxy処理部42は、ダウンロードバッファ部45と、ユーザ情報テーブル46と、優先転送サービス判定テーブル47と、優先転送判定キャッシュ43とに接続されている。Proxy処理部42の出力側は、ダウンロード速度検出部44に接続されている。ダウンロード速度検出部44の出力側は、ダウンロードバッファ部45に接続されている。ダウンロードバッファ部45の出力側は、Proxy処理部42に接続されている。
ゲートウェイ40の図示しない記憶部は、優先転送判定キャッシュ43と、ユーザ情報テーブル46と、優先転送サービス判定テーブル47と、サーバ情報テーブル48とを記憶している。ダウンロードバッファ部45は、ゲートウェイ40の図示しない記憶部の一部である。
すなわち、ゲートウェイ40は、Proxy処理部42と、複数のサーバそれぞれのアドレスを記憶している図示しない記憶部とを有している。
図8(a)〜(c)は、第2の実施形態に於けるゲートウェイのサーバ保持テーブルなどの例を示す図である。
図8に示す各テーブルは、第1の実施形態のサーバ保持テーブル11を拡張したものに相当する。
図8(a)は、ユーザ情報テーブル46を示す図である。
ユーザ情報テーブル46は、userID46aの項目と、SrcIP46bの項目とを含んでいる。userID46aの項目には、ユーザの契約情報が一意に特定可能なユーザIDが格納されている。SrcIP46bの項目には、ユーザの端末10−1(またはHGW)に割り当てられたIPアドレスが格納されている。
ユーザ情報テーブル46の情報は、ユーザの契約時、または、ユーザへのIPアドレス払い出し時に登録される。ゲートウェイ40は、新規HTTPコネクションを検出した際に、ユーザ情報テーブル46を参照し、どのユーザのHTTPコネクションであるかを識別する。
図8(b)は、優先転送サービス判定テーブル47を示す図である。
優先転送サービス判定テーブル47は、userID47aの項目と、Service47bの項目と、TOS47cの項目とを有している。優先転送サービス判定テーブル47には、ユーザの識別子(ユーザID)と、当該ユーザが契約している優先転送対象のサービスと、優先転送の内容とが格納されている。
userID47aの項目には、ユーザの契約情報が一意に特定可能なユーザIDが格納されている。Service47bの項目には、サービス名を示す情報が格納されている。本実施形態のService47bの項目には、このサービスを提供するサーバのURLの一部が格納されている。TOS47cの項目には、このゲートウェイ40がHTTPの200(OK)の応答を端末10−1に返す際のIPヘッダのTOSに付与するデータが格納されている。図8(b)では、TOS47cの項目には、いずれもAF(Assured Forwarding)の値セットが格納されている。
TOSに設定される項目として「IP Precedence」や「DSCP」などがある。
IP Precedenceは、TOSの先頭3bitを使用する。IP Precedenceの数字が大きいほど、そのIPパケットは重要なパケットとして各機器に認識される。但し、ユーザが設定できる値の最大は5とされている。6と7とはルーティングアップデートやkeep aliveなどで使われるため、ユーザが設定しないように推奨されている。
DSCPは、TOSの先頭6bitを使用する。DSCPの先頭3bitは、クラス分けに使用され、IP Precedenceと同じ意味を示す。DSCPの続く3bitは、ドロップの割合を示すフィールドして使用され、かつ、この最後の1bitは、1のときにテスト用を示すフィールドとして使用される。
DSCPに設定される値セットには、CS(Class Selector)、EF(Expedited Forwarding)、AF(Assured Forwarding)という名称が付与されている。
CSの値セットの場合には、先頭3bitだけが使用され、残りの3bitには「000」のビットパターンが設定される
EFの値セットは、「101110」のビットパターンである。これはユーザーデータで送る最優先(帯域保証 + 低遅延)を意味している。EFは、音声用パケットなどの遅延が許されないトラフィックに使用される。
AFの値セットは、前述したCSの場合とEFの場合とに含まれない、その他の値セットである。AFの値セットには、AF11〜AF43があり、後半の値が大きいほどIPパケットがドロップしやすくなる。
第2の実施形態のゲートウェイ40は、「ID A」の識別子を有するユーザが、downloadA.comのサービスサイトにアクセスする際に、ダウンロード型サービスの優先転送を実施している。ゲートウェイ40は更に、自事業者網100Aに送信するIPヘッダのTOSフィールドAFの値セットを設定し、優先的に転送する。
優先転送サービス判定テーブル47は、ユーザの契約時に登録される。優先転送サービス判定テーブル47は、ゲートウェイ40が新規HTTPコネクションまたは新規RTSPコネクションを検出した際に、優先転送サービスを行うか否かと、どのような優先転送サービスを実施するか(例えば、ダウンロード型、ストリーミング型など)を決定するために用いられる。
図8(c)は、サーバ情報テーブル48を示す図である。
サーバ情報テーブル48は、Service48aの項目と、ServerURL48bの項目と、Priority48cの項目とを有している。Service48aの項目には、サービス名(本例では、URLの一部)が格納されている。ServerURL48bの項目には、優先対象のサービスを提供する図示しない他事業者網もしくはインターネット100上の複数のミラーサーバのアドレスが格納されている。Priority48cの項目には、各ミラーサーバの優先度の情報が格納されている。サーバ情報テーブル48は、第1の実施形態のサーバ保持テーブル11に相当する。
ゲートウェイ40は、優先転送対象のサービスに対するHTTP要求を検出した際に、サーバ情報テーブル48に登録されたミラーサーバに対してHTTP要求を送信する。
サーバ情報テーブル48は、ユーザの契約時に登録される。更に、事業者により優先転送サービスとサービス提供サーバが追加登録されても良く、DNSでアドレス解決をする際に複数のサーバアドレスを返却することにより設定されても良い。このとき、各ミラーサーバの優先度は、サーバアドレスの返却順で設定される。
図9は、第2の実施形態に於ける優先転送判定キャッシュの例を示す図である。
優先転送判定キャッシュ43は、SrcIP43aの項目と、DstIP43bの項目と、SrcPort43cの項目と、DstPort43dの項目と、Protocol43eの項目と、Service43fの項目と、優先43gの項目と、TOS43hの項目とを有している。SrcIP43aの項目には、IPパケットの送信元のIPアドレスが格納されている。DstIP43bの項目には、IPパケットの宛先のIPアドレスが格納されている。SrcPort43cの項目には、IPパケットの送信元のポート番号が格納されている。DstPort43dの項目には、IPパケットの宛先のポート番号が格納されている。Protocol43eの項目には、IPパケットのプロトコルの種別を示す文字列が格納されている。Service43fの項目には、サービス名(本例では、URLの一部)が格納されている。優先43gの項目には、優先転送サービスであるか否かを示す情報が格納されている。優先転送サービスのときには“1”が、優先転送サービスではないときには“0”が格納されている。TOS43hの項目には、IPパケットのTOSフィールドに設定する値が16進数で格納されている。SrcIP43aの項目と、DstIP43bの項目と、SrcPort43cの項目と、DstPort43dの項目と、Protocol43eの項目とは、コネクションの情報である。
優先転送判定キャッシュ43は、コネクションが、優先転送対象か、どういった優先転送を実施するかの判定結果を保持するテーブルである。
ゲートウェイ40のProxy処理部42は、コネクションが優先転送サービスではない場合、サービス名にNullを設定し、優先転送のフラグに0を設定する。ゲートウェイ40のProxy処理部42は、コネクションを検出した際には、この優先転送判定キャッシュ43を検索する。当該コネクションが優先転送判定キャッシュ43に登録されていれば、登録されていたコネクションの情報をもとに、当該コネクションの転送を制御する。当該コネクションが優先転送判定キャッシュ43に登録されていなければ、新規コネクションの検出と判断する。優先転送判定キャッシュ43は、ユーザ情報テーブル46と優先転送サービス判定テーブル47とに基いて設定される。
(第2の実施形態の動作)
図10は、第2の実施形態に於けるゲートウェイの動作を示す図である。
以下、順番にゲートウェイ40の動作を説明する。
(1) 識別済みのフローか確認する。
ゲートウェイ40のProxy処理部42は、端末10−1からHTTPのget要求を受信した際に、優先転送サービス判定テーブル47により、新規コネクションか否かを判定する。すなわち、識別済のフローか否かを確認する。
(2) 未識別のフローの場合、ユーザを識別する。
ゲートウェイ40のProxy処理部42は、新規コネクションであり、未識別のフローであると判定された場合、ユーザ情報テーブル46からユーザIDを特定して、このフローに係るユーザを識別する。
(3) 優先転送サービスか否かを識別する。
ゲートウェイ40のProxy処理部42は更に、優先転送サービス判定テーブル47によって、当該コネクションが優先転送対象のサービスか否かを識別する。すなわち、要求元である端末10−1から、優先転送対象のサービスに係る複数のサーバのいずれかに格納されているコンテンツを要求したか否かを識別する。
すなわち、Proxy処理部42は、要求元である端末10−1が複数のサーバのいずれかに格納されているコンテンツの転送を要求したか否かを判定している。
(4) フロー識別結果を登録する。
ゲートウェイ40のProxy処理部42は、当該コネクションが優先転送対象であると判定した場合、優先転送判定キャッシュ43に、フロー識別結果であるコネクションの情報と、優先転送サービスの情報と、優先転送の種類とを登録する。
(5)サーバリストを取得する。
ゲートウェイ40のProxy処理部42は、サーバ情報テーブル48からサーバ群20−nのリストを取得する。本実施形態では、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)とがサービス提供サーバである。
(6) HTTPのget要求を転送する。
ゲートウェイ40のProxy処理部42は、優先度が高いサービス提供サーバA(20−1)に対し、ファイルの最初からダウンロードを代理要求する(HTTPのget要求を代理送信する)。優先度が低いサービス提供サーバB(20−2)に対しては、ファイルの512Kbytes以降に対して、ダウンロードを代理要求する(HTTPのget要求を代理送信する)。
(7) 優先転送対象か否かを確認する。
ゲートウェイ40のProxy処理部42は、サービス提供サーバA(20−1)やサービス提供サーバB(20−2)からの応答HTTPの200(OK)を受信すると、優先転送サービス判定テーブル47のコネクションの情報をもとに、この応答のIPパケットが優先転送対象であるか否かを確認する。
(8) バッファへ保存する。
ゲートウェイ40のProxy処理部42は、応答のIPパケットが優先転送対象であれば、このIPパケットを宛先に送らずに、ダウンロード速度検出部44でデータ転送量をカウントし、ダウンロードバッファ部45に応答のIPパケットを一時的に保存する。ダウンロードバッファ部45は、記憶部の一部であり、要求元である端末10−1が要求したコンテンツを記憶する領域である。
(9) TOSリマーキングを実施し、優先転送する。
ゲートウェイ40のProxy処理部42は、ダウンロードバッファ部45に一次的に記憶された応答のIPパケットに対して、TOSフィールドのリマーキング(書き換え)を実施し、自事業者網100A内を優先して転送する。
Proxy処理部42は、優先度が高いサービス提供サーバA(20−1)からのダウンロードによって、応答速度であるRTTを再測定する。
その後、ダウンロード速度検出部44は、優先度が高いサービス提供サーバA(20−1)からの最初のダウンロードが終了した場合、ダウンロードしたデータ量を掛った時間で除算してダウンロード速度を再測定する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバA(20−1)からのダウンロードのデータ量を決定する。
Proxy処理部42は、優先度が低いサービス提供サーバB(20−2)からのダウンロードによって、応答速度であるRTTを再測定する。
ダウンロード速度検出部44は、優先度が低いサービス提供サーバB(20−2)からの最初のダウンロードが終了した場合、ダウンロードしたデータ量を掛った時間で除算してダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバB(20−2)からのダウンロードのデータ量を決定する。
サービス提供サーバA(20−1)の応答速度が、サービス提供サーバB(20−2)の応答速度よりも速いならば、次のダウンロードもサービス提供サーバA(20−1)がコンテンツの先頭側をダウンロードする。
サービス提供サーバA(20−1)のダウンロード速度が4Mbpsであったとき、ファイルの次の120Mbitをサービス提供サーバA(20−1)からダウンロードする。サービス提供サーバB(20−2)のダウンロード速度が1Mbpsであったとき、ファイルの次の30Mbitをサービス提供サーバB(20−2)からダウンロードする。
Proxy処理部42は、優先度が高いサービス提供サーバA(20−1)とサービス提供サーバB(20−2)からのダウンロードによって、応答速度であるRTTを再測定する。この応答速度順を次の転送順序とする。
このダウンロードが完了すると、ダウンロード速度検出部44は、サービス提供サーバA(20−1)からダウンロードしたデータ量を掛った時間で除算して、ダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバA(20−1)からのダウンロードのデータ量を決定する。
ダウンロード速度検出部44は同様に、サービス提供サーバB(20−2)からダウンロードしたデータ量を掛った時間で除算して、ダウンロード速度を計算する。このダウンロード速度に所定時間を乗算して、次のサービス提供サーバB(20−2)からのダウンロードのデータ量を決定する。
このような処理を繰り返して、要求されたデータをダウンロードバッファ部45にダウンロードして記憶する。
要求元である端末10−1からのHTTPのget要求に応じて、HTTPの200(OK)応答を代理送信し、ダウンロードバッファ部45に記憶されているコンテンツを送信する。
図11は、第2の実施形態に於けるダウンロード処理を示すシーケンス図である。
第2の実施形態では、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)とが予め登録されており、サービス提供サーバA(20−1)の優先度が高く設定されている。また、サービス提供サーバA(20−1)とサービス提供サーバB(20−2)とは同一のダウンロード対象ファイルを保持している。
シーケンスQ40に於いて、端末10−1の処理部は、優先転送サービスを意識せずにダウンロードを開始し、IPパケットの宛先アドレスをサービス提供サーバA(20−1)のアドレスに設定したHTTPのget要求を送信する。このget要求に於ける要求データサイズは、任意のサイズで良い。このHTTPリクエストは、ゲートウェイ40をいったん通過する。
シーケンスQ41に於いて、ゲートウェイ40のProxy処理部42は、当該リクエストが優先転送サービスであるか否かを判定する。本実施形態では、優先転送サービスであるため、以降、優先度の順に各ミラーサーバから並列にダウンロードを行い、端末10−1に対して優先転送サービスのリクエストの代理応答を行う。
シーケンスQ42に於いて、ゲートウェイ40のProxy処理部42は、サービス提供サーバA(20−1)に対して、IPパケットの送信元アドレスを端末10−1のアドレスに設定したHTTPのget要求を代理送信して、512MbytesのデータD1を要求する。
シーケンスQ43に於いて、サービス提供サーバA(20−1)の処理部は、IPパケットの宛先アドレスを端末10−1のアドレスに設定したHTTPの200(OK)を応答して、データD1を送信する。ゲートウェイ40のProxy処理部42は、サービス提供サーバA(20−1)からのデータD1のダウンロードによって、応答速度であるRTTを再測定する。
シーケンスQ44に於いて、ゲートウェイ40のProxy処理部42は、受信したIPパケットの宛先アドレスが端末10−1のアドレスであり、よって、優先転送サービスの応答であると判断したならば、このIPパケットを端末10−1には送信せずに、受信したデータD1をダウンロードバッファ部45にバッファリングする。
シーケンスQ45に於いて、ゲートウェイ40のProxy処理部42は、IPパケットの送信元アドレスをサービス提供サーバA(20−1)のアドレスに設定したHTTPの200(OK)を応答して、ダウンロードバッファ部45にバッファリングしていたデータD1を代理送信する。
シーケンスQ47に於いて、ゲートウェイ40のProxy処理部42は、サービス提供サーバB(20−2)に対して、IPパケットの送信元アドレスを端末10−1のアドレスに設定したHTTPのget要求を代理送信して、512MbytesのデータD2を要求する。この処理は、シーケンスQ42と並行して行われる。
シーケンスQ48に於いて、サービス提供サーバB(20−2)の処理部は、IPパケットの宛先アドレスを端末10−1のアドレスに設定したHTTPの200(OK)を応答して、データD2を送信する。ゲートウェイ40のProxy処理部42は、サービス提供サーバB(20−2)からのデータD2のダウンロードによって、応答速度であるRTTを再測定する。
シーケンスQ49に於いて、ゲートウェイ40のProxy処理部42は、受信したIPパケットの宛先アドレスが端末10−1のアドレスであり、よって優先転送サービスの応答であると判断したならば、このIPパケットを端末10−1には送信せずに、受信したデータD2をダウンロードバッファ部45にバッファリングする。
シーケンスQ50に於いて、ゲートウェイ40のProxy処理部42は、端末10−1に対して、IPパケットの送信元アドレスをサービス提供サーバA(20−1)のアドレスに設定したHTTPの200(OK)を応答して、ダウンロードバッファ部45にバッファリングしていたデータD2を代理送信する。
以降、端末10−1は、ゲートウェイ40を介して、IPパケットの宛先アドレスをサービス提供サーバA(20−1)のアドレスに設定したHTTPのget要求を送信し、ゲートウェイ40のProxy処理部42は、HTTPの200(OK)を代理応答する。
シーケンスQ51に於いて、最初の1Mbytesのダウンロードが完了すると、ゲートウェイ40のダウンロード速度検出部44は、このデータD1,D2のデータサイズとダウンロード時間を基に、ゲートウェイ40と各ミラーサーバとの間の転送速度をそれぞれ算出する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
サービス提供サーバA(20−1)の転送速度が4Mbpsであった場合、この転送速度に所定時間の30秒を乗算して、次のダウンロードサイズの120Mbitを算出する。サービス提供サーバB(20−2)の転送速度が1Mbpsであった場合、この転送速度に所定時間の30秒を乗算して、次のダウンロードサイズの30Mbitを算出する。
シーケンスQ52に於いて、ゲートウェイ40のProxy処理部42は、サービス提供サーバA(20−1)に対して、IPパケットの送信元アドレスを端末10−1のアドレスに設定したHTTPのget要求を代理送信して、120MbitのデータD3を要求する。
シーケンスQ53に於いて、サービス提供サーバA(20−1)の処理部は、IPパケットの宛先アドレスを端末10−1に設定したHTTPの200(OK)を応答して、データD3を送信する。ゲートウェイ40のProxy処理部42は、サービス提供サーバA(20−1)からのデータD3のダウンロードによって、応答速度であるRTTを再測定する。
シーケンスQ54に於いて、ゲートウェイ40のProxy処理部42は、受信したIPパケットの宛先アドレスが端末10−1のアドレスであり、よって優先転送サービスの応答であると判断したならば、このIPパケットを端末10−1には転送せずに、受信したデータD3をダウンロードバッファ部45にバッファリングする。
シーケンスQ55に於いて、ゲートウェイ40のProxy処理部42は、サービス提供サーバB(20−2)に対して、IPパケットの送信元アドレスを端末10−1のアドレスに設定したHTTPのget要求を代理送信して、30MbitのデータD4を要求する。この処理は、シーケンスQ52と並行して行われる。
シーケンスQ56に於いて、サービス提供サーバB(20−2)の処理部は、IPパケットの宛先アドレスを端末10−1のアドレスに設定したHTTPの200(OK)を応答して、データD4を送信する。ゲートウェイ40のProxy処理部42は、サービス提供サーバB(20−2)からのデータD4のダウンロードによって、応答速度であるRTTを再測定する。
シーケンスQ57に於いて、ゲートウェイ40のProxy処理部42は、受信したIPパケットの宛先アドレスが端末10−1のアドレスであり、よって優先転送サービスの応答であると判断したならば、このIPパケットを端末10−1には転送せずに、受信したデータD4をダウンロードバッファ部45にバッファリングする。
シーケンスQ58に於いて、データD3とデータD4のダウンロードが完了すると、ゲートウェイ40のダウンロード速度検出部44は、ゲートウェイ40と各ミラーサーバとの間の転送速度をそれぞれ算出する。更に、各ミラーサーバのRTTを計算し、このRTTが小さい順に、各ミラーサーバの優先度が高くなるように決定する。
サービス提供サーバA(20−1)の転送速度が5Mbpsであった場合、この転送速度に所定時間の30秒を乗算して、次のダウンロードサイズの150Mbitを算出する。サービス提供サーバB(20−2)の転送速度が5Mbpsであった場合、この転送速度に所定時間の30秒を乗算して、次のダウンロードサイズの150Mbitを算出する。
シーケンスQ59〜Q64の処理は、シーケンスQ52〜Q57の処理と同様である。上記の処理を繰り返すことで、ダウンロード対象ファイルの全体を転送する。
特定のサーバの転送が停止した場合、または、各ミラーサーバ間の転送速度の比が所定値(例えば10倍)を超えた場合には、転送が停止したサーバ、または、転送速度の比が最速のサーバの所定閾値(例えば1/10)以下であるサーバへの要求を停止し、残った各ミラーサーバからダウンロードを行う。
すなわち、端末10−1の処理部は、これら複数のミラーサーバのうちいずれかのサーバの転送速度の比が、所定閾値以下(例えば1/10以下)であった場合、以降、当該サーバからのコンテンツの転送を行わない。これにより、コンテンツのダウンロード速度が極端に低下することを抑止可能である。
(第2の実施形態の効果)
以上説明した第2の実施形態では、次の(E)〜(G)のような効果がある。
(E) 自事業者網100Aとインターネット100(他事業者網など)を接続するゲートウェイ40がHTTPプロキシとなり、優先転送サービスか否かの判定と、優先転送を実施することで、契約者の端末10−1やサーバ群20−nに機能を追加することなく、優先転送サービスを提供可能となる。
(F) 回線事業者の契約ユーザが、優先転送サービスのための事業間連携を実施していない他事業者網のサーバ群や、インターネット100上にあるサーバ群20−nから、データのダウンロードを実施する際でも、端末10−nやサーバ群20−nに機能追加すること無しに高速なダウンロードを実現可能である。
(G) ゲートウェイ40から端末10−1へのHTTPの200(OK)応答は、IPパケットのTOSフィールドの優先度を上げている。これにより、当該IPパケットは、自事業者網100A内を優先的に送信される。
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の(a)〜(f)のようなものがある。
(a) 第2の実施形態では、自事業者網100Aとインターネット100とを接続しているゲートウェイ40がHTTPプロキシとなり、優先転送サービスかの判定と、優先転送とを実施している。しかし、これに限られず、ホームゲートウェイやエッジルータ30がHTTPプロキシとなり、優先転送サービスかの判定と、優先転送とを実施しても良い。
(b) 第1の実施形態では、サーバ保持テーブル11は、予め端末10−1に登録されている。第2の実施形態では、サーバ保持テーブル11は、予めゲートウェイ40に登録されている。しかし、これに限られず、サーバ群20−nのいずれかにサーバ保持テーブル11と同様な情報を格納し、当該情報を端末10−1やゲートウェイ40などが読み取ることによって、コンテンツ優先転送を実施するように構成しても良い。
(c) 第1〜第2の実施形態では、いずれもIPv4のネットワーク上に実現されている。しかし、これに限られず、IPv6(Internet Protocol Version 6)のネットワーク上に実現されていても良い。
(d) 第2の実施形態では、端末10−1とゲートウェイ40との間の通信と、ゲートウェイ40とミラーサーバ群(サービス提供サーバA(20−1)およびサービス提供サーバB(20−2))との間の通信とは同期していない。しかし、これに限られず、端末10−1がミラーサーバ群のいずれかにHTTPのget要求を送信したとき、これに同期して、要求したデータサイズ(コンテンツサイズ)を各ミラーサーバに代理要求し、このサイズのコンテンツをバッファに記憶し、このバッファに記憶したコンテンツを端末10−1に送信しても良い。これにより、ゲートウェイ40が必要とするバッファサイズを小さく抑えることが可能となる。
(e) 第1〜第2の実施形態では、いずれも最初に所定サイズのデータを各ミラーサーバから転送して、転送速度を測定している。しかし、これに限られず、各ミラーサーバからの転送速度の履歴を記憶部に記憶し、この転送速度に所定時間を掛けて最初のデータ転送サイズを決定しても良い。これにより、コンテンツの最初の転送時に於いても、各ミラーサーバから転送速度に応じたサイズのデータを受信できる。
(f) 第1の実施形態は、図3に示されているダウンロード動作をコンピュータに行わせるためのコンテンツ優先転送プログラムであっても良い。
10−1,10−n 端末(要求元)
11 サーバ保持テーブル
20−1,20−2 サービス提供サーバ(複数のサーバ)
30 エッジルータ
40 ゲートウェイ(コンテンツ優先転送ゲートウェイ)
41 HTTP/RTSPプロキシ部
42 Proxy処理部(処理部)
43 優先転送判定キャッシュ(記憶部)
44 ダウンロード速度検出部
45 ダウンロードバッファ部(記憶部)
46 ユーザ情報テーブル(記憶部)
47 優先転送サービス判定テーブル(記憶部)
48 サーバ情報テーブル(記憶部)
100 インターネット(外部ネットワーク)
100A 自事業者網(内部ネットワーク)

Claims (8)

  1. 内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイであって、
    各前記サバのアドレスを記憶している記憶部と、
    ダウンロードするデータをバッファリングするダウンロードバッファ部と、
    前記要求元端末が前記複数のサーバのいずれかに格納されている当該コンテンツの転送を要求した第1のIPパケットを検知したならば、優先的にコンテンツを転送すると識別し各前記サーバ転送速度順を転送順序とすると共に各前記サーバの転送速度に基いて各前記サーバから次に転送する当該コンテンツのサイズを決定し、当該コンテンツの転送を要求するIPパケットを各前記サーバに並行して代理送信し、各前記サーバから当該コンテンツの転送を受けて前記ダウンロードバッファ部バッファリングして、各前記サーバの転送速度を再測定することを繰り返すProxy処理部と、を有しており、
    前記Proxy処理部は、前記要求元端末への応答の第2のIPパケットの送信元アドレスに前記第1のIPパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータ代理送信する、
    ことを特徴とするコンテンツ優先転送ゲートウェイ。
  2. 前記Proxy処理部は、前記内部ネットワークから送信されたHTTPのget要求のIPパケットの宛先アドレスが前記複数のサーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別して、HTTPのget要求のIPパケットを各前記サーバに並行して代理送信する、
    ことを特徴とする請求項1に記載のコンテンツ優先転送ゲートウェイ。
  3. 前記Proxy処理部は、各前記サーバに対してDNS(Domain Name System)でアドレス解決をする際のサーバアドレスの返却順で転送順序を設定して、新規フローの最初の代理送信において各前記サーバから前記コンテンツの各位置の所定サイズのデータを先頭から末尾に向けてダウンロードし、
    以降は各前記サーバの転送速度の順で転送順序を設定する、
    ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイ。
  4. 前記記憶部は、前記コンテンツを優先的に転送する端末のIPアドレスの情報テーブルを記憶しており、
    前記Proxy処理部は、前記第1のIPパケットの送信元アドレスが前記情報テーブルに存在したならば、IPパケットを各前記サーバに並行して代理送信する、
    ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイ。
  5. 前記Proxy処理部は、前記第2のIPパケットのTOS(Type Of Service)フィールドのDSCPに、AF(Assured fowarding)の値セットを設定する、
    ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイ。
  6. 前記Proxy処理部は、優先転送トンネルを介して前記第2のIPパケットを前記要求元端末に転送する、
    ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイ。
  7. 前記Proxy処理部は、各前記サーバからのデータのダウンロードと、前記ダウンロードバッファ部にバッファリングされている前記コンテンツの前記要求元端末への代理送信とを同期して実行する、
    ことを特徴とする請求項1または請求項2に記載のコンテンツ優先転送ゲートウェイ。
  8. 内部ネットワークと外部ネットワークとを接続し、前記外部ネットワークの複数のサーバに重複して格納されているコンテンツを、優先的に前記内部ネットワークの要求元端末に転送するコンテンツ優先転送ゲートウェイが行うコンテンツ優先転送方法であって、
    前記コンテンツ優先転送ゲートウェイは、処理部と、各前記サーバそれぞれのアドレスを記憶している記憶部と、ダウンロードするデータをバッファリングするダウンロードバッファ部と、を有しており
    前記処理部は、前記内部ネットワークから送信されたHTTPのget要求の第1のIPパケットの送信元アドレスが前記要求元端末、当該第1のIPパケットの宛先アドレスが各前記サーバのいずれかであることを検知したならば、優先的にコンテンツを転送すると識別し、
    前記第1のIPパケットの要求サイズを所定サイズに変更したHTTPのget要求のIPパケットを各前記サーバに並行して代理送信し、各前記サーバのHTTPの200(OK)のIPパケットを代理応答してデータを前記ダウンロードバッファ部にバッファリングすると共に各前記サーバの転送速度を再測定して各前記サーバから次回ダウンロードするデータのサイズを決定することを繰り返し、
    前記要求元端末へのHTTPの200(OK)の第2のIPパケットの送信元アドレスに前記第1のIPパケットの宛先アドレスを設定して、前記ダウンロードバッファ部にバッファリングしていたデータを代理送信する、
    ことを特徴とするコンテンツ優先転送方法。
JP2011130700A 2011-06-10 2011-06-10 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ Expired - Fee Related JP5690224B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011130700A JP5690224B2 (ja) 2011-06-10 2011-06-10 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011130700A JP5690224B2 (ja) 2011-06-10 2011-06-10 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ

Publications (2)

Publication Number Publication Date
JP2013004995A JP2013004995A (ja) 2013-01-07
JP5690224B2 true JP5690224B2 (ja) 2015-03-25

Family

ID=47673152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011130700A Expired - Fee Related JP5690224B2 (ja) 2011-06-10 2011-06-10 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ

Country Status (1)

Country Link
JP (1) JP5690224B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427353B (zh) * 2013-09-05 2017-09-29 北京大学 视频传输方法及设备
JP6669416B2 (ja) * 2016-09-23 2020-03-18 アルパイン株式会社 電子装置
JP6857103B2 (ja) * 2017-08-08 2021-04-14 日本電信電話株式会社 ファイル配信システム及び方法
CN113454934B (zh) 2019-03-06 2024-04-05 杜比实验室特许公司 多服务器通信系统中的下载控制

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001054370A2 (en) * 2000-01-24 2001-07-26 The University Of Manitoba Method and system for segmented file transfer
JP2002268979A (ja) * 2001-03-07 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> ダウンロード方法及び装置、ダウンロード用プログラム並びにそのプログラムを記録した記録媒体
US7631098B2 (en) * 2004-06-08 2009-12-08 International Business Machines Corporation Method, system and program product for optimized concurrent data download within a grid computing environment
US20060184688A1 (en) * 2005-02-17 2006-08-17 Nec Laboratories America, Inc. System and Method for Parallel Indirect Streaming of Stored Media from Multiple Sources

Also Published As

Publication number Publication date
JP2013004995A (ja) 2013-01-07

Similar Documents

Publication Publication Date Title
US10212124B2 (en) Facilitating content accessibility via different communication formats
US10924448B2 (en) Content delivery from home networks
KR101913313B1 (ko) 게이트웨이에서 인터넷 프로토콜 기반 네트워크를 이용하여 컨텐츠 중심 네트워크를 구현하는 방법 및 그 게이트웨이
EP2897340B1 (en) Routing proxy for adaptive streaming
US6850980B1 (en) Content routing service protocol
US10263950B2 (en) Directing clients based on communication format
Xu et al. Live streaming with content centric networking
US11784912B2 (en) Intelligently routing internet traffic
JP5690224B2 (ja) コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ
US9608748B2 (en) Methods of transmitting and receiving a media information file for HTTP streaming
US20170041422A1 (en) Method and system for retrieving a content manifest in a network
Taha A novel CDN testbed for fast deploying HTTP adaptive video streaming
Ghasemi et al. Internet-scale video streaming over NDN
EP3446460B1 (en) Content routing in an ip network that implements information centric networking
Awiphan et al. Proactive interest adaptation and content caching for adaptive Bit-rate video streaming over NDN
Awiphan et al. Adaptive video streaming on named data networking with iot-assisted content delivery
Awiphan et al. Outbound face selection considering response time and buffer usage for CCN adaptive video streaming
Poobai et al. Adaptive bit-rate video streaming on named data networking with active throughput estimation
Hayamizu et al. CeforeSim: Cefore Compliant NS-3-Based Network Simulator
JP5579119B2 (ja) キャッシュ及びQoS制御連携通信システム、キャッシュサーバ、及びプログラム
WO2019156026A1 (ja) サーバ選択装置、サーバ選択方法及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130827

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140520

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150130

R150 Certificate of patent or registration of utility model

Ref document number: 5690224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees