(57)【特許請求の範囲】
【請求項１】
トランスポート層における所定のプロトコルを用いて、第１装置がバースト送信したバーストデータのサイズを測定する測定部と、
前記トランスポート層に用いられる複数のプロトコルの中から、前記測定部によって測定されたバーストデータのサイズと、ネットワークの往復遅延時間及びデータの廃棄率とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する選定部と、
前記第１装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、前記選定部によって選定されたプロトコルを用いて、当該バーストデータを宛先に転送する転送部と
を有することを特徴とする通信制御装置。
【請求項２】
前記バーストデータが前記第１装置から第２装置にバースト送信されて、前記第２装置から前記第１装置に応答が送信される一連の流れから、前記第１装置と前記第２装置とを接続するネットワークの往復遅延時間と、当該ネットワークにおけるデータの廃棄率とを測定する第２測定部をさらに有することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記選定部は、前記レイテンシが小さいプロトコルが選定できない場合に、前記ネットワークの往復遅延時間及びデータの廃棄率から特定されるスループットが大きいプロトコルを選定することを特徴とする請求項１に記載の通信制御装置。
【請求項４】
前記選定部は、バルク転送を実施した際の平均スループットを評価した結果の中から、前記ネットワークの往復遅延時間及びデータの廃棄率を用いて、前記スループットが大きいプロトコルを選定することを特徴とする請求項３に記載の通信制御装置。
【請求項５】
前記選定部は、輻輳ウィンドウの広げ方を確認応答の数に応じて広げるアルゴリズムにしたがって動作するプロトコル、または、輻輳が発生してからの時間に応じてウィンドウを広げるアルゴリズムにしたがって動作するプロトコルから、前記測定部によって測定されたバーストデータのサイズと、前記ネットワークの往復遅延時間及びデータの廃棄率とから推定されるレイテンシが小さいプロトコルを選定することを特徴とする請求項１に記載の通信制御装置。
【請求項６】
前記選定部は、再送により誤り訂正を実行するアルゴリズムにしたがって動作するプロトコル、または、冗長符号化により誤り訂正を実行するアルゴリズムにしたがって動作するプロトコルから、前記測定部によって測定されたバーストデータのサイズと、前記ネットワークの往復遅延時間及びデータの廃棄率とから推定されるレイテンシが小さいプロトコルを選定することを特徴とする請求項１に記載の通信制御装置。
【請求項７】
コンピュータが、
第１装置がトランスポート層における所定のプロトコルを用いてバースト送信したバーストデータのサイズを測定し、
前記トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの往復遅延時間及びデータの廃棄率とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定し、
前記第１装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する
処理を実行することを特徴とする通信制御方法。
【請求項８】
コンピュータに、
第１装置がトランスポート層における所定のプロトコルを用いてバースト送信したバーストデータのサイズを測定し、
前記トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの往復遅延時間及びデータの廃棄率とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定し、
前記第１装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する
処理を実行させることを特徴とする通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信制御方法および通信制御プログラムに関する。
【背景技術】
【０００２】
従来、データセンタでサーバを動作させて、クライアントからアクセスするクラウドシステムが増えている。クラウドシステムにおけるデータセンタは、地理的に遠方な場所や海外にあることが多い。このため、クラウドシステムでは、クライアント端末とサーバとの間の往復遅延時間（RTT：Round  Trip  Time）が大きくなる傾向がある。
【０００３】
ＲＴＴが大きい環境で、ＴＣＰ（Transmission  Control  Protocol）通信を行った場合、データの廃棄が発生し、スループットが向上しにくい。これは、輻輳が発生してスループットが一旦低下してから回復するまで長い時間がかかるＴＣＰの特性が原因である。一般的に、ＴＣＰは、輻輳具合に基づいて輻輳ウィンドウ（cwin：Congestion  Window）の大きさを変動させることで、スループットを調整する。
【０００４】
ＴＣＰにおける輻輳ウィンドウの制御方法には、大きく２つに分類される。１つは、送信先から受信するＡＣＫの数に応じて輻輳ウィンドウを拡大する輻輳制御アルゴリズムであり、例えば、Ｓｃａｌａｂｌｅなどが該当する。もう１つは、輻輳発生からの経過時間により輻輳ウィンドウを広げる輻輳制御アルゴリズムであり、例えば、Ｃｕｂｉｃなどが該当する。
【０００５】
近年、ＲＴＴが大きい環境でスループットを改善する策として、ＷＡＮ（Wide  Area  Network）高速化装置などの装置が利用されている。ＷＡＮ高速化装置は、エンドデバイスのＴＣＰを回線利用率のより高いプロトコルに置き換えて通信することで、ＴＣＰの平均スループットの低下を改善する装置である。なお、ＷＡＮ高速化装置は、専用のアプライアンス装置であってもよく、端末などが仮想的に実行するプロトコル変換機能であってもよい。
【０００６】
例えば、クラウドシステムでは、サーバと端末とを接続するＷＡＮ回線などのネットワークを挟んで、ＷＡＮ高速化装置ＡとＷＡＮ高速化装置Ｂとを配置する。ＷＡＮ高速化装置Ａは、端末から受け付けたＴＣＰセッションを一旦終端させる。そして、ＷＡＮ高速化装置Ａは、ＴＣＰセッションで受信したデータを高速化したプロトコル（以下、高速プロトコルと記載する場合がある）に置き換えて、対向するＷＡＮ高速化装置Ｂと通信する。その後、ＷＡＮ高速化装置Ｂは、対向するＷＡＮ高速化装置Ａと高速化プロトコルでやり取りしたデータを通常のＴＣＰに戻してサーバに送信する。
【０００７】
高速化プロトコルとしては、ＵＤＰ（User  Datagram  Protocol）を改良して再送制御機能や輻輳制御機能を付加したものや、既存のＴＣＰをより効率的に輻輳制御機能を改善したものが使用される。ＵＤＰベースのプロトコルでは、例えばＵＤＴ（UDP−based  data  transfer）が知られている。また、ＴＣＰを改良したものとしては、ＣＵＢＩＣやＳｃａｌａｂｌｅなどがある。特に、Ｓｃａｌａｂｌｅ  ＴＣＰは、ＲＴＴが大きい近年のＷＡＮ回線向けに改良されたプロトコルである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−７４２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術では、高速なレスポンスが要求されるトランザクションの通信に対してはレイテンシが改善できないという問題がある。
【００１０】
具体的には、従来のＷＡＮ高速化装置は、バルク転送のように大量のデータを送信し絶え間なくＡＣＫが戻ってくる通信において、平均スループットが最大になるような高速化プロトコルを用いるものである。
【００１１】
例えば、バルク転送においては、Ｃｕｂｉｃに比べてＳｃａｌａｂｌｅの方が、輻輳ウィンドウの広がりが大きく平均のウィンドウサイズが大きいことから、期待通りの性能を得ることができる。また、Ｃｕｂｉｃは、輻輳発生して輻輳ウィンドウを狭くした後、時間経過に応じて輻輳ウィンドウを広げていくので、輻輳ウィンドウが元に戻るまで多くの時間がかかる。つまり、平均スループットが所望の値に到達するまでに、多くの時間がかかる。
【００１２】
これらのことから、従来のＷＡＮ高速化装置は、平均スループットが最大になるような高速化プロトコルとして、Ｓｃａｌａｂｌｅを用いることが多い。ところが、トランザクションのようなバースト転送は、パケット数も少なく、それに伴うＡＣＫも少ないので、Ｓｃａｌａｂｌｅでは、期待通りの性能を得るのは難しい。つまり、従来のＷＡＮ高速化装置は、Ｓｃａｌａｂｌｅを用いることが多いので、高速なレスポンスが要求されるトランザクションの通信に対してレイテンシを改善できるとは言い難い。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、トランザクションの通信時にレイテンシを改善することができる通信制御装置、通信制御方法および通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する通信制御装置、通信制御方法および通信制御プログラムは、一つの態様において、測定部と選定部と転送部とを有する。測定部は、トランスポート層における所定のプロトコルを用いて、第１装置がバースト送信したバーストデータのサイズを測定する。選定部は、前記トランスポート層に用いられる複数のプロトコルの中から、前記測定部によって測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する。転送部は、前記第１装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、前記選定部によって選定されたプロトコルを用いて、当該バーストデータを宛先に転送する。
【発明の効果】
【００１５】
本願の開示する通信制御装置、通信制御方法および通信制御プログラムの一つの態様によれば、トランザクションの通信時にレイテンシを改善することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る通信システムの全体構成例を示す図である。
【図２】図２は、実施例１に係るＷＡＮ高速化装置の機能構成を示す機能ブロック図である。
【図３】図３は、セッション監視テーブルの例を示す図である。
【図４】図４は、アルゴリズム決定テーブルの例を示す図である。
【図５】図５は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。
【図６】図６は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。
【図７】図７は、実施例１に係るＷＡＮ高速化装置が実行する処理の流れを示すフローチャートである。
【図８】図８は、実施例１に係る通信システムのシーケンス図である。
【図９】図９は、実施例１に係る通信システムのシーケンス図である。
【図１０】図１０は、実施例２に係るＷＡＮ高速化装置の機能構成を示す機能ブロック図である。
【図１１】図１１は、実施例２に係るアルゴリズム決定テーブルの例を示す図である。
【図１２】図１２は、実施例２に係る第２アルゴリズム決定テーブルの例を示す図である。
【図１３】図１３は、第２アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。
【図１４】図１４は、実施例２に係るＷＡＮ高速化装置が実行する処理の流れを示すフローチャートである。
【図１５】図１５は、高速化プロトコルとしてＵＤＰを用いる場合に使用する廃棄率とレイテンシの関係を示す図である。
【図１６】図１６は、バーストの間隔を固定としてバーストの大きさを変化させた場合のレイテンシの変化例を示す図である。
【図１７】図１７は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する通信制御装置、通信制御方法および通信制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１８】
［全体構成］
図１は、実施例１に係る通信システムの全体構成例を示す図である。図１に示すように、この通信システムは、無線端末７が、ＩＳＰ（Internet  Services  Provider）が提供するＷＡＮ（Wide  Area  Network）回線を利用して、データセンタ１のサーバ３とＴＣＰ通信を行う。ここでは、一例として、無線端末７は、サーバ３との間でリモートデスクトップを接続し、サーバ３上のデスクトップ画面を表示しているものとする。
【００１９】
図１では、ＩＳＰが提供するＷＡＮ回線には、データセンタ１が有するＬＡＮ（Local  Area  Network）と、無線アクセスプロバイダが提供する無線網と、アクセスプロバイダが提供するネットワークとが接続される。
【００２０】
データセンタ１は、ルータ２とサーバ３とＷＡＮ高速化装置１０とを有する。ルータ２は、ＩＳＰとデータセンタ１のＬＡＮとを中継する中継装置である。サーバ３は、無線端末７からのリモートデスクトップ接続を受け付けて、各種情報を無線端末７に送信するサーバ装置である。ＷＡＮ高速化装置１０は、エンドデバイスのＴＣＰを回線利用率のより高いプロトコルに置き換えて通信する装置である。
【００２１】
また、無線アクセスプロバイダが提供する無線網は、ルータ５を介してＷＡＮ回線と接続される。この無線網は、基地局８を介して無線端末に利用される。ここで、基地局８には、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）で接続することができることとする。
【００２２】
また、アクセスプロバイダが提供するネットワークは、ルータ４を介してＷＡＮ回線と接続される。ルータ４からアクセスポイント６までは、ＦＴＴＨ（Fiber  To  The  Home）で接続される。無線端末７は、Ｗｉ−Ｆｉ（wireless  fidelity）を用いてアクセスポイント６に接続し、アクセスポイント６を介してＷＡＮ回線に接続する。この無線端末７は、ＷＡＮ高速化装置１０と同様の機能を実行する仮想的なＷＡＮ高速化装置７ａを実行する。
【００２３】
このように、図１に示した通信システムは、ＷＡＮ高速化装置１０と仮想的なＷＡＮ高速化装置７ａとが対向して形成されるシステムである。本実施例では、無線端末７のユーザが通信途中で屋内から屋外に移動したことにより、屋内のＷｉ−Ｆｉから公衆無線アクセス網であるＷｉＭＡＸにハンドオーバするものとする。一般的には、Ｗｉ−Ｆｉは、ＷｉＭＡＸより狭いエリアで利用している場合が多く通信品質がよい場合が多い。そのため、本実施例では、Ｗｉ−ＦｉからＷｉＭＡＸに切り替わることで廃棄率が大きく変化するものとする。また、ＷｉＭＡＸでは、無線レイヤにおける再送メカニズムがあるためＷｉ−Ｆｉに比べ無線端末７からサーバ３間の往復遅延時間（RTT：Round  Trip  Time）も大きくなる。
【００２４】
このような状態において、ＷＡＮ高速化装置１０は、トランスポート層における所定のプロトコルであるＴＣＰを用いて、サーバ３がバースト送信したバーストデータのサイズを測定する。そして、ＷＡＮ高速化装置１０は、トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する。その後、ＷＡＮ高速化装置１０は、サーバ３がＴＣＰを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する。また、ＷＡＮ高速化装置１０は、無線端末７から送信されたデータを終端させて、ＴＣＰを用いてサーバ３に転送する。
【００２５】
このように、ＷＡＮ高速化装置１０は、バーストデータ送信時のデータサイズ、ネットワーク特性からレイテンシが小さいプロトコルを選定し、ＴＣＰで受信したバーストデータを選定したプロトコルに載せ換えて転送することができる。この結果、高速なレスポンスが要求されるトランザクションの通信に対してはレイテンシを改善することができる。
【００２６】
［ＷＡＮ高速化装置の構成］
図２は、実施例１に係るＷＡＮ高速化装置の機能構成を示す機能ブロック図である。なお、無線端末７が実行する仮想的なＷＡＮ高速化装置７ａも図２で説明する処理と同様の処理を実行する。
【００２７】
図２に示すように、ＷＡＮ高速化装置１０は、受信ＭＡＣ（Media  Access  Control）部１１、送信ＭＡＣ部１２、セッション監視テーブル１３、アルゴリズム決定テーブル１４、トランスポート処理部１５、プロキシ処理部１９、選定部２１を有する。なお、セッション監視テーブル１３とアルゴリズム決定テーブル１４は、メモリなどの記憶装置に保持される。また、各処理部は、ＣＰＵ（Central  Processing  Unit）などの電子回路が実行する処理部である。
【００２８】
受信ＭＡＣ部１１は、受信するデータに対してＭＡＣ処理を実行する処理部である。例えば、受信ＭＡＣ部１１は、無線端末７から送信されたデータを、ルータ２を介して受信してトランスポート処理部１５に出力する。また、受信ＭＡＣ部１１は、サーバ３から送信されたデータを、ルータ２を介して受信してトランスポート処理部１５に出力する。
【００２９】
送信ＭＡＣ部１２は、送信するデータに対してＭＡＣ処理を実行する処理部である。例えば、送信ＭＡＣ部１２は、無線端末７から送信されたデータを、ＴＣＰを用いてサーバ３に送信する。また、送信ＭＡＣ部１２は、サーバ３から送信されたデータを、切替部１８から指定されたプロトコルを用いて無線端末７に送信する。
【００３０】
セッション監視テーブル１３は、サーバ３と無線端末７との間のＴＣＰセッションの情報、言い換えると、ＷＡＮ高速化装置１０とＷＡＮ高速化装置７ａとの間のネットワークのセッション情報を記憶する。ここで記憶される情報は、後述するＲＴＴ測定部１６、廃棄率測定部１７、バーストサイズ測定部２０等によって更新される。図３は、セッション監視テーブルの例を示す図である。図３に示すように、セッション監視テーブル１３は、「ＩＤ、ＴＣＰセッション、平均バースト長（Bytes）、平均ＲＴＴ（ms）、平均廃棄率（%）」を対応付けて記憶する。
【００３１】
ここで記憶される「ＩＤ」は、セッション監視テーブル１３のレコードを識別する識別子である。「ＴＣＰセッション」は、「ＳＲＣ  ＩＰ、ＳＲＣ  Ｐｏｒｔ、ＤＳＴ  ＩＰ、ＤＳＴ  Ｐｏｒｔ」を有する。「ＳＲＣ  ＩＰ」は、送信先装置のアドレス情報である。「ＳＲＣ  Ｐｏｒｔ」は、送信先装置がデータを送信する際に使用したポート番号である。「ＤＳＴ  ＩＰ」は、受信装置のアドレス情報である。「ＤＳＴ  Ｐｏｒｔ」は、受信装置がデータを受信した際に使用したポート番号である。「平均バースト長」は、ＴＣＰセッションで送受信されたバーストデータの平均サイズである。「平均ＲＴＴ」は、ＴＣＰセッションでデータを送受信した際の遅延時間の平均値である。「平均廃棄率」は、ＴＣＰセッションでデータを送受信した際のデータ廃棄率の平均値である。
【００３２】
図３の一例として、「ＩＤ＝１」のレコードを説明する。このレコードは、アドレスがＩＰ（Ａ）の装置からポート番号３３８９で送信され、アドレスがＩＰ（Ｂ）の装置によってポート番号１８０１で受信されるセッションの情報である。このセッションでは、平均バースト長が１５０００バイト、平均ＲＴＴが５０ｍｓ、平均廃棄率が０．００１％であることを示す。
【００３３】
アルゴリズム決定テーブル１４は、ＷＡＮ高速化通信間で使用するプロトコルを決定する情報を記憶する。このアルゴリズム決定テーブル１４は、バーストサイズごとに、廃棄率とＲＴＴとからプロトコルを決定する情報を記憶する。図４は、アルゴリズム決定テーブルの例を示す図である。図４に示した例は、バーストサイズが１５０００バイトに対応した情報である。図４に示すように、アルゴリズム決定テーブル１４は、廃棄率（ｐ）とＲＴＴ（ｍｓ）とからプロトコルを一意に決定する情報を記憶する。
【００３４】
図４では、ＲＴＴが５０ｍｓ、１００ｍｓ、２００ｍｓ各々について、０．０５＞ｐ、０．０５≦ｐ、０．１＞ｐ、０．１≦ｐ、０．２＞ｐ、０．２≦ｐのときに、ＣＵＢＩＣかＳｃａｌａｂｌｅのいずれを選定するのかを示している。例えば、ＲＴＴが５０かつ廃棄率（ｐ）が０．１≦ｐ＜０．２の場合、Ｓｃａｌａｂｌｅが選定されることを示す。また、ＲＴＴが１００かつ廃棄率（ｐ）がｐ≦０．０５の場合、ＣＵＢＩＣが選定されることを示す。
【００３５】
ここで、図４に示したアルゴリズム決定テーブル１４の生成について説明する。アルゴリズム決定テーブル１４は、バーストデータの送信をシミュレーションした結果から作成することができる。この手法は、ネットワークの特定に不確定要素が多い場合などに有効である。
【００３６】
図５と図６は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。図５は、バーストサイズが１５０００バイトかつＲＴＴが５０ｍｓの状況で、廃棄率とレイテンシとの関係を示した図である。図６は、バーストサイズが１５０００バイトかつＲＴＴが２００ｍｓの状況で、廃棄率とレイテンシとを関係を示した図である。
【００３７】
図５の場合、廃棄率が０．０５より小さい状況では、ＳｃａｌａｂｌｅよりもＣＵＢＩＣの方がレイテンシが小さく、廃棄率が０．０５以上の状況では、ＣＵＢＩＣよりもＳｃａｌａｂｌｅの方がレイテンシが小さい。この結果、図４に示すように、廃棄率が０．０５を境にして、選定されるプロトコルが変わるように、アルゴリズム決定テーブル１４が作成される。
【００３８】
図６の場合、廃棄率が０．２より小さい状況では、ＳｃａｌａｂｌｅよりもＣＵＢＩＣの方がレイテンシが小さく、廃棄率が０．２以上の状況では、ＣＵＢＩＣよりもＳｃａｌａｂｌｅの方がレイテンシが小さい。この結果、図４に示すように、廃棄率が０．２を境にして、選定されるプロトコルが変わるように、アルゴリズム決定テーブル１４が作成される。
【００３９】
図２に戻り、トランスポート処理部１５は、ＲＴＴ測定部１６と廃棄率測定部１７と切替部１８とを有し、これらによってアプリケーションが送受信するデータをＴＣＰにのせて送受信する処理部である。また、トランスポート処理部１５は、無線端末７からＴＣＰとは異なるプロトコルで送信されたデータが受信ＭＡＣ部１１によって受信された場合に、当該データをＴＣＰに載せ換えてサーバ３に送信するように送信ＭＡＣ部１１に指示する。
【００４０】
ＲＴＴ測定部１６は、データを送信した時刻と、当該データに対する応答が到着した時刻から往復遅延時間を計測する処理部である。このＲＴＴ測定部１６は、往復遅延時間を計測するごとに平均ＲＴＴを算出し、該当するＴＣＰセッションに対応付けられてセッション監視テーブル１３に記憶される平均ＲＴＴを更新する。
【００４１】
例えば、ＲＴＴ測定部１６は、１０個のパケットで構成されるバーストデータが送信された場合に、各パケットについて、送信してから応答到着するまでの時間（ＲＴＴ）を測定する。そして、ＲＴＴ測定部１６は、１０個のパケット各々のＲＴＴを平均し、その値を当該バーストデータにおける平均値とする。その後、ＲＴＴ測定部１６は、今までの平均値と今回算出した平均値とを用いて、新たな平均値を算出して、セッション監視テーブル１３に記憶される平均ＲＴＴを更新する。
【００４２】
平均値の算出方法については公知の様々な手法を用いることができるが一例として、最近の平均値を優先する手法を用いることができる。例えば、前回算出した平均値をＲＴＴ（前回）と、今回算出した平均値をＲＴＴ（今回）とを用いて、新たな平均値ＲＴＴ（Ａ）を算出する例を説明する。この場合、ＲＴＴ測定部１６は、「ＲＴＴ（Ａ）＝（１−α）ＲＴＴ（前回）＋αＲＴＴ（今回）」（αは固定値）として算出することができる。
【００４３】
廃棄率測定部１７は、送信したデータに対する応答の有無からパケットがロストした率を計測する処理部である。つまり、廃棄率測定部１７は、ある期間内に送信されたＴＣＰパケットを送信してからそれに対する確認応答がこない場合の確率を測定する。この廃棄率測定部１７は、廃棄率を算出するたびに、該当するＴＣＰセッションに対応付けられてセッション監視テーブル１３に記憶される平均廃棄率を更新する。
【００４４】
例えば、ある期間Ａ内に、１０個のパケットで構成されるバーストデータ１と５個のパケットで構成されるバーストデータ２が順に送信されたとする。そして、バーストデータ１は、１個のパケットがロストし、続いて、バーストデータ２では２個のパケットがロストしたとする。この場合、廃棄率測定部１７は、バーストデータ１とバーストデータ２の合計パケット数「１５」を算出し、さらに、バーストデータ１とバーストデータ２におけるロスパケットの合計「３」を算出する。そして、廃棄率測定部１７は、期間Ａにおけるは廃棄率として「３／１５＝０．２」と算出する。その後、廃棄率測定部１７は、ＲＴＴ測定部１６で説明した手法と同様の手法を用いて、平均廃棄率を算出してセッション監視テーブル１３に記憶される平均廃棄率を更新する。
【００４５】
切替部１８は、後述する選定部２１からの信号を受け付け、使用するプロトコルを切替える処理部である。例えば、切替部１８は、選定部２１からＣＵＢＩＣを使用することが通知された場合、送信ＭＡＣ部１２に対してＣＵＢＩＣを用いてデータを無線装置７に送信するように指示する。この結果、送信ＭＡＣ部１２は、ＴＣＰで受信されたデータをＣＵＢＩＣに載せ換えて送信する。
【００４６】
プロキシ処理部１９は、バーストサイズ測定部２０を有し、無線端末７とサーバ２との間の通信セッションを終端し、対向するＷＡＮ高速化装置７ａとＷＡＮ高速化装置１０との間に新たな通信セッションを生成する処理部である。例えば、プロキシ処理部１９は、無線端末７とサーバ２との間に接続されるＴＣＰセッションを終端させる。そして、プロキシ処理部１９は、対向するＷＡＮ高速化装置７ａとＷＡＮ高速化装置１０との間に新たなセッションを生成する。送信ＭＡＣ部１２は、この新たなセッションを用いて、切替部１８から指示されたプロトコルでデータを送信する。
【００４７】
バーストサイズ測定部２０は、通信セッションで送信されるバーストの平均バースト長、及びバーストの間隔を測定する処理部である。ここで、バーストの間隔とは、あるバーストを構成する最初のパケットが送信された時刻と、次のバーストを構成する最初のパケットが送信されるまでの時間間隔と定義する。バーストサイズ測定部２０は、平均バースト長を算出するごとに、該当するＴＣＰセッションに対応付けられてセッション監視テーブル１３に記憶される平均バースト長を更新する。
【００４８】
具体的には、バーストサイズ測定部２０は、連続的に送信される複数のＴＣＰパケットを監視してバーストのサイズを測定する。バーストサイズ測定部２０は、連続送信されるＴＣＰパケットが、ＴＣＰタイムアウト時間（ＲＴＯ）を経過しないタイミングで送信されるまでを１つのバーストと判断し、それまでのデータ長の和をバーストサイズとする。例えば、ＲＴＯを５ｍｓとし、バーストデータ１が送信して２ｍｓ経過後にバーストデータ２が送信され、バーストデータ２が送信されてから７ｍｓ経過後にバーストデータ３が送信されとする。この場合、バーストサイズ測定部２０は、バーストデータ１とバーストデータ２とを１つのバーストと判断する。
【００４９】
例えば、バーストデータ１とバーストデータ２とが１つのバーストと判断され、バーストデータ１のサイズが１５０００バイトであり、バーストデータ２のサイズが１００００バイトであったとする。この場合、バーストサイズ測定部２０は、平均バースト長として「（１５０００＋１００００）／２＝１２５００」を算出する。その後、バーストサイズ測定部２０は、ＲＴＴ測定部１６で説明した手法と同様の手法を用いて、平均バースト長を算出してセッション監視テーブル１３に記憶される平均バースト長を更新する。
【００５０】
選定部２１は、セッション監視テーブル１３を監視し、最適なＴＣＰ輻輳制御アルゴリズムを選択する処理部である。具体的には、選定部２１は、ＲＴＴ測定部１６、廃棄率測定部１７、バーストサイズ測定部２０から取得する情報を基に、図４を用いて通信途中であっても最適なＴＣＰ輻輳制御アルゴリズムを選択し、切替えて通信を行う。
【００５１】
図３と図４を例にして説明する。ここでは一例として、セッション監視テーブル１３におけるＩＤ＝１のセッションについて説明するが、セッション監視テーブル１３に記憶される各セッションについて同様の処理が実行される。
【００５２】
選定部２１は、所定のタイミングでセッション監視テーブル１３を参照する。そして、選定部２１は、ＩＤ＝１の平均バースト長「１５０００」、平均ＲＴＴ「５０」、平均廃棄率「０．００１」を取得する。そして、選定部２１は、取得した平均バースト長「１５０００」に対応するテーブルを、アルゴリズム決定テーブル１４から検索する。続いて、選定部２１は、検索して得られた図４のテーブルにおいて、平均ＲＴＴ「５０」かつ平均廃棄率「０．００１」に対応するプロトコルとして「ＣＵＢＩＣ」を特定する。また、選定部２１は、ＩＤ＝１のセッションにおける宛先のアドレス「ＩＰ（Ｂ）」を特定する。その後、選定部２１は、ＩＤ＝１のセッションにおいてアドレス「ＩＰ（Ｂ）」を宛先とするデータについては、ＴＣＰではなくＣＵＢＩＣを用いるように、切替部１８に指示する。つまり、選定部２１は、ＴＣＰからＣＵＢＩＣに通信プロトコルを切替えるように、切替部１８に指示を送信する。
【００５３】
［フローチャート］
図７は、実施例１に係るＷＡＮ高速化装置が実行する処理の流れを示すフローチャートである。図７に示すように、ＷＡＮ高速化装置１０の選定部２１は、更新タイムアウトになると、すなわち更新時間に到達すると（Ｓ１０１Ｙｅｓ）、該当するセッションについて、セッション監視テーブル１３から平均バースト長と平均ＲＴＴとを取得する（Ｓ１０２）。この更新時間は、一定周期でネットワークの品質に合わせトランスポートアルゴリズムを見直すためのトリガである。
【００５４】
続いて、選定部２１は、アルゴリズム決定テーブル１４が有する複数のテーブルの中から、取得した平均バースト長と平均ＲＴＴとに対応するアルゴリズム決定テーブルを選定する（Ｓ１０３）。
【００５５】
その後、選定部２１は、該当するセッションの平均廃棄率をセッション監視テーブル１３から取得し、選定したアルゴリズム決定テーブルから、取得した平均廃棄率に対応するプロトコルを選定する（Ｓ１０４）。つまり、選定部２１は、平均バースト長と平均ＲＴＴと平均廃棄率からレイテンシが小さいと想定されるプロトコルを選定する。
【００５６】
そして、選定部２１は、選定したプロトコルと、現在使用されているプロトコルとを比較し、一致するか否かを判定する（Ｓ１０５）。続いて、選定部２１は、選定したプロトコルと現在使用されているプロトコルとが異なる場合に（Ｓ１０５Ｙｅｓ）、選定したプロトコルに切替える指示を切替部１８に出力する（Ｓ１０６）。
【００５７】
その後、選定部２１は、図７のフローを実行する契機を計測する更新タイマを設定して処理を終了する（Ｓ１０７）。なお、選定部２１は、選定したプロトコルと現在使用されているプロトコルとが一致する場合に（Ｓ１０５Ｎｏ）、プロトコルを切替える指示を切替部１８に出力し、Ｓ１０７を実行する。
【００５８】
［シーケンス］
図８と図９は、実施例１に係る通信システムのシーケンス図である。ここでは、無線端末７は、移動可能な通信デバイスであり、ユーザが通信しながら屋内から屋外に移動することにより、アクセスポイント（ＡＰ）６と基地局８との間でハンドオーバが発生するものとする。
【００５９】
図８に示すように、無線端末７は、電源が投入されると、周辺の電波をスキャンし使用できるネットワークを探索する（Ｓ２０１）。続いて、無線端末７は、ＷｉＭＡＸの基地局８が送信する電波と、Ｗｉ−ＦｉのＡＰ６が送信する電波の両方が見つかり、Ｗｉ−Ｆｉの電波が強いため、Ｗｉ−Ｆｉを利用することに決め、ＡＰ６へネットワークを接続する（Ｓ２０２とＳ２０３）。このとき、無線端末７は、ＡＰ６との初期接続手順を実行してリンク層で接続する。
【００６０】
その後、無線端末７は、通信アプリケーションがサーバ３へ接続を開始すると、サーバ３に対しＴＣＰセットアップメッセージであるＳＹＮパケットを送信する（Ｓ２０４）。これに対し、サーバ３がＳＹＮＡＣＫパケットを送信し、無線端末７がＳＹＮＡＣＫを受信するとＡＣＫを送信することで、サーバ３と無線端末７との間にＴＣＰコネクションが確立される（Ｓ２０５とＳ２０６）。
【００６１】
無線端末７は、リモートデスクトップの接続が完了すると、無線端末７にサーバ３のデスクトップ画面が表示され、当該画面に対するマウス操作やキーボード操作のイベントをパケットに含めてサーバに転送する（Ｓ２０７とＳ２０８）。このとき、無線端末７のＷＡＮ高速化装置７ａは、通常のＴＣＰよりもスループットが高いＴＣＰまたはレイテンシが小さいＴＣＰ（以下、高速化ＴＣＰと記載する場合がある）にイベントパケットを載せ換えて送信する。
【００６２】
ＷＡＮ高速化装置１０の送信ＭＡＣ部１２は、受信されたイベントパケットを通常のＴＣＰに載せ換えてサーバ３に転送する（Ｓ２０９とＳ２１０）。すなわち、ＷＡＮ高速化装置１０の受信ＭＡＣ部１１は、無線端末７から送信されたイベントパケットを受信してセッションを終端させる。
【００６３】
サーバ３は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末７に送信する（Ｓ２１１）。この際、画面データの大きさによって画面データを含む複数のＴＣＰパケットがサーバ３から無線端末７に送信され、無線端末７からはそれぞれに対しＡＣＫが送信される（Ｓ２１２からＳ２１７）。なお、無線端末７は、画面データを受信すると、受信したデータで画面を更新する（Ｓ２１８）。
【００６４】
ここで、Ｓ２１２からＳ２１７を具体的に説明する。ＷＡＮ高速化装置１０の受信ＭＡＣ部１１は、サーバ３からＴＣＰで送信されたパケットを終端させる。そして、送信ＭＡＣ部１２は、通常のＴＣＰで受信したパケットを、デフォルトで指定された高速化ＴＣＰに載せ換えて無線端末７に送信する。無線端末７のＷＡＮ高速化装置７ａは、高速化ＴＣＰで受信したパケットを通常のＴＣＰに載せ換えてアプリケーションに渡す。そして、アプリケーションが画像表示処理を実行する。
【００６５】
その後、無線端末７のＷＡＮ高速化装置７ａが、アプリケーションから出力されたＡＣＫを高速化ＴＣＰに載せ換えてサーバ３に送信する。そして、ＷＡＮ高速化装置１０の受信ＭＡＣ部１１は、無線端末７から高速化ＴＣＰで送信されたＡＣＫを終端させる。そして、送信ＭＡＣ部１２は、受信したＡＣＫを通常のＴＣＰに載せ換えてサーバ３に送信する。このように、無線端末７とサーバ３との間で、通常のＴＣＰと高速化ＴＣＰとが併用され、データの送受信が実行される。
【００６６】
図８に戻り、ＷＡＮ高速化装置１０のＲＴＴ測定部１６と廃棄率測定部１７は、サーバ３から無線端末７へ送信するデータが含まれるＴＣＰパケットと、当該ＴＣＰパケットに対するＡＣＫを監視し、ＲＴＴと廃棄率とを測定する（Ｓ２１９）。また、ＷＡＮ高速化装置１０のバーストサイズ測定部２０は、Ｓ２１２からＳ２１７において、連続的に送信される複数のＴＣＰパケットを監視してバーストのサイズを測定する（Ｓ２２０）。ここで同一のバーストに属するＴＣＰパケットであるかどうかは、ＴＣＰの送信間隔がＴＣＰタイムアウト以上であるかどうかにより判断する。その後、ＷＡＮ高速化装置１０は、測定したＲＴＴと廃棄率とバーストサイズを用いて、セッション監視テーブル１３の平均バースト長、平均ＲＴＴ、平均廃棄率各々を更新する（Ｓ２２１）。
【００６７】
その後、図９に示すように、無線端末７が屋内から屋外へ移動したものとする（Ｓ３０１）。無線端末７は、ＡＰ６の電波を受信できなくなるため再度ネットワークを探索し、ＷｉＭＡＸの基地局８からの電波を検出してＷｉＭＡＸにハンドオーバする（Ｓ３０２とＳ３０３）。ハンドオーバにより無線リンク層の接続は、Ｗｉ−ＦｉのＡＰ６からＷｉＭＡＸの基地局８へ切り替わるが、無線端末７とサーバ３間のＴＣＰセッションは、そのまま維持されるものとする。また、ＷｉＭＡＸに切り替わったことにより無線の通信品質が劣化する。
【００６８】
引き続き、無線端末７による入力デバイス操作が行われると、無線端末７は、サーバ３にイベントパケットを送信する（Ｓ３０４とＳ３０５）。このとき、無線端末７のＷＡＮ高速化装置７ａは、イベントパケットを高速化ＴＣＰに載せ換えて送信する。
【００６９】
ＷＡＮ高速化装置１０の送信ＭＡＣ部１２は、受信されたイベントパケットを通常のＴＣＰに載せ換えてサーバ３に転送する（Ｓ３０６とＳ３０７）。サーバ３は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末７に送信する（Ｓ３０８）。この際、画面データの大きさによって画面データを含む複数のＴＣＰパケットがサーバ３から無線端末７に送信され、無線端末７からはそれぞれに対しＡＣＫが送信される（Ｓ３０９からＳ３１４）。ここでの処理は、Ｓ２１２からＳ２１７と同様なので、詳細な説明を省略する。なお、無線端末７は、画面データを受信すると、受信したデータで画面を更新する（Ｓ３１５）。
【００７０】
ＷＡＮ高速化装置１０のＲＴＴ測定部１６と廃棄率測定部１７は、サーバ３から無線端末７へ送信するデータが含まれるＴＣＰパケットと、当該ＴＣＰパケットに対するＡＣＫを監視し、ＲＴＴと廃棄率とを測定する（Ｓ３１６）。また、ＷＡＮ高速化装置１０のバーストサイズ測定部２０は、Ｓ３０９からＳ３１４において、連続的に送信される複数のＴＣＰパケットを監視してバーストのサイズを測定する（Ｓ３１７）。その後、ＷＡＮ高速化装置１０は、測定したＲＴＴと廃棄率とバーストサイズを用いて、セッション監視テーブル１３の平均バースト長、平均ＲＴＴ、平均廃棄率各々を更新する（Ｓ３１８）。
【００７１】
そして、ＷＡＮ高速化装置１０の選定部２１は、レイテンシの小さい高速ＴＣＰとして高速ＴＣＰ（Ｚ）を選定し、プロトコルを切替える指示を切替部１８に出力する（Ｓ３１９）。具体的には、選定部２１は、セッション監視テーブル１３を参照し、使用されているＴＣＰセッションの平均バースト長、平均ＲＴＴ、平均廃棄率を取得する。続いて、選定部２１は、取得した平均バースト長かつ平均ＲＴＴかつ平均廃棄率に対応するプロトコルを、アルゴリズム決定テーブル１４から特定する。その後、選定部２１は、特定したプロトコルに切替えると決定する。
【００７２】
その後、無線端末７による入力デバイス操作が行われると、無線端末７は、サーバ３にイベントパケットを送信する（Ｓ３２０とＳ３２１）。このとき、無線端末７のＷＡＮ高速化装置７ａは、イベントパケットを通常のＴＣＰから高速化ＴＣＰに載せ換えて送信する。
【００７３】
ＷＡＮ高速化装置１０の送信ＭＡＣ部１２は、受信されたイベントパケットを通常のＴＣＰに載せ換えてサーバ３に転送する（Ｓ３２２とＳ３２３）。サーバ３は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末７に送信する（Ｓ３２４）。この際、画面データの大きさによって画面データを含む複数のＴＣＰパケットがサーバ３から無線端末７に送信され、無線端末７からはそれぞれに対しＡＣＫが送信される（Ｓ３２５からＳ３３０）。
【００７４】
ここで、Ｓ３２５からＳ３３０を具体的に説明する。ＷＡＮ高速化装置１０の受信ＭＡＣ部１１は、サーバ３からＴＣＰで送信されたパケットを終端させる。そして、送信ＭＡＣ部１２は、通常のＴＣＰで受信したパケットを、Ｓ３１９で選定された高速化ＴＣＰ（Ｚ）に載せ換えて無線端末７に送信する。無線端末７のＷＡＮ高速化装置７ａは、高速化ＴＣＰ（Ｚ）で受信したパケットを通常のＴＣＰに載せ換えてアプリケーションに渡す。そして、アプリケーションが画像表示処理を実行する。
【００７５】
その後、無線端末７のＷＡＮ高速化装置７ａが、アプリケーションから出力されたＡＣＫを高速化ＴＣＰに載せ換えてサーバ３に送信する。そして、ＷＡＮ高速化装置１０の受信ＭＡＣ部１１は、無線端末７から高速化ＴＣＰで送信されたＡＣＫを終端させる。そして、送信ＭＡＣ部１２は、受信したＡＣＫを通常のＴＣＰに載せ換えてサーバ３に送信する。このように、無線端末７とサーバ３との間では、レイテンシの小さい高速化ＴＣＰ（Ｚ）を用いてデータの送受信が実行される。なお、セッションが切断されるまで、図９に示したシーケンスが繰り返し実行される。
【００７６】
なお、ここではシミュレーションによりプロトコルの特性を評価しているが、シミュレーションに限ったものではなく、解析解を求めて特性を比較しアルゴリズム決定テーブルを作成してもよい。また、本実施の形態では、アルゴリズム決定テーブルを予め計算し作成しているが、平均バースト長、平均ＲＴＴ、平均廃棄率を測定した時点でシミュレーションを実施したり解析解から特性比較を行ってもよい。
【００７７】
［効果］
実施例１に係るＷＡＮ高速化装置１０は、シミュレーションした結果の中から、スループットが高いプロトコルではなく、レイテンシが小さいプロトコルを随時選定して使用する。このため、高速なレスポンスが要求されるトランザクションの通信に対してもレイテンシを改善することができる。また、ＷＡＮ高速化装置１０は、平均バーストサイズ、平均ＲＴＴ、平均廃棄率を定期的に更新するので、無線端末７とサーバ３との間のネットワークの変化を追従することができる。すなわち、ＷＡＮ高速化装置１０は、一定周期でネットワークの品質に合わせトランスポートアルゴリズムを見直すことができる。このため、ＷＡＮ高速化装置１０は、随時変化するネットワーク、データサイズ等に適したプロトコルを選定することができるので、レイテンシが極端に悪化するなどの状態になることを防止することができる。
【実施例２】
【００７８】
ところで、開示するＷＡＮ高速化装置は、レイテンシが小さいプロトコルを選定することができない場合に、スループットが高いプロトコルを選定するようにしてもよい。そこで、実施例２では、レイテンシが小さいプロトコルを選定することができない場合に、スループットが高いプロトコルを選定する例について説明する。
【００７９】
［ＷＡＮ高速化装置の構成］
図１０は、実施例２に係るＷＡＮ高速化装置の機能構成を示す機能ブロック図である。なお、無線端末７が実行する仮想的なＷＡＮ高速化装置７ａも図１０で説明する処理と同様の処理を実行する。
【００８０】
図１０に示すように、ＷＡＮ高速化装置１０は、受信ＭＡＣ部１１、送信ＭＡＣ部１２、セッション監視テーブル１３、アルゴリズム決定テーブル１４、トランスポート処理部１５を有する。また、ＷＡＮ高速化装置１０は、プロキシ処理部１９、選定部２１、第２アルゴリズム決定テーブル２２を有する。なお、各テーブルは、メモリなどの記憶装置に保持される。また、各処理部は、ＣＰＵなどの電子回路が実行する。
【００８１】
実施例１とは、アルゴリズム決定テーブル１４と、第２アルゴリズム決定テーブル２２と、選定部２０の処理内容とが異なるであるので、ここでは、これらについて説明する。
【００８２】
アルゴリズム決定テーブル１４は、実施例１と同様、ＷＡＮ高速化通信間で使用するプロトコルとして、レイテンシが小さいプロトコルを決定する情報を記憶する。具体的には、アルゴリズム決定テーブル１４は、バーストサイズごとに、廃棄率とＲＴＴとからプロトコルを決定する情報を記憶する。図１１は、実施例２に係るアルゴリズム決定テーブルの例を示す図である。
【００８３】
図１１に示すように、アルゴリズム決定テーブル１４は、実施例１で説明した図４と同様の内容を記憶するが、実施例１と異なる点は、選定対象のプロトコルに「不定」が含まれている点である。例えば、アルゴリズム決定テーブル１４は、バーストサイズが１５０００バイトかつ廃棄率（ｐ）＜０．０００１かつＲＴＴが５０の場合に、選定対象のプロトコルとして「不定」を記憶する。この「不定」は、任意のプロトコルを選定できることを示す。
【００８４】
第２アルゴリズム決定テーブル２２は、ＷＡＮ高速化通信間で使用するプロトコルとして、スループットが高いプロトコルを決定する情報を記憶する。この第２アルゴリズム決定テーブル２２は、バーストサイズごとに、廃棄率とＲＴＴとからプロトコルを決定する情報を記憶する。図１２は、実施例２に係る第２アルゴリズム決定テーブルの例を示す図である。
【００８５】
図１２に示すように、第２アルゴリズム決定テーブル２２は、実施例１で説明した図４と同様の内容を記憶するが、実施例１やアルゴリズム決定テーブル１４と異なる点は、レイテンシが小さいではなく、スループットが高いプロトコルが決定できる点である。例えば、図１２の場合、ＲＴＴが５０かつ廃棄率（ｐ）が０．１≦ｐ＜０．２の場合、ＣＵＢＩＣが選定されることを示す。
【００８６】
ここで、図１２に示した第２アルゴリズム決定テーブル２２の生成について説明する。第２アルゴリズム決定テーブル２２は、バーストデータの送信をシミュレーションした結果から作成することができる。この手法は、ネットワークの特定に不確定要素が多い場合などに有効である。図１３は、第２アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。図１３は、ＲＴＴが１００ｍｓの状況で、廃棄率と平均スループットとの関係を示した図である。
【００８７】
図１３の場合、廃棄率が０．０８より小さい状況では、ＣＵＢＩＣよりもＳｃａｌａｂｌｅの方が平均スループットが高く、廃棄率が０．１以上の状況では、ＳｃａｌａｂｌｅよりもＣＵＢＩＣの方が平均スループットが高い。この結果、図１２に示すように、廃棄率が０．１を境にして、選定されるプロトコルが変わるように、第２アルゴリズム決定テーブル２２が作成される。
【００８８】
図１０に戻り、選定部２１は、セッション監視テーブル１３を監視し、最適なＴＣＰ輻輳制御アルゴリズムを選択する処理部である。具体的には、選定部２１は、ＲＴＴ測定部１６、廃棄率測定部１７、バーストサイズ測定部２０から取得する情報を基に、図１１や図１２を用いて通信途中であっても最適なＴＣＰ輻輳制御アルゴリズムを選択し、切替えて通信を行う。
【００８９】
例えば、選定部２１は、セッション監視テーブル１３を監視し、セッションの情報として平均バースト長「１５０００」、平均ＲＴＴ「５０」、平均廃棄率「０．００００７」を取得する。すると、選定部２１は、まず、取得した平均バースト長「１５０００」に対応するテーブルを、アルゴリズム決定テーブル１４から検索する。続いて、選定部２１は、検索して得られた図１１のテーブルにおいて、平均ＲＴＴが「５０」かつ平均廃棄率が「０．０００１」である条件に対応するプロトコルとして「不定」を特定する。
【００９０】
選定部２１は、選定した結果が「不定」であった場合、次に、平均バースト長「１５０００」に対応するテーブルを、第２アルゴリズム決定テーブル２２から検索する。続いて、選定部２１は、検索して得られた図１２のテーブルにおいて、平均ＲＴＴが「５０」かつ平均廃棄率が「０．０００１」である条件に対応するプロトコルとして「Ｓｃａｌａｂｌｅ」を特定する。この結果、選定部２１は、ＴＣＰからＳｃａｌａｂｌｅに通信プロトコルを切替えるように、切替部１８に指示を送信する。
【００９１】
［フローチャート］
図１４は、実施例２に係るＷＡＮ高速化装置が実行する処理の流れを示すフローチャートである。図１４に示すように、ＷＡＮ高速化装置１０の選定部２１は、更新タイムアウトになると（Ｓ４０１Ｙｅｓ）、該当するセッションについて、セッション監視テーブル１３から平均バースト長と平均ＲＴＴとを取得する（Ｓ４０２）。
【００９２】
続いて、選定部２１は、アルゴリズム決定テーブル１４が有する複数のテーブルの中から、取得した平均バースト長と平均ＲＴＴとに対応するアルゴリズム決定テーブルを選定する（Ｓ４０３）。
【００９３】
その後、選定部２１は、該当するセッションの平均廃棄率をセッション監視テーブル１３から取得し、選定したアルゴリズム決定テーブルから、取得した平均廃棄率に対応するプロトコルを特定する（Ｓ４０４）。つまり、選定部２１は、平均バースト長と平均ＲＴＴと平均廃棄率からレイテンシが小さいと想定されるプロトコルを選定する。
【００９４】
そして、選定部２１は、特定したプロトコルが「不定」である、つまり、レイテンシが小さいプロトコルが一意に決まらない場合（Ｓ４０５Ｎｏ）、Ｓ４０６を実行する。すなわち、選定部２１は、第２アルゴリズム決定テーブル２２が有する複数のテーブルの中から、Ｓ４０２で取得した平均バースト長と平均ＲＴＴとに対応するアルゴリズム決定テーブルを選定する。そして、選定部２１は、Ｓ４０４で特定した平均廃棄率に対応するプロトコルを、Ｓ４０２で選定したアルゴリズム決定テーブルから選定する。
【００９５】
そして、選定部２１は、Ｓ４０６で選定したプロトコルと、現在使用されているプロトコルとを比較し、一致するか否かを判定する（Ｓ４０７）。続いて、選定部２１は、選定したプロトコルと現在使用されているプロトコルとが異なる場合に（Ｓ４０７Ｙｅｓ）、選定したプロトコルに切替える指示を切替部１８に出力する（Ｓ４０８）。
【００９６】
その後、選定部２１は、図１４のフローを実行する契機を計測する更新タイマを設定して処理を終了する（Ｓ４０９）。なお、選定部２１は、選定したプロトコルと現在使用されているプロトコルとが一致する場合に（Ｓ４０７Ｎｏ）、プロトコルを切替える指示を切替部１８に出力し、Ｓ４０９を実行する。
【００９７】
また、Ｓ４０５において、レイテンシが小さいプロトコルが特定できた場合（Ｓ４０５Ｙｅｓ）、選定部２１は、Ｓ４０６を実行することなく、Ｓ４０７以降を実行する。つまり、選定部２１は、図７と同様の処理を実行する。なお、ここでは第二アルゴリズムをシミュレーションによりプロトコルの特性を評価しているが、シミュレーションに限ったものではなく、解析解を求めて特性を比較しアルゴリズム決定テーブルを作成してもよい。また、本実施の形態では、アルゴリズム決定テーブルを予め計算し作成しているが、平均ＲＴＴ、平均廃棄率を測定した時点でシミュレーションを実施したり解析解から特性比較を行ってもよい。
【００９８】
［効果］
このように、実施例２に係るＷＡＮ高速化装置１０は、いずれのプロトコルを用いてもレイテンシが変わらないと想定される場合には、スループットの高いプロトコルを選定することができる。したがって、トランザクションの通信時にレイテンシを改善することができるとともに、スループットを改善することもできる。
【実施例３】
【００９９】
ところで、実施例１や実施例２では、ＴＣＰの異なる輻輳制御アルゴリズムの特性に基づいたアルゴリズムを選択する方法について説明したが、同じ考え方をＵＤＰ（User  Datagram  Protocol）にも適用することができる。
【０１００】
ＵＤＰは、一般的には信頼性を保証しないプロトコルであり、データを確実に相手に転送する用途には、誤り訂正機能を付加するのが一般的である。ＵＤＰに誤り訂正機能を付加したプロトコルとしては大きく２種類ある。１つ目は、誤り訂正機能として、送信側で予め冗長符号化を行い、誤りやロスがあったパケットを受信サイドで受信できたパケットから復元し訂正を行うプロトコル（以下、ＵＤＰ＋ＦＥＣ（Forward  Error  Correction）と記載する場合がある）である。２つ目は、誤りやロスのあったパケットを再送により訂正する方法を実現するプロトコル（以下、ＵＤＰ＋再送と記載する場合がある)である。
【０１０１】
図１５は、高速化プロトコルとしてＵＤＰを用いる場合に使用する廃棄率とレイテンシの関係を示す図である。図１５は、バーストサイズが１５０００バイトかつＲＴＴが２００ｍｓの状況でシミュレーションした場合の廃棄率とレイテンシとの関係を示した図である。なお、図１５には、比較として、同じ状況でＣＵＢＩＣを用いてシミュレーションした場合の廃棄率とレイテンシとの関係も図示している。
【０１０２】
ＵＤＰ＋ＦＥＣ方式は、送信側でデータを送信する際、複数のパケットに冗長データを含めＵＤＰメッセージで相手に送信し、ロスや誤りがあった場合、受信側で正しく受信できたメッセージからロスしたメッセージを復元する方式である。送信時に冗長計算を実行したり、受信側で復元処理を実行したりすることから、送受信の処理に時間がかかるが、廃棄率が高くても送信するデータ量が増えていかない。このため、図１５に示すように、廃棄率が低い領域ではレイテンシが低くなるが、廃棄率が高くなってもレイテンシの悪化が少ない。
【０１０３】
ＵＤＰ＋再送方式は、データにシーケンス番号を含めたＵＤＰメッセージで、相手に送信し、相手からの確認応答により、ロスや誤りがあったメッセージを再送信する方式である。ＦＥＣ方式と異なり、冗長計算を実行しないので、送受信の処理が速いが、廃棄率が高くなるにつれ再送が増加する。このため、図１５に示すように廃棄率が低い領域ではＵＤＰ＋ＦＥＣ方式よりもレイテンシが高い一方、廃棄率が高い領域ではレイテンシは悪化する。
【０１０４】
上述したように内容を元に、バーストサイズが１５０００バイトかつＲＴＴが２００ｍｓの状況で、選定部２１が使用するアルゴリズム決定テーブル１４に記憶させる情報を生成する。具体的には、アルゴリズム決定テーブル１４は、廃棄率が０．８より小さい場合には、ＵＤＰ＋再送プロトコルが選定され、廃棄率が０．８より大きい場合には、ＵＤＰ＋ＦＥＣプロトコルが選定されるテーブルを保持する。
【０１０５】
また、ＵＤＰを用いた場合にも、実施例２と同様、スループットが高いプロトコルを選定するように制御することもできる。例えば、上記図１５の例を用いて説明する。図１５では、廃棄率が０．８を境に、ＵＤＰ＋再送方式とＵＤＰ＋ＦＥＣの選定が切り替わることになる。この場合、廃棄率が０．８である場合には、ＵＤＰ＋再送方式とＵＤＰ＋ＦＥＣとでは、レイテンシに大きな差はない。したがって、廃棄率が０．８である場合には、ＵＤＰ＋再送方式とＵＤＰ＋ＦＥＣのうち、スループットが高いと想定されるプロトコルを選定するようにしてもよい。
【０１０６】
このように、ＵＤＰを用いるネットワークであっても、レイテンシが小さいプロトコルを選定してデータ中継を行うことができる。また、ＴＣＰであってもＵＤＰであっても、レイテンシが小さいプロトコルを随時選定することができるので、本願が開示する手法が適用できるネットワークやシステムの幅が広がり、快適なサービス形態を実現することができる。
【実施例４】
【０１０７】
ところで、実施例１、２では、ある時点においてレイテンシが小さいプロトコルを選定する例について説明したが、これに限定されるものではなく、例えばレイテンシの変化等を考慮して、プロトコルを選定することもできる。
【０１０８】
図１６は、バーストの間隔を固定としてバーストの大きさを変化させた場合のレイテンシの変化例を示す図である。なお、図１６では、バースト間隔を１０秒とし、ＳｃａｌａｂｌｅとＣＵＢＩＣのレイテンシの変化を示している。
【０１０９】
図１６に示すように、バーストサイズが１Ｍ〜１５Ｋｂｙｔｅｓの場合は、ＡＣＫが少ないことによるウィンドウ抑制現象が起きるため、廃棄率によりＳｃａｌａｂｌｅとＣＵＢＩＣの優位が入れ替わる事象が発生する。なお、ウィンドウ抑制現象とは、バーストデータ送信時に、ＡＣＫ数に応じて輻輳ウィンドウを拡大していく輻輳制御アルゴリズムが、時間により輻輳ウィンドウを広げる輻輳制御アルゴリズムよりも、ウィンドウの広がり方が小さくなる現象のことを指す。
【０１１０】
一方、バーストサイズが１０Ｍ〜６０Ｍｂｙｔｅｓの場合は、バーストが大きくなるにつれてバルク転送に近くなる。このため、どの廃棄率においてもＳｃａｌａｂｌｅがＣＵＢＩＣよりも平均のウィンドウサイズが大きくなり、結果としてレスポンスもＳｃａｌａｂｌｅの方が優位になる。
【０１１１】
この両状態の切り替わりは、バースト間隔固定では、バーストサイズにより変わるが、実際の通信ではバースト間隔も変化するため、バースト速度がある閾値により両状態が切り替わる。なお、バースト速度は、「平均バーストサイズ／平均バースト間隔」で算出できる。
【０１１２】
そこで、バーストサイズ測定部２０が測定する平均バーストサイズと平均バースト間隔に基づいて計算されるバースト速度が閾値を超える場合は、実施例２で説明した平均スループットに基づくアルゴリズム決定テーブルを利用し最適なアルゴリズムを選択する。一方、バースト速度が閾値以下の場合は、実施例１等で説明したレイテンシに基づくアルゴリズム決定テーブルを参照しアルゴリズムを選択するようにしてもよい。
【０１１３】
このようにすることで、バーストサイズの変化に追従することができるので、ネットワーク状況やバーストサイズの変化に適した、レイテンシの小さいプロトコルやスループットの高いプロトコルを状況に応じて選定することができる。
【実施例５】
【０１１４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１１５】
（プロトコル）
上記実施例で説明したＴＣＰやＵＤＰなどのプロトコルは一例であり、実施例で説明したものに限定するものではない。ＴＣＰを改良した様々なプロトコルやＵＤＰを改良した様々なプロトコルを採用することができる。
【０１１６】
（ネットワーク特性）
上記実施例では、ＷＡＮ高速化装置１０が、ネットワーク特性として、相手先とのデータ送受信から廃棄率やＲＴＴを測定する例について説明したが、これに限定されるものではない。例えば、ＷＡＮ高速化装置は、専用線など廃棄率やＲＴＴを予め想定することができる場合には、相手先とのデータ送受信から、廃棄率やＲＴＴを測定しなくてもよい。この場合、廃棄率やＲＴＴが予め想定できているので、想定される廃棄率やＲＴＴに基づいて図４、図１１、図１２を生成する。
【０１１７】
（組み合わせ）
上記実施例は、任意に組み合わせることができる。また、上記実施例では、ＴＣＰとＵＤＰとを別々の実施例で説明したが、これらも組み合わせることができる。例えば、図４等のテーブルが、ＳｃａｌａｂｌｅとＵＤＰ＋再送とのいずれかを選定させるテーブルであってもよい。
【０１１８】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２０】
（ハードウェア構成）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【０１２１】
図１７は、ハードウェア構成例を示す図である。図１７に示すように、ＷＡＮ高速化装置１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１７に示した各部は、バス１０１で相互に接続される。
【０１２２】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、図２等に示した機能を実行するプログラムとともに、各実施例で説明した各テーブル等を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのＷＡＮ高速化装置自身の記録媒体に格納して用いてもよい。
【０１２３】
ＣＰＵ１０２は、図２に示した各処理部と同様の処理を実行するプログラムを読み出してＲＡＭ１０８に展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、受信ＭＡＣ部１１、送信ＭＡＣ部１２、トランスポート処理部１５、プロキシ処理部１９、選定部２１と同様の機能を実行する。このようにＷＡＮ高速化装置１００は、プログラムを読み出して実行することでプロトコル選定方法を実行する情報処理装置として動作する。
【０１２４】
また、ＷＡＮ高速化装置１００は、媒体読取装置１０６によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、ＷＡＮ高速化装置１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１２５】
１０  ＷＡＮ高速化装置
１１  受信ＭＡＣ部
１２  送信ＭＡＣ部
１３  セッション監視テーブル
１４  アルゴリズム決定テーブル
１５  トランスポート処理部
１６  ＲＴＴ測定部
１７  廃棄率測定部
１８  切替部
１９  プロキシ処理部
２０  バーストサイズ測定部
２１  選定部
２２  第２アルゴリズム決定テーブル
【図１】
0005867160.tif 000002
【図２】
0005867160.tif 000003
【図３】
0005867160.tif 000004
【図４】
0005867160.tif 000005
【図５】
0005867160.tif 000006
【図６】
0005867160.tif 000007
【図７】
0005867160.tif 000008
【図８】
0005867160.tif 000009
【図９】
0005867160.tif 000010
【図１０】
0005867160.tif 000011
【図１１】
0005867160.tif 000012
【図１２】
0005867160.tif 000013
【図１３】
0005867160.tif 000014
【図１４】
0005867160.tif 000015
【図１５】
0005867160.tif 000016
【図１６】
0005867160.tif 000017
【図１７】
0005867160.tif 000018