(57)【要約】【課題】確認応答の数に応じて輻輳ウィンドウサイズが制御される通信プロトコルを用いる通信において、双方向通信のレスポンスを向上させる。【解決手段】通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置は、確認応答を受信する受信部と、通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から受信側装置からの確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する判定部と、を備える。【選択図】図４
2014120925.tif 000002
【特許請求の範囲】
【請求項１】
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置であって、
前記確認応答を受信する受信部と、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する判定部と、を備える通信装置。
【請求項２】
前記判定部は、前記通信セグメント長を、前記遅延時間がより小さくなるような通信セグメントの最大長とする請求項１に記載の情報処理装置。
【請求項３】
前記通信指標の値として、前記データブロックのデータ長の平均を求める測定部をさらに備える、
請求項１又は２に記載の通信装置。
【請求項４】
前記判定部は、前記データブロックのデータ長の平均が小さく変化した場合に、前記通信セグメント長を小さい値に変更する、
請求項３に記載の通信装置。
【請求項５】
通信セグメントの最大長の複数の値と、前記通信指標の複数の値と、のそれぞれの組み合わせについて、前記遅延時間の推定値を格納する格納部をさらに備え、
前記判定部は、前記格納部に格納される前記遅延時間の推定値を用いて、前記測定された前記通信指標の値に応じた前記遅延時間の推定値を求め、前記通信セグメント長の値を決定する、
請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記判定部は、前記ウィンドウサイズを制御する係数の値を変更する、
請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置が、
前記確認応答を受信し、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する、
通信方法。
【請求項８】
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置に、
前記確認応答を受信させ、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定させる、
ための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、確認応答の数に応じて輻輳ウィンドウサイズが制御される通信プロトコルを実行するネットワークシステムにおける通信装置，通信方法，及び通信プログラムに関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission Control Program）は、コネクション型のプロトコルである。ＴＣＰでは、データの到達性を保証するため、受信ノードはセグメントの受信に対して送信ノードへ確認応答（ＡＣＫ）を送信する。
【０００３】
また、ＴＣＰでは、ウィンドウを採用し、送信ノードは、ウィンドウサイズまで、ＴＣＰセグメントを、ＡＣＫを受信せずに連続して送信することができる。すなわち、ウィンドウサイズは、１つのセグメントを送信してから該セグメントに対するＡＣＫを受信するまでの間に送信可能なセグメント数を示す。１つのセグメントを送信してから該セグメントに対するＡＣＫを受信するまでの時間は、ＲＴＴ（Round Trip Time）に相当する。
【０００４】
送信ノードがいきなり所定数のセグメントを送信すると、ネットワークに輻輳を引き起こすおそれがある。そのため、ＴＣＰでは、輻輳制御の仕組みとして、スロースタートと輻輳回避モードと呼ばれる仕組みを採用している。スロースタートとは、少しずつセグメントを送り始め、ＡＣＫが返ってきたら、送るセグメントの数（ウィンドウサイズ）を増やしていく方法である。さらにスロースタート閾値とよばれる値以上にウィンドウサイズが増加した後は輻輳回避モードとしてウィンドウサイズを広げていく。したがって、これらの輻輳制御では、ウィンドウサイズは最初小さく、徐々に大きくなっていく。また、パケット廃棄が発生した場合、タイムアウト時間内にＡＣＫが返ってこない場合には、ＴＣＰでは、一旦ウィンドウサイズが初期値である２になり、送信されるセグメントの数が減らされる。その後、再びスロースタートでウィンドウサイズは徐々に大きくなる。また、タイムアウトはしないが軽度の輻輳を検出した場合は、一定の大きさにウィンドウサイズを縮める。この場合、ウィンドウサイズがスロースタート閾値より小さい値の範囲ではスロースタートに従い、スロースタート閾値より大きい範囲では輻輳回避モードに従い、ＡＣＫを受信する毎にウィンドウサイズを広げる。
【０００５】
図１は、ＴＣＰを用いた通信のウィンドウサイズの変化の一例を示した図である。図１では、ＲＴＴ＝１００ｍｓ，廃棄率０．０１％の場合のウィンドウサイズの変化の例が示される。図１では、実線が輻輳ウィンドウのサイズ（図１中、“ｃｗｎｄ”），破線がスロースタート閾値（図１中“ｓｓｔｈｒｅｓｈ”）を示す。輻輳ウィンドウは、スロースタート又は輻輳回避モードで用いられるウィンドウである。図１では、実線のグラフの頂点においてパケット廃棄の発生が示され、このパケット廃棄の発生により輻輳ウィンドウサイズが２まで降下しているケースが示される。
【０００６】
このように、ＴＣＰでは、パケット廃棄の発生により、ウィンドウサイズが２になると、スロースタートのため、所定のウィンドウサイズに戻るまで時間を要することになる。通信スループットはウィンドウサイズ、すなわち、１ＲＴＴあたりに送信できるセグメント数に依存する。そのため、ＲＴＴの大きい回線でＴＣＰ通信が行われる場合には、パケット廃棄が発生すると通信スループットが低下する可能性が大きい。
【０００７】
ＲＴＴの大きい回線の一つに、ＷＡＮ（Wide Area Network）がある。ＷＡＮを介して
通信が行われる場合には、ＷＡＮ高速化装置と呼ばれる装置が用いられることがある。Ｗ
ＡＮ高速化装置は、ＴＣＰの平均スループットの低下を改善するために、例えば、端末装置によって用いられる通常のＴＣＰをより回線利用率の高いＴＣＰに置き換えて通信する。以降、回線利用率の高いＴＣＰを、高速化ＴＣＰと称する。ＷＡＮ高速化装置は、例えば、サーバと端末装置間のＷＡＮ回線を挟んで配置される。ＷＡＮ高速化装置は、端末装置又はサーバとの間のＴＣＰセッションを一旦終端し、高速化ＴＣＰのセッションに置き換えてＷＡＮを挟んで対向するＷＡＮ高速化装置に送信する。対向するＷＡＮ高速化装置は、高速化ＴＣＰを端末又はサーバ間で用いられる通常のＴＣＰに戻す。
【０００８】
ＷＡＮ高速化装置間で使用される高速通信プロトコルは、ベンダにより様々である。例えば、ＵＤＰ（User Datagram Protocol）を改良し再送制御と輻輳制御機能を付加したものや、既存のＴＣＰをより効率的に輻輳制御機能を改善したものがある。ＵＤＰベースの高速通信プロトコルでは、例えば、ＵＤＴ（UDP based data Transfer）というプロトコ
ルがある。ＴＣＰを改良したもの、すなわち、高速化ＴＣＰには、ＣＵＢＩＣやＳｃａｌａｂｌｅといったアルゴリズムがある。
【０００９】
これらの高速化通信プロトコルの輻輳ウィンドウ制御アルゴリズムには、以下の２つのタイプがある。
（１）ＡＣＫの数により輻輳ウィンドウを広げるアルゴリズム
（２）輻輳検出からの経過時間により輻輳ウィンドウを広げるアルゴリズム
（１）のタイプの一例には、Ｓｃａｌａｂｌｅがある。（２）のタイプの一例には、ＣＵＢＩＣがある。
【００１０】
大量のデータが所定以上のパケット間隔を空けずに送信されることをバルク転送という。ここで、所定のパケット間隔の一例には、ＴＣＰにおける再送開始までの待ち時間であるＲＴＯ（Retransmission Time Out）がある。一方、１つのデータから生成されるパケ
ット群が所定以上の間隔を空けて送信されることはバースト送信という。バースト送信されるパケット群の生成元のデータをバーストデータという。バースト送信を行うアプリケーションの一例は、リモートデスクトップである。
【００１１】
高速通信プロトコルは、バルク転送の高速化を主なターゲットとして最適化されている。例えば、ＷＡＮ高速化装置間で使用される高速化ＴＣＰは、一般にバルク転送を行ったときに平均スループットが最大になるようになっている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−１９４７６２号公報
【特許文献２】特開２００２−２９０４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、バースト送信では、送信されるデータ量が小さい場合には、セグメント数も少なく、それに伴いＡＣＫの数も少なくなる。そのため、バースト送信の場合には、（１）のＡＣＫの数により輻輳ウィンドウを広げるアルゴリズムでは、輻輳ウィンドウサイズが思うように大きくならず、必ずしも期待されるスループットが得られるとは限らない。
【００１４】
また、バースト送信を行うアプリケーションには、サーバに対して高レスポンスな双方向通信を要求するものが多い。高レスポンスとは、すなわち、バーストデータ送信に対する転送レイテンシが小さいことである。ここでいう転送レイテンシとは、バーストデータを送信してからＡＣＫを受信するまでの時間を指す。転送レイテンシとスループットとは
、スループットが大きくなるほど転送レイテンシが小さくなる関係にある。
【００１５】
本発明の一態様は、確認応答の数に応じて輻輳ウィンドウサイズが制御される通信プロトコルを用いる通信において、双方向通信のレスポンスを向上させる通信装置，通信方法，及び通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の態様の一つは、
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置であって、
前記確認応答を受信する受信部と、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する判定部と、を備える通信装置である。  
【００１７】
本発明の他の態様の一つは、上述した通信装置が上述した処理を実行する通信方法である。また、本発明の他の態様は、コンピュータを上述した通信装置として機能させる通信プログラム、及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体を含むことができる。コンピュータ等が読み取り可能な記録媒体には、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１８】
開示の通信装置，通信方法，及び通信プログラムによれば、確認応答の数に応じてウィンドウサイズが制御される通信プロトコルを用いる通信において、双方向通信のレスポンスを向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】ＴＣＰを用いた通信のウィンドウサイズの変化の一例を示した図である。
【図２】第１実施形態のネットワークシステムの構成例を示す図である。
【図３】ＷＡＮ高速化装置のハードウェア構成の一例を示す図である。
【図４】第１実施形態におけるＷＡＮ高速化装置の機能ブロックの一例を示す図である。
【図５】ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行った場合の、廃棄率と平均ウィンドウとの関係の例を示す図である。
【図６】ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行った場合の、廃棄率とレイテンシとの関係の例を示す図である。
【図７】ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行い、バーストサイズが６４Ｋバイトである場合の、廃棄率とレイテンシとの関係の例を示す図である。
【図８】ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行い、バーストサイズが１５Ｋバイトである場合の、廃棄率とレイテンシとの関係の例を示す図である。
【図９】レイテンシ推定テーブルの一例である。
【図１０】判定部の処理のフローチャートの一例である。
【図１１Ａ】平均バーストサイズが変化した場合のレイテンシ推定テーブルの使用例を示す図である。
【図１１Ｂ】廃棄率が変化した場合のレイテンシ推定テーブルの使用例を示す図である。
【図１１Ｃ】ＲＴＴが変化した場合のレイテンシ推定テーブルの使用例を示す図である。
【図１２Ａ】リモートデスクトップを利用する端末装置が、デスクトップ上で動画を再生する場合のシーケンスの一例を示す図である。
【図１２Ｂ】端末装置のユーザが、動画再生を終了し、引き続きリモートデスクトップの画面上でオフィスアプリケーションを開始した場合についての例である。
【図１３Ａ】ＭＳＳを１４６０バイトに固定した場合のバーストデータのレイテンシのシミュレーション結果の一例を示す図である
【図１３Ｂ】第１実施形態のＷＡＮ高速化装置１により、ＭＳＳを７３０バイトに変更した場合のバーストデータのレイテンシのシミュレーション結果の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００２１】
＜第１実施形態＞
図２は、第１実施形態のネットワークシステムの構成例を示す図である。ネットワークシステムには、ＷＡＮ高速化装置１Ａ，ＷＡＮ高速化装置１Ｂ，端末装置２，サーバ３が含まれる。端末装置２は、例えば、携帯電話端末，スマートフォン，タブレット端末，パーソナルコンピュータ，等の装置である。端末装置２は、無線又は有線のネットワークでＷＡＮ高速化装置１Ｂに接続している。サーバ３は、例えば、クラウドデータセンタ内のサーバで、ＷＡＮ高速化装置１Ａに接続している。ネットワークシステムでは、端末装置２が、ＷＡＮ回線を通じてサーバ３とＴＣＰ通信を行っている。
【００２２】
ＷＡＮ高速化装置１Ａ及びＷＡＮ高速化装置１Ｂは、ＷＡＮに接続しており、高速通信プロトコルを用いて通信を行う。ＷＡＮは、有線又は無線のネットワークである。ＷＡＮ高速化装置１ＡとＷＡＮ高速化装置１Ｂとの間で用いられる高速通信プロトコルは、ＡＣＫの数に応じて輻輳ウィンドウが広がるアルゴリズムを採用するプロトコルである。第１実施形態では、ＷＡＮ高速化装置１Ａ及びＷＡＮ高速化装置１Ｂの間では、高速通信プロトコルとして、ＴＣＰ  ｓｃａｌａｂｌｅが用いられることとする。ＷＡＮ高速化装置１Ａとサーバ３との間、及び、ＷＡＮ高速化装置１Ｂと端末装置２との間では、通常のＴＣＰ、例えば、ＴＣＰ  Ｒｅｎｏが用いられることとする。以降、通常のＴＣＰを“標準ＴＣＰ”とも表記する。
【００２３】
ＷＡＮ高速化装置１Ａ及びＷＡＮ高速化装置１Ｂは、通常のＴＣＰと高速通信プロトコルとのセッションの置き換えを行う。通常のＴＣＰと高速通信プロトコルとのセッションの置き換えを、以降、“プロトコル変換”と称する。また、以降、ＷＡＮ高速化装置１ＡとＷＡＮ高速化装置１Ｂとを、特に区別しない場合には、ＷＡＮ高速化装置１と表記する。
【００２４】
ここで、上記（１）のＡＣＫ数により輻輳ウィンドウを広げる輻輳ウィンドウ制御アルゴリズムは、以下の通りである。
【数１】
2014120925.tif 000003
【００２５】
Ｗは輻輳ウィンドウサイズを示す。Ｔは、往復遅延時間（ＲＴＴ）を示す。μは、平均パケット送信速度を示す。平均パケット送信速度は、アプリケーションがパケットを送信する速度である。αは上昇係数である。０＜α＜１の定数である。ＴＣＰ  Ｓｃａｌａｂｌｅでは、α＝０．０１である。ａは、ＡＣＫ数を示す。
【００２６】
式１は、１つのＡＣＫに対して輻輳ウィンドウサイズがα増加することを示す。式２は、１つのＡＣＫに対する輻輳ウィンドウサイズの増加量がαであることを示す。式３は、単位時間における受信したＡＣＫ数（ＡＣＫ受信速度）を示す。ＡＣＫ受信速度は、バルク転送時は、セグメントが送信される速度と同じであり、１ＲＴＴ当たりウィンドウサイズ分のＡＣＫを受信することになる。一方、バースト送信時には、ウィンドウサイズが十分な大きさであったとしても、ＡＣＫ受信速度は、平均パケット送信速度に制限される。
【００２７】
式２、式３より、単位時間当たりの輻輳ウィンドウの増加量を示す式４が導かれる。バースト送信時には、送信データ量が小さい場合には、送信セグメント数が少ないため、受信ＡＣＫ数も少なくなる。そのため、式４では、バースト送信時には、輻輳ウィンドウサイズは、平均パケット送信速度μでしか増加しないことが示される。したがって、例えば、平均パケット送信速度μが小さい値である場合には、輻輳ウィンドウサイズの増加速度が小さくなることが示される。なお、パケットは、セグメントにＴＣＰ／ＩＰヘッダが付与されたものであるため、同じ送信データから生成されるセグメント数とパケット数とは同数である。
【００２８】
したがって、第１実施形態では、ＷＡＮ高速化装置１は、バースト送信時には、ＴＣＰセグメントの最大長、すなわち、ＭＳＳを小さくし、送信セグメント数を増やすことによって、受信ＡＣＫ数を増やす。ＡＣＫ数が増えることによって、平均パケット送信速度μの値が大きくなり（式３参照）、輻輳ウィンドウがより速く広がる。輻輳ウィンドウサイズがより速く大きくなることによって、平均ウィンドウサイズを大きくし、これによってスループットを向上させる。スループットが向上することによって、双方向通信におけるレスポンスも向上する。
【００２９】
第１実施形態では、バースト送信の際の、バーストデータの最初のセグメントを送信してから最後のセグメントに対するＡＣＫを受信するまでの時間をレイテンシと称する。このレイテンシを低下させるとレスポンスは上がる関係にあるので、ＷＡＮ高速化装置１は、レイテンシがより小さくなるように、ＭＳＳを制御する。なお、第１実施形態では、レイテンシの拡大を抑えるために、ＴＣＰのＮａｇｌｅアルゴリズムは無効であることを前提とする。ＴＣＰのＮａｇｌｅアルゴリズムは、通信アプリケーションが複数の短いデータをＯＳのＴＣＰスタックに送信依頼している場合に、ＯＳのＴＣＰスタックがある程度大きなデータ量になるまで待つ機能である。
【００３０】
図３は、ＷＡＮ高速化装置１のハードウェア構成の一例を示す図である。ＷＡＮ高速化装置１は、例えば、サーバとしての専用のコンピュータ，汎用のコンピュータである。第１実施形態では、ＷＡＮ高速化装置１は、ＴＣＰのプロキシとして動作するコンピュータであるとする。
【００３１】
ＷＡＮ高速化装置１は、プロセッサ１０１，主記憶装置１０２，入力装置１０３，出力装置１０４，補助記憶装置１０５，可搬記録媒体駆動装置１０６，ネットワークインタフェース１０７を備える。また、これらはバス１０９により互いに接続されている。
【００３２】
入力装置１０３は、例えば、タッチパネル，キーボード等である。入力装置１０３から入力されたデータは、プロセッサ１０１に出力される。
【００３３】
可搬記録媒体駆動装置１０６は、可搬記録媒体１１０に記録されるプログラムや各種データを読出し、プロセッサ１０１に出力する。可搬記録媒体１１０は、例えば、ＳＤカード，ｍｉｎｉＳＤカード，ｍｉｃｒｏＳＤカード，ＵＳＢ（Universal Serial Bus）フラッシュメモリ，ＣＤ（Compact Disc），ＤＶＤ(Digital Versatile Disc)，Ｂｌｕ−ｒａｙ  Ｄｉｓｃ，又はフラッシュメモリカードのような記録媒体である。
【００３４】
ネットワークインタフェース１０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１０７は、有線のネットワーク、および、無線のネットワークと接続する。ネットワークインタフェース１０７は、例えば、ＮＩＣ（Network Interface Card），無線ＬＡＮ（Local Area Network）カード等である。ネットワークインタフェース１０７で受信されたデータ等は、プロセッサ１０１に出力される。
【００３５】
補助記憶装置１０５は、様々なプログラムや、各プログラムの実行に際してプロセッサ１０１が使用するデータを格納する。補助記憶装置１０５は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、又はハードディスクドライブ（Hard Disc Drive）等の不揮発性のメモリである。補助記憶装置１０５は、例えば、オペレーティングシステム（ＯＳ），通信プログラム，その他様々なアプリケーションプログラムを保持する。
【００３６】
主記憶装置１０２は、プロセッサ１０１に、補助記憶装置１０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置１０２は、例えば、ＲＡＭ（Random Access Memory）のような半導体メモリである。
【００３７】
プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）である。プロセッ
サ１０１は、補助記憶装置１０５又は可搬記録媒体１１０に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置１０２にロードして実行することによって、様々な処理を実行する。プロセッサ１０１は、１つに限られず、複数備えられてもよい。
【００３８】
出力装置１０４は、プロセッサ１０１の処理の結果を出力する。出力装置１０４は、スピーカ等の音声出力装置，ディスプレイ，プリンタを含む。
【００３９】
例えば、ＷＡＮ高速化装置１は、プロセッサ１０１が補助記憶装置１０５に保持される通信プログラムを主記憶装置１０２にロードして実行する。ＷＡＮ高速化装置１は、通信プログラムの実行を通じて、所定の通信指標を測定する。通信指標の測定値に変化がある場合には、ＷＡＮ高速化装置１は、該通信指標の測定値から遅延量（レイテンシ）を推定する。ＷＡＮ高速化装置１は、推定した遅延量に応じてＭＳＳを設定する。なお、ＷＡＮ高速化装置１のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。通信プログラムは、例えば、可搬記録媒
体１１０に記録されていてもよい。
【００４０】
図４は、第１実施形態におけるＷＡＮ高速化装置１の機能ブロックの一例を示す図である。ＷＡＮ高速化装置１は、機能ブロックとして、ＭＡＣ部１１，ＴＣＰ処理部１２，プロキシ処理部１３，判定部１４として動作する。また、ＷＡＮ高速化装置１は、レイテンシ推定テーブル１５を、主記憶装置１０２の記憶領域に保持する。ＷＡＮ高速化装置１の各機能ブロックは、プロセッサ１０１が補助記憶装置１０５に格納される通信プログラムを実行することによって、または、ハードウェアによって実現される。例えば、ＴＣＰ処理部１２，プロキシ処理部１３，判定部１４は、プロセッサ１０１が補助記憶装置１０５に格納される通信プログラムを実行することによって、実現される。例えば、ＭＡＣ部１１は、ネットワークインタフェース１０７に含まれるＰＨＹ／ＭＡＣ回路に相当する。例えば、ＷＡＮ高速化装置１の各機能ブロックを実現するハードウェアには、ＬＳＩ（Large Scale Integration），ＦＰＧＡ（Field-Programmable Gate Array）等がある。
【００４１】
ＭＡＣ部１１は、送受信するパケットに対するＭＡＣ（Media Access Control）処理を行う。図４では、ＭＡＣ部１１は複数記載されているが、ＭＡＣ部１１は１つであってもよい。
【００４２】
ＴＣＰ処理部１２は、通信アプリケーションが送受信するデータをＴＣＰプロトコルによって送受信する。ＴＣＰ処理部１２は、ＲＴＴ測定部１２１，廃棄率測定部１２２，ＭＳＳ設定部１２３を備える。ＲＴＴ測定部１２１は、例えば、ＴＣＰパケットを送信した時刻と、該ＴＣＰパケットに対するＡＣＫパケットの到着時刻とからＲＴＴを計測する。廃棄率測定部１２２は、送信したＴＣＰパケットに対するＡＣＫパケットの有無からパケット廃棄率を計測する。
【００４３】
ＭＳＳ設定部１２３は、判定部１４からの指示によって、送信するＴＣＰセグメントのＭＳＳを変更する。ＭＳＳの初期値及び最大値は、例えば、ＭＴＵ（Maximum Transmission Unit）が１５００バイトの場合、１４６０バイトである。
【００４４】
プロキシ処理部１３は、端末装置２とサーバ３間のＴＣＰの通信セッションを終端し、対向するＷＡＮ高速化装置１との間に新たな高速通信プロトコルの通信セッションを生成する。すなわち、プロキシ処理部１３は、プロトコル変換を行う。例えば、プロキシ処理部１３は、ヘッダの情報を書き換えて、サーバ３に対しては、自装置がクライアントであるように、端末装置２に対してサーバであるように見せかける。
【００４５】
プロキシ処理部１３は、バーストサイズ測定部１３１を備える。バーストサイズ測定部１３１は、通信セッションで送信されるバーストデータの平均バーストサイズを測定する。
【００４６】
バーストサイズ測定部１３１は、受信パケットを監視し、最新の受信パケットと１つ前の受信パケットの受信間隔が所定時間以内である場合には、これらのパケットは同じバーストデータに属するパケットであると判定する。受信間隔が所定時間以上である場合には、バーストサイズ測定部１３１は、１つのバーストデータが終了したと判定し、該バーストデータの先頭のパケットから最後尾のパケットまでの総セグメント長を求める。このバーストデータに含まれるパケットの総セグメント長をバーストサイズと称する。１つのバーストデータの終了を判断する所定時間は例えばＴＣＰのタイムアウト時間であるＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）としても良い。ＲＴＯの初期値はＲＴＴの約４倍の値を持つ。次に、バーストサイズ測定部１３１は、最新のバーストデータのバーストサイズと以前測定したバーストサイズとの移動平均を、平均バーストサイズとして求める。移動平均は、例えば、Ｂバーを平均バーストサイズ、最新のバーストサイ
ズの測定結果をＢnとすると、以下の式５のように表わされる。
【数２】
2014120925.tif 000004
βは、０＜β＜１の重み付け係数である。なお、平均バーストサイズは、式５によって求められるものに限られず、例えば、直近のＮ個のバーストサイズの単純平均でもよい。
【００４７】
また、アプリケーションには、予め設定されたバーストサイズでバーストデータを送信するものもある。このようなアプリケーションの場合には、バーストサイズ測定部１３１は、ＴＣＰヘッダ内のポート番号によってアプリケーションを判別し、該アプリケーションに対して予め設定されたバーストサイズを平均バーストサイズとして求めてもよい。バーストサイズ測定部１３１は、“測定部”の一例である。
【００４８】
判定部１４は、ＲＴＴ測定部１２１によって測定されたＲＴＴ，廃棄率測定部１２２によって測定された廃棄率，バーストサイズ測定部１３１によって測定された平均バーストサイズの変化の有無を判定する。以降、ＲＴＴ，廃棄率，平均バーストサイズをまとめて、“ネットワークパラメータ”と称する。ネットワークパラメータは、“通信指標”とも称する。
【００４９】
判定部１４は、ネットワークパラメータの値に応じて、後述のレイテンシ推定テーブル１５を用い、現在のネットワークパラメータにおける対向のＷＡＮ高速化装置との通信のレイテンシが小さくなるＭＳＳを求める。
【００５０】
レイテンシは、ＷＡＮ高速化装置１が、自装置からバーストデータの最初のセグメントを送信してから、該バーストデータの最後のセグメントに対するＡＣＫを対向のＷＡＮ高速化装置１から受信するまでの時間である。このレイテンシは、以下の式６によって定義される。
【数３】
2014120925.tif 000005
【００５１】
図５は、ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行った場合の、廃棄率と平均ウィンドウとの関係の例を示す図である。図５において、ＲＴＴは１００ｍｓであり、変化無しとする。図５では、バーストサイズが、１５Ｋバイト，６４Ｋバイト，６０Ｍバイトである場合の例が示される。また、破線は、レスポンス関数と呼ばれる解析解によって求められるバーストサイズが無限大の場合の理論値を示す。
【００５２】
図５に示される例からは、バーストサイズが小さくなると、平均ウィンドウサイズも小さくなる関係にあることが示される。また、式６より、平均ウィンドウサイズが小さくなると、レイテンシが大きくなることが示される。以上のことから、判定部１４は、バーストサイズ測定部１３１によって測定される平均バーストサイズに応じて、ＭＳＳを設定する。具体的には、例えば、平均バーストサイズが小さく変化する場合には、判定部１４は、ＭＳＳをより小さい値に決定する。これによって、平均ウィンドウサイズの低下を抑制し、レイテンシがより小さい値になるように制御する。
【００５３】
また、図５に示される例からは、バーストサイズが小さくなるほど、平均ウィンドウサイズは、理論値から求まる値よりも小さい値になることが示される。また、図５に示される例からは、バーストサイズが６０Ｍバイトよりも大きい場合には、理論値に近い平均ウ
ィンドウサイズになることが示される。したがって、判定部１４は、バーストサイズ測定部１３１によって計測される平均バーストサイズが６０Ｍバイトより大きい場合には、ＭＳＳを最大値の１４６０バイトに設定する。
【００５４】
図６は、ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行った場合の、廃棄率とレイテンシとの関係の例を示す図である。図６において、ＲＴＴは１００ｍｓであり、変化無しとする。図６では、バーストサイズが、１５Ｋバイト，６４Ｋバイト，６０Ｍバイトである場合の例が示される。
【００５５】
ここで、図５に示される例からは、廃棄率が大きくなるほど平均ウィンドウサイズが小さくなることが示される。さらに、式６からは、平均ウィンドウサイズが小さくなるほどレイテンシが大きくなることが示される。すなわち、廃棄率とレイテンシは、廃棄率が大きくなるほど、レイテンシが大きくなるという関係にある。したがって、図６に示される例からは、いずれのバーストサイズにおいても、廃棄率が大きくなるほどレイテンシも大きくなることが示される。
【００５６】
以上のことより、判定部１４は、平均バーストサイズに加え、廃棄率測定部１２２によって測定される廃棄率にも応じて、ＭＳＳを決定する。
【００５７】
図７は、ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行い、バーストサイズが６４Ｋバイトである場合の、廃棄率とレイテンシとの関係の例を示す図である。図８は、ＴＣＰ  ｓｃａｌａｂｌｅを用いて双方向通信を行い、バーストサイズが１５Ｋバイトである場合の、廃棄率とレイテンシとの関係の例を示す図である。図７及び図８には、それぞれ、ＲＴＴ＝１００ｍｓ、ＲＴＴ＝２００ｍｓである場合の例が示される。
【００５８】
式６からは、ＲＴＴが大きいほどレイテンシが大きくなることが示される。したがって、図７及び図８からは、いずれのバーストサイズ及び廃棄率においても、ＲＴＴ＝１００ｍｓである場合のレイテンシに比べてＲＴＴ２００ｍｓである場合のレイテンシの方が大きいことが示される。例えば、図８において、バーストサイズ１５Ｋバイトの場合には、廃棄率０．１％におけるレイテンシは、ＲＴＴ＝１００ｍｓの場合とＲＴＴ＝２００ｍｓの場合とでは、約２倍の値となる。
【００５９】
したがって、判定部１４は、平均バーストサイズとパケット廃棄率とに加えて、ＲＴＴ測定部１２１によって測定されるＲＴＴにも応じて、ＭＳＳを決定する。
【００６０】
図９は、レイテンシ推定テーブル１５の一例である。レイテンシ推定テーブル１５には、平均バーストサイズ，廃棄率，ＲＴＴ，ＭＳＳの値に応じて推定されるレイテンシが格納されている。図９に示されるレイテンシ推定テーブル１５に格納されるレイテンシの単位は秒（ｓ）である。
【００６１】
ＭＳＳを小さくすると、データの分割によってセグメント数及びパケット数が増える。これに伴い、ＴＣＰ／ＩＰヘッダによるオーバヘッドも増える。そのため、レイテンシ推定テーブル１５に格納されるレイテンシの値には、ＭＳＳが小さくなることによるＴＣＰ／ＩＰヘッダのオーバヘッドの増加によるスループットの減少分も加味されている。
【００６２】
レイテンシ推定テーブル１５に格納されるレイテンシの値は、例えば、平均バーストサイズ，廃棄率，ＲＴＴ，ＭＳＳのそれぞれの値に応じたシミュレーション等による実測値であってもよいし、所定の計算式で導かれる理論値であってもよい。
【００６３】
図１０は、判定部１４の処理のフローチャートの一例である。図１０に示される処理は
、例えば、ＷＡＮ高速化装置１が取り扱うＴＣＰセッション単位に、パケットを受信する度に実行される。
【００６４】
ＯＰ１−ＯＰ４では、判定部１４は、ＭＳＳ設定部１２３によって保持される現在のＭＳＳ，ＲＴＴ測定部１２１によって測定されたＲＴＴ，廃棄率測定部１２２によって測定された廃棄率，バーストサイズ測定部によって測定された平均バーストサイズを収集する。次に、処理がＯＰ５に進む。
【００６５】
ＯＰ５では、判定部１４は、平均バーストサイズが６０Ｍバイトより大きいか否かを判定する。平均バーストサイズが６０Ｍバイトより大きい場合には（ＯＰ５：Ｙｅｓ）、理論値との乖離が小さいので、判定部１４は、ＭＳＳを最大値１４６０バイトに決定する（ＯＯＰ１１）。平均バーストサイズが６０Ｍバイト以下である場合には（ＯＰ５：Ｎｏ）、処理がＯＰ６に進む。
【００６６】
ＯＰ６では、判定部１４は、収集したＲＴＴ，廃棄率，平均バーストサイズの少なくとも１つに変化が有るか否かを判定する。ＲＴＴ，廃棄率，平均バーストサイズの少なくとも１つに変化が有る場合には（ＯＰ６：Ｙｅｓ）、処理がＯＰ７に進む。ＲＴＴ，廃棄率，平均バーストサイズのいずれにも変化がない場合には（ＯＰ６：Ｎｏ）、レイテンシに変化がないことが推測され、ＭＳＳを変更することなく、図１０に示される処理は終了する。なお、ＯＰ６では、各変数に対して変化量の閾値が設定され、該閾値よりも変化量の大きい場合に、変化ありと判定されるようにしてもよい。また、図１０に示される処理の初回の実行時は、ＯＰ７に進むものとする。
【００６７】
ＯＰ７では、判定部１４は、レイテンシ推定テーブル１５を参照し、収集したＲＴＴ，廃棄率，平均バーストサイズから現ＭＳＳのレイテンシを推定する。次に、ＯＰ８では、判定部１４は、レイテンシ推定テーブル１５から、収集したＲＴＴ，廃棄率，平均バーストサイズにおける他のＭＳＳのレイテンシの推定値を検索する。以降、レイテンシ推定テーブル１５から求められるレイテンシは推定値であるが、便宜上、単に“レイテンシ”と称する。
【００６８】
ＯＰ９では、判定部１４は、検索したレイテンシの中で、現ＭＳＳのレイテンシよりも小さいレイテンシのＭＳＳが有るか否かを判定する。現ＭＳＳのレイテンシよりも小さいレイテンシのＭＳＳが有る場合には（ＯＰ９：Ｙｅｓ）、処理がＯＰ１０に進む。現ＭＳＳのレイテンシよりも小さいレイテンシのＭＳＳがない場合には（ＯＰ９：Ｎｏ）、ＭＳＳを変更してもレイテンシが小さくなることが予測されないので、ＭＳＳを変更することなく、図１０に示される処理が終了する。
【００６９】
ＯＰ１０では、判定部１４は、ＭＳＳを、検索したレイテンシの中で、レイテンシが最小となるＭＳＳに変更する。判定部１４は、ＭＳＳ設定部１２３に、変更後のＭＳＳを通知する。その後、図１０に示される処理が終了する。
【００７０】
なお、図１０に示されるフローチャートは、一例であって、判定部１４の処理は、これに限定されるものではない。例えば、ＯＰ１からＯＰ４のネットワークパラメータの収集の処理は、それぞれ順番が入れ替わってもよい。
【００７１】
＜ＭＳＳ決定の具体例＞
（具体例１）平均バーストサイズが変化した場合
図１１Ａは、平均バーストサイズが変化した場合のレイテンシ推定テーブル１５の使用例を示す図である。図１１Ａでは、図９に示されるレイテンシ推定テーブル１５と同じものが示されている。
【００７２】
まず、判定部１４は、ＭＳＳは１４６０バイト（初期値）、平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率０．１％を取得する（ＯＰ１−ＯＰ４）。判定部
１４は、図１１Ａに示されるレイテンシ推定テーブル１５より、レイテンシＬMSS=1460＝０．０５ｓを取得する（ＯＰ７）。
【００７３】
次に、判定部１４は、図１１Ａに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ、同ＲＴＴ、同廃棄率における、ＭＳＳ＝７３０バイトとＭＳＳ＝３６０バイトのレイテンシＬMSS=730＝０．０４７ｓ、ＬMSS=360＝０．０４５ｓを取得する（ＯＰ８）。平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率０．１％におけ
る、レイテンシＬMSS=1460＝０．０５ｓ，ＬMSS=730＝０．０４７ｓ，ＬMSS=360＝０．０４５ｓは、図１１Ａにおいて円で強調されている。
【００７４】
判定部１４は、取得したレイテンシの中からＬMSS=360＝０．０４７ｓが最小となるの
で、ＭＳＳを３６０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。
【００７５】
ここで、平均バーストサイズが６４Ｋバイトに変化したとする。なお、ＲＴＴと廃棄率とは変化無しとする。この場合には、判定部１４は、平均バーストサイズが変化したので（ＯＰ６：Ｙｅｓ）、平均バーストサイズ＝６４Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率
０．１％における、現ＭＳＳ＝３６０バイトのレイテンシＬMSS=360＝０．１６７２２ｓ
を取得する（ＯＰ７）。
【００７６】
次に、判定部１４は、図１１Ａに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ（６４ＫＢ）、同ＲＴＴ、同廃棄率における、ＭＳＳ＝１４６０バイトとＭＳＳ＝７３０バイトのレイテンシＬMSS=1460＝０．１８ｓ、ＬMSS=730＝０．１３９ｓを
取得する（ＯＰ８）。平均バーストサイズ＝６４Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率
０．１％における、レイテンシＬMSS=1460＝０．１８ｓ，ＬMSS=730＝０．１３９ｓ，ＬMSS=360＝０．１６７２２ｓは、図１１Ａにおいて四角で強調されている。
【００７７】
判定部１４は、取得したレイテンシの中からＬMSS=730＝０．１３９ｓが最小となるの
で、ＭＳＳを７３０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。なお、ＭＳＳ＝３６０バイトのレイテンシＬMSS=360＝０．１６７２２ｓがＭＳＳ＝７３０
バイトのレイテンシＬMSS=730＝０．１３９ｓよりも大きい値であることは、パケット数
増加に伴うＴＣＰ／ＩＰヘッダのオーバヘッドの増加によるものである。そのため、この場合には、ＭＳＳが３６０バイトから７３０バイトへと大きな値に変更される。
【００７８】
（具体例２）廃棄率が変化した場合
図１１Ｂは、廃棄率が変化した場合のレイテンシ推定テーブル１５の使用例を示す図である。図１１Ｂでは、図９に示されるレイテンシ推定テーブル１５と同じものが示されている。
【００７９】
まず、判定部１４は、ＭＳＳは１４６０バイト（初期値）、平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率１％を取得する（ＯＰ１−ＯＰ４）。判定部１４
は、図１１Ｂに示されるレイテンシ推定テーブル１５より、レイテンシＬMSS=1460＝０．１４２ｓを取得する（ＯＰ７）。
【００８０】
次に、判定部１４は、図１１Ｂに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ、同ＲＴＴ、同廃棄率における、ＭＳＳ＝７３０バイトとＭＳＳ＝３６０バイトのレイテンシＬMSS=730＝０．１０９ｓ、ＬMSS=360＝０．１３ｓを取得する（ＯＰ８）。平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率１％における、レ
イテンシＬMSS=1460＝０．１４２ｓ，ＬMSS=730＝０．１０９ｓ，ＬMSS=360＝０．１３ｓは、図１１Ｂにおいて円で強調されている。
【００８１】
判定部１４は、取得したレイテンシの中からＬMSS=730＝０．１０９ｓが最小となるの
で、ＭＳＳを７３０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。
【００８２】
ここで、廃棄率が０．０１％に変化したとする。なお、平均バーストサイズと廃棄率とは変化無しとする。この場合には、判定部１４は、廃棄率が変化したので（ＯＰ６：Ｙｅｓ）、平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率０．０１％にお
ける、現ＭＳＳ＝７３０バイトのレイテンシＬMSS=730＝０．０４３ｓを取得する（ＯＰ
７）。
【００８３】
次に、判定部１４は、図１１Ｂに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ、同ＲＴＴ、同廃棄率（０．０１％）における、ＭＳＳ＝１４６０バイトとＭＳＳ＝３６０バイトのレイテンシＬMSS=1460＝０．０４２ｓ、ＬMSS=360＝０．０４４
ｓを取得する（ＯＰ８）。平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃
棄率０．０１％における、レイテンシＬMSS=1460＝０．０４２ｓ，ＬMSS=730＝０．０４
３ｓ，ＬMSS=360＝０．０４４ｓは、図１１Ｂにおいて四角で強調されている。
【００８４】
判定部１４は、取得したレイテンシの中からＬMSS=1640＝０．０４２ｓが最小となるので、ＭＳＳを１６４０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。なお、ＭＳＳ＝７３０バイトのレイテンシＬMSS=730＝０．０４３ｓがＭＳＳ＝１４６０
バイトのレイテンシＬMSS=1460＝０．０４２ｓよりも大きい値であることは、パケット数増加に伴うＴＣＰ／ＩＰヘッダのオーバヘッドの増加によるものである。そのため、この場合には、ＭＳＳが７３０バイトから１４６０バイトへと大きな値に変更される。
【００８５】
（具体例３）ＲＴＴが変化した場合
図１１Ｃは、ＲＴＴが変化した場合のレイテンシ推定テーブル１５の使用例を示す図である。図１１Ｃでは、図９に示されるレイテンシ推定テーブル１５と同じものが示されている。ＲＴＴは、例えば、無線環境の変化，ルーティング経路の変化，データセンタ内でのサーバの移動等によって変化する。
【００８６】
まず、判定部１４は、ＭＳＳは１４６０バイト（初期値）、平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率０．１％を取得する（ＯＰ１−ＯＰ４）。判定部
１４は、図１１Ｃに示されるレイテンシ推定テーブル１５より、レイテンシの推定値ＬMSS=1460＝０．０５ｓを取得する（ＯＰ７）。
【００８７】
次に、判定部１４は、図１１Ｃに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ、同ＲＴＴ、同廃棄率における、ＭＳＳ＝７３０バイトとＭＳＳ＝３６０バイトのレイテンシＬMSS=730＝０．０４７ｓ、ＬMSS=360＝０．０４５ｓを取得する（ＯＰ８）。平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=１００ｍｓ、廃棄率０．１％におけ
る、レイテンシＬMSS=1460＝０．０５ｓ，ＬMSS=730＝０．０４７ｓ，ＬMSS=360＝０．０４５ｓは、図１１Ｃにおいて円で強調されている。
【００８８】
判定部１４は、取得したレイテンシの中からＬMSS=360＝０．０４７ｓが最小となるの
で、ＭＳＳを３６０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。
【００８９】
ここで、ＲＴＴが２００ｍｓに変化したとする。なお、平均バーストサイズと廃棄率とは変化無しとする。この場合には、判定部１４は、ＲＴＴが変化したので（ＯＰ６：Ｙｅｓ）、平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=２００ｍｓ、廃棄率０．１％におけ
る、現ＭＳＳ＝３６０バイトのレイテンシＬMSS=360＝０．２３ｓを取得する（ＯＰ７）
。
【００９０】
次に、判定部１４は、図１１Ｃに示されるレイテンシ推定テーブル１５より、同平均バーストサイズ、同ＲＴＴ（２００ｍｓ）、同廃棄率における、ＭＳＳ＝１４６０バイトとＭＳＳ＝３６０バイトのレイテンシＬMSS=1460＝０．２９ｓ、ＬMSS=730＝０．２１ｓを
取得する（ＯＰ８）。平均バーストサイズ＝１５Ｋバイト、ＲＴＴ=２００ｍｓ、廃棄率
０．１％における、レイテンシＬMSS=1460＝０．２９ｓ，ＬMSS=730＝０．２１ｓ，ＬMSS=360＝０．２３ｓは、図１１Ｃにおいて四角で強調されている。
【００９１】
判定部１４は、取得したレイテンシの中からＬMSS=730＝０．２１ｓが最小となるので
、ＭＳＳを７３０バイトに変更することを決定する（ＯＰ９：Ｙｅｓ，ＯＰ１０）。なお、ＭＳＳ＝３６０バイトのレイテンシＬMSS=360＝０．２３ｓがＭＳＳ＝７３０バイトの
レイテンシＬMSS=730＝０．２１ｓよりも大きい値であることは、パケット数増加に伴う
ＴＣＰ／ＩＰヘッダのオーバヘッドの増加によるものである。そのため、この場合には、ＭＳＳが３６０バイトから７３０バイトへと大きな値に変更される。
【００９２】
＜動作例＞
図１２Ａ及び図１２Ｂは、図２の通信システムにおいて、リモートデスクトップによって、端末装置２とサーバ３との間で通信が行われる場合のシーケンス図の一例である。図１２Ａは、リモートデスクトップを利用する端末装置２が、デスクトップ上で動画を再生する場合のシーケンスの一例を示す図である。
【００９３】
端末装置２及びサーバ３では、それぞれリモートデスクトップを起動する（Ｓ１，Ｓ２）。このとき、リモートデスクトップサーバ（サーバ３）、クライアント（端末装置２）間で接続のための通信シーケンスが実行される。
【００９４】
リモートデスクトップ接続が確立されると、端末装置２のディスプレイには、サーバ３のデスクトップ画面が表示される。端末装置２のユーザは、マウスやキーボードなどから画面を操作することで、画面操作のコマンドがサーバ３に送信される（Ｓ３）。
【００９５】
Ｓ３において、端末装置２のユーザは、マウスを用いて動画再生のアプリケーションのアイコンをクリックしたものとする。このとき、コマンドを含む通信パケットは、ＷＡＮ高速化装置１Ａ、１Ｂを経由し、例えば、標準ＴＣＰから高速通信プロトコルに変換された後、サーバ３に送信される。サーバ３は、このコマンドを受信すると、動画再生アプリケーションを起動する（Ｓ４）。
【００９６】
サーバ３は、リモートデスクトップを介して、動画の画面データを端末装置２に向けて送信する（Ｓ５）。このとき、サーバ３からＷＡＮ高速化装置１Ａに向けて、例えば、標準ＴＣＰを用いて画面データを送信する。
【００９７】
ＷＡＮ高速化装置１Ａは、この画面データを受信する。ＷＡＮ高速化装置１Ａは、受信したデータのバーストサイズ、廃棄率、ＲＴＴなどのネットワークパラメータを測定する（Ｓ６）。次に、ＷＡＮ高速化装置１Ａは、図１１に示されるレイテンシ推定の処理を実行する（Ｓ７）。動画再生中はバーストサイズが大きく、ＭＳＳは最大値１４６０バイトに設定されるとする。ＷＡＮ高速化装置１Ａは、プロトコル変換を行い、高速通信プロトコルに載せ変えて、ＭＳＳ＝１４６０バイトでパケットを送信する（Ｓ８）。
【００９８】
ＷＡＮ高速化装置１Ｂは、これらのパケットを高速通信プロトコルで受信し、これらのパケットに対するＡＣＫをＷＡＮ高速化装置１Ａに送信する（Ｓ９）。さらにＷＡＮ高速
化装置１Ｂは、受信したデータを標準ＴＣＰで端末装置２に送信する（Ｓ１０）。端末装置２は、このデータを受信すると、ディスプレイの表示画面を更新する（Ｓ１１）。
【００９９】
サーバ３は、動画の画面を次々に端末装置２に送信する（Ｓ１２）。以降は、Ｓ５−Ｓ１１と同様の処理がそれぞれの装置において実行される（Ｓ１２−Ｓ１８）。
【０１００】
図１２Ｂは、端末装置２のユーザが、動画再生を終了し、引き続きリモートデスクトップの画面上でオフィスアプリケーションを開始した場合についての例である。オフィスアプリケーションは、例えば、ワープロソフト，表計算ソフト等である。
【０１０１】
端末装置２のユーザは、マウス等の入力デバイスで画面を操作し、端末装置２はサーバ３に対しコマンドを送信する（Ｓ２１）。コマンドを含んだ通信パケットは、ＷＡＮ高速化装置１Ｂによって標準ＴＣＰから高速通信プロトコルにプロトコル変換されてＷＡＮ高速化装置１Ａに送信される。さらにこの通信パケットは、ＷＡＮ高速化装置１Ａによって高速通信プロトコルから標準ＴＣＰにプロトコル変換されて、サーバ３に送信される。
【０１０２】
サーバ３は、受信したコマンドに従って、動画再生アプリケーションを停止し、オフィスアプリケーションを起動する（Ｓ２２、Ｓ２３）。サーバ３は、オフィスアプリケーションの起動に伴う画面データを端末装置２に向けて送信する（Ｓ２４）。
【０１０３】
ＷＡＮ高速化装置１Ａは、この画面データを受信する。ＷＡＮ高速化装置１Ａは、受信したデータのバーストサイズ、廃棄率、ＲＴＴなどのネットワークパラメータを測定する（Ｓ２５）。オフィスアプリケーションのバーストサイズは、一般的に動画再生アプリケーションのバーストサイズよりも小さく、ここでは、平均バーストサイズは１５Ｋバイトで測定されたとする。
【０１０４】
次に、ＷＡＮ高速化装置１Ａは、図１１に示されるレイテンシ推定の処理を実行する（Ｓ２６）。平均バーストサイズが１５Ｋバイトに変化したので、ＷＡＮ高速化装置１Ａは、レイテンシ推定テーブル１５から現在のレイテンシを推定し、よりレイテンシが小さくなるＭＳＳを選択する（Ｓ２７）。ここでは、ＭＳＳ＝７３０バイトにＭＳＳが設定されたとする。ＷＡＮ高速化装置１Ａは、プロトコル変換を行い、高速通信プロトコルに載せ変えて、ＭＳＳ＝７３０バイトでパケットを送信する（Ｓ２８）。
【０１０５】
ＷＡＮ高速化装置１Ｂは、これらのパケットを高速通信プロトコルで受信し、これらのパケットに対するＡＣＫをＷＡＮ高速化装置１Ａに送信する（Ｓ２９）。さらにＷＡＮ高速化装置１Ｂは、受信したデータを標準ＴＣＰで端末装置２に送信する（Ｓ３０）。端末装置２は、このデータを受信すると、ディスプレイの表示画面を更新する（Ｓ３１）。
【０１０６】
以降は、サーバ３から次々に動画の画面データが端末装置２に送信され、Ｓ２４−Ｓ３１と同様の処理がそれぞれの装置において実行される（Ｓ３２−Ｓ３５）。
【０１０７】
図１２Ｂに示される例において、平均バーストサイズの変化に伴って、ＭＳＳが１４６０バイトから７３０バイトに変更になることによって、セグメント数が２倍になる。これによって、ＷＡＮ高速化装置１Ａにより多くのＡＣＫが戻ってくるようになり、ＷＡＮ高速化装置１Ａは、より速く輻輳ウィンドウを広げることが可能になる。
【０１０８】
＜第１実施形態の作用効果＞
図１３Ａは、ＭＳＳを１４６０バイトに固定した場合のバーストデータのレイテンシのシミュレーション結果の一例を示す図である。図１３Ｂは、第１実施形態のＷＡＮ高速化装置１により、ＭＳＳを７３０バイトに変更した場合のバーストデータのレイテンシのシ
ミュレーション結果の一例を示す図である。図１３Ａ及び図１３Ｂにおいて、ＲＴＴ＝１００ｍｓ、廃棄率０．００５％、バーストサイズ１Ｍバイト、と、ＭＳＳ以外のパラメータは同条件に設定されている。
【０１０９】
図１３Ａに示されるＭＳＳ＝１４６０バイトの場合には、１Ｍバイトのバーストデータは、６８４パケットに相当する。また、１ＲＴＴあたりに送信できるパケット数（平均ウィンドウサイズ）は、約２２０パケットとする。したがって、ＭＳＳ＝１４６０バイトの場合には、１Ｍのバーストデータを送信するのに要する時間は、約３．１１ＲＴＴとなる。
【０１１０】
一方、図１３Ｂに示されるＭＳＳ＝７３０バイトの場合には、１Ｍバイトのバーストデータは、１３６９パケットに相当する。また、１ＲＴＴ当たりに送信できるパケット数（平均ウィンドウサイズ）は、約５３０パケットとなる。したがって、ＭＳＳ＝７３０バイトの場合には、１Ｍのバーストデータを送信するのに要する時間は、約２．５ＲＴＴとなる。これは、ＭＳＳ＝１４６０バイトの場合に比べて、レイテンシが改善されたことを示す。
【０１１１】
したがって、第１実施形態によれば、ネットワークパラメータを測定し、推定されるレイテンシがより小さくなるようにＭＳＳを動的に変更することによって、バースト送信においてもウィンドウサイズがより速く広がる。ウィンドウサイズがより速く広がることによって、平均スループットを向上させることができ、レイテンシを改善することができる。
【０１１２】
＜変形例＞
第１実施形態では、ネットワークパラメータによってレイテンシを推定し、レイテンシの推定値がより小さくなるようにＭＳＳを変更した。これに加えて、例えば、式１、式２の上昇係数αの値を変更してもよい。上昇係数αの値を大きくすることによって、１つのＡＣＫ当たりのウィンドウサイズの変化量を大きくすることができ、より輻輳ウィンドウが広がりやすくなる。上昇係数αの値の変更は、例えば、ＴＣＰ／ＩＰヘッダのオーバヘッドによってＭＳＳを小さくしてもレイテンシが小さくならない場合に、よりレイテンシを小さくすることができる。
【０１１３】
また、ＭＳＳの変更に加えて、例えば、図２のシステムにおけるＷＡＮ高速化装置１Ａが高速転送プロトコルでパケットを受信する対向のＷＡＮ高速化装置１Ｂに指示を送る等して、ＷＡＮ高速化装置１ＢのＴＣＰ  Ｄｅｌａｙｅｄ  ＡＣＫ機能を解除してもよい。ＴＣＰ  Ｄｅｌａｙｅｄ  ＡＣＫ機能は、ＯＳのＴＣＰスタックがある程度大きなデータ量になるまでＡＣＫの送信を待つ機能である。ＴＣＰ  Ｄｅｌａｙｅｄ  ＡＣＫ機能が有効に設定されていると、ＷＡＮ高速化装置１ＢからのＡＣＫの返信が遅れ、輻輳ウィンドウの広がりの速度の低下につながることがあるためである。
【０１１４】
また、第１実施形態では、ＷＡＮ高速化装置１は、レイテンシ推定テーブル１５を用いてレイテンシを推定した。これに代えて、ＷＡＮ高速化装置１は、例えば、レイテンシを推定するための所定の関数，グラフ等によりレイテンシを推定してもよい。
【０１１５】
また、第１実施形態では、ＷＡＮ高速化装置１は、ネットワークパラメータの測定値からレイテンシを推定し、より小さいレイテンシとなるＭＳＳを選択した。これに代えて、現ＭＳＳにおけるレイテンシを推定し、この推定値が、例えば、レスポンス関数から求められる理論値よりも予め設定した閾値より大きい場合に、ＭＳＳを変更するようにしてもよい。
【０１１６】
また、第１実施形態では、ネットワークパラメータとして、バーストサイズ、廃棄率、ＲＴＴを測定し、各測定値を用いてレイテンシの推定を行った。レイテンシの推定に用いられるネットワークパラメータは、これらに限られず、レイテンシの変化に関わる他のパラメータが用いられてもよい。
【０１１７】
また、第１実施形態では、ＷＡＮ高速化装置１Ａ及びＷＡＮ高速化装置１Ｂの間では、高速通信プロトコルとして、ＴＣＰ  ｓｃａｌａｂｌｅが用いられる場合について説明された。ただし、これに限られず、第１実施形態のＷＡＮ高速化装置１は、ＴＣＰベースの他の高速通信プロトコルや、ＵＤＰベースの高速通信プロトコル等、ＡＣＫ数に応じて輻輳ウィンドウが広がるアルゴリズムを採用する通信プロトコルを用いる通信に適用可能である。
【０１１８】
また、第１実施形態では、ＷＡＮ高速化装置について説明された。だたし、これに限られず、第１実施形態のＷＡＮ高速化装置と同様の処理は、例えば、サーバ等の専用のコンピュータ，ＰＣ等の汎用コンピュータ，ルータ等の中継装置など、高速通信プロトコルを用いて通信を行う通信装置に適用することもできる。
【０１１９】
（その他）
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置であって、
前記確認応答を受信する受信部と、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する判定部と、を備える通信装置。
（付記２）
前記判定部は、前記通信セグメント長を、前記遅延時間がより小さくなるような通信セグメントの最大長とする付記１に記載の情報処理装置。
（付記３）
前記判定部は、前記通信指標の値の変化に応じて、前記通信セグメント長を変更する、付記１に記載の通信装置。
（付記４）
前記通信指標の値として、前記データブロックのデータ長の平均を求める測定部をさらに備える、
付記１から３のいずれか１つに記載の通信装置。
(付記５)
前記判定部は、前記データブロックのデータ長の平均が小さく変化した場合に、前記通信セグメント長を小さい値に変更する、
付記４に記載の通信装置。
(付記６)
前記判定部は、前記データブロックのデータ長の平均が所定値よりも小さく変化した場合に、前記通信セグメント長を変更する、
付記４に記載の通信装置。
(付記７)
前記通信指標の１つとして、パケットの廃棄率を測定する廃棄率測定部をさらに備え、
前記判定部は、前記廃棄率の値から前記遅延時間を推定する、
付記１から６のいずれか１つに記載の通信装置。
（付記８）
前記通信指標の１つとして、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）を測定するＲＴＴ測定部をさらに備え、
前記判定部は、前記ＲＴＴの値から前記遅延時間を推定する、
付記１から７のいずれか１つに記載の通信装置。
(付記９)
通信セグメントの最大長の複数の値と、前記通信指標の複数の値と、のそれぞれの組み合わせについて、前記遅延時間の推定値を格納する格納部をさらに備え、
前記判定部は、前記格納部に格納される前記遅延時間の推定値を用いて、前記測定された前記通信指標の値に応じた前記遅延時間の推定値を求め、前記通信セグメント長の値を決定する、
付記１から８のいずれか１つに記載の通信装置。
(付記１０)
前記判定部は、前記ウィンドウサイズを制御する係数の値を変更する、
付記１から９のいずれか１つに記載の通信装置。
(付記１１)
前記通信プロトコルは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を改良した通信プロトコルであって、
前記判定部は、前記通信プロトコルを実行する対向の通信装置にＴＣＰ  Ｄｅｌａｙｅｄ  ＡＣＫ機能の解除の指示を送信する、
付記１から１０のいずれか１つに記載の通信装置。
(付記１２)
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置が、
前記確認応答を受信し、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定する、
通信方法。
（付記１３）
通信セグメントの送信から、該通信セグメントに対する受信側装置からの確認応答の受信まで、の間に送信可能な前記通信セグメント数を決めるウィンドウサイズを確認応答数に応じて制御する通信プロトコルを実行する通信装置に、
前記確認応答を受信させ、
通信指標の値を用いて得られる、複数の通信セグメントに分割されて連続で送信されるデータブロックの送信開始から前記受信側装置からの最後の受信セグメントに対する確認応答の受信完了までにかかる遅延時間に基づいて通信セグメント長を設定させる、
ための通信プログラム。
【符号の説明】
【０１２０】
１      ＷＡＮ高速化装置
２      端末装置
３      サーバ
１１    ＭＡＣ部
１２    ＴＣＰ処理部
１３    プロキシ処理部
１４    判定部
１５    レイテンシ推定テーブル
１２１  ＲＴＴ測定部
１２２  廃棄率測定部
１２３  ＭＳＳ設定部
１３１  バーストサイズ測定部
【図１】
2014120925.tif 000006
【図２】
2014120925.tif 000007
【図３】
2014120925.tif 000008
【図４】
2014120925.tif 000009
【図５】
2014120925.tif 000010
【図６】
2014120925.tif 000011
【図７】
2014120925.tif 000012
【図８】
2014120925.tif 000013
【図９】
2014120925.tif 000014
【図１０】
2014120925.tif 000015
【図１１Ａ】
2014120925.tif 000016
【図１１Ｂ】
2014120925.tif 000017
【図１１Ｃ】
2014120925.tif 000018
【図１２Ａ】
2014120925.tif 000019
【図１２Ｂ】
2014120925.tif 000020
【図１３Ａ】
2014120925.tif 000021
【図１３Ｂ】
2014120925.tif 000022