(57)【要約】【課題】本発明は、入力パケットを複数のパケット解析モジュールで分散処理することで、全体としての中継処理性能を向上することができるパケット処理装置を提供することを目的とする。【解決手段】入力されたパケットに一連番号を付加して分配する分配手段２０と、分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段２２１〜２２ａと、複数のパケット解析手段からパケットを供給され、パケットに付加されている一連番号順に並べ替えて出力する順序補正手段２４を有することにより、入力パケットを複数のパケット解析手段で分散処理することで、全体としての中継処理性能を向上することができる。【選択図】      図２
2004158903.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパケットに一連番号を付加して分配する分配手段と、
前記分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、
前記複数のパケット解析手段からパケットを供給され、前記パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を
有することを特徴とするパケット処理装置。
【請求項２】
請求項１記載のパケット処理装置において、
前記分配手段は、入力されたパケット内の所定ビットの値に応じて前記複数のパケット解析手段に分配することを特徴とするパケット処理装置。
【請求項３】
請求項１または２記載のパケット処理装置において、
前記分配手段は、前記パケット解析モジュール単位に設けた複数の出力バッファ手段を有し、
データ滞留量が閾値を超えた出力バッファ手段に対し、入力されたパケットの分配を停止することを特徴とするパケット処理装置。
【請求項４】
請求項１記載のパケット処理装置において、
前記順序補正手段は、前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段を
有することを特徴とするパケット処理装置。
【請求項５】
請求項４記載のパケット処理装置において、
前記バッファ制御手段は、前記アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、前記パケットバッファ手段のアドレスの読み出しを行うことを特徴とするパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット処理装置に関し、パケットの宛先、発信元等各種の情報を解析するパケット処理装置に関する。
【０００２】
【従来の技術】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等のパケットを処理するルータ装置等においては、内部にパケット解析モジュールを装備し、パケットの宛先、発信元等各種の情報を解析した結果に従い、パケット転送処理を行っている。
【０００３】
一般的には、上記パケット解析モジュールは、ネットワークプロセッサ等のデバイスが適用されているのが現状であり、パケットの解析にはＣＡＭデバイスが用いられる。ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）即ち連想メモリは、メモリ（ＣＡＭエントリ）に格納されているデータをキーとして入力し、そのキーが格納されているＣＡＭエントリのアドレスを返却する機能を実現する。
【０００４】
ＩＰルータ装置は、電話交換機等と違ってコネクションレス通信であり、入力されるパケットをリアルタイムに解析し、その宛先、転送可否を判定するのが特徴である。
【０００５】
図１は、ＩＰルータ装置の一例の構成図を示す。同図中、回線終端部１０１〜１０Ｎそれぞれは回線を終端しており、各回線から受信したパケットはパケット処理部１２１〜１２Ｎに供給される。パケット処理部１２１〜１２Ｎはネットワークプロセッサ（ＮＰ）を有し、パケットの宛先や発信元等各種の情報を解析してパケットと共にスイッチファブリック１４に供給する。スイッチファブリック１４は上記解析結果に応じてパケットをスイッチングし、スイッチングされたパケットはパケット処理部１２１〜１２Ｎでパケットの宛先や発信元等各種の情報を解析されたのち、回線終端部１０１〜１０Ｎを経て宛先の回線に送出される。
【０００６】
また、この他にも、可変長パケットを扱うシステムとしては、例えば、特許文献１に記載のようなものもある。
【０００７】
【特許文献１】
特開２０００−１０１６３８号公報
【０００８】
【発明が解決しようとする課題】
近年、データの高速化が進み、ルータ自体の容量、転送速度も上昇する傾向にあるが、この場合、パケット解析モジュール（ＰＦＥ：Ｐａｃｋｅｔ  Ｆｏｒｗａｒｄｉｎｇ  Ｅｎｇｉｎｅ）の処理速度は転送速度に応じて高くしなければならない。
【０００９】
しかしながら、パケット解析モジュールとして用いられるネットワークプロセッサに代表されるようなデバイスは、処理能力に限界があり、転送速度とパケット長によっては、１パケットについて行わなくてはならない処理が、パケット転送時間内に完了しないケースも発生してくる。更に、物理速度が高くなれば、この傾向は顕著になりパケット解析モジュールの中継性能の劣化を招く可能性が高くなるという問題点があった。
【００１０】
本発明は、上記の点に鑑みなされたものであり、入力パケットを複数のパケット解析モジュールで分散処理することで、全体としての中継処理性能を向上することができるパケット処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
請求項１に記載の発明は、入力されたパケットに一連番号を付加して分配する分配手段と、分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、複数のパケット解析手段からパケットを供給され、パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を有することにより、
入力パケットを複数のパケット解析手段で分散処理することで、全体としての中継処理性能を向上することができる。
【００１２】
請求項２に記載の発明では、分配手段は入力されたパケット内の所定ビットの値に応じて前記複数のパケット解析手段に分配することにより、
所定ビットの値が同じパケットを同じパケット解析手段に分配することができる。
【００１３】
請求項３に記載の発明では、分配手段は、パケット解析モジュール単位に設けた複数の出力バッファ手段を有し、データ滞留量が閾値を超えた出力バッファ手段に対し、入力されたパケットの分配を停止することにより、
複数のパケット解析モジュールそれぞれの負荷を平均化することができる。
【００１４】
請求項４に記載の発明では、順序補正手段は、複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、複数のパケット解析手段から供給されたパケットを格納したパケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じたアドレス管理手段のエントリに格納し、アドレス管理手段のエントリから一連番号順にパケットバッファ手段のアドレスを読み出し、パケットバッファ手段から一連番号順にパケットを読み出して出力するバッファ制御手段を有することにより、
複数のパケット解析手段に分配されたパケットが可変長であっても、入力順にパケットを出力することができる。
【００１５】
請求項５に記載の発明では、バッファ制御手段は、アドレス管理手段の全エントリにパケットバッファ手段のアドレスが格納されたのち、パケットバッファ手段のアドレスの読み出しを行うことにより、
複数のパケット解析手段に分配されたパケットを入力順にパケットを出力することができる。
【００１６】
【発明の実施の形態】
図２は、本発明のパケット処理装置の一実施例のブロック図を示す。このパケット処理装置は、例えば図１のパケット処理部１２１〜１２Ｎそれぞれに使用される。
【００１７】
図２において、入力パケットはディストリビュータ２０に入力され、パケット解析モジュール（ＰＦＥ）２２１〜２２ａに分配される。パケット解析モジュール（ＰＦＥ）２２１〜２２ａそれぞれで宛先、発信元等各種の情報を解析されたパケットは順序補正バッファ２４に格納され、順序補正バッファ２４から入力順に読み出され、スイッチファブリックに向けて出力される。
【００１８】
ここで、ディストリビュータ２０の入力物理帯域をＢＷとしたとき、ＢＷ／ａ以上の入出力物理帯域を持つａ個もしくはそれ以上のパケット解析モジュール２２１〜２２ａを並列に配置した構成である。ディストリビュータ２０の出力は、パケット解析モジュール２２１〜２２ａの入力とインタフェースがとられ、パケット解析モジュール２２１〜２２ａそれぞれの出力は順序補正バッファ２４の入力とインタフェースがとられている。
【００１９】
更に、順序補正バッファ２４の出力は物理帯域ＢＷ以上を持つ構成とする。この構成により、物理帯域ＢＷを持つパケット処理装置を複数のパケット解析モジュールで仮想的に実現できる。
【００２０】
図３は、ディストリビュータ２０の一実施例のブロック図を示す。ディストリビュータ２０は、ＳＮ付与部３０、解析振り分け部３２、出力ＦＩＦＯ３４１〜３４ａの３種のブロックから構成されており、入力されるパケットを後段の複数のパケット解析モジュールのいずれかに振り分けて該当出力ポートに転送する。
【００２１】
ＳＮ付与部（ＳＮ＿ＧＥＮ）３０は、最終段の順序補正制御のために、入力パケットにシーケンスナンバー（ＳＮ）を付与し、入力パケットの特定フィールドに上記のシーケンスナンバーが記入される。このシーケンスナンバーは、０〜Ｎの値をサイクリックに付与していくが、整数Ｎの値については、システムで提供する最小パケット長Ｌｍｉｎ、最大パケット長Ｌｍａｘをパケット解析モジュールＰ個で処理する場合、次式で表される。
【００２２】
整数Ｎ≧整数Ｎｉｎｔ×（Ｐ−１）＋１
ただし、整数Ｎｉｎｔ＞Ｌｍａｘ／Ｌｍｉｎ
これにより、整数Ｎは、あるパケット解析モジュールに最大長パケットが振り分けられ、それ以外のすべてのパケット解析モジュールに全て最小パケットが振り分けられる最悪ケースにおいて、最大長パケットがあるパケット解析モジュールから出力され始めたてから完了するまでに、順序補正バッファに到着しうる全パケット数である。
【００２３】
解析振り分け部３２は、各パケットを複数のパケット解析モジュールに振り分けるが、この振り分けについては、いくつかの方法がある。基本的には、パケット内の特定エリア（宛先アドレス，発信元アドレス、または、その双方）を参照し、その中の所定ビットをコード値とみなし、そのコードに対応するパケット解析モジュールに出力する。これにより、宛先アドレスや発信元アドレスが同じパケットを同一のパケット解析モジュールに分配して、宛先アドレスや発信元アドレスが同じパケットの順序を保つことができる。
【００２４】
なお、このような単純なコードではなく、パケット内の所定ビットを特定の式で除算した余りによる振り分け等も可能である。
【００２５】
解析振り分け部３２はこの振り分け判定に従い、決定された出力ポートから出力ＦＩＦＯ３４１〜３４ａのいずれかに該当パケットを書き込み、出力ＦＩＦＯ３４１〜３４ａそれぞれの出力はパケット解析モジュール２２１〜２２ａの物理帯域速度で読み出される。
【００２６】
ここで、上記の方法で振り分けを行った場合、入力パケットのデータパターンによっては、パケット解析モジュール２２１〜２２ａにデータの偏りが発生する場合があり、偏りが発生した場合には、それを補正し負荷の低いパケット解析モジュールへの迂回を制御して、各パケット解析モジュールの負荷を平均化する必要がある。このため、出力ＦＩＦＯ３４１〜３４ａそれぞれには二種類の負荷計測用のメータを配置する。
【００２７】
データ容量監視メータ（ＤＣＴ）３５は、パケット解析モジュール単位に装備している出力ＦＩＦＯ３４１〜３４ａのデータ滞留量を監視するものである。フラグ制御部３７には、この計測値に対する閾値が設定可能である。フラグ制御部３７は任意の時刻における滞留量を閾値と比較し、閾値を上回っていれば負荷フラグを１にセットする。なお、閾値はヒステリシス制御が可能なように、負荷フラグのセット／リセットで個別に設けることも可能である。
【００２８】
パケット数監視メータ（ＰＣＴ）３６は、出力ＦＩＦＯの内部にあるパケット数を監視する。フラグ制御部３７には、データ容量監視メータ３５同様に閾値が設定可能である。フラグ制御部３７は、この閾値との比較により、閾値を上回っていれば負荷フラグを１にセットする。つまり、負荷フラグは二種のメータのいずれかの閾値オーバーで１にセットされることになる。この負荷フラグの状態は、解析振り分け部３２に通知される。なお、少なくともデータ容量監視メータ３５を有していれば良く、パケット数監視メータ３６は省略することも可能である。
【００２９】
解析振り分け部３２では、前述の論理により出力パケット解析モジュールを決定するが、このときに出力ＦＩＦＯ３４１〜３４ａからの負荷フラグを参照する。仮に、判定結果がｘ番目のパケット解析モジュールに対応する出力ＦＩＦＯを指しており、かつ、この出力ＦＩＦＯが過負荷状態にあるときには、ｘ＋１番目のパケット解析モジュールに振り分けを行う。Ｘ＋１番目も過負荷状態であればｘ＋２番目のパケット解析モジュールに振り分けを行う。
【００３０】
順序補正バッファ２４は、ａ個のパケット解析モジュール２２１〜２２ａからパケットを受信し、これを多重化して出力する。但し、この出力においてはディストリビュータ２０の入力時と同じ順序でパケットが出力される必要がある。このため、ディストリビュータ２０で付与されたシーケンスナンバーを基にパケットの順序補正を行う。
【００３１】
パケットは可変長であるため、どのパケット解析モジュールからどの長さのパケットが到着するかは確定できないが、シーケンスナンバーが一巡する中での順序補正を行えば復元は可能である。
【００３２】
図４は、順序補正バッファ２４の第１実施例のブロック図を示す。同図中、パケット情報抽出部４０１〜４０ａはパケット解析モジュール２２１〜２２ａから供給されるパケットはパケット情報抽出部４０１〜４０ａから一次バッファ４２１〜４２ａを経て、バッファ制御部４４を通してパケットバッファ４６に格納される。
【００３３】
パケット情報抽出部４０１〜４０ａはパケット解析モジュール２２１〜２２ａから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部４４を通してアドレス管理テーブル４８に格納する。
【００３４】
パケットバッファ４６は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル４８は、パケットバッファ４６に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル４８は、シーケンスナンバーに対応した０〜Ｎのアドレスのエントリを持つ。
【００３５】
パケット解析モジュール２２１〜２２ａからパケットが到着すると、そのパケットを到着順にパケットバッファ４６に書き込む。次に、書き込んだパケットのシーケンスナンバーを参照し、アドレス管理テーブル４８の上記シーケンスナンバーに該当するアドレスのエントリに、到着したパケットを書込んだパケットバッファ４６における先頭アドレスとパケット長及び有効なエントリであることを表すタグビット（値１）を書き込んで、このエントリを登録する。
【００３６】
アドレス管理テーブル４８の全アドレスのタグビットが値１となって、パケットバッファ４６にシーケンスナンバー０〜Ｎのパケットが全て格納されていることがバッファ制御部４４にて認識されると、バッファ制御部４４は、読み出しポインタ（Ｒｄｐ）に基づいて、アドレス管理テーブル４８のアドレス０から順に各エントリの内容、つまり、先頭アドレス及びパケット長を読み出し、パケットバッファ４６の先頭アドレスで指示されるアドレスからパケット長だけパケットデータを読み出すことにより、パケットバッファ４６からシーケンスナンバー順にパケットを読み出して行く。
【００３７】
そして、パケットバッファ４６からの各パケットの読み出しが完了したらバッファ制御部４４はアドレス管理テーブル４８の読み出しパケットに対応するアドレスのタグビットを値０にクリアすることでエントリが空いたことを示す。そして、読み出しポインタ（Ｒｄｐ）をインクリメントして、上記の処理を繰り返す。この処理により、パケットバッファ４６から読み出されるパケットの順序は、ディストリビュータ２０に入力時の順序と同一となる。
【００３８】
この順序補正において、パケット処理装置内で正常なデータ伝送が行われている場合には、シーケンスナンバーの欠落等が無く論理的な矛盾を来さないが、パケット処理装置内の伝送路の間欠障害やビットエラー等により、シーケンスナンバーが欠落したり重複した場合の異常処理が問題となる。
【００３９】
このため、アドレス管理テーブル４８に対して、順序補正リカバリ機構を設ける。パケットバッファ４６にパケットを格納する毎に、バッファ制御部４４はカウンタ４７を１だけインクリメントし、パケットバッファ４６からパケットを読み出す毎に１だけデクリメントする。
【００４０】
パケット入力数と出力数が一致する正常時には、カウンタ４７は一定値を維持することになるが、パケットロス発生時は順序補正からの出力が停止するため、カウンタが増加してゆくことになる。このカウンタ値を例えばＮ／２を閾値として監視することで障害を検出することができる。
【００４１】
障害再開時はディストリビュータ２０のＳＮ生成初期値を０に戻し、バッファ制御部４４の読み出しポインタ（Ｒｄｐ）の値を０に戻し、更に、パケットロス検出用のカウンタ４７を０に戻すことで処理を再開する。
【００４２】
なお、パケットロス以外にも、順序補正バッファ２４の入力部において、パケットデータに対してパリティ，ＣＲＣ等を用いてエラー監視を行い、その結果がエラーであった場合や、パケット解析モジュール２２１〜２２ａにおいて障害を検出した場合にも同様の再開処理を行う。
【００４３】
図５は、順序補正バッファ２４の第２実施例のブロック図を示す。同図中、図４と同一部分には同一符号を付す。図５において、パケット情報抽出部４０１〜４０ａはパケット解析モジュール２２１〜２２ａから供給されるパケットはパケット情報抽出部４０１〜４０ａから一次バッファ４２１〜４２ａを経て、バッファ制御部５０を通してパケットバッファ４６に格納される。
【００４４】
パケット情報抽出部４０１〜４０ａはパケット解析モジュール２２１〜２２ａから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部５０を通してアドレス管理テーブル４８に格納する。
【００４５】
パケットバッファ４６は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル４８は、パケットバッファ４６に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル４８は、シーケンスナンバーに対応した０〜Ｎのアドレスのエントリを持つ。
【００４６】
パケット解析モジュール２２１〜２２ａからパケットが到着すると、そのパケットを到着順にパケットバッファ４６に書き込む。次に、書き込んだパケットのシーケンスナンバーを参照し、アドレス管理テーブル４８の上記シーケンスナンバーに該当するアドレスのエントリに、到着したパケットを書込んだパケットバッファ４６における先頭アドレスとパケット長及び有効なエントリであることを表すタグビット（値１）を書き込んで、このエントリを登録する。
【００４７】
バッファ制御部５０は、読み出しポインタ（Ｒｄｐ）に基づいて、アドレス管理テーブル４８のアドレス０から順にテーブルの内容、つまり、先頭アドレス及びパケット長及びタグビットを読み出し、タグビットが値１でエントリ登録が完了していることを認識すると、パケットバッファ４６からの先頭アドレスで指示されるアドレスからパケット長だけパケットデータを読み出して行く。
【００４８】
この読み出しが完了したら当該タグビットの値を０にクリアすることでアドレス管理テーブル４８のエントリが空いたことを示す。また、バッファ制御部５０は読み出しポインタをインクリメントする。この処理により、パケットバッファ４６から読み出されるパケットの順序は、ディストリビュータ２０の入力時と同一となる。
【００４９】
この順序補正において、パケット処理装置内で正常なデータ伝送が行われている場合には、シーケンスナンバーの欠落等が無く論理的な矛盾を来さないが、パケット処理装置内の伝送路の間欠障害やビットエラー等により、シーケンスナンバーが欠落したり重複した場合の異常処理が問題となる。
【００５０】
このため、アドレス管理テーブル４８に対して、順序補正リカバリ機構を設ける。アドレス管理テーブル４８に監視ウィンドウ値Ｗを設定し、バッファ制御部５０は、アドレス管理テーブル４８の読み出しポインタ（Ｒｄｐ）＋ウィンドウ値（Ｗ）よりも先のエントリに登録された場合に、パケットロスとみなして障害を検出する。なお、アドレス管理テーブル４８はアドレスＮがアドレス０に連続するリング構造として扱う。
【００５１】
シーケンスナンバーの欠落や重複がない場合には、アドレス管理テーブル４８のアドレス０から順にエントリが登録されると共に、登録されたエントリが順次読み出されるため、図６（Ａ）に示すように、アドレス管理テーブル４８の読み出しポインタ（Ｒｄｐ）＋ウィンドウ値（Ｗ）よりも先のエントリに登録されることはない。
【００５２】
しかし、シーケンスナンバーの欠落や重複が生じ、図６（Ｂ）に示すように、アドレス管理テーブル４８のアドレス３，６でエントリが登録されないパケットロスが発生した場合には、アドレス管理テーブル４８の読み出しポインタ（Ｒｄｐ）はアドレス３で停止し、アドレス管理テーブル４８の読み出しポインタ（Ｒｄｐ）＋ウィンドウ値（Ｗ）よりも先のエントリに登録されるため障害が検出される。
【００５３】
この場合の障害再開は図６（Ｃ）に示すように、アドレス管理テーブル４８のアドレス（Ｒｄｐ＋Ｗ）のエントリから逆順（降順）にエントリを遡って、連続して登録されているエントリの先頭（アドレス７）に読み出しポインタ（Ｒｄｐ）を移動し、読み出し処理を再開する。
【００５４】
第１実施例ではシーケンスナンバーの欠落や重複によりＮ／２個のパケットが破棄されるのに対し、本実施例では有効なエントリを無駄に廃棄することなく障害復旧処理を行うことが可能となる。
【００５５】
図２に戻って説明するに、サーチエンジン２６は、分散処理を行う場合の集約的な検索エンジンである。ＣＡＭ２７と、その関連データを格納するＲＡＭ２８を備え、上位ソフトウエアからルーティングエントリやフィルタリングエントリが設定されているものである。
【００５６】
パケットは負荷分散されるため、同じフローに属するパケット、即ち宛先アドレスと発信元アドレスが同じパケットが異なるパケット解析モジュールに分配される可能性があるため、複数のパケット解析モジュール２２１〜２２ａで同一のサーチエンジン２６をアクセスする。
【００５７】
このとき、複数のパケット解析モジュール２２１〜２２ａからのアクセスが同時に実施される可能性がある、これらの調停はサーチエンジン２６が行う。調停論理は、タイムスロット割り当て方式、もしくはラウンドロビン制御により行う。この調停機能のために、サーチエンジン２６の内部においては、各パケット解析モジュール２２１〜２２ａに対応して検索リクエストをキューイングするリクエストキューを配備しておく。
【００５８】
更に、サーチエンジン２６においてはカウンタを備え、ＣＡＭ２７の各エントリ毎にヒットした回数をカウントする。これにより、分散ルーティングされた同一フローのパケットのカウントが可能となり、集約的に統計情報を収集することが可能となる。
【００５９】
図７は、本発明のパケット処理装置を適用したＩＰルータ装置の一実施例の構成図を示す。同図中、回線終端部６０１〜６０Ｎそれぞれは例えば伝送速度１０Ｇｂｐｓの光回線（ＯＣ−１９２）を終端しており、各回線から受信したパケットはブレード単位で設けられたパケット処理部６２１〜６２Ｎに供給される。
【００６０】
パケット処理部６２１〜６２Ｎそれぞれは、２系統のパケット処理装置を有し、これらは図２と同様に、ディストリビュータ６４，６５と、処理速度が例えば２．５Ｇｂｐｓのパケット解析モジュール（ＮＰ）６６１〜６６４，６７１〜６７４と、順序補正バッファ６８，６９と、マルチキュー７０，７１から構成されている。なお、パケット解析モジュール（ＰＦＥ）６６１〜６６４，６７１〜６７４それぞれには図２と同様にサーチエンジンが接続されている。
【００６１】
各回線から受信したパケットはディストリビュータ６４によりパケット解析モジュール６６１〜６６４に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ６８から入力順に読み出された後、マルチキュー７０を構成する複数のキューにパケット毎にクラス（優先度）を付加してキューイングされ、優先度の高い音声パケット等を優先して取り出す如き既存のスケジューリングアルゴリズムによって各キューから取り出され、スイッチファブリック７２に供給される。
【００６２】
そして、スイッチファブリック７２でスイッチングされたパケットは、ディストリビュータ６５によりパケット処理部６２１〜６２Ｎに供給され、パケット解析モジュール６７１〜６７４に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ６９から入力順に読み出された後、マルチキュー７１を構成する複数のキューにパケット毎にクラス（優先度）を付加してキューイングされ、既存のスケジューリングアルゴリズムによって各キューから取り出され、回線終端部６０１〜６０Ｎを経て宛先の回線に送出される。
【００６３】
このように、本発明によれば、データの高速化が進んでも、新たに高速のパケット解析モジュールを開発することなく、既に存在するパケット解析モジュールを用いて高速なデータ転送処理を実現することが可能となる。また、パケット解析モジュールの処理能力を軽減させることができ、多彩な処理機能の組み込みが可能となる。
【００６４】
更に、負荷分散により同一フローが異なるパケット解析モジュールで処理されたとしても、単一のＣＡＭの設定によりルーティングが可能であり、かつ集約的な統計情報の収集も複雑なソフトウエア制御を必要としない。また、パケットロス等の障害発生時に、有効なパケットを無駄に廃棄せずに処理を再開することが可能となる。
【００６５】
なお、ディストリビュータ２０が請求項記載の分配手段に対応し、パケット解析モジュール２２１〜２２ａがパケット解析手段に対応し、順序補正バッファ２４が順序補正手段に対応し、出力ＦＩＦＯ３４１〜３４ａが出力バッファ手段に対応し、パケットバッファ４６がパケットバッファ手段に対応し、アドレス管理テーブル４８がアドレス管理手段に対応し、バッファ制御部４４がバッファ制御手段に対応し、カウンタ４７が第１障害検出手段に対応し、バッファ制御部５０が第２障害検出手段に対応し、サーチエンジン２６が検索手段に対応する。
【００６６】
（付記１）  入力されたパケットに一連番号を付加して分配する分配手段と、
前記分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、
前記複数のパケット解析手段からパケットを供給され、前記パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を
有することを特徴とするパケット処理装置。
【００６７】
（付記２）  付記１記載のパケット処理装置において、
前記分配手段は、入力されたパケット内の所定ビットの値に応じて前記複数のパケット解析手段に分配することを特徴とするパケット処理装置。
【００６８】
（付記３）  付記１または２記載のパケット処理装置において、
前記分配手段は、前記パケット解析モジュール単位に設けた複数の出力バッファ手段を有し、
データ滞留量が閾値を超えた出力バッファ手段に対し、入力されたパケットの分配を停止することを特徴とするパケット処理装置。
【００６９】
（付記４）  付記１記載のパケット処理装置において、
前記順序補正手段は、前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段を
有することを特徴とするパケット処理装置。
【００７０】
（付記５）  付記４記載のパケット処理装置において、
前記バッファ制御手段は、前記アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、前記パケットバッファ手段のアドレスの読み出しを行うことを特徴とするパケット処理装置。
【００７１】
（付記６）  付記５記載のパケット処理装置において、
前記順序補正手段は、前記パケットバッファ手段に格納されたパケット数と読み出されたパケット数の差が所定値を超えたとき障害を検出する第１障害検出手段を有することを特徴とするパケット処理装置。
【００７２】
（付記７）  付記４記載のパケット処理装置において、
前記順序補正手段は、前記パケットバッファ手段のアドレスを格納した前記アドレス管理手段のエントリが、前記パケットバッファ手段のアドレスを読み出す前記アドレス管理手段のエントリに、所定の監視ウィンドウ値を加算したエントリより先となったとき、障害を検出する第２障害検出手段を有することを特徴とするパケット処理装置。
【００７３】
（付記８）  付記７記載のパケット処理装置において、
前記順序補正手段は、前記障害検出手段が障害を検出したのち、前記パケットバッファ手段のアドレスを最後に格納した前記アドレス管理手段のエントリから遡り連続して前記パケットバッファ手段のアドレスが格納されている先頭のエントリから前記パケットバッファ手段のアドレスの読み出しを再開することを特徴とするパケット処理装置。
【００７４】
（付記９）  付記１乃至８のいずれか記載のパケット処理装置において、
前記複数のパケット解析手段からの依頼による検索処理を集約して実行する検索手段を有することを特徴とするパケット処理装置。
【００７５】
（付記１０）  付記９記載のパケット処理装置において、
前記検索手段は、複数のパケット解析手段からのアクセスを調停する機能を有することを特徴とするパケット処理装置。
【００７６】
（付記１１）  付記９記載のパケット処理装置において、
前記検索手段は、連想メモリを用いて検索を行うことを特徴とするパケット処理装置。
【００７７】
（付記１２）  付記１１記載のパケット処理装置において、
前記検索手段は、前記連想メモリの各エントリ毎にヒット回数を計数することを特徴とするパケット処理装置。
【００７８】
【発明の効果】
上述の如く、請求項１に記載の発明によれば、入力パケットを複数のパケット解析手段で分散処理することで、全体としての中継処理性能を向上することができる。
【００７９】
また、請求項２に記載の発明によれば、所定ビットの値が同じパケットを同じパケット解析手段に分配することができる。
【００８０】
また、請求項３に記載の発明によれば、複数のパケット解析モジュールそれぞれの負荷を平均化することができる。
【００８１】
また、請求項４に記載の発明によれば、複数のパケット解析手段に分配されたパケットが可変長であっても、入力順にパケットを出力することができる。
【００８２】
また、請求項５に記載の発明によれば、複数のパケット解析手段に分配されたパケットを入力順にパケットを出力することができる。
【図面の簡単な説明】
【図１】ＩＰルータ装置の一例の構成図である。
【図２】本発明のパケット処理装置の一実施例のブロック図である。
【図３】ディストリビュータの一実施例のブロック図である。
【図４】順序補正バッファの第１実施例のブロック図である。
【図５】順序補正バッファの第２実施例のブロック図である。
【図６】順序補正バッファの第２実施例の動作を説明するための図である。
【図７】本発明のパケット処理装置を適用したＩＰルータ装置の一実施例の構成図である。
【符号の説明】
２０，３０，６４，６５  ディストリビュータ
２２１〜２２ａ，６６１〜６６４，６７１〜６７４  パケット解析モジュール（ＰＦＥ）
２４，６８，６９  順序補正バッファ
２６  サーチエンジン
２７  ＣＡＭ
２８  ＲＡＭ
３０  ＳＮ付与部（ＳＮ＿ＧＥＮ）
３２  解析振り分け部
３４１〜３４ａ  出力ＦＩＦＯ
３５  データ容量監視メータ（ＤＣＴ）
３６  パケット数監視メータ（ＰＣＴ）
３７  フラグ制御部
４０１〜４０ａ  パケット情報抽出部
４２１〜４２ａ  一次バッファ
４４，５０  バッファ制御部
４６  パケットバッファ
４７  カウンタ
４８  アドレス管理テーブル
６０１〜６０Ｎ  回線終端部
６２１〜６２Ｎ  パケット処理部
【図１】
2004158903.tif 000003
【図２】
2004158903.tif 000004
【図３】
2004158903.tif 000005
【図４】
2004158903.tif 000006
【図５】
2004158903.tif 000007
【図６】
2004158903.tif 000008
【図７】
2004158903.tif 000009