(57)【要約】  個々のアプリケーションソフトウェア毎にモバイル網での通信量を認識することができる端末装置を提供する。通信制御手段９１は、パケットを送信するパケット転送手段を制御する。指示情報付与手段９２は、通信制御手段９１に対する指示を表す指示情報を通信制御手段９１に与える。通信制御手段９１は、パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持する。指示情報付与手段９２は、アプリケーションソフトウェア毎に、各アクセス網の統計情報を通信制御手段９１から取得する。
2015052867.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送信するパケット転送手段を制御する通信制御手段と、
前記通信制御手段に対する指示を表す指示情報を前記通信制御手段に与える指示情報付与手段とを備え、
前記通信制御手段は、
前記パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持し、
前記指示情報付与手段は、
アプリケーションソフトウェア毎に、各アクセス網の統計情報を前記通信制御手段から取得する
ことを特徴とする端末装置。
【請求項２】
指示情報付与手段は、
モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットを前記モバイル網以外のアクセス網を経路として送信することを指示する指示情報を前記通信制御手段に与える
請求項１に記載の端末装置。
【請求項３】
指示情報付与手段は、
モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットをＷｉ−Ｆｉを経路として送信することを指示する指示情報を前記通信制御手段に与える
請求項１または請求項２に記載の端末装置。
【請求項４】
複数のアクセス網に同時に接続可能である
請求項１から請求項３のうちのいずれか１項に記載の端末装置。
【請求項５】
通信制御手段は、
オープンフローに従ってパケット転送手段を制御する
請求項１から請求項４のうちのいずれか１項に記載の端末装置。
【請求項６】
通信制御手段が、
パケットを送信するパケット転送手段を制御し、
指示情報付与手段が、
前記通信制御手段に対する指示を表す指示情報を前記通信制御手段に与え、
前記通信制御手段が、
前記パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持し、
前記指示情報付与手段が、
アプリケーションソフトウェア毎に、各アクセス網の統計情報を前記通信制御手段から取得する
ことを特徴とする端末装置制御方法。
【請求項７】
指示情報付与手段が、
モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットを前記モバイル網以外のアクセス網を経路として送信することを指示する指示情報を前記通信制御手段に与える
請求項６に記載の端末装置制御方法。
【請求項８】
パケットを送信するパケット転送手段を制御する通信制御手段と、前記通信制御手段に対する指示を表す指示情報を前記通信制御手段に与える指示情報付与手段とを備え、端末装置として用いられるコンピュータに搭載される端末装置制御プログラムであって、
前記コンピュータに、
前記通信制御手段が、前記パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持する第１の統計情報取得処理、および、
前記指示情報付与手段が、アプリケーションソフトウェア毎に、各アクセス網の統計情報を前記通信制御手段から取得する第２の統計情報取得処理
を実行させるための端末装置制御プログラム。
【請求項９】
コンピュータに、
指示情報付与手段が、モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットを前記モバイル網以外のアクセス網を経路として送信することを指示する指示情報を前記通信制御手段に与える指示情報付与処理
を実行させる請求項８に記載の端末装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部と通信可能な端末装置、その端末装置を制御する端末装置制御方法、および、その端末装置を制御するための端末装置制御プログラムに関する。
【背景技術】
【０００２】
パケットを転送するスイッチを制御装置が制御するプロトコルとして、オープンフロー（ＯｐｅｎＦｌｏｗ）が知られている。オープンフローは、非特許文献１で規定されている。【０００３】
オープンフローでは、制御装置がスイッチにフローエントリを設定する。そして、スイッチは、受信したパケットをそのフローエントリに従って処理する。フローエントリとは、パケットをどのように処理するか（例えば、転送、廃棄等）を規定した情報である。フローエントリは、パケットのフロー毎に設定される。スイッチがパケットを受信したときに、そのパケットのフローに対応するフローエントリが存在する場合、スイッチは、そのフローエントリに従ってそのパケットを処理する。一方、受信したパケットのフローに対応するフローエントリが存在しない場合、スイッチはその旨を制御装置に通知する。そして、制御装置は、そのパケットのフローに対応するフローエントリを決定し、スイッチに設定する。【０００４】
オープンフローにおいて、制御装置とスイッチとが送受信するメッセージの例として、“Packet_in ”，“Flow_mod”，“Packet_out”，“Flow_removed”，“stats_request ”，“stats_reply ”等がある。【０００５】
“Packet_in ”は、スイッチから制御装置に送られるメッセージである。“Packet_in ”は、対応するフローエントリが存在しなかったパケットをスイッチから制御装置に送るために用いられる。【０００６】
“Flow_mod”は、制御装置からスイッチに送られるメッセージである。“Flow_mod”は、制御装置からスイッチに対してフローエントリの追加、変更、削除を行うためのメッセージである。【０００７】
“Packet_out”は、制御装置からスイッチに送られるメッセージである。“Packet_out”は、ポートからのパケット出力を指示するメッセージである。【０００８】
“Flow_removed”は、スイッチから制御装置に送られるメッセージである。“Flow_removed”は、フローエントリが一定時間使用されず、タイムアウトでスイッチから消去される場合に、その旨を制御装置に通知するメッセージである。スイッチは、“Flow_removed”を送信する際、消去されたフローエントリに対応するフローの統計情報も制御装置に送信する。【０００９】
“stats_request ”は、制御装置からスイッチに送られるメッセージである。“stats_request ”は、フローの統計情報をスイッチに対して要求するメッセージである。【００１０】
“stats_reply ”は、スイッチから制御装置に送られるメッセージである。“stats_reply ”は、“stats_request ”に対する応答として、スイッチから制御装置に対してフローの統計情報を送るために用いられる。【００１１】
また、特許文献１には、アプリケーション別のトラフィック量情報を計測するシステムが記載されている。【００１２】
また、特許文献２には、複数の無線通信ネットワークとの接続を行う無線通信装置が記載されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００８−７２４９６号公報（段落００３４）
【特許文献２】国際公開ＷＯ２００９／１０７７８１号パンフレット（段落００４２）
【非特許文献】
【００１４】
【非特許文献１】“OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01)”、２００９年１２月３１日、［平成２５年９月２０日検索］、インターネット<http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【００１５】
近年、外部と通信可能な端末装置として、スマートフォン等が急速に普及している。このような端末装置では、モバイル網（携帯電話通信網）での通信量が所定量以上になったときに、最もモバイル網を使用しているアプリケーションソフトウェアに対してモバイル網の使用を禁止させる制御を実現できることが好ましい。しかし、モバイル網およびＷｉ−Ｆｉ（Wireless Fidelity 、登録商標）といった複数の通信網に同時に接続される端末装置は、個々のアプリケーションソフトウェア毎にモバイル網での通信量を認識することができなかった。そのため、上記のような制御を実現することはできなかった。【００１６】
そこで、本発明は、個々のアプリケーションソフトウェア毎にモバイル網での通信量を認識することができる端末装置、端末装置制御方法、および端末装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明による端末装置は、パケットを送信するパケット転送手段を制御する通信制御手段と、通信制御手段に対する指示を表す指示情報を通信制御手段に与える指示情報付与手段とを備え、通信制御手段が、パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持し、指示情報付与手段が、アプリケーションソフトウェア毎に、各アクセス網の統計情報を通信制御手段から取得することを特徴とする。【００１８】
また、本発明による端末装置制御方法は、通信制御手段が、パケットを送信するパケット転送手段を制御し、指示情報付与手段が、通信制御手段に対する指示を表す指示情報を通信制御手段に与え、通信制御手段が、パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持し、指示情報付与手段が、アプリケーションソフトウェア毎に、各アクセス網の統計情報を通信制御手段から取得することを特徴とする。【００１９】
また、本発明による端末装置制御プログラムは、パケットを送信するパケット転送手段を制御する通信制御手段と、通信制御手段に対する指示を表す指示情報を通信制御手段に与える指示情報付与手段とを備え、端末装置として用いられるコンピュータに搭載される端末装置制御プログラムであって、コンピュータに、通信制御手段が、パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持する第１の統計情報取得処理、および、指示情報付与手段が、アプリケーションソフトウェア毎に、各アクセス網の統計情報を通信制御手段から取得する第２の統計情報取得処理を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、個々のアプリケーションソフトウェア毎にモバイル網での通信量を認識することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の端末装置の例を示すブロック図である。
【図２】ポリシを模式的に示す説明図である。
【図３】ＯＦＣの詳細を示すブロック図である。
【図４】フロー管理部が管理する情報の例を示す模式図である。
【図５】ポリシ管理部の詳細を示すブロック図である。
【図６】統計情報管理部の詳細を示すブロック図である。
【図７】本発明の処理経過の例を示すシーケンス図である。
【図８】ＯＦＣの処理経過の例を示すシーケンス図である。
【図９】統計情報管理部の処理経過の例を示すシーケンス図である。
【図１０】本発明の端末装置の主要部を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面を参照して説明する。以下、オープンフローにおける制御装置をＯＦＣ（OpenFlow Controller ）と記す。また、オープンフローにおけるスイッチをＯＦＳ（OpenFlow Switch ）と記す。
【００２３】
図１は、本発明の端末装置の例を示すブロック図である。本発明の端末装置１は、例えば、スマートフォンやタブレット型端末装置であるが、これらに限定されない。また、本発明の端末装置１は、複数のアクセス網（通信網）に同時に接続可能である。本発明の端末装置１は、通信制御管理部２と、制御アプリケーション部３と、パケット転送部４と、プロトコル処理部５と、アプリケーション部６と、通信インタフェース部７ａ〜７ｎとを備える。
【００２４】
各アプリケーション部６は、端末装置１にインストールされた各アプリケーションソフトウェア（以下、単にアプリケーションと記す。）に従って動作するＣＰＵによって実現される。各アプリケーション部６は、対応するアプリケーションに応じた動作を行う。
【００２５】
パケット転送部４は、アプリケーション部６が外部に送信しようとするパケットを、通信制御管理部２に従って処理する（例えば、転送したり、破棄したりする）。
【００２６】
通信制御管理部２は、制御アプリケーション部３からの指示に基づいて、パケット転送部４におけるパケット処理を制御する。本実施形態では、通信制御管理部２がオープンフローに従ってパケット転送部４を制御する場合を例にして説明する。すなわち、本実施形態では、通信制御管理部２がオープンフローにおけるＯＦＣに該当し、パケット転送部４がオープンフローにおけるＯＦＳに該当するものとして説明する。ただし、通信制御管理部２は、オープンフロー以外のプロトコルでパケット転送部４を制御してもよい。以下、通信制御管理部２をＯＦＣ２と記す。また、パケット転送部４をＯＦＳ４と記す。ＯＦＣ２およびＯＦＳ４は、プログラムに従って動作するＣＰＵによって実現される。ＯＦＣ２としての機能を実現させるプログラムはＯＦＣ基盤と称される。
【００２７】
制御アプリケーション部３は、制御アプリケーションソフトウェアに従って動作するＣＰＵによって実現される。以下、制御アプリケーションソフトウェアを制御アプリケーションと記す。制御アプリケーション部３は、ＯＦＣ２に対する指示を表す指示情報をＯＦＣ２に送る。この指示情報をポリシと記す。
【００２８】
通信インタフェース部７ａ〜７ｎは、それぞれ、モバイル網、Ｗｉ−Ｆｉ（Wireless Fidelity 、登録商標）等の各種通信に対応する通信インタフェースである。各通信インタフェース部７ａ〜７ｎは、具体的には、ＯＦＳ２のポートとして識別される。
【００２９】
プロトコル処理部５は、プログラムに従って動作するＣＰＵによって実現される。プロトコル処理部５は、アプリケーションに対して通信サービスを提供する。プロトコル処理部５は、伝送路で用いられるＴＣＰ（Transmission Control Protocol ）、ＵＤＰ（User Datagram Protocol）等のプロトコルを実装した部分である。プロトコル処理部５は、各通信インタフェース部７ａ〜７ｎが使用できる状態か否かを監視し、その監視結果をＯＦＣ２（具体的には、後述のノード状態管理部２５、図３参照）に通知する。また、プロトコル処理部５は、自ポート番号および、その自ポート番号に対応するプロセスＩＤ（Identification）をＯＦＣ２（具体的には、後述のプロトコル状態管理部２６、図３参照）に通知する。上記の自ポート番号は、アプリケーションから指示された各通信におけるＴＣＰ，ＵＤＰ等の自ポート番号である。
【００３０】
制御アプリケーション、および、ＯＦＣ２、ＯＦＳ４、プロトコル処理部５の機能を実現するための各プログラムは、端末装置制御プログラムと称することができる。端末装置制御プログラムは、端末装置１の記憶装置（図示略）に記憶され、端末装置１のＣＰＵが端末装置制御プログラムを読み込み、そのプログラムに従って、ＯＦＣ２、制御アプリケーション部３、ＯＦＳ４、プロトコル処理部５として動作する。
【００３１】
制御アプリケーション部３がＯＦＣ２に送るポリシについて説明する。ポリシは、トラフィックの内容に応じたアクションを指示する指示情報である。図２は、ポリシを模式的に示す説明図である。ポリシには、ポリシを検索する際に用いる検索キーと、ポリシが指定する動作を表すアクションとが含まれる。
【００３２】
トラフィックを指定する情報は、検索キーとして記述される。例えば、検索キーとしてアプリケーションＩＤが記述される。アプリケーションＩＤは、制御対象トラフィックを端末装置内で送受信するアプリケーションの識別子である。ポリシにおいてアプリケーションＩＤが未指定である場合、ワイルドカードであるとみなされる。
【００３３】
また、例えば、制御対象トラフィックのフローの識別情報が検索キーとして記述されていてもよい。フローの識別情報には、例えば、アドレスやポート番号等が含まれる。フロー情報となるアドレスやポート番号が未指定である場合、ワイルドカードとみなされる。
【００３４】
また、検索キーには、優先度が含まれていてもよい。優先度は、共通のトラフィックに対応するポリシが複数存在する場合、それらポリシの優先順位を表す。従って、ＯＦＣ２が、あるトラフィックに対応するポリシを検索した結果、複数のポリシが得られた場合、ＯＦＣ２は、そのポリシのうち最も優先度が高いポリシのみを最終的に検索結果とする。
【００３５】
また、検索キーには、ポリシの識別子であるポリシＩＤが含まれる。
【００３６】
アクションを指定する態様には、トラフィックに応じて、そのトラフィックの経路を指定する態様がある。この態様では、端末装置が接続し得るアクセス網（Ｗｉ−Ｆｉやモバイル網等）が指定される。例えば、あるトラフィックに対応するポリシで、アクションとしてＷｉ−Ｆｉが指定されていた場合、そのトラフィックのパケットはＷｉ−Ｆｉに対応する通信インタフェース部から送信されることになる。
【００３７】
また、アクションを指定する態様として、予め規定された動作を実行するか否かをフラグによって定める態様がある。予め規定された動作の例として、例えば、「ＯＦＣ２がポリシで指定された条件に該当する新規フローを検出した場合、ＯＦＣ２がその新規フローの送信元のアプリケーションおよび宛先を制御アプリケーション部３に通知する。」等の動作が挙げられる。この動作に対応するフラグが、ポリシ内でオンに設定されているとする。ＯＦＣ２は、新規トラフィック（より具体的には、指定された条件に該当する新規フロー）を検出し、そのトラフィックに対応するポリシとしてこのポリシを検索した場合、フラグで指定された上記の動作を実行する。また、ポリシ内でこのフラグがオフに設定されている場合、ＯＦＣ２は、このポリシを検索したとしても、上記の動作を実行しない。
【００３８】
なお、ポリシには、複数のアクションが記述されていてもよい。
【００３９】
また、ＯＦＳ４にパケットを送信したアプリケーション部６に対応するアプリケーションを、パケットの送信元のアプリケーションと記す。
【００４０】
本発明では、ＯＦＣ２は、フロー毎の統計情報をＯＦＳ４から取得する。このとき、ＯＦＣ２がオープンフローの“stats_request ”をＯＦＳ４に送り、ＯＦＳ４が“stats_reply ”をＯＦＳ２に送ることによって、ＯＦＣ２は統計情報を取得する。そして、ＯＦＣ２は、アプリケーション毎に各アクセス網での統計情報を保持する。そして、制御アプリケーション部３は、アプリケーション毎に、指定した各アクセス網の統計情報をＯＦＣ２に要求し、ＯＦＣ２は要求された統計情報を制御アプリケーション部３に送る。また、制御アプリケーション部３は、モバイル網での通信量（例えば、バイト数）の総和が閾値以上になっている場合、モバイル網で通信を行っているアプリケーションのうち、通信量が最大であるアプリケーションを特定する。制御アプリケーション部３は、そのアプリケーションの通信に用いる経路としてモバイル網以外（本例では、Ｗｉ−Ｆｉとする。）を指定するポリシを作成し、ＯＦＣ２に送る。このようなＯＦＣ２に対する制御アプリケーション部３の動作や、制御アプリケーション部３に対するＯＦＣ２の動作が本発明の特徴である。換言すれば、制御アプリケーション部３とＯＦＣ２との間のNorthbound API（Application programming Interface ）が本発明の特徴である。そして、このような本発明の特徴によって、端末装置１が個々のアプリケーション毎にモバイル網での通信量を認識できるという効果が得られる。さらに、端末装置１が、モバイル網での通信量が最大となっているアプリケーションに関して、使用するアクセス網をモバイル網からＷｉ−Ｆｉに切り替えられるという効果が得られる。そして、その結果、モバイル網の通信負荷を抑えることができる。
【００４１】
図３は、ＯＦＣ２の詳細を示すブロック図である。ＯＦＣ２は、ＡＰＩ管理部２１と、ポリシ管理部２２と、統計情報管理部２３と、フロー管理部２４と、ノード状態管理部２５と、プロトコル状態管理部２６とを含む。
【００４２】
ＡＰＩ管理部２１は、制御アプリケーション部３からのＡＰＩ呼び出しや、ＯＦＣ２側からの応答を中継する。例えば、ＡＰＩ管理部２１は、制御アプリケーション部３からポリシの追加、変更、削除の通知を受信した場合には、その通知をポリシ管理部２２に送る。また、ポリシ管理部２２が制御アプリケーション部３に情報を送信する場合、ＡＰＩ管理部２１は、その情報を中継する。また、例えば、ＡＰＩ管理部２１は、制御アプリケーション部３からトラフィックの統計情報の要求を受信した場合、その要求を統計情報管理部２３に送る。そして、統計情報管理部２３がその要求に応じて統計情報を制御アプリケーション部３に送信する場合、ＡＰＩ管理部２１は、その統計情報を中継する。
【００４３】
ポリシ管理部２２は、制御アプリケーション部３から送られた各ポリシを保持する。
【００４４】
また、ポリシ管理部２２は、ＯＦＳ４から“Packet_in ”とともにＯＦＣ２に送られたパケット（ＯＦＳ４において、合致するフローエントリが存在しなかったパケット）を取得した場合、そのパケットに応じたポリシを検索し、検索したポリシで定められた動作を実行する。より具体的には、フロー管理部２４が、ＯＦＳ４から“Packet_in ”とともにＯＦＣ２に送られたパケットを受信すると、そのパケットをポリシ管理部２２に送り、ポリシ検索を要求する。以下の説明において、この動作をポリシ問い合わせと呼ぶ場合がある。ポリシ管理部２２は、その要求に応じてポリシを検索し、検索したポリシで定められた動作を実行する。このとき、検索の結果得られたポリシにおいて、アクセス網を指定するアクションが記述されていた場合、ポリシ管理部２２は、そのアクションおよびポリシＩＤを、フロー管理部２４に返すことによって、フロー管理部２４に対してフローエントリの作成を指示する。
【００４５】
統計情報管理部２３は、ＯＦＳ４から送られる統計情報を保持する。具体的には、統計情報管理部２３は、アプリケーション毎に、各アクセス網における統計情報を保持する。また、ＡＰＩ管理部２１を介して、制御アプリケーション部３から統計情報を要求されると、要求された統計情報を制御アプリケーション部３に送る。
【００４６】
フロー管理部２４は、ＯＦＳ４との間で通信を行い、また、ＯＦＳ４に設定するフローエントリに関する情報を管理する。フロー管理部２４は、ＯＦＳ４から“Packet_in ”とともにパケット（ＯＦＳ４において、合致するフローエントリが存在しなかったパケット）を受信した場合、そのパケットをポリシ管理部２２に送り、ポリシ検索を要求する。この応答として、ポリシ管理部２２からアクセス網を指定するアクションおよびポリシＩＤを受け取った場合、フロー管理部２４は、そのアクションと、上記のパケットのフロー情報とに基づいて、フローエントリを作成し、そのフローエントリをＯＦＳ４に送信する。そして、フロー管理部２４は、そのフローエントリに関する情報を管理する。
【００４７】
図４は、フロー管理部２４が管理する情報の例を示す模式図である。フロー管理部２４は、フローエントリ毎に図４に例示する情報を作成し、保持する。そして、フロー管理部２４が管理する各情報には、それらの個々の情報を検索するための検索キーが含まれる。その検索キーには、フローエントリで制御されるトラフィックのフローの識別情報が記述される。既に説明したように、フローの識別情報には、例えば、アドレスやポート番号等が含まれる。フロー情報となるアドレスやポート番号が未指定である場合、ワイルドカードとみなされる。また、検索キーには、フローエントリを設定するときに利用したポリシＩＤも含まれる。さらに、フロー管理部２４が管理する各情報には、フローエントリで設定されるアクションも記述される。
【００４８】
また、フロー管理部２４は、“Flow_removed”を受信した場合、“Flow_removed”とともにＯＦＳ４から受信した統計情報を統計情報管理部２３に送る。図４に示すように、フローエントリとポリシＩＤとが対応付けられているので、消去されたフローの統計情報がＯＦＳ４から送られた場合であっても、統計情報管理部２３が、その統計情報がどのアプリケーションに対応する統計情報かを認識できる。
【００４９】
また、フロー管理部２４は、例えば、統計情報管理部２３から定期的に与えられる指示に基づいて、“stats_request ”を定期的にＯＦＳ４に送ることによっても、ＯＦＳ４からフロー毎の統計情報を取得する。この場合にも、フロー管理部２４は、その統計情報を統計情報管理部２３に送る。
【００５０】
フロー管理部２４は、フローの統計情報を取得した場合、そのフローのフローエントリに対応付けて保持しているポリシＩＤ（図４参照）を特定する。そして、フロー管理部２４は、そのポリシＩＤが示すポリシにおいて検索キーとして記述されているアプリケーションＩＤをポリシ管理部２２（具体的には、後述のポリシ検索部２２３。図５参照。）に問い合わせ、ポリシ管理部２２からアプリケーションＩＤを取得する。また、フロー管理部２４は、フローの識別情報に基づいて、どのアクセス網における統計情報であるのかを判定する。この結果、フロー管理部２４は、アプリケーションＩＤと、アクセス網と、統計情報とを対応付けることができる。そして、フロー管理部２４は、アプリケーションＩＤおよびアクセス網に対応付けて統計情報を統計情報管理部２３に保持させる。
【００５１】
ノード状態管理部２５は、各通信インタフェース部７ａ〜７ｎ（図１参照）が使用できる状態か否かを示す情報をプロトコル処理部５から取得し、保持する。ポリシ管理部２２（具体的には、後述のアクション選択部２２４。図５参照。）は、この情報を参照することによって、個々の通信インタフェース部７ａ〜７ｎが使用可能であるか否かを判定する。ポリシ管理部２２（具体的には、アクション選択部２２４）は、パケットを送出しようとする通信インタフェース部が使用できない場合、検索したポリシにおいて、その通信インタフェース部に対応するアクセス網を指定するアクションが記述されていても、そのアクションをフロー管理部２４に送らない。この結果、使用できない通信インタフェース部からパケットを送出するフローエントリは作成されない。
【００５２】
プロトコル状態管理部２６は、パケットのフロー情報と、そのパケットの送信元アプリケーションのアプリケーションＩＤ（アプリケーションの識別子）との対応関係を表す情報を保持する。本例では、パケットのフロー情報として自ポート番号を用いる場合を例にする。プロトコル状態管理部２６は、プロトコル処理部５（図１参照）から自ポート番号およびプロセスＩＤを取得する。プロトコル状態管理部２６は、そのプロセスＩＤに対応するＵＩＤ（User ID ）と、そのＵＩＤに対応するアプリケーションＩＤとを対応づけた情報を作成し、その情報を保持する。この結果、フロー情報（自ポート番号）とアプリケーションＩＤとが対応づけられ、フロー情報からアプリケーションＩＤを検索することが可能となる。ただし、プロトコル状態管理部２６が、フロー情報とアプリケーションＩＤとの対応関係を示す情報を保持する態様は、特に限定されず、上記の態様でなくてもよい。
【００５３】
図５は、ポリシ管理部２２の詳細を示すブロック図である。ポリシ管理部２２は、ポリシテーブル記憶部２２１と、ポリシエントリ管理部２２２と、ポリシ検索部２２３と、アクション選択部２２４とを含む。
【００５４】
ポリシテーブル記憶部２２１は、ポリシを記憶する記憶装置（例えば、メモリ）である。
【００５５】
ポリシエントリ管理部２２２は、ＡＰＩ管理部２１を介して、制御アプリケーション部３からポリシの追加、変更、削除の通知を受信すると、その通知に従って、ポリシテーブル記憶部２２１内のポリシを更新する。例えば、ポリシエントリ管理部２２２は、ポリシテーブル記憶部２２１に新たにポリシを記憶させたり、ポリシテーブル記憶部２２１に記憶されているポリシの内容を変更したり、ポリシテーブル記憶部２２１に記憶されているポリシを削除したりする。
【００５６】
ポリシ検索部２２３は、フロー管理部２４からパケットが送られると、そのパケットのフロー情報（本例ではポート番号）をキーとして、プロトコル状態管理部２６にそのフロー情報に対応するアプリケーションＩＤを検索させる。プロトコル状態管理部２６は、検索したアプリケーションＩＤをポリシ検索部２２３に返す。このアプリケーションＩＤは、パケットの送信元となったアプリケーションＩＤである。ポリシ検索部２２３は、このアプリケーションＩＤおよびフロー管理部２４から送られたパケットのフロー情報をキーとして、ポリシテーブル記憶部２２１からポリシを検索する。
【００５７】
アクション選択部２２４は、ポリシ検索部２２３によって検索されたポリシで定められているアクションを選択する。例えば、ポリシ検索部２２３によって検索されたポリシにおいて、フロー検出通知を行うというアクションが定められている場合、アクション選択部２２４は、制御アプリケーション部３に対してフロー検出通知を行う。また、例えば、ポリシにおいて、アクセス網を指定するアクションが記述されていた場合、アクション選択部２２４は、そのアクションおよびポリシＩＤを、フロー管理部２４に返すことによって、フロー管理部２４に対してフローエントリの作成を指示する。
【００５８】
図６は、統計情報管理部２３の詳細を示すブロック図である。統計情報管理部２３は、統計情報蓄積管理部２３１と、統計情報記憶部２３２と、統計情報検索部２３３とを含む。
【００５９】
統計情報記憶部２３２は、統計情報を記憶する記憶装置（例えば、メモリ）である。
【００６０】
統計情報蓄積管理部２３１は、フロー管理部２４が定期的にＯＦＳ４から取得した統計情報や、ＯＦＳ４でフローエントリが消去されたことによってフロー管理部２４が“Flow_removed”とともに取得した統計情報に基づいて、統計情報記憶部２３２に記憶されている統計情報を更新する。具体的には、統計情報蓄積管理部２３１は、統計情報とともにその統計情報に対応するアプリケーションＩＤおよびアクセス網の情報をフロー管理部２４から与えられ、統計情報記憶部２３２において、そのアプリケーションＩＤおよびアクセス網に対応する統計情報を更新する。
【００６１】
統計情報検索部２３３は、制御アプリケーション部３からＡＰＩ管理部２１を介して統計情報の要求を受ける。統計情報検索部２３３は、要求された統計情報を統計情報記憶部２３２から検索する。そして、統計情報検索部２３３は、ＡＰＩ管理部２１を介して制御アプリケーション部３にその統計情報を送る。
【００６２】
次に、本発明の動作について説明する。図７は、本発明の処理経過の例を示すシーケンス図である。図７において、ＡＰＰは、アプリケーションを意味するものとする。また、図７において、制御アプリケーション部３がＯＦＣ２に送るポリシの内容、および、制御アプリケーション部３がＯＦＣ２から収集する統計情報の内容は、破線で囲んで図示する。また、アプリケーション部６ａに対応するアプリケーションを符号ａで表す。アプリケーション部６ｂに対応するアプリケーションを符号ｂで表す。図７では、アプリケーション部６ａ、ＯＦＳ４、モバイル網の順に転送されるパケットの転送経路を破線で示している。また、アプリケーション部６ｂ、ＯＦＳ４、モバイル網の順に転送されるパケットの転送経路を一点鎖線で示している。また、以降の説明では、アプリケーションａ，ｂを例にして説明するが、アプリケーションの種類は２つに限定されない。
【００６３】
また、端末装置１は、複数のアクセス網に接続されている。本実施形態では、端末装置１は、モバイル網およびＷｉ−Ｆｉの２つのアクセス網に接続されているものとする。なお、モバイル網として、ＬＴＥ（Long Term Evolution ）、３Ｇ（3rd Generation）等があるが、本実施形態では、モバイル網として特定のモバイル網（例えば、ＬＴＥ）を用いる場合を例に説明する。ただし、ＬＴＥは、モバイル網の例示であり、モバイル網として３Ｇを用いてもよい。
【００６４】
図７では、図示を省略しているが、制御アプリケーション部３は、アプリケーションａ，ｂを送信元とするフローについて、モバイル網を用いることを初期設定として指示するポリシをＯＦＣ２に与えている。すなわち、最初に、制御アプリケーション部３は、検索キーとしてアプリケーションａのアプリケーションＩＤを記述し、アクションでは経路としてモバイル網を記述したポリシを、ＯＦＣ２に与えている。同様に、制御アプリケーション部３は、検索キーとしてアプリケーションｂのアプリケーションＩＤを記述し、アクションでは経路としてモバイル網を記述したポリシを、ＯＦＣ２に与えている。これらのポリシを、初期設定ポリシと記す。
【００６５】
最初にアプリケーションａを送信元とするパケットをＯＦＳ４が受信するときには、そのパケットに対応するフローエントリは存在しない。よって、ＯＦＳ４は、“Packet_in ”によってそのパケットをＯＦＣ２に送る。ＯＦＣ２は、アプリケーションａに対応する初期設定ポリシに基づき、そのパケットのフローに関して、モバイル網に対応する通信インタフェース部から送信することを規定したフローエントリを作成する。このとき、ＯＦＣ２内のフロー管理部２４（図３参照）は、そのフローエントリに関する情報として、図４に示すように、ポリシＩＤを含む情報を保持する。そして、ＯＦＣ２は、そのフローエントリをＯＦＳ４に設定する。
【００６６】
この結果、ＯＦＳ４は、アプリケーションａを送信元とするパケットを受信した場合、モバイル網に対応する通信インタフェース部からそのパケットを送信する（図７の上段に示す破線を参照）。
【００６７】
同様に、最初にアプリケーションｂを送信元とするパケットをＯＦＳ４が受信するときには、そのパケットに対応するフローエントリは存在しない。よって、ＯＦＳ４は、“Packet_in ”によってそのパケットをＯＦＣ２に送る。ＯＦＣ２は、アプリケーションｂに対応する初期設定ポリシに基づき、そのパケットのフローに関して、モバイル網に対応する通信インタフェース部から送信することを規定したフローエントリを作成する。フロー管理部２４（図３参照）は、そのフローエントリに関する情報として、図４に示すように、ポリシＩＤを含む情報を保持する。そして、ＯＦＣ２は、そのフローエントリをＯＦＳ４に設定する。
【００６８】
この結果、ＯＦＳ４は、アプリケーションｂを送信元とするパケットを受信した場合、モバイル網に対応する通信インタフェース部からそのパケットを送信する（図７の上段に示す一点鎖線を参照）。
【００６９】
ＯＦＳ４は、フローエントリ設定後、フローエントリ毎に統計情報を保持する。ここでは、ＯＦＳ４が、統計情報として、少なくとも、通信量の情報を保持するものとする。通信量の情報は、例えば、バイト数で表されていてもよく、あるいは、パケット数で表されていてもよい。ＯＦＳ４は、通信量以外の情報も統計情報に含めてもよい。ＯＦＳ４は、フローエントリに合致するパケットの通信を行う毎に、通信量を累積し、その通信量の情報を含む統計情報を保持する。
【００７０】
ＯＦＣ２は、例えば、定期的に、各フローの統計情報をＯＦＳ４に要求し、ＯＦＳ４から統計情報を取得する（ステップＳ１，Ｓ２等）。
【００７１】
ＯＦＣ２内のフロー管理部２４（図３参照）は、各フローの統計情報を取得すると、フロー毎に以下の処理を行う。フロー管理部２４は、フローエントリに対応するポリシＩＤ（図４参照）を特定する。そして、フロー管理部２４は、そのポリシＩＤに対応するポリシにおいて検索キーとして記述されているアプリケーションＩＤを、ポリシ管理部２２内のポリシ検索部２２３に問い合わせる。また、フロー管理部２４は、フローの識別情報に基づいて、統計情報が、どのアクセス網における統計情報であるのかを判定する。そして、フロー管理部２４は、アプリケーションＩＤおよびアクセス網に対応付けて統計情報を統計情報管理部２３（図３参照）に記憶させる。
【００７２】
そして、制御アプリケーション部３は、上記のようにＯＦＣ２内の統計情報管理部２３に保持された統計情報を収集する（ステップＳ３）。制御アプリケーション部３は、アプリケーション毎に、指定した各アクセス網での統計情報をＯＦＣ２に要求し、アプリケーション毎の各アクセス網での統計情報を収集する。本例では、制御アプリケーション部３は、アプリケーション毎にＷｉ−Ｆｉおよびモバイル網を指定し、Ｗｉ−Ｆｉおよびモバイル網の統計情報を収集するものとする。なお、図７に示す例では、“Ｃ”はモバイル網を表し、“Ｗ”はＷｉ−Ｆｉを表す。従って、図７に示す例では、制御アプリケーション部３は、アプリケーションａに関して、モバイル網での通信量が１００であり、Ｗｉ−Ｆｉでの通信量が０であるという情報（Ｃ１００，Ｗ０）をＯＦＣ２から収集する。同様に、制御アプリケーション部３は、アプリケーションｂに関して、モバイル網での通信量が１０であり、Ｗｉ−Ｆｉでの通信量が０であるという情報（Ｃ１０，Ｗ０）をＯＦＣ２から収集する。
【００７３】
制御アプリケーション部３は、ステップＳ３で収集した統計情報に基づいて、モバイル網での通信量の総和を計算し、その総和が閾値以上になっているか否かを判定する。閾値は予め定められている。
【００７４】
モバイル網での通信量の総和が閾値未満である場合、制御アプリケーション部３は、新たなポリシの追加を行わない。
【００７５】
一方、モバイル網での通信量の総和が閾値以上である場合、制御アプリケーション部３は、ＯＦＣ２に対して新たなポリシの追加を指示する。図７に示す例では、モバイル網での通信量の総和は、１００＋１０＝１１０である。この値が閾値以上であるものとして、説明する。制御アプリケーション部３は、モバイル網で通信を行っているアプリケーションのうち、モバイル網での通信量が最大であるアプリケーションを特定する。図７に示す例では、アプリケーションａによるモバイル網での通信量は１００（Ｃ１００）である。また、アプリケーションｂによるモバイル網での通信量は１０（Ｃ１０）である。よって、制御アプリケーション部３は、アプリケーションａを特定する。そして、制御アプリケーション部３は、検索キーにおいてそのアプリケーションａのアプリケーションＩＤを記述し、アクションでは経路としてモバイル網以外（本例では、Ｗｉ−Ｆｉとする。）を記述したポリシを作成する。なお、制御アプリケーション部３は、このポリシの優先度を、初期設定ポリシの優先度よりも高く定める。そして、制御アプリケーション部３は、そのポリシの追加をＯＦＣ２に指示する（ステップＳ４）。ＯＦＣ２は、制御アプリケーション部３に従い、このポリシを保持する。
【００７６】
また、アプリケーション部６ａ，６ｂからのパケット送信が停止し、タイムアウトによって、ＯＦＳ４が各フローエントリを削除したものとする。
【００７７】
その後、アプリケーション部６ａがパケットの送信を再開し、再開後、最初のパケットをＯＦＳ４に送るとする（ステップＳ５）。このとき、ＯＦＳ４において、このパケットのフローに対応するフローエントリは削除済みになっている。そのため、ＯＦＳ４は、“Packet_in ”によってそのパケットをＯＦＣ２に送信する（ステップＳ６）。
【００７８】
ＯＦＣ２がステップＳ６で受信したパケットは、アプリケーションａを送信元としている。ＯＦＣ２は、このパケットのフロー情報に対応するポリシとして、ステップＳ４で取得したポリシを検索する。そして、ＯＦＣ２は、そのポリシに基づいてフローエントリを作成する。すなわち、ＯＦＣ２は、ステップＳ６で“Packet_in ”とともにＯＦＳ４から受信したパケットのフローに関して、Ｗｉ−Ｆｉの通信インタフェース部から送信する旨を定めたフローエントリを作成し、ＯＦＳ４に送る（ステップＳ７）。そして、ＯＦＳ４は、そのフローエントリを格納する。ステップＳ７で、ＯＦＣ２は、具体的には、“Flow_mod(Wi-Fi) ”および“Packet_out”をＯＦＳ４に送る。
【００７９】
ＯＦＳ４は、そのフローエントリに従って、アプリケーション部６ａから受信したパケットを、Ｗｉ−Ｆｉの通信インタフェース部から送信する（ステップＳ８）。
【００８０】
また、アプリケーション部６ｂもパケットの送信を再開し、再開後、最初のパケットをＯＦＳ４に送るとする（ステップＳ９）。このとき、ＯＦＳ４において、このパケットのフローに対応するフローエントリは削除済みになっている。そのため、ＯＦＳ４は、“Packet_in ”によってそのパケットをＯＦＣ２に送信する（ステップＳ１０）。
【００８１】
ＯＦＣ２がステップＳ１０で受信したパケットは、アプリケーションｂを送信元としている。ＯＦＣ２は、このパケットのフロー情報に対応するポリシとして、アプリケーションｂを検索キーとしている初期設定ポリシを検索する。そして、ＯＦＣ２は、その初期設定ポリシに基づいてフローエントリを作成する。すなわち、ＯＦＣ２は、ステップＳ１０で“Packet_in ”とともにＯＦＳ４から受信したパケットのフローに関して、モバイル網の通信インタフェース部から送信する旨を定めたフローエントリを作成し、ＯＦＳ４に送る（ステップＳ１１）。そして、ＯＦＳ４は、そのフローエントリを格納する。ステップＳ１１で、ＯＦＣ２は、具体的には、“Flow_mod(Cellular) ”および“Packet_out”をＯＦＳ４に送る。上記の“Cellular”は、モバイル網を意味する。
【００８２】
ＯＦＳ４は、そのフローエントリに従って、アプリケーション部６ｂから受信したパケットを、モバイル網の通信インタフェース部から送信する（ステップＳ１２）。
【００８３】
なお、上記の処理経過において、制御アプリケーション部３がＯＦＣ２から統計情報を収集する動作（ステップＳ３）の実行タイミングは、特に限定されない。例えば、制御アプリケーション部３は、ＯＦＣ２から統計情報を定期的に収集してもよい。
【００８４】
以上の動作により、モバイル網での通信量が多かったアプリケーションａが、Ｗｉ−Ｆｉを用いて通信を行うように切り替えられ、モバイル網の通信負荷が軽減される。
【００８５】
図８は、ＯＦＣ２の処理経過の例を示すシーケンス図である。以下、図８、図３等を参照して、図７で示した動作におけるＯＦＣ２の処理経過を説明する。
【００８６】
ＯＦＣ２内の統計情報管理部２３（図３参照）は、定期的に、ＯＦＳ４から各フローの統計情報を取得するようにフロー管理部２４に対して指示する（ステップＳ２１）。フロー管理部２４は、この指示に基づいて、ＯＦＳ４に対して“stats_request ”を送信することによって、各フローの統計情報を要求する（ステップＳ２２）。
【００８７】
ＯＦＳ４は、“stats_request ”に応じて、“stats_reply ”とともにフローの統計情報をフロー管理部２４に返す（ステップＳ２３）。個々のフローの統計情報には、ステップＳ２３の実行時までの間にＯＦＳ４で累積されたフローの通信量の情報が含まれる。
【００８８】
フロー管理部２４は、ステップＳ２３で各フローの統計情報を取得すると、フロー毎に、フローの識別情報に基づいて、統計情報がどのアクセス網における統計情報であるのかを判定する。また、フロー管理部２４は、フローエントリに対応付けて保持しているポリシＩＤ（図４参照）を特定する。そして、フロー管理部２４は、そのポリシＩＤが示すポリシにおいて検索キーとして記述されているアプリケーションＩＤをポリシ管理部２２内のポリシ検索部２２３（図５参照）に問い合わせ、ポリシ検索部２２３からアプリケーションＩＤを取得する。このとき、ポリシ検索部２２３は、ポリシＩＤによって特定されるポリシをポリシテーブル記憶部２２１から読み込み、そのポリシにおいて検索キーとして記述されているアプリケーションＩＤをフロー管理部２４に返せばよい。そして、フロー管理部２４は、フロー毎に取得した各統計情報を、アプリケーションＩＤおよびアクセス網に対応付ける。
【００８９】
そして、フロー管理部２４は、統計情報、アプリケーションＩＤおよびアクセス網の組合せの情報をそれぞれ統計情報管理部２３に送る（ステップＳ２４）。統計情報管理部２３は、この情報に基づいて、統計情報管理部２３が保持している統計情報を更新する。具体的には、統計情報管理部２３は、統計情報記憶部２３２（図６参照）において、アプリケーションＩＤおよびアクセス網に対応する統計情報を、新たに取得した統計情報で上書きする。
【００９０】
統計情報管理部２３は、ステップＳ２１の指示（フロー管理部２４に対する指示）を定期的に繰り返すので、ステップＳ２１〜Ｓ２４の一連の動作は定期的に繰り返される。図８に示す例では、ステップＳ２５〜Ｓ２８の動作は、ステップＳ２１〜Ｓ２４の動作と同様である。
【００９１】
また、ＯＦＳ４は、一定時間以上使用しないフローエントリを検出した場合、そのフローエントリを削除するとともに、そのフローエントリに対応するフローの統計情報を“Flow_removed”とともにＯＦＣ２に送る。この統計情報には、フロー消滅までの間にＯＦＳ４で累積されたフローの通信量の情報が含まれる。ＯＦＣ２において、フロー管理部２４は、“Flow_removed”とともにそのフローの統計情報を受信する（ステップＳ２９）。この場合にも、フロー管理部２４は、統計情報を、アプリケーションＩＤおよびアクセス網に対応付ける。この動作は、ステップＳ２３における統計情報取得時と同様である。そして、フロー管理部２４は、統計情報、アプリケーションＩＤおよびアクセス網の組合せの情報をそれぞれ統計情報管理部２３に送る（ステップＳ３０）。統計情報管理部２３は、この情報に基づいて、統計情報管理部２３が保持している統計情報を更新する。具体的には、統計情報管理部２３は、統計情報記憶部２３２（図６参照）において、アプリケーションＩＤおよびアクセス網に対応する統計情報を、新たに取得した統計情報で上書きする。
【００９２】
また、制御アプリケーション部３は、アプリケーション毎に、指定した各アクセス網での統計情報をＯＦＣ２に対して要求する（ステップＳ３１）。すると、ＯＦＣ２内のＡＰＩ管理部２１がその要求を受け、ＡＰＩ管理部２１が統計情報管理部２３に対して、アプリケーション毎に、制御アプリケーション部３によって指定された各アクセス網での統計情報を要求する（ステップＳ３２）。
【００９３】
すると、統計情報管理部２３は、その要求に応じて、アプリケーション毎の各アクセス網での統計情報をＡＰＩ管理部２１に返す（ステップＳ３３）。そして、ＡＰＩ管理部２１は、その統計情報を制御アプリケーション部３に送る（ステップＳ３４）。この結果、制御アプリケーション部３は、アプリケーション毎の各アクセス網での統計情報を取得する。
【００９４】
ステップＳ３１〜Ｓ３４の動作は、図７に示すステップＳ３の動作に該当する。
【００９５】
ステップＳ３４後の制御アプリケーション部３の動作は、ステップＳ３後の制御アプリケーション部３の動作と同様である。すなわち、制御アプリケーション部３は、ステップＳ３４で取得したアプリケーション毎の各アクセス網での統計情報に基づいて、モバイル網での通信量の総和を計算し、その総和が閾値以上になっているか否かを判定する。そして、モバイル網での通信量の総和が閾値未満である場合、制御アプリケーション部３は、新たなポリシの追加を行わない。また、モバイル網での通信量の総和が閾値以上である場合、制御アプリケーション部３は、ＯＦＣ２に対して新たなポリシの追加を指示する。ここでは、図７を参照して説明したように、アプリケーションａのアプリケーションＩＤを検索キーとして記述し、アクションでは経路としてＷｉ−Ｆｉを記述したポリシを追加する場合を例にして説明する。制御アプリケーション部３は、このポリシの優先度を、初期設定ポリシの優先度よりも高く設定する。制御アプリケーション部３は、このポリシを作成し、ＯＦＣ２に対して、このポリシの追加を指示する。このポリシの追加指示は、図７に示すステップＳ４に該当する。
【００９６】
ＯＦＣ２において、ＡＰＩ管理部２１が、制御アプリケーション部３からポリシの追加指示を受け、ポリシ管理部２２に対して、そのポリシの追加を指示する（ステップＳ３５）。すると、ポリシ管理部２２において、ポリシエントリ管理部２２２（図５参照。）が、そのポリシの追加指示を受け、ポリシをポリシテーブル記憶部２２１に記憶させる。
【００９７】
また、図７の説明で述べたように、タイムアウトによって、ＯＦＳ４が各フローエントリを削除したものとする。
【００９８】
ステップＳ６（図７参照）でＯＦＳ４が“Packet_in ”を送信すると、フロー管理部２４がその“Packet_in ”を受信する。この結果、フロー管理部２４は、ＯＦＳ４において対応するフローエントリが存在していなかったパケットも受信する。フロー管理部２４は、このパケットをポリシ管理部２２に送り、そのパケットに応じたポリシの検索を要求する（ステップＳ３６）。
【００９９】
ポリシ管理部２２は、ステップＳ３６で取得したパケットのフロー情報に基づいて、そのパケットに対応するアプリケーションＩＤの検索をプロトコル状態管理部２６に指示する（ステップＳ３７）。そして、ポリシ管理部２２は、検索の結果得られたアプリケーションＩＤをプロトコル状態管理部２６から取得する（ステップＳ３８）。このアプリケーションＩＤは、パケットの送信元のアプリケーションを表している。ポリシ管理部２２は、そのアプリケーションＩＤ等を用いてポリシを検索する。この結果、ステップＳ４で追加指示されたポリシが得られる。ポリシ管理部２２は、そのポリシ内でアクションとして記述された経路（本例ではＷｉ−Ｆｉ）と、そのポリシのポリシＩＤとをフロー管理部２４に送信し、フロー管理部２４に対してフローエントリの作成を指示する（ステップＳ３９）。
【０１００】
以下、ステップＳ３７〜Ｓ３９の動作を、より詳細に説明する。
ポリシ管理部２２において、ポリシ検索部２２３（図５参照）が、ステップＳ３６の要求（ポリシ問い合わせ）を受ける。すると、ポリシ検索部２２３は、ステップＳ３６で取得したパケットのフロー情報に基づいて、そのパケットに対応するアプリケーションＩＤの検索をプロトコル状態管理部２６に指示する（ステップＳ３７）。本例では、ポリシ検索部２２３は、フロー情報のうち自ポート番号をキーとして用いるものとする。
【０１０１】
既に説明したように、プロトコル状態管理部２６は、パケットのフロー情報と、そのパケットの送信元アプリケーションのアプリケーションＩＤを保持している。例えば、プロトコル状態管理部２６は、パケットに含まれる自ポート番号、プロセスＩＤ、ＵＩＤおよびアプリケーションＩＤの対応関係を保持している。プロトコル状態管理部２６は、ポリシ検索部２２３から検索指示を受けると、自ポート番号に対応するアプリケーションＩＤを検索し、ポリシ検索部２２３に通知する。この結果、ポリシ管理部２２内のポリシ検索部２２３は、パケットの送信元であるアプリケーションａのアプリケーションＩＤを取得する（ステップＳ３８）。
【０１０２】
ポリシ検索部２２３は、このアプリケーションＩＤと、ステップＳ３６で取得したパケットのフロー情報を検索キーとして、ポリシテーブル記憶部２２１に記憶されているポリシを検索する。すると、ステップＳ４で追加指示されたポリシが得られる。なお、アプリケーションａを検索キーとして含む初期設定ポリシも存在するが、ステップＳ４で追加指示されたポリシの優先度の方が高い。従って、ポリシ検索部２２３は、ステップＳ４で追加指示されたポリシを検索結果とする。
【０１０３】
ポリシ検索部２２３は、検索したポリシのアクションの選択をアクション選択部２２４に指示する。アクション選択部２２４は、この指示に応じて、ポリシ内のアクションを選択する。このポリシでは、アクセス網としてＷｉ−Ｆｉを指定するアクションが記述されている。従って、アクション選択部２２４は、そのアクション、および、そのポリシのポリシＩＤをフロー管理部２４に送信し、フロー管理部２４に対してフローエントリの作成を指示する（ステップＳ３９）。
【０１０４】
フロー管理部２４は、ステップＳ６で“Packet_in ”とともにＯＦＳ４から受信したパケットのフローに関して、Ｗｉ−Ｆｉの通信インタフェース部から送信する旨を定めたフローエントリを作成する。そして、フロー管理部２４は、ＯＦＳ４に対して、そのフローエントリの設定を指示する。この動作は、図７に示すステップＳ７に該当する。このとき、フロー管理部２４は、ＯＦＳ４に対して“Flow_mod(Wi-Fi) ”および“Packet_out”を送る。
【０１０５】
図９は、統計情報管理部２３の処理経過の例を示すシーケンス図である。図９、図６等を参照して、図８で示した動作における統計情報管理部２３の処理経過を説明する。
【０１０６】
ステップＳ２１（図８、図９参照）では、統計情報蓄積管理部２３１が、ＯＦＳ４から各フローの統計情報を取得するようにフロー管理部２４に対して指示する。フロー管理部２４は、この指示に応じて、ＯＦＳ４から各フローの統計情報を取得する。フロー管理部２４は、アプリケーションＩＤ、アクセス網、および統計情報を対応付け、その情報を統計情報管理部２３に送る（ステップＳ２４。図８、図９参照。）。統計情報蓄積管理部２３１は、その情報を取得する。
【０１０７】
図７と同様に図９においても、Ｃ”はモバイル網を表し、“Ｗ”はＷｉ−Ｆｉを表す。図９に示すステップＳ２４では、統計情報蓄積管理部２３１は、アプリケーションａおよびモバイル網（Ｃ）に対応する通信量として“５０”を取得し、アプリケーションａおよびＷｉ−Ｆｉ（Ｗ）に対応する通信量として“０”を取得する。また、統計情報蓄積管理部２３１は、アプリケーションｂおよびモバイル網（Ｃ）に対応する通信量として“３”を取得し、アプリケーションｂおよびＷｉ−Ｆｉ（Ｗ）に対応する通信量として“０”を取得する。
【０１０８】
統計情報蓄積管理部２３１は、統計情報記憶部２３２に記憶されている統計情報（具体的には通信量）を、ステップＳ２４で取得した通信量の情報で上書きする（ステップＳ５１）。例えば、統計情報蓄積管理部２３１は、アプリケーションａおよびモバイル網（Ｃ）に対応する通信量を“５０”に上書きする。
【０１０９】
統計情報管理部２３は、ステップＳ２１の指示（フロー管理部２４に対する指示）を定期的に繰り返すので、ステップＳ２１，Ｓ２４，Ｓ５１の一連の動作は定期的に繰り返される。図９に示す例では、ステップＳ２５，Ｓ２８，Ｓ５２の動作は、ステップＳ２１，Ｓ２４，Ｓ５１の動作と同様である。
【０１１０】
ただし、時間が経過していることにより、ＯＦＳ４におけるモバイル網での通信量も増える。その結果、統計情報管理部２３がステップＳ２８で取得する、モバイル網に関する通信量は増えている。図９に示すステップＳ２８では、統計情報蓄積管理部２３１は、アプリケーションａおよびモバイル網（Ｃ）に対応する通信量として“１００”を取得し、アプリケーションａおよびＷｉ−Ｆｉ（Ｗ）に対応する通信量として“０”を取得する。また、統計情報蓄積管理部２３１は、アプリケーションｂおよびモバイル網（Ｃ）に対応する通信量として“６”を取得し、アプリケーションｂおよびＷｉ−Ｆｉ（Ｗ）に対応する通信量として“０”を取得する。
【０１１１】
また、ＯＦＳ４におけるフローエントリ削除に伴ってフロー管理部２４が“Flow_removed”とともに、消滅したフローの通信量を受信した場合にも、フロー管理部２４は、アプリケーションＩＤ、アクセス網、およびその統計情報を対応付け、その情報を統計情報管理部２３に送る（ステップＳ３０。図８、図９参照。）。統計情報蓄積管理部２３１は、その情報を取得する。
【０１１２】
図９に示すステップＳ３０では、統計情報蓄積管理部２３１は、アプリケーションｂおよびモバイル網（Ｃ）に対応する通信量として“１０”を取得する。
【０１１３】
統計情報蓄積管理部２３１は、統計情報記憶部２３２に記憶されている統計情報（ここでは、通信量）を、ステップＳ３０で取得した通信量の情報で上書きする（ステップＳ５３）。本例では、統計情報蓄積管理部２３１は、アプリケーションｂおよびモバイル網（Ｃ）に対応する通信量を“１０”に上書きする。
【０１１４】
また、制御アプリケーション部３は、アプリケーション毎に、指定した各アクセス網での統計情報（具体的には通信量）をＯＦＣ２に対して要求する（図８に示すステップＳ３１参照）。すると、ＡＰＩ管理部２１がその要求を受け、ＡＰＩ管理部２１は、統計情報検索部２３３に対して、アプリケーション毎に、制御アプリケーション部３によって指定された各アクセス網での通信量を要求する（ステップＳ３２）。本例では、制御アプリケーション部３は、アプリケーションａ，ｂそれぞれに関して、Ｗｉ−Ｆｉおよびモバイル網の通信量を要求する。そして、ＡＰＩ管理部２１は、ステップＳ３２で、統計情報検索部２３３に対して、アプリケーションａ，ｂそれぞれに関して、Ｗｉ−Ｆｉおよびモバイル網の通信量を要求する。
【０１１５】
統計情報検索部２３３は、要求された各通信量を統計情報記憶部２３２に記憶されている通信量の中から検索し（ステップＳ５４）、検索した通信量を統計情報記憶部２３２から読み込む（ステップＳ５５）。本例では、統計情報検索部２３３は、アプリケーションａおよびモバイル網に対応する通信量として“１００”を読み込み、アプリケーションａおよびＷｉ−Ｆｉに対応する通信量として“０”を読み込む。また、統計情報検索部２３３は、アプリケーションｂおよびモバイル網に対応する通信量として“１０”を読み込み、アプリケーションｂおよびＷｉ−Ｆｉに対応する通信量として“０”を読み込む。
【０１１６】
統計情報検索部２３３は、ステップＳ３２に対する応答として、ステップＳ５５で読み込んだ通信量の情報をアプリケーションおよびアクセス網の情報とともにＡＰＩ管理部２１に送る。この動作は、図８に示すステップＳ３３に該当する。そして、ＡＰＩ管理部２１は、各通信量の情報をアプリケーションおよびアクセス網の情報とともに制御アプリケーション部３に送る。
【０１１７】
本実施形態によれば、ＯＦＣ２が、ＯＦＳ４からフロー毎に統計情報を取得し、その統計情報を、フローの送信元となるアプリケーションおよびアクセス網に対応付けて保持する。そして、制御アプリケーション部３が、アプリケーション毎に、指定した各アクセス網における統計情報をＯＦＣ２に要求し、その統計情報をＯＦＣ２から取得する。従って、本例では、個々のアプリケーション毎に、各アクセス網での通信量を認識することができる。よって、個々のアプリケーション毎に、モバイル網での通信量も認識することができる。
【０１１８】
さらに、本実施形態によれば、制御アプリケーション部３は、各アプリケーションにおける統計情報（通信量）の総和を計算し、その総和が閾値以上になっているか否かを判定する。そして、その総和が閾値以上であれば、モバイル網での通信量が最大であるアプリケーションの通信に関して、Ｗｉ−Ｆｉを用いるように指示するポリシを作成し、ＯＦＣ２に与える。従って、モバイル網での通信量が最大となっているアプリケーションに関して、モバイル網を使用させないように制御することができる。その結果、モバイル網の負荷を軽減できる。
【０１１９】
また、上記の実施形態では、ＯＦＣ２は、オープンフローに従ってＯＦＳ４を制御する。従って、ＯＦＣ２はＯＦＳ４の動作を幅広く制御することができる。特に本実施形態では、制御アプリケーション部３がＯＦＣ２にポリシを与え、ＯＦＣ２はそのポリシに従って、ＯＦＳ４の動作を幅広く制御できる。
【０１２０】
また、上記の実施形態では、モバイル網として特定のモバイル網（例えば、ＬＴＥ）を用いる場合を例にした。このとき、そのモバイル網での通信量の総和が閾値以上になっていて、かつ、Ｗｉ−Ｆｉに対応する通信インタフェース部が使用できない状態であったとする。この場合、ＯＦＣ２は、そのモバイル網での通信量が最大であるアプリケーションの通信に関して、他のモバイル網（例えば、３Ｇ）を用いて通信を行うように、フローエントリを作成してもよい。例えば、アクション選択部２２４が、フロー管理部２４にフローエントリ作成を指示する場合（ステップＳ３９）、Ｗｉ−Ｆｉに対応する通信インタフェース部が使用できないという情報を得ていたとする。この場合、アクション選択部２２４は、ステップＳ３９において、Ｗｉ−Ｆｉという情報の代わりに、３Ｇという情報をフロー管理部２４に送信し、フロー管理部２４に対してフローエントリの作成を指示すればよい。また、Ｗｉ−Ｆｉが使用できない場合に、３Ｇを使用するということは、制御アプリケーション部３がステップＳ４でＯＦＣ２に与えるポリシ内で定めておけばよい。
【０１２１】
次に、本発明の主要部について説明する。図１０は、本発明の端末装置の主要部を示すブロック図である。本発明の端末装置は、通信制御手段９１と、指示情報付与手段９２とを備える。
【０１２２】
通信制御手段９１（例えば、ＯＦＣ２）は、パケットを送信するパケット転送手段（例えば、ＯＦＳ４）を制御する。
【０１２３】
指示情報付与手段９２（例えば、制御アプリケーション部３）は、通信制御手段９１に対する指示を表す指示情報（例えば、ポリシ）を通信制御手段９１に与える。
【０１２４】
通信制御手段９１は、パケット転送手段からフロー毎に、通信量を含む統計情報を取得し、当該統計情報をフローの送信元となるアプリケーションソフトウェアの情報、および通信に用いたアクセス網の情報とともに保持する。
【０１２５】
指示情報付与手段９２は、アプリケーションソフトウェア毎に、各アクセス網の統計情報を通信制御手段９１から取得する。
【０１２６】
そのような構成によって、端末装置は、個々のアプリケーションソフトウェア毎にモバイル網での通信量を認識することができる。
【０１２７】
指示情報付与手段９２が、モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットをそのモバイル網以外のアクセス網を経路として送信することを指示する指示情報を通信制御手段９１に与える構成であってもよい。
【０１２８】
指示情報付与手段９２が、モバイル網での通信量の総和が閾値以上になっている場合に、当該モバイル網での通信量が最大となっているアプリケーションソフトウェアを特定し、当該アプリケーションソフトウェアを送信元とするパケットをＷｉ−Ｆｉを経路として送信することを指示する指示情報を通信制御手段９１に与える構成であってもよい。
【０１２９】
端末装置は、複数のアクセス網に同時に接続可能であってもよい。
【０１３０】
通信制御手段９１が、オープンフローに従ってパケット転送手段を制御する構成であってもよい。
【０１３１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３２】
この出願は、２０１３年１０月１１日に出願された日本特許出願２０１３−２１４０２５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１３３】
本発明は、外部と通信可能な端末装置に好適に適用される。
【符号の説明】
【０１３４】
１  端末装置
２  ＯＦＣ（通信制御管理部）
３  制御アプリケーション部
４  ＯＦＳ（パケット転送部）
５  プロトコル処理部
６  アプリケーション部
７ａ〜７ｎ  通信インタフェース部
２１  ＡＰＩ管理部
２２  ポリシ管理部
２３  統計情報管理部
２４  フロー管理部
２５  ノード状態管理部
２６  プロトコル状態管理部
２２１  ポリシテーブル記憶部
２２２  ポリシエントリ管理部
２２３  ポリシ検索部
２２４  アクション選択部
２３１  統計情報蓄積管理部
２３２  統計情報記憶部
２３３  統計情報検索部
【図１】
2015052867.tif 000003
【図２】
2015052867.tif 000004
【図３】
2015052867.tif 000005
【図４】
2015052867.tif 000006
【図５】
2015052867.tif 000007
【図６】
2015052867.tif 000008
【図７】
2015052867.tif 000009
【図８】
2015052867.tif 000010
【図９】
2015052867.tif 000011
【図１０】
2015052867.tif 000012
【国際調査報告】
2015052867.tif 000013
2015052867.tif 000014
2015052867.tif 000015