(57)【要約】本発明は、広帯域データネットワークキング装置の分野に関する。図２を参照すると、ネットワーク装置（１００）は、アナログネットワーク信号をビットストリームに、あるいはその逆に変換するための物理インターフェース（１０２、１２０）を含む。物理インターフェース（１０２）からのビットストリームは、トラフィックフロー走査プロセッサ（４０）に送信される。トラフィックフロー走査プロセッサ（４０）は、ヘッダを走査し、ルーティング情報およびセッション識別情報を得るためのヘッダプロセッサ（１０４）と、ペイロードを走査し、対応するデータパケットをさらに分類するペイロードアナライザ（１１０）とに分割される場合がある。走査の結果は、トラフィック管理およびトラフィックシェーピングのためのサービス品質プロセッサ（１１６）によって用いられる。
2004503986.tif 000002
【特許請求の範囲】
【請求項１】
複数のタイプのデータパケットを伝送し、複数の宛先および転送元を有するデータネットワークに接続されるネットワーク装置であって、前記各データパケットはヘッダおよびペイロードからなり、前記ネットワーク装置は、
前記データパケットのタイプ、前記データパケットの転送元および前記データパケットの宛先を判定し、かつ前記データパケットの属性に基づいて前記データパケットを分類するために、前記データネットワークから前記データパケットを受信し、前記ヘッダを走査するように動作することができるヘッダプロセッサと、
前記ヘッダプロセッサに接続され、前記各データパケットの前記ペイロードを走査するように動作することができるペイロードアナライザであって、ペイロード内容に従ってデータパケットをさらに分類することができるペイロードアナライザと、
前記ペイロードアナライザに接続され、その分類に基づいて前記各データパケットを処理するように動作することができるサービス品質プロセッサと、
を含むネットワーク装置。
【請求項２】
ネットワーク伝送線からの入力アナログ信号を、前記データネットワークからの前記データパケットを含むビットストリームに変換するように動作することができ、前記サービス品質プロセッサからのビットストリームを、前記データネットワーク上で伝送できる出力アナログ信号に変換するようにさらに動作することができる物理インターフェースをさらに含む請求項１に記載のネットワーク装置。
【請求項３】
前記ヘッダプロセッサと、前記ペイロードアナライザと、前記サービス品質プロセッサとを管理するように動作することができるフロー管理プロセッサおよびマイクロプロセッサをさらに含む請求項１に記載のネットワーク装置。
【請求項４】
前記フロー管理プロセッサおよび前記マイクロプロセッサはさらに、ネットワークトラフィックフロー測定値および統計値を収集して、ネットワーク管理者に報告を返送するように動作することができる請求項３に記載のネットワーク装置。
【請求項５】
前記ネットワーク装置は、転送元アドレス、宛先アドレス、転送元ポート、宛先ポートおよびプロトコルに基づいて個々のトラフィックフローのための固有のセッションＩＤを生成するように動作することができる請求項１に記載のネットワーク装置。
【請求項６】
前記ネットワーク装置は、それぞれの個々のトラフィックフローのための状態を記憶し、保持することができる請求項５に記載のネットワーク装置。
【請求項７】
前記ペイロードアナライザは、キューエンジンと、コンテクストエンジンと、ペイロード走査エンジンとを含み、前記キューエンジンはデータパケットを並べ替え、アセンブルし直すように動作することができ、前記コンテクストエンジンは複数のセッションＩＤに関連するデータパケットを管理し、かつ前記ペイロード走査エンジンの動作をスケジューリングするように動作することができ、前記ペイロード走査エンジンは前記データパケットの前記ペイロードを既知のストリングのデータベースと比較するように動作することができる請求項５に記載のネットワーク装置。
【請求項８】
前記サービス品質プロセッサは、複数のサービス品質キューを含み、該サービス品質プロセッサは、前記ヘッダプロセッサおよび前記ペイロードアナライザからの分類に基づいて前記複数のサービス品質キューのうちの１つに前記データパケットを割り当てるように動作することができ、前記サービス品質キューは前記データネットワーク上の前記データパケットの優先順位を決定する請求項１に記載のネットワーク装置。
【請求項９】
前記データパケットの前記属性は、前記データパケットのタイプ、宛先および転送元である請求項１に記載のネットワーク装置。
【請求項１０】
データネットワークの一部としてのネットワーク装置であって、前記データネットワークは、複数のプロトコルと、複数の宛先および転送元とからなるデータパケットのストリームを含み、前記各データパケットはヘッダ情報とペイロード情報とを含み、前記ネットワーク装置は、
前記各データパケットの前記ヘッダ情報および前記ペイロード情報を走査するように動作することができるトラフィックフロー走査プロセッサであって、前記トラフィックフロー走査プロセッサは、前記データパケットが適切にアセンブルされ、並べられることを確実にする、少なくとも１つの再アセンブリおよび並べ替えエンジンを含み、また前記トラフィックフロー走査プロセッサは、前記データパケットを走査し、前記データパケット内の情報と既知のシグネチャのデータベースとを一致させ、前記データパケット内の情報の一致に基づいて関連する結果を生成する少なくとも１つの走査エンジンをさらに含む、該トラフィックフロー走査プロセッサと、
前記トラフィックフロー走査プロセッサに接続され、前記データパケットおよび前記関連する結果を受信するサービス品質プロセッサであって、前記サービス品質プロセッサは、前記結果を解釈し、前記データパケットを前記サービス品質プロセッサ内に収容される複数のサービス品質キューのうちの１つに配置するように動作することができ、前記サービス品質キューは前記関連する結果によって判定され、前記データパケットはその後、前記サービス品質キューから前記データネットワークに送信される、該サービス品質プロセッサとを含むネットワーク装置。
【請求項１１】
前記トラフィックフロー走査プロセッサと前記サービス品質プロセッサとに接続される物理インターフェースをさらに含み、前記物理インターフェースは、前記データネットワークから入力アナログ信号を受信し、前記入力アナログ信号を、前記データパケットを含む入力ビットストリームに変換する入力ポートと、出力ビットストリームを受信し、前記出力ビットストリームを、前記データネットワークに送出される出力アナログ信号に変換するための出力ポートとを含む請求項１０に記載のネットワーク装置。
【請求項１２】
前記トラフィックフロー走査プロセッサは、前記各データパケットをセッションＩＤに関連付け、前記セッションＩＤは前記データネットワーク内の個々のトラフィックフローを表す請求項１０に記載のネットワーク装置。
【請求項１３】
前記セッションＩＤは、転送元アドレスと、宛先アドレスと、転送元ポートと、宛先ポートと、プロトコルとから決定される請求項１２に記載のネットワーク装置。
【請求項１４】
前記ネットワーク装置は、それぞれの個々のトラフィックフローのための状態を記憶し、保持することができる請求項１２に記載のネットワーク装置。
【請求項１５】
前記トラフィックフロー走査プロセッサは、ヘッダプロセッサとペイロードアナライザとに分割される請求項１０に記載のネットワーク装置。
【請求項１６】
前記ペイロードアナライザは、キューエンジンと、コンテクストエンジンと、ペイロード走査エンジンとを含む請求項１５に記載のネットワーク装置。
【請求項１７】
前記コンテクストエンジンは、複数のセッションＩＤに関連するデータパケットを管理し、かつ前記ペイロード走査エンジンの動作をスケジューリングするように動作することができ、前記ペイロード走査エンジンは前記データパケットの前記ペイロードと既知のストリングのデータベースとを比較するように動作することができる請求項１６に記載のネットワーク装置。
【請求項１８】
前記複数のサービスキューは、前記データネットワークへの前記データパケットの優先順位を決定する請求項１０に記載のネットワーク装置。
【請求項１９】
前記トラフィックフロー走査プロセッサを制御し、かつネットワークトラフィックフロー測定値および統計値を収集して、ネットワーク管理者に報告を返送するように動作することができるフロー管理プロセッサおよびマイクロプロセッサをさらに含む請求項１０に記載のネットワーク装置。
【請求項２０】
前記関連する結果は、前記ネットワーク装置によって実行されることができる命令である請求項１０に記載のネットワーク装置。
【請求項２１】
データネットワークの一部としてのネットワーク装置であって、前記データネットワークは、複数のプロトコルと、複数の宛先および転送元とからなるデータパケットのストリームを含み、前記各データパケットはヘッダ情報とペイロード情報とを含み、前記ネットワーク装置は、
前記データネットワークから入力アナログ信号を受信し、前記入力アナログ信号を、前記データパケットを含む入力ビットストリームに変換する入力ポートと、出力ビットストリームを受信し、前記出力ビットストリームを、前記データネットワークに送出される出力アナログ信号に変換するための出力ポートとを含む物理インターフェースと、
複数のルートエンジンとを含み、前記ルートエンジンはそれぞれ、
前記物理インターフェースに接続され、前記入力ビットストリームを受信するトラフィックフロー走査プロセッサであって、該トラフィックフロー走査プロセッサは前記各データパケットのヘッダ情報とペイロード情報とを走査するように動作することができ、前記トラフィックフロー走査プロセッサは、前記データパケットが適切にアセンブルされ、並べられることを確実にする、少なくとも１つの再アセンブリおよび並べ替えエンジンを含み、また前記トラフィックフロー走査プロセッサは、前記データパケットを走査し、前記データパケット内の情報と既知のシグネチャのデータベースとを一致させ、前記データパケット内の情報の一致に基づいて関連する結果を生成する少なくとも１つの走査エンジンをさらに含む、該トラフィックフロー走査プロセッサと、
前記トラフィックフロー走査プロセッサに接続され、前記データパケットおよび前記関連する結果を受信する少なくとも１つのサービス品質プロセッサであって、前記少なくとも１つのサービス品質プロセッサは、前記結果を解釈し、前記データパケットを前記少なくとも１つのサービス品質プロセッサ内に収容される複数のサービス品質キューのうちの１つに配置するように動作することができ、前記サービス品質キューは前記関連する結果によって判定され、前記データパケットはその後、前記サービス品質キューからスイッチファブリックインターフェースに送信される、該少なくとも１つのサービス品質プロセッサと、
少なくとも２つ以上のルートエンジンのための前記少なくとも１つのサービス品質プロセッサ間に接続されるスイッチファブリックであって、それにより、前記データパケットは、前記データパケットのための入力ポートに関連する前記少なくとも１つのサービス品質プロセッサのうちの１つから、前記データパケットのための適当な出力ポートに関連する前記少なくとも１つのサービス品質プロセッサに送信され、それにより前記ネットワーク装置はネットワークルータとして動作することができる、該スイッチファブリックとを含むネットワーク装置。
【請求項２２】
前記トラフィックフロー走査プロセッサは、前記データパケットをそれぞれ１つのセッションＩＤに関連付け、前記セッションＩＤは前記データネットワーク内の個々のトラフィックフローを表す請求項２１に記載のネットワーク装置。
【請求項２３】
前記セッションＩＤは、転送元アドレスと、宛先アドレスと、転送元ポートと、宛先ポートと、プロトコルとから決定される請求項２２に記載のネットワーク装置。
【請求項２４】
前記ネットワーク装置は、それぞれの個々のトラフィックフローのための状態を記憶し、保持することができる請求項２２に記載のネットワーク装置。
【請求項２５】
前記トラフィックフロー走査プロセッサは、ヘッダプロセッサとペイロードアナライザとに分割される請求項２１に記載のネットワーク装置。
【請求項２６】
前記ペイロードアナライザは、キューエンジンと、コンテクストエンジンと、ペイロード走査エンジンとを含む請求項２５に記載のネットワーク装置。
【請求項２７】
前記コンテクストエンジンは、複数のセッションＩＤに関連するデータパケットを管理し、かつ前記ペイロード走査エンジンの動作をスケジューリングするように動作することができ、前記ペイロード走査エンジンは前記データパケットの前記ペイロードと既知のストリングのデータベースとを比較するように動作することができる請求項２６に記載のネットワーク装置。
【請求項２８】
前記サービス品質キューは、前記データネットワークへの前記データパケットの優先順位を決定する請求項２１に記載のネットワーク装置。
【請求項２９】
前記フロー管理プロセッサおよび前記マイクロプロセッサは、ネットワークトラフィックフロー測定値および統計値を収集して、ネットワーク管理者に報告を返送するようにさらに動作することができる請求項２２に記載のネットワーク装置。
【請求項３０】
前記関連する結果は、前記ネットワーク装置によって実行されることができる命令である請求項２１に記載のネットワーク装置。
【発明の詳細な説明】
【０００１】
［技術分野］
本発明は広帯域データネットワーキング装置に関する。具体的には、本発明は、プロトコル、宛先、転送元およびペイロード内容に基づいてトラフィックを分類し、変更するネットワーク装置に関する。
【０００２】
［背景技術］
ネットワークおよびネットワークを構成するハードウエアの特性および要件は、ネットワークへの需要が変化するのに応じて劇的に変化しつつある。より広い帯域幅を求める需要が増加し続けているだけでなく、ネットワーク上を流れるトラフィックの特性も変化している。データに加えてネットワーク上で伝送される映像および音声の需要によって、エンドユーザおよびネットワークプロバイダは同様に、ネットワークがサービス品質（ＱｏＳ）、トラフィック測定および高度なセキュリティのようなサービスを提供することを要求している。しかしながら、既存のインターネットプロトコル（ＩＰ）ネットワークは、その上で伝送されるデータの特性について限られた情報しか含んでいないため、そのようなサービスを提供するように設計されていなかった。
【０００３】
インフラストラクチャを構成する既存のネットワーク装置は、トラフィックの特性にかかわらず、スイッチおよびルータからなる複雑なネットワークを経由してデータを転送するようにのみ設計されていた。ルータ、スイッチおよびリモートアクセスサーバ（ＲＡＳ）のような、既存のネットワークにおいて用いられる装置は、パケットヘッダ以外のネットワークデータストリーム内の情報を処理することはできず、通常はネットワークの特定の層あるいは１組の特定のプロトコルに関連するヘッダしか処理することができない。特定のプロトコルによって、あるいはアドレスあるいはポート番号のようなパケットヘッダ内の他の情報によって、トラフィックのタイプについての推定を行うことはできるが、トラフィックの特性およびトラフィックの内容についての高いレベルの情報は、ワイヤスピードで判別することができない。
【０００４】
既存のネットワーク装置のパケット処理および問題点をより明確に理解するために、その基本的な動作を理解することが有用である。大部分のネットワーク装置の機能は４つの基本的な構成要素に分解されることができる。第１の構成要素は、銅ペア線、同軸ケーブル、光ファイバあるいは空気のような物理的な媒体上で伝送されるアナログ波形をネットワーク装置が処理することができるビットストリームに、あるいはその逆に変換する物理層インターフェース（ＰＨＹ層）である。ＰＨＹ層は、トラフィックの方向に応じて、特定の装置においてネットワークデータが衝当するシリコンの最初あるいは最後の断片である。第２の基本機能構成要素はスイッチファブリックである。スイッチファブリックは、装置のバスあるいはバックプレーンを介して、その装置の入口ポートと出口ポートとの間でトラフィックを転送する。第３の構成要素はホスト処理であり、それは装置内を伝送するトラフィックの経路の外側にある動作範囲を含むことができる。これは、構成要素間の通信を制御すること、構成を有効化すること、ネットワーク管理機能を実行することを含むことができる。ホストプロセッサは通常、既製の汎用ＲＩＳＣあるいはＣＩＳＣマイクロプロセッサである。
【０００５】
最後の構成要素はパケット処理機能であり、ＰＨＹ層とスイッチファブリックとの間に存在する。パケット処理は、高速パスとして分類される動作と、低速パスとして分類される動作との２つの動作カテゴリにおいて特徴付けられることができる。高速パス動作はライブデータストリーム上でリアルタイムに実行される動作である。低速パス動作は、フローまたはトラフィックの外側で実行されるが、処理されるパケットの一部を転送する必要がある。低速パス動作は、未知のアドレス分解と、ルート計算と、ルーティングおよび転送テーブル更新とを含む。低速パス動作のうちのいくつかは、必要に応じてホストプロセッサによって実行されることができる。
【０００６】
１つのネットワーク装置が有用で、効果的であるためには、ネットワークトラフィックを遅滞なく処理してボトルネック（ｂｏｔｔｌｅｎｅｃｋ）を回避するために、トラフィックの大部分が高速パスにおいて処理されなければならない。データフロー高速パス動作を遅滞なく処理することは常に数および範囲の両方において制限されている。従来では、５つの基本的な動作、すなわちフレーミング／構文解析、分類、変更、暗号化／圧縮およびキューイングが高速パス動作である。従来では、高速パス動作は、汎用のマイクロプロセッサあるいはカスタムＡＳＩＣによって実行されてきた。しかしながら、速度要件を維持しながら、ある程度のプログラム可能性を与えるために、数多くの企業が最近、高速パスデータストリーム上で動作するための極めて専用化されたネットワークプロセッサ（ＮＰＵ）を導入している。ＯＣ−１２、ＯＣ−４８およびＣＯ−１９２のようなＮＰＵはＡＳＩＣと同じデータ速度で動作することができるが、ある程度のプログラム可能性を提供する。しかしながら、最新式のＮＰＵを用いる場合でも、高速バス動作は依然として、データパケット内の非常に特殊なフィールドにおいてのみ動作する、特定の明確に定義された動作に限定されなければならない。現在のネットワーク装置は、ＮＰＵを用いるものであっても、データフローの高速パスの際、簡単なヘッダ情報以上のパケットに、かつパケット内容に深く踏み込むことができない。高速パスの際も、ヘッダ情報以上のパケット内容まで探索するための能力があれば、ネットワーク装置はパケットにおいて搬送される情報の特性を識別できるようになり、それによりさらに細かくパケットを分類できるようになるであろう。また、内容を知ることにより、特定の内容が識別され、走査されて、ウイルス検出、サービス拒否（ＤｏＳ）防止等のようなセキュリティを提供できるようになる。さらに、トラフィックフロー全体にわたって、データパケットをより深く探索し、内容のアウェアネスを保持できるようにすることにより、ネットワークトラフィックフローの妥当性を検査し、ネットワークプロトコルを検証できるようになり、パケットダウンストリームを処理するのに有用であろう。したがって、１Ｇビット／秒以上のワイヤスピードにおいて高速パス上でペイロードを走査できるようにするために、かつデータトラフィックフロー全体を通して状態情報あるいはアウェアネスを保持できるようにするために、簡単なヘッダ情報以上のパケット内容あるいはペイロードまで探索できるネットワーク装置が必要とされる。
【０００７】
［発明の概要］
本発明は、ネットワークデータフローを形成するデータパケットの内容全体を走査することができるネットワーク素子あるいは装置を提供する。そのネットワーク装置は、ネットワークから受信される任意のあるいは全てのデータパケットの内容を走査するように動作することができるトラフィックフロー走査プロセッサ、あるいはエンジンからなる。データパケットの内容は、ヘッダ情報およびペイロード内容の両方を含む。トラフィックフロー走査プロセッサは、ヘッダプロセッサと、ペイロードアナライザとに分割されることができる。ヘッダプロセッサは、ヘッダ情報を走査し、ヘッダ情報に基づいてルーティング要件を決定し、データパケットの所定の属性に基づいて、ネットワーク装置内のそれぞれの個々のアクティブトラフィックフローを特定するための固有のセッションＩＤを生成することができる。ペイロードアナライザは、データパケットのペイロードの内容を走査し、既知のストリングからなるデータベースに対してペイロード内容を一致させようとする。ペイロードアナライザにおいて一致が検出される場合には、ネットワーク装置は、そのデータパケット上で、あるいはそのデータパケットが関連付けられる特定のトラフィックフロー上で種々のプログラム可能な機能を実行するように動作することができる。さらに、トラフィックフロー走査プロセッサは、それぞれの個々のトラフィックフローにわたって状態アウェアネスを保持することができる。
【０００８】
トラフィックフロー走査プロセッサに加えて、そのネットワーク装置はサービス品質プロセッサを含む。サービス品質プロセッサはトラフィックフロー走査エンジンに接続され、各データパケットに関連する走査エンジンから、１つあるいは複数の結果あるいは命令とともに走査されたデータパケットを受信する。その後、サービス品質プロセッサは、関連する結果にしたがって、各データパケットを複数のサービス品質キューのうちの１つに配置するように動作することができる。サービス品質キューは、その関連するデータをネットワークに返送するための優先順位を決定する。トラフィック管理およびトラフィックシェーピングのためのサービス品質キューに加えて、サービス品質プロセッサは、関連する結果にしたがってデータパケットの１つあるいは複数のビットを変更するように動作することができるパケット変更エンジンを含む。
【０００９】
ルーティングネットワーク装置は、スイッチファブリックを通して接続され、管理カードによって制御される２つ以上のルートエンジンカードを用いて構成することができる。各ルートエンジンカードは、１つのトラフィックフロー走査エンジンと、少なくとも１つのサービス品質プロセッサとを含む。トラフィックフロー走査エンジンは、データパケットのうちの任意のパケットあるいは全てのパケットを走査し、データパケットの内容に基づいて命令あるいは結果を作成し、それぞれの個々のトラフィックフローにわたって状態アウェアネスを保持する。その後、サービス品質プロセッサが、ルーティング、品質あるいはセキュリティの目的を果たすために必要とされるように、そのデータパケットをサービス品質キューに配置し、パケットを変更する。その後、サービス品質プロセッサは、そのデータパケットをスイッチファブリックに送出し、スイッチファブリックはデータパケットを、物理的な出口ポートに関連するルートエンジンカードにルーティングする。出口ルートエンジンカード上にあるサービス品質プロセッサは、スイッチファブリックと物理的な出口ポートとの間でバッファとしての役割を果たし、パケット優先順位に基づいて物理的な出口ポートへのアクセスを割り当てる。
【００１０】
トラフィックフロー走査エンジンおよびサービス品質プロセッサに加えて、ネットワーク装置はさらに物理インターフェース、フロー管理プロセッサあるいはマイクロプロセッサも備える場合がある。物理インターフェースは物理ネットワーク接続からアナログ信号を受信し、その信号を、ネットワーク装置によって処理されることができるビットストリームに変化させるか、あるいはその逆の処理を行う。フロー管理エンジンおよびマイクロプロセッサは、トラフィックフロー走査エンジンおよびサービス品質プロセッサを管理すなわち構成し、かつトラフィックフロー走査エンジンによって処理されることができない余分な（ｏｄｄ）パケットを処理し、トラフィック測定値および統計値を保持するように動作する。
【００１１】
上記の説明は、当業者が以下に記載される本発明の詳細な説明をより深く理解できるように、ある程度広範に、本発明の好ましい機構および代替の機構の概要を述べている。本発明の特許請求の範囲の主題を形成する本発明のさらに別の機構が以下に記載されるであろう。本発明と同じ目的を実行するための他の構造を設計したり、変更したりするための基準として、開示される概念および特定の実施形態を容易に利用できることは、当業者には理解されよう。また当業者は、そのような等価な構成物が最も幅広い形態の本発明の精神および範囲から逸脱しないことも理解されよう。
【００１２】
本発明をより完全に理解するために、ここで添付の図面とともに取り上げられる以下の説明が参照される。
【００１３】
［発明を実施するための形態］
ここで図１を参照すると、インターネットのような広帯域の公衆ＩＰネットワーク１０にある態様で接続されるいくつかのネットワークインフラストラクチャの一例であるネットワークトポロジーが示される。図１は正確なネットワークアーキテクチャであることを意図しているわけではなく、広帯域ＩＰネットワーク上に存在することができる種々のネットワーク構造の概略的な例示としての役割を果たすことのみが意図される。公衆ＩＰネットワーク１０には、様々な方法でアクセスすることができる。図１は、公衆ＩＰネットワークが、私設コアネットワークを提供するＭＣＩあるいはＵＵＮＥＴのような一企業のＩＰネットワークを用いることができる私設ＩＰネットワーク１２を通してアクセスされることを示す。私設ＩＰネットワーク１２に接続される他のネットワークにアクセスするために、あるいは公衆ＩＰネットワーク１０にアクセスするために、数限りない種々のネットワーク構造が私設ＩＰネットワーク１２に接続されることができる。
【００１４】
私設ＩＰネットワーク１２に接続されるネットワーク構造の一例がホスティングネットワーク１４である。ホスティングネットワーク１４は、インターネットウェブサイトのためのホスティングサービスを提供するネットワーク構造の一例である。これらのホスティングサービスはウェブファーム１６の形態をとることができる。ウェブファーム１６は、ａｍａｚｏｎ．ｃｏｍあるいはｙａｈｏｏ．ｃｏｍのような特定のウェブサイトに関連するウェブページ、プログラムおよびデータベースを含むウェブサーバ３０およびデータベース３２で開始する。ウェブサーバ３０は、到来するインターネットトラフィックを受信し、それを特定のウェブサーバに割り当てて、全てのウェブサーバ３０にわたって負荷を平均化させる二重の負荷バランサ２８に接続される。二重の侵入検知システム２６およびファイアウォールが負荷バランサ２８に接続され、ウェブファーム１６にセキュリティを提供する。個々のウェブファーム１６および１７は、スイッチ２０およびルータ２２のネットワークを介して、ホスティングネットワーク１４の交換バックボーン１８に接続される。ホスティングネットワーク１４の交換バックボーン１８自体はスイッチ２０のネットワークから構成され、それらはその後、１つあるいは複数のルータ２２に接続され、さらに私設ＩＰネットワーク１２に接続される。個々のウェブファーム１６および１７と、ホスティングネットワーク１４の交換バックボーン１８との間の接続は通常、ＯＣ−３あるいはＯＣ−１２のような速度（概ね、１５０Ｍビット／秒あるいは６２５Ｍビット／秒）で行われるが、一方、ホスティングネットワーク１４のルータ２２から私設ＩＰネットワーク１２への接続は概ねＯＣ−４８速度（概ね２．５Ｇビット／秒）である。
【００１５】
私設ＩＰネットワークに接続されるネットワーク構造の別の例がサービスプロバイダネットワーク３４で示される。サービスプロバイダネットワーク３４は、私設ＩＰネットワーク１２および公衆ＩＰネットワーク１０に対してデータおよび音声の両方でアクセスを提供できるようにするための、インターネットサービスプロバイダ（ＩＳＰ）あるいは地域電話会社（ＬＥＣ）のためのネットワーク構造の一例である。サービスプロバイダネットワーク３４は、企業ネットワーク３６および３７に対してインターネットおよびイントラネットアクセスのようなサービスを提供する。企業ネットワーク３６および３７はたとえば、ルーセント・テクノロジーズ（Ｌｕｃｅｎｔ Ｔｅｃｈｎｏｌｏｇｉｅｓ）あるいはメリル・リンチ（Ｍｅｒｒｉｌｌ Ｌｙｎｃｈ）のための企業ネットワークのような企業ネットワークである。企業ネットワーク３６のような各企業ネットワークは、交換バックボーン１８に接続される複数のネットワークサーバおよび個別のワークステーションを含み、交換パックボーン１８はルータ２２によってサービスプロバイダネットワーク３４に接続されることができる。
【００１６】
企業ネットワークのためのインターネットアクセスに加えて、サービスプロバイダネットワーク３４は、個人および小企業のためのダイヤルアップインターネットアクセスを提供する。ダイヤルアップアクセスは、サービスプロバイダネットワーク３４においてリモートアクセスサーバ（ＲＡＳ）４２によって提供され、それによりパーソナルコンピュータ（ＰＣ）が、公衆交換電話網（ＰＳＴＮ）（図示せず）を通してサービスプロバイダネットワーク３４に発呼できるようになる。一旦、ＰＳＴＮを経由してＰＣ５０とＲＡＳ４２との間の接続がなされたなら、ＰＣ５０は私設あるいは公衆ＩＰネットワーク１２あるいは１０にアクセスすることができる。
【００１７】
またサービスプロバイダネットワーク３４は、インターネットを用いて、ボイス・オーバ・ＩＰ（ＶｏＩＰ：ｖｏｉｃｅ ｏｖｅｒ ＩＰ）と呼ばれる、データネットワーク上で音声通話を提供するための能力も提供する。ＶｏＩＰネットワーク４６および４７によって、適当なソフトウエアを備えるＩＰ電話４８およびＰＣ５０が、インターネットに接続される他の電話またはＰＣに、またはさらにはＰＳＴＮに接続される通常の電話に電話をかけることができるようになる。ＶｏＩＰネットワーク４６のようなＶｏＩＰネットワークは、必要に応じてサービスプロバイダネットワーク３４ならびに私設および公衆インターネット１２および１０を通して送信されるＶｏＩＰ呼を収集し、集中させるために、メディアゲートウエイ５２および他の装置（図示せず）を備える。上記のように、ＶｏＩＰ、およびビデオ・オーバ・インターネットのような他のリアルタイムサービスの出現は、従来からの電話会社によって提供される従来の電話サービスと競合するため、サービスプロバイダにとってサービス品質が優先事項になる。
【００１８】
サービスプロバイダネットワーク３４は、サービスプロバイダネットワーク３４とそのエンドユーザとの間に、およびサービスプロバイダネットワーク３４と私設ＩＰネットワーク１２との間に、スイッチ２０およびルータ２２によって形成される交換バックボーン１８を備える。図には示されないが、ドメインネームサーバ４４および他のネットワーキング装置もサービスプロバイダネットワーク３４に備えられる。ホスティングネットワーク３４と同様に、サービスプロバイダネットワーク３４の場合の接続速度は、企業ネットワーク３６および３７ならびにＶｏＩＰネットワーク４６および４７に接続するためのＴ１、Ｔ３、ＯＣ−３およびＯＣ−１２から、私設ＩＰネットワークに接続するためのＯＣ−４８および場合によってはＯＣ−１９２に至るまでの範囲にわたることができる。
【００１９】
ＯＣ−３、ＯＣ−１２およびＯＣ−４８のような速度で１つのネットワーク構造から別のネットワーク構造までデータが渡される、これらの種々のネットワーク構造の端部に集合ポイント６０が存在することは容易に明らかになろう。図１に示すネットワーク構造における１つの主な問題点は、ネットワークがセキュリティ、測定およびサービス品質のようなサービスを提供できるようになるこれらの集合ポイント６０においてあらゆるタイプのインテリジェンスが欠如していることである。これらのサービスを提供するためのインテリジェンスは、ネットワークが、現時点では理解している内容の全てである宛先および／または転送元情報だけでなく、集約点６０を通過するデータのタイプを理解することを要求するであろう。関連するペイロードの内容およびヘッダ情報を含む、データのタイプ、あるいはその内容を理解することにより、またそれぞれの個々のトラフィックフローにわたって状態アウェアネスを理解し、かつ保持することにより、そのネットワークは、サービス品質が根本的な要件であるＶｏＩＰあるいはビデオのような応用形態に対して、ネットワークへの帯域幅要件に合わせてリアルタイムに構成変更できるようになるであろう。インテリジェントあるいは「コンテンツ・アウェア」ネットワークは、電子メールワーム、ウイルス、サービス拒否（ＤｏＳ）攻撃、および違法性のハッキングのような、エンドユーザに対してトランスペアレントな方法でセキュリティの問題を特定し、除去することもできるであろう。さらに、コンテンツ・アウェアネットワークは、企業およびサービスプロバイダをホスティングすることにより測定能力を提供し、これらの企業が個々の顧客に割り当てられる帯域幅の量を規制し、かつ帯域幅、およびセキュリティのような付加機能に対して正確に課金できるようにするであろう。
【００２０】
上記の要件にしたがって、本発明は、ＯＣ−３、ＯＣ−１２、ＯＣ−４８の速度でペイロード情報を含むネットワークトラフィックを走査し、分類し、変更することができる装置を提供し、それによりさらに「コンテンツ・アウェア」なネットワークを提供する。
【００２１】
ここで図２を参照すると、本発明によるネットワーク装置の一実施形態が示される。図に示されるネットワーク装置１００は、高速ネットワークラインから受信されるデータを受け取り、そのデータを処理して、そのライン上にデータを戻して配置することにより、「バンプ・イン・ザ・ライン」タイプの（ライン上のバンプとして機能する）装置として動作する。ネットワーク装置１００は、入力物理インターフェース１０２を用いてラインからデータを受信する。入力物理インターフェース１０２は複数のポートから構成されることができ、ＯＣ−３、ＯＣ−１２、ＯＣ−４８のような高速を含む任意の数のネットワーク速度およびプロトコル、ならびに１０／１００イーサネット（登録商標）、ギガビットイーサネット（登録商標）およびＳＯＮＥＴを含むプロトコルを受け入れることができる。入力物理インターフェース１０２は物理ポートからデータを取得し、そのデータをフレーム処理して、好ましくはＰＯＳ−ＰＨＹレベル３あるいはＡＴＭ　ＵＴＯＰＩＡレベル３タイプデータバスのような業界標準データバスである高速パスデータバス１２６上に配置するためにデータをフォーマットする。
【００２２】
高速パスデータバス１２６はそのデータを、ヘッダプロセッサ１０４およびペイロードアナライザ１１０を備えるトラフィックフロー走査プロセッサ１４０に供給する。そのデータは最初にヘッダプロセッサ１０４に送信され、ヘッダプロセッサ１０４は、データパケットヘッダ内に含まれる情報を用いていくつかの演算を実行するように動作することができる。ヘッダプロセッサ１０４は、受信されたデータパケットをパケット記憶メモリ１０６に格納し、ヘッダ情報を走査する。ヘッダ情報が走査されて、データパケットのタイプ、すなわちプロトコルが特定され、それを用いてルーティング情報が判定され、かつデータパケットの所定の属性を用いてセッションＩＤが生成される。
【００２３】
好ましい実施形態では、セッションＩＤは、転送元アドレス、宛先アドレス、転送元ポート、宛先ポートおよびプロトコルからなるセッション情報を用いて生成されるが、当業者であれば、本発明の範囲から逸脱することなく、セッションＩＤがデータパケット内の、リスト化されたフィールドの任意のサブセットあるいは任意の付加フィールドを用いて形成されることもできることは理解されよう。新たなセッション情報を有するデータパケットが受信されるとき、ヘッダプロセッサは、その特定のトラフィックフローを特定するために固有のセッションＩＤを生成する。同じセッション情報を含む一連のデータパケットはそれぞれ、そのフロー内の各パケットを特定するために同じセッションＩＤを割り当てられる。特定のトラフィックフローが明示的な動作を通して終了されるとき、あるいはトラフィックフローがタイムアウトするとき、それは、そのトラフィックフローのためのデータパケットが所定の時間量内に受信されなかったことを意味しており、セッションＩＤが破棄される。本明細書ではセッションＩＤはヘッダプロセッサ１０４によって生成されるものとして説明されるが、セッションＩＤは、ペイロードアナライザ１１０を含むトラフィックフロー走査エンジン１４０のいかなる場所においても生成されることができる。
【００２４】
以下に説明されるように、ネットワーク装置１００が適当に機能するためには、順序が変更されたデータパケットを並べ替えて、データパケットのフラグメントをアセンブルし直す必要がある。ヘッダプロセッサ１０４は、非同期転送モード（ＡＴＭ）ヘッダ情報の除去（ｓｔｒｉｐｐｉｎｇ）を含むことができる、ＡＴＭセルの完全なデータパケット（ＰＤＵ）へのアセンブルを実行するように動作することができる。
【００２５】
またヘッダプロセッサ１０４はルーティング機能を実行するように動作することができる。ルーティングテーブルおよび情報はデータベースメモリ１０８に格納されることができる。ネットワーク装置１００によって受信されるルーティング命令は、ヘッダプロセッサ１０４によって特定され、記録され、さらにマイクロプロセッサ１２４に渡されて、それに応じてマイクロプロセッサ１２４がデータベースメモリ１０８内のルーティングテーブルを更新できるようになる。ネットワーク装置１００は「バンプ・イン・ザ・ライン」装置として示されるが、入力および出力が多数のラインによって形成されることもでき、たとえば４本のＯＣ−１２ラインが、ＯＣ−４８速度で動作するネットワーク装置１００に接続されることもできる。そのような場合には、「バンプ・イン・ザ・ライン」ネットワーク装置１００のルーティングおよびスイッチング能力は多数のライン間で制限されることなり、そのスイッチング能力は従来のルータあるいはスイッチよりも低くなるであろう。さらに、本発明の原理にしたがって、ネットワークルータあるいはスイッチとして動作することができるネットワーク装置を構成することができる。そのような実装形態は図４を参照しながらさらに詳細に記載されるであろう。
【００２６】
ヘッダプロセッサ１０４によってデータパケットが処理された後に、データパケット、その関連するセッションＩＤ、およびルーティングあるいはＱｏＳ情報のような、ヘッダプロセッサによって形成される任意の結果が、高速データパス１２６上でトラフィックフロー走査エンジン１４０のうちのもう一方であるペイロードアナライザ１１０に送信される。受信されたパケットは、ペイロードアナライザ１１０によって処理されると同時に、パケット記憶メモリ１１２に格納される。ペイロードアナライザ１１０は、ヘッダプロセッサ１０４から受信されるデータパケットの内容、特にデータパケットのペイロード内容を走査するように動作することができるが、必要に応じてヘッダ情報も走査することができる。任意のあるいは全てのデータパケットの内容が既知のシグネチャのデータベースと比較され、１つあるいは複数のデータパケットの内容が既知のシグネチャと一致する場合には、そのシグネチャおよび／またはセッションＩＤに関連する動作がネットワーク装置１００によって行われることができる。さらに、ペイロードアナライザ１１０は、個々のそれぞれのトラフィックフロー全体を通して状態アウェアネスを保持するように動作する。言い換えると、ペイロードアナライザ１１０は、トラフィックフローからの現在のデータパケットにのみ関連する状態情報だけでなく、トラフィックフローの全体に関連する状態情報を格納する、各セッションに対するデータベースを保持する。これにより、ネットワーク装置１００は、走査されるデータパケットの内容に基づいてだけでなく、トラフィックフロー全体の内容に基づいて動作できるようになる。ペイロードアナライザ１１０の具体的な動作は図３を参照して記載されるであろう。
【００２７】
一旦トラフィックフロー走査エンジン１４０によってパケットの内容が走査され、結果が得られたなら、ヘッダプロセッサあるいはペイロードアナライザのいずれかあるいは両方のパケットおよび関連する結果がサービス品質（ＱｏＳ）プロセッサ１１６に送信される。再びＱｏＳプロセッサ１１６はそのパケットを転送用に自らのパケット記憶メモリ１１８に格納する。ＱｏＳプロセッサ１１６は、ネットワーク装置１００によって処理されるデータパケットのストリームのためのトラフィックフロー管理を実行するように動作することができる。ＱｏＳプロセッサは、トラフィック管理１２６、トラフィックシェーピング１２８およびパケット変更１３０のためのエンジンを備える。
【００２８】
ＱｏＳプロセッサ１１６は、ヘッダプロセッサ１０４あるいはペイロードアナライザ１１０のいずれかあるいは両方の結果を取得し、その結果に基づいて、そのデータパケットを内部のサービス品質キュー１３２のうちの１つに割り当てる。サービス品質キュー１３２は、互いに対する優先順位を割り当てられることができるか、あるいはその装置内のトラフィックフローの最大あるいは最小パーセンテージを割り当てられることができる。これにより、ＱｏＳプロセッサは、ＶｏＩＰ、ビデオおよび高品質、高信頼性要件を有する他のフローのようなトラフィックフローに対して必要な帯域幅を割り当て、一方、低優先順位の電子メールおよび一般的なウェブサーフィンのような低品質要件を有するトラフィックフローに対して残りの帯域幅を割り当てることができるようになる。ＱｏＳエンジンにしたがってキュー内に現時点で存在する全てのデータを送信するために利用可能な帯域幅を持たないキュー内の情報は選択的に破棄され、それによりトラフィックフローからそのデータは除去される。
【００２９】
またサービス品質キュー１３２によって、ネットワーク装置１１０は、サービス拒否（ＤｏＳ）攻撃のようなネットワーク攻撃を管理できるようになる。ネットワーク装置１００は、パケットの内容を走査し、その内容が既知の転送元と宛先との間の有効なネットワークトラフィックを含むことを確認することにより、トラフィックフローを識別するように動作することができる。未知の転送元に由来するために、あるいは新しい未分類のフローであるために確認されなかったトラフィックフローは、転送元が確認されるか、あるいはそのトラフィックフローが有効なトラフィックであると確認されるまで、低いサービス品質キューに割り当てられることができる。大部分のＤｏＳ攻撃は、新たなセッション情報、スプーフされた転送元からのデータあるいは意味のないデータのいずれかを送信するので、ネットワーク装置１００はそれらのトラフィックフローに低品質のトラフィックキューを割り当てるであろう。これにより、ＤｏＳトラフィックは利用可能な帯域幅のうちの少ないパーセンテージ（すなわち５％）以下しか受信されないようになり、それにより攻撃者がダウンストリームネットワーク装置を輻輳させるのを防ぐことができるであろう。ＱｏＳプロセッサ１１６内のＱｏＳキュー１３２（このＱｏＳプロセッサの本実施形態では６５ｋキューがあるが、任意の数のキューが用いられることができる）はスケジューラ１３４（本実施形態では１０２４）に接続され、それはさらに論理ポート１３６（本実施形態では２５６）に接続され、論理ポート１３６は、ネットワーク装置のための物理入口ポートに対応することができるフロー制御ポートマネージャ１３８（本実施形態では３２）にデータを送信する。トラフィック管理エンジン１２６およびトラフィックシェーピングエンジン１２８は、プログラミングされたパラメータにしたがってトラフィックフローを保持するために、スケジューラおよび論理ポートの動作を決定する。
【００３０】
またＱｏＳプロセッサ１１６はパケット変更エンジン１３０も備え、パケット変更エンジン１３０はデータパケットのフィールドのうちの任意のフィールドにおいてビットを変更、付加あるいは削除するように動作することができる。これにより、ＱｏＳプロセッサ１１６はルーティングのためのアドレスを変更したり、あるいは必要とされるプロトコルのためにデータパケット上に適当なヘッダを配置したりできるようになる。またパケット変更エンジン１３０は、必要に応じてペイロード自体の内部情報を変更するために用いられる場合もある。その後、データパケットは高速データパス１２６に沿って出力ＰＨＹインターフェース１２０に送信され、そこで再びアナログ信号に変換され、ネットワーク上に出力される。
【００３１】
全てのネットワーク装置と同様に、ある一定量のネットワークトラフィックは高速データパス１２６に沿って処理されることができないであろう。このトラフィックはオンボード・マイクロプロセッサ１２４によって処理される必要があるであろう。高速パストラフィックフロー走査エンジン１４０およびＱｏＳプロセッサ１１６は、さらに処理する必要があるパケットをフロー管理プロセッサ１２２に送信し、フロー管理プロセッサ１２２はそれらを処理するためにマイクロプロセッサ１２４に転送する。その後、マイクロプロセッサ１２４は、再びフロー管理プロセッサ１２２を通して、トラフィックフロー走査エンジン１４０およびＱｏＳプロセッサ１１６と通信を行う。フロー管理プロセッサ１２２は、ネットワーク装置１００を通して、トラフィックフローの特性に関するデータおよび統計値を収集するように動作することもできる。余分なパケットあるいは紛失したパケットを処理するほかに、マイクロプロセッサ１２４はユーザ管理インターフェース１４２を制御し、新たなシグネチャを収容するためにデータベース１０８および１１４をコンパイルし直し、トラフィックフロー走査エンジン１４０によって特定されるセッションを記憶あるいは破棄するために用いられることができる。
【００３２】
ネットワーク装置１００の能力は多くの点において固有である。ネットワーク装置１００は、１つのシグネチャあるいは一連のシグネチャとして表されることができる任意の情報のための任意の１つあるいは複数のデータパケットの内容を走査することができる能力を有する。シグネチャは任意の長さからなることができ、パケット内の如何なる場所においても開始および終了することができ、さらにパケット境界を越えることができる。さらに、ネットワーク装置１００は、そのトラフィックフローの過程において一致する任意のあるいは全てのシグネチャを表す各トラフィックフローのための状態情報を格納することにより、個々のトラフィックフローの全てを通して状態アウェアネスを保持することができる。既存のネットワーク装置は、各データパケット内の正確な点で固定長の情報を探索することにより動作し、パケット境界を越えて探索することができない。パケット内の正確な点において固定長の情報を探索することしかできないことにより、既存のネットワーク装置は、あるレベルのパケットヘッダ内の特定可能の位置において含まれる情報に関して動作することに制限され、データパケットのペイロードを探索することはできず、トラフィックフロー全体のための状態情報、あるいはペイロードを含むデータパケットの内容に関してもほとんど判断することができない。
【００３３】
ここで図３を参照すると、図２のペイロードアナライザ１１０がさらに詳細に示される。上記のように、ペイロードアナライザ１１０は、図２のヘッダプロセッサ１０４から転送されるデータパケットの内容を走査するように動作することができる。ペイロードアナライザ１１０は３つの個別のエンジン、すなわちキューエンジン３０２と、内容エンジン３０４と、ペイロード走査エンジン３０６とを備える。
【００３４】
ペイロードアナライザ１１０はペイロードの内容を走査し、かつパケット境界を越えて走査することができるので、ペイロードアナライザ１１０は、セッション毎に、フラグメント化されたパケットをアセンブルし直し、順序を変更されたパケットを並べ替えることができなければならない。パケットを並べ替え、アセンブルし直すことは、キューエンジン３０２の機能である。キューエンジン３０２は高速パスインターフェース３１０を用いて高速パスデータバス１２６から離れてデータを受信する。その後、パケットはパケット並べ替えおよび再アセンブリエンジン３１２に送信され、パケット並べ替えおよび再アセンブリエンジン３１２はパケットメモリコントローラ３１６を用いて、そのパケットをパケットメモリ１１２に格納する。またパケット並べ替えおよび再アセンブリエンジン３１２は、リンクリストコントローラ３１４およびリンクリストメモリ３１８を用いて、処理するためのデータパケットを並べるために用いられる詳細なリンクリストを作成する。セッションＣＡＭ３２０は、ペイロードアナライザ１１０のキューエンジン３０２によって生成されるセッションＩＤを格納することができる。パケット並べ替えおよび再アセンブリエンジン３１２はそのセッションＩＤを用いて、同じデータフローに属するデータパケットをリンクする。
【００３５】
必要とされる高スループット速度を得るために、ペイロードアナライザ１１０は多数のセッションからのパケットを同時に処理できなければならない。ペイロードアナライザ１１０は、関連するセッションＩＤを有する固有のトラフィックフローにそれぞれ属する多数のデータパケットからのデータのブロックを処理する。本発明の好ましい実施形態では、ペイロードアナライザ１１０は、固有のトラフィックフローからの６４個の異なるデータパケットからなる６４バイトブロックを同時に処理する。６４個の異なるデータパケットからなる６４バイトブロックはそれぞれ、ペイロードアナライザのための単一のコンテクストを表す。ペイロードアナライザ１１０のための全ての同時のコンテクストのスケジューリングおよび管理はコンテクストエンジン３０４によって処理される。
【００３６】
コンテクストエンジン３０４はキューエンジン３０２と協動し、１つのコンテクストが処理を終えて、ペイロードアナライザ１１０から送信されたときに、新たなコンテクストを選択する。次フリーコンテクスト／次フリーブロックエンジン３３０はリンクリストコントローラ３１４と通信を行い、処理されることになるデータパケットの次のブロックを特定する。ペイロードアナライザ１１０はデータパケットを順番に走査しなければならないので、ある時点である特定のセッションＩＤを有する１つのデータパケットあるいはトラフィックフローだけがアクティブであることができる。アクティブコントロールリスト３２２は、アクティブコンテクストを有するセッションＩＤのリストを保持し、アクティブリストに対して新たなコンテクストを検査し、新たなコンテクストがイナクティブセッションＩＤに由来することを保証する。新たなコンテクストが特定されたとき、パケットローダ３４０は次フリーコンテクスト／次フリーブロックエンジンによって検索されるリンクリスト情報を用いて、パケットメモリコントローラ３１６を用いて、パケットメモリ１１２から必要とされるデータブロックを検索する。その後、新たなデータブロックはコンテクストバッファ３４２から空きバッファにロードされ、そこで、ペイロード走査エンジンインターフェース３４４によって検索されるのを待つ。
【００３７】
ペイロード走査エンジンインターフェース３４４は、コンテクストエンジン３０４とペイロード走査エンジン３０６との間のインターフェースである。ペイロード走査エンジン３０６に、新たなコンテクストを走査するための余地があるとき、ペイロード走査エンジンインターフェース３４４は新たなコンテクストをペイロード走査エンジン３０６内のストリングプロセッサ３６０に送信する。ストリングプロセッサ３６０は、走査を簡略化するために、余白（すなわち、スペース、タブ、リターン）を単一の空間に圧縮するなどの動作を実行することにより、コンテクストを簡略化するように動作することができる。一旦ストリングプロセッサ３６０が終了したなら、そのコンテクストは、スケジューラ３６４によって検索されるまで、コンテクストバッファ３６２内のバッファのうちの１つにロードされる。スケジューラは、シグネチャメモリ３６６への入力および出力を制御する。それぞれが潜在的に多数のコンテクストを処理することができる４つのシグネチャメモリ３６６が示されるが、ペイロード走査エンジン１１０内のスループットを増減するために任意の数のメモリが用いられることができる。この実施形態では、シグネチャメモリ３６６はそれぞれ一度に４つのコンテクストを処理することができる。
【００３８】
シグネチャメモリ３６６のうちの１つはスケジューラ３６４によってコンテクストを割り当てられ、その後、そのコンテクストの有意ビットを、シグネチャメモリ３６６内に存在する既知のストリングのデータベースと比較する。シグネチャメモリ３６６は、特定のシグネチャに固有のビットである有意ビットを用いて、コンテクストと既知のシグネチャのうちの１つとの間に一致する可能性があるか否かを判定する。一致する可能性がある場合には、そのコンテクストおよび一致する可能性のあるストリングはリーフストリング比較機構３６８に送信され、リーフストリング比較機構３６８はリーフストリングメモリ３７０を用いて、そのコンテクストと一致する可能性があるストリングとのビット毎の比較を実行する。
【００３９】
その後、ペイロード走査の結果が、おそらく、走査されることになる新たなデータの要求とともにペイロード走査インターフェース３４４に返送される。ペイロード走査の結果は、多数の起こり得る結果のうちの任意のものであることができる。その走査は未だ結果に達していない場合もあり、シーケンス番号、カウンタ等のような他の適当な情報とともに、トラフィックフローの状態および任意の未完了の走査がセッションメモリ３５４に格納される場合には、走査を継続するために新たなデータパケットからのさらに別のデータを必要とする場合がある。シグネチャメモリ３６６によって到達された結果は、走査が完了し、一致するものが存在するか、あるいは存在しないかである場合があり、その場合には、データパケットおよび結果は図２のＱｏＳプロセッサ１１６に渡すために送信エンジン３５２に送信される。またその走査は、データパケットがさらに処理されるために図２のマイクロプロセッサ１２４に転送される必要があるものと判定し、データパケットがホストインターフェース３５０に送信され、ホストインターフェースバス３７２上に配置されるようにすることもできる。余分なパケットを処理するほかに、ホストインターフェースバス３５０によって、マイクロプロセッサ１２４は、コンテクストエンジン３０４内の任意のバッファあるいはレジスタに書込みを行うことができるようになる。
【００４０】
状態情報はセッションメモリ３５４に格納され、特定のトラフィックフローに関連するデータが走査された後に必要に応じて更新される。各トラフィックフローについての状態情報は図２のネットワーク装置１００のコンテンツ・アウェアネスを表しており、それによりネットワーク装置は、走査される情報に基づいてだけでなく、各トラフィックフローの場合に走査された全ての情報に基づいて動作できるようになる。
【００４１】
送信エンジン３５２、ホストインターフェース３５０およびセッションメモリコントローラ３４８の動作はスクリプトエンジン３３４によって制御され、セッションメモリコントローラ３４８はセッションメモリ３５４の利用を制御し、汎用の論理演算装置（ＧＰＡＬＵ）３４６から構成され、汎用の論理演算装置（ＧＰＡＬＵ）３４６はカウンタの増減、ポインタの移動等を行うために用いられる。スクリプトエンジン３３４は、必要に応じてレジスタ３３８を用いて、スクリプトメモリ３３６に格納されるプログラム可能なスクリプトを実行するように動作する。スクリプトエンジン３３４は制御バス３７４を用いて、コンテクストエンジン３０４内の任意の構成要素に命令を送信する。
【００４２】
図３の説明から明らかなように、ペイロードアナライザ１１０によって、ネットワーク装置によって受信される任意のあるいは全てのデータパケットの内容全体が、既知のシグネチャのデータベースに対して走査されるようになる。走査された内容は任意の可変あるいは自由な長さを有することができ、パケット境界を越えることもできる。ペイロードアナライザ１１０の能力によって、本明細書において先に記載されたように、データパケットの内容に基づいてデータパケットに関して動作するための能力をネットワーク装置に付与するコンテンツ・アウェアなネットワーク装置を構成できるようになる。
【００４３】
ここで図４を参照すると、ルーティング能力を有する本発明のネットワーク装置の一実施形態が示される。ルーティングネットワーク装置４００は、スイッチファブリック４０４に接続される２つ以上のルートエンジンカード４０２によって形成される。ユーザインターフェースを提供し、ルートエンジンカード４０２を管理するために、１つあるいは複数の管理カード４０６も含まれる。ルートエンジンカード４０２はそれぞれ基本的には、図２のネットワーク装置１００に関して記載されたように動作する。ヘッダプロセッサ４１０およびペイロードアナライザ４１２によって形成されるトラフィックフロー走査エンジン４０８が、データパケットの内容を走査し、その内容に基づく結果を生成する。パケットおよび関連する結果は、入口ＱｏＳプロセッサ４１４に転送され、そこでそのパケットはＱｏＳキューに割り当てられる。その後、データパケットはスイッチファブリックに送信され、スイッチファブリックはそのデータパケットを、その割り当てられた出力ポートのために適したルートエンジンカード４０２に転送する。その後、そのデータパケットは出口ＱｏＳプロセッサ４１８内を流れ、その出口ＱｏＳプロセッサ４１８では、ネットワーク上に送信するための全てのルートエンジンカード４０２から受信されるトラフィックがスケジューリングされる。図２に示されるマイクロプロセッサ１２４は、ルートエンジンカード４０２上に存在することができるか、あるいは１つのマイクロプロセッサが多数のルートエンジンカード４０２をサポートできるようにするために、管理カード４０６に移されることもできる。ルートエンジンカード４０２はそれぞれ自らのマイクロプロセッサを有することもでき、１つの付加的なマイクロプロセッサが管理カード４０６上に存在する。多数の入口および出口パスを有する多数のルートエンジンカードを有することにより、ルーティングネットワーク装置は、図２に関して記載される「バンプ・イン・ザ・ライン」装置の単一の入口および出口パスとは対照的に、ルーティングネットワーク装置として機能できるようになる。これにより、ルーティングネットワーク装置４００において、ヘッダプロセッサ４１０のルーティング機能を利用できるようになる。
【００４４】
図２および図４を参照して記載されるヘッダプロセッサ、ＱｏＳプロセッサおよびフロー管理プロセッサには、記載された機能を実行することができる任意の適当なプロセッサを用いることができるが、好ましい実施形態では、ヘッダプロセッサには高速パターンプロセッサ（Ｆａｓｔ Ｐａｔｔｅｒｎ Ｐｒｏｃｅｓｓｏｒ：ＦＰＰ）が、ＱｏＳプロセッサにはルーティングスイッチプロセッサ（Ｒｏｕｔｉｎｇ Ｓｗｉｔｃｈ Ｐｒｏｃｅｓｓｏｒ：ＲＳＰ）が、フロー管理プロセッサにはＡＳＩプロセッサが用いられ、それらは全て、ルーセント・テクノロジーズ（Ｌｕｃｅｎｔ Ｔｅｃｈｎｏｌｏｇｉｅｓ）（オースティン、テキサス）のアジェレ（Ａｇｅｒｅ）事業部によって製造される。同様に、スイッチファブリックは、Ｐｏｗｅｒ Ｘ Ｎｅｔｗｏｒｋｓ社（２８３３、Ｊｕｎｃｔｉｏｎ Ａｖｅ、Ｓｕｉｔｅ、Ｓａｎ Ｊｏｓｅ、ＣＡ）によって製造される製品を含む、当分野においてよく知られているような任意の適当なスイッチファブリックであることができる。図２および図４を参照して記載されるマイクロプロセッサは、モトローラ社（Ｍｏｔｏｒｏｌａ， Ｉｎｃ．）から市販されるＰｏｗｅｒＰＣシリーズのマイクロプロセッサ、あるいはインテル社（Ｉｎｔｅｌ Ｃｏｒｐｏｒａｔｉｏｎ）から市販されるＸ８６またはＰｅｎｔｉｕｍ（登録商標）シリーズのマイクロプロセッサを含む任意の適当なマイクロプロセッサであることができるであろう。特定のプロトコル、実装形態および構成要素が特に参照されてきたが、「バンプ・イン・ザ・ライン」およびルーティング装置両方のネットワーク装置が、本発明の範囲から逸脱することなく、プロトコルに関係なく、種々の異なる実装形態において機能することができることを当業者は理解されたい。
【００４５】
本発明が詳細に記載されてきたが、その最も広範な形態において本発明の精神および範囲から逸脱することなく、当業者であれば、種々の変形形態、代替形態および変更形態を実施できることを当業者には理解されたい。
【図面の簡単な説明】
【図１】
本発明が動作することができる例示的な環境を示すネットワークトポロジー図である。
【図２】
本発明による「バンプ・イン・ザ・ライン」ネットワーク装置のブロック図である。
【図３】
図２のペイロード走査エンジンのブロック図である。
【図４】
本発明によるルーティングネットワーク装置のブロック図である。
【図１】
2004503986.tif 000003
【図２】
2004503986.tif 000004
【図３】
2004503986.tif 000005
【図４】
2004503986.tif 000006
【国際公開パンフレット】
2004503986.tif 000007
2004503986.tif 000008
2004503986.tif 000009
2004503986.tif 000010
2004503986.tif 000011
2004503986.tif 000012
2004503986.tif 000013
2004503986.tif 000014
2004503986.tif 000015
2004503986.tif 000016
2004503986.tif 000017
2004503986.tif 000018
2004503986.tif 000019
2004503986.tif 000020
2004503986.tif 000021
2004503986.tif 000022
2004503986.tif 000023
2004503986.tif 000024
2004503986.tif 000025
2004503986.tif 000026
2004503986.tif 000027
2004503986.tif 000028
2004503986.tif 000029
2004503986.tif 000030
【国際調査報告】
2004503986.tif 000031
2004503986.tif 000032