"送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、前記送信元と送信先の通信装置で第1の輻輳制御機能から第2の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第1の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも1つを前記第2の輻輳制御機能における動作状態を表すパラメタに引き継ぐことを特徴とする伝送制御方法。請求項1記載の伝送制御方法において、前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、前記送信元と送信先の通信装置間の前記第1の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた第2の輻輳制御機能を選択し、前記第2の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、前記送信元と送信先の通信装置で同期したタイミングで、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替えることを特徴とする伝送制御方法。請求項2記載の伝送制御方法において、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元と送信先の通信装置間で切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替えることを特徴とする伝送制御方法。請求項2又は3記載の伝送制御方法において、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行うことを特徴とする伝送制御方法。請求項2乃至4のいずれか1項記載の伝送制御方法において、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御方法。請求項2乃至4のいずれか1項記載の伝送制御方法において、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御方法。請求項2乃至6のいずれか1項記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御方法。請求項7記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御方法。請求項8記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記転送データの圧縮伸張処理とキャッシュ及びデデュープ処理を使用するか否かを選択することを特徴とする伝送制御方法。ハイブリット方式の一例としてCompoundTCPCTCPがある。登場した経緯としてロスベース方式のTCPプロトコルRenoと、遅延ベース方式のTCPプロトコルVegasの競合問題がある。VegasはReno、NewRenoなどと競合することにより、適切なウィンドウサイズの調整が行うことができず、RTTの増加とウィンドウサイズの低下によるスループットの低下が指摘されている。このように、VegasはReno、NewRenoに帯域を奪われてしまうため、公平な制御が行われないといった欠点を有しているが、CTCPでは、この欠点を補うためにネットワークの環境を判別し、TCPプロトコルVegasとNewRenoの輻輳制御を切り替える機能を有しているため、競合を避けることが可能になっている。ハイブリッド方式は、計測RTTの値に応じて、TCPプロトコルRenoと高速モードHigh-SpeedTCPを切り替える。CTCP非特許文献2参照は、ロスモードと遅延モードの二種類の輻輳ウィンドウを用意し、ロスモードのウィンドウが遅延モードのウィンドウを追い越した時点で、二つのモードを切り替える。ARENO非特許文献3参照は、TCPプロトコルWestwoodのメカニズムを拡張し、RTT値の関数として連続的な輻輳ウィンドウ制御を行う。CTCPとARENOは、共に空き帯域があるときは積極的に輻輳ウィンドウを増大し、RTTが増加するとTCP-Renoとして振る舞うことで、スループット性能と親和性の両方を実現している。ところで、近年クラウドサービスが普及しつつある。クラウドサービスは、図1に示すように、コンピューティングリソースである複数の仮想マシンVM1-1~1-nをデータセンタ2の中に持ち、ユーザはこれらの仮想マシン1-1~1-nをインターネット3経由で利用するコンピューティング形態を指す。こうした利用形態では、TCP通信におけるエンドエンドでの通信環境が通信の途中に大きく変化する可能性がある。一つの要因として、インターネット3経由でのクラウドサービスの利用として、WiMAXWorldwideInteroperabilityforMicrowaveAccess,LTELongTermEvolutionといった無線アクセス網を介した利用形態も考えられているためである。近年のデジタル無線通信では、OFDMOrthogonalFrequencyDivisionMu1tip1exing:直交周波数分割多重といった適応変調方式が用いられ、電波の状況に応じて変調方法、コーディング方法を変更する。これらはMCSModulationCodingSchemeと呼ばれ、基地局と端末間の電波の状況に応じて図2に示すような様々なMCS値を取り、選択したMCSにより物理層の理論上のデータ転送レートが時々刻々変化する。図3Aに移動端末5と無線基地局6とのデジタル無線通信の開始した状態を示し、図3Bに移動端末5と無線基地局6との間の通信品質の低下した状態を示す。図3Bの状態ではデータ転送レートが低下する。また、今まで移動していた端末が屋内に入ることにより固定端末として利用されたり、より速度の速いWiFiwirelessfidelityに切り替わってより安定した通信ができるように変化する可能性もある。他の要因として、クラウドサービスを提供するデータセンタ3は、複数の仮想マシンVMを物理マシン上で動かし、顧客に仮想マシンのホスティングサービスを提供しているが、これらの仮想マシンは、ある物理マシンから全く異なる地域にある物理マシンへ移動する可能性があることである。クラウドサービスでは保守を目的に仮想マシンをある物理マシンから他の物理マシンへ移動するライブマイグレーションLiveMigration:LMと呼ばれる機能が使われる。この場合、同一データセンタ内の物理マシン間でライブマイグレーションを行う場合もあるが、災害に対処するため地理的に分離したデータセンタに複数の拠点を持ち、異なる拠点間でライブマイグレーションを行う場合もある。図3Cには移動端末5とのデータ転送を行う仮想マシンが7aから7bにライブマイグレーションを行ったためにRTTが変化した状態を示している。こうした背景から、無線データリンク層の特性は時々刻々と変化すると共に、端末が無線リンク上で移動しないとしてもデータセンタの物理マシンが移動する可能性があるため通信途中にエンドエンドでのRTTラウンドトリップ時間が大きく変化する可能性がある。このような大きな環境の変化は、TCPプロトコルのパラメタチューニングの範囲では対処できず、異なるバージョンのTCPプロトコルを用いて通信した方がより高いスループットを得られる場合が多い。ところが、こうした課題に対し、オートチューニングの仕組みは回線の状況により、ある特定のTCP輻輳制御方式におけるパラメタやバッファサイズを動的に更新するが、TCPプロトコル自体は変更できず、最初は最適なTCPプロトコルであっても、データリンク層の特性やサーバの位置が変化し、例えば無線環境などロスベースでもレートベースでも対処できない環境に変化すると、最初に決めた最適パラメタはもはや最適でなくスループットが低下してしまうという問題がある。また、ハイブリッド方式のTCPプロトコルは、送信側のTCPにおいてロスベース方式と遅延ベース方式を切り替えることが可能である。これは、送信側のウィンドウ制御アルゴリズムを動的に変更するだけであり、得られる効果も限定的であるという問題がある。ウィンドウ制御アルゴリズム以外の仕組みを、送信側データを送信する側、受信側ACKを応答する側両方で対処が必要である。ウィンドウ制御アルゴリズム以外の仕組みとしては、無線環境に適応するには受信側から送る制御セグメントに再送データを少なくするSACKselectableACKの仕組みや、データパケットを送信途中のルータが輻輳していた場合にデータパケットに輻輳情報を付加して受信側に通知し、受信側からの応答ACKに輻輳情報であるECNExplicitCongestionNotificationを付加して受信側に知らせる仕組みなどである。開示の伝送制御方法は、環境に応じて通信スループットを向上させることを目的とする。開示の一実施形態による伝送制御方法は、送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、前記送信元と送信先の通信装置で第1の輻輳制御機能から第2の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第1の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも1つを前記第2の輻輳制御機能における動作状態を表すパラメタに引き継ぐ。本実施形態によれば、環境に応じて通信スループットを向上させることことができる。以下、図面に基づいて実施形態を説明する。<伝送制御システムの構成>図4は伝送制御システムの一実施形態の構成図を示す。図4に示すように移動端末11がデータセンタ12のサーバ13とTCP通信を行うものとする。移動端末11はWiMAXの無線モデムを備えた無線端末であり、無線基地局14を介してWiMAX無線アクセス網15に接続し、更にアクセスネットワークゲートウェイ16を介してインターネット17に接続し、データセンタ12内のサーバ13と通信を行う。また、データセンタ12とインターネット17の接続点にはWAN高速化装置18が配置されており、移動端末11には、これに対応する仮想WAN高速化アプライアンスが予めインストールされているものとする。仮想WAN高速化アプライアンスとは、移動端末11のOSホストOS上に仮想マシン環境を構築し、その上にゲストOSを走らせ、ゲストOS上にソフトウェアとしてのWAN高速化アプライアンスの機能を実現したものである。移動端末11上のアプリケーションホストOS上のアプリケーションが通信を行う場合、ゲストOS上の仮想WAN高速化アプライアンスを経由し送受信を行う。この際、仮想WAN高速化アプライアンスはプロキシ機能により端末のTCPを終端し、最適化したTCPに載せ替える機能を提供する。ここで、移動端末11は、サーバ13からFTPFileTransferProtocolによりファイルをダウンロードしているものとする。WAN高速化装置18は、サーバと移動端末11のTCPセッションを代理プロキシすることで一旦終端し、移動端末11上の仮想WAN高速化アプライアンスとの間で最適化されたTCPプロトコルを用いて通信する。移動端末11上の仮想WAN高速化アプライアンスは最適化されたTCPプロトコルを再度代理することで終端し、標準のTCPを用いて端末上のアプリケーションにデータを送信する。この際、プロキシとデータを受け取るアプリケーションは共に同じ端末上にあることになる。また、WAN高速化装置18はTCP内に含まれるデータの圧縮や、キャッシュすることで同一データを2度以上送らないようにするデデュープdeduplication:重複除外と呼ばれる機能を提供する。<第1実施形態>図5に通信装置の第1実施形態の構成図を示す。図5に示す通信装置20は、WAN高速化装置18、又は移動端末11上の仮想WAN高速化アプライアンスを指す。通信装置20は、通信インタフェース部21、プロトコル部22-1~22-n、切替制御部23、通信品質監視部24、最適プロトコル選択部25、最適パラメタ決定部26、データバッファ部27、アプリ部28を含む。通信インタフェース部21は、接続しているネットワークからパケットを受信し、又はネットワークにパケットを送信する処理部である。プロトコル部22-1~22-nは、輻輳制御の異なる輻輳制御機能ルールセットを適用した輻輳制御処理を実施する処理部である。例えばプロトコル部22-1はTCPの一変種であるRenoの処理を行い、プロトコル部22-2はTCPの別の一変種であるBICの処理を行う。切替制御部23は、最適プロトコル選択部25がプロトコルの切り替えが必要であると判断した際に、対向装置と制御メッセージを交換し、同期を取りながらプロトコルを切り替える処理部である。切替制御部23内のパラメタステート引継部23aはプロトコル部22-1~22-n間の状態を含むパラメタの引き継ぎを行う。通信品質監視部24は、データリンク層やプロトコル部22の通信品質を監視する処理部である。最適プロトコル選択部25は、通信品質監視部24の収集したデータリンク層情報やプロトコル部22が対向装置と通信を行った結果取得した品質情報を基に、最適なトランスポート層プロトコルを選択する処理部である。最適パラメタ決定部26は、最適プロトコル選択部25が選択した次に切り替え予定のプロトコルに対し、以前のプロトコル処理部のパラメタ、状態を引き継ぎ切替後のパラメタの最適初期値を決定する処理部である。データバッファ部27は、プロトコル部22-1~22-nが相手通信装置にデータを転送する際にアプリケーションが送信依頼をしたデータを一時的に蓄積するメモリである。また、プロトコル部22-1~22-nが相手通信装置からデータを受信した際にアプリケーションが受信し終わるまでデータを一時的に蓄積するメモリでもある。アプリ部28は、トランスポート層プロトコルを用いて通信を行うアプリケーションである。通信装置がWAN高速化装置18或いは仮想WAN高速化アプライアンスの場合は、アプリ部28はプロキシを行うプロセスとなる。<動作>WAN高速化装置18と移動端末11上の仮想WAN高速化アプライアンス間の第1実施形態の動作について、図6に示す動作シーケンスを用いて説明する。なお、以下では端末上の仮想WAN高速化アプライアンスをTWO端末側WAN-Optimizaer、サーバ側のWAN高速化アプライアンスをSWOサーバ側WAN-Optimizaerと呼ぶことにする。本実施形態では、FTPによりサーバから移動端末へファイルを転送する場合を想定している。FTPは制御用のTCPセッションポート番号21とデータ転送用のTCPセッションポート番号20を用いてファイル転送を行う。その手順は以下のようになる。1クライアントであるTWOからFTPサーバであるSWOの21番ポートに対してセッション要求を送信し、セッションを確立し、ログインする。2クライアントからファイル転送要求を送信し、サーバから許可が与えられる3クライアントは、自分が使っているポート番号をサーバに送信し、制御用ポートでの通信が終了する。4サーバは、クライアントから得たポート番号にデータ送信ポート20番を使ってセッションを確立する。5サーバは要求されたファイルを転送し、セッションを閉じる。一般にデータ転送用のセッションをサーバと端末のどちらから張るかによってモードが2種類ある。1つはサーバから端末へ対してデータ転送用セッションを作成するアクティブモードであり、もう1つは端末からサーバに対してデータ転送用セッションを作成するパッシブモードである。以下の例では、アクティブモードのデータ転送用セッションにおける動作を説明する。まず、TWO、SWOはそれぞれ様々なTCPプロトコルのヴァリアント変種すなわちプロトコル部22-1~22-nを内部的に利用可能な状態にしておくステップS1、S52。TWOは、FTP制御セッションにおいてサーバから端末へアクティブモードでデータ転送を指示すると、データ転送用セッションを受け付けるためポートを開きサーバからの接続を待ち受ける。ポートを開くためにSocket,Bind,Listenのシステムコールを実行するステップS2。SWOは、FTP制御セッションにおいてアクティブモードでのデータ転送指示を受信すると、ポートを開きデータ転送用セッションを開始する。セッションを開始するためにSocket,Bindのシステムコールを実行しポートを開いた後、Connectシステムコールを実行するステップS53。SWOは、Connectシステムコールを実行することによりSynパケットを端末へ送信する。TWOは、サーバからの接続要求Synがあると、これを受け入れるAccept、ステップS3。受け入れると、TWOはSWOに応答ACKを送り、SWOはこれに対しSyn/ACKを送信しステップS54、TCPのスリーウェイハンドシェイク3wayhandshakeが完了しセッションが生成される。SWOとTWOは、最初のSynと次のACKを送信する際にTCPオプションフィールドを用いて両者がどのようなTCPプロトコルを利用可能であるかを示すケーパビリティを交換する。この際、セッションを開始する側であるSWOはオプション種別として、図7に示すTCPオプション種別表から、適応プロトコルケーパビリティオプションを表す16を指定する。図8に適応プロトコルケーパビリティオプションを示す。適応プロトコルケーパビリティオプションは、1バイトのオプション種別16、1バイトのオプション長、2バイトのケーパビリティビットを有している。更に、SWOにて使用可能なプロトコルを示すケーパビリティビット内のビットに1をセットする。複数のプロトコルを利用可能な場合は複数のビットをセットする。TCPオプション=16を含むSynメッセージを受信したTWOはACKメッセージにTCPオプション=16を含め、そのケーパビリティとしてSWOが指定したTCPプロトコルのケーパビリティの内、TWOが利用できるものだけにビットをセットして送信する。なお、本実施形態ではケーパビリティの交換にTCPのオプションフィールドを用いたが、データ領域を含む他のフィールドを利用してもよいし、他のメッセージを使用してケーパビリティを交換してもよい。SWOは、アプリケーションがwriteシステムコールを行うことでデータ送信を開始する。Writeシステムコールによりソケットバッファに書き込まれたデータはTCPプロトコルによりセグメント単位でTWOへ送信されるステップS56。この際、SWO及びTWOはデフォルトのTCPプロトコルとしてRenoを用いているものとする。なお、デフォルトTCPオプションを新たに定義して、どのTCPプロトコルから開始するかを相互に取り決めるようにしても良い。SWOは、デフォルトのTCPプロトコル=Renoを用いてデータ転送を開始するステップS56。この際、SWO,TWOはRenoのプロトコル部22-1を用いて通信を行う。TWOはTCPセグメントを受信すると、データをTWOのソケットバッファに蓄積し、アプリケーションに対しデータの到着を通知する。アプリケーションはreadシステムコールを用いてソケットバッファからデータを読み込むステップS4。ここで、TWOの通信品質監視部24は、データリンク層が割り当てられている帯域の変化、ビットエラーレート、パケットエラーレートなどの廃棄率を監視し、また各プロトコル部で計測できるラウンドトリップタイムを監視する。具体的には帯域の変化を次のように定義してもよい。平均帯域変動率=Σln{Xt1/Xt}TWOの通信品質監視部24は、データリンク層品質やラウンドトリップタイムの通信品質の変化が閾値を超えると最適プロトコル選択部25に通知する。例えば通信品質監視部24は遅延ラウンドトリップタイム、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき最適プロトコル選択部25に通信品質の変化を通知してもよい。また、通信品質監視部24はMCSによりデータリンク層に割り当てられている帯域を基準として、トランスポート層を経たスループットデータ転送速度が閾値例えばデータリンク層の帯域の1/2未満となったとき最適プロトコル選択部25に通信品質の変化を通知するようにしてもよい。最適プロトコル選択部25は、上記の通知を受け、変化の状況に適したTCPプロトコルに切り替えることを決定する。例えば、最適プロトコル選択部25は、図9に示すようなプロトコル選択テーブルを基に使用するTCPプロトコルを選択してもよい。図9では平均廃棄率を3段階に分け、平均廃棄率の各段階において3段階の平均帯域変動率と3段階の平均遅延時間に応じてTCPプロトコルReno,Westwood,BIC,htcp,scalableなどを設定している。図9のプロトコル選択テーブルは、図10に示す遅延時間に対する各プロトコルのスループット特性、図11に示すパケットエラー率廃棄率に対する各プロトコルのスループット特性などの各種プロトコルの特性評価に基づき静的に作成してもよい。また、移動端末やサーバが通信を行う毎に動的にスループットを測定し、ダイナミックにプロトコル選択テーブルを構成するようにしてもよい。また、図10や図11ではスループットを評価の軸にしているが、複数のTCPセッションが存在する環境下でのセッション間のフェアネスや複数セッション全体としてのトータルスループットなど、単独セッションのスループット以外の指標を軸にしたプロトコル選択テーブルを構成してもよい。フェアネスとは、複数のTCPセッションが存在するときにネットワークの利用可能な帯域を他のセッションと平等にシェアすることをいい、どのプロトコルを用いるかによりフェアネスが異なってくる。ここで、移動端末11が移動し、TWOがデータリンク層の品質低下を検出するとステップS5、TWOは図12に示すプロトコルスイッチング要求をTCPオプションに指定して送信する図6のステップS6。本メッセージはACKやデータと共に送信するようにしてもよい。図12にプロトコルスイッチング要求を示す。プロトコルスイッチング要求は、1バイトのオプション種別17、1バイトのオプション長、2バイトの切替機能ビット、4バイトの切替シーケンス番号を有している。SWOは、プロトコルスイッチング要求を受信すると、プロトコルスイッチングACKをTCPオプションフィールドに指定して送信する。プロトコルスイッチングACKはプロトコルスイッチング要求と同じ内容を含むが、オプション種別=18として送信するステップS57。なお、本実施形態ではプロトコルスイッチング要求、プロトコルスイッチングACKとしてTCPのオプションフィールドを用いたがデータ領域を含む他のフィールドを利用してもよいし、他のメッセージを使用してもよい。SWO、TWOはプロトコルスイッチング要求に含まれる切替シーケンス番号においてプロトコルの切り替えを実施する。SWOは、ネゴシエートした切替シーケンス番号のメッセージに対するACKをTWOから受信し終わったところで、プロトコルスイッチング要求の切替機能フィールドで指定された新しいプロトコルに切り替える。この際に、TWOは例えば受信ウィンドウサイズ=0を含むACKを送信することで、SWOのデータ送信を一時停止させたのちプロトコルの切り替えを行い、プロトコルの切り替え後に通信を再開して、プロトコルの切り替え時におけるデータ通信で不具合が発生することを回避することも可能である。プロトコルの切り替えは、現行のプロトコル部に対しDeactivate信号を送りステップS58,S7、新しいプロトコル部に対しActivate信号を送るステップS59,S8。この際、以前のプロトコルが保持している状態を含むパラメタを新しいプロトコルに引き継ぐ。特に、送信側のTCPでは、状態として例えばスロースタートや輻輳回避モードといった複数の状態を持つ。各TCPプロトコルはこの状態により輻輳制御方法が異なるため、この状態を含む輻輳ウィンドウサイズcwnd、閾値ssthresh、ウィンドウサイズWmaxなどの動作状態を表す複数のパラメタを引き継ぐことは、新しいTCPプロトコルが適切な状態から開始するために重要である。また、パラメタとして、現在どれだけのウィンドウサイズでデータを送信しているかを示す輻輳ウィンドウサイズcwnd、及び輻輳を検出したときに輻輳ウィンドウサイズcwndをどこまで低下させるかを決めるために使うパラメタの一つである閾値ssthreshといったパラメタを持つ。また、輻輳を検出したときのウィンドウサイズWmax,ラウンドトリップ時間の最小値RTTmin及び最大値RTTmax,遅延帯域積などをパラメタとして引き継ぐ。帯域遅延積は、ネットワークの帯域幅とラウンドトリップ時間の積で表される量であり、TCPのおおよその伝送速度の上限値を決める値である。新しいTCPプロトコルに切り替えた際、スロースタートから開始するとスループットをロスしてしまうので、新しいプロトコルは、これらのパラメタを使用して輻輳ウィンドウサイズcwndを計算し、スロースタートから開始しないようにする。例えば、TCPプロトコルRenoでは図13に示す輻輳制御を行う。すなわち、スロースタートの期間において輻輳ウィンドウサイズを初期値から指数関数的に増加させ、輻輳を検出したときの輻輳ウィンドウサイズcwndをウィンドウサイズWmaxに設定し、輻輳ウィンドウサイズcwndの1/2を閾値ssthreshに設定し、輻輳ウィンドウサイズcwndを閾値ssthreshにする。その後、輻輳ウィンドウサイズcwndを輻輳検出までリニアに増加させる輻輳回避を行う。一方、TCPプロトコルBICは図14に示す輻輳制御を行う。すなわち、スロースタートの期間において輻輳ウィンドウサイズを初期値から指数関数的に増加させ、輻輳を検出したときの輻輳ウィンドウサイズcwndをウィンドウサイズWmaxに設定し、輻輳ウィンドウサイズcwndに所定の係数βを乗算して新たな輻輳ウィンドウサイズcwndとする。その後、輻輳ウィンドウサイズcwndをリニアに増加させAdditiveIncrease、更に輻輳ウィンドウサイズcwndをウィンドウサイズWmaxに漸近させるBinarySearch。そして、輻輳が検出されなければ輻輳ウィンドウサイズcwndをリニアに増加させる輻輳回避を行う。本実施形態では、例えばTCPプロトコルRenoからTCPプロトコルBICに切り替える場合、図15に示すように、切替シーケンス番号より前はTCPRenoの輻輳制御を行い、切替シーケンス番号後はTCPプロトコルBICによる制御に切り替わる。切り替えの際にBICはRenoの最終状態、つまり輻輳回避モード、輻輳ウィンドウサイズcwnd、ウィンドウサイズWmax、閾値ssthreshなどのパラメタを引き継ぎ、スロースタートから開始することなく、輻輳回避を行う。上記の状態を含むパラメタの引き継ぎは図5、図6に示すパラメタステート引継部23aにより行われる。プロトコルが切り替わると、以降、送信側のソケットバッファに残っている未送信のデータ及び以降アプリケーションから送信バッファに書き込まれるデータは新しいプロトコルを用いて送信及び受信されるステップS60、S9。SWOのアプリ部は全てのデータを送信し終わるとソケットをcloseしセッションを切断するステップS61、S10。以上、本実施形態では、TCPプロトコルRenoからTCPプロトコルBICに切り替える場合について説明したが、TCPの変種はこれに限らず、WirelessProfiledTCPなど他の変種との切り替えに適用することもできる。また、TCPプロトコルRenoとTCPプロトコルBICはそれぞれ独立したモジュールのように説明したが、これらは必ずしも分離した構成の実装である必要はなく、モノリシックなカーネルの機能として実装され、オプションで切り替えるような構成であってもよい。<第2実施形態>第1実施形態では環境変化に応じてアダプティブに送信側、受信側のプロトコルを変更する場合を説明したが、プロトコルを変更するだけに限らず、圧縮やキャッシュといった機能をアダプティブに変更するようにしてもよい。以下の第2実施形態ではFTPではなくWEBアプリケーションを想定している。図16に通信装置の第2実施形態の構成図を示す。図16において図5と同一部分には同一符号を付す。図16に示す通信装置30は、WAN高速化装置18、又は移動端末11上の仮想WAN高速化アプライアンスを指す。通信装置30は、通信インタフェース部21、プロトコル部22-1~22-n、切替制御部23、通信品質監視部24、最適プロトコル選択部25、最適パラメタ決定部26、データバッファ部27、アプリ部28、アプリケーション監視部31、キャッシュ/デデュープ部32、データ圧縮伸張部33を含む。通信インタフェース部21は、接続しているネットワークからパケットを受信し、又はネットワークにパケットを送信する処理部である。プロトコル部22-1~22-nは、輻輳制御の異なるルールセットを適用した輻輳制御処理を実施する処理部である。例えばプロトコル部22-1はTCPの一変種であるRenoの処理を行い、プロトコル部22-1はTCPの別の一変種であるBICの処理を行う。切替制御部23は、最適プロトコル選択部25がプロトコルの切り替えが必要であると判断した際に、対向装置と制御メッセージを交換し、同期を取りながらプロトコルを切り替える処理部である。切替制御部23内のパラメタステート引継部23aはプロトコル部22-1~22-n間の状態を含むパラメタの引き継ぎを行う。通信品質監視部24は、データリンク層やプロトコル部22の通信品質を監視する処理部である。最適プロトコル選択部25は、通信品質監視部24の収集したデータリンク層情報やプロトコル部22が対向装置と通信を行った結果取得した品質情報を基に、最適なトランスポート層プロトコルを選択する処理部である。最適パラメタ決定部26は、最適プロトコル選択部25が選択した次に切り替え予定のプロトコルに対し、以前のプロトコル処理部の状態を含むパラメタを引き継ぎ切替後のパラメタの最適初期値を決定する処理部である。データバッファ部27は、プロトコル部22-1~22-nが相手通信装置にデータを転送する際にアプリケーションが送信依頼をしたデータを一時的に蓄積するメモリである。また、プロトコル部22-1~22-nが相手通信装置からデータを受信した際にアプリケーションが受信し終わるまでデータを一時的に蓄積するメモリでもある。アプリ部28は、トランスポート層プロトコルを用いて通信を行うアプリケーションである。通信装置がWAN高速化装置18或いは仮想WAN高速化アプライアンスの場合は、アプリ部28はプロキシを行うプロセスとなる。アプリケーション監視部31は、アプリ部28が送信するデータストリームを監視しアプリケーションの特性を特定する処理部であり、データの中身が既に圧縮されているものかどうか、トランザクションのため散発的なデータ転送を行うタイプのセッションか、バルク転送的なデータ転送を行うタイプのセッションかのデータ転送種別を検出する処理部である。キャッシュ/デデュープ部32は、アプリ部28からデータバッファ部27に向け書き込まれたデータをキャッシュし、キャッシュデータに対しインデックスを付与する。また、対向装置よりインデックスを渡された場合は、インデックスに対応するキャッシュデータを参照し元のデータを復元する処理部である。データ圧縮伸張部33は、アプリ部28より書き込まれたデータを圧縮し、また、対向装置より圧縮されたデータを受信した場合は伸張する処理部である。<動作>WAN高速化装置18と移動端末11上の仮想WAN高速化アプライアンス間の第2実施形態の動作について、図17に示す動作シーケンスを用いて説明する。TWO、SWOが第1のプロトコルで通信するまでの動作ステップS52~S56、ステップS2~S4、及び通信終了の動作ステップS61,S10は第1実施形態と同じであるので、説明を省略する。ただし、スリーウェイハンドシェイで行われる適応プロトコルケーパビリティオプションでは、図18に示す適応プロトコルケーパビリティオプションを用いる。図18に適応プロトコルケーパビリティオプションを示す。適応プロトコルケーパビリティオプションは、1バイトのオプション種別16、1バイトのオプション長、2バイトのケーパビリティビットを有している。図18では、ケーパビリティビットに、利用可能なプロトコルに加え、ビット2のデデュープDedup、ビット3のCompressionなどのケーパビリティがセットされる。なお、ステップS52~S56では、トランザクションのため散発的な通信を行っているものとする。ここで、SWOのアプリ部28がステップS257で同一セッションではあるが、データの送信パータンを変更しバルク転送的に送信したと仮定する。SWOのアプリケーション監視部31はこのデータ書き込みを監視しパータンが変化したことを検出すると、最適プロトコル選択部25に対し、最適なプロトコル、及び機能の選択を要求する。最適プロトコル選択部25は、アプリケーション監視部31が検出したトラフィックの特性、ネットワークの通信品質と図19に示す機能選択テーブル、及び図20に示すプロトコル選択テーブルを利用して特性に適合した最適な機能及びプロトコルを選択する。図19では、圧縮なしつまり圧縮可、かつバルク転送ではキャッシュ/デデュープ部32及びデータ圧縮伸張部33の機能を選択し、圧縮ありつまり圧縮不可、かつトランザクションの散発的転送ではキャッシュ/デデュープ部32及びデータ圧縮伸張部33の機能を使わないことを示している。また、図20では平均廃棄率を3段階に分け、平均廃棄率の各段階において3段階の平均帯域変動率とバルク転送又はトランザクションの散発的転送で3段階の平均遅延時間に応じてTCPプロトコルWestwood,BIC,CUBIC,htcp,scalableなどを設定している。例えば、当初トランザクションのトラフィックが非圧縮の状態で流れており、平均廃棄率=小、平均帯域変動率=小、平均遅延=中であり、機能として圧縮機能、TCPプロトコルとしてBICが選択されていたとする。この状態で、トラフィックの特性がバルク転送に変化した場合、最適プロトコル選択部25は、機能として圧縮とデデュープ、TCPプロトコルとしてWestwoodを選択する。SWOは、最適プロトコル及び機能を選択すると、図21に示すようなプロトコルスイッチング要求をTCPオプションに指定してTWOに送信する。図21にプロトコルスイッチング要求を示す。プロトコルスイッチング要求は、1バイトのオプション種別17、1バイトのオプション長、2バイトの切替機能ビット、4バイトの切替シーケンス番号を有している。このプロトコルスイッチング要求では、切替機能としてビット9のWestwood、ビット2のデデュープDedup、ビット3のCompressionを選択したことを示している。これに対し、TWOはプロトコルスイッチングACKで応答するステップS258、S26。SWO、TWOにおけるプロトコル切替の手順ステップS259、S260、S27、S28は、第1実施形態におけるプロトコル切り替えの手順ステップS58、S59、S7、S8と同じである。更に、SWO,TWOにおける最適プロトコル選択部25は、データ圧縮伸張部33、キャッシュ/デデュープ部32を活性化するステップS261,S29。以降、SWOのアプリ部28がデータを書き込むとステップS262、SWOのデータ圧縮伸張部33、キャッシュ/デデュープ部32は、データを圧縮すると共に、キャッシュを行った後、変更後のプロトコルを用いてTWOにデータを送信するステップS263。TWOでは、圧縮されたデータを受信するとこれを伸張する。また、キャッシュされたデータのインデックスを受信すると、このインデックスに対応するキャッシュデータを参照し元のデータを復元するステップS30,S31。上記実施形態ではWAN高速化装置18をベースにして説明したが、移動端末やサーバに仮想WAN高速化アプライアンスを持たせるように構成してもよい。この実施形態では、プロトコルを変更するだけに限らず、圧縮やキャッシュといった機能をアダプティブに変更することが可能となる。付記1送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、前記送信元と送信先の通信装置で第1の輻輳制御機能から第2の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第1の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも1つを前記第2の輻輳制御機能における動作状態を表すパラメタに引き継ぐことを特徴とする伝送制御方法。付記2付記1記載の伝送制御方法において、前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出し、前記送信元と送信先の通信装置間の前記第1の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた第2の輻輳制御機能を選択し、前記第2の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信し、前記送信元と送信先の通信装置で同期したタイミングで、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替えることを特徴とする伝送制御方法。付記3付記2記載の伝送制御方法において、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元と送信先の通信装置間で切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替えることを特徴とする伝送制御方法。付記4付記2又は3記載の伝送制御方法において、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行うことを特徴とする伝送制御方法。付記5付記2乃至4のいずれか1項記載の伝送制御方法において、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御方法。付記6付記2乃至4のいずれか1項記載の伝送制御方法において、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御方法。付記7付記2乃至6のいずれか1項記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御方法。付記8付記7記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御方法。付記9付記8記載の伝送制御方法において、前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記転送データの圧縮伸張処理とキャッシュ及びデデュープ処理を使用するか否かを選択することを特徴とする伝送制御方法。付記10送信元と送信先の通信装置それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御方法であって、前記送信元と送信先の通信装置で第1の輻輳制御機能から第2の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第1の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも1つを前記第2の輻輳制御機能における動作状態を表すパラメタに引き継ぐ引継部を有することを特徴とする伝送制御システム。付記11付記10記載の伝送制御システムにおいて、前記送信元と送信先の通信装置の少なくとも一方の通信装置で通信品質を検出する検出部と、前記送信元と送信先の通信装置間の前記第1の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で通信品質の変化を検出したとき、変化した通信品質に応じた第2の輻輳制御機能を選択する選択部と、前記第2の輻輳制御機能の選択を前記送信元と送信先の通信装置間で送受信する送受信部と、前記送信元と送信先の通信装置で同期したタイミングで、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える切替部と、を有することを特徴とする伝送制御システム。付記12付記11記載の伝送制御システムにおいて、前記切替部は、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元と送信先の通信装置間で前記送受信部により切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替えることを特徴とする伝送制御システム。付記13付記12記載の伝送制御システムにおいて、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御システム。付記14付記13記載の伝送制御システムにおいて、前記送信元と送信先の通信装置は、転送データの圧縮伸張処理を行う圧縮伸張部と、前記転送データのキャッシュ及びデデュープ処理を行うキャッシュ及びデデュープ部とを有し、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記圧縮伸張部と前記キャッシュ及びデデュープ部を使用するか否かを選択することを特徴とする伝送制御システム。付記15送信元と送信先それぞれにおいて、複数の輻輳制御方式にそれぞれ対応する複数の輻輳制御機能を含む伝送制御プロトコルを有し、該伝送制御プロトコルを用いて互いに通信を行う伝送制御システムの通信装置であって、第1の輻輳制御機能から第2の輻輳制御機能に切り替えを行う際に、前記伝送制御プロトコルが保持している第1の輻輳制御機能における動作状態を表す複数のパラメタのうち少なくとも1つを前記第2の輻輳制御機能における動作状態を表すパラメタに引き継ぐ引継部を有することを特徴とする通信装置。付記16付記15記載の通信装置において、通信品質を検出する検出部と、前記送信元と送信先の間の前記第1の輻輳制御機能で輻輳制御を行う伝送制御プロトコルを用いた通信セッションの途中で前記検出部が通信品質の変化を検出したとき、変化した通信品質に応じた第2の輻輳制御機能を選択する選択部と、前記第2の輻輳制御機能の選択を前記送信元と送信先の間で送受信する送受信部と、前記送信元と送信先それぞれで同期したタイミングで、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える切替部と、を有することを特徴とする通信装置。付記17付記16記載の通信装置において、前記切替部は、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元と送信先の間で前記送受信部により切替シーケンス番号を送受信してネゴシエートしたタイミングで切り替えることを特徴とする通信装置。付記18付記17記載の通信装置において、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記通信セッションのデータ転送が散発的か又はバルク転送的かのデータ転送種別に適応した第2の輻輳制御機能を選択することを特徴とする通信装置。付記19付記18記載の通信装置において、転送データの圧縮伸張処理を行う圧縮伸張部と、前記転送データのキャッシュ及びデデュープ処理を行うキャッシュ及びデデュープ部とを有し、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、前記データ転送種別及び転送データが既に圧縮済みか否かに応じて、前記圧縮伸張部と前記キャッシュ及びデデュープ部を使用するか否かを選択することを特徴とする通信装置。付記20付記11又は12記載の伝送制御システムにおいて、前記切替部は、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元の通信装置のデータ送信を一時停止させた上で切り替えを行うことを特徴とする伝送制御システム。付記21付記11又は12又は20のいずれか1項記載の伝送制御システムにおいて、前記検出部は、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御システム。付記22付記11又は12又は20のいずれか1項記載の伝送制御システムにおいて、前記検出部は、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする伝送制御システム。付記23付記11又は12又は20乃至22のいずれか1項記載の伝送制御システムにおいて、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第2の輻輳制御機能を選択することを特徴とする伝送制御システム。付記24付記15又は16記載の通信装置において、前記切替部は、前記第1の輻輳制御機能から前記第2の輻輳制御機能に切り替える際に、前記送信元のデータ送信を一時停止させた上で切り替えを行うことを特徴とする通信装置。付記25付記15又は16又は24のいずれか1項記載の通信装置において、前記検出部は、トランスポート層におけるデータ転送速度がデータリンク層に割り当てられている帯域に応じた閾値未満であるとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする通信装置。付記26付記15又は16又は24のいずれか1項記載の通信装置において、前記検出部は、通信の遅延、帯域、廃棄率の少なくとも一つの変化量が所定の閾値を超えたとき、前記通信セッションの途中で通信品質の変化を検出することを特徴とする通信装置。付記27付記15又は16又は24乃至26のいずれか1項記載の通信装置において、前記選択部は、前記検出部が前記通信セッションの途中で通信品質の変化を検出したとき、通信の遅延、帯域、廃棄率の少なくとも一つの変化に適応した第2の輻輳制御機能を選択することを特徴とする通信装置。"