(57)【特許請求の範囲】
【請求項１】
複数のアクセスポイントと、前記アクセスポイントが使用する周波数チャネルの割り当てを行う制御装置とを備えた無線通信システムにおいて、
前記制御装置は、
前記アクセスポイントが送信するデータのデータ転送速度から予測データ転送速度を予測する予測部と、
前記複数のアクセスポイント間の干渉関係を検出する検出部と、
前記予測データ転送速度と、前記アクセスポイント間の干渉関係とに基づいて、前記複数のアクセスポイント間の干渉データ量を算出する算出部と、
前記干渉データ量に基づいて、前記複数のアクセスポイントに対して、周波数チャネルを割り当てる割当部と、
を備えることを特徴とする無線通信システム。
【請求項２】
前記予測部は、
前記予測データ転送速度を、前記アクセスポイントのデータ転送量に基づいて予測することを特徴とする請求項１に記載の無線通信システム。
【請求項３】
前記データ転送速度は、下記式（１）により算出することを特徴とする請求項２に記載の無線通信システム。
データ転送速度ＸＮ＝（ＴＮ＋１時刻のデータ転送量−ＴＮ時刻のデータ転送量）／（ＴＮ＋１時刻−ＴＮ時刻）・・・（１）
（式中、ＸＮはＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度を表し、ＴＮ、ＴＮ＋１は時刻を表し、Ｎは１以上の整数を表す。）
【請求項４】
前記予測部は、前記予測データ転送速度を下記式（２）により予測することを特徴とする請求項１乃至３のいずれか１項に記載の無線通信システム。
データ転送速度ＸＮ＋１＝Ｗ×（ＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度）＋（１−Ｗ）×（ＴＮ−１時刻からＴＮ時刻までの間のデータ転送速度）・・・（２）
（式中、ＸＮ＋１はＴＮ＋１時刻からＴＮ＋２時刻までの間のデータ転送速度を表し、ＴＮ−１、ＴＮ、ＴＮ＋１、ＴＮ＋２は時刻を表し、Ｎは１以上の整数を表し、Ｗは０＜Ｗ＜１の範囲を表す。）
【請求項５】
前記割当部は、
前記干渉データ量が最小となるように、前記複数のアクセスポイントに対して、周波数チャネルを割り当てることを特徴とする請求項１乃至４のいずれか１項に記載の無線通信システム。
【請求項６】
前記アクセスポイントおよび前記制御装置と通信する転送装置を、さらに備え、
前記制御装置は、
前記転送装置から前記アクセスポイントのデータ転送量を周期的に取得することを特徴とする請求項１乃至５のいずれか１項に記載の無線通信システム。
【請求項７】
前記制御装置は、
前記データ転送量の送信要求を転送装置に送信し、
前記転送装置は、
前記送信要求に基づき、前記アクセスポイントのデータ転送量を前記制御装置に送信することを特徴とする請求項６に記載の無線通信システム。
【請求項８】
前記転送装置は、ＯｐｅｎＦｌｏｗ技術で用いられるＯｐｅｎＦｌｏｗスイッチであることを特徴とする請求項６または７に記載の無線通信システム。
【請求項９】
前記アクセスポイントは、
自身のＭＡＣアドレスを含んだビーコンフレームを送信すると共に他のアクセスポイントのＭＡＣアドレスを含んだビーコンフレームを受信し、自身のＭＡＣアドレスおよび他のアクセスポイントのＭＡＣアドレスを制御装置に送信することを特徴とする請求項１乃至８のいずれか１項に記載の無線通信システム。
【請求項１０】
前記検出部は、
前記自身のＭＡＣアドレスおよび他のアクセスポイントのＭＡＣアドレスに基づいて、各アクセスポイント間の干渉関係を検出することを特徴とする請求項９に記載の無線通信システム。
【請求項１１】
前記制御装置は、ＯｐｅｎＦｌｏｗ技術で用いられるＯｐｅｎＦｌｏｗコントローラであることを特徴とする請求項１乃至１０の何れか１項に記載の無線通信システム。
【請求項１２】
制御装置により複数のアクセスポイントが使用する周波数チャネルの割り当てを行う無線通信方法であって、
前記アクセスポイントが送信するデータのデータ転送速度から予測データ転送速度を予測するステップと、
前記複数のアクセスポイント間の干渉関係を検出するステップと、
前記予測データ転送速度と、前記アクセスポイント間の干渉関係とに基づいて、前記複数のアクセスポイント間の干渉データ量を算出するステップと、
前記干渉データ量に基づいて、前記複数のアクセスポイントに対して、周波数チャネルを割り当てるステップと、
を含むことを特徴とする無線通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信システムおよび無線通信方法に関する。
【背景技術】
【０００２】
現在一般的に広く利用されている無線ＬＡＮ規格であるＩＥＥＥ８０２．１１規格は高速の無線通信が可能であるが、同一周波数チャネルあたりの通信拠点数が多くなる場合には、回線が混雑して無線干渉が発生し、データ転送速度が大幅に低下する。そのため、各通信拠点に対し、数少ない周波数チャネルの中から、お互いが干渉しにくい周波数チャネルを割り当てる方法がある。
【０００３】
また、コントローラ型と呼ばれる無線ＬＡＮコントローラを利用した無線ＬＡＮ通信拠点（アクセスポイント）の管理では、無線ＬＡＮコントローラから、様々な設定を無線ＬＡＮ通信拠点に行うことで、無線ＬＡＮ通信拠点の制御を行っている。しかし、無線ＬＡＮコントローラには、拡張性がないため、機能の制限がある。
【０００４】
一方、Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ（ＳＤＮ）では、ネットワークの構成、機能、性能などをソフトウェアの操作だけで動的に設定、変更でき、ＳＤＮを実現する技術としてＯｐｅｎＦｌｏｗ技術がある。ＯｐｅｎＦｌｏｗ技術を採用したネットワークは、ＯｐｅｎＦｌｏｗコントローラとＯｐｅｎＦｌｏｗスイッチから構成される。ＯｐｅｎＦｌｏｗコントローラはネットワーク中に１個存在し、複数のＯｐｅｎＦｌｏｗスイッチを管理・制御する。つまり、ＯｐｅｎＦｌｏｗ技術は、通信ネットワークを構成するネットワーク機器を１つの制御装置（ＯｐｅｎＦｌｏｗコントローラ）で集中管理し、複雑な転送制御を行ったり、柔軟にネットワーク構成を変更したりできる技術である。
【０００５】
特許文献１には、有線ネットワーク区間と無線アクセス区間の仮想ネットワークの統合制御を行うことによって、同じ無線インタフェースや無線システムで提供されるサービスあっても、異なるサービスやアプリケーションに対しては異なる優先度を与えた接続性や継続性によってサービスを提供することが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、ＯｐｅｎＦｌｏｗ無線通信ネットワークにおいて、無線に関する制御がないので、アクセスポイントの数が多い場合に、各アクセスポイントに対し、お互いが干渉しにくい周波数チャネルを割り当てる無線チャネル割当方法が適用できないため、回線混雑を回避することができずに無線通信性能が劣化する、という問題がある。
【０００７】
また、ＳＤＮの代表技術としてのＯｐｅｎＦｌｏｗ技術は、各通信拠点（アクセスポイント）の干渉関係を把握することができず、かつ直接各通信拠点のデータ転送速度を検知できないため、無線チャネル割当を制御することができない、という問題がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、無線通信性能の劣化を防止することができる無線通信システムおよび無線通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明に係る無線通信システムは、複数のアクセスポイントと、前記アクセスポイントが使用する周波数チャネルの割り当てを行う制御装置とを備えた無線通信システムにおいて、前記制御装置は、前記アクセスポイントが送信するデータのデータ転送速度から予測データ転送速度を予測する予測部と、前記複数のアクセスポイント間の干渉関係を検出する検出部と、前記予測データ転送速度と、前記アクセスポイント間の干渉関係とに基づいて、前記複数のアクセスポイント間の干渉データ量を算出する算出部と、前記干渉データ量に基づいて、前記複数のアクセスポイントに対して、周波数チャネルを割り当てる割当部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、無線通信性能の劣化を防止することができる、という有利な効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。
【図２】図２は、ＯｐｅｎＦｌｏｗコントローラ、Ｇａｔｅｗａｙ、ＯｐｅｎＦｌｏｗスイッチ、アクセスポイント及び無線端末の機能構成の一例を示すブロック図である。
【図３】図３は、ＯｐｅｎＦｌｏｗスイッチのフローエントリーの一例について説明する図である。
【図４】図４は、無線通信システムの基本的な処理動作の一例を示すフローチャート図である。
【図５】図５は、ＵＤＰプロトコルの基本フレームフォーマットの一例について説明する図である。
【図６】図６は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【図７】図７は、各アクセスポイントの接続関係の一例について説明する図である。
【図８】図８は、各ＯｐｅｎＦｌｏｗスイッチの各ポートのデータ転送量を算出した結果の一例を示す図である。
【図９】図９は、各アクセスポイントのデータ転送速度を算出した結果の一例を示す図である。
【図１０】図１０は、各アクセスポイントが次回に送信するデータのデータ転送速度を予測した一例を示す図である。
【図１１】図１１は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。
【図１２】図１２は、ＯｐｅｎＦｌｏｗコントローラの処理動作の一例を示すフローチャート図である。
【図１３】図１３は、アクセスポイントの処理動作の一例を示すフローチャート図である。
【図１４】図１４は、第２の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。
【図１５】図１５は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【図１６】図１６は、各アクセスポイントが次回に送信するデータのデータ転送速度を予測した一例を示す図である。
【図１７】図１７は、更新した後の各アクセスポイントが次回に送信するデータのデータ転送速度を予測した一例を示す図である。
【図１８】図１８は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。
【図１９】図１９は、第４の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。
【図２０】図２０は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【図２１】図２１は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。
【図２２】図２２は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。
【図２３】図２３は、ＯｐｅｎＦｌｏｗの制御部と転送部について説明する図である。
【図２４】図２４は、ＯｐｅｎＦｌｏｗのヘッダフィールドについて説明する図である。
【図２５】図２５は、ＯｐｅｎＦｌｏｗのアクションについて説明する図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら、本発明に係る無線通信システムおよび無線通信方法の一実施形態を詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。また、各実施形態は、内容を矛盾させない範囲で、適宜組み合わせることができる。
【００１３】
本実施形態に係る無線通信システムは、複数のアクセスポイントと、前記アクセスポイントが使用する周波数チャネルの割り当てを行う制御装置とを備えた無線通信システムにおいて、制御装置は、アクセスポイントが送信するデータのデータ転送速度を予測する。また、制御装置は、複数のアクセスポイント間の干渉関係を検出する。次に、制御装置は、予測したデータ転送速度と、アクセスポイント間の干渉関係とに基づいて、複数のアクセスポイント間の干渉データ量を算出する。そして、制御装置は、干渉データ量に基づいて、複数のアクセスポイントに対して、周波数チャネルを割り当てる。これにより、無線通信ネットワークにおいて、最適な無線チャネルを割り当てることにより無線通信性能の劣化を防止することができる。
【００１４】
本実施形態に係る無線通信システムは、制御装置と、複数の転送装置と、複数のアクセスポイントとで主要に構成され、各アクセスポイントに対して最適な周波数チャネルを割り当てることができる無線通信システムである。
【００１５】
まず、図２３〜図２５を用いて、本実施形態に係るＯｐｅｎＦｌｏｗ技術について説明する。図２３は、ＯｐｅｎＦｌｏｗの制御部と転送部について説明する図である。
【００１６】
図２３に示すように、ＯｐｅｎＦｌｏｗでは、これまで１つのネットワーク装置の内部に存在していた経路制御の機能（Ｃｏｎｔｒｏｌ  Ｐｌａｎｅ）とデータ転送の機能（Ｄａｔａ  Ｐｌａｎｅ）とを、それぞれ別の装置に分離し、ＯｐｅｎＦｌｏｗコントローラと呼ばれる制御装置が複数の転送装置（ＯｐｅｎＦｌｏｗスイッチ）の動作を一括して管理する。ネットワーク管理者は各スイッチの動作を記述した「フローテーブル」（ｆｌｏｗ  ｔａｂｌｅ）を作成し、ＯｐｅｎＦｌｏｗコントローラがこれをＯｐｅｎＦｌｏｗプロトコルによって送信し、各ＯｐｅｎＦｌｏｗスイッチはフローテーブルに基づいてデータの転送や破棄、宛先の書き換えなどを実行する。フローテーブルに記述する条件として利用できる情報には、ＯｐｅｎＦｌｏｗスイッチの物理ポートの番号や送信元／宛先ＭＡＣアドレス、ＶＬＡＮ  ＩＤ、ＭＰＬＳラベル、送信元／宛先ＩＰアドレス、ＴＣＰ／ＵＤＰのポート番号などがあり、レイヤ１（物理層）からレイヤ４（トランスポート層）まで幅広く対応している。各レイヤの情報を組み合わせて条件を記述するといった高度な制御も可能である。
【００１７】
また、ネットワーク中の各ＯｐｅｎＦｌｏｗスイッチには、ＯｐｅｎＦｌｏｗコントローラが各ＯｐｅｎＦｌｏｗスイッチを識別するためのＤａｔａｐａｔｈ  ＩＤと呼ばれる６４ｂｉｔの識別子が割り当てられる。また、ＯｐｅｎＦｌｏｗスイッチは、条件（ヘッダフィールド）にマッチしたパケットに対して、アクションで指定された動作を行う。ヘッダフィールド、アクションおよび統計情報の組をフローエントリーと呼ぶ。このフローエントリーは、ＯｐｅｎＦｌｏｗコントローラにより生成され、ＯｐｅｎＦｌｏｗプロトコルによって、ＯｐｅｎＦｌｏｗスイッチへと送られる。送られたフローエントリーはＯｐｅｎＦｌｏｗスイッチ中のフローテーブルに格納される。なお、フローエントリーの詳細については後述する。
【００１８】
図２４は、ＯｐｅｎＦｌｏｗのヘッダフィールドについて説明する図である。図２４に示すように、例えば、ヘッダフィールドは１２種類のフィールドで（ＯｐｅｎＦｌｏｗ  Ｖ１．０の場合）、受信したパケットを識別するための条件として用いられる。フロー識別に使用しないフィールドにはワイルドカードを指定することで、任意のフィールドのみを条件として用いることができる。例えば、「受信ポート番号が１であり、且つ宛先ＭＡＣアドレスがＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ」や「ＩＰパケットであり、その送信元ＩＰアドレスが１９２．１６８．１．１」である、などといった条件を指定することができる。図２４の例では、フィールドは、Ｉｎｇｒｅｓｓ  ｐｏｒｔ（受信ポート）、Ｅｔｈｅｒｎｅｔ（登録商標）  ｓｒｃ  ａｄｄｅｓｓ（送信元ＭＡＣアドレス）、Ｅｔｈｅｒｎｅｔ  ｄｓｔ  ａｄｄｅｓｓ（宛先ＭＡＣアドレス）、Ｅｔｈｅｒｎｅｔ  ｔｙｐｅ（プロトコル種別）、ＶＬＡＮ  ｉｄ（ＶＬＡＮ  ＩＤ）、ＶＬＡＮ  ｐｒｉｏｒｉｔｙ（ＶＬＡＮ  ＰＣＰ値）、ＩＰ  ｓｒｃ  ａｄｄｒｅｓｓ（ＩＰ送信元アドレス）、ＩＰ  ｄｓｔ  ａｄｄｒｅｓｓ（ＩＰ宛先アドレス）、ＩＰ  ｐｒｏｔｏｃｏｌ  ｎｕｍｂｅｒ（プロトコル番号）、ＩＰ  ＴｏＳ  ｂｉｔｓ（ＴｏＳ値）、Ｔｒａｎｓｐｏｒｔ  ｓｒｃ  ｐｏｒｔ（送信元ポート番号）、Ｔｒａｎｓｐｏｒｔ  ｄｓｔ  ｐｏｒｔ（宛先ポート番号）の１２種類が例示されている。
【００１９】
図２５は、ＯｐｅｎＦｌｏｗのアクションについて説明する図である。図２５に示すように、アクションは、ヘッダフィールドにマッチしたパケットの処理を指定するものである。図２５の例は、仕様で規定されているアクションであり、例えば、１つのフローに対して、複数のアクションを指定することも可能である。例えば、「宛先ＩＰアドレスを書き換えた上での指定のポートからの出力」や、「指定のポートから出力させた後、さらに別のポートからも出力」といった動作を指定できる。また、図２５の例では、Ｆｏｒｗａｒｄ（パケットを転送する）、Ｅｎｑｕｅｕｅ（指定のキューに入れる）、Ｄｒｏｐ（パケットを破棄する）、Ｍｏｄｉｆｙ−Ｆｉｅｌｄ（指定のフィールドを書き換える）の４種類が例示されている。Ｆｏｒｗａｒｄアクションには、出力先のポート番号が指定される。また、ＯｐｅｎＦｌｏｗスイッチが実際に持つポートの他に、特殊な用途に用いるための論理ポートが定義されている。Ｍｏｄｉｆｙ−Ｆｉｅｌｄアクションでは、フィールドの書き換えが定義されている。ルータ機能を実現する際に必要となるＭＡＣアドレスの書き換えや、ＮＡＴ機能を実現する際のＩＰアドレス、ＴＣＰ／ＵＤＰポート番号の書き換えなどを行うことができる。
【００２０】
図２３で示したように、ＯｐｅｎＦｌｏｗスイッチは、ＯｐｅｎＦｌｏｗコントローラから制御されている。ＯｐｅｎＦｌｏｗコントローラとＯｐｅｎＦｌｏｗスイッチとの間は、ＴＣＰまたはＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）を用いて接続されている。ＯｐｅｎＦｌｏｗコントローラとＯｐｅｎＦｌｏｗスイッチ間の接続のために、別途レガシーネットワークを用意して、その上でＴＣＰ／ＴＬＳコネクションを張る構成が一般的である。どちらからコネクションの開設を行うかは仕様中に規定されていないが、現状ではスイッチ側から行う実装が一般的である。このＴＣＰ／ＴＬＳコネクションを用いて、ＯｐｅｎＦｌｏｗコントローラとＯｐｅｎＦｌｏｗスイッチ間の通信に用いられるのがＯｐｅｎＦｌｏｗプロトコルである。ＯｐｅｎＦｌｏｗプロトコルには、ＯｐｅｎＦｌｏｗメッセージが定義されている。
【００２１】
本実施形態において使用するＯｐｅｎＦｌｏｗメッセージとしては、例えば、以下を例示することができる。
【００２２】
（Ｐａｃｋｅｔ  Ｉｎメッセージ）
フローテーブル中にマッチするフローがなかった場合、受信パケットをＯｐｅｎＦｌｏｗコントローラへと送るために用いられる。このメッセージで送られるパケットを元にフローを作成するなど、ＯｐｅｎＦｌｏｗ特有の処理を実現するために欠かせないメッセージである。
【００２３】
（Ｐａｃｋｅｔ  Ｏｕｔメッセージ）
Ｐａｃｋｅｔ  ＩｎでＯｐｅｎＦｌｏｗコントローラに送られてきたパケットを本来の宛先に送るために、ＯｐｅｎＦｌｏｗスイッチ側へと送り返す際に用いられる。また、ＯｐｅｎＦｌｏｗコントローラが独自に作ったパケットを出力させる際にも用いられる。
【００２４】
（Ｆｌｏｗ  Ｍｏｄメッセージ）
ＯｐｅｎＦｌｏｗコントローラが作ったフローをＯｐｅｎＦｌｏｗスイッチへと送るために用いられる。その際に、フローを設定してから一定時間後に消すためのハードタイムアウトと、フローが参照されない時間が一定時間経過した後に消すためのアイドルタイムアウトの、２種類のタイムアウト値を設定できる。
【００２５】
（Ｓｔａｔｓ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙメッセージ）
統計情報を取得するために用いられる。ＯｐｅｎＦｌｏｗコントローラから統計情報を取得するＳｔａｔｓ  Ｒｅｑｕｅｓｔメッセージを要求し、ＯｐｅｎＦｌｏｗスイッチはＳｔａｔｓ  Ｒｅｑｕｅｓｔメッセージに対する応答であるＳｔａｔｓ  Ｒｅｐｌｙメッセージを送信する。具体的には、ＯｐｅｎＦｌｏｗコントローラから各アクセスポイントのデータ転送量の送信要求（Ｓｔａｔｓ  Ｒｅｑｕｅｓｔ）をＯｐｅｎＦｌｏｗスイッチに送信し、ＯｐｅｎＦｌｏｗスイッチからＳｔａｔｓ  Ｒｅｑｕｅｓｔメッセージに対する応答であるＳｔａｔｓ  Ｒｅｐｌｙメッセージを受信して、受信したＳｔａｔｓ  Ｒｅｐｌｙメッセージを解析し、各アクセスポイントのデータ転送量を取得する。
【００２６】
本実施形態では、以上で説明したようなＯｐｅｎＦｌｏｗメッセージを例示することができる。
【００２７】
（第１の実施形態）
次に、図１を用いて、第１の実施形態に係る無線通信システム１の全体システム構成例について説明する。図１は、第１の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。
【００２８】
図１に示すように、無線通信システム１は、ＯｐｅｎＦｌｏｗコントローラ（制御装置）１０と、Ｇａｔｅｗａｙ２０と、複数のＯｐｅｎＦｌｏｗスイッチ（転送装置）３０ａ、３０ｂと、複数のアクセスポイント４０Ａ〜４０Ｄと、複数の無線端末（無線通信端末、例えば、スマートフォン、タブレットＰＣなど）５０ａ〜５０ｆと、無線通信エリア６０ａ〜６０ｄと、通信網（インターネット網）７０とを備える。以下、ＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂを区別する必要がない場合には、ＯｐｅｎＦｌｏｗスイッチ３０と表記する。また、アクセスポイント４０Ａ〜４０Ｄを区別する必要がない場合には、アクセスポイント４０と表記する。また、無線端末５０ａ〜５０ｆを区別する必要がない場合には、無線端末５０と表記する。また、無線通信エリア６０ａ〜６０ｄを区別する必要がない場合には、無線通信エリア６０と表記する。なお「アクセスポイント」は、例えば、無線ＬＡＮアクセスポイント（ｗｉｒｅｌｅｓｓ  ＬＡＮ  ａｃｃｅｓｓ  ｐｏｉｎｔ）を示し、以下、「アクセスポイント」を「ＡＰ」とも表記する。また、制御装置は、ＯｐｅｎＦｌｏｗ技術で用いられるＯｐｅｎＦｌｏｗコントローラであり、転送装置は、ＯｐｅｎＦｌｏｗ技術で用いられるＯｐｅｎＦｌｏｗスイッチである。なお、「ＯｐｅｎＦｌｏｗコントローラ」は請求項に記載の「制御装置」に対応し、「ＯｐｅｎＦｌｏｗスイッチ」は請求項に記載の「転送装置」に対応する。
【００２９】
図１に示すアクセスポイント４０Ａ〜４０Ｄは、複数の周波数チャネルが使用可能である。アクセスポイント４０Ａ〜４０Ｄの無線通信エリア６０ａ〜６０ｄ内には、アクセスポイント４０と接続する無線端末５０が存在する。例えば、アクセスポイント４０Ａに対して、無線端末５０ａが存在し、アクセスポイント４０Ｂに対して、複数の無線端末５０ｂ、５０ｃが存在し、アクセスポイント４０Ｃに対して、複数の無線端末５０ｄ、５０ｅが存在し、アクセスポイント４０Ｄに対して、無線端末５０ｆが存在している。複数の無線端末５０は、例えば、無線ＬＡＮ規格、ＩＥＥＥ８０２．１１．ｇによりアクセスポイント４０と接続し、ＯｐｅｎＦｌｏｗスイッチ３０及びＧａｔｅｗａｙ２０を介して、例えば、通信網（インターネット網）７０を経由して各種の通信を行う。
【００３０】
図１の例において、ＯｐｅｎＦｌｏｗコントローラ１０は、ＧａｔｅＷａｙ２０を介してＯｐｅｎＦｌｏｗスイッチ３０と接続され、ＩＰアドレスが１９２．１６８．１．２であることを示している。また、ＧａｔｅＷａｙ２０は、ＩＰアドレスが１９２．１６８．１．１であることを示している。また、ＯｐｅｎＦｌｏｗスイッチ３０ａは、ＩＰアドレスが１９２．１６８．１．３であり、アクセスポイント４０Ａとポート２により接続され、アクセスポイント４０Ｂとポート４により接続されていることを示している。
【００３１】
また、アクセスポイント４０Ａは、ＩＰアドレスが１９２．１６８．１．５であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１０であり、隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１、及び隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２であることを示している。なお、図１において、「隣のＡＰ」を「隣ＡＰ」と表記しているが、両方とも同義である。以下、同様である。
【００３２】
また、アクセスポイント４０Ｂは、ＩＰアドレスが１９２．１６８．１．７であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１２であり、隣のＡＰ４０ＡのＭＡＣアドレスが００−０１−０２−０３−０４−１０、及び隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１であることを示している。
【００３３】
また、ＯｐｅｎＦｌｏｗスイッチ３０ｂは、ＩＰアドレスが１９２．１６８．１．４であり、アクセスポイント４０Ｃとポート３により接続され、アクセスポイント４０Ｄとポート５により接続されていることを示している。
【００３４】
また、アクセスポイント４０Ｃは、ＩＰアドレスが１９２．１６８．１．６であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１１であり、隣のＡＰ４０ＡのＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２、及び隣のＡＰ４０ＤのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。
【００３５】
また、アクセスポイント４０Ｄは、ＩＰアドレスが１９２．１６８．１．８であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１３であり、隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１であることを示している。
【００３６】
なお、図１の例において、隣のＡＰ（隣ＡＰ）とは、アクセスポイント（ＡＰ）４０の無線通信エリア６０が重複しているＡＰのことを示す。例えば、アクセスポイント４０Ａでは、アクセスポイント４０Ｂ、４０Ｃと無線通信エリア６０が重複している。また、アクセスポイント４０Ｂでは、アクセスポイント４０Ａ、４０Ｃと無線通信エリア６０が重複している。また、アクセスポイント４０Ｃでは、アクセスポイント４０Ａ、４０Ｂ、４０Ｄと無線通信エリア６０が重複している。また、アクセスポイント４０Ｄでは、アクセスポイント４０Ｃと無線通信エリア６０が重複している。
【００３７】
なお、図１では、ＯｐｅｎＦｌｏｗコントローラ１０と接続されるＯｐｅｎＦｌｏｗスイッチ３０の台数が２台である場合を例示しているが、これに限らず、ＯｐｅｎＦｌｏｗスイッチ３０の台数は任意である。また、ＯｐｅｎＦｌｏｗスイッチ３０と接続されるアクセスポイント４０の台数が２台である場合を例示しているが、これに限らず、アクセスポイント４０の台数は任意である。また、アクセスポイント４０と接続される無線端末５０の台数が１〜２台である場合を例示しているが、これに限らず、無線端末５０の台数は任意である。
【００３８】
次に、図２を用いて、ＯｐｅｎＦｌｏｗコントローラ１０、Ｇａｔｅｗａｙ２０、ＯｐｅｎＦｌｏｗスイッチ３０、アクセスポイント４０及び無線端末５０の機能について説明する。図２は、ＯｐｅｎＦｌｏｗコントローラ、Ｇａｔｅｗａｙ、ＯｐｅｎＦｌｏｗスイッチ、アクセスポイント及び無線端末の機能構成の一例を示すブロック図である。
【００３９】
まず、ＯｐｅｎＦｌｏｗコントローラ１０の機能構成の一例について説明する。図２に示すように、ＯｐｅｎＦｌｏｗコントローラ１０は、Ｉ／Ｆ部１０１と、通信部１０２と、記憶部１０３と、検出部１０４と、解析判断部１０５と、算出部１０６と、予測部１０７と、割当部１０８と、制御部１０９とを有する。上記各部については、これらの一部又は全部がソフトウェア（プログラム）であってもよいし、ハードウェア回路であってもよい。また、上記各部のうちの一部がＯｐｅｎＦｌｏｗコントローラ（制御装置）１０に搭載される形態であってもよい。
【００４０】
Ｉ／Ｆ部１０１は、外部装置等と通信するためのインタフェースである。Ｉ／Ｆ部１０１は、例えば、Ｇａｔｅｗａｙ２０を介してＯｐｅｎＦｌｏｗスイッチ３０と接続する。また、Ｉ／Ｆ部１０１は、Ｇａｔｅｗａｙ２０及びＯｐｅｎＦｌｏｗスイッチ３０を介して各アクセスポイント４０と接続する。
【００４１】
通信部１０２は、制御部１０９の制御の下、複数のＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂ及び複数のアクセスポイント４０Ａ〜４０Ｄと通信し、例えば、複数のアクセスポイント４０Ａ〜４０Ｄから接続リクエストを受信し、接続リクエストに対する応答を送信する。具体的には、通信部１０２は、各アクセスポイント４０から接続リクエストを受信した後に、例えば、接続リクエストに対して応答する場合には、ＵＤＰプロトコルを用いて「接続」を各アクセスポイント４０に対して応答し、全てのアクセスポイント４０と接続する。すなわち、接続レスポンスをＵＤＰメッセージ部として送信し、各アクセスポイント４０と接続する。
【００４２】
また、通信部１０２は、各アクセスポイント４０からＵＤＰプロトコルを用いて、自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスを受信する。すなわち、通信部１０２は、各アクセスポイント４０から自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスをＵＤＰメッセージ部として受信する。
【００４３】
また、通信部１０２は、制御部１０９の制御の下、ＵＤＰプロトコルを用いて、Ｆｌｏｗ  Ｍｏｄメッセージを用いて、ＯｐｅｎＦｌｏｗスイッチ３０にフローエントリーを送信する。
【００４４】
また、通信部１０２は、制御部１０９の制御の下、「ｐｉｎｇコマンド」を各アクセスポイントに送信し、各アクセスポイントが実施したＯｐｅｎＦｌｏｗコントローラ１０との間の「ｐｉｎｇ」動作の実施結果である「ｐｉｎｇパケット」を受信する。すなわち、通信部１０２は、「ｐｉｎｇコマンド」をＵＤＰメッセージ部として各アクセスポイント４０から受信する。
【００４５】
また、通信部１０２は、ＯｐｅｎＦｌｏｗスイッチ３０からＰａｃｋｅｔ  Ｉｎメッセージを用いて、ｐｉｎｇパケットの内容を受信する。
【００４６】
また、通信部１０２は、制御部１０９の制御の下、周期的に、Ｓｔａｔｓ  ＲｅｑｕｅｓｔメッセージをＯｐｅｎＦｌｏｗスイッチ３０に送信し、ＯｐｅｎＦｌｏｗスイッチ３０からＳｔａｔｓ  Ｒｅｐｌｙメッセージを受信する。具体的には、通信部１０２は、周期的に各アクセスポイント４０のデータ転送量の送信要求をＯｐｅｎＦｌｏｗスイッチ３０に送信し、ＯｐｅｎＦｌｏｗスイッチ３０から送信要求の応答である各アクセスポイントのデータ転送量を受信する。
【００４７】
また、通信部１０２は、制御部１０９の制御の下、後述する割当部１０８が各アクセスポイント４０に対して割り当てた周波数チャネルを各アクセスポイント４０に送信する。すなわち、ＵＤＰプロトコルを用いて、各アクセスポイント４０に周波数チャネル割当結果を送信して、最適な周波数チャネルの割り当てを指定する。
【００４８】
記憶部１０３は、制御部１０９の制御の下、各種の情報を記憶する。記憶部１０３は、例えば、自身のＩＰアドレス、ＭＡＣアドレスなどを記憶する。
【００４９】
また、記憶部１０３は、制御部１０９の制御の下、通信部１０２で受け付けた各アクセスポイント４０のＩＰアドレス、ＭＡＣアドレス、隣のアクセスポイント４０のＭＡＣアドレスなどを記憶する。
【００５０】
また、記憶部１０３は、解析判断部１０５で解析して取得した各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量（各アクセスポイント４０のデータ転送量）を記憶する。
【００５１】
また、記憶部１０３は、後述する予測部１０７が予測した各アクセスポイント４０が送信するデータのデータ転送速度を記憶する。また、記憶部１０３は、後述する算出部１０６が算出した複数のアクセスポイント４０間の干渉データ量を記憶する。
【００５２】
検出部１０４は、複数のアクセスポイント４０間の干渉関係を検出する。具体的には、検出部１０４は、自らのＭＡＣアドレスおよび他のアクセスポイントのＭＡＣアドレスに基づいて、各アクセスポイント４０間の干渉関係を検出する。すなわち、検出部１０４は、例えば、各アクセスポイント４０の間に干渉関係があるか否かを検出する。検出部１０４は、干渉関係の検出結果を記憶部１０３、解析判断部１０５に受け渡す。なお、干渉関係の検出方法については後述する。
【００５３】
解析判断部１０５は、ＯｐｅｎＦｌｏｗスイッチ３０を介して各アクセスポイント４０から受信したＰａｃｋｅｔ  Ｉｎメッセージを解析し、各アクセスポイントのＩＰアドレス、各アクセスポイント４０のＭＡＣアドレス及びＯｐｅｎＦｌｏｗスイッチ３０の接続ポートを抽出（後述する図７参照）し、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０の接続関係を判断する。解析判断部１０５は、判断した各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０の接続関係を算出部１０６に受け渡す。
【００５４】
また、解析判断部１０５は、検出部１０４で検出した各アクセスポイント４０間の干渉関係に基づいて、各アクセスポイント４０間で干渉関係が発生する虞があるか否かを判断する。具体的には、解析判断部１０５は、検出部１０４が各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出した結果である、後述する図６を参照して、各アクセスポイント４０間で干渉関係が発生する虞があるか否かを判断する。
【００５５】
また、解析判断部１０５は、ＯｐｅｎＦｌｏｗスイッチ３０から各アクセスポイント４０のデータ転送量を周期的に取得する。具体的には、解析判断部１０５は、ＯｐｅｎＦｌｏｗスイッチ３０からＳｔａｔｓ  Ｒｅｑｕｅｓｔメッセージに対する応答であるＳｔａｔｓ  Ｒｅｐｌｙメッセージを受信して、受信したＳｔａｔｓ  Ｒｅｐｌｙメッセージを解析し、各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量（各アクセスポイント４０のデータ転送量）を取得する。解析判断部１０５は、取得した各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量を記憶部１０３、算出部１０６に受け渡す。
【００５６】
算出部１０６は、予測したデータ転送速度と、アクセスポイント４０間の干渉関係とに基づいて、複数のアクセスポイント４０間の干渉データ量を算出する。
【００５７】
算出部１０６は、各アクセスポイント４０が送信するデータのデータ転送速度を下記式（１）により算出する。
【００５８】
データ転送速度ＸＮ＝ＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度＝（ＴＮ＋１時刻のデータ転送量−ＴＮ時刻のデータ転送量）／（ＴＮ＋１時刻−ＴＮ時刻）・・・（１）
（式中、ＸＮはＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度を表し、ＴＮ、ＴＮ＋１は時刻を表し、Ｎは１以上の整数を表す。）
【００５９】
なお上記式（１）のＴＮ、及びＴＮ＋１は、例えば、差が一定期間となるように定められる。すなわち、具体的には、ＴＮ、及びＴＮ＋１は、例えば、１００秒ごとに（ＴＮ＋１−ＴＮ＝１００）定められる。
【００６０】
また、算出部１０６は、後述する予測部１０７が予測した各アクセスポイント４０が送信するデータのデータ転送速度（予測したデータ転送速度）と、検出部１０４が検出した各アクセスポイント４０間の干渉関係とに基づいて、複数のアクセスポイント４０間の干渉データ量（Ｓｕｍ値）を算出する。すなわち、算出部１０６は、後述するように、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、Ｓｕｍ値を算出する。Ｓｕｍ値は、ＯｐｅｎＦｌｏｗ無線通信ネットワークの中で、干渉関係が発生する場合には、干渉関係が発生する全てのアクセスポイント４０間の予測したデータ転送速度の和を示すものである。具体的には、Ｓｕｍ値は、図１に示した干渉関係おいて、例えば、以下のように算出される。
【００６１】
Ｓｕｍ値＝（アクセスポイント４０Ａの予測したデータ転送速度＋アクセスポイント４０Ｂの予測したデータ転送速度）＋（アクセスポイント４０Ａの予測したデータ転送速度＋アクセスポイント４０Ｃの予測したデータ転送速度）＋（アクセスポイント４０Ｂの予測したデータ転送速度＋アクセスポイント４０Ｃの予測したデータ転送速度）＋（アクセスポイント４０Ｃの予測したデータ転送速度＋アクセスポイント４０Ｄの予測したデータ転送速度）
【００６２】
そして、算出部１０６は、算出した干渉データ量（Ｓｕｍ値）を割当部１０８に受け渡す。
【００６３】
予測部１０７は、アクセスポイント４０が送信するデータのデータ転送速度を予測する。また、予測部１０７は、データ転送速度を、アクセスポイント４０のデータ転送量に基づいて予測する。
【００６４】
また、予測部１０７は、下記式（２）により、アクセスポイント４０が送信するデータのデータ転送速度を予測データ転送速度として予測する。
【００６５】
データ転送速度ＸＮ＋１＝Ｗ×（ＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度）＋（１−Ｗ）×（ＴＮ−１時刻からＴＮ時刻までの間のデータ転送速度）・・・（２）
（式中、ＸＮ＋１はＴＮ＋１時刻からＴＮ＋２時刻までの間のデータ転送速度を表し、ＴＮ−１、ＴＮ、ＴＮ＋１、ＴＮ＋２は時刻を表し、Ｎは１以上の整数を表し、Ｗは０＜Ｗ＜１の範囲を表す。）
【００６６】
なお上記式（２）のＴＮ−１、ＴＮ、ＴＮ＋１、及びＴＮ＋２は、例えば、差が一定期間となるように定められる。すなわち、具体的には、ＴＮ、及びＴＮ＋１は、例えば、１００秒ごとに（ＴＮ＋２−ＴＮ＋１＝ＴＮ＋１−ＴＮ＝ＴＮ−ＴＮ−１＝１００）定められる。
【００６７】
割当部１０８は、各アクセスポイント４０が電波干渉を起こさないように、算出部１０６で算出した干渉データ量（Ｓｕｍ値）に基づいて、複数のアクセスポイント４０に対して、周波数チャネルを割り当てる。すなわち、割当部１０８は、干渉データ量（Ｓｕｍ値）が最小となるように、複数のアクセスポイント４０に対して、周波数チャネルを割り当てる。
【００６８】
割当部１０８は、予測した各アクセスポイント４０のデータのデータ転送速度と、各アクセスポイント４０の間の干渉関係に基づいて、ＵＤＰプロトコルを用いて、電波干渉を防ぐため、例えば、ＩＥＥＥ８０２．１１．ｇの場合は、周波数チャネルを５チャネル以上の間隔をあけて、各アクセスポイントに対して、例えば、１ｃｈ／６ｃｈ／１１ｃｈの内の１つの周波数チャネルを割り当てる。なお、周波数チャネルを割り当てる間隔は、例えば、（１ｃｈ／７ｃｈ／１２ｃｈ）、（１ｃｈ／８ｃｈ／１３ｃｈ）、（２ｃｈ／７ｃｈ／１２ｃｈ）、（３ｃｈ／８ｃｈ／１３ｃｈ）などでもよい。
【００６９】
また、割当部１０８は、干渉データ量（Ｓｕｍ値）が最小となるように全てのアクセスポイント４０に周波数チャネルを割り当てる。
【００７０】
制御部１０９は、ＯｐｅｎＦｌｏｗコントローラ１０の全体を制御する。また、制御部１０９は、上記の各機能部の処理を統括的に制御する。
【００７１】
次に、Ｇａｔｅｗａｙ２０の機能の一例について説明する。まず、Ｇａｔｅｗａｙ２０は、ネットワーク上で、媒体やプロトコルが異なるデータを相互に変換して通信を可能にする機器である。Ｇａｔｅｗａｙ２０は、例えば、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルの全階層を認識し、通信媒体や伝送方式の違いを吸収して異機種間の接続を可能とする機能を有する。また、Ｇａｔｅｗａｙ２０は、例えば、ウィルスチェック処理を行う機能を有することもできる。Ｇａｔｅｗａｙ２０がウィルスチェック処理機能を有することで、例えば、各通信端末側でウィルスのパターンファイルを管理する必要がない。
【００７２】
次に、ＯｐｅｎＦｌｏｗスイッチ３０の機能構成の一例について説明する。図２に示すように、ＯｐｅｎＦｌｏｗスイッチ３０は、Ｉ／Ｆ部３０１と、通信部３０２と、記憶部３０３と、取得部３０４と、制御部３０５とを有する。上記各部については、これらの一部又は全部がソフトウェア（プログラム）であってもよいし、ハードウェア回路であってもよい。また、上記各部のうちの一部がＯｐｅｎＦｌｏｗスイッチ（転送装置）３０に搭載される形態であってもよい。
【００７３】
Ｉ／Ｆ部３０１は、外部装置等と通信するためのインタフェースである。Ｉ／Ｆ部３０１は、例えば、Ｇａｔｅｗａｙ２０を介してＯｐｅｎＦｌｏｗコントローラ１０と接続する。また、Ｉ／Ｆ部３０１は、アクセスポイント４０と接続する。
【００７４】
通信部３０２は、制御部３０５の制御の下、ＯｐｅｎＦｌｏｗコントローラ１０及び複数のアクセスポイント４０Ａ〜４０Ｄと通信する。
【００７５】
通信部３０２は、ＯｐｅｎＦｌｏｗコントローラ１０からＦｌｏｗ  Ｍｏｄメッセージを用いて、フローエントリーを受信し、記憶部３０３に受け渡す。
【００７６】
また、通信部３０２は、例えば、各アクセスポイント４０から、「ｐｉｎｇパケット」を受信し、ＯｐｅｎＦｌｏｗコントローラ１０に送信する。すなわち、通信部３０２は、制御部３０５の制御の下、記憶部３０３に記憶されているフローテーブル中のフローエントリーに基づいて、Ｐａｃｋｅｔ  Ｉｎメッセージを用いて、ｐｉｎｇパケットの内容をＯｐｅｎＦｌｏｗコントローラ１０に送信する。
【００７７】
また、通信部３０２は、ＯｐｅｎＦｌｏｗコントローラ１０から周期的に、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔメッセージを受信する。そして、通信部３０２は、制御部３０５の下、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔメッセージを受信すると、Ｓｔａｔｓ  ＲｅｐｌｙメッセージをＯｐｅｎＦｌｏｗコントローラ１０に返信する。つまり、通信部３０２は、制御部３０５の制御の下、ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量をＰａｃｋｅｔ  Ｉｎメッセージを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に送信する。
【００７８】
また、通信部３０２は、ＯｐｅｎＦｌｏｗコントローラ１０からの送信要求に基づき、各アクセスポイント４０のデータ転送量を周期的にＯｐｅｎＦｌｏｗコントローラ１０に対して送信する。
【００７９】
記憶部３０３は、各種の情報を記憶する。記憶部３０３は、例えば、自身のＩＰアドレスなどを記憶する。記憶部３０３は、例えば、フローエントリーを記憶する。このフローエントリーは、ＯｐｅｎＦｌｏｗコントローラ１０により生成され、ＯｐｅｎＦｌｏｗプロトコルを使って、ＯｐｅｎＦｌｏｗスイッチ３０へと送信されるものである。すなわち、ＯｐｅｎＦｌｏｗコントローラ１０は、Ｆｌｏｗ  Ｍｏｄメッセージを用いて、フローエントリーをＯｐｅｎＦｌｏｗスイッチ３０に対して送信し、ＯｐｅｎＦｌｏｗスイッチ３０は通信部３０２を介して受け付けたフローエントリーを記憶部３０３に記憶する。
【００８０】
なお、記憶部３０３は、新たにフローエントリーを受け付けた場合、既に記憶部３０３に記憶されているフローエントリーに追加、更新する。
【００８１】
ここで、図３を用いて、フローエントリーについて説明する。図３は、ＯｐｅｎＦｌｏｗスイッチのフローエントリーの一例について説明する図である。図３に示すように、フローエントリーは、ヘッダフィールド（マッチ条件）、アクションおよび統計情報の組を示す情報である。
【００８２】
ヘッダフィールド（マッチ条件）は、受信したパケットを識別するための条件として用いられる。
【００８３】
アクションは、ヘッダフィールドにマッチしたパケットの処理を指定する。例えば、１つのフローに対して、複数のアクションを指定することも可能である。例えば、「宛先ＩＰアドレスを書き換えた上での指定のポートからの出力」や、「指定のポートから出力させた後、さらに別のポートからも出力」といった動作を指定できる。
【００８４】
統計情報は、「同じフローエントリーに従って流れるフレームが、無線ネットワーク内にどのくらいあるか」が書き込まれている。例えば、無線ネットワーク上に流れる同種のフレームの数、その合計トラフィック量が何バイトあるかなどの情報である。よって、本実施形態では、フローエントリーの情報を用いて、容易にトラフィック量を検出することが可能である。
【００８５】
なお、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ：ネットワーク管理プロトコル）は、ＳＮＭＰパケットの漏えいを防ぐセキュリティメカニズムがないため（例えば、ＳＮＭＰｖ１及びＳＮＭＰｖ２ｃの場合）、本実施形態のように、キュアチャネル（ＯｐｅｎＦｌｏｗスイッチ３０−ＯｐｅｎＦｌｏｗコントローラ１０間の通信インタフェース）を用いて、フローエントリーの情報を転送するほうが安全性を高くできる。
【００８６】
また、ＳＮＭＰの場合には、エージェントのＩＰアドレスと、ＳＮＭＰマネージャのＩＰアドレスとを一致させるように事前に設定する必要がある。そのため、本実施形態のように、エージェントのＩＰアドレスと、ＳＮＭＰマネージャのＩＰアドレスとを一致させるように事前に設定しないほうが手間をかける必要がない。
【００８７】
図３の例では、ヘッダフィールド（マッチ条件）は、Ｅｔｈｅｒｎｅｔ  ｓｒｃ  ａｄｄｒｅｓｓ（送信元ＭＡＣアドレス）が００−０１−０２−０３−０４−１０であり、Ｅｔｈｅｒｎｅｔ  ｄｓｔ  ａｄｄｒｅｓｓ（宛先ＭＡＣアドレス）が００−０１−０２−０３−０４−２０であり、ＩＰ  ｓｒｃ  ａｄｄｒｅｓｓｓ（ＩＰ送信元アドレス）が１９２．１６８．１．５であり、ＩＰ  ｄｓｔ  ａｄｄｒｅｓｓｓ（ＩＰ宛先アドレス）が１９２．１６８．１．２であり、Ｅｔｈｅｒｎｅｔ  ｔｙｐｅ（プロトコル種別）がＵＤＰであることを示している。また、アクションは、Ｃｏｎｔｒｏｌｌｅｒ（Ｐａｃｋｅｔ  Ｉｎとして、コントローラへと送信）であることを示している。なお、統計情報の記載については省略する。
【００８８】
図２に戻って説明する。取得部３０４は、アクセスポイント４０のデータ転送量を周期的に取得し、通信部３０２を介して取得したデータ転送量を周期的にＯｐｅｎＦｌｏｗコントローラ１０に対して送信する。具体的には、取得部３０４は、ＯｐｅｎＦｌｏｗコントローラ１０から周期的に、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔメッセージを受信し、制御部３０５の下、各ポートのデータ転送量（各アクセスポイント４０のデータ転送量）を取得する。そして、取得部３０４は、制御部３０５の下、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔメッセージに対する応答であるＳｔａｔｓ  ＲｅｐｌｙメッセージをＯｐｅｎＦｌｏｗコントローラ１０に返信する。なお、Ｓｔａｔｓ  ＲｅｐｌｙメッセージにはＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量の情報が含まれている。
【００８９】
制御部３０５は、ＯｐｅｎＦｌｏｗスイッチ３０の全体を制御する。また、制御部３０５は、上記の各機能部の処理を統括的に制御する。
【００９０】
次に、アクセスポイント４０Ａ、４０Ｂの機能構成の一例について説明する。図２に示すように、アクセスポイント４０Ａ、４０Ｂは、Ｉ／Ｆ部４０１ａ、ｂと、通信部４０２ａ、ｂと、記憶部４０３ａ、ｂと、設定部４０４ａ、ｂと、制御部４０５ａ、ｂとを有する。上記各部については、これらの一部又は全部がソフトウェア（プログラム）であってもよいし、ハードウェア回路であってもよい。また、上記各部のうちの一部がアクセスポイント４０に搭載される形態であってもよい。以下では、アクセスポイント４０Ａ、４０Ｂの機能構成は同様であるため、アクセスポイント４０Ａ、４０Ｂを区別せずに、アクセスポイント４０と表記し、各機能部を、Ｉ／Ｆ部４０１、通信部４０２、記憶部４０３、設定部４０４、制御部４０５と表記する。
【００９１】
Ｉ／Ｆ部４０１は、外部装置等と通信するためのインタフェースである。Ｉ／Ｆ部４０１は、例えば、ＯｐｅｎＦｌｏｗスイッチ３０と接続する。また、Ｉ／Ｆ部４０１は、例えば、ＯｐｅｎＦｌｏｗスイッチ３０及びＧａｔｅＷａｙ２０を介してＯｐｅｎＦｌｏｗコントローラ１０と接続する。具体的には、Ｉ／Ｆ部４０１は、制御部４０５の制御の下、ＵＤＰプロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いてＯｐｅｎＦｌｏｗコントローラ１０のＩＰアドレスを取得し、取得したＩＰアドレスを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信し、ＯｐｅｎＦｌｏｗコントローラ１０と接続する。
【００９２】
通信部４０２は、無線通信エリア６０内にある複数の無線端末５０と、例えば、無線ＬＡＮにより接続し、各種の通信を行う。具体的には、通信部４０２は、複数の無線端末５０との間でデータの送受信を行う。
【００９３】
また、通信部４０２は、ＯｐｅｎＦｌｏｗコントローラ１０及びＯｐｅｎＦｌｏｗスイッチ３０と通信する。通信部４０２は、制御部４０５の制御の下、例えば、ＯｐｅｎＦｌｏｗコントローラ１０からＵＤＰプロトコルを用いて、「ｐｉｎｇコマンド」を受信し、ＯｐｅｎＦｌｏｗコントローラ１０との「ｐｉｎｇ」動作を実施した結果である「ｐｉｎｇパケット」をＯｐｅｎＦｌｏｗスイッチ３０に対して送信する。
【００９４】
また、通信部４０２は、制御部４０５の制御の下、例えば、ＯｐｅｎＦｌｏｗコントローラ１０のＩＰアドレスを用いてＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信する。すなわち、通信部４０２は、ＵＤＰプロトコルを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信する。そして、通信部４０２は、接続リクエストに対する応答である、ＵＤＰプロトコルを用いた「接続」を受信し、Ｉ／Ｆ部４０１を介してＯｐｅｎＦｌｏｗコントローラ１０と接続する。つまり、通信部４０２は、制御部４０５の制御の下、例えば、ＵＤＰメッセージ部を利用し、ＯｐｅｎＦｌｏｗコントローラとの間で必要な情報を送受信する。
【００９５】
また、通信部４０２は、制御部４０５の制御の下、周期的に自身のＭＡＣアドレスを含んだビーコンフレームを送信すると共に、他のアクセスポイントのＭＡＣアドレスを含んだビーコンフレームを受信し、自身のＭＡＣアドレスおよび他のアクセスポイントのＭＡＣアドレスをＯｐｅｎＦｌｏｗコントローラ１０に送信する。具体的には、通信部４０２は、制御部４０５の制御の下、周期的にｂｅａｃｏｎフレームを送信し、他のアクセスポイント４０からのｂｅａｃｏｎフレームを受信する。なお、ビーコン信号には、アクセスポイント（無線ＬＡＮアクセスポイント）のＥＳＳＩＤ（Ｅｘｔｅｎｄｅｄ  Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）やＭＡＣアドレス、電界強度などの情報が含まれている。このようにして取得したＭＡＣアドレスを、通信部４０２は、制御部４０５の制御の下、ＵＤＰプロトコルを用いて、自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスをＯｐｅｎＦｌｏｗコントローラ１０に送信する。
【００９６】
また、通信部４０２は、制御部４０５の制御の下、ＯｐｅｎＦｌｏｗコントローラ１０から最適な周波数チャネルの割り当てを指定した周波数チャネル割当結果を受信する。
【００９７】
記憶部４０３は、各種の情報を記憶する。記憶部４０３は、例えば、自身のＩＰアドレス、ＭＡＣアドレスなどを記憶する。
【００９８】
また、記憶部４０３は、隣のアクセスポイント（ＡＰ）４０のＭＡＣアドレスなどを記憶する。具体的には、記憶部４０３は、例えば、他のアクセスポイント４０のＭＡＣアドレスを含んだｂｅａｃｏｎ（ビーコン）フレームを通信部４０２を介して受信した場合には、送信元のアクセスポイント４０を隣のアクセスポイント４０と判断し、隣のアクセスポイントのＭＡＣアドレスとして記憶する。
【００９９】
また、記憶部４０３は、通信部４０２を介して、ＯｐｅｎＦｌｏｗコントローラ１０から受信した、最適な周波数チャネルの割り当てを指定した周波数チャネル割当結果を記憶する。
【０１００】
設定部４０４は、ＯｐｅｎＦｌｏｗコントローラ１０にて割り当てられた周波数チャネルの割当結果を通信部４０２を介して受け付けて、自信の周波数チャネルを指定された周波数チャネルに設定する。
【０１０１】
制御部４０５は、アクセスポイント４０の全体を制御する。また、制御部４０５は、上記の各機能部の処理を統括的に制御する。
【０１０２】
次に、無線端末５０ａ、５０ｂの機能構成の一例について説明する。図２に示すように、無線端末５０ａ、５０ｂは、通信部５０１ａ、５０１ｂと、制御部５０２ａ、５０２ｂとを有する。上記各部については、これらの一部又は全部がソフトウェア（プログラム）であってもよいし、ハードウェア回路であってもよい。また、上記各部のうちの一部が無線端末５０に搭載される形態であってもよい。以下では、無線端末５０ａ、５０ｂの機能構成は同様であるため、無線端末５０ａ、５０ｂを区別せずに、無線端末５０と表記し、各機能部を、通信部５０１、制御部５０２と表記する。
【０１０３】
通信部５０１は、アクセスポイント４０と通信する。通信部５０１は、様々な無線通信規格に対応可能である。通信部５０１は、アクセスポイント４０と、例えば、無線ＬＡＮ規格、ＩＥＥＥ８０２．１１．ｇにより接続し、各種の通信を行う。また、通信部５０１は、アクセスポイント４０と接続し、ＯｐｅｎＦｌｏｗスイッチ３０及びＧａｔｅｗａｙ２０を介して、例えば、通信網（インターネット網）７０を経由して各種の通信を行う。
【０１０４】
制御部５０２は、無線端末５０の全体を制御する。また、制御部５０２は、上記の各機能部の処理を統括的に制御する。
【０１０５】
なお、上記で説明したＯｐｅｎＦｌｏｗコントローラ１０及びＯｐｅｎＦｌｏｗスイッチ３０の各機能構成については、無線端末５０が担うようにしてもよいし、無線端末５０に各機能部が搭載される形態であってもよい。
【０１０６】
次に、図４を用いて、無線通信システム１の処理動作について説明する。図４は、無線通信システムの基本的な処理動作の一例を示すフローチャート図である。以下、各ステップについて説明する。
【０１０７】
［ステップＳ１］
まず、本実施形態の無線通信システム１の起動に際し、ＯｐｅｎＦｌｏｗプロトコルをサポートしたＯｐｅｎＦｌｏｗコントローラ１０、ＯｐｅｎＦｌｏｗスイッチ３０の起動処理を行う（ステップＳ１）。そして、全てのＯｐｅｎＦｌｏｗスイッチ３０と、ＯｐｅｎＦｌｏｗコントローラ１０との接続処理を完了する。
【０１０８】
［ステップＳ２］
次に、各アクセスポイント４０は、ＯｐｅｎＦｌｏｗスイッチ３０とそれぞれＩ／Ｆ部４０１、３０１とを介して接続する（ステップＳ２）。この際、静的ＩＰ（インターネット・プロトコル）アドレス或は、ＤＨＣＰ（動的ホスト構成プロトコル）により割り当てられたＩＰアドレスを用いて、ＯｐｅｎＦｌｏｗ無線通信ネットワークに加入する。すなわち、各アクセスポイント４０は、ＵＤＰプロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いてＩＰアドレスを取得し、ＯｐｅｎＦｌｏｗコントローラ１０と接続する。
【０１０９】
具体的には、各アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０のＩＰアドレスを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０から接続リクエストを受信した後に、受信した接続リクエストに応答するか否かを判断する。ＯｐｅｎＦｌｏｗコントローラ１０は、接続リクエストに対して応答する場合には、ＯｐｅｎＦｌｏｗコントローラ１０は「接続」を各アクセスポイント４０に対して応答し、各アクセスポイント４０と接続する。ＯｐｅｎＦｌｏｗコントローラ１０は、接続リクエストに対して応答しない場合には、ＯｐｅｎＦｌｏｗコントローラ１０は「拒否」を各アクセスポイント４０に対して応答し、各アクセスポイント４０と接続しない。
【０１１０】
さらに具体的には、ＯｐｅｎＦｌｏｗコントローラ１０と全てのＯｐｅｎＦｌｏｗスイッチ３０が起動された後、例えば、図１に示すように、アクセスポイント４０Ａは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２と接続し、アクセスポイント４０Ｂは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４と接続する。また、アクセスポイント４０Ｃは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３と接続し、アクセスポイント４０Ｄは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５と接続する。その後、各アクセスポイント４０は、アクセスポイント４０ＡのＩＰアドレス（１９２．１６８．１．５）、アクセスポイント４０ＢのＩＰアドレス（１９２．１６８．１．７）、アクセスポイント４０ＣのＩＰアドレス（１９２．１６８．１．６）、アクセスポイント４０ＤのＩＰアドレス（１９２．１６８．１．８）と、図１の例のように、ＩＰアドレスを割り当て、ＯｐｅｎＦｌｏｗ無線通信ネットワークに加入する。
【０１１１】
次に、各アクセスポイント４０は、ＵＤＰプロトコルを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信する。すなわち、後述の図５に示す接続リクエストをＵＤＰメッセージ部として送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０から接続リクエストを受信した後に、例えば、接続リクエストに対して応答する場合には、ＵＤＰプロトコルを用いて「接続」を各アクセスポイント４０に対して応答し、全てのアクセスポイント４０と接続する。すなわち、後述の図５に示す接続レスポンスをＵＤＰメッセージ部として送信する。この処理動作により、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０と接続する。
【０１１２】
本実施形態においては、各アクセスポイント４０とＯｐｅｎＦｌｏｗコントローラ１０との通信は、ＵＤＰプロトコルを用いて送受信することが１つの特徴である。なお、ＵＤＰプロトコルとは、ＩＰプロトコルをコンテナとして運ばれる上位層プロトコルでＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）の第４層のトランスポート層に相当する機能を持っている。２つの装置間の論理的な通信を実行する機能を持っているが、通信手順は単純になっていて相手をアドレスで特定して単純に送受信するだけになっている。つまり、相手との間の論理的な通信路を確立する手順を必要としないので、複雑な手順が無く、単純な送受信となっている。その代わり、誤りチェックや再送手順が無いので、高信頼な通信が必要な場合には、アプリケーション側でそれを組み込む必要がある。
【０１１３】
ここで、図５を用いて、ＵＤＰプロトコルの基本フレームフォーマットについて説明する。図５は、ＵＤＰプロトコルの基本フレームフォーマットの一例を説明する図である。
【０１１４】
図５に示すように、ＵＤＰプロトコルの基本フレームフォーマットは、イーサネット（登録商標）ヘッダ部（１４バイト）、ＩＰヘッダ部（２０バイト）、ＵＤＰヘッダ部（８バイト）、ＵＤＰメッセージ部（サイズはデータによって異なる）から構成される。実際のＵＤＰ部は比較的単純な構造となっている。これがＵＤＰプロトコルの特徴であり、セッションを張る手順が無いので送る相手を特定して単純に送受信するだけになっている。ＵＤＰ部分のデータの信頼性確保のためにＵＤＰ部分にチェックサムが設けられているが、全体の信頼性をチェックするため、チェックサム用だけの仮想的なヘッダを考慮してチェックサムを計算する。このチェックサムのために、間違った相手との通信をする確率を減らすことができる。
【０１１５】
ここで、ＵＤＰヘッダ部の各フィールドについて説明する。発信元ポート番号は、ＵＤＰの送信側のポート番号である。宛先ポート番号は、受信側のポート番号である。ＵＤＰデータ長は、ＵＤＰヘッダ部とＵＤＰデータ部の合計バイト数である。チェックサムは、仮想ヘッダとＵＤＰヘッダ、データ部を含めたチェックサムの計算範囲で計算したチェックサムである。但し、ＩＰプロトコル区分の前は００Ｈの固定である。データは、ＵＤＰで送受信されるデータ部そのもので、任意のデータとすることが可能である。このようにして指定したポートとの間で、データ部が転送されることになるが、データ部の内容については全くの自由なので、ポート毎に通信する相手同士で内容の取り決めをすれば自由に使うことができる。これを使って組み込みシステムなどの制御をインターネット経由で実現することが可能になる。
【０１１６】
また、ＵＤＰメッセージ部のサイズはデータによって異なるため、データサイズは０バイト長から任意の長さである。本実施形態でのＵＤＰメッセージ部の使用例としては、例えば、接続リクエスト、接続レスポンス、拒否レスポンス、自身のＭＡＣアドレスおよび隣のＡＰのＭＡＣアドレス、ｐｉｎｇコマンド、周波数の指定チャネル番号などに使用する。
【０１１７】
［ステップＳ３］
図４に戻って説明を続ける。各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０とが接続した後、各アクセスポイント４０は、周期的にｂｅａｃｏｎフレームを送信し、他のアクセスポイントからのｂｅａｃｏｎフレームを受信する。なお、ビーコン信号には、アクセスポイント（無線ＬＡＮアクセスポイント）４０のＥＳＳＩＤ（Ｅｘｔｅｎｄｅｄ  Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）やＭＡＣアドレス、電界強度などの情報が含まれている。各アクセスポイント４０は、他のアクセスポイント４０からのｂｅａｃｏｎフレームを受信する場合には、送信元のアクセスポイント４０を隣のアクセスポイント４０として判断し、隣のアクセスポイント４０のＭＡＣアドレスを記憶する。そして、各アクセスポイント４０は、ＵＤＰプロトコルを用いて、自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスをＯｐｅｎＦｌｏｗコントローラ１０に送信する。すなわち、図５で説明したように、自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスをＵＤＰメッセージ部としてＯｐｅｎＦｌｏｗコントローラ１０に対して送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスおよび隣のアクセスポイント４０のＭＡＣアドレスに基づいて、各アクセスポイント４０間の干渉関係を検出する（ステップＳ３）。
【０１１８】
ここで、図６を用いて、各アクセスポイント４０間の干渉関係の検出方法について説明する。図６は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【０１１９】
図６の例では、アクセスポイント４０Ａの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１２であることを示している。また、アクセスポイント４０Ｂの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１２、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１１であることを示している。また、アクセスポイント４０Ｃの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１１、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１２、００−０１−０２−０３−０４−１３であることを示している。また、アクセスポイント４０Ｄの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１３、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１１であることを示している。
【０１２０】
ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出する。すなわち、図６を参照して、アクセスポイント４０Ａは、アクセスポイント４０Ｂ及びアクセスポイント４０Ｃとの間に干渉関係があると検出する。アクセスポイント４０Ｂは、アクセスポイント４０Ａ及びアクセスポイント４０Ｃとの間に干渉関係があると検出する。アクセスポイント４０Ｃは、アクセスポイント４０Ａ、アクセスポイント４０Ｂ及びアクセスポイント４０Ｄとの間に干渉関係があると検出する。アクセスポイント４０Ｄは、アクセスポイント４０Ｃとの間に干渉関係があると検出する。
【０１２１】
つまり、本実施形態の無線通信システム１のＯｐｅｎＦｌｏｗ無線通信ネットワークにおいて、アクセスポイント４０Ａとアクセスポイント４０Ｂとの間で干渉が発生する虞がある。アクセスポイント４０Ａとアクセスポイント４０Ｃとの間で干渉が発生する虞がある。アクセスポイント４０Ｂとアクセスポイント４０Ｃとの間で干渉が発生する虞がある。アクセスポイント４０Ｃとアクセスポイント４０Ｄとの間で干渉が発生する虞がある。そこで、ＯｐｅｎＦｌｏｗコントローラ１０は、これらの４つの干渉関係が発生する虞があると判断する。
【０１２２】
上述したように、各アクセスポイント４０は、ＵＤＰプロトコルを用いて、自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスをＯｐｅｎＦｌｏｗコントローラ１０に送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０自身のＭＡＣアドレスおよび隣のアクセスポイント４０のＭＡＣアドレスに基づいて、各アクセスポイント４０に対して、隣のアクセスポイント４０として検出されたアクセスポイント４０との間に干渉関係があると判断する。
【０１２３】
このように、本実施形態では、各アクセスポイント（通信拠点）４０間の干渉関係を検出することが可能となる。
【０１２４】
［ステップＳ４］
図４に戻って説明を続ける。各アクセスポイント４０間の干渉関係を検出した後、ＯｐｅｎＦｌｏｗコントローラ１０は、Ｆｌｏｗ  Ｍｏｄメッセージを用いて、ＯｐｅｎＦｌｏｗスイッチ３０にフローエントリーを追加する（ステップＳ４）。
【０１２５】
［ステップＳ５］
次に、ＯｐｅｎＦｌｏｗスイッチ３０にフローエントリーを追加した後、ＯｐｅｎＦｌｏｗコントローラ１０は、ＵＤＰプロトコルを用いて、「ｐｉｎｇコマンド」を各アクセスポイント４０に要求する。すなわち、ＯｐｅｎＦｌｏｗコントローラ１０は、図５に示した「ｐｉｎｇコマンド」をＵＤＰメッセージ部として各アクセスポイント４０に対して送信する。そして、各アクセスポイント４０は、要求されたとおり、ＯｐｅｎＦｌｏｗコントローラ１０との「ｐｉｎｇ」動作を実施し、実施した結果のｐｉｎｇパケットをＯｐｅｎＦｌｏｗスイッチ３０に送信する。ＯｐｅｎＦｌｏｗスイッチ３０は、記憶部３０３に記憶されているフローテーブル中のフローエントリーに基づいて、Ｐａｃｋｅｔ  Ｉｎメッセージを用いて、ｐｉｎｇパケットの内容をＯｐｅｎＦｌｏｗコントローラ１０に送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、受信したＰａｃｋｅｔ  Ｉｎメッセージを解析し、各アクセスポイント４０のＩＰアドレス、ＭＡＣアドレス及びＯｐｅｎＦｌｏｗスイッチ３０の接続ポートを抽出し、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０との接続関係を判断する（ステップＳ５）。
【０１２６】
本実施形態においては、ＯｐｅｎＦｌｏｗコントローラ１０は、「ｐｉｎｇコマンド」を各アクセスポイント４０に要求する。そして、アクセスポイント４０Ａとアクセスポイント４０Ｂは、ｐｉｎｇパケットをＯｐｅｎＦｌｏｗスイッチ３０ａに送信し、アクセスポイント４０Ｃとアクセスポイント４０Ｄは、ｐｉｎｇパケットをＯｐｅｎＦｌｏｗスイッチ３０ｂに送信する。次に、ＯｐｅｎＦｌｏｗコントローラ１０は、ＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂから受信したＰａｃｋｅｔ  Ｉｎメッセージを解析し、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０のポート接続関係を検出し、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０との接続関係を判断する。
【０１２７】
ここで、図７を用いて、各アクセスポイント４０の接続関係について説明する。図７は、各アクセスポイントの接続関係の一例について説明する図である。
【０１２８】
図７に示したのは、ＯｐｅｎＦｌｏｗコントローラ１０が、ＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂから受信したＰａｃｋｅｔ  Ｉｎメッセージを解析した結果である。アクセスポイント４０Ａは、ＩＰアドレスが１９２．１６８．１．５であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１０であり、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２に接続していることを示している。また、アクセスポイント４０Ｂは、ＩＰアドレスが１９２．１６８．１．７であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１２であり、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４に接続していることを示している。
【０１２９】
また、アクセスポイント４０Ｃは、ＩＰアドレスが１９２．１６８．１．６であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１１であり、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３に接続していることを示している。また、アクセスポイント４０Ｄは、ＩＰアドレスが１９２．１６８．１．８であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１３であり、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５に接続していることを示している。
【０１３０】
［ステップＳ６］
図４に戻って説明を続ける。各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０との接続関係を判断した後、ＯｐｅｎＦｌｏｗコントローラ１０は、周期的に、Ｓｔａｔｓ  ＲｅｑｕｅｓｔメッセージをＯｐｅｎＦｌｏｗスイッチ３０に送信する。ＯｐｅｎＦｌｏｗスイッチ３０は、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔメッセージを受信すると、Ｓｔａｔｓ  ＲｅｐｌｙメッセージをＯｐｅｎＦｌｏｗコントローラ１０に返信する。ＯｐｅｎＦｌｏｗコントローラ１０は、受信したＳｔａｔｓ  Ｒｅｐｌｙメッセージを解析し、各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量を取得する。
【０１３１】
ここで、ＯｐｅｎＦｌｏｗコントローラ１０は、例えば、１００秒ごとに（ＴＮ＋１−ＴＮ＝１００）、Ｓｔａｔｓ  ＲｅｑｕｅｓｔメッセージをＯｐｅｎＦｌｏｗスイッチ３０に送信すると仮定する。また、ＯｐｅｎＦｌｏｗコントローラ１０では、Ｓｔａｔｓ  Ｒｅｐｌｙメッセージを解析し、各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量を取得した結果が図８に示した結果であると仮定する。
【０１３２】
図８は、各ＯｐｅｎＦｌｏｗスイッチの各ポートのデータ転送量を取得した結果の一例を示す図である。図８の例では、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２におけるＴ１時刻のデータ転送量（ｋｂ）は、アップロードで８５６２ｋｂ、ダウンロードで１０２６７ｋｂであり、Ｔ２時刻のデータ転送量（ｋｂ）は、アップロードで１０６８３ｋｂ、ダウンロードで１４７５１ｋｂであり、Ｔ３時刻のデータ転送量（ｋｂ）は、アップロードで１２４９８ｋｂ、ダウンロードで１７６２９ｋｂであることを示している。また、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４におけるＴ１時刻のデータ転送量（ｋｂ）は、アップロードで５７０３６ｋｂ、ダウンロードで２４７７６２ｋｂであり、Ｔ２時刻のデータ転送量（ｋｂ）は、アップロードで７３４９２ｋｂ、ダウンロードで２７１６４９ｋｂであり、Ｔ３時刻のデータ転送量（ｋｂ）は、アップロードで９０６２４ｋｂ、ダウンロードで３１５７２１ｋｂであることを示している。
【０１３３】
また、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３におけるＴ１時刻のデータ転送量（ｋｂ）は、アップロードで３７６１ｋｂ、ダウンロードで４６１８ｋｂであり、Ｔ２時刻のデータ転送量（ｋｂ）は、アップロードで５０２８ｋｂ、ダウンロードで６２７１ｋｂであり、Ｔ３時刻のデータ転送量（ｋｂ）は、アップロードで６５０８ｋｂ、ダウンロードで８１３５ｋｂであることを示している。また、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５におけるＴ１時刻のデータ転送量（ｋｂ）は、アップロードで６９８６５ｋｂ、ダウンロードで３０９５７８ｋｂであり、Ｔ２時刻のデータ転送量（ｋｂ）は、アップロードで８４６７１ｋｂ、ダウンロードで３５０２８１ｋｂであり、Ｔ３時刻のデータ転送量（ｋｂ）は、アップロードで１０１６８２ｋｂ、ダウンロードで４１３５７９ｋｂであることを示している。
【０１３４】
上記の図８に示した、取得した各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量と、抽出して判断した各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０とのポート接続関係を用いて、各アクセスポイント４０のデータ転送速度を上記の算出部１０６で説明したように上記式（１）を用いて算出する（ステップＳ６）。
【０１３５】
図９は、各アクセスポイントのデータ転送速度を算出した結果の一例を示す図である。図９の例では、アクセスポイント４０Ａは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２に接続されており、Ｔ１時刻からＴ２時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで２１ｋｂ／ｓ、ダウンロードで４５ｋｂ／ｓであり、Ｔ２時刻からＴ３時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１８ｋｂ／ｓ、ダウンロードで２９ｋｂ／ｓであり、データ転送量は、ダウンロードで１７６２９ｋｂであることを示している。
【０１３６】
また、アクセスポイント４０Ｂは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４に接続されており、Ｔ１時刻からＴ２時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１６５ｋｂ／ｓ、ダウンロードで２３９ｋｂ／ｓであり、Ｔ２時刻からＴ３時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１７１ｋｂ／ｓ、ダウンロードで４４１ｋｂ／ｓであり、データ転送量は、ダウンロードで３１５７２１ｋｂであることを示している。
【０１３７】
また、アクセスポイント４０ＣはＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３に接続されており、Ｔ１時刻からＴ２時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１３ｋｂ／ｓ、ダウンロードで１７ｋｂ／ｓであり、Ｔ２時刻からＴ３時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１５ｋｂ／ｓ、ダウンロードで１９ｋｂ／ｓであり、データ転送量は、ダウンロードで８１３５ｋｂであることを示している。
【０１３８】
また、アクセスポイント４０ＤはＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５に接続されており、Ｔ１時刻からＴ２時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１４８ｋｂ／ｓ、ダウンロードで４０７ｋｂ／ｓであり、Ｔ２時刻からＴ３時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１７０ｋｂ／ｓ、ダウンロードで６３３ｋｂ／ｓであり、データ転送量は、ダウンロードで４１３５７９ｋｂであることを示している。
【０１３９】
［ステップＳ７］
図４に戻って説明を続ける。各アクセスポイント４０のデータ転送速度を算出した後、ＯｐｅｎＦｌｏｗコントローラ１０は、算出された各アクセスポイント４０のデータ転送速度に基づいて、各アクセスポイント４０が次回に送信するデータのデータ転送速度を上記の予測部１０７で説明したように上記式（２）を用いて予測する（ステップＳ７）。なお、本実施形態では、上記式（２）中のＷは、０．８としてデータのデータ転送速度を予測した。すなわち、図９の結果と下記式（３）を用いて、データのデータ転送速度を予測した。
【０１４０】
データ転送速度ＸＮ＋１＝ＴＮ＋１時刻からＴＮ＋２時刻までの間のデータ転送速度＝０．８×（ＴＮ時刻からＴＮ＋１時刻までの間のデータ転送速度）＋（１−０．８）×（ＴＮ−１時刻からＴＮ時刻までの間のデータ転送速度）・・・（３）
【０１４１】
図１０は、各アクセスポイントが次回に送信するデータのデータ転送速度を予測した一例を示す図である。図１０の例では、アクセスポイント４０Ａは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１９ｋｂ／ｓ、ダウンロードで３２ｋｂ／ｓであることを示している。
【０１４２】
また、アクセスポイント４０Ｂは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１７０ｋｂ／ｓ、ダウンロードで４００ｋｂ／ｓであることを示している。
【０１４３】
また、アクセスポイント４０Ｃは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１４ｋｂ／ｓ、ダウンロードで１８ｋｂ／ｓであることを示している。
【０１４４】
また、アクセスポイント４０Ｄは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１６５ｋｂ／ｓ、ダウンロードで５８８ｋｂ／ｓであることを示している。
【０１４５】
このように、本実施形態では、各アクセスポイント（通信拠点）が次回に送信するデータのデータ転送速度を予測することが可能となる。
【０１４６】
［ステップＳ８］
図４に戻って説明を続ける。各アクセスポイント４０のデータのデータ転送速度を予測した後、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０に対して最適な周波数チャネルを割り当てる（ステップＳ８）。
【０１４７】
ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０が電波干渉を起こさないように、例えば、ＩＥＥＥ８０２．１１．ｇの場合は、周波数チャネルを５チャネル以上の間隔をあける必要がある。本実施形態においては、例えば、電波干渉を防ぐため、各アクセスポイント４０には、１ｃｈ／６ｃｈ／１１ｃｈの中の１つを割り当てると仮定する。ＯｐｅｎＦｌｏｗコントローラ１０は、予測した各アクセスポイント４０のデータのデータ転送速度と、各アクセスポイント４０の間の干渉関係に基づいて、ＵＤＰプロトコルを用いて、各アクセスポイントに対して１ｃｈ／６ｃｈ／１１ｃｈの内の１つの周波数チャネルを割り当てる。すなわち、図５を用いて説明したように、「指定チャネル番号」をＵＤＰメッセージ部として送信する。なお、周波数チャネルを割り当てる間隔は、例えば、（１ｃｈ／７ｃｈ／１２ｃｈ）、（１ｃｈ／８ｃｈ／１３ｃｈ）、（２ｃｈ／７ｃｈ／１２ｃｈ）、（３ｃｈ／８ｃｈ／１３ｃｈ）などでもよい。
【０１４８】
ここで、各アクセスポイント４０に対して最適な周波数チャネルを割り当てる方法について説明する。図６を用いて説明したように、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出する。その結果、アクセスポイント４０Ａとアクセスポイント４０Ｂとの間で干渉が発生する虞がある。アクセスポイント４０Ａとアクセスポイント４０Ｃとの間で干渉が発生する虞がある。アクセスポイント４０Ｂとアクセスポイント４０Ｃとの間で干渉が発生する虞がある。アクセスポイント４０Ｃとアクセスポイント４０Ｄとの間で干渉が発生する虞がある。このように、４つの干渉関係が発生する虞があると検出した。
【０１４９】
本実施形態のＯｐｅｎＦｌｏｗコントローラ１０は、上記の４つの干渉関係が発生する虞があると判断した上で、全てのアクセスポイント４０のチャネル割当の組合せごとに、ＯｐｅｎＦｌｏｗ無線通信ネットワークの「Ｓｕｍ」を、以下のように算出する。なお、Ｓｕｍとは、各アクセスポイント４０間で干渉関係が発生する時の予測したデータ転送速度を示し、以下では、「Ｓｕｍ値（干渉データ量）」と表記する。
【０１５０】
具体的には、例えば、アクセスポイント４０Ａは１ｃｈに割り当て、アクセスポイント４０Ｂは１ｃｈに割り当て、アクセスポイント４０Ｃは１ｃｈに割り当て、アクセスポイント４０Ｄは１ｃｈに割り当てるとした場合には、上記の４つの干渉関係が発生すると仮定する。この場合、上記の図１０に示した予測したデータ転送速度を用いて、Ｓｕｍ値（干渉データ量）は以下のように算出される。
【０１５１】
Ｓｕｍ値＝（アクセスポイント４０Ａの予測したデータ転送速度＋アクセスポイント４０Ｂの予測したデータ転送速度）＋（アクセスポイント４０Ａの予測したデータ転送速度＋アクセスポイント４０Ｃの予測したデータ転送速度）＋（アクセスポイント４０Ｂの予測したデータ転送速度＋アクセスポイント４０Ｃの予測したデータ転送速度）＋（アクセスポイント４０Ｃの予測したデータ転送速度＋アクセスポイント４０Ｄの予測したデータ転送速度）
【０１５２】
Ｓｕｍ値＝（１９＋３２＋１７０＋４００）＋（１９＋３２＋１４＋１８）＋（１７０＋４００＋１４＋１８）＋（１４＋１８＋１６５＋５８８）＝２０９１
【０１５３】
また、例えば、アクセスポイント４０Ａは１ｃｈに割り当て、アクセスポイント４０Ｂは１ｃｈに割り当て、アクセスポイント４０Ｃは１１ｃｈに割り当て、アクセスポイント４０Ｄは１ｃｈに割り当てるとした場合には、上記の４つの干渉関係のうちでアクセスポイント４０Ａとアクセスポイント４０Ｂとの間だけで干渉関係が発生すると仮定する。この場合、上記の図１０に示した予測したデータ転送速度を用いて、Ｓｕｍ値（干渉データ量）は以下のように算出される。
【０１５４】
Ｓｕｍ値＝アクセスポイント４０Ａの予測したデータ転送速度＋アクセスポイント４０Ｂの予測したデータ転送速度
【０１５５】
Ｓｕｍ値＝１９＋３２＋１７０＋４００＝６２１
【０１５６】
また、例えば、アクセスポイント４０Ａは１ｃｈに割り当て、アクセスポイント４０Ｂは６ｃｈに割り当て、アクセスポイント４０Ｃは１１ｃｈに割り当て、アクセスポイント４０Ｄは１ｃｈに割り当てるとした場合には、上記の４つの干渉関係のうち全ての干渉関係は発生しないと仮定する。この場合、上記の図１０に示した予測したデータ転送速度を用いて、Ｓｕｍ値（干渉データ量）は以下のように算出される。
【０１５７】
Ｓｕｍ値＝０
【０１５８】
上記で説明したように、ＯｐｅｎＦｌｏｗコントローラ１０は、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、Ｓｕｍ値（干渉データ量）を算出する。このＳｕｍ値（干渉データ量）は、ＯｐｅｎＦｌｏｗ無線通信ネットワークの中で、仮に干渉関係が発生する場合には、干渉関係が発生する全てのアクセスポイント４０間の予測したデータ転送速度の和を示す。つまり、Ｓｕｍ値（干渉データ量）が大きいほど、干渉関係が発生する場合にＯｐｅｎＦｌｏｗ無線通信ネットワークの中での干渉データ量が多くなることを示している。そのため、Ｓｕｍ値（干渉データ量）の最小値が得られる周波数チャネルを割り当てる組合せが、最適な周波数チャネル割り当てとなる。
【０１５９】
図１１は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。図１１の例では、例えば、一番上段は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てるとした場合、Ｓｕｍ値は２０９１であることを示している。以下、図１１に示した例は、すべて同様である。
【０１６０】
図１１の例において、Ｓｕｍ値＝０となるのは、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１１ｃｈを割り当てる場合と、の４通りの周波数チャネルを割り当てる組合せが存在することになる。
【０１６１】
本実施形態においては、上記の４通りの周波数チャネルを割り当てる組合せの中から、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる組合せを選択することとする。
【０１６２】
［ステップＳ９〜Ｓ１０］
よって、本実施形態でのＯｐｅｎＦｌｏｗコントローラ１０は、上記の周波数チャネルを割り当てる組合せの結果に基づいて、ＵＤＰプロトコルを用いて、各アクセスポイント４０に周波数チャネル割当結果を送信して、最適な周波数チャネルの割り当てを指定する（ステップＳ９）。そして、各アクセスポイント４０は、周波数チャネル割当結果を受信して、指定された周波数チャネルに設定する（ステップＳ１０）。
【０１６３】
以上、本実施形態における無線通信システム１の基本的な処理動作の一例である。
【０１６４】
次に、図１２を用いて、ＯｐｅｎＦｌｏｗコントローラ１０の処理動作について説明する。図１２は、ＯｐｅｎＦｌｏｗコントローラの処理動作の一例を示すフローチャート図である。
【０１６５】
最初に、ＯｐｅｎＦｌｏｗコントローラ１０を起動し、ＯｐｅｎＦｌｏｗコントローラ１０は、ＯｐｅｎＦｌｏｗスイッチ３０と接続処理を行う（ステップＳ１１）。次に、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０から接続リクエストを受信する（ステップＳ１２）。ＯｐｅｎＦｌｏｗコントローラ１０は、受信した接続リクエストに応答するか否かを判断する（ステップＳ１３）。接続リクエストに応答しない場合（ステップＳ１３：Ｎｏ）、ＯｐｅｎＦｌｏｗコントローラ１０は、処理を終了する。接続リクエストに応答する場合（ステップＳ１３：Ｙｅｓ）、ＯｐｅｎＦｌｏｗコントローラ１０は、「接続」を各アクセスポイント４０に対して応答し、アクセスポイント４０と接続する（ステップＳ１４）。
【０１６６】
次に、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０とが接続した後、各アクセスポイント４０から自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスを受信する。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出する（ステップＳ１５）。
【０１６７】
次に、ＯｐｅｎＦｌｏｗコントローラ１０は、Ｆｌｏｗ  Ｍｏｄメッセージを用いて、ＯｐｅｎＦｌｏｗスイッチ３０にフローエントリーを追加する（ステップＳ１６）。次に、ＯｐｅｎＦｌｏｗコントローラ１０は、ＵＤＰプロトコルを用いて、「ｐｉｎｇコマンド」を各アクセスポイント４０に要求する（ステップＳ１７）。その後、各アクセスポイント４０は、要求されたとおり、ＯｐｅｎＦｌｏｗコントローラ１０との「ｐｉｎｇ」動作を実施し、実施した結果のｐｉｎｇパケットをＯｐｅｎＦｌｏｗスイッチ３０に送信する。そして、ＯｐｅｎＦｌｏｗスイッチ３０は、記憶部３０３に記憶されているフローテーブル中のフローエントリーに基づいて、Ｐａｃｋｅｔ  Ｉｎメッセージを用いて、ｐｉｎｇパケットの内容をＯｐｅｎＦｌｏｗコントローラ１０に送信する。ＯｐｅｎＦｌｏｗコントローラ１０は、受信したＰａｃｋｅｔ  Ｉｎメッセージを解析し、各アクセスポイント４０のＩＰアドレス、ＭＡＣアドレス及びＯｐｅｎＦｌｏｗスイッチ３０の接続ポートを抽出し、各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０とのポート接続関係を判断する（ステップＳ１８）。
【０１６８】
次に、ＯｐｅｎＦｌｏｗコントローラ１０は、周期的に、Ｓｔａｔｓ  ＲｅｑｕｅｓｔメッセージをＯｐｅｎＦｌｏｗスイッチ３０に送信する（ステップＳ１９）。ＯｐｅｎＦｌｏｗコントローラ１０は、ＯｐｅｎＦｌｏｗスイッチ３０からＳｔａｔｓ  Ｒｅｐｌｙメッセージを受信し、ＯｐｅｎＦｌｏｗコントローラ１０は、受信したＳｔａｔｓ  Ｒｅｐｌｙメッセージを解析し、各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量（各アクセスポイント４０のデータ転送量）を取得する（ステップＳ２０）。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、取得した各ＯｐｅｎＦｌｏｗスイッチ３０の各ポートのデータ転送量（各アクセスポイント４０のデータ転送量）と、検出した各アクセスポイント４０とＯｐｅｎＦｌｏｗスイッチ３０とのポート接続関係を用いて、各アクセスポイント４０のデータ転送速度を算出する（ステップＳ２１）。
【０１６９】
次に、ＯｐｅｎＦｌｏｗコントローラ１０は、算出された各アクセスポイント４０のデータ転送速度に基づいて、各アクセスポイント４０が次回に送信するデータのデータ転送速度を予測する（ステップＳ２２）。次に、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０に対して最適な周波数チャネルを割り当てる（ステップＳ２３）。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、周波数チャネルを割り当てる組合せの結果に基づいて、ＵＤＰプロトコルを用いて、各アクセスポイント４０に周波数チャネル割当結果を送信して、最適な周波数チャネルの割り当てを指定する（ステップＳ２４）。そして、処理を終了する。
【０１７０】
次に、図１３を用いて、アクセスポイント４０の処理動作について説明する。図１３は、アクセスポイントの処理動作の一例を示すフローチャート図である。
【０１７１】
最初に、各アクセスポイント４０は、ＯｐｅｎＦｌｏｗスイッチ３０とそれぞれＩ／Ｆ部４０１、３０１とを介して接続する（ステップＳ３１）。アクセスポイント４０は、ＤＨＣＰ（動的ホスト構成プロトコル）により割り当てられたＩＰアドレス（ＩＰアドレスを取得し）を用いて、ＯｐｅｎＦｌｏｗ無線通信ネットワークに加入する（ステップＳ３２）。
【０１７２】
次に、アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０のＩＰアドレスを取得（ステップＳ３３）して、取得したＩＰアドレスを用いて、ＯｐｅｎＦｌｏｗコントローラ１０に接続リクエストを送信する（ステップＳ３４）。アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０から接続リクエストに対する応答を受信し、接続リクエストが拒否されたか否かを判断する（ステップＳ３５）。つまり「接続」または「拒否」であるか否かを判断する。受信した応答が「拒否」の場合（ステップＳ３５：Ｙｅｓ）、処理を終了する。受信した応答が「接続」の場合（ステップＳ３５：Ｎｏ）、アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０と接続する（ステップＳ３６）。
【０１７３】
次に、アクセスポイント４０は、周期的にｂｅａｃｏｎ（ビーコン）フレームを送信し、他のアクセスポイントからのｂｅａｃｏｎ（ビーコン）フレームを受信する（ステップＳ３７）。次に、アクセスポイント４０は、ＵＤＰプロトコルを用いて、自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスをＯｐｅｎＦｌｏｗコントローラ１０に送信する（ステップＳ３８）。
【０１７４】
次に、アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０から要求されたとおり、ＯｐｅｎＦｌｏｗコントローラ１０との「ｐｉｎｇ」動作を実施し、実施した結果の「ｐｉｎｇパケット」をＯｐｅｎＦｌｏｗスイッチ３０に送信する（ステップＳ３９）。次に、アクセスポイント４０は、ＯｐｅｎＦｌｏｗコントローラ１０から周波数チャネル割当結果を受信する（ステップＳ４０）。アクセスポイント４０は、受信した周波数チャネル割当結果の指定に基づいて、周波数チャネルを設定する（ステップＳ４１）。そして、処理を終了する。
【０１７５】
以上で説明したように、本実施形態によれば、ＯｐｅｎＦｌｏｗネットワークにおいて、アクセスポイント４０に対して最適な周波数チャネルを割り当てることにより無線通信性能の劣化を防止することができる、という有利な効果を達成できる。
【０１７６】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態では、第１の実施形態と比較して、ＯｐｅｎＦｌｏｗスイッチ３０ｂに接続する新規のアクセスポイント４０Ｅが後から追加されることが異なる。以下、具体的に説明する。
【０１７７】
図１４を用いて、第２の実施形態に係る無線通信システム１ａの全体システム構成例について説明する。図１４は、第２の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。第２の実施形態では、第１の実施形態と同様の構成については同一の符号を付し、上述の第１の実施形態と重複する部分については適宜に説明を省略する。
【０１７８】
図１４に示すように、無線通信システム１ａは、ＯｐｅｎＦｌｏｗコントローラ１０と、Ｇａｔｅｗａｙ２０と、複数のＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂと、複数のアクセスポイント４０Ａ〜４０Ｅと、複数の無線端末（無線通信端末、例えば、スマートフォン、タブレットＰＣなど）５０ａ〜５０ｇと、無線通信エリア６０ａ〜６０ｅと、通信網（インターネット網）７０とを備える。以下、ＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂを区別する必要がない場合には、ＯｐｅｎＦｌｏｗスイッチ３０と表記する。また、アクセスポイント４０Ａ〜４０Ｅを区別する必要がない場合には、アクセスポイント４０と表記する。また、無線端末５０ａ〜５０ｇを区別する必要がない場合には、無線端末５０と表記する。また、無線通信エリア６０ａ〜６０ｅを区別する必要がない場合には、無線通信エリア６０と表記する。
【０１７９】
なお「アクセスポイント」は、例えば、無線ＬＡＮアクセスポイント（ｗｉｒｅｌｅｓｓ  ＬＡＮ  ａｃｃｅｓｓ  ｐｏｉｎｔ）を示し、以下、「アクセスポイント」を「ＡＰ」とも表記する。
【０１８０】
ＯｐｅｎＦｌｏｗコントローラ１０の機能、構成及び処理、Ｇａｔｅｗａｙ２０の機能、構成及び処理、複数のＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂの機能、構成及び処理、複数のアクセスポイント４０Ａ〜４０Ｅの機能、構成及び処理、複数の無線端末（無線通信端末、例えば、スマートフォン、タブレットＰＣなど）５０ａ〜５０ｇの機能、構成及び処理は、第１の実施形態と同様である。
【０１８１】
図１４に示す、後から新規に追加されるアクセスポイント４０Ｅは、複数の周波数チャネルが使用可能である。アクセスポイント４０Ｅの無線通信エリア６０ｅ内には、例えば、アクセスポイント４０Ｅに対して、無線端末５０ｇが存在している。無線端末５０ｇ、例えば、無線ＬＡＮ規格、ＩＥＥＥ８０２．１１．ｇによりアクセスポイント４０Ｅと接続し、ＯｐｅｎＦｌｏｗスイッチ３０ｂ及びＧａｔｅｗａｙ２０を介して、例えば、通信網（インターネット網）７０を経由して各種の通信を行う。
【０１８２】
なお、図１４では、アクセスポイント４０Ｅと接続される無線端末５０ｇの台数が１台である場合を例示しているが、これに限らず、無線端末５０の台数は任意である。
【０１８３】
図１４の例において、後から追加されるアクセスポイント４０Ｅは、ＩＰアドレスが１９２．１６８．１．９であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１４であり、隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２、及び隣のＡＰ４０ＤのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。
【０１８４】
なお、図１４の例において、隣のＡＰとは、アクセスポイント（ＡＰ）の無線通信エリア６０が重複しているＡＰのことを示す。例えば、アクセスポイント４０Ｅでは、アクセスポイント４０Ｂ、４０Ｄと無線通信エリア６０が重複している。
【０１８５】
まず、アクセスポイント４０ＥをＯｐｅｎＦｌｏｗ無線通信ネットワークに後から新規に追加する前の処理動作は、第１の実施形態の図４に示すステップＳ１、図１２に示すステップＳ１１〜Ｓ１４、図１３に示すステップＳ３１〜Ｓ３６と同様である。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０間の干渉関係（図６）及び、予測した各アクセスポイント４０が次回に送信するデータのデータ転送速度（図１０）に基づいて、例えば、アクセスポイント４０Ａに１ｃｈを割り当て、アクセスポイント４０Ｂに６ｃｈを割り当て、アクセスポイント４０Ｃに１１ｃｈを割り当て、アクセスポイント４０Ｄに１ｃｈを割り当てると仮定する。このような仮定の下に、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイントに最適な周波数チャネルを割り当てて指定する。そして、各アクセスポイントは、指定された周波数チャネルに設定する。
【０１８６】
次に、アクセスポイント４０ＥをＯｐｅｎＦｌｏｗ無線通信ネットワークに追加した後、図４に示すステップＳ２〜Ｓ３、図１２に示すステップＳ１５の処理を行う。
【０１８７】
ここで、図１５を用いて、各アクセスポイント４０間の干渉関係の検出方法について説明する。図１５は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【０１８８】
図１５の例では、アクセスポイント４０Ａの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１２であることを示している。また、アクセスポイント４０Ｂの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１２、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１４であることを示している。また、アクセスポイント４０Ｃの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１１、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１２、００−０１−０２−０３−０４−１３であることを示している。また、アクセスポイント４０Ｄの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１３、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１４であることを示している。そして、後から追加したアクセスポイント４０Ｅの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１４、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１２、００−０１−０２−０３−０４−１３であることを示している。
【０１８９】
ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出する。すなわち、図１５を参照して、アクセスポイント４０Ａは、アクセスポイント４０Ｂ及びアクセスポイント４０Ｃとの間に干渉関係があると検出する。アクセスポイント４０Ｂは、アクセスポイント４０Ａ及びアクセスポイント４０Ｃとの間に干渉関係があると検出する。アクセスポイント４０Ｃは、アクセスポイント４０Ａ、アクセスポイント４０Ｂ及びアクセスポイント４０Ｄとの間に干渉関係があると検出する。アクセスポイント４０Ｄは、アクセスポイント４０Ｃとの間に干渉関係があると検出する。上記の第１の実施形態で示した、４つの干渉関係があると検出した以外に、アクセスポイント４０Ｂとアクセスポイント４０Ｅとの間で干渉関係がある。アクセスポイント４０Ｄとアクセスポイント４０Ｅとの間で干渉関係がある。という新たな２つの干渉関係があると検出する。
【０１９０】
次に、各アクセスポイント４０間の干渉関係を検出した後、図４に示すステップＳ４〜Ｓ７、図１２に示すステップＳ１６〜Ｓ２２、図１３に示すステップＳ３７〜Ｓ３９の処理を行う。図１６は、各アクセスポイントが次回に送信するデータのデータ転送速度を予測した一例を示す図である。
【０１９１】
図１６の例では、アクセスポイント４０Ａは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで２１ｋｂ／ｓ、ダウンロードで３５ｋｂ／ｓであることを示している。
【０１９２】
また、アクセスポイント４０Ｂは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１６４ｋｂ／ｓ、ダウンロードで３８３ｋｂ／ｓであることを示している。
【０１９３】
また、アクセスポイント４０Ｃは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１５ｋｂ／ｓ、ダウンロードで２０ｋｂ／ｓであることを示している。
【０１９４】
また、アクセスポイント４０Ｄは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１５３ｋｂ／ｓ、ダウンロードで４１９ｋｂ／ｓであることを示している。
【０１９５】
また、アクセスポイント４０Ｅは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート２に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで８３ｋｂ／ｓ、ダウンロードで１３７ｋｂ／ｓであることを示している。
【０１９６】
次に、図４に示すステップＳ８、図１２に示すステップＳ２３の処理を行う。ＯｐｅｎＦｌｏｗコントローラ１０は、上記の第１の実施形態で説明したように、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、干渉データ量（Ｓｕｍ値）を算出する。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、算出した干渉データ量（Ｓｕｍ値）の中で最小値が得られる周波数チャネルを割り当てる組合せを抽出する。第１の実施形態と同様に、本実施形態の場合も、最適な周波数チャネル割当の組合せが複数存在するが、本実施形態では無駄なオーバーハンドを実施しなくても良いという条件の下で、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｅに周波数チャネル１１ｃｈを割り当てる組合せを選択することとする。なお、第１の実施形態で割り当てたアクセスポイント４０Ａ〜４０Ｄの周波数チャネルは変更していない。
【０１９７】
以上で説明したように、本実施形態によれば、ＯｐｅｎＦｌｏｗ無線通信ネットワークに対して、新たなアクセスポイント４０Ｅを追加し、それまでの他のアクセスポイント４０Ａ〜４０Ｄに割り当てられた周波数チャネルが不明な場合でも、全てのアクセスポイント４０Ａ〜４０Ｅに対して最適な周波数チャネルを割り当てることができるため、無線通信性能の劣化を防止することができる、という有利な効果を達成できる。
【０１９８】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態は、第１の実施形態の変形例であり、手動で周波数チャネルを変更する場合の一例である。以下、具体的に説明する。
【０１９９】
第３の実施形態に係る無線通信システム１の全体システム構成例は、第１の実施形態の図１と同様である。よって、説明を省略する。
【０２００】
ＯｐｅｎＦｌｏｗコントローラ１０の機能、構成及び処理、Ｇａｔｅｗａｙ２０の機能、構成及び処理、複数のＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂの機能、構成及び処理、複数のアクセスポイント４０Ａ〜４０Ｄの機能、構成及び処理、複数の無線端末（無線通信端末、例えば、スマートフォン、タブレットＰＣなど）５０ａ〜５０ｆの機能、構成及び処理は、第１の実施形態と同様である。
【０２０１】
第１の実施形態で説明した、図１に示す無線通信システム１の全体システム構成において、所定時間経過した後、例えば、アクセスポイント４０Ａの周波数チャネルを手動で変更する場合の一例について説明する。
【０２０２】
まず、アクセスポイント４０ＥをＯｐｅｎＦｌｏｗ無線通信ネットワークに後から追加する前の処理動作は、第１の実施形態の図４に示すステップＳ１、図１２に示すステップＳ１１〜Ｓ１４、図１３に示すステップＳ３１〜Ｓ３６と同様である。ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０間の干渉関係（図６）及び、予測した各アクセスポイント４０が次回に送信するデータのデータ転送速度（図１０）に基づいて、例えば、アクセスポイント４０Ａに１ｃｈを割り当て、アクセスポイント４０Ｂに６ｃｈを割り当て、アクセスポイント４０Ｃに１１ｃｈを割り当て、アクセスポイント４０Ｄに１ｃｈを割り当てると仮定する。このような仮定の下に、ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイントに最適な周波数チャネルを指定する。そして、各アクセスポイントは、指定された周波数チャネルに設定する。
【０２０３】
その後、所定時間経過した後に、例えば、アクセスポイント４０Ａの周波数チャネルを１ｃｈから６ｃｈに変更すると仮定する。
【０２０４】
図４に示すステップＳ６〜Ｓ７の処理を行って、各アクセスポイント４０が次回に送信するデータのデータ転送速度を予測して、図１０に示した、各アクセスポイント４０のデータ転送速度を更新する。
【０２０５】
図１７は、更新した後の各アクセスポイント４０が次回に送信するデータのデータ転送速度を予測した一例を示す図である。図１７の例では、アクセスポイント４０Ａは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート２に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１２７ｋｂ／ｓ、ダウンロードで２１７ｋｂ／ｓであることを示している。
【０２０６】
また、アクセスポイント４０Ｂは、ＯｐｅｎＦｌｏｗスイッチ３０ａのポート４に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで１６４ｋｂ／ｓ、ダウンロードで３８３ｋｂ／ｓであることを示している。
【０２０７】
また、アクセスポイント４０Ｃは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート３に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで４７ｋｂ／ｓ、ダウンロードで６２ｋｂ／ｓであることを示している。
【０２０８】
また、アクセスポイント４０Ｄは、ＯｐｅｎＦｌｏｗスイッチ３０ｂのポート５に接続されており、Ｔ３時刻からＴ４時刻までの間のデータ転送速度（ｋｂ／ｓ）は、アップロードで５６ｋｂ／ｓ、ダウンロードで９３ｋｂ／ｓであることを示している。
【０２０９】
次に、図４に示すステップＳ８、図１２に示すステップＳ２３の処理を行う。ＯｐｅｎＦｌｏｗコントローラ１０は、上記の第１の実施形態で説明したように、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、Ｓｕｍ値（干渉データ量）を算出する。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、算出したＳｕｍ値（干渉データ量）の中で最小値が得られる周波数チャネルを割り当てる組合せを抽出する。
【０２１０】
図１８は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。図１８の例では、例えば、一番上段は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てるとした場合、Ｓｕｍ値（干渉データ量）は２２５８であることを示している。以下、図１８に示した例は、すべて同様である。
【０２１１】
図１８の例において、Ｓｕｍ値＝０となるのは、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる場合と、の４通りの周波数チャネルを割り当てる組合せが存在することになる。
【０２１２】
本実施形態においては、上記の４通りの周波数チャネルを割り当てる組合せの中から、無駄なオーバーハンドを実施しなくても良いという条件の下で、アクセスポイント４０Ａに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てる組合せを選択することとする。なお、本実施形態において、最初に割り当てたアクセスポイント４０Ｃ、４０Ｄの周波数チャネルは変更していない。
【０２１３】
以上の説明したように、本実施形態によれば、ＯｐｅｎＦｌｏｗ無線通信ネットワークに対して、周波数チャネルを手動で変更する場合でも、全てのアクセスポイント４０Ａ〜４０Ｄに対して最適な周波数チャネルを割り当てることができるため、無線通信性能の劣化を防止することができる、という有利な効果を達成できる。
【０２１４】
（第４の実施形態）
次に、第４の実施形態について説明する。第４の実施形態では、第１の実施形態と比較して、各アクセスポイント４０間の干渉関係がないように周波数チャネルを割り当てられない場合（Ｓｕｍ値＝０とならない場合）であることが異なる。以下、具体的に説明する。
【０２１５】
図１９を用いて、第４の実施形態に係る無線通信システム１ｂの全体システム構成例について説明する。図１９は、第４の実施形態に係る無線通信システムの全体システム構成の一例を示す図である。第４の実施形態では、第１の実施形態の図１と同様の構成については同一の符号を付し、上述の第１の実施形態と重複する部分については適宜に説明を省略する。
【０２１６】
ＯｐｅｎＦｌｏｗコントローラ１０の機能、構成及び処理、Ｇａｔｅｗａｙ２０の機能、構成及び処理、複数のＯｐｅｎＦｌｏｗスイッチ３０ａ、３０ｂの機能、構成及び処理、複数のアクセスポイント４０Ａ〜４０Ｄの機能、構成及び処理、複数の無線端末（無線通信端末、例えば、スマートフォン、タブレットＰＣなど）５０ａ〜５０ｆの機能、構成及び処理は、第１の実施形態と同様である。
【０２１７】
第１の実施形態と異なるのは、アクセスポイント４０Ｄの無線通信エリア６０ｄがアクセスポイント４０Ａ、４０Ｂ、４０Ｃと重複している。すなわち、各アクセスポイント４０間の干渉関係が多く存在する場合である。
【０２１８】
図１９の例において、アクセスポイント４０Ａは、ＩＰアドレスが１９２．１６８．１．５であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１０であり、隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１、隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２、及び隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。
【０２１９】
また、アクセスポイント４０Ｂは、ＩＰアドレスが１９２．１６８．１．７であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１２であり、隣のＡＰ４０ＡのＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１、及び隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。
【０２２０】
また、アクセスポイント４０Ｃは、ＩＰアドレスが１９２．１６８．１．６であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１１であり、隣のＡＰ４０ＡのＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２、及び隣のＡＰ４０ＤのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。
【０２２１】
また、アクセスポイント４０Ｄは、ＩＰアドレスが１９２．１６８．１．８であり、ＭＡＣアドレスが００−０１−０２−０３−０４−１３であり、隣のＡＰ４０ＡのＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣のＡＰ４０ＣのＭＡＣアドレスが００−０１−０２−０３−０４−１１、及び隣のＡＰ４０ＢのＭＡＣアドレスが００−０１−０２−０３−０４−１２であることを示している。
【０２２２】
まず、アクセスポイント４０をＯｐｅｎＦｌｏｗ無線通信ネットワークに追加した後、図４に示すステップＳ２〜Ｓ３、図１２に示すステップＳ１４の処理を行う。
【０２２３】
ここで、図２０を用いて、各アクセスポイント４０間の干渉関係の検出方法について説明する。図２０は、ＯｐｅｎＦｌｏｗコントローラが受信した各アクセスポイントの自身のＭＡＣアドレスと隣のアクセスポイントのＭＡＣアドレスを説明する図である。
【０２２４】
図２０の例では、アクセスポイント４０Ａの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１０、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１２、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１３であることを示している。また、アクセスポイント４０Ｂの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１２、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１３であることを示している。また、アクセスポイント４０Ｃの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１１、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１２、００−０１−０２−０３−０４−１３であることを示している。また、アクセスポイント４０Ｄの自身のＭＡＣアドレスが００−０１−０２−０３−０４−１３、隣ＡＰのＭＡＣアドレスが００−０１−０２−０３−０４−１０、００−０１−０２−０３−０４−１１、００−０１−０２−０３−０４−１２であることを示している。
【０２２５】
ＯｐｅｎＦｌｏｗコントローラ１０は、各アクセスポイント４０の自身のＭＡＣアドレスと隣のアクセスポイント４０のＭＡＣアドレスとに基づいて、各アクセスポイント４０間の干渉関係を検出する。すなわち、図２０を参照して、アクセスポイント４０Ａは、アクセスポイント４０Ｂ、アクセスポイント４０Ｃ、及びアクセスポイント４０Ｄとの間に干渉関係があると検出する。アクセスポイント４０Ｂは、アクセスポイント４０Ａ、アクセスポイント４０Ｃ、及びアクセスポイント４０Ｄとの間に干渉関係があると検出する。アクセスポイント４０Ｃは、アクセスポイント４０Ａ、アクセスポイント４０Ｂ、及びアクセスポイント４０Ｄとの間に干渉関係があると検出する。アクセスポイント４０Ｄは、アクセスポイント４０Ａ、アクセスポイント４０Ｂ、及びアクセスポイント４０Ｃとの間に干渉関係があると検出する。すなわち、本実施形態では、６つの干渉関係があると検出される。
【０２２６】
次に、各アクセスポイント４０間の干渉関係の検出した後、図４に示すステップＳ４〜Ｓ１０の処理を行う。すなわち、各アクセスポイントが次回に送信するデータのデータ転送速度を予測する。本実施形態では、予測した結果が第１の実施形態の図１０で示した、各アクセスポイントが次回に送信するデータのデータ転送速度であると仮定する。
【０２２７】
次に、図４に示すステップＳ８、図１２に示すステップＳ２３の処理を行う。ＯｐｅｎＦｌｏｗコントローラ１０は、上記の第１の実施形態で説明したように、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、干渉データ量（Ｓｕｍ値）を算出する。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、算出した干渉データ量（Ｓｕｍ値）の中で最小値が得られる周波数チャネルを割り当てる組合せを抽出する。
【０２２８】
本実施形態では、無線環境が大変混雑している場合には、同一周波数チャネル内でトータル通信量が多いほど、アクセスポイント４０にとって、他のアクセスポイント４０の干渉を受ける可能性が高くなることを考慮して、各アクセスポイント４０の予測したデータのデータ転送速度に基づいて、データ通信量が多い（予測したデータのデータ転送速度が速い）アクセスポイント４０を他のアクセスポイント４０から干渉しないように周波数チャネルを割り当てるようにすることで、無線通信性能の劣化を防ぐことができる。
【０２２９】
図２１は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。なお、図２１の例では、算出結果を一部省略している。
【０２３０】
図２１の例では、例えば、一番上段は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てるとした場合、Ｓｕｍ値（干渉データ量）は４２１８であることを示している。以下、図２１に示した例は、すべて同様である。
【０２３１】
図２１の例において、Ｓｕｍ値＝０となる周波数チャネルの割り当ての組合せは存在しない。そこで、Ｓｕｍ値が最小となる周波数チャネルの割り当ての組合せを抽出する。Ｓｕｍ値が最小となる組合せ（Ｓｕｍ値＝８３）は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる場合と、の２通りの周波数チャネルを割り当てる組合せが存在することになる。
【０２３２】
本実施形態においては、上記の２通りの周波数チャネルを割り当てる組合せの中から、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる組合せを選択することとする。
【０２３３】
ＯｐｅｎＦｌｏｗコントローラ１０は、周波数チャネルを割り当てる組合せの結果に基づいて、ＵＤＰプロトコルを用いて、各アクセスポイント４０に周波数チャネル割当結果を送信して、最適な周波数チャネルの割り当てを指定する。そして、各アクセスポイント４０は、受信した周波数チャネル割当結果の指定に基づいて、周波数チャネルを設定する。
【０２３４】
以上で説明したように、本実施形態によれば、ＯｐｅｎＦｌｏｗネットワークにおいて、各アクセスポイント４０間の干渉関係がないように周波数チャネルを割り当てられない場合であってもアクセスポイント４０に対して最適な周波数チャネルを割り当てることにより無線通信性能の劣化を防止することができる、という有利な効果を達成できる。
【０２３５】
（第４の実施形態の変形例）
次に、第４の実施形態の変形例について説明する。上記の第４の実施形態では、予測した結果が第１の実施形態の図１０で示した、各アクセスポイントが次回に送信するデータのデータ転送速度であると仮定した。本変形例では、予測した結果が上記の第３の実施形態の図１７で示した、各アクセスポイントが次回に送信するデータのデータ転送速度に変化したと仮定する。
【０２３６】
次に、図４に示すステップＳ８、図１２に示すステップＳ２３の処理を行う。ＯｐｅｎＦｌｏｗコントローラ１０は、上記の第１の実施形態で説明したように、全てのアクセスポイント４０の周波数チャネル割り当ての組合せごとに、干渉データ量（Ｓｕｍ値）を算出する。そして、ＯｐｅｎＦｌｏｗコントローラ１０は、算出した干渉データ量（Ｓｕｍ値）の中で最小値が得られる周波数チャネルを割り当てる組合せを抽出する。
【０２３７】
本変形例では、各アクセスポイント４０の予測データ転送速度の変化に基づいて、順次に各アクセスポイント４０に最適な周波数チャネルを割り当てるようにすることで、無線通信性能の劣化を防ぐことができる。また、上記式（２）で説明したように、ＴＮ−１時刻からＴＮ時刻までの間のデータ転送速度に基づいて、ＴＮ＋１時刻のデータ転送速度を予測する（前の情報を十分に参考にする）ことによって、一時的にデータ転送速度を上げる場合でも無駄なオーバーハンドを実施しなくてもよい、という有利な効果を奏する。
【０２３８】
図２２は、各アクセスポイントに割り当てた周波数チャネルとＳｕｍ値との関係の一例を示す図である。なお、図２２の例では、算出結果を一部省略している。
【０２３９】
図２２の例では、例えば、一番上段は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１ｃｈを割り当てるとした場合、Ｓｕｍ値は３４４７であることを示している。以下、図２２に示した例は、すべて同様である。
【０２４０】
図２２の例において、Ｓｕｍ値＝０となる周波数チャネルの割り当ての組合せは存在しない。そこで、Ｓｕｍ値が最小となる周波数チャネルの割り当ての組合せを抽出する。Ｓｕｍ値が最小となる組合せ（Ｓｕｍ値＝２５８）は、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル１１ｃｈを割り当てる場合と、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる場合と、の２通りの周波数チャネルを割り当てる組合せが存在することになる。
【０２４１】
本実施形態においては、上記の２通りの周波数チャネルを割り当てる組合せの中から、無駄なオーバーハンドを実施しなくても良いという条件の下で、アクセスポイント４０Ａに周波数チャネル１ｃｈを割り当て、アクセスポイント４０Ｂに周波数チャネル１１ｃｈを割り当て、アクセスポイント４０Ｃに周波数チャネル６ｃｈを割り当て、アクセスポイント４０Ｄに周波数チャネル６ｃｈを割り当てる組合せを選択することとする。なお、本変形例において、最初に割り当てたアクセスポイント４０Ｃの周波数チャネルだけを変更している。
【０２４２】
以上で説明したように、本変形例によれば、ＯｐｅｎＦｌｏｗネットワークにおいて、各アクセスポイント４０間の干渉関係がないように周波数チャネルを割り当てられない場合であって、かつ各アクセスポイントの予測データ転送速度が変化する場合であってもアクセスポイント４０に対して最適な周波数チャネルを割り当てることにより無線通信性能の劣化を防止することができる、という有利な効果を達成できる。
【０２４３】
以上、本発明に係る各実施形態について説明したが、本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０２４４】
また、上述した各実施形態の無線通信システム１、１ａ、１ｂで実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０２４５】
なお、本実施形態のＯｐｅｎＦｌｏｗコントローラ１０と、Ｇａｔｅｗａｙ２０と、複数のＯｐｅｎＦｌｏｗスイッチ３０と、複数のアクセスポイント４０と、複数の無線端末５０とで構成されたシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【符号の説明】
【０２４６】
１、１ａ、１ｂ  無線通信システム
１０  ＯｐｅｎＦｌｏｗコントローラ
２０  Ｇａｔｅｗａｙ
３０ａ、３０ｂ  ＯｐｅｎＦｌｏｗスイッチ
４０Ａ〜４０Ｅ  アクセスポイント
５０ａ〜５０ｇ  無線端末
６０ａ〜６０ｅ  無線通信エリア
７０  通信網
１０１  Ｉ／Ｆ部
１０２  通信部
１０３  記憶部
１０４  検出部
１０５  解析判断部
１０６  算出部
１０７  予測部
１０８  割当部
１０９  制御部
３０１  Ｉ／Ｆ部
３０２  通信部
３０３  記憶部
３０４  取得部
３０５  制御部
４０１ａ、４０１ｂ  Ｉ／Ｆ部
４０２ａ、４０２ｂ  通信部
４０３ａ、４０３ｂ  記憶部
４０４ａ、４０４ｂ  設定部
４０５ａ、４０５ｂ  制御部
５０１ａ、５０１ｂ  通信部
５０２ａ、５０２ｂ  制御部
【先行技術文献】
【特許文献】
【０２４７】
【特許文献１】特開２０１４−０４５３９０号公報
【図１】
0006455100.tif 000002
【図２】
0006455100.tif 000003
【図３】
0006455100.tif 000004
【図４】
0006455100.tif 000005
【図５】
0006455100.tif 000006
【図６】
0006455100.tif 000007
【図７】
0006455100.tif 000008
【図８】
0006455100.tif 000009
【図９】
0006455100.tif 000010
【図１０】
0006455100.tif 000011
【図１１】
0006455100.tif 000012
【図１２】
0006455100.tif 000013
【図１３】
0006455100.tif 000014
【図１４】
0006455100.tif 000015
【図１５】
0006455100.tif 000016
【図１６】
0006455100.tif 000017
【図１７】
0006455100.tif 000018
【図１８】
0006455100.tif 000019
【図１９】
0006455100.tif 000020
【図２０】
0006455100.tif 000021
【図２１】
0006455100.tif 000022
【図２２】
0006455100.tif 000023
【図２３】
0006455100.tif 000024
【図２４】
0006455100.tif 000025
【図２５】
0006455100.tif 000026