JPH09509018A - データネットワーク用の改良型パケットフィルタ処理方法 - Google Patents

データネットワーク用の改良型パケットフィルタ処理方法

Info

Publication number
JPH09509018A
JPH09509018A JP7506450A JP50645095A JPH09509018A JP H09509018 A JPH09509018 A JP H09509018A JP 7506450 A JP7506450 A JP 7506450A JP 50645095 A JP50645095 A JP 50645095A JP H09509018 A JPH09509018 A JP H09509018A
Authority
JP
Japan
Prior art keywords
target
candidate
field
fields
packet
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.)
Pending
Application number
JP7506450A
Other languages
English (en)
Inventor
ハウスマン・リチャード・ジェイ.
ビレンバウム・レイザー
Original Assignee
シスコ・システムズ・インコーポレーテッド
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 シスコ・システムズ・インコーポレーテッド filed Critical シスコ・システムズ・インコーポレーテッド
Publication of JPH09509018A publication Critical patent/JPH09509018A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 本発明は、コンピュータネットワーク(12)において、データパケット(210)をフィルタ処理するための改良型部分パケットフィルタ(10)を提供する。データパケット(210)の候補フィールド(413)は、複数のビットワイズサブセット(636)にハッシング処理される。各ビットワイズサブセット(636)は、候補フィールド(413)を独立に表す。各ビットワイズサブセット(636)を、予備的な操作系列(512)内に予め作成された参照ハッシュテーブル(644)と比較する。予備的な操作系列(512)により、複数のターゲットフィールド(714)を形成し、前記参照ハッシュテーブル(644)内に所定のメモリ位置(312)を設定する。

Description

