JPH11127198A - パケット網の使用に関する情報を収集する方法及び装置 - Google Patents

パケット網の使用に関する情報を収集する方法及び装置

Info

Publication number
JPH11127198A
JPH11127198A JP10218831A JP21883198A JPH11127198A JP H11127198 A JPH11127198 A JP H11127198A JP 10218831 A JP10218831 A JP 10218831A JP 21883198 A JP21883198 A JP 21883198A JP H11127198 A JPH11127198 A JP H11127198A
Authority
JP
Japan
Prior art keywords
signal
ram
cam
data
asm
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
JP10218831A
Other languages
English (en)
Inventor
Robert G Ward
ロバート・ジー・ワード
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11127198A publication Critical patent/JPH11127198A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

(57)【要約】 【課題】 フ゜ロセッサを含まずソフトウェアで動作せずGByteとい
う伝送速度でもハ゜ケット網上の全テ゛ータフレームを解析でき再フ゜ロ
ク゛ラムが容易なフ゜ロトコルアナライサ゛を提供すること。 【解決手段】 入力ハ゛ッファ(18)、ルックアッフ゜テーフ゛ル(20)、及
びカウンタメモリ(66)を備えた、ハ゜ケット網(16)統計を収集するフ゜
ロトコルアナライサ゛(15)。入力ハ゛ッファはフレームヘッタ゛ハ゛ッファを備え、ルッ
クアッフ゜テーフ゛ルはCAM及びRAMを含む状態マシンを備えている。
前記フレームヘッタ゛ハ゛ッファにフレームが記憶される一方その所定部
分を前記CAM及びRAMが解析する。該テ゛ータ部分が8ヒ゛ット以
下の場合、該テ゛ータ部分がRAMに入力され、RAMは該テ゛ータ部
分が示す場所に記憶された命令を出力する。該テ゛ータ部分
が8ヒ゛ットより大きい場合には該テ゛ータ部分がCAMに入力さ
れ、CAMは対応する命令が記憶されたRAMアト゛レスを出力す
る。該テ゛ータ部分を更に解析する命令には、解析すべき次
のテ゛ータセク゛メントの場所を示すアト゛レスオフセットが含まれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にネットワー
ク統計と呼ばれる通信バスの使用についての情報の収集
に関し、特に、連想記憶装置(CAM)を用いたパケッ
ト網プロトコルアナライザに関する。
【0002】
【従来の技術】データパッケージに関する情報を提供す
るヘッダ・トレーラ間のデータパッケージで情報を伝送
する通信システムは、一般にパケット網と呼ばれる。所
与のパケット網で送ることができるパケットには多くの
種類があり、それぞれのパケットは、プロトコルと呼ば
れる一組の規則または規約によって定義されている。パ
ケットまたはフレームは、一般にヘッダ、トレーラ、及
び該ヘッダ・トレーラ間に挟まれたペイロード(payloa
d)を含む。所与のパケットまたはフレームのプロトコル
は、一般にフレームヘッダ及びフレームトレーラの内
容、並びにフレーム内のデータパッケージまたはペイロ
ードの相対位置を定義する。プロトコルアナライザは、
パケット網の通信バスに接続され、バス上を移動してい
るパケットに関する情報を収集して記憶する。かかる情
報は、例えば、IBM(登録商標)、Novell(登
録商標)、Appletalk(登録商標)といったパ
ケットの種類、フレームのビット数、及びその他の多く
の様々な情報を含むことが可能である。この情報は、ネ
ットワークの設計者及びスーパバイザが、装置の要件や
ネットワークの問題点の原因を決定する場合、及び一般
にはネットワークを管理する場合に有用なものである。
【0003】従来、プロトコルアナライザは、パケット
情報を収集して記憶するために、ソフトウェアによって
プログラムされたマイクロプロセッサを利用してきた。
最先端技術によるデータ通信網は、極めて高速なもので
あり、数Gbit/秒という速度でデータ転送を行う。ソフ
トウェアベースのシステムは、かかる高速データシステ
ムにおいて到来するトラフィックの流れについていくこ
とができない。この問題に対する従来の1つの一般的な
解決策は、データをサンプリングすることである。この
ため、データは、統計的な特性を有するものとなり、
「ネットワーク統計」という用語が用いられる。かかる
従来のプロトコルアナライザは、不正確な場合があり、
また幾つかの事象が完全に失われることがある。この問
題に対する従来の解決策はまた、所望でないフレームを
除去するための事前フィルタリングを含むものであり、
このため、ソフトウェアがトラフィックを処理する前の
パケット転送速度が低下する。しかしながら、全て又は
大部分のフレームが、サンプリングすることが望ましい
フレームである場合には、この解決策はうまく機能しな
いものとなる。
【0004】もう1つの解決策は、所定のアルゴリズム
を利用するカスタム集積回路(IC)を使用して、サンプ
リングを有意のフレームを選択するようにすることであ
る。しかしながら、研究開発市場をターゲットにしたプ
ロトコルアナライザは、どのサンプリング解決策も許容
不能なものとなる。研究開発者は、近似ではなく絶対的
な測定値を求めている。更に、ギガビットというデータ
転送速度では、サンプリング速度は、トラフィック速度
と比較して、意味のある測定を行うにはアルゴリズムが
もはや有効でなくなるほど低速となる。
【0005】状態マシンは、電子業界で公知のものであ
るが、これまでプロトコルアナライザとして用いられる
ことはなかった。その主な理由は、非常に多数の異なる
パケット網プロトコルが存在し及びその各プロトコルが
極めて複雑であるため、プロトコルを解析することが可
能な状態マシンは非常に大きくて複雑であるが故に実施
不能なものであると当業界で信じられてきたことにあ
る。更に、新しいプロトコルが絶えず導入され、昔のプ
ロトコルが絶えず変化し、実質的にハードウェアである
状態マシンを再プログラムするよりも新しい改訂された
プロトコルを扱うソフトウェアプログラムを変更する方
がはるかに容易であることは周知である。
【0006】
【発明が解決しようとする課題】本発明は、バス通信デ
ータを収集して記憶する状態マシンを設けることによ
り、従来のプロトコルアナライザ及びネットワーク統計
方法における上述その他の問題を解決するものである。
【0007】
【課題を解決するための手段】該状態マシンは、完全に
ハードウェアベースのものであり、ソフトウェアを利用
するプロセッサを含まない。その結果として、該状態マ
シンは、ギガヘルツという速度で動作することができ、
データのサンプリングを必要としない。
【0008】該状態マシンはまた、ソフトウェアを記述
するのと同様に容易に再プログラムすることが可能なC
AM及びランダムアクセスメモリ(RAM)を含み、こ
のため、プロトコルが絶えず変化しても本発明によるプ
ロトコルアナライザに問題が生じることはない。
【0009】該プロトコルアナライザは、入力バッフ
ァ、ルックアップテーブル、及びカウンタメモリを備え
ている。前記入力バッファはフレームヘッダバッファを
含む。前記ルックアップテーブルはCAM及びRAMを
含む状態マシンを含む。前記フレームヘッダバッファに
フレームが記憶される一方、その所定部分を前記CAM
及びRAMが解析する。1つのデータ部分が8ビット又
はそれ未満の場合、該データ部分はRAMに入力され、
該RAMは、該データ部分により示される場所に記憶さ
れた命令を出力する。また、該データ部分が8ビットよ
りも大きい場合には、該データ部分がCAMに入力さ
れ、該CAMは、対応する命令が記憶されたRAMアド
レスを出力する。該命令は、カウンタメモリの所定のレ
ジスタ内のカウントをインクリメントする命令と、カウ
ンタメモリ内に新しいカウントレジスタを追加する命令
と、パケット網上を移動する特定のデータセグメントを
キャプチャRAMに記憶させるためのスナップショット
トリガを生成する命令と、該データ部分を更に解析する
命令とを含むことができる。
【0010】本発明は、パケット網上のネットワーク統
計情報を収集する装置を提供する。該装置は、パケット
網上を移動するデータパケットを記憶する入力バッファ
と、状態マシンを含み、該入力バッファと通信を行う、
電子的なルックアップテーブルであって、前記データパ
ケットの少なくとも一部を解析し、及び統計情報を表す
統計信号を含む出力信号を提供する、電子的ルックアッ
プテーブルと、該ルックアップテーブルと通信を行い、
ネットワーク統計を記憶する、電子的なメモリとを備え
ている。前記状態マシンは、連想記憶装置(CAM)を
含むことが好ましい。前記状態マシンは、更にランダム
アクセスメモリ(RAM)を含むことが好ましい。入力
バッファは、ビット数が所定数よりも大きい場合にデー
タパケットの一部をCAMに入力し、及びビット数が所
定数以下の場合にデータパケットの一部をRAMに入力
する、論理ユニットを含むことが好ましい。この所定の
ビット数は8ビットであることが好ましい。前記状態マ
シンは、CAMを含む連想記憶装置(CAM)マネージ
ャ論理ユニットと、RAMを含むランダムアクセスメモ
リ(RAM)マネージャ論理ユニットとを備えており、
前記出力信号は、前記RAMマネージャ論理ユニットか
ら出力される信号からなることが好ましい。前記状態マ
シンは、フィールドプログラマブルゲートアレイ(又は
書き換え可能ゲートアレイ)(FPGA)を含むことが
好ましい。本装置は、更に、前記状態マシンと通信を行
うキャプチャRAMを含むことが好ましい。前記状態マ
シンは、入力及び出力を備えており、該出力が該入力に
電気的に接続されることが好ましい。前記出力信号は、
メモリの所定レジスタ内のカウントをインクリメントす
る命令と、メモリ内に新しいカウントレジスタを追加す
る命令と、パケット網上を移動する特定のデータセグメ
ントをキャプチャRAMに記憶させるためにスナップシ
ョットトリガを生成する命令と、データ部分を更に解析
する命令とからなるグループから選択された命令を含む
ことが好ましい。パケット網上には連続的に移動する複
数のデータパケットが存在し、前記バッファが該複数の
パケットを記憶し、複数の状態マシンが存在し、該状態
マシンのうちの異なるものが前記データパケットのうち
の異なるものを解析することが好ましい。該データパケ
ットは、ヘッダを含み、前記入力バッファが、該データ
パケットのヘッダを記憶するヘッダバッファを含むこと
が好ましい。前記状態マシンは、スイッチ間リンク(I
SL)ヘッダ検出器を含むことが好ましい。前記入力バ
ッファは、一般にFIFOと呼ばれる先入れ先出しレジ
スタを含むことが好ましい。前記出力信号がトリガ信号
を含み、本装置が、トリガ信号に応じて特定のデータパ
ケットのPCI(peripheral component interconnec
t)アドレスを記憶する論理ユニットを含むことが好ま
しい。本装置は、内部バスと、パケット網上を移動する
信号を内部バスへと多重化するマルチプレクサを含むこ
とが好ましい。前記電子的なメモリが、第1のカウンタ
部分及び第2のカウンタ部分を含み、本装置が、更に、
前記第1のカウンタ部分及び前記第2のカウンタ部分
を、カウンタを使って統計情報を収集するアクティブ状
態とカウンタを読み出す非アクティブ状態とにスワッピ
ングする、ハートビート(heartbeat)制御論理回路を含
むことが好ましい。前記データパケットの一部が、該デ
ータパケット中の第1のアドレスに配置された第1の信
号を含み、前記出力信号が、オフセット値に対応するデ
ルタアドレス信号を含み、前記状態マシンが、該デルタ
アドレス信号に応じて、前記第1のアドレスから前記オ
フセット値だけオフセットされた前記データパケット中
の第2のアドレスに対応するアドレス信号を提供するア
ドレス生成器を含むことが好ましい。
【0011】別の態様では、本発明は、パケット網上の
ネットワーク統計情報を収集するための装置であって、
パケット網上を移動するデータパケットを記憶するため
のバッファと、該バッファと通信を行い、前記データパ
ケットの少なくとも一部を解析し、統計情報を表す統計
信号を含む出力信号を提供する、連想記憶装置(CA
M)を含む電子的なルックアップテーブルと、該ルック
アップテーブルと通信を行い、前記ネットワーク統計を
記憶する、第1の電子的なメモリとを備えた、装置を提
供する。好適には、状態マシンが第2の電子的なメモリ
を含み、前記出力信号が該第2の電子的なメモリ内のア
ドレスを含むものとなる。前記ルックアップテーブル
は、前記データパケットの一部がCAM内のデータと一
致しない場合に所定の信号を出力する信号セレクタを含
むことが好ましい。該ルックアップテーブルが、前記C
AMに情報を書き込むための論理ユニットを含み、前記
信号が、前記CAMに対する新しい内容パターンの書き
込みを前記論理ユニットに行わせる命令を含み、該新し
い内容パターンが、本装置により未だ確認されていない
パケット網上を移動するデータパケットパターンの一部
に対応するものであることが好ましい。
【0012】更に別の態様では、本発明は、パケット網
上のネットワーク統計情報を収集するための装置であっ
て、該パケット網上を移動するデータパケットを記憶す
るためのバッファと、該バッファと通信を行って、第1
のアドレスに配置されたデータパケットの第1の部分を
解析してアドレスオフセット値を提供し、及び前記第1
のアドレスから前記アドレスオフセット値だけオフセッ
トされたアドレスにおけるデータパケットの第2の部分
を解析して、統計情報を表すネットワーク統計信号を提
供する、電子的なルックアップテーブルと、前記ネット
ワーク統計信号に応じてネットワーク統計を記憶する電
子的なメモリとを含む、装置を提供する。前記ルックア
ップテーブルは、前記オフセット値に対応するデルタア
ドレス信号を提供するための連想記憶装置(CAM)及
びランダムアクセスメモリ(RAM)と、前記デルタア
ドレス信号に応じて前記データパケットの前記第2の部
分のアドレスを生成するアドレス生成器とを含むことが
好ましい。
【0013】更に別の態様では、本発明は、パケット網
上のネットワーク統計情報を収集する方法であって、パ
ケット網上を移動するデータパケットをバッファに記憶
し、第1のアドレスに配置されたデータパケットの一部
を表す第1の信号を電子的な状態マシンに入力して、オ
フセット値に対応するデルタアドレス信号を生成し、前
記第1のアドレスから前記オフセット値だけオフセット
された第2のアドレスに配置されたデータパケットの一
部を前記電子的な状態マシンに入力して、統計情報信号
を生成し、該統計情報信号に関連する信号を電子的なメ
モリに記憶し、これによりネットワーク統計を記録す
る、という各ステップを含む、方法を提供する。
【0014】更に別の態様では、本発明は、パケット網
上のネットワーク統計情報を収集する方法であって、パ
ケット網上を移動するデータパケットをバッファに記憶
し、前記データパケットの少なくとも一部を表す第1の
信号を電子的な状態マシンに入力して、該状態マシンに
第2の信号を出力させ、該第2の信号に関連する信号を
電子的なメモリに記憶し、これによりネットワーク統計
を記録する、という各ステップを含む、方法を提供す
る。前記第1の信号を入力して前記第2の信号を生成さ
せる前記ステップは、該第2の信号を逆に前記状態マシ
ンに入力して第3の信号を出力させるステップを含むこ
とが好ましい。前記電子的な状態マシンは、該状態マシ
ンに入力された信号が連想記憶装置(CAM)に入力さ
れるCAMサイクルと、該状態マシンに入力された信号
入力がランダムアクセスメモリ(RAM)に入力される
RAMサイクルとを実行可能なものであり、この場合、
前記第2の信号が、該状態マシンにより実行されるべき
次のサイクルがCAMサイクルであるかRAMサイクル
であるかに関する命令を含み、該第2の信号を入力する
前記ステップが、該命令を入力することにより該状態マ
シンにCAMサイクル及びRAMサイクルの所定の一方
を実行させるステップからなることが好ましい。該第2
の信号を入力する前記ステップは、前記第1の信号を前
記連想記憶装置(CAM)に入力して該CAMにアドレ
スを出力させ、該アドレスをランダムアクセスメモリ
(RAM)に入力して該RAMに第2の信号を出力させ
るステップを含むことが好ましい。
【0015】本発明は、極めて高速のプロトコルアナラ
イザを提供するだけでなく、比較的低コストで統計収集
システムを製造し再プログラムすることを可能にするよ
うな態様で、かかるプロトコルアナライザを実施するも
のとなる。本発明の多くの他の特徴、目的及び利点につ
いては、図面を参照して以下の説明を読むことにより明
らかになるであろう。
【0016】
【発明の実施の形態】
1.概要 前述のように、本開示は、一般に通信網、特にパケット
網の使用における情報を収集して記憶するために使用さ
れるプロトコルアナライザに関する。当業界では、収集
された情報は一般に「統計」又は「ネットワーク統計」
と呼ばれている。このため、本明細書では、本発明のプ
ロトコルアナライザにより収集される情報を示すために
この用語を使用することとする。しかしながら、本発明
によるプロトコルアナライザにより収集されるデータは
本質的に統計でなくてもよいことを理解されたい。何故
なら、好ましい実施形態の場合には、ネットワーク上で
転送されるパケットについての情報を、ギガビットとい
う転送速度で収集することさえも可能であるからであ
る。
【0017】電子業界では、状態マシンという用語は、
ハードウェア速度で作動するディジタルの電子的なハー
ドウェアを意味し、該用語は通常は、ソフトウェアを使
用して動作しそれにより純粋なハードウェアシステムよ
りも遥かに低速のプロセッサベースのシステムと対比さ
れるものである。しかしながら、最も一般的な用法で
は、該用語は、ソフトウェアベースのシステムを含む別
個の論理回路で動作する任意のシステムのことを指す場
合もある。本開示では、状態マシンとは、ハードウェア
で実現された離散的な(アナログと対照的な)論理的な
電子システムを意味する。即ち、本開示では、状態マシ
ンという用語は、ソフトウェアプログラムを実行するプ
ロセッサを含まない。この用語の用法は、当業界におけ
る現行の用法と一致するが、該用語の最も広い用法より
も狭いものである。
【0018】本開示では、明瞭化のために、信号ライン
及び該信号ラインにより送られる信号を同じ符号で参照
することがある。これにより、図面中の数字が大幅に少
なくなり、混乱を引き起こすことがなくなる。これは、
かかる説明を行う各事例では、各信号ラインがそれぞれ
特定の信号を伝えるからである。例えば、図1の信号ラ
イン30はデータ信号30を伝える。多くの場合、信号は、
記述的な名称(例えば信号ライン30上に書かれた「DAT
A」等)によって参照されることになる。
【0019】図1は、本発明によるプロトコルアナライ
ザ15の一般化形態のブロック図を示している。該ブロッ
ク図は、本発明によるシステムが、ソフトウェアを使用
しない単純な方法でパケット網フレーム等の複雑な対象
を解析する方法の一般的な概念を紹介する上で有用なも
のである。該一般化されたプロトコルアナライザ15は、
入力バッファ18、アルゴリズム状態マシン(ASM)を
含むルックアップテーブル20、及び統計カウンタ28を備
えている。入力バッファ18は、ライン17を介して、PC
Iバス16を通過する情報を受信して記憶する。該入力バ
ッファ18は、ヘッダ及びトレーラ、ヘッダのみなど、バ
ス情報のうちの所定部分だけを受信して記憶するよう設
計することが可能であり、また、バストラフィックの統
計的ピクチャだけが必要な場合には情報のサンプリング
を行うことも可能である。ソフトウェアなしでかかるタ
スクを遂行するバッファは当業界で周知のものである。
入力バッファ18に記憶された情報は、適当なタイミング
でルックアップテーブル20に渡され、これにより、ルッ
クアップテーブル20は、バッファ18内に情報がある間、
ビジー状態に維持される。該ルックアップテーブル20
は、論理的には、バス16を通る可能性のある対象となる
データセグメントに対応するディジタルコードを記憶す
る第1の部分と、特定のデータセグメントが見つかった
場合に行うべき動作に関する命令を含む第2の部分とを
有する単純な一対一のテーブルである。該ルックアップ
テーブル20は、ライン30上から入ってくる各データを、
該テーブルの前記第1の部分のデータセットと比較し、
これに応じて、該テーブルの第2の部分中の対応する位
置に記憶されている所定の信号をライン32,34,36上に出
力する。最も単純なレベルでは、ライン36上の出力は、
単に、統計カウンタ28内の1つ又は複数のカウンタをイ
ンクリメントさせるネットワーク統計情報を表す信号と
なる。例えば、該テーブルは、NoveIITMパケットを示す
データセグメントを認識し、該NovelITMパケットをカウ
ントする統計カウンタ28内のカウンタをインクリメント
する。同時に、該テーブルは、入力バッファ18に、ライ
ン34を介して新しいデータを渡すように命令する。しか
しながら、通常はテーブルの出力はもっと複雑なものと
なる。データセグメントの検査結果は曖昧なものとな
り、テーブル20は、その状態を変化させる信号をライン
32上に出力し、即ち、前記曖昧さを解決するためにデー
タセグメントを更に検査するよう自分自身に命令する。
また、テーブルの出力は、ライン32,34,36上の信号の組
み合わせとすることも可能である。したがって、ルック
アップテーブル20は、状態マシンであり、即ち、提示さ
れた各離散データセグメント毎に、何らかの所定の離散
的な信号を出力し、これによりネットワーク統計が記録
されることになる。該プロトコルアナライザ15の装置原
理は、プロトコルの構造を殆ど意識しないハードウェア
20を有するものであるが、該ハードウェア20は、状態マ
シンの「ルックアップ」部分の基本的な命令セット中に
符号化されたプロトコルを復号するためのアルゴリズム
をサポートすることが可能なものである。
【0020】要するに、アルゴリズム状態マシン20(A
SM)は、入力データパターン及び現在の状態に依存し
て、新しいデータを要求し、統計を記録し、命令を実行
することを要求し、次の状態へと進む。該命令は、統計
レジスタ内のカウントのインクリメント、統計カウンタ
への新エントリの追加、特定のデータセグメントを記憶
するようキャプチャRAM(図2及び図3参照)にライ
ン40を介して命令するためのスナップショットトリガの
生成、データ部分の更なる解析、及び後述する比較の実
行等の他のハウスキーピング機能、といったものとする
ことができる。
【0021】本開示では、プロトコルの決定を行うアル
ゴリズム状態マシン(ASM)15の実施形態について説
明する。該プロトコルの決定に加えて、アドレス情報の
統計を収集し、ノード統計を提供し、及び接続統計を提
供するように、ルックアップテーブル20にアルゴリズム
を書き込んで記憶させることが可能である。実行される
アルゴリズムの複雑さは、解析可能な1秒あたりのフレ
ーム数に影響を及ぼす。しかしながら、連続するフレー
ムに関して動作する多数のルックアップテーブル20を使
用することにより、必要なだけの数のフレームを必要な
だけ詳細に処理することが可能なシステムを構築するこ
とができる。
【0022】前述の一般的な説明より、ルックアップテ
ーブル20が、大量のデータを保持し、きわめて高速で作
動しなければならないことは明らかである。この要件
は、高速の連想記憶装置(CAM)と高速のランダムア
クセスメモリ(RAM)の組合せによって満たすことが
できる。CAMは、入力データをメモリに含まれるデー
タと突き合わせて、該データに対応するアドレスを生成
する。RAMは、該メモリに入力されたアドレスに記憶
されている内容を出力する。この組み合わせが、大規模
で高速のルックアップテーブルとしてどのように働くこ
とができるかについては、図2を参照することにより理
解することができる。同図は、本発明によるプロトコル
アナライザ15の好ましい実施形態を示す論理ブロック図
である。図1は、本発明の概念を分かりやすく紹介する
ために簡略化されており、このため、図1の各部分と図
2の各部分とは一対一に対応しないことに留意された
い。図2もまた実際のプロトコルアナライザ15を単純化
したものであり、例えば、この概要において本質的な機
能が不明瞭にならないようにASM20(後に詳述する)
の好ましい実施形態の全ての機能を含んではいないこと
に留意されたい。単純化したプロトコルアナライザ15
は、入力バッファ18、アドレス生成器52、比較レジスタ
54、マスク56、及びアルゴリズム状態マシン(ASM)
20を備えており、該ASM20は、CAM62を含むCAM
マネージャ論理回路60、ASM RAM64、及びセレク
タ72,74,76を備えている。プロトコルアナライザ15はま
た、カウンタRAM66、インクリメントラッチ67、及び
加算器ラッチ68を備えている。図2には、ASM20の一
部ではないが該ASM20の出力によって駆動されるキャ
プチャRAM80も示されている。図2の論理システム
は、バス16(図1参照)からライン17を介して入力(図
2に「B」で示す)を受信する。好ましい実施形態で
は、バス16はPCIバスである。この図と次の図では、
符号81等のラインは、導体の数とそのラインで伝送可能
なビット数をスラッシュと数字で示す多心線の場合が多
い。例えば、ライン81上の記号「32/」は、そのライン
が最大32ビットを同時に伝えることができることを示し
ている。
【0023】図2に示した実施形態は、プロトコルの決
定しか行わないため、各フレームのフレームヘッダ部分
だけしか解析する必要がない。したがって、入力バッフ
ァ18(図1参照)は、各フレームからフレームヘッダを
選出して該フレームヘッダをフレームヘッダバッファ18
Bに渡す(図6参照)FIFOバッファセクション18A
(図3参照)を備えている。バースト特性を有するPC
Iバス16上に到来する64ビット幅のデータは、バースト
解除され(debursterize)、及びFIFOバッファセクシ
ョン18Aにおいて切り捨てられ、次いでフレームヘッダ
バッファ18Bに書き込まれ、これによりASM20がデー
タパケットヘッダに対してランダムにアクセスすること
が可能となる。後に詳述するように、入力バッファ18
は、ライン30を介して状態マシン20に32ビットのデータ
セグメントを渡す。
【0024】CAM62及びASM RAM64には、プロ
トコル決定アルゴリズムがプログラムされる。該CAM
62及びASM RAM64中のプロトコル決定アルゴリズ
ムを使用して各フレームの様々なフィールドを順次検査
してプロトコルが何であるかを決定するのは、ASM20
のタスクである。RAMは、16ビットのルックアップを
実施する場合にはCAMよりも高速であり、8ビット以
下のプロトコルフィールドについて決定を行う場合に使
用される。一方、CAMは、同様のRAMサイクルに比
べて動作に必要なサイクル数が多く、各サイクルが遅い
ため、ルックアップに関してはASM RAMよりも遅
いが、最大128ビット幅のパターンまで突き合わせを行
うことが可能である。該CAMは、アドレスフィールド
及びポートフィールドにとって特に有用なものである。
本システムにとって最も必須であるCAM62及びASM
RAM64の入出力を先ず理解し、次いで、それよりも
重要性の低い他の機能について考察することにより、A
SM20の動作を最も容易に理解することができる。CA
M及びASM RAMの入出力信号の一般的な形式を表
1に示す。
【0025】
【表1】
【0026】ASM RAM入力は常に16ビットであ
り、CAM入力は32ビット(以下を参照)であり、CA
M及びASM RAMの組み合わせとASM RAMとの
出力は両方とも38ビットである。最初の38ビットは、後
の解析プロセスのサイクルのためのコードが記憶される
CAM及びASM RAMの特定部分を規定するもので
ある。便宜上、これら8ビットは、2つの4ビットセク
ションへと分割され、その第1の部分が「スタック」と
呼ばれ、第2の部分が「レベル」と呼ばれる。一般に、
スタックは、特定のプロトコルタイプに対応し、一方、
レベルは、プロトコルタイプの構文解析又は分析を行う
ために必要な一連のステップの数に対応する。スタック
及びレベルが1つになって状態マシン20の状態を規定す
る。このため、解析シーケンスにおける任意のサイクル
は、状態x,yによって規定することができる(ここで、
xはスタック、yはレベルである)。ASM RAM入力
の最後の8ビットは、突き合わせが行われるべきフレー
ムヘッダからのパターンであり、CAM入力の最後の2
4,56,88又は120ビットは、突き合わせが行われるべきフ
レームヘッダからのパターンである。CAMマネージャ
60は、最大で4つの後続の32ビットのデータビットを記
憶することが可能であり、CAMに対して32,64,96又は
128ビットを提示することができるようになっている。
出力の最後の30ビットは、マスクを規定する4ビット
と、アドレスオフセット即ちデルタアドレス信号を規定
する6ビットと、一般的な命令の12ビットと、カウン
タ索引付け情報の8ビットとに分けられる。簡素化のた
め、図2では、2つの一般的な命令、即ち比較命令及び
トリガ命令だけしか示しておらず、これらについてのみ
考察することとする。後の詳細な説明から分かるよう
に、CAM62及びASM RAM64からは、この他にも
多数の命令が出力される。
【0027】ASM20の動作を理解するために、フレー
ムヘッダバッファセクション50によって新しいフレーム
からの初期のデータセグメントが出力されたばかりであ
ると仮定する。該新しいフレームのスタック及びレベル
は、共にゼロと規定され、即ち、状態は0,0である。デ
ータセグメントが8ビット以下の場合、該データセグメ
ントは、ライン82で示すようにASM RAM64へと進
む。スタック及びレベルが共に0であるため、状態ライ
ン84により加算されるビットはゼロであり、セレクタ76
はデフォルト状態にあり、これによりデータセグメント
がASM RAM64へと直接通過することが可能にな
る。また、対象のデータセグメントが8ビットよりも大
きいようなデフォルト状態0,0の場合には、該データセ
グメントは、ライン81,85,86,86A及びマスク56を介して
CAMマネージャ60へと進む。これは、セレクタ76のデ
フォルト状態が、CAM出力を通過させるものであるか
らである。第1のデータセグメントが8ビットよりも大
きく、及びCAMが一致を発見した場合には、該CAM
は、該データセグメントに対応する10ビットアドレスを
ライン87上に出力し、そのアドレスの前にビット111111
を追加する。該ビットは、CAMから入力を得ているこ
とをASM RAMに示す固有のコードである。セレク
タ74は、これをASM RAMへと通過させる。これ
は、セレクタのデフォルト状態が通過するものであるか
らである。また、CAMが一致を発見しなかった場合に
は、NO−MATCH(一致なし)ライン88が高レベルにな
り、セレクタ74は、ライン87上に信号を通過させない
が、その代わりに固有の信号、即ち当該状態と連結され
た信号1111,0000を通過させる。即ち、最初の8ビット
が1111,0000であり、最後の8ビットがスタック及びレ
ベルにより規定される現在の状態である。したがって、
状態マシン20に提示される第1のデータセグメントが何
であれ、ASM RAM64は16ビットアドレスを受信す
ることになる。
【0028】該アドレスに応じてASM RAMが幾つ
かの出力を生成する。該出力には、フレームヘッダバッ
ファ18Bからの新しい32ビットワードにアクセスするた
めに新しいアドレスを作り出すアドレス生成器52にライ
ン92を介して出力される6ビットデルタアドレス信号
と、プロトコルタイプ(最初は未知であり0に設定され
ている)及びカウント(レベル)に基づく新しい状態x,
y(該状態はライン90上に出力される)と、検査する必
要があるフレームヘッダバッファ出力の所定のバイトの
みを通過させるフィルタ56により解釈されるライン91上
のマスク信号出力と、命令ビットであって、該命令ビッ
トのうちの1つがライン89上に出力されて、次のサイク
ルでRAM(16ビットルックアップ)とCAM(32、6
4、96又は128ビットルックアップ)とのどちらを使用す
るかを選択し、その他の命令ビットがライン93を介して
比較レジスタ54へと出力される(これについては後述す
る)、命令ビットとが含まれる。例えば、検査する最初
のバイトが、タイプ/長さフィールド(MSB)である場
合には、RAMルックアップは、該フィールドが8ビッ
ト幅である場合に使用される。該フィールドが0x06以上
であるか否かに依存して、RAMは、検査すべき(累積
アドレスオフセットを介した)次のフレームヘッダのロ
ケーションと、検査方法(RAMルックアップかCAM
ルックアップか)とを提供する。このように、状態マシ
ン20は、CAM及びASM RAMの組み合わせに記憶
されたアルゴリズムのウォークスルーを行う。プロトコ
ルのあるステップでは、メッセージタイプのインスタン
スをカウントし、またソース及び宛先ポートフィールド
の比較を行うといった、特別なアクションが必要とな
る。かかる「特別な」機能は、ASM RAMからの出
力によってトリガされる。かかる特別な命令の例として
は、CAM比較(comparand)レジスタに対する第1ワ
ードの書き込み、CAM比較レジスタに対する第2、第
3、又は第4ワードの書き込み、CAM一致アドレスの
取得、ヘッダ処理の終了時におけるアルゴリズムのリセ
ット、フレームカウンタを1だけインクリメントするた
めのライン94を介したインクリメントラッチ67への命
令、及び/又は、特定のバイト数だけバイトカウンタを
進めて対象となるプロトコルの帯域幅を記録するための
ライン95を介した加算器ラッチ68への命令、2つの16ビ
ット数を比較してその小さい方を選択するためのライン
93を介した比較レジスタ54への命令の出力、ISLヘッ
ダの検査、ライン40を介したキャプチャRAM80へのト
リガ信号の生成、CAM中の既知のデータパターンのリ
ストに対する未知のデータパターンの追加、及び32、6
4、96、又は128ビットのCAMパターン突き合わせの選
択、が挙げられる。フレームサイズがライン31を介して
ラッチ68に入力されて、該ラッチ68がプロトコルのバイ
ト数を決定することが可能となり、キャプチャRAM80
は、ライン33を介してPCIバスと通信を行い、これに
より、該キャプチャRAM80がトリガライン40上の信号
に応じて1つ又は一組のフレームを捕捉することが可能
となる。
【0029】図2の論理システムは、多くの方法で実施
することができる。その一例及び好ましい実施形態は次
の通りである。
【0030】2.詳細な説明 図3は、プロトコルアナライザ15の好ましい実施形態を
ハードウェアにより実施したものを示すブロック図であ
る。該プロトコルアナライザ15は、FIFOバッファセ
クション18A、ASM20、及びキャプチャRAM80を備
えている。この実施形態では、ASMは2つの統計セク
ション314,316を備えている。FIFOバッファセクシ
ョン18Aは、該第1の統計セクション314及び該第2の統
計セクション316にフレームを交互に送る。本発明は、
1つの統計セクションを備えた実施形態と3つ以上の統
計セクションを備えた実施形態とがあり得ることを考慮
している。一般に、統計セクションの数は、1つの統計
セクションが1つのフレームを完全に解析するのに要す
る時間とバス16上のフレームの予想転送速度とによって
決定される。統計セクションの数は、通常の動作でバス
16上を通過する全てのフレームを解析できるように選択
される。フレームを深く解析することが所望されるにつ
れて、統計セクションは多くなる。これは、フレームの
解析が深くなるほど多くの時間を要するからである。各
統計セクションが同一であるため、本明細書では、第1
のセクション314と、該第1のセクション314とFIFO
バッファセクション18A及びキャプチャRAM80との相
互作用についてのみ考察することとする。
【0031】FIFOバッファセクション18Aは、「バ
ッファFPGA」と記す書き換え可能ゲートアレイ(F
PGA)306と、先入れ先出し(FIFO;first-in-fi
rst-out)レジスタ310とを備えており、これらはライン
303,305上で通信を行う。バッファFPGAは、ライン3
07,308をそれぞれ介して統計セクションI,IIと通信を行
う。前述のように、キャプチャRAM80は、サブバス33
を介してPCIバス16と通信を行い、トリガライン40を
介して各統計セクションと通信を行う。統計セクション
Iは、「統計FPGA」と記すFPGA、CAM62、カ
ウンタRAM66、及びASM RAM64を備えている。
好ましい実施形態では、RAM64及びRAM66は、複数
のRAM ICで実施された別個のブロックである。
【0032】ここで図4を参照する。同図は、FIFO
バッファセクション18Aの詳細を示すブロック図であ
る。該FIFOバッファセクション18Aは、FIFO31
0、ハンドシェーク論理ユニット410、カレントアドレス
抽出論理ユニット412、FIFO制御論理ユニット414、
プロセッサインターフェイス論理ユニット416、及びセ
レクタ422を備えている。該FIFOバッファセクショ
ン18Aはまた、PCIクロックライン430と、FIFOバ
ッファセクション18Aを介して統計セクション314へと信
号を単に通過させるフレームとを備えている。ハンドシ
ェーク論理ユニット410は、当業界で周知のように、F
IFOバッファセクション18Aとバス16に接続されたプ
ロセッサ及び周辺機器との間のデータの交換を調整する
機能を実行する。論理ユニット412は、PCIバスのFRA
ME信号、TRDY信号、及びIRDY信号を監視し、特定の時間
にアクセスされているカレント(現在の)アドレスを抽
出する。該論理ユニット412はまた、PCIバス16上の
一端のプロセッサと該PCIバス16上の他端のメモリと
の間での書き込みサイクルを検出する。該書き込みサイ
クルは、所定のアドレス範囲によって規定されるもので
ある。最後に、該論理ユニット412は、トリガライン437
がイネーブルにされたときにカレントフレームのPCI
アドレスをラッチしてプロセッサ割込みを生成する。F
IFO制御論理ユニット414は、フレームヘッダの始ま
りを検出して、後続の最大128ビットのデータの書き込
みを開始させるためのコマンドをFIFOに対して発行
する。フレームヘッダは、PCIクロックのアップエッ
ジでFIFOに書き込まれる。この書き込みは8バイト
幅で行われることが好ましい。FIFO制御論理ユニッ
ト414はまた、統計セクション314からのフレーム要求を
ライン436を介して受信した際に、FIFO310からの統
計セクション314による読み出しを開始する。FIFO
がフレームを送り始めた際に、フレーム開始信号がライ
ン435上に送られる。FIFOはまた、該FIFOが1
つ未満のフレームを記憶していることをライン434上の
「ほぼ空の」(N−EMPTY)信号により統計セクションに
通知する。該FIFOは、2つの32ビットサブセクショ
ンで動作し、その各サブセクションは、それぞれのデー
タをライン432,433のいずれかに送る。セレクタ422は、
ライン440上の統計セクション314からの信号に応じてラ
イン432,433の何れかを選択して読み出しを行い、該デ
ータをライン307を介して統計セクション314へ送る。プ
ロセッサインターフェイス416は、CAM62及びASM
RAM64のプログラミングを行い及び統計RAM66から
統計を読み出す際に、PCIバス16上のプロセッサとの
インターフェイスをとる。該インターフェイス416は、
統計セクション中のFPGAに対する接続のために、統
計セクション314へのPCIレジスタのアクセスを多重
化バス(MUX−BUS)構造へと変換する。具体的には、イ
ンターフェイス416は、32ビットのPCIアドレスを2
つの16ビットワードへと変換してそれらをMUX−BUSライ
ン439上に直列に通過させるマルチプレクサからなり、
該マルチプレクサはまた、32ビットのPCIデータセグ
メントを2つの16ビットデータワ−ドへと変換してMUX
−BUSライン439上に直列に通過させる。これにより、シ
ステムの性能を損なうことなくシステム15におけるチッ
プ間の相互接続ラインの数を大幅に減少させることが可
能となる。即ち、これは、信号がMUX−BUS439を通過す
るのに長い時間を要するものであるが、該バスは、シス
テム15のプログラミング及び読み出しの場合にしか使用
されないため、データを解析する速度に影響を与えるこ
とはない。FIFOバッファセクション18A内の論理回
路は、FIFO以外は全て、バッファFPGA306によ
って実施される。RAMなどの他の一時記憶用ハードウ
ェアをFIFOの代わりに用いることも可能であるが、
FIFOを用いるのが好ましい。これは、瞬間的な転送
速度ではなくバス16上の平均データ転送速度についてい
くだけでよいようにシステム15の性能を改善するために
は、FIFOを使用することが簡単な方法であるからで
ある。即ち、FIFOは、データが迅速なバーストで到
着することを可能にするが、該データはピークバースト
速度よりも遅い平均速度で解析される。
【0033】次に、図5を参照する。同図は、統計セク
ション314の論理構成の概要を示すブロック図である。
該統計セクション314を構成する実際のハードウェア
は、比較的単純なものであり、図3に示すようなもので
あることを理解されたい。図5及び後続の図では、統計
FPGA320のプログラミングと、CAM62及びRAMS
64,66に対する該統計FPGA320の接続とを規定する論
理構成に焦点を当てる。図5は、キャプチャRAM80を
除いて、図5に信号が一層詳細に示されていること以外
は図2と本質的に同じ内容であり、図5の同じ部品には
図2と同じ符号を付してある。統計セクション314は、
フレームヘッダバッファセクション50、CAMマネージ
ャ60、ASM RAMマネージャ70、統計カウンタセク
ション520、及びMUX−BUSインターフェイス510を備えて
いる。PCIクロック信号、データ信号、N−EMPTY信
号、及びフレーム開始信号は、FIFOバッファセクシ
ョン18Aからライン430,307,434,435をそれぞれ介してフ
レームヘッダバッファセクション50に入力され、選択信
号及びフレーム要求信号は、フレームヘッダバッファセ
クション50からライン440,436をそれぞれ介してFIF
Oバッファセクション18Aへと進む。完了信号、デルタ
信号、アドレス信号、比較信号、マスク信号、及び状態
信号は、ASM RAMマネージャ70からフレームヘッ
ダバッファセクション50に入力される。RAM入力パタ
ーン(RIP)は、ライン83を介してフレームヘッダバ
ッファセクション50によりASM RAMマネージャ70
へと出力され、CAM入力パターン(CIP)は、ライ
ン86Aを介してフレームヘッダバッファセクション50に
よりCAMマネージャ60へと出力される。MUX−BUS信号
は、ライン439を介してFIFOバッファセクション18A
からMUX−BUSインターフェイス510へ入力される。フレ
ームサイズ信号は、ライン31を介して統計カウンタ520
に出力され、一方、MUX−BUSインターフェイスは、内部
バス530を介して、CAMマネージャ、ASM RAMマ
ネージャ、及び統計カウンタ520と通信を行う。CAM
マネージャ60は、CAM読出信号、CAM書込信号、累
積信号、CAMサイクルセット信号、及び状態信号を、
ライン535を介してASM RAMマネージャ70から受信
する。該CAMマネージャ60は、CAM出力パターン信
号及びNO−MATCH信号を、ライン87,88をそれぞれ介して
ASM RAMマネージャに出力する。該ASM RAM
マネージャは、上記出力に加えて、索引信号、インクリ
メント信号、及びバイト加算信号を、統計カウンタセク
ション520に出力する。
【0034】フレームヘッダバッファセクション50は、
記憶されているフレームが利用可能であることをN−EMP
TY信号が示す場合に、FIFO310(図4参照)からデ
ータを読み出す。32ビット幅のフレームヘッダは、PC
Iクロックを利用してフレームヘッダバッファセクショ
ン50にクロック入力され、64バイトの最小ヘッダを転送
するのに480ナノ秒(ns)を要し、128バイトの最大ヘッ
ダを転送するのに最大960ナノ秒を要する。フレームヘ
ッダバッファセクション50は、ASM RAMマネージ
ャからのアドレス指定情報、状態情報、ISLチェック
情報、比較情報、及びマスク情報に基づいて、RAM及
びCAMの両方のルックアップパターンを生成する。C
AMのアクセスがスケジューリングされる場合、CAM
マネージャは、パターン一致時にCAMアドレスを送
り、又はNO−MATCH(一致なし)を示す。CAMアクセ
スのタイプ(1、2、3又は4ワード)は、ASMから
のCAMサイクルセット命令による実際のパターン突き
合わせの前にセットアップすることができる。また、C
AMマネージャは、既知のパターンのリストに未知のパ
ターンを自動的に追加するようにセットアップすること
もできる。ASMのマネージャは、予めプログラムされ
たルックアップテーブルに基づいて次のサイクルに関す
る命令を生成する。統計を収集するために、ASMは、
2つの関連するカウンタの一方をインクリメントし、及
び/又は、ライン31上のフレームサイズ信号により与え
られるようなフレームサイズを他方の関連するカウンタ
に追加するために、カウンタ索引及び命令を提供する。
「索引」信号は、どのカウンタにアクセスすべきかを統
計カウンタに知らせるものである。ASMマネージャ
は、スナップショットトリガを生成すべきことを示す場
合には、PCIアドレスをラッチしてプロセッサに割り
込むものをライン437を介してFIFOバッファ18Aに知
らせ、また該PCIアドレスにおけるフレームを捕捉す
ることをライン40を介してキャプチャRAMに知らせ
る。
【0035】ここで図6を参照する。同図は、フレーム
ヘッダバッファセクション50の詳細な論理図を示してい
る。フレームヘッダバッファセクション50は、スイッチ
間リンク(ISL)ヘッダ検出器604、ロードアドレス
生成器606、ロードコントローラ608、アドレス生成器5
2、比較器54、マスク生成器56、ISL信号生成器612、
及びフレームヘッダバッファ18Bを備えている。該フレ
ームヘッダバッファ18Bは、8つの16×8ビットレジスタ
へと分割されたRAMセクション620、セレクタ630,63
2,72、4つのセレクタからなる上側セット634と4つの
セレクタからなる下側セット635とに分割された8つの
RAM入力セレクタ、及び4つのセレクタからなる上側
セット623と4つのセレクタからなる下側セット624とに
分割された8つのRAM出力セレクタ636とを備えてい
る。ASM RAMマネージャ70からライン96を介して
入力されたISLチェック信号に応じて、ISL検出器
604は、ライン307を介してFIFOバッファ18Aからの
データ信号を読み、ISL信号が検出されたときにライ
ン640を介してISL信号生成器612に信号を出力する。
データライン307は、各RAM620のデータ入力にも接続
される。ライン430上のPCIクロック信号及びライン4
35上のフレーム開始信号はロードアドレス生成器606に
入力され、その出力は、ライン644を介して各セレクタ6
34に加えられる。ライン434上のN−EMPTY信号は、選択
信号及びフレーム要求信号をライン440,436上にそれぞ
れ出力するロードコントローラ608に加えられる。ロー
ドコントローラ608はまた、選択信号を、ライン651を介
して4つの上側RAM入力セレクタ634とセレクタ630,6
32とに出力し、及びライン652を介して4つの下側RA
M入力セレクタ635に出力する。ライン641上の完了信号
は、ロードコントローラ608及びアドレス生成器52に入
力される。ライン92上のデルタアドレス信号はアドレス
生成器52に入力される。該アドレス生成器52は、上側R
AM入力セレクタ634のうちの1つのセレクタと下側R
AM入力セレクタ635のうちの1つのセレクタとに4つ
のアドレスライン655の各々を介して信号を出力する。
該アドレス生成器52はまた、ライン643を介してセレク
タ636の各々に選択信号を出力する。セレクタ634,635の
各出力は、RAMレジスタ620のうちの対応する1つの
アドレス入力に接続されている。上側セット621の各R
AMレジスタの出力は、セレクタ623の各々に加えら
れ、下側セット622の各RAMレジスタの出力は、セレ
クタ624の各々に加えられる。セレクタ623,624の各々の
出力はセレクタ632に加えられ、セレクタ625,626の各々
の出力はセレクタ630に加えられる。セレクタ630の出力
はISL信号生成器612に加えられ、該ISL信号生成
器612の出力は、ライン82上に8ビットのRAM入力パ
ターンを提供するものとなる。セレクタ632の出力は比
較器54及びセレクタ72に加えられ、ライン93上の比較命
令信号は比較器54に加えられ、ライン91上のマスク信号
はマスク生成器56に加えられる。セレクタ72の出力はマ
スク生成器56に加えられる。該マスク生成器56の出力
は、ライン86上にCAM入力パターンを提供するものと
なる。ライン641,90,91,92,93,96は、ライン534(図5
参照)の一部をなす導体であることに留意されたい。
【0036】次に、まだ述べていないフレームヘッダバ
ッファの幾つかの特定の機能について説明する。ISL
検出器604は、RAMにデータがロードされた際にパタ
ーン01000c0000を探す。該パターンを検出した場合、プ
ロトコルはISLであり、ライン82上のRAMへの出力
は、照会時に全てのものに押し込まれる。アドレス生成
器は、デルタアドレス信号を取得し、該デルタアドレス
信号を、ラッチした以前のアドレスに追加する。該アド
レス生成器は次いで、それぞれ4つのRAMからなるR
AMブロック621,622の各々に1つずつ、互いにずれた
4つのアドレスを生成する。RAM620は、2つのペー
ジとして働き、その一方のぺージの処理中に他方のペー
ジのロードが実行される。これらのページは、「処理中
の」側の処理が「完了」し及び「ロード中の」側のロー
ドが完了したことをロードコントローラ608が確認した
ときにスワップされる。ライン86A上の信号出力は、ラ
イン86上のマスク56からの信号出力が32ビット信号であ
る場合であっても、常に32ビットまたは32ビット未満の
信号となる。即ち、初期のサイクル(0,0)では、ライン8
6上に24ビットが生成され、及びライン90を介して8ビ
ットが追加されて、ライン86A上に32ビット信号出力が
生成されるが、その後続サイクルでは、ライン86上に完
全な32ビットが生成される。
【0037】ここで、図7にASM RAMマネージャ7
0を示す。該ASM RAMマネージャ70は、ASM R
AM64及びCAM出力−RAMアドレス変換器704を備
えており、該変換器704は、CAM62から出力されたパ
ターンを適当なRAMアドレスに変換する。該ASM
RAMマネージャ70はまた、セレクタ76、ラッチ708、
及びバッファ710,712,714を備えている。前記変換器704
には、ライン87を介してCAM出力パターンが入力さ
れ、及びライン88を介してNO−MATCH信号が入力され
る。該変換器704には、信号111111及び特別の場合の信
号1111,0000も入力される。ASM RAMマネージャに
よりライン728上に出力されるCAM読出信号もまた変
換器704に入力される。該変換器704の出力はセレクタ76
に加えられる。CAM読出信号は、セレクタ76への選択
信号としてライン720を介して加えられる。RAM入力
パターンはライン82を介してセレクタ76に入力される。
内部バスライン532は、ASM RAMマネージャ70との
間で多数の信号を搬送するものであり、かかる信号に
は、セレクタ76に加えられるライン721上のアドレス信
号、ASM RAM64に加えられるライン722上の書込イ
ネーブル信号とライン723上のデータ書込信号、及びA
SM RAM64により出力されるライン724上のデータ読
出信号が含まれる。これらの信号は、ASM RAMの
プログラミング及び読出処理を行う場合に使用される。
また、ASM RAMは、完了信号、デルタアドレス信
号、比較信号、マスク信号、状態信号、CAM読出信
号、CAM書込信号、累積信号、CAMサイクルセット
信号、索引信号、インクリメント信号、バイト加算信
号、ISLチェック信号、及びトリガ信号を、ライン72
8上に出力する。ラッチ708は、ASM RAM64から出
力された信号をラッチする。ライン728は、図5のライ
ン38,40,437,534,535と同じであることに留意された
い。ASM RAMマネージャの機能及びその出力信号
の利用については、既に上述しており、また以下でも説
明する。
【0038】CAMマネージャ60の論理回路の詳細を図
8に示す。該CAMマネージャ60は、CAM62、バスイ
ンターフェイス810、コントローラ812,CAMコマンド
生成器814、セレクタ816,820,821,822、及びラッチ826
を備えている。内部バス531はバスインターフェイス810
に接続される。該バスインターフェイス810は、セレク
タ820のための選択信号として働くセレクタ820へのライ
ン836上のバスアクセス信号、セレクタ820への1つの入
力として加えられるライン837上のデータ信号、セレク
タ821への1つの入力として加えられるライン838上の書
込イネーブル信号、及びセレクタ822への1つの入力と
して加えられるライン839上のデータ/コマンド選択信
号を出力する。CAM62によりその32ビットデータ入出
力端子D32に出力されるデータ信号は、ライン835Aを介
してバスインターフェイス810に加えられる。CAM入
力パターン信号は、ライン86Aを介してセレクタ816に入
力される。CAM読出信号、CAM書込信号、累積信
号、及びCAMサイクルセット信号は、ライン831,832,
833,834をそれぞれ介してコントローラ812に加えられ
る。該コントローラ812は、ライン840を介してCAMコ
マンド生成器814に信号を出力して、該コマンド生成器8
14がCAM62により認識可能な適当なコマンドを発行す
るように指示する。かかるコマンドの例については後に
説明する。該CAMコマンド生成器814の出力は、ライ
ン841を介してセレクタ816への1つの入力として加えら
れる。選択信号は、コントローラ812によりライン842を
介してセレクタ816へに加えられる。書込イネーブル信
号は、セレクタ821への1つの入力としてコントローラ8
12によりライン843を介して加えられる。データ/コマ
ンド選択信号は、コントローラ812によりライン844を介
して出力され、セレクタ822への1つの入力として加え
られる。セレクタ820の出力は、CAM 62の32ビット
のデータ入出力D32に加えられる。該データ入出力D
32は、該信号をライン835B上に出力し、該信号がラッチ
826に加えられて、ライン87上にCAM出力パターンが
提供される。セレクタ821の出力は、CAM62の書込イ
ネーブル入力/Wに加えられる。セレクタ822の出力は、
CAM62のデータ/コマンド選択入力/CMに加えられ
る。CAM62の一致フラグ出力/MFの出力がライン848
を介してラッチ826に加えられて、ライン88上にNO−MAT
CH信号が提供される。ラッチ826は、それに加えられた
CAM出力パターン及びNO−MATCH信号をラッチする。
【0039】上述のように、ポートD32を介してデータ
をCAM62に書き込むこともCAM62から読み出すこと
もできる。入力/Wにおける書込イネーブル信号入力は
データフローの方向を決定する。コマンドもまたポート
D32を介してCAM62に入力される。入力/CMに加えら
れた信号は、入力がデータであるかコマンドであるかを
決定する。出力/MFにおける信号は、比較サイクル中に
突き合わせが行われたか否かを示す。CAMは、ルック
アップテーブルとして使用される場合には、2〜5サイ
クルで動作し、1番目から4番目のクロックチック(tic
k)で、比較すべきデータが入り、それに続くクロックチ
ックで、アドレス又はNO−MATCH信号を出力する。コン
トローラ812は、CAM書込信号を受信すると、提示さ
れたCAM入力パターンをCAM62の比較レジスタに書
き込む。CAMサイクルセット信号は、CAMがデータ
の突き合わせを行うと予想される前に比較レジスタに書
き込まれることになる32ビットワードの数に関する情報
を含む。コントローラ812は、CAMサイクルセット信
号を受信すると、一時コマンドオーバーライド(TCO)
コマンドを使ってCAMのセグメント制御レジスタに対
する書込を行い、比較が必要になる前に32ビットワード
の予測数をセットする。これは、1つないし4つとする
ことが可能である。累積信号を受信した際に、比較の結
果が不一致の場合には、コントローラは、次の空きアド
レスに対するSPD命令をセットし、次いでデータ移動(M
OV)コマンドによって比較レジスタが次の空きアドレス
に移動される。CAM読出信号を受信すると、コントロ
ーラは、読み出しを実行して、CAM内の状態レジスタ
から一致するアドレスを取得する。プログラミング時に
は、プロセッサは、データレジスタ及びコマンドレジス
タの両者に対して読み書きを行うよう自由にアクセスす
ることができる。CAMの動作に関する更に詳しい情報
については、CAMの仕様書及び資料で調べることがで
きる。
【0040】ここで、統計カウンタセクション520の論
理構成を図9に示す。該統計カウンタセクション520
は、2つのセクション66A,66Bへと分割されたカウンタ
RAM66を備えている。該統計カウンタセクション520
はまた、アドレスデコーダ904、ハートビート生成器90
6、ページ選択論理ユニット908、加算器ラッチ68、イン
クリメントラッチ67、セレクタ920〜927、及びバッファ
930〜933を備えている。カウンタは、2つの別々のカウ
ンタセクションに分割されていると考えることができ、
即ち、その第1のセクションは、RAM66A、セレクタ9
24〜926、及びバッファ930,931を備えており、第2のセ
クションは、RAM66B、セレクタ921〜923、及びバッ
ファ932,933を備えている。ページ選択論理回路908とセ
レクタ926,923との間の接続を除き、第1のセクション
と第2のセクションとは設計及び動作が同じであり、こ
のため、第1のセクションについてのみ詳細に考察する
こととする。後に分かるように、一方のRAMが書き込
まれている間に、他方のRAMの内容が保存されて静的
な状態になる。デコーダは、ライン533上の内部バス信
号を受信し、ライン942を介してセレクタ924〜926の各
入力に適当な信号を加え、またライン943を介して各セ
レクタに選択信号を加え、該選択信号は、ライン941を
介してセレクタ921〜923に加えられる。セレクタ926の
出力は、RAM66Aの書込イネーブル入力に加えられ、
セレクタ925の出力は、RAM66Aのアドレス入力に加え
られ、セレクタ924の出力は、バッファ930を介してRA
M66Aのデータ入出力に加えられる。このRAM66Aのデ
ータ入出力は、バッファ931を介してセレクタ920,927の
入力に接続される。該セレクタ927の出力は、ライン944
を介して内部バスに出力されるデータを提供する。ハー
トビート生成器906は、ページ選択論理回路908に加えら
れる出力をライン968上に(好ましくは毎秒1回で)提供
する。該ページ選択論理回路908は、ライン950を介して
セレクタ926の入力に出力信号を加え、またライン951を
介してセレクタ923の入力に別の出力信号を加える。ラ
イン956を介してセレクタ925,922の入力に索引信号が加
えられ、ライン957を介してインクリメントラッチ67に
インクリメント信号が加えられ、ライン958を介して加
算器ラッチ68にバイト加算信号が加えられ、ライン31を
介して加算機ラッチ68にフレームサイズ信号が加えられ
る。セレクタ920の出力は、ライン961を介してインクリ
メントラッチ67及び加算器ラッチ68に加えられる。索引
信号は、RAMのどの内部カウントレジスタに対してイ
ンクリメント及び/又はバイト加算を行うかを該RAM
に知らせる。典型的には、統計RAM66Aは、100個以上
の異なる統計レジスタ又はカウンタを含む可能性があ
る。
【0041】ハートビート生成器906は、2つのRAM66
A,66Bのコンテキストを1秒ごとに切り換える1秒クロ
ックである。即ち、1秒間にわたり一方のRAM例えば
66Aが「アクティブ」になり、他方のRAM66Bが「非ア
クティブ」になる。次の1秒ではRAMの状態が逆転す
る。RAMがアクティブのとき、入力された統計データ
は該RAMに記憶される。即ち、RAMが「アクティ
ブ」の間にインクリメントコマンド及び/又はバイト加
算コマンドが入ってきた場合は、RAMの適当なレジス
タの内容が、対応するラッチに読み込まれ、次いでイン
クリメント及び/又は加算され、次いでその内容が、前
記RAM中の適当なレジスタへと書き込まれる。また、
RAMが非アクティブ場合には、該RAMの読み出しを
行って、記憶されている統計情報をバス16に接続された
プロセッサに渡すことができる。プロセッサバスは、R
AMに対する読出/書込アクセスの制約はないが、アク
セスの前にハートビートの状態を観察することになる。
プロセッサバスは、初期化を目的とする場合を除き、
「非アクティブ」なRAMにしかアクセスしない。
【0042】バッファ及び統計セクションからなるFG
PAは、xilinxタイプのFGPAで実施されることが好
ましい。適当なCAMとして、MUSIC Semiconductors
(254BMountain Avenue, Hadkettstown, New Jersey 078
40)により製造されたMU9C1965A Wide LANCAMTMがある。
RAMは任意の適当な高速のRAMでよい。
【0043】3.一例:EthernetによるTCP/IPフ
レームの構文解析 表2は、本発明によるプロトコルアナライザにより解析
される例示的なフレームであり、イーサネット伝送制御
プロトコル/インターネットプロトコル(TCP/I
P)フレームのプリアンブルを除いたヘッダのフォーマ
ットを示したものである。
【0044】
【表2】
【0045】表2の各々の縦方向に位置する区分即ち行
は、2バイトに相当する。例えば、MAC宛先アドレス
は、ヘッダの最初の6バイトを占め、Etherタイプは、
ヘッダの第13バイト及び第14バイトを占めている。行
が列へと分割されている場合には、それに対応して2バ
イトが左右に分割されている。例えば、サービスタイプ
は、ヘッダの第16バイトを占めている。図10は、特
定のTCP/lPフレームの構文解析を示すフローチャ
ートである。該フローチャートにおいて、両側が尖った
各ボックスは、判定を行うCAM又はASM RAMサ
イクルを表している。かかる各サイクル毎に、CAM又
はASM RAMとの間の入出力がある。該サイクルが
CAMサイクルである場合には、その判定ボックスの右
上に、32、64、96又は128ビットの何れかのCAMサイ
クルを示す数字と共にCAMという文字を記載した。そ
のサイクルについてのASM20の状態を、ボックスの左
上に示した。また、両側が尖っていないボックスは、1
サイクルの後に行われるステップであり、別のサイクル
や決定を行う必要のないものである。表3は、各サイク
ルについての入力及び出力を示したものである。この場
合、通信システムは、Ethernetであり、したがって、プ
ロトコルスタックは、Etherタイプ(ET)フィールドバ
イト13,14から決定されて、列Etherタイプに示される。
【0046】
【表3】
【0047】ここで、表2、表3、及び図10を参照す
る。第1ステップ1004は64ビットCAMサイクルであ
り、その状態は初期状態0,0である。ASM20は、入力
(I/P)宛先アドレス(DA)がISL宛先アドレスか
否かを検査し、それが0x01000c0000と等しいか否かを検
査する。このステップは、各フレーム毎に行われる予備
ステップであるため、好ましい実施形態ではハードウェ
アで実施され、具体的には、統計FPGA320(図3及
び図6参照)で実現されたISLヘッダ検出器604であ
るが、本システムのフレキシビリティを示すため、ここ
ではCAMサイクルとして示すこととする。この実施形
態では、フレームはISLフレームではなく、したがっ
て、この出力は、12バイトだけスキップして最上位のEt
herタイプバイトへと移動し及びそれをRAM中で構文
解析すべきことをASM20に知らせる。該システムは、
ステップ1006でこれを行って、Etherタイプ0x08xxを探
す。これは、0x60xxよりも大きいため、802.3の長さの
フィールド(802.3 length field)ではない。この出力
は、システムが状態0,4になってCAM中のEtherタイプ
全体を構文解析することを命令するものとなる。また、
該タイプが0x60xxよりも小さかった場合には、システム
は状態0,6になり、これは全く異なるアルゴリズム部分
(本実施例では図示せず)に至るものとなる、というこ
とに留意されたい。次のステップ即ち状態0,4は32ビッ
トのCAMサイクルであり、したがって、システムはス
テップ1007でCAMサイクルを32ビットにセットする。
ステップ1008は、32ビットCAMサイクルであり、Ethe
rタイプ0x0806はIPとして認識され、したがって、該
IPプロトコルタイプに割り当てられたカウンタがステ
ップ1010でインクリメントされ、システム20は、ゼロ番
目のIP状態即ちIP,0になり、プロトコルタイプフィ
ールドに向かって11バイトだけ進み、次がRAMサイク
ルであることを示す。また、Etherタイプが認識されな
かった場合には、エラーになり、又は当該フレームがシ
ステムがカウントの対象としないフレームであったこと
になり、したがって、システムは、状態0,0に戻って、
新しいフレームに注目することになる。ステップ1012で
は、IPプロトコルタイプが、RAMに読み込まれ、T
CPとして認識される。この場合も、タイプが認識でき
なかった場合には、エラーになり、又は当該フレームが
システムがカウントの対象としないフレームであったこ
とになり、したがって、システムは、状態0,0に戻っ
て、新しいフレームに注目することになる。ステップ10
12でRAMから出される命令は、次の状態が状態IP,1で
あることを示し、システムは、フレームの断片化フラグ
領域に入れる3バイトデータを調べ、次のサイクルがR
AMサイクルであることを示す。断片化がない場合又は
それが最初の断片である場合は、TCPフレームをカウ
ントするよう割り当てられたカウンタがステップ1016で
インクリメントされ、次いでステップ1018でフレームの
バイトがカウントされる。また、断片化が存在し、それ
が前記以外の他の断片である場合(この場合がそうであ
る)には、そのバイトだけがカウントされる。状態IP,1
での命令により、システムは、6バイトだけ戻ってRA
Mサイクル中のヘッダ長に注目し、及び次の状態をIP,2
にセットするように命令される。ヘッダ長フィールドが
有効でない場合には、システムは、状態0,0に戻って新
しいフレームに注目する。しかし、ステップ1020では、
ヘッダ長が有効であり、これにより、TCP層の始まり
がどこであるかがシステムに知らされる、ということが
分かった。この特定の長さのフィールドに関するステッ
プ1020での命令は、システムが20バイトだけ(TCPソ
ースポートが位置する場所へと)進み、該TCPソース
ポートをCAM中の比較レジスタにロードする(これは
ステップ1022で行われる)ことである。CAM中の比較
レジスタは比較レジスタ54とは異なること、即ち、前者
はCAM62中の特定のレジスタであるが後者は統計FP
GA320内に実施されたものであることに留意された
い。次いで、システムは、命令に従って状態IP,3にな
る。ステップ1024では、入力にかかわらず、ASM20
は、宛先ポートをソースポート(I/P=xx)と比較し
てその小さい方を次のサイクル(CAMサイクル)で該
ASMに提示するよう要求する。該ASM20はまた、ポ
ートが認識されない場合には、新しいパターン及び統計
として追加されるものを該ASMへと収集するよう命令
する。該命令によりステップ1026でポートが比較され、
システムが状態IP,4(ステップ1028)へと移る。この場
合には、ポートが認識されないため、ステップ1030でC
AMにポートがロードされ、関連する統計RAMカウン
トをインクリメントさせる命令が出力される(ステップ
1032)。次いで、アルゴリズムが最初にリセットされ
て、新しいパケットの待機を開始する。
【0048】本発明の特徴は、ルックアップテーブル
が、プロセッサ及び記憶されたソフトウェアではなく状
態マシンを利用することにある。状態マシンの好ましい
実施形態は、CAM及びRAMを含むものであるが、他
の方法で実施可能である。
【0049】本発明のもう1つの特徴は、ルックアップ
テーブルがCAMを利用することである。これにより、
長いデータ部分を迅速に識別することが可能になる。C
AMから出力されるアドレスは、RAMに入力されるこ
とが好ましいが、情報を特定のアドレスに記憶する他の
論理システムに入力することも可能である。また、アド
レス出力を単にメモリに転送して後に処理することも可
能である。
【0050】本発明の更に他の特徴は、PCIバス16上
を通過するフレームの統計を収集する状態マシン20の能
力が、所定のフレーム及びプロトコルタイプに制限され
ないことである。フレームヘッダを検査する際に、以前
にシステム15により確認されなかった新しいパターンが
見つかった場合には、ASM RAMマネージャ70は、
統計FPGA320内に実施された論理ユニットに命令を
出して、該新しいパターンをCAMに書き込ませること
ができる。また、カウンタRAM66に新しいカウンタを
追加して、新しいパターンの発生をカウントすることが
できる。その後に新しいパターンが発生した際には、該
新しいパターンの各発生毎に、該新しいパターンに対応
する新しいカウンタがインクリメントされることにな
る。
【0051】本発明の別の特徴は、アドレスオフセット
値を使用して、解析すべき次のデータフレーム部分を探
し出すことにある。上述のように、該オフセット値は、
システムが、解析すべき次の部分又は第2の部分を探し
出すために、解析すべき現在の部分若しくは第1の部分
のアドレス又は直前に解析したアドレスから進むべき正
又は負のバイト数である。該オフセット値は、解析すべ
きフレームの次の部分のアドレスを生成するためにアド
レス生成器52により使用される。該オフセットの使用に
は、2つの異なる長所が存在する。第1に、CAM62と
RAM64に記憶しなければならない解析アルゴリズムの
異なる分岐の数(即ち状態の数)が大幅に減少する。即
ち、ヘッダの相対的な長さが変化するため、特定のフレ
ームヘッダの絶対アドレスは多くの異なる値をとり得る
が、フレームヘッダの様々な部分の相対的な位置はほと
んど変化しない。第2に、絶対アドレスを伝えるために
必要な導体よりもオフセット値を伝えるために必要な導
体の方が遥かに少ないため、状態マシンの出力をアドレ
ス生成器に接続するのに必要な導体の数が大幅に減少す
る。
【0052】ギガビットという転送速度であっても、パ
ケット網上に転送されるあらゆるフレームについての情
報をユーザが収集することを可能にし、またその他の多
くの利点を有する、新規なプロトコルアナライザと、パ
ケット網使用時の情報の収集方法とについて説明してき
た。本発明を十分に詳細に説明したので、当業者であれ
ば、本発明の思想から逸脱することなく、既述の特定の
実施形態の多くの使用及び修正を行うことが可能である
ことは明らかである。例えば、比較的単純な状態マシン
を使用してパケット網の統計を収集することができるこ
とを開示したが、同目的のために別の状態マシンを設計
することも可能である。プロトコルアナライザで使用す
るためにCAMを特に適合させたものを開示したので、
CAMを用いた他のプロトコルアナライザを設計するこ
とも可能である。また、本明細書に記載した様々な構成
要素及び回路の代わりに、それと等価な別の構成要素及
び回路を用いることが可能であることは明らかである。
また、更に別の機能を追加することも可能である。本明
細書の実施形態よりも多数又は少数の部品を使用するこ
とも可能である。したがって、本発明は、本開示のプロ
トコルアナライザシステム及び情報収集方法が提供し及
び/又は有する新規の機能及び該機能の新規の組み合わ
せを包含するように解釈されるべきである。
【0053】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。
【0054】1.パケット網(16)上のネットワーク統計
情報を収集する装置(15)であって、前記パケット網上を
移動するデータパケットを記憶するための入力バッファ
(18)と、前記ネットワーク統計を記憶するための電子的
なメモリ(66)とを備えており、前記入力バッファ及び前
記電子的なメモリと通信を行う電子的なルックアップテ
ーブル(20)であって、前記データパケットの少なくとも
一部を解析し、及び前記統計情報を表す統計信号(94,9
5)を含む出力信号を提供する、電子的なルックアップテ
ーブル(20)を備えており、該ルックアップテーブルが状
態マシン(20)を備えていることを特徴とする、ネットワ
ーク統計情報収集装置。
【0055】2.パケット網(16)上のネットワーク統計
情報を収集する方法であって、前記パケット網上を移動
するデータパケットをバッファ(18)に記憶し、前記デー
タパケットに関連する統計信号を電子的なメモリ(66)に
記憶し、これにより前記ネットワーク統計を記録し、前
記データパケットの少なくとも一部を表す第1の信号を
電子的な状態マシン(20)に入力して、該前記状態マシン
に前記統計信号を含む出力信号を提供させることを特徴
とする、ネットワーク統計情報収集方法。
【0056】3.前記状態マシンが連想記憶装置(CA
M)(62)からなることを特徴とする、前項1に記載の装
置又は前項2に記載の方法。
【0057】4.前記状態マシンが更にランダムアクセ
スメモリ(RAM)(64)を備えている、前項1に記載の装
置又は前項2に記載の方法。
【0058】5.前記入力バッファが、前記データパケ
ットの前記一部のビット数が所定数よりも大きい場合に
該データパケットの一部を前記CAMに入力し、及び前
記データパケットの前記一部のビット数が前記所定数以
下の場合に該データパケットの一部を前記RAMに入力
するための論理ユニット(50)を備えている、前項3に記
載の装置又は方法。
【0059】6.前記状態マシンが、CAM(62)を含む
連想記憶装置(CAM)マネージャ論理ユニット(60)と、
RAM(64)を含むランダムアクセスメモリ(RAM)マネ
ージャ論理ユニット(70)と備えており、前記出力信号が
前記RAMマネージャ論理ユニットから出力された信号
からなる、前項1に記載の装置又は前項2に記載の方
法。
【0060】7.前記状態マシンが入力(86A)及び出力
(90)を有しており、該出力が該入力に電気的に接続され
ている、前項1に記載の装置又は前項2に記載の方法。
【0061】8.前記出力信号(89〜95,40)が、前記メ
モリの所定のレジスタのカウントをインクリメントする
命令と、前記メモリに新しいカウントレジスタを追加す
る命令と、前記パケット網上を移動する特定のデータセ
グメントをキャプチャRAMに記憶させるためにスナッ
プショットトリガを生成する命令と、該装置によりまだ
確認されていない前記パケット網上を移動するデータパ
ケットのパターンに対応する新しい内容パターンを前記
CAMに書き込む命令(833)と、解析中の現在のデータ
セグメントから所定のオフセット値だけオフセットされ
た、及び前記状態マシンにより解析されるべき、新しい
データセグメントを提供する命令と、前記データ部分を
更に解析する命令とからなるグループから選択された1
つの命令を含む、前項1に記載の装置又は前項2に記載
の方法。
【0062】9.前記出力信号がトリガ信号(437)を含
み、前記装置(15)が、前記トリガ信号に応じて特定のデ
ータパケットのPCIアドレスを記憶する論理ユニット
(412)を備えている、前項1に記載の装置又は前項2に
記載の方法。
【0063】10.前記電子的なメモリが、第1のカウン
タ部分(66A)及び第2のカウンタ部分(66B)を備えてお
り、前記装置が、前記カウンタを用いて統計情報を収集
するアクティブ状態と前記カウンタの読出処理を行う非
アクティブ状態との間で前記第1のカウンタ部分と前記
第2のカウンタ部分とを切り換えるハートビート制御論
理回路(906,908)を更に備えている、前項1に記載の装
置又は前項2に記載の方法。
【図面の簡単な説明】
【図1】本発明によるプロトコルアナライザを一般化し
た論理的な記載で示すブロック図である。
【図2】本発明によるプロトコルアナライザの好ましい
実施形態の論理的な詳細を示すブロック図である。
【図3】図2の好ましい実施形態を実施するハードウェ
アを示すブロック図である。
【図4】図3の実施形態のFIFOセクションを示すブ
ロック図である。
【図5】図3の実施形態の統計セクションを示すブロッ
ク図である。
【図6】図5の統計セクションのフレームヘッダバッフ
ァセクションを示すブロック図である。
【図7】図5の統計セクションのASM RAMマネー
ジャ部分を示すブロック図である。
【図8】図5の統計セクションのCAMマネージャ部分
を示すブロック図である。
【図9】図5の統計セクションの統計カウンタ部分を示
すブロック図である。
【図10】本発明のプロトコルアナライザによるTCP/lP
フレームの構文解析の一例を示すフローチャートであ
る。
【符号の説明】
15 プロトコルアナライザ 18 入力バッファ 20 アルゴリズム状態マシン(ASM) 52 アドレス生成器 54 比較レジスタ 56 マスク 60 CAMマネージャ論理回路 62 CAM 64 ASM RAM 66 カウンタRAM 67 インクリメントラッチ 68 加算器ラッチ 72,74,76 セレクタ 80 キャプチャRAM

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】パケット網(16)上のネットワーク統計情報
    を収集する装置(15)であって、前記パケット網上を移動
    するデータパケットを記憶するための入力バッファ(18)
    と、前記ネットワーク統計を記憶するための電子的なメ
    モリ(66)とを備えており、前記入力バッファ及び前記電
    子的なメモリと通信を行う電子的なルックアップテーブ
    ル(20)であって、前記データパケットの少なくとも一部
    を解析し、及び前記統計情報を表す統計信号(94,95)を
    含む出力信号を提供する、電子的なルックアップテーブ
    ル(20)を備えており、該ルックアップテーブルが状態マ
    シン(20)を備えていることを特徴とする、ネットワーク
    統計情報収集装置。
