(57)【特許請求の範囲】
【請求項１】
複数の通信回線（２１０、２２０）を用いて送信データを送信する通信部（２８、３０）と、
前記複数の通信回線のそれぞれの通信性能を測定する測定部（３２）と、
前記送信データの通信状況を取得する通信状況取得部（４２）と、
前記測定部が測定する前記通信性能と、前記通信状況取得部が取得する前記通信状況とに基づいて、前記通信部が前記複数の通信回線のそれぞれで送信する通信負荷量を分散させる負荷分散制御部（４４）と、
前記通信性能と前記通信状況とに基づいて、前記通信部が、前記複数の通信回線のうちいずれかの通信回線で送信したデータの少なくとも一部を、前記複数の通信回線のうち他の通信回線で再送信する再送制御部（４６）と、
を備え、
前記負荷分散制御部は、前記送信データのうち、前記通信部がまだ送信していない未送信データの量と、前記通信部から送信済みでまだ確認応答を受信していない未応答データの量とを、前記通信状況として前記通信状況取得部から取得し、前記未送信データを前記複数の通信回線のそれぞれで分散して送信する場合に前記複数の通信回線のそれぞれで確認応答を受信するまでに要する第１通信時間と、前記複数の通信回線のそれぞれにおいて前記未応答データに対する確認応答を受信するまでに要する第２通信時間とを、前記複数の通信回線のそれぞれで分散した前記未送信データの量と、前記複数の通信回線のそれぞれの前記未応答データの量と、前記複数の通信回線のそれぞれの前記通信性能とに基づいて算出し、算出した前記複数の通信回線のそれぞれにおける前記第１通信時間と前記第２通信時間とに基づいて、前記第１通信時間を短縮するように、前記通信負荷量として前記複数の通信回線のそれぞれで分散して送信する前記未送信データの量を決定する、
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記再送制御部は、前記通信性能と前記通信状況とに基づいて、前記複数の通信回線のうちいずれかの通信回線で送信したデータのすくなくとも一部を、前記複数の通信回線のうち他の通信回線から再送信すると通信時間を短縮できると判定すると、再送信するデータと再送信する前記他の通信回線とを決定する、
ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記再送制御部は、前記いずれかの通信回線からデータを送信した順番と逆の順番で前記他の通信回線からデータを再送信する、
ことを特徴とする情報処理装置。
【請求項４】
複数の通信回線（２１０、２２０）を用いて送信データを送信する他の情報処理装置（１０）と通信する通信部（６２、７０）と、
前記複数の通信回線のそれぞれの通信性能を測定する測定部（６４）と、
前記他の情報処理装置の前記送信データに関する通信状況を取得する受信状況取得部（６６）と、
前記測定部が測定する前記複数の通信回線のそれぞれの前記通信性能と、前記受信状況取得部が取得する前記他の情報処理装置の前記通信状況として、前記複数の通信回線のそれぞれから送信されるウインドウサイズ分の送信データとに基づいて、前記複数の通信回線のそれぞれにおいて、前記ウインドウサイズ分の前記送信データの受信を開始してから、前記送信データを受信するために要する時間から前記複数の通信回線のそれぞれにおける往復通信時間を減算した時間のうち最少の時間が経過するタイミングを、前記通信部から確認応答を送信する送信タイミングとして決定する確認応答制御部（７２）と、
を備えることを特徴とする情報処理装置（５０）。
【請求項５】
請求項４に記載の情報処理装置であって、
前記受信状況取得部は、前記他の情報処理装置から前記複数の通信回線で送信されたデータに関する前記複数の通信回線のすべてにおける受信状況をさらに取得し、
前記通信部（７０）は、前記受信状況取得部が取得する前記受信状況を前記確認応答として、前記確認応答制御部が決定する前記送信タイミングで前記複数の通信回線のそれぞれに対して送信する、
ことを特徴とする情報処理装置。
【請求項６】
請求項１から３のいずれか一項に記載の情報処理装置（１０）を第１の情報処理装置とし、請求項４または５に記載の情報処理装置（５０）を第２の情報処理装置として、前記第１の情報処理装置と前記第２の情報処理装置とを備え、
請求項４または５に記載の前記他の情報処理装置を前記第１の情報処理装置とする、
ことを特徴とする情報処理システム（２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信回線で通信する技術に関する。
【背景技術】
【０００２】
複数の通信回線で通信を行う技術が提案されている。例えば、特許文献１に開示されている技術によると、複数のＴＣＰコネクションを使用するマルチパス通信のサブフロー毎に、送信されるセグメントを蓄積するキューを設けている。
【０００３】
特許文献１の技術によると、送信バッファから取り出したセグメントをキューに蓄積するときに、各キューの最後尾のセグメントが受信側に到達するまでに要する到達予想時間が最も短いキューを選択する。これにより、特許文献１の技術によると、送信した順番で受信側にパケットが到着するようにしようとしている。
【０００４】
さらに、特許文献１には、サブフローのいずれかにおいて輻輳またはパケットロスが発生すると、輻輳またはパケットロスが発生したサブフローに対応するキューに蓄積されているセグメントの少なくとも一部を、他のサブフローに対応するキューに分配する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１２７７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、複数の通信回線のいずれかで遅延が発生するたびに、到達予想時間の短いキューにセグメントを振り分けて蓄積するとともに、ＴＣＰレイヤにおいて再送処理が行われることになる。このとき、特許文献１の技術では、データの送信状況を考慮せずに再送処理が行われる。その結果、通信時間の短縮に不必要な再送処理がＴＣＰレイヤで行われることになるので、通信時間の短縮が困難である。
【０００７】
本発明は上記問題点に鑑みてなされたものであり、複数の通信回線で通信する情報処理装置において、通信時間を極力短縮する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置（１０）は、通信部（２８、３０）と、測定部（３２）と、通信状況取得部（４２）と、負荷分散制御部（４４）と、再送制御部（４６）と、を備えている。
【０００９】
通信部は、複数の通信回線（２１０、２２０）を用いて送信データを送信する。測定部は、複数の通信回線のそれぞれの通信性能を測定する。通信状況取得部は、送信データの通信状況を取得する。負荷分散制御部は、測定部が測定する通信性能と、通信状況取得部が取得する通信状況とに基づいて、通信部が複数の通信回線のそれぞれで送信する通信負荷量を分散させる。
【００１０】
再送制御部は、通信性能と通信状況とに基づいて、通信部が複数の通信回線のうちいずれかの通信回線で送信したデータの少なくとも一部を、複数の通信回線のうち他の通信回線で再送信する。
【００１１】
この構成によれば、複数の通信回線のそれぞれの通信性能と通信状況とに基づいて、それぞれの通信回線で送信する通信負荷量を適切に分散させることができる。これにより、それぞれの通信回線で通信する通信時間のばらつきを抑制し、通信時間を短縮できる。
【００１２】
さらに、それぞれの通信回線の通信性能と通信状況とに基づいて、複数の通信回線のうちのいずれかの通信回線で送信したデータの少なくとも一部を他の通信回線で再送信させるので、遅延が発生して通信時間が長くなると推定される通信回線で送信したデータの少なくとも一部を、それよりも通信時間が短くなる他の通信回線で再送信できる。これにより、通信時間を短縮できる。
【００１３】
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１４】
【図１】本実施形態による情報処理システムを示すブロック図。
【図２】送信制御処理を示すフローチャート。
【図３】送信側の負荷分散処理を示すタイムチャート。
【図４】送信側の再送処理を示すタイムチャート。
【図５】受信制御処理を示すフローチャート。
【図６】受信側の確認応答処理を示すタイムチャート。
【発明を実施するための形態】
【００１５】
以下、本発明が適用された実施形態を図に基づいて説明する。
［１．構成］
図１に示す情報処理システム２は、第１の情報処理装置および他の情報処理装置に相当するクライアント１０と、第２の情報処理装置に相当するサーバ５０とを備えている。クライアント１０とサーバ５０とは、例えば、複数の通信回線２１０、２２０を使用してインターネット２００を介して通信する。
【００１６】
通信回線２１０、２２０は、３Ｇ回線、ＬＴＥ回線、ＷｉＦｉ（登録商標）、ＷｉＭＡＸ（登録商標）等、ネットワークレイヤでＩＰを使用でき、トランスポートレイヤでＵＤＰを使用できる回線であればどのような通信回線であってもよい。
【００１７】
情報処理システム２は、例えば、クライアント１０が送信データを「受信側のアプリケーションが実行する処理の入力となるデータ集合（単に、アプリデータとも言う。）」の単位でサーバ５０に送信し、クライアント１０から受信したアプリデータをサーバ５０が処理し、サーバ５０が処理結果をクライアント１０に送信する情報処理を実行する。
【００１８】
詳細には、送信データが画像列であり、アプリデータが画像１枚に対応するとき、情報処理システム２は、クライアント１０から画像を１枚ずつサーバ５０に送信し、サーバ５０が１枚分の画像データをすべて受信するとすぐに、サーバ５０が歩行者検出等の処理を実行して処理結果をクライアント１０に送信するという情報処理を、クライアント１０とサーバ５０との間で繰り返し実行する。
【００１９】
クライアント１０は、送信側通信制御部２０と、アプリケーション部１００とを備えている。アプリケーション部１００は、サーバ５０に送信するデータを送信側通信制御部２０の送信バッファ２２に格納する。
【００２０】
サーバ５０は、受信側通信制御部６０とアプリケーション部１１０とを備えている。アプリケーション部１１０は、受信側通信制御部６０がクライアント１０から受信するデータを受信バッファ６８から取得する。
【００２１】
送信側通信制御部２０は、送信バッファ２２と、パケット生成部２４と、送信情報付加部２６と、送信部２８と、確認応答受信部３０と、通信性能測定部３２と、送信制御部４０と、を備えている。送信部２８と確認応答受信部３０とは、クライアント１０の通信部に相当する。
【００２２】
送信バッファ２２は、アプリケーション部１００が送信するデータを格納する記憶領域であり、アプリケーション部１００は、送信データからアプリデータ単位でデータを取り出し、送信バッファ２２に格納する。
【００２３】
送信バッファ２２に格納されたデータは、送信部２８から送信される。確認応答受信部３０は、送信部２８から送信されたデータに対する確認応答をサーバ５０から受信する。確認応答には、サーバ５０のデータ受信状況として、受信済みデータと、パケットロスによってサーバ５０が受信できなかったデータとに関する情報が含まれている。
【００２４】
パケット生成部２４は、送信バッファ２２に格納されたデータを予め設定されたサイズに分割してパケットを生成する。
送信情報付加部２６は、送信情報として、通信回線２１０、２２０のそれぞれにおける通信性能と通信状況とを送信制御部４０から取得し、パケットのデータフィールドに付加する。
【００２５】
通信性能は、通信速度と往復通信時間（Round Trip Time：ＲＴＴ）とを表わす。通信状況は、送信バッファ２２に格納されたアプリデータのうち、送信部２８からまだ送信していない未送信データの量と、送信部２８から送信済みであるが確認応答受信部３０が受信する確認応答からサーバ５０が受信したことが確認できていない未応答データの量と、それぞれの回線から送信可能なデータ量を示すウインドウサイズ等を表わす。
【００２６】
送信部２８は、送信制御部４０からの送信制御情報に基づき、送信情報を付加されたパケットを通信回線２１０、２２０のいずれかから送信する。
確認応答受信部３０は、送信部２８から送信するウインドウサイズ分のデータに対し、サーバ５０から確認応答を受信する。通信性能測定部３２は、例えば、確認応答受信部３０が受信する確認応答パケットのタイムスタンプ情報と確認応答パケットの受信時刻とに基づいて、通信回線２１０、２２０の通信速度とＲＴＴとを測定する。
【００２７】
送信制御部４０は、通信状況取得部４２と負荷分散制御部４４と再送制御部４６とを備えている。
通信状況取得部４２は、送信バッファ２２に格納されているデータと確認応答受信部３０が受信する確認応答の受信状況とから、未送信データと未応答データとを取得する。さらに、通信状況取得部４２は、確認応答パケットから、パケットロスの発生によりサーバ５０が受信できなかったデータに関する情報を取得し、サーバ５０が受信できなかったデータについても未送信データとして扱う。
【００２８】
負荷分散制御部４４は、通信回線２１０、２２０の通信性能と通信状況とに基づいて、通信回線２１０、２２０から送信する通信負荷量を調整し、通信回線２１０、２２０の通信負荷を分散させる。
【００２９】
再送制御部４６は、通信回線２１０、２２０の通信性能と通信状況とに基づいて、通信回線２１０、２２０のどちらか一方の未応答データの一部を他方から再送信することで、送信対象のアプリデータに含まれるすべてのデータがサーバ５０に受信されるまでに要する時間が短くなる場合、通信回線２１０、２２０のどちらか一方の未応答データの少なくとも一部を他方から再送信させる。
【００３０】
サーバ５０の受信側通信制御部６０は、受信部６２と、通信性能測定部６４と、パケット解析部６６と、受信バッファ６８と、確認応答送信部７０と、を備えている。受信部６２と確認応答送信部７０とは、サーバ５０の通信部に相当する。
【００３１】
受信部６２は、通信回線２１０、２２０からデータを受信する。通信性能測定部６４は、例えば、受信部６２が受信する受信パケットのタイムスタンプ情報と受信パケットの受信時刻とに基づいて、通信回線２１０、２２０の通信性能を測定する。
【００３２】
パケット解析部６６は受信状況取得部に相当し、受信部６２が受信する受信パケットの情報に基づいて、受信状況として、パケットロスが発生したパケットに関する情報を取得する。さらに、パケット解析部６６は、受信パケットの情報に基づいて、受信状況として、クライアント１０が送信したデータのうちサーバ５０が受信済みのデータに関する情報を取得する。パケット解析部６６は、解析の終了したパケットのデータを受信バッファ６８に格納する。
【００３３】
確認応答送信部７０は、確認応答制御部７２を備えている。確認応答制御部７２は、クライアント１０に対して確認応答を送信するタイミングを制御する。
［２．処理］
［２−１．送信制御処理］
クライアント１０が実行する送信制御処理について図２のフローチャートに基づいて説明する。
【００３４】
確認応答受信部３０がサーバ５０から確認応答を受信すると（Ｓ４００）、通信性能測定部３２は、例えば、確認応答パケットのタイムスタンプ情報と確認応答パケットの受信時刻とに基づいてＲＴＴと通信速度とを、通信性能として測定する（Ｓ４０２）。
【００３５】
通信状況取得部４２は、確認応答受信部３０が受信する確認応答に基づいて、通信回線２１０、２２０の通信状況として、送信部２８から送信したデータのうちどのデータがサーバ５０に受信され、どのデータがまだ受信されていないかを取得する（Ｓ４０４）。
【００３６】
さらに、通信状況取得部４２は、通信回線２１０、２２０の通信状況として、送信バッファ２２に格納されているデータのうち、未送信データとしてどのデータがまだ通信回線２１０、２２０から送信されていないかを取得する（Ｓ４０４）。
【００３７】
さらに、通信状況取得部４２は、通信状況として、送信部２８から送信したパケットのうち、確認応答パケットからパケットロスの発生によりサーバ５０で受信されなかったと通知されたパケット、ならびに所定時間経過しても確認応答から受信が確認できないパケットについてパケットロスが発生したと判断し、未送信データに追加する（Ｓ４０４）。
【００３８】
未送信データが存在する場合（Ｓ４０６：Ｙｅｓ）、負荷分散制御部４４は、通信回線２１０、２２０の通信性能と通信状況とに基づいて、通信回線２１０、２２０を使用して未送信データをサーバ５０に最も早く到達させることができると推定される場合におけるそれぞれの通信回線２１０、２２０の通信負荷量をウインドウサイズとして設定し（Ｓ４０８）、Ｓ４１４に処理を移行する。
【００３９】
以下に、通信回線２１０、２２０のウインドウサイズの算出を説明する。通信回線２１０、２２０の通信速度をＲｉ、ＲＴＴをＥｉ、ウインドウサイズをＷｉ、未応答データの量をＯｉ、Ｓ４０４の処理でパケットロスが発生したと判断されて未送信データに追加されたデータも含み、時刻ｔにおいてまだ送信していない未送信データの量をＮｔとすると、図３に示すように、通信回線２１０、２２０の一方だけを使用して未送信データを送信する場合、確認応答を受信するまでに要する通信時間は、それぞれ次式（１）、（２）で表わされる。
【００４０】
尚、Ｒｉ、Ｅｉ、Ｗｉ、Ｏｉの添え字のｉは、それぞれの通信回線のみを使用して未送信データをすべて送信する場合に通信時間が短くなる方の通信回線の数字が小さくなるように設定されている。図３では、仮に通信回線２１０が通信回線２２０よりも通信時間が短くなるものとしている。つまり、通信回線２１０の添え字は「１」、通信回線２２０の添え字は「２」である。
【００４１】
通信回線２１０だけを使用する場合、
通信時間＝Ｎｔ／Ｒ１＋ｍａｘ（Ｅ１，Ｏ１／Ｒ１）        ・・・（１）
通信回線２２０だけを使用する場合、
通信時間＝Ｎｔ／Ｒ２＋ｍａｘ（Ｅ２，Ｏ２／Ｒ２）        ・・・（２）
ここで、通信回線２１０だけを使用して未送信データをすべて送信する場合に確認応答を受信するまでに要する通信時間が、通信回線２２０の未応答データに対する確認応答を受信するまでに要する通信時間よりも長くなると仮定して、次式（３）の不等式を設定する。
【００４２】
ｍａｘ（Ｅ２，Ｏ２／Ｒ２）＜Ｎｔ／Ｒ１＋ｍａｘ（Ｅ１，Ｏ１／Ｒ１）
・・・（３）
不等式（３）は、通信回線２１０だけに通信負荷が偏るために全体として通信時間が長くなることを示している。この場合、未送信データをそれぞれの通信回線２１０、２２０に分散して送信すると、全体として通信時間が短くなると考えられる。
【００４３】
そこで、未送信データをそれぞれの通信回線２１０、２２０に分散することにより通信回線２１０、２２０の通信時間が等しくなるとして、次式（４）を設定する。式（４）においてｘは、未送信データのうち通信回線２２０で分担して送信するデータ量を表わしている。
【００４４】
（Ｎｔ−ｘ）／Ｒ１＋ｍａｘ（Ｅ１，Ｏ１／Ｒ１）
＝ｘ／Ｒ２＋ｍａｘ（Ｅ２，Ｏ２／Ｒ２）                  ・・・（４）
ｘは次式（５）で表わされる。
【００４５】
ｘ＝｛Ｎｔ／Ｒ１＋ｍａｘ（Ｅ１，Ｏ１／Ｒ１）−ｍａｘ（Ｅ２，Ｏ２／Ｒ２）｝
×Ｒ１Ｒ２／（Ｒ１＋Ｒ２）                                  （５）
通信回線２１０、２２０の帯域を効率的に使用できる通信負荷量をＷｄとすると、未送信データのうち、通信回線２１０から送信するデータ量はＷ１、通信回線２２０から送信するデータ量はＷ２となり、Ｗ１、Ｗ２はそれぞれ次式（６）、（７）で表わされる。
【００４６】
Ｗ１＝ｍｉｎ（Ｎｔ−ｘ，Ｗｄ）      （６）
Ｗ２＝ｍｉｎ（ｘ，Ｗｄ）            （７）
不等式（３）が成立しない場合は、通信回線２２０よりも通信時間が短くなる通信回線２１０だけを使用して未送信データをすべて送信してよいと判断できる。この場合、Ｗ１、Ｗ２はそれぞれ次式（８）、（９）で表わされる。
【００４７】
Ｗ１＝ｍｉｎ（Ｎｔ，Ｗｄ）          （８）
Ｗ２＝０                            （９）
未送信データがない場合（Ｓ４０６：Ｎｏ）、再送制御部４６は、通信回線２１０、２２０の通信性能と通信状況とに基づいて、通信回線２１０、２２０の未応答データの少なくとも一部を再送信することで、通信時間を短縮できるか否かの再送制御判定を実行する（Ｓ４１０）。通信時間を短縮できる場合は、Ｓ４１６において再送処理を実行するための送信制御情報を生成する（Ｓ４１０）。
【００４８】
尚、再送処理を実行して未送信データがなくなったことによりＳ４１０に処理が移行する場合には、再送制御部４６は、以下に説明するＳ４１０の再送制御判定を実行せず、Ｓ４１２の判定において「Ｎｏ」を選択する。
【００４９】
以下に、Ｓ４１０の再送制御判定の詳細を説明する。図４は、通信回線２２０の未応答データの少なくとも一部を通信回線２１０で再送信した方が通信時間を短縮できる例を示している。通信回線２１０において確認応答を受信した時点から、通信回線２１０の未応答データに対する確認応答を受信するまでに要する通信時間をＴ１、通信回線２２０の未応答データに対する確認応答を受信するまでに要する通信時間をＴ２とする。
【００５０】
Ｅ１＜Ｔ１の場合、通信回線２２０の未応答データのうち、通信回線２１０から再送信するデータ量をｙとすると、次式（１０）が成立する。
ｙ／Ｒ１＝（Ｔ２−Ｔ１）Ｒ２／（Ｒ１＋Ｒ２）      ・・・（１０）
式（１０）の右辺は、再送信しない場合に通信回線２２０のみを使用して送信されることになるデータ量（Ｔ２−Ｔ１）Ｒ２のデータを、通信回線２１０と通信回線２２０の両方を使用して送信した場合の通信時間を表わしている。右辺が表わす時間と、通信回線２１０から再送信するデータ量ｙのデータに対する確認応答を受信するまでに要する左辺の時間とが等しくなるものとして、式（１０）は設定されている。
【００５１】
式（１０）から、ｙは次式（１１）で求められる。
ｙ＝（Ｔ２−Ｔ１）Ｒ１Ｒ２／（Ｒ１＋Ｒ２）
＝（Ｒ１Ｏ２−Ｒ２Ｏ１）／（Ｒ１＋Ｒ２）        ・・・（１１）
Ｔ１＜Ｅ１＜Ｔ２の場合、通信回線２２０の未応答データのうち、通信回線２１０から再送するデータ量をｙとすると、次式（１２）が成立する。
【００５２】
ｙ／Ｒ１＝（Ｔ２−Ｅ１）Ｒ２／（Ｒ１＋Ｒ２）      ・・・（１２）
式（１２）から、ｙは次式（１３）で求められる。
ｙ＝（Ｔ２−Ｅ１）Ｒ１Ｒ２／（Ｒ１＋Ｒ２）
＝（Ｒ１Ｏ２−Ｅ１Ｒ１Ｒ２）／（Ｒ１＋Ｒ２）    ・・・（１３）
再送信により通信時間を短縮できない場合にはｙ＝０であり、Ｓ４１２の判定において「Ｎｏ」が選択されることになるので、再送処理は実行されない。
【００５３】
再送制御部４６は、通信回線２１０、２２０のどちらか一方の未応答データの少なくとも一部を他方の通信回線で再送信するとき、再送データの量ｙを設定し、再送データを再送信する通信回線を選択して送信制御情報として生成する。
【００５４】
再送信により通信時間を短縮できない場合、つまりＴ２＜Ｅ１の場合（Ｓ４１２：Ｎｏ）、送信制御部４０は本処理を終了する。再送信により通信時間を短縮できる場合（Ｓ４１２：Ｙｅｓ）、送信制御部４０はＳ４１４に処理を移行する。
【００５５】
Ｓ４１４において、送信情報付加部２６は、送信部２８から送信するパケットに、通信回線２１０、２２０のＲＴＴ、ウインドウサイズ、未送信データ量等の通信性能および通信状況を表わす送信情報を付加する。
【００５６】
Ｓ４１６において、再送処理を実行する場合、Ｓ４１０で生成された送信制御情報に基づいて、選択された通信回線で再送データに該当するパケットを送信する。この場合、元の通信回線で送信したときのタイムスタンプが新しいパケットから再送信することが望ましい。
【００５７】
これにより、未応答データの一部を再送された元の通信回線においては古いタイムスタンプのパケットから送信され、再送データを再送する通信回線においてはタイムスタンプの新しいパケットから送信されるので、全体としてサーバ５０がアプリデータに含まれるすべてのデータの受信を完了するまでに要する通信時間を短縮できる。
【００５８】
Ｓ４１６において再送処理ではなく、通信回線２１０、２２０から通常の通信処理を実行する場合、送信制御部４０は、Ｓ４０８で生成された送信制御情報に基づいて、次の条件（１）〜（３）のいずれかが成立するまで、通信回線２１０、２２０からパケットを送信し、残りのウインドウサイズ、ならびに通信状況として未送信データ、未応答データを更新する。
【００５９】
（１）新たな確認応答を受信。
（２）すべての通信回線２１０、２２０で残りのウインドウサイズが０になるまでパケットを送信した。
【００６０】
（３）送信対象のアプリデータについて、全データの送信が完了。
送信制御部４０は、Ｓ４１８において、未送信データがあるか否かを判定する。未送信データがない場合（Ｓ４１８：Ｎｏ）、送信制御部４０はＳ４１０に処理を移行する。これにより、通常処理により未送信データがなくなると、すぐにＳ４１０の再送制御判定を実行できる。
【００６１】
未送信データがある場合（Ｓ４１８：Ｙｅｓ）、送信制御部４０は本処理を終了しサーバ５０からの次の確認応答を待つ。
［２−２．受信制御処理］
サーバ５０が実行する受信制御処理について図５のフローチャートに基づいて説明する。
【００６２】
クライアント１０が送信するパケットを受信部６２が受信すると（Ｓ４２０）、通信性能測定部６４は、受信パケットのタイムスタンプ情報と受信パケットの受信時刻等とに基づいて、通信回線２１０、２２０の通信速度とＲＴＴとを測定し、パケット解析部６６は、受信パケットの情報からクライアント１０の通信状況とサーバ５０のデータの受信状況を取得する（Ｓ４２２）。
【００６３】
例えば、送信情報付加部２６において、パケットの送信順序に応じたシーケンス番号を回線毎に独立に付与しておくことで、パケット解析部６６は、受信したパケットが送信された回線のシーケンス番号に抜けがあった場合、パケットロスが発生していると判断し、パケットロスによってサーバ５０が受信できなかったデータに関する情報をサーバ５０のデータの受信状況として取得することができる。
【００６４】
また、パケット解析部６６は、受信パケットの情報から、クライアント１０の通信状況を表わすウインドウサイズを取得するとともに、サーバ５０のデータの受信状況として、クライアント１０から送信されたデータのうちサーバ５０が受信済みのデータに関する情報を取得する。
【００６５】
クライアント１０が送信中のアプリデータに含まれる全データの受信が完了すると（Ｓ４２４：Ｙｅｓ）、確認応答送信部７０から確認応答を送信する（Ｓ４３２）。
送信対象のアプリデータについて、全データの受信が完了していない場合（Ｓ４２４：Ｎｏ）、確認応答送信部７０は、確認応答の送信タイミングを設定されたタイマのカウントが終了しているか否かを判定する（Ｓ４２６）。タイマの値はＳ４３０で設定される。タイマが終了していない場合（Ｓ４２６：Ｎｏ）、確認応答送信部７０は本処理を終了する。
【００６６】
タイマが終了している場合（Ｓ４２６：Ｙｅｓ）、確認応答送信部７０は、新たなタイマの設定および確認応答の送信に必要となる情報として、通信性能測定部６４から通信性能を取得し、パケット解析部６６からクライアント１０の通信状況およびサーバ５０のデータの受信状況を取得する（Ｓ４２８）。
【００６７】
確認応答制御部７２は、通信性能測定部６４が取得する通信速度およびＲＴＴと、パケット解析部６６が取得するウインドウサイズとに基づいて、通信回線２１０、２２０から確認応答を送信する確認応答タイミング（Ｆ）を次式（１４）から算出してタイマに設定し（Ｓ４３０）、Ｓ４３２に処理を移行する。
【００６８】
Ｆ＝ｍａｘ｛ｍｉｎ（Ｗ１／Ｒ１−Ｅ１，Ｗ２／Ｒ２−Ｅ２），０｝  ・・・（１４）
本実施形態では２個の通信回線２１０、２２０を使用しているので、式（１４）では２回線を使用している場合に確認応答タイミング（Ｆ）を算出する例を示している。
【００６９】
図６の点線が示すように、通信回線２１０、２２０において、ウインドウサイズ分（Ｗｉ：ｉは通信回線の番号を表わす）の全データを受信してから確認応答を送信すると、ＲＴＴを表わすＥｉの時間分、次のウインドウサイズ分のデータが受信されるまで待ち時間が発生する。
【００７０】
そこで、複数の通信回線から送信されるウインドウサイズ分のデータを受信するために要すると推定される時間（Ｗｉ／Ｒｉ）からＥｉを減算した時間のうち、最小の時間を決定する。本実施形態では、２個の通信回線２１０、２２０を使用しているので、通信回線２１０、２２０のうちどちらの時間が短いかを決定する。
【００７１】
（Ｗｉ／Ｒｉ）からＥｉを減算した時間を確認応答タイミングとすることにより、サーバ５０が次のウインドウサイズ分のデータを受信するまでの待ち時間が短くなる。
ウインドウサイズが小さくなると、（Ｗｉ／Ｒｉ）からＥｉを減算した時間が負になることもあるので、その場合にはタイマに０を設定する。この場合、パケットを受信すると確認応答をすぐに送信することになる。
【００７２】
Ｓ４３２において、確認応答送信部７０はクライアント１０に確認応答を送信する。例えば、確認応答送信部７０は、すべての通信回線における受信状況、本実施形態では通信回線２１０、２２０の両方についてのパケットロス情報および受信済みデータ等を確認応答として、それぞれの通信回線２１０、２２０で送信する。
【００７３】
尚、通信回線２１０、２２０の両方ではなく、通信速度の速い通信回線だけで確認応答を送信してもよい。
［３．効果］
以上説明した上記実施形態では、以下の効果を得ることができる。
【００７４】
（１）通信回線２１０、２２０の通信性能と通信状況とに基づいて、それぞれの通信回線で送信する通信負荷量を分散させることにより、複数の通信回線を使用して通信する情報処理装置において通信時間を短縮できる。
【００７５】
（２）通信回線２１０、２２０の通信性能と通信状況とに基づいて、いずれかの通信回線で送信したデータの少なくとも一部を他の通信回線で再送信する方がサーバ５０に早くデータが到達する場合には、通信回線２１０、２２０のうちのいずれかの通信回線で送信したデータのすくなくとも一部を他の通信回線で再送信するので、通信時間を極力短縮し、遅延を解消することができる。
【００７６】
（３）通信回線２１０、２２０のうちのいずれかの通信回線で送信したデータを他の通信回線で再送信する場合、タイムスタンプの新しい順、つまり送信順序を逆にして再送信するので、サーバ５０がすべてのデータの受信を完了するまでに要する通信時間を短縮できる。
【００７７】
（４）ウインドウサイズ分のデータを受信するために要する時間（Ｗｉ／Ｒｉ）からＥｉを減算した時間をタイマに設定し、タイマが終了すると確認応答を送信するので、次のウインドウサイズ分のデータが受信されるまでの待ち時間をなくすことができる。このように確認応答の応答タイミングを制御することにより、通信時間を短縮できるとともに、通信回線を効率的に使用できる。
【００７８】
（５）送信データが、「受信側のアプリケーションが実行する処理の入力となるデータ集合（アプリデータ）」で構成される場合、負荷分散制御と再送制御と確認応答タイミングの制御とをアプリデータ毎に行うことにより、各アプリデータについての通信時間を短縮できる。
【００７９】
つまり、送信データからデータを送信バッファに格納するときに送信データからアプリデータ単位でデータを取り出して送信バッファに格納し、送信対象のアプリデータに対する未送信データおよび未応答データに基づいて負荷分散制御と再送制御と確認応答タイミングの制御とを実行することで、各アプリデータについて通信時間を短縮できる。
【００８０】
［４．他の実施形態］
（１）上記実施形態では、第１の情報処理装置をクライアント１０として、第２の情報処理装置をサーバ５０として説明したが、第１の情報処理装置はクライアント１０に限るものではなく、第２の情報処理装置はサーバ５０に限るものではない。第１の情報処理装置および第２の情報処理装置は、複数の通信回線で通信する情報処理装置であればどのようなものであってもよい。
【００８１】
（２）上記実施形態では、複数の通信回線として２個の通信回線２１０、２２０を例にして説明した。これに対し、複数の通信回線は２個に限らず３個以上であってもよい。
（３）上記実施形態で説明した情報処理を、プロトコルスタック上のどのレイヤで実現してもよい。
【００８２】
（４）上記実施形態では、ネットワークレイヤでＩＰを使用し、トランスポートレイヤでＵＤＰを使用する通信回線を例にして説明したが、通信回線はこれに限るものではない。
【００８３】
（５）上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００８４】
（６）上述したクライアント１０およびサーバ５０の他、当該クライアント１０およびサーバ５０を構成要素とする情報処理システム２、当該クライアント１０またはサーバ５０としてコンピュータを機能させるための情報処理プログラム、この情報処理プログラムを記録した記録媒体、情報処理方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００８５】
１０：クライアント（第１の情報処理装置、他の情報処理装置）、２８：送信部（通信部）、３０：確認応答受信部（通信部）、３２：通信性能測定部（測定部）、４２：通信状況取得部、４４：負荷分散制御部、４６：再送制御部、５０：サーバ（第２の情報処理装置）、６２：受信部（通信部）、６４：通信性能測定部（測定部）、６６：パケット解析部（受信状況取得部）、７０：確認応答送信部（通信部）、７２：確認応答制御部、２１０、２２０：通信回線
【図１】
0006569450.tif 000002
【図２】
0006569450.tif 000003
【図３】
0006569450.tif 000004
【図４】
0006569450.tif 000005
【図５】
0006569450.tif 000006
【図６】
0006569450.tif 000007