(57)【特許請求の範囲】
【請求項１】
送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、
前記送信元と送信先の通信装置で第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している前記第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぎ、
前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、
前記送信元と送信先の通信装置間の前記第１の輻輳制御機能で輻輳制御を行う前記伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた前記第２の輻輳制御機能を選択し、
前記第２の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、
前記送信元と送信先の通信装置で同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替え、
前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行い、
トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出し、
前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した前記第２の輻輳制御機能を選択する
ことを特徴とする伝送制御方法。
【請求項２】
送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、
前記送信元と送信先の通信装置で第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している前記第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぎ、
前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、
前記送信元と送信先の通信装置間の前記第１の輻輳制御機能で輻輳制御を行う前記伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた前記第２の輻輳制御機能を選択し、
前記第２の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、
前記送信元と送信先の通信装置で同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替え、
前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行い、
通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出し、
前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した前記第２の輻輳制御機能を選択する
ことを特徴とする伝送制御方法。
【請求項３】
請求項１又は２記載の伝送制御方法において、
前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した前記第２の輻輳制御機能を選択する
ことを特徴とする伝送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信元と送信先の通信装置間の伝送制御方法に関する。
【背景技術】
【０００２】
今日、多くの通信アプリケーションがＯＳＩ参照モデルにおけるトランスポート層のプロトコルにあたるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）プロトコルをデファクトスタンダードとして利用しているが、ＴＣＰプロトコルには特性の異なる様々なバリエーションがある。
【０００３】
近年のインターネットは、ネットワークのより高速化、長距離化が進み、ＬＦＮ（Ｌｏｎｇ  Ｆａｔ  Ｎｅｔｗｏｒｋｓ）や無線アクセス網が一般的になるなど進化を続けてきている。ＬＦＮでは、広い帯域を持っているにも関わらずＴＣＰが介在することにより十分な性能が出ないという問題があり、ＬＦＮ向けに改善されたＴＣＰが現れた。また、無線網を介する場合には、無線網におけるパケットエラーがＴＣＰからみて輻輳が発生したと認識される結果スループットがあがらないという問題があり、これに対処するＴＣＰの改善が加えられた。このように、ネットワーク環境の進化に合わせてＴＣＰプロトコルは、通信性能の改善を繰り返してきた。その結果、用途環境に特化した様々な改良バージョン又は変種が存在する。
【０００４】
こうしたＴＣＰは、それぞれ異なる輻輳制御を行う。輻輳制御は、ウィンドウ制御や、再送制御、輻輳通知など複数の制御技術が組み合わさり実現されており、変種毎に異なった機能が含まれる。組み合わされる個々の制御技術を、輻輳制御を行うためのルールと位置づけると、各変種が持つ輻輳制御はいくつかのルールを組み合わせたルールセットが異なると言える。
【０００５】
上記に示した様々な改良バージョン又は変種は主にＴＣＰのウィンドウ制御方法を改良している。ウィンドウ制御方式には、大きく分けてロスベース方式、遅延ベース方式の二種類がある。
【０００６】
（１）ロスベース方式
ロスベース方式のＴＣＰのウィンドウ制御アルゴリズムはエンドノード側が通信経路の状況を把握しない前提で、単純なアルゴリズムにて転送量の制御を行っている。輻輳が起こらずにパケットが喪失しなかった場合はネットワークの帯域に余裕があるとみなして、連続して出力できるセグメント量である輻輳ウィンドウサイズを増加させて転送速度を上げる。また逆に、輻輳が起こり、パケットが喪失した場合は輻輳ウィンドウサイズを減少させて転送速度を下げて、輻輳を回避するという流れが基本である。このように輻輳ウィンドウサイズの増減を繰り返して転送速度を調整することにより安定した通信を行うが、安定した通信を行うためには多少のパケットロスを前提としていて、パケットロスで通信経路の状況を判断するというのが基本的な考え方となっている。
【０００７】
ロスベース方式は、輻輳をパケットロスにより判断するが、無線リンクのように輻輳していなくてもパケットロスが発生する環境で使用すると、帯域が余っているのに十分スループットが出ない状況になる。また、輻輳検出後の回復がアグレッシブなので帯域変化には比較的早く対応する。
【０００８】
（２）遅延ベース方式
遅延ベース方式は、エンド・エンドでのＲＴＴ（ラウンドトリップ時間）の計測値（実測値）と推測値（計算値）を用いて、計測値が推測値を下回れば空いているとみなして輻輳ウィンドウサイズを大きくし、計測値が推測値を上回れば混雑してきたとみなして輻輳ウィンドウサイズを小さくするといったアルゴリズムになっている。そのため、輻輳が起こる前に適切な輻輳ウィンドウサイズに調節し、通信速度を制御できるため、ロスベース方式よりもパケットロスが少ない上、帯域を有効に使用することが可能になっている。
【０００９】
遅延ベース方式は、ロスベース方式よりも帯域が有効に使えるが、無線回線のように遅延が大きい環境下でＭＣＳ（Ｍｏｄｕｌａｔｉｏｎ  ａｎｄ  Ｃｏｄｉｎｇ  Ｓｃｈｅｍｅ）の変化によりリンク帯域の変化が頻繁に発生すると、スループットが低く抑えられてしまう。また、ＲＴＴが大きい環境で遅延ベース方式はロスベース方式と混在する環境下では競合しロスベース方式に負けてしまう。
【００１０】
また、この他にもＷＡＮ高速化装置（ＷＡＮ  Ｏｐｔｉｍｉｚｅｒ）と呼ばれる装置がある。ＷＡＮ高速化装置はＷＡＮを介して接続するエンド端末の間にペアで配置され、エンド端末のＴＣＰを一旦終端し、より最適化されたＴＣＰに載せ替え、プロキシ通信を高速化する。これらは対向するＷＡＮ高速化装置間でベンダ独自にチューニングしたＴＣＰを用いている。
【００１１】
実際には、端末は様々な環境で利用されるため、一種類のＴＣＰスキームだけで全ての条件において最適なパフォーマンスを出すのは極めて困難であった。そこで、これらの問題に対処するために、ＮＥＴ１００プロジェクトにおけるＡｕｔｏ  Ｔｕｎｉｎｇ技術といった手法が登場した。この手法では通信開始前に回線の状況を調べ、それに応じてＴＣＰの最適パラメタや最適バッファ量を決めることができる。
【００１２】
一方で、近年、ハイブリッド方式と呼ばれ、ロスベース方式と遅延ベース方式を合わせたＴＣＰが登場した。ハイブリッド方式はロスベース方式と遅延ベース方式を環境により使い分けることが可能なため、遅延ベース方式の欠点であるロスベース方式との競合によるスループットの低下をカバーできるようになっている。
【００１３】
ところで、送信側ＢＡＳ（Ｂｒｏａｄｂａｎｄ  Ａｃｃｅｓｓ  Ｓｅｒｖｅｒ）はＲＴＰパケットの内容を解析し、画像データのＨＤＬＣフレーム内のプリアンブルを検出した場合、検出箇所を画像データの開始と判定し、それ以降、ＲＴＰパケットをＴＣＰパケットにプロトコル変換し、それを示すタグ情報をＴＣＰパケットに付与して、受信側ＢＡＳはタグ情報が付与されたＴＣＰパケットを検出し、検出されたＴＣＰパケットからタグ情報を削除し、ＴＣＰ形式からＲＴＰ形式に戻すプロトコル変換を行う技術が知られている（例えば特許文献１参照）。
【００１４】
また、通信中継装置は通信端末装置からのネットワーク接続要求に対しフローの特性を検出し、フローの特性に応じた最適なネットワークを選択して通信を開始し、選択されたネットワークがフローの要求品質を下回ったことを検出した場合、ネットワーク特性データベースの該当するネットワークの項目を更新し、改めてフローの特性に応じた最適なネットワークの選択を行う技術が知られている（例えば特許文献２参照）。
【００１５】
また、パケット転送装置ＲＴにおいて、通信プロトコルの異なるネットワークＮＷａ，ＮＷｂに属するパケットが同一セッションに合流する地点でその通信量を監視し、パケットのリダイレクション転送の優先制御を行う際、輻輳が検知された場合には輻輳応答サーバＲＳＶから輻輳メッセージを発信元に通知し、パケット転送装置ＲＴでパケットの折り返し転送を行い、クライアント端末ＴＭａ，ＴＭｂ同士の直接通信を行い、転送されるパケットから通信ログを収集し記憶することで、特定のリダイレクションについての課金処理を行い、またリダイレクション先のネットワークにおけるルーティングを解決するためにアドレス変換処理を行う技術が知られている（例えば特許文献３参照）。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００８−２５２２４６号公報
【特許文献２】特開２００９−１２４３６７号公報
【特許文献３】特開２００４−３２４５３号公報
【非特許文献】
【００１７】
【非特許文献１】ＩＥＴＦ“Ｃｏｍｐｏｕｎｄ  ＴＣＰ：Ａ  Ｎｅｗ  ＴＣＰ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  ｆｏｒ  Ｈｉｇｈ−Ｓｐｅｅｄ  ａｎｄ  Ｌｏｎｇ  Ｄｉｓｔａｎｃｅ  Ｎｅｔｗｏｒｋｓ“Ｈ．Ｓｈｉｍｏｎｉｓｈｉ  ｅｔ  ａｌ：“ＴＣＰ−Ａｄａｐｔｉｖｅ  Ｒｅｎｏ  ｆｏｒ  Ｉｍｐｒｏｖｉｎｇ  Ｅｆｆｉｃｉｅｎｃｙ−Ｆｒｉｅｎｄｌｉｎｅｓｓ  Ｔｒａｄｅｏｆｆｓ  ｏｆ  ＴＣＰ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ａｌｇｏｒｉｔｈｍ”，ＰＦＬＤｎｅｔ  ２００６，Ｆｅｂ．２００６．
【非特許文献２】ＩＥＴＦ  ｄｒａｆｔ−ｓｒｉｄｈａｒａｎ−ｔｃｐｍ−ｃｔｃｐ−０２．ｔｘｔ  Ｃｏｍｐｏｕｎｄ  ＴＣＰ：Ａ  Ｎｅｗ  ＴＣＰ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  ｆｏｒ  Ｈｉｇｈ−Ｓｐｅｅｄ  ａｎｄ  Ｌｏｎｇ  Ｄｉｓｔａｎｃｅ  Ｎｅｔｗｏｒｋｓ
【非特許文献３】Ｈ．Ｓｈｉｍｏｎｉｓｈｉ  ｅｔ  ａｌ：“ＴＣＰ−Ａｄａｐｔｉｖｅ  Ｒｅｎｏ  ｆｏｒ  Ｉｍｐｒｏｖｉｎｇ  Ｅｆｆｉｃｉｅｎｃｙ−Ｆｒｉｅｎｄｌｉｎｅｓｓ  Ｔｒａｄｅｏｆｆｓ  ｏｆ  ＴＣＰ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ａｌｇｏｒｉｔｈｍ”，ＰＦＬＤｎｅｔ  ２００６，Ｆｅｂ．２００６．
【発明の概要】
【発明が解決しようとする課題】
【００１８】
ハイブリット方式の一例としてＣｏｍｐｏｕｎｄ  ＴＣＰ（ＣＴＣＰ）がある。登場した経緯としてロスベース方式のＴＣＰプロトコルＲｅｎｏと、遅延ベース方式のＴＣＰプロトコルＶｅｇａｓの競合問題がある。ＶｅｇａｓはＲｅｎｏ、Ｎｅｗ  Ｒｅｎｏなどと競合することにより、適切なウィンドウサイズの調整が行うことができず、ＲＴＴの増加とウィンドウサイズの低下によるスループットの低下が指摘されている。
【００１９】
このように、ＶｅｇａｓはＲｅｎｏ、Ｎｅｗ  Ｒｅｎｏに帯域を奪われてしまうため、公平な制御が行われないといった欠点を有しているが、ＣＴＣＰでは、この欠点を補うためにネットワークの環境を判別し、ＴＣＰプロトコルＶｅｇａｓとＮｅｗ  Ｒｅｎｏの輻輳制御を切り替える機能を有しているため、競合を避けることが可能になっている。
【００２０】
ハイブリッド方式は、計測ＲＴＴの値に応じて、ＴＣＰプロトコルＲｅｎｏと高速モード（Ｈｉｇｈ−Ｓｐｅｅｄ  ＴＣＰ）を切り替える。ＣＴＣＰ（非特許文献２参照）は、ロスモードと遅延モードの二種類の輻輳ウィンドウを用意し、ロスモードのウィンドウが遅延モードのウィンドウを追い越した時点で、二つのモードを切り替える。ＡＲＥＮＯ（非特許文献３参照）は、ＴＣＰプロトコルＷｅｓｔｗｏｏｄのメカニズムを拡張し、ＲＴＴ値の関数として連続的な輻輳ウィンドウ制御を行う。ＣＴＣＰとＡＲＥＮＯは、共に空き帯域があるときは積極的に輻輳ウィンドウを増大し、ＲＴＴが増加するとＴＣＰ−Ｒｅｎｏとして振る舞うことで、スループット性能と親和性の両方を実現している。
【００２１】
ところで、近年クラウドサービスが普及しつつある。クラウドサービスは、図１に示すように、コンピューティングリソースである複数の仮想マシン（ＶＭ）１−１〜１−ｎをデータセンタ２の中に持ち、ユーザはこれらの仮想マシン１−１〜１−ｎをインターネット３経由で利用するコンピューティング形態を指す。
【００２２】
こうした利用形態では、ＴＣＰ通信におけるエンド・エンドでの通信環境が通信の途中に大きく変化する可能性がある。一つの要因として、インターネット３経由でのクラウドサービスの利用として、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ），ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）といった無線アクセス網を介した利用形態も考えられているためである。
【００２３】
近年のデジタル無線通信では、ＯＦＤＭ（Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕ１ｔｉｐ１ｅｘｉｎｇ：直交周波数分割多重）といった適応変調方式が用いられ、電波の状況に応じて変調方法、コーディング方法を変更する。これらはＭＣＳ（Ｍｏｄｕｌａｔｉｏｎ  Ｃｏｄｉｎｇ  Ｓｃｈｅｍｅ）と呼ばれ、基地局と端末間の電波の状況に応じて図２に示すような様々なＭＣＳ値を取り、選択したＭＣＳにより物理層の理論上のデータ転送レートが時々刻々変化する。図３（Ａ）に移動端末５と無線基地局６とのデジタル無線通信の開始した状態を示し、図３（Ｂ）に移動端末５と無線基地局６との間の通信品質の低下した状態を示す。図３（Ｂ）の状態ではデータ転送レートが低下する。また、今まで移動していた端末が屋内に入ることにより固定端末として利用されたり、より速度の速いＷｉＦｉ（ｗｉｒｅｌｅｓｓ  ｆｉｄｅｌｉｔｙ）に切り替わってより安定した通信ができるように変化する可能性もある。
【００２４】
他の要因として、クラウドサービスを提供するデータセンタ３は、複数の仮想マシン（ＶＭ）を物理マシン上で動かし、顧客に仮想マシンのホスティングサービスを提供しているが、これらの仮想マシンは、ある物理マシンから全く異なる地域にある物理マシンへ移動する可能性があることである。クラウドサービスでは保守を目的に仮想マシンをある物理マシンから他の物理マシンへ移動するライブマイグレーション（Ｌｉｖｅ  Ｍｉｇｒａｔｉｏｎ：ＬＭ）と呼ばれる機能が使われる。この場合、同一データセンタ内の物理マシン間でライブマイグレーションを行う場合もあるが、災害に対処するため地理的に分離したデータセンタに複数の拠点を持ち、異なる拠点間でライブマイグレーションを行う場合もある。図３（Ｃ）には移動端末５とのデータ転送を行う仮想マシンが７ａから７ｂにライブマイグレーションを行ったためにＲＴＴが変化した状態を示している。
【００２５】
こうした背景から、無線データリンク層の特性は時々刻々と変化すると共に、端末が無線リンク上で移動しないとしてもデータセンタの物理マシンが移動する可能性があるため通信途中にエンド・エンドでのＲＴＴ（ラウンドトリップ時間）が大きく変化する可能性がある。このような大きな環境の変化は、ＴＣＰプロトコルのパラメタチューニングの範囲では対処できず、異なるバージョンのＴＣＰプロトコルを用いて通信した方がより高いスループットを得られる場合が多い。
【００２６】
ところが、こうした課題に対し、オートチューニングの仕組みは回線の状況により、ある特定のＴＣＰ輻輳制御方式におけるパラメタやバッファサイズを動的に更新するが、ＴＣＰプロトコル自体は変更できず、最初は最適なＴＣＰプロトコルであっても、データリンク層の特性やサーバの位置が変化し、例えば無線環境などロスベースでもレートベースでも対処できない環境に変化すると、最初に決めた最適パラメタはもはや最適でなくスループットが低下してしまうという問題がある。
【００２７】
また、ハイブリッド方式のＴＣＰプロトコルは、送信側のＴＣＰにおいてロスベース方式と遅延ベース方式を切り替えることが可能である。これは、送信側のウィンドウ制御アルゴリズムを動的に変更するだけであり、得られる効果も限定的であるという問題がある。ウィンドウ制御アルゴリズム以外の仕組みを、送信側（データを送信する側）、受信側（ＡＣＫを応答する側）両方で対処が必要である。ウィンドウ制御アルゴリズム以外の仕組みとしては、無線環境に適応するには受信側から送る制御セグメントに再送データを少なくするＳＡＣＫ（ｓｅｌｅｃｔａｂｌｅ  ＡＣＫ）の仕組みや、データパケットを送信途中のルータが輻輳していた場合にデータパケットに輻輳情報を付加して受信側に通知し、受信側からの応答ＡＣＫに輻輳情報であるＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）を付加して受信側に知らせる仕組みなどである。
【００２８】
開示の伝送制御方法は、環境に応じて通信スループットを向上させることを目的とする。
【課題を解決するための手段】
【００２９】
開示の一実施形態による伝送制御方法は、送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、前記送信元と送信先の通信装置で第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している前記第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぎ、前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、前記送信元と送信先の通信装置間の前記第１の輻輳制御機能で輻輳制御を行う前記伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた前記第２の輻輳制御機能を選択し、前記第２の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、前記送信元と送信先の通信装置で同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替え、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行い、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出し、前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した前記第２の輻輳制御機能を選択する。
【発明の効果】
【００３０】
本実施形態によれば、環境に応じて通信スループットを向上させることことができる。
【図面の簡単な説明】
【００３１】
【図１】クラウドサービスを説明するための図である。
【図２】ＭＣＳの一例を示す図である。
【図３】通信品質の低下を説明するための図である。
【図４】伝送制御システムの一実施形態の構成図である。
【図５】通信装置の第１実施形態の構成図である。
【図６】第１実施形態の動作シーケンスを示す図である。
【図７】ＣＰオプション種別表を示す図である。
【図８】適応プロトコルケーパビリティオプションを示す図である。
【図９】遅延時間に対する各プロトコルのスループット特性図である。
【図１０】プロトコル選択テーブルを示す図である。
【図１１】パケットエラー率に対する各プロトコルのスループット特性図である。
【図１２】プロトコルスイッチング要求を示す図である。
【図１３】Ｒｅｎｏの輻輳制御を説明するための図である。
【図１４】ＢＩＣの輻輳制御を説明するための図である。
【図１５】第１実施形態の輻輳制御を説明するための図である。
【図１６】通信装置の第２実施形態の構成図である。
【図１７】第２実施形態の動作シーケンスを示す図である。
【図１８】適応プロトコルケーパビリティオプションを示す図である。
【図１９】機能選択テーブルを示す図である。
【図２０】プロトコル選択テーブルを示す図である。
【図２１】プロトコルスイッチング要求を示す図である。
【発明を実施するための形態】
【００３２】
以下、図面に基づいて実施形態を説明する。
【００３３】
＜伝送制御システムの構成＞
図４は伝送制御システムの一実施形態の構成図を示す。図４に示すように移動端末１１がデータセンタ１２のサーバ１３とＴＣＰ通信を行うものとする。移動端末１１はＷｉＭＡＸの無線モデムを備えた無線端末であり、無線基地局１４を介してＷｉＭＡＸ無線アクセス網１５に接続し、更にアクセスネットワークゲートウェイ１６を介してインターネット１７に接続し、データセンタ１２内のサーバ１３と通信を行う。また、データセンタ１２とインターネット１７の接続点にはＷＡＮ高速化装置１８が配置されており、移動端末１１には、これに対応する仮想ＷＡＮ高速化アプライアンスが予めインストールされているものとする。
【００３４】
仮想ＷＡＮ高速化アプライアンスとは、移動端末１１のＯＳ（ホストＯＳ）上に仮想マシン環境を構築し、その上にゲストＯＳを走らせ、ゲストＯＳ上にソフトウェアとしてのＷＡＮ高速化アプライアンスの機能を実現したものである。移動端末１１上のアプリケーション（ホストＯＳ上のアプリケーション）が通信を行う場合、ゲストＯＳ上の仮想ＷＡＮ高速化アプライアンスを経由し送受信を行う。この際、仮想ＷＡＮ高速化アプライアンスはプロキシ機能により端末のＴＣＰを終端し、最適化したＴＣＰに載せ替える機能を提供する。
【００３５】
ここで、移動端末１１は、サーバ１３からＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）によりファイルをダウンロードしているものとする。ＷＡＮ高速化装置１８は、サーバと移動端末１１のＴＣＰセッションを代理（プロキシ）することで一旦終端し、移動端末１１上の仮想ＷＡＮ高速化アプライアンスとの間で最適化されたＴＣＰプロトコルを用いて通信する。移動端末１１上の仮想ＷＡＮ高速化アプライアンスは最適化されたＴＣＰプロトコルを再度代理することで終端し、標準のＴＣＰを用いて端末上のアプリケーションにデータを送信する。この際、プロキシとデータを受け取るアプリケーションは共に同じ端末上にあることになる。また、ＷＡＮ高速化装置１８はＴＣＰ内に含まれるデータの圧縮や、キャッシュすることで同一データを２度以上送らないようにするデデュープ（ｄｅｄｕｐｌｉｃａｔｉｏｎ：重複除外）と呼ばれる機能を提供する。
【００３６】
＜第１実施形態＞
図５に通信装置の第１実施形態の構成図を示す。図５に示す通信装置２０は、ＷＡＮ高速化装置１８、又は移動端末１１上の仮想ＷＡＮ高速化アプライアンスを指す。通信装置２０は、通信インタフェース部２１、プロトコル部２２−１〜２２−ｎ、切替制御部２３、通信品質監視部２４、最適プロトコル選択部２５、最適パラメタ決定部２６、データバッファ部２７、アプリ部２８を含む。
【００３７】
通信インタフェース部２１は、接続しているネットワークからパケットを受信し、又はネットワークにパケットを送信する処理部である。
【００３８】
プロトコル部２２−１〜２２−ｎは、輻輳制御の異なる輻輳制御機能（ルールセット）を適用した輻輳制御処理を実施する処理部である。例えばプロトコル部２２−１はＴＣＰの一変種であるＲｅｎｏの処理を行い、プロトコル部２２−２はＴＣＰの別の一変種であるＢＩＣの処理を行う。
【００３９】
切替制御部２３は、最適プロトコル選択部２５がプロトコルの切り替えが必要であると判断した際に、対向装置と制御メッセージを交換し、同期を取りながらプロトコルを切り替える処理部である。切替制御部２３内のパラメタステート引継部２３ａはプロトコル部２２−１〜２２−ｎ間の状態を含むパラメタの引き継ぎを行う。
【００４０】
通信品質監視部２４は、データリンク層やプロトコル部２２の通信品質を監視する処理部である。
【００４１】
最適プロトコル選択部２５は、通信品質監視部２４の収集したデータリンク層情報やプロトコル部２２が対向装置と通信を行った結果取得した品質情報を基に、最適なトランスポート層プロトコルを選択する処理部である。
【００４２】
最適パラメタ決定部２６は、最適プロトコル選択部２５が選択した次に切り替え予定のプロトコルに対し、以前のプロトコル処理部のパラメタ、状態を引き継ぎ切替後のパラメタの最適初期値を決定する処理部である。
【００４３】
データバッファ部２７は、プロトコル部２２−１〜２２−ｎが相手通信装置にデータを転送する際にアプリケーションが送信依頼をしたデータを一時的に蓄積するメモリである。また、プロトコル部２２−１〜２２−ｎが相手通信装置からデータを受信した際にアプリケーションが受信し終わるまでデータを一時的に蓄積するメモリでもある。
【００４４】
アプリ部２８は、トランスポート層プロトコルを用いて通信を行うアプリケーションである。通信装置がＷＡＮ高速化装置１８或いは仮想ＷＡＮ高速化アプライアンスの場合は、アプリ部２８はプロキシを行うプロセスとなる。
【００４５】
＜動作＞
ＷＡＮ高速化装置１８と移動端末１１上の仮想ＷＡＮ高速化アプライアンス間の第１実施形態の動作について、図６に示す動作シーケンスを用いて説明する。なお、以下では端末上の仮想ＷＡＮ高速化アプライアンスをＴＷＯ（端末側ＷＡＮ−Ｏｐｔｉｍｉｚａｅｒ）、サーバ側のＷＡＮ高速化アプライアンスをＳＷＯ（サーバ側ＷＡＮ−Ｏｐｔｉｍｉｚａｅｒ）と呼ぶことにする。
【００４６】
本実施形態では、ＦＴＰによりサーバから移動端末へファイルを転送する場合を想定している。ＦＴＰは制御用のＴＣＰセッション（ポート番号２１）とデータ転送用のＴＣＰセッション（ポート番号２０）を用いてファイル転送を行う。その手順は以下のようになる。
（１）クライアントであるＴＷＯからＦＴＰサーバであるＳＷＯの２１番ポートに対してセッション要求を送信し、セッションを確立し、ログインする。
（２）クライアントからファイル転送要求を送信し、サーバから許可が与えられる
（３）クライアントは、自分が使っているポート番号をサーバに送信し、制御用ポートでの通信が終了する。
（４）サーバは、クライアントから得たポート番号にデータ送信ポート２０番を使ってセッションを確立する。
（５）サーバは要求されたファイルを転送し、セッションを閉じる。
【００４７】
一般にデータ転送用のセッションをサーバと端末のどちらから張るかによってモードが２種類ある。１つはサーバから端末へ対してデータ転送用セッションを作成するアクティブモードであり、もう１つは端末からサーバに対してデータ転送用セッションを作成するパッシブモードである。以下の例では、アクティブモードのデータ転送用セッションにおける動作を説明する。
【００４８】
まず、ＴＷＯ、ＳＷＯはそれぞれ様々なＴＣＰプロトコルのヴァリアント（変種）すなわちプロトコル部２２−１〜２２−ｎを内部的に利用可能な状態にしておく（ステップＳ１、Ｓ５２）。
【００４９】
ＴＷＯは、ＦＴＰ制御セッションにおいてサーバから端末へアクティブモードでデータ転送を指示すると、データ転送用セッションを受け付けるためポートを開きサーバからの接続を待ち受ける。ポートを開くためにＳｏｃｋｅｔ，Ｂｉｎｄ，Ｌｉｓｔｅｎのシステムコールを実行する（ステップＳ２）。
【００５０】
ＳＷＯは、ＦＴＰ制御セッションにおいてアクティブモードでのデータ転送指示を受信すると、ポートを開きデータ転送用セッションを開始する。セッションを開始するためにＳｏｃｋｅｔ，Ｂｉｎｄのシステムコールを実行しポートを開いた後、Ｃｏｎｎｅｃｔシステムコールを実行する（ステップＳ５３）。ＳＷＯは、Ｃｏｎｎｅｃｔシステムコールを実行することによりＳｙｎパケットを端末へ送信する。
【００５１】
ＴＷＯは、サーバからの接続要求（Ｓｙｎ）があると、これを受け入れる（Ａｃｃｅｐｔ、ステップＳ３）。受け入れると、ＴＷＯはＳＷＯに応答（ＡＣＫ）を送り、ＳＷＯはこれに対しＳｙｎ／ＡＣＫを送信し（ステップＳ５４）、ＴＣＰのスリーウェイハンドシェイク（３ｗａｙｈａｎｄｓｈａｋｅ）が完了しセッションが生成される。
【００５２】
ＳＷＯとＴＷＯは、最初のＳｙｎと次のＡＣＫを送信する際にＴＣＰオプションフィールドを用いて両者がどのようなＴＣＰプロトコルを利用可能であるかを示すケーパビリティを交換する。この際、セッションを開始する側であるＳＷＯはオプション種別として、図７に示すＴＣＰオプション種別表から、適応プロトコルケーパビリティオプションを表す「１６」を指定する。図８に適応プロトコルケーパビリティオプションを示す。適応プロトコルケーパビリティオプションは、１バイトのオプション種別「１６」、１バイトのオプション長、２バイトのケーパビリティビットを有している。更に、ＳＷＯにて使用可能なプロトコルを示すケーパビリティビット内のビットに１をセットする。複数のプロトコルを利用可能な場合は複数のビットをセットする。
【００５３】
ＴＣＰオプション＝１６を含むＳｙｎメッセージを受信したＴＷＯはＡＣＫメッセージにＴＣＰオプション＝１６を含め、そのケーパビリティとしてＳＷＯが指定したＴＣＰプロトコルのケーパビリティの内、ＴＷＯが利用できるものだけにビットをセットして送信する。なお、本実施形態ではケーパビリティの交換にＴＣＰのオプションフィールドを用いたが、データ領域を含む他のフィールドを利用してもよいし、他のメッセージを使用してケーパビリティを交換してもよい。
【００５４】
ＳＷＯは、アプリケーションがｗｒｉｔｅシステムコールを行うことでデータ送信を開始する。Ｗｒｉｔｅシステムコールによりソケットバッファに書き込まれたデータはＴＣＰプロトコルによりセグメント単位でＴＷＯへ送信される（ステップＳ５６）。この際、ＳＷＯ及びＴＷＯはデフォルトのＴＣＰプロトコルとしてＲｅｎｏを用いているものとする。なお、デフォルトＴＣＰオプションを新たに定義して、どのＴＣＰプロトコルから開始するかを相互に取り決めるようにしても良い。
【００５５】
ＳＷＯは、デフォルトのＴＣＰプロトコル（＝Ｒｅｎｏ）を用いてデータ転送を開始する（ステップＳ５６）。この際、ＳＷＯ，ＴＷＯはＲｅｎｏのプロトコル部２２−１を用いて通信を行う。ＴＷＯはＴＣＰセグメントを受信すると、データをＴＷＯのソケットバッファに蓄積し、アプリケーションに対しデータの到着を通知する。アプリケーションはｒｅａｄシステムコールを用いてソケットバッファからデータを読み込む（ステップＳ４）。
ここで、ＴＷＯの通信品質監視部２４は、データリンク層が割り当てられている帯域の変化、ビットエラーレート、パケットエラーレートなどの廃棄率を監視し、また各プロトコル部で計測できるラウンドトリップタイムを監視する。具体的には帯域の変化を次のように定義してもよい。
【００５６】
平均帯域変動率＝Σｌｎ｛Ｘ（ｔ＋１）／Ｘ（ｔ）｝
ＴＷＯの通信品質監視部２４は、データリンク層品質やラウンドトリップタイムの通信品質の変化が閾値を超えると最適プロトコル選択部２５に通知する。例えば通信品質監視部２４は遅延（ラウンドトリップタイム）、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき最適プロトコル選択部２５に通信品質の変化を通知してもよい。また、通信品質監視部２４はＭＣＳによりデータリンク層に割り当てられている帯域を基準として、トランスポート層を経たスループット（データ転送速度）が閾値（例えばデータリンク層の帯域の１／２）未満となったとき最適プロトコル選択部２５に通信品質の変化を通知するようにしてもよい。
【００５７】
最適プロトコル選択部２５は、上記の通知を受け、変化の状況に適したＴＣＰプロトコルに切り替えることを決定する。例えば、最適プロトコル選択部２５は、図９に示すようなプロトコル選択テーブルを基に使用するＴＣＰプロトコルを選択してもよい。図９では平均廃棄率を３段階に分け、平均廃棄率の各段階において３段階の平均帯域変動率と３段階の平均遅延時間に応じてＴＣＰプロトコルＲｅｎｏ，Ｗｅｓｔｗｏｏｄ，ＢＩＣ，ｈｔｃｐ，ｓｃａｌａｂｌｅなどを設定している。
【００５８】
図９のプロトコル選択テーブルは、図１０に示す遅延時間に対する各プロトコルのスループット特性、図１１に示すパケットエラー率（廃棄率）に対する各プロトコルのスループット特性などの各種プロトコルの特性評価に基づき静的に作成してもよい。また、移動端末やサーバが通信を行う毎に動的にスループットを測定し、ダイナミックにプロトコル選択テーブルを構成するようにしてもよい。
【００５９】
また、図１０や図１１ではスループットを評価の軸にしているが、複数のＴＣＰセッションが存在する環境下でのセッション間のフェアネスや複数セッション全体としてのトータルスループットなど、単独セッションのスループット以外の指標を軸にしたプロトコル選択テーブルを構成してもよい。フェアネスとは、複数のＴＣＰセッションが存在するときにネットワークの利用可能な帯域を他のセッションと平等にシェアすることをいい、どのプロトコルを用いるかによりフェアネスが異なってくる。
【００６０】
ここで、移動端末１１が移動し、ＴＷＯがデータリンク層の品質低下を検出すると（ステップＳ５）、ＴＷＯは図１２に示すプロトコルスイッチング要求をＴＣＰオプションに指定して送信する（図６のステップＳ６）。本メッセージはＡＣＫやデータと共に送信するようにしてもよい。図１２にプロトコルスイッチング要求を示す。プロトコルスイッチング要求は、１バイトのオプション種別「１７」、１バイトのオプション長、２バイトの切替機能ビット、４バイトの切替シーケンス番号を有している。
【００６１】
ＳＷＯは、プロトコルスイッチング要求を受信すると、プロトコルスイッチングＡＣＫをＴＣＰオプションフィールドに指定して送信する。プロトコルスイッチングＡＣＫはプロトコルスイッチング要求と同じ内容を含むが、オプション種別＝１８として送信する（ステップＳ５７）。なお、本実施形態ではプロトコルスイッチング要求、プロトコルスイッチングＡＣＫとしてＴＣＰのオプションフィールドを用いたがデータ領域を含む他のフィールドを利用してもよいし、他のメッセージを使用してもよい。
【００６２】
ＳＷＯ、ＴＷＯはプロトコルスイッチング要求に含まれる切替シーケンス番号においてプロトコルの切り替えを実施する。ＳＷＯは、ネゴシエートした切替シーケンス番号のメッセージに対するＡＣＫをＴＷＯから受信し終わったところで、プロトコルスイッチング要求の切替機能フィールドで指定された新しいプロトコルに切り替える。この際に、ＴＷＯは例えば受信ウィンドウサイズ＝０を含むＡＣＫを送信することで、ＳＷＯのデータ送信を一時停止させたのちプロトコルの切り替えを行い、プロトコルの切り替え後に通信を再開して、プロトコルの切り替え時におけるデータ通信で不具合が発生することを回避することも可能である。
【００６３】
プロトコルの切り替えは、現行のプロトコル部に対しＤｅａｃｔｉｖａｔｅ信号を送り（ステップＳ５８，Ｓ７）、新しいプロトコル部に対しＡｃｔｉｖａｔｅ信号を送る（ステップＳ５９，Ｓ８）。この際、以前のプロトコルが保持している状態を含むパラメタを新しいプロトコルに引き継ぐ。特に、送信側のＴＣＰでは、状態として例えばスロースタートや輻輳回避モードといった複数の状態を持つ。各ＴＣＰプロトコルはこの状態により輻輳制御方法が異なるため、この状態を含む輻輳ウィンドウサイズｃｗｎｄ、閾値ｓｓｔｈｒｅｓｈ、ウィンドウサイズＷｍａｘなどの動作状態を表す複数のパラメタを引き継ぐことは、新しいＴＣＰプロトコルが適切な状態から開始するために重要である。
【００６４】
また、パラメタとして、現在どれだけのウィンドウサイズでデータを送信しているかを示す輻輳ウィンドウサイズｃｗｎｄ、及び輻輳を検出したときに輻輳ウィンドウサイズｃｗｎｄをどこまで低下させるかを決めるために使うパラメタの一つである閾値ｓｓｔｈｒｅｓｈといったパラメタを持つ。また、輻輳を検出したときのウィンドウサイズＷｍａｘ，ラウンドトリップ時間の最小値ＲＴＴｍｉｎ及び最大値ＲＴＴｍａｘ，遅延帯域積などをパラメタとして引き継ぐ。帯域遅延積は、ネットワークの帯域幅とラウンドトリップ時間の積で表される量であり、ＴＣＰのおおよその伝送速度の上限値を決める値である。新しいＴＣＰプロトコルに切り替えた際、スロースタートから開始するとスループットをロスしてしまうので、新しいプロトコルは、これらのパラメタを使用して輻輳ウィンドウサイズｃｗｎｄを計算し、スロースタートから開始しないようにする。
【００６５】
例えば、ＴＣＰプロトコルＲｅｎｏでは図１３に示す輻輳制御を行う。すなわち、スロースタートの期間において輻輳ウィンドウサイズを初期値から指数関数的に増加させ、輻輳を検出したときの輻輳ウィンドウサイズｃｗｎｄをウィンドウサイズＷｍａｘに設定し、輻輳ウィンドウサイズｃｗｎｄの１／２を閾値ｓｓｔｈｒｅｓｈに設定し、輻輳ウィンドウサイズｃｗｎｄを閾値ｓｓｔｈｒｅｓｈにする。その後、輻輳ウィンドウサイズｃｗｎｄを輻輳検出までリニアに増加させる輻輳回避を行う。
【００６６】
一方、ＴＣＰプロトコルＢＩＣは図１４に示す輻輳制御を行う。すなわち、スロースタートの期間において輻輳ウィンドウサイズを初期値から指数関数的に増加させ、輻輳を検出したときの輻輳ウィンドウサイズｃｗｎｄをウィンドウサイズＷｍａｘに設定し、輻輳ウィンドウサイズｃｗｎｄに所定の係数βを乗算して新たな輻輳ウィンドウサイズｃｗｎｄとする。その後、輻輳ウィンドウサイズｃｗｎｄをリニアに増加させ（Ａｄｄｉｔｉｖｅ  Ｉｎｃｒｅａｓｅ）、更に輻輳ウィンドウサイズｃｗｎｄをウィンドウサイズＷｍａｘに漸近させる（Ｂｉｎａｒｙ  Ｓｅａｒｃｈ）。そして、輻輳が検出されなければ輻輳ウィンドウサイズｃｗｎｄをリニアに増加させる輻輳回避を行う。
【００６７】
本実施形態では、例えばＴＣＰプロトコルＲｅｎｏからＴＣＰプロトコルＢＩＣに切り替える場合、図１５に示すように、切替シーケンス番号より前はＴＣＰＲｅｎｏの輻輳制御を行い、切替シーケンス番号後はＴＣＰプロトコルＢＩＣによる制御に切り替わる。切り替えの際にＢＩＣはＲｅｎｏの最終状態、つまり輻輳回避モード、輻輳ウィンドウサイズｃｗｎｄ、ウィンドウサイズＷｍａｘ、閾値ｓｓｔｈｒｅｓｈなどのパラメタを引き継ぎ、スロースタートから開始することなく、輻輳回避を行う。上記の状態を含むパラメタの引き継ぎは図５、図６に示すパラメタステート引継部２３ａにより行われる。
【００６８】
プロトコルが切り替わると、以降、送信側のソケットバッファに残っている未送信のデータ及び以降アプリケーションから送信バッファに書き込まれるデータは新しいプロトコルを用いて送信及び受信される（ステップＳ６０、Ｓ９）。
【００６９】
ＳＷＯのアプリ部は全てのデータを送信し終わるとソケットをｃｌｏｓｅしセッションを切断する（ステップＳ６１、Ｓ１０）。
【００７０】
以上、本実施形態では、ＴＣＰプロトコルＲｅｎｏからＴＣＰプロトコルＢＩＣに切り替える場合について説明したが、ＴＣＰの変種はこれに限らず、Ｗｉｒｅｌｅｓｓ  Ｐｒｏｆｉｌｅｄ  ＴＣＰなど他の変種との切り替えに適用することもできる。また、ＴＣＰプロトコルＲｅｎｏとＴＣＰプロトコルＢＩＣはそれぞれ独立したモジュールのように説明したが、これらは必ずしも分離した構成の実装である必要はなく、モノリシックなカーネルの機能として実装され、オプションで切り替えるような構成であってもよい。
【００７１】
＜第２実施形態＞
第１実施形態では環境変化に応じてアダプティブに送信側、受信側のプロトコルを変更する場合を説明したが、プロトコルを変更するだけに限らず、圧縮やキャッシュといった機能をアダプティブに変更するようにしてもよい。以下の第２実施形態ではＦＴＰではなくＷＥＢアプリケーションを想定している。
【００７２】
図１６に通信装置の第２実施形態の構成図を示す。図１６において図５と同一部分には同一符号を付す。図１６に示す通信装置３０は、ＷＡＮ高速化装置１８、又は移動端末１１上の仮想ＷＡＮ高速化アプライアンスを指す。通信装置３０は、通信インタフェース部２１、プロトコル部２２−１〜２２−ｎ、切替制御部２３、通信品質監視部２４、最適プロトコル選択部２５、最適パラメタ決定部２６、データバッファ部２７、アプリ部２８、アプリケーション監視部３１、キャッシュ／デデュープ部３２、データ圧縮伸張部３３を含む。
【００７３】
通信インタフェース部２１は、接続しているネットワークからパケットを受信し、又はネットワークにパケットを送信する処理部である。
【００７４】
プロトコル部２２−１〜２２−ｎは、輻輳制御の異なるルールセットを適用した輻輳制御処理を実施する処理部である。例えばプロトコル部２２−１はＴＣＰの一変種であるＲｅｎｏの処理を行い、プロトコル部２２−１はＴＣＰの別の一変種であるＢＩＣの処理を行う。
【００７５】
切替制御部２３は、最適プロトコル選択部２５がプロトコルの切り替えが必要であると判断した際に、対向装置と制御メッセージを交換し、同期を取りながらプロトコルを切り替える処理部である。切替制御部２３内のパラメタステート引継部２３ａはプロトコル部２２−１〜２２−ｎ間の状態を含むパラメタの引き継ぎを行う。
【００７６】
通信品質監視部２４は、データリンク層やプロトコル部２２の通信品質を監視する処理部である。
【００７７】
最適プロトコル選択部２５は、通信品質監視部２４の収集したデータリンク層情報やプロトコル部２２が対向装置と通信を行った結果取得した品質情報を基に、最適なトランスポート層プロトコルを選択する処理部である。
【００７８】
最適パラメタ決定部２６は、最適プロトコル選択部２５が選択した次に切り替え予定のプロトコルに対し、以前のプロトコル処理部の状態を含むパラメタを引き継ぎ切替後のパラメタの最適初期値を決定する処理部である。
【００７９】
データバッファ部２７は、プロトコル部２２−１〜２２−ｎが相手通信装置にデータを転送する際にアプリケーションが送信依頼をしたデータを一時的に蓄積するメモリである。また、プロトコル部２２−１〜２２−ｎが相手通信装置からデータを受信した際にアプリケーションが受信し終わるまでデータを一時的に蓄積するメモリでもある。
【００８０】
アプリ部２８は、トランスポート層プロトコルを用いて通信を行うアプリケーションである。通信装置がＷＡＮ高速化装置１８或いは仮想ＷＡＮ高速化アプライアンスの場合は、アプリ部２８はプロキシを行うプロセスとなる。
【００８１】
アプリケーション監視部３１は、アプリ部２８が送信するデータストリームを監視しアプリケーションの特性を特定する処理部であり、データの中身が既に圧縮されているものかどうか、トランザクションのため散発的なデータ転送を行うタイプのセッションか、バルク転送的なデータ転送を行うタイプのセッションかのデータ転送種別を検出する処理部である。
【００８２】
キャッシュ／デデュープ部３２は、アプリ部２８からデータバッファ部２７に向け書き込まれたデータをキャッシュし、キャッシュデータに対しインデックスを付与する。また、対向装置よりインデックスを渡された場合は、インデックスに対応するキャッシュデータを参照し元のデータを復元する処理部である。
【００８３】
データ圧縮伸張部３３は、アプリ部２８より書き込まれたデータを圧縮し、また、対向装置より圧縮されたデータを受信した場合は伸張する処理部である。
【００８４】
＜動作＞
ＷＡＮ高速化装置１８と移動端末１１上の仮想ＷＡＮ高速化アプライアンス間の第２実施形態の動作について、図１７に示す動作シーケンスを用いて説明する。ＴＷＯ、ＳＷＯが第１のプロトコルで通信するまでの動作（ステップＳ５２〜Ｓ５６、ステップＳ２〜Ｓ４）、及び通信終了の動作（ステップＳ６１，Ｓ１０）は第１実施形態と同じであるので、説明を省略する。
【００８５】
ただし、スリーウェイハンドシェイで行われる適応プロトコルケーパビリティオプションでは、図１８に示す適応プロトコルケーパビリティオプションを用いる。図１８に適応プロトコルケーパビリティオプションを示す。適応プロトコルケーパビリティオプションは、１バイトのオプション種別「１６」、１バイトのオプション長、２バイトのケーパビリティビットを有している。図１８では、ケーパビリティビットに、利用可能なプロトコルに加え、ビット＃２のデデュープ（Ｄｅｄｕｐ）、ビット＃３のＣｏｍｐｒｅｓｓｉｏｎなどのケーパビリティがセットされる。
【００８６】
なお、ステップＳ５２〜Ｓ５６では、トランザクションのため散発的な通信を行っているものとする。
【００８７】
ここで、ＳＷＯのアプリ部２８がステップＳ２５７で同一セッションではあるが、データの送信パータンを変更しバルク転送的に送信したと仮定する。
【００８８】
ＳＷＯのアプリケーション監視部３１はこのデータ書き込みを監視しパータンが変化したことを検出すると、最適プロトコル選択部２５に対し、最適なプロトコル、及び機能の選択を要求する。
【００８９】
最適プロトコル選択部２５は、アプリケーション監視部３１が検出したトラフィックの特性、ネットワークの通信品質と図１９に示す機能選択テーブル、及び図２０に示すプロトコル選択テーブルを利用して特性に適合した最適な機能及びプロトコルを選択する。図１９では、圧縮なし（つまり圧縮可）、かつバルク転送ではキャッシュ／デデュープ部３２及びデータ圧縮伸張部３３の機能を選択し、圧縮あり（つまり圧縮不可）、かつトランザクションの散発的転送ではキャッシュ／デデュープ部３２及びデータ圧縮伸張部３３の機能を使わないことを示している。また、図２０では平均廃棄率を３段階に分け、平均廃棄率の各段階において３段階の平均帯域変動率とバルク転送又はトランザクションの散発的転送で３段階の平均遅延時間に応じてＴＣＰプロトコルＷｅｓｔｗｏｏｄ，ＢＩＣ，ＣＵＢＩＣ，ｈｔｃｐ，ｓｃａｌａｂｌｅなどを設定している。
【００９０】
例えば、当初トランザクションのトラフィックが非圧縮の状態で流れており、平均廃棄率＝小、平均帯域変動率＝小、平均遅延＝中であり、機能として圧縮機能、ＴＣＰプロトコルとしてＢＩＣが選択されていたとする。この状態で、トラフィックの特性がバルク転送に変化した場合、最適プロトコル選択部２５は、機能として圧縮とデデュープ、ＴＣＰプロトコルとしてＷｅｓｔｗｏｏｄを選択する。
【００９１】
ＳＷＯは、最適プロトコル及び機能を選択すると、図２１に示すようなプロトコルスイッチング要求をＴＣＰオプションに指定してＴＷＯに送信する。図２１にプロトコルスイッチング要求を示す。プロトコルスイッチング要求は、１バイトのオプション種別「１７」、１バイトのオプション長、２バイトの切替機能ビット、４バイトの切替シーケンス番号を有している。
【００９２】
このプロトコルスイッチング要求では、切替機能としてビット＃９のＷｅｓｔｗｏｏｄ、ビット＃２のデデュープ（Ｄｅｄｕｐ）、ビット＃３のＣｏｍｐｒｅｓｓｉｏｎを選択したことを示している。これに対し、ＴＷＯはプロトコルスイッチングＡＣＫで応答する（ステップＳ２５８、Ｓ２６）。
【００９３】
ＳＷＯ、ＴＷＯにおけるプロトコル切替の手順（ステップＳ２５９、Ｓ２６０、Ｓ２７、Ｓ２８）は、第１実施形態におけるプロトコル切り替えの手順（ステップＳ５８、Ｓ５９、Ｓ７、Ｓ８）と同じである。更に、ＳＷＯ，ＴＷＯにおける最適プロトコル選択部２５は、データ圧縮伸張部３３、キャッシュ／デデュープ部３２を活性化する（ステップＳ２６１，Ｓ２９）。
【００９４】
以降、ＳＷＯのアプリ部２８がデータを書き込むと（ステップＳ２６２）、ＳＷＯのデータ圧縮伸張部３３、キャッシュ／デデュープ部３２は、データを圧縮すると共に、キャッシュを行った後、変更後のプロトコルを用いてＴＷＯにデータを送信する（ステップＳ２６３）。
【００９５】
ＴＷＯでは、圧縮されたデータを受信するとこれを伸張する。また、キャッシュされたデータのインデックスを受信すると、このインデックスに対応するキャッシュデータを参照し元のデータを復元する（ステップＳ３０，Ｓ３１）。
【００９６】
上記実施形態ではＷＡＮ高速化装置１８をベースにして説明したが、移動端末やサーバに仮想ＷＡＮ高速化アプライアンスを持たせるように構成してもよい。
【００９７】
この実施形態では、プロトコルを変更するだけに限らず、圧縮やキャッシュといった機能をアダプティブに変更することが可能となる。
（付記１）
送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、
前記送信元と送信先の通信装置で第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぐ
ことを特徴とする伝送制御方法。
（付記２）
付記１記載の伝送制御方法において、
前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、
前記送信元と送信先の通信装置間の前記第１の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた第２の輻輳制御機能を選択し、
前記第２の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、
前記送信元と送信先の通信装置で同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える
ことを特徴とする伝送制御方法。
（付記３）
付記２記載の伝送制御方法において、
前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元と送信先の通信装置間で切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替える
ことを特徴とする伝送制御方法。
（付記４）
付記２又は３記載の伝送制御方法において、
前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行う
ことを特徴とする伝送制御方法。
（付記５）
付記２乃至４のいずれか１項記載の伝送制御方法において、
トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする伝送制御方法。
（付記６）
付記２乃至４のいずれか１項記載の伝送制御方法において、
通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする伝送制御方法。
（付記７）
付記２乃至６のいずれか１項記載の伝送制御方法において、
前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第２の輻輳制御機能を選択する
ことを特徴とする伝送制御方法。
（付記８）
付記７記載の伝送制御方法において、
前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第２の輻輳制御機能を選択する
ことを特徴とする伝送制御方法。
（付記９）
付記８記載の伝送制御方法において、
前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記転送データの圧縮伸張処理とキャッシュ及びデデュープ処理を使用するか否かを選択する
ことを特徴とする伝送制御方法。
（付記１０）
送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、
前記送信元と送信先の通信装置で第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぐ引継部を
有することを特徴とする伝送制御システム。
（付記１１）
付記１０記載の伝送制御システムにおいて、
前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出する検出部と、
前記送信元と送信先の通信装置間の前記第１の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた第２の輻輳制御機能を選択する選択部と、
前記第２の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信する送受信部と、
前記送信元と送信先の通信装置で同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える切替部と、
を有することを特徴とする伝送制御システム。
（付記１２）
付記１１記載の伝送制御システムにおいて、
前記切替部は、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元と送信先の通信装置間で前記送受信部により切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替える
ことを特徴とする伝送制御システム。
（付記１３）
付記１２記載の伝送制御システムにおいて、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第２の輻輳制御機能を選択する
ことを特徴とする伝送制御システム。
（付記１４）
付記１３記載の伝送制御システムにおいて、
前記送信元と送信先の通信装置は、
転送データの圧縮伸張処理を行う圧縮伸張部と、
前記転送データのキャッシュ及びデデュープ処理を行うキャッシュ及びデデュープ部とを有し、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記圧縮伸張部と前記キャッシュ及びデデュープ部を使用するか否かを選択する
ことを特徴とする伝送制御システム。
（付記１５）
送信元と送信先それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御システムの通信装置であって、
第１の輻輳制御機能から第２の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第１の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも１つを前記第２の輻輳制御機能における動作状態を表すパラメタに引き継ぐ引継部を
有することを特徴とする通信装置。
（付記１６）
付記１５記載の通信装置において、
通信品質を検出する検出部と、
前記送信元と送信先の間の前記第１の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で前記検出部が通信品質の変化を検出したとき、変化した通信品質に応じた第２の輻輳制御機能を選択する選択部と、
前記第２の輻輳制御機能の選択を前記送信元と送信先の間で送受信する送受信部と、
前記送信元と送信先それぞれで同期したタイミングで、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える切替部と、
を有することを特徴とする通信装置。
（付記１７）
付記１６記載の通信装置において、
前記切替部は、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元と送信先の間で前記送受信部により切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替える
ことを特徴とする通信装置。
（付記１８）
付記１７記載の通信装置において、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第２の輻輳制御機能を選択する
ことを特徴とする通信装置。
（付記１９）
付記１８記載の通信装置において、
転送データの圧縮伸張処理を行う圧縮伸張部と、
前記転送データのキャッシュ及びデデュープ処理を行うキャッシュ及びデデュープ部とを有し、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記圧縮伸張部と前記キャッシュ及びデデュープ部を使用するか否かを選択する
ことを特徴とする通信装置。
（付記２０）
付記１１又は１２記載の伝送制御システムにおいて、
前記切替部は、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行う
ことを特徴とする伝送制御システム。
（付記２１）
付記１１又は１２又は２０のいずれか１項記載の伝送制御システムにおいて、
前記検出部は、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする伝送制御システム。
（付記２２）
付記１１又は１２又は２０のいずれか１項記載の伝送制御システムにおいて、
前記検出部は、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする伝送制御システム。
（付記２３）
付記１１又は１２又は２０乃至２２のいずれか１項記載の伝送制御システムにおいて、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第２の輻輳制御機能を選択する
ことを特徴とする伝送制御システム。
（付記２４）
付記１５又は１６記載の通信装置において、
前記切替部は、前記第１の輻輳制御機能から前記第２の輻輳制御機能に切り替える際に、前記送信元のデータ送信を一時停止させた上で切り替えを行う
ことを特徴とする通信装置。
（付記２５）
付記１５又は１６又は２４のいずれか１項記載の通信装置において、
前記検出部は、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする通信装置。
（付記２６）
付記１５又は１６又は２４のいずれか１項記載の通信装置において、
前記検出部は、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出する
ことを特徴とする通信装置。
（付記２７）
付記１５又は１６又は２４乃至２６のいずれか１項記載の通信装置において、
前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第２の輻輳制御機能を選択する
ことを特徴とする通信装置。
【符号の説明】
【００９８】
１１  移動端末
１２  データセンタ
１３  サーバ
１４  無線基地局
１５  ＷｉＭＡＸ無線アクセス網
１６  アクセスネットワークゲートウェイ
１７  インターネット
１８  ＷＡＮ高速化装置
２０，３０  通信装置
２１  通信インタフェース部
２２−１〜２２−ｎ  プロトコル部
２３  切替制御部
２３ａ  パラメタステート引継部
２４  通信品質監視部
２５  最適プロトコル選択部
２６  最適パラメタ決定部
２７  データバッファ部
２８  アプリ部
３１  アプリケーション監視部
３２  キャッシュ／デデュープ部
３３  データ圧縮伸張部
【図１】
0005976277.tif 000002
【図２】
0005976277.tif 000003
【図３】
0005976277.tif 000004
【図４】
0005976277.tif 000005
【図５】
0005976277.tif 000006
【図６】
0005976277.tif 000007
【図７】
0005976277.tif 000008
【図８】
0005976277.tif 000009
【図９】
0005976277.tif 000010
【図１０】
0005976277.tif 000011
【図１１】
0005976277.tif 000012
【図１２】
0005976277.tif 000013
【図１３】
0005976277.tif 000014
【図１４】
0005976277.tif 000015
【図１５】
0005976277.tif 000016
【図１６】
0005976277.tif 000017
【図１７】
0005976277.tif 000018
【図１８】
0005976277.tif 000019
【図１９】
0005976277.tif 000020
【図２０】
0005976277.tif 000021
【図２１】
0005976277.tif 000022