JP10218831A 1997-08-01 1998-08-03 パケット網の使用に関する情報を収集する方法及び装置 Pending JPH11127198A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US904511 1997-08-01
US08/904,511 US6304903B1 (en) 1997-08-01 1997-08-01 State machine for collecting information on use of a packet network

Publications (1)

Publication Number Publication Date
JPH11127198A true JPH11127198A (ja) 1999-05-11

Family

ID=25419276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10218831A Pending JPH11127198A (ja) 1997-08-01 1998-08-03 パケット網の使用に関する情報を収集する方法及び装置

Country Status (4)

Country Link
US (1) US6304903B1 (ja)
EP (2) EP1545058B1 (ja)
JP (1) JPH11127198A (ja)
DE (2) DE69837020T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005036834A1 (ja) * 2003-10-10 2005-04-21 Fujitsu Limited 統計情報採取方法及び装置
JP2010514313A (ja) * 2006-12-19 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・フローを解析する装置および方法
JP2011018343A (ja) * 2002-10-21 2011-01-27 Emulex Design & Manufacturing Corp 遠隔管理システム

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791947B2 (en) 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
US7333484B2 (en) * 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
CN1214567C (zh) * 1998-11-24 2005-08-10 尼克桑公司 用于采集和分析通信数据的装置及方法
US6633563B1 (en) * 1999-03-02 2003-10-14 Nortel Networks Limited Assigning cell data to one of several processors provided in a data switch
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US6768992B1 (en) * 1999-05-17 2004-07-27 Lynne G. Jolitz Term addressable memory of an accelerator system and method
US6625783B2 (en) * 2000-02-16 2003-09-23 Logic Research Co., Ltd. State machine, semiconductor device using state machine, and method of design thereof
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6785237B1 (en) 2000-03-31 2004-08-31 Networks Associates Technology, Inc. Method and system for passive quality of service monitoring of a network
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6671828B1 (en) * 2000-06-12 2003-12-30 Agilent Technologies, Inc. Address routing in a protocol analyzer
US6845099B2 (en) * 2000-06-14 2005-01-18 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for modifying selectors to retrieve context information for a core processor
US6826180B1 (en) * 2000-06-14 2004-11-30 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
US6791983B1 (en) * 2000-06-14 2004-09-14 Mindspeed Technologies, Inc. Content-addressable memory for use with a communication packet processor to retrieve context information
US6798778B1 (en) * 2000-06-14 2004-09-28 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor
US6891829B1 (en) * 2000-06-14 2005-05-10 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for retrieving context information for a core processor
US6742017B1 (en) * 2000-06-29 2004-05-25 Emc Corporation Data storage system having separate data transfer section and message network with pointer or counters
US7543077B1 (en) * 2000-09-19 2009-06-02 Stragent, Llc Ternary content addressable memory embedded in a central processing unit
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US6449214B1 (en) * 2000-11-28 2002-09-10 Silicon Access Networks Statistics counter overflow content addressable memory (CAM) and method
AU2002234212A1 (en) * 2001-01-03 2002-08-19 University Of Southern California System level applications of adaptive computing (slaac) technology
EP1374068B1 (en) * 2001-03-19 2008-06-04 Empirix Inc. A method for the tracing and analysis of a multi-protocol communication using a multi-protocol communication analysis application program
US7366194B2 (en) 2001-04-18 2008-04-29 Brocade Communications Systems, Inc. Fibre channel zoning by logical unit number in hardware
US7151778B2 (en) 2001-04-18 2006-12-19 Brocade Communications Systems, Inc. Frame filtering of fibre channel packets
US7167472B2 (en) * 2001-04-18 2007-01-23 Brocade Communications Systems, Inc. Fibre channel zoning by device name in hardware
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7017186B2 (en) 2002-07-30 2006-03-21 Steelcloud, Inc. Intrusion detection system using self-organizing clusters
US7206831B1 (en) * 2002-08-26 2007-04-17 Finisar Corporation On card programmable filtering and searching for captured network data
US7240172B2 (en) * 2003-02-07 2007-07-03 Sun Microsystems, Inc. Snapshot by deferred propagation
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7430203B2 (en) * 2004-01-29 2008-09-30 Brocade Communications Systems, Inc. Fibre channel zoning hardware for directing a data packet to an external processing device
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US7593409B2 (en) 2005-12-29 2009-09-22 Honeywell International Inc. Apparatus and methods for monitoring network traffic
JP2007242103A (ja) * 2006-03-07 2007-09-20 Seiko Epson Corp データ再生装置、データ再生方法およびデータ再生プログラム
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
US7978700B2 (en) * 2007-03-12 2011-07-12 Marvell Israel (Misl) Ltd. Apparatus for determining locations of fields in a data unit
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
US20090132747A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Structure for universal peripheral processor system for soc environments on an integrated circuit
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
CN102404222B (zh) * 2011-11-28 2014-07-23 曙光信息产业(北京)有限公司 一种支持多端口的网络数据报文统计系统
US9276851B1 (en) 2011-12-20 2016-03-01 Marvell Israel (M.I.S.L.) Ltd. Parser and modifier for processing network packets
US9104551B2 (en) * 2012-11-09 2015-08-11 Sandisk Technologies Inc. NAND flash based content addressable memory
US9178815B2 (en) * 2013-03-05 2015-11-03 Intel Corporation NIC flow switching
US9432278B2 (en) 2013-03-07 2016-08-30 Microsoft Technology Licensing, Llc Simulation of interactions between network endpoints
US9450916B2 (en) 2014-08-22 2016-09-20 Honeywell International Inc. Hardware assist for redundant ethernet network
CN104602414B (zh) * 2015-01-22 2017-05-24 生迪光电科技股份有限公司 智能照明装置、控制终端和照明系统
US10735221B2 (en) 2017-03-28 2020-08-04 Marvell International Ltd. Flexible processor of a port extender device
TWI663862B (zh) * 2017-08-31 2019-06-21 金儀國際科技股份有限公司 多樣式健身設備相容之通用資料系統
US11343358B2 (en) 2019-01-29 2022-05-24 Marvell Israel (M.I.S.L) Ltd. Flexible header alteration in network devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179549A (en) * 1988-11-10 1993-01-12 Alcatel N.V. Statistical measurement equipment and telecommunication system using same
US5351243A (en) * 1991-12-27 1994-09-27 Digital Equipment Corporation Monitor for packets on a communications network
US5422838A (en) * 1993-10-25 1995-06-06 At&T Corp. Content-addressable memory with programmable field masking
DE69637139T2 (de) * 1995-11-17 2008-02-28 Telecommunications Techniques Corp. Instrument zum testen und messen von virtuellen verbindungen in einem atm netzwerk
US5761191A (en) * 1995-11-28 1998-06-02 Telecommunications Techniques Corporation Statistics collection for ATM networks
US5916305A (en) * 1996-11-05 1999-06-29 Shomiti Systems, Inc. Pattern recognition in data communications using predictive parsers

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018343A (ja) * 2002-10-21 2011-01-27 Emulex Design & Manufacturing Corp 遠隔管理システム
WO2005036834A1 (ja) * 2003-10-10 2005-04-21 Fujitsu Limited 統計情報採取方法及び装置
JP2010514313A (ja) * 2006-12-19 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・フローを解析する装置および方法
US8861397B2 (en) 2006-12-19 2014-10-14 International Business Machines Corporation Apparatus and method for analyzing a network

