コントローラと、スイッチとを含み、前記コントローラは、所定のフローにフロー識別子を割り当てる機能を持つフロー識別子管理部と、前記スイッチがフローを構成する各パケットを一律に制御するためのルールと動作が定義されたエントリを、前記スイッチのフローテーブルに設定する機能、及び前記フローテーブル内の所定のフローに関するエントリの所定の領域に、該フローに割り当てられたフロー識別子を登録する機能を持つエントリ管理部とを具備し、前記スイッチは、前記エントリに定義されたルールに適合する受信パケットに対して、前記エントリに定義された動作を行い、該受信パケットの統計情報を前記エントリに記録する機能を持つ転送処理部と、統計情報を取得する対象として指定されたフローに対応するフロー識別子を取得し、該フロー識別子を保持するエントリに適合したパケットの統計情報を所定の頻度で取得する機能を持つ統計処理部とを具備するネットワークシステム。請求項1に記載のネットワークシステムであって、前記統計処理部は、統計情報を取得する対象として指定されたフロー識別子と前記エントリに保持されているフロー識別子が一致すれば、当該エントリに記録されている統計情報を取得する機能を持つネットワークシステム。請求項1又は2に記載のネットワークシステムであって、前記転送処理部は、前記統計処理部から通知されたフロー識別子を持つエントリのルールに適合する受信パケットを、応答として前記統計処理部に通知する機能を持ち、前記統計処理部は、統計情報を取得する対象として指定されたフロー識別子を前記転送処理部に通知し、応答として前記転送処理部から受け取ったパケットに対して、サンプリング処理を行い、統計情報としてサンプリング値を取得する機能を持つネットワークシステム。請求項1乃至3のいずれか一項に記載のネットワークシステムであって、前記フロー識別子管理部は、パケットのヘッダ情報を圧縮してフロー識別子を作成する機能を持ち、前記エントリ管理部は、該フロー識別子を前記フローテーブルに設定し、統計情報を取得する対象として指定する機能を持つネットワークシステム。所定のフローにフロー識別子を割り当てる機能を持つフロー識別子管理部と、スイッチがフローを構成する各パケットを一律に制御するためのルールと動作が定義されたエントリを、前記スイッチのフローテーブルに設定する機能を持つエントリ管理部とを具備し、前記エントリ管理部は、前記フローテーブル内の所定のフローに関するエントリの所定の領域に、該フローに割り当てられたフロー識別子を登録し、統計情報を取得する対象として指定する機能を持つコントローラ。フローを構成する各パケットを一律に制御するためのルールと動作が定義され、該フローに対応するフロー識別子を格納する領域を持つエントリを設定するためのフローテーブルと、前記フローテーブル内のエントリに定義されたルールに適合する受信パケットに対して、前記エントリに定義された動作を行い、該受信パケットの統計情報を前記エントリに記録する機能を持つ転送処理部と、統計情報を取得する対象として指定されたフローに対応するフロー識別子を取得し、該フロー識別子を保持するエントリに適合したパケットの統計情報を所定の頻度で取得する機能を持つ統計処理部とを具備するスイッチ。コントローラにおいて、スイッチがフローを構成する各パケットを一律に制御するためのルールと動作が定義されたエントリを、前記スイッチのフローテーブルに設定することと所定のフローにフロー識別子を割り当てることと、前記フローテーブル内の所定のフローに関するエントリの所定の領域に、該フローに割り当てられたフロー識別子を登録することと、前記スイッチにおいて、前記エントリに定義されたルールに適合する受信パケットに対して、前記エントリに定義された動作を行い、該受信パケットの統計情報を前記エントリに記録することと、統計情報を取得する対象として指定されたフローに対応するフロー識別子を取得し、該フロー識別子を保持するエントリに適合したパケットの統計情報を所定の頻度で取得することとを含むトラフィック監視方法。請求項7に記載のトラフィック監視方法であって、前記スイッチにおいて、統計情報を取得する対象として指定されたフロー識別子と前記エントリに保持されているフロー識別子が一致すれば、当該エントリに記録されている統計情報を取得することを更に含むトラフィック監視方法。請求項7又は8に記載のトラフィック監視方法であって、前記スイッチにおいて、前記所定の領域内に、統計情報を取得する対象として指定されたフロー識別子と一致するフロー識別子を持つエントリを検索することと、該エントリがあれば、該エントリのルールに適合する受信パケットに対して、サンプリング処理を行い、統計情報としてサンプリング値を取得することとを更に含むトラフィック監視方法。請求項7乃至9のいずれか一項に記載のトラフィック監視方法であって、前記コントローラにおいて、パケットのヘッダ情報を圧縮してフロー識別子を作成することと、該フロー識別子を前記フローテーブルに設定することと、該フロー識別子を統計情報を取得する対象として指定することとを更に含むトラフィック監視方法。スイッチがフローを構成する各パケットを一律に制御するためのルールと動作が定義されたエントリを、前記スイッチのフローテーブルに設定するステップと、所定のフローにフロー識別子を割り当てるステップと、前記フローテーブル内の所定のフローに関するエントリの所定の領域に、該フローに割り当てられたフロー識別子を登録し、統計情報を取得する対象として指定するステップとをコントローラに実行させるためのプログラムを格納した記憶媒体。パケットを受信した際、フローを構成する各パケットを一律に制御するためのルールと動作が定義され、該フローに対応するフロー識別子を格納する領域を持つエントリが設定されたフローテーブルを検索するステップと、前記フローテーブル内のエントリに定義されたルールに適合する受信パケットに対して、前記エントリに定義された動作を行い、該受信パケットの統計情報を前記エントリに記録するステップと、統計情報を取得する対象として指定されたフローに対応するフロー識別子を取得し、該フロー識別子を保持するエントリに適合したパケットの統計情報を所定の頻度で取得するステップとをスイッチに実行させるためのプログラムを格納した記憶媒体。<第1実施形態>以下に、本発明の第1実施形態について添付図面を参照して説明する。[基本構成]図1Aに示すように、本発明の第1実施形態に係るネットワークシステムは、スイッチ1010-i、i=1~n:nはスイッチ台数と、コントローラ20と、sFlowコレクタ30を含む。スイッチ1010-i、i=1~n及びコントローラ20は、オープンフローネットワークを形成する。スイッチ1010-i、i=1~nは、オープンフローネットワークにおけるノードnodeである。コントローラ20は、セキュアチャネルSecureChannel接続で、スイッチ1010-i、i=1~nと接続されている。sFlowコレクタ30は、通常回線で、スイッチ1010-i、i=1~nと接続されており、スイッチ1010-i、i=1~nから通知された統計情報を収集する。[スイッチ]スイッチ1010-i、i=1~nは、オープンフローに対応したスイッチである。スイッチ1010-i、i=1~nの各々は、オープンフロー処理部転送処理部11と、sFlow処理部統計処理部12を備える。[オープンフロー処理部]オープンフロー処理部11は、スイッチ上で動作するオープンフローエージェントにより実現される。当該オープンフローエージェントは、スイッチ1010-i、i=1~nに常駐している。オープンフロー処理部11は、データ転送部111と、フローテーブル112を備える。[データ転送部]データ転送部111は、スイッチ1010-i、i=1~nがパケットを受信した際、当該受信パケットがフローテーブル112に登録されたエントリのいずれかに適合するか照合する。すなわち、データ転送部111は、エントリに定義されたマッチ条件ルールと当該受信パケットとを照合し、当該受信パケットのヘッダ情報がマッチ条件ルールと一致したエントリを、当該受信パケットに適合するエントリと判断する。データ転送部111は、受信パケットに適合するエントリが存在する場合、適合したエントリに定義されたアクションに従って当該受信パケットを転送し、フロー毎にサンプリング値を取得し、統計情報として当該エントリに記録格納する。ここでは、データ転送部111は、当該エントリに定義されたルールに適合する受信パケットに対して、当該エントリに定義された動作を行い、当該動作を統計情報として当該エントリに記録する。なお、適合したエントリに定義された処理内容アクションがパケットの破棄である場合、データ転送部111は、適合したエントリに従って、当該受信パケットを破棄する。[フローテーブル]フローテーブル112は、所定のマッチ条件ルールに適合するパケット通信データに対して行うべき所定の処理内容アクションに加え、更に、統計情報としてフロー毎のサンプリング値を記録するための統計値Staticticsと、フロー識別子FlowIDを設定するためのCookieクッキーを定義したエントリが登録されたテーブルである。Cookieを定義したエントリは、統計情報取得用エントリである。但し、実際には、エントリのCookie以外の領域フィールド内に、フロー識別子を設定しても良い。Cookieは一例に過ぎない。上記のCookieは、エントリの追加編集時に、任意の値を設定できるunit64_t型64bit整数型の領域フィールドである。なお、オープンフローにおけるCookieは、エントリの追加失効削除時にしか必要ない情報であるため、通常はオープンフロープロトコル経由以外では取得できない。本発明では、フローテーブル112のエントリにCookieの領域フィールドを用意し、オープンフロープロトコル経由以外でも取得できるようにする。具体的には、フローテーブル112のエントリのうち、少なくとも統計値とCookieをsFlow処理部12から可読にする。[sFlow処理部]sFlow処理部12は、スイッチ上で動作するsFlowエージェントにより実現される。当該sFlowエージェントは、スイッチ1010-i、i=1~nに常駐している。sFlow処理部12は、サンプリング処理部121と、MIB122を備える。[サンプリング処理部]サンプリング処理部121は、通常のsFlowの場合と同じく、sFlowでのパケット照合時に、データソースを基にパケットを分類し、平均して閾値の割合例えば1000件に1件になるようにランダムにサンプリングし、サンプリング値を統計情報としてsFlowデータグラムでsFlowコレクタ30に送信する。また、サンプリング処理部121は、MIB122を参照し、MIB122のデータソースとしてフロー識別子が指定されているか確認する。なお、確認するタイミングは、データ転送部111が受信パケットをフローテーブル112に照合する際でも良いし、通常のsFlowでのサンプリング値を統計情報としてsFlowデータグラムでsFlowコレクタ30に送信する際でも良い。サンプリング処理部121は、MIB122のデータソースとしてフロー識別子が指定されている場合、フローテーブル112のエントリのCookieの領域フィールドを参照し、同一のフロー識別子が格納されているエントリを検出し、当該エントリに統計情報として記録されているサンプリング値を取得し、サンプリング値を統計情報としてsFlowコレクタ30に送信する。或いは、サンプリング処理部121は、MIB122のデータソースとしてフロー識別子が指定されている場合、当該フロー識別子をオープンフロー処理部11に通知する。オープンフロー処理部11は、Cookieの領域フィールドに当該フロー識別子が格納されているエントリの有無、及び当該エントリに記録された統計情報の有無を確認し、該当する統計情報があれば、この統計情報を応答としてサンプリング処理部121に送信する。サンプリング処理部121は、オープンフロー処理部11から応答として受け取った統計情報をsFlowコレクタ30に送信するようにしても良い。これにより、本発明では、sFlowにおいて、オープンフローでの統計情報を取得し参照することができる。[MIB]本発明では、MIB122に指定できるデータソースとして、新たに、以下のようなものを用意する。sFlowDataSource.<F>:フロー単位。<F>にはCookieに指定したフロー識別子を指定。0xffffffffffffffffを指定した場合は全フローが対象。なお、0xで始まる表記は16進数とする。但し、実際には、この例に限定されない。[コントローラ]コントローラ20は、オープンフローにおいてコントローラの役割を果たすサーバであり、当該サーバ上で動作するソフトウェアにより実現される。図1Bに示すように、コントローラ20は、フロー識別子管理部21と、経路制御部22と、エントリ管理部23を備える。[フロー識別子管理部]フロー識別子管理部21は、フロー識別子を作成/取得し、フロー識別子をフロー単位に割り当てる。その後、フロー識別子管理部21は、フロー識別子をsFlowコレクタ30に通知する。なお、本発明では、コントローラ20には、統計情報の取得対象となる重要フローが事前に登録されているものとする。すなわち、コントローラ20には、重要フローに該当するパケット群を特定するためのマッチ条件ルールが事前に登録されている。コントローラ20への事前登録は、外部のコンソール端末や管理サーバ等により実施される。フロー識別子管理部21は、統計情報の取得対象となる重要フローに対して、フロー識別子を割り当てる。[経路制御部]経路制御部22は、トポロジtopology:接続形態検知を行った際に、ネットワークを構成するスイッチ1010-i、i=1~nを検知し、フロー毎の経路パスを計算し、経路情報を生成する。或いは、統計情報の取得対象となる重要フローと共に、当該重要フローの経路情報も事前に登録される場合、経路制御部22は、この経路情報を保持する。[エントリ管理部]エントリ管理部23は、フローテーブル112にエントリを登録する。具体的には、エントリ管理部23は、統計情報の取得対象となる重要フローを保持し、当該重要フローと経路情報を基にエントリを定義し、フローテーブル112に当該エントリを登録するための制御メッセージをスイッチ1010-i、i=1~nに送信する。[Cookie]図2に示すように、本発明では、コントローラ20は、フローテーブル112のエントリを追加修正する際、エントリ追加修正用の制御メッセージModifyFrowEntryMessageにCookieを設定することができる。これにより、コントローラ20は、フローテーブル112のエントリにCookieの領域フィールドを設け、この領域フィールドに所定のフロー識別子を格納することができる。また、コントローラ20は、状態取得用の制御メッセージReadStateMessage若しくはエントリ削除用の制御メッセージFlowRemovedMessageにも、設定されたCookieの値フロー識別子を含めることもできる。なお、オープンフローにおいて、コントローラがフローテーブルにエントリを登録する方式は、大きくProactive型と、Reactive型の2つの方式に分けられる。Proactive型では、コントローラが事前にデータ通信が始まる前に、所定のパケット群フローの経路パスを計算し、フローテーブルにエントリを登録する。すなわち、ここでいうProactive型とは、コントローラが自発的に行う事前のエントリ登録を指す。Reactive型では、コントローラがスイッチから1stパケット適合するエントリがない新規のパケットについての問い合わせを受けた際に当該パケット群フローの経路を計算し、フローテーブルにエントリを登録する。すなわち、ここでいうReactive型とは、実際のデータ通信時に、コントローラがスイッチからの問い合わせに応じて行うリアルタイムのエントリ登録を指す。ここでは、エントリ管理部23は、事前登録された重要フローの統計情報を取得するためのエントリの追加修正用の制御メッセージModifyFrowEntryMessageにCookieを設定し、Cookieにフロー識別子を格納し、Proactive型で、事前通信開始前にフローテーブル112に当該エントリを登録する。ここでいう事前通信開始前とは、当該フローテーブルを保有するスイッチがパケットの受信転送を開始する前を意味する。或いは、エントリ管理部23は、スイッチ1010-i、i=1~nから1stパケットについての問い合わせを受けた際に、上記の制御メッセージModifyFrowEntryMessageにCookieを設定し、Cookieにフロー識別子を格納し、Reactive型で、フローテーブル112に当該エントリを登録するようにしても良い。更に、エントリ管理部23は、フローテーブル112にエントリを登録した際に、当該エントリのCookieに格納したフロー識別子を、MIB122にデータソースとして設定するようにしても良い。例えば、エントリ管理部23は、フローテーブル112にエントリを登録すると同時に、当該エントリのCookieに格納したフロー識別子をsFlowコレクタ30に通知する。sFlowコレクタ30は、コントローラ20からフロー識別子を取得して、スイッチ1010-i、i=1~n上のMIB122にデータソースとしてフロー識別子を設定する。[sFlowコレクタ]sFlowコレクタ30は、sFlowにおいてコレクタの役割を果たすサーバであり、当該サーバ上で動作するソフトウェアにより実現される。図1Cに示すように、sFlowコレクタ30は、フロー識別子設定部31と、統計情報収集部32を備える。[フロー識別子設定部]フロー識別子設定部31は、コントローラ20側から通知されたフロー識別子を保持し、スイッチ1010-i、i=1~n上のMIB122にデータソースとしてフロー識別子を設定する。[統計情報収集部]統計情報収集部32は、sFlow処理部12から送付される統計情報を集計編集表示する。更に、統計情報収集部32は、編集データをアナライザAnalyzerに送付するようにしても良い。図示しないが、アナライザは、sFlowコレクタ30から送付されるデータをグラフィカルに表示する。なお、アナライザは、sFlowコレクタ30と一体化している場合がある。[ハードウェアの例示]スイッチ1010-i、i=1~nの例として、ネットワークスイッチnetworkswitch、ルータrouter、プロキシproxy、ゲートウェイgateway、ファイアウォールfirewall、ロードバランサloadbalancer:負荷分散装置、帯域制御装置packetshaper、セキュリティ監視制御装置SCADA:SupervisoryControlAndDataAcquisition、ゲートキーパーgatekeeper、基地局basestation、アクセスポイントAP:AccessPoint、通信衛星CS:CommunicationSatellite、或いは、複数の通信ポートを有する計算機等が考えられる。また、スイッチ1010-i、i=1~nは、物理マシン上に構築された仮想スイッチでも良い。コントローラ20及びsFlowコレクタ30の例として、PCパソコン、アプライアンスappliance、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、コントローラ20及びsFlowコレクタ30は、物理マシン上に構築された仮想マシンVMでも良い。スイッチ1010-i、i=1~nの各々、コントローラ20、及びsFlowコレクタ30を接続するネットワークの例として、インターネット、LANLocalAreaNetwork、無線LANWirelessLAN、WANWideAreaNetwork、バックボーンBackbone、ケーブルテレビCATV回線、固定電話網、携帯電話網、WiMAXIEEE802.16a、3G3rdGeneration、専用線leaseline、IrDAInfraredDataAssociation、Bluetooth登録商標、シリアル通信回線、データバス等が考えられる。また、オープンフロー処理部11、sFlow処理部12、フロー識別子管理部21、経路制御部22、エントリ管理部23、フロー識別子設定部31、及び統計情報収集部32の各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェースI/F:interfaceとによって実現される。上記のプロセッサの例として、CPUCentralProcessingUnit、マイクロプロセッサmicroprocessor、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路IntegratedCircuitIC等が考えられる。上記のメモリの例として、RAMRandomAccessMemory、ROMReadOnlyMemory、EEPROMElectricallyErasableandProgrammableReadOnlyMemoryやフラッシュメモリ等の半導体記憶装置、HDDHardDiskDriveやSSDSolidStateDrive等の補助記憶装置、又は、DVDDigitalVersatileDisk等のリムーバブルディスクや、SDメモリカードSecureDigitalmemorycard等の記憶媒体メディア等が考えられる。或いは、DASDirectAttachedStorage、FC-SANFibreChannel-StorageAreaNetwork、NASNetworkAttachedStorage、IP-SANIP-StorageAreaNetwork等を用いたストレージ装置でも良い。上記の通信用インターフェースの例として、ネットワーク通信に対応した基板マザーボード、I/Oボードやチップ等の半導体集積回路、NICNetworkInterfaceCard等のネットワークアダプタや、同様の拡張カード、アンテナ等の通信装置、接続口コネクタ等の通信ポート等が考えられる。なお、オープンフロー処理部11、sFlow処理部12、フロー識別子管理部21、経路制御部22、エントリ管理部23、フロー識別子設定部31、及び統計情報収集部32の各々は、モジュールmodule、コンポーネントcomponent、或いは専用デバイス、又はこれらの起動呼出プログラムでも良い。但し、実際には、これらの例に限定されない。[フロー識別子の具体例]ここで、フロー識別子の具体例について説明する。フロー識別子を払い出す方式としては、以下の12の2通りが考えられる。1パケットのヘッダ情報の領域フィールドとは無関係に一意な任意の値をフロー識別子としてコントローラから払い出す方式フロー識別子の採番方法については、例えば、0から初めて1ずつインクリメントincrementする方法が考えられる。なお、フロー識別子の中の任意の1bitで統計情報を取得するかどうかを示すようにすることで、特にMIB122に設定しなくてもサンプリング処理部121が統計情報を取得できるようにすることができる。コントローラ20は、フローテーブル112にエントリを登録した際、sFlowコレクタ30に当該エントリを割り振る。このとき、コントローラ20は、フローパケット群とフロー識別子との対応を基に、sFlowコレクタ30に対して統計情報を取得したいフローを指定する。なお、実際には、外部のコンソール端末や管理サーバ等が、コントローラ20から割り振り予定のフロー識別子を取得して、sFlowコレクタ30に通知するようにしても良い。sFlowコレクタ30は、フロー識別子を取得して、スイッチ1010-i、i=1~n上のMIB122にデータソースとしてフロー識別子を設定し、サンプリング処理部121に統計情報取得を指示する。或いは、外部のコンソール端末や管理サーバ等、又はコントローラ20が、直接、サンプリング処理部121に統計情報取得を指示するようにしても良い。2パケットのヘッダ情報を圧縮してフロー識別子を作成し、コントローラから払い出す方式図3に示すように、パケットのヘッダ情報は、IngressPort入口ポート:任意MACsrc送信元MACアドレス:48bitMACdst宛先MACアドレス:48bitEtherタイプ:16bitVLANID:12bitVLANpriority:3bitIPsrc送信元IPアドレス:32bitIPdst宛先IPアドレス:32bitIPproto:8bitIPTosbits:6bitTCP/UDPsrcport送信元ポート:16bitTCP/UDPdstport宛先ポート:16bit等の領域フィールドを含む。フローのルールは、上記のパケットのヘッダ情報にマスク情報を付加して、所定の情報の組み合わせを利用したものである。パケットのヘッダ情報の各々の領域フィールドの長さを加算すると、IngressPort入口ポート以外の領域フィールドだけで237bit長となり、これに任意のIngressPort入口ポートのbit長が加わるため、合計で237bit超237bit長以上になる。コントローラ20は、ハッシュ関数等の圧縮アルゴリズムを用いて、237bit超のパケットのヘッダ情報を圧縮して64bit長のフロー識別子を算出し、sFlowコレクタ30に通知する。なお、実際には、外部のコンソール端末や管理サーバ等が、統計情報の取得対象として事前に決定したパケットに対し、圧縮アルゴリズムを用いて、パケットのヘッダ情報から64bit長のフロー識別子を算出し、コントローラ20及びsFlowコレクタ30に通知するようにしても良い。sFlowコレクタ30は、MIB122にデータソースとしてフロー識別子を設定し、サンプリング処理部121に統計情報取得を指示する。或いは、外部のコンソール端末や管理サーバ等、又はコントローラ20が、直接、サンプリング処理部121に統計情報取得を指示するようにしても良い。[本実施形態における処理]図4を参照して、本実施形態における処理について説明する。1ステップS101コントローラ20のフロー識別子管理部21は、外部のコンソール端末や管理サーバ等から、統計情報の取得対象となるフローに対応するフロー識別子を取得する。なお、実際には、外部のコンソール端末や管理サーバ等から、統計情報の取得対象となるフローの情報を取得し、当該フローを構成するパケットのヘッダ情報を圧縮してフロー識別子を作成しても良い。2ステップS102コントローラ20の経路制御部22は、トポロジtopology:接続形態検知を行った際に、ネットワークを構成するスイッチ1010-i、i=1~nを検知し、フロー毎の経路パスを計算し、経路情報を生成する。或いは、経路制御部22は、外部のコンソール端末や管理サーバ等から、統計情報の取得対象となるフローの情報と共に、当該重要フローの経路情報も事前に登録される場合、この経路情報を保持する。3ステップS103コントローラ20のエントリ管理部23は、統計情報の取得対象となるフローとその経路情報を基にエントリを定義し、当該フローに対応するフロー識別子を当該エントリに設定し、フローテーブル112に当該エントリを登録するための制御メッセージをスイッチ1010-i、i=1~nに送信する。4ステップS104sFlowコレクタ30のフロー識別子設定部31は、外部のコンソール端末や管理サーバ等から、或いは、コントローラ20のエントリ管理部23から、統計情報の取得対象となるフローに対応するフロー識別子が指定された場合、当該フロー識別子を保持し、スイッチ1010-i、i=1~n上のMIB122にデータソースとしてフロー識別子を設定する。5ステップS105スイッチ1010-i、i=1~nのデータ転送部111は、スイッチ1010-i、i=1~nがパケットを受信した際、当該受信パケットがフローテーブル112に登録されたエントリのいずれかに適合するか照合する。すなわち、データ転送部111は、エントリに定義されたマッチ条件ルールと当該受信パケットとを照合し、当該受信パケットのヘッダ情報がマッチ条件ルールと一致したエントリを、当該受信パケットに適合するエントリと判断する。6ステップS106データ転送部111は、受信パケットに適合するエントリが存在する場合、適合したエントリに定義されたアクション動作に従って当該受信パケットを転送し、フロー毎の統計情報を取得して当該エントリに記録する。ここでは、データ転送部111は、当該エントリに定義されたルールに適合する受信パケットに対して、当該エントリに定義された動作を行い、当該動作を統計情報として当該エントリに記録する。7ステップS107データ転送部111は、受信パケットに適合するエントリが存在しない場合、当該受信パケットを破棄する。或いは、データ転送部111は、全パケットを対象としたデフォルトエントリに従って当該受信パケットを処理する。8ステップS108スイッチ1010-i、i=1~nのサンプリング処理部121は、通常のsFlowの場合と同じく、sFlowでのパケット照合時に、データソースを基にパケットを分類し、平均して閾値の割合例えば1000件に1件になるようにランダムにサンプリングし、サンプリング値を統計情報としてsFlowデータグラムでsFlowコレクタ30に送信する。但し、実際には、この処理を行わなくても良い。9ステップS109サンプリング処理部121は、MIB122を参照し、MIB122のデータソースとしてフロー識別子が指定されているか確認する。なお、確認するタイミングは、データ転送部111が受信パケットをフローテーブル112に照合する際でも良いし、上記のように、サンプリング処理部121が通常のsFlowでのサンプリング値を統計情報としてsFlowデータグラムでsFlowコレクタ30に送信する際でも良い。10ステップS110サンプリング処理部121は、MIB122のデータソースとしてフロー識別子が指定されている場合、フローテーブル112のエントリのCookieの領域フィールドを参照し、同一のフロー識別子が格納されているエントリを検出し、当該エントリに統計情報として記録されているサンプリング値を取得し、サンプリング値を統計情報としてsFlowコレクタ30に送信する。11ステップS111sFlowコレクタ30の統計情報収集部32は、サンプリング処理部121から送付された統計情報を集計編集表示する。<第2実施形態>以下に、本発明の第2実施形態について添付図面を参照して説明する。本実施形態では、スイッチ1010-i、i=1~nの各々において、オープンフロー処理部11がフローテーブルのエントリと受信パケットを照合している際に、sFlow処理部12は、MIB122のデータソースとして指定されているフロー識別子をオープンフロー処理部11に通知し、応答として、フロー識別子を持つエントリと適合したパケットを受け取る。sFlow処理部12は、このパケットに対して、sFlowでのサンプリング処理を行う。[本実施形態における構成]図5Aに示すように、本発明の第2実施形態に係るネットワークシステムの構成は、基本的に、本発明の第1実施形態に係るネットワークシステムと同じである。図5Aに示すように、本発明の第2実施形態に係るネットワークシステムは、スイッチ1010-i、i=1~n:nはスイッチ台数と、コントローラ20と、sFlowコレクタ30を含む。スイッチ1010-i、i=1~nの各々は、オープンフロー処理部11と、sFlow処理部12を備える。図5Bに示すように、コントローラ20は、フロー識別子管理部21と、経路制御部22と、エントリ管理部23を備える。図5Cに示すように、sFlowコレクタ30は、フロー識別子設定部31と、統計情報収集部32を備える。本実施形態では、オープンフロー処理部11とsFlow処理部12の処理が第1実施形態と異なる。[本実施形態における処理]図6を参照して、本実施形態における処理について説明する。なお、当該処理は、図4に示す第1実施形態におけるステップS105からステップS110の処理に該当する。他の処理については、図4に示す第1実施形態と同じである。1ステップS201サンプリング処理部121は、通信開始前、或いはMIB122のデータソースに変更があった際に、MIB122のデータソースとして指定されているフロー識別子をデータ転送部111に通知する。2ステップS202通信が開始された際、データ転送部111は、受信パケットと通知されたフロー識別子とを基に、当該フロー識別子とCookieに格納されたフロー識別子とが適合し、当該受信パケットとマッチ条件ルールとが適合するエントリの有無を確認する。3ステップS203データ転送部111は、当該フロー識別子とCookieに格納されたフロー識別子とが適合し、当該受信パケットとマッチ条件ルールとが適合するエントリを検出した場合、適合したエントリに定義されたアクション動作に従って当該受信パケットを転送すると共に、当該受信パケットをサンプルパケットとしてサンプリング処理部121に通知する。このとき、サンプリング処理部121は、外部に転送される受信パケットを検出するようにしても良い。4ステップS204サンプリング処理部121は、データ転送部111から受け取ったパケット、又は外部に転送されるパケットに対して、平均して閾値の割合例えば1000件に1件になるようにランダムにサンプリングsFlowに準拠したサンプリング処理を実行し、サンプリング値を統計情報としてsFlowコレクタ30に送信する。例えば、サンプリング処理部121は、フロー毎にフロー単位で、閾値に到達したパケットのヘッダ情報と各種カウンタ値を取得し、統計情報としてsFlowコレクタ30に送信する。なお、sFlowでMIBのデータソースに適合するパケットよりも、オープンフローでフローテーブルのエントリに適合するパケットのほうが、数が多くなるため、サンプリング処理を行う上でも有利である。その理由は、sFlowでMIBのデータソースに適合するには、パケットのヘッダ情報が完全に一致しなければならないが、オープンフローでフローテーブルのエントリに適合するには、フローのルールとして定義されたパケットのヘッダ情報の一部の組み合わせが一致すれば十分だからである。<各実施形態の関係>なお、上記の各実施形態は、組み合わせて実施することも可能である。例えば、本発明のネットワークシステムにおいて、第1実施形態に対応するスイッチと、第2実施形態に対応するスイッチが混在していても良い。或いは、同一のスイッチで、第1実施形態に対応する機能を有効にするか、第2実施形態に対応する機能を有効にするか、ユーザが選択設定等できるようにすることも考えられる。<本発明の利点>オープンフローを利用することにより、サンプリング対象のパケットを細かく指定できるようにすることで、細分化されたフロー毎にサンプリング値を取得できるようにし、sFlowでのサンプリング処理におけるフィルタリングを実現し、従来のsFlowでは取得できなかったサンプリング値を取得できるようにした。<付記>上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。[付記1]オープンフロー及びsFlowに対応したスイッチと、スイッチの経路を制御するコントローラとを含み、スイッチは、コントローラからフローテーブルに登録されたエントリのCookieにフロー識別子を保持し、エントリのルールに適合する受信パケットに対し、エントリに定義されたアクションに従った動作を行うオープンフロー処理部と、sFlowで使用されるMIBにデータソースとして指定されたフロー識別子を取得し、該フロー識別子を基に、エントリに適合したパケットの統計情報を取得するsFlow処理部とを具備するネットワークシステム。[付記2]付記1に記載のネットワークシステムであって、オープンフロー処理部は、エントリのルールに適合する受信パケットの統計情報をエントリに記録し、sFlow処理部は、MIBにデータソースとして指定されたフロー識別子とエントリに保持されているフロー識別子が一致すれば、当該エントリに記録されている統計情報を取得するネットワークシステム。[付記3]付記1又は2に記載のネットワークシステムであって、オープンフロー処理部は、sFlow処理部から通知されたフロー識別子を持つエントリのルールに適合する受信パケットを、応答としてsFlow処理部に通知し、sFlow処理部は、MIBにデータソースとして指定されたフロー識別子をオープンフロー処理部に通知し、応答としてオープンフロー処理部から受け取ったパケットに対して、sFlowに準拠したサンプリング処理を行い、統計情報としてsFlowのサンプリング値を取得するネットワークシステム。[付記4]付記1乃至3のいずれか一項に記載のネットワークシステムであって、コントローラは、パケットのヘッダ情報を圧縮してフロー識別子を作成し、該フロー識別子をフローテーブル及びMIBに設定するネットワークシステム。<備考>以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。なお、本出願は、日本出願番号2011-006719に基づく優先権を主張するものであり、日本出願番号2011-006719における開示内容は引用により本出願に組み込まれる。