(57)【要約】【課題】階層化フロー識別機能を実現することで処理性能を向上しつつ、消費電力および実装密度の抑制を図ること。【解決手段】本発明のパケット解析装置においては、検索条件管理部がＤＰＩ部に対して検索条件の登録を指示した場合、ＤＰＩ部は、その検索条件を登録し、専用命令部は、その検索条件に含まれる検索パターンのビットシーケンスの特徴をビット列で表現したシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録をＤＰＩ部に対して指示し、ＤＰＩ部は、そのシグネチャをＤＰＩシグネチャテーブルに登録する。ＤＰＩ部が通信フローのパケットを受信した場合、専用命令部は、そのパケットのペイロードから抽出したビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録されたシグネチャと一致するかを判定する。【選択図】図５
2015233181.tif 000002
【特許請求の範囲】
【請求項１】
通信フローのパケットを解析するパケット解析装置であって、
各々がＤＰＩシグネチャテーブルを備える複数のＤＰＩ部と、
前記複数のＤＰＩ部の各々の検索条件を管理する検索条件管理部と、
専用命令部と、を有し、
前記検索条件管理部が前記ＤＰＩ部に対して検索条件の登録を指示した場合、前記ＤＰＩ部は、前記検索条件管理部により登録を指示された検索条件を登録し、前記専用命令部は、該検索条件に含まれる検索パターンのビットシーケンスの特徴をビット列で表現したシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示し、前記ＤＰＩ部は、前記専用命令部により登録を指示されたシグネチャをＤＰＩシグネチャテーブルに登録し、
前記ＤＰＩ部が通信フローのパケットを受信した場合、前記専用命令部は、該パケットのペイロードからビットシーケンスを抽出し、抽出したビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定する、パケット解析装置。
【請求項２】
前記ＤＰＩシグネチャテーブルは、検索パターンのビットシーケンスのシグネチャと、該シグネチャが検索されたパケットに対して実行すべき処理内容であるアクションと、が登録されるものであり、
前記専用命令部は、
ビットシーケンスのシグネチャを演算するシグネチャ演算部と、
前記ＤＰＩ部が前記検索条件管理部により登録を指示された検索条件を登録した場合、該検索条件に含まれる検索パターンのビットシーケンスのシグネチャを前記シグネチャ演算部により演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示するシグネチャ設定部と、
前記ＤＰＩ部が通信フローのパケットを受信した場合、該パケットのペイロードから抽出されたビットシーケンスのシグネチャを前記シグネチャ演算部により演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定するシグネチャ照合部と、
前記シグネチャ照合部が一致と判定した場合、前記ＤＰＩシグネチャテーブルを参照して、前記パケットに対して実行すべきアクションを選択するアクション選択部と、を有する、請求項１に記載のパケット解析装置。
【請求項３】
前記複数のＤＰＩ部の各々は、組込みプロセッサで構成される、請求項１または２に記載のパケット解析装置。
【請求項４】
前記複数のＤＰＩ部は、該複数のＤＰＩ部の各々を構成する複数の組込みプロセッサが単一チップに集積された、マルチコアのプロセッサとして構成される、請求項３に記載のパケット解析装置。
【請求項５】
前記複数のＤＰＩ部の後段に配置され、単一のネットワークプロセッサで構成され、パケット分析シグネチャテーブルを備えるパケット分析機能部をさらに有し、
前記検索条件管理部は、前記パケット分析機能部の検索条件も管理し、
前記パケット分析機能部は、
前記検索条件管理部が前記パケット分析機能部に対して検索条件の登録を指示すると、該検索条件に含まれる検索パターンのビットシーケンスをパケット分析シグネチャテーブルに登録し、
前記パケット分析機能部が通信フローのパケットを受信すると、該パケットのペイロードからビットシーケンスを抽出し、抽出したビットシーケンがパケット分析シグネチャテーブルに登録された検索パターンのビットシーケンスと一致するかを判定する、請求項４に記載のパケット解析装置。
【請求項６】
通信フローのパケットを解析するパケット解析装置によるパケット解析方法であって、
前記パケット解析装置に、
各々がＤＰＩシグネチャテーブルを備える複数のＤＰＩ部と、
前記複数のＤＰＩ部の各々の検索条件を管理する検索条件管理部と、
専用命令部と、を設け、
前記検索条件管理部が前記ＤＰＩ部に対して検索条件の登録を指示した場合、前記ＤＰＩ部は、前記検索条件管理部により登録を指示された検索条件を登録し、前記専用命令部は、該検索条件に含まれる検索パターンのビットシーケンスの特徴をビット列で表現したシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示し、前記ＤＰＩ部は、前記専用命令部により登録を指示されたシグネチャをＤＰＩシグネチャテーブルに登録し、
前記ＤＰＩ部が通信フローのパケットを受信した場合、前記専用命令部は、該パケットのペイロードからビットシーケンスを抽出し、抽出したビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定する、パケット解析方法。
【請求項７】
前記ＤＰＩシグネチャテーブルは、検索パターンのビットシーケンスのシグネチャと、該シグネチャが検索されたパケットに対して実行すべき処理内容であるアクションと、が登録されるものであり、
前記ＤＰＩ部が前記検索条件管理部により登録を指示された検索条件を登録した場合、前記専用命令部は、該検索条件に含まれる検索パターンのビットシーケンスのシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示し、
前記ＤＰＩ部が通信フローのパケットを受信した場合、前記専用命令部は、該パケットのペイロードから抽出されたビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定し、
前記専用命令部が一致と判定した場合、前記専用命令部は、前記ＤＰＩシグネチャテーブルを参照して、前記パケットに対して実行すべきアクションを選択する、請求項６に記載のパケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信フローのパケットを解析するパケット解析装置およびパケット解析方法に関する。
【背景技術】
【０００２】
現在のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークでは、サーバとユーザ端末との間や、ユーザ端末間に、スイッチやＩＰルータなどのパケット転送装置を配置し、パケット転送装置が通信フローを解析することにより、効率的なパケット転送制御を行っている。
【０００３】
通信フローの実体であるパケットを解析する１つの方法として、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）という技術が知られており、ＤＰＩ処理を実行する様々な装置が実現されている。ＤＰＩ処理では、パケット転送装置を通過するパケットのペイロードのパターンを、予め設定しておいたパターンと照合し、一致するかどうかを判定することによって、通信フローが識別される。
【０００４】
非特許文献１には、パケットのペイロードの特定のビットシーケンスを検索する複雑なＤＰＩ処理を、高速に実現するための装置構成が開示されている。非特許文献１の装置構成によれば、複数のＤＰＩプロセッサを並列に配置し、ＤＰＩにおける計算量の大きいビットシーケンスの処理を複数段に分割し、分割した各処理を複数のＤＰＩプロセッサで実行する。これにより、複数のＤＰＩプロセッサにＤＰＩ処理の負荷を分散させることができるため、効率的かつ高速なＤＰＩ処理を実現することができる（以下、非特許文献１のように、複数のＤＰＩプロセッサを並列に配置し、ＤＰＩ処理を複数のＤＰＩプロセッサに実行させる機能を、階層化フロー識別機能と称する）。
【０００５】
ＤＰＩ処理を実行する装置の１つとして、ネットワークプロセッサが挙げられる。非特許文献２には、高性能なネットワークプロセッサが例示されている。ネットワークプロセッサには、ＤＰＩ処理を担うコプロセッサを有するものがあり、また、パケット転送装置には、ＤＰＩプロセッサとしてネットワークプロセッサが良く実装される。これらのことから、ネットワークプロセッサをＤＰＩプロセッサとして用いて、階層化フロー識別機能を実現することは当業者であれば容易に想到し得る。
【０００６】
しかし、非特許文献２に示されるように、高性能なネットワークプロセッサは、一般にチップあたり数十ワット以上の電力を消費するものが多い。そのため、ネットワークプロセッサを用いて階層化フロー識別機能を実現する場合、ネットワークプロセッサの並列度をＮとすると、数十ワット×Ｎ個分の電力供給が必要となるため、パケット転送装置の運用コストが上昇する点が問題となる。
【０００７】
また、ネットワークプロセッサは、ＤＰＩ処理以外のネットワーク処理にも汎用的に使用可能な大規模な論理回路を搭載しており、チップサイズも数十ミリ角と大きなものとなるため、パケット転送装置の高密度化が困難となる。
【０００８】
このように、ネットワークプロセッサを用いて階層化フロー識別機能を実現することは、パケット転送装置の消費電力が増大し、運用コストが上昇すると共に、高密度化が困難となることから、経済的ではない。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】大坂ほか、“エッジノードへのスケーラブルな拡張機能実装方式に関する検討”、電子情報通信学会ソサイエティ大会講演論文集、Ｂ−６−１６、Ａｕｇ．２０１１
【非特許文献２】ＭＩＣＲＯＰＲＯＣＥＳＳＯＲ  ｒｅｐｏｒｔ、Ｏｃｔ．２０１２、［２０１４年５月２３日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｌｉｎｌｅｙｇｒｏｕｐ．ｃｏｍ／ｍｐｒ／ａｒｔｉｃｌｅ．ｐｈｐ？ｉｄ＝１０９４６＞
【非特許文献３】山崎ほか、“パケット走査のための専用命令セット設計に関する検討”、電子情報通信学会ソサイエティ大会講演論文集、Ｃ−１２−２９、Ｓｅｐ．２０１３
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、ＤＰＩプロセッサとしてネットワークプロセッサを用いて階層化フロー識別機能を実現する場合、ネットワークプロセッサの並列度Ｎが上がるにしたがって消費電力が線形的に増加する等の理由で、経済性が悪化する。
【００１１】
他方、単一のＤＰＩプロセッサにＤＰＩ処理を実行させる場合、そのＤＰＩプロセッサに大きな負荷がかかり、パケット転送装置の処理性能が低下するおそれがある。また、長大なビットシーケンスの検索に対応するために大規模なＴＣＡＭ（Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）が必要となり、パケット転送装置の消費電力および実装コストが増大する。
【００１２】
本発明は、上記課題を考慮してなされたものであり、その目的は、パケット転送装置における階層化フロー識別機能を複数のＤＰＩプロセッサを用いて実現することで処理性能を向上しつつ、消費電力および実装密度の抑制を図ることができる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明のパケット解析装置は、
通信フローのパケットを解析するパケット解析装置であって、
各々がＤＰＩシグネチャテーブルを備える複数のＤＰＩ部と、
前記複数のＤＰＩ部の各々の検索条件を管理する検索条件管理部と、
専用命令部と、を有し、
前記検索条件管理部が前記ＤＰＩ部に対して検索条件の登録を指示した場合、前記ＤＰＩ部は、前記検索条件管理部により登録を指示された検索条件を登録し、前記専用命令部は、該検索条件に含まれる検索パターンのビットシーケンスの特徴をビット列で表現したシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示し、前記ＤＰＩ部は、前記専用命令部により登録を指示されたシグネチャをＤＰＩシグネチャテーブルに登録し、
前記ＤＰＩ部が通信フローのパケットを受信した場合、前記専用命令部は、該パケットのペイロードからビットシーケンスを抽出し、抽出したビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定する。
【００１４】
上記目的を達成するために本発明のパケット解析方法は、
通信フローのパケットを解析するパケット解析装置によるパケット解析方法であって、
前記パケット解析装置に、
各々がＤＰＩシグネチャテーブルを備える複数のＤＰＩ部と、
前記複数のＤＰＩ部の各々の検索条件を管理する検索条件管理部と、
専用命令部と、を設け、
前記検索条件管理部が前記ＤＰＩ部に対して検索条件の登録を指示した場合、前記ＤＰＩ部は、前記検索条件管理部により登録を指示された検索条件を登録し、前記専用命令部は、該検索条件に含まれる検索パターンのビットシーケンスの特徴をビット列で表現したシグネチャを演算し、演算したシグネチャのＤＰＩシグネチャテーブルへの登録を前記ＤＰＩ部に対して指示し、前記ＤＰＩ部は、前記専用命令部により登録を指示されたシグネチャをＤＰＩシグネチャテーブルに登録し、
前記ＤＰＩ部が通信フローのパケットを受信した場合、前記専用命令部は、該パケットのペイロードからビットシーケンスを抽出し、抽出したビットシーケンスのシグネチャを演算し、演算したシグネチャがＤＰＩシグネチャテーブルに登録された検索パターンのビットシーケンスのシグネチャと一致するかを判定する。
【発明の効果】
【００１５】
本発明によれば、複数のＤＰＩ部を用いて階層化フロー識別機能を実現する一方で、専用命令部を設け、この専用命令部が、検索パターンのビットシーケンス、および、通信フローのパケットのペイロードから抽出したビットシーケンスの特徴をビット列で表現したシグネチャを演算した上で、両者の一致判定を行う。これにより、パケット解析処理において計算頻度が高いシグネチャの一致判定に必要な命令を１〜２サイクルで行うことができる。そのため、ＤＰＩ部によるパケット解析処理の低遅延化が可能であり、ＤＰＩ部は不要な機能やハードウェアを一切持つ必要がなくなり、小規模な論理回路で高密度な実装が可能となる。また、ＤＰＩ部をネットワークプロセッサで構成する必要が無いため、ＤＰＩ部の消費電力を低減することができ、ＤＰＩ処理の並列度を上げるためにＤＰＩ部の数を増加させた場合でも、消費電力を抑えることができる。
【００１６】
したがって、複数のＤＰＩ部を用いて階層化フロー識別機能を実現することで処理性能を向上しつつ、消費電力および実装密度の抑制を図ることができ、電力性能比（消費電力に対する処理性能の比率）を飛躍的に高めたパケット解析装置を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明のパケット解析装置を含むパケット転送装置の構成を示す図である。
【図２】第１の比較例のパケット解析装置の構成を示す図である。
【図３】第２の比較例のパケット解析装置の構成を示す図である。
【図４】第３の比較例のパケット解析装置の構成を示す図である。
【図５】本発明の第１の実施形態のパケット解析装置の構成を示す図である。
【図６】本発明の第１〜第３の実施形態のパケット解析装置における専用命令部の構成を示す図である。
【図７】本発明の第１の実施形態のパケット解析装置におけるパケット解析方法を表すシーケンス図である。
【図８】本発明の第２の実施形態のパケット解析装置の構成を示す図である。
【図９】本発明の第３の実施形態のパケット解析装置の構成を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本発明を実施するための形態について図面を参照して説明する。
（１）パケット転送装置
図１は、本発明のパケット解析装置を含むパケット転送装置の構成を示す図である。
【００１９】
図１に示すように、本発明のパケット転送装置１０は、入力部１１０と、出力部１２０と、パケット解析装置１１と、を有している。
【００２０】
入力部１１０は、サーバやユーザ端末などの外部装置（図示せず）からの入力信号を受信し、受信した入力信号からパケットを抽出する。抽出された各パケットは、制御データを収容するヘッダと、実データを収容するペイロードと、から構成される。ヘッダは、典型的には、固定長のデータであり、そのデータの固定位置に送信元ＩＰアドレス（ＳＩＰ）、宛先ＩＰアドレス（ＤＩＰ）、ＩＰプロトコルタイプ（ＰＲ）、送信元ポート番号（ＳＰＴ）、および宛先ポート番号（ＤＰＴ）という５つの要素（５タプル）を含んでいる。
【００２１】
パケット解析装置１１は、入力部１１０で抽出されたパケットを解析し、その解析結果を基に、そのパケットの転送先を決定する等の処理を行う。なお、パケット解析装置１１の詳細は後述する。
【００２２】
出力部１２０は、パケット解析装置１１で決定された転送先にパケットを送信する。
（２）パケット解析装置
以下、本発明のパケット解析装置を、比較例と対比して説明する。なお、以下で説明する本発明および比較例のパケット解析装置は、図１に示したパケット転送装置１０へパケット解析装置１１として組み込まれるものとする。
【００２３】
まず、比較例のパケット解析装置について説明する。
（２−１）比較例のパケット解析装置
（２−１−１）第１の比較例のパケット解析装置
図２は、第１の比較例のパケット解析装置１１００Ａの構成を示す図である。
【００２４】
図２に示すように、第１の比較例のパケット解析装置１１００Ａは、基本転送機能部１３０と、１次ＤＰＩ部１４０−１〜Ｎ（Ｎは２以上の自然数）次ＤＰＩ部１４０−Ｎ（以下、どのＤＰＩ部であるかを特定しないときはＤＰＩ部１４０と称する）と、パケット分析機能部１５０と、を有する。
【００２５】
基本転送機能部１３０は、転送テーブル（図示せず）と、転送シグネチャテーブル（図示せず）と、を有している。転送テーブルには、パケットの転送先として、そのパケットのヘッダの５タプルに応じた転送先が登録されている。転送シグネチャテーブルには、検索パターンとなるヘッダの５タプルと、その検索パターンが検索されたパケットに対して実行すべき処理内容であるアクション（ＡＣＴ）と、が登録されている。基本転送機能部１３０は、入力部１１０にて抽出された各パケットのヘッダを確認し、確認したヘッダの５タプルが、転送シグネチャテーブルに登録されている検索パターンの５タプルに一致するかを判定する。一致しない場合、基本転送機能部１３０は、そのパケットを通常のパケットであると判定し、転送テーブルに登録されている転送先を指定して出力部１２０に転送する。他方、一致した場合、基本転送機能部１３０は、そのパケットに対して、転送シグネチャテーブルに登録されている処理（アクション）を選択して実行する。この付随条件の処理内容としては、典型的には、ＤＰＩ部１４０に転送する、所定の処理を実行して出力部１２０に転送する、などが設定されてもよい。ＤＰＩ部１４０にパケットを転送する場合、基本転送機能部１３０は、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎのそれぞれに並列的にパケットを転送する。
【００２６】
各ＤＰＩ部１４０は、ＤＰＩシグネチャテーブル（図示せず）を有している。ＤＰＩシグネチャテーブルには、検索パターンとなる所定のビット長のビットシーケンスと、その検索パターンが検索されたパケットに対して実行すべき処理内容であるアクション（ＡＣＴ）と、が登録されている。ＤＰＩ部１４０は、基本転送機能部１３０から受信したパケットの各ペイロードに含まれる所定のビット長のビットシーケンスを抽出し、各自のＤＰＩシグネチャテーブルに登録されている検索パターンのビットシーケンスに一致するかを判定する。一致しない場合、ＤＰＩ部１４０は、そのパケットを基本転送機能部１３０に送り返し、出力部１２０を介し適切な転送先に転送する。他方、一致した場合、ＤＰＩ部１４０は、そのパケットに対して、各自のＤＰＩシグネチャテーブルに登録されている処理（アクション）を選択して実行する。この付随条件の処理内容としては、典型的には、パケット分析機能部１５０に転送する、所定の処理を実行して基本転送機能部１３０を介し出力部１２０に転送する、などが設定されてもよい。
【００２７】
パケット分析機能部１５０は、パケット分析シグネチャテーブル（図示せず）を有している。パケット分析シグネチャテーブルには、検索パターンとなるビットシーケンスと、その検索パターンが検索されたパケットに対して実行すべき処理内容であるアクション（ＡＣＴ）と、が登録されている。パケット分析機能部１５０は、ＤＰＩ部１４０から受信したパケットの各ペイロードに含まれるビットシーケンスを抽出し、ＤＰＩシグネチャテーブルに登録されている検索パターンのビットシーケンスと一致するかを判定する。一致しない場合、パケット分析機能部１５０は、そのパケットを基本転送機能部１３０に送り返し、出力部１２０を介し適切な転送先に転送する。他方、一致した場合、パケット分析機能部１５０は、そのパケットに対して、パケット分析シグネチャテーブルに登録されている処理（アクション）を選択して実行する。この付随条件の処理内容としては、典型的には、パケットを破棄する、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を制御する、などが設定されてもよい。なお、パケット分析シグネチャテーブルには、検索パターンとして２以上のビットシーケンスを登録可能であるため、異なるビット長のビットシーケンスを登録することができる。
【００２８】
しかし、第１の比較例の構成は、各部に分散した検索条件を多元的に管理する必要があり、各部の検索条件を矛盾なく設定する手間も大きなものとなる。
（２−１−２）第２の比較例のパケット解析装置
図３は、第２の比較例のパケット解析装置１１００Ｂの構成を示す図である。
【００２９】
図３に示すように、第２の比較例のパケット解析装置１１００Ｂは、第１の比較例と比べて、検索条件管理部１６０を追加している。
【００３０】
なお、図３においては、図２と同様に、パケット分析機能部１５０だけでなく、基本転送機能部１３０および各ＤＰＩ部１４０も、出力部１２０に接続されているものとする（以降の図４、図５、図８、および図９において同じ）。
【００３１】
検索条件管理部１６０は、基本転送機能部１３０、ＤＰＩ部１４０、およびパケット分析機能部１５０の検索条件を統合的に管理する部分であり、これら検索条件を一元的に設定・変更することができる。
【００３２】
各ＤＰＩ部１４０には、検索パターンのビットシーケンスとして、固有のビット長のビットシーケンスが設定される。すなわち、１次ＤＰＩ部１４０−１にはビット長ｍ１のビットシーケンスが設定され、２次ＤＰＩ部１４０−２にはビット長ｍ２のビットシーケンスが設定され、・・・、Ｎ次ＤＰＩ部１４０−１にはビット長ｍＮのビットシーケンスが設定される。例えば、ｉ（１≦ｉ≦Ｎの自然数）次ＤＰＩ部１４０−ｉのビット長ｍｉが５であって（ｍｉ＝５）、検索パターンとしてビットシーケンス“ａｂｃｄｅ”が設定されている場合、ｉ次ＤＰＩ部１４０−ｉは、受信したパケットのペイロードに含まれるビット長５の各ビットシーケンスをチェックし、検索パターンのビットシーケンス“ａｂｃｄｅ”に一致するものがあるか判定する。
【００３３】
このように、各ＤＰＩ部１４０に対しては、固有のビット長を設定し、設定したビット長のビットシーケンスのみを検索させる。すなわち、パケットのペイロードにおいて検索されるべき異なるビット長のビットシーケンス数に応じた数のＤＰＩ部１４０の数を設けることによって、複数種類の任意のビット長のビットシーケンスを高速かつ簡易に検索することが可能になる。例えば、パケットのペイロードにおいて検索されるべきビット長のビットシーケンスが３種類である場合（ビット長＝３２，６４，１２８）、ＤＰＩ部１４０は３段で構成される。
【００３４】
検索条件管理部１６０は、基本転送機能部１３０、各ＤＰＩ部１４０、およびパケット分析機能部１５０に対し、検索条件として検索パターンを設定し、また、これらの設定した値を必要に応じて変更することができる。ここで、基本転送機能部１３０に設定する検索パターンはヘッダの５タプルの値であり、ＤＰＩ部１４０に設定する検索パターンはペイロードのビットシーケンス（ビット長ｍ１〜Ｎ）の値であり、パケット分析機能部１５０に設定する検索パターンはペイロードのビットシーケンス（ビット長ｎ）の値である。
【００３５】
また、検索条件管理部１６０は、特に、ＤＰＩ部１４０およびパケット分析機能部１５０に対しては、ペイロードのビット長、抽出位置、およびマスク長などの値を指定した抽出方法をプログラムから再定義し、その抽出方法を検索条件として設定することができる。この場合、例えば、ＤＰＩ部１４０は、検索条件として設定された抽出方法を基に、パケットのペイロードから解析対象のビットシーケンスを抽出し、抽出したビットシーケンスが、検索条件として設定された検索パターンのビットシーケンスに一致するかを判定することになる。
【００３６】
検索条件管理部１６０を設けることにより、各部に分散した検索条件間で一貫性を保つことができる。また、検出条件として抽出方法を設定することにより、解析しない実データをフィルタリングして、解析するビットシーケンスのみをＤＰＩ部１４０およびパケット分析機能部１５０に設定することができる。このように複数の検索条件を統合的に管理することにより、検索条件間の不整合を防ぎ、設定作業を省力化することが可能となる。
【００３７】
パケット分析機能部１５０における検索パターンであるビットシーケンスは、典型的には、ＤＰＩ部１４０における検索条件であるビットシーケンスのビット長ｍよりも大きなビット長ｎが設定される（ｍ＜ｎ）。すなわち、相対的に短いビットシーケンスはＤＰＩ部１４０により検索され、相対的に長いビットシーケンスはパケット分析機能部１５０により検索されることになる。相対的に短いビットシーケンスは、一定長のパケットにより多く含まれるため、検索時に検索パターンのビットシーケンスとの一致判定回数が増大し、計算量が大きくなる。検索条件管理部１６０は、このような相対的に短いビットシーケンスの検索処理をＤＰＩ部１４０に任せ、パケット分析機能部１５０の処理負荷を低減する。
【００３８】
また、パケット解析装置１１００Ｂが未解析のパケットを受信した場合、比較的複雑な検索条件に対応できるパケット分析機能部１５０でパケットを順次解析し、その解析により特定した検索条件を基本転送機能部１３０およびＤＰＩ部１４０に自動的に設定するように検索条件管理部１６０が制御することにより、未知の通信フローの未解析のパケットに対しても、パケット転送制御が可能となる。
【００３９】
ＤＰＩ部１４０は、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とメモリとを備える個別のＤＰＩプロセッサから構成され、互いに独立して動作可能である。また、ＤＰＩ部１４０は、ＤＰＩ部１４０とパケット分析機能部１５０とのロードバランスを考慮して、必要に応じて増設されてもよい。
【００４０】
しかし、ＤＰＩ部１４０を必要に応じて増設する場合、デバイスの構成方法によってパケット解析装置１１００Ｂの処理性能および消費電力が大きく異なってしまう。
（２−１−３）第３の比較例のパケット解析装置
図４は、第３の比較例のパケット解析装置１１００Ｃの構成を示す図である。
【００４１】
図４に示すように、第３の比較例のパケット解析装置１１００Ｃは、第２の比較例と比べて、検索条件管理部１６０を削除し、また、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎをネットワークプロセッサで構成し、また、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎにそれぞれ対応する、基本命令部１７０−１〜１７０−Ｎ（以下、どの基本命令部であるかを特定しないときは基本命令部１７０と称する）および汎用命令部１８０−１〜１８０−Ｎ（以下、どの汎用命令部であるかを特定しないときは汎用命令部１８０と称する）を設けている。
【００４２】
ＤＰＩ部１４０を構成するネットワークプロセッサ内は、典型的には、パケット処理に適したアーキテクチャで構成される。パケット処理を行うネットワークプロセッサとしては、多数のパケットを蓄積するためのパケットバッファ、検索パターンとの一致検索を高速に実行するためのＴＣＡＭ、主記憶部、キャッシュ、および、これらに保持されるパケットに対して後述する基本命令部１７０および汎用命令部１８０から与えられた命令を演算するために１以上の演算コアを有するものが多い。
【００４３】
基本命令部１７０は、ＤＰＩ部１４０をプロセッサとして動作させるために必要な最小限の基本命令の命令セット、すなわち典型的には、四則演算、算術演算、論理演算、比較、ロードストア、シフト、および条件分岐などの命令群を有し、これらをＤＰＩ部１４０に与える。これらの基本命令の形式および言語処理系はネットワークプロセッサによって区々であるが、これらの基本命令の中には、どのようなネットワークプロセッサでも基本機能として備える共通的な命令が多く含まれる。
【００４４】
汎用命令部１８０は、ＩＰネットワークにおけるパケット処理向けに汎用的に利用できる機能を実現するために必要な汎用命令の命令セット、すなわち典型的には、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ａｄｄｒｅｓｓ）、ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４）、ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６）、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、およびＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などのヘッダ演算、ＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）、ＱｉｎＱ（Ｑｕｅｕｅ−ｉｎ−Ｑｕｅｕｅ）、およびＧＲＥ（Ｇｅｎｅｒａｌ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）などのカプセル化演算、チェックサムやＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）などのエラーチェック演算などの命令群を有し、これらをＤＰＩ部１４０に与える。これらパケット処理向け汎用命令の形式および言語処理系はネットワークプロセッサによって区々であるが、これらの汎用命令の中には、どのような品種のネットワークプロセッサでも基本機能として備える共通的な命令が多く含まれる。
【００４５】
図４に示した第３の比較例の構成は、パケット処理に適した内部構造と汎用的に利用できる命令セットとにより、ＤＰＩ部１４０においても、一定水準の処理性能を得ることができる。しかし、非特許文献２に示されるように、高性能なネットワークプロセッサの消費電力は一般にチップあたり数十ワット以上であるため、ＤＰＩ部１４０の並列度Ｎが上がるにつれてＤＰＩ部１４０の消費電力が増大する。また、第３の比較例の構成は、検索条件管理部１６０を持たないため、各部に分散した検索条件を多元的に管理する必要があり、各部の検索条件を矛盾なく設定する手間も大きなものとなる。さらに、ネットワークプロセッサは、ＤＰＩ処理以外のネットワーク処理にも汎用的に使用可能な大規模な論理回路を搭載しており、チップサイズも数十ミリ角と大きなものとなるため、パケット解析装置１１００Ｃの高密度化が困難となる。したがって、複数のネットワークプロセッサを用いて階層化フロー識別機能を実現することは経済的ではない。
（２−２）本発明のパケット解析装置
続いて、本発明のパケット解析装置の実施形態について説明する。
（２−２−１）本発明の第１の実施形態のパケット解析装置
図５は、第１の実施形態のパケット解析装置１１Ａの構成を示す図である。
【００４６】
図５に示すように、第１の実施形態のパケット解析装置１１Ａは、第３の比較例と比べて、１次ＤＰＩ部１４０−１〜Ｎ次ＤＰＩ部１４０−Ｎを専用組込みプロセッサで構成し、また、検索条件管理部１６０を追加し、また、汎用命令部１８０−１〜１８０−Ｎの代わりに、専用命令部１９０−１〜１９０−Ｎ（以下、どの専用命令部であるかを特定しないときは専用命令部１９０と称する）を設けている。
【００４７】
ＤＰＩ部１４０を構成する専用組込みプロセッサ内は、典型的には、オーソドックスなパイプライン構造を備えるＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アーキテクチャで構成される。初期的には、ネットワークプロセッサのように大規模なパケットバッファ、ＴＣＡＭ、主記憶部、およびキャッシュなどは有しておらず、また、パケット処理向けに汎用的に利用できる汎用命令部は有しておらず、ＤＰＩ部１４０をプロセッサとして動作させるために必要な最小限の基本命令を実行する要素のみを備える。このようにプリミティブな組込みプロセッサを、用途に応じて特定用途向けに専用化できるＡＳＩＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ  Ｐｒｏｃｅｓｓｏｒ）設計手法が一般に知られている。上述したように、ある程度ベースとなるプロセッサ構成が規定されており、特定用途向けに専用命令の設計やデータパスの拡張を許容する手法から、ほぼフルスクラッチで演算コアを設計できる手法まで、手法によって設計手順は区々であるが、単一プロセッサからマルチプロセッサまで処理性能および消費電力を最適化しながら所望の機能を実現することができる。また、必要に応じて後からバッファ、キャッシュ、およびＴＣＡＭを増設してもよい。
【００４８】
検索条件管理部１６０は、図３に示したものと同様であるため説明を割愛する。
【００４９】
基本命令部１７０は、構成としては図４に示したネットワークプロセッサ用のものと同様である。すなわち、基本命令部１７０は、ＤＰＩ部１４０をプロセッサとして動作させるために必要な最小限の基本命令の命令セット、すなわち典型的には、四則演算、算術演算、論理演算、比較、ロードストア、シフト、および条件分岐などの命令群を有し、これらをＤＰＩ部１４０に与える。これらの基本命令の形式および言語処理系は組込みプロセッサによって区々であるが、これらの基本命令の中には、どのような組込みプロセッサでも基本機能として備える共通的な命令が多く含まれる。
【００５０】
専用命令部１９０は、図４に示したネットワークプロセッサ用の汎用命令部１８０とは異なる。専用命令部１９０は、ＩＰネットワークにおけるパケット処理向けに汎用的に利用できる機能を実現するために必要な汎用命令の命令セットを持たない代わりに、ＤＰＩ部１４０を実現するために必要な専用命令の命令セット、最適化された演算器、およびデータパスによって構成することができる。非特許文献３には、ＡＳＩＰ設計手法を用いた、粗粒度方式のパケット走査機能を有する専用組込みプロセッサの概要構成が開示されている。専用命令部１９０の上記構成は、非特許文献３に開示されたＡＳＩＰ設計手法を適用することで実現可能になる。そのため、ＤＰＩ部１４０におけるパケット解析処理を極小サイクル数で実行することが可能となる。したがって、ＤＰＩ部１４０は不要な機能やハードウェアを一切持つ必要がなくなり、小規模な論理回路で高密度な実装が可能となる。また、アプリケーションによっては、組込みプロセッサあたりの消費電力を高々数百ミリワット以下で構成できるため、ＤＰＩ部１４０の並列度Ｎが上がったとしても、ＤＰＩ部１４０の消費電力を、ネットワークプロセッサでＤＰＩ部１４０を構成する場合と比較して、百分の１程度に抑えることが可能となる。
【００５１】
なお、専用命令部１９０は、対応するＤＰＩ部１４０上の命令用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ。図示せず）に保持される。
【００５２】
図６は、専用命令部１９０の構成を示す図である。なお、図６は、専用命令部１９０の演算器の部分の構成を示している。
【００５３】
図６に示すように、専用命令部１９０は、シグネチャ演算部１９１と、シグネチャ設定部１９２と、シグネチャ照合部１９３と、アクション選択部１９４と、を有している。
【００５４】
なお、図６に示した専用命令部１９０内の各構成要素の動作は、以下の図７の説明の中で詳細に説明する。
【００５５】
図７は、第１の実施形態のパケット解析装置１１Ａにおけるパケット解析方法を表すシーケンス図である。なお、図７に示したパケット解析方法は、非特許文献３には非開示である。
【００５６】
図７に示したパケット解析方法は、検索条件設定ステップＳ１０１と、検索条件更新ステップＳ１０２と、シグネチャ演算ステップＳ１０３と、シグネチャ設定ステップＳ１０４と、シグネチャ更新ステップＳ１０５と、シグネチャ演算ステップＳ１０６と、シグネチャ照合ステップＳ１０７と、一致判定ステップＳ１０８と、アクション選択ステップＳ１０９と、を有している。
【００５７】
ステップＳ１０１においては、検索条件管理部１６０は、基本転送機能部１３０、各ｉ次ＤＰＩ部１４０−ｉ、およびパケット分析機能部１５０に対し、ユーザが所望する検索条件を設定し、その検索条件を登録するよう指示する。
【００５８】
このとき、検索条件管理部１６０は、基本転送機能部１３０、各ｉ次ＤＰＩ部１４０−ｉ、およびパケット分析機能部１５０に対しては、検索パターンを検索条件として設定する。具体的には、検索条件管理部１６０は、検索パターンとして、基本転送機能部１３０に対してはヘッダの５タプルの値を設定し、各ｉ次ＤＰＩ部１４０−ｉに対してはペイロードのビットシーケンス（ビット長ｍ１〜Ｎ）の値を設定し、パケット分析機能部１５０に対してはペイロードのビットシーケンス（ビット長ｎ）の値を設定する。
【００５９】
また、検索条件管理部１６０は、ｉ次ＤＰＩ部１４０−ｉおよびパケット分析機能部１５０に対しては、上記の検索パターンと共に抽出方法を検索条件として設定する。具体的には、検索条件管理部１６０は、抽出方法として、プログラムから再定義した、ペイロードのビット長Ｌ、ビットシーケンスの抽出位置を指定するオフセット値Ｏ、およびマスク長Ｍの値を設定する。なお、通信フローのパケットから、ビット長Ｌ、オフセット値Ｏ、およびマスク長Ｍで指定された抽出方法を基にビットシーケンスを抽出する動作については後述する。
【００６０】
ステップＳ１０２においては、ｉ次ＤＰＩ部１４０−ｉは、自身のデータ用ＲＡＭ（図示せず）に保持している現在の検索条件の値を、検索条件管理部１６０によりステップＳ１０１で設定された検索条件の値と比較し、変更があれば、データ用ＲＡＭに保持している検索条件の値を更新する。
【００６１】
ステップＳ１０３においては、専用命令部１９０−ｉのシグネチャ演算部１９１は、ｉ次ＤＰＩ部１４０−ｉで更新された検索条件に検索パターンとして含まれるビット長ｍｉのビットシーケンスのシグネチャを演算する。シグネチャは、ビットシーケンスの特徴をビット列で表現したものであり、通信フローにおいて実際に解析するパケット内の解析対象のビットシーケンス（以下、フローと表記）が、検索パターンのビットシーケンス（以下、パターンと表記）に一致するかの検索を高速に実行するために演算される。具体的なシグネチャとしては、一般に広く用いられるハッシュ値を用いることができるが、非特許文献３に開示されている粗粒度方式の演算手段を用いて演算した値であってもよい。
【００６２】
ステップＳ１０４においては、専用命令部１９０−ｉのシグネチャ設定部１９２は、ステップＳ１０３で演算されたシグネチャ（パターン）をｉ次ＤＰＩ部１４０−ｉに設定し、そのシグネチャ（パターン）を登録するよう指示する。
【００６３】
ステップＳ１０５においては、ｉ次ＤＰＩ部１４０−ｉは、専用命令部１９０−ｉによりステップＳ１０４で登録を指示されたシグネチャ（パターン）を、自身のＤＰＩシグネチャテーブルに登録し、自身のＤＰＩシグネチャテーブルに検索パターンとして登録されたシグネチャ（パターン）を更新する。ＤＰＩシグネチャテーブルは、検索条件の値と同様に、自身のデータ用ＲＡＭに保持される。
【００６４】
以降、ステップＳ１０１〜Ｓ１０５を繰り返し、所望の数のシグネチャ（パターン）の登録が済んだ時点で、パケット解析装置１１Ａの事前設定が完了する。
【００６５】
ステップＳ１０６以降の手順は、パケット解析装置１１Ａを通信フローが通過するごとに発生する手順である。
【００６６】
ステップＳ１０６においては、専用命令部１９０−ｉのシグネチャ演算部１９１は、基本転送機能部１３０からの通信フローのパケットがｉ次ＤＰＩ部１４０−ｉで受信されると、ｉ次ＤＰＩ部１４０−ｉによりステップＳ１０２で更新された検索条件に含まれる抽出方法を基に、受信されたパケットから解析対象のビットシーケンスを抽出する。
【００６７】
具体的には、専用命令部１９０−ｉのシグネチャ演算部１９１は、まず、ビット長Ｌおよびオフセット値Ｏを基に、パケットのペイロードにおけるオフセット値Ｏで指定される位置から、ビット長Ｌ分のビットシーケンスを、解析対象の基底となるビットシーケンスとして抽出する。ビット長Ｌはワード単位で所定の長さが指定可能である。例えば、３２ビットを１ワードとしてもよいし、６４ビットや１２８ビットを１ワードとしてもよい（Ｌ＝３２，６４，１２８）。オフセット値Ｏはビット単位で指定される。次に、シグネチャ演算部１９１は、マスク長Ｍを基に、上記で抽出された解析対象の基底となるビットシーケンスから、詳細な解析対象のビットシーケンスをビット単位で抽出する。例えば、上記で３２ビット基底のビットシーケンス０１０１０１０１０１０１０１０１０１０１０１０１０１０１０１０１が抽出されていた状態で、先頭８ビットのみを解析する場合、マスクデータは１１１１１１１１００００００００００００００００００００００００（Ｍ＝８）となり、この先頭の８ビットのビットシーケンス０１０１０１０１が解析対象のビットシーケンスの具体値となる。このようにして、解析しない実データをフィルタリングし、解析するビット長ｍｉのビットシーケンスのみを解析対象として抽出することができる。
【００６８】
ステップＳ１０６においては、専用命令部１９０−ｉのシグネチャ演算部１９１は、さらに、パケットから抽出した解析対象のビットシーケンスのシグネチャ（フロー）をステップＳ１０３と同様の手順で演算する。
【００６９】
ステップＳ１０７においては、専用命令部１９０−ｉのシグネチャ照合部１９３は、ステップＳ１０６で演算されたシグネチャ（フロー）を、ステップＳ１０５で更新されたＤＰＩシグネチャテーブル内のシグネチャ（パターン）と照合する。
【００７０】
ステップＳ１０８においては、専用命令部１９０−ｉのシグネチャ照合部１９３は、ステップＳ１０５で更新されたシグネチャ（パターン）に、ステップＳ１０６で演算されたシグネチャ（フロー）が一致するかを判定する。一致するシグネチャ（パターン）がない場合（Ｓ１０８：Ｎ）、シグネチャ照合部１９３は、パケットを基本転送機能部１３０に送り返し、出力部１２０を介し適切な転送先に転送する。他方、一致するシグネチャ（パターン）がある場合（Ｓ１０８：Ｙ）、ステップＳ１０９に移行する。
【００７１】
ステップＳ１０９においては、専用命令部１９０−ｉのアクション選択部１９４は、ＤＰＩシグネチャテーブルを参照して、一致したシグネチャ（パターン）に対応する処理内容（アクション）を選択し、選択された処理をパケットに対して実行した後、そのパケットを後段のパケット分析機能部１５０に転送する。
【００７２】
第１の実施形態のＤＰＩシグネチャテーブルには、検索パターンとなるビット長ｍｉのビットシーケンスのシグネチャと、そのシグネチャが検索されたパケットに対して実行すべき処理内容であるアクション（ＡＣＴ）と、が登録されている。例えば、ＤＰＩシグネチャテーブルには、ビット長ｘのビットシーケンス「“ａ１ａ２・・・ａｍ”→ＡＣＴ＝“ｆｆｆ”」が登録される。この場合、解析対象のビットシーケンスが“ａ１ａ２・・・ａｍ”である場合、付随条件である処理“ｇｇｇ”が実行されることを表している。
【００７３】
上述したように第１の実施形態においては、シグネチャ（フロー）とシグネチャ（パターン）との照合がｉ次ＤＰＩ部１４０−ｉの各部で並列的に実行され、適切な処理内容（アクション）が選択される。また、各ｉ次ＤＰＩ部１４０−ｉおよび各専用命令部１９０−ｉが実行する上記の各ステップのうち、ステップＳ１０３〜Ｓ１０９は、パケット解析においてとくに計算頻度の大きな処理であるが、第１の実施形態の構成によれば、パケット解析の各処理を高々１〜２サイクルの極小サイクル数で実行することができる。上記の低遅延な処理を可能する技術としては、非特許文献３に開示された、専用命令によるハッシュ計算の低遅延化が挙げられる。この場合、ハッシュ値がシグネチャに相当する。また、非特許文献３に開示されたＡＳＩＰ設計手法を用いて、専用命令部１９０−ｉをハッシュ演算専用の演算器およびデータパスによって構成することにより、１〜２サイクルで処理可能な命令を設計することができる。したがって、本発明の第１の実施形態の構成により、高速なフロー識別およびパケット転送制御を実現することができる。
（２−２−２）本発明の第２の実施形態のパケット解析装置
第２の実施形態のパケット解析装置１１Ｂは、そのパケット解析方法については図７に示したシーケンス図と同じであるため説明を割愛し、以下では主に図５に示した第１の実施形態のパケット解析装置１１Ａとの構成上の差異について説明する。
【００７４】
図８は、第２の実施形態のパケット解析装置１１Ｂの構成を示す図である。
【００７５】
図８に示すように、第２の実施形態のパケット解析装置１１Ｂは、Ｎ個のＤＰＩ部１４０をそれぞれ構成するＮ個の専用組込みプロセッサを、単一チップに集積している。
【００７６】
すなわち、図５に示した第１の実施形態のパケット解析装置１１Ａは、Ｎ個のＤＰＩ部１４０をそれぞれ構成するＮ個の専用組込みプロセッサを個々に独立させたマルチチップ構成であった。これに対して、図８に示した第２の実施形態のパケット解析装置１１Ｂは、Ｎ個のＤＰＩ部１４０をそれぞれ構成するＮ個の専用組込みプロセッサを集積し、単一チップのマルチコアのプロセッサとして構成している点が特徴となる。このような構成とすることにより、第２の実施形態のパケット解析装置１１Ｂは、第１の実施形態のパケット解析装置１１Ｂと比べて、ＤＰＩ部１４０の実装密度や電力性能比（消費電力に対する処理性能の比率）をより一層高めることが期待できる。
【００７７】
また、ＤＰＩシグネチャテーブルを保持する記憶領域に関して、第１の実施形態のパケット解析装置１１Ａでは、ＤＰＩ部１４０の各自のＤＰＩシグネチャテーブルは、物理的に固有のデータ用ＲＡＭ（図示せず）に分割されていた。これに対して、第２の実施形態のパケット解析装置１１Ｂでは、各ＤＰＩ部１４０に物理的に同一のデータ用ＲＡＭ（図示せず）を接続し、このデータ用ＲＡＭを各ＤＰＩ部１４０が共有する。このような構成とする場合、多ポートの共有メモリ（図示せず）の各ポートに各ＤＰＩ部１４０を接続し、データの破壊を防ぐために共有メモリをバンクに分割し、上記のステップＳ１０４〜Ｓ１０５をメモリコントローラ（図示せず）に制御させ、各自のＤＰＩシグネチャテーブルを保持する記憶領域を構成すればよい。
【００７８】
基本命令部１７０および専用命令部１９０の構成も変更される。第１の実施形態のパケット解析装置１１Ａでは、各ＤＰＩ部１４０に１組の基本命令部１７０および専用命令部１９０が付属する構成であった。これに対して、第２の実施形態のパケット解析装置１１Ｂでは、単一チップのマルチコア構成となるため、ＤＰＩ部１４０全体で１組の基本命令部１７０と専用命令部１９０で構わない。これは、別途マルチコアに対応した言語処理系を組み込むことにより実現することができる。
【００７９】
さらに、第１の実施形態のパケット解析装置１１Ａの構成と第２の実施形態のパケット解析装置１１Ｂの構成とを折衷させるようなＤＰＩ部１４０を構成することも可能である。すなわち、マルチチップ構成における各ＤＰＩ部１４０をマルチコア構成にしてもよい。上述してきたような複数の構成態様は、ＤＰＩ部１４０における処理性能、消費電力、実装密度、メンテナンス性など各種要件を考慮して決定すればよく、種々の変形および応用が可能である。
（２−２−３）本発明の第３の実施形態のパケット解析装置
第３の実施形態のパケット解析装置１１Ｃは、そのパケット解析方法については図７に示したシーケンス図と同じであるため説明を割愛し、以下では主に図５に示した第１の実施形態のパケット解析装置１１Ａとの構成上の差異について説明する。
【００８０】
図９は、本発明の第３の実施形態のパケット解析装置１１Ｃの構成を示す図である。
【００８１】
図９に示すように、本発明の第３の実施形態のパケット解析装置１１Ｃは、Ｎ個のＤＰＩ部１４０を、単一チップ化されたＮ個の専用組込みプロセッサでそれぞれ構成し、パケット分析機能部１５０を単一のネットワークプロセッサで構成し、両者を相互補完的に動作させる、異種マルチコアによる構成である。
【００８２】
パケット分析機能部１５０は、ネットワークプロセッサで構成されるため、図３に示した第３の比較例において、ＤＰＩ部１４０をネットワークプロセッサで構成した場合と同様に、基本命令部１７０Ａおよび汎用命令部１８０Ａが付属している。なお、この基本命令部１７０Ａおよび汎用命令部１８０Ａは、図３に示した基本命令部１７０および汎用命令部１８０とそれぞれ同様であるため説明を割愛する。
【００８３】
非特許文献３によれば、パケットを解析する方法は、粗粒度方式（Ｃｏａｒｓｅ  ＤＰＩ）と細粒度方式（Ｆｉｎｅ  ＤＰＩ）との２つに大別できる。前者は、ブルームフィルタ等の効率的なデータ構造を用いた簡便なマッチングを行う解析方法であり、シグネチャテーブルを保持する記憶領域における空間効率が良いため、通信フローが検索パターンに合致しないことを効率よく判別することができる。他方、後者は、正規表現等を用いて詳細なパターン照合を実現する解析方法であり、複雑な検索条件に対応するなど高機能なＤＰＩ処理を実現できる。ただし、後者の方式では、単一のＤＰＩ部１４０が処理を担う場合、負荷が集中して性能の確保が難しいという問題がある。そこで、両方式を組み合わせるアプローチにより細粒度方式の負荷を軽減する効果が期待でき、効率的なパケット解析装置１１Ｃを構成することができる（Ｃｏａｒｓｅ−ｔｏ−Ｆｉｎｅ  ＤＰＩ）。
【００８４】
なお、図９では、単一のパケット分析機能部１５０が設けられているが、本発明はこれに限定されず、複数のパケット分析機能部１５０が設けられてもよい。この場合、ＤＰＩ部１４０は、パケット分析機能部１５０に転送すべきパケットが検出されると、各パケット分析機能部１５０のトラヒック量を確認し、トラヒック量の少ないパケット分析機能部１５０に、検出されたパケットを転送するようにしてもよい。あるいは、ＤＰＩ部１４０は、各ＤＰＩ部１４０に対して転送先として予め設定されているパケット分析機能部１５０に、検出されたパケットを転送するようにしてもよい。
【００８５】
以上、本発明の実施形態が示され、説明がなされた。実施形態の説明において「〜部」と説明しているもの（基本転送機能部１３０、ＤＰＩ部１４０、パケット分析機能部１５０、検査条件管理部１６０、基本命令部１７０、汎用命令部１８０、および専用命令部１９０）は、「〜回路」、「〜装置」、「〜機器」、「〜手段」であってもよく、また、「〜ステップ」、「〜処理」であってもよい。本実施形態で示した電力性能比を飛躍的に高めるような命令セットを専用組込みプロセッサが具備する構成を、最良の形態と見なしているものの、「〜部」として説明しているものは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に記憶されたファームウェアおよび再構成型デバイス・素子・基板・配線などのハードウェアで実現されていても構わない。あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記録媒体に記憶される。プログラムはＣＰＵにより読み出されて実行される。すなわち、プログラムは、本発明の実施形態の「〜部」に相当する「〜手段」として、コンピュータを機能させるものである。あるいは、本発明の実施形態の「〜部」の手順や方法をコンピュータに実行させるものである。
【産業上の利用可能性】
【００８６】
本発明は、設計ツールおよびＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）の別を問わず、特定用途向けプロセッサの設計手法一般に適用することができる。
【符号の説明】
【００８７】
１０：パケット転送装置
１１：パケット解析装置
１１０：入力部
１２０：出力部
１３０：基本転送機能部
１４０：ＤＰＩ部
１５０：パケット分析機能部
１６０：検索条件管理部
１７０：基本命令部
１８０：汎用命令部
１９０：専用命令部
１９１：シグネチャ演算部
１９２：シグネチャ設定部
１９３：シグネチャ照合部
１９４：アクション選択部
【図１】
2015233181.tif 000003
【図２】
2015233181.tif 000004
【図３】
2015233181.tif 000005
【図４】
2015233181.tif 000006
【図５】
2015233181.tif 000007
【図６】
2015233181.tif 000008
【図７】
2015233181.tif 000009
【図８】
2015233181.tif 000010
【図９】
2015233181.tif 000011