(57)【特許請求の範囲】
【請求項１】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置であって、
各フローの転送先のアプリケーション識別装置を示したフローテーブルと、外部装置から指定された各フローの転送先のアプリケーション識別装置を示した転送ポリシーテーブルとを記憶する記憶部と、
前記転送ポリシーテーブルに該当するフローを受信したとき、前記フローテーブルに前記受信したフローに関するエントリがあるか否かを判定する判定部と、
前記判定部により前記フローテーブルに前記受信したフローに関するエントリがないと判定されたとき、前記受信したフローを新規のフローと判定し、前記新規のフローの転送先を、前記転送ポリシーテーブルに示される当該フローのアプリケーション識別装置としたエントリを前記フローテーブルに追加するフローテーブル更新部と、
前記フローテーブルを参照して、前記新規のフローを、当該フローの転送先のアプリケーション識別装置である第１のアプリケーション識別装置へ転送し、既存のフローを、当該フローの転送先のアプリケーション識別装置である第２のアプリケーション識別装置へ転送する転送部と
を備えることを特徴とするパケットヘッダ識別制御装置。 
【請求項２】
前記フローテーブル更新部は、
前記フローテーブルに、所定期間以上受信しないフローのエントリがあるとき、当該エントリを削除することを特徴とする請求項１に記載のパケットヘッダ識別制御装置。 
【請求項３】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置が、
外部装置から指定された各フローの転送先のアプリケーション識別装置を示した転送ポリシーテーブルを参照し、前記転送ポリシーテーブルに該当するフローを受信したとき、前各フローの転送先のアプリケーション識別装置を示したフローテーブルに、前記受信したフローに関するエントリがあるか否かを判定するステップと、
前記フローテーブルに前記受信したフローに関するエントリがないと判定されたとき、前記受信したフローを新規のフローと判定し、前記新規のフローの転送先を、前記転送ポリシーテーブルに示される当該フローのアプリケーション識別装置としたエントリを前記フローテーブルに追加するステップと、
前記フローテーブルを参照して、前記新規のフローを、当該フローの転送先のアプリケーション識別装置である第１のアプリケーション識別装置へ転送し、既存のフローを、当該フローの転送先のアプリケーション識別装置である第２のアプリケーション識別装置へ転送するステップと
を含んだことを特徴とする制御方法。 
【請求項４】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置であるコンピュータに、
外部装置から指定された各フローの転送先のアプリケーション識別装置を示した転送ポリシーテーブルを参照し、前記転送ポリシーテーブルに該当するフローを受信したとき、各フローの転送先のアプリケーション識別装置を示したフローテーブルに、前記受信したフローに関するエントリがあるか否かを判定するステップと、
前記フローテーブルに前記受信したフローに関するエントリがないと判定されたとき、前記受信したフローを新規のフローと判定し、前記新規のフローの転送先を、前記転送ポリシーテーブルに示される当該フローのアプリケーション識別装置としたエントリを前記フローテーブルに追加するステップと、
前記フローテーブルを参照して、前記新規のフローを、当該フローの転送先のアプリケーション識別装置である第１のアプリケーション識別装置へ転送し、既存のフローを、当該フローの転送先のアプリケーション識別装置である第２のアプリケーション識別装置へ転送するステップと
を実行させることを特徴とする制御プログラム。 
【請求項５】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置を管理する管理装置であって、
前記アプリケーション識別装置からのフローの通信開始通知および通信終了通知に基づき、前記アプリケーション識別装置における通信中のフローを示す通信中フロー情報を更新する通信情報受信部と、
前記通信中フロー情報と、各フローの転送先のアプリケーション識別装置を示したアプリケーション識別装置情報とを記憶する記憶部と、
運用中のアプリケーション識別装置を他のアプリケーション識別装置へ切り替えるとき、前記アプリケーション識別装置情報および前記通信中フロー情報を参照して、前記運用中のアプリケーション識別装置を転送先とするフローの転送先を前記他のアプリケーション識別装置に変更する第１のポリシーと、前記運用中のアプリケーション識別装置を転送先とするフローのうち、通信中のフローの転送先を前記運用中のアプリケーション識別装置のままとする第２のポリシーとを作成し、前記第２のポリシーの優先度を前記第１のポリシーの優先度よりも高くして前記パケットヘッダ識別制御装置に設定するポリシー設定部と
を備えることを特徴とする管理装置。 
【請求項６】
前記ポリシー設定部は、さらに、前記パケットヘッダ識別制御装置に対し、前記フローの転送先を前記運用中のアプリケーション識別装置とするポリシーの設定削除を行うことを特徴とする請求項５に記載の管理装置。 
【請求項７】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置を管理する管理装置が、
前記アプリケーション識別装置からのフローの通信開始通知および通信終了通知に基づき、前記アプリケーション識別装置における通信中のフローを示す通信中フロー情報を更新するステップと、
運用中のアプリケーション識別装置を他のアプリケーション識別装置へ切り替えるとき、各フローの転送先のアプリケーション識別装置を示したアプリケーション識別装置情報および前記通信中フロー情報を参照して、前記運用中のアプリケーション識別装置を転送先とするフローの転送先を前記他のアプリケーション識別装置に変更する第１のポリシーと、前記運用中のアプリケーション識別装置を転送先とするフローのうち、通信中のフローの転送先を前記運用中のアプリケーション識別装置のままとする第２のポリシーとを作成するステップと、
前記第２のポリシーの優先度を前記第１のポリシーの優先度よりも高くして前記パケットヘッダ識別制御装置に設定するステップと
を含んだことを特徴とする制御方法。 
【請求項８】
ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置を管理する管理装置であるコンピュータに、
前記アプリケーション識別装置からのフローの通信開始通知および通信終了通知に基づき、前記アプリケーション識別装置における通信中のフローを示す通信中フロー情報を更新するステップと、
運用中のアプリケーション識別装置を他のアプリケーション識別装置へ切り替えるとき、各フローの転送先のアプリケーション識別装置を示したアプリケーション識別装置情報および前記通信中フロー情報を参照して、前記運用中のアプリケーション識別装置を転送先とするフローの転送先を前記他のアプリケーション識別装置に変更する第１のポリシーと、前記運用中のアプリケーション識別装置を転送先とするフローのうち、通信中のフローの転送先を前記運用中のアプリケーション識別装置のままとする第２のポリシーとを作成するステップと、
前記第２のポリシーの優先度を前記第１のポリシーの優先度よりも高くして前記パケットヘッダ識別制御装置に設定するステップと
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットヘッダ識別制御装置、制御方法、制御プログラム、および、管理装置に関する。
【背景技術】
【０００２】
アプリケーションを意識した通信サービスの提供や、プロビジョニングのため、ＩＰ(Internet  Protocol)ネットワーク内において、パケットのペイロード部（以下Ｌ７と称する）を分析し、フロー制御を行う技術が提案されている。当該技術は、例えば、フロー制御を行う手段（以下アプリケーション識別手段と称す）により、特定のユーザの通信をＬ７分析し、特定のアプリケーションのフローを識別すると、当該フローの５tuple情報（送信元ＩＰアドレス、宛先アドレス、送信元ポート番号、宛先ポート番号、プロトコル番号の組み合わせ）をアプリケーション識別結果として記録しておく。そして、アプリケーション識別手段は、以降、このフローのパケットについて、このアプリケーション識別結果の５tuple情報により識別し、制御を行う。これにより、アプリケーション識別手段は、フローのすべてのパケットについてＬ７分析を行わなくても、特定のユーザ、特定のアプリケーションのフローを制御することができる。
【０００３】
なお、フローに対して課金制御およびポリシー制御（優先制御、フィルタリング、最大帯域制限等）を実施するためアーキテクチャも提案されている（非特許文献１参照）。このアーキテクチャにおいて、５tupleベースのフロー制御を実現する機能をＰＣＥＦ  (Policy  and  Charging  Enforcement  Function)、Ｌ７分析によりアプリケーション検知を実現する機能をＴＤＦ(Traffic  Detection  Function)、ＰＣＥＦやＴＤＦに対してポリシーを管理／設定する機能をＰＣＲＦ(Policy  Control  and  Charging  Rules  Function)と定義している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】3GPP  TS  23.203:3rd  Generation  Partnership  Project;  Technical  Specification  Group  Services  and  System  Aspects;  Policy  and  charging  control  architecture、[online]、[平成26年8月25日検索]、インターネット<URL：http://www.qtc.jp/3GPP/Specs/23203-7b0.pdf/>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、アプリケーション識別手段の保守等を行うため、当該アプリケーション識別手段（切替元のアプリケーション識別手段）に収容されるユーザの通信を、別のアプリケーション識別手段（切替先のアプリケーション識別手段）へ切り替える必要がある。
【０００６】
しかし、従来技術により上記の切り替えを行うと、切替先のアプリケーション識別手段は一連のフローを途中から受け取る場合がある。その場合、切替先のアプリケーション識別手段は、当該フローのアプリケーション識別結果を持たないため、当該フローに対する制御が実施できないおそれがある。
【０００７】
さらに、アプリケーション識別手段は、特定のユーザのフローをアプリケーションごとに分析し、その分析結果（例えば、パケット数のカウント結果等）を、所定期間ごとに、管理装置等に出力する場合がある。このような場合において上記の切り替えを行うと、切替元のアプリケーション識別手段が最後に分析結果を送信してから、切替先のアプリケーション識別手段が当該フローの分析を開始するまでの間の分析結果が欠落するおそれがある。つまり、フローの分析結果が正確でなくなるおそれがある。
【０００８】
また、上記の既存フローの制御およびフローの分析を正確に行うため、切替元のアプリケーション識別手段と切替先のアプリケーション識別手段との間で、上記のアプリケーション識別結果やフローの分析結果の情報の同期をとることも考えられる。しかし、切替元のアプリケーション識別手段に対し切替先のアプリケーション識別手段を１対１で配備しなくてはならず、多くのリソースを要する。また、上記の情報同期はアプリケーション識別手段における処理負荷が大きいため、フローの制御およびフローの分析に影響を与えるおそれがある。
【０００９】
そこで、本発明は、前記した問題を解決し、アプリケーション識別手段の切り替えを行う場合に、切替元と切替先のアプリケーション識別手段の間で情報同期を実施することなく、既存フローの制御およびフローの分析を正確に行うことを課題とする。
【課題を解決するための手段】
【００１０】
前記した課題を解決するため、本発明は、ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置であって、各フローの転送先のアプリケーション識別装置を示したフローテーブルと、外部装置から指定された各フローの転送先のアプリケーション識別装置を示した転送ポリシーテーブルとを記憶する記憶部と、前記転送ポリシーテーブルに該当するフローを受信したとき、前記フローテーブルに前記受信したフローに関するエントリがあるか否かを判定する判定部と、前記判定部により前記フローテーブルに前記受信したフローに関するエントリがないと判定されたとき、前記受信したフローの転送先を、前記転送ポリシーテーブルに示される当該フローのアプリケーション識別装置としたエントリを前記フローテーブルに追加するフローテーブル更新部と、前記フローテーブルを参照して、前記受信したフローをアプリケーション識別装置へ転送する転送部とを備えることを特徴とする。
【００１１】
また、本発明は、ネットワークにおいて、ユーザ端末またはサーバから送信されるフローを所定のアプリケーション識別装置へ転送するパケットヘッダ識別制御装置を管理する管理装置であって、通信中のフローを示す通信中フロー情報と、各フローの転送先のアプリケーション識別装置を示したアプリケーション識別装置情報とを記憶する記憶部と、運用中のアプリケーション識別装置を他のアプリケーション識別装置へ切り替えるとき、前記アプリケーション識別装置情報および前記通信中フロー情報を参照して、前記運用中のアプリケーション識別装置を転送先とするフローの転送先を前記他のアプリケーション識別装置に変更する第１のポリシーと、前記運用中のアプリケーション識別装置を転送先とするフローのうち、通信中のフローの転送先を前記運用中のアプリケーション識別装置のままとする第２のポリシーとを作成し、前記第２のポリシーの優先度を前記第１のポリシーの優先度よりも高くして前記パケットヘッダ識別制御装置に設定するポリシー設定部とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、切替元と切替先のアプリケーション識別手段の切り替えを行う場合に、アプリケーション識別手段の間で情報同期を実施することなく、既存フローの制御およびフローの分析を正確に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態のシステムの構成の一例を示す図である。
【図２】図２は、図１のパケットヘッダ識別制御装置の構成を示す図である。
【図３】図３は、図２の転送ポリシーテーブルの一例を示す図である。
【図４】図４は、図１のポリシー管理装置の構成を示す図である。
【図５】図５は、図４の制御ポリシー情報の一例を示す図である。
【図６】図６は、図４のアプリケーション識別装置情報の一例を示す図である。
【図７】図７は、図４のポリシー管理装置の処理手順を示すフローチャートである。
【図８】図８は、図２のパケットヘッダ識別制御装置の処理手順を示すフローチャートである。
【図９】図９は、第２の実施形態のシステムの構成の一例を示す図である。
【図１０】図１０は、図９のポリシー管理装置の構成を示す図である。
【図１１】図１１は、図１０の通信中フロー情報の一例を示す図である。
【図１２】図１２は、図９のパケットヘッダ識別制御装置の一例を示す図である。
【図１３】図１３は、図１２のフローテーブルの一例を示す図である。
【図１４】図１４は、図１０のポリシー管理装置の処理手順を示すフローチャートである。
【図１５】図１５は、第２の実施形態のシステムの処理手順の一例を示す図である。
【図１６】図１６は、図１０のポリシー管理装置の処理手順を示すフローチャートである。
【図１７】図１７は、図１６のＳ２０における処理手順を示すフローチャートである。
【図１８】図１８は、第１の実施形態および第２の実施形態のシステムの具体例を説明するための図である。
【図１９】図１９は、第１の実施形態のシステムの具体例における転送ポリシーテーブルおよびフローテーブルの一例を示す図である。
【図２０】図２０は、第１の実施形態のシステムの具体例における処理手順の一例を示す図である。
【図２１】図２１は、第２の実施形態のシステムの具体例における処理手順の一例を示す図である。
【図２２】図２２は、制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の実施形態を第１の実施形態および第２の実施形態に分けて説明する。なお、本発明は本実施形態に限定されない。
【００１５】
（第１の実施形態）
（概要）
図１を用いて第１の実施形態のシステムの概要を説明する。システムは、図１に示すように、パケットヘッダ識別制御装置１０と、アプリケーション識別装置２０（２０Ａ，２０Ｂ）と、ポリシー管理装置３０とを備える。これらの装置は、インターネット等のネットワークにより接続される。各装置の台数は、図１に示す台数に限定されない。
【００１６】
パケットヘッダ識別制御装置１０は、ユーザ端末（図示省略）やサーバ（例えば、サーバα，β）から受信したフローのパケットのヘッダ情報を参照して、このフローに対する制御や分析を行うアプリケーション識別装置２０へフローを転送する。ここでのフローの転送先のアプリケーション識別装置２０は、パケットヘッダ識別制御装置１０の備えるフローテーブル１２２を参照することで特定される。
【００１７】
パケットヘッダ識別制御装置１０は、フローＡを受信したとき、このフローのパケットのヘッダ情報における５tuple情報（送信元ＩＰアドレス（src  IP）、宛先アドレス(dst  IP)、送信元ポート番号（src  port）、宛先ポート番号(dst  port)、プロトコル番号(protocol)の組み合わせ）からフローを特定し、フローテーブル１２２に示される転送先アプリケーション識別装置２０へフローを転送する。例えば、パケットヘッダ識別制御装置１０は、５tuple情報＝ａ´のフローＡをアプリケーション識別装置２０Ａへ転送する。またパケットヘッダ識別制御装置１０は転送ポリシーテーブル１２１を備える。この転送ポリシーテーブル１２１は、パケットヘッダ識別制御装置１０における転送ポリシーを示した情報であり、パケットヘッダ識別制御装置１０が新たなフローのパケットを受信したときには、この転送ポリシーに従ったフローの転送を行う（詳細は後記）。なお、転送ポリシーテーブル１２１におけるフローの識別情報（「フロー」の情報）は、フローテーブル１２２におけるフローの識別情報（「フロー」の情報）を包含するよう設定される。例えば、転送ポリシーテーブル１２１には５tuple情報＝ａ（例えば、src  IP＝Ａ、dst  IP＝any（なんでもよい））のエントリが設定され、フローテーブル１２２には５tuple情報＝ａ´（例えば、src  IP＝Ａ、dst  IP＝Ｂ）のエントリが設定される。
【００１８】
アプリケーション識別装置２０は、パケットヘッダ識別制御装置１０から転送されたフローに対する制御（例えば、フローの遮断やシェーピング、フローの分析等）を行う。
【００１９】
ポリシー管理装置３０は、パケットヘッダ識別制御装置１０やアプリケーション識別装置２０に対する制御を行う。このポリシー管理装置３０は、アプリケーション識別装置２０で行う制御内容を示す制御ポリシー情報３２１と、各フローが収容されるアプリケーション識別装置２０を示すアプリケーション識別装置情報３２２とを備え、制御ポリシー情報３２１に基づき、アプリケーション識別装置２０に対する制御内容を指示し、アプリケーション識別装置情報３２２に基づき、パケットヘッダ識別制御装置１０に対し、転送ポリシーの設定変更を指示する。
【００２０】
例えば、特定のフロー（５tuple情報＝ａおよび５tuple情報＝ｂ）の転送先をアプリケーション識別装置２０ＡとするポリシールールＶおよびポリシールールＷが、パケットヘッダ識別制御装置１０の転送ポリシーテーブル１２１の情報として事前のエントリされている場合において、システム内で運用中のアプリケーション識別装置２０Ａをアプリケーション識別装置２０Ｂに切り替えるとき、ポリシー管理装置３０は、パケットヘッダ識別制御装置１０に対し、アプリケーション識別装置２０Ａを転送先とするフロー（フローＡ，Ｂ）について、今後はアプリケーション識別装置２０Ｂに転送するよう転送ポリシーの設定変更を行う。
【００２１】
これを受けてパケットヘッダ識別制御装置１０は、転送ポリシーテーブル１２１の情報を更新する。例えば、転送ポリシーテーブル１２１におけるポリシールールＶ（５tuple情報＝ａ）およびポリシールールＷ（５tuple情報＝ｂ）の転送先のアプリケーション識別装置２０を「２０Ａ」から「２０Ｂ」に変更する。
【００２２】
そして、パケットヘッダ識別制御装置１０は新規なフローのパケットを受信し、かつ、このパケットが転送ポリシーテーブル１２１に示されるフローのパケットであるとき、この転送ポリシーテーブル１２１に示される転送ポリシーに従い、フローテーブル１２２を更新する。
【００２３】
具体的には、パケットヘッダ識別制御装置１０は、受信したフローについて転送ポリシーテーブル１２１に記載されているが、フローテーブル１２２にはないフロー（例えば、新規のフローＢ）のエントリをフローテーブル１２２に追加する。そして、パケットヘッダ識別制御装置１０はこの追加したエントリに基づき、受信したフローを転送する。例えば、新規なフローＢをアプリケーション識別装置２０Ｂへ転送する。
【００２４】
これにより、パケットヘッダ識別制御装置１０は、新規に受信したフロー（例えば、フローＢ）については、切替先のアプリケーション識別装置２０Ｂへ転送する一方で、切替元のアプリケーション識別装置２０Ａへ転送中のフロー（例えば、既存のフローＡ）については、転送先を切替元のアプリケーション識別装置２０Ａのままとすることができる。これにより、システムは、アプリケーション識別装置２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【００２５】
（パケットヘッダ識別制御装置）
次に、図２を用いてパケットヘッダ識別制御装置１０を詳細に説明する。図２に示すように、パケットヘッダ識別制御装置１０は、入出力部１１と、記憶部１２と、制御部１３とを備える。
【００２６】
入出力部１１は、ポリシー管理装置３０やアプリケーション識別装置２０との間での各種データの送受信を司る。
【００２７】
記憶部１２は、転送ポリシーテーブル１２１と、フローテーブル１２２と、ルーティングテーブル１２３とを記憶する。
【００２８】
転送ポリシーテーブル１２１は、パケットヘッダ識別制御装置１０におけるフローの転送ポリシーを示す情報である。この転送ポリシーは、アプリケーション識別装置２０への転送対象とするフローと、当該フローの転送先となる最新のアプリケーション識別装置２０、つまり、当該フローの切替先のアプリケーション識別装置２０とを示す情報である。なお、転送ポリシーテーブル１２１における各転送ポリシーは、ポリシー管理装置３０により転送ポリシーテーブル更新部１３３（後記）経由で更新される。
【００２９】
例えば、図３に示す転送ポリシーテーブル１２１は、ポリシールールＶ（５tuple情報＝ａ）およびポリシールールＷ（５tuple情報＝ｂ）の切替先のアプリケーション識別装置２０は「２０Ｂ」であることを示す。
【００３０】
図２のフローテーブル１２２は、フローのパケットのヘッダ情報（例えば、５tuple情報）ごとに、当該ヘッダ情報を持つフローの転送先のアプリケーション識別装置２０を示した情報である。
【００３１】
例えば、図１に示すフローテーブル１２２は、フローＡ（５tuple情報＝ａ´）の転送先のアプリケーション識別装置２０は「２０Ａ」であり、フローＢ（５tuple情報＝ｂ´）の転送先のアプリケーション識別装置２０は「２０Ｂ」であることを示す。
【００３２】
ルーティングテーブル１２３は、転送部１３１が通常のルーティングを行う際に参照される情報である。例えば、転送部１３１は、転送ポリシーテーブル１２１に登録されていないヘッダ情報を持つパケットを受信したとき、このルーティングテーブル１２３を用いてルーティングを行う。
【００３３】
制御部１３は、パケット受信部１３０と、転送部１３１と、判定部１３２と、転送ポリシーテーブル更新部１３３と、フローテーブル更新部１３４とを備える。
【００３４】
パケット受信部１３０は、入出力部１１経由でユーザ端末（図示省略）等からのパケットを受信する。
【００３５】
判定部１３２は、パケット受信部１３０で受信したパケットが、転送ポリシーテーブル１２１に記載されたフローのパケットであるか否かを判定する。また、判定部１３２は、受信したパケットが、転送ポリシーテーブル１２１に記載されたフローのパケットであるとき、フローテーブル１２２に当該フローに関するエントリがあるか否かを判定する。
【００３６】
転送部１３１は、判定部１３２により、フローテーブル１２２に当該フロー（受信したフロー）に関するエントリがあると判定されたとき、当該フローを入出力部１１経由で、フローテーブル１２２に示される当該フローの転送先のアプリケーション識別装置２０へ転送する。また、転送部１３１は、判定部１３２によりパケット受信部１３０で受信したパケットが、転送ポリシーテーブル１２１に記載されたフローのパケットではないと判定されたとき、ルーティングテーブル１２３を用いて当該パケットのルーティングを行う。
【００３７】
転送ポリシーテーブル更新部１３３は、ポリシー管理装置３０からの転送ポリシーの設定変更の指示に基づき、転送ポリシーテーブル１２１を更新する。例えば、転送ポリシーテーブル更新部１３３は、ポリシー管理装置３０からの転送ポリシーの設定変更の指示に基づき、図１に示すように、転送ポリシーテーブル１２１における、ポリシールールＶ（５tuple情報＝ａ）およびポリシールールＷ（５tuple情報＝ｂ）の切替先のアプリケーション識別装置２０を「２０Ａ」から「２０Ｂ」に更新する。
【００３８】
フローテーブル更新部１３４は、判定部１３２によりフローテーブル１２２に当該フロー（受信したフロー）に関するエントリがないと判定されたとき、当該フローのヘッダ情報と、転送ポリシーテーブル１２１における当該フローの転送先のアプリケーション識別装置２０の識別情報とを対応付けたエントリをフローテーブル１２２に追加する。
【００３９】
例えば、フローテーブル１２２に、フローＢに関するエントリがないと判定されたとき、フローＢのヘッダ情報（５tuple情報＝ｂ´）と、転送ポリシーテーブル１２１（図３参照）におけるポリシールールＷの転送先のアプリケーション識別装置２０の識別情報（「２０Ｂ」）とを対応付けたエントリをフローテーブル１２２に追加する。
【００４０】
（ポリシー管理装置）
次に、図４を用いて、ポリシー管理装置３０を詳細に説明する。図４に示すように、ポリシー管理装置３０は、入出力部３１と、記憶部３２と、制御部３３とを備える。
【００４１】
入出力部３１は、パケットヘッダ識別制御装置１０やアプリケーション識別装置２０との間での各種データの送受信を司る。
【００４２】
記憶部３２は、制御ポリシー情報３２１と、アプリケーション識別装置情報３２２とを記憶する。
【００４３】
制御ポリシー情報３２１は、各アプリケーション識別装置２０で行う制御内容を示す情報である。例えば、図５に示す制御ポリシー情報３２１は、アプリケーション識別装置２０Ａ（「２０Ａ」）において、識別対象アプリケーション「Ｘ」に合致するフローを「遮断」し、アプリケーション識別装置２０Ｂ（「２０Ｂ」）において、識別対象アプリケーション「ＸＸ」に合致するフローを「カウント」をすることを示す。
【００４４】
図４のアプリケーション識別装置情報３２２は、各フローの収容先（転送先）のアプリケーション識別装置２０を示す情報である。例えば、図６に示すアプリケーション識別装置情報３２２は、５tuple情報＝ａのフローはアプリケーション識別装置２０Ａ（「２０Ａ」）に収容され、５tuple情報＝ｂのフローはアプリケーション識別装置２０Ｂ（「２０Ｂ」）に収容されることを示す。
【００４５】
図４の制御部３３は、入力受付部３３１と、情報更新部３３２と、制御ポリシー設定部３３３と、転送ポリシー設定部３３４とを備える。
【００４６】
入力受付部３３１は、アプリケーション識別装置２０の切り替え指示の入力を受け付ける。例えば、入力受付部３３１は、アプリケーション識別装置２０Ａを収容先とするフローをアプリケーション識別装置２０Ｂへ切り替える旨の情報の入力を受け付けると、この情報を情報更新部３３２へ出力する。また、入力受付部３３１は、制御ポリシー情報３２１やアプリケーション識別装置情報３２２の更新等の情報を受け付けると、この情報を情報更新部３３２へ出力する。
【００４７】
情報更新部３３２は、入力受付部３３１経由で受け取った制御ポリシー情報３２１やアプリケーション識別装置情報３２２の更新の情報に基づき、制御ポリシー情報３２１やアプリケーション識別装置情報３２２を更新する。例えば、情報更新部３３２は、アプリケーション識別装置２０Ａを収容先とするフローをアプリケーション識別装置２０Ｂへ切り替える旨の情報に基づき、アプリケーション識別装置情報３２２において、アプリケーション識別装置２０Ａを収容先とするフローについて、当該フローの収容先をアプリケーション識別装置２０Ｂに更新する。また、情報更新部３３２は、制御ポリシー情報３２１の、アプリケーション識別装置２０Ａにおける当該フローのポリシーを、アプリケーション識別装置２０Ｂにおけるポリシーにも設定する。
【００４８】
制御ポリシー設定部３３３は、制御ポリシー情報３２１に示される各アプリケーション識別装置２０の制御ポリシーを各アプリケーション識別装置２０に対し設定する。例えば、制御ポリシー設定部３３３は、制御ポリシー情報３２１におけるアプリケーション識別装置２０Ａ，２０Ｂの制御ポリシーが更新されたとき、この更新後の制御ポリシーを各アプリケーション識別装置２０Ａ，２０Ｂに対し設定する。
【００４９】
転送ポリシー設定部３３４は、パケットヘッダ識別制御装置１０に対し転送ポリシーテーブル１２１の設定を行う。例えば、転送ポリシー設定部３３４は、アプリケーション識別装置情報３２２において、ポリシールールＶ，Ｗの転送先のアプリケーション識別装置２０が「２０Ａ」から「２０Ｂ」に更新されたとき、転送ポリシーテーブル１２１におけるポリシールールＶ，Ｗの転送先のアプリケーション識別装置２０を「２０Ａ」から「２０Ｂ」へ変更する旨の指示を行う。
【００５０】
以上説明したシステムによれば、アプリケーション識別装置２０の切り替えがあったとき、パケットヘッダ識別制御装置１０は既存のフローについては転送先を切替元のアプリケーション識別装置２０のままとし、新規のフローについては転送先を切替先のアプリケーション識別装置２０とする。その結果、システムは、アプリケーション識別装置２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【００５１】
（処理手順）
次に、図７を用いて、ポリシー管理装置３０の処理手順を説明する。まず、ポリシー管理装置３０が、入力受付部３３１経由でアプリケーション識別装置２０の切り替え指示を受け付けると（Ｓ１）、情報更新部３３２は、アプリケーション識別装置情報３２２を更新する（Ｓ２）。また、情報更新部３３２は、制御ポリシー情報３２１を更新する（Ｓ３）。
【００５２】
例えば、入力受付部３３１がアプリケーション識別装置２０Ａを収容先とするフローをアプリケーション識別装置２０Ｂへ切り替える旨の指示を受け付けたとき、情報更新部３３２はアプリケーション識別装置情報３２２におけるアプリケーション識別装置２０Ａを収容先とするフロー（ポリシールールＶ，Ｗに合致するフロー）について、当該フローの収容先をアプリケーション識別装置２０Ｂに更新する。また、情報更新部３３２は、制御ポリシー情報３２１における、アプリケーション識別装置２０Ａにおける当該フローのポリシーを、アプリケーション識別装置２０Ｂにおけるポリシーにも設定する。
【００５３】
次に、転送ポリシー設定部３３４は、パケットヘッダ識別制御装置１０に対し転送ポリシーテーブル１２１の設定を行う（Ｓ４）。例えば、アプリケーション識別装置情報３２２において、ポリシールールＶ，Ｗの転送先のアプリケーション識別装置２０が「２０Ａ」から「２０Ｂ」に更新されたとき、転送ポリシー設定部３３４は、転送ポリシーテーブル１２１におけるポリシールールＶ，Ｗの転送先のアプリケーション識別装置２０を「２０Ａ」から「２０Ｂ」へ変更する旨の指示を行う。
【００５４】
次に、図８を用いて、パケットヘッダ識別制御装置１０の処理手順を説明する。まず、パケットヘッダ識別制御装置１０のパケット受信部１３０がパケットを受信すると（Ｓ６）、判定部１３２は、パケット受信部１３０で受信したパケットが、転送ポリシーに合致するか否かを判定する（Ｓ７）。すなわち、判定部１３２は、受信したパケットが転送ポリシーテーブル１２１に記載されたフローのパケットであるか否かを判定する。ここで、判定部１３２が、パケット受信部１３０で受信したパケットが、転送ポリシーに合致しないと判定したとき（Ｓ７でＮｏ）、転送部１３１はルーティングテーブル１２３に基づきパケットを転送する（Ｓ８）。
【００５５】
一方、判定部１３２が、パケット受信部１３０で受信したパケットが、転送ポリシーに合致すると判定したとき（Ｓ７でＹｅｓ）、フローテーブル１２２に当該パケットに関するエントリが存在するか否かを判定する（Ｓ９）。ここで、判定部１３２がフローテーブル１２２に当該パケットに関するエントリが存在すると判定したとき（Ｓ９でＹｅｓ）、転送部１３１はフローテーブル１２２に基づきパケット（フロー）を転送する（Ｓ１０）。
【００５６】
一方、判定部１３２がフローテーブル１２２に当該パケットに関するエントリが存在しないと判定したとき（Ｓ９でＮｏ）、フローテーブル更新部１３４はフローテーブル１２２に当該パケットのエントリを追加する（Ｓ１１）、そして、転送部１３１は当該パケットをフローテーブル１２２（つまり、エントリ追加後のフローテーブル１２２）に基づき転送する（Ｓ１０）。
【００５７】
例えば、パケットヘッダ識別制御装置１０が新規のフローのパケットを受信したとき、このパケットに関するエントリはフローテーブル１２２に存在しないので、転送ポリシーテーブル１２１を参照して、このパケット（フロー）の転送先のアプリケーション識別装置２０を特定する。そして、パケットヘッダ識別制御装置１０は、当該パケットのヘッダ情報（例えば、５tuple情報）と、特定したアプリケーション識別装置２０を転送先として対応付けたエントリをフローテーブル１２２に追加する。そして、パケットヘッダ識別制御装置１０は受信したパケットについて、この追加したエントリに基づき転送する。また、パケットヘッダ識別制御装置１０は、以降、この受信したパケットと同じヘッダ情報を持つパケット（フロー）について、エントリ追加後のフローテーブル１２２を参照してアプリケーション識別装置２０への転送を行う。
【００５８】
以上説明したシステムによれば、アプリケーション識別装置２０の切り替えがあったとき、パケットヘッダ識別制御装置１０は既存のフローについては切替元のアプリケーション識別装置２０に転送し、新規のフローについては切替先のアプリケーション識別装置２０に転送する。その結果、システムは、アプリケーション識別装置２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【００５９】
（第２の実施形態）
（概要）
図９を用いて第２の実施形態のシステムの概要を説明する。前記した第１の実施形態と同じ構成は、同じ符号を付して説明を省略する。第２の実施形態のシステムは、図９に示すように、パケットヘッダ識別制御装置２１０と、アプリケーション識別装置２０（２０Ａ，２０Ｂ）と、ポリシー管理装置２３０とを備える。これらの装置は、インターネット等のネットワークにより接続される。各装置の台数は、図９に示す台数に限定されない。
【００６０】
第２の実施形態のシステムは、ポリシー管理装置２３０が通信中フロー情報３２３により、どのフローが通信中（転送中）であるかを把握する。そして、システム内のアプリケーション識別装置２０の切り替えを行う際には、パケットヘッダ識別制御装置２１０に対し、切替元のアプリケーション識別装置２０を収容先とするフローのうち、切替元のアプリケーション識別装置２０を収容先とするフローの転送先については転送先を切替先のアプリケーション識別装置２０とするポリシー（第１のポリシー）を設定する。また、ポリシー管理装置２３０は、切替元のアプリケーション識別装置２０を収容先とするフローのうち、通信中のフローについては、転送先を切替元のアプリケーション識別装置２０のままとするポリシー（第２のポリシー）を設定する。ここで、ポリシー管理装置２３０は第２のポリシーの優先度を第１ポリシーの優先度よりも高く設定する。
【００６１】
このような設定によりパケットヘッダ識別制御装置２１０は、フローの転送先の決定において、第１のポリシーよりも第２のポリシーを優先的に適用する。その結果、パケットヘッダ識別制御装置２１０は、切替元のアプリケーション識別装置２０を収容先とするフローのうち、通信中のフローについては転送先を切替元のアプリケーション識別装置２０のままとし、それ以外のフロー（新規のフロー）については転送先を切替先のアプリケーション識別装置２０とする。
【００６２】
以下、アプリケーション識別装置２０Ａを、アプリケーション識別装置２０Ｂへの切り替えを行う場合を例に説明する。なお、アプリケーション識別装置２０Ａが収容するフローはユーザＸのフローＡ，Ｂである。
【００６３】
この場合において、例えば、ポリシー管理装置２３０は、ユーザＸのフローＡが通信中のフローであることを把握すると、図９に示すように、パケットヘッダ識別制御装置２１０に対し、以下のポリシーの追加設定を行う。すなわち、ポリシー管理装置２３０は、パケットヘッダ識別制御装置２１０に対し、ユーザＸの既存フロー（例えば、フローＡ）についてはアプリケーション識別装置２０Ａに転送するというポリシー（第２のポリシー）の設定を高優先度で適用するよう設定し、ユーザＸのフロー（全フロー）をアプリケーション識別装置２０Ｂに転送するというポリシー（第１のポリシー）を低優先度で適用するよう設定する。また、ポリシー管理装置２３０は、ユーザＸのフローをアプリケーション識別装置２０Ａに転送するというポリシーの削除設定を行う。
【００６４】
このようなポリシーの設定により、パケットヘッダ識別制御装置２１０は、ユーザＸのフローＡ（既存のフロー）については転送先をアプリケーション識別装置２０Ａのままとし、ユーザＸのフローＢ（新規のフロー）については転送先をアプリケーション識別装置２０Ｂとする。
【００６５】
（ポリシー管理装置）
次に、図１０を用いてポリシー管理装置２３０を説明する。ここでは、第１の実施形態のポリシー管理装置３０と異なる構成を説明する。
【００６６】
記憶部２３２の通信中フロー情報３２３は、通信中のフローを示した情報である。例えば、図１１に示す通信中フロー情報３２３は、通信中フローがユーザＸのフローＡであることを示す。なお、この通信中フロー情報３２３は、図１１に示すように、通信中ではないフローの情報（通信無フロー）の情報を含んでいてもよい。例えば、図１１に示す通信中フロー情報３２３において通信中ではないフローはユーザＹのフローであることを示す。
【００６７】
図１０の制御部２３３の通信情報受信部３３０は、アプリケーション識別装置２０からフローの通信開始通知とフローの通信終了通知とを受信する。そして、通信情報受信部３３０は、受信した通信開始通知および通信終了通知に基づき、通信中フロー情報３２３を更新する。例えば、通信情報受信部３３０は、通信開始通知を受信したが、まだ通信終了通知を受信していないフローについて通信中フロー情報３２３に通信中のフローとして記録する。
【００６８】
なお、フローの通信開始通知およびフローの通信終了通知は、例えば、アプリケーション識別装置２０から送信される通知を用いる。例えば、フローの通信開始通知は、アプリケーション識別装置２０において受信したフローのパケットのＬ７分析（ペイロード部の分析）を行い、当該フローが制御ポリシーに合致し、かつ、新規フローであると判断したときに、ポリシー管理装置２３０へ送信される。このフローの通信開始通知は、フローの５tuple情報とユーザ識別子とを含む。また、フローの通信終了通知は、例えば、アプリケーション識別装置２０が当該フローの最終パケットを受信したとき、ポリシー管理装置２３０へ送信される。このフローの通信終了通知も、当該フローの５tuple情報とユーザ識別子とを含む。なお、ユーザ識別子は、例えば、フローの送信元のＩＰアドレス、ＭＡＣアドレス（Media  Access  Control  address）、ＩＭＳＩ（International  Mobile  Subscriber  Identity）番号、ユーザ回線に割り当てられたＶＬＡＮ（Virtual  Local  Area  Network）  ＩＤ等を用いる。
【００６９】
ポリシー設定部３３５は、パケットヘッダ識別制御装置２１０に対するポリシーの設定を行う。具体的には、ポリシー設定部３３５は、入力受付部３３１においてアプリケーション識別装置２０の切り替えに関する情報を受け付けたとき、アプリケーション識別装置情報３２２および通信中フロー情報３２３を参照して、以下の処理を行う。
【００７０】
すなわち、ポリシー設定部３３５は、アプリケーション識別装置情報３２２において切替元のアプリケーション識別装置２０を収容先とするフローを特定する。そして、ポリシー設定部３３５は、この特定したフローの転送先を切替先のアプリケーション識別装置２０とする第１のポリシーを作成する。また、ポリシー設定部３３５は、通信中フロー情報３２３を参照して、切替元のアプリケーション識別装置２０を収容先とするフローのうち、通信中のフローの転送先を切替元のアプリケーション識別装置２０とする第２のポリシーを作成する。そして、ポリシー設定部３３５は、作成したポリシーのうち、第２のポリシーの優先度を第１のポリシーの優先度よりも高くしてパケットヘッダ識別制御装置２１０に設定する。また、ポリシー設定部３３５は、パケットヘッダ識別制御装置２１０における、フローの転送先を切替元のアプリケーション識別装置２０とするポリシーを削除する設定を行う。
【００７１】
（パケットヘッダ識別制御装置）
次に、図１２を用いて、パケットヘッダ識別制御装置２１０を説明する。ここでも、第１の実施形態のパケットヘッダ識別制御装置１０と異なる構成について説明する。
【００７２】
記憶部２３２のフローテーブル１２２ａは、フローのパケットのヘッダ情報（例えば、５tuple情報）ごとに、当該ヘッダ情報を持つフローの転送先のアプリケーション識別装置２０を示した情報である。このフローテーブル１２２ａは、それぞれの情報（エントリ）を適用するときの優先度に関する情報も含む。例えば、図１３の符号１２０１に示すフローテーブル１２２ａは、５tuple情報＝ｃ（ユーザＸのフロー）の転送先のアプリケーション識別装置２０は「２０Ａ」であり、その優先度は「２（高）」であることを示す。また、５tuple情報＝ｆ（ユーザＹのフロー）の転送先のアプリケーション識別装置２０は「２０Ｂ」であり、その優先度は「２（高）」であることを示す。
【００７３】
図１２の制御部２１３のフローテーブル更新部１３４ａは、ポリシー管理装置２３０からのポリシーの設定に基づき、フローテーブル１２２ａを更新する。
【００７４】
例えば、フローテーブル更新部１３４ａは、ポリシー管理装置２３０から、５tuple情報＝ｄ（ユーザＸのフローＡ）の転送先のアプリケーション識別装置２０は「２０Ａ」であり、その優先度は「２（高）」であるポリシーと、５tuple情報＝ｅ（ユーザＸの全フロー）の転送先のアプリケーション識別装置２０は「２０Ｂ」であり、その優先度は「１（低い）」であるポリシーの設定と、フローの転送先のアプリケーション識別装置２０を「２０Ａ」とするポリシーを削除する設定を受け付けた場合、これに基づき、フローテーブル１２２ａを図１３の符号１２０１に示す状態から符号１２０２に示す状態に更新する。
【００７５】
すなわち、フローテーブル更新部１３４ａは、５tuple情報＝ｄ（ユーザＸのフローＡ）の転送先のアプリケーション識別装置２０は「２０Ａ」であり、その優先度は「２（高）」であるというエントリと、５tuple情報＝ｅ（ユーザＸの全フロー）の転送先のアプリケーション識別装置２０は「２０Ｂ」であり、その優先度は「１（低い）」であるというエントリをフローテーブル１２２ａに追加し、５tuple情報＝ｃ（ユーザＸ）の転送先のアプリケーション識別装置２０は「２０Ａ」であり、優先度は「２（高）」であるというエントリをフローテーブル１２２ａから削除する。
【００７６】
このようにしてフローテーブル１２２ａが更新され、転送部１３１が、ユーザＸのフローＡを受信した場合を考える。この場合、フローテーブル１２２ａには、ユーザＸのフローＡのヘッダに関するエントリが２つ（図１３の符号１２０３に示すユーザＸのフローＡに関するエントリと符号１２０４に示すユーザＸの全フローに関するエントリ）があるが、これらのうち、より優先度の高いエントリ（図１３の符号１２０３に示すエントリ）を適用し、フローを転送する。すなわち、この場合、転送部１３１は、ユーザＸのフローＡを「２０Ａ」のアプリケーション識別装置２０へ転送し、ユーザＸの他のフロー（例えば、図９のフローＢ）は「２０Ａ」のアプリケーション識別装置２０へ転送する。
【００７７】
以上説明したシステムによれば、アプリケーション識別装置２０の切り替えがあったとき、パケットヘッダ識別制御装置２１０は既存のフローについては転送先を切替元のアプリケーション識別装置２０のままとし、新規のフローについては転送先を切替先のアプリケーション識別装置２０とする。その結果、システムは、アプリケーション識別装置２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【００７８】
（処理手順）
次に、図１４〜図１７を用いて、ポリシー管理装置２３０の処理手順を説明する。
【００７９】
まず、図１４を用いて、ポリシー管理装置２３０における通信中フロー情報３２３の更新処理を説明する。ポリシー管理装置２３０の通信情報受信部３３０は、アプリケーション識別装置２０からフローの通信開始通知または通信終了通知を受信すると（Ｓ１１でＹｅｓ）、これに基づき通信中フロー情報３２３を更新する（Ｓ１２）。つまり、通信情報受信部３３０は、通信中フロー情報３２３において、通信開始通知を受信し、通信終了通知を受信していないフローを「通信中」とし、それ以外のフローを「通信無」として記録する。また、ポリシー管理装置２３０の通信情報受信部３３０は、アプリケーション識別装置２０からフローの通信開始通知も通信終了通知も受信していないとき（Ｓ１１でＮｏ）、Ｓ１１へ戻る。
【００８０】
この通信中フロー情報の更新の具体例を、図１５を参照しながら説明する。パケットヘッダ識別制御装置２１０がアプリケーション識別装置２０Ａに対しユーザＸのフローＡの転送を開始すると（Ｓ３１）、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＸのフローＡの通信開始通知を受信し（Ｓ３２）、通信中フロー情報３２３における通信中フローがユーザＸのフローＡであり、通信無ユーザがユーザＹである旨を記録する（符号１７１参照）。その後、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＸのフローＡの通信終了通知を受信すると（Ｓ３３）、この通知に基づき、通信中フロー情報３２３に、通信中フローはなく、通信無ユーザがユーザＸ，Ｙである旨を記録する（符号１７２参照）。
【００８１】
次に、パケットヘッダ識別制御装置２１０がアプリケーション識別装置２０Ａに対しユーザＹのフローＢを転送すると（Ｓ３４）、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＹのフローＢの通信開始通知を受信し（Ｓ３５）、この通知に基づき、通信中フロー情報３２３に、通信中フローがユーザＹのフローＢであり、通信無ユーザがユーザＸである旨を記録する（符号１７３参照）。
【００８２】
その後、パケットヘッダ識別制御装置２１０がアプリケーション識別装置２０Ａに対し、ユーザＹのフローＢに加え、ユーザＹのフローＣの転送を開始すると（Ｓ３６）、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＹのフローＣの通信開始通知を受信し（Ｓ３７）、この通知に基づき、通信中フロー情報３２３に、通信中フローはユーザＹのフローＢおよびユーザＹのフローＣであり、通信無ユーザがユーザＸである旨を記録する（符号１７４参照）。
【００８３】
次に、パケットヘッダ識別制御装置２１０がアプリケーション識別装置２０ＡへのユーザＹのフローＣの転送を終了し、ユーザＹのフローＢのみ転送するようになると（Ｓ３８）、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＹのフローＣの通信終了通知を受信し（Ｓ３９）、この通知に基づき、通信中フロー情報３２３に、通信中フローはユーザＹのフローＢであり、通信無ユーザがユーザＸである旨を記録する（符号１７５参照）。
【００８４】
その後、パケットヘッダ識別制御装置２１０がアプリケーション識別装置２０ＡへのユーザＹのフローＢの転送も終了すると、ポリシー管理装置２３０の通信情報受信部３３０はアプリケーション識別装置２０ＡからユーザＹのフローＢの通信終了通知を受信し（Ｓ４０）、通信中フロー情報３２３に、通信中フローはなく、通信無ユーザがユーザＸ，Ｙである旨を記録する（符号１７６参照）。
【００８５】
このように、ポリシー管理装置２３０はアプリケーション識別装置２０からの各フローの通信開始通知および通信終了通知に基づき、通信中フロー情報３２３を更新する。
【００８６】
次に、図１６を用いて、ポリシー管理装置２３０がアプリケーション識別装置２０の切り替え指示を受け付けたときの処理手順を説明する。
【００８７】
ポリシー管理装置２３０の入力受付部３３１がアプリケーション識別装置２０の切り替え指示を受け付けると（図１６のＳ１）、ポリシー管理装置２３０は、前記した図７のＳ２と同様にアプリケーション識別装置情報３２２の更新（Ｓ２）と、図７のＳ３と同様に制御ポリシー情報３２１の更新（Ｓ３）とを行う。そして、ポリシー設定部３３５はパケットヘッダ識別制御装置２１０に対しポリシーの設定を行う（Ｓ２０）。
【００８８】
ここで、図１６のＳ２０におけるポリシー設定部３３５によるパケットヘッダ識別制御装置２１０へのポリシーの設定を、図１７を用いて詳細に説明する。
【００８９】
まず、ポリシー設定部３３５は、アプリケーション識別装置情報３２２において切替元のアプリケーション識別装置２０を収容先（転送先）とするフローを特定する（Ｓ２１）。
【００９０】
次に、ポリシー設定部３３５は、この特定したフロー（例えば、ユーザＸの全フロー）の転送先を切替先のアプリケーション識別装置２０とするポリシー（第１のポリシー）を作成し、優先度を「低」にする（Ｓ２２）。また、ポリシー設定部３３５は、通信中フロー情報３２３を参照して、Ｓ２１で特定したフローのうち、通信中のフロー（例えば、ユーザＸのフローＡ）の転送先を切替元のアプリケーション識別装置２０とするポリシー（第２のポリシー）を作成し、優先度を「高」にする（Ｓ２３）。
【００９１】
そして、ポリシー設定部３３５は、Ｓ２２およびＳ２３で作成したポリシーをパケットヘッダ識別制御装置２１０に設定する（Ｓ２４）。また、ポリシー設定部３３５は、パケットヘッダ識別制御装置２１０に、Ｓ２１で特定したフロー（例えば、ユーザＸの全フロー）の転送先を切替元のアプリケーション識別装置２０とするポリシーを削除する設定を行う（Ｓ２５）。
【００９２】
このような設定を受けたパケットヘッダ識別制御装置２１０は、例えば、フローテーブル１２２ａを図１３の符号１２０１に示す状態から、符号１２０２に示す状態に更新する。そして、パケットヘッダ識別制御装置２１０はこの更新後のフローテーブル１２２ａに基づきフローの転送先のアプリケーション識別装置２０を決定する。例えば、パケットヘッダ識別制御装置２１０は、ユーザＸのフローＡ（既存のフロー）については「２０Ａ」のアプリケーション識別装置２０へ転送する。また、ユーザＸのフローＡ以外の全フロー（例えば、新規のフローＢ）についてはアプリケーション識別装置２０Ｂへ転送する。
【００９３】
以上説明したシステムによれば、アプリケーション識別装置２０の切り替えがあったときでも、パケットヘッダ識別制御装置２１０は既存のフローについては切替元のアプリケーション識別装置２０に転送し、新規のフローについては切替先のアプリケーション識別装置２０に転送する。その結果、システムは、アプリケーション識別装置２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【００９４】
（具体例）
次に、第１の実施形態のシステムおよび第２の実施形態のシステムの具体例を、図１８を用いて説明する。ここでは、第１の実施形態のシステムが、アプリケーション識別装置２０の機能を有するＴＤＦ(Traffic  Detection  Function)３２０（３２０Ａ，３２０Ｂ）と、ポリシー管理装置３０の機能を有するＰＣＲＦ(Policy  Control  and  Charging  Rules  Function)３３０と、パケットヘッダ識別制御装置１０の機能を有するＰＣＥＦ(Policy  and  Charging  RuleEnforcement  Function)３１０とが、ネットワークにより相互に接続されるシステムにより実現される場合を例に説明する。なお、ネットワークにはサーバα、β、γが接続され、各ＴＤＦ３２０はＰＣＥＦ３１０経由で受け取ったサーバα、β、γへのフローの制御や分析を行うものとする。
【００９５】
（第１の実施形態のシステムの具体例）
まず、第１の実施形態のシステムの具体例を説明する。システムにおけるＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、転送ポリシーを設定する。ＰＣＥＦ３１０が保持する転送ポリシーテーブルの例を、図１８の符号１６０１に示す。符号１６０１に示す転送ポリシーテーブルはユーザＸおよびユーザＹのフローに関する転送ポリシーを示し、一行目の転送ポリシーは「src  IP＝ユーザＸ、dst  IP＝any、src  port＝any、dst  port＝any、protocol＝any」のフロー（つまり、ユーザＸからの全フロー）の転送先のＴＤＦ３２０は「３２０Ａ」であることを示す。また、二行目の転送ポリシーは「src  IP＝ユーザＹ、dst  IP＝any、src  port＝any、dst  port＝80、protocol＝6」のフロー（つまり、ユーザＹからの宛先ポート番号「８０」、プロトコル番号「６」のフロー）の転送先のＴＤＦ３２０も「３２０Ａ」であることを示す。
【００９６】
また、ＰＣＥＦ３１０が保持するフローテーブルの例を、符号１６０２に示す。符号１６０１に示すフローテーブルはフローＡ，Ｂ，Ｃに転送先のＴＤＦ３２０を示し、例えば、一行目はフローＡに関する情報であり「src  IP＝ユーザＸ、dst  IP＝サーバα、src  port＝50001、dst  port＝80、protocol＝6」のフローの転送先のＴＤＦ３２０は「３２０Ａ」であることを示す。
【００９７】
ＰＣＥＦ３１０は、フローのパケットを受信すると、この符号１６０１に示す転送ポリシーテーブルに合致するエントリが存在する場合は、符号１６０２に示すフローテーブルを参照して、このパケットの転送先のＴＤＦ３２０を決定する。一方、ＰＣＥＦ３１０はこの符号１６０１に示す転送ポリシーテーブルに合致するエントリが存在しない場合は、符号１６０１に示す転送ポリシーを参照して、符号１６０２に示すフローテーブルに当該パケットに関するエントリを追加する。
【００９８】
例えば、システムが、ＴＤＦ３２０Ａに収容される全てのユーザのフローをＴＤＦ３２０Ｂに切り替える場合を考える。この場合、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対してＴＤＦ３２０Ａに収容される全てのユーザ（例えば、ユーザＸ，Ｙ）のフローの転送先をＴＤＦ３２０Ｂに変更するよう指示する。この指示を受けたＰＣＥＦ３１０は、例えば、図１８の符号１６０１に示す転送ポリシーテーブルにおけるユーザ（ユーザＸ，Ｙ）のフローの転送先のＴＤＦ３２０を「３２０Ａ」から「３２０Ｂ」に変更し、転送ポリシーテーブルを図１９の符号１８０１に示す状態に更新する。
【００９９】
そして、ＰＣＥＦ３１０はユーザＸ，Ｙから新規のフローＤのパケット（「src  IP＝ユーザＸ、dst  IP＝サーバγ、src  port＝50003、dst  port＝8080、protocol＝6」）と、フローＥのパケット（「src  IP＝ユーザＹ、dst  IP＝サーバγ、src  port＝60004、dst  port＝80、protocol＝6」）を受信したとき、このフローＤ，Ｅは図１９の符号１８０１に示す転送ポリシーテーブルに合致するエントリがあるが、図１８の符号１６０２に示すフローテーブルには、フローＤ，Ｅのエントリはない。したがって、ＰＣＥＦ３１０は図１８の符号１６０２に示すフローテーブルにフローＤ，Ｅのエントリを追加し、フローテーブルを図１９の符号１８０２に示すに状態に更新する。そして、ＰＣＥＦ３１０はこの追加したエントリに基づくパケット（フロー）の転送を行う。
【０１００】
例えば、図２０に示すようにＰＣＥＦ３１０がＴＤＦ３２０ＡへユーザＸのフローＡと、ユーザＸのフローＢと、ユーザＹのフローＣを転送している状態において（Ｓ４１）、ＴＤＦ３２０の収容替え（つまり、ＴＤＦ３２０ＡからＴＤＦ３２０Ｂへの切り替え）を開始すると（Ｓ４２）、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、ユーザＸ，Ｙのフローの転送ポリシーの変更指示を行う（Ｓ４３）。例えば、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、ユーザＸ，Ｙのフローの転送先をＴＤＦ３２０Ｂに変更するよう指示する。
【０１０１】
これを受けたＰＣＥＦ３１０は転送ポリシーテーブルを変更し、ユーザＸ，Ｙの既存フロー（例えば、フローＡ，Ｂ，Ｃ）については転送先をＴＤＦ３２０Ａのままとし（Ｓ４４）、ユーザＸ，Ｙの新規フロー（例えば、フローＤ，Ｅ）を受信したときには、フローテーブルにエントリを追加し、転送先をＴＤＦ３２０Ｂとする（Ｓ４５）。そして、既存のフロー（例えば、フローＡ，Ｂ，Ｃ）の通信が全て終了した時点で、ユーザＸ，Ｙの全てのフローがＴＤＦ３２０Ｂに転送される状態となる。
【０１０２】
これにより、システムは、ＴＤＦ３２０の切り替えがあったとき、ＰＣＥＦ３１０は既存のフローについては転送先を切替元のＴＤＦ３２０Ａのままとし、新規のフローについては転送先を切替先のＴＤＦ３２０Ｂとする。その結果、システムは、ＴＤＦ３２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【０１０３】
（第２の実施形態の具体例）
次に、第２の実施形態のシステムの具体例を説明する。ここでは第２の実施形態のシステムが、アプリケーション識別装置２０の機能を有するＴＤＦ３２０と、ポリシー管理装置２３０の機能を有するＰＣＲＦ３３０と、パケットヘッダ識別制御装置２１０の機能を有するＰＣＥＦ３１０とが、ネットワークにより相互に接続される場合を例に説明する。システム構成は、図１８の場合と同様なので図示を省略する。
【０１０４】
例えば、ＴＤＦ３２０Ａは、新規フローの受信を検知すると，ＰＣＲＦ３３０に対しフローの通信開始通知として、Event-Trigger  AVPにapplication_startを設定したＣＣＲ（Credit  Control  Request）を送信する。また、ＴＤＦ３２０Ａは、フローの終了を検知すると、ＰＣＲＦ３３０に対しフローの通信終了通知として、Event-Trigger  AVPにapplication_stopを設定したＣＣＲを送信する。ＰＣＲＦ３３０は、受信したＣＣＲからユーザ識別子とフローの５tuple情報を取得し、通信中フロー情報３２３に記録する。
【０１０５】
そして、ＰＣＲＦ３３０はＰＣＥＦ３１０に対し、ＴＤＦ３２０Ａに収容されているユーザのフローをＴＤＦ３２０Ｂに切り替えるようポリシー（第１のポリシー）を優先度「低」で設定する。また、ＴＤＦ３２０Ａに収容されているユーザのうち、通信中のフローをＴＤＦ３２０Ａのままとするポリシー（第２のポリシー）を優先度「高」で設定する。
【０１０６】
システムの処理手順の例を、図２１を用いて説明する。ここでは、ＰＣＥＦ３１０がＴＤＦ３２０ＡへユーザＸのフローＥと、ユーザＹのフローＤと、ユーザＹのフローＣを転送している状態において、ＴＤＦ３２０の収容替え（つまり、ＴＤＦ３２０ＡからＴＤＦ３２０Ｂへの切り替え）を開始する場合を例に説明する。
【０１０７】
この場合、ＴＤＦ３２０Ａは、ＰＣＲＦ３３０へユーザＸのフローＥの通信開始をＣＣＲ（application_start，ユーザＸ-フローＥ）、ユーザＹのフローＤの通信開始をＣＣＲ（application_start，ユーザＹ-フローＤ）、ユーザＹのフローＣの通信開始をＣＣＲ（application_start，ユーザＹ-フローＣ）により通知する（Ｓ５１）。
【０１０８】
そして、ＰＣＲＦ３３０は、この受信したＣＣＲをもとに、通信中フロー情報３２３を符号２１０１のように更新する。つまり、ＰＣＲＦ３３０は、ＴＤＦ３２０Ａにおける通信中のフローはユーザＸのフローＥと、ユーザＹのフローＤと、ユーザＹのフローＣであり、通信無ユーザはユーザＺであるという情報を通信中フロー情報３２３に記録する。
【０１０９】
そして、ＴＤＦ３２０の収容替え（つまり、ＴＤＦ３２０ＡからＴＤＦ３２０Ｂへの切り替え）を開始すると（Ｓ５２）、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、ユーザＸのフローＥをＴＤＦ３２０Ａに転送するというポリシー設定について高優先で、ユーザＸのフローをＴＤＦ３２０Ｂに転送するというポリシー設定について低優先で追加設定し、ユーザＸのフローをＴＤＦ３２０Ａに転送するというポリシー設定について設定削除する（Ｓ５３）。これによりＰＣＥＦ３１０は、ユーザＸのフローＥについてはＴＤＦ３２０Ａに転送し（Ｓ５４）、ユーザＸの新規フロー（つまり、ユーザＸのフローＥ以外のフロー）についてはＴＤＦ３２０Ｂに転送する（Ｓ５５）。
【０１１０】
また、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、ユーザＹのフローＤをＴＤＦ３２０Ａに転送するというポリシー設定およびユーザＹのフローＣをＴＤＦ３２０Ａに転送するというポリシー設定について高優先で、ユーザＹのフローをＴＤＦ３２０Ｂに転送するというポリシー設定について低優先で追加設定し、ユーザＹのフローをＴＤＦ３２０Ａに転送するというポリシー設定について設定削除する（Ｓ５６）。これによりＰＣＥＦ３１０は、ユーザＹのフローＤ，ＣについてはＴＤＦ３２０Ａに転送し（Ｓ５７）、ユーザＹの新規フロー（つまり、ユーザＹのフローＤ，Ｃ以外のフロー）についてはＴＤＦ３２０Ｂに転送する（Ｓ５８）。
【０１１１】
さらに、ＰＣＲＦ３３０は、ＰＣＥＦ３１０に対し、ユーザＺのフローをＴＤＦ３２０Ｂに転送するというポリシー設定を設定し、また、ユーザＺのフローをＴＤＦ３２０Ａに転送するというポリシー設定について設定削除する（Ｓ５９）。これにより、ユーザＺの新規フローについてはＴＤＦ３２０Ｂに転送する（Ｓ６０）。
【０１１２】
これにより、ＴＤＦ３２０の切り替えがあったとき、ＰＣＥＦ３１０は既存のフロー（通信中のフロー）については転送先を切替元のＴＤＦ３２０Ａのままとし、新規のフローについては転送先を切替先のＴＤＦ３２０Ｂとする。その結果、システムは、ＴＤＦ３２０の切り替えを行った場合でも、既存フローの制御やフローの分析を正確に行うことができる。
【０１１３】
（その他の実施形態）
なお、前記した実施形態において、パケットヘッダ識別制御装置１０，２１０は、例えば、所定時間以上、既存のフロー（例えば、フローＡ）を受信しなくなったとき、フローテーブル１２２，１２２ａから当該フローのエントリを削除するようにしてもよい。このようにすることで、フローテーブル１２２，１２２ａに通信しなくなったフローに関するエントリが残り続けることがなくなるので、フローテーブル１２２，１２２ａ用いるメモリ容量を低減することができる。
【０１１４】
なお、前記した実施形態において、ポリシー管理装置３０，２３０は、切替元のアプリケーション識別装置２０に収容されるすべてのユーザのフローについて、切替先のアプリケーション識別装置２０に切り替えるか、それとも、一部のユーザのフローに切替先のアプリケーション識別装置２０に切り替えるかの指示入力を受け付け、パケットヘッダ識別制御装置１０，２１０に対し、指示されたユーザのフローのみを切替先のアプリケーション識別装置２０へ転送するようにしてもよい。これにより、システムは、収容先（転送先）のアプリケーション識別装置２０の変更が必要なフローのみを対象として収容先（転送先）のアプリケーション識別装置２０の変更を行うことができる。
【０１１５】
なお、前記した各実施形態において、ポリシー管理装置３０，２３０、パケットヘッダ識別制御装置１０，２１０およびアプリケーション識別装置２０はそれぞれ別個の装置である場合を例に説明したが、これに限定されない。例えば、パケットヘッダ識別制御装置１０，２１０がポリシー管理装置３０，２３０の機能を備えていてもよく、また、パケットヘッダ識別制御装置１０，２１０がアプリケーション識別装置２０の機能を備えていてもよい。
【０１１６】
（プログラム）
また、ポリシー管理装置３０，２３０やパケットヘッダ識別制御装置１０，２１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成し、実行することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、ポリシー管理装置３０，２３０やパケットヘッダ識別制御装置１０，２１０と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
【０１１７】
図２２は、制御プログラムを実行するコンピュータを示す図である。図２２に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０１１８】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０１１９】
ここで、図２２に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【０１２０】
また、制御プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明したポリシー管理装置３０，２３０やパケットヘッダ識別制御装置１０，２１０が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【０１２１】
また、制御プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【０１２２】
なお、制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１２３】
１０，２１０    パケットヘッダ識別制御装置
１１，３１  入出力部
１２，３２，２１２，２３２  記憶部
１３，３３，２１３，２３３  制御部
２０（２０Ａ，２０Ｂ）  アプリケーション識別装置
３０，２３０    ポリシー管理装置
１２１  転送ポリシーテーブル
１２２，１２２ａ  フローテーブル
１２３  ルーティングテーブル
１３０  パケット受信部
１３１  転送部
１３２  判定部
１３３  転送ポリシーテーブル更新部
１３４，１３４ａ  フローテーブル更新部
３２１  制御ポリシー情報
３２２  アプリケーション識別装置情報
３２３  通信中フロー情報
３３０  通信情報受信部
３３１  入力受付部
３３２  情報更新部
３３３  制御ポリシー設定部
３３４  転送ポリシー設定部
３３５  ポリシー設定部
【図１】
0006321496.tif 000002
【図２】
0006321496.tif 000003
【図３】
0006321496.tif 000004
【図４】
0006321496.tif 000005
【図５】
0006321496.tif 000006
【図６】
0006321496.tif 000007
【図７】
0006321496.tif 000008
【図８】
0006321496.tif 000009
【図９】
0006321496.tif 000010
【図１０】
0006321496.tif 000011
【図１１】
0006321496.tif 000012
【図１２】
0006321496.tif 000013
【図１３】
0006321496.tif 000014
【図１４】
0006321496.tif 000015
【図１５】
0006321496.tif 000016
【図１６】
0006321496.tif 000017
【図１７】
0006321496.tif 000018
【図１８】
0006321496.tif 000019
【図１９】
0006321496.tif 000020
【図２０】
0006321496.tif 000021
【図２１】
0006321496.tif 000022
【図２２】
0006321496.tif 000023