【発明の詳細な説明】 データネットワーク用の改良型パケットフィルタ処理方法 技術分野 本発明は、コンピュータ科学の分野に属するものであり、更に詳しくはデータ ネットワークとデータネットワークに組み込まれる装置とに関する。 発明の背景 コンピュータネットワークは、産業、教育、公共部門で必要不可欠なものとな りつつある。データを伝送するメディア(媒体)状では、データは、通常「パケ ット」と呼ばれる単位で伝送される。パケットとは、それぞれの発信元において 、前もって一まとまりにされたデータである。データパケットの正当な送り先を 識別するために、標準化された所有者(発信元)のはっきりしたパケットには、 アドレスとパケットの種類とが含まれている。ネットワークのプロトコルに基づ いて標準化された各データパケットの先頭及び/あるいは内部には、送付先アド レスフィールドが付加されており、これを利用して送付先の識別がなされている 。パケットは、システム内の中間的な装置にも端末装置にも送られるので、伝送 されたデータパケットを効率よく入力し、送り出し、あるいは捨てるためには、 データの正当な送り先を迅速に決定することが必要となる。この決定は、上述の アドレス、パケットの種類、及び/あるいは、関係するパケット内の他のフィー ルドに基づいて行なわれる。この場合、正当な送り先の決定をネットワークコン トローラのハードウェアのみで行なうこともできるし、ソフトウェアのみで行な うことも、あるいはハードウェアとソフトウェアの組み合わせで行なうこともで きる。広域的な(broadcast)ネットワークでは、全てのノードが各パケットを 調べて目的のパケットを取り込む一方、それ以外のパケットの受け取りを拒絶す る。この操作を「パケットフィルタ処理」と呼ぶ。このフィルタ処理を行なう機 構では、精度、スピード、及び経済性のいずれも重要である。 上述の正当な送り先の決定をハードウェアとソフトウェアの組み合わせで行な った場合、ハードウェアは送られてくるパケットに対して部分フィルタ処理を行 なう。ある種のパケットフィルタ処理は、「ラント(runts)」と呼ばれる衝突 フラグメントやフレームチェックシーケンスエラー等のパケットエラー特性に基 づいて行なわれる。本発明が対象としているフィルタ処理は、エラー即ち間違っ て形成されたパケットの検出に基づくフィルタ処理ではなく、フィルタ処理の基 準をパケット内のデータフィールドの単純論理関数として表すことが可能なパケ ットフィルタ処理に基づくものである。 最も簡単な構成では、パケットに付けられた送付先アドレスフィールドがノー ド固有のアドレスと一致した時に、コンピュータネットワークの各ノードがパケ ットを取り込む。しかし、ここで、追加パケットがすべて受け取り対象パケット になるという状況が頻繁に生じる。例えば、あるノードが予め規定されたグルー プに属し、このグループ内の全てのノードが、そのグループをアドレスとするよ う予め定められたパケット(以下、これをグループキャストパケットと呼ぶ)を 同時に受け取る場合がこれに該当する。グループキャストパケットは、通常、パ ケットのアドレスフィールドに加えられた変化により識別される。グループキャ ストのアドレスは通常2つの型に分類される。「ブロードキャスト」アドレスが 全てのノードを対象とする一方、「マルチキャスト」アドレスは、ノードのサブ セット(部分)が登録された所定のアプリケーションを対象としている。このよ うなフィールドに基づくパケットフィルタ処理は、所定のネットワーク管理ノー ドを、所定のプロトコル、ノード間トランザクション等に集中するよう適用し、 全ての他のトラフィック(回線の使用)を排除するときにも、必要とされること がある。 ネットワーク用の装置をネットワークに組み込む場合には、ホストプロセッサ とは独立に作動するコントローラが用いられる。コントローラを起点する連続し た2段階のパケットフィルタ処理が行なわれ、リアルタイムでパケットが調べら れる。このために、所定のフィルタ処理基準の適当なサブセットを用い、そのコ ントローラのフィルタ能力に従って、コントローラの調整が行なわれる。コント ローラは、パケットを3種類のカテゴリーに分類する。即ち、フィルタ基準を満 たさないパケット(受け入れ拒否)、基準を満たすパケット(完全一致)、基準 を満たす可能性のあるパケット(部分一致)の3種類である。受け取り拒否パケ ットは、プロセッサに伝送されない。一方、完全一致あるいは部分一致に分類さ れたパケットは、その分類を示す標識を付けてプロセッサに伝送される。理想的 には、コントローラができるだけ多くの不必要なパケットを排除して、(適切な ソフトウェアが内部で実行されている)ホストプロセッサが必要に応じて全体の フィルタ処理を完成させる、という構成が望ましい。コントローラレベルにおい てパケットのフィルタ処理(即ち、部分フィルタ処理)を行なうことにより、ホ ストプロセッサの負荷を減らすことができる。 コントローラでフィルタ処理をする場合、パケットを受け取ると同時にパケッ トを処理する必要がある。このためには、最小の論理及びメモリ量で実行可能な フィルタ機構の開発が重要となる。コントローラベースのフィルタ処理基準は、 ターゲット・メモリ内に格納される。完全一致の場合には、所望のターゲットの リテラルリスト(literal list)がターゲット・メモリに格納される。完全一致 は、本質的には、完璧なフィルタ処理を実現するものであり、非常にターゲット 数が少ない場合のアプリケーションに用いることができる。 マルチキャストのアプリケーション等でよくみられるように、可能性のあるタ ーゲット数が比較的多い場合には、部分フィルタ処理が採用される。この場合、 第一に考慮すべきことは、部分フィルタの「効率」である。効率(E)は、以下 の式で表される。 E=Tn/Pn ここで、Tnは、対象となるターゲット・パケットの数を、Pnは、プロセッサ に送られる可能性のある候補パケット数を示す。 E=1.0は、全ての候補パケットが所望のターゲット・パケットとなる、完 全フィルタ処理効率を表す。これは、上述した「完全一致」の場合におけるフィ ルタ処理の効率である。この完全フィルタ処理効率は理想的ではあるが、コント ローラは実質的にリアルタイムでフィルタ処理を行なわなければならない、等の 上記の拘束条件により、このような効率を実際に実現することは困難である。 従来の部分パケットフィルタ処理では、多くの場合、ハッシング法が採用され ている。ハッシングプロセスは、最初に、所定のフィルタ処理基準に含まれる全 てのフィールドの各受信パケットからの抽出を行なう。以下、このような関係フ ィールドを「候補フィールド」と称する。候補フィールドが均等に分配されてい る状況を想定した場合(この状況が常に文字どおり的確とは限らないが、解析の 目的には有用である)、可能性のある候補パケットの数は、2Cbとなる。ここで 、Cbは、候補フィールド内のビット数を示す。ハッシング関数により、ハッシ ング関数に従う候補フィールドのビットの大きさが減少する。コントローラは、 その最初の作業の一部として、ターゲット・メモリの各フィールドにハッシング 関数が適用され、各フィールドの「目標ハッシュ値」を割り当てる。コントロー ラメモリは、目標ハッシュ値の集合を表すビットマスクとして初期化される。次 に、ハッシング関数を各候補フィールドに適用することにより、「候補ハッシュ 値」が生成される。候補ハッシュ値は、コントローラメモリ内でビットインデッ クスとして用いられる。候補ハッシュ値が目標ハッシュ値と一致した場合には、 可能な候補となる。 上記の議論からわかるように、また、簡単なハッシング関数に関して従来理解 されているように、ハッシング関数は、2Cb個の候補パケットをMb個のグルー プ(バケットと称する)に分割する効果を有する。ここで、Mbはコントローラ のターゲット・メモリ内のビット数を示す。同じバケットに属する候補パケット を区別することはできないため、一回の「ヒット」で、2Cb/Bm個の候補の何 れかを表すことになる。ハッシング関数で候補パケットを分割する場合、Mb個 のバケットの各々にほぼ均一に候補パケットを分配するようなハッシング関数を 用いることが望ましい。ターゲットが一つの場合には、このようなハッシング法 の効率は、Mb/2Cbになる。Tn個の所望のターゲットをBn個のバケットで 表す場合(ここで、Bn<=Tn及びBn<=Mbである)、このようなハッシ ング法の効率は、以下の式で表される。 E=Tn/(Bn2Cb/Mb)=TnMb/Bn2Cb 完全一致の場合、ターゲット・メモリには、Mb/Cb個のターゲットが格納 される。バケット数(Bn)がこの数字よりも大きい場合には、ハッシング法が 適している。一方、バケット数がMb未満であることが、効果的なハッシング処 理のためには必要である。これは、ターゲット・メモリの密度が増加するにつれ て、候補フィールド間の区別がなくなってくるためである。ターゲット・メモリ がハッシュ・ターゲットで一杯の場合、Bn=Mnであり、効率はTn/2Cbに なる。 部分パケットフィルタ処理に用いられる前述の従来ハッシング法では、一つの ハッシュ値が多くの候補の集合を表すために、情報の損失が生じる。当然のこと であるが、このようなデータ損失を減少させることが望ましい。言い替えると、 所定のMbに対してフィルタ処理効率を最大にする、即ち、所定のフィルタ処理 に対するMbを最小にすることが望ましい。 発明者の知る限りにおいて、これまでに提案されてきた部分パケットフィルタ 処理の方法では、上述した周知のハッシング法と比較して、効率を改善したり、 データの損失を減少させたりすることができなかった。 発明の開示 本発明は、上記問題点を解決するためになされたものであり、コンピュータネ ットワークのデータパケットに対して部分フィルタ処理を効率的に行なうための 方法並びに手段を提供することを目的とする。 本発明は、更に、大容量のターゲット・メモリを必要とすることなく、また、 伝送されるパケット処理の速度を過度に遅くすることなく、伝送されるパケット の中で対象外のパケットを最大限まで拒絶することのできる部分パケットフィル タ処理の方法並びに手段を提供することを目的とする。 また、本発明は、安価に実現可能な部分パケットフィルタ処理の方法並びに手 段を提供することを別の目的とする。 本発明は、リアルタイムあるいはリアルタイムに近い状態で操作可能な部分パ ケットフィルタ処理の方法並びに手段を提供することを更に別の目的とする。 更に、本発明は、様々なネットワークシステムの要件に適用可能な部分パケッ トフィルタ処理の方法並びに手段を提供することを目的とする。 本発明の好適な実施例は、各パケットの候補フィールドに並行に適用される多 重独立ハッシング関数を実行するものである。多重独立ハッシング関数を組み合 わせて適用することにより、ハッシュマトリックスを規定することができる。ハ ッシング関数の何れか一つにより、ハッシュマトリックスの各座標が決まる。ハ ッシュマトリックスは、一つの候補フィールドに異なったハッシング関数を適用 した結果、あるいは、候補フィールドの異なったサブセットに同じハッシング関 数を適用した結果、またあるいは、その組み合わせ、から構成される。フィルタ パラメータは、各ハッシング処理の結果得られた受容可能な値の集合から成る。 本発明の構成により、部分パケットフィルタ処理の効率を改善することができ 、その結果、パケットフィルタ処理の実質的な部分にホストプロセッサを必要と しない、という利点がある。 ターゲット・メモリの容量増加によりフィルタ処理の効率が幾何学的に増加す る、という利点もある。 非常に少ないターゲット・メモリ容量で所定の目標効率を実現することができ る、という利点もある。 また、所定の目標効率を実現するための部分パケットフィルタ処理に要する時 間が非常に短い、という利点もある。 本発明の上記及びそれ以外の目的並びに利点をより明確にするために、以下に 、図面に従って、本発明を実行するための最良の形態並びにその産業上の利用可 能性について詳述する。 図面の簡単な説明 図1は、本発明に従う改良型部分パケットフィルタを有するコンピュータネッ トワークの一部を示すブロック図である。 図2は、従来のイーサネットデータパケットを示す模式図である。 図3は、ハッシュテーブルの模式図である。 図4は、従来の部分パケットフィルタ処理法を示すフローチャートである。 図5は、本発明に従う部分パケットフィルタ処理法のブロック図である。 図6は、図5中の「パケット処理操作系列」を示すフローチャートである。 図7は、図5中の「予備的な操作系列」を示すフローチャートである。 発明の最良の形態 パーソナルコンピュータのイーサネットコントローラ内で実現される部分パケ ットフィルタに、本発明の構成を適用した実施例について、以下に説明する。本 発明の改良型部分パケットフィルタは、コンピュータ装置に繋いで用いられ、特 に比較的ターゲット数が少ないネットワーク環境において用いられる。 本発明を具現化した改良型部分パケットフィルタ10を、図1のブロック図に 示す。図1で、改良型部分パケットフィルタ10は、ネットワークシステム12 (図1にはその一部分のみを示す)の一部として構成されている。本発明の改良 型部分パケットフィルタ10は、構造的には従来のものと異なるわけではない。 従来法と同様に、本発明でも、ターゲットメモリ16を有するコントローラ14 を用いる。図1の例では、改良型部分パケットフィルタ10は、ネットワークノ ード18からデータを受け取り、そのデータに対して、改良されたフィルタ処理 を行なった上で、そのデータの一部をホストプロセッサ18に送る。 図2に、従来のイーサネットデータパケット210の模式図を示す。標準的な イーサネットデータパケット210には、64ビットの前置部(preamble)21 2、48ビットの送信先アドレス214、48ビットの発信元アドレス216、 16ビットの長さ/タイプフィールド218、および最小で46バイトから最大 で1500バイトまでの範囲でその長さが変化するデータフィールド220が含 まれている。パケット210中のデータフィールド220の後ろに4バイト(3 2ビット)のフレームシークエンスチェック(FCS)222が続く。パケット 210は先頭224から末尾226まで連続的に転送される。前置部212、送 信先アドレス214、発信元アドレス216、および長さ/タイプフィールド2 18を、まとめてヘッダ219と呼ぶ。 図3は当業者に周知の従来法による一次元ハッシュテーブル310を模式的に 示したものである。このハッシュテーブル310は、複数のアドレス位置312 を有し、その各々はセットされている(値1に設定)か、またはセットされてい ない(値0のまま)かである。 図4は、従来の部分パケットフィルタ処理法410のフローダイアグラムを示 す。既に簡単に述べたように、パケット210はネットワーク18から受け渡さ れ(パケット受領操作412)、候補フィールド413(パケット210のヘッ ダ219など)が抽出される(候補フィールドの抽出操作414)。抽出された 候補フィールド413にハッシュ操作が施されてハッシュ値417がきまり、比 較操作418によってその値がターゲットメモリ16に格納されたハッシュテー ブル310と比較される。比較操作418の結果、適合すると判定されれば、パ ケット210はパケットの転送操作420へと送られる。比較操作418の結果 が適合しなければ、パケット210はパケット却下操作422へと送られる。こ こで、処理の対象としてヘッダ219を用いたのは一つの例であり、パケット2 10のいかなる部分及びその組み合わせであれ、候補フィールド413を構成す ることができる。 図5は本発明の改良型部分パケットフィルタ処理510のフローダイアグラム である。改良型部分パケットフィルタ510は、予備的な操作系列512とパケ ット処理操作514とからなり、以下に述べるように、その何れもが必要に応じ て繰り返される。予備的な操作系列512は、ホストプロセッサ20上のソフト ウェアによって行なわれ、以下に述べるようにターゲットメモリ16を構成する 。改良型部分パケットフィルタ処理510は二つの主要な操作(予備的な操作系 列512とパケット処理操作514)に分けられるが、このこと自体が本発明を 従来技術と区別するものではない。むしろ、予備的な操作系列512とパケット 処理操作514中に含まれる処理法が本発明の骨子である。 従来技術の部分パケットフィルタ処理410を図4に示したのと同様に、本発 明の部分パケットフィルタ処理操作514の流れ図を図6に示した。図6を見て わかるように、本発明の部分パケットフィルタ処理操作514は多くの点で従来 技術の部分パケットフィルタ処理操作410に似ている。パケット処理操作51 4では、パケット210が受けわたされ(パケット受領操作412)、候補フィ ールドの抽出操作414によって候補フィールド413が抽出される。本発明の 最良の形態では、パケット処理操作系列514は候補フィールドの縮小操作62 6を行なう。本発明の最良の形態では、候補フィールド413に対して単に従来 のCRCの多項式のアルゴリズムを応用して32ビットのCRC出力値628を 作るだけである(同様なアルゴリズムは他にもたくさんあり、何れもこの目的に 用いることができるが)。次に、サブセット選択操作630によってCRC出力 値628から予め決められた数(図6の例では2個)のビットワイズサブセット (bit-wise subsets)636が決定する。サブセット選択操作630によって選 択されるビットワイズサブセット636の数と大きさを決定する方法については 以下に述べる。本発明の最良の形態では、ビットワイズサブセット636の長さ はそれぞれ6ビットである。本発明の最良の形態では、ビットワイズサブセット 636は単純にCRC出力値628の最初の6ビット、2番目の6ビットのよう に、必要なだけとることによって作られる。本発明者等は、CRC出力値628 の(CRC多項式から生ずる)ビットが互いに独立になるようにしたので、CR C出力値628のいかなる6ビットも他の6ビット部分と同様にCRC出力値を 代表している。 次に、ビットワイズサブセット636は比較操作618によって、ターゲット メモリ16中に格納されたハッシュテーブル310と比較される。複数のハッシ ュ値を合成したものはハッシュマトリックス638(図6の例では二次元のハッ シュマトリックス638)と考えることができる。 本発明の方法の要旨は、候補フィールド413を代表する独立した、あるいは 比較的独立した複数の指標を抽出することにある。ハッシュマトリックス638 を構成するビットワイズサブセット636がこれに相当する。これらの一般的な 同時(並行)処理が、本発明の方法及び手段の優位性の根元である。本発明にか かわる詳しい方法、即ち、候補フィールドの縮小操作626で最初に候補フィー ルド413を縮小する方法やその後ビットワイズサブセット636を抽出する方 法は、このような並行ハッシュ操作639を達成するための多くの可能な方法の 一つにすぎず、本発明はなんら最良の形態としての実施例の改良型パケットフィ ルタ10に限定されるものではない。 本発明の最良の形態であるフィルタ10の比較操作642では、ビットワイズ サブセット636がターゲットメモリ16に格納された参照ハッシュテーブル6 44と比較され、全てが適合する場合にのみパケット210はパケット転送操作 646へと送られる。図6の実施例では、参照ハッシュテーブル644は0から 63までの全ての値をとりうる要素の並びである。参照ハッシュテーブル644 のいくつかの要素は予備的な操作系列512との関連で以下で述べるように設定 される。ビットワイズサブセットの値がバケットの一つに入った場合(即ち、参 照ハッシュテーブル644中の対応するビットに等しい場合)、両者は、一致し ているとみなされる。 パケット処理操作系列514を理解した上で、再度、予備的な操作系列512 について考えると、図6のパケット処理操作系列514に関連して述べたような 処理ステップの集合として、ターゲットメモリ16が形成されている。 図7に、本発明の最良の形態による予備的な操作系列512の流れ図を示す。 従来技術及び本発明いずれににも共通の予備的な操作はターゲットフィールド選 択プロセス712である。ターゲットフィールド選択プロセス712は、単に、 伝送されてくるパケット210を比較するための基準を選択するにすぎない。例 えば、全ての処理を希望する送信先に基づいて行なうならば、目標とする送信先 アドレス214は、ターゲットフィールド714(の一つ)となり、もし送信先 が三つあれば図7の例にあるように三つのターゲットフィールドができる。ター ゲットフィールドの選択する実際の操作は、従来技術であるネットワーク制御ソ フトウェアの機能であり、ターゲットフィールド714を本発明にかかわる予備 的な操作系列512へ送付するよう拡張した点を除けば、本発明の要旨ではない 。 対象とするターゲットフィールド714の量を決定した後、ホストソフトウェ アはビットワイズサブセット量決定操作718でビットワイズサブセット量71 6を決定する。予備的な操作系列512の全体を記述した後の方が理解しやすい ので、ビットワイズサブセット量決定操作718については、後で詳しく述べる 。図6と図7の簡単な例で示すように、ビットワイズサブセット量716は、値 2である。つまり、2つのビットワイズサブセット636が、サブセット選択操 作630によりCRC出力値628から抽出される。 ターゲットフィールド714の形態は既に述べた候補フィールド413と同等 であり、ターゲットフィールド714についての処理は既に述べた候補フィール ド413と同様である。本発明における予備的な操作系列512において、ター ゲットフィールド714の各々がターゲットフィールド縮小操作726において 処理され、CRC多項式の適用により、ターゲットCRC値728を生成する。 ターゲットCRC値728はその後ターゲットサブセット選択操作730で処理 され、複数の(本例の場合、各々のターゲットCRC値728に対して二つずつ で総計6)のターゲットビットワイズサブセット736を生成する。各々のター ゲットCRC値728からとったターゲットビットワイズサブセット736の量 は、ビットワイズサブセット量716である(本例の場合には2)。本発明の最 良の形態10の特徴として記載されたステップを種々に変更しても本発明は実現 可能であるという意味で、ターゲット並行ハッシング操作739は、前述した並 行ハッシング操作639と同様のものである。 こうして得られたターゲットビットワイズサブセット736に対して、ターゲ ット・メモリセッティング操作740がなされる。このターゲット・メモリセッ テング操作740において、参照ハッシュテーブル644がフォーマットされ、 ターゲットビットワイズサブセット736の各値に対応するメモリ位置312が 設定される。例えば、もし最初のターゲットビットワイズサブセット736aが ”000010”(十進法で2)ならば、参照ハッシュテーブル644の3番目 のメモリ位置312cが値1に設定される。上記の議論で明らかなように、本操 作で設定される参照ハッシュテーブル644中のメモリ位置312の最大数はタ ーゲットビットワイズサブセット736の数(本例では6)に一致する。しかし ながら、二つもしくはそれ以上のターゲットビットワイズサブセット736が偶 然に同じ値をとることもあり得るので、設定されるメモリ位置312の数が、こ の数(上記例では6)より少ないこともありうる。 ビットワイズサブセット量決定操作718に説明に戻って、より詳細に、その 操作について議論する。ターゲットメモリ16は、ホストプロセッサ20のソフ トウェアが扱う同報通信パケット210の量に応じて、フィルタ操作の効率が最 大となるように構成される。したがって、ビットワイズサブセット量決定操作7 18で、パケット210当たりの最適のインデックスの数(つまりを先に述べた ビットワイズサブセット量716)を決定する(少なくともおよその値を決める )。ここで最適の数とは、参照ハッシュテーブル644に設定されたデータビッ トが、対象となるパケット210の全てと一致する一方で、対象としないパケッ トと一 致するのを最小とする数の意味である。本発明の最良の形態では、ビットワイズ サブセット量716を決定するのに次の表が用いられる。 上記のテーブルは、一つの目安として提供されているだけであり、特定のハッ シュインデックスに対する最適の数は変えることができる。さらに上記の表は、 ターゲットビットワイズサブセット736のいずれもが、ハッシュ操作により、 参照ハッシュテーブル644中の同一のメモリ位置312を参照しないというこ とが前提になっていることに注意しなければならない。もし実際に二つもしくは それ以上のターゲットビットワイズサブセット736が同一のメモリ位置312 をハッシュ操作により参照する場合には、速度を犠牲にしたり、余分なメモリを 使ったり操作をすることなしに、ハッシュインデックスを追加することができる 。 本発明の最良の形態では、パケット処理操作系列514はハードウェアで行な うが、予備的な操作系列はホストプロセッサ20上のソフトウェアによって行な われる。上記の議論で明らかなように、ネットワーク12が再構成された場合や 、ネットワーク12の付加的なメンバと通信する場合、あるいはユーザやネット ワーク12の要望に応じる場合に、予備的な操作系列512は繰り返される。入 ってくるパケット210がネットワークノード18で検出される限り、パケット 処理操作系列514も繰り返される。 本発明の最良の形態では、CRC値628及び728は共通の参照ハッシュテ ーブル644に従ってハッシュされるが、それぞれ固有の(ここには示さない) ハッシュテーブルによっても同様にハッシュすることができる。図6及び図7の 例では、個々のハッシュテーブルは32ビットである(二つのターゲットCRC 値728に分割しなければならないので、64ビットの半分となる)。個々のビ ットワイズサブセット636,736は5ビット(十進数で0から31)となる 。 本発明のパケットフィルタ10は、その価値や分野を変えることなくさまざま に変更することができる。例えば、ビットワイズサブセット636,738の量 、大きさ及び重複度はここで議論したパラメーターに従って容易に変更できる。 以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態 になんら限定されるものではなく、本発明の要旨を逸脱しない範囲内において、 種々なる形態で実施し得ることはもちろんである。 産業上の利用可能性 本改良型部分パケットフィルタ10はコンピューターネットワーク通信の分野 に広く利用できる。現在の主要な利用対象はネットワーク内のコンピュータとそ の周辺装置の間およびいくつかのコンピュータネットワーク間の相互接続である 。 本改良型部分パケットフィルタ10は従来のコンピュータの相互接続装置を用 いるアプリケーションならばどれにでも用いることができる。主要な改良点はパ ケット210の複数のインデックス(ビットワイズサブセット636)を並行し て処理する点にある。 フィルタリングの効率は改良型部分パケットフィルタ10によって、特にター ゲットの数がバケットの数に比べて小さい場合に著しく改良される。本発明によ る改良部分パケットフィルタ処理10の効率を従来技術の部分パケットフィルタ 処理の効率と比較するために、次のような数値を仮定する: Mb=64(参照ハッシュテーブル644中に64のメモリ位置312がある ことを示す) Cb=48(48ビットの候補フィールド413の大きさ、即ち送信先アドレ ス214の典型的な大きさを示す) Dn=4(ビットワイズサブセット量716が4であることを示す) この時、従来技術の部分パケットフィルタ処理410では、64の異なったバ ケットの内の一つがターゲットに合致する場合、64のメモリ位置を2CBの可能 性に対して分配することになる。改良パケットフィルタリング操作510の場合 には、4つの並行するハッシング関数がそれぞれ16のバケットに分配される。 従来技術の部分パケットフィルタ処理の410の効率Efは: Ef=64/248=1/242 本例の改良パケットフィルタリング操作510の効率(Ef4)は: Ef4=644/(44*248)=1/232 Ef4の効率はEfより210(1024)倍よく、言い換えるならば従来技術 に比べて本発明の改良型部分パケットフィルタ10を用いると、対象とならない パケットが、誤って次の段階へ送られる確率は、わずか1000分の1となる。 パケットのフィルタ操作は完全一致および部分一致フィルタの組み合わせによ って達成される。典型的には、一つまたはそれ以上の部分フィルタリング処理が 最初になされるが、個々のフィルタ処理は(本発明に従って)並行に行なわれる 。本発明の改良型部分パケットフィルタ10を通過したパケットはその後完全一 致フィルタ法、例えば二等分探索などを用いることによって再度フィルタにかけ られる。更に、部分フィルタ操作の結果は、パケットを探すための多くのテーブ ルの中のいずれを用いるかを決定するのにも用いられる。 従って、本発明の改良部分パケットフィルタ処理510は入ってくるパケット 210に対して1回以上適用することができる。そのような例では、1段目の部 分フィルタ操作では、各操作ごとのフィルタデータを含むパケット部分並びに各 操作ごとの受容可能な結果に加えて、実行すべきハッシュ操作の数とタイプが特 定される。多重部分フィルタ操作では、個々のフィルタ操作の結果に適用する論 理関係を示す宣言を含んでいる。例えば、部分パケットフィルタAがイーサネッ トパケット送信先アドレスフィールドに32ビットCRC多項式を適用し、下位 3ビット(0から7の値)を保持しているとする。一方、部分パケットフィルタ Bは、イーサネットパケット発信元アドレスフィールドに32ビットCRC多項 式を適用し、下位3ビットを保持しているとする。論理関係は、第一段のフィル タ操作の結果が2または4であり、第二段のフィルタ操作の結果が3または4で ある場合にのみ、パケットを受け入れるとする。0から7までの8個の値の内の 2個が受け入れ可能なので、任意のフィルタデータが第一段のフィルタ操作を通 過する可能性は一般的には2/8(25%)である。同様に第二段のフィルタ操 作を通過する可能性は2/8(25%)である。二つのフィルタ操作が完全に独 立であるならば、この任意のパケットがこれらの論理積を通過する可能性は1/ 16である。これらの受け入れ可能な集合(Aに対しては{2、4}、Bに対し ては{3、4})を完全に特定するには、16ビットの情報(そのうち8ビット はフィルタ操作Aでとりうるの8つの値の受容/非受容を示し、残り8ビットは フィルタ操作Bでとりうるの8つの値の受容/非受容を示す)が必要であること に留意すべきである。フィルタ操作の基準がフィルタデータの独立な部分から誘 導される場合には、このような多重部分フィルタ操作を用いることが特に有効で ある。例えば、送信先アドレスまたは発信元アドレスが1集合の中にあり、且つ そのパケットタイプが対象となる特定のプロトコルを指示している場合などであ る。 本発明の改良部分パケットフィルタは容易に構築することができ既存のコンピ ュータ装置と調和するので、産業界において現在、部分パケットフィルタ処理に 用いられている従来法に変わって受け入れられるであろう。以上及びその他の理 由により、本発明の有用性と産業上の利用可能性は重要であり長期にわたる恒久 性がある。
【手続補正書】特許法第184条の8 【提出日】1995年7月10日 【補正内容】 従来の部分パケットフィルタ処理では、多くの場合、ハッシング法が採用され ている。ハッシングプロセスは、最初に、所定のフィルタ処理基準に含まれる全 てのフィールドの各受信パケットからの抽出を行なう。以下、このような関係フ ィールドを「候補フィールド」と称する。候補フィールドが均等に分配されてい る状況を想定した場合(この状況が常に文字どおり的確とは限らないが、解析の 目的には有用である)、可能性のある候補パケットの数は、2Cbとなる。ここで 、Cbは、候補フィールド内のビット数を示す。ハッシング関数により、ハッシ ング関数に従う候補フィールドのビットの大きさが減少する。コントローラは、 その最初の作業の一部として、ターゲット・メモリの各フィールドにハッシング 関数が適用され、各フィールドの「目標ハッシュ値」を割り当てる。コントロー ラメモリは、目標ハッシュ値の集合を表すビットマスクとして初期化される。次 に、ハッシング関数を各候補フィールドに適用することにより、「候補ハッシュ 値」が生成される。候補ハッシュ値は、コントローラメモリ内でビットインデッ クスとして用いられる。候補ハッシュ値が目標ハッシュ値と一致した場合には、 可能な候補となる。 上記の議論からわかるように、また、簡単なハッシング関数に関して従来理解 されているように、ハッシング関数は、2Cb個の候補パケットをMb個のグルー プ(バケットと称する)に分割する効果を有する。ここで、Mbはコントローラ のターゲット・メモリ内のビット数を示す。同じバケットに属する候補パケット を区別することはできないため、一回の「ヒット」で、2Cb/Mb個の候補の何 れかを表すことになる。ハッシング関数で候補パケットを分割する場合、Mb個 のバケットの各々にほぼ均一に候補パケットを分配するようなハッシング関数を 用いることが望ましい。ターゲットが一つの場合には、このようなハッシング法 の効率は、Mb/2Cbになる。Tn個の所望のターゲットをBn個のバケットで 表す場合(ここで、Bn<=Tn及びBn<=Mbである)、このようなハッシ ング法の効率は、以下の式で表される。 従来技術の部分パケットフィルタ処理410を図4に示したのと同様に、本発 明の部分バケットフィルタ処理操作514の流れ図を図6に示した。図6を見て わかるように、本発明の部分パケットフィルタ処理操作514は多くの点で従来 技術の部分パケットフィルタ処理操作410に似ている。パケット処理操作51 4では、パケット210が受けわたされ(パケット受領操作412)、候補フィ ールドの抽出操作414によって候補フィールド413が抽出される。本発明の 最良の形態では、パケット処理操作系列514は候補フィールドの縮小操作62 6を行なう。本発明の最良の形態では、候補フィールド413に対して単に従来 のCRCの多項式のアルゴリズムを応用して32ビットのCRC出力値628を 作るだけである(同様なアルゴリズムは他にもたくさんあり、何れもこの目的に 用いることができるが)。次に、サブセット選択操作630によってCRC出力 値628から予め決められた数(図6の例では2個)のビットワイズサブセット (bit-wise subsets)636が決定する。サブセット選択操作630によって選 択されるビットワイズサブセット636の数と大きさを決定する方法については 以下に述べる。本発明の最良の形態では、ビットワイズサブセット636の長さ はそれぞれ6ビットである。本発明の最良の形態では、ビットワイズサブセット 636は単純にCRC出力値628の最初の6ビット、2番目の6ビットのよう に、ビットワイズサブセットが必要とされる限りいくらでも得ることができる。 発明の最良の形態として知られている実施例10では、ビットワイズサブセット 636は、固定長フィールドの「連続するビットセクション」、例えば発明の最 良の形態である実施例10におけるCRC出力値628として得られる。本発明 者等は、CRC出力値628の(CRC多項式から生ずる)ビットが互いに独立 になるようにしたので、CRC出力値628のいかなる6ビットも他の6ビット 部分と同様にCRC出力値を代表している。 次に、ビットワイズサブセット636は比較操作618によって、ターゲット メモリ16中に格納されたハッシュテーブル310と比較される。複数のハッシ ュ値を合成したものはハッシュマトリックス638(図6の例では二次元のハッ シュマトリックス638)と考えることができる。 本発明の方法の要旨は、候補フィールド413(候補フィールドインデックス ) を代表する独立した、あるいは比較的独立した複数の指標を抽出することにある 。ハッシュマトリックス638を構成するビットワイズサブセット636がこれ に相当する。これらの一般的な同時(並行)処理が、本発明の方法及び手段の優 位性の根元である。それは、各々のビットワイズサブセット636が、上述した ように、候補フィールド413を代表しているということである。本発明にかか わる詳しい方法、即ち、候補フィールドの縮小操作626で最初に候補フィール ド413を縮小する方法やその後ビットワイズサブセット636を抽出する方法 は、このような並行ハッシュ操作639を達成するための多くの可能な方法の一 つにすぎず、本発明はなんら最良の形態としての実施例の改良型パケットフィル タ10に限定されるものではない。 本発明の最良の形態であるフィルタ10の比較操作642では、ビットワイズ サブセット636がターゲットメモリ16に格納された参照ハッシュテーブル6 44(目標ハッシュアレイ)と比較され、全てが適合する場合にのみパケット2 10はパケット転送操作646へと送られる。図6の実施例では、参照ハッシュ テーブル644は0から63までの全ての値をとりうる要素の並びである。参照 ハッシュテーブル644のいくつかの要素は予備的な操作系列512との関連で 以下で述べるように設定される。ビットワイズサブセットの値がバケットの一つ に入った場合(即ち、参照ハッシュテーブル644中の対応するビットに等しい 場合)、データパケット210は「一致」とみなされる。 パケット処理操作系列514を理解した上で、再度、予備的な操作系列512 について考えると、図6のパケット処理操作系列514に関連して述べたような 処理ステップの集合として、ターゲットメモリ16が形成されている。 図7に、本発明の最良の形態による予備的な操作系列512の流れ図を示す。 従来技術及び本発明いずれににも共通の予備的な操作はターゲットフィールド選 択プロセス712である。ターゲットフィールド選択プロセス712は、単に、 伝送されてくるパケット210を比較するための基準を選択するにすぎない。例 えば、全ての処理を希望する送信先に基づいて行なうならば、目標とする送信先 アドレス214は、ターゲットフィールド714(の一つ)となり、もし送信先 が三つあれば図7の例にあるように三つのターゲットフィールドができる。ター ゲットフィールドの選択する実際の操作は、従来技術であるネットワーク制御ソ フトウェアの機能であり、ターゲットフィールド714を本発明にかかわる予備 的な操作系列512へ送付するよう拡張した点を除けば、本発明の要旨ではない 。 対象とするターゲットフィールド714の量を決定した後、ホストソフトウェ アはビットワイズサブセット量決定操作718でビットワイズサブセット量71 6(ビットワイズサブセット636の適切なサブセット量)を決定する。予備的 な操作系列512の全体を記述した後の方が理解しやすいので、ビットワイズサ ブセット量決定操作718については、後で詳しく述べる。図6と図7の簡単な 例で示すように、ビットワイズサブセット量716は、値2である。つまり、2 つのビットワイズサブセット636が、サブセット選択操作630によりCRC 出力値628から抽出される。 ターゲットフィールド714の形態は既に述べた候補フィールド413と同等 であり、ターゲットフィールド714についての処理は既に述べた候補フィール ド413と同様である。本発明における予備的な操作系列512において、ター ゲットフィールド714の各々がターゲットフィールド縮小操作726において 処理され、CRC多項式の適用により、ターゲットCRC値728を生成する。 ターゲットCRC値728はその後ターゲットサブセット選択操作730で処理 され、複数の(本例の場合、各々のターゲットCRC値728に対して二つずつ で総計6)のターゲットビットワイズサブセット736を生成する。より一般的 に言えば、各ターゲットフィールド714(従来の技術に従って選択されもの、 既に上述した)は、ターゲット代表フィールド(この実施例ではターゲットCR C値728)を生成する手法として説明したのと同じように、処理され、更にタ ーゲット代表フィールドを生成する手法として説明した処理と同じように処理さ れる。これは、この実施例では、ターゲットビットワイズサブセット736であ る。この処理は、各入力データパケット210を処理する必要がある限る繰り返 される処理、即ち候補フィールド413が候補代表フィールド(この実施例では CRC出力値628)を生成する処理であって、候補ストリングサブセット(こ の実施例ではビットワイズサブセット636)を生成する処理と同様に繰り返さ れる。更に各々のターゲットCRC値728からとったターゲットビットワイズ サブセット736の量は、ビットワイズサブセット量716である(本例の場合 には2)。本発明の最良の形態10の特徴として記載されたステップを種々に変 更しても本発明は実現可能であるという意味で、ターゲット並行ハッシング操作 739は、前述した並行ハッシング操作639と同様のものである。 こうして得られたターゲットビットワイズサブセット736に対して、ターゲ ット・メモリセッティング操作740がなされる。このターゲット・メモリセッ テング操作740において、参照ハッシュテーブル644がフォーマットされ、 ターゲットビットワイズサブセット736の各値に対応するメモリ位置312が 設定される。例えば、もし最初のターゲットビットワイズサブセット736aが ”000010”(十進法で2)ならば、参照ハッシュテーブル644の3番目 のメモリ位置312cが値1に設定される。上記の議論で明らかなように、本操 作で設定される参照ハッシュテーブル644中のメモリ位置312の最大数はタ ーゲットビットワイズサブセット736の数(本例では6)に一致する。しかし ながら、二つもしくはそれ以上のターゲットビットワイズサブセット736が偶 然に同じ値をとることもあり得るので、設定されるメモリ位置312の数が、こ の数(上記例では6)より少ないこともありうる。 ビットワイズサブセット量決定操作718に説明に戻って、より詳細に、その 操作について議論する。ターゲットメモリ16は、ホストプロセッサ20のソフ トウェアが扱う同報通信パケット210の量に応じて、フィルタ操作の効率が最 大となるように構成される。したがって、ビットワイズサブセット量決定操作7 18で、パケット210当たりの最適のインデックスの数(つまりを先に述べた ビットワイズサブセット量716)を決定する(少なくともおよその値を決める )。ここで最適の数とは、参照ハッシュテーブル644に設定されたデータビッ トが、対象となるパケット210の全てと一致する一方で、対象としないパケッ トと一致するのを最小とする数の意味である。本発明の最良の形態では、ビット ワイズサブセット量716を決定するのに次の表が用いられる。 上記のテーブルは、一つの目安として提供されているだけであり、特定のハッ シュインデックスに対する最適の数は変えることができる。さらに上記の表は、 ターゲットインデックス(発明の最良の形態である本実施例10ではターゲット ビットワイズサブセット736)のいずれもが、ハッシュ操作により、参照ハッ シュテーブル644中の同一のメモリ位置312を参照しないということが前提 になっていることに注意しなければならない。もし実際に二つもしくはそれ以上 のターゲットビットワイズサブセット736が同一のメモリ位置312をハッシ ュ操作により参照する場合には、速度を犠牲にしたり、余分なメモリを使ったり 操作をすることなしに、ハッシュインデックスを追加することができる。 本発明の最良の形態では、パケット処理操作系列514はハードウェアで行な うが、予備的な操作系列はホストプロセッサ20上のソフトウェアによって行な われる。上記の議論で明らかなように、ネットワーク12が再構成された場合や 、ネットワーク12の付加的なメンバと通信する場合、あるいはユーザやネット ワーク12の要望に応じる場合に、予備的な操作系列512は繰り返される。入 ってくるパケット210がネットワークノード18で検出される限り、パケット 処理操作系列514も繰り返される。 請求の範囲 1.コンピュータネットワークにおいてデータパケットをフィルタ処理するた めの改良パケットフィルタ処理方法であって、 パケットフィルタ内にパケットを入力するステップと、 パケットから候補フィールドを抽出するステップと、 前記候補フィールドに対して複数のハッシング処理を行ない、同様に複数の代 表フィールドを生成するステップと、 前記代表フィールドの各々を目標ハッシュ・アレイと比較して、前記代表フィ ールドの全てが前記目標ハッシュ・アレイに設定された値に対応する場合には、 パケットが一致していると定義するステップと、 前記パケットフィルタにより、一致していると定義されたパケットを選択的に 通過させるステップと、 を備えることを特徴とする改良パケットフィルタ処理方法。 2.前記複数のハッシング処理が、 前記候補フィールドを所定の大きさのフィールドに縮小するステップと、 前記所定の大きさのフィールドから複数の代表フィールドを抽出するステップ と、 を備えることを特徴とする請求項1記載の改良パケットフィルタ処理方法。 3.CRC多項式アルゴリズムを前記候補フィールドに適用することにより、 前記候補フィールドを前記所定の大きさのフィールドに縮小することを特徴とす る請求項2記載の改良パケットフィルタ処理方法。 4.前記候補フィールドが、32ビットの所定の大きさに縮小されることを特 徴とする請求項2記載の改良パケットフィルタ処理方法。 5.前記所定の大きさのフィールド内の前記代表フィールドが、各々、前記所 定の大きさのフィールド内の連続ビット部分であることを特徴とする請求項2記 載の改良パケットフィルタ処理方法。 6.前記代表フィールドが、各々、同じ大きさであることを特徴とする請求項 1記載の改良パケットフィルタ処理方法。 7.前記代表フィールドが、各々、6ビットの大きさであることを特徴とする 請求項1記載の改良パケットフィルタ処理方法。 8.前記代表フィールドの数が2以上であることを特徴とする請求項1記載の 改良パケットフィルタ処理方法。 9.前記代表フィールドの各々を同じ目標ハッシュ・アレイと比較するために 、前記目標ハッシュ・アレイを非分割のものとしたこと特徴とする請求項1記載 の改良パケットフィルタ処理方法。 10.データパケットに関する情報を備えた候補フィールドを有するデータパ ケットを、選択的に転送してコンピュータネットワークシステム内におけるデー タパケットの分配を制御する方法であって、 以下のステップ(aa),(ab)に従い、目標ハッシュ・アレイを含むよう にコントローラのターゲット・メモリを形成し、 (aa)ターゲットフィールドを決定し、かつ該ターゲットフィールドから、 二進値である複数のターゲットインデックスを抽出するステップ、および (ab)前記ターゲット・メモリ内に、前記ターゲットインデックスの各々の 値に対応するメモリ位置を設定するステップ 以下のステップ(ba),(bd)に従い、前記データパケットを処理するこ と (ba)前記データパケットから候補フィールドを抽出するステップ、および (bb)前記候補フィールドから複数の候補フィールドインデックスを抽出す るステップ (bc)前記候補フィールドインデックスの各々の値を前記目標ハッシュ・ア レイと比較するステップ (bd)前記候補フィールドインデックスの各々の値が、ステップ(ab)で せっされた目標ハッシュ・アレイの前記メモリ位置に対応する場合に、前記デー タパケットを転送させるステップ を特徴とする方法。 11.前記ステップ(aa)が、更に、 (aa1)前記ターゲットフィールドを複数のターゲット代表フィールドに縮 小するステップと、 (aa2)前記ターゲット代表フィールドから一つあるいは複数のターゲット ストリング・サブセットを選択するステップと、を備え、 前記ステップ(bb)が、更に、 (bb1)前記候補フィールドを複数の候補代表フィールドに縮小するステッ プと、 (bb2)前記候補代表フィールドから一つあるいは複数の候補ストリング・ サブセットを選択するステップと、を備えること を特徴とする請求項10記載の方法。 12.前記ステップ(ab)が、前記ターゲットストリング・サブセットの各 々の値に対応する前記ターゲット・メモリ内の前記メモリ位置のみに値「1」を 設定するステップを更に備えることを特徴とする請求項11記載の方法。 13.データパケットの分配を変化させることが必要な場合に前記ステップ( aa)ないし(ab)を繰り返すことを特徴とする請求項10記載の方法。 14.伝送されるデータパケットの各々に対してステップ(ba)ないし(b d)を繰り返すことを特徴とする請求項10記載の方法。 15.前記ステップ(aa1)が、更に、前記ターゲットフィールドの各々に 循環冗長チェック(CRC)・アルゴリズムを適用するステップを備え、 前記ステップ(bb1)が、更に、前記候補フィールドに前記循環冗長チェッ ク・アルゴリズムを適用するステップを備えること を特徴とする請求項11記載の方法。 16.前記ステップ(aa2)において、前記ターゲット代表フィールドから 複数のターゲットビットワイズサブセットを抽出することにより、前記ターゲッ トストリング・サブセットを選択し、 前記ステップ(bb2)において、前記候補代表フィールドから複数の第2の 連続ビット列を抽出することにより、前記候補ストリング・サブセットを選択す ること を特徴とする請求項11記載の方法。 17.前記ステップ(ab)の前に、前記ターゲットフィールドの各々から抽 出するべきターゲットインデックスの数、並びに、前記候補フィールドの各々か ら抽出するべき候補インデックスの数を示すサブセット量を求める追加プロセス ステップを備えることを特徴とする請求項10記載の方法。 18.少なくとも初期段階では、サブセット量のテーブルからサブセット量を 選択することによって、前記追加プロセスステップを実行することを特徴とする 請求項17記載の方法。 19.前記ステップ(ab)の前に、前記ターゲット代表フィールドの各々か ら抽出するべきターゲットストリング・サブセットの数、並びに、前記候補代表 フィールドの各々から抽出するべき候補ストリング・サブセットの数を示すサブ セット量を求める追加プロセスステップを備えることを特徴とする請求項11記 載の方法。 20.少なくとも初期段階では、サブセット量のテーブルからサブセット量を 選択することによって、前記追加プロセスステップを実行することを特徴とする 請求項19記載の方法。 21.前記ターゲット代表フィールド及び前記候補代表フィールドが、各々、 12ビットの長さであることを特徴とする請求項11記載の方法。 22.前記候補フィールドが、前記データパケットのターゲットアドレスフィ ールドを含むことを特徴とする請求項10記載の方法。 23.前記データパケットが、標準化されたイーサネットデータパケットであ ることを特徴とする請求項10記載の方法。 24.前記目標ハッシュ・アレイが、非分配(unapportioned)アレイであり 、前記ターゲットインデックスの各々を用いて、前記非分配アレイ内にメモリ位 置を設定することを特徴とする請求項10記載の方法。 25.前記ターゲットインデックスの内少なくとも幾つかが前記目標ハッシュ ・アレイの異なった場所を指向するように、前記目標ハッシュ・アレイを分配す ることを特徴とする請求項10記載の方法。 26.前記ターゲットインデックスと前記候補インデックスが、それぞれ、所定 のビット長さの二進ストリングであることを特徴とする請求項10記載の方法。

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータネットワークにおいてデータパケットをフィルタ処理するた めの改良パケットフィルタ処理方法であって、 パケットフィルタ内にパケットを入力するステップと、 パケットから候補フィールドを抽出するステップと、 前記候補フィールドに対して複数のハッシング処理を行ない、同様に複数の代 表フィールドを生成するステップと、 前記代表フィールドの各々を目標ハッシュ・アレイと比較して、前記代表フィ ールドの全てが前記目標ハッシュ・アレイに設定された値に対応する場合には、 パケットが一致しているとみなすステップと、 前記パケットフィルタにより、一致しているとみなせるパケットを選択的に通 過させるステップと、 を備えることを特徴とする改良パケットフィルタ処理方法。 2.前記複数のハッシング処理が、 前記候補フィールドを所定の大きさのフィールドに縮小するステップと、 前記所定の大きさのフィールドから一つあるいは複数の代表フィールドを抽出 するステップと、 を備えることを特徴とする請求項1記載の改良パケットフィルタ処理方法。 3.CRC多項式アルゴリズムを前記候補フィールドに適用することにより、 前記候補フィールドを前記所定の大きさのフィールドに縮小することを特徴とす る請求項2記載の改良パケットフィルタ処理方法。 4.前記候補フィールドが、32ビットの所定の大きさに縮小されることを特 徴とする請求項2記載の改良パケットフィルタ処理方法。 5.前記所定の大きさのフィールド内の前記代表フィールドが、各々、前記所 定の大きさのフィールド内の連続ビット部分であることを特徴とする請求項2記 載の改良パケットフィルタ処理方法。 6.前記代表フィールドが、各々、同じ大きさであることを特徴とする請求項 1記載の改良パケットフィルタ処理方法。 7.前記代表フィールドが、各々、6ビットの大きさであることを特徴とする 請求項1記載の改良パケットフィルタ処理方法。 8.前記代表フィールドの数が2以上であることを特徴とする請求項1記載の 改良パケットフィルタ処理方法。 9.前記代表フィールドの各々を同じ目標ハッシュ・アレイと比較するために 、前記目標ハッシュ・アレイを非分割のものとしたこと特徴とする請求項1記載 の改良パケットフィルタ処理方法。 10.コンピュータネットワークシステム内のデータパケットを選択的に転送 する方法であって、 以下のステップ(aa),(ab)に従い、目標ハッシュ・アレイを含むよう にコントローラのターゲット・メモリを形成し、 (aa)一つあるいは複数のターゲットフィールドの各々から複数のターゲッ トインデックスを抽出するステップ、および (ab)前記ターゲット・メモリ内に、前記ターゲットインデックスの各々の 値に対応するメモリ位置を設定するステップ 以下のステップ(ba),(bd)に従い、前記データパケットを処理するこ と (ba)前記データパケットから候補フィールドを抽出するステップ、および (bb)前記候補フィールドから複数の候補フィールドインデックスを抽出す るステップ (bc)前記候補フィールドインデックスの各々の値を前記目標ハッシュ・ア レイと比較するステップ (bd)前記候補フィールドインデックスの各々の値が前記目標ハッシュ・ア レイの所定のビットに対応する場合に、前記データパケットを転送させるステッ プ を特徴とする方法。 11.前記ステップ(aa)が、更に、 (aa1)前記ターゲットフィールドを複数のターゲット代表フィールドに縮 小するステップと、 (aa2)前記ターゲット代表フィールドから一つあるいは複数のターゲット ストリング・サブセットを選択するステップと、を備え、 前記ステップ(bb)が、更に、 (bb1)前記候補フィールドを複数の候補代表フィールドに縮小するステッ プと、 (bb2)前記候補代表フィールドから一つあるいは複数の候補ストリング・ サブセットを選択するステップと、を備えること を特徴とする請求項10記載の方法。 12.前記ステップ(ab)が、前記ターゲットストリング・サブセットの各 々の値に対応する前記ターゲット・メモリ内の前記メモリ位置のみに値「1」を 設定するステップを更に備えることを特徴とする請求項10記載の方法。 13.データパケットの分配を変化させることが必要な場合に前記ステップ( aa)ないし(ab)を繰り返すことを特徴とする請求項10記載の方法。 14.伝送されるデータパケットの各々に対してステップ(ba)ないし(b d)を繰り返すことを特徴とする請求項10記載の方法。 15.前記ステップ(aa1)が、更に、前記ターゲットフィールドの各々に 循環冗長チェック(CRC)・アルゴリズムを適用するステップを備え、 前記ステップ(bb1)が、更に、前記候補フィールドに前記循環冗長チェッ ク・アルゴリズムを適用するステップを備えること を特徴とする請求項11記載の方法。 16.前記ステップ(aa2)において、前記ターゲット代表フィールドから 複数の第1の連続ビット列を抽出することにより、前記ターゲットストリング・ サブセットを選択し、 前記ステップ(bb2)において、前記候補代表フィールドから複数の第2の 連続ビット列を抽出することにより、前記候補ストリング・サブセットを選択す ること を特徴とする請求項11記載の方法。 17.前記ステップ(ab)の前に、前記ターゲットフィールドの各々から抽 出するべきターゲットインデックスの数、並びに、前記候補フィールドの各々か ら抽出するべき候補インデックスの数を示すサブセット量を求める追加プロセス ステップを備えることを特徴とする請求項10記載の方法。 18.少なくとも初期段階では、サブセット量のテーブルからターゲット数に 適したサブセット量を選択することによって、前記追加プロセスステップを実行 することを特徴とする請求項17記載の方法。 19.前記ステップ(ab)の前に、前記ターゲット代表フィールドの各々か ら抽出するべきターゲットストリング・サブセットの数、並びに、前記候補代表 フィールドの各々から抽出するべき候補ストリング・サブセットの数を示すサブ セット量を求める追加プロセスステップを備えることを特徴とする請求項11記 載の方法。 20.少なくとも初期段階では、サブセット量のテーブルからターゲット数に 適したサブセット量を選択することによって、前記追加プロセスステップを実行 することを特徴とする請求項19記載の方法。 21.前記ターゲット代表フィールド及び前記候補代表フィールドが、各々、 12ビットの長さであることを特徴とする請求項11記載の方法。 22.前記候補フィールドが、前記データパケットのターゲットアドレスフィ ールドを含むことを特徴とする請求項10記載の方法。 23.前記データパケットが、標準化されたイーサネットデータパケットであ ることを特徴とする請求項10記載の方法。 24.前記目標ハッシュ・アレイが、非分配(unapportioned)アレイであり 、前記ターゲットインデックスの各々を用いて、前記非分配アレイ内にメモリ位 置を設定することを特徴とする請求項10記載の方法。 25.前記ターゲットインデックスの内少なくとも幾つかが前記目標ハッシュ ・アレイの異なった場所を指向するように、前記目標ハッシュ・アレイを分配す ることを特徴とする請求項10記載の方法。 26.前記ターゲットインデックスと前記候補インデックスが、それぞれ、所 定のビット長さの二進ストリングであることを特徴とする請求項10記載の方法 。
JP7506450A 1993-08-09 1994-07-27 データネットワーク用の改良型パケットフィルタ処理方法 Pending JPH09509018A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/103,659 1993-08-09
US08/103,659 US5473607A (en) 1993-08-09 1993-08-09 Packet filtering for data networks
PCT/US1994/008514 WO1995005044A1 (en) 1993-08-09 1994-07-27 Improved packet filtering for data networks

