(57)【要約】      （修正有）【課題】通信装置の負荷を考慮してスループットを向上可能な通信制御プログラム、方法及び装置を提供する。【解決手段】測定データ生成部１８は性能特性測定用データを生成し、負荷発生部２２はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）負荷を発生する。最適化送信処理部１３は送信データの最適化処理を行い、最適化受信処理部１６は最適化データを復元する。受信スループット測定部１７は処理速度を測定し、性能測定部２１は送受信データのスループットを測定し、回線速度測定部２０は回線速度を測定する。記憶部２３はＣＰＵ負荷と回線速度と最適化性能を示す情報との関係を示す性能特性テーブルを記憶する。テーブル処理部１４は各種テーブルの更新を行う。判定部１５はＣＰＵ負荷を示す負荷情報と回線速度測定部２０が測定した回線速度と記憶部２３に記憶された性能特性テーブルとに基づいて送信データを最適化するかを判定する。【選択図】図２
2017143392.tif 000002
【特許請求の範囲】
【請求項１】
送信先装置にデータを送信する際に、該送信先装置に対する通信の回線速度と該送信先装置の負荷情報と該回線速度および該負荷情報に応じた前記データに対する最適化性能とに基づいて、前記送信先装置に送信されるデータを最適化するか否かを判定する、
処理をコンピュータに実行させることを特徴とする通信制御プログラム。
【請求項２】
第１測定データを前記送信先装置に送信する際に、前記送信先装置に対する通信の回線速度および前記送信先装置の負荷をそれぞれ変化させた場合における最適化された前記第１測定データに基づく第１スループットと最適化されない前記第１測定データに基づく第２スループットとを前記最適化性能として、前記回線速度および前記送信先装置の負荷情報と対応付けた第１テーブルを記憶し、
前記第１テーブルに基づいて、前記送信先装置に送信されるデータを最適化するか否かを判定する、
処理を前記コンピュータに実行させることを特徴とする請求項１記載の通信制御プログラム。
【請求項３】
前記データを送信する際の前記送信先装置に対する通信の回線速度および前記負荷情報に応じた前記最適化性能を前記第１テーブルから取得し、
前記第２スループットが前記第１スループットよりも高い場合、前記データを最適化せずに前記送信先装置に送信し、前記第２スループットが前記第１スループット以下の場合、前記データを最適化して前記送信先装置に送信する、
処理を前記コンピュータに実行させることを特徴とする請求項２記載の通信制御プログラム。
【請求項４】
前記送信先装置から受信するデータのスループットと前記送信先装置からの通信の回線速度とに基づいて、前記送信先装置の負荷を予測する、
処理を前記コンピュータに実行させることを特徴とする請求項１乃至３のうち何れか１項に記載の通信制御プログラム。
【請求項５】
前記送信先装置の負荷および前記送信先装置からの通信の回線速度をそれぞれ変化させた場合における最適化された第２測定データのスループットを測定し、
前記第２測定データが測定された際の前記送信先装置の負荷情報と前記送信先装置からの通信の回線速度と測定された前記第２測定データのスループットとを対応付けた第２テーブルを記憶し、
記憶された前記第２測定データのスループットと前記回線速度とに基づいて、対応する前記送信先装置の負荷情報を前記送信先装置の負荷として予測する、
処理を前記コンピュータに実行させることを特徴とする請求項４記載の通信制御プログラム。
【請求項６】
前記送信先装置に対する通信の回線速度と前記送信先装置の負荷情報と前記最適化性能と発生させた負荷の情報とに基づいて、前記データを最適化するか否かを判定する、
処理を前記コンピュータに実行させることを特徴とする請求項１乃至５のうち何れか１項に記載の通信制御プログラム。
【請求項７】
送信先装置にデータを送信する際に、該送信先装置に対する通信の回線速度と該送信先装置の負荷情報と該回線速度および該負荷情報に応じた前記データに対する最適化性能とに基づいて、前記送信先装置に送信されるデータを最適化するか否かを判定する、
処理をコンピュータが実行することを特徴とする通信制御方法。
【請求項８】
送信先装置にデータを送信する際に、該送信先装置に対する通信の回線速度と該送信先装置の負荷情報と該回線速度および該負荷情報に応じた前記データに対する最適化性能とに基づいて、前記送信先装置に送信されるデータを最適化するか否かを判定する判定部、
を備えることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御プログラム、通信制御方法および通信装置に関する。
【背景技術】
【０００２】
ネットワーク（例えば、Wide Area Network(WAN)等）の通信高速化を図る各種の技術が用いられている。例えば、ＷＡＮ環境における通信の高速化を図るＷＡＮ高速化技術が用いられている。
【０００３】
ＷＡＮ高速化技術は、送信されるデータに対して重複除去や圧縮等の最適化を行う技術である。送信されるデータが最適化されることで、通信回線のトラフィックの増大が抑制され、データ通信を行う際のスループットが向上する。
【０００４】
関連する技術として、送信元と送信先の通信装置で輻輳制御機能の切り替えを行う際に、パラメータの引継ぎを行う技術が提案されている（例えば、特許文献１を参照）。また、Central Processing Unit(CPU)の使用率およびバッファの使用率に基づいて負荷状態を判定する技術が提案されている（例えば、特許文献２を参照）。
【０００５】
また、優先度の低いマスターデバイスにのみ帯域制限の指示がされることで、マスターデバイス側で優先度の判定を行わないようにする技術が提案されている（例えば、特許文献３を参照）。
【０００６】
また、サービスにインパクトを与えることなく、複数レイヤに跨って、その時々に応じてネットワークの最適化を行う技術が提案されている（例えば、特許文献４を参照）。また、ネットワーク内の幾つかのプロトコルレイヤの機能を真にレイヤ間で統合する技術が提案されている（例えば、特許文献５を参照）。
【０００７】
また、プロトコルおよびアプリケーションサービスの優先度に応じて、コネクション指向の通信であるか否かに関わりなく、それぞれが用いる帯域を確保する技術が提案されている（例えば、特許文献６を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開第２０１２−０２１３０６９号明細書
【特許文献２】特開２０１１−１６６６３６号公報
【特許文献３】特開２０１０−２１８３５１号公報
【特許文献４】特開２０１２−１１９９９９号公報
【特許文献５】特表２００５−５１８７１７号公報
【特許文献６】特開２００２−０４４１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
送信されるデータに最適化を行う処理を通信装置が実行するアプリケーションプログラムにより実現する場合、最適化処理による負荷が通信装置に生じる。通信装置の負荷は動的に変化するため、該通信装置の負荷が高くなる場合がある。
【００１０】
通信装置の負荷が高くなると、送信されるデータに対する最適化の処理に割り当てられる通信装置のハードウェアリソースが少なくなり、最適化の処理時間が長くなる。このため、却って、スループットが低下するという知見を発明者は得た。
【００１１】
１つの側面として、本発明は、通信装置の負荷を考慮してスループットを向上させることを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、通信装置は、送信先にデータを送信する際に、該送信先との間の回線速度と該送信先の負荷情報と該回線速度および該負荷情報に応じた前記データに対する最適化性能とに基づいて、前記送信先に送信されるデータを最適化するか否かを判定する判定部、を含む。
【発明の効果】
【００１３】
１つの側面によれば、通信装置の負荷を考慮してスループットを向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態のシステムの一例を示す図である。
【図２】通信装置の一例を示す機能ブロック図である。
【図３】送信側および受信側の通信装置の一例を示す機能ブロック図である。
【図４】回線速度とスループットとの関係の一例を示すグラフ（その１）である。
【図５】回線速度とスループットとの関係の一例を示すグラフ（その２）である。
【図６】性能特性テーブルの一例を示す図である。
【図７】記憶部に記憶される受信側通信装置のＣＰＵ負荷の一例を示す図である。
【図８】送信されるデータの一例を示す図である。
【図９】実施形態の処理の一例を示すフローチャート（その１）である。
【図１０】実施形態の処理の一例を示すフローチャート（その２）である。
【図１１】実施形態の性能特性テーブル生成処理の一例を示すシーケンスチャートである。
【図１２】応用例１を示す図である。
【図１３】応用例１の負荷テーブルの一例を示す図である。
【図１４】応用例１の処理の流れの一例を示すフローチャート（その１）である。
【図１５】応用例１の処理の流れの一例を示すフローチャート（その２）である。
【図１６】応用例１の負荷テーブル生成処理の一例を示すシーケンスチャートである。
【図１７】応用例２を示す図である
【図１８】応用例２の性能特性テーブルの一例を示す図である。
【図１９】応用例２の負荷テーブルの一例を示す図である。
【図２０】応用例２の処理の流れの一例を示すフローチャートである。
【図２１】応用例２の性能特性テーブル生成処理の一例を示すシーケンスチャートである。
【図２２】応用例２の負荷テーブル生成処理の一例を示すシーケンスチャートである。
【図２３】通信装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１５】
＜実施形態のシステムの一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステム１の一例を示す。システム１において、送信側通信装置２Ｓと受信側通信装置２ＲとはＷＡＮ３を介して通信可能に接続される。
【００１６】
以下、送信側通信装置２Ｓおよび受信側通信装置２Ｒを総称して通信装置２と称することがある。実施形態では、通信装置２同士が、ＷＡＮ３を介して、通信を行うケースを想定する。データを送信する通信装置２が送信側通信装置２Ｓであり、データを受信する通信装置２が受信側通信装置２Ｒである。
【００１７】
送信側通信装置２Ｓは複数であってもよく、受信側通信装置２Ｒも複数であってもよい。また、通信を行うためのネットワークはＷＡＮには限定されない。例えば、該ネットワークは、Local Area Network(LAN)等であってもよい。
【００１８】
通信装置２は、アプリケーションプログラム（以下、単にアプリケーションと称する）を実行する。アプリケーション（図１では、アプリと表記）は、通信装置２とは異なる端末が実行してもよい。この場合、アプリケーションを実行する端末と通信装置２とが接続される。
【００１９】
通信装置２は、例えば、ＷＡＮ高速化装置（WAN Optimization Controller(WOC)）であってもよい。ＷＡＮ高速化装置は、ネットワークの両端に設置され、Transmission Control Protocol(TCP)を高速プロトコルに置き換えることで、トランスポートレイヤの通信を高速化する。
【００２０】
通信装置２は、該通信装置２から送信されるデータに対して最適化を行う機能を含む。送信されるデータが最適化されることで、ＷＡＮ３の通信回線を流れるトラフィックが抑制され、該通信回線の品質が低くても、スループット（通信性能）が向上する場合がある。
【００２１】
一方、送信されるデータに対して最適化処理が行われることで、却ってスループットが低下する場合もある。通信装置２は、ソフトウェア処理により、データの最適化を行う。例えば、通信装置２のＣＰＵ負荷が高い場合、データを最適化する時間が長くなる。この場合、データに対して最適化処理が行われると、却ってスループットは低下する。
【００２２】
実施形態では、送信側通信装置２Ｓは、データの送信先（受信側通信装置２Ｒ）のＣＰＵ負荷と通信回線の回線速度とに応じた最適化性能に基づいて、送信されるデータを最適化するか否かを制御する。
【００２３】
実施形態における通信装置２の負荷は、ＣＰＵの負荷だけではなく、例えば、主記憶装置や補助記憶装置の負荷の場合もある。主記憶装置や補助記憶装置の負荷が高い場合も、送信されるデータに対する最適化処理の時間が長くなり、スループットは低下する。
【００２４】
＜通信装置の一例＞
次に、通信装置２の一例について説明する。図２は、通信装置２の一例を示す。図２の例に示す通信装置２は、送信側通信装置２Ｓと受信側通信装置２Ｒとの両方の機能を含む。通信装置２は、送信側通信装置２Ｓにも、受信側通信装置２Ｒにもなり得るためである。
【００２５】
データを送信する通信装置２は送信側通信装置２Ｓであり、データを受信する通信装置２は受信側通信装置２Ｒである。送信側通信装置２Ｓを基準とした場合、送信先装置は受信側通信装置２Ｒである。
【００２６】
通信装置２は、アプリケーション機能部１１と制御部１２と最適化送信処理部１３とテーブル処理部１４と判定部１５と最適化受信処理部１６と受信スループット測定部１７と測定データ生成部１８と送信レート制御部１９とを含む。また、通信装置２は、回線速度測定部２０と性能測定部２１と負荷発生部２２と記憶部２３と通信部２４とを含む。
【００２７】
アプリケーション機能部１１は、上述したアプリケーションとして機能する。該アプリケーションは、例えば、ＴＣＰアプリケーションであってもよい。上述したように、通信装置２とは異なる端末がアプリケーションを実行する場合、通信装置２にはアプリケーション機能部１１は含まれない。
【００２８】
制御部１２は、通信装置２の各種の制御を行う。最適化送信処理部１３は、送信されるデータに対して最適化処理を行う。最適化送信処理部１３は、例えば、重複除去や圧縮等の最適化を、送信されるデータに対して行ってもよい。
【００２９】
重複除去は、１回目の通信により得られたデータをキャッシュ等に記憶し、該データの２回目以降の通信からは、インデックスのみを通知する最適化である。通信装置２は、通知されたインデックスに基づいて、データをキャッシュ等から取得する。これにより、送信されるデータの情報量が少なくなる。
【００３０】
また、圧縮はデータの情報量を適宜の手法を用いて少なくする最適化である。この場合、受信側通信装置２Ｒは、圧縮されたデータを復元する。
【００３１】
テーブル処理部１４は、記憶部２３に記憶された各種テーブルの更新等の処理を行う。記憶部２３には、受信側通信装置２ＲのＣＰＵ負荷と、回線速度と、最適化性能を示す情報との関係を示す性能特性テーブルが記憶される。
【００３２】
回線速度は、送信側通信装置２Ｓと受信側通信装置２Ｒとの間の通信回線の回線速度である。回線速度は、送信側通信装置２Ｓと受信側通信装置２Ｒとの間の使用可能な帯域である。
【００３３】
回線速度は、送信側通信装置２Ｓから受信側通信装置２Ｒに向けた通信の回線速度と、受信側通信装置２Ｒから送信側通信装置２Ｓに向けた通信の回線の回線速度とがある。性能特性テーブルの回線速度は、送信側通信装置２Ｓから受信側通信装置２Ｒに向けた通信の回線速度である。
【００３４】
最適化性能を示す情報は、データを最適化した場合のスループットと最適化しない場合のスループットとを示す情報である。
【００３５】
以下、データを最適化した場合のスループットをオンスループットと称し、データを最適化しない場合のスループットをオフスループットと称することがある。オンスループットは、第１スループットの一例であり、オフスループットは第２スループットの一例である。
【００３６】
判定部１５は、受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報と、回線速度測定部２０が測定した回線速度と、記憶部２３に記憶された性能特性テーブルとに基づいて、送信するデータを最適化するかを判定する。性能特性テーブルは、第１テーブルの一例である。
【００３７】
最適化受信処理部１６は、通信部２４が最適化されたデータを受信した場合、該最適化されたデータを復元する処理を行う。例えば、最適化受信処理部１６は、重複除去や圧縮等がされたデータを復元する処理を行う。
【００３８】
受信スループット測定部１７は、最適化受信処理部１６が行う受信処理（復元処理を含む）の速度を測定する。測定された速度は、最適化された通信部２４が受信し、最適化受信処理部１６が受信処理した速度であるため、該速度は、オンスループットを示す。
【００３９】
測定データ生成部１８は、測定用のデータを生成する。実施形態では、該測定用のデータをダミーパケットと称する。生成されたダミーパケットは、送信側通信装置２Ｓから受信側通信装置２Ｒに送信される。実施形態におけるダミーパケットは、性能特性テーブルを生成するためのデータであり、第１測定データの一例である。
【００４０】
送信レート制御部１９は、通信装置から送信されるダミーパケットの送信レートを変化させる制御を行う。回線速度測定部２０は、通信装置２に接続される通信回線の回線速度を測定する。
【００４１】
性能測定部２１は、送信側通信装置２Ｓから受信側通信装置２Ｒに送信されるデータの通信性能（スループット）を測定する。受信側通信装置２Ｒの性能測定部２１は、最適化受信処理部１６により受信処理されたデータのスループットを測定する。
【００４２】
負荷発生部２２は、通信装置２のＣＰＵに負荷を発生させる。例えば、負荷発生部２２は、通信装置２に任意のプログラムを実行させることで、該通信装置２に負荷を発生させてもよい。
【００４３】
負荷発生部２２は任意のＣＰＵ負荷を通信装置２に発生させる。実施形態では、ＣＰＵ負荷はパーセンテージで表される。例えば、ＣＰＵ負荷が「１００％」の場合、通信装置２のＣＰＵの負荷は最大になる。
【００４４】
記憶部２３は、各種のテーブルを記憶する。記憶部２３に記憶されたテーブルは、テーブル処理部１４により更新される。通信部２４は、他の通信装置２と通信を行う。
【００４５】
図３は、図２の例で示した通信装置２を、送信側通信装置２Ｓと受信側通信装置２Ｒとに分けた場合の一例を示す。図３の例において、送信側通信装置２Ｓおよび受信側通信装置２Ｒの各部のうち、共通の機能については、送信側に「Ｓ」が付され、受信側に「Ｒ」が付されて表記する。
【００４６】
図３の例に示されるように、送信側通信装置２Ｓは、最適化送信処理部１３とテーブル処理部１４と判定部１５と測定データ生成部１８と送信レート制御部１９と記憶部２３とを含む。
【００４７】
受信側通信装置２Ｒは、回線速度測定部２０と性能測定部２１と負荷発生部２２とを含む。アプリケーション機能部１１と制御部１２と最適化受信処理部１６と通信部２４とは、送信側通信装置２Ｓおよび受信側通信装置２Ｒの両者に含まれる。
【００４８】
＜最適化を行うか否かの判定の一例＞
図４は、回線速度と受信側通信装置２Ｒの性能測定部２１が測定するスループットとの関係の一例を示すグラフである。実線は、データを最適化した場合の回線速度とスループットとの関係を示し、一点鎖線は、データを最適化しない場合の回線速度とスループットとの関係を示す。
【００４９】
図４の例に示されるように、回線速度が高速になるに応じて、データを最適化した場合のスループットは高くなり、該スループットの値（最大値）は一定になる。ただし、ＣＰＵ負荷が低い場合におけるスループットの最大値は、該ＣＰＵが高い場合におけるスループットの最大値よりも高くなる。
【００５０】
受信側通信装置２ＲのＣＰＵ負荷は動的に変化する。例えば、アプリケーション機能部１１Ｒの実行状況等により、受信側通信装置２ＲのＣＰＵ負荷は動的に変化する。
【００５１】
受信側通信装置２ＲのＣＰＵ負荷が低い場合、最適化されたデータを復元するための処理に、多くのＣＰＵリソースを割り当てることができる。この場合、受信側通信装置２Ｒの最適化受信処理部１６Ｒにおける復元処理の処理速度が高速になり、性能測定部２１が測定するスループットは高くなる。
【００５２】
一方、受信側通信装置２ＲのＣＰＵ負荷が高い場合、最適化されたデータを復元するための処理に割り当てられるＣＰＵリソースは少なくなる。この場合、受信側通信装置２Ｒの最適化受信処理部１６Ｒにおける復元処理の処理速度が低速になり、性能測定部２１が測定するスループットは低くなる。
【００５３】
データの最適化が行われない場合、回線速度が高速になるに応じて、スループットは高くなる。そして、データの最適化が行われない場合のスループット（オフスループット）が、データの最適化が行われた場合のスループット（オンスループット）よりも高くなる逆転現象が生じる。
【００５４】
この逆転現象が生じるポイントをクロスポイントと称する。図４の例に示されるように、クロスポイントは、受信側通信装置２ＲのＣＰＵ負荷が高い場合と低い場合とでは異なる。
【００５５】
図５は、受信側通信装置２ＲのＣＰＵ負荷が高い場合のグラフの一例を示す。クロスポイントに回線速度が達するまではデータの最適化が行われた方が、スループットは高い。また、回線速度がクロスポイントに達した後は、データの最適化が行われない方がスループットは高い。
【００５６】
従って、回線速度がクロスポイントに達するまではデータの最適化が行われ、回線速度がクロスポイントに達した後は、データの最適化が行われることが好ましい。ただし、上述したように、受信側通信装置２ＲのＣＰＵ負荷は動的に変化するため、クロスポイントも動的に変化する。
【００５７】
受信側通信装置２ＲのＣＰＵ負荷が考慮されることなく、最適化処理を行うか否かの判定が行われると、ＣＰＵ負荷の変化によりクロスポイントも変化することから、送信されるデータに最適化が行われるかを適切に判定することが難しくなる。その結果、スループットが低下することがある。
【００５８】
そこで、送信側通信装置２Ｓの判定部１５は、受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報および回線速度測定部２０が測定した回線速度を示す回線速度情報を受信側通信装置２Ｒから取得する。
【００５９】
送信側通信装置２Ｓの判定部１５は、取得された負荷情報と回線速度情報とに応じた最適化性能（オンスループットおよびオフスループットを示す情報）を記憶部２３に記憶された性能特性テーブルから取得する。そして、判定部１５は、取得された最適化性能に基づいて、最適化を行うか否かを判定する。
【００６０】
＜性能特性テーブルの一例＞
次に、図６を参照して、性能特性テーブルの一例について説明する。性能特性テーブルは、記憶部２３に記憶される。図６の例に示されるように、性能特性テーブルは、回線速度と受信側ＣＰＵ負荷とオフスループットとオンスループットとの項目を含む。
【００６１】
図６の例において、オフスループットは「ＯＦＦスループット」と表記され、オンスループットは「ＯＮスループット」と表記される。
【００６２】
実施形態では、測定データ生成部１８が生成したダミーパケットを送信側通信装置２Ｓの通信部２４Ｓが、受信側通信装置２Ｒに送信する。この際、送信レート制御部１９は、ダミーパケットの送信レートを変化させる。
【００６３】
また、制御部１２Ｓは、受信側通信装置２ＲのＣＰＵ負荷を変化させる通知を該受信側通信装置２Ｒに対して行う。この通知に基づいて、受信側通信装置２Ｒの負荷発生部２２は、該受信側通信装置２Ｒに与える負荷を変化させる。
【００６４】
従って、送信側通信装置２Ｓは、送信レートおよび受信側通信装置２ＲのＣＰＵ負荷を変化させながら、ダミーパケットを受信側通信装置２Ｒに送信する。この際、送信側通信装置２Ｓは、最適化送信処理部１３により最適化されたダミーパケットと最適化がされていないダミーパケットとの２種類のパケットを送信する。
【００６５】
受信側通信装置２Ｒにおいて、最適化されたダミーパケットは、最適化受信処理部１６Ｒにより復元される。性能測定部２１は、復元処理の速度に基づいて、オフスループットを測定する。
【００６６】
一方、ダミーパケットが最適化されていない場合、性能測定部２１は、通信部２４Ｒがダミーパケットを受信する速度に基づいて、スループットを測定する。これにより、上記の２種類のスループットが測定される。
【００６７】
例えば、図６の例において、送信レート制御部１９は、ダミーパケットが５Ｍｐｓで送信されるように制御する。これにより、回線速度が５Ｍｂｐｓに模擬される。この条件下で、送信側通信装置２Ｓは、受信側通信装置２ＲのＣＰＵ負荷を変化させる。
【００６８】
例えば、図６の例では、送信側通信装置２Ｓは、受信側通信装置２ＲのＣＰＵ負荷を、５％、２０％、４０％、６０％、８０％および１００％に変化させる。そして、各条件下で、性能測定部２１は、オンスループットおよびオフスループットを測定する。
【００６９】
測定されたオンスループットおよびオフスループットを示す最適化性能の情報は、受信側通信装置２Ｒから送信側通信装置２Ｓに送信される。送信側通信装置２Ｓのテーブル処理部１４は、記憶部２３に記憶された性能特性テーブルに、受信した最適化性能の情報を格納する。
【００７０】
図６の例の場合、送信レート制御部１９は、ダミーパケットが１０Ｍｂｐｓ、５０Ｍｂｐｓ、１００Ｍｂｐｓで送信されるように制御する。この場合、１００Ｍｂｐｓは、送信レートの最大値であり、回線速度の最大値でもある。
【００７１】
そして、上述した処理が繰り返されることで、図６の例に示す性能特性テーブルの各項目に値が格納される。性能特性テーブルのうち、オフスループットおよびオンスループットの情報が最適化性能を示す。
【００７２】
図６の例において、回線速度が５０Ｍｂｐｓ、受信側ＣＰＵ負荷が８０％の時点が、上述したクロスポイントとなる。図６の性能特性テーブルの例において、クロスポイントに網掛けが施されている。
【００７３】
つまり、クロスポイントに達するまではオフスループットよりもオンスループットが高いが、クロスポイントからはオンスループットよりもオフスループットが高い。従って、クロスポイントにおいて、上述した逆転現象が生じる。
【００７４】
判定部１５は、送信側通信装置２Ｓと受信側通信装置２Ｒとの間の通信回線の回線速度と受信側通信装置２ＲのＣＰＵ負荷とに応じた最適化性能に基づいて、最適化を行うかを判定する。
【００７５】
上記の回線速度は、ＷＡＮ３の回線速度であり、受信側通信装置２Ｒの回線速度測定部２０が測定する回線速度である。従って、該回線速度は、送信側通信装置２Ｓから受信側通信装置２Ｒに向けた通信の回線速度である。送信側通信装置２Ｓは、受信側通信装置２Ｒから、回線速度の情報およびＣＰＵ負荷を示す負荷情報を取得する。
【００７６】
例えば、取得された回線速度の情報が５０Ｍｂｐｓであり、且つ取得された負荷情報が６０％の場合、回線速度とＣＰＵ負荷とに応じた最適化性能は、オフスループットよりもオンスループットが高いことを示す。
【００７７】
この場合、受信側通信装置２Ｒに送信されるデータを最適化した方がスループットは高いため、判定部１５は該データを最適化すると判定する。このため、最適化送信処理部１３は、データを送信されるデータを最適化する。
【００７８】
例えば、取得された回線速度の情報が５０Ｍｂｐｓであり、且つ取得された負荷情報が８０％の場合、回線速度とＣＰＵ負荷とに応じた最適化性能は、オンスループットよりもオフスループットが高いことを示す。
【００７９】
この場合、判定部１５は、受信側通信装置２Ｒに送信されるデータを最適化しない方がスループットは高いため、該データを最適化しないと判定する。このため、送信されるデータは、最適化送信処理部１３による最適化処理を受けることなく、通信部２４Ｓから受信側通信装置２Ｒに送信される。
【００８０】
性能特性テーブルにおける回線速度の値は、図６の例に示される値には限定されない。また、性能特性テーブルにおける受信側ＣＰＵ負荷の値も、図６の例には限定されない。性能測定テーブルにおける回線速度および受信側ＣＰＵ負荷の粒度は、図６の例より細かくてもよいし、粗くてもよい。
【００８１】
＜通知される負荷情報の一例＞
実施形態では、受信側通信装置２Ｒの制御部１２Ｒは、該受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報を定期的に送信側通信装置２Ｓに送信する制御を行う。送信側通信装置２Ｓが受信側通信装置２Ｒから負荷情報を受信した場合、テーブル処理部１４は、受信した負荷情報を記憶部２３に記憶する。
【００８２】
図７は、記憶部２３に記憶される受信側通信装置２ＲのＣＰＵ負荷の一例を示す。テーブル処理部１４は、受信側通信装置２Ｒから負荷情報を受信するごとに、記憶部２３に記憶されるＣＰＵ負荷の情報を更新する。
【００８３】
＜送信されるデータの一例＞
図８は、送信されるデータの一例を示す。このデータは、パケットであり、ダミーパケットにも適用される。図８の例のデータ（パケット）は、データ部分とデータ最適化ヘッダとＴＣＰとInternet Protocol(IP)との情報を含む。
【００８４】
データ最適化ヘッダには、データ識別フラグが含まれており、該データ識別フラグにより、データが最適化されているか否か、および最適化されている場合には、最適化の種類を特定する情報が含まれる。
【００８５】
受信側通信装置２Ｒの最適化受信処理部１６Ｒは、データ識別フラグに基づいて、データが最適化されているか否か、および最適化の種類を認識する。そして、データが最適化されている場合、最適化受信処理部１６Ｒは、最適化の種類に応じた復元処理を行う。
【００８６】
データが最適化されているか否かを特定する手法、および最適化の種類を特定する手法は、上述した例には限定されない。
【００８７】
＜実施形態の処理の流れの一例を示すフローチャート＞
次に、図９および図１０に示されるフローチャートの一例を参照して、実施形態の全体の処理の流れについて説明する。図９は、送信側通信装置２Ｓが行う全体の処理の流れの一例を示す。
【００８８】
送信側通信装置２Ｓは、受信側通信装置２Ｒから回線速度情報を取得する（ステップＳ１）。該回線速度情報は、送信側通信装置２Ｓから受信側通信装置２Ｒに向けた通信の回線速度を示す情報であり、受信側通信装置２Ｒの回線速度測定部２０が測定した回線速度の情報である。
【００８９】
送信側通信装置２Ｓは、性能特性テーブルを生成する処理を行う（ステップＳ２）。上述したように、送信側通信装置２Ｓは、ダミーパケットの送信レートを変化させ、且つ受信側通信装置２ＲのＣＰＵ負荷を変化させる。
【００９０】
性能特性テーブル生成処理において、送信レートが変化される。送信レート制御部１９は、ステップＳ１で取得された回線速度情報が示す回線速度を最大値として、ダミーパケットの送信レートを変化させる。
【００９１】
送信側通信装置２Ｓは、受信側通信装置２Ｒから、性能測定部２１により測定されたオンスループットおよびオフスループット（最適化性能）の情報を取得する。送信側通信装置２Ｓのテーブル処理部１４は、取得された最適化性能の情報が示すオンスループットおよびスループットの値を、記憶部２３に記憶された性能特性テーブルに格納する。
【００９２】
ステップＳ１およびステップＳ２の処理は、アプリケーション機能部１１Ｓによる通信が開始される前に行われる処理である。ステップＳ２の処理の後、アプリケーション機能部１１Ｓによる通信が開始される（ステップＳ３）。
【００９３】
送信側通信装置２Ｓのアプリケーション機能部１１Ｓは、受信側通信装置２Ｒのアプリケーション機能部１１Ｒと通信を行う。ステップＳ１およびステップＳ２の処理は、送信側通信装置２Ｓの起動時に行われてもよい。
【００９４】
アプリケーション機能部１１Ｓから、アプリケーション機能部１１Ｒに送信されるデータが読み込まれる（ステップＳ４）。例えば、該データは、ブロック単位のデータであってもよい。
【００９５】
制御部１２Ｓは、通信部２４Ｓが受信側通信装置２Ｒから負荷情報を受信したかを判定する（ステップＳ５）。上述したように、受信側通信装置２Ｒは、送信側通信装置２Ｓに定期的に負荷情報を通知する。
【００９６】
負荷情報を受信したと判定された場合（ステップＳ５でＹＥＳ）、制御部１２Ｓは、受信した負荷情報を記憶部２３に記憶する。これにより、記憶部２３に記憶された負荷情報は更新される。負荷情報を受信したと判定されない場合（ステップＳ５でＮＯ）、制御部１２Ｓは、負荷情報を更新しない。
【００９７】
判定部１５は、記憶部２３に記憶された負荷情報を取得する。この負荷情報は、受信側通信装置２Ｒの直近のＣＰＵ負荷を示す情報である。
【００９８】
制御部１２Ｓは、受信側通信装置２Ｒの回線速度測定部２０に回線速度を測定させ、測定された回線速度を示す回線速度情報を取得する制御を行う（ステップＳ８）。これにより、判定部１５は、受信側通信装置２ＲのＣＰＵ負荷を取得する。
【００９９】
判定部１５は、取得された回線速度およびＣＰＵ負荷の情報に対応する最適化性能を、記憶部２３に記憶された性能特性テーブルから検索する。最適化性能は、オンスループットおよびオフスループットを示す情報である。
【０１００】
判定部１５は、上記検索の結果得られた最適化性能に基づいて、オンスループットとオフスループットとのうち何れが高いかを判定する（ステップＳ１０）。
【０１０１】
オンスループットよりオフスループットが高い場合（ステップＳ１０でＹＥＳ）、通信部２４Ｓは、最適化送信処理部１３により最適化されたデータを送信する（ステップＳ１１）。オンスループットがオフスループット以下の場合（ステップＳ１０でＮＯ）、通信部２４Ｓは、最適化することなくデータを送信する（ステップＳ１２）。
【０１０２】
制御部１２Ｓは、アプリケーション機能部１１Ｓによるデータ通信が終了したかを判定する（ステップＳ１３）。データ通信が終了していないと判定された場合（ステップＳ１３でＮＯ）、処理はステップＳ４に戻る。データ通信が終了したと判定された場合（ステップＳ１３でＹＥＳ）、処理は終了する。
【０１０３】
図１０は、受信側通信装置２Ｒが行う全体の処理の流れの一例を示す。上述したステップＳ１において、送信側通信装置２Ｓは、受信側通信装置２Ｒから回線速度情報を取得する。
【０１０４】
このため、回線速度測定部２０は、送信側通信装置２Ｓから受信側通信装置２Ｒに向けた通信の回線速度を測定する（ステップＳ２１）。例えば、回線速度測定部２０は、バースト送信されたダミーパケットの受信レートを回線速度として測定してもよい。
【０１０５】
受信側通信装置２Ｒは、測定された回線速度を示す回線速度情報を送信側通信装置２Ｓに送信する（ステップＳ２２）。
【０１０６】
受信側通信装置２Ｒは、性能特性テーブルを生成するための処理を行う（ステップＳ２３）。上述したように、受信側通信装置２Ｒは、送信側通信装置２Ｓの制御に基づいて、回線速度を測定し、測定された回線速度を示す回線速度情報およびＣＰＵ負荷を示す負荷情報を送信側通信装置２Ｓに送信する。
【０１０７】
送信側通信装置２Ｓのアプリケーション機能部１１Ｓと受信側通信装置２Ｒのアプリケーション機能部１１Ｒとの間で通信が開始される（ステップＳ２４）。通信部２４Ｒが、送信側通信装置２Ｓからデータ（パケット）を受信すると、最適化受信処理部１６Ｒは、受信したパケットのヘッダを抽出する。
【０１０８】
例えば、パケットに含まれるデータ最適化ヘッダに最適化処理がされていることを示す場合、最適化受信処理部１６Ｒは、復元処理を行う（ステップＳ２５）。例えば、データ最適化ヘッダが、圧縮済みであることを示す場合、最適化受信処理部１６Ｒは、圧縮されたデータを解凍することで、復元処理を行う。
【０１０９】
パケットに含まれるデータ最適化ヘッダに最適化処理がされていることを示さない場合、該パケットに対する復元処理は行われない。
【０１１０】
上述したように、受信側通信装置２Ｒは、該受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報を定期的に送信側通信装置２Ｓに送信する（ステップＳ２６）。これにより、送信側通信装置２Ｓの記憶部２３には、受信側通信装置２Ｒの直近のＣＰＵ負荷を示す負荷情報が記憶される。
【０１１１】
制御部１２Ｒは、アプリケーション機能部１１Ｓとアプリケーション機能部１１Ｒとによる通信が終了したかを判定する（ステップＳ２７）。通信が終了していない場合（ステップＳ２７でＮＯ）、処理はステップＳ２５に戻る。通信が終了した場合（ステップＳ２７でＹＥＳ）、処理は終了する。
【０１１２】
従って、判定部１５は、記憶部２３に記憶された最適化性能のうち、回線速度と受信側通信装置２ＲのＣＰＵ負荷とに応じた最適化性能に応じて、送信されるデータを最適化するか否かを判定する。
【０１１３】
これにより、送信先装置である受信側通信装置２ＲのＣＰＵ負荷が動的に変化したとしても、判定部１５は、該ＣＰＵ負荷を考慮して、送信されるデータを最適化するか否かを判定するため、最適化するか否かの判定を適正に行うことができる。
【０１１４】
＜性能特性テーブル生成処理の流れの一例を示すシーケンスチャート＞
図１１は、性能特性テーブル生成処理の一例を示すシーケンスチャートである。図１１に示される性能特性テーブル生成処理は、上述したステップＳ２（送信側）およびステップＳ２３（受信側）の両者の処理を含む。
【０１１５】
「送信側」は、送信側通信装置２Ｓを示し、「受信側」は、受信側通信装置２Ｒを示す。送信レート制御部１９は、ダミーパケットの送信レートを変化させる制御を行う。このため、送信レート制御部１９は、ステップＳＣ１〜ステップＳＣ１７のループ処理を繰り返す。
【０１１６】
例えば、上述したように、送信レート制御部１９は、ダミーパケットの送信レートを、５Ｍｂｐｓ、１０Ｍｂｐｓ、５０Ｍｂｐｓおよび１００Ｍｂｐｓに変化させながら、ステップＳＣ１〜ＳＣ１７の処理を繰り返してもよい。
【０１１７】
制御部１２Ｓは、受信側通信装置２ＲのＣＰＵ負荷を変化させる制御を行う。このため、制御部１２Ｓは、ステップＳＣ２〜ＳＣ１６のループ処理を繰り返す。例えば、上述したように、制御部１２Ｓは、受信側通信装置２Ｒに発生させるＣＰＵ負荷を５％、２０％、４０％、６０％、８０％および１００％に変化させる。
【０１１８】
制御部１２Ｓは、受信側通信装置２Ｒの負荷発生部２２に発生させるＣＰＵ負荷の値を通知する（ステップＳＣ３）。受信側通信装置２Ｒが該通知を受信すると、負荷発生部２２は、通知された負荷を受信側通信装置２ＲのＣＰＵに発生させる（ステップＳＣ４）。
【０１１９】
最適化送信処理部１３は、測定データ生成部１８が生成したダミーパケットを最適化し、通信部２４Ｓは、該最適化されたダミーパケットを送信する（ステップＳＣ５）。通信部２４Ｒは、最適化されたダミーパケットを受信する（ステップＳＣ６）。
【０１２０】
該最適化されたダミーパケットは、最適化受信処理部１６Ｒにより復元処理がされる。性能測定部２１は、最適化受信処理部１６Ｒによる復元処理の速度に基づいて、オンスループットを測定する（ステップＳＣ７）。
【０１２１】
受信側通信装置２Ｒは、送信側通信装置２Ｓに対して、測定されたオンスループットの情報を送信側通信装置２Ｓに通知する（ステップＳＣ８）。送信側通信装置２Ｓは、オンスループットの情報を取得する（ステップＳＣ９）。
【０１２２】
制御部１２Ｓは、測定データ生成部１８が生成したダミーパケットを最適化することなく受信側通信装置２Ｒに送信する制御を行う。これにより、最適化されていないダミーパケットが受信側通信装置２Ｒに送信される（ステップＳＣ１０）。
【０１２３】
受信側通信装置２Ｒの通信部２４Ｒは、最適化されていないダミーパケットを受信する（ステップＳＣ１１）。性能測定部２１は、通信部２４Ｒが受信したダミーパケットの速度に基づいて、オフスループットを測定する（ステップＳＣ１２）。
【０１２４】
受信側通信装置２Ｒは、送信側通信装置２Ｓに対して、測定されたオフスループットの情報を送信側通信装置２Ｓに通知する（ステップＳＣ１３）。送信側通信装置２Ｓは、オフスループットの情報を取得する（ステップＳＣ１４）。
【０１２５】
これにより、送信レート制御部１９により制御された送信レートおよび負荷発生部２２に発生させた受信側通信装置２ＲのＣＰＵ負荷に応じた最適化性能（オンスループットおよびオフスループット）が得られる。
【０１２６】
テーブル処理部１４は、記憶部２３に記憶された性能特性テーブルのうち、送信レートおよび受信側通信装置２ＲのＣＰＵ負荷に対応するオンスループットおよびオフスループットの項目に値を格納する（ステップＳＣ１５）。
【０１２７】
送信側通信装置２Ｓは、送信レートを変化させながら、且つ受信側通信装置２ＲのＣＰＵ負荷を変化させながら、ステップＳＣ３〜ＳＣ１５の処理を行う。これにより、性能特性テーブルの各項目に値が格納される。
【０１２８】
以上が、性能特性テーブル生成処理の一例である。上述したように、性能特性テーブル生成処理は、例えば、送信側通信装置２Ｓおよび受信側通信装置２Ｒの起動時に行われてもよい。
【０１２９】
ここで、アプリケーション機能部１１Ｓによる通信が開始されるまでに、性能特性テーブルの各項目に値が格納されていることが好ましい。このため、上述した例では、アプリケーション機能部１１Ｓによる通信が開始される前に、性能特性テーブル生成処理が行われる。
【０１３０】
ただし、アプリケーション機能部１１Ｓによる通信が開始された後に、性能特性テーブルの各項目の値が格納されてもよい。
【０１３１】
アプリケーション機能部１１Ｓとアプリケーション機能部１１Ｒとの間で行われる通信（送信側通信装置２Ｓと受信側通信装置２Ｒとの間で行われる通信）の送信レート、および受信側通信装置２ＲのＣＰＵ負荷は変化する。
【０１３２】
性能測定部２１は、アプリケーション機能部１１Ｓとアプリケーション機能部１１Ｒとの間で行われる通信のスループットを測定する。受信側通信装置２Ｒは、スループットおよび該スループットを測定した条件を、逐次、送信側通信装置２Ｓに通知する。
【０１３３】
テーブル処理部１４は、通知された情報を、記憶部２３に記憶された性能特性テーブルに格納する。これにより、アプリケーション機能部１１Ｓによる通信を行いながら、性能特性テーブルを生成することができる。
【０１３４】
＜応用例１＞
次に、応用例１について説明する。図１２は、応用例１を示す図である。上述した実施形態では、受信側通信装置２Ｒは、該受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報を定期的に送信側通信装置２Ｓに通知する。
【０１３５】
判定部１５は、受信側通信装置２ＲのＣＰＵ負荷および送信レートに基づいて、送信されるデータを最適化するか否かを判定する。ここで、受信側通信装置２ＲのＣＰＵ負荷は刻々と変化するため、直近に通知された受信側通信装置２ＲのＣＰＵ負荷は、判定部１５が判定を行う時点での受信側通信装置２ＲのＣＰＵ負荷と乖離している可能性がある。
【０１３６】
この場合、判定部１５は、送信されるデータを最適化するか否かを適正に判定することが難しい。判定部１５が判定を行う際に、送信側通信装置２Ｓが受信側通信装置２Ｒから負荷情報を取得することが考えられるが、負荷情報を取得するまでにある程度の時間がかかる。
【０１３７】
このため、送信側通信装置２Ｓは、受信側通信装置２ＲのリアルタイムなＣＰＵ負荷を示す負荷情報を取得することが難しい。その結果、判定部１５は、送信されるデータを最適化するか否かを適正に判定することが難しい。
【０１３８】
応用例１では、送信側通信装置２Ｓは、予め、各種の条件下で測定された受信側通信装置２ＲのＣＰＵ負荷を示す負荷テーブルを生成する。負荷テーブルは、第２テーブルの一例である。
【０１３９】
判定部１５は、負荷テーブルに基づいて、受信側通信装置２ＲのＣＰＵ負荷を予測し、送信されるデータを最適化するか否かを判定する。
【０１４０】
従って、送信側通信装置２Ｓの判定部１５は、受信側通信装置２Ｒから負荷情報を取得することなく、送信されるデータを最適化するか否かを判定する。これにより、判定部１５は、送信されるデータを最適化するか否かをより適正に判定することができる。
【０１４１】
図１２の例において、送信側通信装置２Ｓの制御部１２Ｓは、送信レートおよびＣＰＵ負荷を示す情報を受信側通信装置２Ｒに通知する制御を行う。この通知には、それぞれ異なる複数の送信レート、およびそれぞれ異なる複数のＣＰＵ負荷の情報が含まれる。
【０１４２】
例えば、上記通知には、５Ｍｂｐｓ、１０Ｍｂｐｓ、５０Ｍｂｐｓおよび１００Ｍｂｐｓを示す送信レートの情報が含まれる。また、上記通知には、受信側通信装置２Ｒに発生させるＣＰＵ負荷が５％、２０％、４０％、６０％、８０％および１００％を示す情報が含まれる。
【０１４３】
受信側通信装置２Ｒの最適化送信処理部１３Ｒは、測定データ生成部１８Ｒが生成したダミーパケットを最適化する。応用例１におけるダミーパケット（最適化されたダミーパケット）は負荷テーブルを生成するためのデータであり、第２測定データの一例である。
【０１４４】
送信レート制御部１９は、上記通知に基づいて、最適化されたダミーパケットの送信レートを変化させる。また、負荷発生部２２は、上記通知に基づいて、受信側通信装置２ＲのＣＰＵ負荷を変化させる。
【０１４５】
従って、受信側通信装置２Ｒから送信側通信装置２Ｓに対して、送信レートが変化されながら、且つ受信側通信装置２ＲのＣＰＵ負荷が変化されながら、最適化されたダミーパケットが送信される。
【０１４６】
送信側通信装置２Ｓの通信部２４Ｓは、最適化されたパケットを受信する。最適化受信処理部１６Ｌは、復元処理を行う。受信スループット測定部１７は、スループット（オンスループット）の測定を行う。テーブル処理部１４は、測定結果に基づく値を、記憶部２３に記憶された負荷テーブルに格納する。
【０１４７】
図１３は、負荷テーブルの一例を示す。負荷テーブルは、回線速度とオンスループットとＣＰＵ負荷とが対応付けられたテーブルである。
【０１４８】
テーブル処理部１４は、受信側通信装置２Ｒに通知した送信レートおよびＣＰＵ負荷と対応付けて、受信スループット測定部１７が測定したオンスループットを負荷テーブルに格納する。
【０１４９】
送信側通信装置２Ｓの通信部２４Ｓが受信側通信装置２Ｒから最適化されたデータを受信した際、回線速度測定部２０Ｓは、送信側通信装置２Ｓと受信側通信装置２Ｒとの間の通信回線の回線速度を測定する。回線速度測定部２０Ｓが測定する回線速度は、受信側通信装置２Ｒから送信側通信装置２Ｓに向けた通信の回線速度である。
【０１５０】
また、受信スループット測定部１７は、最適化されたデータのオンスループットを測定する。制御部１２Ｓは、測定された回線速度および測定されたオンスループットに基づいて、記憶部２３に記憶された負荷テーブルを検索し、対応するＣＰＵ負荷を取得する。
【０１５１】
これにより、送信側通信装置２Ｓは、ＣＰＵ負荷の予測を行う。従って、送信側通信装置２Ｓは、受信側通信装置２ＲからＣＰＵ負荷を示す負荷情報を取得しなくとも、該受信側通信装置２ＲのＣＰＵ負荷を予測できる。
【０１５２】
＜応用例１の処理の流れを示すフローチャートの一例＞
図１４は、応用例１における送信側通信装置２Ｓの処理の流れの一例を示すフローチャートであり、図１５は、応用例１における受信側通信装置２Ｒの処理の流れの一例を示すフローチャートである。
【０１５３】
図１４のフローチャートにおいて、図９のフローチャートで説明した処理と同様の処理の説明は省略する。図１５のフローチャートにおいて、図１０のフローチャートで説明した処理と同様の処理の説明は省略する。
【０１５４】
図１４のフローチャートに示されるように、送信側通信装置２Ｓは、送信側の負荷テーブル生成処理を行う（ステップＳ２−１）。これにより、記憶部２３に記憶された負荷テーブルの各項目に値が格納される。
【０１５５】
アプリケーション機能部１１による通信が開始されると、送信側通信装置２Ｓと受信側通信装置２Ｒとの間で通信が行われる。送信側通信装置２Ｓの通信部２４Ｓが最適化されたデータを受信した際、回線側測定部２０Ｓは、回線速度（受信側通信装置２Ｒから送信側通信装置２Ｓに向けた通信の回線速度）を測定する（ステップＳ５−１）。
【０１５６】
受信スループット測定部１７は、オンスループット測定を行う（ステップＳ５−２）。制御部１２Ｓは、測定された回線速度および測定されたオンスループットに対応する受信側通信装置２ＲのＣＰＵ負荷を、記憶部２３に記憶された負荷テーブルから取得する。これにより、受信側通信装置２ＲのＣＰＵ負荷が予測される（ステップＳ５−３）。
【０１５７】
図１５のフローチャートに示されるように、受信側通信装置２Ｒの処理には、受信側の負荷テーブル生成処理（ステップＳ２３−１）が追加されている。なお、応用例１における性能特性テーブル生成処理は、上述した実施形態と同様の処理であるため、説明を省略する。
【０１５８】
＜応用例１の負荷テーブル生成処理の一例を示すシーケンスチャート＞
次に、図１６の例を参照して、負荷テーブル生成処理の一例を示すシーケンスチャートについて説明する。送信側通信装置２Ｓは、ステップＳＣ２１〜ステップＳＣ３２の処理を繰り返す送信レート制御を行う。
【０１５９】
制御部１２Ｓは、ダミーパケットを送信する送信レートを示す送信レート情報を受信側通信装置２Ｒに通知する制御を行う（ステップＳＣ２２）。受信側通信装置２Ｒの通信部２４Ｒは、この通知を受信する。
【０１６０】
送信レート制御部１９は、ダミーパケットを送信する送信レートを、通知された送信レート情報に基づいて設定する（ステップＳＣ２３）。送信レートの設定がされた後、ステップＳＣ２４〜ステップＳＣ３１の受信側ＣＰＵ負荷制御の処理が繰り返し行われる。
【０１６１】
制御部１２Ｓは、受信側通信装置２Ｒに発生させるＣＰＵ負荷を通知する（ステップＳＣ２５）。負荷発生部２２は、通知されたＣＰＵ負荷に基づいて、受信側通信装置２ＲにＣＰＵ負荷を発生させる（ステップＳＣ２６）。
【０１６２】
最適化送信処理部１３Ｒは、測定データ生成部１８Ｒが生成したダミーパケットを最適化する。通信部２４Ｒは、送信レート制御部１９により設定された送信レートで最適化されたダミーパケットを送信側通信装置２Ｓに送信する（ステップＳＣ２７）。
【０１６３】
送信側通信装置２Ｓの通信部２４Ｓは、最適化されたダミーパケットを受信する（ステップＳＣ２８）。そして、最適化受信処理部１６Ｌは、最適化されたダミーパケットに対して復元処理を行い、受信スループット測定部１７は、オンスループット測定を行う（ステップＳＣ２９）。
【０１６４】
テーブル処理部１４は、受信側通信装置２Ｒに通知した送信レートおよびＣＰＵ負荷に対応付けて、測定されたオンスループットを負荷テーブルに格納する（ステップＳＣ３０）。制御部１２Ｓは、受信側通信装置２Ｒに発生させるＣＰＵ負荷を変化させながら、ステップＳＣ２４〜ステップＳＣ３１の処理を繰り返す。
【０１６５】
また、制御部１２Ｓは、受信側通信装置２Ｒから送信されるダミーデータの送信レートを変化さながら、ステップＳＣ２１〜ステップＳＣ３２の処理を繰り返す。以上により、負荷テーブル生成処理が終了する。
【０１６６】
従って、応用例１では、受信側通信装置２Ｒから該受信側通信装置２ＲのＣＰＵ負荷を示す負荷情報を取得することなく、送信側通信装置２Ｓは、受信側通信装置２ＲのＣＰＵ負荷を予測する。
【０１６７】
そして、判定部１５は、予測された受信側通信装置２ＲのＣＰＵ負荷に基づいて、送信されるデータを最適化するか否かを判定する。このため、受信側通信装置２ＲのＣＰＵ負荷をリアルタイムに予測することができ、送信されるデータを最適化するか否かを適正に判定することができる。
【０１６８】
＜応用例２＞
上述した実施形態および応用例１は、受信側通信装置２ＲのＣＰＵ負荷を考慮して、判定部１５は、送信されるデータを最適化するか否かを判定する。受信側通信装置２ＲのＣＰＵの性能が送信側通信装置２ＳのＣＰＵの性能よりも低く、且つ両者の性能差が大きい場合、送信側通信装置２ＳのＣＰＵ負荷がスループットに与える影響は少ない。
【０１６９】
一方、受信側通信装置２ＲのＣＰＵと送信側通信装置２ＳのＣＰＵとの間の性能差が小さい場合、送信側通信装置２ＳのＣＰＵ負荷がスループットに影響を与えることが想定される。
【０１７０】
応用例２では、判定部１５は、受信側通信装置２ＲのＣＰＵ負荷だけでなく、送信側通信装置２ＳのＣＰＵ負荷も考慮して、送信されるデータを最適化するか否かを判定する。図１７は、応用例２を示す図である。図１７の例において、受信側通信装置２Ｒと送信側通信装置２Ｓとの両者に負荷発生部２２が含まれる。
【０１７１】
図１８は、応用例２における性能特性テーブルの一例を示す。図１８の例の性能特性テーブルには、回線速度と送信側通信装置２ＳのＣＰＵ負荷と受信側通信装置２ＲのＣＰＵ負荷とに応じた最適化性能が格納される。最適化性能の値は、オンスループットおよびオフスループットの値である。
【０１７２】
実施形態の性能特性テーブルに対して、応用例２の性能特性テーブルには、送信側ＣＰＵ負荷（送信側通信装置２ＳのＣＰＵ負荷）の項目が追加されている。
【０１７３】
図１９は、応用例２における負荷テーブルの一例を示す。応用例２の負荷テーブルは、回線速度と送信側ＣＰＵ負荷とオンスループットと受信側ＣＰＵ負荷との項目を含む。応用例２の負荷テーブルには、応用例１の負荷テーブルに、送信側ＣＰＵ負荷の項目が追加されている。
【０１７４】
従って、応用例２では、判定部１５は、受信側通信装置２ＲのＣＰＵ負荷と送信側通信装置２ＳのＣＰＵ負荷とを考慮した判定を行うため、送信されるデータを最適化するか否かをより適正に判定することができる。
【０１７５】
＜応用例２の処理の流れを示すフローチャートの一例＞
図２０は、応用例２における送信側通信装置２Ｓの処理の流れの一例を示すフローチャートである。応用例２における送信側通信装置２Ｓの処理には、応用例１における送信側通信装置２Ｓの処理に、ステップＳ５−４が追加されている。その他の処理は、応用例１の処理と同様であるため、説明を省略する。
【０１７６】
制御部１２Ｓは、送信側通信装置２ＳのＣＰＵ負荷を認識する（ステップＳ５−４）。これにより、回線速度と受信側通信装置２ＲのＣＰＵ負荷と送信側通信装置２ＳのＣＰＵ負荷とに応じた最適化性能が検索され、該最適化性能が示すオンスループットオフスループットとに基づいて、送信されるデータが最適化されるか否かが判定される。
【０１７７】
応用例２における受信側通信装置２Ｒの処理は、応用例１における受信側通信装置２Ｒの処理と類似している。ただし、受信側の性能特性テーブル生成処理（ステップＳ２３）および受信側負荷テーブル生成処理（ステップＳ２３−１）は、応用例１と応用例とで異なる。
【０１７８】
＜応用例２の性能特性テーブル生成処理の一例を示すシーケンスチャート＞
図２１は、応用例２の性能特性テーブル生成処理のシーケンスチャートの一例を示す。応用例２における性能特性テーブルの生成処理は、上述した実施形態の性能特性テーブル生成処理に、送信側ＣＰＵ負荷制御のループ処理（ステップＳＣ１−１〜ステップＳＣ１６−１）が追加されている。
【０１７９】
応用例２では、送信側ＣＰＵ負荷制御のループ処理において、制御部１２Ｓは、送信側通信装置２ＳのＣＰＵに負荷を発生させる（ステップＳＣ１−２）。送信側ＣＰＵ負荷制御のループ処理が行われるごとに、制御部１２Ｓは、送信側通信装置２Ｓに発生させるＣＰＵ負荷を変化させる。
【０１８０】
＜応用例２の負荷テーブル生成処理の一例を示すシーケンスチャート＞
図２２は、応用例２の負荷テーブル生成処理の一例を示す。応用例１の負荷テーブル生成処理に、送信側ＣＰＵ負荷制御のループ処理（ステップＳＣ２２−１〜ステップＳＣ３１−１）が追加されている。
【０１８１】
応用例２では、送信側ＣＰＵ負荷制御のループ処理において、負荷発生部２２Ｓは、送信側通信装置２ＳのＣＰＵに負荷を発生させる（ステップＳＣ２２−２）。送信側ＣＰＵ負荷制御のループ処理が行われるごとに、制御部１２Ｓは、送信側通信装置２Ｓに発生させるＣＰＵ負荷を変化させる。
【０１８２】
＜通信装置のハードウェア構成の一例＞
次に、図２３の例を参照して、通信装置２のハードウェア構成の一例を説明する。図２３の例に示すように、バス１００に対して、プロセッサ１１１とＲＡＭ１１２とＲＯＭ１１３と補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とが接続されている。
【０１８３】
プロセッサ１１１は任意の処理回路である。プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０１８４】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１９と接続可能に設けられている。
【０１８５】
可搬型記録媒体１１９としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)等）を適用してもよい。この可搬型記録媒体１１９に実施形態の処理を行う通信制御プログラムが記録されていてもよい。
【０１８６】
通信装置２のうち、記憶部２３は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。通信部２４は、通信インタフェース１１６により実現されてもよい。通信装置２のうち、記憶部２３および通信部２４以外の各部は、与えられた通信制御プログラムをプロセッサ１１１が実行することにより実現されてもよい。
【０１８７】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１９は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０１８８】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１８９】
１    システム
２    通信装置
３    ＷＡＮ
１１    アプリケーション機能部
１２    制御部
１３    最適化送信処理部
１４    テーブル処理部
１５    判定部
１６    最適化受信処理部
１７    受信スループット測定部
１８    測定データ生成部
１９    送信レート制御部
２０    回線速度計測部
２１    性能測定部
２２    負荷発生部
２３    記憶部
２４    通信部
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
2017143392.tif 000003
【図２】
2017143392.tif 000004
【図３】
2017143392.tif 000005
【図４】
2017143392.tif 000006
【図５】
2017143392.tif 000007
【図６】
2017143392.tif 000008
【図７】
2017143392.tif 000009
【図８】
2017143392.tif 000010
【図９】
2017143392.tif 000011
【図１０】
2017143392.tif 000012
【図１１】
2017143392.tif 000013
【図１２】
2017143392.tif 000014
【図１３】
2017143392.tif 000015
【図１４】
2017143392.tif 000016
【図１５】
2017143392.tif 000017
【図１６】
2017143392.tif 000018
【図１７】
2017143392.tif 000019
【図１８】
2017143392.tif 000020
【図１９】
2017143392.tif 000021
【図２０】
2017143392.tif 000022
【図２１】
2017143392.tif 000023
【図２２】
2017143392.tif 000024
【図２３】
2017143392.tif 000025