JP4154213B2 - パケット処理装置 - Google Patents
パケット処理装置 Download PDFInfo
- Publication number
- JP4154213B2 JP4154213B2 JP2002319917A JP2002319917A JP4154213B2 JP 4154213 B2 JP4154213 B2 JP 4154213B2 JP 2002319917 A JP2002319917 A JP 2002319917A JP 2002319917 A JP2002319917 A JP 2002319917A JP 4154213 B2 JP4154213 B2 JP 4154213B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- address
- buffer
- entry
- packets
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、パケット処理装置に関し、パケットの宛先、発信元等各種の情報を解析するパケット処理装置に関する。
【0002】
【従来の技術】
IP(Internet Protocol)等のパケットを処理するルータ装置等においては、内部にパケット解析モジュールを装備し、パケットの宛先、発信元等各種の情報を解析した結果に従い、パケット転送処理を行っている。
【0003】
一般的には、上記パケット解析モジュールは、ネットワークプロセッサ等のデバイスが適用されているのが現状であり、パケットの解析にはCAMデバイスが用いられる。CAM(Content Addressable Memory)即ち連想メモリは、メモリ(CAMエントリ)に格納されているデータをキーとして入力し、そのキーが格納されているCAMエントリのアドレスを返却する機能を実現する。
【0004】
IPルータ装置は、電話交換機等と違ってコネクションレス通信であり、入力されるパケットをリアルタイムに解析し、その宛先、転送可否を判定するのが特徴である。
【0005】
図1は、IPルータ装置の一例の構成図を示す。同図中、回線終端部101〜10Nそれぞれは回線を終端しており、各回線から受信したパケットはパケット処理部121〜12Nに供給される。パケット処理部121〜12Nはネットワークプロセッサ(NP)を有し、パケットの宛先や発信元等各種の情報を解析してパケットと共にスイッチファブリック14に供給する。スイッチファブリック14は上記解析結果に応じてパケットをスイッチングし、スイッチングされたパケットはパケット処理部121〜12Nでパケットの宛先や発信元等各種の情報を解析されたのち、回線終端部101〜10Nを経て宛先の回線に送出される。
【0006】
また、この他にも、可変長パケットを扱うシステムとしては、例えば、特許文献1に記載のようなものもある。
【0007】
【特許文献1】
特開2000−101638号公報
【0008】
【発明が解決しようとする課題】
近年、データの高速化が進み、ルータ自体の容量、転送速度も上昇する傾向にあるが、この場合、パケット解析モジュール(PFE:Packet Forwarding Engine)の処理速度は転送速度に応じて高くしなければならない。
【0009】
しかしながら、パケット解析モジュールとして用いられるネットワークプロセッサに代表されるようなデバイスは、処理能力に限界があり、転送速度とパケット長によっては、1パケットについて行わなくてはならない処理が、パケット転送時間内に完了しないケースも発生してくる。更に、物理速度が高くなれば、この傾向は顕著になりパケット解析モジュールの中継性能の劣化を招く可能性が高くなるという問題点があった。
【0010】
本発明は、上記の点に鑑みなされたものであり、入力パケットを複数のパケット解析モジュールで分散処理することで、全体としての中継処理性能を向上することができるパケット処理装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
請求項1に記載の発明は、入力されたパケットに一連番号を付加して分配する分配手段と、分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、複数のパケット解析手段からパケットを供給され、パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を有し、
前記順序補正手段は、
前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段と、
前記順序補正手段の障害を検出する障害検出手段を有することにより、
入力パケットを複数のパケット解析手段で分散処理することで、全体としての中継処理性能を向上することができ、複数のパケット解析手段に分配されたパケットが可変長であっても、入力順にパケットを出力することができ、また、障害を検出することができる。
【0012】
請求項2に記載の発明では、バッファ制御手段は、アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、パケットバッファ手段のアドレスの読み出しを行い、
前記障害検出手段は、前記パケットバッファ手段に格納されたパケット数と読み出されたパケット数の差が所定値を超えたとき障害を検出する。
【0013】
請求項3に記載の発明では、障害検出手段は、パケットバッファ手段のアドレスを格納したアドレス管理手段のエントリが、パケットバッファ手段のアドレスを読み出すアドレス管理手段のエントリに、所定の監視ウィンドウ値を加算したエントリより先となったとき、障害を検出する。
【0014】
請求項4に記載の発明では、順序補正手段は、障害検出手段が障害を検出したのち、パケットバッファ手段のアドレスを最後に格納したアドレス管理手段のエントリから遡り連続してパケットバッファ手段のアドレスが格納されている先頭のエントリからパケットバッファ手段のアドレスの読み出しを再開する。
【0016】
【発明の実施の形態】
図2は、本発明のパケット処理装置の一実施例のブロック図を示す。このパケット処理装置は、例えば図1のパケット処理部121〜12Nそれぞれに使用される。
【0017】
図2において、入力パケットはディストリビュータ20に入力され、パケット解析モジュール(PFE)221〜22aに分配される。パケット解析モジュール(PFE)221〜22aそれぞれで宛先、発信元等各種の情報を解析されたパケットは順序補正バッファ24に格納され、順序補正バッファ24から入力順に読み出され、スイッチファブリックに向けて出力される。
【0018】
ここで、ディストリビュータ20の入力物理帯域をBWとしたとき、BW/a以上の入出力物理帯域を持つa個もしくはそれ以上のパケット解析モジュール221〜22aを並列に配置した構成である。ディストリビュータ20の出力は、パケット解析モジュール221〜22aの入力とインタフェースがとられ、パケット解析モジュール221〜22aそれぞれの出力は順序補正バッファ24の入力とインタフェースがとられている。
【0019】
更に、順序補正バッファ24の出力は物理帯域BW以上を持つ構成とする。この構成により、物理帯域BWを持つパケット処理装置を複数のパケット解析モジュールで仮想的に実現できる。
【0020】
図3は、ディストリビュータ20の一実施例のブロック図を示す。ディストリビュータ20は、SN付与部30、解析振り分け部32、出力FIFO341〜34aの3種のブロックから構成されており、入力されるパケットを後段の複数のパケット解析モジュールのいずれかに振り分けて該当出力ポートに転送する。
【0021】
SN付与部(SN_GEN)30は、最終段の順序補正制御のために、入力パケットにシーケンスナンバー(SN)を付与し、入力パケットの特定フィールドに上記のシーケンスナンバーが記入される。このシーケンスナンバーは、0〜Nの値をサイクリックに付与していくが、整数Nの値については、システムで提供する最小パケット長Lmin、最大パケット長Lmaxをパケット解析モジュールP個で処理する場合、次式で表される。
【0022】
整数N≧整数Nint×(P−1)+1
ただし、整数Nint>Lmax/Lmin
これにより、整数Nは、あるパケット解析モジュールに最大長パケットが振り分けられ、それ以外のすべてのパケット解析モジュールに全て最小パケットが振り分けられる最悪ケースにおいて、最大長パケットがあるパケット解析モジュールから出力され始めたてから完了するまでに、順序補正バッファに到着しうる全パケット数である。
【0023】
解析振り分け部32は、各パケットを複数のパケット解析モジュールに振り分けるが、この振り分けについては、いくつかの方法がある。基本的には、パケット内の特定エリア(宛先アドレス,発信元アドレス、または、その双方)を参照し、その中の所定ビットをコード値とみなし、そのコードに対応するパケット解析モジュールに出力する。これにより、宛先アドレスや発信元アドレスが同じパケットを同一のパケット解析モジュールに分配して、宛先アドレスや発信元アドレスが同じパケットの順序を保つことができる。
【0024】
なお、このような単純なコードではなく、パケット内の所定ビットを特定の式で除算した余りによる振り分け等も可能である。
【0025】
解析振り分け部32はこの振り分け判定に従い、決定された出力ポートから出力FIFO341〜34aのいずれかに該当パケットを書き込み、出力FIFO341〜34aそれぞれの出力はパケット解析モジュール221〜22aの物理帯域速度で読み出される。
【0026】
ここで、上記の方法で振り分けを行った場合、入力パケットのデータパターンによっては、パケット解析モジュール221〜22aにデータの偏りが発生する場合があり、偏りが発生した場合には、それを補正し負荷の低いパケット解析モジュールへの迂回を制御して、各パケット解析モジュールの負荷を平均化する必要がある。このため、出力FIFO341〜34aそれぞれには二種類の負荷計測用のメータを配置する。
【0027】
データ容量監視メータ(DCT)35は、パケット解析モジュール単位に装備している出力FIFO341〜34aのデータ滞留量を監視するものである。フラグ制御部37には、この計測値に対する閾値が設定可能である。フラグ制御部37は任意の時刻における滞留量を閾値と比較し、閾値を上回っていれば負荷フラグを1にセットする。なお、閾値はヒステリシス制御が可能なように、負荷フラグのセット/リセットで個別に設けることも可能である。
【0028】
パケット数監視メータ(PCT)36は、出力FIFOの内部にあるパケット数を監視する。フラグ制御部37には、データ容量監視メータ35同様に閾値が設定可能である。フラグ制御部37は、この閾値との比較により、閾値を上回っていれば負荷フラグを1にセットする。つまり、負荷フラグは二種のメータのいずれかの閾値オーバーで1にセットされることになる。この負荷フラグの状態は、解析振り分け部32に通知される。なお、少なくともデータ容量監視メータ35を有していれば良く、パケット数監視メータ36は省略することも可能である。
【0029】
解析振り分け部32では、前述の論理により出力パケット解析モジュールを決定するが、このときに出力FIFO341〜34aからの負荷フラグを参照する。仮に、判定結果がx番目のパケット解析モジュールに対応する出力FIFOを指しており、かつ、この出力FIFOが過負荷状態にあるときには、x+1番目のパケット解析モジュールに振り分けを行う。X+1番目も過負荷状態であればx+2番目のパケット解析モジュールに振り分けを行う。
【0030】
順序補正バッファ24は、a個のパケット解析モジュール221〜22aからパケットを受信し、これを多重化して出力する。但し、この出力においてはディストリビュータ20の入力時と同じ順序でパケットが出力される必要がある。このため、ディストリビュータ20で付与されたシーケンスナンバーを基にパケットの順序補正を行う。
【0031】
パケットは可変長であるため、どのパケット解析モジュールからどの長さのパケットが到着するかは確定できないが、シーケンスナンバーが一巡する中での順序補正を行えば復元は可能である。
【0032】
図4は、順序補正バッファ24の第1実施例のブロック図を示す。同図中、パケット情報抽出部401〜40aはパケット解析モジュール221〜22aから供給されるパケットはパケット情報抽出部401〜40aから一次バッファ421〜42aを経て、バッファ制御部44を通してパケットバッファ46に格納される。
【0033】
パケット情報抽出部401〜40aはパケット解析モジュール221〜22aから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部44を通してアドレス管理テーブル48に格納する。
【0034】
パケットバッファ46は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル48は、パケットバッファ46に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル48は、シーケンスナンバーに対応した0〜Nのアドレスのエントリを持つ。
【0035】
パケット解析モジュール221〜22aからパケットが到着すると、そのパケットを到着順にパケットバッファ46に書き込む。次に、書き込んだパケットのシーケンスナンバーを参照し、アドレス管理テーブル48の上記シーケンスナンバーに該当するアドレスのエントリに、到着したパケットを書込んだパケットバッファ46における先頭アドレスとパケット長及び有効なエントリであることを表すタグビット(値1)を書き込んで、このエントリを登録する。
【0036】
アドレス管理テーブル48の全アドレスのタグビットが値1となって、パケットバッファ46にシーケンスナンバー0〜Nのパケットが全て格納されていることがバッファ制御部44にて認識されると、バッファ制御部44は、読み出しポインタ(Rdp)に基づいて、アドレス管理テーブル48のアドレス0から順に各エントリの内容、つまり、先頭アドレス及びパケット長を読み出し、パケットバッファ46の先頭アドレスで指示されるアドレスからパケット長だけパケットデータを読み出すことにより、パケットバッファ46からシーケンスナンバー順にパケットを読み出して行く。
【0037】
そして、パケットバッファ46からの各パケットの読み出しが完了したらバッファ制御部44はアドレス管理テーブル48の読み出しパケットに対応するアドレスのタグビットを値0にクリアすることでエントリが空いたことを示す。そして、読み出しポインタ(Rdp)をインクリメントして、上記の処理を繰り返す。この処理により、パケットバッファ46から読み出されるパケットの順序は、ディストリビュータ20に入力時の順序と同一となる。
【0038】
この順序補正において、パケット処理装置内で正常なデータ伝送が行われている場合には、シーケンスナンバーの欠落等が無く論理的な矛盾を来さないが、パケット処理装置内の伝送路の間欠障害やビットエラー等により、シーケンスナンバーが欠落したり重複した場合の異常処理が問題となる。
【0039】
このため、アドレス管理テーブル48に対して、順序補正リカバリ機構を設ける。パケットバッファ46にパケットを格納する毎に、バッファ制御部44はカウンタ47を1だけインクリメントし、パケットバッファ46からパケットを読み出す毎に1だけデクリメントする。
【0040】
パケット入力数と出力数が一致する正常時には、カウンタ47は一定値を維持することになるが、パケットロス発生時は順序補正からの出力が停止するため、カウンタが増加してゆくことになる。このカウンタ値を例えばN/2を閾値として監視することで障害を検出することができる。
【0041】
障害再開時はディストリビュータ20のSN生成初期値を0に戻し、バッファ制御部44の読み出しポインタ(Rdp)の値を0に戻し、更に、パケットロス検出用のカウンタ47を0に戻すことで処理を再開する。
【0042】
なお、パケットロス以外にも、順序補正バッファ24の入力部において、パケットデータに対してパリティ,CRC等を用いてエラー監視を行い、その結果がエラーであった場合や、パケット解析モジュール221〜22aにおいて障害を検出した場合にも同様の再開処理を行う。
【0043】
図5は、順序補正バッファ24の第2実施例のブロック図を示す。同図中、図4と同一部分には同一符号を付す。図5において、パケット情報抽出部401〜40aはパケット解析モジュール221〜22aから供給されるパケットはパケット情報抽出部401〜40aから一次バッファ421〜42aを経て、バッファ制御部50を通してパケットバッファ46に格納される。
【0044】
パケット情報抽出部401〜40aはパケット解析モジュール221〜22aから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部50を通してアドレス管理テーブル48に格納する。
【0045】
パケットバッファ46は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル48は、パケットバッファ46に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル48は、シーケンスナンバーに対応した0〜Nのアドレスのエントリを持つ。
【0046】
パケット解析モジュール221〜22aからパケットが到着すると、そのパケットを到着順にパケットバッファ46に書き込む。次に、書き込んだパケットのシーケンスナンバーを参照し、アドレス管理テーブル48の上記シーケンスナンバーに該当するアドレスのエントリに、到着したパケットを書込んだパケットバッファ46における先頭アドレスとパケット長及び有効なエントリであることを表すタグビット(値1)を書き込んで、このエントリを登録する。
【0047】
バッファ制御部50は、読み出しポインタ(Rdp)に基づいて、アドレス管理テーブル48のアドレス0から順にテーブルの内容、つまり、先頭アドレス及びパケット長及びタグビットを読み出し、タグビットが値1でエントリ登録が完了していることを認識すると、パケットバッファ46からの先頭アドレスで指示されるアドレスからパケット長だけパケットデータを読み出して行く。
【0048】
この読み出しが完了したら当該タグビットの値を0にクリアすることでアドレス管理テーブル48のエントリが空いたことを示す。また、バッファ制御部50は読み出しポインタをインクリメントする。この処理により、パケットバッファ46から読み出されるパケットの順序は、ディストリビュータ20の入力時と同一となる。
【0049】
この順序補正において、パケット処理装置内で正常なデータ伝送が行われている場合には、シーケンスナンバーの欠落等が無く論理的な矛盾を来さないが、パケット処理装置内の伝送路の間欠障害やビットエラー等により、シーケンスナンバーが欠落したり重複した場合の異常処理が問題となる。
【0050】
このため、アドレス管理テーブル48に対して、順序補正リカバリ機構を設ける。アドレス管理テーブル48に監視ウィンドウ値Wを設定し、バッファ制御部50は、アドレス管理テーブル48の読み出しポインタ(Rdp)+ウィンドウ値(W)よりも先のエントリに登録された場合に、パケットロスとみなして障害を検出する。なお、アドレス管理テーブル48はアドレスNがアドレス0に連続するリング構造として扱う。
【0051】
シーケンスナンバーの欠落や重複がない場合には、アドレス管理テーブル48のアドレス0から順にエントリが登録されると共に、登録されたエントリが順次読み出されるため、図6(A)に示すように、アドレス管理テーブル48の読み出しポインタ(Rdp)+ウィンドウ値(W)よりも先のエントリに登録されることはない。
【0052】
しかし、シーケンスナンバーの欠落や重複が生じ、図6(B)に示すように、アドレス管理テーブル48のアドレス3,6でエントリが登録されないパケットロスが発生した場合には、アドレス管理テーブル48の読み出しポインタ(Rdp)はアドレス3で停止し、アドレス管理テーブル48の読み出しポインタ(Rdp)+ウィンドウ値(W)よりも先のエントリに登録されるため障害が検出される。
【0053】
この場合の障害再開は図6(C)に示すように、アドレス管理テーブル48のアドレス(Rdp+W)のエントリから逆順(降順)にエントリを遡って、連続して登録されているエントリの先頭(アドレス7)に読み出しポインタ(Rdp)を移動し、読み出し処理を再開する。
【0054】
第1実施例ではシーケンスナンバーの欠落や重複によりN/2個のパケットが破棄されるのに対し、本実施例では有効なエントリを無駄に廃棄することなく障害復旧処理を行うことが可能となる。
【0055】
図2に戻って説明するに、サーチエンジン26は、分散処理を行う場合の集約的な検索エンジンである。CAM27と、その関連データを格納するRAM28を備え、上位ソフトウエアからルーティングエントリやフィルタリングエントリが設定されているものである。
【0056】
パケットは負荷分散されるため、同じフローに属するパケット、即ち宛先アドレスと発信元アドレスが同じパケットが異なるパケット解析モジュールに分配される可能性があるため、複数のパケット解析モジュール221〜22aで同一のサーチエンジン26をアクセスする。
【0057】
このとき、複数のパケット解析モジュール221〜22aからのアクセスが同時に実施される可能性がある、これらの調停はサーチエンジン26が行う。調停論理は、タイムスロット割り当て方式、もしくはラウンドロビン制御により行う。この調停機能のために、サーチエンジン26の内部においては、各パケット解析モジュール221〜22aに対応して検索リクエストをキューイングするリクエストキューを配備しておく。
【0058】
更に、サーチエンジン26においてはカウンタを備え、CAM27の各エントリ毎にヒットした回数をカウントする。これにより、分散ルーティングされた同一フローのパケットのカウントが可能となり、集約的に統計情報を収集することが可能となる。
【0059】
図7は、本発明のパケット処理装置を適用したIPルータ装置の一実施例の構成図を示す。同図中、回線終端部601〜60Nそれぞれは例えば伝送速度10Gbpsの光回線(OC−192)を終端しており、各回線から受信したパケットはブレード単位で設けられたパケット処理部621〜62Nに供給される。
【0060】
パケット処理部621〜62Nそれぞれは、2系統のパケット処理装置を有し、これらは図2と同様に、ディストリビュータ64,65と、処理速度が例えば2.5Gbpsのパケット解析モジュール(NP)661〜664,671〜674と、順序補正バッファ68,69と、マルチキュー70,71から構成されている。なお、パケット解析モジュール(PFE)661〜664,671〜674それぞれには図2と同様にサーチエンジンが接続されている。
【0061】
各回線から受信したパケットはディストリビュータ64によりパケット解析モジュール661〜664に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ68から入力順に読み出された後、マルチキュー70を構成する複数のキューにパケット毎にクラス(優先度)を付加してキューイングされ、優先度の高い音声パケット等を優先して取り出す如き既存のスケジューリングアルゴリズムによって各キューから取り出され、スイッチファブリック72に供給される。
【0062】
そして、スイッチファブリック72でスイッチングされたパケットは、ディストリビュータ65によりパケット処理部621〜62Nに供給され、パケット解析モジュール671〜674に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ69から入力順に読み出された後、マルチキュー71を構成する複数のキューにパケット毎にクラス(優先度)を付加してキューイングされ、既存のスケジューリングアルゴリズムによって各キューから取り出され、回線終端部601〜60Nを経て宛先の回線に送出される。
【0063】
このように、本発明によれば、データの高速化が進んでも、新たに高速のパケット解析モジュールを開発することなく、既に存在するパケット解析モジュールを用いて高速なデータ転送処理を実現することが可能となる。また、パケット解析モジュールの処理能力を軽減させることができ、多彩な処理機能の組み込みが可能となる。
【0064】
更に、負荷分散により同一フローが異なるパケット解析モジュールで処理されたとしても、単一のCAMの設定によりルーティングが可能であり、かつ集約的な統計情報の収集も複雑なソフトウエア制御を必要としない。また、パケットロス等の障害発生時に、有効なパケットを無駄に廃棄せずに処理を再開することが可能となる。
【0065】
なお、ディストリビュータ20が請求項記載の分配手段に対応し、パケット解析モジュール221〜22aがパケット解析手段に対応し、順序補正バッファ24が順序補正手段に対応し、出力FIFO341〜34aが出力バッファ手段に対応し、パケットバッファ46がパケットバッファ手段に対応し、アドレス管理テーブル48がアドレス管理手段に対応し、バッファ制御部44がバッファ制御手段に対応し、カウンタ47が第1障害検出手段に対応し、バッファ制御部50が第2障害検出手段に対応し、サーチエンジン26が検索手段に対応する。
【0066】
(付記1) 入力されたパケットに一連番号を付加して分配する分配手段と、
前記分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、
前記複数のパケット解析手段からパケットを供給され、前記パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を
有することを特徴とするパケット処理装置。
【0067】
(付記2) 付記1記載のパケット処理装置において、
前記分配手段は、入力されたパケット内の所定ビットの値に応じて前記複数のパケット解析手段に分配することを特徴とするパケット処理装置。
【0068】
(付記3) 付記1または2記載のパケット処理装置において、
前記分配手段は、前記パケット解析モジュール単位に設けた複数の出力バッファ手段を有し、
データ滞留量が閾値を超えた出力バッファ手段に対し、入力されたパケットの分配を停止することを特徴とするパケット処理装置。
【0069】
(付記4) 付記1記載のパケット処理装置において、
前記順序補正手段は、前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段を
有することを特徴とするパケット処理装置。
【0070】
(付記5) 付記4記載のパケット処理装置において、
前記バッファ制御手段は、前記アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、前記パケットバッファ手段のアドレスの読み出しを行うことを特徴とするパケット処理装置。
【0071】
(付記6) 付記5記載のパケット処理装置において、
前記順序補正手段は、前記パケットバッファ手段に格納されたパケット数と読み出されたパケット数の差が所定値を超えたとき障害を検出する第1障害検出手段を有することを特徴とするパケット処理装置。
【0072】
(付記7) 付記4記載のパケット処理装置において、
前記順序補正手段は、前記パケットバッファ手段のアドレスを格納した前記アドレス管理手段のエントリが、前記パケットバッファ手段のアドレスを読み出す前記アドレス管理手段のエントリに、所定の監視ウィンドウ値を加算したエントリより先となったとき、障害を検出する第2障害検出手段を有することを特徴とするパケット処理装置。
【0073】
(付記8) 付記7記載のパケット処理装置において、
前記順序補正手段は、前記障害検出手段が障害を検出したのち、前記パケットバッファ手段のアドレスを最後に格納した前記アドレス管理手段のエントリから遡り連続して前記パケットバッファ手段のアドレスが格納されている先頭のエントリから前記パケットバッファ手段のアドレスの読み出しを再開することを特徴とするパケット処理装置。
【0074】
(付記9) 付記1乃至8のいずれか記載のパケット処理装置において、
前記複数のパケット解析手段からの依頼による検索処理を集約して実行する検索手段を有することを特徴とするパケット処理装置。
【0075】
(付記10) 付記9記載のパケット処理装置において、
前記検索手段は、複数のパケット解析手段からのアクセスを調停する機能を有することを特徴とするパケット処理装置。
【0076】
(付記11) 付記9記載のパケット処理装置において、
前記検索手段は、連想メモリを用いて検索を行うことを特徴とするパケット処理装置。
【0077】
(付記12) 付記11記載のパケット処理装置において、
前記検索手段は、前記連想メモリの各エントリ毎にヒット回数を計数することを特徴とするパケット処理装置。
【0078】
【発明の効果】
上述の如く、本発明によれば、入力パケットを複数のパケット解析手段で分散処理することで、全体としての中継処理性能を向上することができ、複数のパケット解析手段に分配されたパケットが可変長であっても、入力順にパケットを出力することができ、また、障害を検出することができる。
【図面の簡単な説明】
【図1】IPルータ装置の一例の構成図である。
【図2】本発明のパケット処理装置の一実施例のブロック図である。
【図3】ディストリビュータの一実施例のブロック図である。
【図4】順序補正バッファの第1実施例のブロック図である。
【図5】順序補正バッファの第2実施例のブロック図である。
【図6】順序補正バッファの第2実施例の動作を説明するための図である。
【図7】本発明のパケット処理装置を適用したIPルータ装置の一実施例の構成図である。
【符号の説明】
20,30,64,65 ディストリビュータ
221〜22a,661〜664,671〜674 パケット解析モジュール(PFE)
24,68,69 順序補正バッファ
26 サーチエンジン
27 CAM
28 RAM
30 SN付与部(SN_GEN)
32 解析振り分け部
341〜34a 出力FIFO
35 データ容量監視メータ(DCT)
36 パケット数監視メータ(PCT)
37 フラグ制御部
401〜40a パケット情報抽出部
421〜42a 一次バッファ
44,50 バッファ制御部
46 パケットバッファ
47 カウンタ
48 アドレス管理テーブル
601〜60N 回線終端部
621〜62N パケット処理部
Claims (4)
- 入力されたパケットに一連番号を付加して分配する分配手段と、
前記分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、
前記複数のパケット解析手段からパケットを供給され、前記パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を有し、
前記順序補正手段は、
前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段と、
前記順序補正手段の障害を検出する障害検出手段を
有することを特徴とするパケット処理装置。 - 請求項1記載のパケット処理装置において、
前記バッファ制御手段は、前記アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、前記パケットバッファ手段のアドレスの読み出しを行い、
前記障害検出手段は、前記パケットバッファ手段に格納されたパケット数と読み出されたパケット数の差が所定値を超えたとき障害を検出することを特徴とするパケット処理装置。 - 請求項1記載のパケット処理装置において、
前記障害検出手段は、前記パケットバッファ手段のアドレスを格納した前記アドレス管理手段のエントリが、前記パケットバッファ手段のアドレスを読み出す前記アドレス管理手段のエントリに、所定の監視ウィンドウ値を加算したエントリより先となったとき、障害を検出することを特徴とするパケット処理装置。 - 請求項3記載のパケット処理装置において、
前記順序補正手段は、前記障害検出手段が障害を検出したのち、前記パケットバッファ手段のアドレスを最後に格納した前記アドレス管理手段のエントリから遡り連続して前記パケットバッファ手段のアドレスが格納されている先頭のエントリから前記パケットバッファ手段のアドレスの読み出しを再開することを特徴とするパケット処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002319917A JP4154213B2 (ja) | 2002-11-01 | 2002-11-01 | パケット処理装置 |
US10/697,522 US7362761B2 (en) | 2002-11-01 | 2003-10-30 | Packet processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002319917A JP4154213B2 (ja) | 2002-11-01 | 2002-11-01 | パケット処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004158903A JP2004158903A (ja) | 2004-06-03 |
JP4154213B2 true JP4154213B2 (ja) | 2008-09-24 |
Family
ID=32321604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002319917A Expired - Lifetime JP4154213B2 (ja) | 2002-11-01 | 2002-11-01 | パケット処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7362761B2 (ja) |
JP (1) | JP4154213B2 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006659A1 (en) * | 2001-10-19 | 2009-01-01 | Collins Jack M | Advanced mezzanine card for digital network data inspection |
US20090161568A1 (en) * | 2007-12-21 | 2009-06-25 | Charles Kastner | TCP data reassembly |
US7711844B2 (en) | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
JP4154213B2 (ja) | 2002-11-01 | 2008-09-24 | 富士通株式会社 | パケット処理装置 |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
CA2523548C (en) | 2003-05-23 | 2014-02-04 | Washington University | Intelligent data processing system and method using fpga devices |
KR100950528B1 (ko) * | 2003-12-03 | 2010-03-30 | 삼성전자주식회사 | 복수 개의 데이터를 계층별로 처리하는 장치 및 방법 |
US7602785B2 (en) * | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7447826B2 (en) * | 2004-03-31 | 2008-11-04 | Intel Corporation | Receive buffer in a data storage system |
JP4342395B2 (ja) | 2004-07-20 | 2009-10-14 | 富士通株式会社 | パケット中継方法及び装置 |
US7366802B2 (en) * | 2004-10-29 | 2008-04-29 | Intel Corporation | Method in a frame based system for reserving a plurality of buffers based on a selected communication protocol |
JP4562505B2 (ja) * | 2004-12-02 | 2010-10-13 | ソニー株式会社 | 多重化分離装置および多重化分離方法 |
KR100675838B1 (ko) * | 2004-12-20 | 2007-01-29 | 한국전자통신연구원 | 다중 채널 링크에서 프레임의 순서유지를 포함하는 프레임 전송량 분배 장치, 방법 및 이를 이용한 다중채널 송신기 |
US20060161647A1 (en) * | 2004-12-22 | 2006-07-20 | Waldemar Wojtkiewicz | Method and apparatus providing measurement of packet latency in a processor |
EP1859378A2 (en) * | 2005-03-03 | 2007-11-28 | Washington University | Method and apparatus for performing biosequence similarity searching |
US7631315B2 (en) * | 2005-03-28 | 2009-12-08 | Microsoft Corporation | Using subqueues to enhance local message processing |
US7664041B2 (en) * | 2005-05-26 | 2010-02-16 | Dale Trenton Smith | Distributed stream analysis using general purpose processors |
JP4693576B2 (ja) * | 2005-09-30 | 2011-06-01 | 株式会社東芝 | データ転送制御装置、およびデータ転送制御方法 |
US7702629B2 (en) | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
JP4779955B2 (ja) | 2006-01-06 | 2011-09-28 | 富士通株式会社 | パケット処理装置及びパケット処理方法 |
US7954114B2 (en) * | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
JP4630262B2 (ja) * | 2006-11-21 | 2011-02-09 | 日本電信電話株式会社 | キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム |
JP4941557B2 (ja) * | 2007-06-27 | 2012-05-30 | 富士通株式会社 | メモリアクセス制御装置 |
US10229453B2 (en) | 2008-01-11 | 2019-03-12 | Ip Reservoir, Llc | Method and system for low latency basket calculation |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
TWI433500B (zh) * | 2008-07-29 | 2014-04-01 | Sunplus Technology Co Ltd | 多重網路封包的處理方法 |
JP2010178299A (ja) * | 2009-02-02 | 2010-08-12 | Hitachi Ltd | フレームキャプチャシステムおよびフレームキャプチャ方法 |
US9019863B2 (en) * | 2010-02-26 | 2015-04-28 | Net Optics, Inc. | Ibypass high density device and methods thereof |
US8737197B2 (en) * | 2010-02-26 | 2014-05-27 | Net Optic, Inc. | Sequential heartbeat packet arrangement and methods thereof |
CN104094560B (zh) | 2012-02-13 | 2017-03-08 | 日本电信电话株式会社 | 帧搜索处理装置和方法 |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633097B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
US10146845B2 (en) | 2012-10-23 | 2018-12-04 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
JP2015095785A (ja) | 2013-11-12 | 2015-05-18 | 富士通株式会社 | パケット保存方法、パケット保存プログラム及びパケット保存装置 |
WO2015164639A1 (en) | 2014-04-23 | 2015-10-29 | Ip Reservoir, Llc | Method and apparatus for accelerated data translation |
US9712287B2 (en) * | 2014-07-31 | 2017-07-18 | Qualcomm Incorporated | System and method of redundancy based packet transmission error recovery |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
JP6777847B2 (ja) * | 2016-03-25 | 2020-10-28 | アイコム株式会社 | 通信制御装置、通信制御システム、通信制御方法及びプログラム |
WO2018119035A1 (en) | 2016-12-22 | 2018-06-28 | Ip Reservoir, Llc | Pipelines for hardware-accelerated machine learning |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4845436A (en) * | 1985-05-29 | 1989-07-04 | Trio Kabushiki Kaisha | Frequency synthesizer suited for use in a time division multiplexing system |
US5612953A (en) * | 1991-02-22 | 1997-03-18 | International Business Machines Corporation | Multi-media serial line switching adapter for parallel networks and heterogeneous and homologous computer systems |
US6553000B1 (en) * | 1998-01-27 | 2003-04-22 | Alcatel Internetworking (Pe), Inc. | Method and apparatus for forwarding network traffic |
EP0991231B1 (en) | 1998-09-10 | 2009-07-01 | International Business Machines Corporation | Packet switch adapter for variable length packets |
JP2000295279A (ja) * | 1999-04-02 | 2000-10-20 | Nec Corp | パケットスイッチ |
JP3387868B2 (ja) * | 1999-10-20 | 2003-03-17 | 日本電気株式会社 | 出力バッファ型atmスイッチ |
JP4294821B2 (ja) | 2000-01-26 | 2009-07-15 | 株式会社日立製作所 | ネットワーク中継装置 |
JP3591420B2 (ja) * | 2000-04-07 | 2004-11-17 | 日本電気株式会社 | ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体 |
US7085274B1 (en) * | 2001-09-19 | 2006-08-01 | Juniper Networks, Inc. | Context-switched multi-stream pipelined reorder engine |
US7079528B2 (en) * | 2001-12-13 | 2006-07-18 | International Business Machines Corporation | Data communication method |
JP4154213B2 (ja) | 2002-11-01 | 2008-09-24 | 富士通株式会社 | パケット処理装置 |
-
2002
- 2002-11-01 JP JP2002319917A patent/JP4154213B2/ja not_active Expired - Lifetime
-
2003
- 2003-10-30 US US10/697,522 patent/US7362761B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20040100977A1 (en) | 2004-05-27 |
JP2004158903A (ja) | 2004-06-03 |
US7362761B2 (en) | 2008-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4154213B2 (ja) | パケット処理装置 | |
US9100314B2 (en) | Dequeuing and congestion control systems and methods for single stream multicast | |
US7088716B2 (en) | Network routing apparatus | |
EP2180644B1 (en) | Flow consistent dynamic load balancing | |
US8009561B1 (en) | Systems and methods for permitting queues to oversubscribe | |
US7899927B1 (en) | Multiple concurrent arbiters | |
US20100165871A1 (en) | Systems and methods for determing the bandwidth used by a queue | |
US10567426B2 (en) | Methods and apparatus for detecting and/or dealing with denial of service attacks | |
US6853638B2 (en) | Route/service processor scalability via flow-based distribution of traffic | |
WO1998023127A1 (en) | Scalable parallel packet router | |
US20060072565A1 (en) | Frame switching device | |
US6785238B1 (en) | LAN relaying/switching apparatus | |
KR20030026240A (ko) | 데이터 패킷 폐기 | |
US7961744B2 (en) | Frame multiplexing device | |
CN108667898A (zh) | 使用外出镜像提供网元中的缓冲器内容的快照 | |
US7684422B1 (en) | Systems and methods for congestion control using random early drop at head of buffer | |
US7397762B1 (en) | System, device and method for scheduling information processing with load-balancing | |
US8131854B2 (en) | Interfacing with streams of differing speeds | |
US7079545B1 (en) | System and method for simultaneous deficit round robin prioritization | |
CN109547352B (zh) | 报文缓存队列的动态分配方法和装置 | |
JP2000083055A (ja) | ルータ | |
EP1279260A2 (en) | Memory management with data discard | |
JP2005252766A (ja) | 伝送装置 | |
WO2003090018A2 (en) | Network processor architecture | |
US20070133561A1 (en) | Apparatus and method for performing packet scheduling using adaptation round robin |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080624 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080707 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4154213 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130711 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |