(57)【特許請求の範囲】
【請求項１】
パケットの処理規則を決定する制御装置と、
前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードと、
前記転送ノード側が保持している第１の処理規則群から求めた第１の値と、前記転送ノードに送信するために前記制御装置が決定した第２の処理規則群から求めた第２の値とを比較する比較部と、
前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認する確認部と、を含む通信システムであって、
前記第１の値と第２の値との不一致を検出した場合、前記確認部は、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索する通信システム。
【請求項２】
前記確認部は、前記第１の値と前記第２の値との比較結果に基づいて、前記転送ノードと前記制御装置の同期外れの有無を検出する請求項１の通信システム。
【請求項３】
前記第１の値および前記第２の値は、それぞれ、前記第３の値および第４の値を用いて算出可能である請求項１又は２の通信システム。
【請求項４】
前記第１の部分および第２の部分は、前記処理規則を格納するテーブルから選択した部分である請求項１から３いずれか一の通信システム。
【請求項５】
前記制御装置は、処理規則を設定する際に、前記転送ノードに、該処理規則が格納されるべきテーブル上の位置を指定し、
前記転送ノードは、前記処理規則が設定された際に、前記第１の値、または、前記第３の値と前記第１の値とを、それぞれ再計算する請求項１から４いずれか一の通信システム。
【請求項６】
前記第１の値と第２の値との不一致、または、前記第３、第４の値の不一致を検出した場合、前記確認部は、前記不一致が検出された処理規則群に含まれる処理規則同士の照合を実行する請求項１から５いずれか一の通信システム。
【請求項７】
前記制御装置または前記転送ノードの少なくとも一方は、前記第１から第４の値に、予め定めた規則により世代管理情報を付与して複数世代管理し、
前記比較部は、世代管理情報が一致する第１、第３の値と、第２、第４の値を比較する請求項１から６いずれか一の通信システム。
【請求項８】
パケットの処理規則を決定する手段と、
複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードに、前記決定した処理規則を送信する手段と、
前記転送ノードが保持している第１の処理規則群から求めた第１の値と比較して前記転送ノードとの同期を確認するために、前記転送ノードに送信するために決定した第２の処理規則群から第２の値を求める手段と、
を含む制御装置であって、
前記第１の値と第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索することを特徴とする制御装置。
【請求項９】
制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する手段と、
前記制御装置が転送ノードに送信するために決定した第２の処理規則群から求めた第２の値と比較して前記制御装置と前記転送ノードとの同期を確認するために、自装置が保持している第１の処理規則群から第１の値を求める手段と、
を含む転送ノードであって、
前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索することを特徴とする転送ノード。
【請求項１０】
パケットの処理規則を決定する制御装置と、前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードとを含む通信システムを制御する通信制御方法であって、
前記転送ノードが保持している第１の処理規則群から求めた第１の値と、前記制御装置が前記転送ノードに送信するために決定した第２の処理規則群から求めた第２の値とを比較するステップと、
前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認するステップと、
前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索するステップと、
を含む通信制御方法。
【請求項１１】
パケットの処理規則を決定する制御装置と、前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードと、を含む通信システムに接続されたコンピュータに、
前記転送ノードが保持している第１の処理規則群から求めた第１の値と、前記制御装置が前記転送ノードに送信するために決定した第２の処理規則群から求めた第２の値とを比較する処理と、
前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認する処理と、  前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１１−０１６３２２号（２０１１年１月２８日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、制御装置、転送ノード、通信制御方法およびプログラムに関し、特に、ネットワークに配置された転送ノードを集中制御する制御装置を有する通信システム、制御装置、転送ノード、通信制御方法およびプログラムに関する。
【背景技術】
【０００２】
制御装置が転送ノードを集中制御することにより通信を実現する通信システムにおいては、転送ノードと制御装置とが同期していることが求められる。制御装置と転送ノードとが同期していないと、制御装置が転送ノードに送信したパケットの転送方法に関する指示と、転送ノードによるパケットの転送処理との間に齟齬が生じ、制御装置が意図しないパケット転送が行われてしまうからである。
【０００３】
上記のように制御装置が転送ノードを集中制御する通信システムとしては、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が知られている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、制御装置と位置付けられるオープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したアクション（Ａｃｔｉｏｎｓ）と、の組が定義される（図１８参照）。
【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール（図１８のヘッダフィールド参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄（ｄｒｏｐ）等）を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行っている。
【０００５】
しかしながら、上記特許文献１、非特許文献１、２においては、オープンフローコントローラとオープンフロースイッチとの間の同期の確認方法について、具体的な検討はなされていない。
【０００６】
その他、特許文献２に、携帯型のデバイスが保持するデータと、該携帯型のデバイスが接続するデータベースに記憶されたデータとの同期を確認する技術が開示されている。同公報によれば、携帯型のデバイスは、携帯型のデバイスが保持する個々のデータについてそれぞれハッシュを生成し、それらのハッシュを同期化サーバに送信し、該データの同期確認を要求する。同期化サーバは、同期確認を要求された個々のデータについて、それぞれハッシュを生成する。同期化サーバは、携帯型のデバイスから送信された複数のハッシュと、自身が生成した複数のハッシュとを比較する。同期化サーバは、比較結果に基づいて、データの同期を確認する。同期確認の対象となる複数のデータの各々からハッシュを生成することにより同期確認することで、同期確認に要する帯域幅を削減できると、記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００８／０９５０１０号
【特許文献２】特表２００９−５１０５６６号公報
【非特許文献】
【０００８】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２２年１２月２２日検索］、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｗｐ−ｌａｔｅｓｔ．ｐｄｆ〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．０．０．  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）  ［平成２２年１２月２２日検索］、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以下の分析は、本発明によって与えられたものである。上述のように、特許文献１、非特許文献１、２には、Ｓｔａｔｓ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙというフローテーブル、もしくは、フローエントリの内容を応答する制御メッセージが用意されている程度であり（非特許文献２の「５．３．５  Ｒｅａｄ  Ｓｔａｔｅ  Ｍｅｓｓａｇｅｓ」参照）、転送ノードと制御装置間の効率の良い同期確認方法は記載されていない。
【００１０】
また、特許文献２の技術は、個々のデータベースを代表するハッシュ（データベースハッシュ）の比較の結果、ミスマッチが検出された場合、携帯型のデバイスが保持する個々のデータ毎にハッシュを生成し同期確認（記録ハッシュの比較）を実行している。つまり、同期確認のために、同期確認対象の個々のデータに対応する複数のハッシュが、ネットワーク上でやり取りされる。よって、データベースに格納された多数のデータの各々に対して、同期確認用のネットワークトラフィックが発生する。
【００１１】
制御装置が転送ノードを集中制御することにより通信を実現する通信システムにおいては、非特許文献２のＳｔａｔｓ  Ｒｅｑｕｅｓｔ／Ｒｅｐｌｙのような方法や、特許文献２のような方法で同期確認を実行すると、制御装置および転送ノードに掛かる負荷がより増大してしまうという問題点がある。さらには、制御対象の転送ノードの数の増大や、１ユーザあたりの処理規則の増大（制御粒度の細分化）に従って、制御装置の負荷が爆発的に増大してしまう点も考慮する必要がある。特に、特許文献２に記載の方法は、個々のデータ毎に同期確認用のネットワークトラフィックが発生するため、同期確認用のトラフィックの増大により、制御装置の負荷増大に拍車をかける。
【００１２】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは制御装置が転送ノードを集中制御することにより通信を実現する通信システムにおける、転送ノードと制御装置間の効率の良い同期確認方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の視点によれば、パケットの処理規則を決定する制御装置と、前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードと、前記転送ノード側が保持している第１の処理規則群から求めた第１の値と、前記転送ノードに送信するために前記制御装置が決定した第２の処理規則群から求めた第２の値とを比較する比較部と、前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認する確認部と、を含む通信システムであって、前記第１の値と第２の値との不一致を検出した場合、前記確認部は、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索する通信システムが提供される。
【００１４】
本発明の第２の視点によれば、パケットの処理規則を決定する手段と、複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードに、前記決定した処理規則を送信する手段と、前記転送ノードが保持している第１の処理規則群から求めた第１の値と比較して前記転送ノードとの同期を確認するために、前記転送ノードに送信するために決定した第２の処理規則群から第２の値を求める手段と、を含む制御装置であって、前記第１の値と第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索することを特徴とする制御装置が提供される。
【００１５】
本発明の第３の視点によれば、制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する手段と、前記制御装置が転送ノードに送信するために決定した第２の処理規則群から求めた第２の値と比較して前記制御装置と前記転送ノードとの同期を確認するために、自装置が保持している第１の処理規則群から第１の値を求める手段と、を含む転送ノードであって、前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索することを特徴とする転送ノードが提供される。
【００１６】
本発明の第４の視点によれば、パケットの処理規則を決定する制御装置と、前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードとを含む通信システムを制御する通信制御方法であって、前記転送ノードが保持している第１の処理規則群から求めた第１の値と、前記制御装置が前記転送ノードに送信するために決定した第２の処理規則群から求めた第２の値とを比較するステップと、前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認するステップと、前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索するステップと、を含む通信制御方法が提供される。本方法は、転送ノードおよび転送ノードを集中制御する制御装置という、特定の機械に結びつけられている。
【００１７】
本発明の第５の視点によれば、パケットの処理規則を決定する制御装置と、前記制御装置から送信された複数の処理規則のうち、受信パケットに対応する処理規則により該受信パケットを処理する転送ノードと、を含む通信システムに接続されたコンピュータに、前記転送ノードが保持している第１の処理規則群から求めた第１の値と、前記制御装置が前記転送ノードに送信するために決定した第２の処理規則群から求めた第２の値とを比較する処理と、前記比較結果に基づいて、前記転送ノードと前記制御装置との同期を確認する処理と、前記第１の値と前記第２の値との不一致を検出した場合、前記第１の処理規則群から選択した第１の部分から求めた第３の値と、前記第２の処理規則群の前記第１の部分に対応する第２の部分から求めた第４の値とを比較することにより同期外れ箇所を検索する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１８】
本発明によれば、制御装置が転送ノードを集中制御することにより通信を実現する通信システムにおける、転送ノードと制御装置間の同期確認を効率良く実施することが可能になる。
上記したコンピュータプログラムは、テクニカルパラメータ、即ち、技術的特徴を持っている物理的乃至電気的データを処理する。かかるコンピュータ（プログラムも同様）はそれ自体、製品又はプロダクト（通信装置又は通信システム又はこれらのコンポーネント）を構成する通信システム、制御装置、及び／又は、転送ノードの部分として動作する。
【図面の簡単な説明】
【００１９】
【図１】本発明の概要を説明する図である。
【図２】第１、第２の値の算出方法の一例を示す図である。
【図３】本発明の第１の実施形態の構成を示す図である。
【図４】本発明の第１の実施形態の制御装置および転送ノードの詳細構成を示すブロック図である。
【図５】本発明の第１の実施形態の転送ノードの処理規則記憶部に保持されるテーブルの一例である。
【図６】本発明の第１の実施形態の転送ノードの同期確認情報記憶部に保持される同期確認情報の一例である。
【図７】本発明の第１の実施形態の制御装置の処理規則記憶部に保持されるテーブルの一例である。
【図８】本発明の第１の実施形態の制御装置の同期確認情報記憶部に保持されるテーブルの一例である。
【図９】本発明の第１の実施形態の制御装置における同期確認情報の算出動作を説明するための流れ図である。
【図１０】本発明の第１の実施形態の転送ノードにおける同期確認情報の算出動作を説明するための流れ図である。
【図１１】本発明の第１の実施形態の制御装置における同期確認動作を説明するための流れ図である。
【図１２】本発明の第１の実施形態の動作シーケンスの一例を示す図である。
【図１３】図１２の続図である。
【図１４】本発明の第２の実施形態の転送ノードの同期確認情報の一例である。
【図１５】本発明の第２の実施形態の制御装置のテーブルの一例である。
【図１６】世代管理情報を用いた照合動作の例を説明するための図である。
【図１７】世代管理情報を用いた照合動作の別の例を説明するための図である。
【図１８】非特許文献２に記載のフローエントリの構成を表した図である。
【発明を実施するための形態】
【００２０】
はじめに本発明の概要について、図１、図２を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２１】
本発明は、図１に示すように、パケットの処理規則を決定する制御装置２０と、制御装置２０から送信されて処理規則記憶部１４に格納された複数の処理規則の中から受信パケットに対応する処理規則により受信パケットを処理する転送ノード１０とを含む構成にて実現できる。
【００２２】
前記制御装置２０は、さらに、前記転送ノード側が保持している第１の処理規則群から求めた第１の値と、前記転送ノードに送信するために制御装置が決定した第２の処理規則群から求めた第２の値とを比較する比較部２５ａと、前記比較結果に基づいて、前記転送ノードと前記制御装置間の前記処理規則の同期状態を確認する確認部２５ｂとを備える。なお、図１では、制御装置２０が比較部２５ａと確認部２５ｂを備える一例を示したが、これに限定されるものではない。比較部２５ａと確認部２５ｂは、制御装置２０と転送ノート１０のいずれかまたは双方に実装されてもよいし、また、制御装置２０と転送ノード１０以外の装置に実装されていてもよい。上述のように、個々の処理規則それぞれを代表する第１の値を生成して同期確認をするのではなく、複数の処理規則からなる処理規則群を代表する第１の値を生成して同期確認をするので、同期確認のために制御装置２０と転送ノート１０との間に発生するネットワークトラフィック数を削減できる。
【００２３】
ここで、前記第１、第２の値の算出方法について例を挙げて説明する。前記第１の値は、転送ノード１０側の処理規則記憶部１４に保持されている複数の処理規則、処理規則全体もしくは処理規則中の特定のフィールドの値等の集合を引数とする所定の関数（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５（ＭＤ５）などに代表されるハッシュ関数等）を用いて求めることができる。即ち、前記第１の値は、その時点の処理規則記憶部１４に保持されている処理規則群を象徴する値ということができる。同様に前記第２の値も、前記所定の関数と同一の関数を用いて、その時点の処理規則記憶部２８に保持されている複数の処理規則、処理規則全体若しくは処理規則中の特定のフィールドの値等を引数として求めることができる。転送ノード１０と制御装置２０が同期している場合には両者は一致するので、第１、第２の値の比較結果により、転送ノード１０と制御装置２０の同期状態を確認することができる。
【００２４】
また、前記第１、第２の値は、処理規則の集合全体から求めるのではなく、図２に示すように階層的に算出することもできる。図２の例では、まず、転送ノード１０側の処理規則記憶部１４、制御装置２０側の処理規則記憶部２８に保持されている処理規則について、所定の部分（図２では、パーティション（Ｐａｒｔｉｔｉｏｎ）と表記）毎に、所定の関数（ハッシュ関数等）を用いて、これらの部分を象徴する値（ｈ１、ｈ２、ｈ３、・・・ｈｘ）を算出する。前記各部分を象徴する値（第３の値）は、各パーティションに含まれる処理規則群から算出してもよい。また、前記部分を象徴する値（第３の値）は、各パーティションに含まれる各々の処理規則に対してそれぞれハッシュ値を算出し、それら各処理規則に対応するハッシュ値から、パーティションのハッシュ値を算出してもよい。制御装置２０側についても同様に、前記転送ノード１０側の各部分に対応する各部分を象徴する値（第４の値）を算出しておく。図２の例では、このようにして得られた値（ｈ１、ｈ２、ｈ３、・・・ｈｘ）を所定の関数（図２のｈａｓｈ（ｈ１、ｈ２、ｈ３、・・・ｈｘ））に代入することで、第１の値（第２の値）を求めている。このようにして得られた第１の値（第２の値）を比較することで、転送ノード１０と制御装置２０の同期状態を確認することはもちろんとして、両者の不一致により同期外れが検出された場合に、前記部分毎に求めた値（第３、第４の値）を比較することにより、不一致箇所を段階的に絞り込むことが可能となる。第１、第２の値の両者が不一致の場合であっても、個々の処理規則それぞれについて同期確認をするのではなく、段階的に不一致箇所を絞り込むので、同期確認のために制御装置２０と転送ノート１０との間に発生するネットワークトラフィック数を削減できる。
【００２５】
なお、図１の例では、制御装置２０が処理規則記憶部２８を備えるものとして説明したが、制御装置２０が、外部の処理規則記憶部にアクセスして転送ノード１０に設定した処理規則を管理する構成も採用可能である。
【００２６】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図３は、本発明の第１の実施形態に係る通信システムの構成を示す図である。図３を参照すると、３つの転送ノード１０と、制御装置２０と、転送ノード１０を経由して通信するホスト（Ａ）、（Ｂ）が示されている。なお、図３の例では、３つの転送ノード１０と、制御装置２０と、２つのホスト（Ｈｏｓｔ（Ａ）、Ｈｏｓｔ（Ｂ））を示しているが、それぞれの数は、あくまで例示であり、それぞれ任意の数とすることができる。
【００２７】
図４は、転送ノード１０および制御装置２０の詳細構成を表したブロック図である。図４を参照すると、転送ノード１０は、転送処理部１１と、制御装置２０と通信する制御装置通信部１２と、処理規則記憶部１４を管理する処理規則管理部１３と、パケットバッファ１５と、同期確認情報記憶部１６と、同期確認情報計算部１７とを備えて構成される。なお、転送ノード１０は、必ずしもパケットバッファ１５を備えていなくともよい。
【００２８】
図５は、処理規則記憶部１４に保持される処理規則格納用テーブルの一例である。Ｐｒｉｏｒｉｔｙフィールドは、各処理規則の優先度を表わしている。また、マッチングルールおよびアクション（Ａｃｔｉｏｎｓ）は、図１８のオープンフロースイッチのフローエントリのマッチングルール（照合規則）およびアクション（Ａｃｔｉｏｎｓ）に相当する。Ｐａｒｔａｔｉｏｎ＃フィールドは、各エントリが属するパーティション番号を示している。なお、図５の例では、フロー統計情報（Ｓｔａｔｓ）フィールドを省略しているが、フロー統計情報（Ｓｔａｔｓ）を追加することも可能である（但し、フロー統計情報（Ｓｔａｔｓ）は、パケット受信の都度変化するものであるため、後記同期確認情報の作成には使用しない。）。従って、図５の処理規則格納用テーブルは、非特許文献２のオープンフロースイッチのフローエントリに、Ｐｒｉｏｒｉｔｙフィールドとパーティション＃フィールドとを追加したものとなっている。但し、図５のテーブルはあくまで例示であり、テーブルのフォーマットが非特許文献２のオープンフロー技術のフォーマットに限定されるものではない。
【００２９】
転送処理部１１は、処理規則検索部１１１と、アクション実行部１１２とを含んで構成される。処理規則検索部１１１は、上記のような構成の処理規則記憶部１４から、受信パケットに適合するマッチングルール（照合規則）を持つ処理規則の処理内容（アクション）をアクション実行部１１２に出力する。アクション実行部１１２は、前記処理規則検索部１１１から出力された処理内容（アクション）を実行する。
【００３０】
また、処理規則管理部１３は、制御装置通信部１２を介して制御装置２０から、処理規則登録位置情報付きの処理規則の追加指示を受信すると、処理規則記憶部１４のテーブルにおいて、処理規則登録位置情報に対応する位置に、指示された処理規則を追加する動作を行う。また、処理規則管理部１３は、処理規則記憶部１４に保持された処理規則のうち、一定時間以上適合するパケットを受信しなかった場合、当該処理規則を削除するとともに、制御装置２０の事前指示に基づいて、制御装置２０に通知する処理（タイムアウト処理）を行う。処理規則を削除する際の制御装置２０に対する通知は、上記の制御装置２０による事前指示により、通知若しくは非通知のいずれかに任意に設定可能である。
【００３１】
図６は、同期確認情報計算部１７にて計算され、同期確認情報記憶部１６に保持される同期確認情報の一例である。Ｈｐ１〜Ｈｐｘフィールドは、上記した処理規則格納用テーブルのパーティション毎に、処理規則を引数として算出されたハッシュ値（以下、「パーティション同期確認情報」という。）が格納される。Ｈｔａｂｌｅフィールドは、Ｈｐ１〜Ｈｐｘフィールドの値を引数として算出されたハッシュ値（以下、「テーブル同期確認情報」という。）が格納される。
【００３２】
同期確認情報は、転送ノードに保持されている処理規則群、各パーティションに属する処理規則群をそれぞれ一意に表わすものとなっている。以下の説明では、図５の処理規則から、図６に示すパーティション同期確認情報Ｈｐ１、Ｈｐ２、Ｈｐ３、・・・、Ｈｐｘとして０ｘ１ａｂｆ、０ｘａ８７ｆ、０ｘ２９ｃａ、・・・、０ｘａ９ｂａが算出され、図６のパーティション同期確認情報Ｈｐ１〜Ｈｐｘから、テーブル同期確認情報Ｈｔａｂｌｅとして０ｘ１ａ８６が算出されているものとして説明する。
【００３３】
なお、同期確認情報計算部１７による同期確認情報の計算タイミングは、制御装置２０から処理規則の追加指示に基づいて処理規則の追加が完了したタイミングや、処理規則のタイムアウト処理時のように、処理規則記憶部１４に保持されている処理規則に変更や移動等が生じたタイミングとすることができる。これらのタイミングは、制御装置２０との間に処理規則に関するトランザクションが発生しているため、上記したＣｔフィールド、Ｓｔフィールドの値を世代管理情報として使用することができる。
【００３４】
上記のような転送ノード１０は、非特許文献２のオープンフロースイッチに、上記処理規則管理部１３、同期確認情報記憶部１６および同期確認情報計算部１７に相当する機能を追加するとともに、そのフローテーブルを、上記処理規則記憶部１４と同様に処理規則毎にパーティション番号を保持可能な構成とすることで実現することが可能である。但し、上記処理規則管理部１３、同期確認情報記憶部１６および同期確認情報計算部１７に相当する機能が、オープンフローの技術に基づく機能であることに限定されるものではない。また、上記のような転送ノード１０の処理規則管理部１３、同期確認情報記憶部１６および同期確認情報計算部１７に相当する機能は、転送ノード１０を構成するコンピュータに実行させるプログラムによって実現することもできる。
【００３５】
再度、図４を参照して、制御装置２０の構成を説明する。制御装置２０は、転送ノード１０との通信を行うノード通信部２１と、制御メッセージ処理部２２と、ノード通信部２１を介して収集された転送ノード１０の接続関係に基づいてネットワークトポロジ情報を構築するトポロジ管理部２３と、トポロジ管理部２３にて構築されたネットワークトポロジ情報に基づいてパケットの転送経路および該転送経路上の転送ノード１０に実行させるアクションを求める経路・アクション計算部２４と、転送ノード１０への処理規則の送信・設定や、転送ノード１０からの処理規則のタイムアウト通知に応じて、処理規則記憶部２８の内容が各転送ノード１０の処理規則記憶部１４の内容と一致するよう管理する処理規則管理部２５と、同期確認情報記憶部２６と、同期確認情報計算部２７と、処理規則記憶部２８とを備えて構成される。
【００３６】
さらに、制御メッセージ処理部２２は、転送ノード１０から受信した制御メッセージを解析して、必要な処理を行うメッセージ解析・処理部２２１と、転送ノード１０に送信するメッセージを生成するメッセージ生成部２２２とを備えて構成される。
【００３７】
また、本実施形態の処理規則管理部２５は、上記した本発明の概要の比較部２５ａと確認部２５ｂに相当する機能を備え、制御メッセージ処理部２２およびノード通信部２１を介して、所定の時間間隔の経過などの所定の同期確認イベントの発生を契機に、転送ノード１０に対し、テーブル同期確認情報、パーティション同期確認情報、不一致パーティションの処理規則の送信を要求し、同期確認処理を行う機能を有している。なお、比較部２５ａと確認部２５ｂは、制御装置２０の処理規則管理部２５に設けられることに限定されるものではない。比較部２５ａ及び確認部２５ｂ、又は、比較部２５ａもしくは確認部２５ｂのそれぞれは、制御装置２０と転送ノード１０のいずれかに設けられていてもよい。また、比較部２５ａ及び確認部２５ｂ、又は、比較部２５ａもしくは確認部２５ｂのそれぞれは、制御装置２０及び転送ノード１０以外のシステム中の他の装置に設けることも可能である。
【００３８】
図７は、制御装置２０の処理規則記憶部２８に保持される処理規則格納用テーブルの一例である。図７に示すとおり、制御装置２０の処理規則記憶部２８には、制御装置２０の制御対象の転送ノード１０の処理規則記憶部１４に保持される処理規則がまとめて保持される。例えば、図７の上から１〜３番目のエントリは、マッチングルールがＡであるフローについて、ＤＰＩＤ（ノード１０の識別子；Ｄａｔａｐａｔｈ  Ｉｄｅｎｔｉｆｉｅｒ）が１〜３のノードにそれぞれ設定される処理規則を示している（上から４〜６番目のエントリも同様。）。なお、図７の例では、マッチングルールをキーにして処理規則が格納されているが、ＤＰＩＤやそのＰａｒｔａｔｉｏｎ＃をキーにして処理規則を格納する構成とすることも可能である。
【００３９】
ＤＰＩＤが１であるノード（例えば、図３のノード＃１）は、上記上から１番目のエントリのとおり、「Ａ」というマッチングルールに対応するパケットを受信した場合に、そのアクションフィールド（Ａｃｔｉｏｎｓ）に従い、９番ポートから出力する処理を実行する。同様に、ＤＰＩＤが２であるノード（例えば、図３のノード＃２）は、ＤＰＩＤが１であるノード（例えば、図３のノード＃１）から「Ａ」というマッチングルールに対応するパケットを受信すると、６番ポートから出力する処理を実行する。そして、ＤＰＩＤが３であるノード（例えば、図３のノード＃３）は、ＤＰＩＤが２であるノード（例えば、図３のノード＃２）から「Ａ」というマッチングルールに対応するパケットを受信すると、１番ポートから出力する処理を実行する。以上により、「Ａ」というマッチングルールに対応するパケットを指定した経路にて転送させる制御が実現される。
【００４０】
図８は、同期確認情報記憶部２６に保持される同期確認情報格納用テーブルの一例である。各フィールドの値は、図６にて説明した内容と同等である。なお、図８の変更内容フィールドは、同期確認情報の変更箇所を説明するためのものであり、実際には省略することも可能である。なお、図８のテーブルは、ＤＰＩＤが１のノード用のテーブルである。同期確認情報記憶部２６は、各ＤＰＩＤに対応するノードそれぞれに対応する複数のテーブルを保持している（図８に示した形式のテーブルが、各ＤＰＩＤに対応するノード毎に存在する。）。
【００４１】
図８の変更内容フィールドに示したように、例えば、ＤＰＩＤ＃１の転送ノードにマッチングルールＡの処理規則をパーティション＃１に追加した場合、パーティション＃１から算出されるパーティション同期確認情報Ｈｐ１と、パーティション同期確認情報Ｈｐ１〜Ｈｐｘから算出されるテーブル同期確認情報Ｈｔａｂｌｅに変化が生じることになる。同様に、ＤＰＩＤ＃１の転送ノードからマッチングルールＡの処理規則がタイムアウトにより削除したとの通知を受けた場合、パーティション＃１から算出されるパーティション同期確認情報Ｈｐ１と、パーティション同期確認情報Ｈｐ１〜Ｈｐｘから算出されるテーブル同期確認情報Ｈｔａｂｌｅの値が、初期状態と同値に戻ることになる。
【００４２】
なお、図４の構成では、同期確認情報記憶部２６や処理規則記憶部２８を制御装置２０の内部に設けているが、別途外部サーバ等に同期確認情報記憶部２６や処理規則記憶部２８を設ける構成も採用可能である。
【００４３】
また、上記のような制御装置２０は、非特許文献１、２のオープンフローコントローラをベースに、上記のような処理規則の変更・移動に伴ない同期確認情報を計算・管理する、処理規則管理部２５、同期確認情報記憶部２６、同期確認情報計算部２７、処理規則記憶部２８に相当する機能・構成を追加することで実現することが可能である。但し、制御装置２０が、オープンフローの技術に基づいて構成されることに限定されるものではない。また、上記のような制御装置２０の処理規則管理部２５、同期確認情報計算部２７に相当する機能は、制御装置２０を構成するコンピュータに実行させるプログラムによって実現することもできる。
【００４４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図９は、本発明の第１の実施形態の制御装置２０における同期確認情報の算出動作を説明するための流れ図である。
【００４５】
図９を参照すると、制御装置２０は、転送ノード１０に保持されている処理規則の操作（追加、変更、削除）または、転送ノード１０から処理規則の削除通知を受信すると（ステップＳ００１）、当該操作や削除の対象となった処理規則を保持する転送ノードの該当パーティション同期確認情報の再計算を行う（ステップＳ００２）。
【００４６】
また、該当パーティション同期確認情報の再計算が完了すると、制御装置２０は、前記計算後のパーティション同期確認情報を含むパーティション同期確認情報を用いて、テーブル同期確認情報を再計算する（ステップＳ００３）。
【００４７】
最後に、制御装置２０は、これら再計算したパーティション同期確認情報およびテーブル同期確認情報を同期確認情報記憶部２６に保存する（ステップＳ００４）。
【００４８】
図１０は、本発明の第１の実施形態の転送ノード１０における同期確認情報の算出動作を説明するための流れ図である。図１０を参照すると、転送ノード１０は、制御装置２０からの指示に基づく処理規則の操作が完了し（追加、変更、削除）、または、処理規則のタイムアウトによる削除を行うと（ステップＳ１０１）、当該操作や削除の対象となった処理規則を含むパーティションのパーティション同期確認情報の再計算を行う（ステップＳ１０２）。
【００４９】
また、該当パーティション同期確認情報の再計算が完了すると、転送ノード１０は、前記計算後のパーティション同期確認情報を含むパーティション同期確認情報を用いて、テーブル同期確認情報を再計算する（ステップＳ１０３）。
【００５０】
最後に、転送ノード１０は、これら再計算したパーティション同期確認情報およびテーブル同期確認情報を同期確認情報記憶部１６に保存する（ステップＳ１０４）。
【００５１】
図１１は、本発明の第１の実施形態の制御装置２０における同期確認動作を説明するための流れ図である。図１１を参照すると、制御装置２０は、所定の時間間隔の経過などの所定の同期確認イベントの発生を契機に、転送ノード１０に対し、テーブル同期確認情報の送信を要求する（ステップＳ２０１）。転送ノード１０は、テーブル同期確認情報Ｈｔａｂｌｅを取り出して制御装置２０に送信する。
【００５２】
転送ノード１０からテーブル同期確認情報Ｈｔａｂｌｅを受信すると（ステップＳ２０２）、制御装置２０は、同期確認情報記憶部２６から対応するテーブル同期確認情報Ｈｔａｂｌｅを取り出す（ステップＳ２０３）。
【００５３】
次に、制御装置２０は、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側で計算したテーブル同期確認情報Ｈｔａｂｌｅとを照合する（ステップＳ２０４）。ここで、両者が一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２０４のＹｅｓ）。
【００５４】
他方、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側で計算したテーブル同期確認情報Ｈｔａｂｌｅとが一致しなかった場合、制御装置２０は、転送ノード１０に対し、パーティション同期確認情報の送信を要求する（ステップＳ２０５）。転送ノード１０は、同期確認情報記憶部１６からパーティション同期確認情報Ｈｐ１〜Ｈｐｘを取り出して制御装置２０に送信する。
【００５５】
転送ノード１０からパーティション同期確認情報Ｈｐ１〜Ｈｐｘを受信すると（ステップＳ２０６）、制御装置２０は、同期確認情報記憶部２６から対応するパーティション同期確認情報Ｈｐ１〜Ｈｐｘを取り出す（ステップＳ２０７）。
【００５６】
次に、制御装置２０は、転送ノード１０から受信したパーティション同期確認情報Ｈｐ１〜Ｈｐｘと、自装置側で計算したパーティション同期確認情報Ｈｐ１〜Ｈｐｘとを照合する（ステップＳ２０８）。ここで、すべてのパーティション同期確認情報Ｈｐ１〜Ｈｐｘが一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２０８のＹｅｓ）。
【００５７】
他方、転送ノード１０から受信したパーティション同期確認情報Ｈｐ１〜Ｈｐｘと、自装置側で計算したテーブル同期確認情報パーティション同期確認情報Ｈｐ１〜Ｈｐｘとの照合の結果、一致しないパーティション同期確認情報が発見された場合、制御装置２０は、転送ノード１０に対し、不一致パーティションに属する処理規則の送信を要求する（ステップＳ２０９）。転送ノード１０は、処理規則記憶部１４から該当するパーティション番号の処理規則を取り出して制御装置２０に送信する。
【００５８】
転送ノード１０から不一致パーティションの処理規則を受信すると（ステップＳ２１０）、制御装置２０は、処理規則記憶部２８から不一致パーティションの処理規則を取り出す（ステップＳ２１１）。
【００５９】
次に、制御装置２０は、転送ノード１０から受信した処理規則と、自装置側で保持している処理規則とを照合する（ステップＳ２１２）。ここで、すべてのエントリが一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２１２のＹｅｓ）。
【００６０】
他方、転送ノード１０から受信した処理規則と、自装置側で保持している処理規則との照合の結果、一致しない処理規則が発見された場合、制御装置２０は、所定のネットワーク管理者端末等に対し、同期異常が検出されたことを通知する（ステップＳ２１３）。
【００６１】
続いて、上記同期確認情報の算出処理および同期確認処理を実行可能な転送ノード１０および制御装置２０間の一連の動作シーケンスを説明する。図１２、図１３は、本発明の第１の実施形態の転送ノード１０および制御装置２０による動作シーケンスの一例を示す図である。
【００６２】
図１２を参照すると、転送ノード１０の追加や設定変更によるセットアップ処理などを契機に、制御装置２０は、転送ノード１０に対して、その処理規則記憶部１４に保持されている処理規則格納用テーブルの構成情報の送信を要求する（図１２のＳ３０１）。転送ノード１０は、処理規則記憶部１４に保持されている処理規則格納用テーブルの構成情報を応答する（図１２のＳ３０２）。ここで、処理規則格納用テーブルの構成情報としては、処理規則格納用テーブルのサイズ情報などが挙げられる。
【００６３】
前記処理規則格納用テーブルの構成情報を受け取った制御装置２０は、処理規則格納用テーブルの構成情報に基づいて、処理規則格納用テーブルのパーティション構成や分割数等を含むパーティション情報を決定し、転送ノード１０に対して、処理規則格納用テーブルのパーティション情報を送信する（図１２のＳ３０３；テーブルパーティション情報送信要求）。転送ノード１０は、処理規則格納用テーブルのパーティション設定が完了すると、制御装置２０に対し、処理規則格納用テーブルのパーティション設定が完了した旨を応答する（図１２のＳ３０４；テーブルパーティション情報応答）。
【００６４】
処理規則格納用テーブルのパーティション設定が完了すると、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を計算する（図１２のＳ３０５、Ｓ３０６）。
【００６５】
次に、制御装置２０が、転送ノード１０からの処理規則設定要求に応じるためや、初期状態の経路を確立するために、処理規則を作成し転送ノード１０に保持されている処理規則の設定操作を行うと（図１２のＳ３０７）、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を再計算する（図１２のＳ３０８、Ｓ３０９）。
【００６６】
その後、転送ノード１０が、前記設定された処理規則のタイムアウト発生による処理規則の削除を行い、その旨を制御装置２０に通知した場合（図１２のＳ３１０）、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を再計算する（図１２のＳ３１１、Ｓ３１２）。
【００６７】
その後、制御装置２０が、図１１に示すフローに従って、転送ノード１０に対し、テーブル同期確認情報の送信を要求すると（図１２のＳ３１３）、転送ノード１０は、同期確認情報記憶部１６からテーブル同期確認情報Ｈｔａｂｌｅを取り出して制御装置２０に送信する（図１２のＳ３１４）。
【００６８】
続いて図１３を参照すると、テーブル同期確認情報Ｈｔａｂｌｅを受信した制御装置２０は、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側における対応するテーブル同期確認情報Ｈｔａｂｌｅとを照合する（図１３のＳ３１５）。図１３の例では、両者が一致したため（ＯＫ）、同期確認処理は、一旦終了している。
【００６９】
図１３の例では、２回目のテーブル同期確認情報の照合では（図１３のＳ３１６〜Ｓ３１８）、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側における対応するテーブル同期確認情報Ｈｔａｂｌｅとが一致しなかったため（ＮＧ）、制御装置２０と転送ノード１０間で、パーティション同期確認情報Ｈｐ１〜Ｈｐｘによる照合処理が実行される（図１３のＳ３１９〜Ｓ３２１）。
【００７０】
図１３の例では、前記パーティション同期確認情報Ｈｐ１〜Ｈｐｘによる照合処理の結果、不一致パーティションを特定できたため、次に、制御装置２０と転送ノード１０間で、不一致パーティションの処理規則の照合処理が実行される（図１３のＳ３２２〜Ｓ３２４）。
【００７１】
以上のように、本実施形態によれば、転送ノード１０と、転送ノード１０を制御する制御装置２０間の処理規則の同期状態を低コストで確認することが可能となる。また、同期外れが検出された場合も、一部の処理規則の照合だけで済むようになっている。また、上記した実施形態では、制御装置２０が、一台の転送ノード１０と対話して同期確認をするものとして説明したが、複数台の転送ノード１０との同期確認の同期確認を行う場合も同様の手順を行えばよい。この場合も、転送ノード１０と制御装置２０との同期が取れている場合には、テーブル同期確認情報の照合だけで、処理が完了するため、制御対象の同期ノード１０の増大にも容易に対応することが可能である。また、パーティションの数を調整することで、同期外れが検出された場合の負荷（照合するパーティション同期確認情報と処理規則の数）を調整することも可能である。
【００７２】
［第２の実施形態］
次に、第２の実施形態について説明する。
【００７３】
第２の実施形態では、同期確認情報に、制御装置２０と転送ノード１０との間のトランザクションの世代管理をするための情報（以下、「世代管理情報」）が含まれる。
【００７４】
図１４は、転送ノード１０の同期確認情報計算部１７にて計算され、同期確認情報記憶部１６に保持される同期確認情報の一例である。同期確認情報に、世代管理情報として、ＣｔフィールドとＳｔフィールドが含まれている。Ｃｔフィールドは、制御装置２０が転送ノード１０に送信した処理規則操作に関する制御メッセージに付番されるトランザクションＩＤを示している。同様にＳｔフィールドは、転送ノード１０が制御装置２０に送信した処理規則操作に関する制御メッセージに付番されるトランザクションＩＤを示している。Ｈｐ１〜Ｈｐｘフィールドは、上記した処理規則格納用テーブルのパーティション毎に、処理規則を引数として算出されたハッシュ値であるパーティション同期確認情報が格納される。Ｈｔａｂｌｅフィールドは、Ｈｐ１〜Ｈｐｘフィールドの値を引数として算出されたハッシュ値であるテーブル同期確認情報が格納される。
【００７５】
従って、図１４に示される同期確認情報の例では、制御装置２０と転送ノード１０のそれぞれが２回ずつ、処理規則操作に関する制御メッセージを送信した段階での転送ノードに保持されている処理規則群、各パーティションに属する処理規則群をそれぞれ一意に表わすものとなっている。
【００７６】
図１５は、制御装置２０の同期確認情報記憶部２６に保持される同期確認情報格納用テーブルの一例である。各フィールドの値は、図１４にて説明した内容と同等であるが、制御装置２０においては、Ｃｔフィールド、Ｓｔフィールドを世代管理情報として用いて、同期確認情報が複数世代に亘って保持されている点が図１４と異なる。なお、図１５の変更内容フィールドは、同期確認情報の変更箇所を説明するためのものであり、実際には省略することも可能である。図１５のテーブルは、ＤＰＩＤが１のノード用のテーブルである。同期確認情報記憶部２６は、各ＤＰＩＤに対応するノードそれぞれに対応する複数のテーブルを保持している（図８に示した形式のテーブルが、各ＤＰＩＤに対応するノード毎に存在する。）。
【００７７】
図１５の変更内容フィールドに示したように、例えば、ＤＰＩＤ＃１の転送ノードにマッチングルールＡの処理規則をパーティション＃１に追加した場合、Ｃｔフィールドの値が１加算され、パーティション＃１から算出されるパーティション同期確認情報Ｈｐ１と、パーティション同期確認情報Ｈｐ１〜Ｈｐｘから算出されるテーブル同期確認情報Ｈｔａｂｌｅに変化が生じることになる。同様に、ＤＰＩＤ＃１の転送ノードからマッチングルールＡの処理規則がタイムアウトにより削除したとの通知を受けた場合、Ｓｔフィールドの値が１加算され、パーティション＃１から算出されるパーティション同期確認情報Ｈｐ１と、パーティション同期確認情報Ｈｐ１〜Ｈｐｘから算出されるテーブル同期確認情報Ｈｔａｂｌｅの値が、初期状態と同値に戻ることになる。
【００７８】
次に、第１の実施形態の動作説明で用いた図１１を参照し、第２の実施形態の制御装置２０における同期確認動作を説明する。図１１を参照すると、制御装置２０は、所定の時間間隔の経過などの所定の同期確認イベントの発生を契機に、転送ノード１０に対し、テーブル同期確認情報の送信を要求する（ステップＳ２０１）。転送ノード１０は、同期確認情報記憶部１６から世代管理情報Ｃｔ、Ｓｔとテーブル同期確認情報Ｈｔａｂｌｅを取り出して制御装置２０に送信する。
【００７９】
転送ノード１０から世代管理情報Ｃｔ、Ｓｔとテーブル同期確認情報Ｈｔａｂｌｅを受信すると（ステップＳ２０２）、制御装置２０は、同期確認情報記憶部２６から世代管理情報Ｃｔ、Ｓｔが一致するテーブル同期確認情報Ｈｔａｂｌｅを取り出す（ステップＳ２０３）。
【００８０】
次に、制御装置２０は、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側で計算したテーブル同期確認情報Ｈｔａｂｌｅとを照合する（ステップＳ２０４）。ここで、両者が一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２０４のＹｅｓ）。
【００８１】
他方、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側で計算したテーブル同期確認情報Ｈｔａｂｌｅとが一致しなかった場合、制御装置２０は、転送ノード１０に対し、パーティション同期確認情報の送信を要求する（ステップＳ２０５）。転送ノード１０は、同期確認情報記憶部１６から世代管理情報Ｃｔ、Ｓｔとパーティション同期確認情報Ｈｐ１〜Ｈｐｘを取り出して制御装置２０に送信する。
【００８２】
転送ノード１０から世代管理情報Ｃｔ、Ｓｔとパーティション同期確認情報Ｈｐ１〜Ｈｐｘを受信すると（ステップＳ２０６）、制御装置２０は、同期確認情報記憶部２６から世代管理情報Ｃｔ、Ｓｔが一致するパーティション同期確認情報Ｈｐ１〜Ｈｐｘを取り出す（ステップＳ２０７）。
【００８３】
次に、制御装置２０は、転送ノード１０から受信したパーティション同期確認情報Ｈｐ１〜Ｈｐｘと、自装置側で計算したパーティション同期確認情報Ｈｐ１〜Ｈｐｘとを照合する（ステップＳ２０８）。ここで、すべてのパーティション同期確認情報Ｈｐ１〜Ｈｐｘが一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２０８のＹｅｓ）。
【００８４】
他方、転送ノード１０から受信したパーティション同期確認情報Ｈｐ１〜Ｈｐｘと、自装置側で計算したテーブル同期確認情報パーティション同期確認情報Ｈｐ１〜Ｈｐｘとの照合の結果、一致しないパーティション同期確認情報が発見された場合、制御装置２０は、転送ノード１０に対し、不一致パーティションに属する処理規則の送信を要求する（ステップＳ２０９）。転送ノード１０は、処理規則記憶部１４から該当するパーティション番号の処理規則を取り出して制御装置２０に送信する。
【００８５】
転送ノード１０から不一致パーティションの処理規則を受信すると（ステップＳ２１０）、制御装置２０は、処理規則記憶部２８から不一致パーティションの処理規則を取り出す（ステップＳ２１１）。
【００８６】
次に、制御装置２０は、転送ノード１０から受信した処理規則と、自装置側で保持している処理規則とを照合する（ステップＳ２１２）。ここで、すべてのエントリが一致する場合には、該当する転送ノード１０と制御装置２０間の同期は取れていることになり、同期確認処理は終了となる（ステップＳ２１２のＹｅｓ）。
【００８７】
他方、転送ノード１０から受信した処理規則と、自装置側で保持している処理規則との照合の結果、一致しない処理規則が発見された場合、制御装置２０は、所定のネットワーク管理者端末等に対し、同期異常が検出されたことを通知する（ステップＳ２１３）。
【００８８】
次に、第１の実施形態で用いた図１２、図１３を参照し、第２の実施形態における転送ノード１０および制御装置２０間の一連の動作シーケンスを説明する。
【００８９】
転送ノード１０の追加や設定変更によるセットアップ処理などを契機に、制御装置２０は、転送ノード１０に対して、その処理規則記憶部１４に保持されている処理規則格納用テーブルの構成情報の送信を要求する（図１２のＳ３０１）。転送ノード１０は、処理規則記憶部１４に保持されている処理規則格納用テーブルの構成情報を応答する（図１２のＳ３０２）。
【００９０】
前記処理規則格納用テーブルの構成情報を受け取った制御装置２０は、処理規則格納用テーブルの構成情報に基づいて、処理規則格納用テーブルのパーティション構成や分割数等を含むパーティション情報を決定し、転送ノード１０に対して、処理規則格納用テーブルのパーティション情報を送信する（図１２のＳ３０３）。転送ノード１０は、処理規則格納用テーブルのパーティション設定が完了すると、制御装置２０に対し、処理規則格納用テーブルのパーティション設定が完了した旨を応答する（図１２のＳ３０４）。
【００９１】
処理規則格納用テーブルのパーティション設定が完了すると、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を計算する（図１２のＳ３０５、Ｓ３０６）。この段階で、図８の同期確認情報テーブルの上から１番目に示すような世代管理情報Ｃｔ＝０、Ｓｔ＝０を持つ同期確認情報がそれぞれ計算される。
【００９２】
次に、制御装置２０が、転送ノード１０からの処理規則設定要求に応じるためや、初期状態の経路を確立するために、処理規則を作成し転送ノード１０に保持されている処理規則の設定操作を行うと（図１２のＳ３０７）、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を再計算する（図１２のＳ３０８、Ｓ３０９）。この段階で、図８の同期確認情報テーブルの上から２番目に示すような世代管理情報Ｃｔ＝１、Ｓｔ＝０を持つ同期確認情報がそれぞれ計算される。
【００９３】
その後、転送ノード１０が、前記設定された処理規則のタイムアウト発生等による処理規則の削除を行い、その旨を制御装置２０に通知した場合（図１２のＳ３１０）、制御装置２０と転送ノード１０は、それぞれ、図９、図１０に示すフローに従って、同期確認情報を再計算する（図１２のＳ３１１、Ｓ３１２）。この段階で、図８の同期確認情報テーブルの上から３番目に示すような世代管理情報Ｃｔ＝１、Ｓｔ＝１を持つ同期確認情報がそれぞれ計算される。
【００９４】
その後、制御装置２０が、転送ノード１０に対し、テーブル同期確認情報の送信を要求すると（図１２のＳ３１３）、転送ノード１０は、同期確認情報記憶部１６から世代管理情報Ｃｔ（＝１）、Ｓｔ（＝１）とテーブル同期確認情報Ｈｔａｂｌｅを取り出して制御装置２０に送信する（図１２のＳ３１４）。
【００９５】
続いて図１３を参照すると、世代管理情報Ｃｔ（＝１）、Ｓｔ（＝１）とテーブル同期確認情報Ｈｔａｂｌｅを受信した制御装置２０は、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側の世代管理情報が一致するテーブル同期確認情報Ｈｔａｂｌｅとを照合する（図１３のＳ３１５）。図１３の例では、両者が一致したため（ＯＫ）、同期確認処理は、一旦終了している。
【００９６】
図１３の例では、２回目のテーブル同期確認情報の照合では（図１３のＳ３１６〜Ｓ３１８）、転送ノード１０から受信したテーブル同期確認情報Ｈｔａｂｌｅと、自装置側の世代管理情報が一致するテーブル同期確認情報Ｈｔａｂｌｅとが一致しなかったため（ＮＧ）、制御装置２０と転送ノード１０間で、パーティション同期確認情報Ｈｐ１〜Ｈｐｘによる照合処理が実行される（図１３のＳ３１９〜Ｓ３２１）。
【００９７】
図１３の例では、前記パーティション同期確認情報Ｈｐ１〜Ｈｐｘによる照合処理の結果、不一致パーティションを特定できたため、次に、制御装置２０と転送ノード１０間で、不一致パーティションの処理規則の照合処理が実行される（図１３のＳ３２２〜Ｓ３２４）。
【００９８】
本実施形態では、制御装置２０が世代管理情報Ｃｔ、Ｓｔを用いて、同期確認情報を照合することとしたため、図１６に示すように、同期確認情報要求後の処理規則の新規作成、設定が行われた場合にも、正しく同期状態を確認することが可能となっている。
【００９９】
また、図１７に示すように、転送ノード１０から処理規則の削除通知が制御装置２０に到達しなかった場合、世代管理情報Ｃｔ、Ｓｔが一致する同期確認情報が制御装置２０の同期確認情報記憶部２６に存在しないという状況が生じうるが（制御装置２０からの処理規則操作が不達の場合も同様。）、このような場合においても、転送ノード１０から通知された世代管理情報Ｃｔ、Ｓｔをそれぞれ超えない範囲で、最新の同期確認情報と照合することにより、照合処理を行うことが可能である。
【０１００】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。
【０１０１】
上述の実施形態では、同期確認情報の一例として、ハッシュ値を例として説明した。第３の実施形態では、同期確認情報の他の例を示す。
【０１０２】
第３の実施形態では、同期確認情報として、処理規則記憶部１４、２８に保持されている処理規則の数、各パーティションに保持されている処理規則の数を用いる。
【０１０３】
ある転送ノード（例えば、ＤＰＩＤが１の転送ノード）は、同期確認情報としてＮｔａｂｌｅ（この転送ノードの処理規則記憶部１４に格納されているテーブルにおける処理規則の数）、Ｎｐ１、Ｎｐ２、・・・、Ｎｐｘ（処理規則記憶部１４に格納されているテーブルの各パーティションの処理規則の数）を算出し、これらをテーブル形式で保持する。その他の各転送ノードも同様のテーブルを保持する。
【０１０４】
制御装置２０も、同様に、管理対象の転送ノードの同期確認情報として、前記Ｎｔａｂｌｅ（例えば、ＤＰＩＤが１の転送ノード用として処理規則記憶部２８に格納されている処理規則の数）、Ｎｐ１、Ｎｐ２、・・・、Ｎｐｘ（例えば、ＤＰＩＤが１の転送ノード用の処理規則群における各パーティションの処理規則の数）を算出し、テーブル形式で保持する。制御装置２０は、管理対象の複数の転送ノード毎に、Ｎｔａｂｌｅ、Ｎｐ１、Ｎｐ２、・・・、Ｎｐｘを含むテーブルを保持する。
【０１０５】
第３の実施形態においては、転送ノード１０が保持している処理規則の数と、制御装置２０が保持している処理規則の数との比較結果に基づいて、転送ノード１０と制御装置２０との同期を確認できる。さらに、前記比較の結果、処理規則の数が一致している場合には、処理規則のハッシュ値を用いた同期確認情報の計算（第１、第２の実施形態参照）の頻度を低減させたり、同期確認情報の照合（第１、第２の実施形態参照）を延期する等により制御装置２０および転送ノード１０の負荷をさらに軽減させることもできる。
【０１０６】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。
【０１０７】
上述の実施形態では、同期確認情報の一例として、ハッシュ値や処理規則の数を例として説明した。第４の実施形態では、同期確認情報の他の例を示す。
【０１０８】
第４の実施形態では、同期確認情報として、処理規則記憶部１４、２８に保持されているテーブル及びそのテーブルの各パーティションのバージョン情報を用いる。
【０１０９】
ある転送ノード（例えば、ＤＰＩＤが１の転送ノード）は、同期確認情報としてＲｔａｂｌｅ（例えば、ＤＰＩＤが１の転送ノードの処理規則格納用のテーブルのバージョン情報）、Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘ（処理規則格納用のテーブルの各パーティションのバージョン情報）を求め、これらをテーブル形式で保持する。その他の各転送ノードも同様のテーブルを保持する。
【０１１０】
制御装置２０も、同様に、管理対象の転送ノードの同期確認情報として、前記Ｒｔａｂｌｅ（例えば、ＤＰＩＤが１の転送ノード用として処理規則記憶部２８に格納されている処理規則群のバージョン情報）、Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘ（例えば、ＤＰＩＤが１の転送ノード用の処理規則群の各パーティションのバージョン情報）を算出し、テーブル形式で保持する。制御装置２０は、管理対象の複数の転送ノード毎に、Ｒｔａｂｌｅ、Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘを含むテーブルを保持する。Ｒｔａｂｌｅは、各パーティションのバージョン情報（Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘ）を反映した値となるように生成される。
【０１１１】
各パーティションの処理規則の変更（追加や削除等）が発生した場合、転送ノード１０や制御装置２０の各々は、そのパーティションのバージョン情報（Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘのいずれか）をアップデートする。パーティションのバージョン情報（Ｒｐ１、Ｒｐ２、・・・、Ｒｐｘ）のアップデートに伴い、テーブル自体のバージョン情報（Ｒｔａｂｌｅ）もアップデートされる。Ｒｔａｂｌｅは、どのパーティションのバージョン情報がアップデートされたのかが反映するようにアップデートされる。例えば、パーティション１のバージョン情報（Ｒｐ１）がアップデートされた場合、Ｒｔａｂｌｅは、アップデート後のパーティション１のバージョン情報が反映された値となる。
【０１１２】
第４の実施形態においては、転送ノード１０が保持している処理規則のバージョン情報と、制御装置２０が保持している処理規則のバージョン情報との比較結果に基づいて、転送ノード１０と制御装置２０との同期を確認できる。さらに、前記比較の結果、処理規則の数が一致している場合には、処理規則のハッシュ値を用いた同期確認情報の計算（第１、第２の実施形態参照）の頻度を低減させたり、同期確認情報の照合（第１、第２の実施形態参照）を延期する等により制御装置２０および転送ノード１０の負荷をさらに軽減させることもできる。もちろん、第３の実施形態に説明した処理規則の数による同期確認を併用することも可能である。
【０１１３】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態では、制御装置２０、比較部２５ａ、確認部２５ｂが照合処理を行うものとして説明したが、制御装置２０とは独立して同期確認情報の管理と照合動作を行う装置を設けた構成も採用可能である。
【０１１４】
また、上記した実施形態では、ＭＤ５などに代表されるハッシュ関数を用いて同期確認情報を算出する方法を一例として説明したが、チェックサムアルゴリズム等を用いて簡便に同期確認を行う方法も採用可能である。また、同期確認情報の算出方法に関して各実施形態で説明した方法は、例示であり、他の方法により算出することが可能である。
【０１１５】
また、上記した実施形態では、処理規則の変更・移動等による再計算コストの低減を図るため、パーティション同期確認情報を算出してから、これを用いてテーブル同期確認情報を算出する方法を採用したが、パーティション同期確認情報およびテーブル同期確認情報をそれぞれ別のアルゴリズムで算出してもよい。
【０１１６】
また、上記した実施形態では、制御装置２０側に世代管理情報Ｃｔ、Ｓｔ付きの同期確認情報を保持するものとして説明したが、転送ノード１０側に世代管理情報Ｃｔ、Ｓｔ付きの同期確認情報を保持させて、その処理規則管理部等により同期確認処理を行わせる構成も採用可能である。
【０１１７】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲（クレーム）の枠内において、種々の開示要素の多様な組み合せないし選択が可能である。
【符号の説明】
【０１１８】
１０  転送ノード
１１  転送処理部
１２  制御装置通信部
１３  処理規則管理部
１４  処理規則記憶部  
１５  パケットバッファ
１６  同期確認情報記憶部
１７  同期確認情報計算部
２０  制御装置
２１  ノード通信部
２２  制御メッセージ処理部
２３  トポロジ管理部
２４  経路・アクション計算部
２５  処理規則管理部
２５ａ  比較部
２５ｂ  確認部
２６  同期確認情報記憶部
２７  同期確認情報計算部
２８  処理規則記憶部
１１１  処理規則検索部
１１２  アクション実行部
２２１  メッセージ解析・処理部
２２２  メッセージ生成部
【図１】
0005854047.tif 000002
【図２】
0005854047.tif 000003
【図４】
0005854047.tif 000004
【図５】
0005854047.tif 000005
【図６】
0005854047.tif 000006
【図７】
0005854047.tif 000007
【図８】
0005854047.tif 000008
【図９】
0005854047.tif 000009
【図１０】
0005854047.tif 000010
【図１１】
0005854047.tif 000011
【図１２】
0005854047.tif 000012
【図１３】
0005854047.tif 000013
【図１４】
0005854047.tif 000014
【図１５】
0005854047.tif 000015
【図１６】
0005854047.tif 000016
【図１７】
0005854047.tif 000017
【図１８】
0005854047.tif 000018
【図３】
0005854047.tif 000019