(57)【特許請求の範囲】
【請求項１】
フラグメントパケットの分割データに対して、オートマトンによるパターン照合を行うパターン照合装置であって、
オリジナルパターンおよび前記オリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンを含む複数のパターンが登録されるオートマトン記憶部と、
前記分割データに対して、前記パターンをそれぞれ照合させ、
前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、前に続く分割データと前記オリジナルパターンの残る部分との照合を行い、
前記分割データの後端部が前記オリジナルパターンの先頭部と一致した際には、後に続く分割データと前記オリジナルパターンの残る部分との照合を行うパターン照合部と、を有し、
前記パターン毎に、それぞれオリジナルパターン及び派生パターンのいずれかであるかを識別するパターン識別フラグが登録され、前記パターン照合部は、前記パターン識別フラグによりオリジナルパターン及び派生パターンのいずれかであるかを識別する
ことを特徴とするパターン照合装置。
【請求項２】
前記パターン識別フラグは、前記オリジナルパターンの最後尾のノードに登録されたオリジナルパターンフラグ（明細書中、二重線丸）と、前記派生パターンの最後尾のノードに登録された派生パターンフラグ（明細書中、破線丸）とを含む
ことを特徴とする請求項１に記載のパターン照合装置。
【請求項３】
前記パターン照合部は、パターン照合処理において、所定の文字を照合した際に、当該文字のノードに前記派生パターンフラグが登録されており、かつ、当該パターン照合処理において、検索開始から一度も初期状態に戻っていないとき、前記分割データの先頭部が前記派生パターンに一致したと判定し、前に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項２に記載のパターン照合装置。
【請求項４】
前記パターン照合部は、パターン照合処理において、所定の文字を照合した際に、当該文字のノードが子ノードにオリジナルパターンフラグをもつノードがあるノードであり、かつ、当該パターン照合処理において、少なくとも１度初期状態に戻っているとき、前記分割データの後端部が前記オリジナルパターンの先頭部と一致したと判定し、後に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項２に記載のパターン照合装置。
【請求項５】
前記パターン照合部は、前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、一致した位置の状態から開始状態まで前記派生パターンを逆にたどり、このとき得られる文字列を保持するとともに、前に続く分割データと前記オリジナルパターンとの照合を行い、この照合の終了状態に続くように前記保持した文字列に対して照合を開始する
ことを特徴とする請求項１に記載のパターン照合装置。
【請求項６】
複数の前記オリジナルパターンが登録されており、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、最長一致のパターンを照合結果とする
ことを特徴とする請求項１から５のいずれか１項に記載のパターン照合装置。
【請求項７】
初期状態から初期状態以外への遷移をする度にカウントアップを行うとともに、初期状態へ遷移する場合にはリセットされるパターン長カウンタをさらに有し、前記パターン照合部は、前記パターン長カウンタに基づいて前記最長一致のパターンを選択する
ことを特徴とする請求項６に記載のパターン照合装置。
【請求項８】
複数の前記オリジナルパターンが登録されており、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、オリジナルパターンとの一致を示す状態情報に予め登録されている優先順位を前記一致した複数のパターン間で比較して、最も優先順位の高いパターンを照合結果とする
ことを特徴とする請求項１から５のいずれか１項に記載のパターン照合装置。
【請求項９】
前記オリジナルパターンの遷移状態から前記派生パターンの遷移状態へのジャンプ先、及び前記派生パターンの遷移状態から前記オリジナルパターンの遷移状態へのジャンプ先を登録して置き、前記パターン照合部は、パターン照合処理の際、前記ジャンプ先に基づいて状態を遷移させる
ことを特徴とする請求項１から８のいずれか１項に記載のパターン照合装置。
【請求項１０】
フラグメントパケットの分割データに対して、オートマトンを用いてパターン照合を行うパターン照合方法であって、
オリジナルパターンおよび前記オリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンを含む複数のパターンを、予めオートマトン記憶部に登録する登録工程と、
前記分割データに対して、予め登録しておいた前記パターンをそれぞれ照合させ、前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、前に続く分割データと前記オリジナルパターンの残る部分との照合を行い、前記分割データの後端部が前記オリジナルパターンの先頭部と一致した際には、後に続く分割データと前記オリジナルパターンの残る部分との照合を行う照合工程と、
を有し、
前記登録工程においては、前記パターン毎に、それぞれオリジナルパターン及び派生パターンのいずれかであるかを識別するパターン識別フラグが登録され、
前記照合工程においては、前記パターン照合部が、前記パターン識別フラグによりオリジナルパターン及び派生パターンのいずれかであるかを識別する
ことを特徴とするパターン照合方法。
【請求項１１】
前記パターン識別フラグは、前記オリジナルパターンの最後尾のノードに登録されたオリジナルパターンフラグ（明細書中、二重線丸）と、前記派生パターンの最後尾のノードに登録された派生パターンフラグ（明細書中、破線丸）とを含む
ことを特徴とする請求項１０に記載のパターン照合方法。
【請求項１２】
前記照合工程においては、前記パターン照合部は、パターン照合処理において、所定の文字が照合した際に、当該文字のノードに前記派生パターンフラグが登録されており、かつ、当該パターン照合処理において、検索開始から一度も初期状態に戻っていないとき、前記分割データの先頭部が前記派生パターンに一致したと判定し、前に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項１１に記載のパターン照合方法。
【請求項１３】
前記照合工程においては、前記パターン照合部は、パターン照合処理において、所定の文字が照合した際に、当該文字のノードが子ノードにオリジナルパターンフラグをもつノードがあるノードであり、かつ、当該パターン照合処理において、少なくとも１度初期状態に戻っているとき、前記分割データの後端部が前記オリジナルパターンの先頭部と一致したと判定し、後に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項１１に記載のパターン照合方法。
【請求項１４】
前記照合工程においては、前記パターン照合部は、前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、一致した位置の状態から開始状態まで前記派生パターンを逆にたどり、このとき得られる文字列を保持するとともに、前に続く分割データと前記オリジナルパターンとの照合を行い、この照合の終了状態に続くように前記保持した文字列に対して照合を開始する
ことを特徴とする請求項１０に記載のパターン照合方法。
【請求項１５】
前記登録工程において、複数の前記オリジナルパターンを登録して置き、
前記照合工程においては、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、最長一致のパターンを照合結果とする
ことを特徴とする請求項１０から１４のいずれか１項に記載のパターン照合方法。
【請求項１６】
初期状態から初期状態以外への遷移をする度にカウントアップを行うとともに、初期状態へ遷移する場合にはリセットされるパターン長カウンタをさらに有し、前記照合工程においては、前記パターン照合部は、前記パターン長カウンタに基づいて前記最長一致のパターンを選択する
ことを特徴とする請求項１５に記載のパターン照合方法。
【請求項１７】
前記登録工程において、複数の前記オリジナルパターンを登録して置き、
前記照合工程においては、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、オリジナルパターンとの一致を示す状態情報に予め登録されている優先順位を前記一致した複数のパターン間で比較して、最も優先順位の高いパターンを照合結果とする
ことを特徴とする請求項１０から１４のいずれか１項に記載のパターン照合方法。
【請求項１８】
前記オリジナルパターンの遷移状態から前記派生パターンの遷移状態へのジャンプ先、及び前記派生パターンの遷移状態から前記オリジナルパターンの遷移状態へのジャンプ先を登録しておき、前記パターン照合部は、パターン照合処理の際、前記ジャンプ先に基づいて状態を遷移させる
ことを特徴とする請求項１０から１７のいずれか１項に記載のパターン照合方法。
【請求項１９】
フラグメントパケットの分割データに対して、オートマトンを用いてパターン照合を行うパターン照合プログラムであって、
オリジナルパターンおよび前記オリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンを含む複数のパターンを、予めオートマトン記憶部に登録する登録手順と、
前記分割データに対して、予め登録しておいた前記パターンをそれぞれ照合させ、前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、前に続く分割データと前記オリジナルパターンの残る部分との照合を行い、前記分割データの後端部が前記オリジナルパターンの先頭部と一致した際には、後に続く分割データと前記オリジナルパターンの残る部分との照合を行う照合手順と、
をＣＰＵ装置に実行させ、
前記登録手順においては、前記パターン毎に、それぞれオリジナルパターン及び派生パターンのいずれかであるかを識別するパターン識別フラグが登録され、
前記照合手順においては、前記パターン照合部が、前記パターン識別フラグによりオリジナルパターン及び派生パターンのいずれかであるかを識別する
ことを特徴とするパターン照合プログラム。
【請求項２０】
前記パターン識別フラグは、前記オリジナルパターンの最後尾のノードに登録されたオリジナルパターンフラグ（明細書中、二重線丸）と、前記派生パターンの最後尾のノードに登録された派生パターンフラグ（明細書中、破線丸）とを含む
ことを特徴とする請求項１９に記載のパターン照合プログラム。
【請求項２１】
前記照合手順においては、前記パターン照合部は、パターン照合処理において、所定の文字が照合した際に、当該文字のノードに前記派生パターンフラグが登録されており、かつ、当該パターン照合処理において、検索開始から一度も初期状態に戻っていないとき、前記分割データの先頭部が前記派生パターンに一致したと判定し、前に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項２０に記載のパターン照合プログラム。
【請求項２２】
前記照合手順においては、前記パターン照合部は、パターン照合処理において、所定の文字が照合した際に、当該文字のノードが子ノードにオリジナルパターンフラグをもつノードがあるノードであり、かつ、当該パターン照合処理において、少なくとも１度初期状態に戻っているとき、前記分割データの後端部が前記オリジナルパターンの先頭部と一致したと判定し、後に続く分割データとの間で前記オリジナルパターンが分割されている可能性があると判定する
ことを特徴とする請求項２０に記載のパターン照合プログラム。
【請求項２３】
前記照合手順においては、前記パターン照合部は、前記分割データの先頭部が前記派生パターンのいずれかと一致した際には、一致した位置の状態から開始状態まで前記派生パターンを逆にたどり、このとき得られる文字列を保持するとともに、前に続く分割データと前記オリジナルパターンとの照合を行い、この照合の終了状態に続くように前記保持した文字列に対して照合を開始する
ことを特徴とする請求項１９に記載のパターン照合プログラム。
【請求項２４】
前記登録手順において、複数の前記オリジナルパターンを登録して置き、
前記照合手順においては、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、最長一致のパターンを照合結果とする
ことを特徴とする請求項１９から２３のいずれか１項に記載のパターン照合プログラム。
【請求項２５】
初期状態から初期状態以外への遷移をする度にカウントアップを行うとともに、初期状態へ遷移する場合にはリセットされるパターン長カウンタをさらに有し、前記照合手順においては、前記パターン照合部は、前記パターン長カウンタに基づいて前記最長一致のパターンを選択する
ことを特徴とする請求項２４に記載のパターン照合プログラム。
【請求項２６】
前記登録手順において、複数の前記オリジナルパターンを登録して置き、
前記照合手順においては、複数の前記オリジナルパターンにそれぞれ一致するパターンが存在した際、前記パターン照合部は、オリジナルパターンとの一致を示す状態情報に予め登録されている優先順位を前記一致した複数のパターン間で比較して、最も優先順位の高いパターンを照合結果とする
ことを特徴とする請求項１９から２３のいずれか１項に記載のパターン照合プログラム。
【請求項２７】
前記オリジナルパターンの遷移状態から前記派生パターンの遷移状態へのジャンプ先、及び前記派生パターンの遷移状態から前記オリジナルパターンの遷移状態へのジャンプ先を登録しておき、前記パターン照合部は、パターン照合処理の際、前記ジャンプ先に基づいて状態を遷移させる
ことを特徴とする請求項１９から２３のいずれか１項に記載のパターン照合プログラム。
【請求項２８】
請求項１９から２７のいずれか１項に記載のパターン照合プログラムを記録したＣＰＵ装置が読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
通信パケットのデータ（文字列）に対してオートマトンを用いてパターン照合行うパターン照合技術に関するものであり、特にフラグメント（パケットの分割）されたパケットにおいて、パケットの順序が逆転した際にも適用することができるパターン照合装置、パターン照合、パターン照合プログラム及びこれを記録した記録媒体に関するものである。
【背景技術】
【０００２】
通信ネットワークにおいて、ネットワークに流れるデータ単位の１つとして“パケット”が存在し、ネットワークに接続された端末及びネットワークを接続する各種機器は、このパケットを送受信して通信をおこなっている。
【０００３】
近年、悪意あるパケットを、故意に端末或いはネットワークを構成する装置に送りつけて通信不能に陥らせたり、また端末或いはネットワーク装置に不正アクセスしたりする事例が増えてきている。そのため、このような悪意あるパケットを見分ける手段として、あらかじめ登録された文字列のパターンとパケット中の文字列のパターンとを照合するパターン照合技術を用いて見分ける方法が提案されている。
【０００４】
例えば、受信した通信パケットと検出パターンとを比較して、パケットの通過／廃棄を判定したりすることが提案されている（例えば、特許文献１参照）。
【０００５】
また、複数のパターンから一つのオートマトンを構築し、このオートマトンを使って、フラグメントされたパケットの分割データに対するパターン照合処理をすることが提案されている（例えば、非特許文献１参照）。
【０００６】
【特許文献１】特開２００４−１４０６１８号公報
【非特許文献１】"オートマトンを用いたフラグメントパケット文字列検索手法の一検討"、２００５年電子情報通信学会総合大会  Ｂ−６−４４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記１つめの提案である受信した通信パケットと検出パターンとを比較する提案に関しては、Ｌ５以上の高レイヤーのパターン照合を実現するためには、ＩＤＳ（Intrusion Detection System）等のネットワーク装置と連携をする必要があり、音声や映像などのリアルタイム性が要求されるアプリケーションに対して、この連携による遅延が発生してしまうことがあるという未解決の課題を有している。
【０００８】
また、上記２つめの提案である複数のパターンから一つのオートマトンを構築し、このオートマトンを使って複数パターンに対するパターン照合処理に関しては、例えば１つの文字列が複数のパケットに分割されてかつ順序が逆転して装置に入力された場合、分割前のものであれば一致と判定されるべき文字列がパターン中に存在するにもかかわらず、複数のパケットに分割され且つ順序が逆転しているので、パターンに一致させることができないという未解決の課題を有している。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、ＩＤＳ等の他ネットワーク装置との連携による遅延や、パケットのリアセンブル処理による遅延を伴うことなく、Ｌ５以上の高レイヤーのパターン照合を可能とするとともに、複数のパケットに分割され且つパケット到着順序が逆転していてもリアセンブルなしでパターン照合をすることができるパターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体を得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係るパターン照合装置は、フラグメントパケットの分割データに対して、オートマトンによるパターン照合を行うパターン照合装置であって、オリジナルパターンとオリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンとを含む複数のパターンが登録されるオートマトン記憶部と、分割データに対して、パターンをそれぞれ照合させ、分割データの先頭部が派生パターンのいずれかと一致した際には、前に続く分割データとオリジナルパターンの残る部分との照合を行い、分割データの後端部がオリジナルパターンの先頭部と一致した際には、後に続く分割データとオリジナルパターンの残る部分との照合を行うパターン照合部とを有することを特徴とする。
【００１１】
また、この発明に係るパターン照合方法は、フラグメントパケットの分割データに対して、オートマトンを用いてパターン照合を行うパターン照合方法であって、オリジナルパターンとオリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンとを含む複数のパターンを、予めオートマトン記憶部に登録して置く登録工程と、分割データに対して、予め登録しておいたパターンをそれぞれ照合させ、分割データの先頭部が派生パターンのいずれかと一致した際には、前に続く分割データとオリジナルパターンの残る部分との照合を行い、分割データの後端部がオリジナルパターンの先頭部と一致した際には、後に続く分割データとオリジナルパターンの残る部分との照合を行う照合工程とを有することを特徴とする。
【００１２】
さらに、この発明に係るパターン照合プログラムは、フラグメントパケットの分割データに対して、オートマトンを用いてパターン照合を行うパターン照合プログラムであって、オリジナルパターンとオリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンとを含む複数のパターンを、予めオートマトン記憶部に登録する登録手順と、分割データに対して、予め登録しておいたパターンをそれぞれ照合させ、分割データの先頭部が派生パターンのいずれかと一致した際には、前に続く分割データとオリジナルパターンの残る部分との照合を行い、分割データの後端部がオリジナルパターンの先頭部と一致した際には、後に続く分割データとオリジナルパターンの残る部分との照合を行う照合手順とをＣＰＵ装置に実行させることを特徴とする。
【００１３】
さらにまた、この発明に係るＣＰＵ装置が読み取り可能な記録媒体は、上記パターン照合プログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
この発明によれば、オートマトンに登録するパターンを、オリジナルパターンだけでなく、オリジナルパターンの先頭からN文字（Nは自然数）ずつ削除してなる派生パターンも登録することで、フラグメントされ、かつ順序逆転して到達したパケットにおいてもパターン照合を行うことができる。そのため、フラグメントパケットをリアセンブルすることなくパターン照合処理を行うことができ、フラグメントパケットのリアセンブル処理による遅延を抑制することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明にかかるパターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
まず、本発明の実施の形態１に係るパターン照合装置及びパターン照合方法の基本的な概念について説明する。なお、本実施の形態では１バイトずつパターン照合する場合について以下に説明するが、本発明は“１バイトずつ”パターンを照合するものに限定されるものではない。また、本実施の形態ではパケットのトレーラーとしてイーサネット（登録商標）（Ethernet（登録商標））フレームを用いる場合について述べているが、本発明がイーサネット（登録商標）を用いるものに限定されるものではない。（つまりＡＴＭ（Asynchronous Transfer Mode）、またはＦＤＤＩ（Fiber-Distributed Data Interface）等のプロトコルを用いるものであってもよい。
【００１７】
［構成］
図１は、本実施の形態１のパターン照合装置を含むネットワークの構成図である。図１において、本実施の形態１のパターン照合装置であるファイヤーウォール１０１は、ＣＰＵ装置として構成され、インターネット１０３、イントラネット１０７、サーバー群１０４とそれぞれリンク１００により接続されている。アクセスポイント１０５は、リンク１００を介してインターネット１０３或いはイントラネット１０７に接続している。そして、ＰＣ端末１０２はリンク１００を介することにより、また、無線端末１０６はアクセスポイント１０５を介することにより、端末間の相互通信を実現している。またファイヤーウォール１０１をコントロールする制御ＰＣ１０８は、ファイヤーウォール１０１と制御リンク１０９によって接続されている。
【００１８】
図２は、図１のファイヤーウォール１０１の内部構成を示すブロック図である。図２において、ファイヤーウォール１０１は、送受信ユニット２０１、転送ユニット２０２、照合ユニット２０３及び制御ユニット２０４から構成されている。送受信ユニット２０１と転送ユニット２０２とは、転送経路２０７で接続されている。転送ユニット２０２と照合ユニット２０３とは、データ経路２０８、および判定結果経路２１０で接続されており、ルーティングテーブル２０５に対しては、転送ユニット２０２とルーティング検索経路２１１で、さらに制御ユニット２０４とルーティングテーブル制御経路２１２で接続しており、オートマトンテーブル（オートマトン記憶部）２０６に対しては、照合ユニット２０３とパターン検索経路２０９で、さらに制御ユニット２０４とオートマトン制御経路２１３で接続されており、ポリシーテーブル２１５とは、ポリシー制御経路２１４で制御ユニット２０４と、照合ユニット２０３とポリシー検索経路２１６で接続されている。ルーティングテーブル２０５、オートマトンテーブル２０６及びポリシーテーブル２１５は、メモリ或いはハードディスク等の図示しない記憶装置に記憶されている。
【００１９】
［機能構成］
送受信ユニット２０１では、インターネット１０３およびサーバー群１０４、イントラネット１０７とリンク１００で接続されており、リンク１００から受信したイーサネット（登録商標）フレーム８０３から、後で述べるようにＭＡＣ（Media Access Control）ヘッダとＦＣＳ(Frame Check Sequence)を取り除いたＩＰｖ４（Internet Protocol Version 4）パケットを転送ユニット２０２に転送し、また転送ユニット２０２から送られたＩＰｖ４パケットにＭＡＣヘッダとＦＣＳでカプセル化したものリンク１００に送信する（図５参照）。
【００２０】
転送ユニット２０２では、受信したフレームからルーティング検索処理に必要なヘッダ情報であるＬ３ヘッダの宛先・送信元アドレス、プロトコル、Ｌ４ヘッダの宛先・送信元ポート番号を抽出し、ルーティング検索経路２１１を介してルーティングテーブル２０５に対してルーティング検索処理をおこなう。また、前述したヘッダ情報、およびＬ５ヘッダ以上のデータは、データ経路２０８を介して照合ユニット２０３へ渡し、照合ユニット２０３から判定結果経路２１０を介して判定結果を受け取り、判定結果とルーティング検索結果をもとに送受信ユニット２０１へフレーム転送経路２０７を使いフレームを転送する。
【００２１】
図３は、図２に示された照合ユニット２０３内部の構成図である。照合ユニット２０３は、記憶媒体に記録可能でＣＰＵ装置としてのファイヤーウォール１０１に読み込まれたプログラムで構成され、パターン照合部６０１、動作判定部６０２、分割パケット状態管理テーブル６０４から構成されている。パターン照合部６０１では、データ経路２０８をとおして転送ユニット２０２から送られてきたヘッダ情報、およびＬ５以上のデータを受け取り、データに対してパターン検索経路２０９を介してオートマトンテーブル２０６に対して登録パターンとデータ内の文字列とを照合し、一致するパターンがあった場合、検索結果経路６０３をとおして動作判定部６０２にデータ内の文字列と一致したパターン情報を渡し、動作判定部６０２では、検索結果経路６０３から送られてきたパターン情報から、ポリシーテーブル２１５に対してポリシーテーブル検索経路２１６を介して検索し、該当フレームの扱いについて検索結果をもとに判定し、判定結果は、判定結果経路２１０を介して転送ユニット２０２に通知する。
【００２２】
図４は、図２に示された制御ユニット２０４内部の構成図である。制御ユニット２０４は、記憶媒体に記録可能でＣＰＵ装置としてのファイヤーウォール１０１に読み込まれたプログラムで構成され、オートマトン制御部７０１、ルーティング制御部７０２、ポリシー制御部７０３で構成されている。オートマトン制御部７０１は、オートマトンテーブル２０６に対してパターン情報の設定をおこなうためにオートマトン制御経路２１３を介してオートマトンテーブル２０６と接続し、ルーティング制御部７０２は、ルーティングテーブル２０５に対してルーティング情報の制御をおこなうため、ルーティングテーブル制御経路２１２を介してルーティングテーブル２０５と接続されており、ポリシー制御部７０３は、ポリシーテーブル２１５に対して一致したパターン情報に対して廃棄／通過判定等のポリシー制御をおこなうためポリシー制御経路２１４を介してポリシーテーブル２１５と接続されており、さらにオートマトン制御部７０１、ルーティング制御部７０２、ポリシー制御部７０３はそれぞれ、制御ＰＣ１０８と制御リンク１０９を介して接続されている。
【００２３】
［データ構造］
ここで、転送ユニット２０２で抽出され、ルーティング検索処理の検索キーおよび、フラグメントパケットの識別、フラグメントパケット間の接続判定のために使用されるヘッダ情報（Ｌ３ヘッダ宛先・送信元アドレス、プロトコル、トータルレングス、識別子、フラグ、フラグメントオフセット、Ｌ４ヘッダ宛先・送信元ポート番号、シーケンス番号（Ｌ４ヘッダがＴＣＰの場合のみ））の詳細について図５から図８を用いて説明する。
【００２４】
図５は、イーサネット（登録商標）フレームのフォーマット図である。図５に示すように、ＩＰｖ４ヘッダ３００、ＴＣＰ（Transmission Control Protocol）ヘッダ４００およびＵＤＰ（User Datagram Protocol）ヘッダ５００が、それぞれ、イーサネット（登録商標）フレーム８０３にカプセル化されている。上述したように、受信ユニット２０１では、図５に示すリンク１００から受信したイーサネット（登録商標）フレーム８０３からマックヘッダ８０１とＦＣＳ８０２を取り除いたＩＰｖ４パケット８０４を転送ユニット２０２に転送し、また転送ユニット２０２から送られたＩＰｖ４パケット８０４にＭＡＣヘッダ８０１とＦＣＳ８０２でカプセル化してリンク１００に送信をおこなう。
【００２５】
図６は、Ｌ３ヘッダであるＩＰｖ４ヘッダのフォーマットを示しており、ＩＰｖ４ヘッダの先頭から４バイト目にトータル長３０４、５バイト目に識別子３０５、７バイト目のうち上位３ビットがフラグ３０６であり、その上位３ビットのうち最下位ビットがＭＦ（More Fragments）３０８、７バイト目の下位５ビットと８バイト目がフラグメントオフセット３０７、１０バイト目にプロトコル３０１、１３バイト目に送信元ＩＰアドレス３０２、１７バイト目に宛先ＩＰアドレス３０３が位置している。
【００２６】
図７は、Ｌ４ヘッダであるＴＣＰヘッダのフォーマットを示しており、ＴＣＰヘッダの１バイト目に送信元ポート番号４０１、４バイト目に宛先ポート番号４０２、５バイト目にシーケンス番号４０３が位置している。
【００２７】
図８は、Ｌ４ヘッダであるＵＤＰヘッダのフォーマットを示しており、ＵＤＰヘッダの１バイト目に送信元ポート番号５０１、４バイト目に宛先ポート番号５０２が位置している。
【００２８】
また、実施の形態によっては、Ｌ３ヘッダの宛先・送信元アドレス、プロトコル、Ｌ４ヘッダの宛先・送信元ポート番号の他にフローを識別するフィールド（VLANID等）が検索キーとして加わる、またはＬ３ヘッダの宛先・送信元アドレス、プロトコル、Ｌ４ヘッダの宛先・送信元ポート番号のうち一部のフィールドがない場合もある。
【００２９】
［パターン登録工程の例１］
次に、パターン登録工程（パターン登録手順）の一例として、パターン“ＡＢＣ”がオートマトンテーブル２０６へ登録される場合について述べる。なお、本実施の形態ではパターン、およびデータは１文字を１バイトで示すものとして説明するが、１文字をＮバイト（Ｎは任意数）示すものであってもよい。
【００３０】
図９は、パターン“ＡＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。登録するべきパターン“ＡＢＣ”が制御ＰＣ１０８より制御リンク１０９を介して制御ユニット２０４内のオートマトン制御部７０１に入力されると、図９のようにパターン“ＡＢＣ”（以下、オリジナルパターン）として初期状態９０１からパターン“Ａ”の登録により枝９０２とノード９０３が登録され、次にパターン“Ｂ”の登録により枝９０４とノード９０５が登録され、パターン“Ｃ”の登録により枝９０６とノード９０７が登録される。また、オリジナルパターンの最後尾であるパターン“Ｃ”のノード９０７が登録される際に、オリジナルパターンの最後尾のノードを示すノード識別フラグ（図９中、二重線丸で示す）が登録され、さらに、登録したパターンに対する登録パターン番号も登録される。また、オリジナルパターンのフラグを持つノード（ここでは、ノード９０７）に子ノードが存在する場合（図９の状態１（ノード９０３）、２（ノード９０５）が相当する）には、その存在を示すフラグ（図９中、太線丸で示す）も登録される。
【００３１】
図１０は、派生パターンも含めたパターン“ＡＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。本実施の形態１では、１バイトずつパターン照合をおこなうために、オリジナルパターンに対して、文字列の先頭から１バイトずつ削除した複数パターン（以下、派生パターン）として図１０のように状態遷移０→４→５（派生パターン“ＢＣ”）、状態遷移０→６（派生パターン“Ｃ”）が登録される。また、派生パターンの最後尾である状態５および状態６のノード１００１を登録する際に、派生パターンの最後尾のノードを示すノード識別フラグ（図１０中、破線丸で示す）が登録される。
【００３２】
［パターン照合工程の例１］
図１１は、パケットデータがＩＰフラグメント（パケットの分割）された様子を示す模式図である。ここでは、一例として、データ(X)“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２と、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の２つのパケットにＩＰフラグメントされ、かつ受信順序が逆転して、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２の順に到着した場合におけるパターン“ＡＢＣ”を発見する動作について述べる。
【００３３】
図１２は、データ“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が２つのパケットにＩＰフラグメントされた場合を示しており、データ(I)１１０２、データ(II)１１０４がイーサネット（登録商標）フレームによりそれぞれカプセル化されて、フレーム(I)１１０１、フレーム(II)１１０３と２つのフレームとなっている。これらのフレームが、上述のように、フレーム(II)１１０３、フレーム(I)１１０１の順番に到着したとする。
【００３４】
データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４を含むフレーム(II)１１０３がリンク１００を介して送受信ユニット２０１で受信されると、フレームからパケットに変換され転送ユニット２０２に転送される。転送ユニット２０２では、ヘッダ情報、およびＬ５以上のデータ（本例の場合はデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４）を抽出し、抽出後パケット照合ユニット２０３に送られて、パターン照合処理が行われる。
【００３５】
（データ受信）
パターン照合部６０１においてデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっており、図１２のフレーム(II)１１０３では“ＦＯ＝１”）からＩＰフラグメントされていると判定されるため、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(II)１１０４と接続する分割パケットを検索する。
【００３６】
（パターン照合処理）
検索結果では、データ(II)１１０４と接続する分割パケットは登録されていないので、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４に対するパターン照合処理が行われる。まず、パターン照合開始から初期状態０に戻った場合に“１”となるフラグ（以下、照合リセットフラグ）を“０”にセットし、オートマトンの初期状態０において先頭のデータ“Ｂ”から照合処理が行われる。図１０よりパケットのデータと一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｃ”が入力されると、これも一致する文字“Ｃ”が登録されているため状態４から状態５に遷移する。ここで、状態５では、派生パターンを示すパターン識別フラグが立っており（図１０中、破線丸で示す）かつ、検索開始からここまで初期状態０に戻っていないため（照合リセットフラグが“０”のままのため）データ(II) １１０４の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定される。
【００３７】
データ(II)１１０４の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定されると、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である“５”）、フラグメントオフセット（この例ではフレーム(II)１１０３でのフラグメントオフセット値が“１”なので“１”）、パケット長（この例ではデータ(II)１１０４の文字列長が“８”なので“８”）が登録される。さらに、データ“Ａ”が入力されると、状態５以降に子ノードが存在しないため一旦初期状態０に移り、初期状態０からは文字“Ａ”が登録されているため状態１に遷移する。また、初期状態に戻ったことにより照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→０と遷移して、データ(II)１１０４に対する照合が終了する。
【００３８】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターンの後部分に一致する可能性あり）だけが通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【００３９】
（データ受信）
次に、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２を含むフレーム(I)１１０１がリンク１００を介して送受信ユニット２０１で受信されると、フレームからパケットに変換され転送ユニット２０２に転送される。転送ユニット２０２では、ヘッダ情報、およびＬ５以上のデータ（本例の場合はデータ(I)“ＢＤＡＢＥ４ＦＡ”１１０２）を抽出し、抽出後パケット照合ユニット２０３に送られてパターン照合処理が行われる。
【００４０】
（接続判定）
パターン照合部６０１においてデータ(I)“ＢＤＡＢＥ４ＦＡ”１１０２を受信すると、ヘッダ情報（フラグＭＦ３０８が“１”となっている。図１２のフレーム(I)１１０１では“ＭＦ＝１”）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(I)１１０２と接続する分割パケットを検索する。検索結果からデータ(I)１１０２と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。
【００４１】
なお、本実施の形態ではＩＰフラグメントの場合について述べているが、ＴＣＰセグメントにてフラグメントされている場合には、フラグメントオフセットおよびパケット長に代わって、シーケンス番号およびセグメント長が接続判定に用いられる。
【００４２】
判定の結果、データ(I)１１０２は、データ(II)１１０４の前に接続することが判定され、データ(I)１１０２に対するパターン照合が行われる。まず、前述と同様に、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。
【００４３】
（パターン照合処理）
図１０より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｄ”が入力されると、一致する文字“Ｄ”が登録されていないため状態４から状態０に移り、照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→１と遷移してデータ(I)１１０２に対するパターン照合が終了する。次に分割パケット状態管理テーブル６０４の検索結果から接続可能な分割パケットの照合終了状態が状態５であったことからオートマトンを状態５から初期状態０まで逆にたどり、その際に得られる文字列“ＣＢ”を用いて、データ(I)１１０２の照合終了状態１より照合を再開すると、状態１→２→３と遷移することができる。ここで、状態３（ノード９０７）にてオリジナルパターンであることを示すフラグ（図１０中、二重丸で示す）が登録されているためパターン“ＡＢＣ”にヒットしたことが判定でき、状態３のノードに登録してあるパターン“ＡＢＣ”に対する登録パターン番号を得ることができる。
【００４４】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターン番号）が通知されるため、登録パターン番号を検索キーとしてポリシーテーブル２１５に対して検索を行い、該当パケットの処遇（転送／廃棄等）について解決する。解決後、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送または、廃棄するよう通知され、転送が通知されれば該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信され、廃棄と通知されれば、該当パケットは廃棄されるためエンド端末ではフラグメントパケットを再構築できないために廃棄される。
【００４５】
［パターン照合工程の例２］
図１３は、パケットデータがＩＰフラグメント（パケットの分割）された様子を示す模式図である。ここでは、一例として、データ(Xa)“ＢＤＡＢＥ４ＦＡＢＣＤＥＦＧＨＩＪＡＢＤ４ＦＶＸ”が、データ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２と、データ(IIa)“ＢＣＤＥＦＧＨＩ”１３０４、データ(IIIa)“ＪＡＢＤ４ＦＶＸ”１３０６の３つのパケットにＩＰフラグメントされ、かつ受信順序が逆転して、データ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２、データ(IIIa)“ＪＡＢＤ４ＦＶＸ”１３０６、データ(IIa)“ＢＣＤＥＦＧＨＩ”１３０４の順番に到着した場合におけるパターン“ＡＢＣＤＥＦＧＨＩＪ”を発見する動作について述べる。
【００４６】
図１４はパターン“ＡＢＣＤＥＦＧＨＩＪ”を登録したオートマトンを示しており、状態１０は、オリジナルパターンを示すフラグ（図１４中、二重線丸で示す）が、状態１９、２７、３４、４０、４５、４９、５２、５４、５５には、派生パターンを示すパターン識別フラグ（図１４中、破線丸で示す）が登録されており、また状態１〜９までは子ノードにオリジナルパターンを示すフラグを持つノードが存在しているため、それを識別するためのフラグ（図１４中、太線丸で示す）が登録されている。
【００４７】
図１５は、データ“ＢＤＡＢＥ４ＦＡＢＣＤＥＦＧＨＩＪＡＢＤ４ＦＶＸ”が３つのパケットにＩＰフラグメントされ、データ(Ia)１３０２、データ(IIa)１３０４、データ(IIIa)１３０６がイーサネット（登録商標）フレームによりカプセル化されフレーム(Ia)１３０１、フレーム(IIa)１３０３、フレーム(IIIa)１３０５と３つのフレームとなっている。これらのフレームが、上述のように、フレーム(Ia)１３０１、フレーム(IIIa)１３０５、フレーム(IIa)１３０３の順番に到着したとする。
【００４８】
（データ受信）
データ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２を含むフレーム(Ia)１３０１がリンク１００を介して送受信ユニット２０１で受信されると、フレームからパケットに変換され転送ユニット２０２に転送される。転送ユニット２０２では、ヘッダ情報、およびＬ５以上のデータ（本例の場合はデータ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２）を抽出し、抽出後パケット照合ユニット２０３に送られてパターン照合処理が行われる。
【００４９】
パターン照合部６０１においてデータ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２を受信すると、ヘッダ情報（フラグＭＦ３０８が“１”となっている。図１５のフレーム(Ia)１３０１では“ＭＦ＝１”）からＩＰフラグメントされていると判定されるため、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(Ia)１３０２と接続する分割パケットを検索する。
【００５０】
（パターン照合処理）
検索結果では、データ(Ia)１３０２と接続する分割パケットは登録されていないので、次にデータ(Ia)“ＢＤＡＢＥ４ＦＡ”１３０２に対するパターン照合処理が行われる。まず、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。図１４より一致する文字“Ｂ”が登録されているため状態０から状態１１に遷移し、これ以降状態は、データ“ＤＡＢＥ４ＦＡ”が入力されると、状態１１→０→１→２→３５→０→４１→１と遷移してデータ(Ia)１３０２に対する照合が終了する。
【００５１】
照合終了状態１では、子ノードにオリジナルパターンが含まれていることを示すフラグ（図１４中、太線丸で示す）、および照合リセットフラグが“１”であることから登録パターンの前方部分に一致する可能性があると判定され、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である１）、フラグメントオフセット（この例ではフレーム(Ia)１３０１でのフラグメントオフセット値が０なので０）、パケット長（この例ではデータ(Ia)１３０２の文字列長が“８”なので“８”）が登録される。
【００５２】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターンの前方部分に一致する可能性あり）だけが通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【００５３】
（データ受信）
次にデータ(IIIa)“ＪＡＢＤ４ＦＶＸ”１３０６を含むフレームがリンク１００を介して送受信ユニット２０１で受信されると、フレームからパケットに変換され転送ユニット２０２に転送される。転送ユニット２０２では、ヘッダ情報、およびＬ５以上のデータ（本例の場合はデータ(IIIa)“ＪＡＢＤ４ＦＶＸ”１３０６）は、パケット照合ユニット２０３に送られ、パターン照合処理が行われる。
【００５４】
（接続判定）
パターン照合部６０１においてデータ(IIIa)“ＪＡＢＤ４ＦＶＸ”１３０６を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっている。図１５のフレーム(IIIa)１３０５では“ＦＯ＝２”）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(IIIa)１３０６と接続する分割パケットを検索する。検索結果からデータ(IIIa)１３０６と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。
【００５５】
（パターン照合処理）
判定の結果、データ(IIIa)１３０６は、すでに照合の終わったデータ(Ia)１３０２とは直接接続しないと判定され、データ(IIIa)１３０６に対するパターン照合が行われる。まず前述と同様に、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｊ”から照合処理が行われる。図１２より一致する文字“Ｊ”が登録されているため状態０から状態５５に遷移する。ここで、状態５５では、派生パターンを示すパターン識別フラグが立っており（図１２中、破線丸で示す）かつ、検索開始からここまで初期状態０に戻っていないため（照合リセットフラグが“０”のままのため）データ(IIIa)１３０６の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定され、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である５５）、フラグメントオフセット（この例ではフレーム(IIIa)１３０５でのフラグメントオフセット値が２なので２）、パケット長（この例ではデータ(IIIa)１３０６の文字列長が“８”なので“８”）が登録される。さらにデータ“Ａ”が入力されると、状態５５以降に子ノードが存在しないため一旦初期状態０に移り、初期状態０からは文字“Ａ”が登録されているため状態１に遷移する。また、照合リセットフラグは“１”にセットされる。これ以降、残りのデータ“ＢＤ４ＦＶＸ”が入力されると状態は、状態１→２→２８→０→４１→０→０と遷移して、データ(IIIa)１３０６に対する照合が終了する。
【００５６】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターンの後方部分に一致する可能性あり）だけが通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【００５７】
（データ受信）
次にデータ(IIa)“ＢＣＤＥＦＧＨＩ”１３０４を含むフレームがリンク１００を介して送受信ユニット２０１で受信されると、フレームからパケットに変換され転送ユニット２０２に転送される。転送ユニット２０２では、ヘッダ情報、およびＬ５以上のデータ（本例の場合はデータ(IIa)“ＢＣＤＥＦＧＨＩ”１３０４）は、パケット照合ユニット２０３に送られ、パターン照合処理が行われる。
【００５８】
（接続判定）
パターン照合部６０１においてデータ(IIa)“ＢＣＤＥＦＧＨＩ”１３０４を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっている。図１５のフレーム(IIa)１３０３では“ＦＯ＝１”）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(IIa)１３０４と接続する分割パケットの状態を検索する。検索結果からデータ(IIa)１３０４と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。
【００５９】
（パターン照合処理）
判定の結果、データ(IIa)１３０４は、データ(Ia)１３０２の後、およびデータ(IIIa) １３０６の前に接続することが判定されるため、データ(Ia)１３０２の照合終了状態（状態１）からデータ(IIa)１３０４のパターン照合が行われる。状態前述と同様に、照合リセットフラグを“０”にセットし、データ(Ia)１３０２の照合終了状態である状態１からデータ“Ｂ”の照合処理が行われる。図１４より一致する文字“Ｂ”が登録されているため状態１から状態２に遷移する。これ以降の状態は、状態２→３→４→５→６→７→８→９と遷移してデータ(IIa)１３０４に対するパターン照合が終了する。次に分割パケット状態管理テーブル６０４の検索結果からデータ(IIa)１３０４と後方で接続可能な分割パケットがデータ(IIIa)１３０６であるので、その照合終了状態（状態５５）からオートマトンを初期状態０まで逆にたどり、その際に得られる文字列“Ｊ”を用いて、データ(IIa)１３０４の照合終了状態９より照合を再開すると、状態９→１０と遷移し、状態１０にてオリジナルパターンであることを示すフラグ（図１４中、二重線丸で示す）によりパターン“ＡＢＣＤＥＦＧＨＩＪ”にヒットしたことが判定でき、登録パターン番号を得る。
【００６０】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターン番号）が通知されるため、登録パターン番号を検索キーとしてポリシーテーブル２１５に対して検索を行い、該当パケットの処遇（転送／廃棄等）について解決する。解決後、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送または、廃棄するよう通知され、転送が通知されれば該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信され、廃棄と通知されれば、該当パケットは廃棄されるためエンド端末ではフラグメントパケットを再構築できないために廃棄される。
【００６１】
このように実施の形態１によれば、オートマトンに登録するパターンに対して、派生パターンも登録することで、フラグメントされ、かつ順序逆転して到達したパケットにおいてもパターン照合が可能であり、またフラグメントパケットをリアセンブルしないためにフラグメントパケットのリアセンブル処理による遅延を発生させないことができる。
【００６２】
実施の形態２．
本発明の実施の形態２に係るパターン照合装置及びパターン照合方法の概念について説明する。ネットワーク構成、ファイヤーウォール１０１の内部構成は、実施の形態１と同様であるため説明を省略する。実施の形態１との違いであるパターン照合部６０１、分割パケット状態管理テーブル６０４、オートマトン制御部７０１の動作についてはこれ以降で説明する。
【００６３】
［パターン登録工程の例２］
パターン登録工程（パターン登録手順）の一例として、第１のパターン“ＡＢＣ”、第２のパターン“ＢＣ”がオートマトンテーブル２０６へ登録される場合について述べる。
【００６４】
第１のパターン“ＡＢＣ”を登録すると図９のようにオートマトンが形成される（パターン“ＡＢＣ”の登録動作については実施の形態１を参照）。次に第２のパターン“ＢＣ”を登録する。第２のパターン“ＢＣ”が制御ＰＣ１０８よりオートマトン制御部７０１に入力されると、図１６のように第２のパターン“ＢＣ”として状態遷移０→４→５が登録されるが、既に第１のパターン“ＡＢＣ”登録時において登録済みであるためノードは登録されず、オリジナルパターンの最後尾である状態５のノードに、オリジナルパターンの最後尾のノードを示すノード識別フラグ１４０１（図１６中、二重破線丸で示す）が登録される。また、本実施の形態では１バイトずつパターン照合を行うために、オリジナルパターンに対して、文字列の先頭から１バイトずつ削除した派生パターンとして状態遷移０→６（派生パターン“Ｃ”）が登録されるが、これも既に第１のパターン“ＡＢＣ”登録時において登録済みであるためノードは登録されない。また、派生パターンの最後尾である状態６のノードが登録される際に、派生パターンの最後尾のノードを示すノード識別フラグ（図１６中、二重破線丸で示す）が登録されるが、既に第１のパターン“ＡＢＣ”登録時において登録済みであるために登録されない。
【００６５】
［パターン照合工程の例３］
次に一例として、図１１のようにデータ“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２と、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の２つのパケットにＩＰフラグメントされ、かつ受信順序が逆転した場合においてマルチヒットした場合に、最長一致パターンである第１のパターン“ＡＢＣ”を発見する動作について述べる。
【００６６】
（データ受信）
パターン照合部６０１においてデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっている）からＩＰフラグメントされていると判定されるため、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(II)１１０４と接続する分割パケットを検索する。
【００６７】
（パターン照合処理）
検索結果では、データ(II)１１０４と接続する分割パケットはまだ登録されていないので、次にデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４に対するパターン照合処理が行われる。まず、照合リセットフラグを“０”にセットし、さらに、初期状態０から初期状態“０”以外への遷移が起きるたびカウントアップを行い初期状態０へ遷移する場合には０にリセットされるパターン長カウンタも０にセットして、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。図１６よりパケットのデータと一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。
【００６８】
次にデータ“Ｃ”が入力されると、これも一致する文字“Ｃ”が登録されているため状態４から状態５に遷移する。ここで、状態５では、派生パターンを示すパターン識別フラグ（ここでは二重破線丸で示されており、他では派生パターンは破線丸で示されている）を示しており、かつ検索開始からここまで初期状態０に戻っていないため（照合リセットフラグが“０”のままのため）データ(II)１１０４の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定される。そして、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である５）、フラグメントオフセット（この例ではフレーム(II)１１０３でのフラグメントオフセット値が“１”なので“１”）、パケット長（この例ではデータ(II)１１０４の文字列長が“８”なので“８”）が登録される。
【００６９】
さらに状態５では、オリジナルパターンの最後尾のノードを示すノード識別フラグ（ここでは二重破線丸で示されており、他ではオリジナルパターンは二重丸で示されている）を示しているため第２のパターン“ＢＣ”にヒットしていると判定され、ヒットした登録パターン番号と、初期状態からの深さ（つまり文字列の長さ）であるパターン長カウンタの値（この例では“２”）も分割パケット状態管理テーブル６０４に登録される。さらに、データ“Ａ”が入力されると、状態５以降に子ノードが存在しないため一旦状態０に移り、状態０からは文字“Ａ”が登録されているため状態１に遷移する。また、初期状態に戻ったことにより照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→０と遷移して、データ(II)１１０４に対する照合が終了する。
【００７０】
データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターン番号（第２のパターン）と、登録パターンの後部分に一致する可能性あり）と他の登録パターンと一致する可能性が通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【００７１】
（データ受信）
次に、パターン照合部６０１においてデータ(I)“ＢＤＡＢＥ４ＦＡ”１１０２を受信すると、ヘッダ情報（フラグＭＦ３０８が“１”となっている）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(I)１１０２と接続する分割パケットを検索する。検索結果からデータ(I)１１０２と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。判定の結果、データ(I)１１０２は、データ(II)１１０４の前に接続することが判定された後、データ(I)１１０２に対するパターン照合が行われる。
【００７２】
（パターン照合処理）
まず、前述と同様に、照合リセットフラグを“０”にセットし、パターン長カウンタも０にセットされて、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。図１６より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｄ”が入力されると、一致する文字“Ｄ”が登録されていないため状態４から状態０に移り、照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→１と遷移してデータ(I)１１０２に対するパターン照合が終了する。
【００７３】
次に分割パケット状態管理テーブル６０４の検索結果から接続可能な分割パケットの照合終了状態が状態５であることからオートマトンを状態５から開始状態０まで逆にたどり、その際に得られる文字列“ＣＢ”を逆順に用いて、データ(I)１１０２の照合終了状態１より照合を再開すると、状態１→２→３と遷移し、状態３にてオリジナルパターンであることを示すフラグ（図１６中、二重丸で示す）により第１のパターン“ＡＢＣ”にヒットしたことが判定でき、登録パターン番号（第１のパターン）を得る。
【００７４】
この時、前述した分割パケット状態管理テーブル６０４での検索結果に登録パターン番号（第２のパターン）が含まれているためマルチヒットしていると判定される。そして、第１のパターンでのパターン長カウンタの値（この例では３）と、第２のパターンでのパターン長カウンタの値（この例では２）より、パターン長の長い第１のパターンが選ばれる。
【００７５】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（前述の判定で選択された登録パターン番号（第１のパターン））が通知されるため、登録パターン番号を検索キーとしてポリシーテーブル２１５に対して検索を行い、該当パケットの処遇（転送／廃棄等）について解決する。解決後、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送または、廃棄するよう通知され、転送が通知されれば該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信され、廃棄と通知されれば、該当パケットは廃棄されるためエンド端末ではフラグメントパケットを再構築できないために廃棄される。
【００７６】
このように実施の形態２によれば、マルチヒットした際に、初期状態からオリジナルパターンであることを示すフラグまでの深さ（つまり文字列の長さ）をマルチヒットしたパターン間で比較することで、最長一致したパターンを識別することができる。
【００７７】
実施の形態３．
本発明の実施の形態３に係るパターン照合装置及びパターン照合方法の概念について説明する。ネットワーク構成、ファイヤーウォール１０１の内部構成は、実施の形態１と同様であるため説明を省略する。実施の形態１との違いであるパターン照合部６０１、分割パケット状態管理テーブル６０４、オートマトン制御部７０１の動作についてはこれ以降で説明する。
【００７８】
［パターン登録工程の例３］
パターン登録工程（パターン登録手順）のさらなる一例として、第１のパターン“ＡＢＣ”、第２のパターン“ＢＣ”がオートマトンテーブル２０６へ登録される場合について述べる。
【００７９】
登録するべき第１のパターン“ＡＢＣ”が制御ＰＣ１０８よりオートマトン制御部７０１に入力されると、図１６のようにパターン“ＡＢＣ”として状態遷移０→１→２→３が登録され、オリジナルパターンの最後尾である状態３のノードが登録される際に、オリジナルパターンの最後尾のノードを示すノード識別フラグ（図１６中、二重線丸で示す）が登録される。また、ユーザーがあらかじめ登録するパターンに対して順位づけをした優先度番号も登録される（この例では優先度番号“１”とする）。また、オリジナルパターンのフラグを持つノードが子ノードに存在する場合（図１６の状態１、２が相当する）には、その存在を示すフラグ（図１６中、太線丸で示す）も登録される。
【００８０】
次に、オリジナルパターンに対して、文字列の先頭から１バイトずつ削除した派生パターンとして状態遷移０→４→５（派生パターン“ＢＣ”）、状態遷移０→６（派生パターン“Ｃ”）が登録される。また、派生パターンの最後尾である状態５および状態６のノード１００１が登録される際に、派生パターンの最後尾のノードを示すノード識別フラグ（図１６中、破線丸で示す）が登録される。
【００８１】
次に第２のパターン“ＢＣ”を登録する。第２のパターン“ＢＣ”が制御ＰＣ１０８よりオートマトン制御部７０１に入力されると、図１６のように第２のパターン“ＢＣ”として状態遷移０→４→５が登録されるが、既に第１のパターン“ＡＢＣ”登録時において登録済みであるためノードは登録されず、オリジナルパターンの最後尾である状態５のノードに、オリジナルパターンの最後尾のノードを示すノード識別フラグ（図１６中、二重破線丸で示す）が登録される。また、ユーザーがあらかじめ登録するパターンに対して順位づけをした優先度番号も登録される（この例では優先度番号“２”とする）。
【００８２】
次に、オリジナルパターンに対して、文字列の先頭から１バイトずつ削除した派生パターンとして状態遷移０→６（派生パターン“Ｃ”）が登録されるが、これも既に第１のパターン“ＡＢＣ”登録時において登録済みであるためノードは登録されない。また、派生パターンの最後尾である状態６のノードが登録される際に、派生パターンの最後尾のノードを示すノード識別フラグ（図１６中、破線丸で示す）が登録されるが、既に第１のパターン“ＡＢＣ”登録時において登録済みであるために登録されない。
【００８３】
［パターン照合工程の例４］
次に、一例として、データ“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２と、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の２つのパケットにＩＰフラグメントされ、かつ受信順序が逆転した場合においてマルチヒットした場合に、優先度の高い第１のパターン“ＡＢＣ”を発見する動作について述べる。
【００８４】
（データ受信）
パターン照合部６０１においてデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっている）からＩＰフラグメントされていると判定されるため、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(II)１１０４と接続する分割パケットを検索する。検索結果では、データ(II)１１０４と接続する分割パケットはまだ登録されていないので、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４に対するパターン照合処理が行われる。
【００８５】
（パターン照合処理）
まず、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われ、図１６より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｃ”が入力されると、一致する文字“Ｃ”が登録されているため状態４から状態５に遷移する。
【００８６】
ここで、状態５では、派生パターンを示すパターン識別フラグ（ここでは二重破線丸で示されており、他ではオリジナルパターンは二重丸で示されている）を示しており、かつ検索開始からここまで初期状態０に戻っていないため（照合リセットフラグが“０”のままのため）データ(II)１１０４の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定され、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である“５”）、フラグメントオフセット（この例ではフレーム(II)１１０３でのフラグメントオフセットが“１”であるので“１”）、パケット長（この例ではデータ(II)１１０４の文字列長が“８”であるので“８”）が登録される。
【００８７】
さらに状態５では、オリジナルパターンの最後尾のノードを示すノード識別フラグ（ここでは二重破線丸で示されており、他ではオリジナルパターンは二重丸で示されている）を示しているため第２のパターン“ＢＣ”にヒットしていると判定され、ヒットした登録パターン番号と優先度の値（この例では“２”）も分割パケット状態管理テーブル６０４に登録される。さらに、データ“Ａ”が入力されると、状態５以降に子ノードが存在しないため一旦状態０に移り、状態０からは文字“Ａ”が登録されているため状態１に遷移する。また、初期状態に戻ったことにより照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→０と遷移して、データ(II)１１０４に対する照合が終了する。
【００８８】
データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターン番号（第２のパターン）と、登録パターンの後部分に一致する可能性あり）と他の登録パターンと一致する可能性が通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【００８９】
（データ受信）
次に、パターン照合部６０１においてデータ(I)“ＢＤＡＢＥ４ＦＡ”１１０２を受信すると、ヘッダ情報（フラグＭＦ３０８が“１”となっている）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(I)１１０２と接続する分割パケットを検索する。検索結果からデータ(I)１１０２と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。判定の結果、データ(I)１１０２は、データ(II)１１０４の前に接続することが判定された後、データ(I)１１０２に対するパターン照合が行われる。
【００９０】
（パターン照合処理）
まず、前述と同様に、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。図１６より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｄ”が入力されると、一致する文字“Ｄ”が登録されていないため状態４から状態０に移り、照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→１と遷移してデータ(I)１１０２に対するパターン照合が終了する。次に分割パケット状態管理テーブル６０４の検索結果から接続可能な分割パケットの照合終了状態が状態５であることからオートマトンを状態５から開始状態０まで逆にたどり、その際に得られる文字列“ＣＢ”を逆順に用いて、データ(I)１１０２の照合終了状態１より照合を再開すると、状態１→２→３と遷移し、状態３にてオリジナルパターンであることを示すフラグ（図１６中、二重丸で示す）により第１のパターン“ＡＢＣ”にヒットしたことが判定でき、登録パターン番号（第１のパターン）を得る。
【００９１】
この時、前述した分割パケット状態管理テーブル６０４での検索結果に登録パターン番号（第２のパターン）が含まれているためマルチヒットしていると判定することができ、第１のパターンでの優先度の値（この例では“１”）と、第２のパターンでの優先度の値（この例では“２”）より、番号の若い第１のパターンが選ばれる。
【００９２】
照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（前述の判定で選択された登録パターン番号（第１のパターン））が通知されるため、登録パターン番号を検索キーとしてポリシーテーブル２１５に対して検索を行い、該当パケットの処遇（転送／廃棄等）について解決する。解決後、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送または、廃棄するよう通知され、転送が通知されれば該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信され、廃棄と通知されれば、該当パケットは廃棄されるためエンド端末ではフラグメントパケットを再構築できないために廃棄される。
【００９３】
このように実施の形態３によれば、マルチヒットの際において登録されている優先度をマルチヒットしたパターン間で比較することで、優先的にヒットさせるパターンを識別することができる。
【００９４】
実施の形態４．
本発明の実施の形態４に係るパターン照合装置及びパターン照合方法の概念について説明する。ネットワーク構成、ファイヤーウォール１０１の内部構成は、実施の形態１と同様であるため説明を省略する。実施の形態１との違いであるパターン照合部６０１、分割パケット状態管理テーブル６０４、オートマトン制御部７０１の動作についてはこれ以降で説明する。
【００９５】
［パターン登録工程の例４］
パターン登録工程（パターン登録手順）の一例として、パターン“ＡＢＣ”がオートマトンテーブル２０６へ登録される場合について述べる。
【００９６】
登録するべきパターン“ＡＢＣ”が制御ＰＣ１０８よりオートマトン制御部７０１に入力されると、図１７のようにパターン“ＡＢＣ”として状態遷移０→１→２→３が登録される。そして、オリジナルパターンの最後尾である状態３のノードが登録される際に、オリジナルパターンの最後尾のノードを示すノード識別フラグ（図１７中、二重丸で示す）が登録される。次に、オリジナルパターンに対して、文字列の先頭から１バイトずつ削除した派生パターンとして状態遷移０→４→５（派生パターン“ＢＣ”）、状態遷移０→６（派生パターン“Ｃ”）が登録される。また、派生パターンの最後尾である状態５および状態６のノードが登録される際に、派生パターンの最後尾のノードを示すノード識別フラグ（図１７中、破線丸で示す）が登録される。
【００９７】
また、状態遷移０→４→５（派生パターン“ＢＣ”）、状態遷移０→６（派生パターン“Ｃ”）が登録される際に、状態のジャンプ先を示す情報１５０１（図１７の状態４→２、状態５→３、状態６→５）も登録される。
【００９８】
［パターン照合工程の例５］
次に、パターン照合の一例として、データ“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が、データ(I)“ＢＤＡＢＥ４ＦＡ”１１０２と、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の２つのパケットにＩＰフラグメントされ、かつ受信順序が逆転した場合においてパターン“ＡＢＣ”を高速に発見する動作について述べる。
【００９９】
（データ受信）
パターン照合部６０１においてデータ(II)“ＢＣＡＢＤ４ＦＶ”１１０４を受信すると、ヘッダ情報（フラグメントオフセット３０７が“０”以外となっている）からＩＰフラグメントされていると判定されるため、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(II)１１０４と接続する分割パケットを検索する。この場合、データ(II)１１０４と接続する分割パケットはまだ登録されていないので、データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４に対するパターン照合処理が行われる。
【０１００】
（パターン照合処理）
まず、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われ、図１７より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｃ”が入力されると、一致する文字“Ｃ”が登録されているため状態４から状態５に遷移する。
【０１０１】
ここで、状態５では、派生パターンを示すパターン識別フラグ（図１７中、破線丸で示す）を示しており、かつ検索開始からここまで初期状態０に戻っていないため（照合リセットフラグが“０”のままのため）データ(II)１１０４の先頭部分とオートマトンに登録されているパターンが一致する可能性があると判定され、分割パケット状態管理テーブル６０４に、ヘッダ情報（ＩＰアドレス、識別子）を検索キーに、データ部分に状態情報（この例では状態番号である５）、フラグメントオフセット（この例ではフレーム(II)１１０３でのフラグメントオフセットが“１”であるので“１”）、パケット長（この例ではデータ(II)１１０４の文字列長が“８”なので“８”）が登録される。さらに、データ“Ａ”が入力されると、状態５以降に子ノードが存在しないため一旦状態０に移り、照合リセットフラグは“１”にセットされ、状態０からは文字“Ａ”が登録されているため状態１に遷移する。これ以降の状態は、状態１→２→０→０→０→０と遷移して、データ(II)１１０４に対する照合が終了する。
【０１０２】
データ(II)“ＢＣＡＢＤ４ＦＶ”１１０４の照合終了後、検索結果経路６０３を介して動作判定部６０２に照合結果情報（登録パターンの後部分に一致する可能性あり）と他の登録パターンと一致する可能性が通知されたため、ポリシーテーブル２１５に対して検索を行わず、転送ユニット２０２に対してルーティング検索結果どおりに該当パケットを転送するように通知され、該当パケットは、送受信ユニット２０１に送られ、パケットからフレームにカプセル化されて送信される。
【０１０３】
（データ受信）
次に、パターン照合部６０１においてデータ(I)“ＢＤＡＢＥ４ＦＡ”１１０２を受信すると、ヘッダ情報（フラグＭＦ３０８が“１”となっている）からＩＰフラグメントされていると判定されるため、まずヘッダ情報（ＩＰアドレス、識別子）を検索キーに分割パケット状態管理テーブル６０４に対して検索処理が行われ、データ(I)１１０２と接続する分割パケットを検索する。検索結果からデータ(I)１１０２と接続可能なデータを検索結果のフラグメントオフセット、パケット長と、自パケットのフラグメントオフセット、パケット長から判定する。判定の結果、データ(I)１１０２は、データ(II)１１０４の前に接続することが判定された後、データ(I)１１０２に対するパターン照合が行われる。
【０１０４】
（パターン照合処理）
まず、前述と同様に、照合リセットフラグを“０”にセットし、オートマトンの初期状態０においてデータ“Ｂ”から照合処理が行われる。図１１より一致する文字“Ｂ”が登録されているため状態０から状態４に遷移する。次にデータ“Ｄ”が入力されると、一致する文字“Ｄ”が登録されていないため状態４から状態０に移り、照合リセットフラグは“１”にセットされる。これ以降の状態は、状態１→２→０→０→０→１と遷移してデータ(I)１１０２に対するパターン照合が終了する。次に分割パケット状態管理テーブル６０４の検索結果から接続可能な分割パケットの照合終了状態が状態５であり、かつジャンプ先が状態１と同じ枝にある状態３であることから、状態１から状態３にジャンプし、状態３にてオリジナルパターンであることを示すフラグ（図１０では二重丸としている）によりパターン(I)“ＡＢＣ”にヒットしたことが判定でき、登録パターン番号（第１のパターン）を得る。
【０１０５】
これにより、実施の形態１乃至３のように、オートマトンをある状態から開始状態０まで逆にたどり、その際に得られる文字列を逆順に用いて、照合終了状態より照合を再開する方式と比べて、高速なパターン照合が可能となる。
【０１０６】
このように実施の形態４によれば、オートマトンにパターン登録する際に派生パターンからオリジナルパターンまたは、派生パターンへのジャンプ先を登録しておくことで高速なパターン照合が可能となる。
【産業上の利用可能性】
【０１０７】
ネットワークの不正アクセス解析に適するものであり、特にパケット順序が逆転することが多いネットワークの不正アクセス解析に適用されて好適なものである。
【図面の簡単な説明】
【０１０８】
【図１】実施の形態１のパターン照合装置を含むネットワークの構成図である。
【図２】図１に示されたファイヤーウォールの内部構成を示すブロック図である。
【図３】図２に示された照合ユニット内部の構成図である。
【図４】図２に示された制御ユニット内部の構成図である。
【図５】イーサネット（登録商標）フレームフォーマット図である。
【図６】ＩＰｖ４ヘッダフォーマット図である。
【図７】ＴＣＰヘッダフォーマット図である。
【図８】ＵＤＰヘッダフォーマット図である。
【図９】パターン“ＡＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。
【図１０】派生パターンも含めたパターン“ＡＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。
【図１１】パケットデータがＩＰフラグメント（パケットの分割）された様子を示す模式図である。
【図１２】データ“ＢＤＡＢＥ４ＦＡＢＣＡＢＤ４ＦＶ”が２つのパケットにＩＰフラグメントされ、イーサネット（登録商標）フレームによりそれぞれカプセル化された様子を示すフレーム構成図である。
【図１３】パケットデータがＩＰフラグメント（パケットの分割）された様子を示す模式図である。
【図１４】派生パターンも含めたパターン“ＡＢＣＤＥＦＧＨＩＪ”のオートマトンへの登録の様子を説明するための遷移図である。
【図１５】データ“ＢＤＡＢＥ４ＦＡＢＣＤＥＦＧＨＩＪＡＢＤ４ＦＶＸ”が２つのパケットにＩＰフラグメントされ、イーサネット（登録商標）フレームによりそれぞれカプセル化された様子を示すフレーム構成図である。
【図１６】第１のパターン“ＡＢＣ”及び第２のパターン“ＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。
【図１７】ジャンプ先も含めたパターン“ＡＢＣ”のオートマトンへの登録の様子を説明するための遷移図である。
【符号の説明】
【０１０９】
１００  リンク
１０１  ファイヤーウォール
１０２  ＰＣ端末
１０３  インターネット
１０４  サーバー群
１０５  無線アクセスポイント
１０６  無線端末
１０７  イントラネット
１０８  制御ＰＣ
１０９  制御リンク
２０１  送受信ユニット
２０２  転送ユニット
２０３  照合ユニット
２０４  制御ユニット
２０５  ルーティングテーブル
２０６  オートマトンテーブル（オートマトン記憶部）
２１５  ポリシーテーブル
６０１  パターン照合部
６０２  動作判定部
６０４  分割パケット状態管理テーブル
７０１  オートマトン制御部
７０２  ルーティング制御部
７０３  ポリシー制御部
【図１】
0004729389.tif 000002
【図２】
0004729389.tif 000003
【図３】
0004729389.tif 000004
【図４】
0004729389.tif 000005
【図５】
0004729389.tif 000006
【図６】
0004729389.tif 000007
【図７】
0004729389.tif 000008
【図８】
0004729389.tif 000009
【図９】
0004729389.tif 000010
【図１０】
0004729389.tif 000011
【図１１】
0004729389.tif 000012
【図１２】
0004729389.tif 000013
【図１３】
0004729389.tif 000014
【図１４】
0004729389.tif 000015
【図１５】
0004729389.tif 000016
【図１６】
0004729389.tif 000017
【図１７】
0004729389.tif 000018