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