(57)【要約】【課題】制御装置が個々のノードに処理規則（フローエントリ）を設定することにより通信を実現する通信システムにおいて、制御装置の制御負荷を増大させずに、所望の情報粒度の統計情報を取得できる構成の提供。【解決手段】通信システムのノードは、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備え、前記ノードに、前記統計情報を記録する区分を指示するとともに、前記統計情報を収集する統計情報収集装置を配置する。【選択図】図１
2013535895.tif 000002
【特許請求の範囲】
【請求項１】
照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備えたノードと、
前記ノードに、前記統計情報を記録する区分を指示するとともに、前記統計情報を収集する統計情報収集装置と、
を含む通信システム。
【請求項２】
前記統計情報記録部は、前記照合規則をさらに細分化した区分で統計情報を記録する請求項１の通信システム。
【請求項３】
前記統計情報の記録区分は、前記処理規則の設定時に、前記照合規則にて照合対象となっていないヘッダフィールドを指定して指示される請求項２の通信システム。
【請求項４】
前記ノードは、所定時間、前記統計情報の記録対象となるパケットを受信しなかった場合、前記統計情報の記録を終了する請求項１から３いずれか一の通信システム。
【請求項５】
前記ノードは、前記統計情報の記録開始または終了を前記統計情報収集装置に通知し、
前記統計情報収集装置は、前記通知に基づいて、統計情報の収集動作を制御する請求項１から４いずれか一の通信システム。
【請求項６】
前記統計情報の記録区分として、上位レイヤのヘッダまたはデータ領域の情報を指定可能である請求項１から５いずれか一の通信システム。
【請求項７】
照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備えたノード。
【請求項８】
請求項７のノードに対し、統計情報の記録区分として、照合規則と異なる区分を指示するとともに前記統計情報を収集する統計情報収集装置。
【請求項９】
照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部を備えたノードと接続された統計情報収集装置が、前記ノードに対し、統計情報の記録区分として、照合規則と異なる区分を指示するステップと、
前記ノードが、前記指示された区分でパケットの統計情報を記録するステップと、
前記統計情報収集装置が、前記統計情報を収集するステップとを含む、統計情報の収集方法。
【請求項１０】
照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部を備えたノードを構成するコンピュータに実行させるプログラムであって、
所定の統計情報収集装置の指示に従って、前記照合規則と異なる区分でパケットの統計情報を記録する処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１０−１６５６２１号（２０１０年７月２３日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、ノード、統計情報収集装置、統計情報の収集方法およびプログラムに関し、特に、受信パケットに適合する処理規則に従って、受信パケットを処理するノードを含む通信システム、ノード、統計情報収集装置、統計情報の収集方法およびプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノード（以下、単に「ノード」と称する。）として機能するオープンフロースイッチは、制御装置と位置付けられるオープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したアクション（Ａｃｔｉｏｎｓ）と、の組が定義される（図７参照）。
【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール（図７のヘッダフィールド参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（Ｃｏｕｎｔｅｒｓ）を更新するとともに、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行っている。
【０００４】
また、オープンフローコントローラは、上記のように、パケットを処理する度に更新されるフロー統計情報（Ｃｏｕｎｔｅｒｓ）を収集する機能を備えている（可視化機能）。図８は、非特許文献２のオープンフロースイッチのフロー統計情報（Ｃｏｕｎｔｅｒｓ）の一覧である（非特許文献２の「３．２  Ｃｏｕｎｔｅｒｓ」の項参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／０９５０１０号
【非特許文献】
【０００６】
【非特許文献１】Nick McKeownほか７名、“OpenFlow: Enabling Innovation in Campus Networks”、［online］、［平成22年7月6日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) ［平成22年7月6日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献及び非特許文献の各開示を、本書に引用をもって繰り込むものとする。
以下の分析は、本発明によって与えられたものである。
【０００８】
はじめに、上記特許文献１、非特許文献１、２のオープンフローコントローラによるフロー統計情報の収集の流れについて図９を用いて説明する。まず、外部ノード３１０が外部ノード３２０宛てに、最初のデータパケットを送信すると、このパケットは外部ノードが接続しているノード２１０に届く（ステップＳ９０１）。
【０００９】
ノード２１０はパケットを受信すると、フローテーブルから、当該パケットのヘッダ情報に適合する照合規則（マッチングキー）を持つエントリを検索する。しかしながら、当該パケットは最初のパケットであるため、該当するエントリは存在しない。そこで、ノード２１０は受信したパケットをバッファリングしてから、制御装置（コントローラ）１００に対し新規フロー検出通知メッセージ（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する（ステップＳ９０２）。このＰａｃｋｅｔ−Ｉｎメッセージにはフロー識別に必要な情報（例えば、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ポート番号（それぞれ送信元と宛先両方含む））とパケット受信ポート情報が含まれている。ここで、ノード２１０は受信したパケットをバッファリングして、制御装置（コントローラ）１００にフロー識別に必要な情報を送ることを想定しているが、受信したパケットごと制御装置（コントローラ）１００に送信することとしても良い。
【００１０】
制御装置（コントローラ）１００は、Ｐａｃｋｅｔ−Ｉｎメッセージを受信すると、受信した情報に基づいて、新規エントリの照合規則（マッチングキー；図７のＩｎＰｏｒｔ〜ＴＣＰ／ＵＤＰ  ｓｒｃ  ｐｏｒｔ参照）を作成および当該エントリに適用するタイマー値を決定するとともに、宛先である外部ノード３２０の位置確認を行い、外部ノード３１０から外部ノード３２０へのパケット転送経路を計算する。ここでは、経路計算の結果、ノード２１０→ノード２２０→ノード２３０の順でパケットを転送していく経路が計算されたものとする。
【００１１】
次に、制御装置（コントローラ）１００は、各ノード２１０〜２３０毎に、前記新規エントリの照合規則（マッチングキー）と一致するパケットを、前記転送経路に従って転送するアクションおよびタイマー値を設定したエントリを作成し、ＦｌｏｗＭｏｄメッセージを用いて、各ノード２１０〜２３０に設定する（ステップＳ９０３）。
【００１２】
各ノード２１０〜２３０へのエントリの設定が完了すると、ノード２１０は、設定されたエントリに従ってバッファリングしてあるパケットをノード２２０に転送する（ステップＳ９０４−１）。このパケットの転送経路上のノード２２０、２３０には既にエントリの設定が行われているので、このパケットはノード２２０、２３０の順で転送され、外部ノード３２０に届く（ステップＳ９０４−２、ステップＳ９０４−３）。
【００１３】
その後は、外部ノード３１０から外部ノード３２０に宛てて送信されたパケットは、ノード２１０→ノード２２０→ノード２３０の順で転送され（ステップＳ９０５−１〜Ｓ９０５−４）、その都度、各ノードでフロー統計情報（エントリ毎の受信パケット数、受信データバイト数等）の更新が行われる。
【００１４】
制御装置（コントローラ）１００が、一定時間間隔等の任意のタイミングで、通信量の確認を行うため、任意のノード（例えば、ノード２３０）に対し、特定のエントリを指定したＳｔａｔｓ−Ｒｅｑメッセージを送信すると、ノード２３０は、Ｓｔａｔｓ−Ｒｓｐメッセージを用いて、制御装置（コントローラ）１００に対し、該当するエントリに紐づいたフロー統計情報を送信する。
【００１５】
続けて、外部ノード３１０が外部ノード３２０宛てに、別の通信のデータパケットを送信する場合を考える。このデータパケットは、上述した１回目の通信とは別の通信であるため、宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレスの構成は同じだが、宛先／送信元ポート番号は異なる。
【００１６】
この場合も、上記したステップＳ９０１〜Ｓ９０５−４と同様の手順で、Ｐａｃｋｅｔ−Ｉｎメッセージの送信、各ノードへのフローエントリの設定後、パケットの転送が行われる（ステップＳ９１１〜Ｓ９１５−４）。
【００１７】
ここでまた、制御装置（コントローラ）１００が、通信量の確認を行うため、任意のノード（例えば、ノード２３０）に対し、特定のエントリを指定したＳｔａｔｓ−Ｒｅｑメッセージを送信すると、ノード２３０は、Ｓｔａｔｓ−Ｒｓｐメッセージを用いて、制御装置（コントローラ）１００に対し、該当するエントリに紐づいたフロー統計情報を送信する。
【００１８】
以上のように、非特許文献２に記載された方法によれば、同一の外部ノード間の通信であっても、ポート番号やＶＬＡＮ  ＩＤなどが異なるエントリを個別に作成・設定することで、２つの通信のフロー統計情報を収集し、ネットワークの負荷管理や課金処理に役立てることができる。しかしながら、この方法では、制御装置（コントローラ）１００の制御負荷が高くなってしまうという問題点がある。
【００１９】
他方、非特許文献１、２に記載のとおり、照合規則（マッチングキー）の一部（例えば、上記ポート番号）をワイルドカードとすることで、図１０に示すように、同一のエントリで２つの通信のパケットを転送し、制御装置（コントローラ）１００の制御負荷を低減することも可能である。しかしながら、この場合、収集されるフロー統計情報はあくまでエントリ単位となるため、個々の通信のフロー統計情報を取得できないという問題点がある。
【００２０】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記した非特許文献１、２のオープンフローコントローラに代表される制御装置が個々のノードに処理規則（フローエントリ）を設定することにより通信を実現する通信システムにおいて、制御装置の制御負荷を増大させずに、処理規則（フローエントリ）に拘束されない任意の情報粒度の統計情報を取得できる構成を提供することにある。なお、以下の説明では、上記したフローエントリ内のカウンタによって記録管理される統計情報を「フロー統計情報」と称し、本発明によって収集されるフロー統計情報と異なる区分（情報粒度）で記録された統計情報を「統計情報」と称する。
【課題を解決するための手段】
【００２１】
本発明の第１の視点によれば、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備えたノードと、前記ノードに、前記統計情報を記録する区分を指示するとともに、前記統計情報を収集する統計情報収集装置と、を含む通信システムが提供される。
【００２２】
本発明の第２の視点によれば、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備えたノードが提供される。
【００２３】
本発明の第３の視点によれば、上記したノードに対し、統計情報の記録区分として、照合規則と異なる区分を指示するとともに前記統計情報を収集する統計情報収集装置が提供される。
【００２４】
本発明の第４の視点によれば、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部を備えたノードと接続された統計情報収集装置が、前記ノードに対し、統計情報の記録区分として、照合規則と異なる区分を指示するステップと、前記ノードが、前記指示された区分でパケットの統計情報を記録するステップと、前記統計情報収集装置が、前記統計情報を収集するステップとを含む、統計情報の収集方法が提供される。本方法は、統計情報収集装置からの指示に従ってパケットの統計情報を記録するノードという、特定の機械に結びつけられている。
【００２５】
本発明の第５の視点によれば、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部を備えたノードを構成するコンピュータに実行させるプログラムであって、所定の統計情報収集装置の指示に従って、前記照合規則と異なる区分でパケットの統計情報を記録する処理を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２６】
制御装置が個々のノードに処理規則（フローエントリ）を設定することにより通信を実現する通信システムにおいて、制御装置の制御負荷を増大させずに、所望の情報粒度の統計情報を取得することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】本発明の概要を説明するための図である。
【図２】本発明の第１の実施形態の構成を表した図である。
【図３】本発明の第１の実施形態の制御装置（コントローラ）の構成を表したブロック図である。
【図４】本発明の第１の実施形態のノードの構成を表したブロック図である。
【図５】本発明の第１の実施形態の動作を表したシーケンス図である。
【図６】本発明の第２の実施形態の動作を表したシーケンス図である。
【図７】非特許文献２に記載のフローエントリの構成を表した図である。
【図８】非特許文献２に記載されているフロー統計情報の項目一覧である。
【図９】フロー統計情報を収集する動作例を説明するためのシーケンス図である。
【図１０】フロー統計情報を収集する別の動作例を説明するためのシーケンス図である。
【発明を実施するための形態】
【００２８】
はじめに、本発明の概要について説明する。図１に示すように、本発明に係る通信システムは、照合規則と該照合規則に適合するパケットの処理とを規定した処理規則に従って受信パケットを処理するパケット処理部と、前記照合規則と異なる区分でパケットの統計情報を記録する統計情報記録部と、を備えたノード２１０〜２３０と、前記ノードに、前記統計情報を記録する区分を指示するとともに、前記統計情報を収集する統計情報収集装置１００Ａと、を含む通信システムとを含んで構成される。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２９】
各ノード２１０〜２３０は、非特許文献２に記載されたフロー統計情報の更新とは別に、照合規則と異なる区分でパケットの統計情報を記録する。統計情報収集装置１００Ａは、各ノード２１０〜２３０からパケットの統計情報を収集する。
【００３０】
例えば、図１の中央矢線内に示したように、宛先ポート番号の指定のない照合規則にてパケット転送が行われている状態で（図１０と同様）、各ノード２１０〜２３０に、宛先ポート番号で区分された、より細かい統計情報を記録させることで、先に説明した図９のシーケンス図におけるフロー統計情報と同等の情報粒度の統計情報を収集することが可能となる。なお、図１の例では、宛先ポート番号別に統計情報を収集するものとして説明したが、図７に示された各ヘッダフィールドの項目のほか、上位レイヤのヘッダ情報を用いて統計情報を記録することも可能である。
【００３１】
このような統計情報は、通信種別によるトラヒックの把握・管理や課金処理に利用することができる。なお、統計情報収集装置１００Ａは、非特許文献１、２のオープンフローコントローラに、前記統計情報の記録区分の指示機能および統計情報を収集する機能を追加して構成してもよいし、また、非特許文献１、２のオープンフローコントローラとは別の情報処理装置により構成してもよい。
【００３２】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の構成を表した図である。図２を参照すると、複数のノード２１０〜２３０と、これら複数のノードに処理規則（フローエントリ）を設定することにより制御する制御装置（コントローラ）１００と、複数のノード２１０〜２３０によって構成されたネットワークを介して通信する外部ノード３１０、３２０と、が示されている。
【００３３】
図３は、図２の制御装置（コントローラ）１００の詳細構成を表した図である。図２を参照すると、制御装置（コントローラ）１００は、図７に例示した照合規則（マッチングルール）、アクション（タイマー値を含む）、フロー統計情報により構成された処理規則（フローエントリ）を格納するフローエントリデータベース（フローエントリＤＢ）１０１と、統計情報管理部１０２と、トポロジ管理部１０３と、経路・アクション計算部１０４と、フローエントリ管理部１０５と、制御メッセージ処理部１０６と、ノード２１０〜２３０との通信を行うノード通信部１０７とを備えて構成される。これらはそれぞれ次のように動作する。
【００３４】
統計情報管理部１０２は、任意のノードに、パケットの統計情報を記録区分を指示し、ノードから統計情報を収集・管理する動作を行う。前記パケットの統計情報の記録区分の指定方法としては、処理規則（フローエントリ）の照合規則（マッチングルール）のフィールドのうち、ワイルドカードが使用されているフィールドを追加指定する方法を挙げることができる。これにより、同一の処理規則が適用されるパケットについて、当該フィールドの値が違うものについてそれぞれ区別した統計情報を収集することができる。
【００３５】
また、統計情報管理部１０２が制御メッセージ処理部１０６およびノード通信部１０７を介して、統計情報を収集する方法としては、上記したＳｔａｔｓ−Ｒｅｑ／Ｓｔａｔｓ−Ｒｓｐメッセージまたは同等のメッセージを用いることができる。
【００３６】
トポロジ管理部１０３は、ノード通信部１０７を介して収集されたノード２１０〜２３０の接続関係に基づいてネットワークトポロジ情報を構築・管理する。
【００３７】
経路・アクション計算部１０４は、統計情報管理部１０２にて収集・管理されている統計情報およびトポロジ管理部１０３にて構築されたネットワークトポロジ情報に基づいてパケットの転送経路および該転送経路上のノード２１０〜２３０に実行させるアクションおよび処理規則の有効期間となるタイマー値を求める。
【００３８】
フローエントリ管理部１０５は、ノードから受信した情報に基づいて照合規則（マッチングキー）を作成するとともに、経路・アクション計算部１０４にて計算された結果を処理規則（フローエントリ）としてフローエントリＤＢ１０１に登録し、ノード２１０〜２３０からの処理規則（フローエントリ）の追加または更新要求に応じて処理規則（フローエントリ）を設定する。
【００３９】
制御メッセージ処理部１０６は、ノード２１０〜２３０から受信した制御メッセージを解析して、制御装置（コントローラ）１００内の該当する処理手段に制御メッセージ情報を引き渡す。例えば、ノード２１０〜２３０から新規フロー検出通知メッセージ（Ｐａｃｋｅｔ−Ｉｎ）を受信した場合、制御メッセージ処理部１０６は、フローエントリ管理部１０５に、当該新規フローに適用すべき処理規則（フローエントリ）がフローエントリＤＢ１０１に登録されていないか確認し、登録されていない場合には経路・アクション計算部１０４に新しい処理規則（フローエントリ）の作成を依頼する。
【００４０】
上記のような制御装置（コントローラ）１００は、非特許文献１、２のオープンフローコントローラに、少なくとも上記統計情報管理部１０２を追加することにより実現することが可能である。
【００４１】
図４は、ノード２１０の詳細構成を表した図である（ノード２２０〜ノード２３０も同様の構成であるので省略する。）。図４を参照すると、ノード２１０は、制御装置（コントローラ）１００と通信する制御メッセージ送受信部２１１と、フローテーブル２１２と、パケット処理部２１３とを備えて構成される。なお、本実施形態では、パケット処理部２１３内にパケットバッファが備えられているものとして説明するが、パケットバッファは省略することができる。
【００４２】
パケット処理部２１３は、フローテーブル２１２から、受信パケットに適合する照合規則（マッチングキー）を持つ処理規則（フローエントリ）を検索し、その処理規則（フローエントリ）のアクションフィールドに記述された処理内容（例えば、特定のポートへの転送、フラッディング、廃棄など）を実行する。パケット処理部２１３内には、処理内容を実行する度に処理規則内のフロー統計情報（図７のＣｏｕｎｔｅｒｓ参照）を更新するとともに、制御装置（コントローラ）１００の統計情報管理部１０２より指示された区分でパケットの統計情報を記録する統計情報記録部２１４が備えられている。
【００４３】
また、パケット処理部２１３は、処理内容を実行する度に処理規則（フローエントリ）のアクションフィールド内のタイマー値を初期値（非特許文献２のｔｉｍｅｏｕｔ値参照）までリセットする。タイマー値はカウントダウン制御されており、タイマー値が０になると、パケット処理部２１３は、該当する処理規則を削除する。
【００４４】
上記のようなノード２１０は、非特許文献１、２のオープンフロースイッチに、上記統計情報記録部２１４を追加することで実現することが可能である。また、上記のようなノード２１０のパケット処理部２１３に含まれる統計情報記録部２１４は、ノード２１０を構成するコンピュータに実行させるプログラムによって実現することもできる。
【００４５】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図５は、本発明の第１の実施形態の動作を表したシーケンス図である。図５のデータパケットを表わした矢線（実線）と矢線（破線）とは、外部ノードで動作するアプリケーションプログラムが異なるなど、それぞれ異なる通信を表わすものとする。
【００４６】
図５を参照すると、まず、外部ノード３１０が、外部ノード３２０宛てにデータパケットを送信する。このパケットは外部ノード３１０が接続しているノード２１０に届く（ステップＳ００１）。
【００４７】
ノード２１０はデータパケットを受信すると、フローテーブル２１２を検索し、受信したパケットに適合する処理規則（フローエントリ）を検索する。しかしながら、このパケットは、外部ノード３１０から外部ノード３２０に宛てられた最初のデータパケットであるため、該当する処理規則（フローエントリ）は存在しない。そこで、ノード２１０は受信したパケットをバッファリングしてから、制御装置（コントローラ）１００に対してｍ、新規フロー検出通知メッセージ（Ｐａｃｋｅｔ−Ｉｎ）を送信する（ステップＳ００２）。
【００４８】
上記Ｐａｃｋｅｔ−Ｉｎメッセージには、新しい処理規則（フローエントリ）の照合規則（マッチングキー）の作成に必要な情報（例えば、ＭＡＣアドレス、ＩＰアドレス、ポート番号（それぞれ送信元と宛先両方含む））とパケット受信ポート情報が含まれているものとする。また、本実施形態では、ノード２１０は、受信したパケットをバッファリングして、照合規則（マッチングキー）の作成に必要な情報のみ制御装置（コントローラ）１００に送ることとしているが、受信したパケットごと制御装置（コントローラ）１００に送信することとしても良い。
【００４９】
制御装置（コントローラ）１００はＰａｃｋｅｔ−Ｉｎメッセージを受信すると、処理規則（フローエントリ）の照合規則（マッチングキー）とタイマー値を決定するとともに、外部ノード３１０から外部ノード３２０に宛てられたデータパケットの転送経路を計算する。ここでは、経路計算の結果、図２に示すように、ノード２１０→ノード２２０→ノード２３０の順でパケットを転送する経路と当該経路を実現するためのアクションが計算されたものとする。
【００５０】
また、以下の説明では、制御装置（コントローラ）１００は、宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレス、受信ポート情報が適合することを条件とし、宛先／送信元ポート番号の値は不問（ワイルドカードを使用）とする照合規則（マッチングキー）を作成したものとする。
【００５１】
制御装置（コントローラ）１００は、前記照合規則（マッチングキー）と、アクション、タイマー値を用いて、前記計算した経路上のノード２１０〜２３０の処理規則（フローエントリ）を作成し、設定を行う（ステップＳ００３）。その際、制御装置（コントローラ）１００は、詳細な通信状態を監視するため、経路上の任意のノード（ここでは、ノード２３０とする。）に、処理規則（フローエントリ）の設定とともに、照合規則（マッチングキー）でマッチングに使用していないフィールドや上位レイヤの任意のフィールドを指定して統計情報の記録区分を通知する。
【００５２】
ここでは、統計情報の記録区分として、宛先ポート番号または送信元ポート番号、またはその両方の値が異なるデータパケットを送受信したら、これらをそれぞれ別の通信とみなして統計情報を記録する内容が指示されたものとする。
【００５３】
ノード２１０〜２３０への処理規則（フローエントリ）の設定が完了すると、ノード２１０は、新しく設定された処理規則（フローエントリ）に従ってバッファリングしてあるパケットを転送する。このパケットの転送経路上のノード２２０、２３０には既に処理規則（フローエントリ）の設定が行われているので、このパケットはノード２２０、ノード２３０の順で転送され、外部ノード３２０に届く（ステップＳ００４−１〜Ｓ００４−３）。パケットを転送する際、ノード２１０、ノード２２０は、処理規則（フローエントリ）のフロー統計情報（Ｃｏｕｎｔｅｒｓ）の更新動作を行う。他方、統計情報の記録区分を指示されたノード２３０は、指示された記録区分で細分化された統計情報を記録する。
【００５４】
その後は、外部ノード３１０、３２０間のデータパケットの転送を行う度に、ノード２１０〜２３０は、それぞれフロー統計情報または統計情報を更新していく（ステップＳ００５−１〜Ｓ００５−４）。
【００５５】
制御装置（コントローラ）１００は、詳細な通信量の確認を行うために、所定の時間間隔で、ノード２３０に対して、処理規則（フローエントリ）を指定した統計情報収集メッセージを送信し、該当するノード２３０から該当する処理規則（フローエントリ）および指示した記録区分で記録された統計情報を受信する（ステップＳ００６）。この時点では、１種類の通信（例えば、宛先ポート番号＝Ａ）に対する統計情報が制御装置（コントローラ）１００に送信される。
【００５６】
続けて、外部ノード３１０が、外部ノード３２０宛てに別の通信用のデータパケットを送信する（ステップＳ０１４−１）。このパケットは、宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレスは同じであるが、上記処理規則（フローエントリ）の設定の契機となった通信とは別の通信であるため、宛先ポート番号、送信元ポート番号またはその両方が異なるものとする。
【００５７】
ノード２１０〜２３０のフローテーブル２１２には、このデータパケットに適合する処理規則（フローエントリ）が登録されているため、ノード２１０〜２３０は、それぞれの処理規則（フローエントリ）に従い、次ホップにパケットを転送していく（ステップＳ０１４−２〜Ｓ０１４−４）。この場合も、パケットを転送する際、ノード２１０、ノード２２０は、処理規則（フローエントリ）のフロー統計情報（Ｃｏｕｎｔｅｒｓ）の更新動作を行うが、統計情報の記録区分を指示されたノード２３０は、統計情報の記録区分に従い異なる通信（例えば、宛先ポート番号＝Ｂ）であることを識別して統計情報を記録する。
【００５８】
その後、制御装置（コントローラ）１００が詳細な通信量の確認を行うために、ノード２３０に対して、処理規則（フローエントリ）を指定した統計情報収集メッセージを送信すると、ノード２３０は、該当する処理規則（フローエントリ）および指示した記録区分で記録された統計情報を送信する（ステップＳ０１６）。この時点では、上記２種類の通信（例えば、宛先ポート番号＝Ａ、宛先ポート番号＝Ｂ）についてそれぞれ記録した統計情報が制御装置（コントローラ）１００に送信される。
【００５９】
以上のように、本実施形態によれば、個々のノード２１０〜２３０に設定する処理規則（フローエントリ）、即ち、制御装置（コントローラ）１００が管理する処理規則（フローエントリ）の数を増やさずに、必要な箇所の統計情報を必要な粒度で取得することが可能となる。例えば、処理規則（フローエントリ）毎に、統計情報の取得ポリシを設定することで、ある処理規則（フローエントリ）については、非特許文献１、２と同程度の粒度のフロー統計情報を取得する一方、別の処理規則（フローエントリ）については、よりきめ細かい統計情報を取得することができる。ひいては、このようにフロー毎に取得された統計情報を用いて経路の再計算や処理規則の（フローエントリ）の集約（アグリゲーション）等を行うことにより、きめ細かな通信サービスの提供に役立てるといったことも可能になる。
【００６０】
また、本実施形態によれば、個々のノード２１０〜２３０に設定する処理規則（フローエントリ）の数を削減できるため、個々のノード２１０〜２３０の処理規則（フローエントリ）の記憶領域や検索処理に要する処理時間を低減し、パケット転送能力の劣化を抑えることが可能になる。
【００６１】
さらに、本実施形態によれば、個々のノード２１０〜２３０に設定する処理規則（フローエントリ）の数を削減できるため、ネットワークの障害やメンテナンスによるネットワークトポロジに変化が生じた際の処理規則（フローエントリ）の書き換え等に伴う管理負担も低減することが可能になる。
【００６２】
なお、上記した説明では、宛先ポート番号または送信元ポート番号、またはその両方の値が異なるものをそれぞれ別の通信とみなして統計情報を記録するものとして説明したが、その他のフィールド（例えば、ＶＬＡＮ  ＩＤや上位レイヤの任意フィールド）などを統計情報の記録区分として指定とすることも可能である。また、上記した説明では、経路上のノード２３０のみに、統計情報の記録区分を指示するものとして説明したが、その他のノードに同一または異なる統計情報の記録区分を指示して、その記録結果を収集することも可能である。
【００６３】
［第２の実施形態］
続いて、上記第１の実施形態のノード２１０〜２３０に一部機能を追加した本発明の第２の実施形態について説明する。本実施形態は、ノード２１０〜２３０のパケット処理部２１３に、制御装置（コントローラ）１００への統計情報の記録開始または終了を通知する機能を追加したものであり、その他構成は、上記した第１の実施形態と同一である。以下、動作上の相違点を中心に説明を加える。
【００６４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図６は、本発明の第２の実施形態の動作を表したシーケンス図である。図６のデータパケットを表わした矢線（実線）と矢線（破線）とは、外部ノードで動作するアプリケーションプログラムが異なるなど、それぞれ異なる通信を表わすものとする。
【００６５】
図６を参照すると、まず、外部ノード３１０が、外部ノード３２０宛てにデータパケットを送信する。このパケットは外部ノード３１０が接続しているノード２１０に届く（ステップＳ１０１）。
【００６６】
以降、制御装置（コントローラ）１００がノード２１０〜２３０に処理規則（フローエントリ）の設定を行うまでの処理は第１の実施形態と同じであるため、説明を省略する（ステップＳ１０２〜Ｓ１０３）。なお、以下の説明においても、ノード２３０に対し、統計情報の記録区分として、宛先ポート番号または送信元ポート番号、またはその両方の値が異なるデータパケットを送受信したら、これらをそれぞれ別の通信とみなして統計情報を記録する内容が指示されたものとする。
【００６７】
ノード２１０〜２３０への処理規則（フローエントリ）の設定が完了すると、ノード２１０は、新しく設定された処理規則（フローエントリ）に従ってバッファリングしてあるパケットを転送する。このパケットの転送経路上のノード２２０、２３０には既に処理規則（フローエントリ）の設定が行われているので、このパケットはノード２２０、ノード２３０の順で転送され、外部ノード３２０に届く（ステップＳ１０４−１〜Ｓ１０４−３）。パケットを転送する際、ノード２１０、ノード２２０は、処理規則（フローエントリ）のフロー統計情報（Ｃｏｕｎｔｅｒｓ）の更新動作を行う。他方、統計情報の記録区分を指示されたノード２３０は、指示された記録区分で統計情報を記録するとともに、その開始を制御装置（コントローラ）１００に通知する（ステップＳ１０４−５）。
【００６８】
この統計情報の記録開始通知には、統計情報の記録開始の契機となったパケットの宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレス、宛先／送信元ポート番号などを含まれているものとする。制御装置（コントローラ）１００は、統計情報記録開始通知に含まれる情報に基づいて、統計情報の収集開始または終了を決定することができる。
【００６９】
その後は、外部ノード３１０、３２０間のデータパケットの転送を行う度に、ノード２１０〜２３０は、それぞれフロー統計情報または統計情報を更新していく（ステップＳ１０５−１〜Ｓ１０５−４）。
【００７０】
制御装置（コントローラ）１００は、前記統計情報記録開始通知の受信を契機として、ノード２３０に対して、処理規則（フローエントリ）を指定した統計情報収集メッセージを送信し、該当するノード２３０から該当する処理規則（フローエントリ）および支持した記録区分で記録された統計情報を受信する（ステップＳ１０６）。この時点では、１種類の通信（例えば、宛先ポート番号＝Ａ）に対する統計情報が制御装置（コントローラ）１００に送信される。
【００７１】
続けて、外部ノード３１０が、外部ノード３２０宛てに別の通信用のデータパケットを送信する（ステップＳ１０７−１）。このパケットは、宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレスは同じであるが、上記処理規則（フローエントリ）の設定の契機となった通信とは別の通信であるため、宛先ポート番号、送信元ポート番号またはその両方が異なるものとする。
【００７２】
先の第１の実施形態と同様、ノード２１０〜２３０のフローテーブル２１２には、このデータパケットに適合する処理規則（フローエントリ）が登録されているため、ノード２１０〜２３０は、それぞれの処理規則（フローエントリ）に従い、次ホップにパケットを転送していく（ステップＳ１０７−２〜Ｓ１０７−４）。この場合も、パケットを転送する際、ノード２１０、ノード２２０は、処理規則（フローエントリ）のフロー統計情報（Ｃｏｕｎｔｅｒｓ）の更新動作を行うが、統計情報の記録区分を指示されたノード２３０は、指示された記録区分、即ち、異なる通信（例えば、宛先ポート番号＝Ｂ）であることを識別して統計情報を記録する。また、ノード２３０は、異なる統計情報の記録開始を制御装置（コントローラ）１００に通知する（ステップＳ１０７−５）。
【００７３】
その後は、外部ノード３１０、３２０間の２つの通信のデータパケットの転送を行う度に、ノード２１０〜２３０は、それぞれフロー統計情報または統計情報を更新していく（ステップＳ１０８−１〜Ｓ１０９−４）。
【００７４】
制御装置（コントローラ）１００は、前記統計情報記録開始通知の受信を契機として、ノード２３０に対して、処理規則（フローエントリ）を指定した統計情報収集メッセージを送信し、該当するノード２３０から該当する処理規則（フローエントリ）および指示された記録区分で記録された統計情報を受信する（ステップＳ１１０）。この時点では、上記２種類の通信（例えば、宛先ポート番号＝Ａ、宛先ポート番号＝Ｂ）についてそれぞれ記録した統計情報が制御装置（コントローラ）１００に送信される。
【００７５】
その後、ステップＳ１０１で開始した通信の終了を検知すると、ノード２３０は、制御装置（コントローラ）１００に統計情報記録終了通知を送信する（ステップＳ１１１）。この統計情報の記録終了通知には、終了した通信のパケットの宛先／送信元ＭＡＣアドレス、宛先／送信元ＩＰアドレス、宛先／送信元ポート番号などを含まれているものとする。制御装置（コントローラ）１００は、統計情報記録終了通知に含まれる情報に基づいて、統計情報の収集開始または終了を決定することができる。
【００７６】
上記ノード２３０が、通信終了を検知する方法としては、種々の方法が採用可能であるが、例えば、統計情報を記録を開始した際に、処理規則（フローエントリ）のアクションフィールド内にあるタイマー値と同様に、統計情報用のタイマーも併せて動作させておき、一定期間、同一の通信に属するパケットを受信しなかったら、通信終了と判断する方法を採ることができる。
【００７７】
さらにその後、ステップＳ１０７で開始した通信もステップＳ１１２−１〜Ｓ１１２−４の最後に途絶えると、処理規則（フローエントリ）のタイマー値が０となる。該当する処理規則（フローエントリ）を削除すると、ノード２３０は、制御装置（コントローラ）１００に対して、ステップＳ１０７で開始した通信用の統計情報記録終了通知と、処理規則（フローエントリ）削除通知を送信する（ステップＳ１１４、Ｓ１１５）。
【００７８】
以上のように、本実施形態によれば、第１の実施形態の効果に加えて、制御装置（コントローラ）１００の統計情報の収集タイミングを最適化（統計情報の収集動作の制御）することが可能となる。なお、上記した実施形態では、統計情報の記録開始および終了の双方を制御装置（コントローラ）１００に通知するものとして説明したが、いずれか一方を通知することとしてもよい。
【００７９】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。上記した実施形態の制御装置（コントローラ）１００は、専用のサーバとして実現することもでき、ノード２１０〜２３０としては、上記オープンフロースイッチのほか、ＩＰ網におけるルータ、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）網におけるＭＰＬＳスイッチにて実現することができる。その他、サーバがネットワーク内のノードを集中管理するようなネットワークであれば、本発明を適用することが可能である。
【００８０】
また、上記した実施形態の制御装置（コントローラ）１００とノード２１０〜２３０の間における統計情報の収集メッセージとしては、非特許文献２のＳｔａｔｓ−ＲｅｑメッセージおよびＳｔａｔｓ−Ｒｓｐメッセージを用いることができる。また、上記した第２の実施形態のノードから制御装置（コントローラ）１００に通知される統計情報記録開始通知および統計情報記録終了通知としては、非特許文献２のベンダ定義メッセージを用いることができる。
【００８１】
また、上記した実施形態では制御装置（コントローラ）１００が統計情報の記録区分の指示および収集を行うものとして説明したが、制御装置（コントローラ）１００とは、別の装置に、統計情報の記録区分の指示および収集を行わせる構成も採用可能である。
【００８２】
また、上記した実施形態では処理規則（フローエントリ）の照合規則（マッチングルール）のうちワイルドカードが指定されている部分を追加指示することにより、統計情報の記録区分を指示するものとして説明したが、上記方法に限られない。例えば、上位レイヤに任意のフィールドを記録区分として指示する方法を採用することも可能である。
【産業上の利用可能性】
【００８３】
本発明は、キャリアネットワークシステムなどへの適用が可能である。また、通信状態に応じて課金を行うシステムへの適用も可能である。
【００８４】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信システム参照）
［第２の形態］
第１の形態の通信システムにおいて、
前記統計情報記録部は、前記照合規則をさらに細分化した区分で統計情報を記録する通信システム。
［第３の形態］
第２の形態の通信システムにおいて、
前記統計情報の記録区分は、前記処理規則の設定時に、前記照合規則にて照合対象となっていないヘッダフィールドを指定して指示される通信システム。
［第４の形態］
第１から第３いずれか一の形態の通信システムにおいて、
前記ノードは、所定時間、前記統計情報の記録対象となるパケットを受信しなかった場合、前記統計情報の記録を終了する通信システム。
［第５の形態］
第１から第４いずれか一の形態の通信システムにおいて、
前記ノードは、前記統計情報の記録開始または終了を前記統計情報収集装置に通知し、
前記統計情報収集装置は、前記通知に基づいて、統計情報の収集動作を制御する通信システム。
［第６の形態］
第１から第５いずれか一の形態の通信システムにおいて、
前記統計情報収集装置は、前記ノードに前記処理規則を設定する制御装置としても動作する通信システム。
［第７の形態］
第１から第６いずれか一の形態の通信システムにおいて、
前記統計情報の記録区分として、上位レイヤのヘッダまたはデータ領域の情報を指定可能である通信システム。
［第８の形態］
（上記第２の視点によるノード参照）
［第９の形態］
第８の形態のノードにおいて、
前記統計情報記録部は、前記照合規則をさらに細分化した区分で統計情報を記録するノード。
［第１０の形態］
第９の形態のノードにおいて、
前記統計情報の記録区分は、前記処理規則の設定時に、前記照合規則にて照合対象となっていないヘッダフィールドを指定して指示されるノード。
［第１１の形態］
第８から第１０いずれか一の形態のノードにおいて、
所定時間、前記統計情報の記録対象となるパケットを受信しなかった場合、前記統計情報の記録を終了するノード。
［第１２の形態］
第８から第１１いずれか一の形態のノードにおいて、
前記統計情報を収集する統計情報収集装置に対し、前記統計情報の記録開始または終了を通知するノード。
［第１３の形態］
第８から第１２いずれか一の形態のノードにおいて、
前記統計情報の記録区分として、上位レイヤのヘッダまたはデータ領域の情報を指定可能であるノード。
［第１４の形態］
（上記第３の視点による統計情報収集装置参照）
［第１５の形態］
第１４の形態の統計情報収集装置において、
前記ノードに前記処理規則を設定する制御装置としても動作する統計情報収集装置。
［第１６の形態］
（上記第４の視点による統計情報の収集方法参照）
［第１７の形態］
（上記第５の視点によるプログラム参照）
【符号の説明】
【００８５】
１００  制御装置（コントローラ）
１００Ａ  統計情報収集装置
１０１  フローエントリデータベース（フローエントリＤＢ）
１０２  統計情報管理部
１０３  トポロジ管理部
１０４  経路・アクション計算部
１０５  フローエントリ管理部
１０６  制御メッセージ処理部
１０７  ノード通信部
２１０〜２３０  ノード
２１１  制御メッセージ送受信部
２１２  フローテーブル
２１３  パケット処理部
２１４  統計情報記録部
３１０〜３２０  外部ノード
【図１】
2013535895.tif 000003
【図２】
2013535895.tif 000004
【図３】
2013535895.tif 000005
【図４】
2013535895.tif 000006
【図５】
2013535895.tif 000007
【図６】
2013535895.tif 000008
【図７】
2013535895.tif 000009
【図８】
2013535895.tif 000010
【図９】
2013535895.tif 000011
【図１０】
2013535895.tif 000012
【国際調査報告】
2013535895.tif 000013