(57)【要約】【課題】通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを高速かつ柔軟に弁別することができるようにする。【解決手段】検出すべき所定のエントリパターンをキーとしてハッシュ値を生成し、ハッシュ値を照合データとして保存する。また、トラヒックに含まれる所望の検査長のデータをエントリとして利用するためのマスクを生成・記憶しておく。トラヒックパターンから、オフセット値で指定される所望の位置からのデータを切り出し、切り出されたデータに対してマスクを適用して検査長の長さを有するエントリとしてハッシュ値を生成する。このようにして得られた各パケットのハッシュ値を記憶されている照合データと比較し、被疑パターンが含まれるか否かを判定する。【選択図】図４
2015046683.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査装置であって、
キーが与えられて前記キーの写像となるハッシュ値を生成するハッシュ演算を実行するハッシュ演算手段と、
所定のエントリパターンを前記キーとして前記ハッシュ演算部により前記ハッシュ演算を実行して得た結果を陽性の照合データとして保持する記憶手段と、
トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出手段と、
前記抽出手段で抽出されたエントリを前記キーとして前記ハッシュ演算手段に与えて前記ハッシュ演算を実行させて結果を取得し、該結果と前記記憶手段に保持されている前記照合データとを比較照合する検査手段と、
を有する、トラヒック走査装置。
【請求項２】
前記抽出手段は、
オフセット値が指定されて前記トラヒックパターンの先頭から前記オフセット値で表される位置からフィールドの切り出しを行うオフセット切り出し部と、
前記検査長に相当するデータを取り出すためのマスクが指定されて、前記オフセット切り出し手段で切り出された前記フィールドに対して前記マスクによるマスク処理を実行する走査ウィンドウ設定部と、
を有する、請求項１に記載のトラヒック走査装置。
【請求項３】
前記ハッシュ演算手段、前記抽出手段及び前記検査手段の少なくとも１つの機能を特定用途向け専用命令としてハードウェアにより実装するプロセッサを備える請求項１または２に記載のトラヒック走査装置。
【請求項４】
通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査方法であって、
所定のエントリパターンをキーとしてハッシュ演算を実行し、該ハッシュ演算の結果を陽性の照合データとして保持する段階と、
トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出段階と、
前記エントリをキーとして前記ハッシュ演算を実行してその結果を比較データとする段階と、
前記比較データと前記照合データとを比較照合する段階と、
を有する、トラヒック走査方法。
【請求項５】
前記抽出段階は、
オフセット値が指定されて前記トラヒックパターンの先頭から前記オフセット値で表される位置からフィールドの切り出しを行う段階と、
前記検査長に相当するデータを取り出すためのマスクが指定されて、前記切り出されたフィールドに対して前記マスクによるマスク処理を実行する段階と、
を有する、請求項４に記載のトラヒック走査方法。
【請求項６】
コンピュータに請求項５または６に記載のトラヒック走査方法での各段階の処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク上で転送されるパケットに含まれるデータを識別するトラヒック走査装置及び方法に関する。
【背景技術】
【０００２】
２つのデータがビット列、バイト列、文字列などとして一致するかどうかを照合するデータ一致照合問題は、多くのアプリケーションにおいて頻出する重要な問題であり、例えば、テキスト検索、データベース工学、通信工学などの分野において重要な技術課題の要素技術として利用されている。とりわけ、通信ネットワークにおいてパケットを比較し、一致するものを検出し弁別する技術は、セキュリティの確保や異常トラヒックの検出によるインフラの安定化などに利用される重要な要素技術となっている。
【０００３】
データを照合して一致するものを判別するため用いられる技術として、非特許文献１に示されるブルームフィルタ(Bloom filter)がよく知られている。ブルームフィルタは、データサイエンス分野で考案された古典的なデータ構造の一種であり、ある程度の偽陽性(false-positive)検出を許容することにより空間計算効率の向上を図ったものである。ブルームフィルタは、効率のよいデータ探索・一致判定を行えるため、通信分野においても一般的に利用されている。
【０００４】
通信分野におけるブルームフィルタの利用例として、非特許文献２に示すようなものが挙げられる。非特許文献２に示すものでは、ブルームフィルタの高速性を維持しながら様々のデータ長のパケットに対応させるために、図１に示すように、複数のブルームフィルタを並列に配置している。この構成では、パケットのデータ長の最小値Ｌminが３バイト、最大値Ｌmaxがｗバイトであるとして、長さがＬmaxバイトであってパケットデータが１クロックにつき１バイトずつシフトするウィンドウバッファ９１と、相互に並列に設けられたＬmax−Ｌmin＋１個のブルームフィルタ９２とを備えている。これらのブルームフィルタ９２は、それぞれ、ウィンドウキャッシュ９１の先頭の３バイトが入力するデータ長がＬmin（＝３バイト）用のブルームフィルタ、ウィンドウキャッシュ９１の先頭の４バイトが入力するデータ長が４バイト用のブルームフィルタ、…、ウィンドウキャッシュ９１内の全データが入力するデータ長がＬmax（＝ｗバイト）用のブルームフィルタである。図１に示した構成では、データ長ごとのブルームフィルタを設けることによって、種々のデータ長のパケットデータをハードウェアにより高速に処理することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００５−５２２７８１号公報
【非特許文献】
【０００６】
【非特許文献１】Burton H. Bloom, "Space/Time Trade-offs in Hash Coding with Allowable Errors", Communications of the ACM, Vol. 13, No. 7, pp. 422-426 (July, 1970).
【非特許文献２】S. Dharmapurikar, et al., "Deep Packet Inspection Using Parallel Bloom Filters", IEEE Micro, Vol. 24, Issue 1, pp. 52-61 (January/February 2004).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
通信ネットワーク上に流れるトラヒックには様々なデータ長のパケットが含まれており、トラヒックの検査などを目的としてパケットに含まれるデータが所定のデータ集合に含まれるか否かを判別するために、非特許文献１に示されるもののように、それぞれ対象とするデータ長が異なるような複数のブルームフィルタを配置する構成がある。この構成では高速に処理を行うことができる反面、検査するパケットのデータ長ごとにハードウェアを用意することとなるから、回路規模及び配線複雑度が増大するという課題がある。またこの構成は、予め用意されたレジスタ長以外の検査長には対応できず、柔軟性が十分に大きいとは言い難い。
【０００８】
一方、ソフトウェア処理によってパケットのデータが所定のデータ集合に含まれるか否かを判定することも可能であるが、ハードウェアによる処理に比べてソフトウェア処理は時間がかかり、広帯域化する通信トラヒックにおけるパケットデータのデータの比較及び一致の判定を行うことに対しては、ソフトウェアによる処理では十分な処理性能を得ることができない。
【０００９】
本発明の目的は、通信ネットワーク上で転送されるデータを識別するためのトラヒック走査方法であって、転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを高速かつ柔軟に弁別することができるトラヒック走査装置及び方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のトラヒック走査装置は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査装置であって、キーが与えられてキーの写像となるハッシュ値を生成するハッシュ演算を実行するハッシュ演算手段と、所定のエントリパターンをキーとしてハッシュ演算部によりハッシュ演算を実行して得た結果を陽性の照合データとして保持する記憶手段と、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出手段と、抽出手段で抽出されたエントリをキーとしてハッシュ演算手段に与えてハッシュ演算を実行させて結果を取得し、その結果と記憶手段に保持されている照合データとを比較照合する検査手段と、を有する。
【００１１】
本発明のトラヒック走査方法は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを判別するトラヒック走査方法であって、所定のエントリパターンをキーとしてハッシュ演算を実行し、そのハッシュ演算の結果を陽性の照合データとして保持する段階と、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとする抽出段階と、エントリをキーとしてハッシュ演算を実行してその結果を比較データとする段階と、比較データと照合データとを比較照合する段階と、を有する。
【発明の効果】
【００１２】
本発明によれば、トラヒックパターンから、その任意の位置からの任意の検査長のデータを抽出してエントリとしてハッシュ値を演算し、このハッシュ値と照合用のハッシュ値とを比較照合するようにしたので、複数のブルームフィルタを用いることなく任意の検査長に対応でき、パケットに含まれるデータが所定のデータ集合に属するか否かを高速かつ柔軟に弁別することができるようになる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】複数のブルームフィルタを用いてパケットの照合を行う回路の一例を示すブロック図である。
【図２】本発明の実施の一形態のトラヒック走査装置の構成を示すブロック図である。
【図３】ＲＩＳＣプロセッサの構成の一例を示すブロック図である。
【図４】トラヒック走査の処理を説明する図である。
【発明を実施するための形態】
【００１４】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【００１５】
図２に示す本発明の実施の一形態のトラヒック走査装置は、通信ネットワーク上で転送されるパケットに含まれるデータが所定のデータ集合に属するか否かを弁別するためのものである。このトラヒック走査装置は、トラヒックパターン及び所定の参照用のエントリパターンの値をキーとして、その写像となるハッシュ値を生成するハッシュ演算部２１と、ハッシュ値生成に利用したエントリパターンを記録し、その出力及びビット操作を実現するエントリ登録部２２と、比較対象として利用するために、ハッシュ演算部２１において得られた任意のハッシュ値を陽性(positive)の照合データとして記憶する照合データ記憶部２３と、１パケットずつ到着するトラヒックパターンから任意の検査長のエントリを取り出すためのオフセット切り出し部２４及び走査ウィンドウ設定部２５と、ハッシュ値によって表されているパターンを照合するパターン照合部２６と、パターン照合部２６での照合を判別する照合結果弁別部２７と、これらの各機能部２１〜２７相互の間やそれらと外部のメモリとの間でトラヒックや制御命令を含むデータの転送を行う信号入出力部２８と、各機能部２１〜２８の全体を制御するために一般的なＣＰＵ(Central Processing Unit)命令及び拡張された命令セットを備え、設定と操作をユーザからの任意の指示に応じて実行させる信号制御部２９と、を備えている。特にハッシュ演算部２１はハッシュ演算手段に対応し、照合データ記憶部２３は記憶手段に対応し、オフセット切り出し部２４及び走査ウィンドウ設定部２５は抽出手段に対応し、パターン照合部２６は検査手段に対応する。各機能部、すなわちハッシュ演算部２１、エントリ登録部２２、照合データ記憶部２３、オフセット切り出し部２４、走査ウィンドウ設定部２５、パターン照合部２６、照合結果弁別部２７、信号入出力部２８及び信号制御部２９は、バス形態の信号線２０に接続することによって、相互にデータや信号等をやり取りできるようになっている。
【００１６】
上記の構成において、パターン照合部２６は、具体的には、オフセット切り出し部２４及び走査ウィンドウ設定部２５によってトラヒックパターンから取り出されたエントリをハッシュ演算部２１に与えてそのハッシュ値を計算させ、このようにして得られた各パケット固有のハッシュ値（すなわちトラヒックパターンのハッシュ値）と照合データ記憶部２３に記憶されている上述した陽性の照合データとを比較し、これによって、トラヒックパターンから取り出されたエントリが目的のパターンに合致するか否かを検査する。照合結果弁別部２７は、パターン照合部２６での検査結果に応じ、被疑パターンを検出した場合を陽性、反対に、被疑パターンが検出されなかった場合を陰性と判別する。例えば、廃棄すべきパケットが含んでいるであろうパターンがエントリパターンとされ、そのエントリパターンのハッシュ値が陽性値として照合データ記憶部２３に記憶されているときに、パターン照合部２６が、トラヒックパターンから得られたハッシュ値が照合データ記憶部２３に記憶されているものと合致することを検出したときは、被疑パターンが検出されたものとして、照合結果弁別部２７は、陽性と判別する。
【００１７】
次に、オフセット切り出し部２４及び走査ウィンドウ設定部２５による、トラヒックパターンからのエントリの取り出しについて説明する。
【００１８】
本実施形態のトラヒック走査装置では、パケットに含まれるデータのうちの任意のデータ長（これを検査長と呼ぶ）の部分をエントリとして、ユーザ設定により、あるいはプログラムによって予め指定しておく。このエントリは、パケットの先頭にあるとは限られないから、１パケットずつ順次到着するトラヒックパターンにおいてエントリに対応するフィールドの値の始まりがオフセット値として指定されると、オフセット切り出し部２４は、各パケットごとにそのパケットの先頭からオフセット値で示される長さの部分を取り除いて残ったフィールドの部分を切り出して走査ウィンドウ設定部２５に送る。走査ウィンドウ設定部２５は、前述した検査長のエントリを生成するためのマスク機能を有しており、オフセット切り出し部２４によって切り出されたフィールドに対してマスク操作を実行する。例えば、検査長に相当するビット数だけ“１”のビットが連続しそれに引き続いて“０”のビットが連続するマスクを使用し、オフセット切り出し部２４によって切り出されたフィールドに対してビットごとの論理積（ＡＮＤ）演算を実行することによって、走査ウィンドウ設定部２５は、検査長の長さを有するエントリを生成する。このエントリは、上述したように、パターン照合部２６によってハッシュ演算部２１に送られてハッシュ演算の対象となる。
【００１９】
本実施形態のトラヒック走査装置は、各機能部２１〜２９がそれぞれ別個のハードウェア要素であるようにして構成することもできるし、あるいは、各機能部２１〜２９の動作に相当する処理をコンピュータに実行させるプログラムにより、ソフトウェアによって実現することもできる。例えば、コンピュータとして一般的なＲＩＳＣ（Reduced Instruction Set Compuer：縮小命令セットコンピュータ）プロセッサを用いることができる。
【００２０】
ところで、本実施形態のトラヒック走査装置で行う処理には、ハッシュ演算やハッシュ値の比較、オフセット値に基づくフィールドの切り出し、任意のビット長でのマスク動作などといった、トラヒック走査という特定用途に特有の演算が含まれるが、これらの演算はコンピュータにおける汎用のハードウェア資源では高速で実行することが難しい。そこで、特許文献１に開示されているような特定用途向けプロセッサ設計手法を一般的なＲＩＳＣプロセッサに適用して、ハッシュ演算やハッシュ値の比較、オフセット値に基づくフィールドの切り出し、任意のビット長でのマスク動作などの演算を特定用途向けの専用命令として実行するための演算ユニットないしレジスタをプロセッサに追加することができる。特定用途向けの専用命令を実行する演算ユニットないしレジスタを追加することによって、ソフトウェア制御でありながらトラヒック走査のための演算処理を高速で実行するトラヒック走査装置を実現できることは、当業者が容易に理解できることである。
【００２１】
図３は、本実施形態において使用できる一般的なＲＩＳＣプロセッサの構成を示している。このＲＩＳＣプロセッサ３０は、複数のレジスタ３１と、複数のＡＬＵ（算術論理演算ユニット：Arithmetic Logical Unit）からなるＡＬＵセット３２と、ＡＬＵセット３２にデータを送出するレジスタを選択するセレクタ３３と、メモリ（ＲＡＭ）３４と、外部インタフェース（Ｉ／Ｆ）３５と、ＲＡＭ３４及び外部インタフェース３５に対してロード及びストアの処理を実行するロード／ストア部３６と、ＡＬＵセット３２及びロード／ストア部３６からのデータが供給されるレジスタを選択するセレクタ３７と、を備えている。一般的にプロセッサにおいては、メモリ及びレジスタファイル間の頻繁なデータ移動を伴うため、これが高性能な処理を要求した際のボトルネックとなる。本実施形態において用いられるＲＩＳＣプロセッサは、ハードウェアアシストを含む特定処理への拡張および最適化を行ったＡＬＵと一般的なＡＬＵとを組み合わせたＡＬＵセット３２として実行ステージを構成し、さらにそれらを効率的に稼働させる論理を含む処理命令を備えるようにすることにより、トラヒック操作の処理に要求される演算における所要サイクル数を大幅に削減することができる。
【００２２】
本実施形態で用いられるＲＩＳＣプロセッサは、上述したような特定用途向け演算の機能を制御する命令セットを備えるが、命令セットやデータ幅のビット幅が特定の値に限定されるものではない。設計技術によっては命令セットなどについて複数の実装解がありうる。
【００２３】
次に、本実施形態のトラヒック走査装置の動作について説明する。
【００２４】
通信トラヒックの走査を行って目的とするトラヒックパターンを検出するために、あらかじめ、検出対象となるパターンをエントリパターンとして、エントリ登録部２２によって照合データ記憶部２３に登録しておく。本実施形態においては、検出対象となるパターンを変更することを含意しているため、エントリ登録部２２及び照合データ記憶部２３は、エントリパターンの削除に対応しているものとする。
【００２５】
ハッシュ演算部２１は、ハッシュ演算のために特化した構成をとるため、高速な演算を可能とし、汎用ＡＬＵによる演算のアシストを行う。ハッシュ演算部２１は、エントリ登録部２２から入力されたエントリの値をキーとして、単一あるいは複数種類のハッシュ演算命令の組み合わせを任意の回数演算することで、キーとした値の写像となるハッシュ値を生成し、エントリ登録部２２に出力する。図４に示した例では、２進表記で"101001010101111"がエントリパターンとしてエントリ登録部２２にあらかじめ与えられており、これがキーとしてハッシュ演算部２１に送られ、ハッシュ演算部２１は、このエントリパターンのハッシュ値を計算してエントリ登録部２２に出力する。当然のことながら複数のエントリパターンを用意してそれらの各々のハッシュ値を計算し、照合データ記憶部２３に記憶することができる。
【００２６】
一方、信号入出力部２８からパターン照合部２６に入力されたトラヒックパターンに対しては、プログラムあるいはユーザによって指定されたオフセット値に応じてオフセット命令によって切り出し位置が指定され、オフセット切り出し部２４が上述したように切り出し処理を行う。続いて、切り出されたトラヒックパターンに対し、マスク命令に応じて、走査ウィンドウ設定部２５によってマスク処理を実行する。マスク処理に用いられるマスクは、上述したように、例えば、プログラムあるいはユーザによって指定される検査長に一致するビット数の“１”が連続しそれに引き続いて“０”のビットが連続したものである。これらの処理の結果、最初のトラヒックパターンから、オフセット命令で指定された切り出し位置から開始して検査長に一致する長さのエントリが取り出されることになる。図４に示した例では、オフセット値として２進表現で"1000"、すなわち８ビットが指定されており、マスクとして、検査長２０ビットに対応する"11111111 11111111 11110000 00000000"が用いられている。その結果、"00000000 10101010 11101110 01010101 00000000"で表されるトラヒックパターンが入力したときに、最初の８ビットがオフセットとして除去され、引き続く２０ビットの部分、すなわち"10101010 11101110 0101"がマスクによる有効値、すなわちエントリパターンに対応するフィールドとして取り出されることになる。ハッシュ演算部２１は、このようにして取り出されたエントリパターンによる値をキーとして、単一あるいは複数種類のハッシュ演算命令の組み合わせを任意の回数演算し、写像となるハッシュ値を生成してパターン照合部２６に出力する。
【００２７】
本実施形態では、トラヒックパターン中の任意の検査長のエントリに関して所定のデータ集合に含まれるか否かを判定できるようにするため、トラヒックパターンに対するオフセットの指定とマスク動作とを使用している。その結果、トラヒックパターン中の任意の長さ、位置にあるエントリに対するハッシュ値を得ることができ、従来のハードウェアのみで実現された回路に比べ、検査長に対する高い柔軟性が得られる。
【００２８】
本実施形態のトラヒック走査は、エントリから算出されるハッシュ値どうしの照合に基づくものであり、基本的にはブルームフィルタと同様の処理原理に依存している。しかしながら上述したように、トラヒックパターン中の任意の長さ、位置にあるエントリに対するハッシュ値を得ることができるようにしているから、本実施形態のトラヒック走査は、複数のブルームフィルタを設けることなく、単一のハッシュ演算部と単一のパターン照合部とを用いることにより、任意の検査長に対応することができるという利点を有する。これにより本実施形態によれば、複数のブルームフィルタを設ける場合と同様の処理の高速さを維持しつつ、ハードウェア規模を大幅に縮小することができる。
【００２９】
エントリ登録部２２に入力されたハッシュ値は、エントリパターンがハッシュ値に写像された縮約表現とみなすことができ、通信トラヒックパターンの照合時に陽性(positive)を表すためのデータ（陽性値）となる。エントリ登録部２２はこの陽性値をビット操作により照合データ記憶部２３に登録する。
【００３０】
パターン照合部２６は、この陽性値と１パケットずつトラヒックからから算出されるハッシュ値とを比較照合する。この比較照合の結果の値は照合結果弁別部２７において判断され、その結果陽性と判断された場合には、被疑パターンの検出が完了となり、信号制御部２９からの命令によって、トラヒックの分離や遮断、廃棄等の制御を行うことができるようになる。
【００３１】
本実施形態では、ブルームフィルタと同様の処理原理に基づいているため、偽陰性の発生の可能性はないが、偽陽性の発生の可能性がある。詳細は割愛するが、ブルームフィルタを用いるデータ照合においては、エントリ数とハッシュテーブルのサイズとが決定しているときに偽陽性を最小化できるハッシュの演算数が定式化されて広く知られている。本実施形態でも、ハッシュテーブルのサイズとエントリ数との比を適切に保つことで、実用上十分小さな偽陽性の出現確率とすることができる。ハッシュテーブルのサイズは、用途等に応じて任意に定めることができる。また、本実施形態では、エントリを登録し削除することが可能な構成としているので、ハッシュテーブルのサイズを任意に定めたとしても、ハッシュテーブルのサイズに合わせてエントリ数を変化させることにより、偽陽性の発生確率を許容水準に保つことができる。なお偽陰性の発生の可能性は原理的に存在しないことにより、照合結果弁別部２７において陰性を判断された場合には、信号制御部２９は、陰性に合致するパケットに対する通過等の制御を実施する。
【００３２】
ブルームフィルタにおけるハッシュ値の演算手順に関して数多くのアルゴリズムが提案されているが、本実施形態でのハッシュ演算部２１において用いられるアルゴリズムとしてもこれらの既に提案されているアルゴリズムを用いることもできるし、さらに、これら以外のアルゴルズムを採用してハッシュ値の分散特性の改善を図ることもできる。
【００３３】
結局、本実施形態のトラヒック走査装置では、要約すると、検出すべき所定のエントリパターンをキーとしてハッシュ演算部２１においてハッシュ値を生成し、このハッシュ値を照合データとして照合データ記憶部２３に保存する。また、トラヒックに含まれる所望の検査長のデータをエントリとして利用するためのマスクを生成・記憶しておく。トラヒックパターンから、オフセット切り出し部２４によって、オフセット値で指定される所望の位置からのデータを切り出し、走査ウィンドウ設定部２５によって、切り出されたデータに対してマスクを適用して検査長の長さを有するエントリとして、ハッシュ演算部２１によりこのエントリハッシュ値を生成する。パターン照合部２６は、このようにして得られた各パケットのハッシュ値を記憶されている照合データと比較し、照合結果弁別部２７が、被疑パターンが含まれるか否かを判定する。
【００３４】
図２に示した本実施形態のトラヒック走査装置において、各機能部２１〜２９（すなわちハッシュ演算部２１、エントリ登録部２２、照合データ記憶部２３、オフセット切り出し部２４、走査ウィンドウ設定部２５、パターン照合部２６、照合結果弁別部２７、信号入出力部２８及び信号制御部２９）あるいは各手段は、いずれも、回路、装置、機器等であってもよく、また、ソフトウェア処理によって実現されるものであってもよい。さらにはこれらの機能部あるいは手段は、ファームウエアによって実現されても、あるいは、再構成型デバイス・素子・基盤・配線などのハードウェアで実現されていても構わない。ソフトウェアあるいはファームウェアによってトラヒック走査装置を実現する場合、ソフトウェアあるいはファームウェアはプログラムとして記憶媒体に記憶され、ＣＰＵによって読み出されて実行される。したがってこのプログラムは、上述した機能部あるいは手段としてコンピュータを機能させるものに他ならず、本発明の範疇に含まれるものである。
【符号の説明】
【００３５】
２０    信号線
２１    ハッシュ演算部
２２    エントリ登録部
２３    照合データ記憶部
２４    オフセット切り出し部
２５    走査ウィンドウ設定部
２６    パターン照合部
２７    照合結果弁別部
２８    信号入出力部
２９    信号制御部
３０    ＲＩＳＣプロセッサ
３１    レジスタ
３２    ＡＬＵセット
３３，３７    セレクタ
３４    メモリ
３５    外部インタフェース
３６    ロード／ストア部
【図１】
2015046683.tif 000003
【図２】
2015046683.tif 000004
【図３】
2015046683.tif 000005
【図４】
2015046683.tif 000006