Publications (1)

Publication Number Publication Date
JPH09509018A true JPH09509018A (ja) 1997-09-09

Family

ID=22296352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7506450A Pending JPH09509018A (ja) 1993-08-09 1994-07-27 データネットワーク用の改良型パケットフィルタ処理方法

Country Status (6)

Country Link
US (1) US5473607A (ja)
EP (1) EP0713624A4 (ja)
JP (1) JPH09509018A (ja)
AU (1) AU680030B2 (ja)
CA (1) CA2169181A1 (ja)
WO (1) WO1995005044A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011503912A (ja) * 2006-12-01 2011-01-27 ソーナス ネットワークス, インコーポレイテッド ネットワークのサービス妨害攻撃に対する防御のための情報選別及び監視制限

Families Citing this family (257)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598581A (en) * 1993-08-06 1997-01-28 Cisco Sytems, Inc. Variable latency cut through bridge for forwarding packets in response to user's manual adjustment of variable latency threshold point while the bridge is operating
WO1997000471A2 (en) * 1993-12-15 1997-01-03 Check Point Software Technologies Ltd. A system for securing the flow of and selectively modifying packets in a computer network
US5835726A (en) * 1993-12-15 1998-11-10 Check Point Software Technologies Ltd. System for securing the flow of and selectively modifying packets in a computer network
US5542089A (en) * 1994-07-26 1996-07-30 International Business Machines Corporation Method and apparatus for estimating the number of occurrences of frequent values in a data set
US5867666A (en) 1994-12-29 1999-02-02 Cisco Systems, Inc. Virtual interfaces with dynamic binding
US5793978A (en) * 1994-12-29 1998-08-11 Cisco Technology, Inc. System for routing packets by separating packets in to broadcast packets and non-broadcast packets and allocating a selected communication bandwidth to the broadcast packets
US6097718A (en) 1996-01-02 2000-08-01 Cisco Technology, Inc. Snapshot routing with route aging
US6147996A (en) 1995-08-04 2000-11-14 Cisco Technology, Inc. Pipelined multiple issue packet switch
US6182224B1 (en) 1995-09-29 2001-01-30 Cisco Systems, Inc. Enhanced network services using a subnetwork of communicating processors
US6091725A (en) 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US6243667B1 (en) 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US6308148B1 (en) 1996-05-28 2001-10-23 Cisco Technology, Inc. Network flow data export
US5850523A (en) * 1996-06-21 1998-12-15 National Instruments Corporation Method and system for monitoring fieldbus network with multiple packet filters
US6212182B1 (en) 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US6434120B1 (en) 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US5949786A (en) * 1996-08-15 1999-09-07 3Com Corporation Stochastic circuit identification in a multi-protocol network switch
US6240084B1 (en) 1996-10-10 2001-05-29 Cisco Systems, Inc. Telephony-enabled network processing device with separate TDM bus and host system backplane bus
US6904037B2 (en) 1996-11-05 2005-06-07 Cisco Technology, Inc. Asymmetric implementation of DSVD for voice/data internet access
US5959976A (en) * 1996-12-09 1999-09-28 Kuo; Yung-Tien Method and device for filtering transmission
US6304546B1 (en) 1996-12-19 2001-10-16 Cisco Technology, Inc. End-to-end bidirectional keep-alive using virtual circuits
US6173364B1 (en) * 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US6233686B1 (en) * 1997-01-17 2001-05-15 At & T Corp. System and method for providing peer level access control on a network
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6122669A (en) 1997-02-14 2000-09-19 Advanced Micro Devices, Inc. Method and apparatus for auto-incrementing through table and updating single register in memory
US6151325A (en) * 1997-03-31 2000-11-21 Cisco Technology, Inc. Method and apparatus for high-capacity circuit switching with an ATM second stage switch
US6094708A (en) 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US6356530B1 (en) 1997-05-23 2002-03-12 Cisco Technology, Inc. Next hop selection in ATM networks
US6122272A (en) 1997-05-23 2000-09-19 Cisco Technology, Inc. Call size feedback on PNNI operation
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US6081512A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. Spanning tree support in a high performance network device
US6044418A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US5920566A (en) * 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6119196A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6044087A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Interface for a highly integrated ethernet network element
US6052738A (en) * 1997-06-30 2000-04-18 Sun Microsystems, Inc. Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US6088356A (en) * 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6081522A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. System and method for a multi-layer network element
US6049528A (en) * 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6128666A (en) * 1997-06-30 2000-10-03 Sun Microsystems, Inc. Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
JP3413065B2 (ja) * 1997-07-03 2003-06-03 松下電器産業株式会社 番組情報処理装置
US6704866B1 (en) 1997-07-11 2004-03-09 Cisco Technology, Inc. Compression and encryption protocol for controlling data flow in a network
US6078590A (en) 1997-07-14 2000-06-20 Cisco Technology, Inc. Hierarchical routing knowledge for multicast packet routing
US6330599B1 (en) 1997-08-05 2001-12-11 Cisco Technology, Inc. Virtual interfaces with dynamic binding
US6157641A (en) 1997-08-22 2000-12-05 Cisco Technology, Inc. Multiprotocol packet recognition and switching
US6512766B2 (en) 1997-08-22 2003-01-28 Cisco Systems, Inc. Enhanced internet packet routing lookup
US6212183B1 (en) 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
US6343072B1 (en) 1997-10-01 2002-01-29 Cisco Technology, Inc. Single-chip architecture for shared-memory router
US6128296A (en) * 1997-10-03 2000-10-03 Cisco Technology, Inc. Method and apparatus for distributed packet switching using distributed address tables
US6147993A (en) 1997-10-14 2000-11-14 Cisco Technology, Inc. Method and apparatus for implementing forwarding decision shortcuts at a network switch
US6252878B1 (en) 1997-10-30 2001-06-26 Cisco Technology, Inc. Switched architecture access server
US6111877A (en) 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
WO1999035778A2 (en) * 1998-01-07 1999-07-15 Microsoft Corporation Low level content filtering
US6289464B1 (en) 1998-01-07 2001-09-11 Microsoft Corporation Receiving wireless information on a mobile device with reduced power consumption
US6085328A (en) * 1998-01-20 2000-07-04 Compaq Computer Corporation Wake up of a sleeping computer using I/O snooping and imperfect packet filtering
US6401188B1 (en) 1998-02-27 2002-06-04 Cisco Technology, Inc. Method for selection on a pattern sequence
US6115385A (en) 1998-03-11 2000-09-05 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
US6208649B1 (en) 1998-03-11 2001-03-27 Cisco Technology, Inc. Derived VLAN mapping technique
US6738814B1 (en) * 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US6430184B1 (en) * 1998-04-10 2002-08-06 Top Layer Networks, Inc. System and process for GHIH-speed pattern matching for application-level switching of data packets
SE521814C2 (sv) * 1998-05-14 2003-12-09 Telia Ab Ett kommunikationsnätverk eller ett ip-nätverk vilket innefattar en paketklassificerare
US6700891B1 (en) * 1998-06-25 2004-03-02 Cisco Technology, Inc. Apparatus and method for providing a device level security mechanism in a network
US6370121B1 (en) 1998-06-29 2002-04-09 Cisco Technology, Inc. Method and system for shortcut trunking of LAN bridges
US6377577B1 (en) 1998-06-30 2002-04-23 Cisco Technology, Inc. Access control list processing in hardware
US6876653B2 (en) * 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US6430188B1 (en) 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
US6694055B2 (en) 1998-07-15 2004-02-17 Microsoft Corporation Proper name identification in chinese
US6182147B1 (en) 1998-07-31 2001-01-30 Cisco Technology, Inc. Multicast group routing using unidirectional links
US6308219B1 (en) 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6101115A (en) 1998-08-07 2000-08-08 Cisco Technology, Inc. CAM match line precharge
US6389506B1 (en) 1998-08-07 2002-05-14 Cisco Technology, Inc. Block mask ternary cam
US6269096B1 (en) 1998-08-14 2001-07-31 Cisco Technology, Inc. Receive and transmit blocks for asynchronous transfer mode (ATM) cell delineation
US6535520B1 (en) 1998-08-14 2003-03-18 Cisco Technology, Inc. System and method of operation for managing data communication between physical layer devices and ATM layer devices
US6381245B1 (en) 1998-09-04 2002-04-30 Cisco Technology, Inc. Method and apparatus for generating parity for communication between a physical layer device and an ATM layer device
US6347087B1 (en) * 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
US6785274B2 (en) 1998-10-07 2004-08-31 Cisco Technology, Inc. Efficient network multicast switching apparatus and methods
US6826694B1 (en) 1998-10-22 2004-11-30 At&T Corp. High resolution access control
CA2287258C (en) 1998-10-22 2004-08-10 At&T Corp. System and method for demand-driven loading of rules in a firewall
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6700872B1 (en) 1998-12-11 2004-03-02 Cisco Technology, Inc. Method and system for testing a utopia network element
US6721320B1 (en) * 1998-12-18 2004-04-13 Lsi Logic Corporation Method and apparatus for fibre channel identification and retrieval
US20020188720A1 (en) * 1998-12-28 2002-12-12 William F. Terrell Method and apparatus for dynamically controlling the provision of differentiated services
US6535511B1 (en) 1999-01-07 2003-03-18 Cisco Technology, Inc. Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems
US6453357B1 (en) 1999-01-07 2002-09-17 Cisco Technology, Inc. Method and system for processing fragments and their out-of-order delivery during address translation
US6771642B1 (en) 1999-01-08 2004-08-03 Cisco Technology, Inc. Method and apparatus for scheduling packets in a packet switch
US6449655B1 (en) 1999-01-08 2002-09-10 Cisco Technology, Inc. Method and apparatus for communication between network devices operating at different frequencies
US7215641B1 (en) 1999-01-27 2007-05-08 Cisco Technology, Inc. Per-flow dynamic buffer management
US6515963B1 (en) 1999-01-27 2003-02-04 Cisco Technology, Inc. Per-flow dynamic buffer management
US6341346B1 (en) 1999-02-05 2002-01-22 Cisco Technology, Inc. Method for comparison between a pattern sequence and a variable length key
US7120117B1 (en) * 2000-08-29 2006-10-10 Broadcom Corporation Starvation free flow control in a shared memory switching device
US6542503B1 (en) 1999-03-16 2003-04-01 Cisco Technologies, Inc. Multicast echo removal
US20020039365A1 (en) * 1999-03-17 2002-04-04 Broadcom Corporation Pipelined searches with a cache table
US6810037B1 (en) 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
US6996099B1 (en) 1999-03-17 2006-02-07 Broadcom Corporation Network switch having a programmable counter
DE60031515T2 (de) 1999-03-17 2007-08-23 Broadcom Corp., Irvine Netzwerkvermittlung
US7643481B2 (en) 1999-03-17 2010-01-05 Broadcom Corporation Network switch having a programmable counter
US7366171B2 (en) * 1999-03-17 2008-04-29 Broadcom Corporation Network switch
US6757791B1 (en) 1999-03-30 2004-06-29 Cisco Technology, Inc. Method and apparatus for reordering packet data units in storage queues for reading and writing memory
US6442617B1 (en) * 1999-03-31 2002-08-27 3Com Corporation Method and system for filtering multicast packets in a peripheral component environment
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US6760331B1 (en) 1999-03-31 2004-07-06 Cisco Technology, Inc. Multicast routing with nearest queue first allocation and dynamic and static vector quantization
US6553028B1 (en) 1999-04-30 2003-04-22 Cisco Technology, Inc. Method and apparatus for multicast switching using a centralized switching engine
US6839348B2 (en) 1999-04-30 2005-01-04 Cisco Technology, Inc. System and method for distributing multicasts in virtual local area networks
US7031302B1 (en) 1999-05-21 2006-04-18 Broadcom Corporation High-speed stats gathering in a network switch
AU5586400A (en) * 1999-05-21 2000-12-12 Broadcom Corporation Stacked network switch configuration
US6567379B1 (en) * 1999-06-09 2003-05-20 Cisco Technology, Inc. Traffic monitor using leaky bucket with variable fill
US6591304B1 (en) 1999-06-21 2003-07-08 Cisco Technology, Inc. Dynamic, scaleable attribute filtering in a multi-protocol compatible network access environment
US6859454B1 (en) 1999-06-30 2005-02-22 Broadcom Corporation Network switch with high-speed serializing/deserializing hazard-free double data rate switching
US7315552B2 (en) * 1999-06-30 2008-01-01 Broadcom Corporation Frame forwarding in a switch fabric
US6742045B1 (en) * 1999-07-02 2004-05-25 Cisco Technology, Inc. Handling packet fragments in a distributed network service environment
WO2001019040A1 (en) 1999-09-03 2001-03-15 Broadcom Corporation Apparatus and method for enabling voice over ip support for a network switch
JP3643507B2 (ja) * 1999-09-20 2005-04-27 株式会社東芝 パケット処理装置及びパケット処理方法
US7151775B1 (en) * 1999-09-23 2006-12-19 Pluris, Inc. Apparatus and method for forwarding data on multiple label-switched data paths
US6775281B1 (en) * 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6654796B1 (en) 1999-10-07 2003-11-25 Cisco Technology, Inc. System for managing cluster of network switches using IP address for commander switch and redirecting a managing request via forwarding an HTTP connection to an expansion switch
US6952421B1 (en) 1999-10-07 2005-10-04 Cisco Technology, Inc. Switched Ethernet path detection
US7131001B1 (en) 1999-10-29 2006-10-31 Broadcom Corporation Apparatus and method for secure filed upgradability with hard wired public key
US7143294B1 (en) 1999-10-29 2006-11-28 Broadcom Corporation Apparatus and method for secure field upgradability with unpredictable ciphertext
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6570884B1 (en) * 1999-11-05 2003-05-27 3Com Corporation Receive filtering for communication interface
US7539134B1 (en) * 1999-11-16 2009-05-26 Broadcom Corporation High speed flow control methodology
ATE252298T1 (de) * 1999-11-16 2003-11-15 Broadcom Corp Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
EP1232612B1 (en) * 1999-11-18 2006-11-02 Broadcom Corporation Table lookup mechanism for address resolution in a packet network switch
US6839349B2 (en) * 1999-12-07 2005-01-04 Broadcom Corporation Mirroring in a stacked network switch configuration
AU2108501A (en) * 1999-12-14 2001-06-25 General Instrument Corporation Mpeg re-multiplexer having multiple inputs and multiple outputs
US6674743B1 (en) 1999-12-30 2004-01-06 3Com Corporation Method and apparatus for providing policy-based services for internal applications
US6678409B1 (en) 2000-01-14 2004-01-13 Microsoft Corporation Parameterized word segmentation of unsegmented text
US6728300B1 (en) 2000-02-11 2004-04-27 Qualcomm Incorporated Method and apparatus for maximizing standby time in remote stations configured to receive broadcast databurst messages
US6606628B1 (en) 2000-02-14 2003-08-12 Cisco Technology, Inc. File system for nonvolatile memory
US6725264B1 (en) 2000-02-17 2004-04-20 Cisco Technology, Inc. Apparatus and method for redirection of network management messages in a cluster of network devices
US7009973B2 (en) * 2000-02-28 2006-03-07 Broadcom Corporation Switch using a segmented ring
US7016351B1 (en) * 2000-02-29 2006-03-21 Cisco Technology, Inc. Small group multicast in a computer network
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6970462B1 (en) 2000-04-24 2005-11-29 Cisco Technology, Inc. Method for high speed packet classification
US7103053B2 (en) * 2000-05-03 2006-09-05 Broadcom Corporation Gigabit switch on chip architecture
US7065079B1 (en) 2000-05-04 2006-06-20 Cisco Technology, Inc. VC sharing for multicast in a computer network
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6826561B2 (en) * 2000-05-22 2004-11-30 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US6925085B1 (en) * 2000-06-07 2005-08-02 Advanced Micro Devices, Inc. Packet classification using hash key signatures generated from interrupted hash function
US7009968B2 (en) * 2000-06-09 2006-03-07 Broadcom Corporation Gigabit switch supporting improved layer 3 switching
US6850980B1 (en) 2000-06-16 2005-02-01 Cisco Technology, Inc. Content routing service protocol
EP1168726B1 (en) 2000-06-19 2007-02-14 Broadcom Corporation Switch with memory management unit for improved flow control
US7126947B2 (en) * 2000-06-23 2006-10-24 Broadcom Corporation Switch having external address resolution interface
US7062571B1 (en) * 2000-06-30 2006-06-13 Cisco Technology, Inc. Efficient IP load-balancing traffic distribution using ternary CAMs
US7031267B2 (en) * 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
US6999455B2 (en) * 2000-07-25 2006-02-14 Broadcom Corporation Hardware assist for address learning
US7411981B1 (en) 2000-08-31 2008-08-12 Cisco Technology, Inc. Matching of radius request and response packets during high traffic volume
US6771665B1 (en) 2000-08-31 2004-08-03 Cisco Technology, Inc. Matching of RADIUS request and response packets during high traffic volume
US7227862B2 (en) * 2000-09-20 2007-06-05 Broadcom Corporation Network switch having port blocking capability
US7020166B2 (en) * 2000-10-03 2006-03-28 Broadcom Corporation Switch transferring data using data encapsulation and decapsulation
US6851000B2 (en) * 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US7420977B2 (en) * 2000-10-03 2008-09-02 Broadcom Corporation Method and apparatus of inter-chip bus shared by message passing and memory access
US7120155B2 (en) * 2000-10-03 2006-10-10 Broadcom Corporation Switch having virtual shared memory
US6988177B2 (en) * 2000-10-03 2006-01-17 Broadcom Corporation Switch memory management using a linked list structure
US7274705B2 (en) 2000-10-03 2007-09-25 Broadcom Corporation Method and apparatus for reducing clock speed and power consumption
US7424012B2 (en) * 2000-11-14 2008-09-09 Broadcom Corporation Linked network switch configuration
US7035255B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US6850542B2 (en) * 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
US7035286B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US6618388B2 (en) 2001-01-05 2003-09-09 Extreme Networks Method and system for VMAN protocol
US7280540B2 (en) * 2001-01-09 2007-10-09 Stonesoft Oy Processing of data packets within a network element cluster
KR20030000378A (ko) * 2001-06-23 2003-01-06 정우협 마우스에 의한 컴퓨터 볼륨(음량)조절에 대한 방법
US7107464B2 (en) * 2001-07-10 2006-09-12 Telecom Italia S.P.A. Virtual private network mechanism incorporating security association processor
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7860120B1 (en) 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US7355970B2 (en) * 2001-10-05 2008-04-08 Broadcom Corporation Method and apparatus for enabling access on a network switch
US7487254B2 (en) * 2001-12-20 2009-02-03 Nokia Corporation Fixed length filtering to filter clusters of discrete segments of data
KR20030060306A (ko) * 2002-01-08 2003-07-16 신중호 객체 모듈을 이용한 관리자 맞춤형 동적 방화벽
US7154888B1 (en) 2002-02-08 2006-12-26 Cisco Technology, Inc. Method for classifying packets using multi-class structures
US7719980B2 (en) * 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7280541B2 (en) * 2002-03-15 2007-10-09 Broadcom Corporation Packet filtering based on conditional expression table
US7274698B2 (en) * 2002-03-15 2007-09-25 Broadcom Corporation Multilevel parser for conditional flow detection in a network device
US7245620B2 (en) * 2002-03-15 2007-07-17 Broadcom Corporation Method and apparatus for filtering packet data in a network device
US20030174718A1 (en) * 2002-03-15 2003-09-18 Broadcom Corporation Scalable packet filter for a network device
US7277426B2 (en) * 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US20030223417A1 (en) * 2002-06-04 2003-12-04 Masashi Higashida Method of processing data packets
US7236493B1 (en) 2002-06-13 2007-06-26 Cisco Technology, Inc. Incremental compilation for classification and filtering rules
US7697526B2 (en) * 2002-08-06 2010-04-13 Broadcom Corporation Packet filtering based on port bit map
US7894480B1 (en) 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US7307998B1 (en) 2002-08-27 2007-12-11 3Com Corporation Computer system and network interface supporting dynamically optimized receive buffer queues
US7724740B1 (en) 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
EP1554842A4 (en) 2002-08-30 2010-01-27 Corporation Broadcom SYSTEM AND METHOD FOR TREATING FRAMES OUTSIDE THE ORDER
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7418496B2 (en) * 2003-05-16 2008-08-26 Personnel Research Associates, Inc. Method and apparatus for survey processing
US20050018693A1 (en) * 2003-06-27 2005-01-27 Broadcom Corporation Fast filtering processor for a highly integrated network device
US7328463B2 (en) * 2003-09-08 2008-02-12 Microtek Medical Holdings, Inc. Water-soluble articles and methods of making and using the same
US7886350B2 (en) 2003-10-03 2011-02-08 Verizon Services Corp. Methodology for measurements and analysis of protocol conformance, performance and scalability of stateful border gateways
US7421734B2 (en) * 2003-10-03 2008-09-02 Verizon Services Corp. Network firewall test methods and apparatus
US7853996B1 (en) 2003-10-03 2010-12-14 Verizon Services Corp. Methodology, measurements and analysis of performance and scalability of stateful border gateways
US7886348B2 (en) 2003-10-03 2011-02-08 Verizon Services Corp. Security management system for monitoring firewall operation
US7787471B2 (en) * 2003-11-10 2010-08-31 Broadcom Corporation Field processor for a network device
US7613775B2 (en) 2003-11-25 2009-11-03 Freescale Semiconductor, Inc. Network message filtering using hashing and pattern matching
US7240041B2 (en) * 2003-11-25 2007-07-03 Freescale Semiconductor, Inc. Network message processing using inverse pattern matching
US7317723B1 (en) 2004-02-03 2008-01-08 Cisco Technology, Inc. Action based termination of multidimensional lookup
US8320240B2 (en) * 2004-11-30 2012-11-27 Broadcom Corporation Rate limiting and minimum and maximum shaping in a network device
US20060187920A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Flexible packet modification engine
US20060187832A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Filter based range check in a network device
US7463630B2 (en) * 2005-02-18 2008-12-09 Broadcom Corporation Multi-part parsing in a network device
US7983291B2 (en) * 2005-02-18 2011-07-19 Broadcom Corporation Flexible packet modification engine for a network device
US20060203824A1 (en) * 2005-02-18 2006-09-14 Song-Huo Yu Passing values through a memory management unit of a network device
US20060187923A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Dynamic filter processor key generation based on packet type
US20060187936A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Table searching techniques in a network device
US20060187924A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Ingress handling of data in a network device
US20060187919A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Two stage parser for a network
US20060187948A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Layer two and layer three virtual private network support in a network device
US7787361B2 (en) 2005-07-29 2010-08-31 Cisco Technology, Inc. Hybrid distance vector protocol for wireless mesh networks
US7646771B2 (en) 2005-08-17 2010-01-12 Cisco Technology, Inc. Compilation of access control lists
US7660318B2 (en) 2005-09-20 2010-02-09 Cisco Technology, Inc. Internetworking support between a LAN and a wireless mesh network
US7325074B2 (en) * 2005-09-28 2008-01-29 Cisco Technology, Inc. Incremental compilation of packet classifications using fragmented tables
US8027251B2 (en) * 2005-11-08 2011-09-27 Verizon Services Corp. Systems and methods for implementing protocol-aware network firewall
US9374342B2 (en) 2005-11-08 2016-06-21 Verizon Patent And Licensing Inc. System and method for testing network firewall using fine granularity measurements
US7869411B2 (en) * 2005-11-21 2011-01-11 Broadcom Corporation Compact packet operation device and method
US20070198420A1 (en) * 2006-02-03 2007-08-23 Leonid Goldstein Method and a system for outbound content security in computer networks
US8966619B2 (en) * 2006-11-08 2015-02-24 Verizon Patent And Licensing Inc. Prevention of denial of service (DoS) attacks on session initiation protocol (SIP)-based systems using return routability check filtering
US9473529B2 (en) 2006-11-08 2016-10-18 Verizon Patent And Licensing Inc. Prevention of denial of service (DoS) attacks on session initiation protocol (SIP)-based systems using method vulnerability filtering
US7940657B2 (en) * 2006-12-01 2011-05-10 Sonus Networks, Inc. Identifying attackers on a network
US7804774B2 (en) * 2006-12-01 2010-09-28 Sonus Networks, Inc. Scalable filtering and policing mechanism for protecting user traffic in a network
US7672336B2 (en) * 2006-12-01 2010-03-02 Sonus Networks, Inc. Filtering and policing for defending against denial of service attacks on a network
US7743003B1 (en) 2007-05-16 2010-06-22 Google Inc. Scaling machine learning using approximate counting that uses feature hashing
US8302186B2 (en) * 2007-06-29 2012-10-30 Verizon Patent And Licensing Inc. System and method for testing network firewall for denial-of-service (DOS) detection and prevention in signaling channel
US8522344B2 (en) * 2007-06-29 2013-08-27 Verizon Patent And Licensing Inc. Theft of service architectural integrity validation tools for session initiation protocol (SIP)-based systems
US10430604B2 (en) 2008-02-05 2019-10-01 Equifax Inc. Systems and methods for securing data in electronic communications
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
US9119094B2 (en) * 2008-08-12 2015-08-25 Koninklijke Philips N.V. Method for communicating in a network, radio stations and a system therefor
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US7961734B2 (en) 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US7738454B1 (en) 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US8675648B1 (en) * 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US8892983B2 (en) * 2008-11-04 2014-11-18 Alcatel Lucent Method and apparatus for error detection in a communication system
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US9071868B2 (en) 2009-05-29 2015-06-30 Cognitive Networks, Inc. Systems and methods for improving server and client performance in fingerprint ACR systems
US9449090B2 (en) * 2009-05-29 2016-09-20 Vizio Inscape Technologies, Llc Systems and methods for addressing a media database using distance associative hashing
US9331982B2 (en) 2009-09-30 2016-05-03 Freescale Semiconductor, Inc. System and method for filtering received data units
CN102577273B (zh) * 2009-11-16 2015-06-03 马维尔国际贸易有限公司 反复解析和分类
EP2330791B1 (en) * 2009-11-30 2012-10-17 Fujitsu Semiconductor Limited Message reception
EP2337274B1 (en) * 2009-12-17 2014-03-05 Alcatel Lucent Method for processing a plurality of data and switching device for switching communication packets
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
US9100324B2 (en) 2011-10-18 2015-08-04 Secure Crossing Research & Development, Inc. Network protocol analyzer apparatus and method
US9680650B2 (en) * 2013-08-23 2017-06-13 Qualcomm Incorporated Secure content delivery using hashing of pre-coded packets
CA2973740C (en) 2015-01-30 2021-06-08 Inscape Data, Inc. Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device
JP6903653B2 (ja) 2015-07-16 2021-07-14 インスケイプ データ インコーポレイテッド 共通メディアセグメントの検出
WO2017011768A1 (en) 2015-07-16 2017-01-19 Vizio Inscape Technologies, Llc Systems and methods for partitioning search indexes for improved efficiency in identifying media segments
CN112019449B (zh) * 2020-08-14 2022-06-17 四川电科网安科技有限公司 流量识别抓包方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399531A (en) * 1980-09-29 1983-08-16 Rockwell International Corporation Distributed digital data communications network
GB8407102D0 (en) * 1984-03-19 1984-04-26 Int Computers Ltd Interconnection of communications networks
US4679193A (en) * 1985-11-14 1987-07-07 Hewlett Packard Company Runt packet filter
JPH0793634B2 (ja) * 1986-11-29 1995-10-09 株式会社東芝 アドレス変換機能付きバスアダプタ
US5032987A (en) * 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
US4891803A (en) * 1988-11-07 1990-01-02 American Telephone And Telegraph Company Packet switching network
JP2808694B2 (ja) * 1989-07-24 1998-10-08 株式会社日立製作所 ネットワーク間接続ブリッジ
US5210748A (en) * 1990-02-09 1993-05-11 Hitachi, Ltd. Address filter unit for carrying out address filter processing among plurality of networks and method thereof
JPH04213242A (ja) * 1990-12-07 1992-08-04 Hitachi Ltd 限定同報通信システム
US5274631A (en) * 1991-03-11 1993-12-28 Kalpana, Inc. Computer network switching system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011503912A (ja) * 2006-12-01 2011-01-27 ソーナス ネットワークス, インコーポレイテッド ネットワークのサービス妨害攻撃に対する防御のための情報選別及び監視制限

