(57)【要約】【課題】検索処理を高速に行い、データ制御を行うことが可能なパケット制御装置を提供する。【解決手段】制御対象となるパケットの条件を管理する検索テーブル（１０３）を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であり、パケット制御装置は、検索テーブル（１０３）にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を管理する番兵入り検索テーブル（１０１）を有し、受信パケットが番兵入り検索テーブル（１０１）にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、受信パケットに対し、当該条件に応じたデータ制御を行い、受信パケットが番兵の条件に該当する場合に、検索を終了する。【選択図】図１
2008211524.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であって、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段と、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御手段と、を有し、
前記制御手段は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御装置。
【請求項２】
前記制御手段は、
前記受信パケットの該当フィールド値が、前記番兵管理手段にて管理されている条件に該当するか否かを検索することを特徴とする請求項１記載のパケット制御装置。
【請求項３】
前記管理手段にて管理している前記パケットの条件の任意の位置に、前記番兵の条件を挿入したテーブルを生成する生成手段を有し、
前記番兵管理手段は、
前記生成手段にて生成したテーブルを管理することで、前記番兵の条件と、前記パケットの条件と、を管理することを特徴とする請求項１記載のパケット制御装置。
【請求項４】
前記番兵の条件は、前記番兵の条件を挿入した位置よりも後に続く前記パケットの条件を全て含んだ条件の逆の条件であることを特徴とする請求項３記載のパケット制御装置。
【請求項５】
前記生成手段は、
前記管理手段にて管理しているパケットの条件が更新された場合に、当該更新されたパケットの条件を基に、前記テーブルを生成することを特徴とする請求項３記載のパケット制御装置。
【請求項６】
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置で行うパケット制御方法であって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御工程を、前記パケット制御装置が行い、
前記制御工程は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御方法。
【請求項７】
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置に実行させるパケット制御プログラムであって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御処理を、前記パケット制御装置に実行させ、
前記制御処理は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット識別処理を行い、その識別処理に応じたデータ制御を行うパケット制御装置、パケット制御方法及びパケット制御プログラムに関し、特に、複数のネットワーク間を接続するネットワーク中継装置に好適なパケット制御装置、パケット制御方法及びパケット制御プログラムに関するものである。
【背景技術】
【０００２】
複数のネットワーク間を接続するためには、一般的に、ネットワーク中継装置が設置されている。ネットワーク中継装置では、パケット識別処理を行い、パケットのログ記録や中継・破棄の制御、優先度制御、帯域制御、遅延の挿入、ルーティング制御等様々な制御が行われている。
【０００３】
なお、パケット識別処理とは、パケットヘッダの中の指定されたフィールドの、指定された値の、指定された組み合わせを持つパケットを識別する処理である。
【０００４】
従来のパケット識別処理は、図６に示すような『検索テーブル』を使用していた。以下、ＣＰＵによるソフトウェア処理で行っていた従来のパケット識別処理の概要について説明する。なお、以下の説明では、ＩＰｖ４パケットのパケット識別処理について説明する。
【０００５】
ＣＰＵは、ＩＰｖ４パケットを受信すると、ＩＰヘッダの正当性の確認後、パケット識別処理を行うことになる。
【０００６】
図６に示すように、『検索テーブル』には、０個以上のエントリが登録され、そのエントリは、検索条件となる任意のフィールドの任意の組み合わせと、当該エントリに対する制御と、から構成されている。
【０００７】
例えば、図６に示す『No.0』のエントリは、ＩＰ発信元アドレスが『IP-SA#0』の値を持つパケットに対して『ログ』の記録処理を行うことを意味する。
【０００８】
また、図６に示す『No.3』のエントリは、ＩＰ発信元アドレスが『IP-SA#3』、ＩＰ送信先アドレスが『IP-DA#1』、プロトコルが『Protocol#0』の値を持つパケットに対して『破棄』の処理を行うことを意味する。
【０００９】
ＣＰＵは、図６に示す『検索テーブル』に登録されている最初のエントリから順番に、受信パケットの該当フィールド値と比較し、受信パケットの該当フィールド値と一致するエントリが存在する場合には、当該エントリの設定に従い、受信パケットに対して制御を行うことになる。
【００１０】
なお、最後のエントリまで検索処理を進めても、受信パケットの該当フィールド値と一致するエントリが存在しない場合には、一致するエントリが存在しない場合の設定に従い、受信パケットに対して制御を行うことになる。
【００１１】
例えば、ＩＰ発信元アドレスが『IP-SA#2』で、ＩＰ送信先アドレスが『IP-DA#0』のパケットの場合には、図６に示す『検索テーブル』のエントリ『No.2』に一致し、パケットに対し、『ログ』の記録処理を行うことになる。
【００１２】
また、ＩＰ発信元アドレスが『IP-SA#2』、送信先アドレスが『IP-DA#3』、プロトコルが『Protocol#1』のパケットの場合には、図６に示す『検索テーブル』に一致するエントリが存在しないため、パケットに対し、一致するエントリが存在しない場合の制御を行うことになる。
【００１３】
なお、ＣＰＵ（ソフトウェア）処理の一般的な特徴は、逐次処理を行う点であり、上述した従来のパケット識別処理は、図６に示す『検索テーブル』から１つのエントリを取り出し、その取り出したエントリのフィールド値と、受信パケットの該当フィールド値と、を比較するというように逐次的に行うことになる。
【００１４】
このため、図６に示す『検索テーブル』のエントリ数が多い場合には、検索処理時間が非常に長くなる可能性がある。
【００１５】
つまり、受信パケットの該当フィールド値が、『検索テーブル』の最初に登録されているエントリと一致する場合には、検索処理はすぐに終わることになるが、『検索テーブル』の最後に登録されているエントリと一致する場合、あるいは、『検索テーブル』に登録されているすべてのエントリと一致しない場合には、図６に示す『検索テーブル』に登録されているすべてのエントリを検索することになる。
【００１６】
従って、図６に示す『検索テーブル』に登録されているエントリ数が増加するに伴い、検索処理時間が長くなり、パケット識別処理に時間がかかってしまうことになる。
【００１７】
また、通常のパケット識別処理は、受信パケットの該当フィールド値と一致するエントリの中で最も優先度が高い制御を１つだけ実行し、検索処理を終了させることが多いが、一方で、受信パケットの該当フィールド値と一致するエントリが複数存在する場合に、その複数のエントリの中から複数の制御を実行したい場合もある。
【００１８】
例えば、あるパケットが、ログの記録処理を行うエントリに一致し、かつ、パケットの破棄を行うエントリにも一致する場合に、ログの記録処理を行って、パケットの破棄を行うといったように両方の処理を行う場合等が挙げられる。
【００１９】
しかしながら、従来のパケット識別処理では、複数のエントリの中から複数の制御を実行したい場合には、パケットがあるエントリに一致しても、全てのエントリの検索を終了しない限り、検索処理を終了することができないため、図６に示す『検索テーブル』に登録されたエントリの数に比例して検索処理時間が長くなってしまうことになる。
【００２０】
このようなことから、検索処理を高速に行うことが可能なパケット制御方法の開発が必要視されることになる。
【００２１】
なお、本発明より先に出願された技術文献として、回線速度の高速化やフロー条件の増加に対応することができ、高速にフロー検出して、高速にＱｏＳ制御やフィルタリングを実現することが可能な技術について開示された文献がある（例えば、特許文献１参照）。
【００２２】
また、パケット内の予め指定されたフィールドに対し、各１回ずつメモリ検索を実行し、それぞれの検索結果を基にさらに１回メモリ検索を行うことで、メモリの検索処理を高速にかつ常に一定の時間内に行うことを可能とする技術について開示された文献がある（例えば、特許文献２参照）。
【特許文献１】特開２０００−２４４５７４号公報
【特許文献２】特開２００１−１１９４３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記特許文献１、２には、必要以上の検索を停止させるための役割を持つ番兵の条件を用いて、検索処理を高速に行い、データ制御を行うことについては何ら記載もその必要性についても示唆されていない。
【００２４】
本発明は、上記事情に鑑みてなされたものであり、検索処理を高速に行い、データ制御を行うことが可能なパケット制御装置、パケット制御方法及びパケット制御プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００２５】
かかる目的を達成するために、本発明は、以下の特徴を有することとする。
【００２６】
本発明にかかるパケット制御装置は、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であって、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段と、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御手段と、を有し、
前記制御手段は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
【００２７】
また、本発明にかかるパケット制御装置において、
前記制御手段は、
前記受信パケットの該当フィールド値が、前記番兵管理手段にて管理されている条件に該当するか否かを検索することを特徴とする。
【００２８】
また、本発明にかかるパケット制御装置は、
前記管理手段にて管理している前記パケットの条件の任意の位置に、前記番兵の条件を挿入したテーブルを生成する生成手段を有し、
前記番兵管理手段は、
前記生成手段にて生成したテーブルを管理することで、前記番兵の条件と、前記パケットの条件と、を管理することを特徴とする。
【００２９】
また、本発明にかかるパケット制御装置において、
前記番兵の条件は、前記番兵の条件を挿入した位置よりも後に続く前記パケットの条件を全て含んだ条件の逆の条件であることを特徴とする。
【００３０】
また、本発明にかかるパケット制御装置において、
前記生成手段は、
前記管理手段にて管理しているパケットの条件が更新された場合に、当該更新されたパケットの条件を基に、前記テーブルを生成することを特徴とする。
【００３１】
また、本発明にかかるパケット制御方法は、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置で行うパケット制御方法であって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御工程を、前記パケット制御装置が行い、
前記制御工程は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
【００３２】
また、本発明にかかるパケット制御プログラムは、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置に実行させるパケット制御プログラムであって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御処理を、前記パケット制御装置に実行させ、
前記制御処理は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
【発明の効果】
【００３３】
本発明によれば、検索処理を高速に行い、データ制御を行うことが可能となる。
【発明を実施するための最良の形態】
【００３４】
＜本実施形態のパケット制御装置の特徴＞
まず、図１を参照しながら、本実施形態のパケット制御装置の特徴について説明する。
【００３５】
本実施形態のパケット制御装置は、制御対象となるパケットの条件を管理する管理手段（検索テーブル：１０３に該当）を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置である。
【００３６】
なお、本実施形態におけるパケット制御装置は、管理手段（１０３）にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を管理する番兵管理手段（番兵入り検索テーブル：１０１に該当）を有し、パケット制御装置は、受信パケットが番兵管理手段（１０１）にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、受信パケットに対し、当該条件に応じたデータ制御を行い、パケット制御装置は、受信パケットが番兵の条件に該当する場合に、検索を終了することを特徴とする。これにより、検索処理を高速に行い、データ制御を行うことが可能となる。以下、添付図面を参照しながら、本実施形態のパケット制御装置について詳細に説明する。
【００３７】
＜パケット制御装置の構成＞
まず、図１を参照しながら、本実施形態のパケット制御装置の構成について説明する。
【００３８】
本実施形態のパケット制御装置は、図１に示すように、パケット識別手段（１００）と、番兵入り検索テーブル（１０１）と、番兵入り検索テーブル作成手段（１０２）と、検索テーブル（１０３）と、パケット制御手段（１０４）と、パケット監視手段（１０５）と、を有して構成している。
【００３９】
＜検索テーブル：１０３＞
検索テーブル（１０３）は、図２に示すように、Ｎ＋１個のエントリＮｏ．を持つ検索テーブルである。なお、検索テーブル（１０３）は、制御対象パケットの条件を管理するものである。
【００４０】
＜番兵入り検索テーブル：１０１＞
番兵入り検索テーブル（１０１）は、図３に示すように、Ｎ＋１個のエントリＮｏ．と、番兵エントリと、を持つ検索テーブルである。
【００４１】
なお、番兵入り検索テーブル（１０１）は、図２に示す検索テーブル（１０３）の任意の位置に『番兵エントリ』を挿入して構成したものであり、『番兵エントリ』は、その『番兵エントリ』が挿入された位置よりも後に続くエントリＮｏ．の条件を全て含んだ条件の逆を持つことになる。
【００４２】
例えば、図３に示す『番兵０』は、図２に示す『No.0』〜『No.N』のエントリＮｏ．の全ての条件を含んだ条件の逆の条件を持っている。
【００４３】
また、図３に示す『番兵１』は、図２に示す『No.5』〜『No.N』のエントリＮｏ．までの全ての条件を含んだ条件の逆の条件を持っている。
【００４４】
＜パケット識別手段：１００＞
パケット識別手段（１００）は、受信パケットの該当フィールド値が番兵入り検索テーブル（１０１）のエントリの条件と一致するか否かを検査するものである。
【００４５】
例えば、パケット識別手段（１００）は、受信パケットを受け取った場合に、番兵入り検索テーブル（１０１）から最初のエントリを取り出し、受信パケットの該当フィールド値がその最初のエントリの条件と一致するか否かを検査する。
【００４６】
パケット識別手段（１００）は、受信パケットの該当フィールド値が最初のエントリの条件と一致した場合には、その一致した最初のエントリが通常のエントリＮｏ．の場合には、受信パケットを管理するデータ構造に、その一致する通常のエントリＮｏ．を記録する。また、一致した最初のエントリが番兵エントリの場合には、検索処理を終了する。なお、通常のエントリＮｏ．とは、図２に示す検索テーブル（１０１）で管理されているエントリＮｏ．である。
【００４７】
また、パケット識別手段（１００）は、受信パケットの該当フィールド値が最初のエントリの条件と一致しない場合は、何もせずに、次のエントリを番兵入り検索テーブル（１０１）から取り出し、受信パケットの該当フィールド値が次のエントリの条件と一致するか否かを検査する。
【００４８】
パケット識別手段（１００）は、上述した処理を、番兵入り検索テーブル（１０１）で管理されている最後のエントリまで、あるいは、番兵エントリの条件と一致するまで検索処理を繰り返すことになる。
【００４９】
＜番兵入り検索テーブル作成手段：１０２＞
番兵入り検索テーブル作成手段（１０２）は、検索テーブル（１０３）の情報を基に、任意の位置に冗長な検索処理を停止させるための番兵エントリを挿入した図３に示す番兵入り検索テーブル（１０１）を作成するものである。
【００５０】
＜パケット制御手段：１０４＞
パケット制御手段（１０４）は、受信パケットを管理するデータ構造に追加されたエントリＮｏ．を参照し、そのエントリＮｏ．に対応するデータ制御を受信パケットに対して行うものである。
【００５１】
＜パケット監視手段：１０５＞
パケット監視手段（１０５）は、受信パケットを監視し、その監視した受信パケットを基に、制御を掛けたい制御対象パケットの条件を検索テーブル（１０３）に反映させるものである。なお、パケット監視手段（１０５）は、監視した受信パケットを基に、自動的に、あるいは、外部からの操作により、制御対象パケットの条件を検索テーブル（１０３）に反映させることになる。
【００５２】
＜番兵入り検索テーブル作成手段：１０２における処理動作＞
次に、番兵入り検索テーブル作成手段（１０２）における処理動作について説明する。
【００５３】
まず、検索テーブル（１０３）にエントリが追加された場合の処理動作について説明する。
【００５４】
検索テーブル（１０３）にエントリが追加された場合には、番兵入り検索テーブル（１０１）の再構築が必要となる。
【００５５】
なお、検索テーブル（１０３）のリストの先頭からｋ番目にエントリが追加された場合には、番兵入り検索テーブル（１０１）の先頭からｋ番目までにある全ての番兵エントリの条件に、検索テーブル（１０３）のリストに追加されたエントリの条件を足し合わせることで番兵入り検索テーブル（１０１）を再構築する。
【００５６】
次に、検索テーブル（１０３）からエントリが削除された場合の処理動作について説明する。
【００５７】
検索テーブル（１０３）からエントリが削除された場合には、番兵入り検索テーブル（１０１）の再構築が必要となる。
【００５８】
そこで、番兵入り検索テーブル（１０１）を再構築する際の処理を高速化するために、各番兵エントリ間において、そこに含まれる全てのエントリの条件を含んだものを保持しておき、エントリの削除時に利用する。
【００５９】
例えば、検索テーブル（１０３）のリストの先頭からｋ番目のエントリが削除された場合には、変更すべき番兵エントリは、番兵入り検索テーブル（１０１）のリストの先頭からｋ番目までに含まれる。
【００６０】
まず、番兵入り検索テーブル（１０１）のリストのｋ番目から先頭の方向にある最も近い番兵エントリを作り直す。
【００６１】
この処理は、番兵入り検索テーブル（１０１）のリストのｋ番目よりも後にある最初の番兵エントリの条件と、番兵入り検索テーブル（１０１）のリストのｋ番目から先頭の方向にある最も近い番兵エントリまでに含まれる条件と、を足し合わせることで実現することが可能となる。
【００６２】
その後、番兵入り検索テーブル（１０１）のリストの先頭までに含まれる番兵エントリは、予め保持してある各番兵エントリ間に含まれる全てのエントリの条件を含んだものを足し合わせることで、番兵入り検索テーブル（１０１）を再構築する。
【００６３】
＜パケット識別手段：１００が行う検索処理＞
次に、図１〜図４を参照しながら、パケット識別手段（１００）が行う検索処理について説明する。なお、図４は、パケット識別手段（１００）が行う検索処理の処理動作を示すフローチャートである。
【００６４】
パケット制御装置は、パケットを受信すると、その受信したパケットの正当性を確認後、受信パケットをパケット識別手段（１００）に送信する。これにより、パケット識別手段（１００）は、パケットを受信し、その受信したパケットを基に、図４に示す一連の検索処理を行うことになる。
【００６５】
まず、パケット識別手段（１００）は、パケットを受信した場合に、その受信パケットからヘッダ情報を取り出す（ステップＡ１）。
【００６６】
次に、パケット識別手段（１００）は、番兵入り検索テーブル（１０１）からエントリを取得する（ステップＡ２）。
【００６７】
パケット識別手段（１００）は、番兵入り検索テーブル（１０１）から取り出したエントリが空か否かを判定し（ステップＡ３）、番兵入り検索テーブル（１０１）から取り出したエントリが空の場合には（ステップＡ３／Ｙｅｓ）、番兵入り検索テーブル（１０１）に登録されている全てのエントリの検索処理が終了したと判断し、検索処理を終了する（ＥＮＤ）。
【００６８】
また、番兵入り検索テーブル（１０１）から取り出したエントリが空でない場合には（ステップＡ３／Ｎｏ）、番兵入り検索テーブル（１０１）から取り出したエントリが番兵エントリか否かを確認する（ステップＡ４）。
【００６９】
パケット識別手段（１００）は、番兵入り検索テーブル（１０１）から取り出したエントリが番兵エントリである場合には（ステップＡ４／Ｙｅｓ）、受信パケットの該当フィールド値が番兵エントリの条件に一致するか否かを検査する（ステップＡ５）。
【００７０】
パケット識別手段（１００）は、受信パケットの該当フィールド値が番兵エントリの条件に一致する場合は（ステップＡ５／Ｙｅｓ）、検索処理を終了する（ＥＮＤ）。
【００７１】
また、受信パケットの該当フィールド値が番兵エントリの条件に一致しない場合は（ステップＡ５／Ｎｏ）、番兵入り検索テーブル（１０１）から次のエントリを取得する（ステップＡ２）。
【００７２】
そして、パケット識別手段（１００）は、番兵入り検索テーブル（１０１）から取得した次のエントリを基に、エントリが空か否かを判定することになる（ステップＡ３）。
【００７３】
また、ステップＡ４において、番兵入り検索テーブル（１０１）から取り出したエントリが番兵エントリでない場合には（ステップＡ４／Ｎｏ）、受信パケットの該当フィールド値が番兵エントリでない通常エントリの条件に一致するか否かを検査する（ステップＡ６）。
【００７４】
パケット識別手段（１００）は、受信パケットの該当フィールド値が通常エントリの条件に一致する場合は（ステップＡ６／Ｙｅｓ）、そのエントリＮｏ．を記録する（ステップＡ７）。そして、パケット識別手段（１００）は、番兵入り検索テーブル（１０１）から次のエントリを取得することになる（ステップＡ２）。
【００７５】
また、パケット識別手段（１００）は、受信パケットの該当フィールド値が通常エントリの条件に一致しない場合は（ステップＡ６／Ｎｏ）、番兵入り検索テーブル（１０１）から次のエントリを取得することになる（ステップＡ２）。
【００７６】
このように、本実施形態におけるパケット識別手段（１００）は、パケットを受信した場合に、番兵入り検索テーブル（１０１）を用いて検索処理を行い、受信パケットの該当フィールド値が、番兵入り検索テーブル（１０１）に登録されている番兵エントリの条件に一致した場合には、検索処理を終了するように制御しているため、冗長な検索処理を回避することが可能となる。これにより、パケット識別手段（１００）の検索処理時間を削減することが可能となる。
【００７７】
＜パケット制御装置におけるパケット制御処理＞
次に、本実施形態のパケット制御装置における制御動作について説明する。
【００７８】
パケット識別手段（１００）は、図４に示す検索処理が終了した受信パケットをパケット制御手段（１０４）に送信する。
【００７９】
パケット制御手段（１０４）は、パケット識別手段（１００）から受信パケットを受信した場合に、受信パケットから図４に示すステップＡ７において記録されたエントリＮｏ．を取得し、空でなければ、そのエントリＮｏ．に対応するデータ制御を実行することになる。
【００８０】
パケット監視手段（１０５）は、制御対象パケットの条件を取得した場合に、その制御対象パケットの条件を検索テーブル（１０３）に追加更新する。
【００８１】
番兵入り検索テーブル生成手段（１０２）は、検索テーブル（１０３）が追加更新された場合に、その検索テーブル（１０３）の情報を受け取り、検索テーブル（１０３）内の任意の位置に番兵エントリを挿入した番兵入り検索テーブル（１０１）を生成し、番兵入り検索テーブル（１０１）を更新することになる。
【００８２】
このように、本実施形態におけるパケット制御装置は、検索テーブル（１０３）にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を番兵入り検索テーブル（１０１）にて管理する。
【００８３】
そして、パケット識別手段（１００）は、受信パケットが番兵入り検索テーブル（１０１）にて管理されている条件に該当するか否かを検索する。そして、パケット制御手段（１０４）は、番兵入り検索テーブル（１０１）にて管理されている条件に該当する場合は、その受信パケットに、その番兵入り検索テーブル（１０１）にて管理されている条件に応じたデータ制御を行うことになる。なお、パケット識別手段（１００）は、受信パケットが番兵入り検索テーブル（１０１）にて管理されている番兵の条件に該当する場合には、検索をそこで終了する。これにより、パケット識別手段（１００）における必要以上の検索を停止させ、検索処理を高速に行い、データ制御を行うことが可能となる。また、複数の条件に応じたデータ制御を受信パケットに対して行う場合でも、パケット識別手段（１００）における必要以上の検索を停止させ、検索処理を高速に行い、複数の条件に応じたデータ制御を行うことが可能となる。
【００８４】
（実施例）
次に、具体的な実施例を用いて本実施形態のパケット制御装置における処理動作について詳細に説明する。
【００８５】
（第１の実施例）
第１の実施例は、フィールド値の１６進数表現を利用した番兵エントリを図５のように構成している。その他の構成は、図１〜図３に示す構成と同じものとする。
【００８６】
番兵入り検索テーブル作成手段（１０２）は、ｉ番目のエントリとｉ＋１番目のエントリとの間に挿入される番兵エントリを次のように生成する。
【００８７】
まず、ｉ＋１番目以降のエントリの各フィールド値を１６進数で表現する。
【００８８】
１６進数で表現すると、図５に示すように、例えば、送信元ＩＰアドレス（srcIP）は、８桁、宛先ポート番号（dport）は、４桁で表現できる。
【００８９】
次に、各フィールドを１６進数表現した際に必要な桁数×１６bitのサイズのメモリ領域を用意し、全てのbitを０にクリアする。
【００９０】
例えば、送信元ＩＰアドレス（srcIP）の場合は、８桁×１６bitで合計１２８bit、宛先ポート番号（dport）の場合は、４桁×１６bitで合計６４bitとなる。
【００９１】
次に、ｉ＋１番目のエントリから１６進数表現されたフィールド値を取り出し、さらに１文字を読み込んで（ｘとする）、番兵エントリと対応するフィールドのｘbit目を『１』にする。
【００９２】
例えば、送信元ＩＰアドレス（srcIP）が１９２．１６８．０．１の場合、１６進数表現は、Ｃ０Ａ８０００１と表され、１文字目がＣなので、番兵エントリの送信元ＩＰアドレス（srcIP）を表すフィールドの１文字目に対応するメモリ領域の『Ｃ』bit値目を『１』にセットする。
【００９３】
同様に、２文字目は『０』bit値目を『１』にセットする。
【００９４】
以上の操作をフィールド毎に繰り返し、Ｎ番目のエントリまで繰り返す。
【００９５】
次に、図４に示すステップＡ５の番兵エントリの条件に一致するかどうかの判定は次のように行われる。
【００９６】
まず、受信パケットのフィールドについて１６進数表現に変換し、フィールドについて１文字ずつ読み取り、番兵エントリと対応するbitが『１』か否かを判定する。
【００９７】
次に、フィールド毎の判定を行う。各フィールドについて判定結果を集め、全ての判定結果が『１』ならば、そのフィールドの判定結果を『１』とし、１つでも『０』が含まれていれば、判定結果を『０』とする。最後に番兵エントリの条件に一致するか否かの判定を行う。
【００９８】
フィールド毎の判定結果が１つでも『１』ならば、番兵エントリの条件には一致しないと判定し、検索処理を続ける。
【００９９】
また、全てのフィールド毎の判定結果が『０』ならば、番兵エントリの条件に一致すると判定する。
【０１００】
なお、上述した第１の実施例においては、例えば、送信元ＩＰアドレス（srcIP）のフィールドを８区間に分割し、各区間を１６bitで表現しているが、同様に、３２区間と２bit、１６区間と４bit、４区間と２５６bit、２区間と２^１６bit、１区間と２＾３２bitなどで行うことも可能である。なお、他のフィールドに関しても同様である。
【０１０１】
また、上述した第１の実施例では１６進数表現を用いた場合について説明したが、８進数や１０進数など、ｎ（ｎは、任意の整数）進数表現を使って番兵エントリを構築することも可能である。
【０１０２】
例えば、１０進数の場合には、番兵エントリの送信元ＩＰアドレス（srcIP）用に必要なbit数は、３bit（0,1,2）＋１０bit（0〜9）＋１０bit（0〜9）で合計２３bitとなる。
【０１０３】
（第２の実施例）
次に、第２の実施例について説明する。
【０１０４】
第２の実施例は、受信パケットのフィールドが全て２進数固定長のbit列で表すことができる特徴を利用し、番兵エントリが挿入される位置より後のエントリについて各フィールド値のbit毎にＯＲ演算を行ったものを番兵エントリとする。
【０１０５】
番兵入り検索テーブル作成手段（１０２）は、ｉ番目のエントリとｉ＋１番目のエントリとの間に挿入される番兵エントリを作成する場合、ｉ＋１番目以降の全エントリの各フィールド値についてのＯＲ演算を行う。
【０１０６】
次に、図４に示すステップＡ５の番兵エントリの条件に一致するかどうかの判定は次のように行われる。
【０１０７】
まず、受信パケットのフィールド毎の判定を行う。
【０１０８】
フィールド毎の判定は、フィールド毎に番兵エントリの値とのＡＮＤ演算を行い、その結果が受信パケットの値と一致すれば『１』を記憶し、それ以外の場合は『０』を記憶する。
【０１０９】
フィールド毎の演算結果のうち１つでも『１』ならば、番兵エントリの条件には一致しないと判定し、全て『０』ならば、番兵エントリの条件に一致すると判定する。
【０１１０】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１１１】
例えば、図１に示すパケット制御装置は、パケット識別手段（１００）、番兵入り検索テーブル（１０１）、番兵入り検索テーブル作成手段（１０２）、検索テーブル（１０３）、パケット制御手段（１０４）、パケット監視手段（１０５）、はそれぞれ１つを有して構成することにしたが、各手段を２つ以上用いて構成するように構築することも可能である。
【０１１２】
また、上述した実施形態における番兵入り検索テーブル（１０１）の『番兵エントリ』は、その『番兵エントリ』が挿入された位置よりも後に続くエントリＮｏ．の条件を全て含んだ条件の逆を持つことにしたが、必ずしも逆の条件を持つ必要はなく、『番兵エントリ』が挿入された位置よりも後に続くエントリＮｏ．の条件を全て含んだ条件を持つようにすることも可能である。この場合には、その『番兵エントリ』の条件に該当すれば検索処理を続け、該当しなければ検索処理を終了するように構築することになる。
【０１１３】
また、上述した実施形態におけるパケット制御装置における制御動作は、ハード構成ではなく、コンピュータプログラム等のソフトウェアにより実行することも可能であり、また、上記のプログラムは、光記録媒体、磁気記録媒体、光磁気記録媒体、または半導体等の記録媒体に記録し、その記録媒体から上記プログラムを、上述したパケット制御装置に読み込ませることで、上述した制御動作を、パケット制御装置において実行させることも可能である。また、所定のネットワークを介して接続されている外部機器から上記プログラムを上述したパケット制御装置に読み込ませることで、上述した制御動作を、パケット制御装置において実行させることも可能である。
【産業上の利用可能性】
【０１１４】
本発明にかかるパケット制御装置、パケット制御方法及びパケット制御プログラムは、パケットの検索処理を高速化することが可能となるため、パケットのフィールド値によってルーティング処理やログ、あるいは、帯域制御や優先度制御などの制御行うネットワーク中継装置等に適用可能である。
【図面の簡単な説明】
【０１１５】
【図１】本実施形態のパケット制御装置の構成を示すブロック図である。
【図２】本実施形態の検索テーブル（１０３）のテーブル構成例を示す図である。
【図３】本実施形態の番兵入り検索テーブル（１０１）のテーブル構成例を示す図である。
【図４】本実施形態のパケット識別手段（１００）における検索処理を説明するためのフローチャートである。
【図５】本発明のパケット制御装置における第１の実施例の番兵エントリの一例を示す図である。
【図６】従来の検索テーブルのテーブル構成例を示す図である。
【符号の説明】
【０１１６】
１００    パケット識別手段
１０１    番兵入り検索テーブル
１０２    番兵入り検索テーブル作成手段
１０３    検索テーブル
１０４    パケット制御手段
１０５    パケット監視手段
【図１】
2008211524.tif 000003
【図２】
2008211524.tif 000004
【図３】
2008211524.tif 000005
【図４】
2008211524.tif 000006
【図５】
2008211524.tif 000007
【図６】
2008211524.tif 000008