JP4154213B2 - パケット処理装置 - Google Patents

パケット処理装置 Download PDF

Info

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
Application number
JP2002319917A
Other languages
English (en)
Other versions
JP2004158903A (ja
Inventor
和之 鈴木
士郎 瓜生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002319917A priority Critical patent/JP4154213B2/ja
Priority to US10/697,522 priority patent/US7362761B2/en
Publication of JP2004158903A publication Critical patent/JP2004158903A/ja
Application granted granted Critical
Publication of JP4154213B2 publication Critical patent/JP4154213B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output 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

【0001】
【発明の属する技術分野】
本発明は、パケット処理装置に関し、パケットの宛先、発信元等各種の情報を解析するパケット処理装置に関する。
【0002】
【従来の技術】
IP(Internet Protocol)等のパケットを処理するルータ装置等においては、内部にパケット解析モジュールを装備し、パケットの宛先、発信元等各種の情報を解析した結果に従い、パケット転送処理を行っている。
【0003】
一般的には、上記パケット解析モジュールは、ネットワークプロセッサ等のデバイスが適用されているのが現状であり、パケットの解析にはCAMデバイスが用いられる。CAM(Content Addressable Memory)即ち連想メモリは、メモリ(CAMエントリ)に格納されているデータをキーとして入力し、そのキーが格納されているCAMエントリのアドレスを返却する機能を実現する。
【0004】
IPルータ装置は、電話交換機等と違ってコネクションレス通信であり、入力されるパケットをリアルタイムに解析し、その宛先、転送可否を判定するのが特徴である。
【0005】
図1は、IPルータ装置の一例の構成図を示す。同図中、回線終端部10〜10それぞれは回線を終端しており、各回線から受信したパケットはパケット処理部12〜12に供給される。パケット処理部12〜12はネットワークプロセッサ(NP)を有し、パケットの宛先や発信元等各種の情報を解析してパケットと共にスイッチファブリック14に供給する。スイッチファブリック14は上記解析結果に応じてパケットをスイッチングし、スイッチングされたパケットはパケット処理部12〜12でパケットの宛先や発信元等各種の情報を解析されたのち、回線終端部10〜10を経て宛先の回線に送出される。
【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のパケット処理部12〜12それぞれに使用される。
【0017】
図2において、入力パケットはディストリビュータ20に入力され、パケット解析モジュール(PFE)22〜22aに分配される。パケット解析モジュール(PFE)22〜22aそれぞれで宛先、発信元等各種の情報を解析されたパケットは順序補正バッファ24に格納され、順序補正バッファ24から入力順に読み出され、スイッチファブリックに向けて出力される。
【0018】
ここで、ディストリビュータ20の入力物理帯域をBWとしたとき、BW/a以上の入出力物理帯域を持つa個もしくはそれ以上のパケット解析モジュール22〜22aを並列に配置した構成である。ディストリビュータ20の出力は、パケット解析モジュール22〜22aの入力とインタフェースがとられ、パケット解析モジュール22〜22aそれぞれの出力は順序補正バッファ24の入力とインタフェースがとられている。
【0019】
更に、順序補正バッファ24の出力は物理帯域BW以上を持つ構成とする。この構成により、物理帯域BWを持つパケット処理装置を複数のパケット解析モジュールで仮想的に実現できる。
【0020】
図3は、ディストリビュータ20の一実施例のブロック図を示す。ディストリビュータ20は、SN付与部30、解析振り分け部32、出力FIFO34〜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はこの振り分け判定に従い、決定された出力ポートから出力FIFO34〜34aのいずれかに該当パケットを書き込み、出力FIFO34〜34aそれぞれの出力はパケット解析モジュール22〜22aの物理帯域速度で読み出される。
【0026】
ここで、上記の方法で振り分けを行った場合、入力パケットのデータパターンによっては、パケット解析モジュール22〜22aにデータの偏りが発生する場合があり、偏りが発生した場合には、それを補正し負荷の低いパケット解析モジュールへの迂回を制御して、各パケット解析モジュールの負荷を平均化する必要がある。このため、出力FIFO34〜34aそれぞれには二種類の負荷計測用のメータを配置する。
【0027】
データ容量監視メータ(DCT)35は、パケット解析モジュール単位に装備している出力FIFO34〜34aのデータ滞留量を監視するものである。フラグ制御部37には、この計測値に対する閾値が設定可能である。フラグ制御部37は任意の時刻における滞留量を閾値と比較し、閾値を上回っていれば負荷フラグを1にセットする。なお、閾値はヒステリシス制御が可能なように、負荷フラグのセット/リセットで個別に設けることも可能である。
【0028】
パケット数監視メータ(PCT)36は、出力FIFOの内部にあるパケット数を監視する。フラグ制御部37には、データ容量監視メータ35同様に閾値が設定可能である。フラグ制御部37は、この閾値との比較により、閾値を上回っていれば負荷フラグを1にセットする。つまり、負荷フラグは二種のメータのいずれかの閾値オーバーで1にセットされることになる。この負荷フラグの状態は、解析振り分け部32に通知される。なお、少なくともデータ容量監視メータ35を有していれば良く、パケット数監視メータ36は省略することも可能である。
【0029】
解析振り分け部32では、前述の論理により出力パケット解析モジュールを決定するが、このときに出力FIFO34〜34aからの負荷フラグを参照する。仮に、判定結果がx番目のパケット解析モジュールに対応する出力FIFOを指しており、かつ、この出力FIFOが過負荷状態にあるときには、x+1番目のパケット解析モジュールに振り分けを行う。X+1番目も過負荷状態であればx+2番目のパケット解析モジュールに振り分けを行う。
【0030】
順序補正バッファ24は、a個のパケット解析モジュール22〜22aからパケットを受信し、これを多重化して出力する。但し、この出力においてはディストリビュータ20の入力時と同じ順序でパケットが出力される必要がある。このため、ディストリビュータ20で付与されたシーケンスナンバーを基にパケットの順序補正を行う。
【0031】
パケットは可変長であるため、どのパケット解析モジュールからどの長さのパケットが到着するかは確定できないが、シーケンスナンバーが一巡する中での順序補正を行えば復元は可能である。
【0032】
図4は、順序補正バッファ24の第1実施例のブロック図を示す。同図中、パケット情報抽出部40〜40aはパケット解析モジュール22〜22aから供給されるパケットはパケット情報抽出部40〜40aから一次バッファ42〜42aを経て、バッファ制御部44を通してパケットバッファ46に格納される。
【0033】
パケット情報抽出部40〜40aはパケット解析モジュール22〜22aから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部44を通してアドレス管理テーブル48に格納する。
【0034】
パケットバッファ46は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル48は、パケットバッファ46に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル48は、シーケンスナンバーに対応した0〜Nのアドレスのエントリを持つ。
【0035】
パケット解析モジュール22〜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等を用いてエラー監視を行い、その結果がエラーであった場合や、パケット解析モジュール22〜22aにおいて障害を検出した場合にも同様の再開処理を行う。
【0043】
図5は、順序補正バッファ24の第2実施例のブロック図を示す。同図中、図4と同一部分には同一符号を付す。図5において、パケット情報抽出部40〜40aはパケット解析モジュール22〜22aから供給されるパケットはパケット情報抽出部40〜40aから一次バッファ42〜42aを経て、バッファ制御部50を通してパケットバッファ46に格納される。
【0044】
パケット情報抽出部40〜40aはパケット解析モジュール22〜22aから供給されるパケットそれぞれのシーケンスナンバーとパケット長を抽出し、バッファ制御部50を通してアドレス管理テーブル48に格納する。
【0045】
パケットバッファ46は実際のパケットデータを供給される順に格納しておくメモリである。アドレス管理テーブル48は、パケットバッファ46に格納されているパケットの先頭アドレス及びパケット長とタグビットをパケット単位で記憶する。アドレス管理テーブル48は、シーケンスナンバーに対応した0〜Nのアドレスのエントリを持つ。
【0046】
パケット解析モジュール22〜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】
パケットは負荷分散されるため、同じフローに属するパケット、即ち宛先アドレスと発信元アドレスが同じパケットが異なるパケット解析モジュールに分配される可能性があるため、複数のパケット解析モジュール22〜22aで同一のサーチエンジン26をアクセスする。
【0057】
このとき、複数のパケット解析モジュール22〜22aからのアクセスが同時に実施される可能性がある、これらの調停はサーチエンジン26が行う。調停論理は、タイムスロット割り当て方式、もしくはラウンドロビン制御により行う。この調停機能のために、サーチエンジン26の内部においては、各パケット解析モジュール22〜22aに対応して検索リクエストをキューイングするリクエストキューを配備しておく。
【0058】
更に、サーチエンジン26においてはカウンタを備え、CAM27の各エントリ毎にヒットした回数をカウントする。これにより、分散ルーティングされた同一フローのパケットのカウントが可能となり、集約的に統計情報を収集することが可能となる。
【0059】
図7は、本発明のパケット処理装置を適用したIPルータ装置の一実施例の構成図を示す。同図中、回線終端部60〜60それぞれは例えば伝送速度10Gbpsの光回線(OC−192)を終端しており、各回線から受信したパケットはブレード単位で設けられたパケット処理部62〜62に供給される。
【0060】
パケット処理部62〜62それぞれは、2系統のパケット処理装置を有し、これらは図2と同様に、ディストリビュータ64,65と、処理速度が例えば2.5Gbpsのパケット解析モジュール(NP)66〜66,67〜67と、順序補正バッファ68,69と、マルチキュー70,71から構成されている。なお、パケット解析モジュール(PFE)66〜66,67〜67それぞれには図2と同様にサーチエンジンが接続されている。
【0061】
各回線から受信したパケットはディストリビュータ64によりパケット解析モジュール66〜66に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ68から入力順に読み出された後、マルチキュー70を構成する複数のキューにパケット毎にクラス(優先度)を付加してキューイングされ、優先度の高い音声パケット等を優先して取り出す如き既存のスケジューリングアルゴリズムによって各キューから取り出され、スイッチファブリック72に供給される。
【0062】
そして、スイッチファブリック72でスイッチングされたパケットは、ディストリビュータ65によりパケット処理部62〜62に供給され、パケット解析モジュール67〜67に分散されて宛先、発信元等各種の情報を解析され、順序補正バッファ69から入力順に読み出された後、マルチキュー71を構成する複数のキューにパケット毎にクラス(優先度)を付加してキューイングされ、既存のスケジューリングアルゴリズムによって各キューから取り出され、回線終端部60〜60を経て宛先の回線に送出される。
【0063】
このように、本発明によれば、データの高速化が進んでも、新たに高速のパケット解析モジュールを開発することなく、既に存在するパケット解析モジュールを用いて高速なデータ転送処理を実現することが可能となる。また、パケット解析モジュールの処理能力を軽減させることができ、多彩な処理機能の組み込みが可能となる。
【0064】
更に、負荷分散により同一フローが異なるパケット解析モジュールで処理されたとしても、単一のCAMの設定によりルーティングが可能であり、かつ集約的な統計情報の収集も複雑なソフトウエア制御を必要としない。また、パケットロス等の障害発生時に、有効なパケットを無駄に廃棄せずに処理を再開することが可能となる。
【0065】
なお、ディストリビュータ20が請求項記載の分配手段に対応し、パケット解析モジュール22〜22aがパケット解析手段に対応し、順序補正バッファ24が順序補正手段に対応し、出力FIFO34〜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 ディストリビュータ
22〜22a,66〜66,67〜67 パケット解析モジュール(PFE)
24,68,69 順序補正バッファ
26 サーチエンジン
27 CAM
28 RAM
30 SN付与部(SN_GEN)
32 解析振り分け部
34〜34a 出力FIFO
35 データ容量監視メータ(DCT)
36 パケット数監視メータ(PCT)
37 フラグ制御部
40〜40a パケット情報抽出部
42〜42a 一次バッファ
44,50 バッファ制御部
46 パケットバッファ
47 カウンタ
48 アドレス管理テーブル
60〜60 回線終端部
62〜62 パケット処理部

Claims (4)

  1. 入力されたパケットに一連番号を付加して分配する分配手段と、
    前記分配手段から分配されるパケットの情報解析処理を並列に実行する複数のパケット解析手段と、
    前記複数のパケット解析手段からパケットを供給され、前記パケットに付加されている一連番号順に並べ替えて出力する順序補正手段を有し、
    前記順序補正手段は、
    前記複数のパケット解析手段から供給されるパケットを格納するパケットバッファ手段と、
    前記パケットに付加されている一連番号に対応したエントリを持つアドレス管理手段と、
    前記複数のパケット解析手段から供給されたパケットを格納した前記パケットバッファ手段のアドレスを、そのパケットに付加されている一連番号に応じた前記アドレス管理手段のエントリに格納し、前記アドレス管理手段のエントリから前記一連番号順に前記パケットバッファ手段のアドレスを読み出し、前記パケットバッファ手段から前記一連番号順にパケットを読み出して出力するバッファ制御手段と、
    前記順序補正手段の障害を検出する障害検出手段を
    有することを特徴とするパケット処理装置。
  2. 請求項1記載のパケット処理装置において、
    前記バッファ制御手段は、前記アドレス管理手段の全エントリに前記パケットバッファ手段のアドレスが格納されたのち、前記パケットバッファ手段のアドレスの読み出しを行い、
    前記障害検出手段は、前記パケットバッファ手段に格納されたパケット数と読み出されたパケット数の差が所定値を超えたとき障害を検出することを特徴とするパケット処理装置。
  3. 請求項記載のパケット処理装置において、
    前記障害検出手段は、前記パケットバッファ手段のアドレスを格納した前記アドレス管理手段のエントリが、前記パケットバッファ手段のアドレスを読み出す前記アドレス管理手段のエントリに、所定の監視ウィンドウ値を加算したエントリより先となったとき、障害を検出することを特徴とするパケット処理装置。
  4. 請求項記載のパケット処理装置において、
    前記順序補正手段は、前記障害検出手段が障害を検出したのち、前記パケットバッファ手段のアドレスを最後に格納した前記アドレス管理手段のエントリから遡り連続して前記パケットバッファ手段のアドレスが格納されている先頭のエントリから前記パケットバッファ手段のアドレスの読み出しを再開することを特徴とするパケット処理装置。
JP2002319917A 2002-11-01 2002-11-01 パケット処理装置 Expired - Lifetime JP4154213B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 パケット処理装置

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