Also Published As

Publication number Publication date
WO1995005044A1 (en) 1995-02-16
US5473607A (en) 1995-12-05
CA2169181A1 (en) 1995-02-16
AU680030B2 (en) 1997-07-17
EP0713624A1 (en) 1996-05-29
AU7406594A (en) 1995-02-28
EP0713624A4 (en) 1997-01-08

Similar Documents

Publication Publication Date Title
JPH09509018A (ja) データネットワーク用の改良型パケットフィルタ処理方法
CN1881950B (zh) 使用频谱分析的分组分类加速
US7436830B2 (en) Method and apparatus for wire-speed application layer classification of upstream and downstream data packets
CN109951444B (zh) 一种加密匿名网络流量识别方法
US7684400B2 (en) Logarithmic time range-based multifield-correlation packet classification
US6778530B1 (en) Method and apparatus for multiple field matching in network device
US6947931B1 (en) Longest prefix match (LPM) algorithm implementation for a network processor
EP2530874B1 (en) Method and apparatus for detecting network attacks using a flow based technique
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
US7460538B2 (en) Communication control apparatus and method for searching an internet protocol address
CN1545254A (zh) 一种快速数据包过滤方法
AU2013226430A1 (en) Stream recognition and filtering
Chang et al. TCAM-based multi-match packet classification using multidimensional rule layering
CN104580202A (zh) 报文的匹配方法和装置
CN106302236A (zh) 一种数据分流的方法及接入设备
CN100472427C (zh) 一种数据包递归流分类方法
US11968286B2 (en) Packet filtering using binary search trees
CN112787938A (zh) 一种路由表项配置方法及装置
US20230052252A1 (en) Network device that utilizes tcam configured to output multiple match indices
Gong et al. ERFC: an enhanced recursive flow classification algorithm
Lee et al. Hybrid memory-efficient multimatch packet classification for NIDS
CN101227484B (zh) 一种WiMAX基站中基于IP的汇聚子层的实现方法
KR100467746B1 (ko) 주소 분할에 의한 다중필드 분류시스템
CN101848091A (zh) 数据查找处理方法及系统
CN106921661B (zh) 一种基于关联规则的IPv6地址扫描方法