(57)【要約】ＩＰネットワーク（１０）上を流れる（図５）ＩＰ通信に対してトラップ・アンド・トレースを実行する機能を含む、ＩＰネットワーク・トラフィックを監視できるネットワーク処理システム（２２）が記述される。ネットワーク処理システム（２２）は、それを通過するデータ・パケットの内容全体をスキャンし、関係するデータ・パケットを関連付けて離散的なセッション、またはフローへとまとめることができ、これにより、ネットワーク処理システム（２２）は所定の検索条件を検索することができる。ネットワーク処理システム（２２）はフローの記録を維持しまたはそのフローを複製することができ、それを保存しまたは監視のために他のＩＰアドレスに送る。フローの監視は、そのフローの内容全体、または呼の識別情報などそのフロー内の情報のなんらかの部分集合の監視を含むことができる。
2006513590.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内で使用され、前記ネットワーク上を流れる通信を傍受するように動作可能であり、前記ネットワークが複数のデータ・パケットを受け渡し、前記データ・パケットが複数のフローを形成する、ネットワーク処理システムであって、
１つまたは複数の前記フローの特徴を識別し、前記特徴を既知の署名からなるデータベースと比較する学習状態機械を含み、１つまたは複数の前記既知の署名が検索条件を表し、１つまたは複数の前記フローの特徴の１つが前記検索条件に一致するとき、前記学習状態機械が前記フローを傍受する、ネットワーク処理システム。
【請求項２】
前記フローの識別情報のみが傍受される、請求項１に記載のネットワーク処理システム。
【請求項３】
前記フローの内容全体が傍受される、請求項１に記載のネットワーク処理システム。
【請求項４】
傍受される通信が制御フローおよびデータ・フローを有する、請求項１に記載のネットワーク処理システム。
【請求項５】
前記制御フローの特徴が前記検索条件に一致すると、前記制御フローと前記データ・フローがともに傍受される、請求項４に記載のネットワーク処理システム。
【請求項６】
前記フローを傍受することが前記フローを複製することおよび前記複製を別のアドレスにリダイレクトすることを含む、請求項１に記載のネットワーク処理システム。
【請求項７】
前記傍受されるフローがＶｏＩＰの呼である、請求項１に記載のネットワーク処理システム。
【請求項８】
前記学習状態機械が、前記パケット中のヘッダ情報を検査するためのヘッダ・プリプロセッサと、前記パケットを前記データベースと比較し取り扱いを決定する内容プロセッサと、前記取り扱いに従って前記パケットを変更し前記パケットの量を調整する（ｄｉｒｅｃｔ）サービス品質プロセッサを含む、請求項１に記載のネットワーク処理システム。
【請求項９】
各学習状態機械が、追加の処理が必要なデータ・パケットのためのマイクロプロセッサをさらに含む、請求項８に記載のネットワーク処理システム。
【請求項１０】
ネットワーク内で使用されるネットワーク処理システムであって、
前記ネットワークが複数のフローからなり、各フローは複数のデータ・パケットから形成され、前記ネットワーク処理システムが前記ネットワーク内の選択されたフローを傍受するように動作可能であり、
学習状態機械を含み、前記学習状態機械が、
前記データ・パケットを処理して各データ・パケットを特定のフローに関連付け、各フローに対する状態を維持し、１つまたは複数のフローを既知の署名のデータベースと比較するトラフィック・フロー・プロセッサであって、既知の署名の前記データベース内部で所定の検索条件との一致があると前記ネットワーク処理システムが前記フローを監視するような、所定の検索条件を既知の署名の前記データベースが含む、トラフィック・フロー・プロセッサと、
前記トラフィック・フロー・プロセッサと通信するサービス品質プロセッサであって、前記データ・パケットを前記関連付けられたフローに対応するサービス品質キューに割り当てるように動作可能な、サービス品質プロセッサと
をさらに含む、ネットワーク処理システム。
【請求項１１】
前記フローの前記監視が呼の識別情報の記録を作成することを含む、請求項１０に記載のネットワーク処理システム。
【請求項１２】
前記フローの前記監視が前記フローを複製することおよび前記複製されたフローを所定のＩＰアドレスに送ることを含む、請求項１０に記載のネットワーク処理システム。
【請求項１３】
前記トラフィック・フロー・プロセッサがヘッダ・プリプロセッサおよび内容プロセッサからなり、前記ヘッダ・プリプロセッサが各パケットのヘッダ情報を検査するように動作可能であり、内容プロセッサが前記パケットを既知の署名の前記データベースと比較するように動作可能である、請求項１０に記載のネットワーク処理システム。
【請求項１４】
前記状態が前記フローの前記特徴に関する情報ならびに前記フローに含まれるイベントの記録を含む、請求項１０に記載のネットワーク処理システム。
【請求項１５】
前記特定のフローに属する新しい状態が検査される時点で前記特定のフローに対して存在する前記状態を、前記データベースと併せて使用して、前記フローが前記所定の検索条件と一致するかどうかを判定する、請求項１０に記載のネットワーク処理システム。
【請求項１６】
前記所定の検索条件を含む既知の署名の前記データベースが、別のサーバ上の管理インターフェースを使用してプログラムされ、イメージ・ファイルの形で前記ネットワーク処理システムにダウンロードされる、請求項１０に記載のネットワーク処理システム。
【請求項１７】
前記管理インターフェースが前記ネットワーク処理システムから監視記録を取り出すようにも働く、請求項１６に記載のネットワーク処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広帯域データ・ネットワーキング装置に関する。詳細には、本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ，インターネット・プロトコル）ネットワークにおける通信ストリームおよび通信識別情報を傍受可能なネットワーク処理装置に関する。
【背景技術】
【０００２】
インターネットなどの、ＩＰ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ，インターネット・プロトコル）ネットワークの威力は、データを送信元からあて先へと運ぶそのコネクションレスな方法と、すべてのサービスを単一のネットワークを介して遂行するその能力とにある。データ・トラフィックを送るのと同じネットワーク上にＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）を実装することにより、既存の別々になっている音声ネットワークおよびデータ・ネットワークを単一のＩＰネットワークに「まとめる」（ｃｏｌｌａｐｓｅ）動きが強まっている。ＶｏＩＰを使用して電話の呼を送る際の多くの問題の１つが、通常ＣＡＬＥＡと呼ばれる１９９４年の法執行における通信援助法（Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ａｓｓｉｓｔａｎｃｅ  ｆｏｒ  Ｌａｗ  Ｅｎｆｏｒｃｅｍｅｎｔ  Ａｃｔ）などの、通信傍受法（ｗｉｒｅｔａｐｐｉｎｇ  ｌａｗｓ）の遵守である。
【０００３】
ＣＡＬＥＡをＶｏＩＰに適用するには、いくつもの技術的ハードルがある。ＶｏＩＰは頑健かつ信頼できるものになってきているが、容易には監視ができない。回線交換網では、傍受するための物理的個所が存在するが、ＶｏＩＰは、どのＩＰ通信とも同じように、コネクションレスである、つまりＶｏＩＰはネットワークのアグリゲーション・ポイントで傍受しなければならず、ネットワーク・アドレス変換を用いたパケット・アンカリングなどの手段によって監視装置にアンカーしなければならない。さらに、呼に関連付けられた識別情報を、通信そのものの実体から分離する機構がなければならない。たとえば、ＶｏＩＰの呼の場合では、呼の実際の音声内容に対するアクセスを提供することなく、発呼者の電話番号またはＩＰアドレスだけを取り出す機構がなければならない。他の要件には、被監視者発信と、当事者保留、参加および離脱の両方の電話会議の呼の傍受（ｔｈｅ  ｉｎｔｅｒｃｅｐｔｉｏｎ  ｏｆ  ｃｏｎｆｅｒｅｎｃｅ  ｃａｌｌｓ，ｂｏｔｈ  ｓｕｂｊｅｃｔ  ｉｎｉｔｉａｔｅｄ  ａｎｄ  ｐａｒｔｙ  ｈｏｌｄ，ｊｏｉｎ，ａｎｄ  ｄｒｏｐ）が含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、ＩＰ通信を傍受し、内容とは別に識別情報を提供し、通信の詳細な記録を提供することのできるネットワーク処理システムが必要とされる。
【課題を解決するための手段】
【０００５】
ネットワークを介して流れるＩＰトラフィックを監視できる、ネットワーク処理システムが記述される。このネットワーク処理システムは、トラフィック・フロー・プロセッサおよびサービス品質プロセッサからなる学習状態機械（ｌｅａｒｎｉｎｇ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）を含む。トラフィック・フロー・プロセッサは、データ・パケットを対応するフローまたはセッションと関連付け、これによってシステムは、個々のデータ・パケットの特徴だけでなく、フロー全体の特徴に基づいて、データ・パケットを扱うことができるようになる。フローは、それに関連付けられたデータ・パケットからなり、既知の署名のデータベースと比較され、このデータベースは所定の１組の検索条件を含む。１本のフローと１件の検索条件との間に一致が見出されたとき、ネットワーク処理システムはフローを監視するように動作可能である。監視は、フローを複製すること、または識別情報などの情報をフローから抽出することを含み、ただしそれには限定されない、多くの形をとることができる。この場合、複製したフローまたは抽出した情報は、後で取り出すために格納する、または法執行機関（ｌａｗ  ｅｎｆｏｒｃｅｍｅｎｔ）が指定するＩＰアドレスにリアル・タイムで送ることができる。
【０００６】
トラフィック・フロー・プロセッサは、フロー内の各データ・パケットのヘッダ情報を検査するヘッダ・プリプロセッサ、およびどのデータ・パケットまたはフロー１つ１つの内容でも、既知の署名のデータベースと比較することによって検査することのできる内容プロセッサを含む。
【０００７】
以上で、以下の発明の詳細な説明がよりよく当業者に理解できるように、本発明の好ましい特徴および代替的特徴をかなり大まかに概括した。本発明の追加の特徴を以下に記載するが、これが本発明の特許請求の範囲の主題をなす。ここに開示する概念および特定の実施形態を他の構造を設計または修正する基礎として使用して、容易に本発明と同じ目的が果たせることが当業者には理解されよう。そうした等価な構成概念が、その最も広い形における本発明の趣旨および範囲を逸脱するものではないことも当業者には理解されよう。
【０００８】
本発明のより完全な理解のために、次に以下の説明を添付の図面と併せて参照されたい。
【発明を実施するための最良の形態】
【０００９】
ここで図１を参照すると、インターネットなどの広域の公衆ＩＰネットワーク内に存在するネットワーク基盤の例であるネットワーク・トポロジーが示されている。図１は、決して厳密なネットワーク・アーキテクチャではなく、広帯域ＩＰネットワーク上に存在する可能性のある様々なネットワーク構造の大まかな説明図として役立つことを意図したものに過ぎない。図１には、ＭＣＩやＵＵＮＥＴなどの企業のＩＰネットワークでもよいコアＩＰネットワーク１０、およびＤＳＬＡＭ１４や企業ルータ１６などの装置によってユーザがコアＩＰネットワーク１０に接続する、アクセス・ネットワーク１２が示されている。限りなく多様なネットワーク構造が、公衆ＩＰネットワークに接続された他のネットワークにアクセスする目的で、コアＩＰネットワーク１０およびアクセス・ネットワーク１２に接続できる。ここで他のネットワークは雲１８で表されている。
【００１０】
アクセス・ネットワーク１２は、インターネット・サービス・プロバイダ（ＩＳＰ、Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）または地域通信会社（ＬＥＣ、Ｌｏｃａｌ  Ｅｘｃｈａｎｇｅ  Ｃａｒｒｉｅｒ）がその例といえようが、公衆ＩＰネットワークを介してデータ・アクセスおよび音声アクセスの両方を提供するのに使用される。アクセス・ネットワーク１２は、企業ルータ１６によって企業に、たとえばルーセント・テクノロジーズ（Ｌｕｃｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ）やメリル・リンチ（Ｍｅｒｒｉｌｌ  Ｌｙｎｃｈ）の企業ネットワークなどの企業ネットワークに、あるいは、ＤＳＬＡＭ１４などのアグリゲーション装置によって接続されるＤＳＬ（ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅｓ、デジタル加入者線）などの高速接続またはダイアル・アップによって、個人宅、自宅オフィス、または小規模な企業に、サービスを提供可能である。
【００１１】
アクセス・ネットワーク１２は、ネットワーク上でのデータのルーティングを行うためにスイッチ・バックボーン２０を含むが、それがここではＡＴＭ（ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ  ｎｅｔｗｏｒｋ、非同期転送モード）ネットワークとして示されており、これはスイッチおよびルータで構成される。ここには示されていないドメイン・ネーム・サーバおよび他のネットワーキング装置も、アクセス・ネットワーク１２に含まれている。アクセス・ネットワーク１２では、そこの加入者間、ならびに加入者とコアＩＰネットワーク１０、および他のネットワーク１６との間の接続が提供され、それにより、加入者は他のアクセス・ネットワークの顧客へと通信（ｒｅａｃｈ）可能になっている。
【００１２】
ネットワーク構造どうしの間およびネットワーク構造の端に、データがネットワーク境界を越えて受け渡される個所が存在することが容易にわかる。図１に示すネットワーク構造における１つの重要な問題は、こうしたネットワーク境界点に、ネットワークがセキュリティ、ネットワーク・トラフィックの監視、ＩＰ通信のトラップ・アンド・トレース（ｔｒａｐ  ａｎｄ  ｔｒａｃｅ）およびサービス品質、ポリシ実行（ｐｏｌｉｃｙ  ｅｎｆｏｒｃｅｍｅｎｔ）、統計的計量（ｓｔａｔｉｓｔｉｃａｌ  ｍｅｔｅｒｉｎｇ）などのサービスを提供できるようにする、どのような種類のインテリジェンスもないことにある。こうしたサービスを提供するインテリジェンスに必要なのは、このネットワークが、現在理解していることのすべてであるあて先および／または送信元情報だけでなく、これらのネットワーク境界点を通過するＩＰ通信を識別し学習し理解することである。データのタイプ、または関連付けられたペイロードの内容およびヘッダ情報を含めて、データの内容を理解し、さらに各トラフィック・フローの１つ１つの全体についての（ａｃｒｏｓｓ）状態感知（ｓｔａｔｅ  ａｗａｒｅｎｅｓｓ）を理解および記憶し、すなわち維持することによって、ネットワークは、トラフィックの複製やリダイレクトなど、パケットおよびフローに対してリアル・タイムで特定の取り扱いを行うことができるようになり、これにより、ネットワークは、真のネットワーク間のセキュリティおよび監視、ならびに、ＭＰＬＳやＤｉｆｆＳｅｒｖなどの標準を用いたサービス品質（ＱｏＳ、ｑｕａｌｉｔｙ  ｏｆ  ｓｅｒｖｉｃｅ）を提供し、サービス品質が基本的な要件であるＶｏＩＰやビデオなどのアプリケーション向けのネットワークに対する広帯域の要件に沿うように、リアル・タイムでネットワーク自体を構成し、あるいは、パケット転送だけでなく、セッションまたはフローのレベルでインテリジェンスが必要な他のネットワーク・サービスを提供することが可能になる。インテリジェントな状態感知ネットワークでは、電子メール・ワーム、ウイルス、ＤｏＳ（ｄｅｎｉａｌ  ｏｆ  ｓｅｒｖｉｃｅ、サービス妨害）攻撃、不法なハッキングなど他のセキュリティ問題を、エンド・ユーザにトランスペアレントな形で、識別しフィルタリングで排除することができる。さらに、このインテリジェントな状態感知ネットワークにより、ホスティング会社およびサービス・プロバイダによる計量機能が提供され、これらの企業は、個々の顧客に割り当てる帯域量を調節し、また、帯域に応じておよびセキュリティなどその他の機能に応じて正確に請求することが可能になる。
【００１３】
そのような装置の使用の例が、図１に、ネットワーク処理システム２２によって示されている。ネットワーク処理システム２２は、ネットワーク間の境界、ならびにアクセス・ネットワーク１２の端でＤＳＬＡＭ１４または企業ルータ１６の内側に（ｂｅｈｉｎｄ）ある。こうした位置にある装置であれば、もし、このネットワーク内のフローおよびイベントについて学習し、こうしたフローの状態を記憶できれば、それに接続されるネットワークに対して真のサービス品質およびポリシ管理を適用することができよう。
【００１４】
上記に述べた要件に従って、本発明では、ペイロード情報を含むＯＣ−３、ＯＣ−１２、ＯＣ−４８およびさらに速い速度のネットワーク・トラフィックをスキャンし分類し変更することができ、それにより、ネットワークで使用される効率的な学習状態機械を提供する、ネットワーク処理システムが提供される。
【００１５】
本明細書に記載するネットワーク処理システムの動作の理解を助けるために、本明細書で多く使用する、ネットワーク・トラフィックに関する概念を示す図２が提供されている。図２には、ネットワーク上に同時に存在することのできる、３つの別々のフロー、すなわちフロー（ＮＩＤ＿ａ）、フロー（ＮＩＤ＿ｂ）、およびフロー（ＮＩＤ＿ｃ）が示されている。それぞれのフローは、ネットワーク上に存在する１つ１つのセッションを表している。これらのセッションは、リアル・タイムのストリーミング・ビデオのセッション、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）の呼、Ｗｅｂブラウジング、ファイル転送、またはその他のネットワーク・トラフィックとすることができる。各フローは、１つ１つのデータ・パケットからなり、フロー（ＮＩＤ＿ａ）はパケットｘおよびｘ＋１、フロー（ＮＩＤ＿ｂ）はパケットｙおよびｙ＋１、フロー（ＮＩＤ＿ｃ）はパケットｚおよびｚ＋１からなっている。パケットを２つしか示していないが、各フローは、任意の個数のパケットからなり、各パケットのサイズは任意である。各パケットはさらに、各パケットごとにＢｌｋ＿ｉ、Ｂｌｋ＿ｉ＋１、Ｂｌｋ＿ｉ＋２で示される、固定長ブロックへと分割できる。パケットおよびフローはネットワーク・トラフィックとして現れるが、図２に示す固定長ブロックは、本発明のネットワーク処理システムによって作成されるものであり、この点は以下でより詳細に説明することとする。
【００１６】
ここで図３を参照すると、本発明によるネットワーク処理システムの一実施形態が示されている。ネットワーク処理システム４０は、右側ライン・インターフェース４２からの情報を処理し、次いでそれを左側ライン・インターフェース３８を通してネットワークへと送信し戻すことも、左側ライン・インターフェース３８からの情報を処理し、次いでそれを右側ライン・インターフェース４２を通してネットワークへと送信し戻すことも可能な双方向システムである。左側および右側ライン・インターフェース３８および４２は、ともに任意の個数のポートから構成することができ、ＯＣ−３、ＯＣ−１２、ＯＣ−４８などの速い速度、ならびに１０／１００イーサネット（登録商標）、ギガビット・イーサネット（登録商標）、およびＳＯＮＥＴを含むプロトコルを含む、任意の数のネットワークの速度およびプロトコルを受け付けることが可能である。
【００１７】
このライン・インターフェース・カードは、入ってくるデータをパケットの形で取り入れ、好ましくはＰＯＳ−ＰＨＹ  Ｌｅｖｅｌ３、またはＡＴＭ  ＵＴＯＰＩＡ  Ｌｅｖｅｌ３型データ・バスなどの業界標準のデータ・バスである、データ・バス５４上にデータを流す。左側ライン・インターフェース３８で受け取ったデータは学習状態機械、すなわち処理エンジン４４に送られ、右側ライン・インターフェース４２で受け取ったデータは学習状態機械、すなわち処理エンジン４６に送られる。ネットワーク処理システム４０は双方向ではあるが、ネットワーク処理システム４０内部の１つ１つの学習状態機械４４および４６は単方向であり、双方向の情報を処理するには２個を必要とする。各学習状態機械４４および４６は、その動作については図４に関してより詳細に説明するが、各データ・パケットの内容をスキャンし、データ・パケットを特定のフローに関連付け、各データ・パケットごとにその内容や関連付けられたフローのなんらかの状態に基づいて複製やリダイレクトなどの取り扱いを決定し、所定の取り扱いに適合するようにデータ・パケットをキューに入れ変更する。フローの状態とは、フローに関連付けられたすでに処理済みのパケットからの、ネットワーク処理システム４０によって識別されるフローに関する情報である。
【００１８】
内部バス５２は、好ましくはＰＣＩバスであるが、学習状態機械４４および４６が相互に通信し、管理モジュール４８および自由選択の補助プロセッサ・モジュール５０が学習状態機械４４と４６の両方と通信できるようにするために使用される。学習状態機械４４と４６の間の相互通信により、処理エンジンは、戻って行くフローに対する取り扱いに適用できる、フローから学習した情報を交換できるようになる。たとえば、優先度の高い顧客に対する取り扱いは、出て行く情報と入ってくる情報の両方に適用される必要がある。各学習状態機械は単方向であるため、トラフィックの方向の両方を対象とするためには、情報が学習状態機械の間で共有されなければならない。
【００１９】
管理モジュール４８は、学習状態機械４４および４６のそれぞれの動作を制御し、ネットワーク処理システム４０がその処理するネットワーク・トラフィックに適用する、監視、ポリシ、サービス品質および取り扱いの指示をネットワーク処理システム４０にロードするのに使用される外部装置と通信するために使用される。
【００２０】
ここで図４を参照すると、本発明によるネットワーク処理システムで使用される内容処理エンジンの一実施形態が示されている。学習状態機械４４および４６のそれぞれは、すでに論じたように同一であり、それぞれの動作について共通に論じることとし、処理エンジンの動作の説明はいずれも学習状態機械４４および４６の両方に等しく適用される。図３に示すライン・インターフェース・カード４２および３８は、物理ポートからデータを取り入れ、データをフレーム化し、次いでデータをフォーマットして高速パス・データ・バス１２６に流す。高速パス・データ・バス１２６は、すでに述べたように、好ましくはＰＯＳ−ＰＨＹ  Ｌｅｖｅｌ３、またはＡＴＭ  ＵＴＯＰＩＡ  Ｌｅｖｅｌ３型データ・バスなどの業界標準のデータ・バスである。
【００２１】
高速パス・データ・バス１２６は、トラフィック・フロー・スキャニング・プロセッサ１４０にデータを供給し、これはヘッダ・プリプロセッサ１０４および内容プロセッサ１１０を含む。データはまず、ヘッダ・プリプロセッサ１０４に送られるが、これはデータ・パケット・ヘッダに入った情報を用いていくつかの動作を行うように動作可能である。ヘッダ・プリプロセッサ１０４は、受け取ったデータ・パケットをヘッダ・プリプロセッサ１０４に関連付けられたパケット・ストレージ・メモリに格納し、ヘッダ情報をスキャンする。ヘッダ情報がスキャンされてデータ・パケットのタイプ、またはプロトコルが識別され、それを使用してルーティング情報が決定され、ＩＰヘッダの開始バイトがデコードされる。以下で論じるように、学習状態機械は、適切に機能するためには、順序の入れ替わったデータ・パケットを再配列し、データ・パケット・フラグメントの再組み立てを行う必要がある。ヘッダ・プリプロセッサ１０４は、ＡＴＭ（ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ  ｍｏｄｅ、非同期伝送モード）セルの完全なデータ・パケット（ＰＤＵ）への組み立てを行うように動作可能であり、それにはＡＴＭヘッダ情報を除去することを含んでいてもよい。
【００２２】
データ・パケットがヘッダ・プリプロセッサ１０４によって処理された後、データ・パケット、およびヘッダ・プリプロセッサによって形成されたなんらかの判断（ｃｏｎｃｌｕｓｉｏｎ）が、高速データ・パス１２６上を、トラフィック・フロー・スキャニング・エンジン１４０の他の半分、すなわち内容プロセッサ１１０に送られる。受け取ったパケットは、内容プロセッサ１１０によって処理されている間、（ここには示さない）パケット・ストレージ・メモリに格納される。内容プロセッサ１１０は、データ・パケットのペイロードの内容全体を含め、ヘッダ・プリプロセッサ１０４から受け取ったデータ・パケットの内容をスキャンするように動作可能である。ヘッダもスキャンされるが、その１つの目的は、データ・パケットの所定の属性を用いてセッションＩＤを作成することである。セッションＩＤにより、１つ１つのパケットを、対応するフロー、またはセッションに関連付けることが可能になる。
【００２３】
好ましい実施形態では、セッションＩＤは送信元アドレス、あて先アドレス、送信元ポート、あて先ポートおよびプロトコルからなるセッション情報を用いて作成されるが、ここにリストしたフィールドのどのような部分集合、またはデータ・パケット中のその他のどのようなフィールドを用いても、本発明の範囲から逸脱することなく、セッションＩＤを作成できることが当業者には理解されよう。新しいセッション情報を有するデータ・パケットを受け取ると、その特定のトラフィック・フローを識別するために、ヘッダ・プリプロセッサは一意のセッションＩＤを作成する。同じセッション情報をもつ連続するデータ・パケットのそれぞれには、そのフロー内の各パケットを識別するために、同じセッションＩＤが割り当てられる。特定のトラフィック・フローが明示的な処置によって終わりになったとき、またはトラフィック・フローがタイム・アウトしたとき、つまりそのトラフィック・フローのデータ・パケットが所定の時間内に受け取られていないときは、セッションＩＤは欠番となる（ｒｅｔｉｒｅｄ）。本明細書中ではセッションＩＤをヘッダ・プロプロセッサ１０４が作成するものとして論じているが、セッションＩＤは、内容プロセッサ１１０内を含めて、トラフィック・フロー・スキャニング・エンジン１４０内のどこで作成することも可能である。
【００２４】
任意のまたはすべてのデータ・パケットの内容は、既知の署名のデータベースと比較され、あるデータ・パケット、または複数のデータ・パケットの内容が既知の署名と一致する場合には、処理エンジンがその署名および／またはセッションＩＤに関連付けられた処置を取る。さらに、内容プロセッサ１１０は、各トラフィック・フロー１つ１つの全体について（ｔｈｒｏｕｇｈｏｕｔ）状態感知を維持するように動作可能である。言い換えれば、内容プロセッサ１１０は、あるトラフィック・フローの現在のデータ・パケットに関する状態情報に限らず、そのトラフィック・フローの全体に関する状態情報を格納するデータベースをセッションごとに維持している。これにより、ネットワーク処理システム４０は、スキャン中のデータ・パケットの内容に基づくだけでなく、トラフィック・フロー全体の内容に基づいて働くことが可能になる。内容プロセッサ１１０の詳細な動作は、図５に関して説明する。
【００２５】
トラフィック・フロー・スキャニング・エンジン１４０がパケットの内容をスキャンし、判断に達すると、そのパケット、およびヘッダ・プリプロセッサ１０４と内容プロセッサ１１０の一方または両方のこれに関連付けられた判断が、サービス品質（ＱｏＳ、ｑｕａｌｉｔｙ  ｏｆ  ｓｅｒｖｉｃｅ）プロセッサ１１６に送られる。ＱｏＳプロセッサ１１６でもまた、転送のため、固有のパケット・ストレージ・メモリにパケットが格納される。ＱｏＳプロセッサ１１６は、ネットワーク処理システム４０によって処理されたデータ・パケットのストリームに対してトラフィック・フロー管理を実行するように動作可能である。ＱｏＳプロセッサは、トラフィック管理、トラフィック・シェイピングおよびパケット変更のためのエンジンを含んでいる。
【００２６】
ＱｏＳプロセッサ１１６は、ヘッダ・プリプロセッサ１０４と内容プロセッサ１１０の一方または両方の判断を取り入れ、この判断に基づいてデータ・パケットを内部のサービス品質キューの１つに割り当てる。サービス品質キューには、キュー間の相対的な（ｒｅｌａｔｉｖｅ  ｔｏ  ｏｎｅ  ａｎｏｔｈｅｒ）優先度を割り当てることができ、あるいは装置を通るトラフィック・フローの最大または最小パーセンテージを割り当てることができる。これにより、ＱｏＳプロセッサ１１６は、ＶｏＩＰ、ビデオ、高品質および高信頼性を要件とする他のフローなどのトラフィック・フローには必要な帯域を割り当て、電子メールや一般のＷｅｂサーフィングなどの低い品質を要件とするトラフィック・フローには優先度の低いキューに残りの帯域を割り当てることができるようになる。そのキュー内に現在あるデータをすべて送信するために利用可能な帯域が、ＱｏＳエンジンによれば、ないというキューの中にある情報は、選択的に廃棄され、それにより、そのデータがトラフィック・フローから取り除かれる。
【００２７】
サービス品質キューにより、ネットワーク処理システム４０が、ＤｏＳ（ｄｅｎｉａｌ  ｏｆ  ｓｅｒｖｉｃｅ、サービス妨害）攻撃などのネットワーク攻撃をうまく処理することも可能になる。ネットワーク処理システム４０は、パケットの内容をスキャンし、その内容が、既知の送信元とあて先の間の有効なネットワーク・トラフィックを含んでいることを確認（ｖｅｒｉｆｙ）することにより、トラフィック・フローの適格性を判断する（ｑｕａｌｉｆｙ）ように働くことができる。未知の送信元からであるため、または秘密区分がなされていない新たなフローであるために、確認がされていないトラフィック・フローは、送信元が確認される、またはトラフィック・フローが有効なトラフィックであるとの秘密区分がなされるまで、優先度の低いキューに割り当てられる。ほとんどのＤｏＳ攻撃では、新たなセッション情報、または詐称された（ｓｐｏｏｆｅｄ）送信元からのデータ、または無意味なデータが送られるので、ネットワーク処理システム４０はこうしたトラフィック・フローを優先度の低いキューに割り当てることになる。こうして、ＤｏＳトラフィックは、利用可能な帯域の低いパーセンテージ（たとえば５％）以下しか与えられないことになり、これにより、攻撃者が下流にあるネットワーク装置を氾濫させることが防止される。
【００２８】
ＱｏＳプロセッサ１１６内のＱｏＳキュー（ＱｏＳプロセッサの本実施形態では６４ｋ個のキューがあるが、任意の個数のキューが使用可能である）からスケジューラ（本実施形態では１０２４個）に入力が行われ、ここからロジック・ポート（本実施形態では２５６個）に入力が行われ、ここからフロー制御ポート・マネージャ（本実施形態では３２個）にデータが送られるが、これはネットワーク装置の物理出口（ｅｇｒｅｓｓ）ポートに対応していてもよい。トラフィック管理エンジンおよびトラフィック・シェイピング・エンジンは、プログラムされたパラメータに従ってトラフィック・フローを維持するために、スケジューラおよびロジック・ポートの動作を決定する。
【００２９】
ＱｏＳプロセッサ１１６は、パケット変更エンジンも含み、これはデータ・パケットのどのフィールドにあるビットを変更、追加、または削除するようにも動作可能である。これにより、ＱｏＳプロセッサ１１６は、必要な取り扱いのために、ＤｉｆｆＳｅｒｖビットを変更し、またはデータ・パケットに適切なＭＰＬＳ  Ｓｈｉｍを付加することが可能になる。ＱｏＳプロセッサ１１６内のパケット変更エンジンは、必要ならばペイロード自体の内部の情報を変更するのに使用することもできる。次いで、データ・パケットは高速データ・パス１２６を通して送られて関連付けられたライン・インターフェースに出力され、ここでアナログ信号に変換し戻され、ネットワーク上に流される。
【００３０】
すべてのネットワーク装置と同様に、高速データ・パス１２６上ではある種のネットワーク・トラフィックは処理できない。このトラフィックは、オンボードのマイクロプロセッサ１２４によって処理する必要がある。高速パスのトラフィック・フロー・スキャニング・エンジン１４０およびＱｏＳプロセッサ１１６は、追加処理の必要なパケットをフロー管理プロセッサ１２２に送り、これはパケットを処理のためにマイクロプロセッサ１２４に転送する。すると、マイクロプロセッサ１２４は、フロー管理プロセッサ１２２を通してトラフィック・フロー・スキャニング・エンジン１４０およびＱｏＳプロセッサ１１６に通信を返す（ｃｏｍｍｕｎｉｃａｔｅ  ｂａｃｋ）。フロー管理プロセッサ１２２は、処理エンジン４０を通るトラフィック・フローの性質に関するデータおよび統計を収集するようにも動作可能である。ブリッジ１４６は、ＰＣＩバスの氾濫中に生じる可能性のあるデータの喪失を防ぐ目的で、要素間で使用されてＰＣＩバス１４８に対するバッファとして働く。
【００３１】
図４の説明からわかるように、学習状態機械４４および４６により、受け取った任意のまたはすべてのデータ・パケットの内容全体を、既知の署名のデータベースと比べながら（ａｇａｉｎｓｔ）スキャンできるようになる。スキャンされた内容は、可変のまたは任意のどのような長さでもよく、パケット境界を越えることさえ可能である。学習状態機械４４または４６の機能により、インテリジェントで状態感知のネットワーク装置が可能となり、そのネットワーク装置は、そのデータ・パケットの内容だけでなく、同じフローのそれまでのデータ・パケットの内容にも基づいてデータ・パケットに対し処理を行う（ｏｐｅｒａｔｅ  ｏｎ）機能をもつようになる。
【００３２】
こうした機能により、学習状態機械４４および４６は、法執行機関の令状に含まれる条件（ｃｒｉｔｅｒｉａ）などの所定の条件に一致するネットワーク・トラフィックを探すようにプログラムすることができる。そのトラフィックは、識別されてしまえば、その後その全体または部分を複製し、法執行機関による査察（ｒｅｖｉｅｗ）のためにコピーを他の場所に別ルートで送ることができる。
【００３３】
ここで図５を参照すると、図４の内容プロセッサ１１０がさらに詳細に示されている。上で説明したように、内容プロセッサ１１０は、図４のヘッダ・プリプロセッサ１０４から転送されたデータ・パケットの内容をスキャンするように動作可能である。内容プロセッサ１１０は、３つの別々のエンジン、キュー・エンジン３０２、コンテキスト・エンジン３０４、および内容スキャニング・エンジン３０６を含む。
【００３４】
内容プロセッサ１１０は、ペイロードの内容のスキャンを行い、またパケット境界を越えてスキャンする能力を持つ以上、セッションごとに、フラグメント化されたパケットの再組み立てを行い、順序の入れ替わったパケットを再配列できなければならない。再配列および再組み立ては、キュー・エンジン３０２の機能である。キュー・エンジン３０２は、データを高速パス・データ・バス１２７から、高速パス・インターフェース３１０を用いて受け取る。次いで、パケットはパケット再配列／再組み立てエンジン３１２に送られるが、これはパケット・メモリ・コントローラ３１６を使用してパケットをパケット・メモリ１１２に格納する。再配列／再組み立てエンジン３１２は、また、リンク・リスト・コントローラ３１４およびリンク・リスト・メモリ３１８を使用して、処理のためにデータ・パケットを再配列するのに使用する詳細なリンク・リストを作成する。データ・パケットは、キュー・エンジン３０２の内部で、格納のために２５６バイトのブロックに分割される。セッションＣＡＭ３２０は、内容プロセッサ１１０のキュー・エンジン３０２が生成したセッションＩＤを格納することができる。再配列／再組み立てエンジン３１２は、セッションＩＤを使用して、同じデータ・フローに属するデータ・パケットをリンクする。
【００３５】
要求される高いスループット速度を得るためには、内容プロセッサ１１０は、複数のセッションからのパケットを同時に処理できなければならない。内容プロセッサ１１０は、あるセッションＩＤの関連づけられた唯一のトラフィック・フローにそれぞれが属する、複数のデータ・パケットからのデータのブロックを処理する。本発明の好ましい実施形態では、内容プロセッサ１１０のコンテキスト・エンジン３０４は、唯一のトラフィック・フローからの６４の異なるデータ・パケットの６４バイト・ブロックを同時に処理する。６４の異なるデータ・フローの６４バイト・ブロックのそれぞれが、内容プロセッサにとって単一のコンテキストを表している。内容プロセッサ１１０に対して同時に存在するコンテキストすべてのスケジューリングおよび管理は、コンテキスト・エンジン３０４が取り扱う。
【００３６】
コンテキスト・エンジン３０４は、キュー・エンジン３０２とともに動作して、あるコンテキストが処理を終え、内容プロセッサ１１０から送信されてしまったときに新しいコンテキストを選択する。新規空きコンテキスト／新規空きブロックエンジン（ｎｅｘｔ  ｆｒｅｅ  ｃｏｎｔｅｘｔ／ｎｅｘｔ  ｆｒｅｅ  ｂｌｏｃｋ  ｅｎｇｉｎｅ）３３０は、リンク・リスト・コントローラ３１４と通信して、あるデータ・パケットの処理すべき次のブロックを識別する。内容プロセッサ１１０はデータ・パケットを順番通りにスキャンしなければならないので、ある特定のセッションＩＤを有するデータ・パケットまたはトラフィック・フローは、一時に１つしかアクティブになることができない。アクティブ制御リスト３３２は、アクティブなコンテキストをもつセッションＩＤのリストを保持しており、新しいコンテキストをこのアクティブ・リストと比べながら（ａｇａｉｎｓｔ）検査して、新しいコンテキストが非アクティブのセッションＩＤであるようにする。新しいコンテキストが識別されると、パケット・ローダ３４０が、新規空きコンテキスト／新規空きブロックエンジン３３０が取り出したリンク・リスト情報を使用して、パケット・メモリ・コントローラ３１６を用いてパケット・メモリ１１２からデータの必要なブロックを取り出す。次いで、新しいデータ・ブロックは、コンテキスト・バッファ３４２のうちの空いているバッファにロードされ、ここで内容スキャニング・エンジン・インターフェース３４４によって取り出されるのを待つ。
【００３７】
内容スキャニング・エンジン・インターフェース３４４は、内容エンジン３０４と内容スキャニング・エンジン３０６の間のインターフェースである。内容スキャニング・エンジン３０６に、スキャンすべき次のコンテキストのための余地があると、内容スキャニング・エンジン・インターフェース３４４が内容スキャニング・エンジン３０６内のストリング・プリプロセッサ３６０に新しいコンテキストを送る。ストリング・プリプロセッサ３６０は、ホワイト・スペース（ｗｈｉｔｅ  ｓｐａｃｅ）（すなわち、スペース、タブ、改行）を単一のスペースに圧縮してスキャニングを簡単にするなどの操作を行うことにより、コンテキストを簡単にするように動作可能である。ストリング・プリプロセッサ３６０が終了すると、コンテキストは、コンテキスト・バッファ３６２にあるバッファの１つにロードされ、その後ストリング比較部３６４によって取り出される。ストリング比較部３６４は、署名メモリ３６６への入出力を制御する。署名メモリ３６６は、潜在的にはそれぞれに複数のコンテキストを取り扱う能力があり、ここでは４つを示しているが、任意の個数を使用して、内容スキャニング・エンジン３０６を通過するスループットを増加または減少させることができる。本実施形態では、署名メモリ３６６のそれぞれに、一時に４つのコンテキストを処理する能力がある。
【００３８】
署名メモリ３６６の１つは、スケジューラ３６４によってコンテキストを割り当てられ、次いで、コンテキストの上位のビット（ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔｓ）を、署名メモリ３６６内にある既知のストリングのデータベースと比較する。署名メモリ３６６は、コンテキストと既知の署名の１つとの間に潜在的に一致するものがあるかどうか、上位のビットを用いて判定するが、これは、ある特定の署名に一意のビットである。潜在的な一致があった場合、コンテキストおよび潜在的に一致したストリングは、葉ストリング比較部３６８に送られ、これは葉ストリング・メモリ３７０を使用して、コンテキストと潜在的に一致したストリングとのビットごとの比較を行う。４つのストリング・メモリ３６６および２つの葉ストリング・メモリ３７０を示してあるが、任意の個数のストリング・メモリ３６６および葉ストリング・メモリ３７０を使用して、内容プロセッサ１１０のスループットを最適化することができる。
【００３９】
次いで、内容スキャニングの判断が、ペイロード・スキャニング・インターフェース３４４に、おそらくスキャンすべき新しいデータに対する要求とともに送り返される。内容スキャニングの判断は、起こりうるいくつかの判断のいずれかである。スキャニングがまだ判断に達しておらず、スキャニングを続行するのに新しいデータ・パケットからのデータをさらに必要としていることがあるが、その場合には、中間状態と呼ぶことの可能な、トラフィック・フローの状態、およびなんらかの不完全なスキャンが、シーケンス番号、カウンタほかなどの他の適切な情報とともに、セッション・メモリ３５４に格納される。署名メモリ３６６が達する判断が、スキャニングが完了して、一致するものがあったまたはなかったというものである可能性もあるが、この場合には、データ・パケットおよび判断が、送信エンジン３５２に送られて図４のＱｏＳプロセッサ１１６に渡される。スキャニングにより、データ・パケットは、さらに処理を行うために、図４のマイクロプロセッサ１２４に転送する必要があるという決定がなされ、その結果、データ・パケットはホスト・インターフェース３５０に送られ、ホスト・インターフェース・バス３７２に流される、ということもある。普通でない（ｏｄｄ）パケットを取り扱うほかに、ホスト・インターフェース３５０は、マイクロプロセッサ１２４に内容エンジン３０４内の任意のバッファまたはレジスタへの書き込みを許すことによって、マイクロプロセッサ１２４が内容プロセッサ１１０の動作のどのような側面も制御できるようにする。
【００４０】
状態情報は、セッション・メモリ３５４に格納され、特定のトラフィック・フローに関連付けられたデータのスキャンの後、必要に応じて更新される。状態は、中間的状態であることもある。これは、マッチングが不完全であり、スキャニングを続けるにはデータがさらに必要であることを意味している。また、状態は、部分的状態であることもある。これは、特定の判断を生成するのに必要な複数のイベントのうちの１つまたは複数のイベントが起きたことを示す。状態は、最終的状態であることもある。これは、関連付けられたトラフィック・フローに対する最終的な判断に達しており、スキャニングがそれ以上必要ないことを示す。あるいは、状態は、内容プロセッサ１１０にプログラムされる際に必要とされる他のなんらかの状況を表しているものであってもよい。各トラフィック・フローに対する状態情報は、どのような形であれ、図３のネットワーク処理システム４０のインテリジェンスを表すものであり、この状態情報により、ネットワーク処理システムは、スキャンされた情報だけでなく、各トラフィック・フローに関してそれまでにスキャンされたすべての情報に対しても働く（ａｃｔ  ｏｎ）ことができるようになる。
【００４１】
送信エンジン３５２、ホスト・インターフェース３５０、セッション・メモリ３５４の使用を制御するセッション・メモリ・コントローラ３４８、およびカウンタの増分または減分、ポインタの移動ほかに使用される汎用算術論理演算ユニット（ＧＰ−ＡＬＵ、ｇｅｎｅｒａｌ−ｐｕｒｐｏｓｅ  ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）の動作は、スクリプト・エンジン３３４によって制御される。スクリプト・エンジン３３４は、必要に応じてレジスタ３３８を用いて、スクリプト・メモリ３３６に格納されたプログラム可能なスクリプトを実行するように動作する。スクリプト・エンジン３３４は、制御バス３７４を使用して、コンテキスト・エンジン３０４内の要素のいずれかに命令を送る。スクリプト・エンジン３３４または内容プロセッサ１１０内の他のエンジンは、スキャンされたデータ・パケットの内容を変更する機能を有する。たとえば、内容プロセッサ１１０がスキャンした電子メールにウイルスが検出されることがあるが、その場合には、内容プロセッサは感染した添付ファイル（ａｔｔａｃｈｍｅｎｔ）のビットを変更するように働き、本質的に電子メールを無害にすることができる。
【００４２】
内容プロセッサ１１０の機能は、いくつかの点で独特である。内容プロセッサ１１０は、１つまたは複数の任意のデータ・パケットの内容をスキャンして、１つの署名または一連の署名として表されうるなんらかの情報を探す機能を有する。署名はどのような長さでもよく、パケット内のどこで始まりまた終わっていてもよく、パケット境界を越えていてもよい。さらに、内容プロセッサ１１０は、各トラフィック・フローの流れているうちに一致した任意のまたはすべての署名を表すそのトラフィック・フローの状態情報を格納することによって、トラフィック・フロー１つ１つのすべての全体にわたって状態感知を維持することができる。既存のネットワーク・プロセッサは、各データ・パケット内のある特定の位置にある固定長の情報を探するように動作するのであり、パケット境界を越えた参照を行うことができない。既存のネットワーク・プロセッサは、パケット中のある特定の位置にある固定長の情報を参照できるというだけで、あるレベルのパケット・ヘッダ内の識別可能な位置に含まれる情報に対して働くだけに限定され、データ・パケットのペイロードを調べられもしなければ、トラフィック・フロー全体の状態情報に基づいて、またはペイロードを含むデータ・パケットの内容に基づいてさえ、決定を行うことはもちろんできない。
【００４３】
ここで図６を参照すると、プロセッサの構成を、またより重要には、メモリ・イメージを作成するソフトウェアの図が示されている。このメモリ・イメージは、内容プロセッサ１１０内で、各パケットおよびフローが比較される署名のデータベースを形成する。メモリ・イメージおよび構成の作成に使用されるソフトウェアは、図３に示すネットワーク処理システムとは別のサーバ上で稼動する。メモリ・イメージおよび構成は、別のサーバ上で作成されると、送信され、図７に関して説明するネットワーク処理システムにダウンロードされる。
【００４４】
図３のネットワーク処理システムは、それが実行するネットワーク・ポリシを設定するように、ユーザによってプログラム可能である。このプログラミングは、すでに述べたように、別のサーバ上にロードされるポリシ・イメージ・ビルダ５００を用いて行われる。ポリシ・イメージ・ビルダ５００は、グラフィカル・ユーザ・インターフェース（ＧＵＩ、ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）５０２およびコマンド・ライン・インターフェース（ＣＬＩ、ｃｏｍｍａｎｄ  ｌｉｎｅ  ｉｎｔｅｒｆａｃｅ）５０４を含む。ＧＵＩ５０２とＣＬＩ５０４の機能は同じであり、両者はプログラマが好きなほうのインターフェースを選択できるように提供されている。ポリシ・ゲートウェイ構成データベース５１０は、メモリ・サイズ、ポート番号、ライン・インターフェースのタイプほかなどの情報を含めて、プログラマがアクセス権を有する各ポリシ・ゲートウェイの構成に関する情報を保持し、ＣＬＩインタープリタ５０８およびＧＵＩプログラム５０６と対話を行って、既存の処理エンジン構成ファイル５１４および既存のポリシ記述５１２を保持するデータベースに新たなユーザ・プログラムを送る。次いで、新たなユーザ・プログラムならびに既存の構成および記述は、ポリシ・オブジェクト言語（ＰＯＬ、Ｐｏｌｉｃｙ  Ｏｂｊｅｃｔ  Ｌａｎｇｕａｇｅ）コンストラクタ５１６によってオブジェクト・ライブラリ５１８と結合される。ＰＯＬコンストラクタ５１６は、プログラムおよび構成情報を入力とし、ネットワーク処理システムの１つ１つの構成要素用にいくつかのマップおよび構成ファイルを出力する。
【００４５】
まず、ネットワーク処理エンジンの内部のメモリ・ロケーションのマップが作成され、メモリおよびカウンタ・マップ５２０に格納される。ネットワーク処理システムは完全にプログラム可能なので、メモリ・ロケーション、カウンタおよびレジスタの１つ１つが、このプログラムによって機能を割り当てられる。この割り当てのマップがなければ、ネットワーク処理システムから読み出されるデータはその後すぐに理解不能となろう。作成されたメモリおよびカウンタ・マップによって、ネットワーク処理システムによって作成されたどのようなデータも後で解釈できるようになる。
【００４６】
さらに、ＰＯＬコンストラクタ５１６は、ネットワーク処理システムの各構成要素ごとに構成ファイルを作成する。ＱｏＳ構成ファイル５２８は、作成され、ＱｏＳコンパイラ５３０に送られ、これを使用してＱｏＳ構成イメージ５４６が作成される。ヘッダ・プリプロセッサ（ＨＰＰ）プログラム５２６は、作成され、ＨＰＰコンパイラ５３２に送られ、そこでＨＰＰバイナリ・ファイル５４４が作成される。同様に、コンテキスト・エンジン・スクリプト・ファイル５２４は、ＰＯＬコンストラクタ５１６によって作成され、コンテキスト・エンジン・スクリプト・コンパイラ５３４によってコンパイルされて、コンテキスト・エンジン・バイナリ・ファイル５４２が作成される。最後に、ネットワーク・ポリシ記述を含む署名マップ・ファイル５２２が作成され、署名アルゴリズム・ジェネレータ５３６へと送られ、ここで、ネットワーク処理システムのメモリをより効率よく使用する目的で、署名マップは効率のよい署名メモリ・マップ５４０へと圧縮される。このプログラムでは、部分的署名メモリ・マップ５３８を使用することによって、署名メモリの部分的更新も可能であり、署名メモリを全面的にマップし直す必要がない場合に、これを使用して署名メモリをわずかな部分だけ変更することができる。
【００４７】
次いで、この４本のバイナリ・ファイル、すなわちＱｏＳ構成ファイル５４６、ＨＰＰバイナリ・ファイル５４４、コンテキスト・エンジン・バイナリ・ファイル５４２、および署名メモリ・マップ５４０（または、適切な場合には部分的署名メモリ・マップ５３８）が、処理エンジン構成ソース・ファイル５５２、ポリシ記述ソース・ファイル５５０、ならびにカウンタおよびメモリ・マップ・ソース・ファイル５４８とともに結合される。この結合は処理エンジン・イメージ・ビルダ５５４によって行われ、このビルダはポリシ・ゲートウェイ・イメージ・ロード・ファイル５５６を作成する。ポリシ・ゲートウェイ・イメージ・ロード・ファイル５５６は、別のサーバから実際のネットワーク処理システムに送られるファイルであって、稼動に必要な情報およびプログラムをネットワーク処理システムに提供する。ソース・ファイルはポリシ・ゲートウェイ・イメージ・ロード・ファイル５５６に含まれており、万一、ネットワークまたはシステムのどこかの部分に何かが起きた場合、他の場所にあるソース・ファイルをトレースし直さなくても、ポリシ・ゲートウェイ・イメージ・ロード・ファイルだけからこの４本のバイナリ・ファイルを再構築でき理解できるようになっている。
【００４８】
ポリシ・ゲートウェイ・イメージ・ロード・ファイル５５６に何が含まれているかがはっきりわかるように、構成要素の１つ１つが処理エンジン・データ５５８、制御プロセッサ・データ５６０、および管理プロセッサ・データ５６２として示されている。処理エンジン・データ５５８は、図３の左側および右側処理エンジン４４および４６用の左側および右側処理メモリ・マップをそれぞれ含み、それが図４に示す内容プロセッサ１１０の署名メモリにロードされる。処理エンジン・データ５５８は、また、図４に示すそれぞれ左側および右側処理エンジン４４および４６に対するＱｏＳプロセッサ１１６用の左側および右側構成ファイルを含む。そして、処理エンジン・データ５５８は、それぞれ左側および右側処理エンジン４４および４６に対するヘッダ・プリプロセッサ１０４用の左側および右側ヘッダ・プリプロセッサ・イメージ・ファイルを含む。
【００４９】
制御プロセッサ・データ５６０は、左側および右側処理エンジンのそれぞれにあるマイクロプロセッサ１２４にそれぞれロードされる左側および右側カウンタ・メモリ・マップを含む。最後に、管理プロセッサ・データ５６２は、処理エンジン構成ソース５５２およびポリシ・ソース５５０に関して上に述べた、左側および右側構成ソースおよび左側および右側ポリシ・ソースを含む。これらのファイルは、図３に示す管理モジュール４８上に格納される。
【００５０】
ここで図７を参照して、ネットワーク処理システムとの通信のしくみ（ｍｅｃｈａｎｉｃｓ）を示す図を説明する。図７に示す図を実装するプログラムも、図６に示したポリシ・イメージ・ビルダ５００を含む別のサーバ上にある。上に述べたように、ＣＬＩ５０４およびＧＵＩ５０２は、ポリシ・イメージ・ビルダ５００が構成ファイル５１０とともにこれを使用して、ポリシ・ゲートウェイ・イメージ・ファイル５５６とメモリおよびカウンタ・マップ５２０の両方が作成される。ポリシ・ゲートウェイ・イメージ・ファイル５５６は、イメージ・リポジトリ・マネージャ５７０の入力となり、イメージ・リポジトリ・データベース５７２にロードされる。イメージ・リポジトリ・データベース５７２は、制御中のすべてのネットワーク処理システム用のポリシ・ゲートウェイ・イメージ・ファイルをすべて保持する。ネットワーク処理システム（ＮＰＳ、ｎｅｔｗｏｒｋ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍ）インターフェース・プログラム５８０は、管理中のネットワーク処理システムＮＰＳ００１番、ＮＰＳ００２番、およびＮＰＳ００ｎ番のそれぞれとの直接の通信を担当する（ｒｅｓｐｏｎｓｉｂｌｅ）。ＮＰＳ００ｎ番によって示すように、任意の数のネットワーク管理システムが１台の別のサーバから管理可能である。イメージ・リポジトリ・プログラム５７４は、イメージ・リポジトリ・データベース５７２から正しい（ｐｒｏｐｅｒ）イメージ・ファイルを読み込み、それをＮＰＳインターフェース・プログラム５８０に送る。ＮＰＳインターフェース・プログラム５８０は、認証プログラム５８４を用いて各ネットワーク処理システムを認証するように働き、次いでポリシ・ゲートウェイ・イメージ・ファイルを適切なネットワーク処理システムに送る。
【００５１】
ＮＰＳインターフェース・プログラム５８０は、イメージ・ファイルをネットワーク処理システムにプッシュするのに加えて、各ネットワーク処理システムに定期的に要求を送って、その統計およびイベントの情報をアップロードすることによって、各ネットワーク処理システムから統計およびイベントのデータをプルするように働く。この情報は、ＮＰＳインターフェース・プログラム５８０が受け取ったときに、統計的データベース管理部５８６に送られ、そこで統計データベース５８８に格納される。統計データベース・マネージャ５９０は、メモリおよびカウンタ・マップ５２０からの情報を使用して、統計データベース５８８を解読するのに必要な情報を統計構成データベース５９２に置く。すると、統計データベース５８８および統計構成データベース５９２は、これを使用して課金システムに情報を入力してサービスに対する課金を行い、ネットワーク管理システムに情報を入力してネットワークの動作および効率を分析することができる。
【００５２】
ここで図８を参照して、ＩＰネットワーク上のトラップ・アンド・トレース機能を実装する方法６００を説明する。この方法は、ブロック６０２に示すように、ネットワーク処理システムが新しいパケットを受信することから始まる。ブロック６０４で表すように、図５のキュー・エンジン３０２を用いて、セッションＩＤの決定に使用する所定の属性がそのパケットから取り出され、セッションＩＤが決定される。次いでプロセスは、ブロック６０６で、そのパケットのセッションＩＤが、そのパケットがネットワーク処理システムに既知のあるフローに属すことを示す、既存のセッションＩＤに対応するかどうかを判定する。
【００５３】
セッションＩＤが既存のセッションＩＤと一致しなかった場合、プロセスはブロック６０８に移り、処理すべき新しいフローを表す新しいセッションＩＤが格納される。次いで方法はブロック６１０に移り、ここで本発明のネットワーク処理システム、特に図５に関して説明した内容スキャニング・エンジン３０６によってパケットがスキャンされる。パケットがスキャンされると、プロセスはブロック６１２に移り、パケットの内容が監視基準（ｓｕｒｖｅｉｌｌａｎｃｅ  ｃｒｉｔｅｒｉａ）のいずれかとマッチするかが判定される。監視基準とのマッチングは、そのパケットをどのように処理するかを決定するのにさらにマッチングを必要とする部分的マッチングを含んでいてもよい。全体的にせよ部分的にせよ、パケットが監視基準にマッチしなかった場合、プロセスはブロック６１８に移り、セッション情報が格納され、その後、ブロック６３８に示すように、パケットはネットワーク処理システムによって転送される。
【００５４】
ブロック６１２に戻って、パケットの内容が検索条件（ｓｅａｒｃｈ  ｃｒｉｔｅｒｉａ）にマッチした場合、プロセスはブロック６１４に移って、監視のタイプが決定されているかどうか判定する。現在、法執行機関には、２つのタイプの令状が発行されている可能性がある。法執行官（ｌａｗ  ｅｎｆｏｒｃｅｍｅｎｔ  ｏｆｆｉｃｉａｌｓ）が完全な通信を傍受することが可能であるか、通信の完全な内容ではなく、呼またはセッションの送信元またはあて先などの識別情報を傍受することだけが可能であるかである。令状によって通信の完全な傍受が許可されている場合、プロセスはブロック６２４に移り、パケットはコピーまたは複製されるが、処理のため指定されたサイトに送られ、または後で取り出し処理するために保存される。
【００５５】
識別情報だけの傍受が許可されていると判定された場合、プロセスはブロック６１６に移って、パケットが傍受に必要な完全な１組の識別情報を含むかどうかが判定される。そうでない場合、プロセスはブロック６１８に移って、この新しいセッションのセッション情報を格納するエントリーが作成され、そうしてブロック６３８にあるように、パケットが転送される。ブロック６１６で識別情報が完全であると判定された場合、プロセスはブロック６２２に移って、識別情報は後で取り出すために保存され、または処理のため指定された場所に転送される。次に、このプロセスでは、セッション情報が格納され（ブロック６１８）、パケットが転送される（ブロック６３８）。
【００５６】
ここでブロック６０６に戻って、パケットがすでに識別されたセッションに属する場合について検討する。一度、パケットが既存のセッション、またはフローに関連付けられると、ブロック６２６に示すように、そのフローのセッション情報が取り出される。セッション情報には、それまでのパケットからなされたそのフローについての決定が含まれている。次に、プロセスは、ブロック６２８に移り、そこでは受け取ったセッション情報のコンテキストの中でパケットがスキャンされる。次に、プロセスのブロック６３０で、セッション情報と併せて、スキャンされたパケットが監視基準にマッチするかどうかが判定される。そうでない場合、プロセスは６２０に移って、パケットの転送前にセッション情報が更新される。
【００５７】
セッション情報と併せて、スキャンされたパケットが検索条件にマッチしなかった場合、プロセスはブロック６３２に移り、令状のタイプが判定される。令状が完全な通信の傍受を許可している場合、プロセスはブロック６３４に移り、ブロック６２４に関して述べたように、パケットは送信または格納のためにコピーされる。識別情報だけの傍受が許可されている場合、その代わりにプロセスはブロック６３２から６３６に移り、識別情報のすべてが得られているかどうかが判定される。識別情報が得られている場合には、ブロック６３８に示すように、ブロック６２２に関して述べたのと同様に、識別情報は格納または送信される。ブロック６３４および６３８で傍受された情報が格納または送信された後で、プロセスはブロック６２０でセッション情報を更新し、その後パケットが転送される（ブロック６３８）。
【００５８】
一部のＩＰ通信、特にＳＩＰプロトコルを使用するＶｏＩＰでは、データ・フローと制御フローが別々である。制御フローは、実際の通信がデータ・フロー上で搬送される間、シグナリング、設定（ｓｅｔｕｐ）、解放（ｔｅａｒ  ｄｏｗｎ）および他の関連する機能を実行するのに使用される。たとえば、ＳＩＰ  ＶｏＩＰの呼では、データ・フロー、または呼の音声内容に対するパラメータを設定するために、制御フロー中でＩＮＶＩＴＥが使用される。呼が完了すると、解放メッセージが制御フロー上に送られて、データ・フローの終わりが知らされる（ｓｉｇｎａｌ）。本発明のネットワーク処理システムでは、こうした通信の両方向の制御フローとデータ・フローを、セッション状態データベースを用いてリンクすることが可能である。こうすると、制御フロー中に検索条件が存在すれば、データ・フローがネットワーク処理システムによって傍受されるようにすることができる。上述のように、こうした機能により、全体にせよ、呼の識別情報など通信のなんらかの部分集合にせよ、ネットワーク上を流れるＩＰ通信の監視が可能になる。
【００５９】
図３および４に関して説明したヘッダ・プリプロセッサ、ＱｏＳプロセッサ、フロー管理プロセッサは、ここに記載した機能を実行する能力のある、適当な、どのプロセッサであってもよいが、好ましい実施形態では、ヘッダ・プリプロセッサは高速パターン・プロセッサ（ＦＰＰ、Ｆａｓｔ  Ｐａｔｔｅｒｎ  Ｐｒｏｃｅｓｓｏｒ）、ＱｏＳプロセッサはルーティング・スイッチ・プロセッサ（ＲＳＰ、Ｒｏｕｔｉｎｇ  Ｓｗｉｔｃｈ  Ｐｒｏｃｅｓｓｏｒ）、フロー管理プロセッサはＡＳＩプロセッサであり、これらはすべて、テキサス州オースチンにあるルーセント・テクノロジーズのアギア部門（Ａｇｅｒｅ  Ｄｉｖｉｓｉｏｎ  ｏｆ  Ｌｕｃｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ａｕｓｔｉｎ  Ｔｅｘａｓ）の製品である。図３に関して説明したマイクロプロセッサおよび図４の管理モジュールは、モトローラ・インコーポレーテッド（Ｍｏｔｏｒｏｌａ，Ｉｎｃ．）からのＰｏｗｅｒＰＣ系列のマイクロプロセッサ、またはインテル・コーポレーション（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）から市販のＸ８６またはペンティアム（登録商標）系列のマイクロプロセッサを含む、適当な、どのマイクロプロセッサであってもよい。特定のプロトコル、実装、および材質について特に言及を行ったが、このネットワーク処理システムは、「それ自体で独立の」（ｂｕｍｐ−ｉｎ−ｔｈｅ−ｌｉｎｅ）機器としてもルーティング機器としても、プロトコルとは独立に、異なる様々な実装において、本発明の範囲を逸脱することなく機能できることを当業者は理解すべきである。
【００６０】
本発明を詳細に説明したが、その最も広い形における本発明の趣旨と範囲を逸脱することなく、本発明に様々な変更、置換、および改変を加えることができることを、当業者は理解すべきである。
【図面の簡単な説明】
【００６１】
【図１】本発明がその中で動作できる例示的なネットワーク構造を示すネットワーク・トポロジーの図である。
【図２】本発明で使用するフロー、パケットおよびブロックの概念を示す図である。
【図３】本発明によるネットワーク処理システムの構成図である。
【図４】図３に示す処理エンジンの構成図である。
【図５】図４の内容プロセッサの構成図である。
【図６】本発明のネットワーク処理システムで使用するイメージおよび構成ファイルの作成に使用される、イメージ・ビルダ（ｉｍａｇｅ  ｂｕｉｌｄｅｒ）の図である。
【図７】本発明のネットワーク処理システムにイメージ・ファイルをロードし、ネットワーク処理システムから統計情報およびイベント情報を取り出すための機構を示す図である。
【図８】本発明がＩＰ通信の傍受に使用する方法を示す流れ図である。
【図１】
2006513590.tif 000003
【図２】
2006513590.tif 000004
【図３】
2006513590.tif 000005
【図４】
2006513590.tif 000006
【図５】
2006513590.tif 000007
【図６】
2006513590.tif 000008
【図７】
2006513590.tif 000009
【図８】
2006513590.tif 000010
【国際調査報告】
2006513590.tif 000011