(57)【要約】【課題】高精度なトラフィック計測アナライザを提供する。【解決手段】本発明で提供する受動型の計測プラットフォーム（アナライザ）は、ネットワークルーター／スイッチ内に内蔵されるか、またはネットワークルーター／スイッチと一緒に使用されることが可能である。この受動型計測プラットフォームは、ＯＳＩデータパケットを受信し、この完全なＯＳＩデータパケットからＯＳＩ第３層パケットを抽出し、このＯＳＩ第３層パケットからヘッダを抽出し、ＯＳＩ第３層パケットに対応する一意のパケットラベルを生成し、タイムスタンプを生成し、これらヘッダ、パケットラベル、及びタイムスタンプを含むレコードをパケットごとに生成する。タイムスタンプは、ＧＰＳ信号から導出され、周波数ドリフトおよび同期に関連する問題が極小化される。ネットワークの帯域幅を節約するべく、プッシュ及びプルモデルの両方のデータ検索を使用している。【選択図】図２
2004312734.tif 000002
【特許請求の範囲】
【請求項１】
データを送受信する外部インターフェイスモジュールと、
前記外部インターフェイスモジュールに接続されたフレーマ／ＭＡＣと、
ネットワークプロセッサおよびネットワークメモリであって、該ネットワークプロセッサが前記フレーマ／ＭＡＣに接続されている、ネットワークプロセッサおよびネットワークメモリと、
前記ネットワークプロセッサと双方向接続されている制御プレーンＣＰＵ及び制御プレーンメモリと、
送受信データポート及び前記フレーマ／ＭＡＣのうちの１つに接続された計測アナライザと、
を有するルーター／スイッチ。
【請求項２】
前記計測アナライザは、
ＯＳＩデータパケットを受信し、ＯＳＩ第３層／第４層データを出力するヘッダ抽出器と、
前記ＯＳＩ第３層／第４層データを受信し、ヘッダとパケットラベルを出力するパケットプロセッサと、
前記ＯＳＩデータパケットの受信を記録し、ＧＰＳと同等の精度を有するタイムスタンプを生成するタイムスタンプ生成器と、
前記ヘッダ、パケットラベル、及びタイムスタンプを受信し、計測データパケットを生成する計測パケット生成器と、
を有する請求項１記載のルーター／スイッチ。
【請求項３】
前記タイムスタンプ生成器がフェイズロックループを含む、請求項２記載の計測アナライザ。
【請求項４】
前記フェイズロックループが絶対タイムスタンプを生成する、請求項３記載の計測アナライザ。
【請求項５】
前記フェイズロックループが到達間隔タイムスタンプを生成する、請求項３記載の計測アナライザ。
【請求項６】
前記タイムスタンプが５００ナノ秒以内の精度を有する絶対時刻である、請求項２記載の計測アナライザ。
【請求項７】
前記ヘッダ抽出器が、
前記ＯＳＩデータパケットから前記ＯＳＩ第３層パケットを抽出するＯＳＩ第２層デカプスレータと、
前記ＯＳＩ第３層パケットを受信し、前記ＯＳＩ第３層／第４層パケットに対応するヘッダを出力するレイヤ３／レイヤ４抽出器と、
を含む請求項２記載の計測アナライザ。
【請求項８】
前記パケットラベルが周期冗長検査アルゴリズムを使用して生成される、請求項２記載の計測アナライザ。
【請求項９】
ＯＳＩデータパケットを受信し、ＯＳＩ第３層／第４層データを出力するヘッダ抽出器と、
前記ＯＳＩ第３層／第４層データを受信し、ヘッダとパケットラベルを出力するパケットプロセッサと、
前記ＯＳＩデータパケットの受信を記録し、ＧＰＳと同等の精度を有するタイムスタンプを生成するタイムスタンプ生成器と、
前記ヘッダ、パケットラベル、及びタイムスタンプを受信し、計測データパケットを生成する計測パケット生成器と、
を有する計測アナライザ。
【請求項１０】
前記タイムスタンプ生成器がフェイズロックループを含む、請求項９記載の計測アナライザ。
【請求項１１】
前記フェイズロックループが絶対タイムスタンプを生成する、請求項１０記載の計測アナライザ。
【請求項１２】
前記フェイズロックループが到達間隔タイムスタンプを生成する、請求項１０記載の計測アナライザ。
【請求項１３】
前記タイムスタンプが５００ナノ秒以内の精度を有する絶対時刻である、請求項９記載の計測アナライザ。
【請求項１４】
前記ヘッダ抽出器が、
前記ＯＳＩデータパケットから前記ＯＳＩ第３層パケットを抽出するＯＳＩ第２層デカプスレータと、
前記ＯＳＩ第３層パケットを受信し、前記ＯＳＩ第３層／第４層パケットに対応するヘッダを出力する第３層／第４層抽出器と、
を含む請求項９記載の計測アナライザ。
【請求項１５】
前記パケットラベルが周期冗長検査アルゴリズムを使用して生成される、請求項９記載の計測アナライザ。
【請求項１６】
ネットワーク分析の方法であって、
ＯＳＩデータパケットを受信するステップと、
前記ＯＳＩデータパケットからＯＳＩ第３層を抽出するステップと、
前記ＯＳＩ第３層／第４層からヘッダを抽出するステップと、
前記ヘッダに対応するパケットラベルを生成するステップと、
ＧＰＳと同等の精度を有するタイムスタンプを生成するステップと、
前記ヘッダ、パケットラベル、及びタイムスタンプを含むデータパケットを生成するステップと、
を有する方法。
【請求項１７】
前記タイムスタンプを生成するステップが、絶対タイムスタンプを生成するステップを含む、請求項１６記載の方法。
【請求項１８】
前記タイムスタンプを生成するステップが、到達間隔タイムスタンプを生成するステップを含む、請求項１６記載の方法。
【請求項１９】
前記ＯＳＩデータパケットを受信するステップが、サーバーが検索に対してデータを提供できることをクライアントに通知するステップを含む、請求項１６記載の方法。
【請求項２０】
前記ＯＳＩデータパケットを受信するステップが、サーバーがデータをクライアントに自動伝送するステップを含む、請求項１６記載の方法。
【請求項２１】
前記データパケットを生成するステップが、周期冗長検査アルゴリズムを使用して前記パケットラベルを生成するステップを含む、請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークルーター／スイッチに関する。より詳細には、受動型の計測アナライザに関する。
【背景技術】
【０００２】
インターネットの成長により、通信事業者には、前例のない速度で拡大する通信容量がもたらされた。これらのネットワークを管理するためのツールは、従来、広く利用することができなかったか、または、それらに対するアクセスが容易ではなかった。
【０００３】
ＩＰネットワークの重要性がそのサイズと共に拡大するに伴って、サービスの保証が重要なものになっている。現在のソリューションは、選択したネットワークポイントにおいて機器に「ボルトで留めなければならない」大きく且つ高価な外部プローブを必要としている。これは、スケーラブル（scalable、拡大縮小できる）ではなく、電力と空間の要件に重い負担をも強いており、長期的に許容可能なソリューションとはいえない。
【０００４】
ＩＰパケットネットワークサービスの主要な計測基準は、パケットロス、遅延、及びジッタである。受動型（passive）及び能動型（active）の計測を使用可能である。又、サービスプロバイダのトラフィックエンジニアリング（traffic engineering）及び容量計画（capacity placing）機能には、パケットフローの統計データが必要とされている。
【０００５】
特許文献１においては、通信ネットワークのサービスを停止することなく、且つエンドポイントにおけるプロトコル処理によって強いられる可変遅延（variable delay）を排除することにより、通信ネットワークにおける往復遅延（round-trip delay）又は伝播（travel）を計測している。
【特許文献１】米国特許第５，５２１，９０７号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような従来提案されているソリューションには、いくつかの欠点が存在している。例えば、データストリームを分析しメモリ内に保存した後に、タイムスタンプを生成している。分析プロセス及びメモリアクセスに所要する時間は、ゼロではない。実際には、分析時間は、プロセッサ上の処理負荷によって左右されるため、予測不能である。従って、結果的に生成されるタイムスタンプは不正確なものになる。
【０００７】
この未知の遅延を除外したとしても、このようなソリューションの最大精度は、タイムスタンプが１ｋＨｚ信号を使用して生成されているため、１ｍｓに制限されている。数ギガビット／秒レベルのネットワークの場合には、１ｍｓは非常に長い時間であり、多くのネットワークの問題を診断するのに十分な分解能が得られない。
【０００８】
そして、カウンタのオーバーフローを防止又は検出するための対策も存在せず、２つの異なるプローブにおけるクロックが同期してもいないため、更なる不確定性が計測値に追加される。
【０００９】
更に、特許文献１の場合には、クライアントサーバーモデル（即ち、「プルモデル（pull model）」）のデータ検索を使用している。クライアントとして機能するコンソールが、情報を取得するべく、サーバーとして機能するプローブに対してポーリングする。そして、送信する情報をプローブが有している場合には、プローブは、その情報を伝送し、さもなければ、その要求は無視される。この「プルモデル」は、ネットワーク上の貴重な帯域幅を消費している。要求されたデータが要求の時点で提供できない可能性があるため、データに対するすべての要求が結果的にデータの実際の伝送に結び付いていないからである。
【００１０】
更に、データストリーム内のビットを３２ビットの整数として加算する方法では、様々なデータパケットに対して一意の署名を生成するのに失敗する確率が高い。更なる別の問題は、データをコンソールに返送するのに別途のネットワークを必要としているという点である。最後に、特許文献１の場合には、インターネットなどのパケットネットワークにおける重要な計測値である単一方向の遅延算出値を正確に判定することができない。
【課題を解決するための手段】
【００１１】
受動型の計測プラットフォームは、ネットワークルーター／スイッチ内に内蔵されるか、またはネットワークルーター／スイッチと一緒に使用されることが可能である。この受動型計測プラットフォームは、ＯＳＩ（Open System Interconnect、開放型システム間相互接続）データパケットを受信し、この完全なＯＳＩデータパケットからＯＳＩ第３層パケットを抽出し、このＯＳＩ第３層パケットからヘッダを抽出し、ＯＳＩ第３層パケットに対応する一意のパケットラベルを生成し、タイムスタンプを生成し、これらヘッダ、パケットラベル、及びタイムスタンプを含むレコードをパケットごとに生成する。タイムスタンプは、ＧＰＳ信号（又は、ＧＰＳ信号と同一のタイミングサービス及び精度を提供可能なソース）から導出され、周波数ドリフトおよび同期に関連する問題が極小化される。ネットワークの帯域幅を節約するべく、プッシュ及びプルモデルの両方のデータ検索を使用している。
【発明を実施するための最良の形態】
【００１２】
本発明は、集積回路（ＩＣ）内に高度な能力を有する計測プラットフォームを提供することにより、従来技術の制約を解決している。このＩＣソリューションは、機器ベンダのネットワーク構成要素のうちインターフェイスカード内の組み込み型装置として使用可能である。その他のトラフィック計測ソリューションが有しているフォームファクタ（form factor）問題を解決することにより、本発明は、通信業者に、彼らのネットワークにおいてトラフィックがどのように移動しているのかについての強力で時間相関のある見解を提供する。これにより、機器室内の機器の設置状況を変更することなしに、ネットワークを格段に広範囲で常時監視することが可能になる。ネットワークの健康状態の監視に加え、このデータの重要性は、効率的であって制御され且つ検証可能な方法により、通信業者がサービスを提供することを可能にするツールとして、今後益々増大することになろう。
【００１３】
本発明によれば、ネットワーク遅延、ネットワークジッタ、ネットワークロス、フロー、及びネットワーク稼働率というネットワークエンジニアリング及び供給のための情報における最も重要な５つの要素が解決される。
【００１４】
本ソリューションによれば、５００ｎｓ以内という非常に高度な精度が提供される。この説明用の例においては、精度は、２００ｎｓ以内である。これは、（特許文献１のような）タイムスタンプの生成における遅延を除去すると共に、極めて正確なクロックソースを提供するＧＰＳ（Global Positioning System）受信機を使用することによって実現される（または、ＧＰＳ信号と同一のタイミングサービス及び精度を提供可能なその他のソースも使用することができる）。これにより、周波数ドリフトとカウンタオーバーフローの問題が除去される。
【００１５】
本発明は、プッシュ及びプルモデルのデータ検索を使用している。プッシュモデルにおいては、サーバーは、検索に対してデータを提供できる旨をクライアントに通知する。すると、クライアントは、サーバーに対してデータを送信するように指示することができる（この代わりに、伝送するデータをサーバーが有している場合には常にクライアントにデータを自動伝送するように、サーバーを構成することも可能である）。これにより、データを取得するべく、クライアントがサーバーに対して定期的にポーリングする必要性が除去され、ネットワーク上の帯域幅を節約することができる。この機能が望ましくない場合には、プルモデルのデータ検索を採用することができる。このモデルの場合には、クライアントは、自身が当該情報を必要とする場合には常に、サーバーに対してデータ要求を送信することになり、クライアントが要求しているものが提供されるという保証は存在していない。要求を伝送する必要があると共に、すべての要求が、結果的にサーバーからクライアントへのデータ伝送につながるわけでもないため、このモデルの場合には、多くのネットワーク帯域幅を消費してしまうことになる。
【００１６】
周期冗長検査（Cyclic Redundancy Check、ＣＲＣ）アルゴリズムを使用し、一意のパケット識別子（ID）を生成する。パケットＩＤは、３２ビットである。重複署名が発生する確率は、従来技術（特許文献１）に比べ、格段に低い。
【００１７】
本発明は、基本的なネットワーク要素であり、従来技術（特許文献１）に見られるようなデータ伝送用の別途のネットワークの必要性が除去されている。又、この結果、電力及び物理スペースを大幅に節約することもできる。
【００１８】
本発明は、ネットワーク遅延、ネットワークジッタ、パケットロス、フロー、及びネットワーク稼働率という５つの計測を実行する。又、伝送する計測データに更なるデータを含めることができ、ユーザーが彼らのインフラストラクチャから更なる収益を抽出することを可能にする。
【００１９】
図１は、受動型計測プラットフォームを備えるルーターを使用するサンプルネットワークを示している。それぞれのエッジルーター（ルーターＡ、ルーターＢ、ルーターＣ）は、ローカルエリアネットワーク（ＬＡＮ）上のユーザーをインターネットに接続している。即ち、ルーターＡは、ユーザーＡに接続しており、ルーターＣは、ユーザーＣに接続している。そして、ルーターＢは、サーバーに接続されている。
【００２０】
ユーザーＡがインターネットを介してユーザーＣに対して通話する場合には、ＩＴＵ−ＴＧ．１１４に規定されているように、単一方向遅延を１５０ｍｓ未満にすることが望ましい。遅延が１５０ｍｓを超えて拡大するに伴い、対話型の会話の認知力が低下する。更に、会話の認知品質には、ネットワークジッタが影響を与える。ネットワークジッタとは、データパケットの到着時間における変動である。そして、別の重要なパラメータがパケットロスである。伝送されるすべての音声パケットにおける定期的なロスが５〜１０％を超過した場合には、音声品質は大幅に低下することになる。又、時々発生するパケットロスのバーストによっても、会話は困難になる。
【００２１】
ユーザーＡとユーザーＣ間の通話の場合、データパケットは、それぞれのユーザー間でやり取りされる。ルーターＡ及びルーターＣにおいて、タイムスタンプ、一意のパケット識別子（ＩＤ）、及びその他のパケットヘッダ情報をそれぞれのパケットごとに保存する。このデータを保存し、更なる分析のために、ルーター上のポートの中の１つを介してサーバーに伝送する。このデータにより、ネットワークエンジニアは、通話の重要なパラメータのすべてをインターネットを介して監視することができる。ネットワークエンジニアは、ネットワークの健康状態に関するリアルタイムの情報を得ることができるようになるのである。
【００２２】
ＯＳＩ（Open  System  Interconnection、開放型システム間相互接続）モデルは、７つの層でプロトコルを実装するネットワークフレームワークを定義するものである。制御は、ある局におけるアプリケーション層から始まり、ある層から次の層に伝達されて、最下位層に進み、次の局へのチャネル上を伝播し、再度、この階層を逆に辿ることになる。
【００２３】
ＯＳＩ第７層は、アプリケーション及びエンドユーザープロセスをサポートするものである。通信パートナーを識別し、サービスの品質を識別し、ユーザー認証及びプライバシーを考慮し、データのシンタックスに対する制約を識別する。この層におけるすべてのものは、アプリケーションに固有である。この層は、ファイル転送、電子メール、及びその他のネットワークソフトウェアサービス用のアプリケーションサービスを提供する。TelnetとＦＴＰは、その全体がアプリケーションレベルに存在しているアプリケーションである。階層化されたアプリケーションアーキテクチャが、この層の一部を構成している。
【００２４】
ＯＳＩ第６層は、アプリケーションからネットワークフォーマット（及び、この逆方向）に変換することにより、データ表現（例：暗号化）の違いからの独立性を提供するものである。このプレゼンテーション層は、アプリケーション層が許容可能な形態にデータを変形するべく機能する。この層は、ネットワークにおいて送信されるデータのフォーマット化と暗号化を行い、互換性問題に対する自由度を提供している。これは、時々、シンタックス層とも呼ばれている。
【００２５】
ＯＳＩ第５層は、アプリケーション間の接続の確立、管理、及び終了を実行するものである。このセッション層は、それぞれのエンドのアプリケーション間の会話、交換、及び対話のセットアップ、調整、及び終了を行う。これは、セッション及び接続調整を取り扱っている。
【００２６】
ＯＳＩ第４層は、エンドシステム（又は、ホスト）間のデータのトランスペアレント（transparent、透過的な）な転送を提供し、エンドツーエンドのエラー回復とフロー制御の責任を負っている。これにより、完全なデータ転送が確保される。
【００２７】
ＯＳＩ第３層は、スイッチング及びルーティング技術を提供し、ノードからノードにデータを伝送するための論理的な経路（仮想回線）を生成するものである。ルーティングと転送がこの層の機能である。同様に、アドレッシング、インターネットワーキング、エラー処理、輻輳制御（congestion control）、及びパケットシーケンシングも、この層の機能である。
【００２８】
ＯＳＩ第２層においては、データパケットのビットへの符号化及び解読を実行する。これは、伝送プロトコルの知識と管理を提供し、物理層、フロー制御、及びフレーム同期化におけるエラーを処理する。このデータリンク層は、ＭＡＣ（Media Access Control、媒体アクセス制御）層とＬＬＣ（Logical Link Control）層という２つの副層に分割される。ＭＡＣ副層は、ネットワーク上のコンピュータがデータへのアクセスとその伝送の許可を得る方法を制御する。そして、ＬＬＣ副層は、フレーム同期化、フロー制御、及びエラーチェックを制御している。
【００２９】
ＯＳＩ第１層は、ネットワークにおいて、ビットストリーム（電気インパルス、光、又は無線信号）を電気的又は機械的なレベルで搬送するものである。これは、ケーブル、カード、及び物理的な側面の定義を含むキャリア上でデータを送受信するためのハードウェア手段を提供している。Fast Ethernet、ＲＳ２３２、ＡＴＭは、物理層コンポーネントによるプロトコルである。
【００３０】
図２は、本発明を装備するルーター／スイッチポートのブロックダイアグラム（１０）を示している。外部インターフェイスモジュール（１２）がポートを外部世界に接続しており、このようなモジュールの一例が、１０ギガビットEthernet XENPAK光モジュールである。この外部インターフェイスモジュール（１２）は、更にＳｅｒＤｅｓ（Serializer Deserializer、パラレル／シリアル・シリアル／パラレル変換器）（１４）に接続している。このＳｅｒＤｅｓ（１４）によって受信されたデータに対して、フレーマ（framer）／ＭＡＣ（１６）がＯＳＩ第２層の操作を実行する。ネットワークプロセッサ（１８）は、パケットの分類やその他のルーティング関連機能を実行する。独自の関連メモリ（２０）を有するネットワークプロセッサ（１８）は、スイッチ・ファブリック・インターフェイス（switch fabric interface）（２２）に更に接続しており、このスイッチ・ファブリック・インタフェースは、このポートを同一ルーター／スイッチ内のその他のポートに接続している。独自の関連メモリ（２６）を有する制御プレーン（control plane）の中央処理ユニット（ＣＰＵ）（２４）は、ネットワークプロセッサ（１８）と双方向通信する。この制御プレーンＣＰＵ（２４）は、管理機能（例：ポートの構成、ルーティングテーブルの算出など）を実行する。これらの機能の仕分けは、実装によって変化する。この実施例においては、計測プラットフォーム（２８）がフレーマ／ＭＡＣ（１６）、制御プレーンＣＰＵ（２４）、及びネットワークプロセッサ（１８）間を接続している。この計測プラットフォーム（２８）は、ネットワークプロセッサ（１８）よりも前に、接続ポイントからデータを受信することができる（例：外部インターフェイスモジュール（１２）とＳｅｒＤｅｓモジュール（１４）間、ＳｅｒＤｅｓモジュール（１４）とフレーマ／ＭＡＣ（１６）間、又はフレーマ／ＭＡＣ（１６）とネットワークプロセッサ（１８）間）。この代わりに、計測プラットフォーム（２８）でデータを直接受信するようにしたり、または、計測プラットフォーム（２８）をそれぞれのブロック（光モジュール（１２）、ＳｅｒＤｅｓ（１４）、フレーマ／ＭＡＣ（１６）、又はネットワークプロセッサ（１８）
）の内部に組み込むことも可能である。
【００３１】
計測プラットフォーム（２８）は、ネットワークプロセッサ（１８）よりも前（又は、同時）に、データにアクセスしなければならない。ポート（１０）内に計測プラットフォーム（２８）を内蔵することにより、電力と物理スペースの両方を節約することができる。
【００３２】
図３は、図２に示されている計測プラットフォーム（２８）の機能ブロックダイアグラムを示している。ヘッダ抽出器（header extractor）（３０）がパケットプロセッサ（３２）に接続されている。タイムスタンプ生成器（３４）は、入力をパケットプロセッサ（３２）に提供する。パケットプロセッサ（３２）は、計測パケット生成器（３６）及び内部インターフェイスプロセッサ（３８）用の入力を生成する。これは、専用のロジック回路として（又は、マイクロプロセッサ内に）実装可能である。
【００３３】
図４は、図３に示されているヘッダ抽出器（３０）の機能ブロックダイアグラムを示している。第２層デカプスレータ（Decapsulator、カプセル化除去装置）（４０）が第３層／第４層抽出器（４２）に接続されている。
【００３４】
第２層デカプスレータ（４０）は、データパケットからＯＳＩ第２層のカプセル化（encapsulation）を除去し、ＯＳＩ第３層パケットを抽出する。
【００３５】
第３層／第４層抽出器（４２）は、その構成に応じて、関連するＯＳＩ第３層及びＯＳＩ第４層ヘッダを抽出する。マルチプロトコル・ラベルスイッチング（Multi-Protocol Label Switching、ＭＰＬＳ）が設定されている場合には、これは、任意選択により、ＭＰＬＳラベルを抽出することもできる。このブロックの出力は、＜フロー(Flow)（３バイト）、送信元IPアドレス(IP src)（４バイト／１６バイト）、宛先IPアドレス(IP des)（４バイト／１６バイト）、サービスタイプ(Tos)（１バイト）、プロトコル(Protocol)（１バイト）、送信元ポート(Src port)（２バイト）、宛先ポート(Dst port)（２バイト）＞という７つの要素の組である。ＩＰｖ４の場合には、１７バイトになり、ＩＰｖ６の場合には、４１バイトになる。フローラベルは、ＭＰＬＳラベル、又はフレームリレーＩＤ、又はＡＴＭ  ＶＰＩ／ＶＣＩ（Asynchronous Transfer Mode Virtual Path Identifier／ Virtual Circuit Identifier、非同期転送モード 仮想経路識別子／仮想回路識別子）、又はＴＣＰ／ＩＰヘッダ情報に基づいて生成されたラベルであってよい。
【００３６】
本発明においては、第３層及び第４層ヘッダを個々に（又は、組み合わせて）抽出可能である。
【００３７】
図５は、図３に示されているパケットプロセッサ（３２）の機能ブロックダイアグラムを示している。これは、（ａ）フローカウントを算出してエクスポートし、（ｂ）タイムスタンプによって基礎的なフィルタリングを実行し、（ｃ）監視局に対して構成可能なしきい値イベントを放出するべくプログラムすることができる。外部入力を受信するアクションテーブルルックアップ（action table lookup）（４４）は、フローキャッシュ／ＰＰＲ（Per Packet Record）更新モジュール（４６）と＜アクションコード、パケット＞バッファ（action code packet buffer）（４８）に接続されている。アクションテーブルルックアップ（４４）は、内部インターフェイスモジュール（図８）から入力を受信し、それがアクションエンジン（５０）が設定したフィルタリング基準に合致する場合に、フローキャッシュ／PPR  更新モジュール（Flow cashe / PPR update module）（４６）及び＜アクションコード、パケット＞バッファ（４８）によって解釈されることになるアクション識別子を生成するべくプログラムされている。これらのフィルタリングされたパケットには、フロー／ＰＰＲ更新モジュール（４６）によってタイムスタンプが付加され、PPRストレージ（５６）内に保存される。このＰＰＲストレージレコードは、定期的に監視局に対してプッシュされる。フローレコードは、フィルタリングアクションの対象であっても、または対象でなくてもよい。しきい値イベントは、アクションエンジン（５０）によって処理される。アクションエンジン（５０）は、アクションテーブルルックアップ（４４）と＜アクションコード、パケット＞バッファ（４８）の両方に接続されている。フローキャッシュ／ＰＰＲストレージマネージャ（５２）は、いずれもフローキャッシュ／ＰＰＲマネージャ（４６）に接続されているフローキャッシュ（５４）とＰＰＲストレージ（５６）を管理している。
【００３８】
アクションエンジン（５０）は、専用の命令メモリを有する汎用マイクロプロセッサコア（例：１６／３２ビットの埋め込み型ＲＩＳＣマイクロプロセッサ）である。アクションは、命令メモリ内に保存され、取得したパケット又はＰＰＲストレージ（５６）内に保存されているデータに対して実行される。
【００３９】
キャッシュマネージャ（４６）は、設定されている共同キャッシュ内にフローレコードを維持管理する。それぞれのフローキャッシュエントリは、長さが６４バイトであり、状態バイトとフローレコードから構成されている。状態バイトは、有効（valid）及びロック（lock）という２つのビットを有することができる。有効ビットが設定されている場合には、そのキャッシュエントリは有効である。ロックビットが設定されている場合には、キャッシュマネージャは、そのキャッシュエントリを削除することができない。尚、この実施例では、６４バイトのフローキャッシュエントリを例として示しているが、フローキャッシュエントリのサイズは、本発明の全体としての実装によって左右される。
【００４０】
フローキャッシュ（５４）内に保存されているフローレコードは、フローヘッダとフローデータを格納している。フローヘッダは、＜フローラベル(flow label)（３バイト）、送信元IPアドレス(IP src)（４バイト／１６バイト）、宛先IPアドレス(IP dst)（４バイト／１６バイト）、サービスタイプ(Tos)（１バイト）、プロトコル(Protocol)（１バイト）、送信元ポート(Src port)（２バイト）、宛先ポート(Dst port)（２バイト）＞という組から構成されている。フローは、フローラベル、又は＜送信元IPアドレス、宛先IPアドレス、サービスタイプ、プロトコル、送信元ポート、宛先ポート＞という組のいずれかによって一意に識別される。この組は設定可能である。フローデータ部分は、＜パケットカウント(packet count)（４バイト）、バイトカウント(byte count)（４バイト）、開始タイムスタンプ(start timestamp)（４バイト）、最新タイムスタンプ(latest timestamp)（４バイト）、その他(others)（３０バイト／６バイト）＞という組にコンタクトする（これは、ＩＰｖ４の場合には、合計４６バイトであり、ＩＰｖ６の場合には、２２バイトである）。その他のラベルが付加されているフィールドの場合には、保存されているデータをフローごとに変更可能であり、アクションルックアップテーブルから得られる＜STATS、function_ptr＞によって判定する。１７／４１バイトのフローヘッダを含め、フローレコードサイズは６３バイトである。
【００４１】
ＰＰＲ（Per Packet Record）ストレージユニット（５６）には、パケットごとに存在するデータを保存する（例：タイムスタンプ）。パケットごとに記録されたタイムスタンプを必要とするフローは、フローレコード内にポインタを有することになり、このポインタは、ＰＰＲリストデータ構造をポイントしている。メモリを節約するべく、ＰＰＲには、サンプルのみを保存することができる。この実施例においては、ＰＰＲサイズは、１Ｍバイトであり、ＰＰＲレコードサイズは、６バイトである（４バイトがパケットＩＤであり、２バイトが増分タイムスタンプである）。これにより、約１７０，０００個のタイムスタンプを保存することができる。更に説明すれば、音声の会話が約５分間継続するとしよう。それぞれの音声通話は、一度に２０ｍｓのパケットを生成し、通話当たり、合計で１５Ｋパケットが生成されることになる。音声通話当たり、１／１００，１５０レコードというサンプリングレートを仮定すれば、これは、最大で１０００件の音声通話のタイムスタンプレコードを保存可能であることを意味している。
【００４２】
フローキャッシュ／ＰＰＲストレージマネージャ（５２）は、規則正しいインターバルでフローキャッシュのすべてのエントリを走査し、キャッシュから除去可能な十分に古いフローエントリを判定する。これは、無活動（inactivity）タイマと活動（activity）タイマを使用している。いずれのタイマもユーザー設定可能である。
【００４３】
アクションルックアップテーブル（４４）には、パケットとバイトカウント統計データを保持するというデフォルトのアクション以外に実行可能な計測アクションのリストが格納されている。これらのアクションは、広範なフロークラスに適用可能である（例：ＴＣＰ、ＲＴＰ、又は特定タイプのサービスビットなど）。又、フローラベルによって容易に識別可能なＭＰＬＳ−タイプのトンネルについても、アクションを定義することができる。このようなフローの一例としては、ネットワークの特定ポイントを通過する同一のソース及び宛先ＩＰネットワークアドレスを有するすべてのパケットである。
【００４４】
アクションルックアップテーブル（４４）は、小さなＣＡＭ（Content Addressable Memory）によって実装可能である。このアクションテーブルには、フローラベル、サービスのタイプ、ヘッダフィールドのソース及び宛先ポートＩＤの設定可能な組み合わせにより、インデックス付けする。出力は、フローキャッシュ更新ユニットとアクションエンジンの両方によって解釈されることになるアクション識別子である。アクションのリストには、次のものを含むことができる（但し、これらに限定されない）
・＜EXECUTE、function_ptr＞：アクションエンジンは、パケット全体を取得し、function_ptrによってポイントされている機能を適用する。
【００４５】
・＜STATS、function_ptr＞：フロー更新ユニットは、function_ptrによってポイントされている機能によって示されている特殊な統計データを算出する。
【００４６】
＜アクションコード、パケット＞バッファ（４８）は、アクションエンジン（５０）がデータを受け付ける準備が整うまで、アクションテーブルルックアップ（４４）と第２層デカプスレータ（４０）の出力を保存するバッファである。
【００４７】
図６は、図３に示されているタイムスタンプ生成器（３４）の機能ブロックダイアグラムを示している。このタイムスタンプ生成器は、フェイズロックループ（phase lock loop、ＰＬＬ）であってよい。位相／周波数検出器（６６）が、ＧＰＳから導出された信号から１ＰＰＳ（Pulse Per Second、１秒あたり１パルスの信号）を受信する。尚、ＧＰＳ信号と同一のタイミングサービス及び精度を提供可能なソースを使用する実装も有効であることに留意されたい。位相／周波数検出器（６６）とＶＣＯ（Voltage Controlled Oscillator、電圧制御発信器）（７０）の間には、チャージポンプ（６８）が介在している。ＶＣＯ（７０）は、１ＰＰＳ信号に同期した５ＭＨｚのクロック信号を生成する。分割器（divider）（７２）は、位相／周波数検出器（６６）によって１ＰＰＳ信号と比較してＶＣＯが同期しているかどうかを判定するべく、この５ＭＨｚクロックを分割して１Ｈｚ信号を生成する。
【００４８】
このタイムスタンプ生成器（３４）は、ＧＰＳ信号（又は、ＧＰＳ信号と同一のタイミングサービス及び精度を提供可能なソース）から導出された絶対タイムスタンプを生成する。この情報を使用し、計測（例：ネットワーク遅延又はネットワークジッタ）用の正確なタイムスタンプデータを提供する。
【００４９】
図７は、計測パケット生成器（３６）によって生成された計測データの伝送フォーマットの一例である。この例においては、パケットをＵＤＰ又はＴＣＰパケットに組み立てている。リストのフォーマットは、実行する計測によって左右される。プロトコルＩＤは、このプローブの将来のバージョン、並びに可能な拡張を提供するべく使用される。パケットの受信機は、このプロトコルＩＤに応じてパケットを処理することができる。タイプは、計測するデータのタイプを指している。長さは、メッセージの長さ（単位：バイト）を指している。そして、パケットＩＤは、パケットＩＤ生成ユニットによって生成されるパケットＩＤを指している。
【００５０】
図８は、図３に示されている内部インターフェイスプロセッサ３８を示している。ローカルストレージユニット（７４）は、アクションエンジン（５０）と通信する。制御プロセッサ（７６）は、設定データを設定メモリ（７８）内に保存し、計測プラットフォーム（２８）から出る計測データのフローと、計測プラットフォーム（２８）に入る設定データのフローを制御する。制御プロセッサ（７６）は、Ｅｔｈｅｒｎｅｔインターフェイス（８０）及びローカルホストインターフェイス（８２）に更に接続している。
【００５１】
制御プロセッサ（７６）は、標準的なマイクロプロセッサコア（例：１６／３２ビットの埋め込み型ＲＩＳＣマイクロプロセッサ）である。これは、Ｅｔｈｅｒｎｅｔインターフェイス（８０）及び／又はローカルホストインターフェイス（８２）を介したプローブの外部世界とのやり取りを管理する。
【００５２】
Ｅｔｈｅｒｎｅｔインターフェイス（８０）を使用して外部計測ボックスとインターフェイスし、より深い分析を行うべく、このチップによって収集されたデータをダウンロードすることができる。この代わりに、これを使用し、ＩＣを設定することも可能である。
【００５３】
ローカルホストインターフェイス（８２）は、設定と、データを分析局にアップロードするために使用可能である。
【００５４】
図９は、図３に示されている計測プラットフォーム（２８）のプロセスフローチャートを示している。
【００５５】
ステップ１１０において、第２層デカプスレータは、第２層ヘッダを除去し、フレーマ／ＭＡＣの出力からＯＳＩ第３層パケットを抽出する。
【００５６】
ステップ１２０において、ＯＳＩ第３層パケットからヘッダを抽出する。この実施例において、ＯＳＩ第３層パケットは、ＩＰパケットである。このステップの出力は、ＲＦＣ７９１に規定されているＩＰヘッダである（ＩＰバージョン番号、ヘッダ長、サービスのタイプ、パケット長、識別子、フラグ、フラグメントオフセット、生存期間、プロトコル、ヘッダチェックサム、ソースＩＰアドレス、及び宛先ＩＰアドレス）。
【００５７】
ステップ１３０において、パケットＩＤを生成する。パケットＩＤは、パケットを一意に識別するべくその他のパラメータとの関連で使用するものである。この３２ビットのパケットＩＤは、ＩＰパケットの最初の５１２バイト、又はデータ部分全体のいずれか小さいほうに対してＣＲＣアルゴリズムを実行することにより、生成する。尚、ＣＲＣアルゴリズムは、アルゴリズムのコーディング又はデジタルロジックに関するテキストブックであれば、どのようなものにも掲載されている。生成多項式は、次に示すとおりである。
【数１】
2004312734.tif 000003
【００５８】
ソースから宛先に向かって伝播する際のデータの断片化を制限するには、パケットＩＤを最初の５１２バイトについて算出する。断片化が発生すると、断片化のポイントにおいて（及び、その後に）算出されるパケットＩＤが変化し、断片化の前後において収集したデータを相関させる方法がなくなってしまう。
【００５９】
ステップ１４０において、ＧＰＳ信号（又は、ＧＰＳ信号と同一のタイミングサービス及び精度を提供可能なソース）からタイムスタンプを導出する。受信機がＧＰＳの原子時計（又は、類似のソース）に同期した１ＰＰＳ（Pulse per Second）信号を出力する。更に、受信機は、時刻及び日付情報を出力しなければならない（時刻情報は、秒レベルの精度を有している）。１ＰＰＳ信号を使用し、１秒未満のタイミング情報を生成する。このブロックからの最初の出力の組は、４０ビットである（時間を表す５ビット、分を表す６ビット、秒を表す６ビット、１秒未満の情報を表す２３ビット）。ＧＰＳ受信機又は類似のソースは、時間、分、及び秒情報を提供する。２３ビットの１秒未満のデータは、ＰＬＬによって生成する。このデータは、最大２００ｎｓの精度を有するパケットを受信した絶対時刻を表している。
【００６０】
このモジュールからの第２の出力の組は、２４ビットとオーバーフロービットである。これは、連続パケットの到着時間間隔に対応している。２４ビットには、５ＭＨｚクロックによってクロッキングされる２４ビットカウンタの内容から入ることになる。オーバーフロービットは、カウンタがオーバーフロー又はロールオーバーしている場合に、ハイになる。これは、クリアされるまで、ハイのまま留まる。有効な出力の組（２４ビットカウンタ値とオーバーブロービット）を生成するには、リセット信号が必要である。リセット信号は、カウンタをゼロにリセットすると共に、オーバーフロービットをクリアする。パケットの最後のビットを受信した後に、カウンタの内容を読み取る。この回路のタイミングは、最後のビットを受信し、且つカウンタを読み取った後に、カウンタがゼロにリセットされるようになっている。カウンタの内容は、あるパケットの最後から別のパケットの最後に至る経過時間（即ち、パケットの到着時間間隔）を表している。
【００６１】
ステップ１５０において、ＩＰヘッダ情報、パケットＩＤ、及びタイムスタンプを保存する。このデータは、パケットレコードから構成されている。ＩＰヘッダ情報は、ユーザー設定可能である。パケットの絶対タイムスタンプ、又は到着時間間隔のいずれかを選択することができる。絶対タイムスタンプは、（１）連続パケットの到着時間間隔の記録に使用する２４ビットカウンタがオーバーフローしているか、または、（２）メモリ内のパケットレコードの数がしきい値の数以上になっている、のいずれかの条件に合致する場合に、保存する。それ以外の場合には、到着間隔タイムスタンプを保存する。到着間タイムスタンプの場合には、メモリを節約することができる。１つの絶対タイムスタンプと１組の到着間隔タイムスタンプから、１組のパケットレコードの到着の絶対時刻を導出することができる。
【００６２】
ステップ１６０において、データを収集し、ユーザー設定可能な宛先に伝送する。このパケットは、ＵＤＰ又はＴＣＰパケットとして組み立てられ、ＩＰネットワークを介して分析局に送信される。分析局は、ＩＰヘッダ内のソースＩＰアドレスをチェックすることにより、計測データの出所を知ることができる。
【００６３】
そして、ステップ１７０において、内部インターフェイスプロセッサは、このデータを外部装置に供給する。
【図面の簡単な説明】
【００６４】
【図１】サンプルネットワークを示している。
【図２】本発明のポートのブロックダイアグラムを示している。
【図３】本発明による機能ブロックダイアグラムを示している。
【図４】図３に示されているヘッダ抽出器１０の機能ブロックダイアグラムを示している。
【図５】図３に示されているパケットプロセッサ１２の機能ブロックダイアグラムを示している。
【図６】図３に示されているタイムスタンプ生成器１４の機能ブロックダイアグラムを示している。
【図７】計測したデータの伝送フォーマットを示している。
【図８】図３に示されている内部インターフェイスプロセッサ３８を示している。
【図９】図３に示されている計測プラットフォームのプロセスフローチャートを示している。
【符号の説明】
【００６５】
１０  ルーター／スイッチ
１２  外部インターフェイスモジュール
１６  フレーマ／ＭＡＣ
１８  ネットワークプロセッサ
２０  ネットワークメモリ
２４  制御プレーンＣＰＵ
２６  制御プレーンメモリ
２８  計測アナライザ
【図１】
2004312734.tif 000004
【図２】
2004312734.tif 000005
【図３】
2004312734.tif 000006
【図４】
2004312734.tif 000007
【図５】
2004312734.tif 000008
【図６】
2004312734.tif 000009
【図７】
2004312734.tif 000010
【図８】
2004312734.tif 000011
【図９】
2004312734.tif 000012