(57)【要約】  スイッチから制御装置に対する制御情報の送信要求の送信を制御する。スイッチは、所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部と、前記制御装置と前記制御情報を送受信する通信部と、前記通信部が送受信する制御情報の順序を制御する制御部と、を備える。
2014010723.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部と、
前記制御装置と前記制御情報を送受信する通信部と、
前記通信部が送受信する制御情報の順序を制御する制御部と、
を備えたこと、を特徴とするスイッチ。
【請求項２】
前記通信部は、所定の条件に合致するパケットを受信した場合、前記所定の制御装置に対し、前記パケットを処理するための制御情報の送信を要求し、
前記制御部は、前記制御情報の送信要求の契機となったパケットの受信ポートに基づいて、前記通信部における制御情報の送信要求の順序を制御する請求項１のスイッチ。
【請求項３】
さらに、前記制御情報の送信を要求するメッセージを蓄積するメッセージ蓄積部を備え、
前記制御部は、前記メッセージ蓄積部へのメッセージの格納順序または前記メッセージ蓄積部からのメッセージの取り出し順序を制御することにより、前記通信部の動作を制御する請求項２のスイッチ。
【請求項４】
前記メッセージ蓄積部が、ポートと対応付けて複数設けられ、
前記制御部は、パケットを受信したポートに対応するメッセージ蓄積部に、制御情報の送信を要求するメッセージを蓄積し、予め定めた規則に従い、前記複数のメッセージ蓄積部からメッセージを取り出すことにより、前記通信部の動作を制御する請求項３のスイッチ。
【請求項５】
前記複数のメッセージ蓄積部は、仮想マシンと接続する仮想ポートと対応付けて複数設けられ、
前記制御部は、仮想マシンからのパケットが入力された仮想ポートに対応するメッセージ蓄積部に、制御情報の送信を要求するメッセージを蓄積し、
前記制御部は、前記複数のメッセージ蓄積部からのメッセージの取り出し順序を制御することにより、前記通信部の動作を制御する請求項３のスイッチ。
【請求項６】
前記複数のメッセージ蓄積部に、優先度が設定されており、
前記制御部は、前記複数のメッセージ蓄積部の優先度を参照して、メッセージの取り出しを実行する請求項４又は５のスイッチ。
【請求項７】
前記制御部は、受信ポートに代えて、前記制御情報の送信要求の契機となったパケットのヘッダ情報に基づいて、前記通信部の動作を制御する請求項１から６いずれか一のスイッチ。
【請求項８】
前記制御部は、さらに、前記制御情報の送信要求の契機となったパケットのヘッダ情報に基づいて、前記通信部の動作を制御する請求項１から６いずれか一のスイッチ。
【請求項９】
さらに、
制御情報を記録するフローエントリ記憶部と、
制御装置からのメッセージを蓄積する複数のメッセージ蓄積部と、を備え、
前記通信部は、前記複数の制御情報蓄積部からのメッセージの取り出し順序を制御し、前記メッセージを解釈して、前記フローエントリ記憶部にその結果を記録する請求項１から８いずれか一のスイッチ。
【請求項１０】
所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部と、
前記制御装置と前記制御情報を送受信する通信部と、
前記通信部が送受信する制御情報の順序を制御する制御部と、
を備えるスイッチと、
前記スイッチからの前記制御情報の送信要求に応じて、制御情報を送信する制御装置と、を含む通信システム。
【請求項１１】
所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部を備えるスイッチにおいて、
所定の条件に合致するパケットを受信した場合、前記パケットを処理するための制御情報の送信を要求するメッセージを生成するステップと、
前記所定のルールに基づき、前記所定の制御装置に対し、前記メッセージを送信する順序を決定するステップと、
前記所定の制御装置に対し、前記決定した順序に従い、メッセージを送信するステップと、を含むスイッチ制御方法。
【請求項１２】
所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部を備えるスイッチスイッチとして機能するコンピュータに、
所定の条件に合致するパケットを受信した場合、前記パケットを処理するための制御情報の送信を要求するメッセージを生成する処理と、
前記所定のルールに基づき、前記所定の制御装置に対し、前記メッセージを送信する順序を決定する処理と、
前記所定の制御装置に対し、前記決定した順序に従い、メッセージを送信する処理と、
を実行させるプログラム。
【請求項１３】
所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部を備えるスイッチスイッチとして機能するコンピュータに、
所定の条件に合致するパケットを受信した場合、前記パケットを処理するための制御情報の送信を要求するメッセージを生成する処理と、
前記所定のルールに基づき、前記所定の制御装置に対し、前記メッセージを送信する順序を決定する処理と、
前記所定の制御装置に対し、前記決定した順序に従い、メッセージを送信する処理と、
を実行させるプログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−１５７２６３号（２０１２年７月１３日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、スイッチ、通信システム、スイッチ制御方法及びプログラムに関し、特に、所定の制御装置からの制御に従い動作するスイッチ、通信システム、スイッチ制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年６月２１日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年６月２１日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下の分析は、本発明によって与えられたものである。上述したように、オープンフロースイッチに代表されるスイッチは、受信パケットに適合する制御情報（上記「エントリ」に相当）を保持していない場合に、制御情報の送信要求を送信する。また、コントローラが事前に、特定の特徴を持つパケットを受信した場合に、制御情報の送信要求を送信するようなエントリを設定する場合もある。【０００６】
このため、特定のスイッチが、大量のパケットを受信した場合、コントローラに対し、制御情報の送信要求が大量に送信されてしまうということが起こりうる。この結果、コントローラの負荷が増大し、他のスイッチからの制御情報の送信要求への応答が遅れるなどの問題が生ずる可能性がある。【０００７】
また、１台のスイッチには多数のポートが備えられており、特定のポートで受信したパケットに基づいて制御情報の送信要求を連続して送信することにより、他のポートでパケットを受信した際の制御情報の送信要求が遅れてしまうという問題点もある。【０００８】
これらの現象が発生する根本的な要因としては、スイッチからコントローラ（制御装置）へ送信するメッセージの送信順序等を決定する制御機構が存在しないことが挙げられる。【０００９】
本発明の目的は、制御情報の送信要求の送信を制御できるようにしたスイッチ、通信システム、スイッチ制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部と、前記制御装置と前記制御情報を送受信する通信部と、前記通信部が送受信する制御情報の順序を制御する制御部と、を備えるスイッチが提供される。【００１１】
本発明の第２の視点によれば、所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部と、前記制御装置と前記制御情報を送受信する通信部と、前記通信部が送受信する制御情報の順序を制御する制御部と、を備えるスイッチと、前記スイッチからの前記制御情報の送信要求に応じて、制御情報を送信する制御装置と、を含む通信システムが提供される。【００１２】
本発明の第３の視点によれば、所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部を備えるスイッチにおいて、所定の条件に合致するパケットを受信した場合、前記パケットを処理するための制御情報の送信を要求するメッセージを生成するステップと、前記所定のルールに基づき、前記所定の制御装置に対し、前記メッセージを送信する順序を決定するステップと、前記所定の制御装置に対し、前記決定した順序に従い、メッセージを送信するステップと、を含むスイッチ制御方法が提供される。本方法は、制御装置から受信した制御情報に基づいて受信パケットを処理するスイッチという、特定の機械に結びつけられている。【００１３】
本発明の第４の視点によれば、所定の制御装置から受信した制御情報を用いて受信パケットを処理するパケット処理部を備えるスイッチとして機能するコンピュータに、所定の条件に合致するパケットを受信した場合、前記パケットを処理するための制御情報の送信を要求するメッセージを生成する処理と、前記所定のルールに基づき、前記所定の制御装置に対し、前記メッセージを送信する順序を決定する処理と、前記所定の制御装置に対し、前記決定した順序に従い、メッセージを送信する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、スイッチから制御装置に対する制御情報の送信要求の送信を制御することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の構成を示す図である。
【図３】制御情報の送信要求先を決定するためのテーブルの一例である。
【図４】本発明の第１の実施形態のスイッチの動作（パケット受信時）を表した流れ図である。
【図５】本発明の第１の実施形態のスイッチの動作（Ｐａｃｋｅｔ−Ｉｎメッセージの送信）を表した流れ図である。
【図６】本発明の第２の実施形態の構成を示す図である。
【図７】本発明の第３の実施形態の構成を示す図である。
【図８】本発明の第４の実施形態の構成を示す図である。
【図９】本発明の第５の実施形態の構成を示す図である。
【発明を実施するための形態】
【００１６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
本発明は、その一実施形態において、図１に示すように、制御装置２０から受信した制御情報（例えば、フローＡに属するパケットをポート＃Ｍ＋１に転送するという制御情報）を用いて受信パケットを処理するパケット処理部（図１のパケット処理部１０１）と、所定の条件に合致するパケット（新規フローの発生等）を受信した場合、制御装置（図１の制御装置２０）と、制御情報を送受信する通信部（図１の通信部１０２）と、前記通信部が送受信する制御情報の順序を制御する制御部（図１の制御部１０３）と、を備えたスイッチ（図１のスイッチ１０）と制御装置（図１の制御装置２０）とを含む構成にて実現できる。なお、図１の例では、制御情報は、フローエントリ記憶部１０４に保持されているが、パケット処理部１０１内部に保持していても構わない。
【００１８】
より具体的には、このスイッチは、制御装置に対して送信していない制御情報の送信要求が複数存在する場合、各制御情報の送信要求の契機となったパケットの受信ポート等に基づいて、制御装置に対して送信する制御情報の送信要求を決定する動作を行う。例えば、このスイッチは、特定のポートから受信したパケットに基づく連続的な制御情報の送信要求の送信抑止、一定期間送信されていない制御情報の送信要求の優先、制御情報の送信要求の契機となったパケットの受信ポートによる優先付けなどを行う。
【００１９】
以上のように、制御情報の送受信の順序制御が実現される。
【００２０】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の構成を示す図である。図２を参照すると、制御装置２０と、この制御装置２０によって制御されるスイッチ１０とが示されている。なお、図２では、１台のスイッチ１０のみを示しているが、制御装置２０によって制御されるスイッチ１０は複数存在していても構わない。
【００２１】
スイッチ１０は、パケット処理部１０１と、通信部１０２と、制御部１０３と、フローエントリ記憶部１０４と、Ｎ個のポート１０５とを備えている。
【００２２】
パケット処理部１０１は、いずれかのポート１０５からパケットが入力されると、フローエントリ記憶部１０４から、そのポート番号やパケットヘッダに適合するマッチ条件を持つエントリを検索する。前記検索の結果、受信パケットに適合するマッチ条件を持つエントリが見つかった場合、パケット処理部１０１は、そのエントリのアクションフィールドに記述された処理内容を実行する。
【００２３】
一方、フローエントリ記憶部１０４に受信パケットに適合するマッチ条件を持つエントリが無い場合、パケット処理部１０１は、フローエントリの送信を要求するメッセージ（以下、「Ｐａｃｋｅｔ−Ｉｎメッセージ」）を生成して、キューＡ１０６ａ、キューＢ１０６ｂのいずれかに格納する。Ｐａｃｋｅｔ−Ｉｎメッセージには、受信パケットそのもの、あるいは、受信パケットの情報が添付される。
【００２４】
図３は、Ｐａｃｋｅｔ−Ｉｎメッセージを格納するキューを決定するためのテーブルの一例である。図３の例では、ポート＃０〜＃３にて受信したパケットに基づいて生成したＰａｃｋｅｔ−Ｉｎメッセージは、キューＡ１０６ａに格納される。同様に、ポート＃４〜＃７にて受信したパケットに基づいて生成したＰａｃｋｅｔ−Ｉｎメッセージは、キューＢ１０６ｂに格納される。
【００２５】
通信部１０２は、制御部１０３からＰａｃｋｅｔ−Ｉｎメッセージの送信指示を受けると、制御装置２０に対して、Ｐａｃｋｅｔ−Ｉｎメッセージを送信する。また、制御装置２０からＰａｃｋｅｔ−Ｉｎメッセージに対する応答としてフローエントリの設定メッセージ（非特許文献２の「５．６  Ｆｌｏｗ  Ｔａｂｌｅ  Ｍｏｄｉｆｉｃａｔｉｏｎ  Ｍｅｓｓａｇｅｓ」参照）を受信すると、通信部１０２は、フローエントリ記憶部１０４にフローエントリを登録する。
【００２６】
制御部１０３は、キューＡ１０６ａ、キューＢ１０６ｂから、Ｐａｃｋｅｔ−Ｉｎメッセージを取り出して通信部１０２に送る動作を行う。具体的なＰａｃｋｅｔ−Ｉｎメッセージの取り出し方式については、次のようなものが考えられる。
【００２７】
［１．ラウンドロビン方式］
（１）キューＡ１０６ａのＰａｃｋｅｔ−Ｉｎメッセージをｐ個処理（制御装置２０に送信)する（ｐは、予め決められた数）。
（２）次に、キューＢ１０６ｂのＰａｃｋｅｔ−Ｉｎメッセージをｑ個処理（制御装置２０に送信）する（ｑは、予め決められた数。）。
（３）３個以上のキューが複数ある場合、同様に最後のキューまで処理し、（１）キューＡの処理に戻る。
なお、ｐ、ｑは同値であってもよいが、ｐとｑの値に違いを持たせることで、キュー間に優先度を設定することができる（値が大きいほど、当該キューが高い優先度を有していることになる。）。
【００２８】
［２．ポリシング方式］
（０）各キューに処理したＰａｃｋｅｔ−Ｉｎメッセージの数を記憶しておくためのカウンタを用意する。このカウンタは、所定時間（例えば、毎秒）ごとにリセットされる。
（１）Ｐａｃｋｅｔ−Ｉｎメッセージを１つ処理するごとに、該当キューのカウンタを１つ増やす。
（２）カウンタが所定の閾値（保証値）以上になった場合は、そのキューの処理を停止する。また、必要に応じて、その時点でキューに格納されているＰａｃｋｅｔ−Ｉｎメッセージを破棄するようにしてもよい。カウンタは、一定時間ごとにリセットされるので、しばらくするとまたＰａｃｋｅｔ−Ｉｎメッセージを処理できるようになる。
なお、前記（２）の判定で用いる閾値は、各キューで同じであってもよいし、各ポートに接続されている端末ユーザの契約コースや当該キューに対応付けられているポートに接続されている端末の総数等に応じて変えてもよい。
【００２９】
［３．その他］
もちろん、上記キューに優先度を設定した上で、優先度に基づいてＰａｃｋｅｔ−Ｉｎメッセージを取り出す優先スケジューリング方式など、種々の方式を採用することも可能である。また、制御装置２０が、自装置やネットワークの負荷状況に応じて、上記した方式を切り替えたり、上記各方式で用いる閾値を変更するようにしてもよい。
【００３０】
フローエントリ記憶部１０４は、制御装置２０にて生成されたフローエントリを記憶する。
【００３１】
また、図２のスイッチ１０は、Ｎ個のポート１０５を有している。図２の例では、スイッチの動作をわかり易く説明するために、Ｍ＋１個の受信ポートと、（Ｎ−Ｍ＋１）個の送信ポートを示しているが、これらの数は任意である。もちろん、あるポートが送信と受信に用いられることもある。
【００３２】
キューＡ１０６ａ、キューＢ１０６ｂは、所定数のＰａｃｋｅｔ−Ｉｎメッセージを格納できるように構成されている。このようなキューに代えて、所定数のＰａｃｋｅｔ−Ｉｎメッセージをその受信ポート情報や優先度情報と対応付けて格納し、その中から特定のＰａｃｋｅｔ−Ｉｎメッセージを取り出せるようにしたリストやテーブル等を用いることも可能である。
【００３３】
なお、図２に示したスイッチ１０の各部（処理手段）は、スイッチ１０を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態のスイッチの動作（パケット受信時）を表した流れ図である。図４を参照すると、まず、いずれかのポート１０５からパケットが入力されると、スイッチ１０は、フローエントリ記憶部１０４を受信パケットに適合するマッチ条件を持つエントリを検索する。この検索の結果によって、Ｐａｃｋｅｔ−Ｉｎメッセージの送信が必要か否かが決定される。つまり、前記フローエントリの検索は、Ｐａｃｋｅｔ−Ｉｎメッセージの送信要否を判定していることに等しい（ステップＳ００１）。
【００３５】
前記フローエントリの検索の結果、受信パケットに適合するエントリが見つかるなど、Ｐａｃｋｅｔ−Ｉｎメッセージの送信が不要であると判断された場合（ステップＳ００１のＮｏ）、スイッチ１０は、該当フローエントリに従って、受信パケットを処理する（ステップＳ００５）。
【００３６】
一方、受信パケットに適合するエントリが見つかない場合や、受信パケットに適合するエントリが制御装置２０へのＰａｃｋｅｔ−Ｉｎメッセージの送出を指示している場合など、Ｐａｃｋｅｔ−Ｉｎメッセージの送信が必要であると判断された場合（ステップＳ００１のＹｅｓ）、スイッチ１０は、Ｐａｃｋｅｔ−Ｉｎメッセージを生成する（ステップＳ００２）。
【００３７】
次に、スイッチ１０は、図３に示したテーブルなどを参照して、Ｐａｃｋｅｔ−Ｉｎメッセージを格納するキューを決定する（ステップＳ００３）。
【００３８】
次に、スイッチ１０は、決定したキューにＰａｃｋｅｔ−Ｉｎメッセージを格納する（ステップＳ００４）。
【００３９】
以上により、パケット受信を契機としたＰａｃｋｅｔ−Ｉｎメッセージの生成と、適切なキューへの格納が完了する。
【００４０】
図５は、本発明の第１の実施形態のスイッチの動作（Ｐａｃｋｅｔ−Ｉｎメッセージの送信）を表した流れ図である。図５を参照すると、まず、スイッチ１０は、前回選択したＰａｃｋｅｔ−Ｉｎメッセージの送信が完了するなど、所定のＰａｃｋｅｔ−Ｉｎメッセージ送信タイミングが到来すると（ステップＳ１０１）、上述したラウンドロビン方式やポリシング方式等の予め定めた方式を用いて、キューを選択し、Ｐａｃｋｅｔ−Ｉｎメッセージを取り出す（ステップＳ１０２）。なお、Ｐａｃｋｅｔ−Ｉｎメッセージが１つしかない場合、このステップＳ１０２のキュー選択を省略することとしてもよい。
【００４１】
次に、スイッチ１０は、制御装置２０に対して、取り出したＰａｃｋｅｔ−Ｉｎメッセージを送信する（ステップＳ１０３）。
【００４２】
以上のように、スイッチ１０は、Ｐａｃｋｅｔ−Ｉｎメッセージを単に生成順に送信するのではなく、その生成契機となったパケットを受信したポートに応じたキューへの格納と、Ｐａｃｋｅｔ−Ｉｎメッセージの選択送信を行う。この結果、特定のポートからパケットが連続して入力された場合においても、そのパケットを処理するためのＰａｃｋｅｔ−Ｉｎメッセージを優先せず、他のポートから入力されたパケットに基づくＰａｃｋｅｔ−Ｉｎメッセージを割り込ませて送信するといったことが可能となる。
【００４３】
［第２の実施形態］
続いて、本発明の第２の実施形態について図面を参照して詳細に説明する。図６は、本発明の第２の実施形態の構成を示す図である。図２に示した第１の実施形態との相違点は、各ポート１０５が仮想ネットワークと対応付けられている点である。その他の点は第１の実施形態と共通するので、以下、相違点を中心に説明する。
【００４４】
本実施形態では、例えば、仮想ネットワークＡ（仮想ＮＷ＿Ａ）に対応付けられているポートから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＡ１０６ａに格納される。同様に、仮想ネットワークＢ（仮想ＮＷ＿Ｂ）に対応付けられているポートから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＢ１０６ｂに格納される。
【００４５】
そして、スイッチ１０は、上記したラウンドロビン方式やポリシング方式等の予め定めた方式を用いて、キューを選択し、Ｐａｃｋｅｔ−Ｉｎメッセージを送信する。
【００４６】
以上のように、本実施形態によれば、仮想ネットワーク単位でのＰａｃｋｅｔ−Ｉｎメッセージの送信制御を行うことが可能となる。上記した第１の実施形態でも説明したように、ラウンドロビン方式におけるメッセージ処理数ｐ、ｑや、ポリシング方式におけるカウンタ比較用閾値（保証値）に違いを持たせることで、仮想ネットワーク間に優先度を設定することができる。
【００４７】
［第３の実施形態］
続いて、本発明の第３の実施形態について図面を参照して詳細に説明する。図７は、本発明の第３の実施形態の構成を示す図である。図２に示した第１の実施形態との相違点は、スイッチ１０が物理マシン上で動作する仮想スイッチ１０Ａとして構成され、同じく物理マシン上で動作する仮想マシン１０７から送信されるパケットのスイッチングを行う点である。その他の点は第１、第２の実施形態と共通するので、以下、相違点を中心に説明する。
【００４８】
本実施形態では、例えば、ある仮想マシン１０７に対応付けられている仮想ポート１０５Ａから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＡ１０６ａに格納される。同様に、他の仮想マシン１０７に対応付けられている仮想ポート１０５Ａから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＢ１０６ｂに格納される。
【００４９】
そして、仮想スイッチ１０Ａは、上記したラウンドロビン方式やポリシング方式等の予め定めた方式を用いて、キューを選択し、Ｐａｃｋｅｔ−Ｉｎメッセージを送信する。
【００５０】
以上のように、本実施形態によれば、仮想マシン単位でのＰａｃｋｅｔ−Ｉｎメッセージの送信制御を行うことが可能となる。上記した第１、第２の実施形態でも説明したように、ラウンドロビン方式におけるメッセージ処理数ｐ、ｑや、ポリシング方式におけるカウンタ比較用閾値（保証値）に違いを持たせることで、仮想マシン間に優先度を設定することができる。
【００５１】
［第４の実施形態］
続いて、本発明の第４の実施形態について図面を参照して詳細に説明する。図８は、本発明の第４の実施形態の構成を示す図である。図２に示した第１の実施形態との相違点は、スイッチ１０が物理マシン上で動作する仮想スイッチ１０Ａとして構成され、同じく物理マシン上で動作するアプリケーション（プログラム）１０８から送信されるパケットのスイッチングを行う点である。その他の点は第１〜第３の実施形態と共通するので、以下、相違点を中心に説明する。
【００５２】
本実施形態では、例えば、あるアプリケーション（プログラム）１０８からのパケットが入力される仮想ポート１０５Ａから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＡ１０６ａに格納される。同様に、他のアプリケーション（プログラム）１０８からのパケットが入力される仮想ポート１０５Ａから受信したパケットを処理するためのＰａｃｋｅｔ−ＩｎメッセージはキューＢ１０６ｂに格納される。
【００５３】
そして、仮想スイッチ１０Ａは、上記したラウンドロビン方式やポリシング方式等の予め定めた方式を用いて、キューを選択し、Ｐａｃｋｅｔ−Ｉｎメッセージを送信する。
【００５４】
以上のように、本実施形態によれば、アプリケーション（プログラム）毎にＰａｃｋｅｔ−Ｉｎメッセージの送信制御を行うことが可能となる。上記した第１〜第３の実施形態でも説明したように、ラウンドロビン方式におけるメッセージ処理数ｐ、ｑや、ポリシング方式におけるカウンタ比較用閾値（保証値）に違いを持たせることで、アプリケーション（プログラム）間に優先度を設定することができる。
【００５５】
［第５の実施形態］
続いて、制御装置から送信される制御情報の受理（処理）の順序制御を追加した本発明の第５の実施形態について説明する。図９に示すように、本発明の第５の実施形態のスイッチ１０は、複数の制御装置２０ａ、２０ｂと接続されており、これら制御装置２０ａ、２０ｂからの制御メッセージを格納するキューａ１０９ａとキューｂ１０９ｂを備えている点で、第１から第４の実施形態と異なっている。以下、第１の実施形態との相違点を中心に説明する。
【００５６】
キューａ１０９ａは、制御装置２０ａから受信した制御メッセージ、例えば、オープンフロープロトコルのフローエントリ設定メッセージを保存するために用いられる。同様にキューｂ１０９ｂは、制御装置２０ｂから受信した制御メッセージを保存する。
【００５７】
通信部１０２は、キューａ１０９ａ及びキューｂ１０９ｂから、順番にオープンフローの制御メッセージを取り出し、それを解釈して、フローエントリ記憶部１０４に記録する。このときの制御メッセージを取り出すキューの選択方法としては、制御部１０３がキュー１０６ａ、１０６ｂからメッセージを取り出す時と同様にラウンドロビン方式やポリシング方式を用いることができる。
【００５８】
本実施形態では、複数の制御装置からの制御情報を所定のルールで取り出し、フローエントリ記憶部１０４に登録することができる。この結果、スイッチ１０に対し、特定の機器だけがＰａｃｋｅｔ−Ｉｎメッセージを送信してその結果を受け取り、他の制御装置がＰａｃｋｅｔ−Ｉｎメッセージに対する応答を受信できなくなる事態の発生を回避することが可能となる。
【００５９】
なお、上記した実施形態では、スイッチ１０は、２台の制御装置が接続され、それに対応する２つのキューを有するものとして説明したが、任意の台数の制御装置と接続されているものとしてもよい。また、制御装置２０ａ、２０ｂとキュー１０９ａ、１０９ｂは、１：１に対応してもよいし、複数の制御装置のメッセージを１つのキューに保存するようにしてもよい。
【００６０】
また、通信部１０２は、フローエントリ記憶部１０４にフローエントリを登録するとともに、パケット処理部１０１に、制御メッセージを送信することとしてもよい。
【００６１】
また、上記した実施形態では、スイッチ１０が、キューＡ１０６ａとキューＢ１０６ｂを備えＰａｃｋｅｔ−Ｉｎメッセージの送信順序の制御も行うものとして説明したが、Ｐａｃｋｅｔ−Ｉｎメッセージの送信順序の制御を省略する構成も採用可能である。この場合、制御装置２０ａ、２０ｂに対し、新規パケットを受信した順序で、Ｐａｃｋｅｔ−Ｉｎメッセージを送信し、その応答の受理（処理）順序の制御が行われることになる。
【００６２】
以上、本発明の各実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態で用いたネットワーク構成や、ポートやキューの数はあくまで一例であり、その数に制約は無い。
【００６３】
また上記した実施形態では、制御部１０３は、Ｐａｃｋｅｔ−Ｉｎメッセージの生成契機となったパケットの受信ポートに基づいてキューへの格納を行うものとして説明したが、前記受信ポートの代わりに、パケットのヘッダ情報を用いることも可能である。このようにすれば、特定のユーザや特定の宛先へのパケットを処理するためのＰａｃｋｅｔ−Ｉｎメッセージを優先したり、後回しにするといった制御が可能となる。
【００６４】
なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６５】
１０  スイッチ
１０Ａ  仮想スイッチ
２０、２０ａ、２０ｂ  制御装置
１０１  パケット処理部
１０２  通信部
１０３  制御部
１０４  フローエントリ記憶部
１０５  ポート
１０５Ａ  仮想ポート
１０６ａ、１０６ｂ、１０９ａ、１０９ｂ  キュー
１０７  仮想マシン
１０８  アプリケーション（プログラム）
【図１】
2014010723.tif 000003
【図２】
2014010723.tif 000004
【図３】
2014010723.tif 000005
【図４】
2014010723.tif 000006
【図５】
2014010723.tif 000007
【図６】
2014010723.tif 000008
【図７】
2014010723.tif 000009
【図８】
2014010723.tif 000010
【図９】
2014010723.tif 000011
【国際調査報告】
2014010723.tif 000012
2014010723.tif 000013