(57)【要約】【課題】フロー種別に応じた効率的なフロー制御を実現するDPI装置を提供することである。【解決手段】本発明の一態様は、複数のDPI装置を含む通信システムであって、各DPI装置は、入力フローに関する情報を管理するフロー判定部と、前記入力フローに適用されるポリシー情報と前記入力フローに関する情報とに基づきフロー制御を実行するフロー識別・制御部と、を有し、前記フロー識別・制御部は、入力フローが双方向で同一のDPI装置で処理される必要があるか否かの判定結果と、前記入力フローに適用されるポリシー情報があるか否かの判定結果とに応じてフロー制御を実行する通信システムに関する。【選択図】図９
2019029818.tif 000002
【特許請求の範囲】
【請求項１】
複数のDPI装置を含む通信システムであって、
各DPI装置は、
入力フローに関する情報を管理するフロー判定部と、
前記入力フローに適用されるポリシー情報と前記入力フローに関する情報とに基づきフロー制御を実行するフロー識別・制御部と、
を有し、
前記フロー識別・制御部は、入力フローが双方向で同一のDPI装置で処理される必要があるか否かの判定結果と、前記入力フローに適用されるポリシー情報があるか否かの判定結果とに応じてフロー制御を実行する通信システム。
【請求項２】
前記入力フローが双方向で同一のDPI装置で処理される必要があって、かつ、下りフローに適用されるポリシー情報がある場合、前記フロー識別・制御部は、前記下りフローを対応する上りフローが入力したDPI装置に転送する、請求項１記載の通信システム。
【請求項３】
前記入力フローが双方向で同一のDPI装置で処理される必要がなく、かつ、下りフローに適用されるポリシー情報がある場合、前記フロー判定部は、対応する上りフローが入力したDPI装置との間で前記入力フローに関する情報を共有し、前記フロー識別・制御部は、前記下りフローを宛先に転送する、請求項１又は２記載の通信システム。
【請求項４】
下りフローを受信したDPI装置は、前記通信システムのDPI装置に対して、対応する上りフローに関する情報に対する問い合わせをブロードキャストする、請求項１乃至３何れか一項記載の通信システム。
【請求項５】
前記フロー判定部は、前記入力フローに関するフロー情報、フロー方向及び制御適否情報を有する識別フローテーブルを有し、
前記フロー識別・制御部は、前記入力フローに関するフロー情報及び制御内容を有する制御フローテーブルを有する、請求項１乃至４何れか一項記載の通信システム。
【請求項６】
前記フロー判定部は、前記通信システムのDPI装置に対して、前記入力フローに関する情報に対する問い合わせをブロードキャストし、前記問い合わせに対する応答の有無に応じて前記入力フローのフロー方向を判定する、請求項１乃至５何れか一項記載の通信システム。
【請求項７】
複数のDPI装置を含む通信システムによって実行されるフロー制御方法であって、
入力フローを受信するステップと、
前記入力フローが双方向で同一のDPI装置で処理される必要があるか判定するステップと、
前記入力フローに適用されるポリシー情報があるか判定するステップと、
判定結果に応じてフロー制御を実行するステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関し、より詳細には、DPI (Deep Packet Inspection)装置に関する。
【背景技術】
【０００２】
ISP (Internet Service Provider)では、ユーザの要求に応じた通信サービスの提供のため、DPI装置の活用が検討されている。DPI装置は、一般にISP網内にインラインで集約配備されている。
【０００３】
特に、アプリケーションを意識したサービス（例えば、特定のアプリケーションをゼロレーティングする）が検討されているが、この場合、図１に示されるように、DPI装置においてアプリケーションを識別及び制御するため、上り／下り双方向フローは同一のDPI装置を経由させる必要がある。
【０００４】
ISPでは、隣接するISPとの間で、複数の伝送リンクを構築することで冗長化とトラフィックの分散を行っている。一般に、マルチリンク接続のISP間では、経路制御プロトコルとしてBGP (Border Gateway Protocol)が利用されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"Applying Network Policy Control to Asymmetric Traffic: Considerations and Solutions", An Industry Whitepaper
【非特許文献２】Jawad Khalife, Amjad Hajjar and Jesus Diaz-Verdejo, "Performance of OpenDPI in Identifying Sampled Network Traffic", JOURNAL OF NETWORKS, VOL. 8, NO. 1, pp. 71-81, JANUARY 2013
【発明の概要】
【発明が解決しようとする課題】
【０００６】
BGPでは、自AS (Autonomous System)内のリソース（伝送路帯域・各装置での処理）を節約するため、ホットポテトルーティングが採用されている。ホットポテトルーティングとは、外部ASにパケットを転送する場合に、AS内部においてネットワーク構成上、当該外部ASに最も近いAS出口にあるルータへパケットを転送するルーティングである。
【０００７】
ホットポテトルーティングによると、図２に示されるように、上り／下り方向で経路が異なる「非対称トラフィック」が発生する可能性がある。すなわち、ホットポテトルーティングによって、上りのフローはISP#1のルータ#1とISP#2のルータ#2との間のリンクを経由する一方、下りのフローはISP#2のルータ#4とISP#1のルータ#3との間のリンクを経由することになる。このため、上りフロー及び下りフローはそれぞれ異なるDPI装置#1、#2に入力されることになり、双方向フローを入力する必要のあるアプリケーションを識別した制御を行うことができなくなる。
【０００８】
一方、このような非対称トラフィックに対して、双方向フローを同一のDPI装置に入力してDPI装置においてアプリケーションの識別及び制御を実現するため、Cluster方式とState Share方式との２つの方式がある。Cluster方式は、図３に示されるように、上りフローが経由したDPI装置に下りフローを転送することによって、同一のDPI装置において識別及び制御を行うというものである。他方、State Share方式は、図４に示されるように、上りフローと下りフローが経由するDPI装置の間でフロー情報（5tuple、TCPシーケンス番号等）と適用されるポリシー情報を共有することによって、識別及び制御を行うというものである。
【０００９】
Cluster方式の具体的な処理フローについて、図５に示されるように、ステップS11において、フローXの上りがDPI装置#1を経由してサーバに転送される。このとき、DPI装置#1では、フローXの上りの先頭の数パケット（例えば、４〜２０パケット）などの上りフロー情報（5tuple、TCPシーケンス番号等）が保持される。ステップS12において、フローXの下りがホットポテトルーティングに従ってDPI装置#2に転送される。DPI装置#2は、フローXの上りフロー情報を有しないため、ステップS13において全てのDPI装置に対してフローXの上りフロー情報に対する問い合わせをブロードキャストする。ステップS14において、フローXの上りフロー情報を保持するDPI装置#1が、受信した問い合わせに応答して、問い合わせ元のDPI装置#2にフローXの上りフロー情報を通知する。ステップS15において、DPI装置#2は、DPI装置#1からフローXの上りフロー情報を受信すると、受信した下りフローをDPI装置#1に転送する。ステップS16において、DPI装置#1は、保持している上りフロー情報とDPI装置#2から転送された下りフローから、フローXのアプリケーションを識別して双方向フローXを制御する。
【００１０】
他方、State Share方式の具体的な処理フローについて、図６に示されるように、ステップS21において、フローXの上りがDPI装置#1を経由してサーバに転送される。このとき、DPI装置#1では、フローXの上りの先頭の数パケット（例えば、４〜２０パケット）などの上りフロー情報（5tuple、TCPシーケンス番号等）が保持される。ステップS22において、フローXの下りがホットポテトルーティングに従ってDPI装置#2に転送される。DPI装置#2は、フローXの上りフロー情報を有しないため、ステップS23において全てのDPI装置に対してフローXの上りフロー情報に対する問い合わせをブロードキャストすると共に、フローXの下りの先頭の数パケット（例えば、４〜２０パケット）などの下りフロー情報を保持する。ステップS24において、フローXの上りフロー情報を保持するDPI装置#1が、受信した問い合わせに応答して、問い合わせ元のDPI装置#2にフローXの上りフロー情報を通知する。ステップS25において、DPI装置#2は、DPI装置#1からフローXの上りフロー情報を受信すると、保持している下りフロー情報をDPI装置#1に通知する。ステップS26において、DPI装置#1は、保持している上りフロー情報とDPI装置#2から送信された下りフロー情報から、フローXのアプリケーションを識別し、アプリケーション識別結果と適用ポリシー情報をDPI装置#2に通知すると共に、フローXの上りを制御する。ステップS27において、DPI装置#2は、DPI装置#1からアプリケーション識別結果と適用ポリシー情報を受信すると、フローXの下りを制御する。
【００１１】
図７に示されるように、Cluster方式は、TCP (Transmission Control Protocol)やUDP(User Datagram Protocol)に限定されず全てのケースに適用可能である一方、全ての非対称下りフローがDPI装置間で転送されるため、DPI装置間のトラフィック量が増加する。なお、ISP網内のバックボーントラフィックの非対称トラフィックの割合について、約80%という観測データがある。また、制御対象外フローについても、フローXの上りが経由したDPI装置に転送されるため、転送遅延が発生する。他方、State Share方式は、双方向（上り／下り）フローを同一のDPI装置に入力しなければならないアプリケーションには適用できず、適用範囲が限定される。なお、ISP網内の全フローに対するTCPの割合は50%程度であり、トラフィック量は70%程度という観測データがある。
【００１２】
上記問題点を鑑み、本発明の課題は、フロー種別に応じた効率的なフロー制御を実現するDPI装置を提供することである。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明の一態様は、複数のDPI装置を含む通信システムであって、各DPI装置は、入力フローに関する情報を管理するフロー判定部と、前記入力フローに適用されるポリシー情報と前記入力フローに関する情報とに基づきフロー制御を実行するフロー識別・制御部と、を有し、前記フロー識別・制御部は、入力フローが双方向で同一のDPI装置で処理される必要があるか否かの判定結果と、前記入力フローに適用されるポリシー情報があるか否かの判定結果とに応じてフロー制御を実行する通信システムに関する。
【発明の効果】
【００１４】
本発明によると、フロー種別に応じた効率的なフロー制御を実現するDPI装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、DPI装置の利用例を示す概略図である。
【図２】図２は、非対称トラフィックの発生例を示す概略図である。
【図３】図３は、Cluster方式を示す概略図である。
【図４】図４は、State Share方式を示す概略図である。
【図５】図５は、Cluster方式の処理フローを示す概略図である。
【図６】図６は、State Share方式の処理フローを示す概略図である。
【図７】図７は、従来方式の長所・短所を示す図である。
【図８】図８は、本発明の一実施例によるハイブリッド方式を示す概略図である。
【図９】図９は、本発明の一実施例によるDPI装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１７】
後述される実施例では、複数のDPI装置を有する通信システムが開示される。以下の実施例による通信システムでは、制御対象の上りフローと下りフローが異なるDPI装置に入力されると、入力フローがTCPの場合、State Share方式が適用され、入力フローがTCP以外の場合、Cluster方式が適用される。すなわち、図８に示されるように、制御対象の入力フローに対して、DPI装置#2への入力フローがTCP以外である場合、DPI装置#2は、Cluster方式に従って入力フローをDPI装置#1に転送し、DPI装置#2への入力フローがTCPである場合、DPI装置#2は、State Share方式に従ってDPI装置#1とフロー情報とポリシー情報を共有する。
【００１８】
これにより、従来のCluster方式と比較して、双方向（上り／下り）フローを同一のDPI装置に入れなくてもよいアプリケーションの場合や制御対象外フローの場合には、上りフローが経由したDPI装置に下りフローを転送する必要がないため、DPI装置間を流れるトラフィック量を削減することができる。また、制御対象外フローについては、上りフローが経由したDPI装置に下りフローが転送されないため、制御対象外フローについては経路変更に伴う転送遅延が発生しない。他方、従来のSate Share方式と比較して、双方向（上り／下り）フローを同一のDPI装置に入れなければならないアプリケーションの場合にも適用可能であるため、本実施例は適用領域がより広い。
【００１９】
図９を参照して、本発明の一実施例によるDPI装置を説明する。図９は、本発明の一実施例によるDPI装置の構成を示すブロック図である。
【００２０】
図９に示されるように、通信システム１０は、複数のDPI装置１００（DPI装置#1、DPI装置#2、・・・）及びPCRF(Policy and Charging Rule Function)装置２００を有する。典型的には、通信システム１０はISPなどのASであり、PCRF装置２００は制御対象フローに適用されるポリシーを管理するポリシー管理装置である。DPI装置１００は、PCRF装置２００によって管理されるポリシーに従ってユーザとコンテンツ事業者のサーバとの間でやりとりされるデータやパケットのフローを制御する。
【００２１】
DPI装置１００は、典型的には、サーバにより実現されてもよく、例えば、バスを介し相互接続されるドライブ装置、補助記憶装置、メモリ装置、プロセッサ、インタフェース装置及び通信装置から構成される。DPI装置１００における後述される各種機能及び処理を実現するプログラムを含む各種コンピュータプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フラッシュメモリなどの記録媒体によって提供されてもよい。プログラムを記憶した記録媒体がドライブ装置にセットされると、プログラムが記録媒体からドライブ装置を介して補助記憶装置にインストールされる。但し、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワークなどを介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置は、プログラムの起動指示があった場合に、補助記憶装置からプログラムやデータを読み出して格納する。プロセッサは、メモリ装置に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、後述されるようなDPI装置１００の各種機能及び処理を実行する。インタフェース装置は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。通信装置は、インターネットなどのネットワークと通信するための各種通信処理を実行する。
【００２２】
しかしながら、DPI装置１００は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。
【００２３】
以下の実施例では、DPI装置#1に上りフローが入り、DPI装置#2に下りフローが入るとされる。また、DPI装置１００に入力するフローについて、Import-IFから入るフローを「上りフロー」とし、Export-IFから入るフローを「下りフロー」としている。
【００２４】
DPI装置１００は、フロー判定部１１０及びフロー識別・制御部１２０を有する。
【００２５】
フロー判定部１１０は、入力したフローに関する情報を管理する。具体的には、フロー判定部１１０は、DPI装置１００に入力したフローについて、当該フローの先頭の数パケットの情報（5tuple等）をフロー情報として識別フローテーブルに保持する。また、フロー判定部１１０は、フロー情報と共に、当該フローのフロー方向（上り／下り）及び／又は制御対象フローであるか否かを示す制御フラグを識別フローテーブルに登録する。フロー判定部１１０は、入力したフローが識別フローテーブルに登録されているか判定し、当該フローが識別フローテーブルに登録されていない場合には、入力したフローを識別フローテーブルに登録することによって、入力済みのフローに関する情報を管理する。
【００２６】
フロー識別・制御部１２０は、入力したフローに適用されるポリシー情報と入力したフローに関する情報とに基づきフロー制御を実行する。具体的には、フロー識別・制御部１２０は、DPI装置１００に入力したフローについて、当該フローが制御対象フローであるかPCRF装置２００に問い合わせ、入力したフローが制御対象フローである場合、当該フローの先頭の数パケットの情報（5tuple等）をフロー情報として制御フローテーブルに保持する。また、フロー識別・制御部１２０は、適用されるポリシー情報（例えば、１０Mのレートリミットが適用されている、URLフィルタリングが適用されているなど）を制御内容として制御フローテーブルに保持する。
【００２７】
次に、実施例１によるDPI装置#1, #2において実行される処理フローを説明する。
【００２８】
DPI装置#1による上りフローの処理について、フローXがDPI装置#1に入力すると、フロー判定部１１０は、識別フローテーブルを参照して当該フローが新規フローであるか、又は既存フローであるか判定し、新規フローである場合、フローXに関する情報を識別フローテーブルに登録する。例えば、フロー判定部１１０は、フローXの先頭の数パケット（例えば、４〜２０パケット）の情報（5tuple等）を示すフロー情報、フロー方向などを保持する。
【００２９】
また、フローXが入力すると、フロー識別・制御部１２０は、PCRF装置２００に対して、フローXに適用されるポリシー情報があるか問い合わせる。PCRF装置２００は、例えば、予め保持するフロー制御設定情報などに基づきフローXに適用されるポリシー情報があるか判定し、適用されるポリシー情報がある場合、送信元のDPI装置#1にフローXに適用されるポリシー情報を通知する。フロー識別・制御部１２０は、受信したポリシー情報（例えば、１０Ｍのレートリミットが適用されている、URLフィルタリングが適用されているなど）と共に、当該フローの先頭の数パケットの情報（5tuple等）をフロー情報として制御フローテーブルに保持する。また、フロー識別・制御部１２０は、フロー判定部１１０の識別フローテーブルのフローXの制御フラグ（例えば、１：制御対象、０：制御対象外）を設定する。
【００３０】
一方、DPI装置#2による下りフローの処理について、フローXがDPI装置#2に入力すると、フロー判定部１１０は、識別フローテーブルを参照して当該フローが新規フローであるか、又は既存フローであるか判定し、新規フローである場合、フローXに関する情報を識別フローテーブルに登録する。例えば、フロー判定部１１０は、フローXの先頭の数パケット（例えば、４〜２０パケット）の情報（5tuple等）を示すフロー情報、フロー方向などを保持する。また、フロー判定部１１０は、識別フローテーブルを参照して、下りフローXに対応する上りフローXに関するフロー情報（5tuple等）が登録されているか判定する。上りフロー情報が識別フローテーブルにない場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００においてアプリケーションを識別する必要があるか判定し、判定結果に応じて以下の異なる処理フローを実行する。具体的には、フロー判定部１１０は、入力フローXの種別に応じて、当該フローXが双方向で同一のDPI装置１００においてアプリケーションを識別する必要があると判定できる。例えば、入力フローがTCPである場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００において処理される必要がないと判定し、他方、入力フローがTCP以外である場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００において処理される必要があると判定してもよい。
【００３１】
まず、双方向フローXが同一のDPI装置１００に入力しなければならないアプリケーションに関するものであるケースについて説明する。
【００３２】
DPI装置#2は、全てのDPI装置１００に対して、フローXの上りフロー情報の問い合わせをブロードキャストする。
【００３３】
ブロードキャストされた問い合わせを受信すると、DPI装置#1のフロー判定部１１０は、識別フローテーブルを参照して、フローXに関する上り方向のフロー情報があるか判断する。識別フローテーブルにフローXに関する上り方向のフロー情報を検出すると、フロー判定部１１０は更に、識別フローテーブルにおけるフローXの制御フラグを確認し、フローXに対して適用されるポリシー情報があるか、すなわち、フローXが制御対象フローであるか判断する。フローXが制御対象フローである場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にフローXのフロー情報（5tuple等）を通知する。他方、フローXが制御対象フローでない場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にNull値を通知する。
【００３４】
DPI装置#1からフローXのフロー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、下りフローXをDPI装置#1に転送する。DPI装置#1のフロー識別・制御部１２０は、制御フローテーブルのフローXの上りフロー情報と、DPI装置#2から転送されたフローXの下りフロー情報からアプリケーションを識別し、双方向フローXを制御する。
【００３５】
他方、DPI装置#1からNull値を受信すると、DPI装置#2のフロー判定部１１０は、識別フローテーブルにフローXに関する情報を登録する。同様に、フロー識別・制御部１２０は、制御フローテーブルにフローXに関する情報を登録すると共に、本来の宛先にフローXを転送する。
【００３６】
他方、双方向フローXが同一のDPI装置１００に入力しなくてもよいアプリケーションに関するものであるケースについて説明する。
【００３７】
DPI装置#2は、全てのDPI装置１００に対して、フローXの上りフロー情報の問い合わせをブロードキャストする。
【００３８】
ブロードキャストされた問い合わせを受信すると、DPI装置#1のフロー判定部１１０は、識別フローテーブルを参照して、フローXに関する上り方向のフロー情報があるか判断する。識別フローテーブルにフローXに関する上り方向のフロー情報を検出すると、フロー判定部１１０は更に、識別フローテーブルにおけるフローXの制御フラグを確認し、フローXに対して適用されるポリシー情報があるか、すなわち、フローXが制御対象フローであるか判断する。フローXが制御対象フローである場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にフローXのフロー情報（5tuple等）を通知する。他方、フローXが制御対象フローでない場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にNull値を通知する。
【００３９】
DPI装置#1からフローXのフロー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、フローXの下りパケットの先頭の数パケット（４〜２０など）のフロー情報をDPI装置#1に通知する。他方、DPI装置#1からNull値を受信すると、DPI装置#2のフロー判定部１１０は、保持している先頭の数パケットの情報を破棄すると共に、識別フローテーブルにフローXに関するフロー情報を登録する。同様に、フロー識別・制御部１２０は、制御フローテーブルにフローXに関する情報を登録すると共に、本来の宛先にフローXを転送する。
【００４０】
DPI装置#1のフロー識別・制御部１２０は、DPI装置#2から通知されたフロー情報と制御フローテーブルのフローXの上りフロー情報からアプリケーションを識別し、アプリケーション識別結果と適用されるポリシー情報をDPI装置#2に通知する。
【００４１】
DPI装置#1からアプリケーション識別結果と適用されるポリシー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、ポリシー情報に従って下りフローXを制御する。
【００４２】
また、上りフロー情報がある場合、DPI装置#1、#2のフロー識別・制御部１２０は、制御フローテーブルに基づきフロー制御を実行する。
【００４３】
次に、実施例２によるDPI装置#1、#2において実行される処理フローを説明する。実施例２では、DPI装置１００にフローが入力した際、入力IFの情報だけで、当該フローが上りフロー又は下りフローであるか判別できないケースに適用可能である。
【００４４】
DPI装置#1によるフローの処理について、フローXがDPI装置#1に入力すると、フロー判定部１１０は、識別フローテーブルを参照して当該フローが新規フローであるか、又は既存フローであるか判定し、新規フローである場合、フローXに関する情報を識別フローテーブルに登録する。例えば、フロー判定部１１０は、フローXの先頭の数パケット（例えば、４〜２０パケット）の情報（5tuple等）を示すフロー情報、フロー方向などを保持する。このとき、フロー方向を判定するため、フロー判定部１１０は、全てのDPI装置１００に対して、フローXのフロー情報の問い合わせをブロードキャストする。何れかのDPI装置１００から応答を受信すると、フロー判定部１１０は、フローXは上りフローであると判定し、何れのDPI装置１００からも応答を受信できなかった場合、フロー判定部１１０は、フローXは下りフローであると判定し、判定結果をフロー方向として登録する。
【００４５】
また、フローXが入力すると、フロー識別・制御部１２０は、PCRF装置２００に対して、フローXに適用されるポリシー情報があるか問い合わせる。PCRF装置２００は、例えば、予め保持するフロー制御設定情報などに基づきフローXに適用されるポリシー情報があるか判定し、適用されるポリシー情報がある場合、送信元のDPI装置#1にポリシー情報を通知する。フロー識別・制御部１２０は、受信したポリシー情報（例えば、１０Ｍのレートリミットが適用されている、URLフィルタリングが適用されているなど）と共に、当該フローの先頭の数パケットの情報（5tuple等）をフロー情報として制御フローテーブルに保持する。また、フロー識別・制御部１２０は、フロー判定部１１０の識別フローテーブルのフローXの制御フラグ（例えば、１：制御対象、０：制御対象外）を設定する。
【００４６】
一方、DPI装置#2によるフローの処理について、フローXがDPI装置#2に入力すると、フロー判定部１１０は、識別フローテーブルを参照して当該フローが新規フローであるか、又は既存フローであるか判定し、新規フローである場合、フローXに関する情報を識別フローテーブルに登録する。例えば、フロー判定部１１０は、フローXの先頭の数パケット（例えば、４〜２０パケット）の情報（5tuple等）を示すフロー情報、フロー方向などを保持する。このとき、フロー方向を判定するため、フロー判定部１１０は、全てのDPI装置１００に対して、フローXのフロー情報の問い合わせをブロードキャストする。何れかのDPI装置１００から応答を受信すると、フロー判定部１１０は、フローXは下りフローであると判定し、何れのDPI装置１００からも応答を受信できなかった場合、フロー判定部１１０は、フローXは上りフローであると判定し、判定結果をフロー方向として登録する。
【００４７】
また、フロー判定部１１０は、識別フローテーブルを参照して、下りフローXに対応する上りフローXに関するフロー情報（5tuple等）が登録されているか判定する。上りフロー情報が識別フローテーブルにない場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００においてアプリケーションを識別する必要があるか判定し、判定結果に応じて以下の異なる処理フローを実行する。具体的には、フロー判定部１１０は、入力フローXの種別に応じて、当該フローXが双方向で同一のDPI装置１００においてアプリケーションを識別する必要があると判定できる。例えば、入力フローがTCPである場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００において処理される必要がないと判定し、他方、入力フローがTCP以外である場合、フロー判定部１１０は、当該フローXが双方向で同一のDPI装置１００において処理される必要があると判定してもよい。
【００４８】
まず、双方向フローXが同一のDPI装置１００に入力しなければならないアプリケーションに関するものであるケースについて説明する。
【００４９】
DPI装置#2は、全てのDPI装置１００に対して、フローXの上りフロー情報の問い合わせをブロードキャストする。
【００５０】
ブロードキャストされた問い合わせを受信すると、DPI装置#1のフロー判定部１１０は、識別フローテーブルを参照して、フローXに関する上り方向のフロー情報があるか判断する。識別フローテーブルにフローXに関する上り方向のフロー情報を検出すると、フロー判定部１１０は更に、識別フローテーブルにおけるフローXの制御フラグを確認し、フローXに対して適用されるポリシー情報があるか、すなわち、フローXが制御対象フローであるか判断する。フローXが制御対象フローである場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にフローXのフロー情報（5tuple等）を通知する。他方、フローXが制御対象フローでない場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にNull値を通知する。
【００５１】
DPI装置#1からフローXのフロー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、下りフローXをDPI装置#1に転送する。DPI装置#1のフロー識別・制御部１２０は、制御フローテーブルのフローXの上りフロー情報と、DPI装置#2から転送されたフローXの下りフロー情報からアプリケーションを識別し、双方向フローXを制御する。
【００５２】
他方、DPI装置#1からNull値を受信すると、DPI装置#2のフロー判定部１１０は、識別フローテーブルにフローXに関する情報を登録する。同様に、フロー識別・制御部１２０は、制御フローテーブルにフローXに関する情報を登録すると共に、本来の宛先にフローXを転送する。
【００５３】
他方、双方向フローXが同一のDPI装置１００に入力しなくてもよいアプリケーションに関するものであるケースについて説明する。
【００５４】
DPI装置#2は、全てのDPI装置１００に対して、フローXの上りフロー情報の問い合わせをブロードキャストする。
【００５５】
ブロードキャストされた問い合わせを受信すると、DPI装置#1のフロー判定部１１０は、識別フローテーブルを参照して、フローXに関する上り方向のフロー情報があるか判断する。識別フローテーブルにフローXに関する上り方向のフロー情報を検出すると、フロー判定部１１０は更に、識別フローテーブルにおけるフローXの制御フラグを確認し、フローXに対して適用されるポリシー情報があるか、すなわち、フローXが制御対象フローであるか判断する。フローXが制御対象フローである場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にフローXのフロー情報（5tuple等）を通知する。他方、フローXが制御対象フローでない場合、フロー判定部１１０は、問い合わせ元のDPI装置#2にNull値を通知する。
【００５６】
DPI装置#1からフローXのフロー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、フローXの下りパケットの先頭の数パケット（４〜２０など）のフロー情報をDPI装置#1に通知する。他方、DPI装置#1からNull値を受信すると、DPI装置#2のフロー判定部１１０は、保持している先頭の数パケットの情報を破棄すると共に、識別フローテーブルにフローXに関するフロー情報を登録する。同様に、フロー識別・制御部１２０は、制御フローテーブルにフローXに関する情報を登録すると共に、本来の宛先にフローXを転送する。
【００５７】
DPI装置#1のフロー識別・制御部１２０は、DPI装置#2から通知されたフロー情報と制御フローテーブルのフローXの上りフロー情報からアプリケーションを識別し、アプリケーション識別結果と適用されるポリシー情報をDPI装置#2に通知する。
【００５８】
DPI装置#1からアプリケーション識別結果と適用されるポリシー情報を受信すると、DPI装置#2のフロー識別・制御部１２０は、ポリシー情報に従って下りフローXを制御する。
【００５９】
また、上りフロー情報がある場合、DPI装置#1、#2のフロー識別・制御部１２０は、制御フローテーブルに基づきフロー制御を実行する。
【００６０】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６１】
１０  通信システム
１００  DPI装置
１１０  フロー判定部
１２０  フロー識別・制御部
２００  PCRF装置
【図１】
2019029818.tif 000003
【図２】
2019029818.tif 000004
【図３】
2019029818.tif 000005
【図４】
2019029818.tif 000006
【図５】
2019029818.tif 000007
【図６】
2019029818.tif 000008
【図７】
2019029818.tif 000009
【図８】
2019029818.tif 000010
【図９】
2019029818.tif 000011