(57)【要約】  制御サーバーからの通信機器の遠隔制御を行うシステムの場合、制御サーバーから通信機器の転送テーブルにエントリを書き込むタイミングによっては、トラフィックのループや廃棄が意図せず発生する可能性がある。そこで、制御サーバー１０１が行った通信機器１０２に対する転送テーブルのエントリの登録・書換・削除に対して、通信機器１０２で制御サーバー１０１からの制御指示内容の検証を行い、通信機器１０２でその検証結果を保持し、制御サーバー１０１がその検証結果を取得し、複数の通信機器１０２からの検証結果を基にして、一連の制御が実行可能かどうか判断した後に、複数の通信機器１０２での実行を促す。
2011083786.tif 000002
【特許請求の範囲】
【請求項１】
受信したトラフィックと、転送テーブルに登録されたエントリとをマッチングし、当該トラフィックに包含される情報と当該エントリに包含される情報とが一致すると、当該トラフィックを、当該エントリに規定された経路に転送する複数の通信機器と、
前記複数の通信機器の各々が持つ転送テーブルにエントリを登録し、前記各通信機器に対して経路情報を決定する制御サーバーと
を含み、
前記各通信機器は、前記制御サーバーからの一連の制御指示に対して、前記制御サーバーからの制御指示内容の検証を行い、検証結果を保持し、
前記制御サーバーは、前記各通信機器から検証結果を取得し、前記各通信機器からの検証結果を基にして、前記各通信機器において一連の制御が実行可能かどうか判断し、一連の制御が実行可能であれば、前記各通信機器に対して一連の制御の実行を促す
通信制御システム。
【請求項２】
請求項１に記載の通信制御システムであって、
前記各通信機器は、前記制御サーバーからの一連の制御指示に従って、一旦、一連の制御を実行し、
前記制御サーバーは、前記制御サーバーからの制御指示内容が異常であると判断した場合、前記各通信機器に対して、実行結果のロールバックの実行を促す
通信制御システム。
【請求項３】
請求項１又は２に記載の通信制御システムであって、
前記各通信機器は、前記制御サーバーから、転送テーブルへの新規エントリの追加指示の制御命令を受け取った際、前記転送テーブルを参照し、前記転送テーブルに空きエントリがあるかどうかを確認し、空きエントリがある場合、前記転送テーブルに包括・一部包括関係にあるエントリがあるかどうかを確認し、包括・一部包括関係にあるエントリがある場合、当該エントリの優先度を確認し、前記制御サーバーからの制御命令を実行する
通信制御システム。
【請求項４】
請求項３に記載の通信制御システムであって、
前記各通信機器は、空きエントリがない場合、もしくは包括・一部包括関係にあるエントリの有無を確認した場合、一連の制御を待機状態にして、前記制御サーバーからの指示を待ち、前記制御サーバーから新たな制御命令を受け取り、新たな制御命令が処理実行である場合、前記制御サーバーからの制御命令に従って、前記転送テーブルにエントリを追加し、新たな制御命令がロールバック指示である場合、前記制御サーバーからの制御命令に従って、前記転送テーブルにはエントリを追加せず、ロールバック関数に従った処理を行う
通信制御システム。
【請求項５】
請求項１乃至４のいずれか一項に記載の通信制御システムにおいて、通信機器及び制御サーバーのいずれかとして使用される計算機。
【請求項６】
制御サーバーから、複数の通信機器の各々が持つ転送テーブルにエントリを登録し、前記各通信機器に対して経路情報を決定することと、
前記各通信機器において、受信したトラフィックと、転送テーブルに登録されたエントリとをマッチングし、当該トラフィックに包含される情報と当該エントリに包含される情報とが一致すると、当該トラフィックを、当該エントリに規定された経路に転送することと、
前記各通信機器において、前記制御サーバーからの一連の制御指示に対して、前記制御サーバーからの制御指示内容の検証を行い、検証結果を保持することと、
前記制御サーバーにおいて、前記各通信機器から検証結果を取得し、前記各通信機器からの検証結果を基にして、前記各通信機器において一連の制御が実行可能かどうか判断し、一連の制御が実行可能であれば、前記各通信機器に対して一連の制御の実行を促すことと
を含む
通信制御方法。
【請求項７】
請求項６に記載の通信制御方法であって、
前記各通信機器において、前記制御サーバーからの一連の制御指示に従って、一旦、一連の制御を実行することと、
前記制御サーバーにおいて、前記制御サーバーからの制御指示内容が異常であると判断した場合、前記各通信機器に対して、実行結果のロールバックの実行を促すことと
を更に含む
通信制御方法。
【請求項８】
請求項６又は７に記載の通信制御方法であって、
前記各通信機器において、
前記制御サーバーから、転送テーブルへの新規エントリの追加指示の制御命令を受け取った際、前記転送テーブルを参照し、前記転送テーブルに空きエントリがあるかどうかを確認することと、
空きエントリがある場合、前記転送テーブルに包括・一部包括関係にあるエントリがあるかどうかを確認することと、
包括・一部包括関係にあるエントリがある場合、当該エントリの優先度を確認することと、
前記制御サーバーからの制御命令を実行することと
を更に含む
通信制御方法。
【請求項９】
請求項８に記載の通信制御方法であって、
前記各通信機器において、
空きエントリがない場合、もしくは包括・一部包括関係にあるエントリの有無を確認した場合、一連の制御を待機状態にして、前記制御サーバーからの指示を待つことと、
前記制御サーバーから新たな制御命令を受け取ることと、
新たな制御命令が処理実行である場合、前記制御サーバーからの制御命令に従って、前記転送テーブルにエントリを追加することと、
新たな制御命令がロールバック指示である場合、前記制御サーバーからの制御命令に従って、前記転送テーブルにはエントリを追加せず、ロールバック関数に従った処理を行うことと
を更に含む
通信制御方法。
【請求項１０】
請求項６乃至９のいずれか一項に記載の通信制御方法を、通信機器及び制御サーバーのいずれかとして機能する計算機に実行させるためのプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システムに関し、特にパケットを転送する通信機器と経路情報を決定する制御サーバーが分離された通信制御システムに関する。
【背景技術】
【０００２】
ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）やＩＥＥＥ８０２．１におけるネットワークの経路制御は、通信機器間での経路情報の交換による自律的な経路制御が行われる手法が一般的である。【０００３】
一方で、通信機器間の自律的な経路制御では、通信機器間の経路情報が一時的な不一致となることで、ネットワークの信頼性が低下する問題があった。【０００４】
この問題に対応する手法として、特許文献１（ＵＳ  ２００６／００９２９７４  Ａ１）に、通信機器から制御部を分離して、その制御部を実装した制御サーバーから、制御部のない複数の通信機器を遠隔で制御する手法が開示されている。また、制御サーバーで複数の通信機器の経路を制御することにより、複数の通信機器間で経路情報を交換することによる自律的な経路制御より、信頼性の高い経路制御が実現できることも知られている。【０００５】
また、非特許文献１には、制御サーバーから通信機器を制御するプロトコルとして、オープンフロープロトコル（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ）が開示されている。オープンフロープロトコルによると、通信機器は、フローテーブルと呼ばれる転送テーブルを有し、制御サーバーは、通信機器の転送テーブルにエントリ（ｅｎｔｒｙ）を追加・書換・削除することができる。【０００６】
なお、フローテーブルとは、所定のマッチ条件（ルール）に適合するパケットに対して行うべき所定の処理（アクション）を定義したエントリが登録されるテーブルである。ルールに適合するパケット群（パケット系列）をフローと呼ぶ。フローのルールは、パケットの各プロトコル階層のヘッダ領域に含まれる宛先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、宛先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローのルールとして使用可能である。【０００７】
また、通信機器は、所定の検索情報について、通信機器を経由するトラフィックと、転送テーブルに登録されたエントリをマッチングし、両方に含まれる検索情報（例えば宛先ＩＰアドレス）が一致すると、当該トラフィックをエントリに従った経路に転送する。オープンフロープロトコル等を用いて、ネットワークの経路制御を制御サーバーから行うことが可能である。【０００８】
しかしながら、制御サーバーからの通信機器の遠隔制御を行う場合、既知の手法により、通信機器が交換することによって発生する経路情報の発振の抑制は可能となるが、制御サーバーから通信機器の転送テーブルにエントリを書き込むタイミングによっては、トラフィックのループや廃棄が意図せず発生する可能性がある。【０００９】
例えば、制御サーバーで計算された転送経路に関係なく任意の通信機器の転送テーブルにエントリを書く場合について説明する。【００１０】
図１を例にとると、通信機器１０２Ａにおいて、検索情報として、ある転送テーブルのエントリが通信機器１０２Ｂを出力先として登録された時に、既に通信機器１０２Ｂにおいて、その検索情報を包含する転送テーブルのエントリが通信機器１０２Ａを出力先として登録されている場合、条件に一致するトラフィックは、通信機器１０２Ａと通信機器１０２Ｂの間で何度も往復することになる。【００１１】
例えば、通信機器１０２Ａにおいて、検索情報として、宛先ＩＰアドレス「１９２．１６８．０．１／３２」（「／３２」は、ネットワークアドレス長を示す）をヘッダ情報に持つパケットは通信機器１０２Ｂを出力先とする旨のエントリが登録されたとする。このとき、既に、通信機器１０２Ｂにおいて、宛先ＩＰアドレス「１９２．１６８．０．０／８」をヘッダ情報に持つパケットは通信機器１０２Ａを出力先とする旨のエントリが登録されている場合、ＩＰアドレス「１９２．１６８．０．１／３２」宛のトラフィックは、通信機器１０２Ａと通信機器１０２Ｂの間で何度も往復することになる。【００１２】
また、例えば、制御サーバーで計算された転送経路に関係なく任意の通信機器１０２の転送テーブルにエントリを書く場合について説明する。【００１３】
図１を例にとると、通信機器１０２Ａにおいて、ある転送テーブルのエントリが通信機器１０２Ｂを出力先として登録した後に、通信機器１０２Ｂにおいて、新規の転送テーブルのエントリが登録できない場合、条件に一致するトラフィックは、通信機器１０２Ｂで廃棄されることになる。【００１４】
例えば、通信機器１０２Ａにおいて、検索情報として宛先ＩＰアドレス「１９２．１６８．０．１／３２」をヘッダ情報に持つパケットは通信機器１０２Ｂを出力先とする旨のエントリが登録された後に、通信機器１０２Ｂにおいて、新規の転送テーブルのエントリが登録できない場合、ＩＰアドレス「１９２．１６８．０．１／３２」宛のトラフィックは、通信機器１０２Ｂで廃棄されることになる。【００１５】
非特許文献１のオープンフロープロトコルにより制御される転送テーブルは、図３に示す通り、検索優先度が存在する。トラフィックは、低い検索優先度のエントリの検索情報に一致するとしても、より高い検索優先度のエントリの検索情報に一致する場合、より高い検索優先度のエントリに従って、転送される。【００１６】
また、例えば、トラフィックを受信する端末側に近い通信機器１０２から、通信経路を逆順に辿るように通信機器１０２に対して転送テーブルにエントリを登録する場合について説明する。【００１７】
図１を例にとると、通信機器１０２Ｄ、１０２Ｂ、１０２Ａの順に通信テーブルのエントリが登録される。しかし、既に、通信機器１０２Ｂの転送テーブルにおいて、新たに登録されるエントリの検索情報を包含する転送テーブルのエントリが、新たに登録されるエントリより高い検索優先度で登録されているとする。この場合、通信機器１０２Ｂにおいて、検索情報として低い検索優先度で通信機器１０２Ｄを出力先として新たなエントリが登録されても、新たに登録されたエントリは、トラフィックの検索結果には使用されないため、通信機器１０２Ａにおいて、検索情報として通信機器１０２Ｂを出力先としてエントリが登録されると、条件に一致するトラフィックは、通信機器１０２Ａと１０２Ｂの間で何度も往復することになる。【００１８】
例えば、通信機器１０２Ｂの転送テーブルにおいて、既に、ＩＰアドレス「１９２．１６８．０．０／８」宛のトラフィックに関するエントリが、新たに登録されるエントリより高い検索優先度で登録されているとする。この場合、通信機器１０２Ｂにおいて、検索情報として、宛先ＩＰアドレス「１９２．１６８．０．１／３２」をヘッダ情報に持つパケットは低い検索優先度で通信機器１０２Ｄを出力先とする旨の新たなエントリが登録されても、新たに登録されたエントリは、トラフィックの検索結果には使用されないため、通信機器１０２Ａにおいて、検索情報として、宛先ＩＰアドレス「１９２．１６８．０．１／３２」をヘッダ情報に持つパケットは通信機器１０２Ｂを出力先とする旨のエントリが登録されると、条件に一致するトラフィックは、通信機器１０２Ａと１０２Ｂの間で何度も往復することになる。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】ＵＳ  ２００６／００９２９７４  Ａ１
【非特許文献】
【００２０】
【非特許文献１】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  ０．９．０（Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ９８）  Ｊｕｌｙ  ２０，  ２００９  Ｃｕｒｒｅｎｔ  Ｍａｉｎｔａｉｎｅｒ：  Ｂｒａｎｄｏｎ  Ｈｅｌｌｅｒ（ｂｒａｎｄｏｎｈ＠ｓｔａｎｆｏｒｄ．ｅｄｕ）  ＜ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ０．９．０．ｐｄｆ＞
【発明の概要】
【００２１】
本発明は、従来の問題を解決し、制御サーバーからの通信機器の転送テーブルのエントリ等の登録・書換・削除を行う時における、通信機器間での状態不一致、並びに意図しないトラフィックのループや廃棄を抑止することを目的とする。
【００２２】
本発明の通信制御システムは、複数の通信機器と、制御サーバーとを含む。複数の通信機器の各々は、受信したトラフィックと、転送テーブルに登録されたエントリとをマッチングし、当該トラフィックに包含される情報と当該エントリに包含される情報とが一致すると、当該トラフィックを、当該エントリに規定された経路に転送する。制御サーバーは、各通信機器が持つ転送テーブルにエントリを登録し、各通信機器に対して経路情報を決定する。ここでは、各通信機器は、制御サーバーからの一連の制御指示に対して、制御サーバーからの制御指示内容の検証を行い、検証結果を保持する。また、制御サーバーは、各通信機器から検証結果を取得し、各通信機器からの検証結果を基にして、各通信機器において一連の制御が実行可能かどうか判断し、一連の制御が実行可能であれば、各通信機器に対して一連の制御の実行を促す。なお、通信機器、並びに制御サーバーは、計算機であるものとする。
【００２３】
本発明の通信制御方法では、制御サーバーから、複数の通信機器の各々が持つ転送テーブルにエントリを登録し、各通信機器に対して経路情報を決定する。また、各通信機器において、受信したトラフィックと、転送テーブルに登録されたエントリとをマッチングし、当該トラフィックに包含される情報と当該エントリに包含される情報とが一致すると、当該トラフィックを、当該エントリに規定された経路に転送する。また、各通信機器において、制御サーバーからの一連の制御指示に対して、制御サーバーからの制御指示内容の検証を行い、検証結果を保持する。また、制御サーバーにおいて、各通信機器から検証結果を取得し、各通信機器からの検証結果を基にして、各通信機器において一連の制御が実行可能かどうか判断し、一連の制御が実行可能であれば、各通信機器に対して一連の制御の実行を促す。
【００２４】
本発明のプログラムは、通信機器、並びに制御サーバーの各々として機能する計算機に、上記の通信制御方法を実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
【００２５】
パケットを転送する通信機器と、経路情報を決定する制御サーバーが分離された通信制御システムにおいて、通信の信頼性を向上することができる。
【図面の簡単な説明】
【００２６】
【図１】ネットワークの構成例を示す図である。
【図２】通信機器の構成例を示す図である。
【図３】検索優先度順にエントリを並べた転送テーブルの例を示すである。
【図４】転送テーブルの構成例を示す図である。
【図５】トランザクション状態テーブルの構成例を示す図である。
【図６】転送テーブルへのエントリ登録の際の動作（待機あり）を示すフローチャートである。
【図７】転送テーブルへのエントリ登録の際の動作（待機なし）を示すフローチャートである。
【図８】複数の制御サーバーを有するネットワークにおける通信機器の構成例を示す図である。
【図９】複数の制御サーバーを有するネットワークにおけるトランザクション状態テーブルの構成例を示す図である。
【発明を実施するための形態】
【００２７】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００２８】
［ネットワークシステムの構成］
図１は、本発明が実施されるネットワークシステムの構成例を示すものである。
このネットワークシステムは、制御サーバー１０１と、通信機器１０２と、端末１０３を含む。ここでは、通信機器１０２として、通信機器１０２Ａ〜１０２Ｄを示す。また、端末１０３として、端末１０３Ａ、１０３Ｂを示す。
【００２９】
制御サーバー１０１は、端末１０３間のエンド間の通信経路を、通信機器１０２から収集したトポロジー（ｔｏｐｏｌｏｇｙ：接続形態）構成情報を基に計算し、端末１０３間のトラフィックを転送するためのエントリを、通信機器１０２の転送テーブルに対して登録する。また、制御サーバー１０１は、トポロジー構成情報の変化や使用可能帯域の変化等による経路の変更を基に、通信機器１０２の転送テーブルのエントリの書換や削除等を行う。
【００３０】
通信機器１０２（通信機器１０２Ａ〜１０２Ｄ）は、ネットワークトポロジーを構成しており、ネットワークのエンド間のトラフィックを伝送する。通信機器１０２の転送テーブルは、ネットワークを流れるトラフィックの検索情報とその一致したトラフィックの転送先を指定したエントリで構成され、制御サーバー１０１から制御される。
【００３１】
端末１０３（端末１０３Ａ、１０３Ｂ）は、エンド間のトラフィックの送受信を行う。
【００３２】
［ハードウェアの例示］
制御サーバー１０１の例として、ＰＣ（パソコン）、シンクライアントサーバー、アプライアンス（ａｐｐｌｉａｎｃｅ）、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。
【００３３】
通信機器１０２の例として、オープンフロースイッチを想定している。オープンフロースイッチとして使用可能な機器の例として、ルータ、スイッチングハブ等の中継機器や、ゲートウェイ、プロキシ、ファイアウォール並びにロードバランサ等の中継用の計算機等が考えられる。例えば、通信機器１０２は、マルチレイヤスイッチ（ｍｕｌｔｉ−ｌａｙｅｒ  ｓｗｉｔｃｈ）でも良い。マルチレイヤスイッチは、サポートするＯＳＩ参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層（第３層）のデータを読むレイヤ３スイッチ、トランスポート層（第４層）のデータを読むレイヤ４スイッチ、アプリケーション層（第７層）のデータを読むレイヤ７スイッチ（アプリケーションスイッチ）がある。
【００３４】
端末１０３の例として、ＰＣ、シンクライアント端末、アプライアンス、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機、又は、携帯電話機、カーナビ（カーナビゲーションシステム）、ガジェット（電子機器）、携帯ゲーム機、家庭用ゲーム機、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器等が考えられる。端末１０３は、車両や船舶、航空機等の移動体に搭載されていても良い。
【００３５】
なお、制御サーバー１０１、通信機器１０２、及び端末１０３は、物理マシン上に構築された仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））でも良い。
【００３６】
制御サーバー１０１、通信機器１０２、及び端末１０３の各々を接続するネットワークの例として、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等が考えられる。
【００３７】
但し、実際には、これらの例に限定されない。
【００３８】
［通信機器の構成］
図２は、通信機器１０２の構成例を示すものである。
通信機器１０２は、制御サーバーインタフェース部１０２１と、トランザクション管理部１０２２と、テーブル操作部１０２３と、テーブル検索部１０２４と、転送テーブル１０２５と、データ転送部１０２６と、インタフェース１０２７を備える。ここでは、インタフェース１０２７として、インタフェース１０２７Ａ、１０２７Ｂを示す。
【００３９】
制御サーバーインタフェース部１０２１は、制御サーバー１０１との制御チャネルを終端して、制御サーバー１０１からの制御命令を取り出したり、実行結果を返送したり、トランザクション（ｔｒａｎｓａｃｔｉｏｎ）結果に対する問い合わせの受付・返送をしたりする。なお、トランザクションとは、関連する複数の処理を一つの処理単位としてまとめたものである。この制御命令の例として、オープンフロープロトコルメッセージ（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ  Ｍｅｓｓａｇｅ）の１つであり、コントローラからスイッチのフローテーブルにエントリを登録するための「ＦｌｏｗＭｏｄ」メッセージ等が考えられる。
【００４０】
トランザクション管理部１０２２は、制御命令毎にトランザクションとして保持し、その実行結果やその命令に対する検証結果を保持し、制御サーバー１０１からの問い合わせに対して応答したり、トランザクションの実行命令に対して実行したりする。実行待ちのトランザクションを実行する手法には、広く一般に使用されている２フェーズコミットの手法を使用することができる。
【００４１】
テーブル操作部１０２３は、転送テーブル１０２５に対してエントリの登録・書換・削除を実行するブロックである。
【００４２】
テーブル検索部１０２４は、トランザクション管理部１０２２からの命令に従って、転送テーブル１０２５の登録済みエントリに対して、新規エントリが包含関係や一部包含関係になっていないか、包含・一部包含関係のエントリがそのエントリに対して、高・低の検索優先度のいずれかを確認し、その結果をトランザクション管理部１０２２に返す。
【００４３】
転送テーブル１０２５は、図３に示す通り、エントリは番号で管理されており、その番号の順に検索優先度が決まっている、また、図４のような検索情報（例えば、送信元・送信先ＩＰアドレス）、出力ポート等の情報を有する。ここでは、転送テーブル１０２５は、エントリ番号と、送信元ＩＰアドレスと、送信先ＩＰアドレスと、出力ポートの情報を有する。出力ポートは、インタフェース１０２７（インタフェース１０２７Ａ、１０２７Ｂ）を示す。
【００４４】
データ転送部１０２６は、インタフェース１０２７（インタフェース１０２７Ａ、１０２７Ｂ）から入力されたトラフィックから検索キーを抽出し、その検索キーを転送テーブル１０２５に対して検索実行し、その検索結果に従ってトラフィックを転送する。
【００４５】
インタフェース１０２７（インタフェース１０２７Ａ、１０２７Ｂ）は、通信機器１０２の通信用のインタフェースであり、図１のように他の通信機器１０２や端末１０３と接続を行い、トラフィックの受信と送信を行う。
【００４６】
ここでは、制御サーバーインタフェース部１０２１、トランザクション管理部１０２２、テーブル操作部１０２３、テーブル検索部１０２４、転送テーブル１０２５、データ転送部１０２６は、プログラムで駆動される処理装置等のハードウェアと、そのハードウェアを駆動して所望の処理を実行させるプログラム等のソフトウェアと、そのソフトウェアや各種データを格納する記憶装置によって実現されるものとする。但し、実際には、これらの例に限定されない。
【００４７】
上記の処理装置の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、同様の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。但し、実際には、これらの例に限定されない。
【００４８】
上記の記憶装置の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等のリムーバブルディスクや記憶媒体（メディア）等が考えられる。但し、実際には、これらの例に限定されない。
【００４９】
また、制御サーバーインタフェース部１０２１、データ転送部１０２６、及びインタフェース１０２７は通信機能を持つ。制御サーバーインタフェース部１０２１、データ転送部１０２６、及びインタフェース１０２７の通信機能を実現するハードウェアの例として、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。但し、実際には、これらの例に限定されない。
【００５０】
［転送テーブルへのエントリ登録の際の動作（待機あり）］
図６を用いて、通信経路の一貫性を保つための動作について説明する。
【００５１】
ここでは、制御サーバー１０１は、通信機器１０２に、図４の形式のエントリーデータを送信する。通信機器１０２は、受信したエントリーデータを転送テーブル１０２５に格納する。
【００５２】
（１）ステップＳ１０１
通信機器１０２において、制御サーバーインタフェース部１０２１は、制御サーバー１０１から、制御チャネル経由で、新規エントリの追加指示の制御命令を受け取り、トランザクション管理部１０２２に渡す。トランザクション管理部１０２２は、制御命令に含まれるトランザクション番号をキーに、図５のトランザクション状態テーブルに状態を検証待ちとして登録する。ここでは、トランザクション状態テーブルは、コントローラＩＤと、トランザクション番号と、制御命令と、状態と、ロールバック方法の情報を有する。コントローラＩＤは、制御サーバーの識別情報である。制御サーバー１０１が１台しかなく一意に特定できる場合、コントローラＩＤの情報はなくても良い。トランザクション状態テーブルの検証待ちトランザクションを、検証中の状態に変更して、転送テーブル１０２５のエントリをテーブル検索部１０２４に送付する。
【００５３】
（２）ステップＳ１０２
テーブル検索部１０２４は、転送テーブル１０２５を参照し、転送テーブル１０２５に空きエントリがあるかどうかを確認する。テーブル検索部１０２４は、空きエントリがある場合、ステップＳ１０４の処理へ移行する。また、テーブル検索部１０２４は、空きエントリがない場合、ステップＳ１０３の処理へ移行する。
【００５４】
（３）ステップＳ１０３
テーブル検索部１０２４は、空きエントリがない場合、転送テーブル１０２５に空きエントリがないことを、トランザクション管理部１０２２に通知する。トランザクション管理部１０２２は、状態を空きエントリなしとして、ステップＳ１０６の処理へ移行し、トランザクションを待機状態にする。
【００５５】
（４）ステップＳ１０４
テーブル検索部１０２４は、空きエントリがある場合、転送テーブル１０２５に包括関係や一部包括関係にあるエントリがある（コンフリクトがある）かどうかを確認する。テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、当該エントリの優先度も確認する。テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、ステップＳ１０５の処理へ移行する。また、テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがない（コンフリクトがない）場合、ステップＳ１０６の処理へ移行し、トランザクションを待機状態にする。
【００５６】
（５）ステップＳ１０５
テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）ことを、トランザクション管理部１０２２に通知する。トランザクション管理部１０２２は、状態を包括・一部包括関係あり（コンフリクトあり）として、ステップＳ１０６の処理へ移行し、トランザクションを待機状態にする。
【００５７】
（６）ステップＳ１０６
テーブル検索部１０２４は、トランザクションを待機状態にして、制御サーバー１０１からの指示を待つ。制御サーバー１０１は、自動的に、トランザクション番号をキーに、処理検証結果を確認し、その結果を基に制御サーバー１０１内で判断を行う。このとき、トランザクション完了を、通信機器１０２から制御サーバー１０１に通知することも可能である。
【００５８】
（７）ステップＳ１０７
制御サーバーインタフェース部１０２１は、制御サーバー１０１から、制御チャネル経由で、新たな制御命令を受け取り、トランザクション管理部１０２２に渡す。制御サーバーインタフェース部１０２１は、制御サーバー１０１からの制御命令に従って処理を行う。制御命令が処理実行であれば、ステップＳ１０８の処理へ移行する。制御命令がロールバック指示であれば、ステップＳ１０９の処理へ移行する。
【００５９】
（８）ステップＳ１０８
制御サーバーインタフェース部１０２１は、制御命令が処理実行である場合、制御サーバー１０１からの制御命令に従って、転送テーブル１０２５にエントリを反映させる。
【００６０】
（９）ステップＳ１０９
制御サーバーインタフェース部１０２１は、制御命令がロールバック指示である場合、制御サーバー１０１からの制御命令に従って、転送テーブル１０２５にはエントリを反映させず、登録されたロールバック関数に従った処理を行う。
【００６１】
＜第２実施形態＞
本実施形態では、図６のステップＳ１０６、ステップＳ１０７において、トランザクション番号を制御のＩＮＤＥＸ（索引）とする代わりに、転送テーブル１０２５のエントリを制御のＩＮＤＥＸとする。
【００６２】
転送テーブルのエントリとは、ＩＰアドレス等の検索情報である。同じ検索情報が存在すると特定が難しくなるため、転送テーブルのエントリ（検索情報）には重複しない情報を使用すると好適である。
【００６３】
これにより、トランザクション番号を省略することが可能になる。
【００６４】
＜第３実施形態＞
本実施形態では、図７に示す通り、トランザクション管理部１０２２は、空きエントリがない場合や、包括関係や一部包括関係にあるエントリがない（コンフリクトがない）場合に、処理を待機するのではなく、そのまま制御命令を実行する。この場合、実行した結果、処理検証結果を確認でき、ロールバックすることも可能である。
【００６５】
［転送テーブルへのエントリ登録の際の動作（待機なし）］
図７を用いて、本実施形態において、通信経路の一貫性を保つための動作について説明する。なお、図７のステップＳ２０１〜Ｓ２０５は、図６のステップＳ１０１〜Ｓ１０５と同じである。
【００６６】
（１）ステップＳ２０１
通信機器１０２において、制御サーバーインタフェース部１０２１は、制御サーバー１０１から、制御チャネル経由で、新規エントリの追加指示の制御命令を受け取り、トランザクション管理部１０２２に渡す。トランザクション管理部１０２２は、制御命令に含まれるトランザクション番号をキーに、図５のトランザクション状態テーブルに状態を検証待ちとして登録する。トランザクション状態テーブルの検証待ちトランザクションを、検証中の状態に変更して、転送テーブルのエントリをテーブル検索部１０２４に送付する。
【００６７】
（２）ステップＳ２０２
テーブル検索部１０２４は、転送テーブル１０２５を参照し、転送テーブル１０２５に空きエントリがあるかどうかを確認する。テーブル検索部１０２４は、空きエントリがある場合、ステップＳ２０４の処理へ移行する。また、テーブル検索部１０２４は、空きエントリがない場合、ステップＳ２０３の処理へ移行する。
【００６８】
（３）ステップＳ２０３
テーブル検索部１０２４は、空きエントリがない場合、転送テーブル１０２５に空きエントリがないことを、トランザクション管理部１０２２に通知する。トランザクション管理部１０２２は、状態を空きエントリなしとして、ステップＳ２０６の処理へ移行する。
【００６９】
（４）ステップＳ２０４
テーブル検索部１０２４は、空きエントリがある場合、転送テーブル１０２５に包括関係や一部包括関係にあるエントリがある（コンフリクトがある）かどうかを確認する。なお、テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、当該エントリの優先度も確認する。テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、ステップＳ２０５の処理へ移行する。また、テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがない（コンフリクトがない）場合、ステップＳ２０６の処理へ移行する。
【００７０】
（５）ステップＳ２０５
テーブル検索部１０２４は、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）場合、包括関係や一部包括関係にあるエントリがある（コンフリクトがある）ことを、トランザクション管理部１０２２に通知する。トランザクション管理部１０２２は、状態を包括・一部包括関係あり（コンフリクトあり）として、ステップＳ２０６の処理へ移行する。
【００７１】
（６）ステップＳ２０６
制御サーバーインタフェース部１０２１は、制御サーバー１０１からの制御命令に従って処理を行う。制御サーバーインタフェース部１０２１は、制御命令が処理実行である場合、制御サーバー１０１からの制御命令に従って、転送テーブル１０２５にエントリを反映させる。また、制御サーバーインタフェース部１０２１は、制御命令がロールバック指示である場合、制御サーバー１０１からの制御命令に従って、転送テーブル１０２５にはエントリを反映させず、登録されたロールバック関数に従った処理を行う。制御サーバー１０１は、トランザクション番号をキーに、処理検証結果を確認し、その結果を基に制御サーバー１０１内で判断を行う。このとき、トランザクション完了を、通信機器１０２から制御サーバー１０１に通知することも可能である。
【００７２】
＜第４実施形態＞
本実施形態では、図８に示す通り、通信機器１０２は、複数の制御サーバー１０１（制御サーバー１０１Ａ、１０１Ｂ）から制御を受ける。この場合、図９に示す通りのトランザクション状態テーブルになる。本実施形態では、トランザクションは、「コントローラＩＤ」と「トランザクション番号」の組で管理される。コントローラＩＤは、制御サーバーの識別情報である。ここでは、制御サーバー１０１ＡのコントローラＩＤを「１」とし、制御サーバー１０１ＢのコントローラＩＤを「２」とする。
【００７３】
＜第５実施形態＞
本実施形態では、トランザクション番号には、制御サーバー１０１がイニシエーター（ｉｎｉｔｉａｔｏｒ）となるトランザクションに関しては、制御サーバー１０１が独自に生成した番号を使用し、通信機器１０２がイニシエーターとなるトランザクションについては、通信機器１０２が独自に生成した番号を使用する。通信機器１０２がイニシエーターとなるトランザクションの例として、インタフェースの状態の変化や、トラフィック受信を制御サーバー１０１へ通知するトランザクション等がある。
【００７４】
＜第６実施形態＞
本実施形態では、制御サーバー１０１が複数の通信機器１０２群を制御するため、制御サーバー１０１がイニシエーターとなって行うトランザクションも、通信機器１０２がイニシエーターとなって行うトランザクションも、制御サーバー１０１では、通信機器１０２とトランザクション番号の組で管理される。
【００７５】
＜第７実施形態＞
本実施形態では、通信機器１０２は、トランザクション番号を独自に生成し、通信機器１０２のＩＤが変更されたときや、接続先制御サーバー１０１が変更されたときには、トランザクション番号を新たに振り直す。このとき、トランザクション番号には、ランダムな番号を使用する。
【００７６】
＜第８実施形態＞
本実施形態では、通信機器１０２は、同一トランザクションの実行に複数の処理が存在するとき、それらの複数の処理の順序を守って処理を行う。
【００７７】
＜追記＞
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【００７８】
＜まとめ＞
以上のように、本発明は、通信機器と分離された制御サーバーから通信機器の転送テーブルを追加・書換・削除することにより、端末間のトラフィックの認可・経路・ＱｏＳ等を制御する通信システムにおいて、一貫性を保って複数の通信機器の転送テーブルに対する操作を行うことにより、端末間の通信の接続性を確保するための通信機器の制御方式に関する。
【００７９】
本発明は、制御サーバーからの通信機器の転送テーブルのエントリ等の登録・書換・削除を行うときに、通信機器間での状態不一致を抑止し、意図しないトラフィックのループや廃棄をなくし、通信の信頼性を向上することを目的とする。
【００８０】
本発明の手法では、制御サーバー１０１が行った通信機器１０２に対する転送テーブルのエントリの登録・書換・削除やインタフェースのＵＰ／ＤＯＷＮの制御等の制御指示に対して、通信機器１０２で制御サーバー１０１からの制御指示内容の検証を行い、通信機器１０２でその検証結果を保持し、制御サーバー１０１がその検証結果を取得し、複数の通信機器１０２からの検証結果を基にして、一連の制御が実行可能かどうか判断した後に、複数の通信機器１０２での実行を促す。
【００８１】
もしくは、制御サーバー１０１からの指示に従って、通信機器１０２はいったん実行し、制御サーバー１０１は制御命令が異常であると判断した場合、通信機器１０２に対して、実行結果をロールバックする。
【００８２】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【００８３】
なお、本出願は、日本出願番号２０１０−００１２９２に基づく優先権を主張するものであり、日本出願番号２０１０−００１２９２における開示内容は引用により本出願に組み込まれる。
【図１】
2011083786.tif 000003
【図２】
2011083786.tif 000004
【図３】
2011083786.tif 000005
【図４】
2011083786.tif 000006
【図５】
2011083786.tif 000007
【図６】
2011083786.tif 000008
【図７】
2011083786.tif 000009
【図８】
2011083786.tif 000010
【図９】
2011083786.tif 000011
【国際調査報告】
2011083786.tif 000012
2011083786.tif 000013
2011083786.tif 000014
2011083786.tif 000015