Also Published As

Publication number Publication date
EP0895376B1 (en) 2006-03-15
US6304903B1 (en) 2001-10-16
DE69837020T2 (de) 2007-05-24
DE69833814D1 (de) 2006-05-11
EP1545058A2 (en) 2005-06-22
EP1545058A3 (en) 2005-10-05
EP0895376A2 (en) 1999-02-03
DE69837020D1 (de) 2007-03-22
EP0895376A3 (en) 2004-09-22
EP1545058B1 (en) 2007-01-31
DE69833814T2 (de) 2006-11-09

Similar Documents

Publication Publication Date Title
JPH11127198A (ja) パケット網の使用に関する情報を収集する方法及び装置
JP4558879B2 (ja) テーブルを用いたデータ処理装置および処理システム
JP5850896B2 (ja) ネットワークにおけるトラフィックを監視する方法および装置
US6771646B1 (en) Associative cache structure for lookups and updates of flow records in a network monitor
US7787442B2 (en) Communication statistic information collection apparatus
EP1166520B1 (en) Method and apparatus for managing a network flow in a high performance network interface
US6789116B1 (en) State processor for pattern matching in a network monitor device
US8176300B2 (en) Method and apparatus for content based searching
US8854996B2 (en) Accelerating data packet parsing
US20220300213A1 (en) High Speed Data Packet Flow Processing
JP2644200B2 (ja) データ捕獲装置
US7206831B1 (en) On card programmable filtering and searching for captured network data
JP7480907B2 (ja) 変換装置、変換方法及び変換プログラム
US5493562A (en) Apparatus and method for selectively storing error statistics
JP2001168911A (ja) パケットフィルタ装置
WO2024038523A1 (ja) 変換装置、変換方法及び変換プログラム
AU2004201912B2 (en) A packet processor
JP2001069173A (ja) パケットフィルタ機構
Scott A wire-speed packet classification and capture module for netfpga
Bhavsar Performance Heightening by Filter Implementation on FPGA Based 10Gig Optical/PCI Network Interface Card

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071211