(57)【要約】【課題】本発明は、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することを目的とする。【解決手段】本願発明のデータパケット伝送システムは、送信側の対向装置２０は、輻輳ウィンドウが所定値超となった場合は待機中状態である旨を通知する複数のＴＣＰ接続部２１と、ＴＣＰ接続部の使用状態を管理する管理部２２と、管理部２２から待機中状態にあるＴＣＰコネクションのソケットを取得し、伝送対象となる単一のＴＣＰコネクションの属するオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して待機中状態の複数のソケットに割り振る送信部２３と、を備える。【選択図】図１
2013121028.tif 000002
【特許請求の範囲】
【請求項１】
１以上の物理リンク上でＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送システムであって、
送信側の前記対向装置は、
ＴＣＰコネクションを確立して待機中状態である旨を通知する複数のＴＣＰ接続部と、
前記ＴＣＰ接続部からの通知を受信することによって前記ＴＣＰ接続部の使用状態を管理する管理部と、
前記管理部から待機中状態にあるＴＣＰコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振る送信部と、
を備え、
受信側の前記対向装置は、
ＴＣＰコネクションを確立して前記分割データを受信する複数のＴＣＰ接続部と、
前記分割データの先頭位置を示すポインタに対応した位置から受信バッファに書き込み、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを出力する受信部を備える、
データパケット伝送システム。
【請求項２】
前記送信側のＴＣＰ接続部は、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出し、
前記管理部は、輻輳ウィンドウの低下又はリンクの異常を検出した前記送信側のＴＣＰ接続部にソケット異常が発生した旨を前記送信部に通知し、
前記送信部は、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振る
請求項１に記載のデータパケット伝送システム。
【請求項３】
前記送信側のＴＣＰ接続部は、輻輳ウィンドウが設定値を超えるまでダミーデータパケットを送出することによって前記待機中状態となることを特徴とする請求項１又は２に記載のデータパケット伝送システム。
【請求項４】
１以上の物理リンク上でＴＣＰコネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送方法であって、
送信側のＴＣＰ接続部が、輻輳ウィンドウが所定値超となった待機中状態である旨を管理部に通知することによって、管理部が送信側のＴＣＰ接続部の使用状態を管理する使用状態管理手順と、
送信部が、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振り、送信側のＴＣＰ接続部が送信部からの指示に従って前記分割データを送信する分割データ送信手順と、
受信側のＴＣＰ接続部がＴＣＰコネクションを確立して前記分割データを受信し、受信部が、前記分割データの先頭位置を示すポインタに対応した位置から前記分割データを受信バッファに書き込む分割データ受信手順と、
受信部が、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを読み出すオリジナルデータ読み出し手順と、
を順に有するデータパケット伝送方法。
【請求項５】
送信側のＴＣＰ接続部が、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出するソケット異常検出手順と、
前記送信部が、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振るソケット代替手順と、
を前記分割データ送信手順と前記分割データ受信手順の間にさらに有する
ことを特徴とする請求項４に記載のデータパケット伝送方法。
【請求項６】
前記使用状態管理手順において、輻輳ウィンドウが設定値を超えるまで送信側のＴＣＰ接続部がダミーデータパケットを送出することによって前記待機中状態となることを特徴とする請求項４又は５に記載のデータパケット伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケット伝送方法及びシステムに係り、特に、データ送信側とデータ受信側の間の伝送路が物理帯域すべてを使用もしくは帯域保障された上限帯域において輻輳が無いシステムにおいて、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の並列コネクションを用いて高速且つ安定的にデータ伝送するデータパケット伝送方法及びシステムに関する。
【背景技術】
【０００２】
非特許文献１に示されるように、ＴＣＰによるデータ伝送では、送信側が独自に持つ輻輳ウィンドウのサイズに基づいてデータ送信のレートを決定し、この輻輳ウィンドウサイズはデータ伝送開始時点では非常に小さい値で、受信側からの確認応答パケットが返ってくる毎に僅かずつ増加させる（スロースタート）という方法をとっている。従って、データ送信の開始時点からのパケット数が一定数を超えないと理論値に近いスループットは得られない。また、一定期間データ伝送が行われなかった場合も輻輳ウィンドウサイズを初期値にするよう推奨されている。
【０００３】
［ＨＴＴＰ１．１  Ｋｅｅｐ  Ａｌｉｖｅ  機能］に示されるように、アプリケーションからの要求ごとにＴＣＰのコネクションを確立／終了するのではなく、最初にセッションを確立した後はすぐに終了せずに再利用することで、ＴＣＰのコネクションの確立／終了にかかる時間を省く工夫がなされてきた。［ＨＴＴＰ１．１  Ｋｅｅｐ  Ａｌｉｖｅ  機能］は結果的に比較的短い間隔でデータ転送要求があった場合には輻輳ウィンドウサイズが維持されるが、ＴＣＰのコネクションを確立直後やデータ転送要求の間隔が長い場合にはＴＣＰのスロースタートの機能が働く。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｍ．Ａｌｌｍａｎ，  Ｖ．  Ｐａｘｏｎ  ａｎｄ  Ｗ．Ｓｔｅｖｅｎｓ，  “ＴＣＰ  ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ”，  ＲＦＣ２５８１，  Ａｐｒｉｌ  １９９９，ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ２５８１．ｔｘｔ
【非特許文献２】Ｍ．  Ｍａｔｈｉｓ，  ｅｔ  ａｌ．，“ＴＣＰ  Ｅｘｔｅｎｄｅｄ  Ｓｔａｔｉｓｔｉｃｓ  ＭＩＢ．”，  Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ，  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ：  ４８９８，  Ｃａｔｅｇｏｒｙ：  Ｓｔａｎｄａｒｄｓ  Ｔｒａｃｋ，  Ｍａｙ  ２００７，ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ４８９８．ｔｘｔ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データ送信側とデータ受信側を直結もしくは帯域が厳密に管理された伝送路などで輻輳によるパケット消失が起こらない場合において本来輻輳制御は不要であるが、伝送開始時もしくは一定期間データ伝送が行われなかった場合にはスロースタートの機能が働く。また、伝送エラーによりパケットが消失しても輻輳制御が働き輻輳ウィンドウサイズの減少により帯域が半分に制限されてしまう。
【０００６】
本発明は、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本願発明のデータパケット伝送システムは、１以上の物理リンク上でＴＣＰコネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送システムであって、送信側の前記対向装置は、ＴＣＰコネクションを確立して待機中状態である旨を通知する複数のＴＣＰ接続部と、前記ＴＣＰ接続部からの通知を受信することによって前記ＴＣＰ接続部の使用状態を管理する管理部と、前記管理部から待機中状態にあるＴＣＰコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振る送信部と、を備え、受信側の前記対向装置は、ＴＣＰコネクションを確立して前記分割データを受信する複数のＴＣＰ接続部と、前記分割データの先頭位置を示すポインタに対応した位置から受信バッファに書き込み、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを出力する受信部を備える。
【０００８】
本願発明のデータパケット伝送システムは、送信側の対向装置が複数のＴＣＰ接続部、管理部及び送信部を備え、受信側の対向装置がＴＣＰ接続部及び受信部を備えるため、伝送対象となる分割されたオリジナルデータを含むパケットを複数のＴＣＰコネクションに割り振り、ＴＣＰ層で並列伝送を行い、伝送後にオリジナルデータに戻すことができる。したがって、本願発明のデータパケット伝送システムは、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することができる。
【０００９】
本願発明のデータパケット伝送システムでは、前記送信側のＴＣＰ接続部は、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出し、前記管理部は、輻輳ウィンドウの低下又はリンクの異常を検出した前記送信側のＴＣＰ接続部にソケット異常が発生した旨を前記送信部に通知し、前記送信部は、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振る。
本発明により、複数のＴＣＰコネクションのいずれかで輻輳ウィンドウの所定値以下への低下又はリンクの異常が発生すると、予め設定しているが実際のデータ伝送に用いていない待機中状態のＴＣＰコネクションに切り替えることができる。これにより、輻輳ウィンドウの所定値以下への低下又はリンクの異常への対応を迅速に行うことができるとともに、未転送データの発生を防ぐことができる。
【００１０】
本願発明のデータパケット伝送システムでは、前記送信側のＴＣＰ接続部は、輻輳ウィンドウが設定値を超えるまでダミーデータパケットを送出することによって前記待機中状態とする。
本発明により、分割されたオリジナルデータを割り振る複数のＴＣＰコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
【００１１】
上記目的を達成するために、本願発明のデータパケット伝送方法は、１以上の物理リンク上でＴＣＰコネクションを用いて対向装置間でデータ伝送を行うデータパケット伝送方法であって、送信側のＴＣＰ接続部が、輻輳ウィンドウが所定値超となった待機中状態である旨を管理部に通知することによって、管理部が送信側のＴＣＰ接続部の使用状態を管理する使用状態管理手順と、送信部が、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して前記待機中状態の複数のソケットに割り振り、送信側のＴＣＰ接続部が送信部からの指示に従って前記分割データを送信する分割データ送信手順と、受信側のＴＣＰ接続部がＴＣＰコネクションを確立して前記分割データを受信し、受信部が、前記分割データの先頭位置を示すポインタに対応した位置から前記分割データを受信バッファに書き込む分割データ受信手順と、受信部が、全ての前記分割データの前記受信バッファへの書き込みの完了後に前記オリジナルデータを読み出すオリジナルデータ読み出し手順と、を順に有する。
【００１２】
本願発明のデータパケット伝送方法は、使用状態管理手順と、分割データ送信手順と、分割データ受信手順と、オリジナルデータ読み出し手順と、を順に有するため、伝送対象となる分割されたオリジナルデータを含むパケットを複数のＴＣＰコネクションに割り振り、ＴＣＰ層で並列伝送を行い、伝送後にオリジナルデータに戻すことができる。したがって、本願発明のデータパケット伝送方法は、輻輳によるパケット消失が起こらない伝送路において、輻輳制御による伝送レートの低下を抑制することができる。
【００１３】
本願発明のデータパケット伝送方法では、送信側のＴＣＰ接続部が、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出するソケット異常検出手順と、前記送信部が、ソケット異常の発生したソケットに割り振っていた前記分割データを、前記待機中状態のソケットに割り振るソケット代替手順と、を前記分割データ送信手順と前記分割データ受信手順の間にさらに有してもよい。
本発明により、複数のＴＣＰコネクションのいずれかで輻輳ウィンドウの低下又はリンクの異常が発生すると、予め設定しているが実際のデータ伝送に用いていない他のＴＣＰコネクションに切り替えることができる。これにより、パケット損失の対応を迅速に行うことができるとともに、未転送データの発生を防ぐことができる。
【００１４】
本願発明のデータパケット伝送方法では、前記使用状態管理手順において、輻輳ウィンドウが設定値を超えるまで送信側のＴＣＰ接続部がダミーデータパケットを送出することによって前記待機中状態とする。
本発明により、分割されたオリジナルデータを割り振る複数のＴＣＰコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
【００１５】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００１６】
本発明によれば、輻輳の起きない伝送路において、伝送エラー等によるパケットの消失による輻輳ウィンドウの低下が起きる状況においてもＴＣＰ輻輳制御によるスループット低下の影響を低減することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一の実施形態に係るデータパケット伝送システムの一例を示す。
【図２】本発明の第二の実施形態の概略の構成を示すブロック図である。
【図３】本発明の第三の実施形態の概略の動作を示す説明図である。
【図４】本発明の第四の実施形態の概略の動作を示す説明図である。
【発明を実施するための形態】
【００１８】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００１９】
（第一の実施形態）
図１に、本発明の第一の実施形態に係るデータパケット伝送システムの一例を示す。本実施形態に係るデータパケット伝送システムは、任意のアプリケーション１０が対向装置２０を用いてデータを送信し、任意のアプリケーション４０が対向装置３０を用いてデータを受信する。送信側の対向装置２０は、複数のＴＣＰ接続部２１と、管理部２２と、送信部２３と、を備える。受信側の対向装置３０は、複数のＴＣＰ接続部３１と、受信部３２と、を備える。本実施形態に係るデータ伝送方法は、使用状態管理手順と、分割データ送信手順と、分割データ受信手順と、オリジナルデータ読み出し手順と、を順に有する。
【００２０】
使用状態管理手順では、ＴＣＰ接続部２１は、ＴＣＰコネクションを確立してパケットを送信し、輻輳ウィンドウが所定値超となった場合は待機中状態である旨を通知する。そして、管理部２２は、ＴＣＰ接続部２１からの通知を受信することによってＴＣＰ接続部２１の使用状態を管理する。ここで、ＴＣＰ接続部２１は、輻輳ウィンドウが設定値を超えるまでダミーデータパケットを送出することで待機中状態とする。
【００２１】
分割データ送信手順では、送信部２３が、送信側のアプリケーションから送信要求を受信し、管理部２２から待機中状態にあるＴＣＰコネクションのソケットを取得し、伝送対象となるオリジナルデータを分割し、当該分割データ及び当該分割データの先頭位置をパケット化して待機中状態の複数のソケットに割り振る。本実施形態では、送信部２３が送信側の対向装置２０に備わる例について説明するが、アプリケーションが送信部２３の機能を有していてもよい。
【００２２】
分割データ受信手順では、受信部３２が、ＴＣＰ接続部３１を介して分割データを受信し、分割データの先頭位置を示すポインタに対応した位置から受信バッファ３２１に書き込む。全ての分割データの受信バッファ３２１への書き込みの完了後に、オリジナルデータ読み出し手順を実行する。
【００２３】
オリジナルデータ読み出し手順では、受信部３２が、オリジナルデータを受信側のアプリケーション４０に出力する。
【００２４】
以上の手順を順に実行することで、輻輳ウィンドウサイズが大きい状態でソケットを送信部２３に渡すことができるため、ＴＣＰのスロースタートの影響を無くす事が出来る。これにより、輻輳の起きない伝送路において、伝送エラー等によるパケットの消失による輻輳ウィンドウの低下が起きる状況においてもＴＣＰ輻輳制御によるスループット低下の影響を低減することが可能になる。
【００２５】
ここで、分割データ送信手順と分割データ受信手順の間に、ソケット異常検出手順及びソケット代替手順をさらに有していてもよい。
【００２６】
ソケット異常検出手順では、ＴＣＰ接続部２１が、輻輳ウィンドウの所定値以下への低下又はリンクの異常を検出する。管理部２２が、輻輳ウィンドウの低下又はリンクの異常を検出したＴＣＰ接続部にソケット異常が発生した旨を送信部２３に通知する。
ソケット代替手順では、送信部２３が、ソケット異常の発生したソケットに割り振っていた分割データを、待機中状態にある別のソケットに割り振る。
【００２７】
ここで、パケット損失の際にＴＣＰコネクションを切り替える場合、切り替え前のコネクションにおいて転送が完了していない分割データを伝送する必要がある。この場合、以下の動作のいずれかを行う必要がある。
（Ａ）転送が完了していない分割データ全体を転送。
（Ｂ）受信側が分割データの受信済みの領域、もしくは未受信の領域を送信側に通知して完了していない分割データを伝送する。
（Ａ）もしくは（Ｂ）の動作を行うことで、未転送データの発生を防ぐことができる。
【００２８】
以上のソケット異常検出手順及びソケット代替手順を有することで、輻輳ウィンドウの低下又はリンクの異常が起こった場合に、別の待機中状態のソケットと交換することができる。これにより、パケット消失による輻輳ウィンドウサイズ半減の影響を無くす事が可能になる。
【００２９】
（第二の実施形態）
図２は本発明の第二の実施形態の概略の構成を示している。
装置間の接続において各装置では接続開始要求に基づき複数のコネクションスレッド１００及び管理スレッド１１０が生成される。各コネクションスレッドはコネクション開始１０１として対向装置とＴＣＰコネクションを確立する。
【００３０】
ここで、コネクションスレッド１００はＴＣＰ接続部２１として機能し、管理スレッド１１０は管理部２２として機能する。コネクションスレッド１００は、コネクション開始部１０１と、ウォームアップ状態部１０２と、待機中状態部１０３と、使用中状態部１０４と、異常検出状態部１０５と、コネクション終了状態部１０６と、を備える。管理スレッド１１０は、待機中コネクションリスト１１１と、使用中コネクションリスト１１２と、を備える。
【００３１】
コネクション開始部１０１がＴＣＰコネクションを確立すると、ウォームアップ状態部１０２の動作によってウォームアップ状態に移行し、対向装置との間で高頻度にダミーデータを交換して、輻輳ウィンドウを拡大させる。設定値以上に輻輳ウィンドウを拡大したら待機中状態部１０３に移行し、管理スレッド１１０に通知を行う。管理スレッド１１０は待機中コネクションリスト１１１にそのコネクションスレッドを登録する。待機中状態１０３のコネクションスレッド１００は、輻輳ウィンドウが縮小しないように待機中状態部１０３が低頻度にダミーデータを交換する。これにより、ＴＣＰコネクションの送信側の輻輳ウィンドウサイズを大きくしておくことができる。
【００３２】
管理スレッド１１０は、送信側のアプリケーションからソケットの要求を受けると待機中コネクションリスト１１１から必要数のコネクション情報（ソケット等）をアプリケーションに渡し、該当コネクションスレッド１００への通知および待機コネクションリスト１１１からの削除・使用中コネクションリスト１１２への登録を行う。送信側のアプリケーションは、送信部２３としての機能を有する。管理スレッド１１０から通知を受けたコネクションスレッド１００は、使用中状態部１０４に移行する。
【００３３】
管理スレッド１１０は、アプリケーションからソケット解放を受けると、該当コネクションスレッド１００への通知および使用中コネクションリスト１１２からの削除・待機コネクションリスト１１１への登録を行う。通知を受けたコネクションスレッド１００は使用中状態部１０３に移行する。各コネクションスレッド１００では通信の異常を検出した場合、異常検出状態部１０５に移行する。
【００３４】
使用中状態部１０３において異常検出した場合には管理スレッド１１０に通知し、管理スレッド１１０はアプリケーションにソケット異常を通知する。異常検出状態部１０５はコネクション回復可能な場合にはウォームアップ状態部１０２に移行し、回復不可能な場合にはコネクション終了状態部１０６に移行する。対向装置間の接続終了時には使用しているすべてのコネクションスレッド１００がコネクション終了状態部１０６に移行後、すべてのスレッドを終了する。
【００３５】
（第三の実施形態）
図３は本発明の第三の実施形態の概略の動作を示している。
この例では、装置Ａ（２０１）、装置Ｂ（２２１）間が物理リンクＬＡ１（２０２）〜ＬＢ１（２２２）、ＬＡ２（２０３）〜ＬＢ２（２２３）で接続され、ＬＡ１〜ＬＢ１にはＴＣＰコネクション（２０４，２２４）ＣＡ１〜ＣＢ１，ＣＡ２〜ＣＢ２，ＣＡ３〜ＣＢ３、ＬＡ２〜ＬＢ２にはＣＡ４〜ＣＢ４，ＣＡ５〜ＣＢ５が張られているものとする。また、縦軸は時間の進行を示している。
【００３６】
この例での初期状態においてはＣＡ１〜ＣＢ１，ＣＡ２〜ＣＢ２が使用中状態（２０５、２２５）、ＣＡ３〜ＣＢ３，ＣＡ４〜ＣＢ４，ＣＡ５〜ＣＢ５はウォームアップ状態（２０６、２２６）から待機中状態（２０７、２２７）に移行する。ＴＣＰコネクションＣＡ２〜ＣＢ２で輻輳ウィンドウの低下（２０８）が検出されると、待機中状態のコネクションのうちＣＡ２〜ＣＢ２の物理リンクＬＡ１〜ＬＢ１ではない物理リンクＬＡ２〜ＬＢ２から優先的に選択される（ここではＣＡ４〜ＣＢ４が選択）。これは物理リンク障害の前兆として伝送エラー率上昇によるパケット消失が起こりやすいことを考慮している。リンク障害（２０９）の場合にはすべての使用中状態のコネクションを別のリンクの待機中状態のコネクションに移行し、使用中状態（２１０，２３０）とする。リンクの障害が回復した段階で直ちにウォームアップ状態（２１１，２３１）に移行する。
【００３７】
（第四の実施形態）
図４は本発明の第四の実施形態の概略の動作を示している。
この例ではアプリケーションの送信バッファ（３１０）がＴＣＰコネクション（３２０）を介して、対向装置のアプリケーションの受信バッファ（３３０）にデータを送信する様子を示している。
【００３８】
アプリケーションは転送するデータを書き込み済データ（３１３）の最後から送信バッファ空き領域（３１４）に追記していく。送信済データ（３１１）の次の領域に書込み済データ（３１３）が存在する場合、使用中状態（３２０ａ）のＴＣＰコネクションに分割して受け渡し、送信中データ（３１２）とする。各コネクションに渡された分割データ（３１２ａ〜３１２ｃ）はデータの開始位置を示すポインタを付加してパケット化して（３２２ａ〜３２２ｃ）受信側に転送される。
【００３９】
転送中に輻輳ウィンドウの低下（３２４）を検出した場合、待機中状態（３２０ｂ）のＴＣＰコネクションを代替として割り当て、データパケットの再送（３２３ｂ）を行う。
【００４０】
対向装置のアプリケーションではパケットに含まれる分割データの開始位置を示すポインタに対応した位置から分割データを受信バッファに書込み、受信済データ（３３１）とする。
【００４１】
受信側のアプリケーションは受信バッファ（３３０）から受信済データ（３３１）を読み出した後、受信バッファ空き領域（３３４）とする。
【００４２】
以上、第一の実施形態〜第四の実施形態において説明したように、本発明の第一の観点によると、対向装置間で輻輳が起こらない１以上の物理リンクで接続されるＴＣＰの並列コネクションによるデータ伝送において、ユーザーデータの伝送が開始されるよりも前に各ＴＣＰコネクションを確立して管理スレッドにおいて待機中状態とする。アプリケーションから管理スレッドにソケット要求があると待機中状態のＴＣＰコネクションを選択し、そのソケットをアプリケーションに渡す。輻輳ウィンドウの低下やリンク異常を検出した場合、管理スレッドはアプリケーションにソケット異常を通知して、アプリケーションは該当ソケットを解放し、代替えのソケットをアプリケーションに渡して未送信データの送信を行う。
【００４３】
輻輳ウィンドウの取得・監視は非特許文献２にある［ＴＣＰ  Ｅｘｔｅｎｄｅｄ  Ｓｔａｔｉｓｔｉｃｓ  ＭＩＢ］に対応したＯＳ／プロダクトであれば直接行う事が出来る。間接的には通信遅延時間（ＲＴＴ）を基にＴＣＰの読み出し側のタイムアウトを設定することでパケット消失もしくは輻輳ウィンドウの低下を知る事が出来る。また、ＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）や遅延ＡＣＫ等のＴＣＰのフロー制御で用いるタイマと同等のタイマや、重複ＡＣＫを用いるか、或いは受信側で所定のバイト数の転送に要する時間を計測し実効的なスループットに換算して送信側に通知することで、輻輳ウィンドウの低下を知る事が出来る。
【００４４】
異常検出されたコネクションは障害事由によりダミーデータのパケットの伝送を開始して待機中状態とするか、コネクションを終了させ使用不可とする。待機中状態のコネクションは輻輳ウィンドウを維持するために低頻度でダミーデータパケットの送出を行う。
【００４５】
このように、輻輳ウィンドウサイズが大きい状態でソケットをアプリケーションに渡すことで、ＴＣＰのスロースタートの影響を無くす事が出来る。また、パケット消失が起こった場合、別の待機中状態のソケットと交換することで、パケット消失による輻輳ウィンドウサイズ半減の影響を無くす事が可能になる。
【００４６】
本発明はＴＣＰ輻輳制御方式とは独立であるので、ＴＣＰ輻輳制御方式を複数の中から選択できる場合には、実使用環境において最も輻輳ウィンドウサイズが大きい方式を採用する。ＴＣＰ輻輳制御方式の選択により平均スループットの向上が期待される。本発明において輻輳ウィンドウの低下検出閾値を平均スループットに設定することにより、輻輳ウィンドウサイズが変動する環境においても平均スループットの最低帯域保証を行うことが可能になる。
【００４７】
本発明の第二の観点によると、２以上の物理リンクを使用している場合、第一の観点に加えてソケット異常を通知した場合に別の物理リンク上のＴＣＰコネクションのソケットを優先的に選択して代替えとしてアプリケーションに渡す。このように、別の物理リンクのＴＣＰコネクションを選択することで、物理リンク自体に障害の原因があった場合に、代替えのソケットも輻輳ウィンドウの低下が起こることを回避する事が出来る。
【００４８】
本発明の第三の観点によると、第一の観点における管理スレッドとアプリケーションの中間に送信スレッド及び受信スレッドを配置する。送信スレッドでは送信バッファを用意してアプリケーションから送信要求があるとデータを送信バッファの空き領域に未送信データとして書き込む。一方、必要数のソケットを管理スレッドから受け取り、送信バッファ内に未送信データが存在する場合にそのデータを分割し、分割したデータの先頭位置と分割データをパケット化してそれぞれソケットを介して送信する。輻輳ウィンドウの低下等送信異常が検出された場合そのソケットを解放し、代替えのソケットを管理スレッドから受け取り該当する分割データを再送信する。受信スレッドでは受信バッファを用意して、ソケットを介してパケットを受信すると、パケットに含まれる分割データの先頭位置に対応する受信バッファアドレスから受信した分割データを書き込み、受信済データとする。アプリケーションから受信要求があると受信済データを渡し、対応する受信バッファを解放する。このように、受信スレッド及び送信スレッドを用いることで、並列コネクションであることを意識することなくアプリケーションを構成する事が出来る。また、ソケットを直接的に使用することで、輻輳ウィンドウの低下をより早く検出することが可能になる。
【００４９】
本発明の第四の観点によると、第三の観点に第二の観点と同様に、送信異常が検出された場合代替えとして別の物理リンクのＴＣＰコネクションを選択することで、物理リンク自体に障害の原因があった場合に、代替えのソケットも輻輳ウィンドウの低下が起こることを回避する事が出来る。
【産業上の利用可能性】
【００５０】
本発明は情報通信産業に適用することができる。
【符号の説明】
【００５１】
１０：送信側のアプリケーション
２０：送信側の対向装置
２１：コネクションスレッド
２２：管理スレッド
２３：送信スレッド
２４：送信バッファ
３１：コネクションスレッド
３２：受信スレッド
３３：受信バッファ
４０：受信側のアプリケーション
１００：コネクションスレッド
１０１：コネクション開始状態部
１０２：ウォームアップ状態部
１０３：待機中状態部
１０４：使用中状態部
１０５：異常検出状態部
１０６：コネクション終了状態部
１１０：管理スレッド
１１１：待機中コネクションリスト
１１２：使用中コネクションリスト
１２０：アプリケーション
２０１：装置Ａ
２０２：物理リンクＬＡ１
２０３：物理リンクＬＡ２
２０４：ＴＣＰコネクション（ＣＡ１〜ＣＡ５）
２０５：使用中状態（ＣＡ１〜ＣＡ２）
２０６：ウォームアップ状態（ＣＡ３〜ＣＡ５）
２０７：待機中状態（ＣＡ３〜ＣＡ５）
２０８：パケット消失、２０９リンク障害
２１０：使用中状態（ＣＡ４〜ＣＡ５）
２１１：ウォームアップ状態（ＣＡ１〜ＣＡ３）
２２１：装置Ｂ
２２２：物理リンクＬＢ１
２２３：物理リンクＬＢ２
２２４：ＴＣＰコネクション（ＣＢ１〜ＣＢ５）
２２５：使用中状態（ＣＢ１〜ＣＢ２）
２２６：ウォームアップ状態（ＣＢ３〜ＣＢ５）
２２７：待機中状態（ＣＢ３〜ＣＢ５）
２３０：使用中状態（ＣＢ４〜ＣＢ５）
２３１：ウォームアップ状態（ＣＢ１〜ＣＢ３）
３１０：送信バッファ
３１１：送信済データ
３１２（３１２ａ〜３１２ｃ）：送信中データ
３１３：書込済データ
３１４：送信データ空領域
３２０：ＴＣＰコネクション
３２１：送信済パケット
３２２（３２２ａ〜３２２ｃ）：送信中パケット
３２３ｂ：再送信中パケット
３２４：伝送障害
３３０：受信バッファ
３３１：受信済データ
３３２：受信中データ（３３２ａ〜３３２ｃ）
３３４：受信バッファ空き領域
【図１】
2013121028.tif 000003
【図２】
2013121028.tif 000004
【図３】
2013121028.tif 000005
【図４】
2013121028.tif 000006