(57)【要約】【課題】複数のルールパタンを連結させたパケットの検査を高速に処理する。【解決手段】履歴管理レジスタ２３から２５が、ルール検査部２、９、１０が以前の検査に用いたルールパタンの次のルールパタンを示す履歴管理ネクストＩＤを含むこれまでのパケットの検査履歴を記録し、ルール検査部２、９、１０がパケット内のそれぞれの検査範囲と検査範囲に対応するルールパタンとの一致を判断するとともに、履歴管理レジスタより履歴管理ネクストＩＤ群２９を入力し、今回の検査に用いるルールパタンがいずれかの履歴管理ネクストＩＤに一致するか否かを判断し、パタン一致の有無と、履歴管理ネクストＩＤの一致有無と、今回の検査に用いたルールパタンの次のルールパタンのＩＤ及び検査履歴の管理のための情報等を出力し、履歴管理制御部３０が、これらを用いて、今回の検査結果を反映させて履歴管理レジスタ２３から２５の検査履歴を更新する。【選択図】図１
2007259173.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパケットを所定の検査範囲ごとに検査するパケット検査装置であって、
それぞれが、並行して、それぞれの検査対象となる対象検査範囲と対象検査範囲に対応して複数のルールパタンの中から抽出された抽出ルールパタンとを比較し、対象検査範囲と抽出ルールパタンとのパタン一致の有無を通知するパタン一致信号を出力する複数のパタン比較部と、
入力パケットに対する検査の進展状況を示すとともに前記入力パケットに対する以前の検査においていずれかのパタン比較部によりパタン一致が検知された一致検知済ルールパタンに連結する連結ルールパタンを特定する検査状況情報を記憶する検査状況情報記憶部と、
抽出ルールパタンごとに、抽出ルールパタンが検査状況情報で特定されている一致検知済ルールパタンの連結ルールパタンに該当するか否かを判定し、抽出ルールパタンが一致検知済ルールパタンの連結ルールパタンに該当するか否かを通知する連結通知信号を出力する連結判定部と、
前記複数のルールパタンのそれぞれに対して検査状況情報を更新するための制御情報を記憶しており、記憶している制御情報の中から抽出ルールパタンの制御情報を出力する制御情報記憶部と、
前記複数のパタン比較部からのパタン一致信号と前記連結判定部からの連結通知信号と前記制御情報記憶部からの制御情報とに基づき、パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報を用いて検査状況情報を更新する検査状況情報制御部とを有することを特徴とするパケット検査装置。
【請求項２】
前記検査状況情報記憶部は、
複数の検査状況情報を記憶している場合があり、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンが複数存在する場合に、当該複数の抽出ルールパタンの制御情報を用いて複数の検査状況情報を一斉に更新することを特徴とする請求項１に記載のパケット検査装置。
【請求項３】
前記検査状況情報記憶部は、
複数の記憶ブロックに複数の検査状況情報を記憶している場合があり、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンが複数存在する場合に、当該複数の抽出ルールパタンの制御情報を用いて複数の記憶ブロックに記憶されている複数の検査状況情報を一斉に更新することを特徴とする請求項１に記載のパケット検査装置。
【請求項４】
前記パケット検査装置は、
前記制御情報記憶部は、
前記複数のルールパタンのそれぞれに対して、それぞれのルールパタンの識別子と、それぞれのルールパタンに連結する連結ルールパタンの識別子とを記憶しており、
前記検査状況情報記憶部は、
検査状況情報の一部として、一致検知済ルールパタンに連結する連結ルールパタンの識別子を記憶しており、
前記連結判定部は、
前記検査状況情報記憶部から検査状況情報に示されている一致検知済ルールパタンの連結ルールパタンの識別子を入力し、前記制御情報記憶部から抽出ルールパタンの識別子を入力し、前記検査状況情報記憶部から入力した一致検知済ルールパタンの連結ルールパタンの識別子と前記制御情報記憶部から入力した抽出ルールパタンの識別子を比較し、両者が一致した場合に、抽出ルールパタンが一致検知済ルールパタンの連結ルールパタンに該当すると判断し、
前記制御情報記憶部は、
抽出ルールパタンの連結ルールパタンの識別子を含む制御情報を出力し、
前記検査状況情報制御部は、
検査状況情報に含まれる連結ルールパタンの識別子を、パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる連結ルールパタンの識別子に更新することを特徴とする請求項１に記載のパケット検査装置。
【請求項５】
前記制御情報記憶部は、
前記複数のルールパタンのそれぞれに対して、一つ以上のルールパタンにより構成される検査ルールの先頭ルールパタンであるか否かを示す開始フラグ値を記憶しており、抽出ルールパタンの開始フラグ値を含む制御情報を出力し、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる開始フラグ値が有効である場合に、前記検査状況情報記憶部に新たなエントリを生成し、制御情報に含まれる連結ルールパタンの識別子を当該新たなエントリに書き込むとともに、一つ以上のルールパタンにより構成される検査ルールの先頭ルールパタンのパタン一致が検知済であることを示す有効ビット値を当該新たなエントリに書き込むことを特徴とする請求項４に記載のパケット検査装置。
【請求項６】
前記検査状況情報記憶部は、
検査状況情報の一部として、一つ以上のルールパタンにより構成される検査ルールの最終ルールパタンまでパタン一致が検知されたか否かを示すヒットフラグ値を記憶しており、
前記制御情報記憶部は、
前記複数のルールパタンのそれぞれに対して、一つ以上のルールパタンにより構成される検査ルールの最終ルールパタンであるか否かを示すエンドフラグ値を記憶しており、抽出ルールパタンのエンドフラグ値を含む制御情報を出力し、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれるエンドフラグ値が有効である場合に、検査状況情報に含まれるヒットフラグ値を有効にすることを特徴とする請求項４に記載のパケット検査装置。
【請求項７】
前記検査状況情報記憶部は、
検査状況情報の一部として、複数の連結ルールパタンが存在するか否かを示す履歴管理拡張ビット値を記憶しており、
前記制御情報記憶部は、
前記複数のルールパタンのそれぞれに対して、複数の連結ルールパタンが存在するか否かを示す拡張ビット値を記憶しており、抽出ルールパタンの拡張ビット値を含む制御情報を出力し、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる拡張ビット値が有効である場合に、検査状況情報に含まれる履歴管理拡張ビット値を拡張ビット値に更新することを特徴とする請求項４に記載のパケット検査装置。
【請求項８】
前記制御情報記憶部は、
前記複数のルールパタンのそれぞれに対して、ルールパタン間の連結関係を特定するための拡張マスク値を記憶しており、抽出ルールパタンの拡張マスク値を含む制御情報を出力し、
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる拡張マスク値が有効であり、検査状況情報に含まれる履歴管理拡張ビット値が有効であり、拡張マスク値が履歴管理拡張ビット値に包含される場合に、前記検査状況情報記憶部に新たなエントリを生成し、制御情報に含まれる抽出ルールパタンの連結ルールパタンの識別子を当該新たなエントリに書き込み、一つ以上のルールパタンにより構成される検査ルールの先頭ルールパタンのパタン一致が検知済であることを示す有効ビット値を当該新たなエントリに書き込み、制御情報に含まれる拡張ビット値を履歴管理拡張ビット値として当該新たなエントリに書き込むことを特徴とする請求項７に記載のパケット検査装置。
【請求項９】
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる拡張マスク値が有効であり、検査状況情報に含まれる履歴管理拡張ビット値が有効であり、拡張マスク値が履歴管理拡張ビット値に包含される場合に、履歴管理拡張ビット値から拡張マスク値を無効化した値を新たな履歴管理拡張ビット値として設定することを特徴とする請求項８に記載のパケット検査装置。
【請求項１０】
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる拡張マスク値が有効であり、検査状況情報に含まれる履歴管理拡張ビット値が有効であり、拡張マスク値が履歴管理拡張ビット値に包含される場合に、当該検査状況情報に含まれる連結ルールパタンの識別子を更新しないことを特徴とする請求項８に記載のパケット検査装置。
【請求項１１】
前記検査状況情報制御部は、
パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報に含まれる拡張マスク値が有効であり、検査状況情報に含まれる履歴管理拡張ビット値が有効であり、拡張マスク値と履歴管理拡張ビット値とが一致する場合に、当該検査状況情報に含まれる連結ルールパタンの識別子を、制御情報に含まれる連結ルールパタンの識別子に更新することを特徴とする請求項８に記載のパケット検査装置。
【請求項１２】
前記制御情報記憶部は、
抽出ルールパタンの抽出と同時に、抽出ルールパタンの制御情報を出力することを特徴とする請求項１に記載のパケット検査装置。
【請求項１３】
前記パケット検査装置は、更に、
前記制御情報記憶部におけるそれぞれの制御情報の格納アドレスを記憶し、
抽出ルールパタンの抽出と同時に、抽出ルールパタンの制御情報が格納されている格納アドレスを示すアドレス情報を前記制御情報記憶部に出力する制御情報アドレスメモリを有し、
前記制御情報記憶部は、
前記制御情報アドレスメモリからのアドレス情報に示された格納アドレスから、抽出ルールパタンの制御情報を読み出し、読み出した抽出ルールパタンの制御情報を出力することを特徴とする請求項１に記載のパケット検査装置。
【請求項１４】
前記複数のパタン比較部は、
パタン一致信号を出力する際に、それぞれの対象検査範囲の前記入力パケットにおける位置を示すパケットポインタをパタン一致信号とともに出力し、
前記パケット検査装置は、更に、
共通の抽出ルールパタンについてのパタン一致信号とアドレス情報とを対応付けるとともに、パケットポインタに示された対応検査範囲の前記入力パケットにおける位置に従い、対応検査範囲が前記入力パケットの先頭に近い順にパタン一致信号とアドレス情報の組を整列させる順序制御部を有し、
前記制御情報記憶部は、
前記順序制御部によるアドレス情報の整列順に、アドレス情報に示された格納アドレスから、順次、抽出ルールパタンの制御情報を読み出すことを特徴とする請求項１３に記載のパケット検査装置。
【請求項１５】
前記パケット検査装置は、
一つの入力パケットに対する検査が終了した際に、前記検査状況情報記憶部に記憶されている検査状況情報を外部装置に対して出力することを特徴とする請求項１に記載のパケット検査装置。
【請求項１６】
前記複数のパタン比較部を、前記複数のルールパタンが記憶されているＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ：連想記憶メモリ）で構成し、
前記ＣＡＭは、
前記制御情報記憶部におけるそれぞれの制御情報の格納アドレスを管理し、
抽出ルールパタンの抽出と同時に、抽出ルールパタンの制御情報が格納されている格納アドレスを示すアドレス情報を前記制御情報記憶部に出力することを特徴とする請求項１に記載のパケット検査装置。
【請求項１７】
入力されたパケットを所定の検査範囲ごとに検査するパケット検査方法であって、
それぞれが、並行して、それぞれの検査対象となる対象検査範囲と対象検査範囲に対応して複数のルールパタンの中から抽出された抽出ルールパタンとを比較し、対象検査範囲と抽出ルールパタンとのパタン一致の有無を通知するパタン一致信号を出力する複数のパタン比較ステップと、
入力パケットに対する検査の進展状況を示すとともに前記入力パケットに対する以前の検査においてパタン一致が検知された一致検知済ルールパタンに連結する連結ルールパタンを特定する検査状況情報を検査状況情報記憶部から入力し、抽出ルールパタンごとに、抽出ルールパタンが検査状況情報で特定されている一致検知済ルールパタンの連結ルールパタンに該当するか否かを判定し、抽出ルールパタンが一致検知済ルールパタンの連結ルールパタンに該当するか否かを通知する連結通知信号を出力する連結判定ステップと、
前記複数のルールパタンのそれぞれに対して検査状況情報を更新するための制御情報を記憶している制御情報記憶部から、抽出ルールパタンの制御情報を出力する制御情報出力ステップと、
前記複数のパタン比較ステップからのパタン一致信号と前記連結判定ステップからの連結通知信号と前記制御情報出力ステップからの制御情報とに基づき、パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報を用いて検査状況情報を更新する検査状況情報制御ステップとを有することを特徴とするパケット検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたパケットを検知用のルールパタンと照合して不正パケットの検出を行うパケット検査技術に関する。
【背景技術】
【０００２】
ネットワークでの不正アクセスやＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ  ）攻撃などを検知する方式として、入力したパケットと検知用ルールパタンとの一致検査を行う方式が利用されている。この分野では、ネットワークの高速化や攻撃パタンの複雑化に対応すべく、ハードウェアによる高速化が図られている。
【０００３】
従来の技術では、入力パケットを既定のビット幅からなる検査範囲で切り出して圧縮し、比較すべき検査パタンの絞込みを行ったうえで、詳細なパタン比較を行う方式例がある（例えば、特許文献１）。図２１にこの方式の動作概要を示す。
パケットポインタで始まる検査範囲で入力パケットを切り出し、絞込み処理により絞込みデータを生成する。この段階で、パタン比較要否を判定し、パタン比較が必要な場合、適用すべき検査ルールを格納しているルールメモリのアドレスを決定する。
一方、入力パケットの検査範囲に対応したデータ領域は、パケットバッファでタイミング調整を行い比較用パケットデータとして切り出す。
最後に、ルールメモリから読み出したルールパタンと比較用パケットデータを比較し、一致を検査する。検査範囲に対し、入力パケットを先頭から最後尾に向かって移動しながら連続的に上記の検査処理を行うことにより、任意の位置に存在する検査パタンを発見できる。
パタン検査はバイト単位で行う必要があるため、入力パケットは通常１バイト単位で移動する。
圧縮、絞込み及びルール決定のアルゴリズムを工夫することで、入力パケットの移動単位を２バイト以上にするアイデアもある。
また、図２２に示すように、異なる検査範囲を持つ複数の検査回路を並列に動作させることで高速化を図っている。
図２０にこの方式によるハードウェアブロック例を示す。
【０００４】
また、パタン比較を高速化する方法として、連想記憶メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）を利用して動的な辞書構造を形成する方法が提案されている（例えば、特許文献２）。
一方、複数の検査ルールに一致するケースが存在する場合、入力パケットに応じてルールの優先度を決定する必要がある。この優先度決定を高速化する方法が提案されている（例えば、特許文献３）。
更に、この優先度制御をＣＡＭの中で行う方法も提案されている（例えば、特許文献４）。
パタンマッチの有無だけではなく、必要に応じて一致したパタンのパケット上の位置を記録しておく必要がある場合がある。これを効率よく行う方法も提案されている（例えば、特許文献５）。
【特許文献１】米国特許公開公報  ２００３／０２０８４８７  第１図及び第２図
【特許文献２】特開平９−１８０４６９号公報  第２頁〜３頁、第１図
【特許文献３】特開２００１−２７４８３７号公報  第４頁〜６頁、第２図
【特許文献４】特開２０００−２１５６７８号公報  第３頁〜４頁、第１図
【特許文献５】特開２００４−２６６３７０号公報  第４頁、第１図
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のパケット検査方式は、単体の文字列を個別に検査するのみであるため、文字列の組み合わせによる攻撃を検知できない問題点があった。例えば、特定の制御コマンドの後にバッファオーバーフローを発生させるパタンがあるような場合などでは、ソフトウェアで検査処理を記述することはできるが、ハードウェアによる高速化は困難であった。
この発明は上記のような問題点を解決することを主な目的の一つとしており、複数の検査パタンの組み合わせによる検査ルール記述とそれを高速処理するハードウェアの実現を主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るパケット検査装置は、
入力されたパケットを所定の検査範囲ごとに検査するパケット検査装置であって、
それぞれが、並行して、それぞれの検査対象となる対象検査範囲と対象検査範囲に対応して複数のルールパタンの中から抽出された抽出ルールパタンとを比較し、対象検査範囲と抽出ルールパタンとのパタン一致の有無を通知するパタン一致信号を出力する複数のパタン比較部と、
入力パケットに対する検査の進展状況を示すとともに前記入力パケットに対する以前の検査においていずれかのパタン比較部によりパタン一致が検知された一致検知済ルールパタンに連結する連結ルールパタンを特定する検査状況情報を記憶する検査状況情報記憶部と、
抽出ルールパタンごとに、抽出ルールパタンが検査状況情報で特定されている一致検知済ルールパタンの連結ルールパタンに該当するか否かを判定し、抽出ルールパタンが一致検知済ルールパタンの連結ルールパタンに該当するか否かを通知する連結通知信号を出力する連結判定部と、
前記複数のルールパタンのそれぞれに対して検査状況情報を更新するための制御情報を記憶しており、記憶している制御情報の中から抽出ルールパタンの制御情報を出力する制御情報記憶部と、
前記複数のパタン比較部からのパタン一致信号と前記連結判定部からの連結通知信号と前記制御情報記憶部からの制御情報とに基づき、パタン一致信号においてパタン一致が通知され、連結通知信号において連結ルールパタンに該当することが通知されている抽出ルールパタンの制御情報を用いて検査状況情報を更新する検査状況情報制御部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明では、ルールパタンとの一致検知を複数のパタン比較部において並行して行うとともに、連結判定部において、以前の検査においてパタン一致が検知されたルールパタンとの連結関係を判定するため、連結した複数のルールパタンの組み合わせによる攻撃を高速に検知することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本実施の形態に係るパケット検査装置１００の構成例を示すハードウェアブロック構成図である。
図１において、１は入力パケットから既定の検査範囲にしたがってデータを切り出し、検査ルール、具体的にはルールパタンを絞り込むためのデータを生成する検査範囲制御部である。なお、ルールパタンとは、パケットの検査範囲との比較を行う検査用のパタンであり、検査ルールとは、複数のルールパタンが連結したルールパタンの集合を意味する。
２は０番目の検査範囲でパケット検査を行うルール検査部０である。
３は検査範囲制御部１から受け取ったルール絞込み用のデータから検査に使用するルールパタンを決定するルール選択部である。
４はルールパタンを保管するルールメモリである。
５は入力パケットを一時的に保管して検査対象のパケットデータを出力するためのパケットバッファである。
６はルールパタンと入力パケットを比較するパタン比較部である。
７はルールパタンの属性やルールパタン間の関係を記述した制御情報を保管する制御情報メモリである。
８はルール検査に使用するルールパタンと過去に一致検出したルールパタンとの関連性を調べる履歴情報比較部である。
９は１番目の検査範囲でパケット検査を行うルール検査部１である。
１０はｎ番目の検査範囲でパケット検査を行うルール検査部ｎである。
１１は検査対象のパケットを取り込むパケット入力である。
１２は検査対象のルールパタンを絞り込むための絞込みデータである。
１３はパケット検査に使用するルールの格納場所を示すルールメモリアドレスである。
１４はルール検査の対象となる比較用パケットデータ（検査範囲）である。
１５はルールメモリ４から読み出されるパケット検査用のルールパタンである。
１６はルールパタンと比較用パケットデータ（検査範囲）との一致を示すパタン一致信号である。
１７はルールパタンを識別する制御ＩＤである。
１８はルールパタンの属性やルールパタン間の関係を示す情報を含んだ履歴制御データである。
１９はルール検査に使用するルールパタンと過去に一致検出したルールパタンとの関連性を示す制御ＩＤ一致信号である。
２０はルール検査部０からルール検査部ｎに至る全てのルール検査部から出力される制御ＩＤ一致信号１９の集まりである制御ＩＤ一致信号群である。
２１はルール検査部０からルール検査部ｎに至る全てのルール検査部から出力される履歴制御データ１８の集まりである履歴制御データ群である。
２２はルール検査部０からルール検査部ｎに至る全てのルール検査部から出力されるパタン一致信号１６の集まりであるパタン一致信号群である。
２３から２５はルール一致の履歴を保管するｍ個の履歴管理レジスタである。
２６から２８は過去に一致を検知したルールパタンと連結するルールパタンの識別子を示すｍ本の履歴管理ネクストＩＤである。
２９はｍ本の履歴管理ネクストＩＤの集まりである履歴管理ネクストＩＤ群である。
３０は履歴管理レジスタ２３から２５の設定値を制御する履歴管理制御部である。
３１から３３は履歴管理レジスタ２３から２５への履歴管理レジスタ書き込みデータである。
３４から３５は履歴管理レジスタ２３から２５の履歴管理制御部３０への読み取りデータである。
【０００９】
履歴管理レジスタ２３から２５（検査状況情報記憶部）は、入力パケットに対する検査の進展状況を示す履歴情報（検査状況情報）を記録している。履歴情報の詳細は、後述するが、入力パケットに対する以前の検査においていずれかのパタン比較部６によりパタン一致が検知されたルールパタン（一致検知済ルールパタン）に連結するルールパタン（連結ルールパタン）を特定する履歴管理ネクストＩＤ、検査ルールの最終ルールパタンまでパタン一致が検知されたか否かを示すヒットフラグ、過去の検査においてパタン一致が検出されたルールパタンが検査ルールの先頭のルールパタンであるか否かを示す開始フラグなどが含まれる。
【００１０】
ルール検査部２、９及び１０において、パタン比較部６は、それぞれが、並行して、それぞれの検査対象となる比較用パケットデータ（対象検査範囲）と比較用パケットデータに対応してルール選択部３により複数のルールパタンの中から選択されたルールパタン（抽出ルールパタン）とを比較し、比較用パケットデータとルールパタンとのパタン一致の有無を通知するパタン一致信号１６を出力する。
【００１１】
また、ルール検査部２、９及び１０の制御情報メモリ７（制御情報記憶部）は、複数のルールパタンのそれぞれに対して履歴情報を更新するための制御情報を記憶しており、記憶している制御情報の中からルール選択部３により選択されたルールパタン（抽出ルールパタン）の制御情報を出力する。制御情報の詳細は、後述するが、ルールパタンの識別子である制御ＩＤ、制御ＩＤで識別されるルールパタンに連結する次のルールパタンを示すネクストＩＤ、制御ＩＤで識別されるルールパタンが検査ルールの先頭のルールパタンであるか否かを示す開始フラグ、制御ＩＤで識別されるルールパタンが検査ルールの最後のルールパタンであるか否かを示すエンドフラグなどが含まれる。
また、制御情報メモリ７は、制御ＩＤ以外の要素、すなわち、ネクストＩＤ、開始フラグ、エンドフラグ等を含む情報を履歴制御データ１８として出力する。
【００１２】
ルール検査部２、９及び１０の履歴情報比較部８（連結判定部）は、ルール選択部３により選択されたルールパタンごとに、履歴情報で特定されている履歴管理ネクストＩＤに一致するか否か（一致検知済ルールパタンの連結ルールパタンに該当するか否か）を判定し、履歴管理ネクストＩＤに一致するか否かを通知する制御ＩＤ一致信号（連結通知信号）を出力する。
【００１３】
履歴管理制御部３０（検査状況情報制御部）は、複数のパタン比較部６からのパタン一致信号群２２と複数の履歴情報比較部８からの制御ＩＤ一致信号群２０と複数の制御情報メモリ７からの履歴制御データ群２１を用いて、ルール検査部２、９及び１０における新たな検査結果を反映させて履歴管理レジスタ２３から２５の検査履歴を更新する。
具体的には、履歴管理制御部３０は、パタン一致信号においてパタン一致が通知され、制御ＩＤ一致信号において履歴管理ネクストＩＤに一致することが通知されているルールパタンの履歴制御データを用いて履歴管理レジスタの履歴情報を更新する。
また、履歴管理制御部３０は、パタン一致信号においてパタン一致が通知され、制御ＩＤ一致信号において履歴管理ネクストＩＤに一致することが通知されているルールパタンが複数存在する場合に、当該複数のルールパタンの履歴制御データを用いて複数の履歴情報を一斉に更新する。
【００１４】
次に、本実施の形態１に係るパケット検査装置１００の動作を図１８及び図１９を参照して説明する。
検査対象のパケットデータをパケット入力１１から入力すると、検査範囲制御部１でｎ個のルール検査部２、９及び１０に対応した複数の検査範囲でパケットを切り出し、各ルール検査部２、９及び１０へ各検査範囲に対応した絞込みデータ１２を出力する（Ｓ１８０１）。
ここで、各ルール検査部２、９及び１０の検査範囲は、例えば、図２２に示す検査範囲が考えられる。つまり、ルール検査部２が、最も狭い範囲である検査範囲０を検査対象とし、ルール検査部９が検査範囲０を含む検査範囲１を検査対象とし、ルール検査部１０が検査範囲１を含む検査範囲ｎを検査対象とする。
また、絞込みデータは、例えば、検査範囲のデータから求めたハッシュデータである。
絞込みデータ１２はルール選択部３に入力され、まずルール検査の要否が判定される。ルール検査の要否は、例えば、ハッシュデータである絞込みデータからルールパタンを選択するためのメモリ参照などの処理を行って、ルールメモリ４に登録されているルールパタンに一致する可能性を検査する。
ルール検査が必要な場合は、ルール選択部３は、検査用のルールパタンが保管されているルールメモリ４のルールメモリアドレス１３を出力する（Ｓ１８０２）。このアドレスによって、ルールメモリ４と制御情報メモリ７を同時に読み出す。
ルールメモリ４からはパケット検査用のルールパタン１５が出力される（Ｓ１８０３）。
一方、パケット入力１１はパケットバッファ５へも入力され、パケット検査に必要な比較用パケットデータ１４を出力する。比較用パケットデータ１４の出力タイミングは、対応するルールパタン１５の出力と同期させる。
パタン比較部６は、パケットバッファ５からの比較用パケットデータ１４（検査範囲のデータ）を入力するととともに、ルールメモリ４から出力されたルールパタン１５との比較を行う（Ｓ１８０４）（パタン比較ステップ）。比較結果は、パタン一致信号１６として出力する（Ｓ１８０５）（パタン比較ステップ）。
Ｓ１８０３のルールパタン１５の読み出しと並行して、制御情報メモリ７から当該ルールパタン１５の制御情報が出力される（Ｓ１８０６）。具体的には、制御情報メモリ７から制御ＩＤ１７と履歴制御データ１８が読み出される。制御ＩＤは、履歴情報比較部８に出力される。
履歴情報比較部８は、履歴管理レジスタ２３から２５からの履歴管理ネクストＩＤ群２９を入力し（Ｓ１８０８）、制御情報メモリ７からの制御ＩＤと履歴管理ネクストＩＤ群とを比較し、制御ＩＤがいずれかの履歴管理ネクストＩＤに一致するか否か、すなわち、ルールパタン１５が過去に一致検知されたルールパタンに連結するか否かを判断する（Ｓ１８０９）（連結判定ステップ）。そして、それぞれの比較結果をｍ本の制御ＩＤ一致信号１９として出力する（Ｓ１８１０）（連結判定ステップ）。
また、制御情報メモリ７が制御情報のうち制御ＩＤ以外の情報、ネクストＩＤや開始フラグ等を履歴制御データ１８として出力する（Ｓ１８０７）（制御情報出力ステップ）。
パタン一致信号１６、履歴制御データ１８、制御ＩＤ一致信号のそれぞれの出力タイミングは同じでもよいし、異なっていてもよい。
【００１５】
履歴管理制御部３０は、ｎ個のルール検査部２、９及び１０から出力される制御ＩＤ一致信号群２０、履歴制御データ群２１及びパタン一致信号群２２を入力し（Ｓ１９０１）（検査状況情報制御ステップ）、履歴管理レジスタ２３から２５へルール検査結果を反映する（Ｓ１９０２）（検査状況情報制御ステップ）。具体的は、履歴管理制御部３０は、パタン一致が通知され、制御ＩＤの一致が通知されたルールパタンについての履歴制御データを用いて履歴管理レジスタ２３から２５の記録内容を更新する。
反映されたルール検査結果は、履歴管理ネクストＩＤ群２９によって、全てのルール検査部２、９及び１０へ伝えられ、次の履歴情報比較に使用される。
履歴管理レジスタ２３から２５は、それぞれ独立に読み書きできるレジスタで、ビット単位で個別に読み書きできるフリップフロップで構成する。この構造によって、履歴管理制御部３０は、複数の履歴管理レジスタ２３から２５を個別かつ同時に読み書きし、複数のパケット検査結果を同時に反映する。
【００１６】
以上の動作により、ルール検査部２、９、１０においてパタン一致が検知されたルールパタンの次のルールパタンのＩＤが履歴管理レジスタ２３から２５より履歴管理ネクストＩＤ群２９としてルール検査部２、９、１０のそれぞれに入力されるので、ルール検査部２、９、１０は、異なるルール検査部でパタン一致が検知されたルールパタンを含めてルールパタン間の連結関係を判断することができる。この結果、履歴管理レジスタ２３から２５は、異なるルール検査部によりパタン一致が検知されたルールパタン間の連結関係も含めて記録することができる。
このため、ルール検査部２、９、１０において並行してパタン一致を判定しながら、連結関係にある複数のルールパタンを結びつけることができる。
【００１７】
次に、図２を用いてルールメモリ４と制御情報メモリ７の内容を説明する。
ルールメモリ４と制御情報メモリ７は同一のルールメモリアドレス１３で読み出す。ルールメモリ４には検査用のルールパタン１５を複数種類格納する。
制御情報メモリ７には、ルールパタン１５に対応した制御ＩＤ１７と履歴制御データ１８を格納する。
制御ＩＤ１７はルールメモリアドレス１３で関連付けられたルールパタンの識別子である。
履歴制御データ１８は、更に、ネクストＩＤ３７、開始フラグ３８、エンドフラグ３９、拡張ビット４０及び拡張マスク４１で構成する。ネクストＩＤ３７は制御ＩＤ１７で識別されるルールパタンに連結する次のルールパタン（連結ルールパタン）の識別子を表す。開始フラグ３８は制御ＩＤ１７で識別されるルールパタンが複数のルールパタンが連結した検査ルールの先頭のルールパタンか途中のルールパタンかを表す。エンドフラグ３９は制御ＩＤ１７で識別されるルールパタンが複数のルールパタンが連結した検査ルールの最後のルールパタンか否かを表す。拡張ビット４０は連結するルールパタンが複数存在するか否かを示す制御パタンであり、すなわち、連結したルールパタンの連結先を示す制御パタンである。拡張マスク４１は連結したルールパタン間の連結関係を特定するための制御パタンであり、すなわち、連結したルールパタンの連結元を識別する制御パタンである。
以上の構成によって、履歴制御データ１８によって、検査ルールを構成するルールパタン１５の属性を表現する。
【００１８】
次に、図３を用いて履歴管理レジスタ２３の内容を説明する。
履歴管理レジスタ２３は、ルール検査部がパタン一致を検知したルールパタンに対し次に連結するルールパタンの有無や分岐するルールパタンの有無などのルール検査の履歴、ルール検査の進展状況を記録する。
複数の履歴管理レジスタを用意することによって、複数のルールパタンの一致状況を記録する。
履歴管理ネクストＩＤ２６は制御情報メモリ７に保管されている履歴制御データ１８のネクストＩＤ３７の写しである。例えば、ルールパタンの一致が検知されたときの対応する履歴制御データ１８のネクストＩＤ３７を履歴管理レジスタ２３の本領域に保管し、以降で一致が検知されたルールパタンとの連結判定に使用する。
ヒットフラグ４２は履歴管理レジスタ２３に記録されているルールパタンに更に連結するルールパタンが無いことを示す。つまり、検査ルールに含まれる最終ルールパタンまで一致検知が行われたことを示す。例えば、単一のルールパタンから構成される検査ルールであれば、一致検知と同時に「１」を設定する。
有効ビット４３は、当該履歴管理レジスタ２３に有効な情報が記録されているか否かを示す。換言すれば、有効ビット４３は、検査ルールの先頭ルールパタンのパタン一致が検知済であることを示す。有効ビット４３は、システムリセット時に全て無効化されると共に、新たなパケットの検査開始前に全ての履歴管理レジスタ２３から２５の有効ビットを無効化する。これによって、パケット単位で、履歴管理を行う。
履歴管理拡張ビット４４は、履歴制御データ１８の拡張ビット４０の写しである。つまり、履歴管理拡張ビット４４は、連結するルールパタンが複数存在するか否かを示す。複数のルールパタン１５を連結して構成した検査ルールの最初のルールパタン１５との一致検知時に、履歴管理レジスタ２３に保管する。以降の連結するルールパタン１５との一致が検知された際、履歴制御データ１８の拡張マスク４１と履歴管理拡張ビット４４を比較し、履歴管理に使用する。
【００１９】
次に、図４を用いて履歴情報比較部８、履歴管理レジスタ２３から２５及び履歴管理制御部３０の関係について説明する。
ルール検査部２に含まれる履歴情報比較部８は、入力パケットとの一致が検知されたルールパタン１５に対応する履歴制御データ１８の制御ＩＤ１７と全ての履歴管理レジスタ２３から２５の履歴管理ネクストＩＤ２６から２８とをｍ個の制御ＩＤ比較回路４５から４７で比較する。
比較結果である制御ＩＤ一致信号４８から５０は他のルール検査部９から１０が出力する一致信号とともに、制御ＩＤ一致信号群２０として束ね、履歴管理制御部３０へ入力する。
ｎ個のルール検査部２、９及び１０は、各々、ｍ個の履歴管理レジスタ２３から２５より出力されたｍ個の履歴管理ネクストＩＤに対する比較結果をｍ個の制御ＩＤ一致信号１９として出力する。このため、制御ＩＤ一致信号群２０の信号本数は、履歴管理レジスタ２３から２５の数であるｍとルール検査部２、９及び１０の数であるｎの積で表される。
履歴管理制御部３０に入力された制御ＩＤ一致信号群２０は、履歴管理レジスタ２３から２５を個別に制御する履歴制御部０（５１）から履歴制御部ｍ（５３）へ入力し、対応する履歴管理レジスタ２３から２５の状態を制御する。制御ＩＤ一致信号群２０が出力される段階では、各ルール検査部２、９及び１０からそれぞれ、全履歴管理レジスタ２３から２５に対する一致信号が出力される。これらを履歴制御部０（５１）から履歴制御部ｍ（５３）に入力する際は、各ルール検査部２、９及び１０から出力され制御ＩＤ一致信号の中から、対応する履歴管理レジスタ２３から２５に相当する信号のみを入力する。例えば、ルール検査部２からは［００］ビットから［０ｍ］ビットまでの信号が出力されるが、履歴制御部０（５１）へは［００］ビットのみ入力する。代わりに、ルール検査部９及び１０から出力される［１０］ビットから［ｍ０］ビットまでのｍビットの一致信号を全て入力する。
履歴制御部０（５１）は履歴管理レジスタ２３の読み書きを制御する。例えば、ルールパタンが一致し（パタン一致信号によりルールパタンの一致を判別可能）、当該ルールパタンに関する履歴制御データ１８の開始フラグ３８が有効な場合、履歴制御部０（５１）は当該履歴制御データのネクストＩＤ３７を履歴管理レジスタ２３の履歴管理ネクストＩＤ２６に、拡張ビット４０を履歴管理拡張ビット４４に、それぞれ書き込み、有効ビット４３を有効にする。もし、履歴制御データのエンドフラグ３９が有効な場合は、検査ルールの最終ルールパタンまで一致検知されているので、履歴管理レジスタ２３のヒットフラグ４２を有効にする。
なお、新しい履歴制御データを履歴管理レジスタ２３から２５のいずれのレジスタに書き込むかは、履歴管理レジスタポインタ５４で指定する。履歴管理レジスタポインタ５４は、パケット検査開始前に、最初のエントリである履歴管理レジスタ２３を指し示しており、履歴管理レジスタ２３がの有効ビット４３が有効になった時点で、次の履歴管理レジスタ２４を指し示すよう更新する。ここでは、履歴管理レジスタポインタ５４をカウンタで構成し、履歴管理レジスタ２３から２５に有効なエントリが作られるたびにカウント値を増加する方法を想定する。
履歴制御部０（５１）から履歴制御部ｍ（５３）へは履歴制御データ群２１とパタン一致信号群２２を入力する。これらは全ての履歴制御部０（５１）から履歴制御部ｍ（５３）へ同じ信号を供給する。これによって、履歴管理レジスタ２３から２５への書き込みデータを供給すると共に、対応するルールパタン１５がパケットと一致したか否かを履歴制御部０（５１）から履歴制御部ｍ（５３）へ通知する。
履歴制御部０（５１）から履歴制御部ｍ（５３）は、制御ＩＤ一致信号群２０とパタン一致信号群２２及び履歴管理レジスタポインタ５４に基づき、担当する履歴管理レジスタ２３から２５を更新するか否かをおのおの自律的に判断する。
【００２０】
次に、図５から図７を用いて検査ルールの表現方法について説明する。
【００２１】
図５は最初の検知のみで検査を完了する単独のルールパタン１５で検査ルールを表現する場合を示す。
ここでは、ルールパタン１５と履歴制御データ１８の組として表した。ルールパタン１５として「ａｂｃｄ」を指定し、制御ＩＤ１７とネクストＩＤ３７には検査ルールの識別子であるルールＩＤ５５を指定する。開始フラグ３８とエンドフラグ３９を共に「１」に指定することで、最初の履歴制御データであると共に最後の履歴制御データでもあることを示す。これによって、単独の検査ルールであることを表す。連結するルールパタンは無いので、拡張ビット４０と拡張マスク４１とを共にゼロにする。
【００２２】
図６は３つのルールパタン１５で一連の検査ルールを表す例を示す。
「ａｂｃｄ」の次に「ｇｈｊｋ」、最後に「ｘｙｚ」が続くデータパタンを含んだパケットを見つける検査ルールである。
まず、「ａｂｃｄ」のルールパタン１５に対応する履歴制御データ１８は、制御ＩＤ１７としてルールＩＤを、ネクストＩＤ３７として中間ＩＤ０（ＭＩＤ０）を指定する。このルールは最初のルールパタン１５で、制御ＩＤ１７は履歴制御に使用されないため、任意のデータでよいが、ここでは、ルールＩＤとした。ネクストＩＤ３７は、履歴管理レジスタ２３の履歴管理ネクストＩＤ２６として記録され、後続のルールパタン１５との連結判定に使用する。具体的には、次のルールパタン１５である「ｇｈｊｋ」の制御ＩＤ１７と同じ値とする。こうすることで、「ｇｈｊｋ」が検知された際、制御ＩＤ１７（ＭＩＤ０）と「ａｂｃｄ」のルールパタン１５検知時に記録した履歴管理レジスタ２３の履歴管理ネクストＩＤ２６（ＭＩＤ０）が一致し、連結関係を判定できる。
「ｇｈｊｋ」のルールパタン１５に対応した履歴制御データ１８のネクストＩＤ３７は３番目のルールパタン１５である「ｘｙｚ」の制御ＩＤ１７と同じ中間ＩＤ１（ＭＩＤ１）とする。このように、３つのルールパタン１５の連結関係を表す。
開始フラグ３８とエンドフラグ３９については、最初の履歴制御データ１８のみ開始フラグ３８を「１」に指定すると共に、３番目の履歴制御データ１８のみエンドフラグ３９を「１」に指定する。２番目の履歴制御データ１８は中間データのため、開始フラグ３８及びエンドフラグ３９共に「０」を指定する。なお、拡張ビット４０と拡張マスク４１は使用しないため、全ての履歴制御データ１８について「０」を指定する。
【００２３】
図７は２系統に分岐する検査ルールを表す。
図７では、「ａｂｃｄ」を基点とする２つの検査ルールが存在する例を示している。一つ目の検査ルールは「ａｂｃｄ」→「ｇｈｉｊ」→「ｘｙｚ」というルールパタンの連結により構成される検査ルールであり、二つ目の検査ルールは「ａｂｃｄ」→「ｏｐｑｒ」→「ｖｗｘ」というルールパタンの連結により構成される検査ルールである。
制御ＩＤ１７とネクストＩＤ３７による連結表現を元に、拡張ビット４０と拡張マスク４１を用いて分岐を表現する。ルールパタン１５が「ａｂｃｄ」のルールが基点で、開始フラグ３８を「１」とする。この時、同時に、拡張ビット４０を４ビットのバイナリ表現で「００１１」と指定する。次のルールパタンとの連結はネクストＩＤ３７として中間ＩＤ０（ＭＩＤ０）を指定することで表現する。
このルールパタンに続くルールパタン１５は、「ｇｈｉｊ」と「ｏｐｑｒ」で、いずれも制御ＩＤ１７を中間ＩＤ０（ＭＩＤ０）とすることで表現する。また、拡張マスク４１をそれぞれ「０００１」と「００１０」とすることで、最初のルールの拡張ビット４０で指定した「００１１」との関係を表現する。
拡張ビット４０の４ビットはそれぞれ分岐先を示している。拡張ビット４０が４ビットというのは、最大で４系統の分岐先の候補を管理可能であることを示す。「００１１」の拡張ビット４０は、ＯＮ位置に着目すると、「０００１」と「００１０」を包含しており、分岐先の候補として「０００１」と「００１０」の２系統が存在することを示す。そして、拡張ビット４０のＯＮ位置と拡張マスク４１のＯＮ位置の一致により分岐先を特定することができる。
履歴制御にあたっては、最初のルールで履歴管理レジスタ２３の履歴管理拡張ビット４４に「００１１」を設定する。以降のルールパタンでもし、「００１０」に相当するルールパタン（拡張マスク４１に「００１０」が示されたルールパタン）が検知された場合、履歴管理拡張ビット４４を「０００１」に変更し、「００１０」に相当するルールに関する履歴を新たに履歴管理レジスタ２４に設ける。この時点で、履歴管理レジスタ２３には最初のルールに対応した履歴情報が残り、履歴管理レジスタ２４には分岐した中間ルールの履歴が残る。履歴管理レジスタ２４に残った履歴情報については、次に「０００１」を持ったルールが検知された時点で上書きする。これによって、２分岐を実現する。ここでは、４ビットのバイナリデータで分岐条件を表現し、４分岐まで可能とした。分岐後のルールの連結関係は、図６で説明したのと同様に表現する。エンドフラグ３９を「１」とすることで、一連の検査の完了を表現する。
ここでは、ルールパタン１５が「ｘｙｚ」のルールがルールパタン１５が「ｇｈｉｊ」のルールへ分岐した場合の最終パタンである。
また、ルールパタン１５が「ｖｗｘ」のルールがルールパタン１５が「ｏｐｑｒ」のルールへ分岐した場合の最終パタンである。
なお、拡張ビット４０は途中のルールでも有効で、途中から更に分岐するルールを記述することもできる。これによって、複数分岐を含むツリー構造のルールを記述することができる。
【００２４】
図８にツリー構造の例を示す。
各丸は個別のルールパタンを持つルールを示し、矢印で分岐先を示す。最後の丸の横に、一連の検査ルールを識別するルールＩＤを示す。例えば、ルールＩＤ３７の検査ルールは、Ｒ１から始まって、Ｒ３０、Ｒ３１、Ｒ３５そしてＲ３８の順でルールパタンが検知される場合を表している。
【００２５】
次に、図９から図１１を用いて検査ルールの処理手順を説明する。
【００２６】
図９は最初の検知のみで検査を完了する単独のルールパタン１５の処理手順を表す。
図の左に履歴管理レジスタ２３の値を、右にパケットと一致したルールパタン１５の履歴制御データ１８の値を示す。
ここでは、履歴管理レジスタ２３の初期値として有効ビット４３が「０」の無効状態を示す。無効状態では、その他のビットは全て無視される。入力パケットの検査開始時点では全ての履歴管理レジスタ２３から２５は無効状態とする。
この状態で、入力パケット（比較用パケットデータ１４）とルールパタン１５の一致をパタン比較部６が検知すると、履歴制御部０（５１）が、対応する履歴制御データ１８のネクストＩＤ３７を履歴管理レジスタ２３の履歴管理ネクストＩＤ２６に書き込む。ここでは、単独ルールのため、ルールＩＤが書き込まれる。同時に、履歴制御部０（５１）がエンドフラグ３９の値をヒットフラグ４２に、拡張ビット４０の値を履歴管理拡張ビット４４へ書き込む。
ついで、履歴制御部０（５１）が有効ビット４３を「１」に設定し、履歴管理レジスタ２３を有効状態にする。
以上により、履歴管理レジスタ２３は、ルールＩＤで示す検査ルールに合致した旨の記録を保持する。
【００２７】
図１０は３つのルールパタンを単純に連結した場合の処理手順を示す。
無効状態の履歴管理レジスタ２３に対し、履歴制御データ１８により、最初の設定値が指定される。
ここでは、ネクストＩＤ３７として中間ＩＤ０が指定されているので、履歴制御部０（５１）が履歴管理ネクストＩＤ２６へこの中間ＩＤ０を書き込む。また、履歴制御部０（５１）はエンドフラグ３９をヒットフラグ４２に書き込むが、最終パタンでないため、「０」が書き込まれる。拡張ビット４０も使用しないため、履歴管理拡張ビット４４へはそのまま「０」が書き込まれる。ついで、履歴制御部０（５１）は有効ビット４３を「１」に設定する。
【００２８】
２番目のルールパタンと入力パケット（比較用パケットデータ１４）の一致がパタン比較部６により検知されると、履歴制御データ１８の制御ＩＤ１７として中間ＩＤ０が制御情報メモリ７から履歴情報比較部８により読み出される。この値と履歴管理レジスタ２３の履歴管理ネクストＩＤ２６が一致するため（制御ＩＤ比較回路００（４５）が一致・不一致の判断を行う）、履歴制御部０（５１）が履歴管理レジスタ２３の履歴管理ネクストＩＤ２６をネクストＩＤ３７が示している中間ＩＤ１に変更する。この時、履歴制御部０（５１）はエンドフラグ３９もヒットフラグ４２に上書きするが、ここでは「０」のため、制御ＩＤ比較回路００（４５）がルールの連結検査を継続する。
【００２９】
この状態で、３番目のルールパタンと入力パケット（比較用パケットデータ１４）の一致がパタン比較部６により検知されると、履歴制御データ１８の制御ＩＤ１７として中間ＩＤ１が制御情報メモリ７から履歴情報比較部８により読み出される。この値と履歴管理レジスタ２３の履歴管理ネクストＩＤ２６が一致するため（制御ＩＤ比較回路００（４５）が一致・不一致の判断を行う）、履歴制御部０（５１）が履歴管理レジスタ２３の履歴管理ネクストＩＤ２６をネクストＩＤ３７が示しているルールＩＤに変更する。この時も、履歴制御部０（５１）はエンドフラグ３９をヒットフラグ４２に上書きするが、ここではエンドフラグ３９の値が「１」のため、履歴制御部０（５１）はヒットフラグ４２に「１」を設定し、一連の検査ルールに合致したことを示す。
なお、この例では、３つのルールで一つの一連の検査ルールを表したが、４つ以上のルールを連結させても履歴管理レジスタの数を増やすことなく、同様に処理できる。
【００３０】
図１１は分岐したルールの処理手順を示す。
無効状態の履歴管理レジスタ２３に対し、履歴制御データ１８により、最初の設定値が指定される。ここでは、ネクストＩＤ３７として中間ＩＤ０が指定されているので、履歴制御部０（５１）は履歴管理ネクストＩＤ２６へはこの中間ＩＤ０を書き込む。また、履歴制御部０（５１）はエンドフラグ３９をヒットフラグ４２に書き込むが、最終パタンでないため、「０」が書き込まれる。拡張ビット４０にはバイナリデータで「００１１」が指定されているので、履歴制御部０（５１）は履歴管理拡張ビット４４に「００１１」を書き写す。ついで、履歴制御部０（５１）が有効ビット４３を「１」に設定する。
【００３１】
２番目のルールパタンと入力パケット（比較用パケットデータ１４）の一致がパタン比較部６により検知されると、履歴制御データ１８の制御ＩＤ１７として中間ＩＤ０が制御情報メモリ７から履歴情報比較部８により読み出される。この値と履歴管理レジスタ２３の履歴管理ネクストＩＤ２６が一致するとともに（制御ＩＤ比較回路００（４５）が一致・不一致の判断を行う）、履歴管理レジスタ２３の履歴管理拡張ビット４４に履歴制御データ１８の拡張マスク４１が包含されるため（履歴制御部０（５１）が包含の有無の判断を行う）、履歴制御部１（５２）は新たに履歴管理レジスタ２４の履歴管理ネクストＩＤ２７に履歴制御データ１８のネクストＩＤ３７で示される中間ＩＤ１を書き込む。ついで、履歴制御部１（５２）は履歴制御データ１８のエンドフラグ３９と拡張ビット４０を書き込み、有効ビット４３を「１」に設定する。ここでのエンドフラグ３９は「０」のため、履歴管理レジスタ２４は中間ＩＤ１を持つルールの検知待ち状態を示す。なお、履歴管理レジスタ２３の履歴管理拡張ビット４４は、拡張ビット４０に「０００１」を持つルールによって新たな履歴に分岐したことから、履歴制御部０（５１）は対応するビットをクリアし、「００１０」に変更する。
【００３２】
３番目のルールパタンと入力パケット（比較用パケットデータ１４）の一致がパタン比較部６により検知されると、履歴制御データ１８の制御ＩＤ１７として中間ＩＤ０が制御情報メモリ７から履歴情報比較部８により読み出される。この値と履歴管理レジスタ２３の履歴管理ネクストＩＤ２６が一致するとともに（制御ＩＤ比較回路００（４５）が一致・不一致の判断を行う）、履歴管理レジスタ２３の履歴管理拡張ビット４４と履歴制御データ１８の拡張マスク４１が一致するため（履歴制御部０（５１）が一致・不一致の判断を行う）、履歴制御部０（５１）は履歴管理レジスタ２３の履歴管理ネクストＩＤ２６に履歴制御データ１８のネクストＩＤ３７で示される中間ＩＤ２を上書きする。ついで、履歴制御部０（５１）は履歴制御データ１８のエンドフラグ３９と拡張ビット４０をヒットフラグ４２と履歴管理拡張ビット４４にそれぞれ上書きする。ここでのエンドフラグ３９は「０」のため、履歴管理レジスタ２３は中間ＩＤ２を持つルールの検知待ち状態を示す。
【００３３】
４番目のルールパタンと入力パケット（比較用パケットデータ１４）の一致がパタン比較部６により検知されると、履歴制御データ１８の制御ＩＤ１７として中間ＩＤ１が制御情報メモリ７から履歴情報比較部８により読み出される。この値と履歴管理レジスタ２４の履歴管理ネクストＩＤ２７が一致するとともに（履歴制御部１（５２）が一致・不一致の判断を行う）、履歴管理レジスタ２４の履歴管理拡張ビット４４がゼロのため、履歴制御部１（５２）は履歴管理レジスタ２４の履歴管理ネクストＩＤ２７に履歴制御データ１８のネクストＩＤ３７で示されるルールＩＤ１を上書きする。ついで、履歴制御部１（５２）は履歴制御データ１８のエンドフラグ３９をヒットフラグ４２に上書きする。ここではエンドフラグ３９の値が「１」のため、ヒットフラグ４２に「１」が設定され、一連の検査ルールに合致したこと示す。
なお、分岐せずにルールを連結する間は図８と同様に処理できる。
分岐する場合、ここでは２分岐の例を示したが、拡張ビットのビット数に応じて分岐先を増やすことができる。
また、連結したルールの任意の段階で拡張ビットを指定でき、その段階から分岐を処理することができる。つまり、複数分岐によるツリー構造の検査ルールを処理できる。
【００３４】
図１２に履歴管理レジスタ２３から２５の登録例を示す。
ここでは、各レジスタをＲ０からＲｍまでのレジスタ名称で表す。
Ｒ０からＲ３までは有効ビット４３に「１」が設定され、有効な情報が保持されていることを示す。Ｒ４以降は有効ビット４３が「０」のため、内容は無効であることを示す。
履歴管理レジスタポインタ５４は次に使用するエントリを示し、ここでは、Ｒ４を示している。Ｒ１とＲ３はヒットフラグ４２が「１」のため、Ｒ１はルールＩＤ０の検査ルールに合致し、Ｒ３はルールＩＤ１の検査ルールに合致したことを示す。
一方、Ｒ０とＲ２はヒットフラグ４２が「０」のため、ルール検査が完了していないことを示している。Ｒ０は中間ＩＤ０のルール検知待ちの状況である。Ｒ２は、履歴管理拡張ビット４４が「０００１」のため、中間ＩＤ１かつ拡張マスク４１が「０００１」のルール検知待ちの状況を示す。一つのパケットの検査を終了するたびに、そのパケットの検査履歴として図１２に示すような値を得る。
次のパケットの検査時には、全てのレジスタを無効化すると共に、履歴管理レジスタポインタ５４をＲ０に設定することで、Ｒ０から新たに記録を開始する。
【００３５】
以上のように、本実施の形態に係るパケット検査装置は連結した複数のルールの組み合わせでパケットを検査するようにしているので、複数のパタンの組み合わせによる攻撃を検知することができる。
また、複数のルールへの一致状況を同時に複数記録するようにしているので、多くの最後まで一致しないルール（途中のルールパタンまでパタンが一致する場合）も同時に処理でき、ソフトウェアなどで逐次検査する場合に比べ、より多くの検査をより高速に処理できる。
また、複数のルールへの一致状況を同時に複数記録することで、途中のルールパタンまでパタンが一致する入力パケットに対する検査結果を保持することができる。このような途中のルールパタンまで一致する入力パケットは、不正パケットとは断定できないものの不正パケットの可能性があるため、更なる解析の対象にしたり、将来の検査ルールの策定の際の資料にすることが可能である。
更に、ルール記述を複数に分岐できるようにしているので、類似のルールをコンパクトに表現できると共に、装置に保管する必要がある検査ルールのデータ量を削減できる。
【００３６】
以上のように、本実施の形態では、以下の手段を備えたパケット検査装置について説明した。
（ａ）パケットの全領域を対象に複数のルールパタンとの一致を検査し、全ての一致検知を報告するルール検査手段；
（ｂ）ルールパタン間の関係を記述した制御情報を保管する制御情報記憶手段；
（ｃ）ルールパタンの一致状態を複数記憶する複数の履歴管理情報保持手段；
（ｄ）一致検知されたルールパタンに対応する制御情報と複数の履歴管理保持手段に保持された過去のルールパタン一致状態との一致を調べる複数の履歴情報比較手段；
（ｅ）複数の履歴情報比較手段による一致情報と一致検知されたルールパタンに対応する制御情報を元に、該当する複数の履歴管理保持手段に保持された複数の履歴情報を同時に更新する履歴管理制御手段。
【００３７】
また、本実施の形態では、制御情報記憶手段に記憶される制御情報は、ルールパタンを識別する制御ＩＤと当該ルールパタンの次に検知すべきルールパタンの制御ＩＤを示すネクストＩＤと当該ルールパタンが連結したルールの最初のルールであることを示す開始フラグと当該ルールパタンが連結したルールの最後のルールであることを示すエンドフラグとを含むことを説明した。
【００３８】
また、本実施の形態では、制御情報記憶手段に記憶される制御情報は、更に、複数の連結先を示す拡張ビットと連結元との関係を示す拡張マスクとを含むことを説明した。
【００３９】
また、本実施の形態では、履歴管理情報保持手段は、連結したルールの次のルールを示す履歴管理ネクストＩＤと連結したルールの最後のルールまで一致が検知されたことを示すヒットフラグと当該履歴管理情報保持手段が有効な内容を保持していることを示す有効ビットとを含むことを説明した。
【００４０】
また、本実施の形態では、履歴管理情報保持手段は、更に、複数の分岐先の存在を示す履歴管理拡張ビットを含むことを説明した。
【００４１】
また、本実施の形態では、履歴管理制御手段は、一致が検知されたルールパタンに対応する制御情報の開始フラグが有効な場合、履歴管理保持手段に新たに有効なエントリを生成し、当該エントリの履歴管理ネクストＩＤに制御情報に含まれるネクストＩＤを書き込み、当該エントリのヒットフラグに制御情報に含まれるエンドフラグを書き込み、当該エントリの履歴管理拡張ビットに制御情報に含まれる拡張ビットを書き込むことを説明した。
【００４２】
また、本実施の形態では、複数の履歴情報比較手段は、一致を検知したルールパタンに対応する制御ＩＤと複数の制御情報記憶手段に記憶された全ての履歴管理ネクストＩＤとを比較することを説明した。
【００４３】
また、本実施の形態では、履歴管理制御手段は、一致が検知されたルールパタンに対応する制御情報の制御ＩＤと履歴管理保持手段の有効なエントリに保持されている履歴管理ネクストＩＤとの一致が履歴情報比較手段から通知された場合、履歴管理保持手段の当該エントリの履歴管理ネクストＩＤに制御情報に含まれるネクストＩＤを書き込み、当該エントリのヒットフラグに制御情報に含まれるエンドフラグを書き込み、当該エントリの履歴管理拡張ビットに制御情報に含まれる拡張ビットを書き込むことを説明した。
【００４４】
また、本実施の形態では、制御情報に含まれる拡張マスクが履歴管理保持手段の当該エントリの履歴管理拡張ビットに包含される場合、履歴管理制御手段は、履歴管理保持手段に新たに有効なエントリを生成し、新たなエントリの履歴管理ネクストＩＤに制御情報に含まれるネクストＩＤを書き込み、新たなエントリのヒットフラグに制御情報に含まれるエンドフラグを書き込み、新たなエントリの履歴管理拡張ビットに制御情報に含まれる拡張ビットを書き込むことを説明した。
【００４５】
また、本実施の形態では、履歴管理制御手段は、履歴管理保持手段の当該エントリの履歴管理拡張ビットの内、制御情報に含まれる拡張マスクが有効と指定する情報を無効化することを説明した。
【００４６】
また、本実施の形態では、制御情報に含まれる拡張マスクが履歴管理保持手段の当該エントリの履歴管理拡張ビットと一致する場合、履歴管理制御手段は、履歴管理保持手段の当該エントリの履歴管理ネクストＩＤに制御情報に含まれるネクストＩＤを書き込み、当該エントリのヒットフラグに制御情報に含まれるエンドフラグを書き込み、当該エントリの履歴管理拡張ビットに制御情報に含まれる拡張ビットを書き込むことを説明した。
【００４７】
また、本実施の形態では、検査用のルールパタンの読み出しと同時に、ルールパタンに対応する制御情報を制御情報記憶手段から読み出すことを説明した。
【００４８】
実施の形態２．
その他の実施の形態について、図１３と図１４を用いて説明する。
図１３において、５５以降が新規の構成要素であり、その他は図１と同じである。
５５はルールパタン１５と対応した制御情報メモリ７内の制御ＩＤ１７及び履歴制御データ１８を指し示すアドレスを保管する制御情報アドレスメモリである。
５６はルールパタン１５と一致した入力パケットのデータ開始位置を示すパケットポインタである。パケットポインタは、例えば図２１、図２２に示すものと同様である。但し、図２１及び図２２のパケットポインタは検査範囲のデータ終了位置を示しているが、本実施の形態の形態のパケットポインタは検査範囲のデータ開始位置を示している点が異なる。
５７はルール検査部２、９及び１０からのパタン一致情報を集め、一列に並べて送り出す順序制御部である。
５８は入力パケットとルールパタン１５との一致が検知されるたびに出力されパタン一致情報である。
５９はパタン一致情報５８を元に制御情報メモリ７から制御ＩＤ１７を読み出し、当該制御ＩＤ１７と履歴管理レジスタ２３から２５の履歴管理ネクストＩＤ２６から２８とを比較するルール履歴検査部である。
６０は制御情報アドレスメモリ５５から読み出され、制御情報メモリ７のアドレスを示す制御情報メモリアドレスである。
６１は履歴管理レジスタ２３から２５に値を設定するタイミングを指示する履歴管理レジスタ設定指示信号である。
６２はパタン一致の履歴を記録するルール履歴記録部である。
【００４９】
図１４は複数のルール検査部２、９及び１０から出力される制御情報アドレスメモリ５５とルール履歴記録部６２内に設けた制御情報メモリ７の内容との関係を示したものである。
実施の形態１でルール検査部２、９及び１０に分散配置していた制御情報メモリ７をルール履歴記録部６２内の制御情報メモリ７に集約した。ルールパタン１５と制御ＩＤ１７及び履歴制御データ１８とのつながりを制御情報メモリアドレス６０としてルール検査部２、９及び１０の制御情報アドレスメモリ５５に記録しておく。
【００５０】
次に動作について説明する。
パケット入力１１から求めたルールメモリアドレス１３でルールメモリ４からルールパタン１５を読み出すと同時に、制御情報アドレスメモリ５５から制御情報メモリアドレス６０（アドレス情報）を読み出し、順序制御部５７へ送る。
引き続き、パタン比較部６でルールパタン１５と比較用パケットデータ１４を比較し、一致が検知された場合、パタン一致信号１６と共に比較用パケットデータ１４の入力パケット上の位置を示すパケットポインタ５６を順序制御部５７へ送る。
順序制御部５７は複数のルール検査部２、９及び１０から送られるパタン一致信号１６とパケットポインタ５６の値からパケットポインタ５６の値が小さい順にパタン一致情報５８としてルール履歴記録部６２へ送り出す。このパタン一致情報５８には制御情報メモリアドレス６０を含める。
順序制御部５７の動作としては、例えば、共通のルールパタンについてのパタン一致信号１６と制御情報メモリアドレス６０とを対応付けてパタン一致情報５８とするとともに、パケットポインタに示された検査範囲（比較用パケットデータ１４）の入力パケットにおける位置に従い、検査範囲が入力パケットの先頭に近い順にパタン一致信号１６とアドレス情報６０の組（パタン一致情報）を整列させる。
ルール履歴記録部６２は受け取ったパタン一致情報５８をルール履歴検査部５９へ送る。
ルール履歴検査部５９は、パタン一致情報５８の中から制御情報メモリアドレス６０を取り出し、順序制御部５７による整列順に従って、順次、制御情報メモリアドレス６０を制御情報メモリ７に渡す。制御情報メモリ７は、順序制御部５７による整列順に、制御情報メモリアドレス６０に示された格納アドレスから、順次、対応する制御ＩＤ１７を読み出す。同時に、制御情報メモリ７は、履歴制御データ１８も読み出し、履歴管理制御部３０へ送る。
ルール履歴検査部５９は制御情報メモリ７から読み出した制御ＩＤ１７と履歴管理レジスタ２３から２５の履歴管理ネクストＩＤ２６から２８を比較し、比較結果を制御ＩＤ一致信号１９として履歴管理制御部３０へ送る。同時に、制御ＩＤ一致信号１９の有効タイミングを示すため、履歴管理レジスタ設定指示信号６１を履歴管理制御部３０へ送る。
履歴管理制御部３０は実施の形態１におけるパタン一致信号群２２の代わりに制御ＩＤ一致信号１９を使用して、履歴管理レジスタ２３から２５を制御する。制御方法は、実施の形態１において単一のルール検査部２からルール一致の信号を受け取った場合と同じである。
【００５１】
この実施の形態によれば、ルール検査部２、９及び１０とルール履歴記録部６２の間の結合を疎にできるため、接続信号数を削減できると共に、より低価格な２つのＬＳＩやＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などに分割して実装できる。
【００５２】
本実施の形態では、制御情報アドレスメモリを設け、検査用のルールパタンの読み出しと同時に、ルールパタンに対応する制御情報を記憶した制御情報記憶手段のアドレスを制御情報アドレスメモリから読み出し、当該アドレスを用いて制御情報記憶手段から制御情報を読み出すパケット検査装置について説明した。
【００５３】
また、本実施の形態では、制御情報アドレスメモリから読み出した制御情報記憶手段のアドレスを、対応するルールパタンのパケット上の開始位置がパケット先頭に近い順に整列し、整列した当該アドレスを用いて制御情報記憶手段からルールパタンに対応する制御情報を逐次読み出すことについて説明した。
【００５４】
実施の形態３．
その他の実施の形態について、図１５を用いて説明する。
図１５は実施の形態２を拡張した形態で、ルール履歴記録部６２で採取した履歴情報をマイクロプロセッサで更に処理する形態を示す。
６３は履歴情報を処理するマイクロプロセッサ（外部装置）である。
６４はマイクロプロセッサが使用するメモリである。
６５はマイクロプロセッサ６３からルール履歴記録部６２の情報を読み取ったり制御したりするための入出力バスである。
【００５５】
次に動作について説明する。
マイクロプロセッサ６３はルール履歴記録部６２からパケット単位で集めた図１２に示すような履歴情報を入出力バス６５経由で読み取り、メモリ６４に保管する。
マイクロプロセッサ６３はメモリ６４に保管した情報を元に、更に複雑な処理を行う。
ここで、ルール履歴記録部６２を複数台設けることによって、例えば、一台のルール履歴記録部０でパケットのルール一致情報を集めつつ、ルール履歴記録部１から直前のパケットに関する履歴情報をマイクロプロセッサで読み取る動作を行う。残りのルール履歴記録部は内部を初期化する等の準備を行う。
【００５６】
この実施の形態によれば、履歴データの記録と読み取りを並行して実行できるため、読み取り時間に余裕ができ、より多くの情報を記録し、高速に読み取ることができる。
【００５７】
本実施の形態では、一つの入力パケットに対する検査が終了した際に、ルール履歴記録部６２（検査状況情報記憶部）に記憶されている履歴情報（検査状況情報）を外部装置たるマイクロプロセッサに対して出力することを説明した。
【００５８】
実施の形態４．
その他の実施の形態について、図１６と図１９を用いて説明する。
図１６は実施の形態２のルール検査部２、９及び１０をＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ：連想記憶メモリ）に置き換えた形態である。
６６はパケット入力１１から検査範囲を切り出すパケット切り出し部である。
６７は検査パタンを保管しパケットとの一致を調べるＣＡＭである。
６８はパケット入力１１から検査範囲として切り出した検索データである。
６９は検索データ６８によるＣＡＭ６７の検索で一致が発見された検査パタンが保管されているＣＡＭ内のアドレスを示す一致アドレスである。
７０は一致アドレス６９からルール履歴記録部６２にルール一致の履歴を記録させるために必要なパタン一致情報５８を生成する一致情報送出部である。
【００５９】
図１７はＣＡＭ６７内に保管されているルールパタン１５とルール履歴記録部６２内の制御情報メモリ７の内容の関連を示した図である。
ＣＡＭ６７のエントリーアドレスを制御情報メモリ７のアドレスと一対一に対応付け、ルールパタン１５を保管しているＣＡＭ内のアドレスから直接制御情報メモリ７内に保管しているルールパタン１５に対応した制御ＩＤ１７及び履歴制御データ１８を読み出せるようにする。
つまり、ＣＡＭ６７は、制御情報メモリ７におけるそれぞれの制御情報の格納アドレスを管理し、ルールパタンの抽出と同時に、抽出したルールパタンの制御情報が格納されている格納アドレスを示すアドレス情報を制御情報メモリ７に出力する。
【００６０】
次に動作について説明する。
パケット切り出し部６６はパケット入力１１からＣＡＭ６７を検索するに必要なバイト長の検索データ６８を切り出し、ＣＡＭ６７に供給する。
ＣＡＭ６７は与えられた検索データ６８で記憶している検査パタンとの一致を検査し、一致が発見された場合、一致した検査パタンの記憶位置を示す一致アドレス６９を一致情報送出部７０に送る。
一致情報送出部７０は、一致アドレス６９を含むパタン一致情報５８をルール履歴記録部６２に送る。
ルール履歴記録部６２の以降の動作は、実施の形態２と同じである。
パケット入力１１を１バイトずつずらしながらパケット切り出し部に入力することで、パケット全体を検査する。
【００６１】
この実施の形態によれば、ＣＡＭを利用したより簡便なパタン検索との組み合わせでパケットを検査できるので、安価な装置を構成できる。
【００６２】
本実施の形態では、ルール検査手段をＣＡＭで構成し、パケットと一致した検索パタン格納アドレスによって制御情報記憶手段から検索パタンに対応する制御情報を読み出すことについて説明した。
【図面の簡単な説明】
【００６３】
【図１】実施の形態１に係るパケット検査装置の構成例を示す図。
【図２】実施の形態１に係るパケット検査装置のルールメモリと制御情報メモリの関係を示す図。
【図３】実施の形態１に係る履歴管理レジスタに記憶される履歴情報の構成例を示す図。
【図４】実施の形態１に係るパケット検査装置におけるルール検査部と履歴管理制御部の動作例を示す図。
【図５】実施の形態１に係る単一のルールパタンから構成される検査ルールの制御情報の構成例を示す図。
【図６】実施の形態１に係る複数のルールパタンから構成される検査ルールの制御情報の構成例を示す図。
【図７】実施の形態１に係る複数のルールパタンから構成され、複数の分岐先が存在する検査ルールの制御情報の構成例を示す図。
【図８】実施の形態に係る複数のルールパタンから構成され、複数の分岐先が存在する検査ルールをツリー構造にて示す図。
【図９】実施の形態１に係る単一のルールパタンから構成される検査ルールに対する処理手順例を示す図。
【図１０】実施の形態１に係る複数のルールパタンから構成される検査ルールに対する処理手順例を示す図。
【図１１】実施の形態１に係る複数のルールパタンから構成され、複数の分岐先が存在する検査ルールに対する処理手順例を示す図。
【図１２】実施の形態１に係る履歴管理レジスタの登録例を示す図。
【図１３】実施の形態２に係るパケット検査装置の構成例を示す図。
【図１４】実施の形態２に係るパケット検査装置の制御情報アドレスメモリと制御情報メモリの関係を示す図。
【図１５】実施の形態３に係るパケット検査装置の構成例を示す図。
【図１６】実施の形態４に係るパケット検査装置の構成例を示す図。
【図１７】実施の形態４に係るパケット検査装置におけるＣＡＭの動作例を示す図。
【図１８】実施の形態１に係るパケット検査装置の動作例を示すフローチャート図。
【図１９】実施の形態１に係るパケット検査装置の動作例を示すフローチャート図。
【図２０】従来技術を示す図。
【図２１】従来技術を示す図。
【図２２】従来技術を示す図。
【符号の説明】
【００６４】
１  検査範囲制御部、２  ルール検査部０、３  ルール選択部、４  ルールメモリ、５  パケットバッファ、６  パタン比較部、７  制御情報メモリ、８  履歴情報比較部、９  ルール検査部１、１０  ルール検査部ｎ、１１  パケット入力、１２  絞込みデータ、１３  ルールメモリアドレス、１４  比較用パケットデータ、１５  ルールパタン、１６  パタン一致信号、１７  制御ＩＤ、１８  履歴制御データ、１９  制御ＩＤ一致信号、２０  制御ＩＤ一致信号群、２１  履歴制御データ群、２２  パタン一致信号群、２３  履歴管理レジスタ０、２４  履歴管理レジスタ１、２５  履歴管理レジスタｍ、２６  履歴管理ネクストＩＤ０、２７  履歴管理ネクストＩＤ１、２８  履歴管理ネクストＩＤｍ、２９  履歴管理ネクストＩＤ群、３０  履歴管理制御部、３１  履歴管理レジスタ０書き込みデータ、３２  履歴管理レジスタ１書き込みデータ、３３  履歴管理レジスタｍ書き込みデータ、３４  履歴管理レジスタ０読み取りデータ、３５  履歴管理レジスタ１読み取りデータ、３６  履歴管理レジスタｍ読み取りデータ、３７  ネクストＩＤ、３８  開始フラグ、３９  エンドフラグ、４０  拡張ビット、４１  拡張マスク、４２  ヒットフラグ、４３  有効ビット、４４  履歴管理拡張ビット、４５  制御ＩＤ比較回路００、４６  制御ＩＤ比較回路０１、４７  制御ＩＤ比較回路０ｍ、４８  制御ＩＤ一致信号００、４９  制御ＩＤ一致信号０１、５０  制御ＩＤ一致信号０ｍ、５１  履歴制御部０、５２  履歴制御部１、５３  履歴制御部ｍ、５４  履歴管理レジスタポインタ、５５  制御情報アドレスメモリ、５６  パケットポインタ、５７  順序制御部、５８  パタン一致情報、５９  ルール履歴検査部、６０  制御情報メモリアドレス、６１  履歴管理レジスタ設定指示信号、６２  ルール履歴記録部、６３  マイクロプロセッサ、６４  メモリ、６５  入出力バス、６６  パケット切り出し部、６７  ＣＡＭ、６８  検索データ、６９  一致アドレス、７０  一致情報送出部。
【図１】
2007259173.tif 000003
【図２】
2007259173.tif 000004
【図３】
2007259173.tif 000005
【図４】
2007259173.tif 000006
【図５】
2007259173.tif 000007
【図６】
2007259173.tif 000008
【図７】
2007259173.tif 000009
【図８】
2007259173.tif 000010
【図９】
2007259173.tif 000011
【図１０】
2007259173.tif 000012
【図１１】
2007259173.tif 000013
【図１２】
2007259173.tif 000014
【図１３】
2007259173.tif 000015
【図１４】
2007259173.tif 000016
【図１５】
2007259173.tif 000017
【図１６】
2007259173.tif 000018
【図１７】
2007259173.tif 000019
【図１８】
2007259173.tif 000020
【図１９】
2007259173.tif 000021
【図２０】
2007259173.tif 000022
【図２１】
2007259173.tif 000023
【図２２】
2007259173.tif 000024