(57)【要約】【課題】セッション毎の通信経路の切り替えを柔軟に行うことが可能な通信装置、制御方法およびプログラムを提供する。【解決手段】複数の通信経路を介して他の通信装置と接続された通信装置は、複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、セッションのフロー情報および通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定する特定部と、通信アプリケーションの情報から判定されたセッションの特性に応じて、第１の通信経路から複数の通信経路のうちの第２の通信経路にセッションの通信経路を切り替えるか否かを判断する制御部と、制御部に従って前記セッションの通信経路を切り替える切替部とを備える。【選択図】図１
2019083459.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信経路を介して他の通信装置と接続された通信装置であって、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定する特定部と、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断する制御部と、
前記制御部に従って前記セッションの通信経路を切り替える切替部とを備えることを特徴とする通信装置。
【請求項２】
前記特定部は、前記セッションに関連するデバイスを前記フロー情報に基づいて特定し、前記セッションの特性は、前記通信アプリケーションの情報および前記デバイスの情報のうちの少なくとも１つから判定されることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記複数の通信経路のそれぞれの品質情報を測定する測定部を備え、
前記制御部は、前記品質情報に応じて前記通信経路の切り替えを判断することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記制御部は、前記第１の通信経路の前記品質情報が通信アプリケーションごとまたはデバイスごとに設定された所定の切替条件を満たす場合に、前記第２の通信経路への切り替えを行うと判断することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記制御部は、前記通信経路の切り替えを判断してから所定時間の経過後に、前記切り替えを行うための切替処理を開始することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記制御部は、前記所定時間の経過後に、前記切替処理を開始せずに前記切り替えを再度判断することを特徴とする請求項５に記載の通信装置。
【請求項７】
前記所定時間は、前記セッションの特性に応じて決定されることを特徴とする請求項５または６に記載の通信装置。
【請求項８】
前記フロー情報は、前記セッションによる通信の統計情報または前記セッションで通信されているデータの種類を含むことを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記複数の通信経路は、異なる複数の無線通信方式による無線通信ネットワーク上に設定されることを特徴とする請求項１乃至８のいずれか１項に記載の通信装置。
【請求項１０】
前記制御部は、前記他の通信装置に対して前記第２の通信経路の情報を通知することを特徴とする請求項１乃至９のいずれか１項に記載の通信装置。
【請求項１１】
前記制御部は、オープンフロー（OpenFlow）コントローラの機能を含み、前記切替部は、オープンフロースイッチの機能を含むことを特徴とする請求項１乃至１０のいずれか１項に記載の通信装置。
【請求項１２】
前記制御部は、前記オープンフロースイッチに登録されたフローエントリを定期的に削除するとともに、前記オープンフロースイッチからの設定要求に応じて、前記第２の通信経路の情報に基づくフローエントリを前記オープンフロースイッチに登録することを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記制御部は、前記第２の通信経路の情報に基づいて、前記オープンフロースイッチに登録されたフローエントリを上書きすることを特徴とする請求項１１に記載の通信装置。
【請求項１４】
複数の通信経路を介して他の通信装置と接続された通信装置の制御方法であって、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定するステップと、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断するステップと、
前記判断するステップに従って前記セッションの通信経路を切り替えるステップとを備えることを特徴とする制御方法。
【請求項１５】
複数の通信経路を介して他の通信装置と接続された通信装置を制御するためのプログラムであって、
コンピュータに、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定するステップと、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断するステップと、
前記判断するステップに従って前記セッションの通信経路を切り替えるステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
無通信ネットワークは干渉を受けやすく、通信品質が不安定である。そのため、リアルタイムに通信品質を測定し、通信品質の良い通信経路を選択することで通信の安定性を保つ技術が知られている。特許文献１には、各セッションに要求されるＱｏＳ（Quality of Service）値に応じて、セッション毎に通信経路の切り替え処理を行うデータ転送装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８０３９４号公報
【非特許文献】
【０００４】
【非特許文献１】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）タグなどであり得る。各ゲートウェイ２０には、異なるデバイスが接続され得る。例えば、図１において、一方のゲートウェイ２０にはＩＰ機器４０が接続され、他方のゲートウェイ２０にはセンサ４１が接続される。ゲートウェイ２０は、デバイスから受信されたデータをゲートウェイ１０に転送するとともに、ゲートウェイ１０から受信されたデータをデバイスに転送する。ゲートウェイ２０に接続されるデバイスの数は限定されない。以下、デバイスとしてＩＰ機器４０を例に挙げて説明する。
【００１６】
ゲートウェイ１０は、コントローラ１００、スイッチ１０１、通信インタフェース１１０、１１１、１１２を備える。コントローラ１００は、スイッチ１０１を介して通信インタフェース１１０、１１１、１１２と接続されている。コントローラ１００は、非特許文献１の技術が適用されたオープンフローコントローラの機能を有し、セッション毎に使用される通信経路をスイッチ１０１から取得した情報に基づいて選択する。コントローラ１００は、通信経路を指定したフローエントリをスイッチ１０１のフローテーブルに登録することにより、通信経路の制御を行うことができる。
【００１７】
スイッチ１０１は、非特許文献１の技術が適用されたオープンフロースイッチの機能を有し、外部装置から受信されたパケットの転送先をフローエントリに従って決定する。例えば、スイッチ１０１は、端末装置３０から受信されたパケットを、フローエントリに従って通信インタフェース１１０または通信インタフェース１１１に転送する。フローエントリは、スイッチ１０１内のフローテーブルに登録される。
【００１８】
通信インタフェース１１０、１１１は、上述の無線通信方式に対応した通信モジュールである。図１において、通信インタフェース１１０は、第１の通信経路であるｗｌａｎ０における通信を実現し、通信インタフェース１１１は、第２の通信経路であるｗｌａｎ１における通信を実現する。また、通信インタフェース１１０、１１１は、通信経路毎に、通信帯域幅（通信速度）、遅延、再送回数などの通信品質（品質情報）を測定する機能を有する。通信インタフェース１１２は、イーサネット（登録商標）、ＵＳＢ（Universal Serial Bus）などの規格に基づく通信モジュールであって、端末装置３０との間で有線による通信を実現する。通信インタフェース１１２と端末装置３０との間の通信は、無線によるものであってもよい。また、ゲートウェイ１０は、通信インタフェース１１２を介してインターネットに接続されてもよく、ＩＰ機器４０からゲートウェイ２０を介して取得したデータをインターネット上のクラウドサーバなどに送信することも可能である。
【００１９】
ゲートウェイ２０には、通信アプリケーションプログラム（以下、通信アプリ）がインストールされている場合や、ＩＰ機器４０が接続されている場合がある。通信アプリ及びＩＰ機器４０は、ｗｌａｎ０とｗｌａｎ１のいずれかを使用して確立されたセッションを介して通信を実行する。
【００２０】
ゲートウェイ２０は、ゲートウェイ１０と同様の通信装置であって、無線通信ネットワークを介してゲートウェイ１０と接続される。１つのゲートウェイ１０に対して接続されるゲートウェイ２０の数は限定されない。ゲートウェイ１０には端末装置３０が接続される。端末装置３０は、例えばＩＰ機器４０を管理するためのパーソナルコンピュータであって、ゲートウェイ１０とゲートウェイ２０を介してＩＰ機器４０との間でデータの送受信を行う。
【００２１】
ゲートウェイ２０は、コントローラ２００、スイッチ２０１、通信インタフェース２１０、２１１、２１２を備える。コントローラ２００、スイッチ２０１、通信インタフェース２１０、２１１は、それぞれコントローラ１００、スイッチ１０１、通信インタフェース１１０、１１１と同様の機能を有する。通信インタフェース２１２は、通信インタフェース１１２と同様の通信モジュールであって、ＩＰ機器４０との間で有線または無線による通信を実現する。
【００２２】
図２は、本実施形態に係るコントローラのブロック図である。コントローラ１００は、セッション特定部１２１、特性判定部１２２、記憶部１２３、品質測定部１２４、切替制御部１２５を備える。セッション特定部１２１は、スイッチ１０１からセッション毎の通信の統計情報を収集する。統計情報は、受信パケット数、受信バイト数、セッション継続時間などを含み、例えばオープンフローの統計情報取得要求をスイッチ１０１に送信することにより取得可能である。
【００２３】
また、セッション特定部１２１は、スイッチ１０１から取得されたパケット情報に基づいて、セッションを確立した通信アプリまたはデバイスを特定することができる。例えば、特開２０１６−１７８５３０号公報に記載されているように、セッション特定部１２１は、スイッチ１０１からPacket Inメッセージを受信したときに、Packet Inメッセージに含まれるフロー情報および通信アプリを動作させるＯＳ（Operating System）のシステム情報に基づいて通信アプリを特定することができる。
【００２４】
また、セッション特定部１２１は、パケット情報に加え、スイッチ１０１を介して通信インタフェース１１０、１１１から取得された情報に基づいて、セッションで通信されているデータの種類またはセッションに関連するデバイスを特定することができる。例えば、ＭＡＣアドレスに基づいてデバイスを特定することができる。また、パケットのヘッダ情報から、該パケットが制御信号を格納したパケット（制御パケット）か、データ信号を格納したパケットかを判断することができる。
【００２５】
特性判定部１２２は、セッション特定部１２１により収集された情報に基づいて、セッションの特性を判定する。特性判定部１２２は、通信アプリまたはデバイス単位で、例えばＱｏＳ、優先度、切替条件の組み合わせを記憶部１２３から取得する。記憶部１２３には、これらの情報が通信アプリ毎およびデバイス毎に予め記憶されている。記憶部１２３は、ゲートウェイ１０の外部に設定されたリモートサーバであり得る。
【００２６】
セッションの特性としては、要求される通信速度の値が高い、制御パケットが送信されている、通信アプリまたはデバイスが多量のデータ転送をリアルタイムに行う、などが挙げられる。これらの特性を持つセッションには高い優先度が設定される。また、他のセッションの特性として、要求される通信速度の値が低い、ログデータが送信されている、通信アプリまたはデバイスがリアルタイム性の低いデータを送信している、などが挙げられる。これらの特性を持つセッションには低い優先度が設定される。なお、上述の特性はあくまで例示であって、本発明の範囲が限定されるものではない。また、通信アプリおよびデバイス毎に優先度を設定したテーブルを記憶部１２３に予め記憶させておき、該テーブルに基づいてセッションの優先度が判定されてもよい。
【００２７】
品質測定部１２４は、セッションが使用している通信経路の実通信データをモニタリングし、通信経路の品質情報を測定する。品質測定部１２４の機能は、専用のアプリケーションプログラム（以下、測定アプリ）により実現され得る。
【００２８】
切替制御部１２５は、品質測定の結果に基づいて、現在セッションが確立されている通信経路（第１の通信経路）を他の通信経路（第２の通信経路）に切り替えるか否かを判断する。例えば、切替制御部１２５は、オープンフロー技術を用いて、セッション毎に通信経路を定義したフローエントリをスイッチ１０１に登録することにより、通信経路の切り替えを行うことができる。
【００２９】
図３は、本実施形態に係るコントローラのハードウェアブロック図である。コントローラ１００は、ＣＰＵ１３１、メモリ１３２、記憶装置１３３、入出力Ｉ／Ｆ（Interface）１３４を備える。ＣＰＵ１３１は、メモリ１３２、記憶装置１３３に記憶されたプログラムに従って所定の動作を行うとともに、コントローラ１００の各部を制御する機能を有する。また、ＣＰＵ１３１は、セッション特定部１２１、特性判定部１２２、品質測定部１２４、切替制御部１２５の機能を実現するプログラムを実行する。
【００３０】
メモリ１３２は、ＲＡＭ（Random Access Memory）などから構成され、ＣＰＵ１３１の動作に必要なメモリ領域を提供する。記憶装置１３３は、例えばフラッシュメモリ、ＳＳＤ（Solid State Drive）、ＨＤＤ（Hard Disk Drive）などであって、記憶部１２３の機能を実現する記憶領域を提供する。記憶装置１３３には、コントローラ１００を動作させるＯＳなどの基本プログラム、通信アプリ、測定アプリなどのアプリケーションプログラムなどが記憶される。入出力Ｉ／Ｆ１３４は、スイッチ１０１、通信インタフェース１１０、１１１、１１２に対してデータの入出力を行うためのインタフェースである。
【００３１】
なお、図３に示されているハードウェア構成は例示であり、これら以外の装置が追加されていてもよく、一部の装置が設けられていなくてもよい。例えば、一部の機能がネットワークを介して他の装置により提供されてもよく、本実施形態を構成する機能が複数の装置に分散されて実現されるものであってもよい。
【００３２】
図４は、本実施形態に係る通信システムにおける処理の概念図であって、ゲートウェイ１０とゲートウェイ２０間における通信状況の遷移を示している。ゲートウェイ１０、２０間では、端末装置３０およびＩＰ機器４０（デバイス）、端末装置３０および通信アプリ１、端末装置３０および通信アプリ２による通信がそれぞれ行われている。図４（ａ）において、ＩＰ機器４０のセッションと通信アプリ１のセッションは共にｗｌａｎ０を使用しており、通信アプリ２のセッションはｗｌａｎ１を使用している。コントローラ１００は、これらのセッション間の優先度を判定するとともに、ｗｌａｎ０、ｗｌａｎ１の品質情報を測定する。ここでは、通信アプリ１のセッションの優先度がＩＰ機器４０のセッションの優先度よりも高いものとする。コントローラ１００は、ｗｌａｎ０の品質低下が検出され、かつｗｌａｎ１の通信品質が良い場合、通信アプリ１のセッションに使用される通信経路をｗｌａｎ０からｗｌａｎ１に切り替える。ｗｌａｎ１の通信品質が悪い場合には、通信アプリ１について通信経路の切り替えは行われない。
【００３３】
図４（ｂ）は、通信経路の切り替え後における通信状況を示している。図４（ｂ）において、ＩＰ機器４０のセッションはｗｌａｎ０を使用しており、通信アプリ１のセッションと通信アプリ２のセッションは共にｗｌａｎ１を使用している。このように、本実施形態では、通信インタフェースとは独立して、通信アプリおよびデバイスのセッションごとに通信経路の切り替えが行われる。図４（ａ）、（ｂ）の例では、ＩＰ機器４０のセッションは優先度が低いため通信経路の切り替えが積極的に行われないが、通信アプリ１のセッションは優先度が高いため通信経路の切り替えが積極的に行われる。
【００３４】
なお、通信アプリ１のセッションを切り替える際には、通信アプリ２の優先度も判断材料にされる。例えば、通信アプリ２の優先度が通信アプリ１の優先度と同等以上であるものとする。通信アプリ１のセッションに使用される通信経路がｗｌａｎ０からｗｌａｎ１に切り替えられると、ｗｌａｎ１において通信アプリ２のセッションに求められる特性が維持できなくなるような場合には、通信アプリ１について通信経路の切り替えは行われない。一方、通信アプリ１のセッションに使用される通信経路がｗｌａｎ０からｗｌａｎ１に切り替えられたとしても、ｗｌａｎ１において通信アプリ２のセッションに求められる特性が維持できるような場合には、通信アプリ１について通信経路の切り替えが行われる。すなわち、セッション間の相対的な優先度、各セッションの特性、および切り替え可能な通信経路の通信品質を総合的に考慮して、各セッションに対して最適な通信経路が選択される。
【００３５】
図５は、本実施形態に係るコントローラの動作を表すフローチャートである。まず、通信アプリによりセッションが開始されると、スイッチ１０１において当該セッションに関するパケットが受信される。スイッチ１０１は、セッションの通信経路を選択するために、コントローラ１００にPacket Inメッセージを送信する。コントローラ１００は、スイッチ１０１からPacket Inメッセージを受信する（ステップＳ１０）。
【００３６】
セッション特定部１２１は、セッションを実行している通信アプリまたはデバイスを特定する（ステップＳ１１）。例えば、セッション特定部１２１は、Packet Inメッセージに含まれるフロー情報とＯＳから取得される情報とに基づいて、通信アプリを特定する。セッション特定部１２１は、通信アプリにより起動されたプロセスを特定してもよい。また、セッション特定部１２１は、セッションに関連するデバイスをフロー情報に基づいて特定してもよい。
【００３７】
次に、特性判定部１２２は、特定された通信アプリまたはデバイスの情報に基づいてセッションの特性を判定する（ステップＳ１２）。例えば、特性判定部１２２は、記憶部１２３からＱｏＳ、優先度、切替条件などを取得する。特性判定部１２２は、優先度を自ら設定してもよく、例えば要求されるＱｏＳが高い場合、セッションの特性として高品質の通信を行うものと判定し、セッションの優先度を高く設定する。
【００３８】
切替制御部１２５は、セッションに使用される通信経路を判断する（ステップＳ１３）。すなわち、切替制御部１２５は、品質測定部１２４で測定された各通信経路（ｗｌａｎ０、ｗｌａｎ１）の品質情報に基づいて最適な通信経路を選択する。選択された通信経路が現在使用されている通信経路と異なる場合には、通信経路の切り替えが発生することになる。
【００３９】
切替制御部１２５は、現在使用されている通信経路の品質情報が切替条件を満たす場合に、現在使用されている通信経路を他の通信経路に切り替えると判断してよい。また、切替制御部１２５は、各通信経路がどのような優先度のセッションに適しているか、現在セッションに使用されている通信経路がセッションの優先度に適しているかなどを判断してもよい。
【００４０】
切替制御部１２５は、通信経路としてｗｌａｎ０を選択した場合（ステップＳ１４でＹＥＳ）、スイッチ１０１に対してｗｌａｎ０の送信フローを設定する（ステップＳ１５）。図４の例では、例えば通信アプリ１のセッションで通信されるパケットが、ｗｌａｎ０と接続する通信インタフェース２１０から送信されるように（図４（ａ））、スイッチ２０１に対してコントローラ２００からフローエントリが登録される。
【００４１】
また、切替制御部１２５は、通信経路としてｗｌａｎ１を選択した場合（ステップＳ１４でＮＯ）、スイッチ１０１に対してｗｌａｎ１の送信フローを設定する（ステップＳ１６）。図４の例では、例えば通信アプリ１のセッションで通信されるパケットが、ｗｌａｎ１と接続する通信インタフェース２１１から送信されるように（図４（ｂ））、スイッチ２０１に対してコントローラ２００からフローエントリが登録される。通信経路判断から送信フロー設定までの処理（ステップＳ１３〜Ｓ１６）は、セッションが終了するまで繰り返し実行される。
【００４２】
なお、経路判断処理（ステップＳ１３）における判断の結果、通信経路の切り替えが発生する場合、切替制御部１２５は、後段の切替処理（ステップＳ１４〜Ｓ１６）の開始を所定時間遅らせてもよい。所定時間は、セッションの特性または優先度に応じて設定される。例えば優先度の低いセッションは、優先度の高いセッションよりも所定時間が長く設定される。また、切替制御部１２５は、所定時間の経過後に切替処理を開始せずに、経路判断処理を再度実行してもよい。
【００４３】
図６は、本実施形態に係る経路判断処理の詳細なフローチャートである。経路判断処理は、コントローラ１００において、セッションごとに実行される。まず、品質測定部１２４は、切替カウンタの初期化を行う（ステップＳ２１）。以下、ｗｌａｎ０がセッションに使用されているものとする。
【００４４】
品質測定部１２４は、単位時間待機した後（ステップＳ２２）、通信経路の品質情報を取得する（ステップＳ２３）。例えば、品質測定部１２４は、通信インタフェース１１０、１１１で測定されたｗｌａｎ０とｗｌａｎ１の品質情報を取得する。なお、単位時間は、繰り返し周期に対応する時間であって例えば１秒などに設定され得る。
【００４５】
切替制御部１２５は、ｗｌａｎ０の品質情報が切替条件を満たすか否かを判断する（ステップＳ２４）。切替条件が満たされない場合（ステップＳ２４でＮｏ）、切替制御部１２５は、切替カウンタを初期化する（ステップＳ２５）。切替条件が満たされる場合（ステップＳ２４でＹｅｓ）、切替制御部１２５は、切替カウンタをインクリメントする（ステップＳ２６）。
【００４６】
続いて、切替制御部１２５は、切替カウンタが連続回数を満たすか否かを判断する（ステップＳ２７）。連続回数は、例えば３回〜５回に設定され得る。切替カウンタが連続回数を満たす場合（ステップＳ２７でＹｅｓ）、切替制御部１２５は、通信経路の切り替えを行うと判断し、切り替え先となる通信経路（例えばｗｌａｎ１）を選択する（ステップＳ２８）。
【００４７】
切替カウンタが連続回数を満たさない場合（ステップＳ２７でＮｏ）、通信経路選択の処理（ステップＳ２８）は実行されない。このように、切替制御部１２５は、品質情報が切替条件を満たす場合に即座に切り替えを判断するのではなく、品質情報が切替条件を満たす状態が連続している場合に切り替えを判断するように構成される。
【００４８】
図７Ａ、図７Ｂ、図７Ｃは、本実施形態に係る通信システムのシーケンスチャートである。ここでは、オープンフロー技術を用いて、端末装置３０とＩＰ機器４０間でゲートウェイ１０、２０を介して通信が行われる際の処理を説明する。最初にセッションはｗｌａｎ０に確立され、その後ｗｌａｎ１に切り替えられるものとする。まず、端末装置３０は、セッション確立要求メッセージ（SYNパケット）をゲートウェイ１０に送信する（ステップＳ１０１）。
【００４９】
ゲートウェイ１０のスイッチ１０１は、端末装置３０からSYNパケットを受信すると、SYNパケットがフローエントリにマッチしないことから、Packet InメッセージでSYNパケットをコントローラ１００に転送する（ステップＳ１０２）。コントローラ１００は、Flow Modメッセージでスイッチ１０１にフローエントリを登録し（ステップＳ１０３）、Packet OutメッセージでSYNパケットをスイッチ１０１に返送する（ステップＳ１０４）。このフローエントリにより、端末装置３０から受信されたパケットの転送先が通信インタフェース１１０に指定され、ゲートウェイ１０からゲートウェイ２０へのダウンロード（ＤＬ）の通信経路としてｗｌａｎ０が設定される。Flow Modメッセージにはハードタイムアウトが設定されており、ここで登録されたフローエントリは一定時間後に削除される。
【００５０】
スイッチ１０１は、フローエントリに従ってSYNパケットを通信インタフェース１１０に転送する（ステップＳ１０５）。通信インタフェース１１０は、ｗｌａｎ０を介して対向するゲートウェイ２０の通信インタフェース２１０にSYNパケットを送信し、通信インタフェース２１０は、受信されたSYNパケットをスイッチ２０１に送信する。スイッチ２０１は、通信インタフェース２１０からSYNパケットを受信すると、SYNパケットがフローエントリにマッチしないことから、Packet InメッセージでSYNパケットをコントローラ２００に転送する（ステップＳ１０６）。
【００５１】
コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ１０７）、Packet OutメッセージでSYNパケットをスイッチ２０１に返送する（ステップＳ１０８）。このフローエントリにより、ゲートウェイ１０からゲートウェイ２０へのダウンロードで受信されたパケットの転送先がＩＰ機器４０に指定される。Flow Modメッセージにはハードタイムアウトが設定されており、ここで登録されたフローエントリは一定時間後に削除される。
【００５２】
スイッチ２０１は、フローエントリに従ってSYNパケットをＩＰ機器４０に転送する（ステップＳ１０９）。ＩＰ機器４０は、端末装置３０からのセッション確立要求を許可し、確認応答メッセージ（SYN_ACKパケット）をスイッチ２０１に送信する（ステップＳ１１０）。スイッチ２０１は、ＩＰ機器４０からSYN_ACKパケットを受信すると、SYN_ACKパケットがフローエントリにマッチしないことから、Packet InメッセージでSYN_ACKパケットをコントローラ２００に転送する（ステップＳ１１１）。
【００５３】
コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ１１２）、Packet OutメッセージでSYN_ACKパケットをスイッチ２０１に返送する（ステップＳ１１３）。このフローエントリにより、ＩＰ機器４０から受信されたパケットの転送先が通信インタフェース２１０に指定され、ゲートウェイ２０からゲートウェイ１０へのアップロード（ＵＬ）の通信経路がｗｌａｎ０に設定される。Flow Modメッセージにはアイドルタイムアウトが設定されており、ここで登録されたフローエントリは、参照されない時間が一定時間経過した場合に削除される。
【００５４】
スイッチ２０１は、フローエントリに従ってSYN_ACKパケットを通信インタフェース２１０に転送する（ステップＳ１１４）。通信インタフェース２１０は、ｗｌａｎ０を介して対向するゲートウェイ１０の通信インタフェース１１０にSYN_ACKパケットを送信し、通信インタフェース１１０は、受信されたSYN_ACKパケットをスイッチ１０１に送信する。スイッチ１０１は、通信インタフェース１１０からSYN_ACKパケットを受信すると、SYN_ACKパケットがフローエントリにマッチしないことから、Packet InメッセージでSYN_ACKパケットをコントローラ１００に転送する（ステップＳ１１５）。
【００５５】
コントローラ１００は、Packet Inメッセージを受信すると、Flow Modメッセージでスイッチ１０１にフローエントリを登録し（ステップＳ１１６）、Packet OutメッセージでSYN_ACKパケットをスイッチ１０１に返送するとともに（ステップＳ１１７）。このフローエントリにより、ゲートウェイ２０からゲートウェイ１０へのアップロードで受信されたパケットの転送先が端末装置３０に指定される。Flow Modメッセージにはアイドルタイムアウトが設定されており、ここで登録されたフローエントリは、参照されない時間が一定時間経過した場合に削除される。スイッチ１０１は、フローエントリに従ってSYN_ACKパケットを端末装置３０に転送する（ステップＳ１１８）。
【００５６】
端末装置３０は、SYN_ACKパケットを受信し、セッションの確立を確認すると、データパケットの送信を開始する（ステップＳ１１９）。データパケットは、端末装置３０から、スイッチ１０１、通信インタフェース１１０、通信インタフェース２１０、スイッチ２０１を介して、ＩＰ機器４０により受信される。すなわちｗｌａｎ０を使用してダウンロード通信が行われる。
【００５７】
ここで、ゲートウェイ１０がｗｌａｎ０の品質低下を検出したものとする（ステップＳ１２０）。ステップＳ１０３のフローエントリの登録から一定時間が経過すると、スイッチ１０１においてハードタイムアウトが発生し、ダウンロードのフローエントリが削除される（ステップＳ１２１）。スイッチ１０１は、タイムアウトによりフローエントリが削除されたことを通知するために、Flow Removedメッセージをコントローラ１００に送信する（ステップＳ１２２）。
【００５８】
同様に、ステップＳ１０７のフローエントリの登録から一定時間が経過すると、スイッチ２０１においてハードタイムアウトが発生し、ダウンロードのフローエントリが削除される（ステップＳ１２３）。スイッチ２０１は、タイムアウトによりフローエントリが削除されたことを通知するために、Flow Removedメッセージをコントローラ２００に送信する（ステップＳ１２４）。
【００５９】
スイッチ２０１において、アップロードのフローエントリは残っており、ＩＰ機器４０から送信されたデータパケットは、スイッチ２０１、通信インタフェース２１０、通信インタフェース１１０、スイッチ１０１を介して、端末装置３０により受信される（ステップＳ１２５）。すなわちｗｌａｎ０を使用してアップロード通信が行われる。
【００６０】
端末装置３０は、引き続きデータパケットをゲートウェイ１０に送信する（ステップＳ１２６）。ゲートウェイ１０のスイッチ１０１は、端末装置３０からデータパケットを受信すると、データパケットがフローエントリにマッチしないことから、Packet Inメッセージでデータパケットをコントローラ１００に転送する（ステップＳ１２７）。コントローラ１００は、ｗｌａｎ０の品質低下を考慮し、通信経路のｗｌａｎ１への切り替えを行うと判断する（ステップＳ１２８）。
【００６１】
コントローラ１００は、Flow Modメッセージでスイッチ１０１にフローエントリを登録し（ステップＳ１２９）、Packet Outメッセージでデータパケットをスイッチ１０１に返送する（ステップＳ１３０）。このフローエントリにより、端末装置３０から受信されたパケットの転送先が通信インタフェース１１１に指定され、ゲートウェイ１０からゲートウェイ２０へのダウンロードの通信経路がｗｌａｎ１に切り替えられる。Flow Modメッセージにはハードタイムアウトが設定されており、ここで登録されたフローエントリは一定時間後に削除される。
【００６２】
スイッチ１０１は、フローエントリに従ってデータパケットを通信インタフェース１１１に転送する。通信インタフェース１１１は、ｗｌａｎ１を介して対向するゲートウェイ２０の通信インタフェース２１１にデータパケットを送信し、通信インタフェース２１１は、受信されたデータパケットをスイッチ２０１に送信する（ステップＳ１３１）。すなわちｗｌａｎ１を使用してダウンロード通信が行われる。
【００６３】
スイッチ２０１は、通信インタフェース２１１からデータパケットを受信すると、データパケットがフローエントリにマッチしないことから、Packet Inメッセージでデータパケットをコントローラ２００に転送する（ステップＳ１３２）。コントローラ２００は、Packet Inメッセージを受信すると、切り替え前のアップロードのフローエントリをFlow Modメッセージで削除する（ステップＳ１３３）。コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ１３４）、Packet Outメッセージでデータパケットをスイッチ２０１に返送する（ステップＳ１３５）。このフローエントリにより、ゲートウェイ１０からゲートウェイ２０へのダウンロードで受信されたパケットの転送先がＩＰ機器４０に指定される。Flow Modメッセージにはハードタイムアウトが設定されており、ここで登録されたフローエントリは一定時間後に削除される。
【００６４】
スイッチ２０１は、フローエントリに従ってデータパケットをＩＰ機器４０に転送する（ステップＳ１３６）。次に、ＩＰ機器４０は、データパケットをゲートウェイ２０に送信する（ステップＳ１３７）。ここで送信されるデータパケットは、端末装置３０から受信されたデータパケットとは異なる。ゲートウェイ２０のスイッチ２０１は、ＩＰ機器４０からデータパケットを受信すると、データパケットがフローエントリにマッチしないことから、Packet Inメッセージでデータパケットをコントローラ２００に転送する（ステップＳ１３８）。データパケットがフローエントリにマッチしない理由は、ステップＳ１３３においてアップロードのフローエントリが削除されたためである。
【００６５】
コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ１３９）、Packet Outメッセージでデータパケットをスイッチ２０１に返送する（ステップＳ１４０）。このフローエントリにより、ＩＰ機器４０から受信されたパケットの転送先が通信インタフェース２１１に指定され、ゲートウェイ２０からゲートウェイ１０へのアップロードの通信経路がｗｌａｎ１に切り替えられる。Flow Modメッセージにはアイドルタイムアウトが設定されており、ここで登録されたフローエントリは、参照されない時間が一定時間経過した場合に削除される。
【００６６】
スイッチ２０１は、フローエントリに従ってデータパケットを通信インタフェース２１１に転送し、通信インタフェース２１１は、ｗｌａｎ１を介して対向するゲートウェイ１０の通信インタフェース１１１にデータパケットを送信する。通信インタフェース１１１は、受信されたデータパケットをスイッチ１０１に送信し、スイッチ１０１は、データパケットを端末装置３０に転送する（ステップＳ１４１）。すなわちｗｌａｎ１を使用してアップロード通信が行われる。
【００６７】
以降、端末装置３０とＩＰ機器４０は、ｗｌａｎ１を使用してデータパケットの送受信を行う。すなわち、端末装置３０からのデータパケットは、スイッチ１０１、通信インタフェース１１１、通信インタフェース２１１、スイッチ２０１の順で転送され、ＩＰ機器４０により受信される（ステップＳ１４２）。また、ＩＰ機器４０からのデータパケットは、スイッチ２０１、通信インタフェース２１１、通信インタフェース１１１、スイッチ１０１の順で転送され、端末装置３０により受信される（ステップＳ１４３）。
【００６８】
本実施形態によれば、セッションを確立した通信アプリまたはデバイスを特定し、通信アプリまたはデバイスの情報に基づいてセッションの特性を判定することができる。セッションの特性に関する情報を事前に設定しておく必要がないため、セッション毎の通信経路の切り替えを柔軟かつリアルタイムに行うことが可能となる。また、通信経路の制御機能を有するコントローラと通信経路の切替機能を有するスイッチとが分かれているため、セッション確立後の通信中において、パケットロスを発生させることなく通信経路の切り替えを行うことが可能となる。
【００６９】
通信品質がダイナミックに変化するような無線ネットワーク環境において、個々の通信特性（ＱｏＳ、レイテンシなど）に合った通信経路を提供するためには、オープンフローの仕組みが適切である。オープンフロー技術を適用することにより、通信を行っている通信アプリまたはデバイスを特定し、通信経路の品質に応じて通信アプリ毎、デバイス毎に柔軟に通信経路を切り替えることが可能となる。
【００７０】
本実施形態において、コントローラ１００、２００は、それぞれスイッチ１０１、２０１からフローエントリの設定要求（Packet Inメッセージ）を受けると、タイムアウトが設定されたFlow Modメッセージを用いて応答する。これによりフローエントリが定期的に削除される。コントローラ１００、２００は、セッション特性に応じてタイムアウトまでの時間を適宜設定してもよい。ゲートウェイ２０は、ゲートウェイ１０からのダウンロードのフロー情報に基づいて、切り替えられたダウンロードの通信経路と一致するようにアップロードの通信経路を選択するため、ゲートウェイ１０、２０間で通信経路の切り替えを通知する必要がない。
【００７１】
［第２実施形態］
本実施形態に係る通信システムは、第１実施形態とは通信経路の切り替え方法が異なっている。以下、本実施形態における通信システムについて、第１実施形態に係る通信システムと異なる点を中心に説明する。
【００７２】
図８Ａ、図８Ｂは、本実施形態に係る通信システムのシーケンスチャートである。ここでは、オープンフロー技術を用いて、端末装置３０とＩＰ機器４０間でゲートウェイ１０、２０を介して通信が行われる際の処理を説明する。最初にセッションがｗｌａｎ０に確立され、その後ｗｌａｎ１に切り替えられるものとする。まず、端末装置３０は、セッション確立要求メッセージ（SYNパケット）をゲートウェイ１０に送信する（ステップＳ２０１）。
【００７３】
ゲートウェイ１０のスイッチ１０１は、端末装置３０からSYNパケットを受信すると、SYNパケットがフローエントリにマッチしないことから、Packet InメッセージでSYNパケットをコントローラ１００に転送する（ステップＳ２０２）。コントローラ１００は、Flow Modメッセージでスイッチ１０１にフローエントリを登録し（ステップＳ２０３）、Packet OutメッセージでSYNパケットをスイッチ１０１に返送する（ステップＳ２０４）。このフローエントリにより、端末装置３０から受信されたパケットの転送先が通信インタフェース１１０に指定され、ゲートウェイ１０からゲートウェイ２０へのダウンロード（ＤＬ）の通信経路としてｗｌａｎ０が設定される。
【００７４】
スイッチ１０１は、フローエントリに従ってSYNパケットを通信インタフェース１１０に転送する（ステップＳ２０５）。通信インタフェース１１０は、ｗｌａｎ０を介して対向するゲートウェイ２０の通信インタフェース２１０にSYNパケットを送信し、通信インタフェース２１０は、受信されたSYNパケットをスイッチ２０１に送信する。
【００７５】
スイッチ２０１は、通信インタフェース２１０からSYNパケットを受信すると、SYNパケットがフローエントリにマッチしないことから、Packet InメッセージでSYNパケットをコントローラ２００に転送する（ステップＳ２０６）。
【００７６】
コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ２０７）、Packet OutメッセージでSYNパケットをスイッチ２０１に返送する（ステップＳ２０８）。このフローエントリにより、ゲートウェイ１０からゲートウェイ２０へのダウンロードで受信されたパケットの転送先がＩＰ機器４０に指定される。
【００７７】
スイッチ２０１は、フローエントリに従ってSYNパケットをＩＰ機器４０に転送する（ステップＳ２０９）。ＩＰ機器４０は、端末装置３０からのセッション確立要求を許可し、確認応答メッセージ（SYN_ACKパケット）をスイッチ２０１に送信する（ステップＳ２１０）。
【００７８】
スイッチ２０１は、ＩＰ機器４０からSYN_ACKパケットを受信すると、SYN_ACKパケットがフローエントリにマッチしないことから、Packet InメッセージでSYN_ACKパケットをコントローラ２００に転送する（ステップＳ２１１）。コントローラ２００は、Flow Modメッセージでスイッチ２０１にフローエントリを登録し（ステップＳ２１２）、Packet OutメッセージでSYN_ACKパケットをスイッチ２０１に返送する（ステップＳ２１３）。このフローエントリにより、ＩＰ機器４０から受信されたパケットの転送先が通信インタフェース２１０に指定され、ゲートウェイ２０からゲートウェイ１０へのアップロード（ＵＬ）の通信経路がｗｌａｎ０に設定される。
【００７９】
スイッチ２０１は、フローエントリに従ってSYN_ACKパケットを通信インタフェース２１０に転送する（ステップＳ２１４）。通信インタフェース２１０は、ｗｌａｎ０を介して対向するゲートウェイ１０の通信インタフェース１１０にSYN_ACKパケットを送信し、通信インタフェース１１０は、受信されたSYN_ACKパケットをスイッチ１０１に送信する。
【００８０】
スイッチ１０１は、通信インタフェース１１０からSYN_ACKパケットを受信すると、SYN_ACKパケットがフローエントリにマッチしないことから、Packet InメッセージでSYN_ACKパケットをコントローラ１００に転送する（ステップＳ２１５）。コントローラ１００は、Packet Inメッセージを受信すると、Flow Modメッセージでスイッチ１０１にフローエントリを登録し（ステップＳ２１６）、Packet OutメッセージでSYN_ACKパケットをスイッチ１０１に返送する（ステップＳ２１７）。このフローエントリにより、ゲートウェイ２０からゲートウェイ１０へのアップロードで受信されたパケットの転送先が端末装置３０に指定される。
【００８１】
スイッチ１０１は、フローエントリに従ってSYN_ACKパケットを端末装置３０に転送する（ステップＳ２１８）。端末装置３０は、SYN_ACKパケットを受信し、セッションの確立を確認すると、データパケットの送信を開始する（ステップＳ２１９）。データパケットは、端末装置３０から、スイッチ１０１、通信インタフェース１１０、通信インタフェース２１０、スイッチ２０１を介して、ＩＰ機器４０により受信される。すなわちｗｌａｎ０を使用してダウンロード通信が行われる。また同様に、ｗｌａｎ０を使用してアップロード通信が行われる。
【００８２】
ゲートウェイ１０は、ｗｌａｎ０の品質低下を検出し（ステップＳ２２０）、切替条件が満たされると、通知経路をｗｌａｎ０からｗｌａｎ１に切り替えるための切替指示を含むデータパケットをゲートウェイ２０に通知する（ステップＳ２２１）。このデータパケットは、コントローラ１００から、スイッチ１０１、通信インタフェース１１０、通信インタフェース２１０、スイッチ２０１を介して、コントローラ２００に送信される。コントローラ２００は、切替指示に応じて、Flow Modメッセージでスイッチ２０１のフローエントリを上書きする（ステップＳ２２２）。これにより、ゲートウェイ１０からゲートウェイ２０へのダウンロードで受信されたパケットの転送先がＩＰ機器４０に指定される。また、ＩＰ機器４０から受信されたパケットの転送先が通信インタフェース２１１に指定され、ゲートウェイ２０からゲートウェイ１０へのアップロードの通信経路がｗｌａｎ１に切り替えられる。
【００８３】
ＩＰ機器４０から送信されたデータパケットは、スイッチ２０１、通信インタフェース２１１、通信インタフェース１１１、スイッチ１０１を介して、端末装置３０により受信される（ステップＳ２２３）。すなわちｗｌａｎ１を使用してアップロード通信が行われる。
【００８４】
ゲートウェイ２０は、通信経路の切り替えが完了した旨を示す切替完了情報をゲートウェイ１０に通知する（ステップＳ２２４）。切替完了情報は、コントローラ２００から、スイッチ２０１、通信インタフェース２１１、通信インタフェース１１１、スイッチ１０１を介して、コントローラ１００に送信される。コントローラ１００は、切替完了情報に応じて、Flow Modメッセージでスイッチ１０１に登録されたフローエントリを上書きする（ステップＳ２２５）。これにより、ゲートウェイ２０からゲートウェイ１０へのアップロードで受信されたパケットの転送先が端末装置３０に指定される。また、端末装置３０から受信されたパケットの転送先が通信インタフェース１１１に指定され、ゲートウェイ１０からゲートウェイ２０へのダウンロードの通信経路がｗｌａｎ１に切り替えられる。
【００８５】
端末装置３０から送信されたデータパケットは、スイッチ１０１、通信インタフェース１１１、通信インタフェース２１１、スイッチ２０１を介して、ＩＰ機器４０により受信される（ステップＳ２２６）。すなわちｗｌａｎ１を使用してダウンロード通信が行われる。
【００８６】
このように、本実施形態においては、ゲートウェイ１０、２０間で通信経路の切り替えに関する情報が通知される。ゲートウェイ２０は、ゲートウェイ１０から切替指示を受けると、フローエントリを上書きすることにより、セッション毎にアップロードの通信経路を切り替える。ゲートウェイ１０は、ゲートウェイ２０からの切替完了を受けて、セッション毎にダウンロードの通信経路を切り替える。
【００８７】
［第３実施形態］
図９は、本実施形態に係る通信装置の概略構成図である。通信装置１０は、複数の通信経路を介して他の通信装置と接続された通信装置であって、特定部９０１、制御部９０２、切替部９０３を備える。特定部９０１は、複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、セッションのフロー情報および通信アプリケーションを動作させるＯＳのシステム情報に基づいて特定する。制御部９０２は、通信アプリケーションの情報から判定されたセッションの特性に応じて、第１の通信経路から複数の通信経路のうちの第２の通信経路にセッションの通信経路を切り替えるか否かを判断する。切替部９０３は、制御部９０２に従ってセッションの通信経路を切り替える。
【００８８】
［変形実施形態］
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。例えば、上述の実施形態では、コントローラ１００がオープンフローコントローラの機能を有するものとして説明したが、オープンフローコントローラの機能がコントローラ１００とは別体に設けられていてもよい。また、本発明は、オープンフロー技術に限定されず、コントローラ１００がスイッチ１０１による通信経路の切り替えを制御可能な他の技術によっても実現可能である。
【００８９】
上述の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９０】
（付記１）
複数の通信経路を介して他の通信装置と接続された通信装置であって、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定する特定部と、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断する制御部と、
前記制御部に従って前記セッションの通信経路を切り替える切替部とを備えることを特徴とする通信装置。
【００９１】
（付記２）
前記特定部は、前記セッションに関連するデバイスを前記フロー情報に基づいて特定し、前記セッションの特性は、前記通信アプリケーションの情報および前記デバイスの情報のうちの少なくとも１つから判定されることを特徴とする付記１に記載の通信装置。
【００９２】
（付記３）
前記複数の通信経路のそれぞれの品質情報を測定する測定部を備え、
前記制御部は、前記品質情報に応じて前記通信経路の切り替えを判断することを特徴とする付記１または２に記載の通信装置。
【００９３】
（付記４）
前記制御部は、前記第１の通信経路の前記品質情報が通信アプリケーションごとまたはデバイスごとに設定された所定の切替条件を満たす場合に、前記第２の通信経路への切り替えを行うと判断することを特徴とする付記３に記載の通信装置。
【００９４】
（付記５）
前記制御部は、前記通信経路の切り替えを判断してから所定時間の経過後に、前記切り替えを行うための切替処理を開始することを特徴とする付記１乃至４のいずれかに記載の通信装置。
【００９５】
（付記６）
前記制御部は、前記所定時間の経過後に、前記切替処理を開始せずに前記切り替えを再度判断することを特徴とする付記５に記載の通信装置。
【００９６】
（付記７）
前記所定時間は、前記セッションの特性に応じて決定されることを特徴とする付記５または６に記載の通信装置。
【００９７】
（付記８）
前記フロー情報は、前記セッションによる通信の統計情報または前記セッションで通信されているデータの種類を含むことを特徴とする付記１乃至７のいずれかに記載の通信装置。
【００９８】
（付記９）
前記複数の通信経路は、異なる複数の無線通信方式による無線通信ネットワーク上に設定されることを特徴とする付記１乃至８のいずれかに記載の通信装置。
【００９９】
（付記１０）
前記制御部は、前記他の通信装置に対して前記第２の通信経路の情報を通知することを特徴とする付記１乃至９のいずれかに記載の通信装置。
【０１００】
（付記１１）
前記制御部は、オープンフロー（OpenFlow）コントローラの機能を含み、前記切替部は、オープンフロースイッチの機能を含むことを特徴とする付記１乃至１０のいずれかに記載の通信装置。
【０１０１】
（付記１２）
前記制御部は、前記オープンフロースイッチに登録されたフローエントリを定期的に削除するとともに、前記オープンフロースイッチからの設定要求に応じて、前記第２の通信経路の情報に基づくフローエントリを前記オープンフロースイッチに登録することを特徴とする付記１１に記載の通信装置。
【０１０２】
（付記１３）
前記制御部は、前記第２の通信経路の情報に基づいて、前記オープンフロースイッチに登録されたフローエントリを上書きすることを特徴とする付記１１に記載の通信装置。
【０１０３】
（付記１４）
複数の通信経路を介して他の通信装置と接続された通信装置の制御方法であって、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定するステップと、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断するステップと、
前記判断するステップに従って前記セッションの通信経路を切り替えるステップとを備えることを特徴とする制御方法。
【０１０４】
（付記１５）
複数の通信経路を介して他の通信装置と接続された通信装置を制御するためのプログラムであって、
コンピュータに、
前記複数の通信経路のうちの第１の通信経路を使用してセッションを確立した通信アプリケーションを、前記セッションのフロー情報および前記通信アプリケーションを動作させるオペレーティングシステムのシステム情報に基づいて特定するステップと、
前記通信アプリケーションの情報から判定された前記セッションの特性に応じて、前記第１の通信経路から前記複数の通信経路のうちの第２の通信経路に前記セッションの通信経路を切り替えるか否かを判断するステップと、
前記判断するステップに従って前記セッションの通信経路を切り替えるステップとを実行させることを特徴とするプログラム。
【符号の説明】
【０１０５】
１０、２０  ゲートウェイ（通信装置）
３０  端末装置
４０  ＩＰ機器
４１  センサ
１００、２００  コントローラ
１０１、２０１  スイッチ
１１０、１１１、１１２、２１０、２１１、２１２  通信インタフェース
１２１  セッション特定部
１２２  特性判定部
１２３  記憶部
１２４  品質測定部
１２５  切替制御部
１３１  ＣＰＵ
１３２  メモリ
１３３  記憶装置
１３４  入出力Ｉ／Ｆ
９０１  特定部
９０２  判定部
９０３  制御部
【図１】
2019083459.tif 000003
【図２】
2019083459.tif 000004
【図３】
2019083459.tif 000005
【図４】
2019083459.tif 000006
【図５】
2019083459.tif 000007
【図６】
2019083459.tif 000008
【図７Ａ】
2019083459.tif 000009
【図７Ｂ】
2019083459.tif 000010
【図７Ｃ】
2019083459.tif 000011
【図８Ａ】
2019083459.tif 000012
【図８Ｂ】
2019083459.tif 000013
【図９】
2019083459.tif 000014