(57)【要約】  スイッチシステムは、経路制御を意識することなくモニタリングの粒度を自由に変更可能にする。例えば、オープンフロー（ＯｐｅｎＦｌｏｗ）技術に準拠した通信機器の制御プロトコルを使用し、スイッチシステムのモニタリング機能を制御することにより、ネットワーク全体として集中制御可能なモニタリングを実現し、そのモニタリング結果を経路制御へ反映する。ここで、スイッチは、内部に、パケット転送用のフローテーブルと、モニタリング用のフローテーブルを持ち、１つのパケットに対して両テーブルを検索し、それぞれのエントリに登録された動作を実施するマルチヒット動作を行う。すなわち、両テーブルを検索し、該当する全てのフローエントリに従って、当該パケットを転送する。
2012049960.tif 000002
【特許請求の範囲】
【請求項１】
内部のフローテーブルに登録されたフローエントリに従ってパケットを転送するスイッチと、
前記スイッチからパケットについての問い合わせを受けた際に、前記スイッチの内部のフローテーブルに、当該パケットについてのルールとアクションとを定義したフローエントリを登録するコントローラーと、
前記スイッチに接続された隣接スイッチと
を含み、
前記スイッチは、
ルールに該当するパケットを前記コントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルと、
ルールに該当するパケットを前記隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルと
を含む
スイッチシステム。
【請求項２】
請求項１に記載のスイッチシステムであって、
前記コントローラーは、ルールに該当するパケットをコピーして前記コントローラーに転送するためのミラーリング用エントリを前記第１テーブルに登録し、更に、前記スイッチから転送されたパケットを解析し、解析結果を基に、当該パケットについての統計情報を取得するための統計用エントリを前記第１テーブルに登録し、更に、前記スイッチから通知された統計情報を基に、前記パケット転送用エントリを前記第２テーブルに登録し、
前記スイッチは、前記ミラーリング用エントリに従い、ルールに該当するパケットをコピーして前記コントローラーに転送し、更に、前記統計用エントリに従い、ルールに該当するパケットについての統計情報を取得して前記コントローラーに通知する
スイッチシステム。
【請求項３】
請求項１又は２に記載のスイッチシステムであって、
前記第１テーブルには、予め全てのパケットを前記コントローラーに転送するための第１デフォルトエントリが登録されており、
前記第２テーブルには、予め全てのパケットを前記隣接スイッチに転送するための第２デフォルトエントリが登録されており、
前記スイッチは、最初、前記第１デフォルトエントリ及び前記第２デフォルトエントリの各々に従ってパケットを転送し、
前記コントローラーは、前記スイッチから転送されたパケットについて、該当するパケット転送用エントリがあれば、当該パケット転送用エントリを前記第１テーブルに登録し、当該パケット転送用エントリと同じルールで、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを前記第２テーブルに登録する
スイッチシステム。
【請求項４】
ルールに該当するパケットを前記コントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルと、
ルールに該当するパケットを前記隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルと、
前記問い合わせ用エントリ及び前記パケット転送用エントリの各々に従ってパケットを転送する手段と
を具備する
スイッチ。
【請求項５】
請求項４に記載のスイッチであって、
ルールに該当するパケットをコピーして前記コントローラーに転送するためのミラーリング用エントリを前記第１テーブルに登録する手段と、
前記ミラーリング用エントリに従い、ルールに該当するパケットをコピーして前記コントローラーに転送する手段と、
前記コントローラーにパケットを転送した際、前記コントローラーからの制御により、当該パケットについての統計情報を取得するための統計用エントリを前記第１テーブルに登録する手段と、
前記統計用エントリに従い、ルールに該当するパケットについての統計情報を取得して前記コントローラーに通知する手段と、
前記コントローラーに統計情報を通知した際、前記コントローラーからの制御により、前記パケット転送用エントリを前記第２テーブルに登録する手段と
を更に具備する
スイッチ。
【請求項６】
請求項４又は５に記載のスイッチであって、
前記第１テーブルには、予め全てのパケットを前記コントローラーに転送するための第１デフォルトエントリが登録されており、
前記第２テーブルには、予め全てのパケットを前記隣接スイッチに転送するための第２デフォルトエントリが登録されており、
最初、前記第１デフォルトエントリ及び前記第２デフォルトエントリの各々に従ってパケットを転送する手段と、
前記コントローラーにパケットを転送した際、前記コントローラーからの制御により、当該パケットについてのパケット転送用エントリを前記第１テーブルに登録する手段と、
当該パケット転送用エントリと同じルールで、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを前記第２テーブルに登録する手段と
を更に具備する
スイッチ。
【請求項７】
スイッチの内部に、フローテーブルとして、ルールに該当するパケットをコントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルを設けることと、
前記スイッチの内部に、フローテーブルとして、ルールに該当するパケットを隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルを設けることと、
前記スイッチにおいて、内部のフローテーブルに登録されたフローエントリに従ってパケットを転送することと、
前記コントローラーにおいて、前記スイッチからパケットについての問い合わせを受けた際に、前記スイッチの内部のフローテーブルに、当該パケットについてのルールとアクションとを定義したフローエントリを登録することと
を含む
モニタリング集中管理方法。
【請求項８】
請求項７に記載のモニタリング集中管理方法であって、
前記コントローラーから、前記第１テーブルに、ルールに該当するパケットをコピーして前記コントローラーに転送するためのミラーリング用エントリを登録することと、
前記スイッチにおいて、前記ミラーリング用エントリに従い、ルールに該当するパケットをコピーして前記コントローラーに転送することと、
前記コントローラーにおいて、前記スイッチから転送されたパケットを解析することと、
解析結果を基に、前記コントローラーから、前記第１テーブルに、当該パケットについての統計情報を取得するための統計用エントリを登録することと、
前記スイッチにおいて、前記統計用エントリに従い、ルールに該当するパケットについての統計情報を取得して前記コントローラーに通知することと、
前記スイッチから転送された統計情報を基に、前記コントローラーから、前記第２テーブルに、前記パケット転送用エントリを登録することと
を更に含む
モニタリング集中管理方法。
【請求項９】
請求項７又は８に記載のモニタリング集中管理方法であって、
前記第１テーブルに、予め全てのパケットを前記コントローラーに転送するための第１デフォルトエントリを登録しておくことと、
前記第２テーブルに、予め全てのパケットを前記隣接スイッチに転送するための第２デフォルトエントリを登録しておくことと、
前記スイッチにおいて、最初、前記第１デフォルトエントリ及び前記第２デフォルトエントリの各々に従ってパケットを転送することと、
前記コントローラーにおいて、前記スイッチから転送されたパケットについて、該当するパケット転送用エントリがあれば、当該パケット転送用エントリを前記第１テーブルに登録することと、
前記コントローラーにおいて、当該パケット転送用エントリと同じルールで、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを前記第２テーブルに登録することと
を更に含む
モニタリング集中管理方法。
【請求項１０】
ルールに該当するパケットを前記コントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルを参照するステップと、
ルールに該当するパケットを前記隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルを参照するステップと、
前記問い合わせ用エントリ及び前記パケット転送用エントリの各々に従ってパケットを転送するステップと
をスイッチに実行させるためのプログラムを格納した
記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチシステムに関し、特に経路制御を行うスイッチシステムに関する。
【背景技術】
【０００２】
従来技術では、スイッチシステムを構成するそれぞれのスイッチに、「ｓＦｌｏｗ」、「ＲＳＰＡＮ（Ｒｅｍｏｔｅ  Ｓｗｉｔｃｈｅｄ  Ｐｏｒｔ  Ａｎａｌｙｚｅｒ）」等のモニタリング（ｍｏｎｉｔｏｒｉｎｇ：監視）機能は存在している。そのため、それぞれのスイッチで、モニタリングが可能であったが、そのモニタリングの機能を集中制御することは困難であった。【０００３】
ｓＦｌｏｗ等のように集中制御できる方式もあるが、それぞれのスイッチにコンフィグレーションが必要であったり、モニタリング自体の粒度が制限されていたりと制約も多く、モニタリングの機能を集中制御する際に自由度が無かった。【０００４】
また、集中制御できる方式といえども、それはあくまでモニタリングのみの集中制御であり、経路制御と連動することはできなかった。そのため、モニタリングした結果も踏まえてモニタリングの粒度を変更したり、モニタリングの結果を踏まえてネットワークの経路制御に反映したりすることはできなかった。【０００５】
現在、ネットワーク通信の経路制御方式の１つとして、通信機器の制御プロトコルであるオープンフロー（ＯｐｅｎＦｌｏｗ）技術を使用した経路制御方式が研究されている。オープンフロー技術の詳細については、非特許文献１、２に記載されている。オープンフロー技術による経路制御が行われるネットワークを、オープンフローネットワークと呼ぶ。【０００６】
オープンフローネットワークでは、ＯＦＣ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）等のコントローラーが、ＯＦＳ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）等のスイッチのフローテーブル（Ｆｌｏｗ  Ｔａｂｌｅ）を操作することによりスイッチの挙動を制御する。コントローラーとスイッチの間は、コントローラーがオープンフロープロトコルに準拠した制御メッセージを用いてスイッチを制御するためのセキュアチャネル（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）により接続されている。【０００７】
オープンフローネットワークにおけるスイッチとは、オープンフローネットワークを形成し、コントローラーの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット（通信データ）の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー（Ｆｌｏｗ）と呼ぶ。【０００８】
フローテーブルとは、所定のルール（マッチ条件）に適合（Ｈｉｔ）するパケット群（パケット系列）に対して行うべき所定のアクション（所定の処理）を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）が登録されたテーブルである。【０００９】
フローエントリのルールは、パケットの各プロトコル階層のヘッダ（ｈｅａｄｅｒ）領域に含まれる宛先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、宛先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）のいずれか又は全てを用いた様々な組合せにより定義され、区別可能である。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。【００１０】
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報（出力ポート番号等）が示されている場合、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されている場合、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。【００１１】
オープンフローネットワークにおけるスイッチは、フローテーブルに登録されたフローエントリのルールに適合（Ｈｉｔ）するパケット群に対して、当該フローエントリのアクションを実行する。【００１２】
オープンフロー技術を使用した制御方式においても、フローエントリ毎に統計情報を取得することによる通信のモニタリングは可能である。【００１３】
しかし、オープンフロー技術をそのまま使用するだけの制御方式では、統計情報はフローの経路制御エントリと一対一の関係であるため、モニタリングの粒度を自由に変更するには、フローの経路制御エントリを意識して設定する必要があった。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】“Ｔｈｅ  ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｃｏｎｓｏｒｔｉｕｍ”  ＜ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／＞
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）  Ｄｅｃｅｍｂｅｒ  ３１，  ２００９”  ＜ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ＞
【発明の概要】
【００１５】
本発明の目的は、スイッチシステムのモニタリングを集中制御できるスイッチシステムを提供することにある。
【００１６】
本発明のスイッチシステムは、スイッチと、コントローラーと、隣接スイッチとを含む。スイッチは、内部のフローテーブルに登録されたフローエントリに従ってパケットを転送する。コントローラーは、スイッチからパケットについての問い合わせを受けた際に、スイッチの内部のフローテーブルに、当該パケットについてのルール（マッチ条件）とアクション（所定の処理）とを定義したフローエントリを登録する。隣接スイッチは、スイッチに接続されている。ここで、スイッチは、ルール（マッチ条件）に該当するパケットをコントローラーに転送するための問い合わせ用エントリを登録するための第１テーブル（図１〜図１０及び図１３〜図１５のモニタリング用テーブル１０７、図１６〜図１７の転送用テーブルＡ１０６−１）と、ルール（マッチ条件）に該当するパケットを隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブル（図１〜図１０及び図１３〜図１５の転送用テーブル１０６、図１６〜図１７の転送用テーブルＢ１０６−２）とを含む。
【００１７】
本発明に係るスイッチは、ルール（マッチ条件）に該当するパケットをコントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルと、ルール（マッチ条件）に該当するパケットを隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルと、問い合わせ用エントリ及びパケット転送用エントリの各々に従ってパケットを転送する転送部とを備える。
【００１８】
本発明のモニタリング集中管理方法では、スイッチの内部に、フローテーブルとして、ルール（マッチ条件）に該当するパケットをコントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルを設ける。また、スイッチの内部に、フローテーブルとして、ルール（マッチ条件）に該当するパケットを隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルを設ける。また、スイッチにおいて、内部のフローテーブルに登録されたフローエントリに従ってパケットを転送する。また、コントローラーにおいて、スイッチからパケットについての問い合わせを受けた際に、スイッチの内部のフローテーブルに、当該パケットについてのルール（マッチ条件）とアクション（所定の処理）とを定義したフローエントリを登録する。
【００１９】
本発明に係るプログラムは、ルール（マッチ条件）に該当するパケットをコントローラーに転送するための問い合わせ用エントリを登録するための第１テーブルを参照するステップと、ルール（マッチ条件）に該当するパケットを隣接スイッチに転送するためのパケット転送用エントリを登録するための第２テーブルを参照するステップと、問い合わせ用エントリ及びパケット転送用エントリの各々に従ってパケットを転送するステップとをスイッチに実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
【００２０】
これにより、モニタリングの粒度が自由に変更可能になり、ネットワークの経路制御への反映を自由に行えるようになる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１実施形態におけるスイッチシステムの構成例を示す図である。
【図２】本発明の第１実施形態における、フローテーブルにエントリを登録する場合の制御の流れを説明するための図である。
【図３】本発明の第１実施形態における、統計情報を取得する場合の制御の流れを説明するための図である。
【図４】本発明の第１実施形態における、転送用テーブルに従ったパケット転送の際の制御の流れについて説明するための図である。
【図５】本発明の第１実施形態における、モニタリング用テーブルへのミラーリング用エントリ登録の際の制御の流れを説明するための図である。
【図６】本発明の第１実施形態における、コントローラーへの問い合わせの際の制御の流れを説明するための図である。
【図７】本発明の第１実施形態における、モニタリング用テーブルへの統計用エントリ登録の際の制御の流れを説明するための図である。
【図８】本発明の第１実施形態における、コントローラーへの統計情報の通知の際の制御の流れを説明するための図である。
【図９】本発明の第１実施形態における、転送用テーブルへのパケット転送用エントリ登録の際の制御の流れを説明するための図である。
【図１０Ａ】本発明の第１実施形態におけるスイッチシステムの動作を表したシーケンス図である。
【図１０Ｂ】本発明の第１実施形態におけるスイッチシステムの動作を表したシーケンス図である。
【図１１】本発明の第２実施形態における、モニタリング用テーブルが存在しない場合のパケット転送時の制御の流れを説明するための図である。
【図１２】本発明の第２実施形態における、モニタリング用テーブルが存在しない場合のスイッチの起動時の制御の流れを説明するための図である。
【図１３】本発明の第２実施形態における、ファーストパケット転送時の制御の流れを説明するための図である。
【図１４】本発明の第２実施形態における、モニタリング用テーブル利用時の制御の流れを説明するための図である。
【図１５】本発明の第２実施形態における、本発明の第２実施形態におけるスイッチシステムの動作を表したシーケンス図である。
【図１６】本発明の第３実施形態における、ファーストパケット転送時の制御の流れを説明するための図である。
【図１７】本発明の第３実施形態における、経路制御を行った状態を説明するための図である。
【発明を実施するための形態】
【００２２】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００２３】
［システム構成］
図１に示すように、本発明の第１実施形態におけるスイッチシステムは、スイッチ１０１と、コントローラー１０２と、隣接スイッチ１０３を含む。
【００２４】
スイッチ１０１は、スイッチ本体を表す。なお、スイッチ１０１は、制御プロトコル（例えばオープンフロー等）に対応し、パケット転送用のテーブルやモニタリング用のテーブルを集中管理する外部のコントローラーから変更可能であるものとする。
【００２５】
コントローラー１０２は、制御プロトコルに準拠して、セキュアチャネル経由で、スイッチ１０１を制御する。
【００２６】
隣接スイッチ１０３は、スイッチ１０１に隣接する。
【００２７】
［ハードウェアの例示］
スイッチ１０１及び隣接スイッチ１０３の例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチ（ｎｅｔｗｏｒｋ  ｓｗｉｔｃｈ）、マルチレイヤスイッチ（ｍｕｌｔｉ−ｌａｙｅｒ  ｓｗｉｔｃｈ）等が考えられる。マルチレイヤスイッチは、サポートするＯＳＩ参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層（第３層）のデータを読むレイヤ３スイッチ、トランスポート層（第４層）のデータを読むレイヤ４スイッチ、アプリケーション層（第７層）のデータを読むレイヤ７スイッチ（アプリケーションスイッチ）がある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ１０１及び隣接スイッチ１０３は、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ１０１及び隣接スイッチ１０３の代替例として、ルータ（ｒｏｕｔｅｒ）、プロキシ（ｐｒｏｘｙ）、ゲートウェイ（ｇａｔｅｗａｙ）、ファイアウォール（ｆｉｒｅｗａｌｌ）、ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ：負荷分散装置）、帯域制御装置（ｐａｃｋｅｔ  ｓｈａｐｅｒ）、セキュリティ監視制御装置（ＳＣＡＤＡ：Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）、ゲートキーパー（ｇａｔｅｋｅｅｐｅｒ）、基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）、アクセスポイント（ＡＰ：Ａｃｃｅｓｓ  Ｐｏｉｎｔ）、通信衛星（ＣＳ：Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ）、或いは、複数の通信ポートを有する計算機等も考えられる。
【００２８】
コントローラー１０２の例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、コントローラー１０２は、物理マシン上に構築された仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）でも良い。
【００２９】
スイッチ１０１、コントローラー１０２、及び隣接スイッチ１０３を接続するネットワークの例として、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を想定している。他の例として、インターネット、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等も考えられる。
【００３０】
図示しないが、スイッチ１０１、コントローラー１０２、及び隣接スイッチ１０３は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェース（Ｉ／Ｆ：ｉｎｔｅｒｆａｃｅ）とによって実現される。
【００３１】
上記のプロセッサの例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラー、或いは、専用の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。
【００３２】
上記のメモリの例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を用いたストレージ装置でも良い。
【００３３】
上記の通信用インターフェースの例として、ネットワーク通信に対応した基板（マザーボード、Ｉ／Ｏボード）やチップ等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。
【００３４】
但し、実際には、これらの例に限定されない。
【００３５】
スイッチ１０１は、ハードウェア転送部（スイッチング部）１０４と、フローテーブル１０５と、プロトコル制御部１０８を備える。
【００３６】
ハードウェア転送部１０４は、スイッチングを行い、スイッチ外部から受信したパケットや、スイッチ内部にあるパケットをハードウェア転送する。ハードウェア転送とは、スイッチにおいて、ＣＰＵを介在することなく、例えばスイッチチップ内に閉じて転送することである。
【００３７】
フローテーブル１０５は、転送用テーブル１０６と、モニタリング用テーブル１０７を含む。
【００３８】
転送用テーブル１０６は、パケット転送用エントリを登録するための転送用のフローテーブルを表す。パケット転送用エントリとは、ルール（マッチ条件）に該当するパケットを、スイッチ１０１の所定のポート（Ｐｏｒｔ）に転送し、当該ポートの出力先にある隣接スイッチ１０３にハードウェア転送するためのフローエントリである。
【００３９】
モニタリング用テーブル１０７は、ミラーリング用エントリ及び統計用エントリを登録するためのモニタリング用のフローテーブルを表す。ミラーリング用エントリとは、ルール（マッチ条件）に該当するパケットをコントローラー１０２に転送（ミラーリング）するためのフローエントリである。ミラーリングとは、対象のネットワークに流れているパケットを通常通り転送しつつ、当該パケットをコピー（複写）して任意の転送先に転送することである。ネットワーク通信においては、受信した１つの通信データを複写して複数の転送先に転送することも可能である。統計用エントリとは、ルール（マッチ条件）に該当するパケットについての統計情報を取得するためのフローエントリである。ミラーリング用エントリ及び統計用エントリは、コントローラー１０２への問い合わせ用エントリの１つであるといえる。
【００４０】
プロトコル制御部１０８は、オープンフロー（ＯｐｅｎＦｌｏｗ）技術を使用した制御を行う。プロトコル制御部１０８は、ハードウェア転送部１０４から受け取ったパケットをコントローラー１０２に送信し、コントローラー１０２からの制御に応じて、フローテーブル１０５へのエントリの登録・変更を行う。
【００４１】
パケット１０９は、スイッチ１０１が受信したパケットを表す。
【００４２】
経路１１０は、スイッチ１０１とコントローラー１０２との間の経路を表す。ハードウェア転送部１０４は、受信パケットについてフローテーブル１０５を検索した結果、モニタリング用テーブル１０７内に適合（Ｈｉｔ）したエントリがあれば、当該エントリにしたがって、経路１１０と接続された出力ポートに当該受信パケットを出力し、経路１１０を経由してコントローラー１０２に転送する。
【００４３】
経路１１１は、スイッチ１０１と隣接スイッチ１０３との間の経路を表す。ハードウェア転送部１０４は、受信パケットについてフローテーブル１０５を検索した結果、転送用テーブル１０６内に適合（Ｈｉｔ）したエントリがあれば、当該エントリにしたがって、経路１１１と接続された出力ポートに当該受信パケットを出力し、経路１１１を経由して隣接スイッチ１０３に転送する。
【００４４】
［パケット受信時の動作］
図１では、スイッチにてパケットを受信時の動作を表している。
【００４５】
ハードウェア転送部１０４は、パケット１０９を受信した時、フローテーブル１０５に所属している転送用テーブル１０６、及びモニタリング用テーブル１０７に登録されているエントリを検索し、パケット１０９の情報と比較を行い、エントリの条件にパケット１０９が合致している場合、パケット１０９に対し、そのエントリに記されているアクション（所定の処理）を行う。
【００４６】
例えば、ハードウェア転送部１０４は、エントリのアクション（所定の処理）として、当該パケットを隣接スイッチ１０３にハードウェア転送する旨が記されている場合、パケット１０９を、経路１１１を通して隣接スイッチ１０３へハードウェア転送する。
【００４７】
また、ハードウェア転送部１０４は、エントリのアクション（所定の処理）として、当該パケットをコントローラー１０２へ転送する旨が記されている場合、プロトコル制御部１０８を経由し、スイッチ１０１とコントローラー１０２間で規定されたプロトコルのルールに従い、経路１１０を通してコントローラー１０２へ転送する。
【００４８】
なお、本発明では、ハードウェア転送部１０４は、１つの受信パケットに対して、転送用テーブル１０６とモニタリング用テーブル１０７のそれぞれのエントリを検索し、両テーブルに合致する条件のエントリがあった場合、両方のエントリに記載されているアクション（所定の処理）を同時に実施する「マルチヒット動作」を行うものとする。
【００４９】
例えば、ハードウェア転送部１０４は、１つのパケット１０９に合致するエントリが転送用テーブル１０６、及びモニタリング用テーブル１０７の両方にあり、転送用テーブル１０６のエントリのアクション（所定の処理）には「隣接スイッチ１０３へのハードウェア転送」が記され、モニタリング用テーブル１０７のアクション（所定の処理）には「コントローラー１０２への転送（ミラーリング）」が記されていた場合、パケット１０９を受信すると、経路１１１を通して隣接スイッチ１０３にハードウェア転送し、同時に、経路１１０を通してコントローラー１０２へも転送（ミラーリング）する。
【００５０】
［フローテーブルにエントリを登録する場合］
図２を参照して、コントローラーからスイッチのフローテーブルに対してエントリを登録する場合について説明する。
【００５１】
エントリ登録１１２は、モニタリング用テーブル１０７にミラーリング用エントリ及び統計用エントリを登録する場合の制御（データ）の流れを表す。
【００５２】
エントリ登録１１３は、転送用テーブル１０６にパケット転送用エントリを登録する場合の制御（データ）の流れを表す。
【００５３】
コントローラー１０２からモニタリング用テーブル１０７にミラーリング用エントリや統計用エントリを登録する場合、エントリ登録１１２のように、コントローラー１０２とスイッチ１０１内部のプロトコル制御部１０８との間でプロトコルに従ったプロトコルメッセージを使用し、コントローラー１０２からエントリ登録要求を行う。プロトコル制御部１０８は、コントローラー１０２からエントリ登録要求を受けると、エントリ登録要求の内容に応じて、モニタリング用テーブル１０７に対して、ミラーリング用エントリや統計用エントリを登録する。
【００５４】
コントローラー１０２から転送用テーブル１０６にパケット転送用エントリを登録する場合、エントリ登録１１３のように、コントローラー１０２とスイッチ１０１内部のプロトコル制御部１０８との間で規定されているプロトコルに従ったプロトコルメッセージを使用し、コントローラー１０２からエントリ登録要求を行う。プロトコル制御部１０８は、コントローラー１０２からエントリ登録要求を受けると、エントリ登録要求の内容に応じて、転送用テーブル１０６に対して、パケット転送用エントリを登録する。
【００５５】
［統計情報を取得する場合］
図３を参照して、コントローラーからスイッチの統計情報を取得する場合について説明する。
【００５６】
統計情報取得要求１１４は、統計情報を取得するためのリクエスト制御（データ）の流れを表す。
【００５７】
統計情報応答１１５は、統計情報をコントローラー１０２へ送る制御（データ）の流れを表す。
【００５８】
コントローラー１０２からスイッチ１０１に統計情報の取得を要求する場合、統計情報取得要求１１４のように、コントローラー１０２とスイッチ１０１内部のプロトコル制御部１０８との間で規定されたプロトコルに従ったプロトコルメッセージを使用し、コントローラー１０２から統計情報取得要求を行う。プロトコル制御部１０８は、コントローラー１０２から統計情報取得要求を受けると、モニタリング用テーブル１０７に対して統計情報取得を行う。ここでは、プロトコル制御部１０８は、統計用エントリにヒット（該当）するパケットの統計情報を収集し、モニタリング用テーブル１０７に蓄積する。
【００５９】
スイッチ１０１からコントローラー１０２に取得した統計情報を応答する場合、統計情報応答１１５のように、モニタリング用テーブル１０７は、統計情報取得要求１１４を受け、プロトコル制御部１０８に対して、統計情報を応答する。プロトコル制御部１０８は、プロトコルに従ったプロトコルメッセージを使用し、コントローラー１０２に対して、統計情報応答１１５により、取得した統計情報を応答する。
【００６０】
［ネットワークのシステム視点］
図４から図９において、ネットワークのシステム視点で、本発明の第１実施形態における制御（データ）の流れを表す。
【００６１】
本実施形態では、制御プロトコル（例えばオープンフロー等）に準拠して、スイッチのパケットの転送用テーブルをコントローラーから変更する集中管理型のネットワークであることを前提とする。
【００６２】
なお、スイッチ１０１、コントローラー１０２については、図１と同様である。
【００６３】
［パケット転送］
図４を参照して、転送用テーブルに従ったパケット転送の例について説明する。
【００６４】
パケット２０５は、スイッチ１０１が受信したパケットを表す。なお、パケット２０５は、図１のパケット１０９に相当する。
【００６５】
パケット２０６は、内部構成として「“Ａ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【００６６】
パケット２０７は、内部構成として「“Ａ”、“ａ”、“２”、“ＤＡＴＡ”」を含むパケットを表す。
【００６７】
パケット２０８は、内部構成として「“Ａ”、“ｂ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【００６８】
パケット２０９は、内部構成として「“Ｂ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【００６９】
パケット群２１０は、スイッチ１０１のポートの１つである「Ｐｏｒｔ１」から出力されたパケット群を表す。ここでは、パケット群２１０は、パケット２０６と、パケット２０７と、パケット２０８を含む。
【００７０】
パケット群２１１は、スイッチ１０１のポートの１つである「Ｐｏｒｔ２」から出力されたパケット群を表す。ここでは、パケット群２１１は、パケット２０９を含む。
【００７１】
エントリ２１２は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリを表す。
【００７２】
エントリ２１３は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリを表す。
【００７３】
図４は、モニタリング用テーブル１０７にエントリが無く、転送用テーブル１０６にエントリ２１２とエントリ２１３が既に登録されており、パケットの転送のみ行っている通常状態である。
【００７４】
スイッチ１０１が受信する可能性のあるパケットとしては、パケットの内部構成に応じて、パケット２０６、パケット２０７、パケット２０８、パケット２０９がある。
【００７５】
スイッチ１０１の内部にあるハードウェア転送部１０４は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリ（エントリ２１２）に従い、パケット２０６、パケット２０７、パケット２０８を、パケット群２１０として「Ｐｏｒｔ１」から出力する。
【００７６】
また、スイッチ１０１の内部にあるハードウェア転送部１０４は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリ（エントリ２１３）に従い、パケット２０９を、パケット群２１１として「Ｐｏｒｔ２」から出力する。
【００７７】
［モニタリング用テーブルへのミラーリング用エントリ登録］
図５を参照して、モニタリング用テーブルへのミラーリング用エントリ登録の例について説明する。
【００７８】
エントリ登録２１４は、コントローラー１０２から、制御プロトコルに準拠して、セキュアチャネル経由で、スイッチ１０１のモニタリング用テーブル１０７にミラーリング用エントリを登録する場合の制御（データ）の流れを表す。
【００７９】
エントリ２１５は、モニタリング用テーブル１０７に登録されているモニタリング用エントリの１つであり、「“Ａ”を含むパケット」をコントローラー１０２に転送（ミラーリング）するためのミラーリング用エントリを表す。
【００８０】
例えば、図４の状態において、「Ｐｏｒｔ１」の先で輻輳が発生した場合等、パケット転送用のエントリ２１２に含まれる通信を解析し、原因を特定したい時に、図５に示すミラーリング用エントリ登録を行う。
【００８１】
まず、エントリ登録２１４で示すように、コントローラー１０２からスイッチ１０１のモニタリング用テーブル１０７に「“Ａ”を含むパケット」をコントローラーに転送（ミラーリング）するというエントリ２１５を登録する。
【００８２】
ここでは、コントローラー１０２は、スイッチ１０１内部のプロトコル制御部１０８に対して、プロトコルに従ったプロトコルメッセージを送信し、エントリ登録要求を行う。
【００８３】
プロトコル制御部１０８は、コントローラー１０２からエントリ登録要求を受けると、エントリ登録要求の内容に応じて、モニタリング用テーブル１０７に対して、ミラーリング用のエントリ２１５を登録する。
【００８４】
なお、コントローラー１０２は、転送用テーブル２１２の制御も行っているため、エントリ２１５の条件を選定するのは可能である。
【００８５】
［コントローラーへの問い合わせ］
図６を参照して、既存のエントリにヒットするものがない未知のパケットについて、コントローラーへの問い合わせを行う処理の例について説明する。
【００８６】
パケット２１６は、スイッチ１０１からコントローラー１０２に転送されるパケット（ミラーパケット）を表す。
【００８７】
スイッチ１０１の内部にあるプロトコル制御部１０８は、図５でモニタリング用テーブル１０７に登録したエントリ２１５に従い、図６のパケット２１６のように、コントローラー１０２に対して、「“Ａ”を含むパケット」をミラーパケットとして送信する。
【００８８】
なお、スイッチ１０１の内部のハードウェア転送部１０４では、転送用テーブル１０６とモニタリング用テーブル１０７のマルチヒット動作を行うため、通常の転送（パケット群２１０、パケット群２１１）の処理をそのまま継続した状態で、パケット２１６のミラーリングが可能である。
【００８９】
また、ミラーリングすることにより、コントローラー１０２は、「Ｐｏｒｔ１」に転送されるパケット群２１０の中に、パケット２０６、パケット２０７、パケット２０８が存在することを認識することができる。
【００９０】
［モニタリング用テーブルへの統計用エントリ登録］
図７を参照して、モニタリング用テーブルへの統計用エントリ登録の例について説明する。
【００９１】
エントリ登録２１７は、コントローラー１０２から、制御プロトコルに準拠して、セキュアチャネル経由で、スイッチ１０１のモニタリング用テーブル１０７に統計用エントリを登録する場合の制御（データ）の流れを表す。
【００９２】
エントリ２１８は、モニタリング用テーブル１０７に登録されているモニタリング用エントリの１つであり、「“Ａ”を含むパケット」に適合（Ｈｉｔ）する統計用エントリを表す。
【００９３】
コントローラー１０２は、図６のモニタリング結果（ミラーパケット）を受けて、図７のエントリ登録２１７のように、「“Ａ”を含むパケット」という粒度よりも更に細かい粒度の「“Ａ”、“ａ”を含むパケット」という条件の統計情報収集用のエントリ２１８をモニタリング用テーブル１０７に登録する。
【００９４】
ここでは、コントローラー１０２は、スイッチ１０１内部のプロトコル制御部１０８に対して、プロトコルに従ったプロトコルメッセージを送信し、エントリ登録要求を行う。
【００９５】
プロトコル制御部１０８は、コントローラー１０２からエントリ登録要求を受けると、エントリ登録要求の内容に応じて、モニタリング用テーブル１０７に対して、統計情報収集用のエントリ２１８を登録する。
【００９６】
［コントローラーへの統計情報の通知］
図８を参照して、コントローラーに対する統計情報の通知の例について説明する。
【００９７】
統計情報２１９は、スイッチ１０１からコントローラー１０２に送られた統計情報を表す。
【００９８】
スイッチ１０１は、図７で登録されたエントリ２１８にヒットするパケットに対して、図８で示すように、統計情報の取得を行う。スイッチ１０１は、エントリ２１８にヒットしたパケットの統計情報２１９をコントローラー１０２へ送信する。
【００９９】
［転送用テーブルへのパケット転送用エントリ登録］
図９を参照して、統計情報に基づく転送用テーブルへのパケット転送用エントリ登録の例について説明する。
【０１００】
パケット群２１０は、スイッチ１０１の「Ｐｏｒｔ１」から出力されたパケット群を表す。ここでは、パケット群２１０は、パケット２０８を含む。
【０１０１】
パケット群２１１は、スイッチ１０１の「Ｐｏｒｔ２」から出力されたパケット群を表す。ここでは、パケット群２１１は、パケット２０６と、パケット２０７と、パケット２０９を含む。
【０１０２】
エントリ登録２２０は、コントローラー１０２から、制御プロトコルに準拠して、セキュアチャネル経由で、スイッチ１０１の転送用テーブル１０６にパケット転送用エントリを登録する場合の制御（データ）の流れを表す。
【０１０３】
エントリ２２１は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ａ”、“ａ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリを表す。
【０１０４】
コントローラー１０２は、図８の統計情報の収集結果等を踏まえて、エントリ登録２２０のように、「“Ａ”、“ａ”を含むパケット」を「Ｐｏｒｔ２」へ転送するというエントリ２２１を転送用テーブルに登録し、「“Ａ”、“ａ”を含むパケット」を「Ｐｏｒｔ２」から送信されるパケット群２１１に変更する。
【０１０５】
ここでは、コントローラー１０２は、スイッチ１０１内部のプロトコル制御部１０８に対して、規定されているプロトコルに従ったプロトコルメッセージを送信し、エントリ登録要求を行う。
【０１０６】
プロトコル制御部１０８は、コントローラー１０２からエントリ登録要求を受けると、エントリ登録要求の内容に応じて、転送用テーブル１０６に対して、パケット転送用のエントリ２２１を登録する。
【０１０７】
スイッチ１０１の内部にあるハードウェア転送部１０４は、転送用テーブル１０６に登録されているエントリ２２１に従い、「“Ａ”、“ａ”を含むパケット」であるパケット２０６、パケット２０７を、パケット群２１１に加えて、「Ｐｏｒｔ２」から出力する。この場合、ハードウェア転送部１０４は、パケット２０８を、パケット群２１０として「Ｐｏｒｔ１」から出力し、パケット２０６、パケット２０７、パケット２０９を、パケット群２１１として「Ｐｏｒｔ２」から出力する。
【０１０８】
このように、本実施形態では、コントローラーがモニタリング処理を集中制御しているため、モニタリング結果をスイッチの経路制御に反映することができる。
【０１０９】
［動作シーケンス］
図１０Ａ、図１０Ｂを参照して、本発明の第１実施形態におけるスイッチシステムの動作を表したシーケンスについて説明する。
【０１１０】
なお、スイッチ１０１、コントローラー１０２については、図１と同様である。
【０１１１】
（１）ステップＳ１０１
コントローラー１０２は、スイッチ１０１宛に、オープンフロー技術における制御プロトコル（オープンフロープロトコル）に準拠した「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でミラーリング用エントリの登録の要求を送信する。スイッチ１０１の内部にあるプロトコル制御部１０８は、コントローラー１０２から「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でミラーリング用エントリの登録の要求を受信する。この処理フローは、図５のエントリ登録２１４に含まれる。
【０１１２】
（２）ステップＳ１０２
プロトコル制御部１０８は、ミラーリング用エントリの登録の要求に応じて、モニタリング用テーブル１０７へミラーリング用エントリの登録を行う。すなわち、コントローラー１０２は、プロトコル制御部１０８を経由してモニタリング用テーブル１０７へミラーリング用エントリを登録する制御を行う。この処理フローは、図５のエントリ登録２１４に含まれる。
【０１１３】
（３）ステップＳ１０３
プロトコル制御部１０８は、モニタリング用テーブル１０７へのミラーリング用エントリ（図５のエントリ２１５）の登録を完了する。スイッチ１０１の内部にあるハードウェア転送部１０４は、ミラーリング用エントリの登録が完了した時点から、ミラーリングを開始する。
【０１１４】
（４）ステップＳ１０４
ハードウェア転送部１０４は、スイッチ１０１の外部からパケットを受信した際、受信パケットが、モニタリング用テーブル１０７に登録されたミラーリング用エントリに適合（Ｈｉｔ）するか確認する。なお、実際には、スイッチ内部で生成されたパケットに対しても同様の処理を行う。
【０１１５】
（５）ステップＳ１０５
ハードウェア転送部１０４は、受信パケットが、モニタリング用テーブル１０７に登録されたミラーリング用エントリに適合（Ｈｉｔ）する場合、コントローラー１０２宛にミラーリングするために、プロトコル制御部１０８にパケット（図６のパケット２１６）を転送する。
【０１１６】
（６）ステップＳ１０６
プロトコル制御部１０８は、コントローラー１０２宛に「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でミラーパケット（図６のパケット２１６）を送信し、ミラーリングする。
【０１１７】
（７）ステップＳ１０７
コントローラー１０２は、スイッチ１０１から送られてきたミラーパケットを解析する。
【０１１８】
（８）ステップＳ１０８
コントローラー１０２は、ミラーパケットを解析した結果を踏まえて、スイッチ１０１宛に「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で統計用エントリの登録の要求を送信する。スイッチ１０１の内部にあるプロトコル制御部１０８は、コントローラー１０２からの「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で統計用エントリの登録の要求を受信する。この処理フローは、図７のエントリ登録２１７に含まれる。
【０１１９】
（９）ステップＳ１０９
プロトコル制御部１０８は、統計用エントリの登録の要求に応じて、モニタリング用テーブル１０７へ統計用エントリの登録を行う。すなわち、コントローラー１０２は、プロトコル制御部１０８を経由してモニタリング用テーブル１０７へ統計用エントリを登録する制御を行う。この処理フローは、図７のエントリ登録２１７に含まれる。
【０１２０】
（１０）ステップＳ１１０
モニタリング用テーブル１０７は、エントリ登録作業を受け付け、統計用エントリ（図７のエントリ２１８）を登録する。ハードウェア転送部１０４は、統計用エントリの登録が完了した時点から、その統計用エントリに該当するパケットについて、統計情報の収集を開始する。ハードウェア転送部１０４は、スイッチ１０１の外部からパケットを受信した際、受信パケットが、モニタリング用テーブル１０７に登録された統計用エントリに適合（Ｈｉｔ）するか確認することで、該当エントリの統計情報をスイッチ１０１の内部で収集し、モニタリング用テーブル１０７に蓄積する。
【０１２１】
（１１）ステップＳ１１１
コントローラー１０２は、スイッチ１０１に対する統計情報の問い合わせ、及び統計解析を行う処理を開始する。
【０１２２】
（１２）ステップＳ１１２
コントローラー１０２は、統計情報を収集するために、スイッチ１０１に「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で統計情報を問い合わせる。
【０１２３】
（１３）ステップＳ１１３
プロトコル制御部１０８は、コントローラー１０２からの「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」に応じて、モニタリング用テーブル１０７に、スイッチ１０１で収集している統計情報の問い合わせを行う。
【０１２４】
（１４）ステップＳ１１４
プロトコル制御部１０８は、モニタリング用テーブル１０７からの応答として、統計情報の結果を取得する。
【０１２５】
（１５）ステップＳ１１５
プロトコル制御部１０８は、統計情報の結果を「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でコントローラー１０２へ送信する。コントローラー１０２は、統計情報の結果を基に、統計解析を行う。
【０１２６】
（１６）ステップＳ１１６
コントローラー１０２は、統計解析の結果をネットワークの経路制御にフィードバックする必要がある場合、スイッチ１０１宛に「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でパケット転送用エントリの登録の要求を送信する。これにより、コントローラー１０２は、スイッチ１０１の経路変更を行う。スイッチ１０１の内部にあるプロトコル制御部１０８は、コントローラー１０２から「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でパケット転送用エントリの登録の要求を受信する。この処理フローは、図９のエントリ登録２２０に含まれる。
【０１２７】
（１７）ステップＳ１１７
プロトコル制御部１０８は、パケット転送用エントリの登録の要求に応じて、転送用テーブル１０６へパケット転送用エントリの登録を行う。すなわち、コントローラー１０２は、プロトコル制御部１０８を経由して転送用テーブル１０６へパケット転送用エントリを登録する制御を行う。この処理フローは、図９のエントリ登録２２０に含まれる。
【０１２８】
（１８）ステップＳ１１８
転送用テーブル１０６は、エントリ登録作業を受け付け、パケット転送用エントリ（図９のエントリ２２１）を登録する。ハードウェア転送部１０４は、パケット転送用エントリの登録が完了した時点から、当該エントリに該当する受信パケットに対し、当該エントリに記されたアクション（所定の処理）を開始する。
【０１２９】
本実施形態では、オープンフロープロトコルに準拠した「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」を使用することを想定しているが、実際には、コントローラーへのミラーリングの方法はその限りではない。例えば、宛先を設定情報（Ｃｏｎｆｉｇ）で指定し、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）等でカプセル化してパケットを転送する等、既存の技術を使用してコントローラーへのミラーリングを行う方法も考えられる。
【０１３０】
［本実施形態の特徴］
以上説明したように、本実施形態におけるスイッチシステムでは、通信機器の制御プロトコルを使用し、モニタリング機能とネットワークの経路制御を実現しているので、ネットワーク全体としてモニタリングの集中制御を実現し、そのモニタリング結果を経路制御へ反映することができる。
【０１３１】
また、本実施形態におけるスイッチシステムでは、スイッチシステム内部に転送用フローテーブルとモニタリングの用のフローテーブルを用意し、１つのパケットに対して両テーブルを検索し、それぞれのエントリに登録された動作を実施するマルチヒット動作を行うことで、経路制御を意識することなくモニタリングの粒度を自由に変更できる。
【０１３２】
＜第２実施形態＞
本発明の第２実施形態として、その基本的構成は第１実施形態と同様であるが、経路制御の方法について更に工夫している。その構成を図１１〜図１５で説明する。
【０１３３】
図１１から図１４において、ネットワークのシステム視点で、本発明の第２実施形態における制御（データ）の流れを表す。
【０１３４】
なお、スイッチ１０１、コントローラー１０２については、図１と同様である。パケット２０５〜エントリ２２１については、図４〜図９と同様である。
【０１３５】
また、本実施形態におけるスイッチシステムの基本的な動作は、第１実施形態と同様であるため省略する。
【０１３６】
まず、図１１、図１２を参照して、転送用テーブルの検索時にマルチヒット動作可能なモニタリング用テーブルが無い場合の動作について説明する。
【０１３７】
［パケット転送時］
図１１を参照して、モニタリング用テーブルが存在しない場合のパケット転送時の制御（データ）の流れについて説明する。
【０１３８】
ここでは、スイッチ１０１の内部には、モニタリング用テーブル１０７は存在せず、転送用テーブル１０６が１つだけ存在する。なお、モニタリング用テーブル１０７が存在しない状態とは、モニタリング用テーブル１０７に、受信パケットに該当するエントリが登録されていない状態でも良い。
【０１３９】
パケット２０５は、スイッチ１０１が受信したパケットを表す。
【０１４０】
パケット２０６は、内部構成として「“Ａ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０１４１】
パケット２０７は、内部構成として「“Ａ”、“ａ”、“２”、“ＤＡＴＡ”」を含むパケットを表す。
【０１４２】
パケット２０８は、内部構成として「“Ａ”、“ｂ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０１４３】
パケット２０９は、内部構成として「“Ｂ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０１４４】
パケット群２１０は、スイッチ１０１の「Ｐｏｒｔ１」から出力されたパケット群を表す。ここでは、パケット群２１０は、パケット２０６と、パケット２０７と、パケット２０８を含む。
【０１４５】
パケット群２１１は、スイッチ１０１の「Ｐｏｒｔ２」から出力されたパケット群を表す。ここでは、パケット群２１１は、パケット２０９を含む。
【０１４６】
エントリ２１２は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリを表す。
【０１４７】
エントリ２１３は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリを表す。
【０１４８】
エントリ２２２は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、全てのパケットを（無条件で）コントローラー１０２へ転送するための転送用デフォルトエントリを表す。エントリ２２２（転送用デフォルトエントリ）は、コントローラー１０２への問い合わせ用エントリの１つであるといえる。
【０１４９】
オープンフロー技術における制御プロトコル等を使用し、経路制御を行う場合、転送用テーブル１０６のエントリに適合（Ｈｉｔ）しないパケットは、スイッチ１０１からコントローラー１０２に送り、コントローラー１０２で解析した後、解析結果を基に、図１１に示すように、転送用テーブル１０６にパケット転送用のエントリ２１２、エントリ２１３を登録することより、スイッチ１０１にてハードウェア転送が可能となる。
【０１５０】
図１１に示すように、転送用テーブル１０６に、エントリ２１２又はエントリ２１３のように、全てのパケットをコントローラーへ転送するためのパケット転送用エントリ（エントリ２２２）以外のパケット転送用エントリがある場合は、エントリ２２２以外のパケット転送用エントリ（ここではエントリ２１２又はエントリ２１３）を優先的に使用する。
【０１５１】
すなわち、スイッチ１０１の内部にあるハードウェア転送部１０４は、受信パケットが、エントリ２２２と、エントリ２２２以外のパケット転送用エントリ（エントリ２１２又はエントリ２１３）との両方に適合（Ｈｉｔ）する場合、エントリ２２２以外のパケット転送用エントリ（エントリ２１２又はエントリ２１３）に記されたアクション（所定の処理）を採用する。
【０１５２】
なお、転送用テーブル１０６に登録する際に、エントリ２２２以外のパケット転送用エントリ（エントリ２１２又はエントリ２１３）を、エントリ２２２よりも上位に登録する（エントリ２２２を最下位にする）ようにしても良い。ハードウェア転送部１０４は、受信パケットが、エントリ２２２以外のパケット転送用エントリ（エントリ２１２又はエントリ２１３）に先に適合（Ｈｉｔ）した時点で、検索を終了し、受信パケットに対して、当該パケット転送用エントリに記されたアクション（所定の処理）を開始する。
【０１５３】
［スイッチの起動時］
図１２を参照して、モニタリング用テーブルが存在しない場合のスイッチの起動時の制御（データ）の流れについて説明する。
【０１５４】
ここでは、スイッチ１０１の内部には、モニタリング用テーブル１０７は存在せず、転送用テーブル１０６が１つだけ存在する。なお、モニタリング用テーブル１０７が存在しない状態とは、モニタリング用テーブル１０７に、受信パケットに該当するエントリが登録されていない状態でも良い。
【０１５５】
図１２に示すように、スイッチの起動時等、転送用テーブル１０６に、エントリ２１２、エントリ２１３のようなパケット転送用エントリが無い場合（全てのパケットをコントローラーへ転送するためのパケット転送用エントリ（エントリ２２２）のみある場合）は、スイッチで受信したパケットが大量にコントローラー１０２に転送されることになる。
【０１５６】
この場合、コントローラー１０２の処理性能、スイッチ１０１とコントローラー１０２との間のネットワーク帯域、スイッチ１０１のプロトコル処理性能等の条件次第では、パケットの廃棄が発生してしまうという問題がある。
【０１５７】
そこで、図１３、図１４に示すように、モニタリング用テーブル１０７を有効活用し、スイッチの起動時等のファーストパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）のロス（欠損）をなくす方法について説明する。なお、ファーストパケットとは、フローテーブルに該当するエントリが登録されていない最初のパケットのことである。
【０１５８】
［ファーストパケット転送時］
図１３を参照して、モニタリング用テーブルを利用し、スイッチの起動時等のファーストパケットをコントローラーへ転送する場合の制御（データ）の流れについて説明する。
【０１５９】
ここでは、スイッチ１０１の内部には、転送用テーブル１０６とモニタリング用テーブル１０７の両方が存在する。
【０１６０】
パケット２１６は、スイッチ１０１からコントローラー１０２に転送されるパケットを表す。
【０１６１】
エントリ２２３は、転送用テーブル１０６に登録されているパケット転送用エントリの１つであり、全てのパケットを（無条件で）「Ｐｏｒｔ１」へ転送するためのパケット転送用エントリを表す。
【０１６２】
エントリ２２４は、モニタリング用テーブル１０７に登録されている、全てのパケットを（無条件で）コントローラー１０２へ転送するためのミラーリング用エントリを表す。
【０１６３】
廃棄ポイント２２５は、スイッチ１０１とコントローラー１０２間での廃棄ポイントを表す。
【０１６４】
図１３に示すように、転送用テーブル１０６には、全てのパケットを「Ｐｏｒｔ１」に転送するためのパケット転送用のエントリ２２３が登録されており、モニタリング用テーブル１０７には、全てのパケットをミラーパケットとしてコントローラーに送信するミラーリング用のエントリ２２４が登録されている。
【０１６５】
スイッチ１０１の内部にあるハードウェア転送部１０４は、通常のパケットを受信すると、転送用テーブル１０６のエントリ２２３に従い、「Ｐｏｒｔ１」にハードウェア転送する。
【０１６６】
本発明に係るスイッチにおいては、ハードウェア転送部１０４は、転送用テーブル１０６とモニタリング用テーブル１０７のマルチヒット動作を可能とするので、エントリ２２３に従い、受信パケットのハードウェア転送を実施すると同時に、モニタリング用テーブル１０７も検索し、適合（Ｈｉｔ）したエントリ２２４に従い、コントローラー１０２へのミラーリングも実施する。
【０１６７】
ミラーリングされたパケット２１６については、図１２の時と同様に、廃棄が発生する可能性はあるが、パケットの転送処理（ハードウェア転送）自体はエントリ２２３に従って行われているため、通信への影響はない。すなわち、廃棄が発生するのは、受信パケットを複写したミラーパケット（パケット２１６）のみであり、受信パケットをハードウェア転送した出力パケット（パケット群２１０、パケット群２１１）には関係ない。
【０１６８】
廃棄の発生を回避するためには、ミラーパケットの受け渡しは、コントローラー１０２の処理性能、スイッチ１０１とコントローラー１０２との間のネットワーク帯域、スイッチのプロトコル処理性能の許容範囲内で処理すれば良い。
【０１６９】
図１３において、コントローラー１０２が受信したミラーパケット（パケット２１６）を解析し、解析結果を基にスイッチ１０１への経路制御を行った状態が、図１４の状態である。
【０１７０】
［モニタリング用テーブル利用時］
図１４を参照して、モニタリング用テーブルを利用した場合の制御（データ）の流れについて説明する。
【０１７１】
エントリ２２６は、モニタリング用テーブル１０７に登録されている「“Ａ”を含むパケット」に対して、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを表す。
【０１７２】
エントリ２２７は、モニタリング用テーブル１０７に登録されている「“Ｂ”を含むパケット」に対して、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを表す。
【０１７３】
コントローラー１０２は、ミラーパケットの解析の結果、転送用テーブル１０６に、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリ（エントリ２１２）を登録し、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリ（エントリ２１３）を登録することにより、通信の負荷分散等経路制御を行うことが可能になる。
【０１７４】
ここで、パケット転送用エントリ（エントリ２１２、エントリ２１３）を登録すると同時に、モニタリング用テーブル１０７にも、パケット転送用エントリ（エントリ２１２、エントリ２１３）と同じルール（マッチ条件）で、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリ（エントリ２２６、エントリ２２７）を登録することにより、コントローラー１０２へのミラーパケットの付加を削減することが可能である。
【０１７５】
［動作シーケンス］
図１５を参照して、本発明の第２実施形態におけるスイッチシステムの動作を表したシーケンスについて説明する。
【０１７６】
なお、スイッチ１０１、コントローラー１０２については、図１と同様である。
【０１７７】
（１）ステップＳ２０１
スイッチ１０１は、モニタリング用テーブル１０７にミラーリング用エントリが存在し、転送用テーブル１０６に転送用デフォルトエントリが登録されている状態である。例えば、コントローラー１０２は、スイッチの起動時等、事前に、スイッチ１０１に対して、モニタリング用テーブル１０７にミラーリング用エントリを登録し、転送用テーブル１０６に転送用デフォルトエントリを登録しておくようにしても良い。
【０１７８】
ここでは、ミラーリング用エントリには、全てのパケットを（無条件で）ミラーパケットとしてコントローラー１０２に送信する旨が記されている。また、転送用デフォルトエントリには、全てのパケットを（無条件で）予め決められた出力先（ここではコントローラー１０２）に転送する旨が記されている。
【０１７９】
（２）ステップＳ２０２
スイッチ１０１の内部にあるハードウェア転送部１０４は、ファーストパケットを受信した際、受信パケットがモニタリング用テーブル１０７に登録されているミラーリング用エントリに適合（Ｈｉｔ）するか否か確認する。ここでは、ミラーリング用エントリには、全てのパケットをミラーパケットとしてコントローラー１０２に送信する旨が記されているため、受信パケットはミラーリング用エントリに適合（Ｈｉｔ）する。
【０１８０】
（３）ステップＳ２０３
更に、ハードウェア転送部１０４は、受信パケットが転送用テーブル１０６に登録されている転送用デフォルトエントリに適合（Ｈｉｔ）するか否か確認する。ここでは、転送用デフォルトエントリには、全てのパケットを予め決められた出力先（ここではコントローラー１０２）に転送する旨が記されているため、受信パケットは転送用デフォルトエントリに適合（Ｈｉｔ）する。
【０１８１】
（４）ステップＳ２０４
ハードウェア転送部１０４は、受信パケットが、モニタリング用テーブル１０７に登録されているミラーリング用エントリに適合（Ｈｉｔ）し、更に、転送用テーブル１０６に登録されている転送用デフォルトエントリに適合（Ｈｉｔ）した場合、ミラーリング用エントリに記されているアクション（所定の処理）として、当該パケット（図１２のパケット２１６）をプロトコル制御部１０８に送信する。
【０１８２】
（５）ステップＳ２０５
プロトコル制御部１０８は、上記パケット（図１２のパケット２１６）を「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」でコントローラー１０２宛にミラーパケットとして送信（ミラーリング）する。
【０１８３】
すなわち、スイッチ１０１は、モニタリング用テーブル１０７に全てのパケットをミラーパケットとしてコントローラー１０２に送信する旨が指定されたミラーリング用エントリが登録されており、転送用テーブル１０６に全てのパケットを予め決められた出力先（ここではコントローラー１０２）に転送する旨が指定された転送用デフォルトエントリが登録されている状態の場合、ミラーリング用エントリに適合（Ｈｉｔ）したパケットを、プロトコル制御部１０８経由で「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」を使用してコントローラー１０２へ転送する。
【０１８４】
（６）ステップＳ２０６
コントローラー１０２は、送られてきたミラーパケットを解析する。
【０１８５】
（７）ステップＳ２０７
コントローラー１０２は、ミラーパケットの解析結果を基に、当該ミラーパケットに関して、「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で転送用テーブル１０６へのパケット転送用エントリの登録の要求を、スイッチ１０１宛に送信する。なお、この「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」を使用した転送用エントリの登録要求は、当該パケット転送用エントリと同じルール（マッチ条件）の統計用エントリの登録要求との兼用であっても良い。
【０１８６】
（８）ステップＳ２０８
プロトコル制御部１０８は、コントローラー１０２から「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で転送用テーブル１０６へのパケット転送用エントリの登録の要求を受信し、転送用テーブル１０６に対して、パケット転送用エントリの登録を行う。
【０１８７】
（９）ステップＳ２０９
転送用テーブル１０６へのパケット転送用エントリの登録が完了する。ハードウェア転送部１０４は、パケット転送用エントリの登録が完了した時点から、当該パケット転送用エントリに該当する受信パケット（上記ミラーパケットと同じ受信パケット）に対し、当該エントリに記されたアクション（所定の処理）を開始する。
【０１８８】
（１０）ステップＳ２１０
転送用テーブル１０６へのパケット転送用エントリの登録と同時に、プロトコル制御部１０８は、モニタリング用テーブル１０７に対しても、上記のパケット転送用エントリと同じルール（マッチ条件）で、何もしない、もしくはドロップ（廃棄）する旨のアクション（所定の処理）を記した統計用エントリの登録を行う。
【０１８９】
（１１）ステップＳ２１１
モニタリング用テーブル１０７への統計用エントリの登録が完了する。ハードウェア転送部１０４は、統計用エントリの登録が完了した時点から、上記ミラーパケットと同じ受信パケットに対し、何もしない、もしくはドロップ（廃棄）する。
【０１９０】
すなわち、コントローラー１０２は、ミラーパケットを受けると、そのミラーパケットの内容を解析し、その解析結果を基に「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」を使用して、スイッチ１０１の転送用テーブル１０６に対して、正式なパケット転送用エントリを登録するための制御を行う。
【０１９１】
また、コントローラー１０２は、上記のように、転送用テーブル１０６に対して、パケット転送用エントリを登録するための制御を行うと同時に、モニタリング用テーブル１０７に対しても、上記のパケット転送用エントリと同じルール（マッチ条件）で、何もしない、もしくはドロップ（廃棄）する旨のアクション（所定の処理）を記した統計用エントリを登録するための制御を行う。
【０１９２】
なお、プロトコル制御部１０８は、コントローラー１０２から「Ｐｒｏｔｏｃｏｌ  ｍｅｓｓａｇｅ」で転送用テーブル１０６に対するパケット転送用エントリの登録要求を受信した場合、自動的に、転送用テーブル１０６へのパケット転送用エントリの登録と同時に、上記のパケット転送用エントリと同じルール（マッチ条件）で、モニタリング用テーブル１０７への統計用エントリの登録を行うようにしても良い。
【０１９３】
［本実施形態の特徴］
このように、本実施形態では、モニタリング用テーブルのミラーリング機能と転送用テーブルとモニタリング用テーブルのマルチヒット動作を工夫することにより、スイッチの起動時等に流入してくるファーストパケットのロスを削減するという効果が得られる。
【０１９４】
＜第３実施形態＞
本発明の第３実施形態として、モニタリング用テーブルの代わりに転送テーブルを用意し、２つの転送テーブルを使って、経路制御の方法について更に工夫する方法について説明する。その構成を図１６〜図１７で説明する。
【０１９５】
なお、本実施形態においても、解決したい課題は、本発明の第２実施形態と同様で、スイッチの起動時等のファーストパケットのロスである。
【０１９６】
本実施形態においては、図１６、図１７に示すように、転送用テーブルＡ１０６−１、転送用テーブルＢ１０６−２を有効活用し、スイッチの起動時等のファーストパケットのロスをなくす方法について説明する。
【０１９７】
図１６、図１７に示すように、本実施形態では、スイッチ１０１の内部において、パケット転送用エントリを登録するための転送用テーブル１０６の代わりに、転送用テーブルＡ１０６−１を用意し、ミラーリング用エントリ及び統計用エントリを登録するためのモニタリング用テーブル１０７の代わりに、転送用テーブルＢ１０６−２を用意する。
【０１９８】
なお、コントローラー１０２については、図１と同様である。パケット２０５〜エントリ２２１については、図４〜図９と同様である。
【０１９９】
また、本実施形態におけるスイッチシステムの基本的な動作は、第１実施形態と同様であるため省略する。
【０２００】
パケット２０５は、スイッチ１０１が受信したパケットを表す。
【０２０１】
パケット２０６は、内部構成として「“Ａ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０２０２】
パケット２０７は、内部構成として「“Ａ”、“ａ”、“２”、“ＤＡＴＡ”」を含むパケットを表す。
【０２０３】
パケット２０８は、内部構成として「“Ａ”、“ｂ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０２０４】
パケット２０９は、内部構成として「“Ｂ”、“ａ”、“１”、“ＤＡＴＡ”」を含むパケットを表す。
【０２０５】
パケット群２１０は、スイッチ１０１の「Ｐｏｒｔ１」から出力されたパケット群を表す。ここでは、パケット群２１０は、パケット２０６と、パケット２０７と、パケット２０８と、パケット２０９を含む。
【０２０６】
パケット群２１１は、スイッチ１０１の「Ｐｏｒｔ２」から出力されたパケット群を表す。ここでは、パケット群２１１は、該当するパケットが存在しないため、何も含んでいない。
【０２０７】
パケット２１６は、スイッチ１０１からコントローラー１０２に転送されるパケット（ミラーパケット）を表す。
【０２０８】
廃棄ポイント２２５は、スイッチ１０１とコントローラー１０２間での廃棄ポイントを表す。
【０２０９】
エントリ２３０は、転送用テーブルＡ１０６−１に登録されているパケット転送用エントリの１つであり、全てのパケットを（無条件で）コントローラー１０２へ転送するための転送用デフォルトエントリを表す。エントリ２３０（転送用デフォルトエントリ）は、コントローラー１０２への問い合わせ用エントリの１つであるといえる。
【０２１０】
エントリ２３１は、転送用テーブルＢ１０６−２に登録されているパケット転送用エントリの１つであり、全てのパケットを（無条件で）「Ｐｏｒｔ１」へ転送するためのパケット転送用エントリを表す。
【０２１１】
図１６に示すように、転送用テーブルＡ１０６−１には、全てのパケットをコントローラー１０２に転送するためのパケット転送用エントリ（エントリ２３０）が登録されており、転送用テーブルＢ１０６−２には、全てのパケットを「Ｐｏｒｔ１」に転送するためのパケット転送用エントリ（エントリ２３１）が登録されている。
【０２１２】
本発明に係るスイッチは、転送用テーブルＡ１０６−１と転送用テーブルＢ１０６−２のマルチヒット動作を可能とするので、転送スイッチ１０１は、通常のパケットを受信した場合、転送用テーブルＢ１０６−２を検索し、適合（Ｈｉｔ）したエントリ２３１に従い、「Ｐｏｒｔ１」へのハードウェア転送を実施すると同時に、転送用テーブルＡ１０６−１も検索し、適合（Ｈｉｔ）したエントリ２３０に従い、コントローラー１０２への転送も実施する。
【０２１３】
このとき、コントローラー１０２へ転送（ミラーリング）されたパケット２１６の廃棄が発生する可能性はあるが、受信パケットの転送自体はエントリ２３１に従って実施されているため、ミラーパケットであるパケット２１６の廃棄が発生したとしても、通信に影響を与えない。
【０２１４】
スイッチ１０１とコントローラー１０２との間のミラーパケットの受け渡しは、コントローラー１０２の処理性能、スイッチ１０１とコントローラー１０２との間のネットワーク帯域、スイッチのプロトコル処理性能の範囲内で処理すれば良い。
【０２１５】
図１６において、コントローラー１０２が受信したミラーパケット（パケット２１６）を解析し、解析結果を基にスイッチ１０１への経路制御を行った状態が、図１７の状態である。
【０２１６】
エントリ２３２は、転送用テーブルＡ１０６−１に登録されているパケット転送用エントリの１つであり、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリを表す。
【０２１７】
エントリ２３３は、転送用テーブルＡ１０６−１に登録されているパケット転送用エントリの１つであり、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリを表す。
【０２１８】
エントリ２３４は、転送用テーブルＢ１０６−２に登録されているパケット転送用エントリの１つであり、「“Ａ”を含むパケット」に対して、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを表す。
【０２１９】
エントリ２３５は、転送用テーブルＢ１０６−２に登録されているパケット転送用エントリの１つであり、「“Ｂ”を含むパケット」に対して、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリを表す。
【０２２０】
コントローラー１０２は、ミラーパケット（パケット２１６）を解析し、解析結果を基に、転送用テーブルＡに、「“Ａ”を含むパケット」を「Ｐｏｒｔ１」に転送するためのパケット転送用エントリ（エントリ２３２）と、「“Ｂ”を含むパケット」を「Ｐｏｒｔ２」に転送するためのパケット転送用エントリ（エントリ２３３）を登録する。これにより、通信の負荷分散等の経路制御を行うことが可能になる。
【０２２１】
また、コントローラー１０２は、転送用テーブルＡに、上記のパケット転送用エントリ（エントリ２３２、エントリ２３３）を登録すると同時に、転送用テーブルＢにも、上記のパケット転送用エントリと同じルール（マッチ条件）で、何もしない、もしくはドロップ（廃棄）するための廃棄用エントリ（エントリ２３４、エントリ２３５）を登録し、デフォルトで登録されているエントリ２３１に従ったハードウェア転送（全てのパケットのハードウェア転送）を止める。
【０２２２】
［本実施形態の特徴］
このように、本実施形態においても、本発明の第２実施形態と同様、スイッチの起動時等に流入してくるファーストパケットのロスを削減するという効果が得られる。
【０２２３】
＜各実施形態の関係＞
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【０２２４】
＜本発明の特徴＞
以上のように、本発明では、通信データのモニタリングの集中管理を実現することを目的としている。
【０２２５】
本発明では、ネットワークを集中制御するための制御プロトコルとモニタリングを組み合わせることによって、スイッチシステムのモニタリングを集中制御し、モニタリングの粒度を自由に変更可能にし、ネットワークの経路制御への反映を自由に行えるようにした。
【０２２６】
また、本発明では、スイッチ内にある転送用テーブルとモニタリング用テーブルをマルチヒット動作させることにより、データ通信に影響を与えず、自由にモニタリングを行えるようにした。
【０２２７】
また、本発明では、転送用テーブルとは別に、パケット転送用エントリは登録しないモニタリング用テーブルを用意し、このモニタリング用テーブルには、統計用エントリとミラーリング用エントリのみを登録し、それらのマルチヒット動作を行う。
【０２２８】
すなわち、本発明では、スイッチ内部に、フローテーブルとして、転送用テーブルとモニタリング用テーブルを用意し、それらのマルチヒット動作を行って、パケットの転送を実現させている。
【０２２９】
また、本発明では、モニタリング用テーブルには、統計用エントリとミラーリング用エントリのみ登録し、経路制御エントリの登録は行わないようにすることもできる。すなわち、ハードウェア転送を行わないようにすることもできる。
【０２３０】
また、本発明では、ネットワークを集中制御するための制御プロトコルにより、コントローラーと連携して、スイッチのモニタリングを集中制御している。
【０２３１】
また、本発明では、制御プロトコルを使用して、スイッチのモニタリングの集中制御を実現することにより、スイッチの起動時等に流入してくるファーストパケットのロスを削減する。
【０２３２】
このように、本発明では、パケットロスを検知するロジックについてではなく、一方のテーブルでデフォルトエントリを使ってハードウェア転送を行いつつ、もう一方のテーブルでモニタリングし、その結果をパケット転送用エントリにフィードバックする。これにより、スイッチの再起動時等の初期流入パケットをパケットロスせずハードウェア転送しつつも、パケットそれぞれを解析し、最終的に細やかなパケット単位の転送制御ができる。
【０２３３】
また、本発明では、通信機器の制御プロトコル（例えばオープンフロー）を使用し、スイッチシステムのモニタリング機能を制御することにより、ネットワーク全体として集中制御可能なモニタリングを実現し、そのモニタリング結果を経路制御へ反映することができる。
【０２３４】
また、本発明では、スイッチ内部に転送用フローテーブルとモニタリングの用のフローテーブルを持ち、１つのパケットに対して両テーブルを検索し、それぞれのエントリに登録された動作を実施するマルチヒット動作を行う。これにより、経路制御を意識することなくモニタリングの粒度を自由に変更することができる。
【０２３５】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【０２３６】
なお、本出願は、日本出願番号２０１０−２３２７７２に基づく優先権を主張するものであり、日本出願番号２０１０−２３２７７２における開示内容は引用により本出願に組み込まれる。
【図１】
2012049960.tif 000003
【図２】
2012049960.tif 000004
【図３】
2012049960.tif 000005
【図４】
2012049960.tif 000006
【図５】
2012049960.tif 000007
【図６】
2012049960.tif 000008
【図７】
2012049960.tif 000009
【図８】
2012049960.tif 000010
【図９】
2012049960.tif 000011
【図１０Ａ】
2012049960.tif 000012
【図１０Ｂ】
2012049960.tif 000013
【図１１】
2012049960.tif 000014
【図１２】
2012049960.tif 000015
【図１３】
2012049960.tif 000016
【図１４】
2012049960.tif 000017
【図１５】
2012049960.tif 000018
【図１６】
2012049960.tif 000019
【図１７】
2012049960.tif 000020
【国際調査報告】
2012049960.tif 000021
2012049960.tif 000022
2012049960.tif 000023