(57)【特許請求の範囲】
【請求項１】
第１のデバイスにより、データストリーム情報に従って、前記データストリーム情報に対応するデータストリームにおける伝送制御プロトコル（TCP）パラメータが変更される必要があるか否かを決定するステップであり、前記データストリーム情報は前記データストリームで現在搬送されているサービスについての情報を含み、前記TCPパラメータは最大パケット長を含むステップと、
前記TCPパラメータが変更される必要があると決定した場合、前記第１のデバイスにより、前記TCPパラメータを変更し、変更されたTCPパラメータを取得するステップと、
前記第１のデバイスにより、成功した変更を示す前記TCPパラメータの変更結果を生成するステップと
を含むデータ伝送方法。
【請求項２】
前記第１のデバイスにより、前記TCPパラメータの変更結果を生成する前に、前記方法は、
前記第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップであり、前記データ転送プロトコル交渉要求メッセージは、前記変更されたTCPパラメータを含み、前記データ転送プロトコル交渉要求メッセージは、前記第２のデバイスに対して、前記変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用されるステップを更に含み、
前記第１のデバイスにより、前記TCPパラメータの変更結果を生成するステップは、
前記第１のデバイスにより、前記第２のデバイスにより送信されたフィードバックメッセージを受信し、前記フィードバックメッセージに従って前記TCPパラメータの前記変更結果を生成するステップを含む、請求項１に記載の方法。
【請求項３】
前記データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、前記変更されたTCPパラメータは、前記データ転送プロトコルパケットにおけるオプションとして使用される、請求項２に記載の方法。
【請求項４】
前記第１のデバイスにより、前記TCPパラメータを変更し、変更されたTCPパラメータを取得するステップは、
前記第１のデバイスにより、前記データストリームに対応する第１のソケットを生成するステップと、
前記第１のデバイスにより、前記第１のソケットに対応する汎用ソケットプログラミングインタフェース又は新たなアプリケーションプログラミングインタフェース（API）を使用することにより、前記TCPパラメータを変更し、前記変更されたTCPパラメータを取得するステップと
を含む、請求項１乃至３のうちいずれか１項に記載の方法。
【請求項５】
データストリーム情報に従って、前記データストリーム情報に対応するデータストリームにおける伝送制御プロトコル（TCP）パラメータが変更される必要があるか否かを決定するように構成された決定モジュールであり、前記データストリーム情報は前記データストリームで現在搬送されているサービスについての情報を含み、前記TCPパラメータは最大パケット長を含む決定モジュールと、
前記TCPパラメータが変更される必要があると前記決定モジュールが決定した場合、前記TCPパラメータを変更し、変更されたTCPパラメータを取得するように構成された変更モジュールと、
成功した変更を示す前記TCPパラメータの変更結果を生成するように構成された生成モジュールと
を含む第１のデバイス。
【請求項６】
データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するように構成された送信モジュールであり、前記データ転送プロトコル交渉要求メッセージは、前記変更されたTCPパラメータを含み、前記データ転送プロトコル交渉要求メッセージは、前記第２のデバイスに対して、前記変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用される送信モジュールと、
前記第２のデバイスにより送信されたフィードバックメッセージを受信するように構成された受信モジュールと
を更に含み、
前記生成モジュールは、前記フィードバックメッセージに従って前記TCPパラメータの前記変更結果を生成するように構成される、請求項５に記載の第１のデバイス。
【請求項７】
前記データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、前記変更されたTCPパラメータは、前記データ転送プロトコルパケットにおけるオプションとして使用される、請求項６に記載の第１のデバイス。
【請求項８】
前記変更モジュールは、前記データストリームに対応する第１のソケットを生成し、前記第１のソケットに対応する汎用ソケットプログラミングインタフェース又は新たなアプリケーションプログラミングインタフェース（API）を使用することにより、前記TCPパラメータを変更し、前記変更されたTCPパラメータを取得するように構成される、請求項５乃至７のうちいずれか１項に記載の第１のデバイス。
【請求項９】
コンピュータに請求項１乃至４のうちいずれか１項に記載の方法を実行させるプログラム。
【請求項１０】
コンピュータに請求項１乃至４のうちいずれか１項に記載の方法を実行させるプログラムを記録したコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
この出願は、「DATA  TRANSMISSION  METHOD  AND  APPARATUS」という名称で2014年12月19日に中国特許庁に出願された中国特許出願第201410799680.8号の優先権を主張し、この全内容を参照により援用する。
【０００２】
［技術分野］
本発明の実施例は、コンピュータ技術の分野に関し、特にデータ伝送方法及び装置に関する。
【背景技術】
【０００３】
TCP（Transmission  Control  Protocol、伝送制御プロトコル）は、コネクション指向の信頼性のあるバイトストリームに基づくトランスポートレイヤ通信プロトコルである。このプロトコルでは、ユーザは、複数の変更パラメータを与えられ、これにより、ユーザは、データ伝送効率を改善するために、異なるネットワーク状態のために対応するパラメータを変更することができる。
【０００４】
従来技術では、TCPパラメータは、この方式で変更され、すなわち、システムファイルに記憶されたTCPパラメータが変更され、次に、システムファイルが変更後に保存され、最後に、変更が効力を生じることを可能にするために、対応するコマンドが実行される。
【０００５】
しかし、前述の処理の実行中に、発明者は、従来技術が以下の問題を有することを見出した。１人のユーザが複数のサービスに対応している可能性があり、各サービスが１つのTCPストリームに対応しており、すなわち、１人のユーザが複数のTCPストリームに対応している。TCPパラメータがユーザ側で変更された場合、変更されたTCPパラメータはグローバルパラメータであるため、特定のユーザに対応するTCPストリームにおける特定のTCPパラメータが変更された後に、ユーザの全てのTCPストリームにおけるTCPパラメータが変更される。TCPパラメータがサーバ側で変更された場合、特定のユーザのTCPストリームにおける特定のTCPパラメータが変更された後に、他のユーザの全てのTCPストリームにおけるTCPパラメータも変更される。しかし、何人かのユーザ又はサーバのいくつかのサービスにとって、何人かのユーザ又はサーバのいくつかのサービスに対応するTCPストリームにおけるTCPパラメータは変更される必要はない。したがって、TCPパラメータを変更する精度が高くない。
【発明の概要】
【０００６】
本発明の実施例は、TCPパラメータを変更する精度が高くないという従来技術における問題を解決するためのデータ伝送方法及び装置を提供する。
【０００７】
第１の態様によれば、本発明の実施例は、第１のデバイスにより、データストリーム情報に従って、データストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定するステップであり、データストリーム情報は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つを含むステップと、TCPパラメータが変更される必要があると決定した場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップと、第１のデバイスにより、TCPパラメータの変更結果を生成するステップとを含むデータ伝送方法を提供する。
【０００８】
第１の態様を参照して、第１の態様の第１の可能な実現方式では、第１のデバイスにより、TCPパラメータの変更結果を生成する前に、この方法は、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップであり、データ転送プロトコル交渉要求メッセージは、変更されたTCPパラメータを含み、データ転送プロトコル交渉要求メッセージは、第２のデバイスに対して、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用されるステップを更に含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップを含む。
【０００９】
第１の態様又は第１の態様の第１の可能な実現方式を参照して、第１の態様の第２の可能な実現方式では、データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、変更されたTCPパラメータは、データ転送プロトコルパケットにおけるオプションとして使用される。
【００１０】
第１の態様又は第１の態様の第１〜第２の可能な実現方式のいずれか１つを参照して、第１の態様の第３の可能な実現方式では、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、第１のデバイスにより、データストリームに対応する第１のソケットを生成するステップと、第１のデバイスにより、変更されたTCPパラメータを取得するために、第１のソケットに対応するデータ転送プロトコル変更インタフェースを使用することにより、TCPパラメータを変更するステップとを含む。
【００１１】
第１の態様の第３の可能な実現方式を参照して、第１の態様の第４の可能な実現方式では、データ転送プロトコル変更インタフェースは、汎用ソケットプログラミングインタフェース及び新たなアプリケーションプログラミングインタフェースAPIを含む。
【００１２】
第１の態様又は第１の態様の第１〜第４の可能な実現方式のいずれか１つを参照して、第１の態様の第５の可能な実現方式では、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【００１３】
第２の態様によれば、本発明の実施例は、データストリーム情報に従って、データストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定するように構成された決定モジュールであり、データストリーム情報は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つを含む決定モジュールと、TCPパラメータが変更される必要があると決定モジュールが決定した場合、変更されたTCPパラメータを取得するためにTCPパラメータを変更するように構成された変更モジュールと、TCPパラメータの変更結果を生成するように構成された生成モジュールとを含む第１のデバイスを提供する。
【００１４】
第２の態様を参照して、第２の態様の第１の可能な実現方式では、第１のデバイスは、データ転送プロトコル交渉要求メッセージを第２の端末に送信するように構成された送信モジュールであり、データ転送プロトコル交渉要求メッセージは、変更されたTCPパラメータを含み、データ転送プロトコル交渉要求メッセージは、第２の端末に対して、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用される送信モジュールと、第２の端末により送信されたフィードバックメッセージを受信するように構成された受信モジュールとを更に含み、生成モジュールは、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するように具体的に構成される。
【００１５】
第２の態様又は第２の態様の第１の可能な実現方式を参照して、第２の態様の第２の可能な実現方式では、データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、変更されたTCPパラメータは、データ転送プロトコルパケットにおけるオプションとして使用される。
【００１６】
第２の態様又は第２の態様の第１〜第２の可能な実現方式のいずれか１つを参照して、第２の態様の第３の可能な実現方式では、変更モジュールは、データストリームに対応する第１のソケットを生成し、変更されたTCPパラメータを取得するために、第１のソケットに対応するデータ転送プロトコル変更インタフェースを使用することにより、TCPパラメータを変更するように具体的に構成される。
【００１７】
第２の態様の第３の可能な実現方式を参照して、第２の態様の第４の可能な実現方式では、データ転送プロトコル変更インタフェースは、汎用ソケットプログラミングインタフェース及び新たなアプリケーションプログラミングインタフェースAPIを含む。
【００１８】
第２の態様又は第２の態様の第１〜第４の可能な実現方式のいずれか１つを参照して、第２の態様の第５の可能な実現方式では、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【００１９】
本発明の第３の態様によれば、本発明の実施例は、第１のデバイスにより送信されたデータ転送プロトコル交渉要求メッセージを受信するように構成された受信モジュールであり、データ転送プロトコル交渉要求メッセージは、第１のデバイスにより変更されたTCPパラメータを含む受信モジュールと、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように構成された処理モジュールと、フィードバックメッセージを生成し、フィードバックメッセージを第１のデバイスに送信するように構成された送信モジュールとを含む第２のデバイスを提供する。
【００２０】
第３の態様を参照して、第３の態様の第１の可能な実現方式では、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【００２１】
本発明の実施例におけるデータ伝送方法及び装置によれば、第１のデバイスは、データストリーム情報に従って、データストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定し、データストリーム情報は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つを含み、TCPパラメータが変更される必要があると決定した場合、第１のデバイスは、変更されたTCPパラメータを取得するためにTCPパラメータを変更し、第１のデバイスは、TCPパラメータの変更結果を生成し、これにより、異なるユーザの異なるサービスのデータストリームに対応するデータ転送プロトコルTCPパラメータがデータストリームに従って変更される。これは、TCPパラメータを変更する精度が高くないという従来技術における問題を解決する。
【図面の簡単な説明】
【００２２】
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に説明する。明らかに、以下の説明における添付図面は、本発明のいくつかの実施例を示しており、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導き得る。
【図１】本発明によるデータ伝送方法の実施例のフローチャートである。
【図２】本発明によるデータ伝送方法の実施例の実現原理の第１の図である。
【図３】本発明によるデータ伝送方法の実施例のパケットフォーマットの第１の概略図である。
【図４】本発明によるデータ伝送方法の実施例の実現原理の第２の図である。
【図５】本発明によるデータ伝送方法の実施例のパケットフォーマットの第２の概略図である。
【図６】本発明によるデータ伝送方法の実施例の実現原理の第３の図である。
【図７】本発明によるデータ伝送方法の実施例のパケットフォーマットの第３の概略図である。
【図８】本発明によるデータ伝送方法の実施例の実現原理の第４の図である。
【図９】本発明によるデータ伝送方法の実施例のパケットフォーマットの第４の概略図である。
【図１０】本発明によるデータ伝送方法の他の実施例のフローチャートである。
【図１１】本発明による第１のデバイスの実施例１の概略構成図である。
【図１２】本発明による第２のデバイスの実施例１の概略構成図である。
【発明を実施するための形態】
【００２３】
本発明の実施例の目的、技術的解決策及び利点をより明確にするために、以下に、本発明の実施例における添付図面を参照して本発明の実施例における技術的解決策を明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、一部である。創造的取り組みなしに本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２４】
図１は、本発明によるデータ伝送方法の実施例のフローチャートである。この実施例の実行主体は、第１のデバイスである。例えば、第１のデバイスは、TCPの送信エンド又は受信エンドでもよい。すなわち、第１のデバイスは、サーバ又はクライアントデバイスでもよい。図１に示すように、この実施例において提供されるデータ伝送方法は、以下のステップを含む。
【００２５】
ステップ101：第１のデバイスは、データストリーム情報に従って、データストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定し、データストリーム情報は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つを含む。
【００２６】
ステップ102：TCPパラメータが変更される必要があると決定した場合、第１のデバイスは、変更されたTCPパラメータを取得するためにTCPパラメータを変更する。
【００２７】
ステップ103：第１のデバイスは、TCPパラメータの変更結果を生成する。
【００２８】
具体的には、本発明のこの実施例では、異なるサービス要件及び動的に変化するネットワークを満たすために、TCPパラメータは、サービスに対応するTCPストリームに基づいて動的に調整されてもよく、すなわち、第１のデバイスは、データストリームに対応するTCPパラメータを変更する。TCPパラメータは、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ等を含む。
【００２９】
まず、TCPパラメータが変更される必要があるか否かがデータストリーム情報に従って決定される。具体的には、決定は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つに従って実行されてもよい。例えば、第１のデバイスがサーバである場合、サーバについての情報、第２のデバイス（すなわち、ユーザのクライアントデバイス）についての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つが決定されてもよい。ネットワーク状態情報は、ネットワーク帯域幅等を含み、第１のデバイスについての情報は、デバイスの送信及び受信能力、中央処理装置CPUの処理能力、キャッシュのサイズ、ハードディスクの記憶空間サイズ等を含み、第２のデバイスについての情報は、前述の情報と同様であり、インタフェースの速度、端末のタイプ等を更に含んでもよい。第２のデバイスについての情報は、第１のデバイスに事前に送信されてもよい。すなわち、第２のデバイスについての情報は、第１のデバイスがTCPコネクションの確立中に第２のデバイスと相互作用するときに取得されてもよい。
【００３０】
この実施例では、第１のデバイスは、第２のデバイスと交渉することなくTCPパラメータを変更してもよい。第１のデバイスは、例えば、TCPデータストリームの送信エンドでもよく、この場合、第２のデバイスは、受信エンドである。TCPパラメータを変更した後に、第１のデバイスは、成功した変更の変更結果を直接生成する。
【００３１】
本発明では、同じ物理サーバ上の異なるTCPストリームは、柔軟に変更されてもよい。例えば、小さいオブジェクトが通常関与するウェブブラウジングアプリケーションでは、初期輻輳ウィンドウは、オブジェクトのサイズに従って設定されてもよく、大きいファイルのダウンロードでは、スロースタートステップ、タイムアウト後の再送信のための輻輳ウィンドウ、及び高速リカバリのための輻輳ウィンドウは、大きい粒度のファイルがより高速にダウンロードされ得るように増加してもよい。
【００３２】
本発明における方法によれば、TCPが完全にオープンになる。輻輳制御アルゴリズムは変更されてもよく、TCPの全てのパラメータは、様々なサービス、ユーザ及びネットワーク、並びに絶え間なく変わるサービス要件、ユーザ要件及びネットワーク状態にとって適切である。例えば、同じ物理サーバが第２世代（Second  Generation、略称2G）ユーザ及びファイバ・トゥ・ザ・ホーム（Fiber  To  The  Home、略称FTTH）ファイバユーザの双方にサービス提供する場合、サーバは、ユーザの異なるTCPストリームに基づいて異なる輻輳制御アルゴリズムを設定してもよい。例えば、FTTHファイバユーザは、CUBICアルゴリズムを使用する。パケットロスが発生した場合、高速リカバリが実行されてもよい。このアルゴリズムの適用シナリオは、主に現在の高速ネットワークである。2Gユーザは、従来の輻輳制御アルゴリズムを使用する。パケットロスがネットワーク輻輳により引き起こされた場合、大量のパケットは継続して送信されないため、状態は悪化しない。このアルゴリズムの適用シナリオは、主に過去の低速ネットワークである。
【００３３】
この実施例では、第１のデバイスは、データ転送プロトコルの変更結果を生成するために、データストリームに対応するTCPパラメータを変更し、これにより、異なるユーザの異なるサービスのデータストリームに対応するデータ転送プロトコルTCPパラメータがデータストリームに従って変更される。これは、TCPパラメータを変更する精度が高くないという従来技術における問題を解決する。
【００３４】
本発明における方法の他の実施例では、図１に示す実施例に基づいて、第１のデバイスにより、TCPパラメータの変更結果を生成する前に、この方法は、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップであり、データ転送プロトコル交渉要求メッセージは、変更されたTCPパラメータを含み、データ転送プロトコル交渉要求メッセージは、第２のデバイスに対して、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用されるステップを更に含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップを含む。
【００３５】
任意選択で、データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、変更されたTCPパラメータは、データ転送プロトコルパケットにおけるオプションとして使用される。
【００３６】
具体的には、この実施例では、第１のデバイスは、TCPパラメータを変更するときに第２のデバイスと交渉する必要があってもよく、TCPパラメータは、輻輳制御アルゴリズム、初期輻輳ウィンドウ、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度等を含む。
【００３７】
例えば、従来の輻輳制御アルゴリズムは、低速ネットワークに基づいて設計されており、バイナリ増加伝送制御プロトコル（BIC）、高速長距離ネットワークにおいて使用されるバイナリ増加伝送制御プロトコル（CUBIC）、及びコンパウンド伝送制御プロトコル（compound  TCP）は、高速ネットワークに基づいて設計されている。同じサーバによりサービス提供されるユーザは、低速ネットワークのユーザと高速ネットワークのユーザとの双方を含み得るため、TCPパラメータは、異なるユーザの要件を満たすために異なるユーザに基づいて調整される必要がある。更に、異なるTCPパラメータは、異なるサービスについて設定されてもよく、例えば、Google検索エンジンサービスでは、TCPの初期輻輳ウィンドウ（Initial  Congestion  Window、略称InitCwnd）は、遅延が最低であるように16に設定され、ファイルサイズがGoogleのものと異なるTaobaoでは、TCPのInitCwndは、サービス体験が最善であるように7に設定される。
【００３８】
TCPパラメータを変更した後に、第１のデバイスは、第２のデバイスと交渉する必要があり、第２のデバイスは、変更されたTCPパラメータが予め設定された条件を満たすか否かを決定する。予め設定された条件は、例えば、変更されたTCPパラメータが第２のデバイスにより許可された範囲内であるか否かであり、第１のデバイスは、例えば、TCPデータストリームの送信エンド（例えば、サーバ）でもよく、この場合、第２のデバイスは、受信エンド（クライアントデバイス）である。交渉中に、データ転送プロトコル交渉要求メッセージが送信されてもよく、データ転送プロトコル交渉要求メッセージは、変更されたTCPパラメータを含む。変更されたTCPパラメータを決定した後に、第２のデバイスは、フィードバックを実行し、フィードバックメッセージを送信する。フィードバックメッセージを受信した後に、第１のデバイスは、変更結果を生成する。予め設定された条件が満たされた場合、成功した変更の変更結果が生成され、或いは予め設定された条件が満たされない場合、失敗した変更の変更結果が生成される。
【００３９】
本発明の方法の他の実施例では、図１に示す実施例に基づいて、ステップ101において、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、第１のデバイスにより、データストリームに対応する第１のソケットを生成するステップと、第１のデバイスにより、変更されたTCPパラメータを取得するために、第１のソケットに対応するデータ転送プロトコル変更インタフェースを使用することにより、TCPパラメータを変更するステップとを含む。
【００４０】
任意選択で、データ転送プロトコル変更インタフェースは、汎用ソケットプログラミングインタフェース及び新たなアプリケーションプログラミングインタフェースAPIを含む。
【００４１】
具体的には、第１のデバイスがデータストリームに対応するTCPパラメータを変更することは、以下の方法、すなわち、第１のデバイスにより、データストリームに対応する第１のソケットを生成し、第１のソケットに対応するデータ転送プロトコル変更インタフェースを使用することにより、TCPパラメータを変更することを使用することにより実現されてもよい。或いは、TCPパラメータは、コマンドライン又はレジストリのような他の方式を使用することにより変更されてもよい。
【００４２】
第１のソケットに対応するデータ転送プロトコル変更インタフェースが使用される変更方式では、汎用ソケットプログラミングインタフェースが使用されてもよく、例えば、TCPパラメータは、以下の関数、すなわち、  int  setsockopt(int  s,  int  level,  int  optname,  const  void  *  optval,  socklen_toptlen)を使用することにより変更されてもよい。或いは、TCPパラメータは、新たなアプリケーションプログラミングインタフェースAPIを使用することにより変更されてもよい。
【００４３】
任意選択で、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【００４４】
以下は、図１に示す方法の実施例における技術的解決策を詳細に説明するために、具体的な実施例を使用する。
【００４５】
任意選択で、TCPパラメータが初期輻輳ウィンドウである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の初期輻輳ウィンドウを取得するため、データストリームに対応する初期輻輳ウィンドウを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の初期輻輳ウィンドウは予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の初期輻輳ウィンドウを取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが初期輻輳ウィンドウを変更したことを示すステップを含む。
【００４６】
具体的には、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの初期輻輳ウィンドウが変更される必要があると決定された場合、この場合、TCPパラメータは、初期輻輳ウィンドウである。第１のデバイス（例えば、送信エンド）は、データストリームに対応する初期輻輳ウィンドウをより適切な第１の初期輻輳ウィンドウに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の初期輻輳ウィンドウは、第１のデバイスにより予め設定されてもよい。具体的には、第１の初期輻輳ウィンドウは、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００４７】
適切な第１の初期輻輳ウィンドウを選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが初期輻輳ウィンドウを変更したことを示す。
【００４８】
この実施例では、送信エンドは、受信エンドと交渉することなく、TCPの初期輻輳ウィンドウを独自に変更する。
【００４９】
任意選択で、TCPパラメータがタイムアウト後の再送信のための輻輳ウィンドウである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のタイムアウト後の再送信のための輻輳ウィンドウを取得するため、データストリームに対応するタイムアウト後の再送信のための輻輳ウィンドウを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のタイムアウト後の再送信のための輻輳ウィンドウは予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１のタイムアウト後の再送信のための輻輳ウィンドウを取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスがタイムアウト後の再送信のための輻輳ウィンドウを変更したことを示すステップを含む。
【００５０】
具体的には、TCPにおけるネットワーク輻輳の主な理由は、パケットセグメントがTCPにおいて再送信されることであると考えられる。TCPでは、パケットセグメント毎にタイマが存在し、タイマは、再送信タイマ（Retransmission  Timeout、略称RTO）と呼ばれる。RTOが満了する前にデータの確認応答が受信されない場合、パケットセグメントは、TCPにおいて再送信される。タイムアウトが発生した場合、輻輳の可能性は非常に高く、特定のパケットセグメントは、ネットワーク内のどこかで失われる可能性がある。したがって、ネットワーク輻輳が発生した場合、タイムアウト後の再送信のための輻輳ウィンドウが変更される。タイムアウト後の再送信中にスロースタートに入る。
【００５１】
第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPのタイムアウト後の再送信のための輻輳ウィンドウが変更される必要があると決定された場合、この場合、TCPパラメータは、タイムアウト後の再送信のための輻輳ウィンドウである。第１のデバイス（例えば、送信エンド）は、第１のサービスに対応するタイムアウト後の再送信のための輻輳ウィンドウをより適切な第１のタイムアウト後の再送信のための輻輳ウィンドウに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のタイムアウト後の再送信のための輻輳ウィンドウは、第１のデバイスにより予め設定されてもよい。具体的には、第１のタイムアウト後の再送信のための輻輳ウィンドウは、一般的に、伝送される必要があるファイルのサイズ、送信エンドにおけるサーバの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００５２】
適切な第１のタイムアウト後の再送信のための輻輳ウィンドウを選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスがタイムアウト後の再送信のための輻輳ウィンドウを変更したことを示す。
【００５３】
任意選択で、TCPパラメータが高速リカバリのための輻輳ウィンドウである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の高速リカバリのための輻輳ウィンドウを取得するため、データストリームに対応する高速リカバリのための輻輳ウィンドウを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の高速リカバリのための輻輳ウィンドウは予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の高速リカバリのための輻輳ウィンドウを取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが高速リカバリのための輻輳ウィンドウを変更したことを示すステップを含む。
【００５４】
具体的には、再送信は、タイムアウトの後に発生する。しかし、送信エンドが少なくとも３つの重複するACKを受信した場合、送信エンドは、データが失われており再送信される必要があることを認識するべきである。この機構では、再送信タイマがオーバーフローするまで待機する必要はなく、したがって、この機構は、高速再送信と呼ばれる。高速再送信の後に、輻輳回避アルゴリズムがスロースタートの代わりに使用されるため、この機構は、高速リカバリアルゴリズムとも呼ばれる。高速再送信及び高速リカバリは、失われたパケットの高速リカバリを目的とする。
【００５５】
第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの高速リカバリのための輻輳ウィンドウが変更される必要があると決定された場合、この場合、変更されるべき内容は、高速リカバリのための輻輳ウィンドウである。第１のデバイス（例えば、送信エンド）は、データストリームに対応する高速リカバリのための輻輳ウィンドウをより適切な第１の高速リカバリのための輻輳ウィンドウに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の高速リカバリのための輻輳ウィンドウは、第１のデバイスにより予め設定されてもよい。具体的には、第１の高速リカバリのための輻輳ウィンドウは、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００５６】
適切な第１の高速リカバリのための輻輳ウィンドウを選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが高速リカバリのための輻輳ウィンドウを変更したことを示す。
【００５７】
任意選択で、TCPパラメータがスロースタート閾値である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のスロースタート閾値を取得するため、データストリームに対応するスロースタート閾値を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のスロースタート閾値は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１のスロースタート閾値を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスがスロースタート閾値を変更したことを示すステップを含む。
【００５８】
具体的には、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPのスロースタート閾値が変更される必要があると決定された場合、この場合、TCPパラメータは、スロースタート閾値である。第１のデバイス（例えば、送信エンド）は、データストリームに対応するスロースタート閾値をより適切な第１のスロースタート閾値に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のスロースタート閾値は、第１のデバイスにより予め設定されてもよい。具体的には、第１のスロースタート閾値は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００５９】
適切な第１のスロースタート閾値を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスがスロースタート閾値を変更したことを示す。
【００６０】
任意選択で、TCPパラメータがタイムアウト後の再送信のためのスロースタート閾値である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のタイムアウト後の再送信のためのスロースタート閾値を取得するため、データストリームに対応するタイムアウト後の再送信のためのスロースタート閾値を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のタイムアウト後の再送信のためのスロースタート閾値は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１のタイムアウト後の再送信のためのスロースタート閾値を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスがタイムアウト後の再送信のためのスロースタート閾値を変更したことを示すステップを含む。
【００６１】
具体的には、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPのタイムアウト後の再送信のためのスロースタート閾値が変更される必要があると決定された場合、この場合、変更されるべき内容は、タイムアウト後の再送信のためのスロースタート閾値である。第１のデバイス（例えば、送信エンド）は、データストリームに対応するタイムアウト後の再送信のためのスロースタート閾値をより適切な第１のタイムアウト後の再送信のためのスロースタート閾値に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のタイムアウト後の再送信のためのスロースタート閾値は、第１のデバイスにより予め設定されてもよい。具体的には、第１のタイムアウト後の再送信のためのスロースタート閾値は、一般的に、伝送される必要があるファイルのサイズ、送信エンドにおけるサーバの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００６２】
適切な第１のタイムアウト後の再送信のためのスロースタート閾値を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスがタイムアウト後の再送信のためのスロースタート閾値を変更したことを示す。
【００６３】
任意選択で、TCPパラメータが高速リカバリのための輻輳ウィンドウ閾値である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の高速リカバリのための輻輳ウィンドウ閾値を取得するため、データストリームに対応する高速リカバリのための輻輳ウィンドウ閾値を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の高速リカバリのための輻輳ウィンドウ閾値は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の高速リカバリのための輻輳ウィンドウ閾値を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが高速リカバリのための輻輳ウィンドウ閾値を変更したことを示すステップを含む。
【００６４】
具体的には、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの高速リカバリのための輻輳ウィンドウ閾値が変更される必要があると決定された場合、この場合、変更されるべき内容は、高速リカバリのための輻輳ウィンドウ閾値である。第１のデバイス（例えば、送信エンド）は、データストリームに対応する高速リカバリのための輻輳ウィンドウ閾値をより適切な第１の高速リカバリのための輻輳ウィンドウ閾値に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の高速リカバリのための輻輳ウィンドウ閾値は、第１のデバイスにより予め設定されてもよい。具体的には、第１の高速リカバリのための輻輳ウィンドウ閾値は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００６５】
適切な第１の高速リカバリのための輻輳ウィンドウ閾値を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが高速リカバリのための輻輳ウィンドウ閾値を変更したことを示す。
【００６６】
任意選択で、TCPパラメータがスロースタートステップである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のスロースタートステップを取得するため、データストリームに対応するスロースタートステップを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のスロースタートステップは予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１のスロースタートステップを取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスがスロースタートステップを変更したことを示すステップを含む。
【００６７】
具体的には、スロースタートステップは、送信エンドがスロースタート中に輻輳ウィンドウを増加させるステップである。現在、パケットのACKが受信される毎に、輻輳ウィンドウは1だけ増加し、RTTの各期間内に、輻輳ウィンドウは指数的に増加する。しかし、高い遅延を有するネットワークにおいて、送信エンドがタイムアウト後の再送信中にスロースタート段階に再び入ったときにスロースタートの持続時間を低減し、動的に変化するネットワーク状態に適合するために、スロースタートステップは、実際の状況に従って変更される必要がある。
【００６８】
第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPのスロースタートステップが変更される必要があると決定された場合、この場合、TCPパラメータは、スロースタートステップである。第１のデバイス（例えば、送信エンド）は、データストリームに対応するスロースタートステップをより適切な第１のスロースタートステップに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のスロースタートステップは、第１のデバイスにより予め設定されてもよい。具体的には、第１のスロースタートステップは、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００６９】
適切な第１のスロースタートステップを選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスがスロースタートステップを変更したことを示す。
【００７０】
任意選択で、TCPパラメータが輻輳回避ステップである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の輻輳回避ステップを取得するため、データストリームに対応する輻輳回避ステップを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の輻輳回避ステップは予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の輻輳回避ステップを取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが輻輳回避ステップを変更したことを示すステップを含む。
【００７１】
具体的には、輻輳回避ステップは、送信エンドが輻輳回避中に輻輳ウィンドウを増加させるステップである。現在、パケットのACKが受信される毎に、輻輳ウィンドウは1/Cwndだけ増加し、RTTの各期間内に、輻輳ウィンドウは1だけ増加する。しかし、高い遅延を有するネットワークにおいて、輻輳回避の持続時間を低減するために、輻輳回避ステップは、実際の状況に従って変更される必要がある。
【００７２】
第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの輻輳回避ステップが変更される必要があると決定された場合、この場合、TCPパラメータは、輻輳回避ステップである。第１のデバイス（例えば、送信エンド）は、データストリームに対応する輻輳回避ステップをより適切な第１の輻輳回避ステップに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の輻輳回避ステップは、第１のデバイスにより予め設定されてもよい。具体的には、第１の輻輳回避ステップは、一般的に、伝送される必要があるファイルのサイズ、送信エンドにおけるサーバの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００７３】
適切な第１の輻輳回避ステップを選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが輻輳回避ステップを変更したことを示す。
【００７４】
任意選択で、TCPパラメータがスロースタートACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のスロースタートACK応答頻度を取得するため、データストリームに対応するスロースタートACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のスロースタートACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１のスロースタートACK応答頻度を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスがスロースタートACK応答頻度を変更したことを示すステップを含む。
【００７５】
具体的には、この実施例では、スロースタートACK応答頻度は、第２のデバイスと交渉することなく、第１のデバイスのみにより決定されてもよい。第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPのスロースタートACK応答頻度が変更される必要があると決定された場合、この場合、TCPパラメータは、スロースタートACK応答頻度である。第１のデバイス（例えば、送信エンド）は、データストリームに対応するスロースタートACK応答頻度をより適切な第１のスロースタートACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のスロースタートACK応答頻度は、第１のデバイスにより予め設定されてもよい。具体的には、第１のスロースタートACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００７６】
適切な第１のスロースタートACK応答頻度を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスがスロースタートACK応答頻度を変更したことを示す。
【００７７】
任意選択で、TCPパラメータが輻輳回避ACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の輻輳回避ACK応答頻度を取得するため、データストリームに対応する輻輳回避ACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の輻輳回避ACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の輻輳回避ACK応答頻度を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが輻輳回避ACK応答頻度を変更したことを示すステップを含む。
【００７８】
具体的には、この実施例では、輻輳回避ACK応答頻度は、第２のデバイスと交渉することなく、第１のデバイスのみにより決定されてもよい。第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの輻輳回避ACK応答頻度が変更される必要があると決定された場合、この場合、TCPパラメータは、輻輳回避ACK応答頻度である。第１のデバイス（例えば、送信エンド）は、第１のサービスに対応する輻輳回避ACK応答頻度をより適切な第１の輻輳回避ACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の輻輳回避ACK応答頻度は、第１のデバイスにより予め設定されてもよい。具体的には、第１の輻輳回避ACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００７９】
適切な第１の輻輳回避ACK応答頻度を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが輻輳回避ACK応答頻度を変更したことを示す。
【００８０】
任意選択で、TCPパラメータが高速リカバリACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の高速リカバリACK応答頻度を取得するため、データストリームに対応する高速リカバリACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の高速リカバリACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の高速リカバリACK応答頻度を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが高速リカバリACK応答頻度を変更したことを示すステップを含む。
【００８１】
この実施例では、高速リカバリACK応答頻度は、第２のデバイスと交渉することなく、第１のデバイスのみにより決定されてもよい。第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの高速リカバリACK応答頻度が変更される必要があると決定された場合、この場合、TCPパラメータは、高速リカバリACK応答頻度である。第１のデバイス（例えば、送信エンド）は、データストリームに対応する高速リカバリACK応答頻度をより適切な第１の高速リカバリACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の高速リカバリACK応答頻度は、第１のデバイスにより予め設定されてもよい。具体的には、第１の高速リカバリACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００８２】
適切な第１の高速リカバリACK応答頻度を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが高速リカバリACK応答頻度を変更したことを示す。
【００８３】
任意選択で、TCPパラメータが通常送信ACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の通常送信ACK応答頻度を取得するため、データストリームに対応する通常送信ACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の通常送信ACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、TCPパラメータの変更結果を生成するステップは、変更された第１の通常送信ACK応答頻度を取得した後に、第１のデバイスにより、変更結果を生成するステップであり、変更結果は、第１のデバイスが通常送信ACK応答頻度を変更したことを示すステップを含む。
【００８４】
この実施例では、通常送信ACK応答頻度は、第２のデバイスと交渉することなく、第１のデバイスのみにより決定されてもよい。第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの通常送信ACK応答頻度が変更される必要があると決定された場合、この場合、TCPパラメータは、通常送信ACK応答頻度である。第１のデバイス（例えば、送信エンド）は、データストリームに対応する通常送信ACK応答頻度をより適切な第１の通常送信ACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の通常送信ACK応答頻度は、第１のデバイスにより予め設定されてもよい。具体的には、第１の通常送信ACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【００８５】
適切な第１の通常送信ACK応答頻度を選択した後に、第１のデバイスは、変更結果を生成し、変更結果は、第１のデバイスが通常送信ACK応答頻度を変更したことを示す。
【００８６】
図２は、本発明によるデータ伝送方法の実施例の実現原理の第１の図である。
【００８７】
図３は、本発明によるデータ伝送方法の実施例のパケットフォーマットの第１の概略図である。
【００８８】
任意選択で、TCPパラメータが輻輳制御アルゴリズムである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の輻輳制御アルゴリズムを取得するため、データストリームに対応する輻輳制御アルゴリズムを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の輻輳制御アルゴリズムは予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、輻輳制御アルゴリズム交渉要求メッセージを第２のデバイスに送信するステップであり、輻輳制御アルゴリズム交渉要求メッセージは、第１の輻輳制御アルゴリズムが予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の輻輳制御アルゴリズムを含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってデータ転送プロトコルの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の輻輳制御アルゴリズムが成功して変更されたことを示す変更結果を生成し、或いは、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の輻輳制御アルゴリズムが変更されなかったことを示す変更結果を生成するステップを含む。
【００８９】
具体的には、図２に示すように、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、輻輳制御アルゴリズムが変更される必要があると決定された場合、この場合、変更されるべき内容は、輻輳制御アルゴリズムである。第１のデバイス（例えば、送信エンド）は、データストリームに対応する輻輳制御アルゴリズムをより適切な第１の輻輳制御アルゴリズムに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の輻輳制御アルゴリズムは、第１のデバイスにより複数の予め設定された輻輳制御アルゴリズムから選択されてもよい。
【００９０】
衛星ネットワーク及びダイヤルアップアクセスネットワークのような低速ネットワークと現在の高速インターネットとを含む異なるネットワークのために、且つ、検索エンジンに関与する小さいオブジェクトとファイルダウンロードに関与する大きいオブジェクトとを含む異なるサービスのために、複数の輻輳制御アルゴリズムが存在する。輻輳制御アルゴリズムは、選択的確認応答（Selective  Acknowledgement、略称SACK）、BIC、CUBIC、compound  TCP、高速伝送制御プロトコル（High  Speed  Transmission  Control  Protoco、略称HSTCP）、イクシプリシト制御プロトコル（eXplicit  Control  Protocol、略称XCP）等を具体的に含む。
【００９１】
適切な第１の輻輳制御アルゴリズムを選択した後に、第１のデバイスは、輻輳制御アルゴリズム交渉要求メッセージを第２のデバイスに送信し、輻輳制御アルゴリズム交渉要求メッセージは、第１の輻輳制御アルゴリズムが予め設定された条件を満たすか否か、すなわち、第２のデバイスが第１の輻輳制御アルゴリズムをサポートするか否かを第２のデバイスが決定するように、第１の輻輳制御アルゴリズムを含む情報であり、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、輻輳制御アルゴリズム交渉要求メッセージである。
【００９２】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された条件を満たすか否かを示すメッセージを含み、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の輻輳制御アルゴリズムが成功して変更されたことを示す変更結果を生成し、或いは、第１の輻輳制御アルゴリズムが第２のデバイスの予め設定された条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の輻輳制御アルゴリズムが変更されなかったことを示す変更結果を生成する。
【００９３】
図２では、送信エンドが輻輳制御アルゴリズムを変更する。開発者は、受信エンドにおいて輻輳制御アルゴリズムを変更してもよく、この場合、受信エンドは、輻輳制御アルゴリズムが成功して変更されたか否かを開発者に通知するために、送信エンドと交渉してもよい。
【００９４】
輻輳制御アルゴリズム交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、図３に示すパケットフォーマットでもよい。輻輳制御アルゴリズムオプション（Congestion  Control  Algorithm  Option）がTCPパケットに追加される。明らかに、輻輳制御アルゴリズムオプションは、TCPパケットにおける正式な内容として使用されてもよい。すなわち、輻輳制御アルゴリズムオプションは、輻輳制御アルゴリズムを示すための固定のフィールドとして使用されてもよい。輻輳制御アルゴリズムオプションの内容は、以下の表１に示される。
【表１】
0006644791.tif 000002
【００９５】
上記の表１において、輻輳制御アルゴリズム交渉要求メッセージの値「xx」は、前述の輻輳制御アルゴリズムのうち１つ、例えば、XCP、又は他の輻輳制御アルゴリズムでもよく、長さは32ビットでなくてもよい。これは、本発明において限定されない。
【００９６】
フィードバックメッセージの長さ及び値も、実際の要件に従って決定されてもよい。
【００９７】
図４は、本発明によるデータ伝送方法の実施例の実現原理の第２の図である。
【００９８】
図５は、本発明によるデータ伝送方法の実施例のパケットフォーマットの第２の概略図である。
【００９９】
任意選択で、TCPパラメータが初期輻輳ウィンドウ及び受信機ウィンドウである場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の初期輻輳ウィンドウを取得するため、データストリームに対応する初期輻輳ウィンドウを変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の初期輻輳ウィンドウは予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、初期輻輳ウィンドウ要求メッセージを第２のデバイスに送信するステップであり、初期輻輳ウィンドウ要求メッセージは、第１の初期輻輳ウィンドウに対応する受信機ウィンドウを第１の受信機ウィンドウに変更することが予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の初期輻輳ウィンドウを含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の初期輻輳ウィンドウ及び第１の受信機ウィンドウが成功して変更されたことを示す変更結果を生成し、或いは、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の初期輻輳ウィンドウ及び第１の受信機ウィンドウが変更されなかったことを示す変更結果を生成するステップを含む。
【０１００】
具体的には、スロースタートは、TCPにおいて使用される輻輳制御機構であり、スロースタートは、指数的増加期間とも呼ばれる。輻輳を回避するために、スロースタートでは、輻輳ウィンドウ（Congestion  Window、略称Cwnd）は、送信機のTCPに追加される。スロースタートは、確認応答が受信される毎にTCPの送信エンドの輻輳ウィンドウが増加することを示す。ウィンドウの増加したサイズは、確認応答されたパケットセグメントの量である。この状況は、いくつかのセグメントが受信されないまで、或いはウィンドウのサイズが予め規定された閾値に到達するまで続く。ロスイベントが発生した場合、ネットワーク輻輳がTCPにおいて発生したと考えられ、ネットワーク輻輳を低減するための手段が使用される。ロスイベントが発生した場合又は閾値に到達した場合、TCPにおいて線形増加段階に入る。この場合、ウィンドウは、ラウンドトリップ時間（Round  Trip  Time、略称RTT）の各期間の後に１つのパケットセグメントだけ増加する。
【０１０１】
例えば、他のネットワークにおいてホストへのTCPコネクションが確立された場合、輻輳ウィンドウは、１つのパケットセグメント（すなわち、他のエンドによりアドバタイズされたパケットセグメントのサイズ）に初期化されてもよく、すなわち、初期輻輳ウィンドウは、１つのパケットセグメントである。１つのACKが受信される毎に、輻輳ウィンドウは、１つのパケットセグメントだけ増加する（Cwndは、バイト単位で測られるが、スロースタートでは、輻輳ウィンドウは、パケットセグメントのサイズで増加する）。送信エンドは、送信上限として、輻輳ウィンドウ及び受信機ウィンドウ（Receiver  Window、略称Rwnd）において、より小さい値を選択する。輻輳ウィンドウは、送信機により使用されるトラヒック制御手段であり、受信機ウィンドウは、受信エンドにより使用されるトラヒック制御手段である。初期輻輳ウィンドウは、実際の状況に従って更に変更されてもよい。
【０１０２】
図４に示すように、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの初期輻輳ウィンドウが変更される必要があると決定された場合、この場合、TCPパラメータは、初期輻輳ウィンドウ及び受信機ウィンドウである。第１のデバイス（例えば、送信エンド）は、データストリームに対応する初期輻輳ウィンドウをより適切な第１の初期輻輳ウィンドウに変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の初期輻輳ウィンドウは、第１のデバイスにより予め設定されてもよい。具体的には、第１の初期輻輳ウィンドウは、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される必要がある。
【０１０３】
適切な第１の初期輻輳ウィンドウを選択した後に、第１のデバイスは、初期輻輳ウィンドウ要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、初期輻輳ウィンドウ要求メッセージは、第１の初期輻輳ウィンドウに対応する受信機ウィンドウを第１の受信機ウィンドウに変更することが予め設定された条件を満たすか否かを第２のデバイスが決定するように、第１の初期輻輳ウィンドウ輻輳制御アルゴリズムを含む。第１の初期輻輳ウィンドウは、第１のデバイスにより予め設定されてもよい。第１の受信機ウィンドウは、第１の初期輻輳ウィンドウに対応しており、第１の受信機ウィンドウのサイズは、第１の初期輻輳ウィンドウのサイズと同じでもよく、或いは異なってもよく、サイズは、小さいファイルについて同じであるように設定されてもよい。この場合、データ転送プロトコル交渉要求メッセージは、具体的には、受信機ウィンドウ交渉要求メッセージである。
【０１０４】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の初期輻輳ウィンドウ及び第１の受信機ウィンドウが成功して変更されたことを示す変更結果を生成し、或いは、第１の受信機ウィンドウが第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の初期輻輳ウィンドウ及び第１の受信機ウィンドウが変更されなかったことを示す変更結果を生成する。
【０１０５】
受信機ウィンドウ交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、図５に示すパケットフォーマットでもよい。初期輻輳ウィンドウ変更オプション（Initial  Cwnd  Modify  Option）がTCPパケットに追加される。明らかに、初期輻輳ウィンドウ変更オプションは、TCPパケットにおける正式な内容として使用されてもよい。すなわち、初期輻輳ウィンドウ変更オプションは、初期輻輳ウィンドウを示すための固定のフィールドとして使用されてもよい。初期輻輳ウィンドウ変更オプションの内容は、以下の表２に示される。
【表２】
0006644791.tif 000003
【０１０６】
上記の表２において、初期輻輳ウィンドウ要求メッセージの値「xx」は、実際に要求されるいずれかの長さの初期輻輳ウィンドウでもよく、メッセージの長さは32ビットでなくてもよい。これは、本発明において限定されない。
【０１０７】
フィードバックメッセージの長さ及び値も、実際の要件に従って決定されてもよい。
【０１０８】
図６は、本発明によるデータ伝送方法の実施例の実現原理の第３の図である。
【０１０９】
図７は、本発明によるデータ伝送方法の実施例のパケットフォーマットの第３の概略図である。
【０１１０】
任意選択で、TCPパラメータがスロースタートACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１のスロースタートACK応答頻度を取得するため、データストリームに対応するスロースタートACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１のスロースタートACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、スロースタートACK応答頻度交渉要求メッセージを第２のデバイスに送信するステップであり、スロースタートACK応答頻度交渉要求メッセージは、第１のスロースタートACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１のスロースタートACK応答頻度を含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１のスロースタートACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１のスロースタートACK応答頻度が変更されなかったことを示す変更結果を生成するステップを含む。
【０１１１】
具体的には、スロースタート中に、例えば、初めに、送信機は、パケットセグメントを送信し始め、次に、ACKを待機する。ACKが受信された場合、輻輳ウィンドウは1から2に増加し、すなわち、２つのパケットセグメントが送信されてもよい。２つのパケットセグメントについてのACKが受信された場合、輻輳ウィンドウは4に増加する。これは、指数的増加関係である。輻輳ウィンドウの増加は、ACK応答頻度に依存する。現在、２つのパケットが受信される毎に、受信エンドは、１つのACKを送信する。ACKが失われた場合又は少量のパケットが受信された場合、輻輳ウィンドウは、ゆっくり増加し、その結果、スロースタートの持続時間が増加する。したがって、スロースタートの持続時間は、ACK応答頻度を変更することにより低減されてもよい。
【０１１２】
図６に示すように、TCPのスロースタートACK応答頻度が変更される必要があると第１のデバイス（例えば、送信エンド）が決定した場合、この場合、TCPパラメータは、スロースタートACK応答頻度である。第１のデバイスは、第１のデバイスに対応するデータストリームに対応するスロースタートACK応答頻度を現在のサービスに適したスロースタートACK応答頻度、すなわち、第１のスロースタートACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１のスロースタートACK応答頻度は、予め設定される。具体的には、スロースタートACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドにおけるサーバの能力、ネットワーク帯域幅等に基づいて決定される。
【０１１３】
第１のデバイスは、スロースタートACK応答頻度交渉要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、スロースタートACK応答頻度交渉要求メッセージは、第１のスロースタートACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１のスロースタートACK応答頻度を含み、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、スロースタートACK応答頻度交渉要求メッセージである。
【０１１４】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１のスロースタートACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１のスロースタートACK応答頻度が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１のスロースタートACK応答頻度が変更されなかったことを示す変更結果を生成する。
【０１１５】
スロースタートACK応答頻度交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、図７に示すパケットフォーマットでもよい。スロースタートACK応答頻度オプション（Slow  Start  ACK  Frequency  Option）がTCPパケットに追加される。明らかに、スロースタートACK応答頻度オプションは、TCPパケットにおける正式な内容として使用されてもよい。すなわち、スロースタートACK応答頻度オプションは、スロースタートACK応答頻度を示すための固定のフィールドとして使用されてもよい。スロースタートACK応答頻度オプションの内容は、以下の表３に示される。
【表３】
0006644791.tif 000004
【０１１６】
上記の表３において、スロースタートACK応答頻度交渉要求メッセージの値「xx」は、実際に要求されるいずれかのACK応答頻度でもよく、メッセージの長さは実際の要件に従って決定されてもよく、例えば、32ビットである。これは、本発明において限定されない。
【０１１７】
フィードバックメッセージの長さ及び値も、実際の要件に従って決定されてもよい。
【０１１８】
任意選択で、TCPパラメータが輻輳回避ACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の輻輳回避ACK応答頻度を取得するため、データストリームに対応する輻輳回避ACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の輻輳回避ACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、輻輳回避ACK応答頻度交渉要求メッセージを第２のデバイスに送信するステップであり、輻輳回避ACK応答頻度交渉要求メッセージは、第１の輻輳回避ACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の輻輳回避ACK応答頻度を含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の輻輳回避ACK応答頻度が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の輻輳回避ACK応答頻度が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の輻輳回避ACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の輻輳回避ACK応答頻度が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の輻輳回避ACK応答頻度が変更されなかったことを示す変更結果を生成するステップを含む。
【０１１９】
具体的には、スロースタートから、ネットワーク帯域幅リソースの使用を最大化するために、Cwndが高速に増加し得ることが習得されてもよい。しかし、Cwndは無限に増加することはできず、特定の制限が必要とされる。スロースタート閾値（Slow  Start  Threshold、SSThresh）と呼ばれる変数がTCPにおいて使用される。Cwndがその値を超えると、スロースタートの処理が終了し、輻輳回避段階に入る。TCPのほとんどの実現では、SSThreshの値は65536である（これもバイト単位で測られる）。輻輳回避の主な思想は、1のステップでCwndを増加させることであり、すなわち、Cwndの値は、もはや指数的に増加しない。この場合、ウィンドウ内の全てのパケットセグメントが確認応答された場合、Cwndの値は1だけ増加し、Cwndの値は、RTTと共に線形的に増加する。これは、Cwndが過度に高速に増加するときに引き起こされるネットワーク輻輳を妨げ、ネットワークにおけるCwndの最適な値は、Cwndをゆっくり増加させることにより取得される。
【０１２０】
輻輳ウィンドウを増加させる速度は、輻輳回避中に輻輳回避ACK応答頻度を調整することにより制御されてもよい。
【０１２１】
この実施例では、第１のデバイス（例えば、送信エンド）が、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの輻輳回避ACK応答頻度が変更される必要があると決定した場合、この場合、TCPパラメータは、輻輳回避ACK応答頻度である。第１のデバイスは、データストリームに対応する輻輳回避ACK応答頻度を現在のサービスに適した輻輳回避ACK応答頻度、すなわち、第１の輻輳回避ACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の輻輳回避ACK応答頻度は、予め設定される。具体的には、輻輳回避ACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される。
【０１２２】
第１のデバイスは、輻輳回避ACK応答頻度交渉要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、輻輳回避ACK応答頻度交渉要求メッセージは、第１の輻輳回避ACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の輻輳回避ACK応答頻度を含み、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、輻輳回避ACK応答頻度交渉要求メッセージである。
【０１２３】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の輻輳回避ACK応答頻度が予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の輻輳回避ACK応答頻度が予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の輻輳回避ACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の輻輳回避ACK応答頻度が予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の輻輳回避ACK応答頻度が変更されなかったことを示す変更結果を生成する。
【０１２４】
輻輳回避ACK応答頻度交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、スロースタートACK応答頻度交渉要求メッセージ及びフィードバックメッセージのものと同様である。詳細はここでは再び説明されない。
【０１２５】
任意選択で、TCPパラメータが高速リカバリACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の高速リカバリACK応答頻度を取得するため、データストリームに対応する高速リカバリACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の高速リカバリACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、高速リカバリACK応答頻度交渉要求メッセージを第２のデバイスに送信するステップであり、高速リカバリACK応答頻度交渉要求メッセージは、第１の高速リカバリACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の高速リカバリACK応答頻度を含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の高速リカバリACK応答頻度が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の高速リカバリACK応答頻度が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の高速リカバリACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の高速リカバリACK応答頻度が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の高速リカバリACK応答頻度が変更されなかったことを示す変更結果を生成するステップを含む。
【０１２６】
具体的には、TCPにおいて、すなわち、３つの同一のACKが受信された場合、高速再送信が存在する。TCPにおける３つの同一のACKは、パケットロスを決定するために使用される。この場合、高速再送信が実行される。高速再送信中に、SSThresh及び輻輳ウィンドウのサイズがリセットされ、輻輳回避段階に再び入る。高速リカバリアルゴリズムは、前述の高速再送信アルゴリズムに基づいて追加される。３つの重複するACKが受信された場合、この場合、TCPにおいて、輻輳回避段階の代わりに高速リカバリ段階に最終的に入る。一般的に、高速再送信及び高速リカバリアルゴリズムは、同時に使用される。高速リカバリの思想は、「パケットの維持」の原理であり、すなわち、同じ時点でのネットワークにおけるパケットの量は、一定である。「新たな」パケットは、「古い」パケットがネットワークを離れた後にのみネットワークに送信されることができる。送信機が重複するACKを受信した場合、これは、TCPのACK機構に従って、パケットがネットワークを離れたことを示し、この場合、Cwndは1だけ増加する。この原理に厳密に従うことができる場合、ネットワーク輻輳はめったに発生しない。
【０１２７】
高速リカバリ中に、SSThresh及び輻輳ウィンドウのサイズもリセットされる。リカバリの処理が終了した後に、輻輳回避状態に再び入る。
【０１２８】
高速リカバリの処理において、輻輳ウィンドウを増加させる速度は、高速リカバリACK応答頻度を調整することにより制御されてもよい。
【０１２９】
この実施例では、第１のデバイス（例えば、送信エンド）が、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの高速リカバリACK応答頻度が変更される必要があると決定した場合、この場合、TCPパラメータは、高速リカバリACK応答頻度である。第１のデバイスは、データストリームに対応する高速リカバリACK応答頻度を現在のサービスに適した高速リカバリACK応答頻度、すなわち、第１の高速リカバリACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の高速リカバリACK応答頻度は、予め設定される。具体的には、高速リカバリACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドの能力、ネットワーク帯域幅等に基づいて決定される。
【０１３０】
第１のデバイスは、高速リカバリACK応答頻度交渉要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、高速リカバリACK応答頻度交渉要求メッセージは、第１の高速リカバリACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の高速リカバリACK応答頻度を含み、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、高速リカバリACK応答頻度交渉要求メッセージである。
【０１３１】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の高速リカバリACK応答頻度が予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の高速リカバリACK応答頻度が予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の高速リカバリACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の高速リカバリACK応答頻度が予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の高速リカバリACK応答頻度が変更されなかったことを示す変更結果を生成する。
【０１３２】
高速リカバリACK応答頻度交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、スロースタートACK応答頻度交渉要求メッセージ及びフィードバックメッセージのものと同様である。詳細はここでは再び説明されない。
【０１３３】
任意選択で、TCPパラメータが通常送信ACK応答頻度である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の通常送信ACK応答頻度を取得するため、データストリームに対応する通常送信ACK応答頻度を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の通常送信ACK応答頻度は予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、通常送信ACK応答頻度交渉要求メッセージを第２のデバイスに送信するステップであり、通常送信ACK応答頻度交渉要求メッセージは、第１の通常送信ACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の通常送信ACK応答頻度を含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の通常送信ACK応答頻度が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の通常送信ACK応答頻度が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の通常送信ACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の通常送信ACK応答頻度が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の通常送信ACK応答頻度が変更されなかったことを示す変更結果を生成するステップを含む。
【０１３４】
具体的には、可変サイズのスライディングウィンドウ（すなわち、送信ウィンドウ）がトラヒックを制御するためにTCPにおいて使用され、ウィンドウのサイズはバイト単位で測られる。
【０１３５】
コネクションの確立中に、送信ウィンドウは、送信エンド及び受信エンドにより交渉され、輻輳ウィンドウ及び受信機ウィンドウの双方に基づいて決定される。送信ウィンドウの上限=Min[Rwnd,Cwnd]である。Rwnd<Cwndである場合、送信ウィンドウの最大値は、受信エンドの受信能力により制限される。Cwnd<Rwndである場合、送信ウィンドウの最大値は、ネットワーク輻輳により制限される。
【０１３６】
送信ウィンドウが500バイトであり、送信エンドが400バイトのデータを送信している場合、最初の200バイトのデータについての確認応答のみが受信され、ウィンドウのサイズは変更されないままである。送信ウィンドウが500バイトであるため、300バイトのデータが更に送信されてもよい。
【０１３７】
送信エンドが受信エンドから最初の400バイトのデータについての確認応答を受信した場合、受信エンドは、受信機ウィンドウが400バイトに低減されたことを送信エンドに通知する。現在、送信エンドは、最大で400バイトのデータを更に送信してもよい。
【０１３８】
通常送信ACK応答頻度が調整され、すなわち、受信エンドがACKを送信する頻度が調整される。一般的に、２つのパケットが受信される毎に、受信エンドは、１つのACKで応答する。明らかに、１つのパケットが受信される毎に受信エンドが１つのACKで応答するように頻度が変更されてもよく、或いはACK応答頻度は、送信ウィンドウのサイズが調整され得るように、大量のデータの送信中に低減されてもよい。
【０１３９】
第１のデバイス（例えば、送信エンド）が、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの通常送信ACK応答頻度が変更される必要があると決定した場合、この場合、TCPパラメータは、通常送信ACK応答頻度である。第１のデバイスは、データストリームに対応する通常送信ACK応答頻度を現在のサービスに適した通常送信ACK応答頻度、すなわち、第１の通常送信ACK応答頻度に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の通常送信ACK応答頻度は、予め設定される。具体的には、通常送信ACK応答頻度は、一般的に、伝送される必要があるファイルのサイズ、送信エンドにおけるサーバの能力、ネットワーク帯域幅等に基づいて決定される。
【０１４０】
第１のデバイスは、通常送信ACK応答頻度交渉要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、通常送信ACK応答頻度交渉要求メッセージは、第１の通常送信ACK応答頻度が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の通常送信ACK応答頻度を含み、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、通常送信ACK応答頻度交渉要求メッセージである。
【０１４１】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の通常送信ACK応答頻度が予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の通常送信ACK応答頻度が予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の通常送信ACK応答頻度が成功して変更されたことを示す変更結果を生成し、或いは、第１の通常送信ACK応答頻度が予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の通常送信ACK応答頻度が変更されなかったことを示す変更結果を生成する。
【０１４２】
通常送信ACK応答頻度交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、スロースタートACK応答頻度交渉要求メッセージ及びフィードバックメッセージのものと同様である。詳細はここでは再び説明されない。
【０１４３】
図８は、本発明によるデータ伝送方法の実施例の実現原理の第７の図である。
【０１４４】
図９は、本発明によるデータ伝送方法の実施例のパケットフォーマットの第４の概略図である。
【０１４５】
任意選択で、TCPパラメータが最大パケット長である場合、第１のデバイスにより、変更されたTCPパラメータを取得するためにTCPパラメータを変更するステップは、変更された第１の最大パケット長を取得するため、データストリームに対応する最大パケット長を変更するためにデータ転送プロトコル変更インタフェースを呼び出すステップであり、第１の最大パケット長は予め設定されるステップを含み、第１のデバイスにより、データ転送プロトコル交渉要求メッセージを第２のデバイスに送信するステップは、第１のデバイスにより、最大パケット長交渉要求メッセージを第２のデバイスに送信するステップであり、最大パケット長交渉要求メッセージは、第１の最大パケット長が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の最大パケット長を含むステップを含み、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するステップは、第１のデバイスにより、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の最大パケット長が第２のデバイスの予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の最大パケット長が第２のデバイスの予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の最大パケット長が成功して変更されたことを示す変更結果を生成し、或いは、第１の最大パケット長が第２のデバイスの予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスにより、第１の最大パケット長が変更されなかったことを示す変更結果を生成するステップを含む。
【０１４６】
具体的には、現在のTCPの最大パケット長は、送信エンドと受信エンドとの間のリンクの最大伝送単位（Maximum  Transmission  Unit、略称MTU）に強く関係する。これは、中間のネットワークにおけるリンクのMTU及びサービス要件を無視する。
【０１４７】
MTUは、通信プロトコルの特定のレイヤにおいて転送され得る最大パケットのサイズ（バイト単位）を示す。送信エンドのMTUが受信エンドのMTUに合致しない場合、パケットロス率が増加し、ネットワーク速度が低減される。
【０１４８】
この実施例では、図８に示すように、第１のデバイス（例えば、送信エンド）が、第１のデバイスについての情報、第２のデバイスについての情報、データストリームで現在搬送されているサービスについての情報、又はネットワーク状態情報のうち少なくとも１つに従って、TCPの最大パケット長が変更される必要があると決定した場合、この場合、TCPパラメータは、最大パケット長である。第１のデバイスは、データストリームに対応する最大パケット長を現在のサービスに適した最大パケット長、すなわち、第１の最大パケット長に変更するためにデータ転送プロトコル変更インタフェースを呼び出し、第１の最大パケット長は、予め設定される。具体的には、最大パケット長は、一般的に、送信エンド及び受信エンドの能力、ネットワーク帯域幅等に基づいて決定される。
【０１４９】
第１のデバイスは、最大パケット長交渉要求メッセージを第２のデバイス（例えば、受信エンド）に送信し、最大パケット長交渉要求メッセージは、第１の最大パケット長が予め設定された変更条件を満たすか否かを第２のデバイスが決定するように、第１の最大パケット長を含み、この場合、データ転送プロトコル交渉要求メッセージは、具体的には、最大パケット長交渉要求メッセージである。
【０１５０】
第１のデバイスは、第２のデバイスにより送信されたフィードバックメッセージを受信し、フィードバックメッセージは、第１の最大パケット長が予め設定された変更条件を満たすか否かを示すメッセージを含み、第１の最大パケット長が予め設定された変更条件を満たすことをフィードバックメッセージが示す場合、第１のデバイスは、第１の最大パケット長が成功して変更されたことを示す変更結果を生成し、或いは、第１の最大パケット長が予め設定された変更条件を満たさないことをフィードバックメッセージが示す場合、第１のデバイスは、第１の最大パケット長が変更されなかったことを示す変更結果を生成する。
【０１５１】
最大パケット長交渉要求メッセージ及びフィードバックメッセージの具体的なパケットフォーマットは、図９に示すパケットフォーマットでもよい。最大パケット長変更オプション（Max  Packet  Length  Modify）がTCPパケットに追加される。明らかに、最大パケット長変更オプションは、TCPパケットにおける正式な内容として使用されてもよい。すなわち、最大パケット長変更オプションは、最大パケット長を示すための固定のフィールドとして使用されてもよい。最大パケット長変更オプションの内容は、以下の表４に示される。
【表４】
0006644791.tif 000005
【０１５２】
上記の表４において、最大パケット長交渉要求メッセージの値「xx」は、実際に要求されるいずれかのパケット長でもよく、メッセージの長さは実際の要件に従って決定されてもよく、例えば、32ビットである。これは、本発明において限定されない。
【０１５３】
フィードバックメッセージの長さ及び値も、実際の要件に従って決定されてもよい。
【０１５４】
この実施例の技術的効果は、前述の実施例のものと同様であり、詳細はここでは再び説明されない。
【０１５５】
図１０は、本発明によるデータ伝送方法の他の実施例のフローチャートである。この実施例の実行主体は、第２のデバイスである。第２のデバイスは、TCPの送信エンド又は受信エンドでもよい。すなわち、第２のデバイスは、サーバ又はクライアントデバイスでもよい。図１０に示すように、この実施例において提供されるデータ伝送方法は、以下のステップを含む。
【０１５６】
ステップ1001：第２のデバイスは、第１のデバイスにより送信されたデータ転送プロトコル交渉要求メッセージを受信し、データ転送プロトコル交渉要求メッセージは、第１のデバイスにより変更されたTCPパラメータを含む。
【０１５７】
ステップ1002：第２のデバイスは、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定する。
【０１５８】
ステップ1003：第２のデバイスは、フィードバックメッセージを生成し、フィードバックメッセージを第１のデバイスに送信する。
【０１５９】
任意選択で、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【０１６０】
この実施例の実現原理及び技術的効果は、図１に示す実施例のものと同様であり、詳細はここでは再び説明されない。
【０１６１】
図１１は、本発明による第１のデバイスの実施例１の概略構成図である。図１１に示すように、この実施例における第１のデバイスは、決定モジュール1101と、変更モジュール1102と、生成モジュール1103とを含んでもよい。決定モジュール1101は、データストリーム情報に従って、データストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定するように構成され、データストリーム情報は、以下の情報、すなわち、第１のデバイスについての情報、第２のデバイスについての情報、サービス情報、又はネットワーク状態情報のうち少なくとも１つを含む。
【０１６２】
変更モジュール1102は、TCPパラメータが変更される必要があると決定モジュールが決定した場合、変更されたTCPパラメータを取得するためにTCPパラメータを変更するように構成される。
【０１６３】
生成モジュール1103は、TCPパラメータの変更結果を生成するように構成される。
【０１６４】
任意選択で、第１のデバイスは、データ転送プロトコル交渉要求メッセージを第２の端末に送信するように構成された送信モジュール1104であり、データ転送プロトコル交渉要求メッセージは、変更されたTCPパラメータを含み、データ転送プロトコル交渉要求メッセージは、第２のデバイスに対して、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように要求するために使用される送信モジュール1104と、第２の端末により送信されたフィードバックメッセージを受信するように構成された受信モジュール1105とを更に含み、生成モジュール1103は、フィードバックメッセージに従ってTCPパラメータの変更結果を生成するように具体的に構成される。
【０１６５】
任意選択で、データ転送プロトコル交渉要求メッセージは、データ転送プロトコルパケットであり、変更されたTCPパラメータは、データ転送プロトコルパケットにおけるオプションとして使用される。
【０１６６】
任意選択で、変更モジュール1102は、データストリームに対応する第１のソケットを生成し、変更されたTCPパラメータを取得するために、第１のソケットに対応するデータ転送プロトコル変更インタフェースを使用することにより、TCPパラメータを変更するように具体的に構成される。
【０１６７】
任意選択で、データ転送プロトコル変更インタフェースは、汎用ソケットプログラミングインタフェース及び新たなアプリケーションプログラミングインタフェースAPIを含む。
【０１６８】
任意選択で、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【０１６９】
この実施例では、第１のデバイスは、図１に示す方法の実施例における技術的解決策を実行するように構成されてもよい。第１のデバイスの実現原理及び技術的効果は、図１に示す実施例のものと同様であり、詳細はここでは再び説明されない。
【０１７０】
図１２は、本発明による第２のデバイスの実施例１の概略構成図である。図１２に示すように、この実施例における第２のデバイスは、受信モジュール1201と、処理モジュール1202と、送信モジュール1203とを含んでもよい。受信モジュール1201は、第１のデバイスにより送信されたデータ転送プロトコル交渉要求メッセージを受信するように構成され、データ転送プロトコル交渉要求メッセージは、第１のデバイスにより変更されたTCPパラメータを含み、処理モジュール1202は、変更されたTCPパラメータが予め設定された変更条件を満たすか否かを決定するように構成され、送信モジュール1203は、フィードバックメッセージを生成し、フィードバックメッセージを第１のデバイスに送信するように構成される。
【０１７１】
任意選択で、送信モジュール1203は、第１のデバイスがデータストリーム情報に従ってデータストリーム情報に対応するデータストリームにおけるデータ転送プロトコルTCPパラメータが変更される必要があるか否かを決定するように、第２のデバイスについての情報を第１のデバイスに事前に送信するように更に構成されてもよい。
【０１７２】
任意選択で、TCPパラメータは、以下の項目、すなわち、初期輻輳ウィンドウ、タイムアウト後の再送信のための輻輳ウィンドウ、高速リカバリのための輻輳ウィンドウ、スロースタート閾値、タイムアウト後の再送信のためのスロースタート閾値、高速リカバリのための輻輳ウィンドウ閾値、スロースタートステップ、輻輳回避ステップ、輻輳制御アルゴリズム、受信機ウィンドウ、スロースタートACK応答頻度、輻輳回避ACK応答頻度、高速リカバリACK応答頻度、通常送信ACK応答頻度、又は最大パケット長のうちいずれか１つ以上を含む。
【０１７３】
この実施例では、第２のデバイスは、図１０に示す方法の実施例における技術的解決策を実行するように構成されてもよい。第２のデバイスの実現原理及び技術的効果は、図１０に示す実施例のものと同様であり、詳細はここでは再び説明されない。
【０１７４】
当業者は、方法の実施例のステップの全部又は一部が、関係するハードウェアに命令するプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。プログラムが実行した場合、方法の実施例のステップが実行される。前述の記憶媒体は、ROM、RAM、磁気ディスク又は光ディスクのような、プログラムコードを記憶することができるいずれかの媒体を含む。
【０１７５】
最後に、前述の実施例は、単に本発明の技術的解決策を説明することを意図するものであり、本発明を限定することを意図するものではない点に留意すべきである。本発明について前述の実施例を参照して詳細に説明したが、当業者は、本発明の実施例の技術的解決策の範囲を逸脱することなく、依然として前述の実施例において説明した技術的解決策に変更を行ってもよく、或いはその一部又は全部の技術的特徴に等価置換を行ってもよいことを理解するべきである。
【図１】
0006644791.tif 000006
【図２】
0006644791.tif 000007
【図３】
0006644791.tif 000008
【図４】
0006644791.tif 000009
【図５】
0006644791.tif 000010
【図６】
0006644791.tif 000011
【図７】
0006644791.tif 000012
【図８】
0006644791.tif 000013
【図９】
0006644791.tif 000014
【図１０】
0006644791.tif 000015
【図１１】
0006644791.tif 000016
【図１２】
0006644791.tif 000017