(57)【要約】【課題】  連想メモリを用いてパケットデータの識別処理を行う際に、効率的に処理を行うことができる。【解決手段】  本発明は、通信装置が受信したパケットデータの内容の識別処理を行うパケット処理装置に関する。そして、パケット処理装置は、到来したパケットデータから所定の識別情報を抽出し、連想メモリに、抽出した識別情報を検索させる検索オーダを与えるものであって、パケットデータの内容によって必要な検索オーダの回数が異なる手段と、到来したパケットデータのうち、連想メモリにより、必要な全ての検索オーダについて検索が完了したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行う手段とを有することを特徴とする。【選択図】      図１
2012050052.tif 000002
【特許請求の範囲】
【請求項１】
通信装置に到来したパケットデータの内容の識別処理を行うパケット処理装置において、
到来したパケットデータから所定の１又は複数項目の情報を含む識別情報を抽出し、識別したいパケットデータの識別情報が１又は複数格納されている連想メモリに、抽出した識別情報を検索させる検索オーダを与えるものであって、パケットデータの内容によって上記連想メモリに与える検索オーダの回数が異なる検索オーダ生成手段と、
到来したパケットデータのうち、上記連想メモリにより、必要な全ての検索オーダについて検索が完了したパケットデータを出力するものであって、到来したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行う出力手段と
を有することを特徴とするパケット処理装置。
【請求項２】
上記通信装置に到来したパケットデータの順序を管理する順序管理手段をさらに備え、
上記出力手段は、上記順序管理手段の管理内容を利用して、到来したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行う
ことを特徴とする請求項１に記載のパケット処理装置。
【請求項３】
上記順序管理手段は、上記通信装置が受信したパケットデータの順序を到来順序管理テーブルに記録し、上記到来順序管理テーブルを用いて、上記通信装置が受信したパケットデータの順序を管理することを特徴とする請求項２に記載のパケット処理装置。
【請求項４】
上記検索オーダ生成手段は、上記連想メモリに与えようとする検索オーダのうち、後段階の検索オーダほど優先的に上記連想メモリに与えることを特徴とする請求項１〜３のいずれかに記載のパケット処理装置。
【請求項５】
上記検索オーダ生成手段は、ｎ段目（ｎは１以上の整数）の検索オーダの検索結果に応じて、当該パケットデータに係るｎ＋１段目の検索オーダの要否を決定することを特徴とする請求項１〜４のいずれかに記載のパケット処理装置。
【請求項６】
上記検索オーダ生成手段は、ｎ段目の検索オーダの検索結果から、当該パケットデータに係るｎ＋１段目の検索オーダの要否、及び、当該パケットデータに係るｎ＋１段目の検索オーダを行う場合に用いる識別情報の項目を決定するための判断テーブルを有していることを特徴とする請求項５に記載のパケット処理装置。
【請求項７】
通信装置に到来したパケットデータの内容の識別処理を行うパケット処理装置が実行するパケット処理方法において、
検索オーダ生成手段、出力手段を有し、
上記検索オーダ生成手段は、到来したパケットデータから所定の１又は複数項目の情報を含む識別情報を抽出し、識別したいパケットデータの識別情報が１又は複数格納されている連想メモリに、抽出した識別情報を検索させる検索オーダを与えるものであって、パケットデータの内容によって上記連想メモリに与える検索オーダの回数が異なり、
上記出力手段は、到来したパケットデータのうち、上記連想メモリにより、必要な全ての検索オーダについて検索が完了したパケットデータを出力するものであって、到来したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行う
ことを特徴とするパケット処理方法。
【請求項８】
到来したパケットデータの内容の識別処理を行うパケット処理装置を備えた通信装置において、上記パケット処理装置として請求項１〜６のいずれかに記載のパケット処理装置を適用したことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット処理装置及び方法、並びに通信装置に関し、例えば、ネットワーク上のパケットを処理する中継装置におけるパケット識別に適用し得る。
【背景技術】
【０００２】
一般的にＩＰネットワーク上を流れるＩＰパケットの列では、中継経路でパケットの順序が入れ替わっても、終端部において復元・組立され、通信自体には支障が無い。
【０００３】
しかしながら、最近はＩＰ網内をデータだけでなく、音声や映像が流れ、その品質制御が重要となってきている。品質制御装置などで優先制御されたパケットの順序が網内でむやみに入れ替わることは、好ましくない。このため、順序の入れ替えが継続して発生することは避けるべきである。
【０００４】
このような中、通常、品質制御や優先制御を行う際にはパケットの識別を行い、その高速処理には識別したいパケット情報をあらかじめ連想メモリ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ；ＣＡＭ）へ格納しておき、入力されたパケットから抽出した情報をもとにＣＡＭを検索し、その検索結果を用いて処理を決定し転送を行うのが一般的である。
【０００５】
また、近年ではＩＰｖ４からＩＰｖ６への移行に伴い、パケットに含まれる検索対象情報は大幅に増加する事が見込まれ、さらに高度な品質制御等を行なう際には上位のプロトコル識別を行なう必要があることから、１パケットに対する検索情報が増加する傾向にある。しかしながらＣＡＭデバイス等が一度に検索できる情報量には限りがあるため、必要に応じて１パケットあたり複数回の検索を行なう場合があり、２回目以降は前回の検索結果を待ってその情報をもとに再検索を行なうことも多々ある。
【０００６】
例えば、１度目の検索にてＬ３レイヤまで通信経路情報と上位レイヤプロトコルを検索し、その結果、必要経路へのＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）パケットと判断できた場合には、ＲＴＰヘッダの内容を用いた２度目の検索にて、詳細なペイロードタイプやストリーム情報等を識別する。
【０００７】
従来、パケット識別を行う装置としては、特許文献１の記載技術がある。特許文献１の記載技術は、フロー識別検索装置に関するものであるが、フロー識別検索方法として、パケットのヘッダ内から取り出した情報を元に、ＣＡＭへの検索を実施し、その結果を元にＣＡＭへの再検索の要否を判断し、必要と判断される場合には再度ＣＡＭへ検索を行い、その結果をもとに、パケットヘの最終処理方法を決定する方法が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−３２５０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
通常、上述のＣＡＭへの検索は、パケットから抽出された識別情報を検索オーダと一緒にＣＡＭへ転送することで行なわれるが、通常ＣＡＭへの検索オーダの転送は、検索スループットを向上させるため前段の検索オーダの結果がＣＡＭから受信されるのを待たずに、次ぎの検索オーダを転送できるように、「検索オーダの転送」と「結果の受信」はパイプライン化されている。
【００１０】
そのため、従来のパケット識別処理では、複数回検索が必要となったパケットの全検索が完了する前に、後続する１回のみの検索で済むパケットの検索の方が先に完了する場合が発生する。ここで、検索完了パケットから順次パケット処理及び転送をする場合、受信順序と転送順序が入れ替わることになるという問題が発生する。
【００１１】
また、この順序の入れ替えを防ぐために、先行パケットの複数回検索を待ってから、後続パケットの検索オーダの転送を行なう場合にはＣＡＭの検索性能を十分に発揮できず、装置全体のスループットに影響を与えることになる。
【００１２】
そのため、連想メモリを用いてパケットデータの識別処理を行う際に、効率的に処理を行うことができるパケット処理装置及び方法、並びに通信装置が望まれている。
【課題を解決するための手段】
【００１３】
第１の本発明は、通信装置に到来したパケットデータの内容の識別処理を行うパケット処理装置において、（１）到来したパケットデータから所定の１又は複数項目の情報を含む識別情報を抽出し、識別したいパケットデータの識別情報が１又は複数格納されている連想メモリに、抽出した識別情報を検索させる検索オーダを与えるものであって、パケットデータの内容によって上記連想メモリに与える検索オーダの回数が異なる検索オーダ生成手段と、（２）到来したパケットデータのうち、上記連想メモリにより、必要な全ての検索オーダについて検索が完了したパケットデータを出力するものであって、到来したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行う出力手段とを有することを特徴とする。
【００１４】
第２の本発明は、通信装置に到来したパケットデータの内容の識別処理を行うパケット処理装置が実行するパケット処理方法において、（１）検索オーダ生成手段、出力手段を有し、（２）上記検索オーダ生成手段は、到来したパケットデータから所定の１又は複数項目の情報を含む識別情報を抽出し、識別したいパケットデータの識別情報が１又は複数格納されている連想メモリに、抽出した識別情報を検索させる検索オーダを与えるものであって、パケットデータの内容によって上記連想メモリに与える検索オーダの回数が異なり、（３）上記出力手段は、到来したパケットデータのうち、上記連想メモリにより、必要な全ての検索オーダについて検索が完了したパケットデータを出力するものであって、到来したパケットデータの出力を、当該パケット処理装置に到来した順番と同じ順番で行うことを特徴とする。
【００１５】
第３の本発明は、到来したパケットデータの内容の識別処理を行うパケット処理装置を備えた通信装置において、上記パケット処理装置として第１の本発明のパケット処理装置を適用したことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、連想メモリを用いてパケットデータの識別処理を行う際に、効率的に処理を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態に係る受信パケット処理部の機能的構成を示すブロック図である。
【図２】第１の実施形態に係るネットワーク中継装置の機能的構成を示すブロック図である。
【図３】第１の実施形態に係る受信パケット処理部とＣＡＭとの間の処理概要の例について説明したフローチャートである。
【図４】第１の実施形態に係るパケット管理テーブルの内容例について示した説明図である。
【図５】第１の実施形態に係る未送信オーダテーブルの内容例について示した説明図である。
【図６】第１の実施形態に係る検索オーダテーブルの内容例について示した説明図である。
【図７】第１の実施形態に係る２段目オーダ待ちテーブルの内容例について示した説明図である。
【図８】第１の実施形態に係る未完了検索オーダテーブルの内容例について示した説明図である。
【図９】第１の実施形態に係る未送信検索結果テーブルの内容例について示した説明図である。
【図１０】第１の実施形態に係る検索管理部が、ＣＡＭに検索オーダを送信する処理について示したフローチャートである。
【図１１】第１の実施形態に係る検索管理部がＣＡＭから検索オーダを受信した場合の処理について示したフローチャートである。
【図１２】第１の実施形態に係る検索管理部の動作の具体例について示したフローチャートである。
【図１３】第１の実施形態に係る受信パケット処理部及びＣＡＭ内の各テーブルの遷移について示した説明図（１）である。
【図１４】第１の実施形態に係る受信パケット処理部及びＣＡＭ内の各テーブルの遷移について示した説明図（２）である。
【図１５】第１の実施形態に係る受信パケット処理部及びＣＡＭ内の各テーブルの遷移について示した説明図（３）である。
【図１６】第１の実施形態に係る受信パケット処理部及びＣＡＭ内の各テーブルの遷移について示した説明図（４）である。
【図１７】第２の実施形態に係る検索管理部の機能的構成について示したブロック図である。
【図１８】第２の実施形態に係る２段目判定テーブルの内容例について示した説明図である。
【図１９】第２の実施形態に係る２段目制御テーブルの内容例について示した説明図である。
【図２０】第２の実施形態に係る検索管理部の動作について示したフローチャートである。
【図２１】第２の実施形態に係る検索管理部の具体的な動作の例について示した説明図である。
【発明を実施するための形態】
【００１８】
（Ａ）第１の実施形態
以下、本発明によるパケット処理装置及び方法、並びに通信装置の第１の実施形態を、図面を参照しながら詳述する。なお、この実施形態のパケット処理装置及び通信装置は、それぞれ、受信パケット処理部及びネットワーク中継装置である。
【００１９】
（Ａ−１）第１の実施形態の構成
図２は、第１の実施形態のネットワーク中継装置１０の機能的構成を示すブロック図である。なお、図２における括弧内の符号は、後述する第２の実施形態でのみ用いられるものであるものとする。
【００２０】
ネットワーク中継装置１０は、Ｎ個の物理媒体１１（１１−１〜１１−Ｎ）、物理終端部１２、受信パケット処理部１３、ＣＡＭ１４、ＮＰＵ１５、及び送信パケット処理部１６を有している。ネットワーク中継装置１０としては、例えば、Ｌ３スイッチやルータ等のパケットを中継するネットワーク装置が該当する。
【００２１】
物理媒体１１は、ネットワーク中継装置１０を外部のネットワークに接続させるための物理インタフェースである。物理媒体１１としては、既存のネットワーク装置のインタフェースを適用することができ、例えば、ネットワーク中継装置１０が１０００Ｂａｓｅ−Ｔ等のＥｔｈｅｒｎｅｔ（登録商標）に対応したインタフェースであれば、物理媒体１１は、ＲＪ−４５コネクタ（ポート）等により構成される。また、物理媒体１１は、無線通信用のインタフェース（例えば、無線ＬＡＮ用のインタフェース）であっても良く、採用される通信法式は限定されないものである。
【００２２】
物理終端部１２は、物理媒体１１から伝達された信号の物理レイヤー（ＰＨＹ）に係る処理、及び、メディアアクセスコントロール（ＭＡＣ）に係る処理を行うものである。物理終端部１２としては、既存のネットワーク装置と同様のものを適用することができる。
【００２３】
受信パケット処理部１３は、物理終端部１２の処理により受信したパケット（フレーム）の識別及び廃棄処理等を行うものである。
【００２４】
ＣＡＭ１４は、受信パケット処理部１３が、パケット識別の処理を行う際の識別子の格納及び検索を実施するデータ検索専用メモリである。ＣＡＭ１４のハードウェアとしては、既存のネットワーク機器に用いられている連想メモリを適用することができる。ＣＡＭ１４では、受信パケット処理部１３から送信された検索オーダの受信、及び、受信パケット処理部１３への検索結果の送信をパイプライ化して、処理を高速化しているものとする。
【００２５】
ＮＰＵ１５は、受信パケット処理部１３にて識別されたパケットデータをもとに、さらに高度（高レイヤ）のパケット処理を実施するものである。ＮＰＵ１５及びＮＰＵ１５の処理内容については、既存のネットワーク装置と同様のものを適用することができる。
【００２６】
送信パケット処理部１６は、ＮＰＵ１５から送信されるパケットの物理終端部１２への転送処理等を行うものである。送信パケット処理部１６としては、既存のネットワーク装置と同様のものを適用することができる。
【００２７】
次に、受信パケット処理部１３とＣＡＭ１４との間の処理の概要について説明する。
【００２８】
受信パケット処理部１３では、受信したパケットデータの所定の部分のデータ（例えば、ヘッダのうち１又は複数の項目のデータ）をパケット識別データとして抽出し、抽出したパケット識別データについてＣＡＭ１４へ検索オーダを送信し、ＣＡＭ１４からの検索結果に基づいて、受信したパケット（フレーム）の識別及び廃棄処理等を行う。
【００２９】
ＣＡＭ１４には、予めパケット識別データごとに、対応する処理内容のデータが記憶されている。そして、ＣＡＭ１４は、受信パケット処理部１３から与えられた検索オーダのパケット識別データが登録されていれば、そのパケット識別データに対応するデータを返答し、与えられたパケット識別データが登録されていない場合（検索オーダのパケット識別データが検出できなかった場合）にはその旨を返答する。ここでは、ＣＡＭ１４は、与えられたパケット識別データと一致するデータが格納されているメモリアドレスを返答するものとして説明する。なお、受信パケット処理部１３から送信されるパケット識別データの内容や、ＣＡＭ１４に登録される内容については限定されないものである。例えば、ＣＡＭ１４内で、パケット識別データに検索結果として返すデータを対応付けて登録するようにしても良い。
【００３０】
受信パケット処理部１３が、それぞれのパケットデータについて、ＣＡＭ１４へ検索オーダを送信する回数（段数）は、パケットデータの内容によって異なるものとする。ここでは、説明を簡易にするために、受信パケット処理部１３が、各パケットデータに対して実施する検索オーダの回数（段数）の上限は２回であるものとして説明するが、この上限は限定されないものであり、パケットデータに対する検索処理の内容によって適切な段数を適用するようにしても良い。
【００３１】
例えば、受信パケット処理部１３では、あるパケットデータについて１段目の検索オーダの検索結果（返答されたメモリアドレス）によって、２段目の検索オーダが必要か否かを判定する。なお、受信パケット処理部１３において、２段目の検索オーダの要否を判定する方法としては、例えば、予想される１段目の検索オーダの検索結果ごとに、対応する処理の内容を記述したテーブル情報等を受信パケット処理部１３内に保持しておき、そのテーブル情報を用いて判定するようにしても良い。
【００３２】
そして、受信パケット処理部１３では、２段目の検索オーダが必要と判定した場合には、２段目の検索オーダのためのパケット識別データを当該パケットデータから抽出して、新たに抽出したパケット識別データの検索オーダを、ＣＡＭ１４に送信して、検索結果を受取る。なお、２段目の検索オーダに用いるパケット識別データの内容（検査項目）については、例えば、予め２段目の検索オーダとして定められている内容（検査項目）を適用するようにしても良いし、１段目の検索オーダの検索結果ごとに、対応する２段目の検索オーダの内容（検査項目）を記述したテーブルを用意しておき、そのテーブルに従った内容（検査項目）を適用するようにしても良い。
【００３３】
そして、受信パケット処理部１３は、それぞれのパケットデータと共に、当該パケットデータに関するＣＡＭ１４の検索結果があれば、必要に応じてその検索結果をＮＰＵ１５に与える。なお、受信パケット処理部１３は、当該パケットデータに関するＣＡＭ１４の検索結果を、ＮＰＵ１５に与える際に、全ての検索結果を与えるようにしても良いし、最終段（２段目）の検索結果だけを与えるようにしても良い。また、ＣＡＭ１４への検索オーダで、一度もヒット（検出）しなかったパケットデータについては、受信パケット処理部１３からＮＰＵ１５へその旨を通知するようにしても良いし、特に検索結果を通知しないようにしてもよい。
【００３４】
図３は、受信パケット処理部１３とＣＡＭ１４との間の処理概要の例について説明したフローチャートである。
【００３５】
図３では、受信パケット処理部１３が、パケットデータＰについて、２段目までの検索オーダをＣＡＭ１４に送信した場合の例について説明している。
【００３６】
ここでは、受信パケット処理部１３にパケットデータＰが到来すると、受信パケット処理部１３は、まず、パケットデータＰのＩＰヘッダから抽出した宛先ＩＰアドレスと、パケットデータＰのＴＣＰヘッダ又はＵＤＰヘッダから抽出した送信ポート番号とを有するパケット識別データを作成して、ＣＡＭ１４に検索オーダとして送信するものとする（Ｓ１０１）。
【００３７】
次に、ＣＡＭ１４では、受信した１段目の検索オーダのパケット識別データについて検索を行い、その検索結果を返答する（Ｓ１０２、Ｓ１０３）。
【００３８】
ここでは、受信パケット処理部１３が送信した検索オーダのパケット識別データにおいて、ＩＰアドレスはＸ、ポート番号はＹ（ＲＴＰプロトコルのパケットデータであることを示すものとする）であり、ＣＡＭ１４にも、そのパケット識別データに対応するデータが格納されていたものとする。ここでは、ステップＳ１０３において、ＣＡＭ１４は、与えられたパケット識別データに対応するデータが格納されているメモリのメモリアドレスＡ１を返答したものとする。
【００３９】
次に、受信パケット処理部１３は、ＣＡＭ１４から、検索オーダに対する検索結果としてメモリアドレスＡ１のデータを受取ると、自身に登録されているテーブル情報等を参照して、パケットデータＰについて次の段（２段目）の検索オーダが必要か否かを判定する（Ｓ１０４）。
【００４０】
ここでは、受信パケット処理部１３において、パケットデータＰに対して、２段目の検索オーダが必要であり、２段目の検索オーダのパケット識別データとして、パケットデータＰのＲＴＰヘッダからペイロードタイプを抽出することがプログラミングされているものとして以降の説明を行う。
【００４１】
上述の通り、受信パケット処理部１３において、パケットデータＰに対して、２段目の検索オーダが必要であるため、パケットデータＰから、２段目の検索オーダに用いるパケット識別データ（ＲＴＰヘッダのペイロードタイプ）を抽出して、ＣＡＭ１４に検索オーダを送信する（Ｓ１０５、Ｓ１０６）。
【００４２】
次に、ＣＡＭ１４では、受信した２段目の検索オーダのパケット識別データについて検索を行い、その検索結果を返答する（Ｓ１０７、Ｓ１０８）。
【００４３】
ここでは、受信パケット処理部１３が送信した２段目の検索オーダのパケット識別データにおいて、ＲＴＰのペイロードタイプはＴであり、ＣＡＭ１４にも、そのパケット識別データに対応するデータが格納されていたものとする。ここでは、ステップＳ１０８において、ＣＡＭ１４は、与えられたパケット識別データに対応するデータが格納されているメモリのメモリアドレスＡ２を返答したものとする。
【００４４】
そして、２段目の検索オーダの検索結果（メモリアドレスＡ２）を受取った受信パケット処理部１３は、所定のタイミングでパケットデータＰと、ＣＡＭ１４から与えられた検索結果とを、ＮＰＵ１５に与える（Ｓ１０９）。受信パケット処理部１３からＮＰＵ１５へデータを与えるタイミングの詳細について後述する。
【００４５】
そして、ＮＰＵ１５は、パケットデータＰに対して、受取った検索結果に応じた処理（例えば、優先制御や廃棄等）を行う。ここでは、ＮＰＵ１５には、予め、検索結果（メモリアドレス）に対応する処理内容がプログラミングされているものとするが、検索結果（メモリアドレス）の解釈（対応する処理の把握）は、受信パケット処理部１３側で行うようにしても良い。なお、ＮＰＵ１５が、受取った検索結果に応じてパケットデータＰに対して行う処理内容については限定されないものであり、既存の連想メモリを用いてパケット識別を行うネットワーク装置と同様のものを適用することができる。
【００４６】
なお、図３では、受信パケット処理部１３が、パケットデータＰについて、２段目までの検索オーダをＣＡＭ１４に送信した場合について説明したが、上述のＳ１０４において、パケットデータＰに対して、次の段（２段目）の検索オーダが必要でないと判断された場合には、２段目の検索オーダを行わずに、ステップＳ１０９の処理を行うことになる。
【００４７】
上述のように、受信パケット処理部１３では、受信したパケットデータの内容によって、検索オーダを送信する回数が異なる。なお、受信パケット処理部１３から送信される検索オーダ（パケット識別データ）の内容や、ＣＡＭ１４に記憶されるデータについては、限定されないものであり、例えば、既存の連想メモリを用いてパケット識別を行うネットワーク装置と同様のものを適用することができる。
【００４８】
次に、受信パケット処理部１３の詳細構成について説明する。
【００４９】
図１は、受信パケット処理部１３の機能的構成を示すブロック図である。
【００５０】
受信パケット処理部１３は、パケットバッファ部１３１、識別子抽出部１３２、検索管理部１３３、パケット処理実行部１３４を有している。
【００５１】
受信パケット処理部１３は、プロセッサ及びメモリ等のプログラムの実施構成を有する情報処理装置に、パケット処理プログラム等をインストールすることにより構築するようにしても良いが、その場合でも機能的には図１のように表すことができる。なお、受信パケット処理部１３は、ＣＡＭ１４と別のハードウェアを用いて構築するようにしても良いし、同じハードウェア（情報処理装置）上に構築するようにしても良い。
【００５２】
パケットバッファ部１３１は、物理終端部１２より受信したパケットを一時格納するものである。
【００５３】
識別子抽出部１３２は、パケットバッファ部１３１に格納されたパケットから、パケット識別に使用する識別子データを抽出するものである。
【００５４】
検索管理部１３３は、識別子抽出部１３２により抽出された、それぞれのパケットデータのパケット識別データに基づいて、ＣＡＭ１４への検索要求、及び、ＣＡＭ１４からの検索結果受信処理等を実施するものである。また、検索管理部１３３は、それぞれのパケット識別データの検索結果を、パケット処理実行部１３４に通知する。
【００５５】
パケット処理実行部１３４は、検索管理部１３３から通知される検索結果に基づいて、パケットバッファ部１３１に格納されたパケットデータに対して所定の処理（例えば、ＮＰＵ１５への送信、一部加工や情報付加、廃棄処理等）を実行するものである。この実施形態においては、説明を簡易にするために、パケット処理実行部１３４は、パケットバッファ部１３１に格納された全てのパケットデータを、そのままＮＰＵ１５に送信（出力）するものとして説明するが、パケットデータごとに、検索管理部１３３から通知される検索結果に応じて、廃棄処理をしたり、一部加工や情報付加をしてからＮＰＵ１５へ送信（出力）するようにしても良い。
【００５６】
パケットバッファ部１３１は、パケットデータと検索完了状態を管理するパケット管理テーブル１３１ａを有している。
【００５７】
図４は、パケット管理テーブル１３１ａの内容例について示した説明図である。
【００５８】
図４に示すように、パケット管理テーブル１３１ａでは、「パケット番号」、「パケットデータ」、「検索完了状態」の項目の情報を記憶している。
【００５９】
「パケット番号」の項目は、図４では、パケットバッファ部１３１に格納された各パケットの識別子を示すものとする。パケットバッファ部１３１では、パケットが格納された順番で１、２、３、…、と識別子が付けられているものとする。なお、パケットバッファ部１３１では、パケットが格納された順序が把握されていれば、その管理方法や、識別子の形式等は限定されないものである。
【００６０】
「パケットデータ」の項目は、パケット番号に対応するパケットのデータを示している。なお、図４では、説明を簡易にするため、パケット番号１、２、３、…、のパケットデータを、それぞれ、Ｐ１、Ｐ２、Ｐ３、…、と図示している。なお、パケットバッファ部１３１内で、パケット番号に対応するパケットデータが把握されていれば、パケット管理テーブル１３１ａに、パケットデータの項目を省略するようにしても良い。
【００６１】
「検索完了状態」の項目は、該当するパケットデータに対するＣＡＭ１４による検索処理の完了状態を示している。図４では、「検索完了状態」は、「０」又は「１」で表わされるものとする。「検索完了状態」が０の場合には、検索処理が未完了であり、１の場合には検索処理が完了しているものとする。
【００６２】
検索管理部１３３は、ＣＡＭ１４へ送信した検索オーダ内容を管理する検索オーダテーブル１３３ａと、２回目の検索オーダを管理する２段目オーダ待ちテーブル１３３ｂと、まだＣＡＭ１４へ送信していない未送信の検索オーダの内容を管理する未送信オーダテーブル１３３ｃとを有している。
【００６３】
図５は、未送信オーダテーブル１３３ｃの内容例について示した説明図である。
【００６４】
図５に示すように、未送信オーダテーブル１３３ｃでは、「ポインタ値」ごとに１段目及び２段目オーダの内容が管理されている。
【００６５】
「ポインタ値」は、検索管理部１３３からＣＡＭ１４へ検索オーダを送信する優先順位を示している。図５では、説明を簡易にするためにポインタ値は１〜３までしか図示していないが、管理する検索オーダの数は限定されないものである。
【００６６】
以下においては、説明を簡易にするため、パケット番号が１、２、３、４、…のパケットデータの１段目の検索オーダの内容（パケット識別データ）を、それぞれＨ１−１、Ｈ２−１、Ｈ３−１、Ｈ４−１、…、と表わすものとする。そして、パケット番号が１、２、３、４、…のパケットデータの２段目の検索オーダの内容（パケット識別データ）を、それぞれＨ１−２、Ｈ２−２、Ｈ３−２、Ｈ４−２、…、と表わすものとする。
【００６７】
図６は、検索オーダテーブル１３３ａの内容例について示した説明図である。
【００６８】
検索オーダテーブル１３３ａは、「管理番号」、「パケット番号」、「オーダ段数」の項目の情報を有している。検索オーダテーブル１３３ａでは、検索管理部１３３からＣＡＭ１４へ送信した検索オーダごとに、データ（行）が作成される。
【００６９】
「管理番号」は、検索オーダテーブル１３３ａのデータの管理番号である。
【００７０】
「パケット番号」は、パケット管理テーブル１３１ａ上で管理されるパケット番号のいずれかで示される。例えば、図６では、管理番号が１のパケット番号が１となっており、パケット管理テーブル１３１ａ上でパケット番号が１のパケットデータ（図４ではパケットデータＰ１）が対応することを示している。
【００７１】
「オーダ段数」は、当該データに対応する検索オーダの段数を示している。「オーダ段数」の項目は、例えば、当該データに対応する検索オーダに係るオーダ段数が１段目であれば、「１」、２段目であれば「２」が入力されるものとする。
【００７２】
図７は、２段目オーダ待ちテーブル１３３ｂの内容例について示した説明図である。
【００７３】
２段目オーダ待ちテーブル１３３ｂは、「管理番号」、「パケット番号」の項目の情報を有している。２段目オーダ待ちテーブル１３３ｂでは、検索管理部１３３で設定した２段目の検索オーダごとに、データ（行）が作成される。
【００７４】
「管理番号」は、２段目オーダ待ちテーブル１３３ｂのデータの管理番号である。
【００７５】
「パケット番号」は、パケット管理テーブル１３１ａ上で管理されるパケット番号のいずれかで示される。例えば、図７において、「管理番号」が１のデータでは、パケット番号が「１」のパケットデータが、２段目の検索オーダ待ちであることを示している。
【００７６】
ＣＡＭ１４は、まだ検索管理部１３３に検索結果を返答していない検索オーダ（未完了の検索オーダ）を管理する未完了検索オーダテーブル１４ａと、まだ検索管理部１３３に送信していない検索結果を管理する未送信検索結果テーブル１４ｂとを有している。
【００７７】
図８は、未完了検索オーダテーブル１４ａの内容例について示した説明図である。
【００７８】
図８に示すように、未完了検索オーダテーブル１４ａでは、「ポインタ値」ごとに、まだ処理が完了していない検索オーダの内容が管理されている。
【００７９】
「ポインタ値」は、ＣＡＭ１４が検索オーダを実行する優先順位を示している。なお、未完了検索オーダテーブル１４ａにおいて、ポインタ値は、検索管理部１３３から検索オーダが与えられた順番で付されており、先に与えられた検索オーダほど優先順位が高く設定されているものとする。
【００８０】
図８では、説明を簡易にするためにポインタ値は１〜４までしか図示していないが、管理する検索オーダの数は限定されないものである。
【００８１】
図９は、未送信検索結果テーブル１４ｂの内容例について示した説明図である。
【００８２】
図９に示すように、未送信検索結果テーブル１４ｂでは、「ポインタ値」ごとに、まだ検索管理部１３３へ送信されていない検索オーダの検索結果の内容が管理されている。
【００８３】
「ポインタ値」は、ＣＡＭ１４が検索結果を送信する優先順位を示している。なお、未送信検索結果テーブル１４ｂにおいて、ポインタ値は、ＣＡＭ１４が検索オーダを実行した順番で付されており、先に検出された検索結果ほど優先順位が高く設定されているものとする。
【００８４】
図９では、説明を簡易にするためにポインタ値は１〜４までしか図示していないが、管理する検索結果の数は限定されないものである。
【００８５】
なお、以下においては、説明を簡易にするために、Ｈ１−１、Ｈ２−１、Ｈ３−１、Ｈ４−１、…、の検索結果を、それぞれ、Ｒ１−１、Ｒ２−１、Ｒ３−１、Ｒ４−１、…、と表わし、Ｈ１−２、Ｈ２−２、Ｈ３−２、Ｈ４−２、…、の検索結果を、それぞれ、Ｒ１−２、Ｒ２−２、Ｒ３−２、Ｒ４−２、…、と表わすものとする。
【００８６】
（Ａ−２）第１の実施形態の動作
次に、以上のような構成を有する第１の実施形態のネットワーク中継装置１０における受信パケット処理部１３の動作（実施形態のパケット処理方法）について説明する。
【００８７】
図１０、図１１は、検索管理部１３３が行う処理について示したフローチャートである。図１０では、検索管理部１３３が、ＣＡＭ１４に検索オーダを送信する処理について示しており、図１１では、検索管理部１３３がＣＡＭ１４から検索オーダを受信した場合の処理について示している。
【００８８】
まず、図１０を用いて、検索管理部１３３が、ＣＡＭ１４に検索オーダを送信する処理について説明する。
【００８９】
受信パケット処理部１３では、パケットバッファ部１３１に新たなパケットが格納されると、識別子抽出部１３２により、１段目の検索オーダのパケット識別データが抽出されて、検索管理部１３３に与えられる。
【００９０】
そして、検索管理部１３３は、識別子抽出部１３２から１段目の検索オーダのパケット識別データが与えられると、検索オーダの送信準備を行い、未送信オーダテーブル１３３ｃに、与えられたパケット識別データを設定する（Ｓ２０１）。なお、検索管理部１３３に、複数のパケット識別データが同時に到来した場合には、検索管理部１３３は、パケット番号順に、未送信オーダテーブル１３３ｃへそれらのパケット識別データを設定するようにしても良い。
【００９１】
次に、検索管理部１３３は、未送信オーダテーブル１３３ｃに、未送信の検索オーダ（１段目及び２段目）があるかを確認し（Ｓ２０２）、さらに、未送信の２段目の検索オーダの有無を判定する（Ｓ２０３）。なお、ステップＳ２０２において、未送信の検索オーダが一つも存在しない場合には、検索管理部１３３は、新たな検索オーダが発生するまで待機するようにしても良い。
【００９２】
そして、検索管理部１３３は、上述のステップＳ２０３の判定において、未送信の２段目の検索オーダがあると判定した場合には、後述するステップＳ２０６の処理から動作し、未送信の２段目の検索オーダがないと判定した場合には後述するステップＳ２０４の処理から動作する。
【００９３】
そして、検索管理部１３３は、上述のステップＳ２０３の判定において、未送信の２段目の検索オーダがないと判定された場合（すなわち、少なくとも１段目の未送信検索オーダは存在する場合）には、検索管理部１３３は、送信の１段目の検索オーダのうち、ポインタ値が１の検索オーダ（最も優先順位の高い検索オーダ）を、ＣＡＭ１４に送信する（Ｓ２０４）。
【００９４】
次に、検索管理部１３３は、検索オーダテーブル１３３ａに、ステップＳ２０４で送信した検索オーダに係るパケット番号のデータを、新たに追加（オーダ段数には１を入力）し（Ｓ２０５）、上述のステップＳ２０２の処理から動作する。
【００９５】
一方、上述のステップＳ２０３において、未送信の２段目の検索オーダがあると判定された場合には、検索管理部１３３は、未送信の２段目の検索オーダのうち、ポインタ値が１の検索オーダ（最も優先順位の高い検索オーダ）を、ＣＡＭ１４に送信する（Ｓ２０６）。
【００９６】
次に、検索管理部１３３は、２段目オーダ待ちテーブル１３３ｂを参照（２段目オーダ待ちテーブル１３３ｂの内容は、後述する図１１のフローチャートの処理にて更新される）して、新たに追加したデータのパケット番号を取得し、検索オーダテーブル１３３ａに対して、ステップＳ２０６で送信した検索オーダに係るパケット番号のデータを、新たに追加し（オーダ段数には２を入力）（Ｓ２０７、Ｓ２０８）、上述のステップＳ２０２の処理から動作する。
【００９７】
次に、図１１を用いて、検索管理部１３３が、ＣＡＭ１４から検索オーダの検索結果を受信した場合の処理について説明する。
【００９８】
検索管理部１３３は、ＣＡＭ１４へ送信した検索オーダについて検索結果を受取ると（Ｓ３０１）、検索オーダテーブル１３３ａを参照し、当該検索結果のパケット番号及び、そのパケット番号のオーダ段数のデータを取得する（Ｓ３０２）
次に、検索管理部１３３は、当該検索結果が１段目の検索オーダに対する検索結果であり、さらに、当該検索結果に係るパケットデータについて２段目の検索オーダが必要か否かを判定する（Ｓ３０３）。そして、検索管理部１３３により、２段目の検索オーダが必要と判定された場合には、後述するステップＳ３０４の処理から動作し、そうでない場合には、後述するステップＳ３０６の処理から動作する。
【００９９】
なお、検索管理部１３３において、当該検索結果に係るパケットデータについて２段目の検索オーダが必要か否かを判定する方法としては、例えば、上述のようにＣＡＭ１４から与えられる検索結果（メモリアドレス）に応じて行う処理を記述したテーブル情報を参照すること等により行うようにしても良い。
【０１００】
上述のステップＳ３０３において、検索管理部１３３により、２段目の検索オーダが必要と判定された場合には、検索管理部１３３は、識別子抽出部１３２へ、当該パケットデータについて、２段目の検索オーダに用いるパケット識別データを抽出させて保持し、未送信オーダテーブル１３３ｃに設定する（Ｓ３０４）。
【０１０１】
そして、検索管理部１３３は、２段目オーダ待ちテーブル１３３ｂに、上述のステップＳ３０４で設定した検索オーダに係るパケットデータのパケット番号を設定した新たなデータを追加（ライトポイントを＋１する）し（Ｓ３０５）、上述の図１０のステップＳ２０２の処理から動作する。
【０１０２】
一方、検索管理部１３３により、受信した検索結果に係るパケットデータについて次の段階の検索オーダが不要と判断された場合（すなわち、受信した検索結果が１段目の検索オーダで、かつ、２段目の検索オーダが不要である場合、又は、受信した検索結果が２段目の検索オーダだった場合）には、検索管理部１３３は、パケット管理テーブル１３１ａ内で、受信した検索結果に係るパケットデータの検索完了状態に検索完了を示す「１」を入力し（Ｓ３０６）、上述の図１０のステップＳ２０２の処理から動作する。ステップＳ３０６で、検索管理部１３３は、パケット管理テーブル１３１ａの内容を更新すると共に、当該パケットデータの検索完了及び検索結果をパケット処理実行部１３４に通知するようにしても良い。
【０１０３】
パケット処理実行部１３４は、パケット管理テーブル１３１ａの内容に応じて、各パケットデータの処理内容を決定して処理を行う。パケット処理実行部１３４は、パケット番号の順番、すなわち、受信パケット処理部１３がパケット受信を行った順番で、各パケットデータをＮＰＵ１５に出力する。例えば、パケット処理実行部１３４は、パケット番号が、２、３のパケットデータの検索完了状態が「１」（完了を示す値）となった場合でも、パケット番号が１のパケットデータの検索完了状態が「０」（未完了を示す値）であった場合には、パケット番号が１のパケットデータの検索完了状態が「１」となるのを待ち、その後、パケット番号１〜３のパケットデータを、ＮＰＵ１５に出力する。
【０１０４】
また、受信パケット処理部１３では、上述のステップＳ２０３、Ｓ２０４、Ｓ２０６等に示すように、１段目の検索オーダよりも、２段目の検索オーダを優先してＣＡＭ１４に送信している。すなわち、受信パケット処理部１３では、後の段の検索オーダを優先してＣＡＭ１４に送信している。なお、受信パケット処理部１３において、検索オーダの段数に応じてＣＡＭ１４への送信の優先度を調整することは必須ではないが、後の段の検索オーダを優先して送信した方が、パケット番号が先のパケットデータの処理が促進される。
【０１０５】
次に、上述の図１０、図１１のフローチャートに従って検索管理部１３３が動作した場合の具体的な動作例について説明する。
【０１０６】
図１２は、検索管理部１３３の動作の具体例について示したフローチャートである。
【０１０７】
そして、図１３〜図１６は、図１２のフローチャートに従って検索管理部１３３が動作した場合の、受信パケット処理部１３及びＣＡＭ１４内の各テーブルの遷移について示した説明図である。
【０１０８】
まず、ここでは、パケットデータＰ１〜Ｐ６が、新たにパケットバッファ部１３１に格納され、識別子抽出部１３２により、１段目の検索オーダのパケット識別データが抽出されて、検索管理部１３３に与えられたものとする（Ｓ４０１）。なお、ここでは、パケットデータＰ１〜Ｐ６のパケット番号は、それぞれ１〜６であるものとする。また、パケットデータＰ１〜Ｐ６の１段目の検索オーダに係るパケット識別データは、Ｈ１−１〜Ｈ６−１であるものとする。
【０１０９】
そして、検索管理部１３３によりパケットデータＰ１〜Ｐ６のパケット識別データＨ１−１〜Ｈ６−１が、未送信オーダテーブル１３３ｃに設定され、そのうちパケットデータＰ１〜Ｐ３（パケット識別データＨ１−１〜Ｈ３−１）の検索オーダが、ＣＡＭ１４へ送信されたものとする（Ｓ４０２）。
【０１１０】
図１３は、ステップＳ４０２処理終了時点の、受信パケット処理部１３及びＣＡＭ１４内の各テーブルの状態について示している。
【０１１１】
図１３では、パケット管理テーブル１３１ａには、パケット番号１〜６のパケットデータとしてＰ１〜Ｐ６が登録されているが、この時点ではどのパケットデータにも検索オーダの結果は出ていないので、全て検索未完了を示す０となっている。
【０１１２】
また、図１３では、未送信オーダテーブル１３３ｃには、まだ未送信の検索オーダであるパケットデータＰ４〜Ｐ６（Ｈ４−１〜Ｈ６−１）の検索オーダが登録されている。
【０１１３】
さらに、図１３では、まだＣＡＭ１４による検索処理は実行されていないので、未完了検索オーダテーブル１４ａには、パケットデータＰ１〜Ｐ３（Ｈ１−１〜Ｈ３−１）の検索オーダが登録されている。
【０１１４】
さらにまた、図１３では、パケット番号１〜３（パケットデータＰ１〜Ｐ３）の１段目の検索オーダがＣＡＭ１４へ送信済であるため、検索オーダテーブル１３３ａには、パケット番号１〜３（パケットデータＰ１〜Ｐ３）のデータが登録されており、それぞれのオーダ段数は１となっている。
【０１１５】
また、ステップＳ４０２の時点では、ＣＡＭ１４による検索オーダの結果はまだなく、２段目の検索オーダも発生していないので、未送信検索結果テーブル１４ｂ及び２段目オーダ待ちテーブル１３３ｂは空の状態である。
【０１１６】
次に、ＣＡＭ１４により、パケットデータＰ１の１段目の検索オーダ（Ｈ１−１）の検索結果（Ｒ１−１）が、未送信検索結果テーブル１４ｂを介して検索管理部１３３に返答されたものとする（Ｓ４０３）。
【０１１７】
そして、検索管理部１３３により、受取った検索結果（Ｒ１−１）の内容から、パケットデータＰ１について２段目の検索オーダの要否が判定され、ここでは、必要と判定されたものとする。そして、検索管理部１３３は、識別子抽出部１３２に、パケットデータＰ１について２段目のパケット識別データの抽出を指示して、パケットデータＰ１の２段目のパケット識別データ（Ｈ１−２）を保持し、そのパケット識別データ（Ｈ１−２）を、未送信オーダテーブル１３３ｃの２段目オーダに設定したものとする（Ｓ４０４）
図１４は、ステップＳ４０４処理終了時点の、受信パケット処理部１３及びＣＡＭ１４内の各テーブルの状態について示している。
【０１１８】
図１４では、ステップＳ４０４処理終了時点で、パケットデータＰ２、Ｐ３の１段目の検索オーダ（Ｈ２−１、Ｈ３−１）に対する検索結果（Ｒ２−１、Ｒ３−１）は、未送信検索結果テーブル１４ｂに登録されているものとする。
【０１１９】
また、図１４では、パケットデータＰ１（パケット番号１）の２段目の検索オーダが発生しているため、２段目オーダ待ちテーブル１３３ｂに、パケット番号が１のデータが追加されている。
【０１２０】
次に、ＣＡＭ１４により、パケットデータＰ２、Ｐ３の１段目の検索オーダ（Ｈ２−１、Ｈ３−１）に対する検索結果（Ｒ２−１、Ｒ３−１）が、検索管理部１３３に返答されたものとする（Ｓ４０５）。
【０１２１】
そして、検索管理部１３３からＣＡＭ１４へ、パケットデータＰ１の２段目の検索オーダ（Ｈ１−２）が送信され、未完了検索オーダテーブル１４ａに登録され、さらに、ＣＡＭ１４によりその検索オーダが実行されたものとする（Ｓ４０６）。
【０１２２】
図１５は、ステップＳ４０６処理終了時点の、受信パケット処理部１３及びＣＡＭ１４内の各テーブルの状態について示している。
【０１２３】
ここでは、検索管理部１３３により、受取った検索結果（Ｒ２−１、Ｒ３−１）の内容から、パケットデータＰ２、Ｐ３について２段目の検索オーダの要否が判定されるが、不要と判定されたものとする。そのため、パケットデータＰ２、Ｐ３については、検索管理部１３３による検索処理は終了となり、検索管理部１３３の指示により、パケット管理テーブル１３１ａで、パケットデータＰ２、Ｐ３に係る検索完了状態の項目に、検索完了を示す「１」が入力される（図１５参照）。ただし、ここでは、パケットデータＰ２、Ｐ３よりもパケット番号が先のパケットデータＰ１（パケット番号：１）について検索処理が完了していないため、この時点では、パケットデータＰ２、Ｐ３については、検索管理部１３３からＮＰＵ１５へ送信されない。
【０１２４】
また、図１５では、パケットデータＰ１（パケット番号：１）の２段目の検索オーダが、ＣＡＭ１４へ送信されているため、検索オーダテーブル１３３ａに、パケット番号が１でオーダ段数が２のデータが追加されている。
【０１２５】
さらに、図１５では、パケットデータＰ１の２段目の検索オーダ（Ｈ１−２）が実行されているので、検索結果（Ｒ１−２）が、未送信検索結果テーブル１４ｂに登録されている。
【０１２６】
次に、ＣＡＭ１４により、パケットデータＰ１の２段目の検索オーダ（Ｈ１−２）の検索結果（Ｒ１−２）が、検索管理部１３３に返答されたものとする（Ｓ４０７）。
【０１２７】
図１６は、ステップＳ４０７処理終了時点の、受信パケット処理部１３及びＣＡＭ１４内の各テーブルの状態について示している。
【０１２８】
ここでは、上述の通り、パケットデータに対する検索オーダの段数の上限は２段であるため、検索管理部１３３は、パケットデータＰ１の２段目の検索オーダ（Ｈ１−２）の検索結果（Ｒ１−２）を受取った時点で、パケットデータＰ１に関する検索処理を終了と判断できる。そのため、ステップＳ４０７の時点で、検索管理部１３３は、パケット管理テーブル１３１ａで、パケットデータＰ１に係る検索完了状態の項目に、検索完了を示す「１」が入力される（図１６参照）。この時点で、検索管理部１３３では、ＮＰＵ１５へ未送信のパケットデータのうち、最もパケット番号が小さいパケットデータＰ１の検索処理が完了するため、パケットデータＰ１（及び検索結果Ｒ１−２）を、ＮＰＵ１５へ送信することができる。そして、検索管理部１３３は、続いて、既に検索処理が完了しているパケットデータＰ２、Ｐ３（及び検索結果Ｒ２−１、Ｒ１−１）を、ＮＰＵ１５へ送信する。
【０１２９】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【０１３０】
受信パケット処理部１３では、ＣＡＭ１４のパイプライン処理機能を生かしながら、各パケットデータに対して必要な検索数のみの検索オーダ送信で済むため、ＣＡＭ１４検索性能を最大限に利用でき、装置のスループットの低下を抑えられる。
【０１３１】
例えば、従来の通信装置におけるパケット識別処理では、複数回検索が必要となったパケットデータの全検索が完了する前に、後続する１回のみの検索で済むパケットの検索の方が先に完了する場合が発生する場合があった。そして、従来のパケット識別処理で、検索処理が完了したパケットデータから順次パケット処理及び転送をする場合、受信順序と転送順序が入れ替わることになるという問題が発生していた。しかし、この実施形態の受信パケット処理部１３では、パケット管理テーブル１３１ａにより、パケットデータの受信順序を管理する。さらに、パケット処理実行部１３４は、パケット管理テーブル１３１ａに従ってパケットデータ等を出力するため、パケットデータの検索処理状況に関らず、受信した順番でパケットデータを出力することができる。
【０１３２】
また、例えば、従来の通信装置におけるパケット識別処理では、パケットデータを受信した順序で出力するために、先に受信したパケットデータの複数回検索を待ってから、後続パケットの検索オーダの転送を行なう場合にはＣＡＭの検索性能を十分に発揮できず、検索処理の効率に影響を与えるという問題があった。しかし、この実施形態の受信パケット処理部１３では、パケット管理テーブル１３１ａにより、パケットデータの受信順序が管理されている。このため、検索管理部１３３が、各パケットデータについて送信する検索オーダは、必要な回数だけで済むため、ＣＡＭ１４のパイプライン処理機能を最大限に利用することができる。
【０１３３】
（Ｂ）第２の実施形態
以下、本発明によるパケット処理装置及び方法、並びに通信装置の第２の実施形態を、図面を参照しながら詳述する。なお、この実施形態のパケット処理装置及び通信装置は、それぞれ、受信パケット処理部及びネットワーク中継装置である。
【０１３４】
（Ｂ−１）第２の実施形態の構成
第２の実施形態のネットワーク中継装置１０Ａでは、１段目の検索オーダの検索結果を用いて２段目の検索オーダの要否、及その検索オーダの内容を決定する処理等が、第１の実施形態のネットワーク中継装置１０と異なっている。
【０１３５】
第２の実施形態のネットワーク中継装置１０Ａの機能的構成も図２を用いて表すことができる。なお、上述の通り、図２における括弧内の符号は、第２の実施形態でのみ用いられる符号である。
【０１３６】
ネットワーク中継装置１０Ａでは、受信パケット処理部１３が受信パケット処理部１３Ａに置き換わっている点で、第２の実施形態のネットワーク中継装置１０と異なっている。
【０１３７】
図１７は、第２の実施形態の受信パケット処理部１３Ａの機能的構成について示したブロック図である。
【０１３８】
受信パケット処理部１３Ａでは、検索管理部１３３が、検索管理部１３３Ａに置き換わっている点で第１の実施形態の受信パケット処理部１３と異なっている。
【０１３９】
検索管理部１３３Ａでは、１段目の検索オーダの検索結果を用いて２段目の検索オーダの要否、及その検索オーダの内容を決定する処理等が、第１の実施形態の検索管理部１３３と異なっている。また、検索管理部１３３Ａでは、２段目判定テーブル１３３ｄ及び２段目制御テーブル１３３ｅが追加されている点で、第１の実施形態の検索管理部１３３と異なっている。
【０１４０】
次に、２段目判定テーブル１３３ｄ及び２段目制御テーブル１３３ｅの内容と、検索管理部１３３Ａの処理について説明する。
【０１４１】
図１８は、２段目判定テーブル１３３ｄの内容例について示した説明図である。
【０１４２】
２段目判定テーブル１３３ｄでは、図１８に示すように、「検出アドレス」の情報に対応付けて「処理コード」の情報が格納されている。
【０１４３】
「検出アドレス」には、ＣＡＭ１４のメモリアドレスのいずれか（すなわち、予定する１段目の検索オーダの検索結果のいずれかの情報）が格納されている。
【０１４４】
「処理コード」には、「検出アドレス」から、２段目の検索オーダを行うか否かを判定する処理等を行うための処理コードが格納されている。
【０１４５】
図１８では、説明を簡易にするため、「検出アドレス」には、０、１、２、…、ｍ、…、ｎのいずれかのアドレス情報が格納されているものとして説明している。すなわち、「検出アドレス」（０、１、２、…、ｍ、…、ｎ）は、ＣＡＭ１４のメモリアドレスと対応するインデックスとなっている。また、図１８では、検出アドレス「０」に対応する処理コードを「Ｃ１」、検出アドレス「１」に対応する処理コードを「Ｃ２」、検出アドレス「２」に対応する処理コードを「Ｃ１」と示している。
【０１４６】
検索管理部１３３Ａでは、１段目の検索オーダの検索結果として、ＣＡＭ１４のメモリアドレス（検出アドレス）を取得すると、２段目判定テーブル１３３ｄから、そのメモリアドレス（検出アドレス）に対応する処理コードを取得する。そして、検索管理部１３３Ａは、取得した処理コードを、２段目制御テーブル１３３ｅに適用して、当該１段目の検索オーダに対する２段目の検索オーダの要否及びその検索オーダの内容の決定を行う。
【０１４７】
図１９は、２段目制御テーブル１３３ｅの内容例について示した説明図である。
【０１４８】
２段目制御テーブル１３３ｅには、「処理コード」の情報に対応付けて、「２段目有無」、「識別子タイプ」、「検索範囲」（「検索開始アドレス」、「検索終了アドレス」）の情報が格納されている。
【０１４９】
「処理コード」には、２段目判定テーブル１３３ｄに対応する処理コードが格納されている。
【０１５０】
「２段目有無」は、２段目の検索オーダの要否を示す情報であり、ここでは、「有」又は「無」のいずれかの情報が格納されるものとする。「２段目有無」が「有」の場合は、２段目の検索オーダが必要であることを示しており、「無」の場合は、２段目の検索オーダの必要がないことを示しているものとする。
【０１５１】
そして、２段目制御テーブル１３３ｅにおいて、「２段目有無」が「有」となっているデータ（行）については、対応する２段目検索オーダの内容を示す情報（パラメータ）として、「識別子タイプ」、検索範囲（「検索開始アドレス」、「検索終了アドレス」）が記述されている。一方、２段目制御テーブル１３３ｅにおいて、「２段目有無」が「無」となっているデータ（行）については、「識別子タイプ」、「検索範囲」（「検索開始アドレス」、「検索終了アドレス」）の情報は空欄となる。
【０１５２】
「識別子タイプ」は、２段目の検索オーダに用いるパケット識別データ（識別子）のタイプ（抽出項目）を示している。図１９では、「識別子タイプ」には、パケット識別データの抽出項目を示すコードとして、「Ａ」、「Ｂ」等の情報が格納されているものとする。図１９においては図示を省略しているが、検索管理部１３３Ａには、この「識別子タイプ」のコードに対応する具体的な内容（パケット識別データの抽出項目）が別のテーブル等に格納されているものとする。ここでは、「識別子タイプ」における「Ｂ」というコードは、検索対象となるパケットデータのＲＴＰヘッダの所定の項目（例えば、ペイロードヘッダのモード番号等）の情報を示すものとする。
【０１５３】
「検索範囲」は、検索管理部１３３Ａが２段目の検索オーダをＣＡＭ１４に与える際に指定する検索アドレスの範囲を示すものである。「検索範囲」の情報は、「検索開始アドレス」及び「検索終了アドレス」の情報で構成されている。「検索開始アドレス」及び「検索終了アドレス」は、ＣＡＭ１４に、２段目の検索オーダを実施させる際に、「検索開始アドレス」から「検索終了アドレス」までの範囲を検索させることを示している。なお、２段目の検索オーダの実行にあたって、特に検索範囲を指定する必要が無い場合は、２段目制御テーブル１３３ｅからこの項目の情報は削除するようにしても良い。
【０１５４】
検索管理部１３３Ａは、２段目判定テーブル１３３ｄから取得した処理コードを、２段目制御テーブル１３３ｅに適用して、対応する「２段目有無」、「識別子タイプ」、「検索範囲」の情報を取得する。
【０１５５】
そして、取得した「２段目有無」が「有」だった場合には、検索管理部１３３Ａは、当該パケットデータについて、２段目の検索オーダに用いるパケット識別データ（「識別子タイプ」が示す抽出項目のデータ）の抽出を、識別子抽出部１３２に指示して実施させる。そして、検索管理部１３３Ａは、識別子抽出部１３２から取得したパケット識別データについて、「検索範囲」の範囲内で検索させる２段目の検索オーダをＣＡＭ１４に送信する。
【０１５６】
（Ｂ−２）第２の実施形態の動作
次に、以上のような構成を有する第２の実施形態のネットワーク中継装置１０Ａにおける受信パケット処理部１３Ａの動作（実施形態のパケット処理方法）について説明する。
【０１５７】
第２の実施形態の受信パケット処理部１３Ａでは、検索管理部１３３Ａにおける２段目の検索オーダの要否、及びその検索オーダの内容の決定処理が、第１の実施形態と異なっているだけである。したがって、以下では、第２の実施形態の受信パケット処理部１３Ａについて、第１の実施形態の動作と異なる部分についてだけ説明する。
【０１５８】
第２の実施形態の受信パケット処理部１３Ａでは、第１の実施形態における上述の図１１の処理（検索管理部１３３が、ＣＡＭ１４から検索オーダの検索結果を受信した場合の処理）が異なっている。
【０１５９】
図２０は、第２の実施形態の検索管理部１３３Ａが、ＣＡＭ１４から検索オーダの検索結果を受信した場合の処理について説明したフローチャートである。すなわち、第２の実施形態では、第１の実施形態における上述の図１１に示すフローチャートの処理が、図２０に示すフローチャートの処理に置き換わっている。
【０１６０】
以下、図２０を用いて、第２の実施形態の検索管理部１３３Ａの動作について説明する。
【０１６１】
検索管理部１３３Ａは、ＣＡＭ１４から、検索オーダの検索結果を受取ると（Ｓ５０１）、検索オーダテーブル１３３ａを参照し、当該検索結果のパケット番号及び、そのパケット番号のオーダ段数のデータを取得する（Ｓ５０２）。
【０１６２】
次に、検索管理部１３３Ａは、当該検索結果のオーダ段数を確認し（Ｓ５０３）、２段目だった場合には、後述するステップＳ５１０の処理から動作し、１段目だった場合には後述するステップＳ５０４の処理から動作する。
【０１６３】
上述のステップＳ５０３において、当該検索結果のオーダ段数が１段目と確認された場合には、検索管理部１３３Ａは、当該検索結果（ＣＡＭ１４のメモリアドレス）に対応する処理コード（２段目制御テーブル１３３ｅのインデックス）を、２段目判定テーブル１３３ｄから取得する（Ｓ５０４）。
【０１６４】
次に、検索管理部１３３Ａは、取得した処理コードに対応する「２段目有無」のフラグ情報を、２段目制御テーブル１３３ｅから取得する（Ｓ５０５）。
【０１６５】
次に、検索管理部１３３Ａは、取得した「２段目有無」のフラグ情報の内容を確認し、当該１段目の検索オーダの検索結果に対する、２段目の検索オーダの要否を判定する（Ｓ５０６）。そして、検索管理部１３３Ａは、２段目の検索オーダが必要と判定した場合は、後述するステップＳ５０７の処理から動作し、不要と判定した場合には、後述するステップＳ５１０の処理から動作する。
【０１６６】
上述のステップＳ５０６の処理において、２段目の検索オーダが必要と判定された場合には、検索管理部１３３Ａは、上述のステップＳ５０４で取得した処理コードに対応する「識別子タイプ」、「検索範囲」の情報を、２段目制御テーブル１３３ｅから取得する（Ｓ５０７）。
【０１６７】
次に、検索管理部１３３Ａは、当該パケットデータについて、２段目の検索オーダに用いるパケット識別データ（「識別子タイプ」が示す抽出項目のデータ）の抽出を、識別子抽出部１３２に指示して実施させる。そして、検索管理部１３３Ａは、識別子抽出部１３２から取得したパケット識別データを、「検索範囲」の範囲内で検索させる２段目の検索オーダについて、未送信オーダテーブル１３３ｃに設定する（Ｓ５０８）。
【０１６８】
そして、検索管理部１３３Ａは、２段目オーダ待ちテーブル１３３ｂに、上述のステップＳ５０８で設定した検索オーダに係るパケットデータのパケット番号を設定した新たなデータを追加（ライトポイントを＋１する）し（Ｓ５０９）、上述の図１０のステップＳ２０２の処理から動作する。
【０１６９】
一方、上述のステップＳ５０３で、受信した検索結果に係る検索オーダの段数が２段目と判定された場合、又は、上述のステップＳ５０６で、２段目の検索オーダが不要と判定された場合には、検索管理部１３３Ａは、パケット管理テーブル１３１ａ内で、受信した検索結果に係るパケットデータの検索完了状態に検索完了を示す「１」を入力し（Ｓ５１０）、上述の図１０のステップＳ２０２の処理から動作する。
【０１７０】
次に、検索管理部１３３Ａが、上述の図２０のフローチャートに従って動作した場合の具体的な動作例について図２１を用いて説明する。
【０１７１】
図２１では、ＣＡＭ１４には、ｎ＋１個のエントリ（メモリＭ０〜Ｍｎ）が設定されており、メモリＭ０〜Ｍｎのメモリアドレスは、それぞれ０〜ｎであるものとする。そして、ＣＡＭ１４は、検索管理部１３３Ａから検索オーダを受信すると、その検索オーダに係る検索キー（パケット識別データ）が格納されたメモリアドレス（０〜ｎのいずれかの値）を応答するものとする。
【０１７２】
そして、図２１では、最初に検索管理部１３３ＡからＣＡＭ１４に、１段目の検索オーダが送信され、ＣＡＭ１４では、当該検索オーダの検索キー（パケット識別データ）がメモリＭ１に格納されたものと一致（ヒット）したものとする。そして、ＣＡＭ１４は、メモリＭ１のメモリアドレス（１）を、検索管理部１３３Ａへ返答したものとする。
【０１７３】
そして、検索管理部１３３Ａでは、上述の図２０のフローチャートに従った処理が行われる。
【０１７４】
検索管理部１３３Ａでは、ＣＡＭ１４から１段目の検索オーダの検索結果（１）を取得すると、ステップＳ５０４により、２段目判定テーブル１３３ｄから、検索結果（検出アドレス：１）に対応する処理コード（Ｃ２）が取得される。
【０１７５】
そして、検索管理部１３３Ａでは、上述のステップＳ５０５により、取得した処理コード（Ｃ２）に対応する「２段目有無」のフラグ情報（有）が取得され、２段目の検索オーダが必要と判断される。
【０１７６】
そして、検索管理部１３３Ａでは、上述のステップＳ５０７により、処理コード（Ｃ２）に対応する識別子タイプ（Ｂ）及び検索範囲（ｍ、ｎ）の情報が取得される。
【０１７７】
そして、検索管理部１３３Ａでは、上述のステップＳ５０８、Ｓ５０９により、２段目の検索オーダに用いるパケット識別データが保持され、保持したパケット識別データを用いた２段目の検索オーダが設定される。具体的には、まず、検索管理部１３３Ａは、当該パケットデータから識別子タイプ（Ｂ）に対応する抽出項目（ＲＴＰヘッダの所定の項目）の情報抽出を、識別子抽出部１３２に指示する。そして、検索管理部１３３Ａは、識別子抽出部１３２から取得したパケット識別データを、「検索範囲」の範囲内で検索させる２段目の検索オーダについて、未送信オーダテーブル１３３ｃに設定する。
【０１７８】
なお、この場合、検索管理部１３３Ａにより設定された２段目の検索オーダの検索範囲は、ｍ〜ｎに設定されている。したがって、ＣＡＭ１４では、当該検索オーダの検索キー（パケット識別データ）について、メモリＭｍ〜メモリＭｎの範囲内でのみ検索されることになる。
【０１７９】
（Ｂ−３）第２の実施形態の効果
第２の実施形態では、検索管理部１３３Ａに２段目判定テーブル１３３ｄ及び２段目制御テーブル１３３ｅを備えることにより、２段目の検索オーダの要否及びその内容の決定処理を容易にしている。
【０１８０】
（Ｃ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１８１】
（Ｃ−１）第１の実施形態における上述の図２に示すネットワーク中継装置１０は、本発明の通信装置を実現するための構成の一例であって、例えば、本発明のパケット処理装置（受信パケット処理部１３）により、受信したパケットを識別し、その識別結果に応じて受信したパケットを処理する通信装置であれば、その他の構成については限定されないものである。
【０１８２】
（Ｃ−２）上記の各実施形態では、一つのパケットデータに対する検索オーダの最大回数（段数）は２回としたが、３回以上の検索オーダが発生する場合には、「２回目オーダ待ちテーブル」に相当するテーブルを増やすことにより、上記の実施形態と同様に処理することができる。例えば、一つのパケットデータに対する検索オーダの最大回数が３回である場合には、上記の実施形態の受信パケット処理部１３における検索管理部１３３に、３回目の検索オーダを管理する「３回目オーダ待ちテーブル」（２回目オーダ待ちテーブルと同様の構成を備えるテール）を追加することにより実現することができる。
【０１８３】
（Ｃ−３）上記の各実施形態では、本発明の通信装置を、ＩＰネットワーク上に備えられたネットワーク中継装置（ネットワーク中継装置１０）に適用した例について説明したが、例えば、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）等のその他のプロトコルを用いたネットワークにおける、パケット識別機構を必要とするネットワーク装置に適用するようにしても良い。
【０１８４】
（Ｃ−４）第２の実施形態で、パケットデータに対する検索オーダの最大回数（段数）が３回以上となる場合には、２段目の検索オーダの検索結果を用いて、３段目の検索オーダの要否及び内容を決定するための判定テーブル（２段目判定テーブル１３３ｄと同様の形式のテーブル）及び制御テーブル（２段目制御テーブル１３３ｅと同様の形式のテーブル）を配置する必要がある。
【０１８５】
（Ｃ−５）第２の実施形態では、２段目判定テーブル１３３ｄと、２段目制御テーブル１３３ｅの２つのテーブルを用いて、２段目の検索オーダの要否及び、その検索オーダの内容について決定しているが、これらの２つのテーブルを１つにまとめても良い。すなわち、１段目の検索結果に応じて、２段目の検索オーダの要否及び、その検索オーダの内容について決定することができれば、その決定に用いるテーブルの数や形式は限定されないものである。
【０１８６】
例えば、第２の実施形態では、図２１に示すように、１段目の検索オーダの検索結果から、２段目判定テーブル１３３ｄを用いて処理コードを取得し、さらに、取得した処理コードに応じた情報を２段目制御テーブル１３３ｅから取得しているが、２段目制御テーブル１３３ｅだけて同様の処理を行うようにしても良い。例えば、２段目制御テーブル１３３ｅの処理コードの部分を、検出アドレスに置き換えることにより、１つのテーブルで、第２の実施形態と同様の決定処理を行うことができる。
【符号の説明】
【０１８７】
１０…ネットワーク中継装置、１１、１１−１〜１１−Ｎ…物理媒体、１２…物理終端部、１３…受信パケット処理部、１３１…パケットバッファ部、１３１ａ…パケット管理テーブル、１３２…識別子抽出部、１３３…検索管理部、１３３ａ…検索オーダテーブル、１３３ｂ…２段目オーダ待ちテーブル、１３３ｃ…未送信オーダテーブル、１３４…パケット処理実行部、１４…ＣＡＭ、１４ａ…未完了検索オーダテーブル、１４ｂ…未送信検索結果テーブル、１５…ＮＰＵ、１６…送信パケット処理部。
【図１】
2012050052.tif 000003
【図２】
2012050052.tif 000004
【図３】
2012050052.tif 000005
【図４】
2012050052.tif 000006
【図５】
2012050052.tif 000007
【図６】
2012050052.tif 000008
【図７】
2012050052.tif 000009
【図８】
2012050052.tif 000010
【図９】
2012050052.tif 000011
【図１０】
2012050052.tif 000012
【図１１】
2012050052.tif 000013
【図１２】
2012050052.tif 000014
【図１３】
2012050052.tif 000015
【図１４】
2012050052.tif 000016
【図１５】
2012050052.tif 000017
【図１６】
2012050052.tif 000018
【図１７】
2012050052.tif 000019
【図１８】
2012050052.tif 000020
【図１９】
2012050052.tif 000021
【図２０】
2012050052.tif 000022
【図２１】
2012050052.tif 000023