(57)【特許請求の範囲】
【請求項１】
複数のパケット検索条件を記憶する複数のエントリ領域を有する検索テーブルと、
パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理部と、
前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理部と、
前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を記憶する有効管理テーブルと、
前記複数のエントリ領域の各々に対応したタイマと、
有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、前記タイマにより計時動作を開始するタイマ管理部と、
前記タイマごとに、前記タイマが計時動作中であるかタイムアウトしたかを表す情報を記憶するタイムアウト管理テーブルと、
前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させると共に、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効無効管理部と、
通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる制御部と
を具備するパケット転送処理装置。
【請求項２】
前記タイムアウト管理テーブルは、
前記検索テーブルの各エントリ領域に対応付けて設けられた複数のビット領域を有し、前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記複数のビット領域のうち、前記タイマに対応するビット領域に記憶するタイムアウトレジスタと、
前記タイムアウトレジスタの前記複数のビット領域を分割した複数のグループに対応付けて設けられ、各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを出力する複数の論理和回路と、
前記複数の論理和回路を、前記制御部のプロセッサが同時に処理可能なビット数ずつ分割した複数のブロックに対応付けて設けられ、各ブロックに含まれる論理和回路から出力される論理和データを記憶する複数の集約レジスタと
を備え、
前記制御部は、前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択し、前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択し、前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出する
請求項１記載のパケット転送処理装置。
【請求項３】
前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報を順次記憶するメモリを備え、
前記制御部は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする
請求項１記載のパケット転送処理装置。
【請求項４】
パケットが第１のインタフェースと第２のインタフェースとの間で転送され、
前記検索テーブルに記憶される各パケット検索条件は、第１の検索条件，第２の検索条件および第３の検索条件を含み、
前記検索処理部は、
前記受信したパケットが前記第１のインタフェースで受信された第１のパケットである場合、前記第１のパケットの通信パラメータと前記第１の検索条件および前記第３の検索条件の組とを比較し、前記第１のパケットの前記通信パラメータが前記第１の検索条件および前記第３の検索条件の組に一致すれば前記検索結果を出力し、
前記受信したパケットが前記第２のインタフェースで受信された第２のパケットである場合、前記第２のパケットの通信パラメータと前記第２の検索条件および前記第３の検索条件の組とを比較し、前記第２のパケットの前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば前記検索結果を出力する
請求項１〜３のいずれか１項に記載のパケット転送処理装置。
【請求項５】
前記検索処理部は、前記受信したパケットが前記第１のパケットである場合、前記第１のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第２の検索条件を出力し、前記受信したパケットが前記第２のパケットである場合、前記第２のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第１の検索条件を出力する
請求項４記載のパケット転送処理装置。
【請求項６】
パケットが第１のインタフェースと第２のインタフェースとの間で転送され、
前記検索テーブルに記憶される各パケット検索条件は、第１の検索条件，第２の検索条件および第３の検索条件を含み、
前記検索処理部は、前記受信したパケットが前記第１のインタフェースで受信されたか前記第２のインタフェースで受信されたかによらず、前記受信したパケットの通信パラメータと前記第１の検索条件および前記第３の検索条件の組とを比較するとともに、前記受信したパケットの前記通信パラメータと前記第２の検索条件および前記第３の検索条件の組とを比較し、前記通信パラメータが、前記第１の検索条件および前記第３の検索条件の組に一致するか、または、前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば、前記検索結果を出力する
請求項１〜３のいずれか１項に記載のパケット転送処理装置。
【請求項７】
前記検索処理部は、前記受信したパケットの通信パラメータが前記第１の検索条件および前記第３の検索条件の組に一致すれば、前記受信したパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第２の検索条件を出力し、前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば、前記変換後の通信パラメータとして前記第１の検索条件を出力する
請求項６記載のパケット転送処理装置。
【請求項８】
前記検索テーブルには、ＩＰｖ４用のパケット検索条件の各々が１個のエントリ領域上に記憶され、ＩＰｖ６用のパケット検索条件の各々が２個のエントリ領域上に記憶され、
前記ＩＰｖ６用のパケット検索条件は、ＩＰｖ６のパケットの通信パラメータが有する第１のパラメータ，第２のパラメータおよび第３のパラメータにそれぞれ対応した第１の検索条件，第２の検索条件および第３の検索条件を有し、前記２個のエントリ領域のうち、偶数番目のエントリ領域に前記第１の検索条件および前記第３の検索条件が記憶され、奇数番目のエントリ領域に前記第２の検索条件および前記第３の検索条件が記憶され、
前記検索処理部は、前記受信したパケットがＩＰｖ４のパケットか前記ＩＰｖ６のパケットかに応じて、前記ＩＰｖ４用のパケット検索条件の各々または前記ＩＰｖ６用のパケット検索条件の各々と前記受信したパケットの前記通信パラメータとを比較する
請求項１〜７のいずれか１項に記載のパケット転送処理装置。
【請求項９】
前記検索処理部は、
前記受信したパケットの前記通信パラメータと前記偶数番目のエントリ領域のパケット検索条件とを比較して第１の比較結果を出力する第１の比較部と、
前記通信パラメータと前記奇数番目のエントリ領域のパケット検索条件とを比較して第２の比較結果を出力する第２の比較部と、
前記第１の比較結果および前記第２の比較結果に基づいて、前記通信パラメータに一致するパケット検索条件が検索されたかどうか判定する判定部と
を備え、
前記受信したパケットが前記ＩＰｖ４のパケットである場合、
前記判定部は、前記第１の比較結果および前記第２の比較結果の少なくとも一つが一致を示していれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定し、
前記受信したパケットが前記ＩＰｖ６のパケットである場合、
前記第１の比較部は、前記偶数番目のエントリ領域のパケット検索条件と前記第１のパラメータおよび前記第３のパラメータの組とを比較するとともに、前記偶数番目のエントリ領域のパケット検索条件と前記第２のパラメータおよび前記第３のパラメータの組とを比較し、
前記第２の比較部は、前記奇数番目のエントリ領域のパケット検索条件と前記第１のパラメータおよび前記第３のパラメータの組とを比較するとともに、前記奇数番目のエントリ領域のパケット検索条件と前記第２のパラメータおよび前記第３のパラメータの組とを比較し、
前記判定部は、前記偶数番目のエントリ領域のパケット検索条件が前記第１のパラメータおよび前記第３のパラメータの組に一致し、かつ、前記奇数番目のエントリ領域のパケット検索条件が前記第２のパラメータおよび前記第３のパラメータの組に一致するか、または、前記奇数番目のエントリ領域のパケット検索条件が前記第１のパラメータおよび前記第３のパラメータの組に一致し、かつ、前記偶数番目のエントリ領域のパケット検索条件が前記第２のパラメータおよび前記第３のパラメータの組に一致すれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定する
請求項８記載のパケット転送処理装置。
【請求項１０】
複数のパケット検索条件を検索テーブルの複数のエントリ領域に記憶する検索テーブル記憶過程と、
パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理過程と、
前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理過程と、
前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を有効管理テーブルに記憶する有効管理テーブル記憶過程と
前記複数のエントリ領域の各々について、有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、対応するタイマにより計時動作を開始する計時過程と、
前記タイマが計時動作中のとき計時中であることを表す情報をタイムアウト管理テーブルに記憶させ、前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させるタイムアウト管理テーブル記憶過程と、
前記タイマの前記計時時間が前記タイムアウト時間を超えたとき、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効管理テーブル変更過程と、
通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる検索条件記憶過程と
を具備するパケット転送処理方法。
【請求項１１】
前記タイムアウト管理テーブル記憶過程は、
前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記検索テーブルの各エントリ領域に対応付けて設けられたタイムアウトレジスタの複数のビット領域のうち、前記タイマに対応するビット領域に記憶させるタイムアウトレジスタ記憶過程と、
前記タイムアウトレジスタの前記複数のビット領域を複数のグループに分割し、グループごとに各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを求める論理和データ算出過程と、
求められた複数の論理和データを、プロセッサが同時に処理可能なビット数ずつ複数のブロックに分割し、ブロックごとに各ブロックに含まれる論理和データを集約レジスタに集約して記憶させる集約過程と
を備え、
前記検索条件記憶過程は、
前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択するブロック選択過程と、
前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択するグループ選択過程と、
前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出するエントリ領域検出過程と
を備える
請求項１０記載のパケット転送処理方法。
【請求項１２】
前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報をメモリに順次記憶させる識別情報記憶過程を備え、
前記検索条件記憶過程は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする
請求項１０記載のパケット転送処理方法。
【請求項１３】
請求項１０〜１２のいずれか１項に記載のパケット転送処理方法をコンピュータに実行させるパケット転送処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＩＰ（Internet Protocol）網で使用されるルータ等のように、パケットフィルタリング機能を用いてパケットの転送処理を行うパケット転送処理装置、方法及びプログラムに関する。
本願は、２０１０年２月４日に日本へ出願された特願２０１０−０２３２５１号に対して優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
近年、インターネットに代表されるＩＰ網の利用拡大に伴い、企業及び家庭内にＬＡＮ（Local Area Network）を構築し、このＬＡＮをインターネット等を介して外部のネットワークに接続してパケット転送を行うことが多くなってきている。しかし、ＬＡＮに収容された端末を外部のネットワークに接続すると、外部のネットワークからの不正アクセスにより個人情報等の機密情報の漏えいや改竄が発生するおそれがあるため、ＬＡＮ内部のセキュリティの確保が重要な課題となっている。【０００３】
そこで従来では、ＬＡＮと外部ネットワークとの間でパケットを中継転送するルータ等のパケット転送処理装置に、パケットフィルタリング機能を持たせるようにしている。パケットフィルタリング機能は、入力されたパケットを予め設定されているフィルタリングルールと比較することにより、上記パケットの通過を許可するか否かを判定するものである。フィルタリングルールは、パケット転送に使用される通信パラメータ、例えば送信元アドレス、宛先アドレス、プロトコル、送信元ポート番号及び宛先ポート番号により定義される。【０００４】
ところで、パケットフィルタリング機能を実現するには、非常に多くのフィルタリングルールを検索ルールとして検索テーブルに記憶させる必要があるが、検索テーブルの記憶容量には限りがある。そこで、検索テーブルに記憶する検索ルールのエントリ数を減らすために、例えば以下のような装置が提案されている。
すなわち、通常はパケットを廃棄し必要なパケットのみ通過させる場合の検索ルールは、常に有効である必要は無く通信の開始から終了まで有効であればよい。そこで、検索テーブルに記憶された各検索ルールに対しそれぞれ各検索ルールの有効／無効を示す有効フラグを用意する。そして、通信開始時にＣＰＵ（Central Processing Unit）が検索テーブルに検索ルールを設定したときに、対応する有効フラグを“１”に設定して当該検索ルールを有効とする。一方、通信が終了すると上記有効フラグを“０”にリセットし、以後この検索ルールが使用されないようにして次の検索ルールの追加に備える。この状態で、新たに通信を開始する場合には、“０”に設定されている有効フラグに対応する検索ルール、つまり有効でないエントリを検索し、この使われていない検索ルールの代わりに新たな検索ルールを検索テーブルに設定する。このようにすると、検索テーブルのエントリの内容が動的に変更されることになり、少ないメモリ領域でより多くのパケットの検索が可能となる。【０００５】
具体的な検索回路としては、複数のルール比較部を並列に使用して受信パケットの通信パラメータとフィルタリングルールとを比較する回路がある。この回路は、パケットが受信されると、複数のルール比較部のうち処理が終了しているルール比較部に上記受信パケットの通信パラメータを振り分けて入力する。またそれと共に、検索テーブルからフィルタリングルールを１つ読み出すごとにこのフィルタリングルールを上記すべてのルール比較部に供給する。各ルール比較部は、受信パケットの通信パラメータが入力されるごとに、上記検索テーブルから順次読み出されるすべてのフィルタリングルールと比較する。そして、通信パラメータと一致するフィルタリングルールが検出されると、このフィルタリングルールを検索結果として出力する。なお、通信パラメータと一致するフィルタリングルールが複数検出された場合には優先度が最も高いフィルタリングルールを検索結果として出力する（例えば特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１６６５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、ＣＰＵが３２bitアーキテクチャであると、検索テーブルの空き領域を検索する場合、１度に３２個分の検索テーブルのエントリ領域しか調べることができない。検索テーブルのエントリ領域は例えば２０４８と多いため、ＣＰＵが検索テーブルの空き領域を検索する際には、依然として多くの処理ステップ数と時間が必要となる。【０００８】
さらに、通信終了後に該当する検索ルールを無効化するためには、通信が終了したか否かをＣＰＵで判定する必要がある。しかし、一般に検索テーブルに検索ルールが設定された後の通信期間中におけるパケット転送の可否判定は、ＣＰＵと独立して動作するパケット転送ブロックにより行われる。このため、通信期間中にはＣＰＵにパケットが転送されなくなり、ＣＰＵは通信期間の終了を検出することができなくなる。【０００９】
この発明は上記事情に着目してなされたもので、その目的とするところは、通信期間の終了を制御部が確実かつ効率よく検出できるようにすることで、検索テーブルにおける検索ルールの有効／無効の管理を効果的に行えるようにし、限りのある検索テーブルのエントリ領域をさらに有効に使用できるようにしたパケット転送処理装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、この発明の１つの観点は、複数のパケット検索条件を記憶する複数のエントリ領域を有する検索テーブルと、パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理部と、前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理部と、前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を記憶する有効管理テーブルと、前記複数のエントリ領域の各々に対応したタイマと、有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、前記タイマにより計時動作を開始するタイマ管理部と、前記タイマごとに、前記タイマが計時動作中であるかタイムアウトしたかを表す情報を記憶するタイムアウト管理テーブルと、前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させると共に、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効無効管理部と、通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる制御部とを具備するパケット転送処理装置である。【００１１】
したがってこの発明によれば、有効に設定されたパケット検索条件の各々について、当該パケット検索条件に該当するパケットが受信されない時間が一定時間以上続いてタイマがタイムアウトすると、タイムアウトを表す情報がタイムアウト管理テーブルに記憶される。このため、通信開始時に制御部は、上記タイムアウト管理テーブルに記憶された情報をもとに上記検索テーブル中の空きのエントリ領域を検出することが可能となり、この検出された空きエントリ領域に新たな検索条件を記憶させることができる。【００１２】
すなわち、通信期間中に制御部がパケット転送処理に関与しない場合でも、制御部は検索テーブル中の空きエントリ領域を把握して、検索テーブルにおけるパケット検索条件のエントリを動的に管理することが可能となる。これにより、検索テーブルのエントリ領域の利用効率が高められて、検索テーブルのメモリ量を削減することができる。【００１３】
また、この発明は以下のような態様を備えていてもよい。
第１の態様では、前記タイムアウト管理テーブルは、前記検索テーブルの各エントリ領域に対応付けて設けられた複数のビット領域を有し、前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記複数のビット領域のうち、前記タイマに対応するビット領域に記憶するタイムアウトレジスタと、前記タイムアウトレジスタの前記複数のビット領域を分割した複数のグループに対応付けて設けられ、各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを出力する複数の論理和回路と、前記複数の論理和回路を、前記制御部のプロセッサが同時に処理可能なビット数ずつ分割した複数のブロックに対応付けて設けられ、各ブロックに含まれる論理和回路から出力される論理和データを記憶する複数の集約レジスタとを備え、前記制御部は、前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択し、前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択し、前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出する。【００１４】
このようにすると、空きのエントリ領域を検出する際に、先ず集約レジスタに記憶された論理和データをもとにタイムアウトしたエントリ領域を含むグループが選択される。次に、この選択されたグループに属するビット領域のビットデータをもとに空きのエントリ領域が特定される。すなわち、空きのエントリ領域を特定する際の絞り込みが二段階に行われる。したがって、検索テーブルのすべてのエントリ領域について順次その有効／無効を判定する場合に比べ、空きのエントリ領域を特定するために要する処理ステップ及び時間が大幅に短縮される。【００１５】
第２の態様では、前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報を順次記憶するメモリを備え、前記制御部は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする。【００１６】
このようにすると、パケット検索条件が無効になるごとに、当該パケット検索条件が記憶されているエントリ領域を表す識別情報がメモリに順次記憶されるので、制御部はこのメモリを検索することにより空きのエントリ領域を容易に特定することができる。したがって、検索テーブルのエントリ領域又はタイムアウトレジスタのビット領域をサーチすることなく、さらに少ない処理ステップで短時間に空きのエントリ領域を特定することが可能となる。【００１７】
第３の態様では、パケットが第１のインタフェースと第２のインタフェースとの間で転送され、前記検索テーブルに記憶される各パケット検索条件は、第１の検索条件，第２の検索条件および第３の検索条件を含み、前記検索処理部は、前記受信したパケットが前記第１のインタフェースで受信された第１のパケットである場合、前記第１のパケットの通信パラメータと前記第１の検索条件および前記第３の検索条件の組とを比較し、前記第１のパケットの前記通信パラメータが前記第１の検索条件および前記第３の検索条件の組に一致すれば前記検索結果を出力し、前記受信したパケットが前記第２のインタフェースで受信された第２のパケットである場合、前記第２のパケットの通信パラメータと前記第２の検索条件および前記第３の検索条件の組とを比較し、前記第２のパケットの前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば前記検索結果を出力する。【００１８】
これにより、第１のインタフェースでパケットを受信した場合には、受信したパケットの通信パラメータと第１の検索条件および第３の検索条件の組とが一致すれば検索結果が出力される。また、第２のインタフェースでパケットを受信した場合には、受信したパケットの通信パラメータと第２の検索条件および第３の検索条件の組とが一致すれば検索結果が出力される。このため、検索テーブルの検索を双方向に行うことができる。したがって、検索テーブルのエントリ領域を減らすことができ、検索テーブルのメモリ容量が削減される。【００１９】
第４の態様では、前記検索処理部は、前記受信したパケットが前記第１のパケットである場合、前記第１のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第２の検索条件を出力し、前記受信したパケットが前記第２のパケットである場合、前記第２のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第１の検索条件を出力する。【００２０】
これにより、第１のインタフェースでパケットを受信した場合には、ネットワークアドレスポート変換による変換後の通信パラメータとして第２の検索条件を出力する。また、第２のインタフェースでパケットを受信した場合には、ネットワークアドレスポート変換による変換後の通信パラメータとして第１の検索条件を出力する。したがって、検索テーブルのエントリ領域の数を増やしたり、検索テーブルのエントリ領域に記憶されるパケット検索条件を増やしたりすることなく、ネットワークアドレスポート変換を実現できる。【００２１】
第５の態様では、パケットが第１のインタフェースと第２のインタフェースとの間で転送され、前記検索テーブルに記憶される各パケット検索条件は、第１の検索条件，第２の検索条件および第３の検索条件を含み、前記検索処理部は、前記受信したパケットが前記第１のインタフェースで受信されたか前記第２のインタフェースで受信されたかによらず、前記受信したパケットの通信パラメータと前記第１の検索条件および前記第３の検索条件の組とを比較するとともに、前記受信したパケットの前記通信パラメータと前記第２の検索条件および前記第３の検索条件の組とを比較し、前記通信パラメータが、前記第１の検索条件および前記第３の検索条件の組に一致するか、または、前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば、前記検索結果を出力する。【００２２】
これにより、受信したパケットの通信パラメータが第１の検索条件および第３の検索条件の組に一致するか、または、受信したパケットの通信パラメータが第２の検索条件および第３の検索条件の組に一致すれば、検索結果が出力される。このため、パケットがいずれのインタフェースで受信されたのかを判断することなく、検索テーブルの検索を双方向に行うことができる。したがって、検索テーブルのエントリ領域を減らすことができ、検索テーブルのメモリ容量が削減される。また、パケットが受信されたインタフェースに応じて検索テーブルの検索を行う場合に比べて、パケット検索条件の数を１／２にすることができる。したがって、必要とされるパケット検索条件の数が多い場合に特に有効である。【００２３】
第６の態様では、前記検索処理部は、前記受信したパケットの通信パラメータが前記第１の検索条件および前記第３の検索条件の組に一致すれば、前記受信したパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第２の検索条件を出力し、前記通信パラメータが前記第２の検索条件および前記第３の検索条件の組に一致すれば、前記変換後の通信パラメータとして前記第１の検索条件を出力する。【００２４】
これにより、通信パラメータが第１の検索条件および第３の検索条件の組に一致すれば、ネットワークアドレスポート変換による変換後の通信パラメータとして第２の検索条件を出力する。また、通信パラメータが第２の検索条件および第３の検索条件の組に一致すれば、変換後の通信パラメータとして第１の検索条件を出力する。したがって、検索テーブルのエントリ領域の数を増やしたり、検索テーブルのエントリ領域に記憶されるパケット検索条件を増やしたりすることなく、ネットワークアドレスポート変換を実現できる。【００２５】
第７の態様では、前記検索テーブルには、ＩＰｖ４用のパケット検索条件の各々が１個のエントリ領域上に記憶され、ＩＰｖ６用のパケット検索条件の各々が２個のエントリ領域上に記憶され、前記ＩＰｖ６用のパケット検索条件は、ＩＰｖ６のパケットの通信パラメータが有する第１のパラメータ，第２のパラメータおよび第３のパラメータにそれぞれ対応した第１の検索条件，第２の検索条件および第３の検索条件を有し、前記２個のエントリ領域のうち、偶数番目のエントリ領域に前記第１の検索条件および前記第３の検索条件が記憶され、奇数番目のエントリ領域に前記第２の検索条件および前記第３の検索条件が記憶され、前記検索処理部は、前記受信したパケットがＩＰｖ４のパケットか前記ＩＰｖ６のパケットかに応じて、前記ＩＰｖ４用のパケット検索条件の各々または前記ＩＰｖ６用のパケット検索条件の各々と前記受信したパケットの前記通信パラメータとを比較する。【００２６】
これにより、ＩＰｖ４のパケットを受信したかＩＰｖ６のパケットを受信したかに応じて、１個のエントリ領域上に記憶されたＩＰｖ４用の各パケット検索条件と受信したＩＰｖ４のパケットの通信パラメータとを比較し、あるいは、２個のエントリ領域上に記憶されたＩＰｖ６用の各パケット検索条件と受信したＩＰｖ６のパケットの通信パラメータとを比較する。ＩＰｖ６のパケットの場合には、第１のパラメータおよび第３のパラメータの組と偶数番目のエントリ領域に記憶された第１の検索条件および第３の検索条件の組とが比較されるとともに、第２のパラメータおよび第３のパラメータの組と奇数番目のエントリ領域に記憶された第２の検索条件および第３の検索条件の組とが比較される。したがって、ＩＰｖ４パケットとＩＰｖ６パケットが混在した環境において、ＩＰｖ４用のパケット検索条件とＩＰｖ６用のパケット検索条件を同一の検索テーブル上に記憶させることが可能となる。このため、ＩＰｖ４パケット用の検索テーブルとＩＰｖ６パケット用の検索テーブルを別々に設けた場合に比べて、検索テーブル全体のメモリ容量を削減することができ、検索テーブルのメモリ容量を最適化できる。【００２７】
第８の態様では、前記検索処理部は、前記受信したパケットの前記通信パラメータと前記偶数番目のエントリ領域のパケット検索条件とを比較して第１の比較結果を出力する第１の比較部と、前記通信パラメータと前記奇数番目のエントリ領域のパケット検索条件とを比較して第２の比較結果を出力する第２の比較部と、前記第１の比較結果および前記第２の比較結果に基づいて、前記通信パラメータに一致するパケット検索条件が検索されたかどうか判定する判定部とを備え、前記受信したパケットが前記ＩＰｖ４のパケットである場合、前記判定部は、前記第１の比較結果および前記第２の比較結果の少なくとも一つが一致を示していれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定し、前記受信したパケットが前記ＩＰｖ６のパケットである場合、前記第１の比較部は、前記偶数番目のエントリ領域のパケット検索条件と前記第１のパラメータおよび前記第３のパラメータの組とを比較するとともに、前記偶数番目のエントリ領域のパケット検索条件と前記第２のパラメータおよび前記第３のパラメータの組とを比較し、前記第２の比較部は、前記奇数番目のエントリ領域のパケット検索条件と前記第１のパラメータおよび前記第３のパラメータの組とを比較するとともに、前記奇数番目のエントリ領域のパケット検索条件と前記第２のパラメータおよび前記第３のパラメータの組とを比較し、前記判定部は、前記偶数番目のエントリ領域のパケット検索条件が前記第１のパラメータおよび前記第３のパラメータの組に一致し、かつ、前記奇数番目のエントリ領域のパケット検索条件が前記第２のパラメータおよび前記第３のパラメータの組に一致するか、または、前記奇数番目のエントリ領域のパケット検索条件が前記第１のパラメータおよび前記第３のパラメータの組に一致し、かつ、前記偶数番目のエントリ領域のパケット検索条件が前記第２のパラメータおよび前記第３のパラメータの組に一致すれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定する。【００２８】
これにより、ＩＰｖ４のパケットを受信した場合には、受信したパケットの通信パラメータと偶数番目のエントリ領域のパケット検索条件が一致するか、または、通信パラメータと奇数番目のエントリ領域のパケット検索条件が一致していれば、通信パラメータに一致するパケット検索条件が検索されたと判定する。また、ＩＰｖ６のパケットを受信した場合には、偶数番目のエントリ領域のパケット検索条件が第１のパラメータおよび第３のパラメータの組に一致し、かつ、奇数番目のエントリ領域のパケット検索条件が第２のパラメータおよび第３のパラメータの組に一致するか、または、奇数番目のエントリ領域のパケット検索条件が第１のパラメータおよび第３のパラメータの組に一致し、かつ、偶数番目のエントリ領域のパケット検索条件が第２のパラメータおよび第３のパラメータの組に一致すれば、通信パラメータに一致するパケット検索条件が検索されたと判定する。したがって、ＩＰｖ４パケットとＩＰｖ６パケットが混在する場合にも、ＩＰｖ４パケットおよびＩＰｖ６パケットに共通の回路を用いながら検索テーブルの検索を行うことができる。また、偶数番目のエントリ領域に対する検索と奇数番目のエントリ領域に対する検索が平行して行われるため、高速な検索を実現することができる。【００２９】
また、この発明の別の観点は、上述したパケット転送処理装置に対応したパケット転送処理方法である。
さらに、この発明のさらに別の観点は、かかるパケット転送処理方法をコンピュータに実行させるためのパケット転送処理プログラムである。
【発明の効果】
【００３０】
すなわちこの発明によれば、通信期間の終了を制御部が確実かつ効率よく検出できるようになる。これにより、検索テーブルにおける検索ルールの有効／無効の管理を効果的に行えるようになって、限りのある検索テーブルのエントリ領域をさらに有効に使用することが可能なパケット転送処理装置、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００３１】
【図１】この発明の第１の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。
【図２】図１に示したパケット転送処理装置の検索部及び検索テーブルの構成を示すブロック図である。
【図３】図２に示したタイマ管理部が、有効管理テーブルの有効ビットを保持するときの処理手順と処理内容を示すフローチャートである。
【図４】図２に示したタイマ管理部が、有効管理テーブルの有効ビットを無効ビットに変更するときの処理手順と処理内容を示すフローチャートである。
【図５】図４に示したビット変更処理に対しデクリメントの開始を要求するための処理手順と処理内容を示すフローチャートである。
【図６Ａ】図２に示したタイムアウト管理テーブルに設けられる集計レジスタの構成をエントリタイムアウトレジスタとともに示す図である。
【図６Ｂ】図１に示した検索部にＦＩＦＯメモリを設けた場合におけるパケット転送処理装置の検索部及び検索テーブルの第１の構成例を示すブロック図である。
【図６Ｃ】図１に示した検索部にＦＩＦＯメモリを設けた場合におけるパケット転送処理装置の検索部及び検索テーブルの第２の構成例を示すブロック図である。
【図７Ａ】この発明の第２の実施形態におけるエントリ検索テーブルの第１の構成例を示す図である。
【図７Ｂ】この発明の第２の実施形態におけるエントリ検索テーブルの第２の構成例を示す図である。
【図８】この発明の第２の実施形態におけるエントリ検索テーブルの第３の構成例を示す図である。
【図９】図８に示した検索テーブルを使用する場合の検索部の構成と処理内容を示す図である。
【図１０】この発明のその他の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３２】
以下、図面を参照してこの発明に係わる実施形態を説明する。
（第１の実施形態）
図１は、この発明の第１の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。このパケット転送処理装置は、パケット転送部１０と、このパケット転送部１０に対しバス３０を介して接続される中央処理ユニット（ＣＰＵ；Central Processing Unit）を備えた制御部２０とを備えている。
【００３３】
パケット転送部１０は、フレーム受信部１、バッファ管理部２、パケットバッファ３、パーサ４、検索テーブル５、検索部６、ＱｏＳ（Quality of Service）部７、フレーム生成部８及びフレーム送信部９を備える。なお、これらの処理部は集積化されてパケット転送部１０は１個のＬＳＩ（Large Scale Integration）により構成される。
【００３４】
パケット転送部１０は、図示しない受信インタフェースから入力された受信パケットをフレーム受信部１によりフレーム毎に受信し、この受信したパケットをバッファ管理部２を介してパケットバッファ３に記憶させると共にパーサ４に供給する。パーサ４は、上記供給された受信パケットのヘッダを解析し、このヘッダに挿入されている通信パラメータ、つまり送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号及びプロトコルといった検索部６で用いられるパラメータをＪＯＢ情報として検索部６に与える。
【００３５】
検索部６は、上記パーサ４からＪＯＢ情報として与えられた受信パケットの通信パラメータを検索テーブル５に予め記憶した複数の検索条件（パケット検索条件）と順次比較し、通信パラメータと一致する検索条件が見つかると、当該検索条件に対応する検索結果を表す情報を検索テーブル５から読み出してＱｏＳ部７に供給する。
【００３６】
ＱｏＳ部７は、上記供給された検索結果を表す情報をもとに上記受信パケットが通過対象か又は廃棄対象かを判定する。この判定の結果、上記受信パケットが廃棄対象であれば、ＱｏＳ部７は、バッファ管理部２に対し削除指示を与えてパケットバッファ３から該当するパケットを削除させると共に、上記ＪＯＢ情報を削除する。これに対し、上記受信パケットが通過対象であれば、ＱｏＳ部７は、ＪＯＢ情報を当該ＪＯＢ情報から得られる品質クラスに従った図示しないキューに蓄積する。そして、スケジューリング処理により上記パケットの送信機会が得られると、ＱｏＳ部７は、送出フレーム情報をフレーム生成部８に供給する。フレーム生成部８は、バッファ管理部２を介して、パケットバッファ３から該当するパケットを読み出し、このパケットのヘッダのＭＡＣ（Media Access Control）アドレス及びＩＰアドレス等を書き換えたのち、フレーム送信部９へ出力する。フレーム送信部９は、上記供給されたパケットを図示しない送信側の回線インタフェースへ出力する。
【００３７】
ところで、上記検索テーブル５及び検索部６は次のように構成される。図２はそれらの構成を示すブロック図である。
先ず検索テーブル５は、有効管理テーブル５１と、エントリ検索テーブル５２と、エントリ結果テーブル５３とを備えている。エントリ検索テーブル５２は、一例として２０４８個のエントリ領域を有し、これらのエントリ領域にそれぞれ制御部２０の制御の下で検索条件が記憶される。
【００３８】
検索条件は、例えばパケットフィルタリングやネットワークアドレスポート変換（ＮＡＰＴ）検索、経路キャッシュ検索に用いられる、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号、ＵＤＰ（User Datagram Protocol）やＴＣＰ（Transmission Control Protocol）等のプロトコルにより表される。なお、検索条件としては、これらの他に、経路検索に用いられるようにマスク或いはプレフィックス指定されたＩＰアドレス／ポート番号や、ＩＣＭＰ（Internet Control Message Protocol）コード番号やフラグメントパケット情報の有無を用いてもよい。要するにパケットを識別するための情報であれば如何なる情報でも適用可能である。
なお、図２に示したエントリ検索テーブルでは、理解を容易にするために、プロトコル番号に対応したプロトコルの名称（ｔｃｐ，ｕｄｐ）を示してあるが、実際にはプロトコル番号が格納される。このことは、これ以降に説明する図中に示されたエントリ検索テーブルについても同様である。
【００３９】
有効管理テーブル５１は、上記エントリ検索テーブル５２の各エントリ領域に対応して２０４８個の有効ビット領域を有する。これらの有効ビット領域には、それぞれ制御部２０の制御の下で上記エントリ検索テーブル５２のエントリ領域に記憶された検索条件が有効であるか無効であるかを表す有効／無効ビット（有効／無効フラグ）が記憶される。図２では有効ビットを“１”、無効ビットを“０”とした場合を例示している。
【００４０】
エントリ結果テーブル５３は、上記エントリ検索テーブル５２の各エントリ領域に対応して、２０４８個の通過／廃棄ビット領域と、変換アドレス領域を設けたものである。通過／廃棄ビット領域にはパケットを通過させるか或いは破棄するかを指定する通過／廃棄ビットが記憶される。変換アドレス領域には、受信パケットを通過させる際にそのヘッダのアドレスを変換するための変換アドレスが記憶される。なお、通過／廃棄ビット領域及び変換アドレス領域への通過／廃棄ビット及び変換アドレスの記憶処理も、制御部２０の制御の下で行われる。
【００４１】
次に検索部６は、検索処理部６１と、タイマ管理部６２と、更新タイマ管理部６３と、更新タイマ管理テーブル６４と、管理タイマレジスタテーブル６５と、タイムアウト管理テーブル６６を備えている。
検索処理部６１は、上記エントリ検索テーブル５２に記憶されている複数の検索条件のうち、有効管理テーブル５１上で有効ビット“１”が設定された有効ビット領域に対応する検索条件と受信パケットの通信パラメータとを順次比較し、通信パラメータと一致する検索条件が見つかると、当該検索条件に対応する通過／廃棄ビット及び変換アドレスをエントリ結果テーブル５３から読み出して出力する処理を、実行する。
【００４２】
更新タイマ管理部６３は、更新タイマ管理テーブル６４に設けられたカウンタ６４２を使用してシステムクロックをカウントし、そのカウント値が更新タイマ管理テーブル６４のタイマ値レジスタ６４１に記憶された値に達するごとに、タイマ管理部６２に対しデクリメント要求を出力する。
【００４３】
管理タイマレジスタテーブル６５は、管理タイマレジスタ６５１と、管理タイマ閾値レジスタ６５２を備えている。管理タイマレジスタ６５１には、上記エントリ検索テーブル５２のエントリ領域に対応する２０４８個のタイマレジスタ領域が設けられ、これらのタイマレジスタ領域にタイマのカウント値が記憶される。管理タイマ閾値レジスタ６５２には、上記タイマの最大カウント値（タイムアウト値）が記憶される。
【００４４】
タイマ管理部６２は、エントリ検索テーブル５２に記憶された検索条件が使用中かどうかをタイマを用いて監視するもので、以下の処理を行う機能を有する。
(1) 有効管理テーブル５１上で有効ビット“１”が設定されたとき、有効ビット領域に対応した検索条件に対応するタイマレジスタ領域に、管理タイマ閾値レジスタ６５２の最大カウント値をセットし、上記更新タイマ管理部６３からデクリメント要求が出力されるごとに上記タイマレジスタ領域のカウント値をデクリメントする処理。
【００４５】
(2) 上記デクリメント処理の実行期間中、つまりタイマの計時中に、上記検索処理部６１から受信パケットの通信パラメータが検索条件と一致したことを表す一致情報が通知されると、この時点で上記タイマレジスタ領域のカウント値を管理タイマ閾値レジスタ６５２の最大カウント値に戻す処理。
【００４６】
(3) 上記デクリメント処理の実行期間中に、上記検索処理部６１から一致情報が通知されずに上記タイマレジスタ領域のカウント値が「−１」になると、これをタイムアウトと見なして、管理タイマレジスタ６５１の該当するタイマ値を「０」に設定し、さらにタイムアウト管理テーブル６６内の対応するエントリタイムアウトレジスタ６６１に、タイムアウトしたことを表す情報“１”を記憶させる処理。
【００４７】
次に、以上のように構成されたパケット転送処理装置による検索条件の使用状況監視動作を説明する。図３乃至図５はタイマ管理部６２の処理手順と処理内容を示すフローチャートである。
タイマ管理部６２は、図３に示すようにステップＳ５１において、対応する有効ビット領域に有効ビット“１”が設定されている検索条件に対するアクセスを監視すると共に、ステップＳ５２において検索処理部６１からの有効な検索結果の出力を監視している。この状態で、例えば通信開始に伴い有効管理テーブル５１に“１”又は“０”が書き込まれるか、或いは検索処理部６１から有効な検索結果が通知されたとする。
【００４８】
そうするとタイマ管理部６２は、処理をステップＳ５３に移行して管理タイマレジスタテーブル６５に対するアクセスが可能か否かを判定し、アクセスが不可能であればアクセス可能になるまで待機する。この状態で、管理タイマレジスタ６５１のタイマ値のデクリメント処理等が終了し、管理タイマレジスタテーブル６５に対するアクセスが可能になると、タイマ管理部６２は処理をステップＳ５４に移行し、管理タイマレジスタ６５１の該当するタイマレジスタ領域に管理タイマ閾値レジスタ６５２の最大カウント値、例えば図２では“２００”をタイマ値としてセットする。
【００４９】
以上述べた管理タイマレジスタ６５１へのタイマ値のセットは、後述するタイマの計時期間中に、有効管理テーブル５１に“１”又は“０”が書き込まれるか、或いは検索処理部６１から有効な検索結果が通知された場合にも行われる。すなわち、タイマは、有効管理テーブル５１の該当する有効ビット領域に“１”又は“０”が書き込まれるか、或いは検索処理部６１から有効な検索結果が通知されるごとに、最初から計時動作をやり直す。
【００５０】
更新タイマ管理部６３は、図５に示すように先ずカウンタ６４２をリセットした後、ステップＳ７１により当該カウンタ６４２を使用してシステムクロックのカウントを開始し、そのカウント値がタイマ値レジスタ６４１に記憶された値に達したか否かをステップＳ７２により監視する。そして、カウンタ６４２のカウント値がタイマ値レジスタ６４１のタイマ値“１３３００００００”に達すると、更新タイマ管理部６３は、ステップＳ７３によりタイマ管理部６２に対しデクリメント要求を出力する。以後、上記ステップＳ７１〜ステップＳ７３の処理を繰り返す。したがって、更新タイマ管理部６３からは、上記タイマ値とシステムクロックの周期により決まる時間間隔でデクリメント要求が出力される。例えば、システムクロックが１３３ＭＨｚで、かつタイマ値が“１３３００００００”であれば、更新タイマ管理部６３からは１秒ごとにデクリメント要求が出力される。
【００５１】
タイマ管理部６２は、上記更新タイマ管理部６３からデクリメント要求が出力されるごとに、以下のようにタイマ値のデクリメント処理、つまりタイマの計時処理を実行する。すなわち、タイマ管理部６２は、図４に示すように先ずステップＳ６１により管理タイマレジスタ６５１のエントリ番号を「０」に初期設定した後、ステップＳ６２においてエントリ番号が最大値「２０４７」＋１である「２０４８」に達したか否かを判定する。
【００５２】
そして、エントリ番号が最大値＋１である「２０４８」に達していなければ、タイマ管理部６２は、ステップＳ６３において管理タイマレジスタテーブル６５に対するアクセスが可能か否かを判定し、アクセスが不可能であればアクセス可能になるまで待機する。この状態で、管理タイマレジスタ６５１へのタイマの最大カウント値の設定処理等が終了し、管理タイマレジスタテーブル６５に対するアクセスが可能になると、タイマ管理部６２は処理をステップＳ６４に移行し、管理タイマレジスタ６５１のエントリ番号「０」に対応するタイマレジスタ領域のカウント値、つまりタイマ値をデクリメント（−１）する。そして・BR>Aタイマ管理部６２は、このデクリメント後のカウント値が“０”以上であるか否かをステップＳ６５で判定する。デクリメント後のカウント値が“０”以上であれば、タイマ管理部６２は、処理をステップＳ６６に移行して、タイムアウト管理テーブル６６の該当するエントリタイムアウトレジスタ６６１の領域に、まだ計時中であることを示す“０”を記憶させる。
【００５３】
そうしてエントリ番号「０」に対応するタイマのデクリメント処理が終了すると、次にタイマ管理部６２はステップＳ６８によりエントリ番号をインクリメント（＋１）して処理をステップＳ６２に戻す。そして、ステップＳ６２〜ステップＳ６６およびステップＳ６８によりエントリ番号「１」のタイマのデクリメント処理を実行する。以後同様に、タイマ管理部６２は、ステップＳ６２においてエントリ番号が最大値である「２０４７」を超えるまで、上記ステップＳ６２〜ステップＳ６６およびステップＳ６８により各エントリ番号に対応するタイマ値のデクリメント処理を繰り返し実行する。そして、エントリ番号が「２０４７」を超えると、タイマ管理部６２はデクリメント処理を終了する。
【００５４】
さて、上記デクリメント処理の結果、あるエントリ番号に対応するタイマ値が「−１」になったとする。タイマ管理部６２は、このタイマ値が「−１」になったことをステップＳ６５で検出すると、これをタイムアウトと見なして、ステップＳ６７により管理タイマレジスタ６５１の該当するタイマ値を「０」に設定し、さらにタイムアウト管理テーブル６６内の対応するエントリタイムアウトレジスタ６６１に、タイマがタイムアウトしたことを表す情報“１”を記憶させる。
【００５５】
制御部２０は、上記タイムアウト管理テーブル６６のエントリタイムアウトレジスタ６６１に記憶された情報、つまりタイマが計時中であるか又はタイムアウトしたかを表す情報に基づいて、有効管理テーブル５１の有効ビット領域を変更する処理を実行する。またそれと共に、制御部２０は、エントリ検索テーブル５２から空きエントリ領域を検出して、この空きエントリ領域に新たな通信のための検索条件を設定する処理を実行する。
【００５６】
この空きエントリ領域の検出及び検索条件の設定を行うための構成及び方法には、次の２つが考えられる。
第１の構成及び方法は、タイムアウト管理テーブル６６に集計レジスタを設け、制御部２０がこの集計レジスタの出力をもとに空きエントリ領域を特定するものである。図６Ａは、この場合における集計レジスタ６７の構成をエントリタイムアウトレジスタ６６１とともに示す回路図である。
【００５７】
すなわち、エントリタイムアウトレジスタ６６１の２０４８個のビット領域は複数のグループに分割され、これらのグループごとに論理和回路６７１−０〜６７１−６３（以下、これらを総称して論理和回路６７１と呼ぶ）が設けられている。これらの論理和回路６７１はそれぞれ、上記エントリタイムアウトレジスタ６６１の該当グループに属するビット領域からタイムアウトの有無を表すビットデータを取り込み、これらのビットデータの論理和データを出力する。上記論理和回路６７１はさらに複数のブロックに分割され、これらのブロックごとにタイムアウト集約レジスタ６７２−０および６７２−１が設けられている。これらのタイムアウト集約レジスタ６７２−０および６７２−１には、当該ブロックにそれぞれ属する上記論理和回路６７１−０〜６７１−３１および論理和回路６７１−３２〜６７１−６３からそれぞれ出力された論理和データが記憶される。このとき、上記論理和回路６７１のブロック分けにおいては、各ブロックにおける論理和データのビット数が制御部２０のＣＰＵのアーキテクチャに応じて決定される。例えば、ＣＰＵが３２bitアーキテクチャであれば、論理和回路６７１は３２個が１ブロックとなるように分けられる。
【００５８】
制御部２０は、先ず上記タイムアウト集約レジスタ６７２−０および６７２−１からそれぞれ３２個分の論理回路６７１−０〜６７１−３１の論理和データおよび３２個分の論理和回路６７１−３２〜６７１−６３の論理和データを読み出し、これらの論理和データの中にタイマがタイムアウトしたことを表すビット“１”が含まれているか否かを判定する。例えば、制御部２０は、各タイムアウト集約レジスタの値が「０」か否かを判定する。この判定の結果、タイマがタイムアウトしたことを表すビット“１”が含まれるブロックが見つかると、制御部２０は、次にその論理和データからタイムアウトビット“１”のビット位置を特定して、この特定したビット位置が属するグループを選択する。そして、制御部２０は、この選択されたグループに属する上記エントリタイムアウトレジスタ６６１のビット領域からビットデータを読み出し、この読み出したビットデータをもとにタイムアウトしたエントリ領域を空きエントリ領域として検出する。
【００５９】
制御部２０は、エントリ検索テーブル５２内の、上記空きエントリ領域として検出されたエントリ領域に、新たな通信に必要な検索条件を書き込む。またそれと共に、制御部２０は、エントリ結果テーブル５３内の上記エントリ領域と対応する領域に通過／廃棄情報及び変換アドレスを書き込む。さらに、制御部２０は、有効管理テーブル５１内の上記エントリ領域と対応する有効ビット領域に、有効ビット“１”を書き込む。
【００６０】
第２の構成及び方法は、タイムアウトしたタイマに対応するエントリ領域の番号をＦＩＦＯ（First in First out）メモリを用いて管理するものである。
すなわち、図６Ｂに示したように、検索部６′のタイムアウト管理テーブル６６′内にＦＩＦＯメモリ６８が設けられる。あるいは、図６Ｃに示したように、タイムアウト管理テーブル６６とは独立して検索部６"内にＦＩＦＯメモリ６８が設けられる。そして、タイマ管理部６２は、タイマがタイムアウトしたときに、このタイムアウトしたタイマに対応するエントリ領域の番号（識別情報）を上記ＦＩＦＯメモリ６８に記憶させる。
【００６１】
制御部２０は、空きエントリ領域を特定する際に、上記ＦＩＦＯメモリ６８からその記憶順序の早いエントリ領域の番号を読み出し、この読み出した番号により表されるエントリ領域を空きエントリ領域として特定する。そして、制御部２０は、エントリ検索テーブル５２内の、上記空きエントリ領域として検出されたエントリ領域に、新たな通信に必要な検索条件を書き込む。またそれと共に、制御部２０は、エントリ結果テーブル５３内の上記エントリ領域と対応する領域に通過／廃棄情報及び変換アドレスを書き込む。さらに、制御部２０は、有効管理テーブル５１内の上記エントリ領域と対応する有効ビット領域に、有効ビット“１”を書き込む。
【００６２】
以上詳述したようにこの実施形態では、エントリ検索テーブル５２の各エントリ領域に対応してその使用時間を監視するためのタイマを管理タイマレジスタ６５１に設ける。そして、タイマ管理部６２の制御の下で、有効管理テーブル５１に“１”又は“０”が書き込まれるか或いは検索処理部６１から有効な検索結果が通知されるごとに、上記タイマに計時動作を開始させる。また、上記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、そのタイムアウトした旨の情報をタイムアウト管理テーブル６６の該当するレジスタ領域に記憶させるようにしている。
【００６３】
したがって、制御部２０は、通信開始時に上記タイムアウト管理テーブル６６に記憶されたタイムアウトの結果を表す情報をもとに、上記エントリ検索テーブル５２中の空きエントリ領域を特定することが可能となり、この検出された空きエントリ領域にこれ以降の通信に必要な検索条件を記憶させることができる。
【００６４】
このため、通信期間中に制御部２０がパケット転送処理に関与しない場合でも、制御部２０はエントリ検索テーブル５２中の空きエントリ領域を把握して、エントリ検索テーブル５２における検索条件のエントリを動的に管理することが可能となる。この結果、エントリ検索テーブル５２のエントリ領域の利用効率は高められ、エントリ検索テーブル５２のメモリ容量を削減することができる。
【００６５】
しかもこの実施形態では、タイムアウト管理テーブル６６に集計レジスタ６７を設け、制御部２０がこの集計レジスタ６７の出力をもとに空きエントリ領域を特定するようにしている。このため、空きエントリ領域を特定する際に制御部２０は、空きのエントリ領域を特定する際の絞り込みを二段階に行うことができる。したがって、エントリ検索テーブル５２のすべてのエントリ領域について順にその有効／無効を判定する場合に比べ、空きのエントリ領域を特定するために要する処理ステップ及び時間を大幅に短縮することができる。例えば、エントリ検索テーブルが２０４８個のエントリ領域を備える場合、タイムアウトしたエントリ領域の検索には、従来であれば最長６４（０でない３２bitレジスタを検索）＋３２（０でない３２bitレジスタ内のビット検索）＝９６ステップの処理が必要である。これに対して、本実施形態であれば、処理に必要なステップ数を１＋３２＋３２＝６５ステップに削減することが可能となる。
【００６６】
また、タイムアウトしたタイマに対応するエントリ領域の番号をＦＩＦＯメモリ６８を用いて管理すると、制御部２０はこのＦＩＦＯメモリ６８からエントリ領域の番号を読み出すだけで、空きエントリ領域の探索処理を行うことなく、空きエントリ領域をさらに簡単かつ短時間に特定することができる。
【００６７】
（第２の実施形態）
次に、この発明の第２の実施形態として、エントリ検索テーブルのメモリ容量を削減するための実施形態を説明する。
第２の実施形態は、ＮＡＰＴ（Network Address Port translation）やパケットフィルタリングを行う場合のエントリ検索テーブルに対する検索処理を、双方向検索により行うようにしたものである。
【００６８】
図７Ａは、双方向検索に対応するエントリ検索テーブルの構成例を示すものである。なお、ここでは２つのインタフェース間でパケットが転送されることを想定し、それぞれのインタフェースをインタフェース０／インタフェース１として説明を行う。また、この実施形態においてもエントリ検索テーブル等には図２に示した符号を使用して説明を行う。
【００６９】
インタフェース０で受信されたパケットの通信パラメータと一致する検索条件をエントリ検索テーブル５２から検索する場合には、検索処理部６１は、受信パケットのヘッダに含まれる宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号／プロトコル番号を、エントリ検索テーブル５２のエントリ領域に検索条件として記憶されたＩＰアドレス０／ＩＰアドレス１／ポート番号０／ポート番号１／プロトコル番号と比較する。
【００７０】
パケットフィルタリングやパケット分類のためにこの検索条件を使用する場合には、ＱｏＳ部７は、上記通信パラメータと一致した検索条件に対応付けられたエントリ結果テーブル５３の内容に従い、受信パケットに対し通過／廃棄／クラス分け等の処理を行う。
ＮＡＰＴの場合には、ＩＰアドレス２／ＩＰアドレス３，ポート番号２／ポート番号３が、ＮＡＰＴ変換後の宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号として使われる。
【００７１】
逆に、インタフェース１で受信されたパケットの通信パラメータと一致する検索条件を検索する場合には、検索処理部６１は、受信パケットのヘッダに含まれる宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号／プロトコル番号を、エントリ検索テーブル５２に検索条件として記憶されたＩＰアドレス３／ＩＰアドレス２／ポート番号３／ポート番号２／プロトコル番号と比較する。そして、ＱｏＳ部７は、通信パラメータに一致した検索条件と対応付けてエントリ結果テーブル５３に記憶された通過／廃棄情報に従い、当該受信パケットに対する処理を決定する。
【００７２】
ＮＡＰＴの場合には、ＩＰアドレス１／ＩＰアドレス０／ポート番号１／ポート番号０が、それぞれＮＡＰＴ変換後の宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号として使われる。
このようにエントリ検索テーブル５２のエントリ領域に記憶された検索条件に対し双方向に検索することで、エントリ検索テーブル５２のエントリ領域を減らす。これにより、エントリ検索テーブル５２のメモリ容量を削減することができる。
【００７３】
エントリ検索テーブル５２のメモリ容量をさらに削減するためのエントリ検索テーブルの構成を図７Ｂに示す。
インタフェース０で受信されたパケットのヘッダに含まれる通信パラメータと一致する検索条件をエントリ検索テーブル５２から検索する場合、検索処理部６１は、受信されたパケットのヘッダに含まれる宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号／プロトコル番号を、エントリ検索テーブル５２に検索条件として記憶されたＩＰアドレス１／ＩＰアドレス０／ポート番号１／ポート番号０／プロトコル番号と比較する。
この場合も、先に述べた図７Ａの場合と同様に、ＱｏＳ部７は、通信パラメータと一致した検索条件に対応付けてエントリ結果テーブル５３に記憶されている通過／廃棄情報に従い、当該受信パケットの動作を決定する。
ＮＡＰＴの場合には、ＩＰアドレス２／ポート番号２がＮＡＰＴ変換後の宛先ＩＰアドレス／宛先ポート番号として使われる。
【００７４】
逆に、インタフェース１で受信されたパケットのヘッダに含まれる通信パラメータに一致する検索条件をエントリ検索テーブル５２から検索する場合には、検索処理部６１は、受信されたパケットのヘッダに通信パラメータとして含まれる宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号／プロトコル番号を、エントリ検索テーブル５２に検索条件として記憶されたＩＰアドレス０／ＩＰアドレス２／ポート番号０／ポート番号２／プロトコル番号と比較する。この場合も、先に述べた図７Ａの場合と同様に、ＱｏＳ部７は、通信パラメータと一致した検索条件に対応付けてエントリ結果テーブル５３に記憶されている通過／廃棄情報に従い、当該受信パケットの動作を決定する。
【００７５】
ＮＡＰＴの場合には、ＩＰアドレス１／ポート番号１がＮＡＰＴ変換後の送信元ＩＰアドレス／送信元ポート番号として使われる。
このようにすることで、エントリ検索テーブル５２のエントリ領域をさらに減らして、メモリ容量を削減することができる。
【００７６】
なお、エントリ検索テーブル５２の検索は、パケットがどのインタフェースで受信されたものなのかを判定することなく行うことも可能である。
例えば、受信されたパケットのヘッダに通信パラメータとして挿入された宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号／プロトコル番号を、検索条件Ａ（エントリ検索テーブル５２のＩＰアドレス０／ＩＰアドレス１／ポート番号０／ポート番号１／プロトコル番号）、及び検索条件Ｂ（エントリ検索テーブル５２のＩＰアドレス３／ＩＰアドレス２／ポート番号３／ポート番号２／プロトコル番号）とそれぞれ比較する。
【００７７】
そして、パケットフィルタリングやパケット分類を目的として上記検索条件を使用して検索する場合には、受信パケットの通信パラメータが上記いずれかの検索条件と一致した場合に、ＱｏＳ部７は、この一致した検索条件に対応付けてエントリ結果テーブル５３に記憶された通過／廃棄情報に従い、通過／廃棄／クラス分け等を行う。
【００７８】
ＮＡＰＴの場合には、通信パラメータと一致した検索条件に応じてパケットの書き換え情報が変わる。例えば、通信パラメータが検索条件Ａに一致した場合には、ＩＰアドレス２／ＩＰアドレス３／ポート番号２／ポート番号３がＮＡＰＴ変換後の宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号として使われる。また、通信パラメータが検索条件Ｂに一致した場合、ＩＰアドレス１／ＩＰアドレス０／ポート番号１／ポート番号０がＮＡＰＴ変換後の宛先ＩＰアドレス／送信元ＩＰアドレス／宛先ポート番号／送信元ポート番号として使われる。
これらはいずれも、通信パラメータと検索条件の比較を行う比較部の回路規模を増大させる。しかし、検索ルール数（エントリ検索テーブル５２の総エントリ数）を１／２にすることが可能になるので、必要とされる検索条件の数が多い場合に特に有効である。
【００７９】
以上の説明はＩＰｖ４の場合であって、２個の検索条件を記憶するために二つのエントリ領域が用いられる（図８の上側に示したＩＰｖ４用のエントリ検索テーブルを参照）。
一方、ＩＰｖ６の場合は、指定すべきアドレス長が非常に長い。この場合には、２個のエントリ領域を使うことによって、エントリ検索テーブル５２のメモリ容量を削減することができる。
例えば、図８の下側に示すようにＩＰｖ６用のエントリ検索テーブルを構成する。すなわち、二つのエントリ領域に含まれるＩＰアドレス０／ＩＰアドレス１／ＩＰアドレス２／ポート番号０／ポート番号１の領域を使って、送信元ＩＰｖ６アドレスおよび宛先ＩＰｖ６アドレスを設定する。また、二つのエントリ領域に含まれるポート番号２の領域を使って、送信元ポート番号および宛先ポート番号を設定する。さらに、二つのエントリ領域に含まれるプロトコル番号の領域を使って、プロトコル番号を設定する。これにより、ＩＰｖ６パケットの送信元ＩＰｖ６アドレス／宛先ＩＰｖ６アドレス／送信元ポート番号／宛先ポート番号／プロトコル番号を設定することが可能となる。
【００８０】
以上の例では、両方のエントリ領域に同じプロトコル番号が存在することになる。しかし、ＩＰｖ４の場合に用いられる設定（アドレス等の割り付け）に従って、一つ一つのエントリ領域を用いて送信元ＩＰｖ６アドレス／宛先ＩＰｖ６アドレス、送信元ポート番号／宛先ポート番号およびプロトコル番号を設定する場合、エントリ検索テーブルにおいて使われない領域が大きくなる。それに比べれば、双方のエントリ領域に同じプロトコル番号が存在するほうがエントリ検索テーブルを有効に利用することができる。
【００８１】
また、このＩＰｖ６用のエントリ検索テーブルに対する検索手段としては、以下のような構成が考えられる。すなわち、検索条件ごとにＩＰｖ４用の検索条件かＩＰｖ６用の検索条件かを指定する。ＩＰｖ４パケットの場合には、先に説明したように検索処理が行われる。通常、高速検索を行う場合にはパケットの通信パラメータと検索条件とを比較するための回路を複数用いる。
【００８２】
例えば図９に示すように、検索部６において、読み出し回路６１１によりエントリ検索テーブルから偶数番目の検索条件及び奇数番目の検索条件をそれぞれ読み出し、これらをそれぞれ比較部６１２内のサブ比較部６１２１，６１２２に与える。そうすることで、パケットの通信パラメータと検索条件との比較処理を平行して行う。
【００８３】
すなわち、サブ比較部６１２１では、受信パケットの送信元ＩＰｖ６アドレスおよび宛先ＩＰｖ６アドレスがそれぞれエントリ検索テーブル５２のＩＰｖ６アドレス０と比較される。また、サブ比較部６１２１では、受信パケットの送信元ポート番号および宛先ポート番号がそれぞれエントリ検索テーブル５２のポート番号２と比較される。さらに、サブ比較部６１２１では、受信パケットのプロトコル番号が、エントリ検索テーブル５２のプロトコル番号と比較される。同様に、サブ比較部６１２２では、受信パケットの送信元ＩＰｖ６アドレスおよび宛先ＩＰｖ６アドレスが、それぞれエントリ検索テーブル５２のＩＰｖ６アドレス１と比較される。また、サブ比較部６１２２では、受信パケットの送信元ポート番号および宛先ポート番号がそれぞれエントリ検索テーブル５２のポート番号２と比較される。さらに、サブ比較部６１２２では、受信パケットのプロトコル番号がエントリ検索テーブル５２のプロトコル番号と比較される。
【００８４】
そして、これらの比較結果は判定回路６１２３に入力される。判定回路６１２３は、ＩＰｖ４パケットの場合には、サブ比較部６１２１／サブ比較部６１２２のそれぞれの比較結果を独立して評価する。すなわち、サブ比較部６１２１／サブ比較部６１２２の双方が受信パケットの通信パラメータと検索条件の不一致を示している場合、判定回路６１２３は、不一致を示す判定結果を出力する。サブ比較部６１２１／サブ比較部６１２２のいずれか一方が受信パケットの通信パラメータと検索条件の一致を示している場合、判定回路６１２３は、一致を示す比較結果を出力しているサブ比較部に対応した偶数番目のエントリ領域または奇数番目のエントリ領域を示す判定結果を出力する。サブ比較部６１２１／サブ比較部６１２２の双方が受信パケットの通信パラメータと検索条件の一致を示している場合、判定回路６１２３は、検索条件の優先度に従い、サブ比較部６１２１或いはサブ比較部６１２２に対応した偶数番目のエントリ領域または奇数番目のエントリ領域を示す判定結果を出力する。
【００８５】
一方、ＩＰｖ６パケットの場合には、サブ比較部６１２１において受信パケットの宛先ＩＰｖ６アドレス／宛先ポート番号／プロトコル番号が偶数番目の検索条件と一致し、かつサブ比較部６１２２において受信パケットの送信元ＩＰｖ６アドレス／送信元ポート番号／プロトコル番号が奇数番目の検索条件と一致した場合に、判定回路６１２３は受信パケットの通信パラメータと検索条件が一致したと判断する。
【００８６】
同様に、サブ比較部６１２１において受信パケット情報の送信元ＩＰｖ６アドレス／送信元ポート番号／プロトコル番号が偶数番目の検索条件と一致し、かつサブ比較部６１２２において受信パケットの宛先ＩＰｖ６アドレス／宛先ポート番号／プロトコル番号が奇数番目の検索条件と一致した場合に、判定回路６１２３は受信パケットの通信パラメータと検索条件が一致したと判断する。
このように構成することで、ＩＰｖ６パケットとＩＰｖ４パケットが混在する場合でも、エントリ検索テーブル５２のメモリ容量の最適化が図れる。
【００８７】
（その他の実施形態）
なお、この発明は上記実施形態に限定されるものではない。例えば、パケット転送部１０の構成として、図１０にパケット転送部１０′として示すように、検索部６から出力された検索結果をフレーム生成部８に供給し、このフレーム生成部８から出力された送出フレーム情報をＱｏＳ部７に供給するものであってもよい。
【００８８】
この場合、フレーム受信部１で受信された受信パケットは、パーサ４および検索部６を介してフレーム生成部８まで送られる。そして、検索部６から出力される検索結果がパケットの廃棄を示している場合、フレーム生成部８は受信パケットを廃棄する。これに対して、検索結果がパケットの廃棄を示していない場合、フレーム生成部８は、受信パケットのヘッダのＭＡＣアドレス及びＩＰアドレス等を書き換えたパケットを生成する等の処理を行う。次に、フレーム生成部８は、生成されたパケットをバッファ管理部２経由でパケットバッファ３に記憶させ、送出フレーム情報をＱｏｓ部７へ出力する。以上の構成を採ることで、廃棄されるパケットをパケットバッファ３に記憶させる必要がなくなるため、パケットバッファ３をより有効に利用できる。
【００８９】
また、前記各実施形態では、検索部６から検索結果（通過／廃棄ビット及び変換アドレス）を出力するようにした。しかし、検索部６からはエントリ番号を出力して、フレーム生成部８又はＱｏＳ部７が検索テーブル５内のエントリ結果テーブル５３にアクセスし、検索部６から出力されたエントリ番号に対応する通過／廃棄ビット及び変換アドレスを取得して、取得した通過／廃棄ビット及び変換アドレスを出力するようにしてもよい。さらに、前記各実施形態では、エントリ結果テーブル５３から、検索結果を表す情報として、通過／廃棄の設定情報及び変換後アドレスを出力するようにした。しかし、これらの他に、「特定インタフェースから出力する」、「廃棄する」、「品質クラスを設定する」、「ＩＰアドレスやポート番号を書き換える」と云った情報を出力するようにしてもよい。これらの情報は、フレーム生成部８或いはＱｏＳ部７に通知され、フレーム生成部８或いはＱｏＳ部７が当該パケットに対する操作を行う。
【００９０】
なお、上述したパケット転送処理装置を構成する各部は、専用のハードウェアにより実現する形態のほか、メモリおよびＣＰＵなどを備えたコンピュータシステムで構成し、それら各部の処理を実現するためのプログラムをメモリにロードして実行することで、それらの機能を実現させる形態であっても良い。また、このプログラムをコンピュータ読み取り可能な記録媒体に記録しておき、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行するようにしても良い。
【００９１】
ここで言うコンピュータシステムとは、オペレーティングシステムや周辺機器等のハードウェアを含む。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク，光磁気ディスク，ＲＯＭ（Read Only Memory），ＣＤ（Compact Disc）−ＲＯＭ等の可搬媒体，コンピュータシステムに内蔵されるハードディスク等の記憶装置を指す。上記プログラムは、前述した機能の一部を実現するためのプログラムであっても良い。あるいは、上記プログラムは、コンピュータシステムにすでに記録されているプログラムとの組み合わせで前述した機能を実現できるプログラム、いわゆる差分プログラムであっても良い。
【００９２】
その他、検索テーブルに設けられるテーブルの種類やその構成、検索部及びタイマ管理部の処理手順及び処理内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の変形を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【産業上の利用可能性】
【００９３】
この発明は、例えば、ＩＰ網で使用されるルータで利用可能である。この発明によれば、通信期間の終了を確実かつ効率よく検出できる。したがって、検索テーブルにおける検索ルールの有効／無効の管理を効果的に行え、限りのある検索テーブルのエントリ領域をさらに有効に使用することが可能となる。
【符号の説明】
【００９４】
１…フレーム受信部、２…バッファ管理部、３…パケットバッファ、４…パーサ、５…検索テーブル、６，６′，６"…検索部、７…ＱｏＳ部、８…フレーム生成部、９…フレーム送信部、１０，１０′…パケット転送部、２０…制御部、３０…バス、５１…有効管理テーブル、５２…エントリ検索テーブル、５３…エントリ結果テーブル、６１…検索処理部、６２…タイマ管理部、６１１…読み出し回路、６１２…比較部、６１２１，６１２２…サブ比較部、６１２３…判定回路、６３…更新タイマ管理部、６４…更新タイマ管理テーブル、６４１…タイマ値レジスタ、６４２…カウンタ、６５…管理タイマレジスタテーブル、６５１…管理タイマレジスタ、６５２…管理タイマ閾値レジスタ、６６，６６′…タイムアウト管理テーブル、６６１…エントリタイムアウトレジスタ、６７…集計レジスタ、６７１−０，６７１−１，６７１−３１，６７１−３２，６７１−６３…論理和回路、６７２−０，６７２−１…タイムアウト集約レジスタ、６８…ＦＩＦＯメモリ。
【図１】
0005389193.tif 000002
【図２】
0005389193.tif 000003
【図３】
0005389193.tif 000004
【図４】
0005389193.tif 000005
【図５】
0005389193.tif 000006
【図６Ａ】
0005389193.tif 000007
【図６Ｂ】
0005389193.tif 000008
【図６Ｃ】
0005389193.tif 000009
【図７Ａ】
0005389193.tif 000010
【図７Ｂ】
0005389193.tif 000011
【図８】
0005389193.tif 000012
【図９】
0005389193.tif 000013
【図１０】
0005389193.tif 000014