JP2008211524A - パケット制御装置、パケット制御方法及びパケット制御プログラム - Google Patents
パケット制御装置、パケット制御方法及びパケット制御プログラム Download PDFInfo
- Publication number
- JP2008211524A JP2008211524A JP2007046236A JP2007046236A JP2008211524A JP 2008211524 A JP2008211524 A JP 2008211524A JP 2007046236 A JP2007046236 A JP 2007046236A JP 2007046236 A JP2007046236 A JP 2007046236A JP 2008211524 A JP2008211524 A JP 2008211524A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- condition
- search
- entry
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】検索処理を高速に行い、データ制御を行うことが可能なパケット制御装置を提供する。
【解決手段】制御対象となるパケットの条件を管理する検索テーブル(103)を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であり、パケット制御装置は、検索テーブル(103)にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を管理する番兵入り検索テーブル(101)を有し、受信パケットが番兵入り検索テーブル(101)にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、受信パケットに対し、当該条件に応じたデータ制御を行い、受信パケットが番兵の条件に該当する場合に、検索を終了する。
【選択図】図1
【解決手段】制御対象となるパケットの条件を管理する検索テーブル(103)を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であり、パケット制御装置は、検索テーブル(103)にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を管理する番兵入り検索テーブル(101)を有し、受信パケットが番兵入り検索テーブル(101)にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、受信パケットに対し、当該条件に応じたデータ制御を行い、受信パケットが番兵の条件に該当する場合に、検索を終了する。
【選択図】図1
Description
本発明は、パケット識別処理を行い、その識別処理に応じたデータ制御を行うパケット制御装置、パケット制御方法及びパケット制御プログラムに関し、特に、複数のネットワーク間を接続するネットワーク中継装置に好適なパケット制御装置、パケット制御方法及びパケット制御プログラムに関するものである。
複数のネットワーク間を接続するためには、一般的に、ネットワーク中継装置が設置されている。ネットワーク中継装置では、パケット識別処理を行い、パケットのログ記録や中継・破棄の制御、優先度制御、帯域制御、遅延の挿入、ルーティング制御等様々な制御が行われている。
なお、パケット識別処理とは、パケットヘッダの中の指定されたフィールドの、指定された値の、指定された組み合わせを持つパケットを識別する処理である。
従来のパケット識別処理は、図6に示すような『検索テーブル』を使用していた。以下、CPUによるソフトウェア処理で行っていた従来のパケット識別処理の概要について説明する。なお、以下の説明では、IPv4パケットのパケット識別処理について説明する。
CPUは、IPv4パケットを受信すると、IPヘッダの正当性の確認後、パケット識別処理を行うことになる。
図6に示すように、『検索テーブル』には、0個以上のエントリが登録され、そのエントリは、検索条件となる任意のフィールドの任意の組み合わせと、当該エントリに対する制御と、から構成されている。
例えば、図6に示す『No.0』のエントリは、IP発信元アドレスが『IP-SA#0』の値を持つパケットに対して『ログ』の記録処理を行うことを意味する。
また、図6に示す『No.3』のエントリは、IP発信元アドレスが『IP-SA#3』、IP送信先アドレスが『IP-DA#1』、プロトコルが『Protocol#0』の値を持つパケットに対して『破棄』の処理を行うことを意味する。
CPUは、図6に示す『検索テーブル』に登録されている最初のエントリから順番に、受信パケットの該当フィールド値と比較し、受信パケットの該当フィールド値と一致するエントリが存在する場合には、当該エントリの設定に従い、受信パケットに対して制御を行うことになる。
なお、最後のエントリまで検索処理を進めても、受信パケットの該当フィールド値と一致するエントリが存在しない場合には、一致するエントリが存在しない場合の設定に従い、受信パケットに対して制御を行うことになる。
例えば、IP発信元アドレスが『IP-SA#2』で、IP送信先アドレスが『IP-DA#0』のパケットの場合には、図6に示す『検索テーブル』のエントリ『No.2』に一致し、パケットに対し、『ログ』の記録処理を行うことになる。
また、IP発信元アドレスが『IP-SA#2』、送信先アドレスが『IP-DA#3』、プロトコルが『Protocol#1』のパケットの場合には、図6に示す『検索テーブル』に一致するエントリが存在しないため、パケットに対し、一致するエントリが存在しない場合の制御を行うことになる。
なお、CPU(ソフトウェア)処理の一般的な特徴は、逐次処理を行う点であり、上述した従来のパケット識別処理は、図6に示す『検索テーブル』から1つのエントリを取り出し、その取り出したエントリのフィールド値と、受信パケットの該当フィールド値と、を比較するというように逐次的に行うことになる。
このため、図6に示す『検索テーブル』のエントリ数が多い場合には、検索処理時間が非常に長くなる可能性がある。
つまり、受信パケットの該当フィールド値が、『検索テーブル』の最初に登録されているエントリと一致する場合には、検索処理はすぐに終わることになるが、『検索テーブル』の最後に登録されているエントリと一致する場合、あるいは、『検索テーブル』に登録されているすべてのエントリと一致しない場合には、図6に示す『検索テーブル』に登録されているすべてのエントリを検索することになる。
従って、図6に示す『検索テーブル』に登録されているエントリ数が増加するに伴い、検索処理時間が長くなり、パケット識別処理に時間がかかってしまうことになる。
また、通常のパケット識別処理は、受信パケットの該当フィールド値と一致するエントリの中で最も優先度が高い制御を1つだけ実行し、検索処理を終了させることが多いが、一方で、受信パケットの該当フィールド値と一致するエントリが複数存在する場合に、その複数のエントリの中から複数の制御を実行したい場合もある。
例えば、あるパケットが、ログの記録処理を行うエントリに一致し、かつ、パケットの破棄を行うエントリにも一致する場合に、ログの記録処理を行って、パケットの破棄を行うといったように両方の処理を行う場合等が挙げられる。
しかしながら、従来のパケット識別処理では、複数のエントリの中から複数の制御を実行したい場合には、パケットがあるエントリに一致しても、全てのエントリの検索を終了しない限り、検索処理を終了することができないため、図6に示す『検索テーブル』に登録されたエントリの数に比例して検索処理時間が長くなってしまうことになる。
このようなことから、検索処理を高速に行うことが可能なパケット制御方法の開発が必要視されることになる。
なお、本発明より先に出願された技術文献として、回線速度の高速化やフロー条件の増加に対応することができ、高速にフロー検出して、高速にQoS制御やフィルタリングを実現することが可能な技術について開示された文献がある(例えば、特許文献1参照)。
また、パケット内の予め指定されたフィールドに対し、各1回ずつメモリ検索を実行し、それぞれの検索結果を基にさらに1回メモリ検索を行うことで、メモリの検索処理を高速にかつ常に一定の時間内に行うことを可能とする技術について開示された文献がある(例えば、特許文献2参照)。
特開2000−244574号公報
特開2001−119432号公報
しかしながら、上記特許文献1、2には、必要以上の検索を停止させるための役割を持つ番兵の条件を用いて、検索処理を高速に行い、データ制御を行うことについては何ら記載もその必要性についても示唆されていない。
本発明は、上記事情に鑑みてなされたものであり、検索処理を高速に行い、データ制御を行うことが可能なパケット制御装置、パケット制御方法及びパケット制御プログラムを提供することを目的とするものである。
かかる目的を達成するために、本発明は、以下の特徴を有することとする。
本発明にかかるパケット制御装置は、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であって、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段と、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御手段と、を有し、
前記制御手段は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であって、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段と、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御手段と、を有し、
前記制御手段は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
また、本発明にかかるパケット制御装置において、
前記制御手段は、
前記受信パケットの該当フィールド値が、前記番兵管理手段にて管理されている条件に該当するか否かを検索することを特徴とする。
前記制御手段は、
前記受信パケットの該当フィールド値が、前記番兵管理手段にて管理されている条件に該当するか否かを検索することを特徴とする。
また、本発明にかかるパケット制御装置は、
前記管理手段にて管理している前記パケットの条件の任意の位置に、前記番兵の条件を挿入したテーブルを生成する生成手段を有し、
前記番兵管理手段は、
前記生成手段にて生成したテーブルを管理することで、前記番兵の条件と、前記パケットの条件と、を管理することを特徴とする。
前記管理手段にて管理している前記パケットの条件の任意の位置に、前記番兵の条件を挿入したテーブルを生成する生成手段を有し、
前記番兵管理手段は、
前記生成手段にて生成したテーブルを管理することで、前記番兵の条件と、前記パケットの条件と、を管理することを特徴とする。
また、本発明にかかるパケット制御装置において、
前記番兵の条件は、前記番兵の条件を挿入した位置よりも後に続く前記パケットの条件を全て含んだ条件の逆の条件であることを特徴とする。
前記番兵の条件は、前記番兵の条件を挿入した位置よりも後に続く前記パケットの条件を全て含んだ条件の逆の条件であることを特徴とする。
また、本発明にかかるパケット制御装置において、
前記生成手段は、
前記管理手段にて管理しているパケットの条件が更新された場合に、当該更新されたパケットの条件を基に、前記テーブルを生成することを特徴とする。
前記生成手段は、
前記管理手段にて管理しているパケットの条件が更新された場合に、当該更新されたパケットの条件を基に、前記テーブルを生成することを特徴とする。
また、本発明にかかるパケット制御方法は、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置で行うパケット制御方法であって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御工程を、前記パケット制御装置が行い、
前記制御工程は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置で行うパケット制御方法であって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御工程を、前記パケット制御装置が行い、
前記制御工程は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
また、本発明にかかるパケット制御プログラムは、
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置に実行させるパケット制御プログラムであって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御処理を、前記パケット制御装置に実行させ、
前記制御処理は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置に実行させるパケット制御プログラムであって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御処理を、前記パケット制御装置に実行させ、
前記制御処理は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とする。
本発明によれば、検索処理を高速に行い、データ制御を行うことが可能となる。
<本実施形態のパケット制御装置の特徴>
まず、図1を参照しながら、本実施形態のパケット制御装置の特徴について説明する。
まず、図1を参照しながら、本実施形態のパケット制御装置の特徴について説明する。
本実施形態のパケット制御装置は、制御対象となるパケットの条件を管理する管理手段(検索テーブル:103に該当)を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置である。
なお、本実施形態におけるパケット制御装置は、管理手段(103)にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を管理する番兵管理手段(番兵入り検索テーブル:101に該当)を有し、パケット制御装置は、受信パケットが番兵管理手段(101)にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、受信パケットに対し、当該条件に応じたデータ制御を行い、パケット制御装置は、受信パケットが番兵の条件に該当する場合に、検索を終了することを特徴とする。これにより、検索処理を高速に行い、データ制御を行うことが可能となる。以下、添付図面を参照しながら、本実施形態のパケット制御装置について詳細に説明する。
<パケット制御装置の構成>
まず、図1を参照しながら、本実施形態のパケット制御装置の構成について説明する。
まず、図1を参照しながら、本実施形態のパケット制御装置の構成について説明する。
本実施形態のパケット制御装置は、図1に示すように、パケット識別手段(100)と、番兵入り検索テーブル(101)と、番兵入り検索テーブル作成手段(102)と、検索テーブル(103)と、パケット制御手段(104)と、パケット監視手段(105)と、を有して構成している。
<検索テーブル:103>
検索テーブル(103)は、図2に示すように、N+1個のエントリNo.を持つ検索テーブルである。なお、検索テーブル(103)は、制御対象パケットの条件を管理するものである。
検索テーブル(103)は、図2に示すように、N+1個のエントリNo.を持つ検索テーブルである。なお、検索テーブル(103)は、制御対象パケットの条件を管理するものである。
<番兵入り検索テーブル:101>
番兵入り検索テーブル(101)は、図3に示すように、N+1個のエントリNo.と、番兵エントリと、を持つ検索テーブルである。
番兵入り検索テーブル(101)は、図3に示すように、N+1個のエントリNo.と、番兵エントリと、を持つ検索テーブルである。
なお、番兵入り検索テーブル(101)は、図2に示す検索テーブル(103)の任意の位置に『番兵エントリ』を挿入して構成したものであり、『番兵エントリ』は、その『番兵エントリ』が挿入された位置よりも後に続くエントリNo.の条件を全て含んだ条件の逆を持つことになる。
例えば、図3に示す『番兵0』は、図2に示す『No.0』〜『No.N』のエントリNo.の全ての条件を含んだ条件の逆の条件を持っている。
また、図3に示す『番兵1』は、図2に示す『No.5』〜『No.N』のエントリNo.までの全ての条件を含んだ条件の逆の条件を持っている。
<パケット識別手段:100>
パケット識別手段(100)は、受信パケットの該当フィールド値が番兵入り検索テーブル(101)のエントリの条件と一致するか否かを検査するものである。
パケット識別手段(100)は、受信パケットの該当フィールド値が番兵入り検索テーブル(101)のエントリの条件と一致するか否かを検査するものである。
例えば、パケット識別手段(100)は、受信パケットを受け取った場合に、番兵入り検索テーブル(101)から最初のエントリを取り出し、受信パケットの該当フィールド値がその最初のエントリの条件と一致するか否かを検査する。
パケット識別手段(100)は、受信パケットの該当フィールド値が最初のエントリの条件と一致した場合には、その一致した最初のエントリが通常のエントリNo.の場合には、受信パケットを管理するデータ構造に、その一致する通常のエントリNo.を記録する。また、一致した最初のエントリが番兵エントリの場合には、検索処理を終了する。なお、通常のエントリNo.とは、図2に示す検索テーブル(101)で管理されているエントリNo.である。
また、パケット識別手段(100)は、受信パケットの該当フィールド値が最初のエントリの条件と一致しない場合は、何もせずに、次のエントリを番兵入り検索テーブル(101)から取り出し、受信パケットの該当フィールド値が次のエントリの条件と一致するか否かを検査する。
パケット識別手段(100)は、上述した処理を、番兵入り検索テーブル(101)で管理されている最後のエントリまで、あるいは、番兵エントリの条件と一致するまで検索処理を繰り返すことになる。
<番兵入り検索テーブル作成手段:102>
番兵入り検索テーブル作成手段(102)は、検索テーブル(103)の情報を基に、任意の位置に冗長な検索処理を停止させるための番兵エントリを挿入した図3に示す番兵入り検索テーブル(101)を作成するものである。
番兵入り検索テーブル作成手段(102)は、検索テーブル(103)の情報を基に、任意の位置に冗長な検索処理を停止させるための番兵エントリを挿入した図3に示す番兵入り検索テーブル(101)を作成するものである。
<パケット制御手段:104>
パケット制御手段(104)は、受信パケットを管理するデータ構造に追加されたエントリNo.を参照し、そのエントリNo.に対応するデータ制御を受信パケットに対して行うものである。
パケット制御手段(104)は、受信パケットを管理するデータ構造に追加されたエントリNo.を参照し、そのエントリNo.に対応するデータ制御を受信パケットに対して行うものである。
<パケット監視手段:105>
パケット監視手段(105)は、受信パケットを監視し、その監視した受信パケットを基に、制御を掛けたい制御対象パケットの条件を検索テーブル(103)に反映させるものである。なお、パケット監視手段(105)は、監視した受信パケットを基に、自動的に、あるいは、外部からの操作により、制御対象パケットの条件を検索テーブル(103)に反映させることになる。
パケット監視手段(105)は、受信パケットを監視し、その監視した受信パケットを基に、制御を掛けたい制御対象パケットの条件を検索テーブル(103)に反映させるものである。なお、パケット監視手段(105)は、監視した受信パケットを基に、自動的に、あるいは、外部からの操作により、制御対象パケットの条件を検索テーブル(103)に反映させることになる。
<番兵入り検索テーブル作成手段:102における処理動作>
次に、番兵入り検索テーブル作成手段(102)における処理動作について説明する。
次に、番兵入り検索テーブル作成手段(102)における処理動作について説明する。
まず、検索テーブル(103)にエントリが追加された場合の処理動作について説明する。
検索テーブル(103)にエントリが追加された場合には、番兵入り検索テーブル(101)の再構築が必要となる。
なお、検索テーブル(103)のリストの先頭からk番目にエントリが追加された場合には、番兵入り検索テーブル(101)の先頭からk番目までにある全ての番兵エントリの条件に、検索テーブル(103)のリストに追加されたエントリの条件を足し合わせることで番兵入り検索テーブル(101)を再構築する。
次に、検索テーブル(103)からエントリが削除された場合の処理動作について説明する。
検索テーブル(103)からエントリが削除された場合には、番兵入り検索テーブル(101)の再構築が必要となる。
そこで、番兵入り検索テーブル(101)を再構築する際の処理を高速化するために、各番兵エントリ間において、そこに含まれる全てのエントリの条件を含んだものを保持しておき、エントリの削除時に利用する。
例えば、検索テーブル(103)のリストの先頭からk番目のエントリが削除された場合には、変更すべき番兵エントリは、番兵入り検索テーブル(101)のリストの先頭からk番目までに含まれる。
まず、番兵入り検索テーブル(101)のリストのk番目から先頭の方向にある最も近い番兵エントリを作り直す。
この処理は、番兵入り検索テーブル(101)のリストのk番目よりも後にある最初の番兵エントリの条件と、番兵入り検索テーブル(101)のリストのk番目から先頭の方向にある最も近い番兵エントリまでに含まれる条件と、を足し合わせることで実現することが可能となる。
その後、番兵入り検索テーブル(101)のリストの先頭までに含まれる番兵エントリは、予め保持してある各番兵エントリ間に含まれる全てのエントリの条件を含んだものを足し合わせることで、番兵入り検索テーブル(101)を再構築する。
<パケット識別手段:100が行う検索処理>
次に、図1〜図4を参照しながら、パケット識別手段(100)が行う検索処理について説明する。なお、図4は、パケット識別手段(100)が行う検索処理の処理動作を示すフローチャートである。
次に、図1〜図4を参照しながら、パケット識別手段(100)が行う検索処理について説明する。なお、図4は、パケット識別手段(100)が行う検索処理の処理動作を示すフローチャートである。
パケット制御装置は、パケットを受信すると、その受信したパケットの正当性を確認後、受信パケットをパケット識別手段(100)に送信する。これにより、パケット識別手段(100)は、パケットを受信し、その受信したパケットを基に、図4に示す一連の検索処理を行うことになる。
まず、パケット識別手段(100)は、パケットを受信した場合に、その受信パケットからヘッダ情報を取り出す(ステップA1)。
次に、パケット識別手段(100)は、番兵入り検索テーブル(101)からエントリを取得する(ステップA2)。
パケット識別手段(100)は、番兵入り検索テーブル(101)から取り出したエントリが空か否かを判定し(ステップA3)、番兵入り検索テーブル(101)から取り出したエントリが空の場合には(ステップA3/Yes)、番兵入り検索テーブル(101)に登録されている全てのエントリの検索処理が終了したと判断し、検索処理を終了する(END)。
また、番兵入り検索テーブル(101)から取り出したエントリが空でない場合には(ステップA3/No)、番兵入り検索テーブル(101)から取り出したエントリが番兵エントリか否かを確認する(ステップA4)。
パケット識別手段(100)は、番兵入り検索テーブル(101)から取り出したエントリが番兵エントリである場合には(ステップA4/Yes)、受信パケットの該当フィールド値が番兵エントリの条件に一致するか否かを検査する(ステップA5)。
パケット識別手段(100)は、受信パケットの該当フィールド値が番兵エントリの条件に一致する場合は(ステップA5/Yes)、検索処理を終了する(END)。
また、受信パケットの該当フィールド値が番兵エントリの条件に一致しない場合は(ステップA5/No)、番兵入り検索テーブル(101)から次のエントリを取得する(ステップA2)。
そして、パケット識別手段(100)は、番兵入り検索テーブル(101)から取得した次のエントリを基に、エントリが空か否かを判定することになる(ステップA3)。
また、ステップA4において、番兵入り検索テーブル(101)から取り出したエントリが番兵エントリでない場合には(ステップA4/No)、受信パケットの該当フィールド値が番兵エントリでない通常エントリの条件に一致するか否かを検査する(ステップA6)。
パケット識別手段(100)は、受信パケットの該当フィールド値が通常エントリの条件に一致する場合は(ステップA6/Yes)、そのエントリNo.を記録する(ステップA7)。そして、パケット識別手段(100)は、番兵入り検索テーブル(101)から次のエントリを取得することになる(ステップA2)。
また、パケット識別手段(100)は、受信パケットの該当フィールド値が通常エントリの条件に一致しない場合は(ステップA6/No)、番兵入り検索テーブル(101)から次のエントリを取得することになる(ステップA2)。
このように、本実施形態におけるパケット識別手段(100)は、パケットを受信した場合に、番兵入り検索テーブル(101)を用いて検索処理を行い、受信パケットの該当フィールド値が、番兵入り検索テーブル(101)に登録されている番兵エントリの条件に一致した場合には、検索処理を終了するように制御しているため、冗長な検索処理を回避することが可能となる。これにより、パケット識別手段(100)の検索処理時間を削減することが可能となる。
<パケット制御装置におけるパケット制御処理>
次に、本実施形態のパケット制御装置における制御動作について説明する。
次に、本実施形態のパケット制御装置における制御動作について説明する。
パケット識別手段(100)は、図4に示す検索処理が終了した受信パケットをパケット制御手段(104)に送信する。
パケット制御手段(104)は、パケット識別手段(100)から受信パケットを受信した場合に、受信パケットから図4に示すステップA7において記録されたエントリNo.を取得し、空でなければ、そのエントリNo.に対応するデータ制御を実行することになる。
パケット監視手段(105)は、制御対象パケットの条件を取得した場合に、その制御対象パケットの条件を検索テーブル(103)に追加更新する。
番兵入り検索テーブル生成手段(102)は、検索テーブル(103)が追加更新された場合に、その検索テーブル(103)の情報を受け取り、検索テーブル(103)内の任意の位置に番兵エントリを挿入した番兵入り検索テーブル(101)を生成し、番兵入り検索テーブル(101)を更新することになる。
このように、本実施形態におけるパケット制御装置は、検索テーブル(103)にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、制御対象となるパケットの条件と、を番兵入り検索テーブル(101)にて管理する。
そして、パケット識別手段(100)は、受信パケットが番兵入り検索テーブル(101)にて管理されている条件に該当するか否かを検索する。そして、パケット制御手段(104)は、番兵入り検索テーブル(101)にて管理されている条件に該当する場合は、その受信パケットに、その番兵入り検索テーブル(101)にて管理されている条件に応じたデータ制御を行うことになる。なお、パケット識別手段(100)は、受信パケットが番兵入り検索テーブル(101)にて管理されている番兵の条件に該当する場合には、検索をそこで終了する。これにより、パケット識別手段(100)における必要以上の検索を停止させ、検索処理を高速に行い、データ制御を行うことが可能となる。また、複数の条件に応じたデータ制御を受信パケットに対して行う場合でも、パケット識別手段(100)における必要以上の検索を停止させ、検索処理を高速に行い、複数の条件に応じたデータ制御を行うことが可能となる。
(実施例)
次に、具体的な実施例を用いて本実施形態のパケット制御装置における処理動作について詳細に説明する。
次に、具体的な実施例を用いて本実施形態のパケット制御装置における処理動作について詳細に説明する。
(第1の実施例)
第1の実施例は、フィールド値の16進数表現を利用した番兵エントリを図5のように構成している。その他の構成は、図1〜図3に示す構成と同じものとする。
第1の実施例は、フィールド値の16進数表現を利用した番兵エントリを図5のように構成している。その他の構成は、図1〜図3に示す構成と同じものとする。
番兵入り検索テーブル作成手段(102)は、i番目のエントリとi+1番目のエントリとの間に挿入される番兵エントリを次のように生成する。
まず、i+1番目以降のエントリの各フィールド値を16進数で表現する。
16進数で表現すると、図5に示すように、例えば、送信元IPアドレス(srcIP)は、8桁、宛先ポート番号(dport)は、4桁で表現できる。
次に、各フィールドを16進数表現した際に必要な桁数×16bitのサイズのメモリ領域を用意し、全てのbitを0にクリアする。
例えば、送信元IPアドレス(srcIP)の場合は、8桁×16bitで合計128bit、宛先ポート番号(dport)の場合は、4桁×16bitで合計64bitとなる。
次に、i+1番目のエントリから16進数表現されたフィールド値を取り出し、さらに1文字を読み込んで(xとする)、番兵エントリと対応するフィールドのxbit目を『1』にする。
例えば、送信元IPアドレス(srcIP)が192.168.0.1の場合、16進数表現は、C0A80001と表され、1文字目がCなので、番兵エントリの送信元IPアドレス(srcIP)を表すフィールドの1文字目に対応するメモリ領域の『C』bit値目を『1』にセットする。
同様に、2文字目は『0』bit値目を『1』にセットする。
以上の操作をフィールド毎に繰り返し、N番目のエントリまで繰り返す。
次に、図4に示すステップA5の番兵エントリの条件に一致するかどうかの判定は次のように行われる。
まず、受信パケットのフィールドについて16進数表現に変換し、フィールドについて1文字ずつ読み取り、番兵エントリと対応するbitが『1』か否かを判定する。
次に、フィールド毎の判定を行う。各フィールドについて判定結果を集め、全ての判定結果が『1』ならば、そのフィールドの判定結果を『1』とし、1つでも『0』が含まれていれば、判定結果を『0』とする。最後に番兵エントリの条件に一致するか否かの判定を行う。
フィールド毎の判定結果が1つでも『1』ならば、番兵エントリの条件には一致しないと判定し、検索処理を続ける。
また、全てのフィールド毎の判定結果が『0』ならば、番兵エントリの条件に一致すると判定する。
なお、上述した第1の実施例においては、例えば、送信元IPアドレス(srcIP)のフィールドを8区間に分割し、各区間を16bitで表現しているが、同様に、32区間と2bit、16区間と4bit、4区間と256bit、2区間と2^16bit、1区間と2^32bitなどで行うことも可能である。なお、他のフィールドに関しても同様である。
また、上述した第1の実施例では16進数表現を用いた場合について説明したが、8進数や10進数など、n(nは、任意の整数)進数表現を使って番兵エントリを構築することも可能である。
例えば、10進数の場合には、番兵エントリの送信元IPアドレス(srcIP)用に必要なbit数は、3bit(0,1,2)+10bit(0〜9)+10bit(0〜9)で合計23bitとなる。
(第2の実施例)
次に、第2の実施例について説明する。
次に、第2の実施例について説明する。
第2の実施例は、受信パケットのフィールドが全て2進数固定長のbit列で表すことができる特徴を利用し、番兵エントリが挿入される位置より後のエントリについて各フィールド値のbit毎にOR演算を行ったものを番兵エントリとする。
番兵入り検索テーブル作成手段(102)は、i番目のエントリとi+1番目のエントリとの間に挿入される番兵エントリを作成する場合、i+1番目以降の全エントリの各フィールド値についてのOR演算を行う。
次に、図4に示すステップA5の番兵エントリの条件に一致するかどうかの判定は次のように行われる。
まず、受信パケットのフィールド毎の判定を行う。
フィールド毎の判定は、フィールド毎に番兵エントリの値とのAND演算を行い、その結果が受信パケットの値と一致すれば『1』を記憶し、それ以外の場合は『0』を記憶する。
フィールド毎の演算結果のうち1つでも『1』ならば、番兵エントリの条件には一致しないと判定し、全て『0』ならば、番兵エントリの条件に一致すると判定する。
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
例えば、図1に示すパケット制御装置は、パケット識別手段(100)、番兵入り検索テーブル(101)、番兵入り検索テーブル作成手段(102)、検索テーブル(103)、パケット制御手段(104)、パケット監視手段(105)、はそれぞれ1つを有して構成することにしたが、各手段を2つ以上用いて構成するように構築することも可能である。
また、上述した実施形態における番兵入り検索テーブル(101)の『番兵エントリ』は、その『番兵エントリ』が挿入された位置よりも後に続くエントリNo.の条件を全て含んだ条件の逆を持つことにしたが、必ずしも逆の条件を持つ必要はなく、『番兵エントリ』が挿入された位置よりも後に続くエントリNo.の条件を全て含んだ条件を持つようにすることも可能である。この場合には、その『番兵エントリ』の条件に該当すれば検索処理を続け、該当しなければ検索処理を終了するように構築することになる。
また、上述した実施形態におけるパケット制御装置における制御動作は、ハード構成ではなく、コンピュータプログラム等のソフトウェアにより実行することも可能であり、また、上記のプログラムは、光記録媒体、磁気記録媒体、光磁気記録媒体、または半導体等の記録媒体に記録し、その記録媒体から上記プログラムを、上述したパケット制御装置に読み込ませることで、上述した制御動作を、パケット制御装置において実行させることも可能である。また、所定のネットワークを介して接続されている外部機器から上記プログラムを上述したパケット制御装置に読み込ませることで、上述した制御動作を、パケット制御装置において実行させることも可能である。
本発明にかかるパケット制御装置、パケット制御方法及びパケット制御プログラムは、パケットの検索処理を高速化することが可能となるため、パケットのフィールド値によってルーティング処理やログ、あるいは、帯域制御や優先度制御などの制御行うネットワーク中継装置等に適用可能である。
100 パケット識別手段
101 番兵入り検索テーブル
102 番兵入り検索テーブル作成手段
103 検索テーブル
104 パケット制御手段
105 パケット監視手段
101 番兵入り検索テーブル
102 番兵入り検索テーブル作成手段
103 検索テーブル
104 パケット制御手段
105 パケット監視手段
Claims (7)
- 制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置であって、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段と、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御手段と、を有し、
前記制御手段は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御装置。 - 前記制御手段は、
前記受信パケットの該当フィールド値が、前記番兵管理手段にて管理されている条件に該当するか否かを検索することを特徴とする請求項1記載のパケット制御装置。 - 前記管理手段にて管理している前記パケットの条件の任意の位置に、前記番兵の条件を挿入したテーブルを生成する生成手段を有し、
前記番兵管理手段は、
前記生成手段にて生成したテーブルを管理することで、前記番兵の条件と、前記パケットの条件と、を管理することを特徴とする請求項1記載のパケット制御装置。 - 前記番兵の条件は、前記番兵の条件を挿入した位置よりも後に続く前記パケットの条件を全て含んだ条件の逆の条件であることを特徴とする請求項3記載のパケット制御装置。
- 前記生成手段は、
前記管理手段にて管理しているパケットの条件が更新された場合に、当該更新されたパケットの条件を基に、前記テーブルを生成することを特徴とする請求項3記載のパケット制御装置。 - 制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置で行うパケット制御方法であって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御工程を、前記パケット制御装置が行い、
前記制御工程は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御方法。 - 制御対象となるパケットの条件を管理する管理手段を有し、当該条件に該当するパケットに対し、当該条件に応じたデータ制御を行うパケット制御装置に実行させるパケット制御プログラムであって、
前記パケット制御装置は、
前記管理手段にて管理されている条件に該当しないパケットに対する必要以上の検索を停止させる役割を持つ番兵の条件と、前記制御対象となるパケットの条件と、を管理する番兵管理手段を有し、
受信パケットが前記番兵管理手段にて管理されている条件に該当するか否かを検索し、当該条件に該当する場合に、前記受信パケットに対し、当該条件に応じたデータ制御を行う制御処理を、前記パケット制御装置に実行させ、
前記制御処理は、
受信パケットが前記番兵の条件に該当する場合に、検索を終了することを特徴とするパケット制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007046236A JP2008211524A (ja) | 2007-02-26 | 2007-02-26 | パケット制御装置、パケット制御方法及びパケット制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007046236A JP2008211524A (ja) | 2007-02-26 | 2007-02-26 | パケット制御装置、パケット制御方法及びパケット制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008211524A true JP2008211524A (ja) | 2008-09-11 |
Family
ID=39787455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007046236A Withdrawn JP2008211524A (ja) | 2007-02-26 | 2007-02-26 | パケット制御装置、パケット制御方法及びパケット制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008211524A (ja) |
-
2007
- 2007-02-26 JP JP2007046236A patent/JP2008211524A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1436718B1 (en) | Method of generating a DFA state machine that groups transitions into classes in order to conserve memory | |
US6856981B2 (en) | High speed data stream pattern recognition | |
US8964548B1 (en) | System and method for determining network application signatures using flow payloads | |
CN1794236B (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
US8930650B1 (en) | Identification of non-sequential data stored in memory | |
US8577817B1 (en) | System and method for using network application signatures based on term transition state machine | |
US7860849B1 (en) | Optimizing search trees by increasing success size parameter | |
US8239341B2 (en) | Method and apparatus for pattern matching | |
KR101334583B1 (ko) | 심볼 패턴에 입력 심볼 스트림을 정합하기 위한 방법 및 장치 | |
CN101009660B (zh) | 处理分段报文模式匹配的通用方法及装置 | |
WO2005064522A1 (en) | Methods and apparatus for detecting patterns in a data stream | |
US20210185153A1 (en) | Hybrid Fixed/Programmable Header Parser for Network Devices | |
JP5807676B2 (ja) | パケット分類器、パケット分類方法、及びパケット分類プログラム | |
CN116340055A (zh) | 一种固态硬盘的数据恢复方法及系统 | |
JP2008211524A (ja) | パケット制御装置、パケット制御方法及びパケット制御プログラム | |
JP4729389B2 (ja) | パターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体 | |
JP4726310B2 (ja) | 情報検索装置、情報検索用マルチプロセッサおよびルータ | |
KR20120084880A (ko) | 하둡 맵리듀스에서 네트워크 패킷 분석을 위한 입력포맷 | |
US8199756B2 (en) | Forwarding apparatus, forwarding method, and computer product | |
JP2004187201A (ja) | データ列検索用ノード,これを用いるデータ列検索方法並びにデータ列検索処理装置 | |
US20180062998A1 (en) | Packet filtering using binary search trees | |
CN112187639B (zh) | 一种基于流属性的数据包路径编码的生成方法及系统 | |
US9559987B1 (en) | Method and apparatus for improving CAM learn throughput using a cache | |
JP5424988B2 (ja) | マルチキャスト転送方法、パケット転送システム、ノード装置及びパケット転送プログラム | |
US20030128700A1 (en) | Method and system for providing a filter for a router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100511 |