(57)【要約】【課題】無通信期間中に通信品質を精度良く測定することが可能な通信装置、管理サーバ、制御方法およびプログラムを提供する。【解決手段】通信装置は、通信経路を介して対向する通信装置と接続され、通信経路に確立されたセッションによる通信を行う通信装置であって、セッションの特性に応じたテストパケットを生成する生成部と、通信が行われていない無通信期間において、テストパケットを通信経路に送出することにより、通信経路の通信品質を測定する測定部とを備える。【選択図】図１
2019087828.tif 000002
【特許請求の範囲】
【請求項１】
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置であって、
前記セッションの特性に応じたテストパケットを生成する生成部と、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定する測定部とを備えることを特徴とする通信装置。
【請求項２】
前記セッションに関するパケット転送を行うスイッチから、前記セッションの統計情報を収集する収集部を備えることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記無通信期間は、前記統計情報に基づいて判定されることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記生成部は、前記無通信期間外に収集された前記統計情報に基づいて前記特性を推定することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記生成部は、前記テストパケットのサイズ、前記テストパケットの送出頻度、および前記テストパケットを処理するためのトランスポートプロトコルのうちの少なくとも１つを決定することを特徴とする請求項４に記載の通信装置。
【請求項６】
前記スイッチは、オープンフロー（OpenFlow）技術が適用されたオープンフロースイッチであり、前記セッションは、前記スイッチに登録されたフローエントリにより規定されることを特徴とする請求項２乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記測定部は、通信が行われていない他の通信経路であって、前記セッションにより使用され得る前記他の通信経路に対して、前記テストパケットによる通信品質の測定を行うことを特徴とする請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
前記他の通信経路の通信品質が前記通信経路の通信品質よりも高い場合、前記通信経路を前記他の通信経路に切り替えることを特徴とする請求項７に記載の通信装置。
【請求項９】
前記測定部は、前記対向する通信装置と連携して前記テストパケットによる測定を行うことを特徴とする請求項１乃至８のいずれか１項に記載の通信装置。
【請求項１０】
前記セッションの特性を収集する収集部と、
前記セッションと通信経路が共通する他のセッションによる通信を行う他の通信装置から、前記他のセッションの特性を取得する取得部と、
前記セッションの特性と前記他のセッションの特性とが類似する場合、前記セッションによる通信が行われていない無通信期間において、前記他の通信装置で測定された前記他のセッションの通信経路の品質情報に基づいて、前記セッションの通信経路の品質情報を推定する推定部とを備えることを特徴とする請求項１に記載の通信装置。
【請求項１１】
請求項１０に記載の通信装置に対して、前記他の通信装置で収集された前記他のセッションの特性および前記品質情報を提供する管理サーバ。
【請求項１２】
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置の制御方法であって、
前記セッションの特性に応じたテストパケットを生成するステップと、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを備えることを特徴とする制御方法。
【請求項１３】
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置を制御するためのプログラムであって、
コンピュータに、
前記セッションの特性に応じたテストパケットを生成するステップと、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、管理サーバ、制御方法およびプログラムに関する。
【背景技術】
【０００２】
無通信ネットワークは干渉を受けやすく、通信品質が不安定である。そのため、リアルタイムに通信品質を測定し、通信品質の良い通信経路を選択することで通信の安定性を保つ技術が知られている。特許文献１には、通信が行われていない無通信期間（例えばスリープ状態）においても、ＰＩＮＧを用いて少量のテストデータを転送装置間で送受信することにより、通信品質を測定することが可能なデータ転送装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８０３９４号公報
【非特許文献】
【０００４】
【非特許文献１】OpenFlow Switch Specification Version 1.4.0. (Wire Protocol 0x05) October 14, 2013
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、少量のテストデータを用いて品質測定を行っているため、通信時における実際の通信データの通信品質を無通信期間中に精度良く測定することは困難である。
【０００６】
本発明は、上述の課題に鑑みてなされたものであって、無通信期間中に通信品質を精度良く測定することが可能な通信装置、管理サーバ、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置であって、前記セッションの特性に応じたテストパケットを生成する生成部と、前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定する測定部とを備えることを特徴とする通信装置が提供される。
【０００８】
本発明の他の観点によれば、通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置の制御方法であって、前記セッションの特性に応じたテストパケットを生成するステップと、前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを備えることを特徴とする制御方法が提供される。
【０００９】
本発明の他の観点によれば、通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置を制御するためのプログラムであって、コンピュータに、前記セッションの特性に応じたテストパケットを生成するステップと、前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを実行させることを特徴とするプログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、無通信期間中に通信品質を精度良く測定することが可能な通信装置、管理サーバ、制御方法およびプログラムが提供される。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る通信システムのネットワーク構成を示すブロック図である。
【図２】第１実施形態に係るコントローラのブロック図である。
【図３】第１実施形態に係るコントローラのハードウェアブロック図である。
【図４】第１実施形態に係る通信システムにおける処理の概念図である。
【図５】第１実施形態に係るゲートウェイ間の通信を表すタイムチャートである。
【図６】第１実施形態に係るコントローラの動作を表すフローチャートである。
【図７】第２実施形態に係るコントローラの動作を表すフローチャートである。
【図８】第３実施形態に係る通信システムのネットワーク構成を示すブロック図である。
【図９】第３実施形態に係るコントローラのブロック図である。
【図１０】第３実施形態に係るコントローラの動作を表すフローチャートである。
【図１１】第４実施形態に係る通信装置の概略構成図である。
【図１２】第５実施形態に係る通信装置の概略構成図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
図１は、本実施形態に係る通信システムのネットワーク構成を示すブロック図である。通信システムは、例えば、製造ラインの監視、品質管理などを行うための工場内システムであって、ゲートウェイ１０、ゲートウェイ２０、端末装置３０、ＩＰ（Internet Protocol）機器４０、センサ４１を備える。ゲートウェイ１０は親機であって、子機であるゲートウェイ２０との間で異なる複数の無線通信方式による通信を行うことが可能である。
【００１３】
ここで、無線通信方式は、例えば、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、ＩＥＥＥ８０２．１１ａｃ、ＩＥＥＥ８０２．１１ａｈなどにより規定されたＷｉ−Ｆｉ（登録商標）通信方式であり得る。さらに、無線通信方式は、ＩＥＥＥ８０２．１５．１で規定されたＢＬＥ（Bluetooth Low Energy）（登録商標）通信方式、ＩＥＥＥ８０２．１５．４で規定されたＺｉｇＢｅｅ（登録商標）通信方式などであり得る。無線通信方式は、無線ＬＡＮ（Local Area Network）規格の通信の他、ＬＴＥ（Long Term Evolution）、４Ｇ（4th Generation）などの移動体通信規格による通信であってもよい。
【００１４】
ゲートウェイ１０は、例えばエッジコンピュータ、携帯端末、組込機器などの通信装置であって、無線通信ネットワークを介してゲートウェイ２０と接続される。無線通信ネットワーク上には、周波数（チャネル）または無線通信方式が互いに異なる２つの通信経路（ｗｌａｎ０、ｗｌａｎ１）が設定されており、ゲートウェイ１０とゲートウェイ２０との間の通信は、これらの通信経路のいずれかを使用して行われる。通信経路の数は２に限定されず、３以上の通信経路が確立され得る。
【００１５】
ゲートウェイ２０には、ＩＰ機器４０、センサ４１などのデバイスが接続される。デバイスは、ネットワーク接続機能を有しない機器、またはネットワーク接続機能を有する機器であって、例えば工場内などに設置される現場機器である。デバイスは、ＩＰ機器４０、センサ４１の他、工作機械、産業用ロボット、ＰＬＣ（Programmable Logic Controller）、ＲＦＩＤ（Radio Frequency Identifier）タグなどであり得る。各ゲートウェイ２０には、異なるデバイスが接続され得る。例えば、図１において、一方のゲートウェイ２０にはＩＰ機器４０が接続され、他方のゲートウェイ２０にはセンサ４１が接続される。ゲートウェイ２０は、デバイスから受信されたデータをゲートウェイ１０に転送するとともに、ゲートウェイ１０から受信されたデータをデバイスに転送する。ゲートウェイ２０に接続されるデバイスの数は限定されない。以下、デバイスとしてＩＰ機器４０を例に挙げて説明する。
【００１６】
ゲートウェイ１０は、コントローラ１００、スイッチ１０１、通信インタフェース１１０、１１１、１１２を備える。コントローラ１００は、スイッチ１０１を介して通信インタフェース１１０、１１１、１１２と接続されている。コントローラ１００は、非特許文献１の技術が適用されたオープンフロー（OpenFlow）コントローラの機能を有し、セッション毎に使用される通信経路をスイッチ１０１から取得した情報に基づいて選択する。コントローラ１００は、通信経路を指定したフローエントリをスイッチ１０１のフローテーブルに登録することにより、通信経路の制御を行うことができる。
【００１７】
スイッチ１０１は、非特許文献１の技術が適用されたオープンフロースイッチの機能を有し、外部装置から受信されたパケットの転送先をフローエントリに従って決定する。例えば、スイッチ１０１は、端末装置３０から受信されたパケットを、フローエントリに従って通信インタフェース１１０または通信インタフェース１１１に転送する。フローエントリは、スイッチ１０１内のフローテーブルに登録される。
【００１８】
通信インタフェース１１０、１１１は、上述の無線通信方式に対応した通信モジュールである。図１において、通信インタフェース１１０は、第１の通信経路であるｗｌａｎ０における通信を実現し、通信インタフェース１１１は、第２の通信経路であるｗｌａｎ１における通信を実現する。また、通信インタフェース１１０、１１１は、通信経路毎に、通信帯域幅（通信速度）、遅延、再送回数などの通信品質（品質情報）を測定する機能を有する。通信インタフェース１１２は、イーサネット（登録商標）、ＵＳＢ（Universal Serial Bus）などの規格に基づく通信モジュールであって、端末装置３０との間で有線による通信を実現する。通信インタフェース１１２と端末装置３０との間の通信は、無線によるものであってもよい。また、ゲートウェイ１０は、通信インタフェース１１２を介してインターネットに接続されてもよく、ＩＰ機器４０からゲートウェイ２０を介して取得したデータをインターネット上のクラウドサーバなどに送信することも可能である。
【００１９】
ゲートウェイ２０には、通信アプリケーションプログラム（以下、通信アプリ）がインストールされている場合や、ＩＰ機器４０が接続されている場合がある。通信アプリ及びＩＰ機器４０は、ｗｌａｎ０とｗｌａｎ１のいずれかを使用して確立されたセッションを介して通信を実行する。
【００２０】
ゲートウェイ２０は、ゲートウェイ１０と同様の通信装置であって、無線通信ネットワークを介してゲートウェイ１０と接続される。１つのゲートウェイ１０に対して接続されるゲートウェイ２０の数は限定されない。ゲートウェイ１０には端末装置３０が接続される。端末装置３０は、例えばＩＰ機器４０を管理するためのパーソナルコンピュータであって、ゲートウェイ１０とゲートウェイ２０を介してＩＰ機器４０との間でデータの送受信を行う。
【００２１】
ゲートウェイ２０は、コントローラ２００、スイッチ２０１、通信インタフェース２１０、２１１、２１２を備える。コントローラ２００、スイッチ２０１、通信インタフェース２１０、２１１は、それぞれコントローラ１００、スイッチ１０１、通信インタフェース１１０、１１１と同様の機能を有する。通信インタフェース２１２は、通信インタフェース１１２と同様の通信モジュールであって、ＩＰ機器４０との間で有線または無線による通信を実現する。
【００２２】
図２は、本実施形態に係るコントローラのブロック図である。コントローラ１００は、情報収集部１２１、パケット生成部１２２、品質測定部１２３、経路切替部１２４を備える。情報収集部１２１は、スイッチ１０１からセッション毎の統計情報を収集する。統計情報は、受信パケット数、受信バイト数、セッション継続時間などを含み、例えばオープンフローの統計情報取得要求をスイッチ１０１に送信することにより取得可能である。
【００２３】
また、情報収集部１２１は、スイッチ１０１から取得されたパケット情報に基づいて、セッションを確立した通信アプリケーションまたはデバイスを特定することができる。例えば、特開２０１６−１７８５３０号公報に記載されているように、情報収集部１２１は、ＯＳ（Operating System）のシステム情報から通信アプリを特定することができる。
【００２４】
パケット生成部１２２は、情報収集部１２１により収集された統計情報に基づいて、セッション毎に特性を推定し、セッションの特性に応じたテストパケットを生成する。例えば、パケット生成部１２２は、セッションで通信されている実際のデータパケット（通信パケット）に合わせて、テストパケットのサイズ、テストパケットの送出頻度、テストパケットを処理するためのトランスポートプロトコルなどを決定する。トランスポートプロトコルは、例えばＴＣＰ（Transmission Control Protocol）、ＵＤＰ（User Datagram Protocol）などである。
【００２５】
品質測定部１２３は、セッションが確立されている通信経路にテストパケットを送出することにより、通信経路の通信品質を測定する。テストパケットによる測定は、セッションにおいて通信が行われていない無通信期間に実行される。品質測定部１２３は、テストパケットの送出先となるゲートウェイ２０の品質測定部と連携して品質測定を行う。品質測定の対象となる通信経路においてパケットの中継を行う中間ノードが存在する場合には、中間ノードの影響が考慮されるように中間ノードの情報をゲートウェイ１０とゲートウェイ２０間で事前に共有しておく。なお、品質測定部１２３は、テストパケットを用いて、セッションが確立されていない通信経路の品質測定を行ってもよい。品質測定部１２３の機能は、専用のアプリケーションプログラム（以下、測定アプリ）により実現され得る。
【００２６】
経路切替部１２４は、品質測定の結果に基づいて、現在セッションが確立されている通信経路を他の通信経路に切り替えるか否かを判断する。例えば、経路切替部１２４は、オープンフロー技術を用いて、セッション毎に通信経路を定義したフローエントリをスイッチ１０１に登録することにより、通信経路の切り替えを行うことができる。
【００２７】
図３は、本実施形態に係るコントローラのハードウェアブロック図である。コントローラ１００は、ＣＰＵ１３１、メモリ１３２、記憶装置１３３、入出力Ｉ／Ｆ（Interface）１３４を備える。ＣＰＵ１３１は、メモリ１３２、記憶装置１３３に記憶されたプログラムに従って所定の動作を行うとともに、コントローラ１００の各部を制御する機能を有する。また、ＣＰＵ１３１は、情報収集部１２１、パケット生成部１２２、品質測定部１２３、経路切替部１２４の機能を実現するプログラムを実行する。
【００２８】
メモリ１３２は、ＲＡＭ（Random Access Memory）などから構成され、ＣＰＵ１３１の動作に必要なメモリ領域を提供する。記憶装置１３３は、例えばフラッシュメモリ、ＳＳＤ（Solid State Drive）、ＨＤＤ（Hard Disk Drive）などであり得る。記憶装置１３３には、コントローラ１００を動作させるＯＳなどの基本プログラム、通信アプリ、測定アプリなどのアプリケーションプログラム、通信アプリの情報などが記憶される。入出力Ｉ／Ｆ１３４は、スイッチ１０１、通信インタフェース１１０、１１１、１１２に対してデータの入出力を行うためのインタフェースである。
【００２９】
なお、図３に示されているハードウェア構成は例示であり、これら以外の装置が追加されていてもよく、一部の装置が設けられていなくてもよい。例えば、一部の機能がネットワークを介して他の装置により提供されてもよく、本実施形態を構成する機能が複数の装置に分散されて実現されるものであってもよい。
【００３０】
図４は、本実施形態に係る通信システムにおける処理の概念図であって、ゲートウェイ１０とゲートウェイ２０間における通信状況の遷移を示している。図４（ａ）〜（ｄ）において、セッションはｗｌａｎ１に確立されており、ｗｌａｎ０は使用されていないものとする。まず、図４（ａ）において、セッションは通信中の状態であり、ゲートウェイ１０からゲートウェイ２０にｗｌａｎ１を介して通信パケットが送信されている。ゲートウェイ１０はゲートウェイ２０と連携して、スイッチ１０１、２０１および通信インタフェース１１１、２１１からセッション情報を収集する。セッション情報には、通信パケットに関するレイヤ１からレイヤ４の情報、通信パケットの統計情報、および通信アプリまたはデバイスの情報が含まれ得る。
【００３１】
次に、図４（ｂ）において、セッションは無通信の状態であり、ゲートウェイ１０は、通信パケットの統計情報に基づいて無通信期間になったことを判定する。続いて、図４（ｃ）において、ゲートウェイ１０は、セッション情報に基づいてテストパケットを生成する。そして、図４（ｄ）において、ゲートウェイ１０は、測定アプリを実行し、テストパケットをｗｌａｎ１に送出する。ゲートウェイ１０はゲートウェイ２０と連携し、通信インタフェース１１１、２１１からの情報に基づいて、ｗｌａｎ１の通信品質を測定する。
【００３２】
図５は、本実施形態に係るゲートウェイ間の通信を表すタイムチャートであって、セッションが確立された通信経路の状況を示している。ここで、セッションを確立した通信アプリまたはデバイスは、通信パケットを周期的に送信する特性を有するものとする。より詳細には、通信アプリまたはデバイスは、通信期間と無通信期間とを有し、通信期間において通信パケットを周期的に送信する一方、無通信期間においては通信パケットを送信しない。
【００３３】
時刻Ｔ０〜Ｔ１において、ゲートウェイ１０は、複数の通信パケットをゲートウェイ２０に順次送信する。さらに、時刻Ｔ２〜Ｔ３において、ゲートウェイ１０は、複数の通信パケットをゲートウェイ２０に順次送信する。時刻Ｔ２〜Ｔ３で送信される通信パケットの数、パケット毎のサイズおよび送信間隔は、時刻Ｔ０〜Ｔ１で送信された通信パケットのものと同一である。すなわち、時刻Ｔ０〜Ｔ１における通信と同様の通信が、時刻Ｔ０から１周期分の時間が経過した後に、時刻Ｔ２〜Ｔ３において再度実行される。
【００３４】
時刻Ｔ４は、時刻Ｔ２から１周期分の時間が経過した時刻である。ゲートウェイ１０は、時刻Ｔ４において、時刻Ｔ２から１周期分の時間が経過したにもかかわらず、次周期の通信パケットの送信が行われていないことを検出すると、無通信期間になったことを判断する。ゲートウェイ１０は、通信パケットのパラメータに基づいてテストパケットのパラメータを決定し、時刻Ｔ５において、パラメータに基づいて生成されたテストパケットをゲートウェイ２０に送信する。
【００３５】
パラメータには、パケット数、パケットサイズ、送信間隔、プロトコルなどが含まれる。テストパケットのパラメータは、時刻Ｔ０〜Ｔ１（または時刻Ｔ２〜Ｔ３）で送信された通信パケットのパラメータと同様である。例えば、時刻Ｔ５〜Ｔ６の長さは、時刻Ｔ０〜Ｔ１（または時刻Ｔ２〜Ｔ３）の長さと同様である。時刻Ｔ０〜Ｔ１と時刻Ｔ２〜Ｔ３で送信された通信パケットのパラメータが異なる場合には、過去の一定期間、例えば時刻Ｔ０〜Ｔ３で送信された通信パケットのパラメータの平均値をテストパケットのパラメータとして使用することができる。なお、無通信期間におけるテストパケットの送信回数は限定されず、周期的にテストパケットを送信してもよい。
【００３６】
時刻Ｔ７において、ゲートウェイ１０は、ゲートウェイ２０に送信すべき通信パケットが受信されたことを検出する。これにより、ゲートウェイ１０は、時刻Ｔ７において無通信期間が終了し、通信期間に復帰したことを判断する。通信期間では、時刻Ｔ０〜Ｔ１、時刻Ｔ２〜Ｔ３と同様に、時刻Ｔ７〜Ｔ８、時刻Ｔ９〜Ｔ１０のそれぞれにおいて、ゲートウェイ１０は、多量の通信パケットをゲートウェイ２０に順次送信する。
【００３７】
図６は、本実施形態に係るコントローラの動作を表すフローチャートである。以下の説明において、セッションはｗｌａｎ０に確立されているものとする。情報収集部１２１は、セッション毎にセッション情報を取得する（ステップＳ１０１）。例えば、情報収集部１２１は、スイッチ１０１にStats Requestメッセージを送信し、スイッチ１０１からのStats Replyメッセージによりフローエントリごとの統計情報を取得する。ここでフローエントリはセッションと１対１に対応する。
【００３８】
また、情報収集部１２１は、スイッチ１０１から受信されたPacket Inメッセージに基づいてセッションを使用している通信アプリまたはデバイスを特定し、通信アプリまたはデバイスの情報を記憶装置１３３から取得する。この情報には、例えば通信アプリに要求されるＱｏＳ（Quality of Service）情報が含まれる。さらに、情報収集部１２１は、スイッチ１０１、通信インタフェース１１０から、セッションに関連する物理ポート番号、ＭＡＣアドレス、ＩＰアドレス、サービスポート番号などの情報を取得する。
【００３９】
次に、情報収集部１２１は、現在のセッションの状態が無通信期間であるか否かを判断する（ステップＳ１０２）。情報収集部１２１は、統計情報に基づいて、セッションによる通信が所定期間行われていないことを検出した場合に、無通信期間であると判断することができる。当該所定期間は、通信アプリまたはデバイスの情報に基づいて事前に設定される。
【００４０】
無通信期間ではないと判断された場合（ステップＳ１０２でＮＯ）、情報収集部１２１は、セッション情報に基づいてセッションの特性を推定し、セッションの特性を記憶装置１３３に記憶する（ステップＳ１０３）。セッションの特性は、上述のパラメータの他、通信アプリまたはデバイスに応じた帯域幅、遅延、ジッタ、パケットロスなどで表される。続いて、品質測定部１２３は、通信パケットによる品質測定を行う（ステップＳ１０４）。すなわち、品質測定部１２３は、セッションで通信されている通信パケットから得られたｗｌａｎ０の品質情報を、スイッチ１０１と通信インタフェース１１０から取得する。
【００４１】
無通信期間であると判断された場合（ステップＳ１０２でＹＥＳ）、パケット生成部１２２は、記憶装置１３３からセッションの特性を取得し、セッションの特性に応じてテストパケットを生成する（ステップＳ１０５）。例えば、パケット生成部１２２は、テストパケットのパラメータとして、テストパケットのサイズ、パケット数、送信間隔、プロトコルを決定する。これにより、図５に示されるように、テストパケットの特性は通信パケットの特性を反映したものとなる。続いて、品質測定部１２３は、テストパケットによる品質測定を行う（ステップＳ１０６）。すなわち、品質測定部１２３は、ｗｌａｎ０にテストパケットを送出し、テストパケットから得られたｗｌａｎ０の品質情報をスイッチ１０１と通信インタフェース１１０から取得する。
【００４２】
経路切替部１２４は、品質測定処理（ステップＳ１０４またはＳ１０６）で得られた品質測定に基づいて、セッションに使用する通信経路を選択する（ステップＳ１０７）。例えば、経路切替部１２４は、現在セッションに使用されているｗｌａｎ０の通信品質が所定の条件を満たさない場合、ｗｌａｎ０をｗｌａｎ１に切り替えるための処理を行う。例えば、経路切替部１２４は、端末装置３０が接続されている通信インタフェース１１２から受信された通信パケットがｗｌａｎ１に接続されている通信インタフェース１１１に転送されるように、フローエントリをスイッチ１０１に登録する。
【００４３】
本実施形態においては、通信期間内に収集されたセッション情報に基づいて、セッションの特性に応じたテストパケットを生成する。このようなテストパケットによる品質測定は、実際の通信パケットによる品質測定に近い結果を得ることができる。したがって、無通信期間において通信品質を精度良く測定することが可能となる。
【００４４】
従来、無通信期間においても、通信時と同様な通信データ（複製データ）を送信し続けることにより、品質測定を可能とする技術が知られている。しかしながら、本実施形態のテストパケットは、実際の通信パケットの単なる複製ではない。本実施形態では、通信パケットの特性を端的に表す比較的少量のパケットからテストパケットを構成することができるため、テストパケットによる通信帯域の圧迫、処理負荷の増加などの問題を抑制可能である。
【００４５】
［第２実施形態］
第２の実施形態に係る通信システムは、セッションが確立されていない通信経路に対しても、テストパケットによる品質測定が可能である。以下、本実施形態における通信システムについて、第１実施形態に係る通信システムと異なる点を中心に説明する。
【００４６】
図７は、本実施形態に係るコントローラの動作を表すフローチャートである。以下の説明において、セッションはｗｌａｎ０に確立されているものとする。セッション情報の取得からテストパケットによる品質測定までの処理（ステップＳ２０１〜Ｓ２０６）は、第１実施形態におけるステップＳ１０１〜Ｓ１０６と同様であるため、その説明を省略する。
【００４７】
情報収集部１２１は、セッションが確立されていない他の通信経路について、通信が行われていない無通信経路があるか否かを判断する（ステップＳ２０７）。すなわち、図１の例では、ｗｌａｎ１において通信が行われているか否かが判断される。情報収集部１２１は、ｗｌａｎ１と接続している通信インタフェース１１１から取得される情報、スイッチ１０１から取得される統計情報などに基づいて、ｗｌａｎ１の通信状況を把握することができる。
【００４８】
無通信経路があると判断された場合（ステップＳ２０７でＹＥＳ）、品質測定部１２３は、テストパケットによる品質測定を行う（ステップＳ２０８）。すなわち、品質測定部１２３は、ｗｌａｎ１にテストパケットを送出し、テストパケットにより得られたｗｌａｎ１の品質情報をスイッチ１０１と通信インタフェース１１１から取得する。ここで使用されるテストパケットは、ステップＳ２０５で生成されたものと同様である。無通信経路がないと判断された場合（ステップＳ２０７でＮＯ）、テストパケットによる品質測定処理（ステップＳ２０８）は実行されない。
【００４９】
経路切替部１２４は、品質測定処理（ステップＳ２０４、Ｓ２０６、Ｓ２０８）で得られた品質情報に基づいて、セッションに使用する通信経路を選択する（ステップＳ２０９）。例えば、経路切替部１２４は、ｗｌａｎ１の通信品質がｗｌａｎ０の通信品質よりも高い場合、セッションが使用する通信経路をｗｌａｎ１に切り替えるための処理を行う。
【００５０】
本実施形態によれば、セッションにより使用され得る複数の通信経路のうち、セッションが確立されていない他の通信経路に対しても、テストパケットによる品質測定が可能である。すなわち、切替先の通信経路が無通信状態であっても、通信品質を事前に取得しておくことができるため、通信経路の切り替えを適切に判断することが可能となる。
【００５１】
［第３実施形態］
第３実施形態に係る通信システムは、通信経路の品質情報をネットワーク内で共有することが可能である。以下、本実施形態における通信システムについて、第１実施形態に係る通信システムと異なる点を中心に説明する。
【００５２】
図８は、本実施形態に係る通信システムのネットワーク構成を示すブロック図である。通信システムは、例えば工場内に構築される無線通信システムであって、複数の通信端末６０ａ、６０ｂ、６０ｃと管理サーバ７０とを備える。通信端末６０ａは、通信端末６０ｂ、６０ｃとの間で異なる複数の無線通信方式による通信を行うことが可能である。通信端末６０ａ、６０ｂ、６０ｃは、同様の構成を有している。以下、通信端末を区別しない場合には、符号の末尾を適宜省略して記載する。
【００５３】
通信端末６０は、例えば移動体に設けられたエッジコンピュータ、組込機器、携帯端末などである。通信端末６０ａは、無線通信ネットワークを介して通信端末６０ｂ、６０ｃと接続される。通信端末６０は、コントローラ６００、スイッチ６０１、通信インタフェース６１０、６１１を備える。本実施形態において、通信端末６０ｂと通信端末６０ｃとは互いに隣接して位置し、無線通信ネットワークおける同一のアクセスポイントのカバレッジエリア内に位置している。
【００５４】
コントローラ６００は、スイッチ６０１を介して通信インタフェース６１０、６１１と接続されている。コントローラ６００は、オープンフローコントローラの機能を有し、スイッチ６０１は、オープンフロースイッチの機能を有する。コントローラ６００のハードウェア構成は、第１実施形態におけるコントローラ１００のハードウェア構成と同様である。通信インタフェース６１０、６１１は、第１実施形態における通信インタフェース１１０、１１１と同様である。
【００５５】
通信端末６０には、通信アプリがインストールされている。通信アプリは、ｗｌａｎ０とｗｌａｎ１のいずれかを使用してセッションを確立し、当該セッションを介して通信を実行する。通信端末６０には、異なる複数の通信アプリがインストールされ得る。
【００５６】
管理サーバ７０は、通信システムのネットワーク全体の通信状況を管理する。管理サーバ７０は、通信端末６０ａ、６０ｂ、６０ｃのそれぞれから、各通信端末で測定された通信経路の品質情報を定期的に収集する。管理サーバ７０は、各通信端末から収集された品質情報をデータベースなどに格納するとともに、各通信端末からの要求に応じて、品質情報を各通信端末に提供することができる。
【００５７】
また、管理サーバ７０は、通信端末６０ａ、６０ｂ、６０ｃの位置情報を管理する。例えば、管理サーバ７０は、通信端末６０ａ、６０ｂ、６０ｃのそれぞれから、各通信端末に設けられたＧＰＳ（Global Positioning System）の情報、または各通信端末が無線通信ネットワーク内のアクセスポイントから受信された電波強度情報を取得する。これにより、管理サーバ７０は、通信端末６０ａ、６０ｂ、６０ｃ間の相対的な位置関係を把握することができる。
【００５８】
図９は、本実施形態に係るコントローラのブロック図である。コントローラ６００は、情報収集部６２１、情報共有部６２２、品質推定部６２３、経路切替部６２４を備える。情報収集部６２１は、第１実施形態における情報収集部１２１と同様の機能を有する。
【００５９】
情報共有部６２２は、隣接する通信端末がある場合、隣接する通信端末で測定された品質情報を管理サーバ７０から取得する。ここで隣接とは、相対的な位置関係が近いことを意味する。図８の例では、通信端末６０ｂは通信端末６０ｃで測定された品質情報を取得し、通信端末６０ｃは通信端末６０ｂで測定された品質情報を取得する。
【００６０】
品質推定部６２３は、隣接する通信端末６０で測定された品質情報に基づいて、自己の通信端末６０に関する通信経路の通信品質を推定する。例えば、通信端末６０ａ、６０ｂ間で第１のセッションが確立され、かつ通信端末６０ａ、６０ｃ間で第２のセッションが確立されているものとする。この場合、通信端末６０ｂは、第１のセッションの無通信期間において、第１のセッションの通信経路に関する通信品質を第２のセッションの通信経路に関する通信品質から推定することができる。
【００６１】
経路切替部６２４は、品質推定の結果に基づいて、現在セッションが確立されている通信経路を他の通信経路に切り替えるか否かを判断する。例えば、経路切替部６２４は、オープンフロー技術を用いて、セッション毎に通信経路を定義したフローエントリをスイッチ６０１に登録することにより、通信経路の切り替えを行うことができる。
【００６２】
図１０は、本実施形態に係るコントローラの動作を表すフローチャートである。ここでは、通信端末６０ｂのコントローラ６００の動作について説明する。通信端末６０ａ、６０ｂ間の第１のセッションおよび通信端末６０ａ、６０ｃ間の第２のセッションは、共にｗｌａｎ０に確立されているものとする。セッション情報の取得から通信パケットによる品質測定までの処理（ステップＳ３０１〜Ｓ３０４）は、第１実施形態におけるステップＳ１０１〜Ｓ１０４と同様であるため、その説明を省略する。
【００６３】
無通信期間であると判断された場合（ステップＳ３０２でＹＥＳ）、情報共有部６２２は、近隣の通信装置とｗｌａｎ０に関する情報を共有する（ステップＳ３０５）。例えば、情報共有部６２２は、第１のセッションの通信特性および第１のセッションの通信中に測定されたｗｌａｎ０の品質情報を管理サーバ７０に送信する。また、情報共有部６２２は、通信端末６０ｃにおいて収集された第２のセッションの通信特性および通信端末６０ｃにおいて第２のセッションの通信中に測定されたｗｌａｎ０の品質情報を管理サーバ７０から受信する。さらに、情報共有部６２２は、通信端末６０ｂの位置情報または無線通信ネットワークにおいて通信端末６０ｂが接続されているアクセスポイントからの受信電波強度情報を管理サーバ７０に送信する。
【００６４】
品質推定部６２３は、第１のセッションの通信特性と第２のセッションの通信特性とが類似する場合、通信端末６０ｃからの情報に基づいて品質情報の推定を行う（ステップＳ３０６）。すなわち、品質推定部６２３は、通信端末６０ｃにおいて第２のセッションの通信中に測定されたｗｌａｎ０の品質情報に基づいて、第１のセッションの通信時におけるｗｌａｎ０の品質情報を推定する。通信特性の類似性は、例えばセッションを確立した通信アプリの種類、通信アプリに要求されるＱｏＳなどに基づいて判断することができる。
【００６５】
品質推定部６２３は、例えばセッション間で通信アプリが共通し、かつ通信端末６０ｂと通信端末６０ｃとが所定の範囲内に位置する場合、通信端末６０ｃで測定された品質情報を通信端末６０ｂにおける品質情報として使用する。所定の範囲は、例えば同一のアクセスポイントのカバレッジである。また、品質推定部６２３は、通信端末６０ｂ、６０ｃ間の距離、通信アプリの通信特性の類似度などに応じて重み付けを行ってもよい。すなわち、通信端末６０ｃにおける品質情報に対して重み付けを乗じた値を通信端末６０ｂにおける品質情報とすることができる。
【００６６】
経路切替部６２４は、品質測定処理（ステップＳ３０４）および品質推定処理（ステップＳ３０６）で得られた品質情報に基づいて、第１のセッションに使用する通信経路を選択する（ステップＳ３０７）。例えば、経路切替部６２４は、現在第１のセッションに使用されているｗｌａｎ０の通信品質が所定の条件を満たさない場合、ｗｌａｎ０をｗｌａｎ１に切り替えるための切替処理を行う。
【００６７】
本実施形態によれば、第１セッションと通信経路が共通する第２セッションがある場合に、第１セッションと第２セッション間で特性の類似性が判断される。第１セッションの無通信期間における品質情報は、類似する第２のセッションの通信中に測定された品質情報に基づいて推定できるため、無通信期間においても第１のセッションの品質情報を精度良く取得することが可能となる。
【００６８】
［第４実施形態］
図１１は、本実施形態に係る通信装置の概略構成図である。通信装置１０は、通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置であって、生成部１００１、測定部１００２を備える。生成部１００１は、セッションの特性に応じたテストパケットを生成する。測定部１００２は、通信が行われていない無通信期間において、テストパケットを通信経路に送出することにより、通信経路の通信品質を測定する。
【００６９】
［第５実施形態］
図１２は、本実施形態に係る通信装置の概略構成図である。通信装置６０は、通信経路を介して対向する通信装置と接続され、通信経路に確立されたセッションによる通信を行う通信装置であって、収集部１１０１、取得部１１０２、推定部１１０３を備える。収集部１１０１は、セッションの特性を収集する。取得部１１０２は、セッションと通信経路が共通する他のセッションによる通信を行う他の通信装置から、他のセッションの特性を取得する。推定部１１０３は、セッションの特性と他のセッションと間の特性の類似性を判断する。推定部１１０３は、特性が類似する場合、セッションによる通信が行われていない無通信期間において、他の通信装置で測定された他のセッションの通信経路の品質情報に基づいて、セッションの通信経路の品質情報を推定する。
【００７０】
［変形実施形態］
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。例えば、上述の実施形態では、コントローラ１００がオープンフローコントローラの機能を有するものとして説明したが、オープンフローコントローラの機能がコントローラ１００とは別体に設けられていてもよい。また、第３実施形態においては管理サーバ７０がネットワーク全体の情報管理を行っていたが、通信端末６０ａ、６０ｂ、６０ｃ間で直接に位置情報、品質情報などの送受信を行うようにしてもよい。
【００７１】
上述の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７２】
（付記１）
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置であって、
前記セッションの特性に応じたテストパケットを生成する生成部と、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定する測定部とを備えることを特徴とする通信装置。
【００７３】
（付記２）
前記セッションに関するパケット転送を行うスイッチから、前記セッションの統計情報を収集する収集部を備えることを特徴とする付記１に記載の通信装置。
【００７４】
（付記３）
前記無通信期間は、前記統計情報に基づいて判定されることを特徴とする付記２に記載の通信装置。
【００７５】
（付記４）
前記生成部は、前記無通信期間外に収集された前記統計情報に基づいて前記特性を推定することを特徴とする付記２または３に記載の通信装置。
【００７６】
（付記５）
前記生成部は、前記テストパケットのサイズ、前記テストパケットの送出頻度、および前記テストパケットを処理するためのトランスポートプロトコルのうちの少なくとも１つを決定することを特徴とする付記４に記載の通信装置。
【００７７】
（付記６）
前記スイッチは、オープンフロー（OpenFlow）技術が適用されたオープンフロースイッチであり、前記セッションは、前記スイッチに登録されたフローエントリにより規定されることを特徴とする付記２乃至５のいずれかに記載の通信装置。
【００７８】
（付記７）
前記測定部は、通信が行われていない他の通信経路であって、前記セッションにより使用され得る前記他の通信経路に対して、前記テストパケットによる通信品質の測定を行うことを特徴とする付記１乃至６のいずれかに記載の通信装置。
【００７９】
（付記８）
前記他の通信経路の通信品質が前記通信経路の通信品質よりも高い場合、前記通信経路を前記他の通信経路に切り替えることを特徴とする付記７に記載の通信装置。
【００８０】
（付記９）
前記測定部は、前記対向する通信装置と連携して前記テストパケットによる測定を行うことを特徴とする付記１乃至８のいずれかに記載の通信装置。
【００８１】
（付記１０）
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置の制御方法であって、
前記セッションの特性に応じたテストパケットを生成するステップと、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを備えることを特徴とする制御方法。
【００８２】
（付記１１）
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置を制御するためのプログラムであって、
コンピュータに、
前記セッションの特性に応じたテストパケットを生成するステップと、
前記通信が行われていない無通信期間において、前記テストパケットを前記通信経路に送出することにより、前記通信経路の通信品質を測定するステップとを実行させることを特徴とするプログラム。
【００８３】
（付記１２）
通信経路を介して対向する通信装置と接続され、前記通信経路に確立されたセッションによる通信を行う通信装置であって、
前記セッションの特性を収集する収集部と、
前記セッションと通信経路が共通する他のセッションによる通信を行う他の通信装置から、前記他のセッションの特性を取得する取得部と、
前記セッションの特性と前記他のセッションの特性とが類似する場合、前記セッションによる通信が行われていない無通信期間において、前記他の通信装置で測定された前記他のセッションの通信経路の品質情報に基づいて、前記セッションの通信経路の品質情報を推定する推定部とを備えることを特徴とする通信装置。
【００８４】
（付記１３）
付記１２に記載の通信装置に対して、前記他の通信装置で収集された前記他のセッションの特性および前記品質情報を提供する管理サーバ。
【符号の説明】
【００８５】
１０、２０  ゲートウェイ（通信装置）
３０  端末装置
４０  ＩＰ機器
４１  センサ
６０  通信端末（通信装置）
７０  管理サーバ
１００、２００  コントローラ
１０１、２０１  スイッチ
１１０、１１１、１１２、２１０、２１１、２１２  通信インタフェース
１２１  情報収集部
１２２  パケット生成部
１２３  品質測定部
１２４  経路切替部
１３１  ＣＰＵ
１３２  メモリ
１３３  記憶装置
１３４  入出力Ｉ／Ｆ
６００  コントローラ
６０１  スイッチ
６１０、６１１  通信インタフェース
６２１  情報収集部
６２２  情報共有部
６２３  品質推定部
６２４  経路切替部
１００１  生成部
１００２  測定部
１１０１  収集部
１１０２  取得部
１１０３  推定部
【図１】
2019087828.tif 000003
【図２】
2019087828.tif 000004
【図３】
2019087828.tif 000005
【図４】
2019087828.tif 000006
【図５】
2019087828.tif 000007
【図６】
2019087828.tif 000008
【図７】
2019087828.tif 000009
【図８】
2019087828.tif 000010
【図９】
2019087828.tif 000011
【図１０】
2019087828.tif 000012
【図１１】
2019087828.tif 000013
【図１２】
2019087828.tif 000014