(57)【要約】【課題】アプリケーションに特有のキー情報を用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行う。【解決手段】入力パケットのプロトコル種別ごとに、入力パケットに含まれるキー情報Ｋｅｙを特定するためのデリミタ情報ＤＬを記憶するデリミタ情報記憶回路１２を設け、キー情報抽出回路１４が、ヘッダ処理回路１１で特定されたプロトコル種別に応じてデリミタ情報記憶回路１２から出力された、入力パケットのプロトコル種別に関するデリミタ情報ＤＬに基づいて、遅延回路１３から出力された入力パケットのうちデリミタ情報の近傍からキー情報を抽出する。【選択図】  図１
2019097053.tif 000002
【特許請求の範囲】
【請求項１】
入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、前記入力パケットをアプリケーションごとに識別するパケット識別装置であって、
前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理回路と、
前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶回路と、
前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延回路と、
前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出回路と、
前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索回路と
を備えることを特徴とするパケット識別装置。
【請求項２】
請求項１に記載のパケット識別装置において、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに、前記デリミタ情報と前記デリミタ情報に対する前記キー情報の位置を示す位置情報とを記憶し、
前記キー情報抽出回路は、前記デリミタ情報記憶回路から出力された前記デリミタ情報と前記位置情報とに基づいて、前記入力パケットから前記キー情報を抽出する
ことを特徴とするパケット識別装置。
【請求項３】
請求項２に記載のパケット識別装置において、
前記位置情報は、前記キー情報が前記デリミタ情報の前方または後方のいずれに位置するかを示す情報であり、
前記キー情報抽出回路は、前記入力パケットのうち、前記位置情報が示す前記デリミタ情報の前方または後方から、指定長のデータを前記キー情報として抽出する
ことを特徴とするパケット識別装置。
【請求項４】
請求項１〜請求項３のいずれかに記載のパケット識別装置において、
前記デリミタ情報記憶回路は、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、
前記キー情報抽出回路は、前記デリミタ情報ごとに設けられて、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、
前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を１つの結合キー情報に結合するキー情報結合回路をさらに備え、
前記検索回路は、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力する
ことを特徴とするパケット識別装置。
【請求項５】
請求項１に記載のパケット識別装置において、
前記遅延回路は、一定の長さで分割入力される前記入力パケットを、前記遅延時間だけ順次遅延させて遅延データとして出力し、
前記キー情報抽出回路は、
前記遅延データをバッファデータとして保持するバッファと、
前記バッファデータ内で前記デリミタ情報を探索することにより、前記デリミタ情報が存在するデリミタ情報位置を特定する比較器と、
前記デリミタ情報位置を基準とした位置範囲のデータを、前記キー情報として前記バッファデータから抽出する抽出器とを備える
ことを特徴とするパケット識別装置。
【請求項６】
入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、予め設定されているアプリケーションごとに前記入力パケットを識別するパケット識別装置で用いられるパケット識別方法であって、
ヘッダ処理回路が、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理ステップと、
デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶ステップと、
遅延回路が、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延ステップと、
キー情報抽出回路が、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出ステップと、
検索回路が、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索ステップと
を備えることを特徴とするパケット識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアを用いて可変長パケットを識別するためのパケット識別技術に関する。
【背景技術】
【０００２】
通信ネットワークを介してパケットを送受信するネットワーク装置の１つとして、ルータが用いられている。ルータは、受信パケットの識別を行い、識別結果に基づいた転送処理やフィルタリング処理等のパケット経路制御を行う。量産された廉価なルータでは、ＯＳＩ参照モデルの第４層までのパケットのヘッダ情報を参照したパケット識別が可能であるが、可変長パケットを扱う第５層から上位のアプリケーション層レベルでのパケット識別が難しい。そのため、第５層から上位層でのパケット識別には、サーバ上で実行されるソフトウェアやアプリケーションごとに高価な専用装置が用いられている。
【０００３】
一方、近年の通信トラヒックの爆発的な増加に伴い、アプリケーション層レベルでのパケット識別による、より高度なパケット経路制御の実現が求められている。例えば、ＤＮＳ（Domain Name System）プロトコルのペイロード情報に格納されているＵＲＬ情報に含まれるドメイン名識別によるパケット経路制御が挙げられる。ペイロード情報内のドメイン名識別が可能となると、例えば、ドメインＤＡに関するパケットは通信装置ＵＡへ転送し、ドメインＤＢに関するパケットは通信装置ＵＢへ転送するなどの、より細かな経路制御が可能となる。
【０００４】
さらに、近年、通信ネットワークに仮想化技術を適用する動きが加速しており、１つの物理サーバ上に複数のＶＭ（Virtual Machine）を構築し、１つのサーバで複数のアプリケーションを動作させる事例もある。ＶＭごとに異なるアプリケーションを処理する場合も、パケット識別に基づく振り分け制御技術が必要であり、このような制御をソフトウェア処理のみで実現しようとすると性能が不足する。また、専用装置で実現しようとすると、アプリケーションごとに専用装置が必要となるため、コストが増大する。したがって、１つの装置により、様々な通信プロトコルをアプリケーションレベルで識別可能なパケット識別技術が必要とされている。
【０００５】
従来、このようなパケットを識別するパケット識別装置として、第５層から上位層で用いるペイロード情報を含むパケットを識別可能な、ハードウェアベースのパケット識別装置がある。
図１２に示す従来のパケット識別装置５０は、ヘッダ処理部５１、キー情報抽出部５２、および検索部５３とを備えている。
【０００６】
このパケット識別装置５０では、まず、ヘッダ処理部５１が、入力パケットのヘッダ情報を識別し、ＤＮＳやＨＴＴＰ（Hyper Text Transfer Protocol）などのプロトコル種別を特定する。キー情報抽出部５２は、ヘッダ処理部５１で得られたプロトコル種別に基づいて、入力パケットの特定領域をキー情報として抽出する。検索部５３は、予め登録されている、識別対象のペイロード情報を示す各エントリを参照して、キー情報抽出部５２で抽出されたキー情報とペイロード情報が一致するエントリを検索し、得られた検索結果すなわち登録有無に基づいて、入力パケットが識別対象となるペイロード情報を含むパケットであるかどうかを識別している。
【０００７】
なお、ヘッダ処理部５１でのヘッダ処理はあくまでも、入力パケットのパケットフォーマットに従い、パケットの先頭から順次ヘッダ情報を解析していく識別処理であり、一般的な公知のパーサー処理方法で実現可能である（例えば、非特許文献１や非特許文献２など参照）。
また、検索部５３は、一般的な連想メモリである、ＣＡＭ（Content Addressable Memory）やＴＣＡＭ（Ternary Content Addressable Memory）を用いて実現することができる。
【０００８】
一方、キー情報抽出部５２における、入力パケットのペイロード情報から特定領域をキー情報として抽出する方法については、プロトコル種別ごとにキー情報として抽出すべきペイロード情報や最適な抽出方法が異なるため、従来ではプロトコル種別ごとに抽出回路が設けられている。
図１３に示す従来のキー情報抽出部５２では、前段にプロトコル種別ごとにキー情報を抽出する抽出器５２Ａが設けられており、後段には、指定されたプロトコル種別に基づいて、これら抽出器５２Ａのうち、対応するプロトコル種別の抽出器５２Ａの出力を切替選択するセレクタ５２Ｂが設けられている。この回路構成により、プロトコル種別に応じて検索部５３へのキー情報出力を切り替えられるようになっている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】「SDNet Packet Processor User Guide」、UG1012 (v2017.1)、Xilinx社、June 15,2017
【非特許文献２】「Ｐ４16  Language Specification version1.0.0」、The P4 Language Consortium、2017-05-22
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、このような従来技術では、複数のプロトコル種別に関するパケットを識別する場合、これらプロトコル種別ごとにキー情報抽出回路を設ける必要があるため、パケット識別装置全体の回路規模が増大するという問題点があった。また、キー情報抽出回路をＡＳＩＣ（Application Specific Integrated Circuit）に実装した場合、設計時に想定したプロトコル以外のキー情報抽出処理ができない。このため、将来の新たなプロトコルへの対応という観点からすれば、柔軟性に欠けるという問題点があった。なお、キー情報抽出回路をＦＰＧＡ（Field Programmable Gate Array）に実装した場合、後から回路の書き換え・追加が可能であるが、回路変更のための全体設計の見直しが必要となり、結果として設計コストが増大することになる。
【００１１】
本発明はこのような課題を解決するためのものであり、アプリケーションに特有のキー情報を用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことができるパケット識別技術を提供することを目的としている。
【課題を解決するための手段】
【００１２】
このような目的を達成するために、本発明にかかるパケット識別装置は、入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、前記入力パケットをアプリケーションごとに識別するパケット識別装置であって、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理回路と、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶回路と、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延回路と、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出回路と、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索回路とを備えている。
【００１３】
また、本発明にかかる上記パケット識別装置の一構成例は、前記デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記デリミタ情報と前記デリミタ情報に対する前記キー情報の位置を示す位置情報とを記憶し、前記キー情報抽出回路は、前記デリミタ情報記憶回路から出力された前記デリミタ情報と前記位置情報とに基づいて、前記入力パケットから前記キー情報を抽出するようにしたものである。
【００１４】
また、本発明にかかる上記パケット識別装置の一構成例は、前記位置情報が、前記キー情報が前記デリミタ情報の前方または後方のいずれに位置するかを示す情報であり、前記キー情報抽出回路は、前記入力パケットのうち、前記位置情報が示す前記デリミタ情報の前方または後方から、指定長のデータを前記キー情報として抽出するようにしたものである。
【００１５】
また、本発明にかかる上記パケット識別装置の一構成例は、前記デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに複数の前記デリミタ情報を記憶し、前記キー情報抽出回路は、前記デリミタ情報ごとに設けられて、対応する前記デリミタ情報に基づいて、前記入力パケットからそれぞれ個別のキー情報を抽出し、前記キー情報抽出回路のそれぞれで抽出された複数のキー情報を１つの結合キー情報に結合するキー情報結合回路をさらに備え、前記検索回路は、前記キー情報結合回路から出力された前記結合キー情報で前記検索テーブルを検索することにより、前記入力パケットに関するアプリケーションを示す識別結果を出力するようにしたものである。
【００１６】
また、本発明にかかる上記パケット識別装置の一構成例は、前記遅延回路が、一定の長さで分割入力される前記入力パケットを、前記遅延時間だけ順次遅延させて遅延データとして出力し、前記キー情報抽出回路は、前記遅延データをバッファデータとして保持するバッファと、前記バッファデータ内で前記デリミタ情報を探索することにより、前記デリミタ情報が存在するデリミタ情報位置を特定する比較器と、前記デリミタ情報位置を基準とした位置範囲のデータを、前記キー情報として前記バッファデータから抽出する抽出器とを備えるものである。
【００１７】
また、本発明にかかるパケット識別方法は、入力パケットから特定した、前記入力パケットのプロトコル種別と、前記入力パケットのアプリケーションに特有のキー情報とに基づいて、予め設定されているアプリケーションごとに前記入力パケットを識別するパケット識別装置で用いられるパケット識別方法であって、ヘッダ処理回路が、前記入力パケットのヘッダ情報を識別することにより、前記入力パケットのプロトコル種別を特定するヘッダ処理ステップと、デリミタ情報記憶回路が、前記入力パケットのプロトコル種別ごとに、前記入力パケットに含まれるキー情報を特定するためのデリミタ情報を記憶するデリミタ情報記憶ステップと、遅延回路が、前記入力パケットを一定の遅延時間だけ遅延させて出力する遅延ステップと、キー情報抽出回路が、前記ヘッダ処理回路で特定された前記プロトコル種別に応じて前記デリミタ情報記憶回路から出力された、前記入力パケットのプロトコル種別に関するデリミタ情報に基づいて、前記遅延回路から出力された前記入力パケットのうち前記デリミタ情報の近傍から前記キー情報を抽出するキー情報抽出ステップと、検索回路が、前記キー情報抽出回路で抽出された前記キー情報で、識別対象となるアプリケーションごとに当該アプリケーションに特有のキー情報が予め登録されている検索テーブルを検索し、得られた検索結果に基づいて前記入力パケットに関する識別結果を出力する検索ステップと備えている。
【発明の効果】
【００１８】
本発明によれば、入力パケットのプロトコル種別が異なる場合でも、プロトコル種別間で同一のキー情報抽出回路を共用して、所望のキー情報Ｋｅｙを抽出できる。このため、プロトコル種別ごとにキー情報抽出回路を設ける必要がなくなり、デリミタ情報記憶回路のデリミタ情報を再設定するだけで、新たなプロトコルからもキー情報を抽出できる。したがって、アプリケーションに特有のキー情報を用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施の形態にかかるパケット識別装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかるデリミタ情報の構成例である。
【図３】入力パケットの構成例である。
【図４】第１の実施の形態にかかるキー情報抽出回路の構成例である。
【図５】第１の実施の形態にかかるキー情報抽出処理を示すフローチャートである。
【図６】キー情報抽出動作を示す説明図である。
【図７】第１の実施の形態にかかるパケット識別装置の他の構成を示すブロック図である。
【図８】第２の実施の形態にかかるキー情報抽出回路の構成例である。
【図９】第２の実施の形態にかかるデリミタ情報の構成例である。
【図１０Ａ】第２の実施の形態にかかるキー情報抽出処理を示すフローチャートである。
【図１０Ｂ】第２の実施の形態にかかるキー情報抽出処理（続き）を示すフローチャートである。
【図１１】第３の実施の形態にかかるパケット識別装置の構成を示すブロック図である。
【図１２】従来のパケット識別装置の構成例である。
【図１３】従来のキー情報抽出回路の構成例である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかるパケット識別装置１０について説明する。
図１に示すパケット識別装置１０は、通信ネットワーク（図示せず）を介してパケットを送受信する各種のネットワーク装置（図示せず）に接続されて、当該ネットワーク装置から入力された入力パケットから特定した、入力パケットのプロトコル種別と、入力パケットのアプリケーションに特有のキー情報とに基づいて、入力パケットをアプリケーションごとに識別する装置である。
【００２１】
以下では、本発明にかかるパケット識別装置１０を、パケットを受信して予めアプリケーションごとに指定されている処理を実行するネットワーク装置（パケット受信端）に接続して、受信したパケットのアプリケーションを識別する場合を例として説明するが、これに限定されるものではない。例えば、パケットを中継転送するネットワーク装置（パケット中継端）やパケットを送信するネットワーク装置（パケット送信端）で、パケットのアプリケーションを識別する場合にも、以下と同様にして本発明にかかるパケット識別装置１０を適用することができる。
【００２２】
［発明の原理］
一般に、可変長パケットは、ペイロード情報のデータ長が送信されるデータ量に応じて変動するため、ドメイン情報などのアプリケーションに特有のキー情報が、ペイロード情報のどの位置に格納されているかわからない。一方で、パケットフォーマットは既知なので、所望のキー情報の近傍には必ず目印となるデリミタ情報が存在する。ＤＮＳプロトコルのドメイン情報を例に挙げると、ドメイン情報「ｘｘｘ．ｊｐ（ｘ：Don’t care）」のうち、「ｊｐ」をデリミタ情報とすれば「ｊｐ」を含むパケットを識別することが可能となる。
【００２３】
本発明は、このような可変長パケットに、各プロトコル種別に特有のデリミタ情報が含まれていること、および、可変長パケットのうちデリミタ情報の近傍に位置するキー情報に基づいて、可変長パケットに関するアプリケーションを識別可能であることに着目したものである。そして、可変長パケットのプロトコル種別に基づいて、キー情報を抽出するためのデリミタ情報を切替制御するようにしたものである。
【００２４】
具体的には、パケット識別装置１０において、プロトコル種別ごとにデリミタ情報を予め登録しておき、入力パケットのプロトコル種別と対応するデリミタ情報に基づいて、入力パケットのうちデリミタ情報の近傍から各アプリケーションに特有のキー情報を抽出し、得られたキー情報に基づいて入力パケットに関するアプリケーションを示す識別結果を出力するようにしたものである。
【００２５】
［パケット識別装置］
次に、図１を参照して、本実施の形態にかかるパケット識別装置１０の回路構成について詳細に説明する。
図１に示すように、パケット識別装置１０は、主な回路部として、ヘッダ処理回路１１、デリミタ情報記憶回路１２、遅延回路１３、キー情報抽出回路１４、および検索回路１５を備えている。これら回路部は、１つまたは複数のＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの集積回路により実現されている。
【００２６】
ヘッダ処理回路１１は、順次入力されるパケットデータＤｉｎに基づいて、入力パケットのヘッダ情報を識別することにより、ＤＮＳやＨＴＴＰなどのプロトコル種別を特定する機能と、特定したプロトコル種別を示すプロトコル情報ＰＩＤを出力する機能とを有している。この際、パケットデータＤｉｎが比較的短い場合には、例えば複数のパケットデータＤｉｎをヘッダ情報の長さ分だけ蓄積した後、プロトコル種別を特定すればよい。なお、ヘッダ処理回路１１でプロトコル種別を特定する手法については、前述した従来技術などの公知の手法を用いればよい。
【００２７】
デリミタ情報記憶回路１２は、全体として半導体メモリからなり、プロトコル種別ごとにデリミタ情報を記憶する機能と、ヘッダ処理回路１１から出力されたプロトコル情報ＰＩＤに基づいて、プロトコル情報ＰＩＤと対応するデリミタ情報ＤＬを出力する機能とを有している。
デリミタ情報記憶回路１２は、例えば図２に示すように、アドレスＡＤＲごとにそれぞれのプロトコル種別と対応するデリミタ情報ＤＬを記憶するように構成してもよい。この際、数値で表わされたプロトコル情報ＰＩＤをそのまま、あるいは整数倍することにより、アドレスＡＤＲとして用いてもよい。
【００２８】
遅延回路１３は、パケットデータＤｉｎを一定の遅延時間だけ遅延させた遅延データＤｄを出力する機能を有している。この遅延時間は、ヘッダ処理回路１１でプロトコル情報ＰＩＤが特定されて、デリミタ情報記憶回路１２から入力パケットのプロトコル種別と対応するデリミタ情報ＤＬが出力されるのに要する時間長を有している。
【００２９】
以下では、図３に示すように、パケット識別装置１０に入力される入力パケットは、ヘッダ情報とペイロード情報からなる所与のパケットフォーマットを有する可変長パケットであり、そのデータ長は可変長Ｌｂｙｔｅであるものとする。この際、入力パケットがＮｂｙｔｅ長のパケットデータＤｉｎごとに分割されて順次入力されるものと想定した場合、可変長Ｌは、Ｌ＝Ｎ×Ｈ＋α（Ｈは０以上の整数、αは０以上Ｎ未満の整数）ｂｙｔｅで表される。Ｈは入力パケットに含まれるＤｉｎの個数を示し、αはＮに満たない端数分のＤｉｎを示している。
【００３０】
キー情報抽出回路１４は、デリミタ情報記憶回路１２から出力された、入力パケットのプロトコル種別に関するデリミタ情報ＤＬに基づいて、遅延回路１３から順次出力される遅延データＤｄのうち、デリミタ情報ＤＬの近傍から、入力パケットのアプリケーションに特有のキー情報Ｋｅｙを抽出する機能を有している。
図３では、デリミタ情報ＤＬがＡｂｙｔｅのデータ長を有し、入力パケットのうち、ＰからＰ＋Ａの位置にＤＬが存在しており、ＰからＭｂｙｔｅ前方のＰ−Ｍまでの範囲からキー情報Ｋｅｙが抽出される例が示されている。なお、ＫｅｙにＤＬを含めて抽出してもよい。
【００３１】
検索回路１５は、識別対象となるアプリケーションを示す識別情報とキー情報Ｋｅｙとの対応関係が予め登録されている検索テーブル１５Ａを有し、キー情報抽出回路１４で抽出されたキー情報Ｋｅｙに基づいて検索テーブル１５Ａを検索する機能と、得られた検索結果に基づいて当該キー情報Ｋｅｙと対応する識別情報を入力パケットの識別結果Ｒとして出力する機能とを有している。なお、検索回路１５で識別結果Ｒを特定する手法については、前述した従来技術などの公知の手法を用いればよい。
【００３２】
これにより、例えば、ＤＮＳプロトコルを用いるアプリケーションごとに、ドメイン情報「ＡＡＡ．ｃｏ．ｊｐ」とドメイン情報「ＢＢＢ．ｃｏ．ｊｐ」を識別する場合、図２に示すように、デリミタ情報記憶回路１２に、ＤＮＳプロトコルに関するデリミタ情報ＤＬとして、「ｊｐ」に相当するキャラクタコードを登録しておく。これにより、キー情報抽出回路１４において、ＤＮＳプロトコルのキー情報としてドメイン情報「ｘｘｘ．ｊｐ」（ｘ：Don't care）が抽出される。
【００３３】
したがって、検索回路１５の検索テーブル１５Ａに、ドメイン情報「ＡＡＡ．ｃｏ．ｊｐ」と対応するアプリケーションを示す識別情報ＲＡと、ドメイン情報「ＢＢＢ．ｃｏ．ｊｐ」と対応するアプリケーションを示す識別情報ＲＢとを登録しておけば、キー情報である「ｘｘｘ．ｊｐ」と対応するアプリケーションを示す識別情報が、検索回路１５から識別結果Ｒとして出力されることになる。
【００３４】
［キー情報抽出回路］
次に、図４を参照して、本実施の形態にかかるキー情報抽出回路１４について詳細に説明する。
キー情報抽出回路１４は、主な回路部として、バッファ１４Ａ、比較器１４Ｂ、抽出器１４Ｃ、ＯＲ回路１４Ｄ、およびキーレジスタ１４Ｅを備えている。
【００３５】
バッファ１４Ａは、遅延回路１３から出力された遅延データＤｄをバッファデータＱとして一時保持する機能を有している。バッファデータＱは、少なくともキー情報Ｋｅｙのデータ長Ｍｂｙｔｅとデリミタ情報ＤＬのデータ長Ａｂｙｔｅを加えたデータ長Ｌｑを有し、１つまたは複数の遅延データＤｄに相当する。
【００３６】
比較器１４Ｂは、バッファデータＱ内でデリミタ情報ＤＬを探索し、デリミタ情報ＤＬが存在するデリミタ情報位置Ｐを特定する機能を有している。
具体的には、比較器１４Ｂは、バッファ１４ＡのバッファデータＱから１ｂｙｔｅずつシフトして順に取得した、デリミタ情報ＤＬと等しいデータ長Ａｂｙｔｅを有するブロックＢＬＫと、デリミタ情報記憶回路１２から出力されたデリミタ情報ＤＬとを比較する機能と、これらＢＬＫごとに得られた一致／不一致を示す１ビットの比較結果を、バッファデータＱごとにまとめたビットマップＢｍａｐで一括出力する機能とを有している。
【００３７】
また、比較器１４Ｂは、入力パケットの先頭タイミングを示すパケット先頭信号ＳＯＰ（Start of Packet）に基づいて、ＢＬＫとＤＬとの比較動作を開始する機能と、入力パケットの末尾タイミングを示すパケット末尾信号ＥＯＰ（End of Packet）に基づいてＢＬＫとＤＬとの比較動作を終了する機能とを有している。これらＳＯＰとＥＯＰは、例えば、ネットワーク装置からパケットデータＤｉｎと同期して並列的に入力される。
【００３８】
抽出器１４Ｃは、比較器１４Ｂから出力されたビットマップＢｍａｐに基づいて、バッファデータＱのうち、ＤＬが存在するデリミタ情報位置Ｐを基準として予め設定されているＰの近傍位置から、Ｍｂｙｔｅのキー情報Ｋｅｙを抽出する機能を有している。
【００３９】
ＯＲ回路１４Ｄは、比較器１４Ｂから出力されたビットマップＢｍａｐの各ビットを論理和（ＯＲ）演算することにより、バッファデータＱ内にデリミタ情報ＤＬが存在するか否かを検査し、得られた検査結果Ｔｘを出力する機能を有している。これにより、Ｑ内にＤＬが存在すればＴｘ＝１が出力され、Ｑ内にＤＬが存在しなければＴｘ＝０が出力される。
【００４０】
キーレジスタ１４Ｅは、ＯＲ回路１４Ｄから出力された検査結果ＴｘがＤＬの存在あり（Ｔｘ＝１）を示す場合、抽出器１４Ｃから出力されているキー情報Ｋｅｙを保持して出力する機能を有している。
【００４１】
［キー情報抽出動作］
次に、図５および図６を参照して、本実施の形態にかかるパケット識別装置１０の動作として、キー情報抽出回路１４におけるキー情報抽出動作について説明する。
ここでは、バッファ１４Ａに蓄積されているバッファデータＱのうち、デリミタ情報ＤＬが存在するデリミタ情報位置Ｐから前方Ｍｂｙｔｅ分のデータをキー情報Ｋｅｙとして抽出する場合を例として説明する。
【００４２】
図５のキー情報抽出処理に示すように、比較器１４Ｂは、パケット先頭信号ＳＯＰが「１」に変化するまで待機し（ステップＳ１００：ＮＯ）、ＳＯＰが「１」に変化してバッファデータＱにパケット先頭が含まれることが確認された場合（ステップＳ１００：ＹＥＳ）、以下のようなＱから取得したＢＬＫとＤＬとの比較動作を開始する。
【００４３】
まず、バッファ１４Ａは、自己のバッファ長Ｌｑｂｙｔｅ分の遅延データＤｄがバッファデータＱとして蓄積されるまで待機し（ステップＳ１０１：ＮＯ）、Ｑの蓄積が完了した時点で（ステップＳ１０１：ＹＥＳ）、バッファデータＱの先頭からキー情報Ｋｅｙ分のＭｂｙｔｅを除いた、それ以外の探索領域Ｓから、Ａｂｙｔｅ長のＢＬＫを１ｂｙｔｅずつシフトして順に読み出して比較器１４Ｂへ出力する（ステップＳ１０２）。
【００４４】
比較器１４Ｂは、これらＢＬＫとＤＬとを順次比較する（ステップＳ１０３）。
図６に示すキー情報抽出動作例のように、バッファ長ＬｑｂｙｔｅのバッファデータＱの先頭からＭｂｙｔｅがキー情報Ｋｅｙであるものと想定し、それ以外のデータ長β（＝Ｌｑ−Ｍ）ｂｙｔｅ分が探索領域Ｓであるものとする。デリミタ情報ＤＬが２ｂｙｔｅ長（Ａ＝２）である場合、ＱのうちＳの先頭位置Ｍ＋１ｂｙｔｅ目から２ｂｙｔｅずつブロックＢＬＫとして読み出されて比較器１４ＢでＤＬと比較される。
【００４５】
この際、１回目の比較では、ＱのＭ＋１ｂｙｔｅ目とＭ＋２ｂｙｔｅ目のデータｑＭ＋１，ｑＭ＋２からなるＢＬＫ＃１がＤＬのＤＬ１，ＤＬ２と比較され、その一致／不一致を示す比較結果がＢｍａｐの１ｂｉｔ目のｂ１に格納される。
次の２回目の比較では、１ｂｙｔｅ分シフトした位置、すなわちＱのＭ＋２ｂｙｔｅ目とＭ＋３ｂｙｔｅ目のデータｑＭ＋２，ｑＭ＋３からなるＢＬＫ＃２がＤＬのＤＬ１，ＤＬ２と比較され、その一致／不一致を示す比較結果がＢｍａｐの２ｂｉｔ目のｂ２に格納される。
【００４６】
この後、Ｑの末尾までＢＬＫとＤＬがβ回分繰り返し比較され、最後はＱのβｂｙｔｅ目とβ＋１ｂｙｔｅ目のデータｑβ，ｑβ＋１からなるＢＬＫ＃２がＤＬのＤＬ１，ＤＬ２と比較され、その一致／不一致を示す比較結果がＢｍａｐのβｂｉｔ目のｂβに格納される。
したがって、図６に示すように、データｑβ−１がＤＬ１であり、データｑβがＤＬ２である場合、これらデータｑβ−１，ｑβがＤＬと一致するため、Ｂｍａｐのβ−１ｂｉｔ目のｂβ−１が「１」となり、Ｂｍａｐのうちその他のビットはすべて不一致を示す「０」となる。
【００４７】
比較器１４Ｂは、このようにして、比較ごとに得られた一致／不一致を示す１ビットの比較結果を、Ｑごとにまとめたβｂｉｔ長のビットマップＢｍａｐで一括出力する（ステップＳ１０４）。
抽出器１４Ｃは、比較器１４Ｂから出力されたＢｍａｐに基づいて、バッファデータＱのうちデリミタ情報ＤＬが存在するデリミタ情報位置Ｐを特定し（ステップＳ１０５）、ＱのうちＰから前方Ｍｂｙｔｅ分のデータをキー情報Ｋｅｙとして抽出する（ステップＳ１０６）。
【００４８】
また、ＯＲ回路１４Ｄは、比較器１４Ｂから出力されたＢｍａｐの各ビットを論理和演算することにより、Ｑ内にＤＬが存在するか否かを検査し、得られた検査結果Ｔｘを出力する（ステップＳ１０７）。
ここで、Ｔｘ＝１の場合（ステップＳ１０７：ＹＥＳ）、キーレジスタ１４Ｅは、抽出器１４Ｃから出力されているＫｅｙで保持内容を更新する（ステップＳ１０８）。また、Ｔｘ＝０の場合（ステップＳ１０７：ＮＯ）、キーレジスタ１４Ｅは、保持内容を更新しない（ステップＳ１０９）。
【００４９】
この後、バッファ１４Ａは、バッファデータＱの末尾からキー情報Ｋｅｙのデータ長Ｍｂｙｔｅ分のデータを取得し、バッファデータＱの先頭にシフトする（ステップＳ１１０）。これにより、今回のキー情報抽出処理で用いた探索領域Ｓの末尾のデータが、次回のキー情報抽出処理でＱのキー情報Ｋｅｙに相当するデータとして用いられる。ただし、比較後のバッファデータを更新する際には、探索領域Ｓの末尾にデリミタが分割されて保存される場合を想定して、ある程度データを重複させて更新するものとする。この場合、ステップＳ１１０で先頭にシフトするデータのデータ長をＭｂｙｔｅより重複させる分だけ長くすればよい。
【００５０】
次に、比較器１４Ｂは、パケット末尾信号ＥＯＰが「１」であるか確認し（ステップＳ１１１）、パケット末尾信号ＥＯＰが「０」を示す場合には（ステップＳ１１１：ＮＯ）、ステップＳ１０１に戻って、新たな遅延データＤｄをＱに順次追加する。
一方、パケット末尾信号ＥＯＰが「１」を示す場合（ステップＳ１１１：ＹＥＳ）、一連のキー情報抽出処理を終了する。
【００５１】
［第１の実施の形態の効果］
このように、本実施の形態は、入力パケットのプロトコル種別ごとに、入力パケットに含まれるキー情報Ｋｅｙを特定するためのデリミタ情報ＤＬを記憶するデリミタ情報記憶回路１２を設け、キー情報抽出回路１４が、ヘッダ処理回路１１で特定されたプロトコル種別に応じてデリミタ情報記憶回路１２から出力された、入力パケットのプロトコル種別に関するデリミタ情報ＤＬに基づいて、遅延回路１３から出力された入力パケットのうちデリミタ情報の近傍からキー情報を抽出するようにしたものである。
【００５２】
より具体的には、遅延回路１３が、入力パケットが一定の長さで分割入力されるパケットデータＤｉｎを、遅延時間だけ順次遅延させて遅延データＤｄとして出力し、キー情報抽出回路１４において、バッファ１４Ａが、遅延データＤｄをバッファデータＱとして保持し、比較器１４Ｂが、バッファデータＱ内でデリミタ情報ＤＬを探索することにより、ＤＬが存在するデリミタ情報位置Ｐを特定し、抽出器１４Ｃがデリミタ情報位置Ｐを基準とした位置範囲のデータを、キー情報ＫｅｙとしてバッファデータＱから抽出するようにしたものである。
【００５３】
これにより、入力パケットのプロトコル種別に応じたデリミタ情報ＤＬが、デリミタ情報記憶回路１２から切替出力され、このＤＬに基づいて入力パケットから、アプリケーションに特有のキー情報Ｋｅｙがキー情報抽出回路１４で抽出されることになる。したがって、入力パケットのプロトコル種別が異なる場合でも、プロトコル種別間で同一のキー情報抽出回路１４を共用して、所望のキー情報Ｋｅｙを抽出できる。
このため、従来技術のように、プロトコル種別ごとにキー情報抽出部を設ける必要がなくなり、デリミタ情報記憶回路１２のデリミタ情報ＤＬを再設定するだけで、新たなプロトコルからもキー情報を抽出できる。したがって、アプリケーションに特有のキー情報Ｋｅｙを用いたパケット識別処理を、小規模かつ低コストな回路構成で柔軟に行うことが可能となる。
【００５４】
また、本実施の形態において、デリミタ情報記憶回路１２で記憶する、プロトコル種別とデリミタ情報ＤＬとの対応関係を再設定する場合、図７に示すように、パケット識別装置１０の内部または外部に設けられた制御回路（ＣＰＵ）から、プロトコル種別とデリミタ情報ＤＬとの対応関係を書き換えるようにしてもよい。また、遅延回路１３の遅延時間についても、ヘッダ処理回路１１で入力パケットのプロトコル種別を特定してから、デリミタ情報記憶回路１２で対応するデリミタ情報ＤＬを読み出すまでの所要時間は、実装ごとに依存する。このため、実装ごとに最適な遅延時間を、図７に示すように、パケット識別装置１０の内部または外部に設けられた制御回路（ＣＰＵ）から、遅延回路１３に設定するようにしてもよい。
【００５５】
［第２の実施の形態］
次に、図８を参照して、本発明の第２の実施の形態にかかるパケット識別装置１０について説明する。
第１の実施の形態では、各プロトコル種別に共通して、デリミタ情報ＤＬの前方にキー情報Ｋｅｙが存在する場合を例として説明した。本実施の形態では、プロトコル種別ごとに、キー情報Ｋｅｙが存在する位置を任意に設定する場合について説明する。
【００５６】
本実施の形態において、デリミタ情報記憶回路１２は、図９に示すように、入力パケットのプロトコル種別ごとに、デリミタ情報ＤＬとこのＤＬに対するキー情報Ｋｅｙの位置を示す位置情報とを記憶する機能を有している。具体的には、位置情報ＬＯＣは、キー情報Ｋｅｙがデリミタ情報ＤＬの前方または後方のいずれに位置するかを示す、１ｂｉｔの位置情報からなる。
【００５７】
キー情報抽出回路１４の抽出器１４Ｃは、デリミタ情報記憶回路１２から出力されたデリミタ情報ＤＬと位置情報ＬＯＣとに基づいて、入力パケットからキー情報Ｋｅｙを抽出する機能を有している。この際、位置情報ＬＯＣが前方Ｆを示す場合、キー情報抽出回路１４は、ＤＬの前方ＭｂｙｔｅをＫｅｙとして抽出し、位置情報ＬＯＣが後方Ｂを示す場合、キー情報抽出回路１４は、ＤＬの後方ＭｂｙｔｅをＫｅｙとして抽出する。
【００５８】
また、キー情報抽出回路１４のバッファ１４Ａは、デリミタ情報記憶回路１２から出力された位置情報ＬＯＣに基づいて、バッファデータＱのうちブロックＢＬＫを探索する探索領域Ｓを特定する機能を有している。
【００５９】
［第２の実施の形態の動作］
次に、図１０Ａおよび図１０Ｂを参照して、本実施の形態にかかるパケット識別装置１０の動作として、キー情報抽出回路１４におけるキー情報抽出動作について説明する。
ここでは、バッファ１４Ａに蓄積されているバッファデータＱのうち、デリミタ情報ＤＬが存在するデリミタ情報位置Ｐから、位置情報ＬＯＣが示す前方または後方のＭｂｙｔｅ分のデータをキー情報Ｋｅｙとして抽出する場合を例として説明する。なお、図１０Ａ，図１０Ｂのうち前述した図５と同じまたは同等部分には同一符号を付してある。
【００６０】
図１０Ａのキー情報抽出処理に示すように、比較器１４Ｂは、パケット先頭信号ＳＯＰが「１」に変化するまで待機し（ステップＳ１００：ＮＯ）、ＳＯＰが「１」に変化してバッファデータＱにパケット先頭が含まれることが確認された場合（ステップＳ１００：ＹＥＳ）、以下のようなＱから取得したＢＬＫとＤＬとの比較動作を開始する。
【００６１】
まず、バッファ１４Ａは、自己のバッファ長Ｌｑｂｙｔｅ分の遅延データＤｄがバッファデータＱとして蓄積されるまで待機し（ステップＳ１０１：ＮＯ）、Ｑの蓄積が完了した時点で（ステップＳ１０１：ＹＥＳ）、ＬＯＣを確認する（ステップＳ２００）。
ここで、ＬＯＣがＦを示す場合（ステップＳ２００：ＹＥＳ）、バッファ１４Ａは、Ｑの先頭からＭｂｙｔｅを除いた部分をＳとし（ステップＳ２０１）、ＬＯＣがＢを示す場合（ステップＳ２００：ＮＯ）、Ｑの末尾からＭｂｙｔｅを除いた部分をＳとする（ステップＳ２００）。この後、バッファ１４Ａは、バッファデータＱのうち上記探索領域Ｓから、Ａｂｙｔｅ長のＢＬＫを１ｂｙｔｅずつシフトして順に読み出して比較器１４Ｂへ出力する（ステップＳ２０３）。
【００６２】
比較器１４Ｂは、これらＢＬＫとＤＬとを順次比較し（ステップＳ１０３）、比較ごとに得られた一致／不一致を示す１ビットの比較結果を、Ｑごとにまとめたβｂｉｔ長のビットマップＢｍａｐで一括出力する（ステップＳ１０４）。
【００６３】
この後、図１０Ｂのキー情報抽出処理（続き）に示すように、抽出器１４Ｃは、比較器１４Ｂから出力されたＢｍａｐに基づいて、バッファデータＱのうちデリミタ情報ＤＬが存在するデリミタ情報位置Ｐを特定し（ステップＳ１０５）、ＬＯＣを確認する（ステップＳ２１０）。
ここで、ＬＯＣがＦの場合（ステップＳ２１０：ＹＥＳ）、抽出器１４Ｃは、ＱのうちＰから前方Ｍｂｙｔｅ分のデータをキー情報Ｋｅｙとして抽出し（ステップＳ２１１）、ＬＯＣがＢの場合、抽出器１４Ｃは、ＱのうちＰから後方Ｍｂｙｔｅ分のデータをキー情報Ｋｅｙとして抽出する（ステップＳ２１２）。
【００６４】
また、ＯＲ回路１４Ｄは、比較器１４Ｂから出力されたＢｍａｐの各ビットを論理和演算することにより、Ｑ内にＤＬが存在するか否かを検査し、得られた検査結果Ｔｘを出力する（ステップＳ１０７）。
ここで、Ｔｘ＝１の場合（ステップＳ１０７：ＹＥＳ）、キーレジスタ１４Ｅは、抽出器１４Ｃから出力されているＫｅｙで保持内容を更新する（ステップＳ１０８）。また、Ｔｘ＝０の場合（ステップＳ１０７：ＮＯ）、キーレジスタ１４Ｅは、保持内容を更新しない（ステップＳ１０９）。
【００６５】
この後、バッファ１４Ａは、バッファデータＱの末尾からキー情報Ｋｅｙのデータ長Ｍｂｙｔｅ分のデータを取得し、バッファデータＱの先頭にシフトする（ステップＳ１１０）。これにより、デリミタ情報ＤＬの前方にキー情報Ｋｅｙが存在する場合には、今回のキー情報抽出処理で用いた探索領域Ｓの末尾のデータが、次回のキー情報抽出処理でＱのキー情報Ｋｅｙに相当するデータとして用いられる。
【００６６】
また、デリミタ情報ＤＬの後方にキー情報Ｋｅｙが存在する場合には、今回のキー情報抽出処理で用いたＱのキー情報Ｋｅｙに相当するデータが、次回のキー情報抽出処理で探索領域Ｓの先頭のデータとして用いられる。ただし、比較後のバッファデータを更新する際には、探索領域Ｓの末尾にデリミタが分割されて保存される場合を想定して、ある程度データを重複させて更新するものとする。この場合、ステップＳ１１０で先頭にシフトするデータのデータ長をＭｂｙｔｅより重複させる分だけ長くすればよい。
【００６７】
次に、比較器１４Ｂは、パケット末尾信号ＥＯＰが「１」であるか確認し（ステップＳ１１１）、パケット末尾信号ＥＯＰが「０」を示す場合には（ステップＳ１１１：ＮＯ）、ステップＳ１０１に戻って、新たな遅延データＤｄをＱに順次追加する。
一方、パケット末尾信号ＥＯＰが「１」を示す場合（ステップＳ１１１：ＹＥＳ）、一連のキー情報抽出処理を終了する。
【００６８】
［第２の実施の形態の効果］
このように、本実施の形態は、デリミタ情報記憶回路１２が、入力パケットのプロトコル種別ごとに、デリミタ情報ＤＬとこのＤＬに対するキー情報Ｋｅｙの位置を示す位置情報ＬＯＣとを記憶し、キー情報抽出回路１４は、デリミタ情報記憶回路１２から出力されたデリミタ情報ＤＬと位置情報ＬＯＣとに基づいて、入力パケットからキー情報Ｋｅｙを抽出するようにしたものである。
【００６９】
具体的には、位置情報ＬＯＣは、キー情報Ｋｅｙがデリミタ情報ＤＬの前方Ｆまたは後方Ｂのいずれに位置するかを示す情報であり、キー情報抽出回路１４は、入力パケットのうち、位置情報ＬＯＣが示すデリミタ情報ＤＬの前方Ｆまたは後方Ｂから、指定長のデータをキー情報Ｋｅｙとして抽出するようにしたものである。
これにより、プロトコル種別ごとに、キー情報Ｋｅｙが存在する位置を任意に設定することができ、１つのパケット識別装置１０で識別できるパケットのプロトコル種別を大幅に拡張することが可能となる。
【００７０】
なお、本実施の形態において、位置情報ＬＯＣは、入力パケットのうちキー情報Ｋｅｙがデリミタ情報ＤＬの前方Ｆまたは後方Ｂのいずれに位置するかを示す情報からなる場合を例として説明したが、これに限定されるものではない。例えば、位置情報ＬＯＣとして、デリミタ情報位置Ｐからキー情報Ｋｅｙの先頭位置または末尾位置までの相対位置を示す情報を用いてもよく、さらにキー情報Ｋｅｙのデータ長を含んでもよい。
これにより、プロトコル種別ごとに個別の位置からキー情報Ｋｅｙを抽出することが可能となる。
【００７１】
［第３の実施の形態］
次に、図１１を参照して、本発明の第３の実施の形態にかかるパケット識別装置１０について説明する。
第１および第２の実施の形態では、入力パケットから抽出した１つのキー情報Ｋｅｙに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明した。本実施の形態では、入力パケットから抽出した複数のキー情報Ｋｅｙに基づいて、入力パケットをアプリケーションごとに識別する場合を例として説明する。
【００７２】
本実施の形態において、デリミタ情報記憶回路１２は、入力パケットのプロトコル種別ごとに複数のデリミタ情報ＤＬを記憶する機能を有している。
キー情報抽出回路１４は、デリミタ情報ＤＬごとに設けられて、対応するデリミタ情報ＤＬと位置情報ＬＯＣとに基づいて、入力パケットからそれぞれ個別のキー情報Ｋｅｙを独立して抽出する機能を有している。
【００７３】
キー情報結合回路１６は、キー情報抽出回路１４のそれぞれで抽出された複数のキー情報Ｋｅｙを１つの結合キー情報Ｋｅｙに結合する機能を有している。
検索回路１５は、キー情報結合回路１６から出力された結合キー情報Ｋｅｙで検索テーブル１５Ａを検索することにより、入力パケットに関するアプリケーションを示す識別結果Ｒを出力する機能を有している。
【００７４】
図１１の例では、入力パケットのプロトコル種別ごとに２つのデリミタ情報ＤＬＸ，ＤＬＹが登録されており、それぞれのデータ長がＸｂｙｔｅ，Ｙｂｙｔｅである。
また、これらＤＬＸ，ＤＬＹごとに、キー情報抽出回路１４Ｘ，１４Ｙが設けられており、それぞれでキー情報ＫｅｙＸ，ＫｅｙＹが抽出される。キー情報抽出回路１４Ｘ，１４Ｙの具体的なキー情報抽出処理については、前述した図１０Ａ，図１０Ｂと同等である。
【００７５】
これらキー情報ＫｅｙＸ，ＫｅｙＹは、キー情報結合回路１６で１つの結合キー情報Ｋｅｙに結合されている。結合方法としては、ＫｅｙＸとＫｅｙＹを連結することにより、Ｘ＋Ｙｂｙｔｅの結合キー情報Ｋｅｙを生成すればよい。
検索回路１５の検索テーブル１５Ａには、識別対象となるアプリケーションごとに当該アプリケーションに特有の結合キー情報Ｋｅｙが予め登録されている。したがって、結合キー情報Ｋｅｙと対応するアプリケーションを示す識別結果Ｒが出力される。
【００７６】
［第３の実施の形態の効果］
このように、本実施の形態は、デリミタ情報記憶回路１２が、入力パケットのプロトコル種別ごとに複数のデリミタ情報ＤＬを記憶し、キー情報抽出回路１４が、デリミタ情報ＤＬごとに設けられて、対応するデリミタ情報ＤＬと位置情報ＬＯＣとに基づいて、入力パケットからそれぞれ個別のキー情報Ｋｅｙを抽出し、キー情報結合回路１６が、キー情報抽出回路１４のそれぞれで抽出された複数のキー情報Ｋｅｙを１つの結合キー情報Ｋｅｙに結合するようにしたものである。
これにより、入力パケットから抽出した複数のキー情報Ｋｅｙに基づいて、入力パケットをアプリケーションごとに識別することができ、より高度なパケット識別を実現することが可能となる。
【００７７】
本実施の形態では、入力パケットのプロトコル種別ごとに２つのデリミタ情報ＤＬＸ，ＤＬＹを登録した場合を例として説明したが、デリミタ情報ＤＬの数は、３以上であってもよい。その場合、キー情報抽出回路１４をデリミタ情報ＤＬの数に合わせて設ければよい。
【００７８】
また、本実施の形態において、複数のキー情報Ｋｅｙを連結することにより結合キー情報Ｋｅｙを生成する場合を例として説明したが、これに限定されるものではない。例えば、複数のキー情報Ｋｅｙを論理演算したり数値計算処理したりすることにより、結合キー情報Ｋｅｙを生成してもよい。
【００７９】
また、プロトコル種別ごと、結合キー情報Ｋｅｙの生成方法を示す結合種別情報をデリミタ情報記憶回路１２に登録しておき、入力パケットのプロトコル種別に応じて、デリミタ情報記憶回路１２から出力された結合種別情報に基づいて、キー情報結合回路１６が結合キー情報Ｋｅｙを生成するようにしてもよい。これにより、より高度で詳細なパケット識別を実現することが可能となる。
【００８０】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００８１】
１０…パケット識別装置、１１…ヘッダ処理回路、１２…デリミタ情報記憶回路、１３…遅延回路、１４，１４Ｘ，１４Ｙ…キー情報抽出回路、１４Ａ…バッファ、１４Ｂ…比較器、１４Ｃ…抽出器、１４Ｄ…ＯＲ回路、１４Ｅ…キーレジスタ、１５…検索回路、１５Ａ…検索テーブル、１６…キー情報結合回路、２０…制御回路、Ｄｉｎ…パケットデータ、Ｄｄ…遅延データ、ＰＩＤ…プロトコル情報、ＤＬ，ＤＬＸ，ＤＬＹ…デリミタ情報、Ｑ…バッファデータ、Ｓ…探索領域、ＢＬＫ…ブロック、Ｂｍａｐ…ビットマップ、Ｐ…デリミタ情報位置、ＬＯＣ…位置情報、Ｋｅｙ，ＫｅｙＸ，ＫｅｙＹ…キー情報（結合キー情報）、Ｔｘ…検査結果、Ｒ…識別結果。
【図１】
2019097053.tif 000003
【図２】
2019097053.tif 000004
【図３】
2019097053.tif 000005
【図４】
2019097053.tif 000006
【図５】
2019097053.tif 000007
【図６】
2019097053.tif 000008
【図７】
2019097053.tif 000009
【図８】
2019097053.tif 000010
【図９】
2019097053.tif 000011
【図１０Ａ】
2019097053.tif 000012
【図１０Ｂ】
2019097053.tif 000013
【図１１】
2019097053.tif 000014
【図１２】
2019097053.tif 000015
【図１３】
2019097053.tif 000016