(57)【要約】【課題】通信データを収集して分析するネットワーク・モニタを実現する。【解決手段】第１の通信回線上のデータをモニタする方法であって、データは第１の通信回線（４０２）から受信され、複数のパケット（４０６）はデータから抽出される（４１６）。次に統計情報が再帰的に発生され（４０８）、この統計情報は複数のパケットに対応する。【選択図】図４
2006129533.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信回線上の第１のデータを収集して分析する方法であって、
（ａ）上記第１の通信回線から上記第１のデータを受信するステップと、
（ｂ）受信した第１のデータをパケットに分離するステップと、
（ｃ）各パケットのそれぞれの第１の特性を決定するステップと、
（ｄ）パケットをそれらの第１の特性に基づいて選択するステップと、
（ｅ）その選択されたパケットの各々にそれぞれのインデックスを関連付けるステップと、
（ｆ）その選択されたパケットの各々を、そのそれぞれのインデックスを含むそれぞれのレコードに変換するステップと、
（ｇ）そのレコードを第１のメモリに記憶させるステップと、
（ｈ）各パケットのそれぞれの第２の特性を決定するステップと、
（ｉ）第１のカウントを各々のそれぞれの第２の特性に対応する量だけインクリメントするステップと、
（ｊ）第１のカウント持続時間を受信するステップと、
（ｋ）連続する各第１のカウント持続時間の間に受信されたパケットに対応する第２のメモリに別の第１のカウントを記憶させるステップと、
を含む、方法。
【請求項２】
第１の通信回線上のデータをモニタする方法であって、
第１の通信回線からデータを受信するステップと、
その受信したデータから複数のパケットを抽出するステップと、
その複数のパケットに対応する統計情報を再帰的に発生するステップと、
を含む、方法。
【請求項３】
第１の通信回線上で送信された第１のデータを収集して分析する方法であって、
（ａ）上記第１の通信回線から上記第１のデータを受信するステップと、
（ｂ）その受信した第１のデータをパケットに分離するステップと、
（ｃ）各パケットのそれぞれのタイプを決定するステップと、
（ｄ）それらのそれぞれのタイプに基づいてパケットを選択するステップと、
（ｅ）その選択されたパケットの各々にそれぞれのインデックスを関連付けるステップと、
（ｆ）その選択されたパケットの各々を、そのそれぞれのインデックスを含むそれぞれのレコードに変換するステップと、
（ｇ）上記レコードを第１のメモリに記憶させるステップと、
（ｈ）第１の期間に対応する第１の持続時間値を受信するステップと、
（ｉ）連続する各期間に受信されたパケットに対応する少なくとも１つの統計情報を発生するステップと、
（ｊ）第２のメモリに連続する各期間に対する少なくとも１つの統計情報を記憶させるステップと、
を含む、方法。
【請求項４】
さらに、その記憶されたレコードの中の少なくとも１つとその記憶された少なくとも１つの統計情報を用いて別の統計情報を発生するステップを含む、請求項３に記載の方法。
【請求項５】
さらに、第１の期間よりも長い第２の期間に対応する第２の期間値を受信するステップと、
記憶されたレコードの少なくとも１つと記憶された少なくとも１つの統計情報とを用いて少なくとも１つの第１の期間を包含する第２の期間の間に受信されたパケットに対応する別の統計情報を発生するステップと、
を含む、請求項３に記載の方法。
【請求項６】
その少なくとも１つの統計情報は、ビットの数、バイトの数、パケットの数、所定のプロトコルのパケットの数、所定のプロトコル層のパケットの数、所定のソース・アドレスを有するパケットの数、およびそれぞれのパケットの所定の宛先アドレスを有するパケットの数の中の少なくとも１つを含むものである、請求項３に記載の方法。
【請求項７】
レコードは、そのそれぞれのパケットの一部とそのそれぞれのインデックスとを含むものである、請求項３に記載の方法。
【請求項８】
パケットのそれぞれのインデックスはパケットが受信された時間に対応するものである、請求項３に記載の方法。
【請求項９】
さらに、絶対時間を表わすＧＰＳ（全世界測位衛星システム）から時間信号を受信するステップと、パケットが受信された時間を絶対時間に基づいて発生するステップとを含む、請求項８に記載の方法。
【請求項１０】
受信されたパケットは第２の通信回線から発信され、受信されたパケットはこれが第２の通信回線上に存在していたそれぞれの第１の時間の指示を含むものであり、
さらに、各パケットが第１の通信回線から受信されたそれぞれの第２の時間を決定するステップと、
それぞれの第１の時間からそれぞれの第２の時間を減ずることによって各パケットに対応する伝送遅延を発生するステップと、
を含む、請求項３に記載の方法。
【請求項１１】
各パケットに対応する伝送遅延は、式
伝送遅延＝（ts1−ts2）−（link_speed/packet_length）
を用いて計算され、
こゝで、ts1は第１の時間、ts2 は第２の時間であり、link_speedは通信回線上のデータ・レート（率）であり、packet_lengthは第１の通信回線上の各パケットの各々の長さである、
請求項１０に記載の方法。
【請求項１２】
ステップ（ａ）は、第１の通信回線に対する非侵入的結合を用いて第１の通信回線からの第１のデータを受信することを含むものである、請求項３に記載の方法。
【請求項１３】
さらに、ステップ（ｄ）で選択されるべきパケットのタイプの少なくとも１つ、第１の期間値、およびステップ（ｉ）で発生すべき統計情報の識別を示す情報を受信するステップを含む、請求項３に記載の方法。
【請求項１４】
情報は第１の通信回線を介して受信される請求項１３に記載の方法。
【請求項１５】
第１の通信回線から受信された各パケットは、ソースからの伝送時間に対応する各々のソース・タイム・スタンプを含み、
さらに、各パケットの各々のソースからの伝送時間をデコーディングするステップと、
そのそれぞれの伝送時間を現在の時間から減ずることによって各パケットに対応する伝送遅延を発生させるステップと、
を含む、請求項３に記載の方法。
【請求項１６】
ＧＰＳ（全世界測位衛星システム）から現在の時間を受信するステップを含む、請求項１５に記載の方法。
【請求項１７】
ステップ（ｉ）は、それぞれの連続する各期間の間に受信された所定のタイプのパケットに対応する連続する各期間に対する少なくとも１つのサービス品質値を発生することを含む、請求項３に記載の方法。
【請求項１８】
少なくとも１つのサービス品質値は、それぞれの連続する期間において受信された所定のパケット・タイプのパケットに対応するラウンドトリップ遅延および再送信レートの中の少なくとも１つを示すものである、請求項１７に記載の方法。
【請求項１９】
ステップ（ｃ）は、対応するアプリケーション・タイプ、対応するパケット内容（コンテンツ）、パケット・ソース、およびパケット宛先の少なくとも１つに基づいてパケットの各々のタイプを決定することを含むものである、請求項３に記載の方法。
【請求項２０】
第１の通信回線はユーザを含むネットワーク中にあり、ステップ（ｉ）は、それぞれの連続する各期間において受信されたユーザへまたはユーザから宛てられたパケットに対応する連続する各期間に対する少なくとも１つのユーザ・プロフィール統計情報を発生することを含むものである、請求項３に記載の方法。
【請求項２１】
さらに、第１のメモリに記憶されたレコードを用いて、それぞれの連続する各期間中に受信されるユーザへのまたはユーザからの行先が定められたパケットに対応する連続する各期間に対する少なくとも１つのユーザ・プロフィール統計情報の少なくとも１つを発生するステップを含む、請求項３に記載の方法。
【請求項２２】
さらに、ユーザの統計情報を識別するユーザからの入力を受信するステップを含み、またステップ（ｉ）はユーザの統計情報を発生することを含むものである、請求項３に記載の方法。
【請求項２３】
さらに、ユーザの統計情報を識別するユーザからの入力を受信するステップと、
第２のメモリに記憶された少なくとも１つの統計情報と第１のメモリに記憶されたレコードとを用いてユーザの統計情報を発生するステップと、
を含む請求項３に記載の方法。
【請求項２４】
第１のデータは第１のプロトコルに従って第１の通信回線で送信され、
さらに、第１のプロトコルに対応するデコーディング・パラメータを受信するステップを含み、またステップ（ａ）はデコーディング・パラメータに従って第１のデータを受信することを含み、ステップ（ｂ）はデコーディング・パラメータに従って受信した第１のデータをパケットに分離することを含むものである、
請求項３に記載の方法。
【請求項２５】
ステップ（ｉ）はそれぞれの連続する各期間において受信した複数のパケット・タイプの各個々のもののパケットの数に対応する複数のパケット・タイプの各々に対する各別のカウントを発生することを含み、
さらに、表示装置の表示領域の第１の部分に、複数のパケットのタイプと、第１の期間よりも長い第２の期間にわたって累積された対応する統計情報とを表示するステップと、を含む、請求項３に記載の方法。
【請求項２６】
複数のパケット・タイプはユーザによって選択可能であり、
さらに、ユーザによるパケット・タイプの１つのユーザの選択を受信するステップと、
第２の期間中に受信した選択されたパケット・タイプのパケットに対応する統計情報を表示するステップと、
を含む、請求項２５に記載の方法。
【請求項２７】
さらに、複数のパケット・タイプに対応する統計情報を、表示領域の第２の部分に第２の期間にわたってプロットの形でグラフィック（図式）表示させるステップを含む、請求項２５に記載の方法。
【請求項２８】
さらに、複数のパケット・タイプに対する統計情報のグラフィック表示を、表示領域の第２の部分に第２の期間にわたって拡がるプロットの形で発生させるステップを含み、プロットは複数の個々の選択可能な期間を含み、
さらに、複数の個々の選択可能な期間の範囲のユーザの選択を受信するステップと、
グラフィック表示を更新して、選択された期間に対応する統計情報を表示するステップと、
を含む、請求項２５に記載の方法。
【請求項２９】
さらに、データストリームに属するパケットを識別するステップと、
ストリーム識別情報を別個のレコードと別個のフィールドのうちの１つとして識別されたパケットに対応するレコード中に記憶させるステップと、
を含む、請求項３に記載の方法。
【請求項３０】
さらに、記憶されたレコードおよび記憶されたストリーム識別情報を用いてデータストリームを再生成するステップを含む、請求項３に記載の方法。
【請求項３１】
第１の通信回線は第２の通信回線を含むネットワーク中にあり、
ステップ（ｅ）は、選択されたパケットの各々が受信された時間に対応する各時間値を決定することを含み、また各選択されたパケットに関連する各インデックスはその各時間値を含み、
ステップ（ｆ）は、選択されたパケットの各々を、各々の選択されたパケットの一意的に識別可能な部分を含む各々のレコードに変換することを含み、
さらに、第２の通信回線から第２のデータを受信するステップと、
第２のデータをパケットに分離するステップと、
第２の通信回線から受信した各パケットの個々のタイプを決定するステップと、
第２の通信回線から受信したパケットをその個々のタイプに基づいて選択するステップと、
第２の通信回線から受信した選択された各パケットが受信された個々の時間を決定するステップと、
第２の通信回線から受信した選択されたパケットの各々に、そのパケットが第
２の通信回線から受信された時間に対応する個々のインデックスを関連付けるステップと、
第２の通信回線から受信した選択されたパケットの各々を、第２の通信回線からの選択されたパケットの一意的に識別可能な部分を含み且つその各々のインデックスを含む個々のレコードに変換するステップと、
第２の通信回線から受信した選択されたパケットに対応するレコードを第３のメモリに記憶させるステップ、
第２のメモリ中に記憶されたレコード中のパケットの唯一的に識別可能な部分を第３のメモリに記憶されたレコード中のパケットと比較して、第１の通信回線から受信したどの選択されたパケットが第２の通信回線から受信したパケットに対応するかを決定して、パケットの整合（マッチ）した対を発生するステップと、
パケットの個々のインデックスを用いてパケットの各整合した対に対応する伝送遅延を発生するステップと、
を含む、請求項３に記載の方法。
【請求項３２】
特定のパケットに対する伝送遅延は、式
伝送遅延＝（ts1−ts2）−（link_speed/packet_length）
を用いて計算され、
こゝで、ts1がts2より大の時は、 ts1およびts2 は、それぞれ第１および第２の通信回線からの整合したパケットの受取り時間であり、link_speedは第１の通信回線上のデータ・レート（率）であり、packet_lengthは第１の通信回線上の整合したパケットの長さであり、
ts2がts1より大の時は、 ts1およびts2 は、それぞれ第２および第１の通信回線からの整合したパケットの受取り時間であり、link_speedは第２の通信回線上のデータ・レートであり、packet_lengthは第２の通信回線上の整合したパケットの長さである、
請求項３１に記載の方法。
【請求項３３】
第１の通信回線は第１のプロトコルを用いてデータを送信し、第２の通信回線は第１のプロトコルとは異なる第２のプロトコルを用いてデータを送信する、請求項３２に記載の方法。
【請求項３４】
伝送遅延は１０マイクロ秒より小さい精度のレベルで発生される、請求項３１に記載の方法。
【請求項３５】
第１の点と第２の点との間に複数の通路（パス）を含む通信ネットワーク中の上記第１の点から第２の点への間でデータをルーティングする方法であって、
第１の点と第２の点との間の複数の通路上の他のデータのフローに基づいてフロー統計情報を発生するステップと、
発生したフロー統計情報に基づいて第１の点と第２の点との間でデータをルーティングするステップと、
を含む、方法。
【請求項３６】
表示領域を有する表示装置上にパケット・プロパティを表示する方法であって、
パケット・プロパティは或る期間（時間間隔）中に第１の通信回線から受信したパケットに対応するものであり、
（ａ）表示領域の第１の部分にパケット・プロパティをリストアップするテーブルを表示するステップと、
（ｂ）表示領域の第２の部分に上記期間にわたってパケット・プロパティのプロットを表示するステップと、
を含み、
パケット・プロパティはプロットの一方の軸上に表示され、時間はプロットの他方の軸上に表示されるものである、
方法。
【請求項３７】
パケットはあるプロトコル層における複数のプロトコルに対応し、ステップ（ａ）は複数のプロトコルとパケットの対応する数の各々をリストアップするテーブルを表示することを含む請求項３６に記載の方法。
【請求項３８】
さらに複数のプロトコルの１つの選択を検出するステップと、選択されたプロトコルのパケットに対応するパケット・プロパティを表示し、選択されたプロトコルのパケット・プロパティおよびすべてのプロトコルのパケット・プロパティを含むデュアルプロットを表示するためにテーブルを更新するステップと、を含む請求項３７に記載の方法。
【請求項３９】
さらに、上記期間（時間間隔）よりもテキスト・フィールド中の時間エントリの１つだけ短い時間のサブ期間（部分期間、サブ時間間隔）の選択またはプロットの時間軸に沿う時間間隔の選択を受信するステップを含む、請求項３６に記載の方法。
【請求項４０】
さらに、テーブルと選択されたサブ期間（サブ時間間隔）に対応するプロットの少なくとも一方を更新することを含む請求項３９に記載の方法。
【請求項４１】
さらに、上記期間よりも長い持続時間にまたがる開始時間および終了時間を受信するステップと、テーブルと上記持続時間に対応するプロットの中の少なくとも１つを更新するステップと、を含む、請求項３６に記載の方法。
【請求項４２】
パケットのサブセット（部分集合）はホストに対応し、さらにホストの選択を検出し、パケットのサブセットに対応する統計情報を表示することを含む、請求項３６に記載の方法。
【請求項４３】
パケットは複数のプロトコルに対応し、パケットのサブセットは複数のプロトコルの１つに対応し、さらに複数のプロトコルの１つの選択を検出し、複数のプロトコルの選択された１つに対応する統計情報を表示することを含む、請求項３６に記載の方法。
【請求項４４】
ホスト・コンピュータのホスト・クロックをネットワーク・インタフェース・カードのインタフェース・クロックと同期させる方法であって、
ネットワーク・インタフェース・カードからインタフェース・クロック値を要求するステップと、
インタフェース・クロック値を読取るステップと、
インタフェース・クロック値から所定のサービス時間を減ずることによって調整されたインタフェース・クロック値を発生するステップと、
調整されたインタフェース・クロック値をホスト・コンピュータに供給するステップと、
ホスト・クロック値を読取るステップと、
調整されたインタフェース・クロック値をホスト・クロック値と相関させるステップと、
を含む、方法。
【請求項４５】
第１の通信回線とこの第１の通信回線とは異なる第２の通信回線とを有するネットワーク上の通信をモニタ（監視）する方法であって、
（ａ）第１の通信回線からの第１の複数のパケットを第１のネットワークのモニタで受信するステップと、
（ｂ）第２の通信回線からの第２の複数のパケットを第２のネットワークのモニタで受信するステップと、
（ｃ）第１の複数のパケットと第２の複数のパケットを相関させるステップと、
を含む、方法。
【請求項４６】
ステップ（ｃ）は、第１の複数のパケットと第２の複数のパケットの各々の一意的識別部分を抽出することと、第１の複数のパケットの一意的識別部分を第２の複数のパケットの一意的識別部分と比較して整合したパケットの対を生成することを含むものである、請求項４５に記載の方法。
【請求項４７】
ステップ（ａ）は第１の複数のパケットをタイムスタンプすることを含み、ステップ（ｂ）は第２の複数のパケットのをタイムスタンプすることを含むものであり、
さらに、第１および第２のネットワーク・モニタを絶対クロック基準に同期させるステップを含む、請求項４５に記載の方法。
【請求項４８】
ネットワーク・モニタはＧＰＳ（全世界測位衛星システム）から時間信号を受信することによって同期化される請求項４７に記載の方法。
【請求項４９】
第１の通信回線と第２の通信回線とを含むネットワーク上の通信をモニタするシステムであって、
第１のクロックを有し、第１の通信回線に結合されていてこの第１の通信回線から第１のデータを受信する第１のネットワーク・モニタと、
第２のクロックを有し、第２に結合された第２のネットワークのモニタと、
を含む、システム。
【請求項５０】
第１のクロックと第２のクロックは互いに１マイクロ秒以内に同期化されている、請求項４９に記載のシステム。
【請求項５１】
同期化手段は、
共通クロック基準からの時間信号を受信するために第１のネットワーク・モニタに関連付けられた受信機と、
共通クロック基準からの時間信号を受信するために第２のネットワーク・モニタに関連付けられた受信機と、
を含む請求項４９に記載のシステム。
【請求項５２】
共通クロック基準は全世界測位衛星システムである、請求項５１に記載のシステム。
【請求項５３】
ユーザによる通信ネットワークの使用に対応するサービス品質のメトリックを決定するステップと、
決定されたサービス品質に基づいてユーザに課金するステップと、
を含む、通信ネットワークのユーザに課金する方法。
【請求項５４】
時間とデータとを関連付けるステップと、  
少なくとも１つのフィールドが関連する時間に対応し、少なくとも１つのフィールドがデータに対応する複数のフィールドを含むパケットを発生するステップと、
パケットを通信回線に伝送するステップと、
を含む、通信回線にデータを伝送する方法。
【請求項５５】
時間値を供給するためのクロックと、
少なくとも１つのフィールドが時間値に対応し、少なくとも１つのフィールドがデータに対応する、複数のフィールドを含むパケットを符号化する符号器と、
パケットを通信回線に伝送する送信機と、
を含む、通信回線にデータを伝送する装置。
【請求項５６】
ある期間にわたってコンピュータ・ネットワークをモニタするシステムであって、
データパケットはこの期間中ネットワークパスを通って進行し、
その期間中に実質的に連続的にパケットをレコーディングする手段と、
上記期間中、多数の連続するサンプリング時間で記録されたパケットからパケット・プロパティを抽出する手段と、を含み、
上記期間の開始時から連続するサンプリング時間に至る時間はネットワークがモニタされる時間のサブ期間を特定し、このサブ期間は上記期間中の連続するサンプリング時間にわたって抽出されるときに段階的に長くなり、
さらに、サブ期間中に抽出されたパケット・プロパティを表に作成して統計情報を作成する手段と、
ユーザの選択に応答してパケットのレコーディングおよびパケット・プロパティの抽出を改変する手段と、
上記期間中、統計情報の作成に応答して統計情報のグラフィック表示に対応するデータを作成する手段と、
上記グラフィック表示の作成に応答して上記グラフィック表現を表示する手段と、
を含む、システム。
【請求項５７】
レコーディング手段は、
ネットワークパスの選択された１つを進行するパケットを検出する手段と、
検出されたパケットをインデクシングする（インデックスを付ける）手段と、
パケットに対応する記録を作成する手段と、
メモリに記録を記憶させる手段と、
を含む、請求項５６に記載のシステム。
【請求項５８】
検出手段は、パケット・プロパティを決定する手段と、ネットワークパスを進行し且つ所定のパケット・プロパティを有するデータパケットのある１つを選択する手段とを含む、請求項５７に記載のシステム。
【請求項５９】
インデクシング（インデックスを付ける）手段はデータパケットをタイムスタンプする手段を含む、請求項５７に記載のシステム。
【請求項６０】
ネットワークはこのネットワーク上の２点でモニタされ、
さらに、２点にタイムスタンプ手段を含み、タイムスタンプ手段は２点におけるインデクシング（インデックス付与）を同期化するＧＰＳ手段を含む、請求項５９に記載のシステム。
【請求項６１】
さらに、データ記憶装置を具えたコンピュータと、ネットワーク・カード・メモリを有するネットワーク・カードと、ネットワーク・カードを具えた論理通信中のＣＰＵとを含み、レコード記憶手段は、
ネットワーク・カード・メモリにレコードを記憶させる手段と、
ＣＰＵの相対非活動状態を検出する手段と、
ＣＰＵの相対非活動状態の検出に応答してネットワーク・カード・メモリに記憶されたレコードをデータ記憶装置に転送する手段と、
を含む、請求項５７に記載のシステム。
【請求項６２】
レコード記憶手段はさらに、
データを受信するようにそこにロードされた置換可能な記憶媒体を有する長期間記憶装置と、この長期間記憶装置に有効に接続された付加記憶媒体のマガジンと、
コンピュータのデータ記憶装置が、記録されたパケットに対応する所定のデータ量であって、満杯状態にあるデータ記憶装置に対応するデータ量を含むときを検出する手段と、
データ記憶装置が満杯であることを検出することに応答してデータ記憶装置から長期間記憶装置に上記データを転送する手段と、
長期間記憶装置にロードされた置換可能な媒体が満杯になるときを検出する手段と、
満杯記憶媒体をマガジンからの記憶媒体と置換える手段と、
を含む、請求項６１に記載のシステム。
【請求項６３】
表示手段はグラフィック・ユーザ・インタフェースを有するコンピュータ表示スクリーンとグラフィック・ユーザ・インタフェース用の制御プログラムとを含み、制御プログラムはさらに、
２つの軸を有するグラフ上に、グラフの一方の軸上にパケット・プロパティが表示され、グラフの他方の軸上に時間が表示されるように時間にわたってパケット・プロパティの少なくとも幾つかを表示する手段と、
ユーザの選択に応答してグラフの時間スケールを変更する手段と、
グラフに隣接し、内部にユーザによる選択可能なセルを有する少なくとも１つのテーブルに少なくとも幾つかの統計情報を表示させる手段と、
セルの１つの選択に応答して選択されたセルに対応する付加統計情報を表示させる手段と、
を有する、請求項５６に記載のシステム。
【請求項６４】
第１の通信回線からデータを受信して、そのデータから複数のパケットを抽出するパケタイザと、
複数のパケットに対応する統計情報を再帰的に発生する手段と、
を含む、第１の通信回線上のデータをモニタするシステム。
【請求項６５】
統計情報を再帰的に発生する手段は、
複数のパケットに対応するレコードを発生する手段と、
ある期間中にシステムによって受取られた複数のパケットからパケットを識別するためのフィルタと、
上記期間中にシステムによって受取られた複数のパケットに対応する第１の統計情報を発生する手段と、
複数のパケット、複数のパケットに対応するレコード、および第１の統計情報のうちの少なくとも１つを記憶するメモリと、
パケタイザ、レコード発生器、およびメモリのうちの１つから受取られたパケットのタイプを識別するためのパケット・タイプ識別装置と、
第１の統計情報と受取られたパケットの少なくとも１つを用いて第２の統計情報を発生する手段と、
を含む、請求項６４に記載のシステム。
【請求項６６】
さらに、発生された統計情報を表示するための表示装置を含む請求項６４に記載のシステム。
【請求項６７】
さらに、第１の統計情報、第２の統計情報、および期間の少なくとも１つを特定（決定）するユーザ・インタフェースを含む、請求項６４に記載のシステム。
【請求項６８】
さらに、絶対時間供給源に同期した時間供給源と、
複数のパケットのそれぞれのものを第１の通信回線から受信した時間を決定する手段と、を含む、請求項６５に記載のシステム。
【請求項６９】
時間供給源はＧＰＳ（全世界測位衛星システム）から時間信号を受信する受信機である、請求項６８に記載のシステム。
【請求項７０】
第１の通信回線上のデータをモニタするために内部に設置されたコンピュータ読取り可能なプログラム・コード（符号）手段を有するコンピュータ使用可能な媒体を含む製品であって、
上記製品中のコンピュータ読取り可能なプログラム・コード手段は、コンピュータを有効にするためのコンピュータ読取り可能なプログラム・コード手段を含み、
第１の通信回線からデータを受信し、
受信したデータから複数のパケットを抽出し、
複数のパケットに対応する統計情報を再帰的に発生するものである、
製品。
【請求項７１】
第１の通信回線上のデータをモニタするために内部に設置されたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体を含むコンピュータ・プログラム製品であって、
上記コンピュータ・プログラム製品中の上記コンピュータ読取り可能プログラム・コード手段は、コンピュータを第１の通信回線からデータを受信するのに有効にするためのコンピュータ読取り可能なプログラム・コード手段を含み、
受信したデータから複数のパケットを抽出し、
複数のパケットに対応する統計情報を再帰的に発生するものである、
コンピュータ・プログラム製品。
【請求項７２】
第１の通信回線上のデータをモニタするための方法ステップを実行するためにマシンによって実行可能な命令のプログラムを実際に具えた、マシンによって読取り可能なプログラム記憶装置であって、
上記方法ステップは、
第１の通信回線からデータを受信するステップと、
受信したデータから複数のパケットを抽出するステップと、
複数のパケットに対応する統計情報を再帰的に発生するステップと、
を含む、プログラム記憶装置。
【請求項７３】
表示領域を有する表示装置上にパケット・プロパティを表示させるために内部に設置されたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体を含む製品であって、
パケット・プロパティは或る期間中に第１の通信回線から受信されたパケットに対応し、
上記製品中のコンピュータ読取り可能なプログラム・コード手段は、
（ａ）表示領域の第１の部分にパケット・プロパティをリストアップするテーブルを表示し、
（ｂ）上記期間にわたって表示領域の第２の部分にパケット・プロパティのプロットを表示すること、
をコンピュータに実行させるコンピュータ読取り可能なプログラム・コード手段を含むものであり、
プロットは２つの軸を有し、パケット・プロパティはプロットの一方の軸上に表示され、時間はプロットの他方の軸上に表示されるものである、
製品。
【請求項７４】
表示領域を有する表示装置上にパケット・プロパティを表示させるために内部に設置されたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体を含むコンピュータ・プログラム製品であって、
パケット・プロパティは或る期間中に第１の通信回線から受信されたパケットに対応し、
上記製品中のコンピュータ読取り可能なプログラム・コード手段はコンピュータ読取り可能なプログラム・コード手段を含み、このコンピュータ読取り可能なプログラム・コード手段は、
上記コンピュータ・プログラム製品中の上記コンピュータ読取り可能なプログラム・コード手段は、コンピュータに、
（ａ）表示領域の第１の部分にパケット・プロパティをリストアップするテーブルを表示し、
（ｂ）上記期間にわたって表示領域の第２の部分にパケット・プロパティのプロットを表示すること、
をコンピュータに実行させるコンピュータ読取り可能なプログラム・コード手段を含むものであり、
プロットは２つの軸を有し、パケット・プロパティはプロットの一方の軸上に表示され、時間はプロットの他方の軸上に表示されるものである、
コンピュータ・プログラム製品。
【請求項７５】
表示領域を有する表示装置上にパケット・プロパティを表示させるたの方法ステップを実行するためにマシンによって実行可能な命令のプログラムを実際に具えた、マシンによって読取り可能なプログラム記憶装置であって、
パケット・プロパティは或る期間中に第１の通信回線から受信されたパケットに対応し、
上記方法ステップは、
（ａ）表示領域の第１の部分にパケット・プロパティをリストアップするテーブルを表示するステップと、
（ｂ）上記期間にわたって表示領域の第２の部分にパケット・プロパティのプロットを表示するステップと、を含み、
プロットは２つの軸を有し、パケット・プロパティはプロットの一方の軸上に表示され、時間はプロットの他方の軸上に表示されるものである、
プログラム記憶装置。
【請求項７６】
第１の通信回線で送信された第１のデータを収集して分析するために内部に設置されたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体を含む製品であって、
上記製品中のコンピュータ読取り可能なプログラム・コード手段は、
（ａ）第１の通信回線からの第１のデータを受信し、
（ｂ）受信した第１のデータをパケットに分離し、
（ｃ）各パケットの各々のタイプを決定し、
（ｄ）それらの各々のタイプに基づいてパケットを選択し、
（ｅ）選択された各パケットに各々のインデックスを関連付け、
（ｆ）選択された各パケットを、その各々のインデックスを含む各レコードに変換し、
（ｇ）レコードを第１のメモリに記憶させ、
（ｈ）第１の期間に対応する第１の期間値を受信し、
（ｉ）連続する各期間の間に受信されたパケットに対応する少なくとも１つの統計情報を発生し、
（ｊ）第２のメモリに連続する各期間に対する少なくとも１つの統計情報を記憶させること、
を実行させるコンピュータ読取り可能なプログラム・コード手段を含むものである、
製品。
【請求項７７】
第１の通信回線で送信された第１のデータを収集して分析するために内部に設置されたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体を含むコンピュータ・プログラム製品であって、
上記コンピュータ・プログラム製品中のコンピュータ読取り可能なプログラム・コード手段は、コンピュータに、
（ａ）第１の通信回線からの第１のデータを受信し、
（ｂ）受信した第１のデータをパケットに分離し、
（ｃ）各パケットの各々のタイプを決定し、
（ｄ）それらの各々のタイプに基づいてパケットを選択し、
（ｅ）選択された各パケット各々のインデックスを関連付け、
（ｆ）選択された各パケットを、その各々のインデックスを含む各レコードに変換し、
（ｇ）レコードを第１のメモリに記憶させ、
（ｈ）第１の期間に対応する第１の期間値を受信し、
（ｉ）連続する各期間の間に受信されたパケットに対応する少なくとも１つの統計情報を発生し、
（ｊ）第２のメモリに連続する各期間に対する少なくとも１つの統計情報を記憶させること、
をコンピュータに実行させるコンピュータ読取り可能なプログラム・コード手段を含むものである、
コンピュータ・プログラム製品。
【請求項７８】
第１の通信回線で送信された第１のデータを収集して分析するための方法ステップを実行するためにマシンによって実行可能な命令のプログラムを実際に具えた、マシンによって読取り可能なプログラム記憶装置であって、
上記方法ステップは、
（ａ）第１の通信回線からの第１のデータを受信するステップと、
（ｂ）受信した第１のデータをパケットに分離するステップと、
（ｃ）各パケットの各々のタイプを決定するステップと、
（ｄ）それらの各々のタイプに基づいてパケットを選択するステップと、
（ｅ）選択された各パケットに各々のインデックスを関連付けるステップと、
（ｆ）選択された各パケットを、その各々のインデックスを含む各々のレコードに変換するステップと、
（ｇ）レコードを第１のメモリに記憶させるステップと、
（ｈ）第１の期間に対応する第１の期間値を受信するステップと、
（ｉ）連続する各期間の間に受信されたパケットに対応する少なくとも１つの統計情報を発生するステップと、
（ｊ）第２のメモリに連続する各期間に対する少なくとも１つの統計情報を記憶させるステップと、
を含むものである、
プログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、１９９８年１１月２４日に出願した米国特許仮出願第６０／１０９，７１８号による３５Ｕ．Ｓ．Ｃ．第１１９条に基づく優先権を主張する。ここで、この仮出願を参照により組み込む。
【０００２】
この発明は、一般的にはデータ通信に関し、特に、通信データを収集し、分析しおよびモニタするシステムおよび関連する方法に関する。
【背景技術】
【０００３】
現在、通信またはデータ・ネットワークを介して相異なる点にデータおよびその他の情報が通信伝送されることは日常的に行われている。そのようなデータ・ネットワークの一例には、そのようなネットワークを構成する種々のパス（経路）に沿って互いに通信する複数のエンド・ユーザ・コンピュータが含まれている。そのようなコンピュータ・ネットワークの複雑さは、相対的に少数のマシンの間の単純なピアツーピア（peer-to-peer、対等）通信から、ＬＡＮ、ＷＡＮ、およびもちろんインターネットとして知られているグローバル・コンピュータ・ネットワークまでの範囲に及び得る。そのようなネットワークのアーキテクチャは、特定のアプリケーションに応じて大きく変化するが、最も洗練されたネットワークは、そのようなネットワークを介したデータおよび情報の伝送を支援するバックボーン、ノードおよびコンピュータ・サーバを利用する。
【０００４】
会社および個人は、情報を送受信するためだけでなく、ビジネスを処理するため、および情報を送出し受信し再検討するのに必要な考え得る任意の数のその他の活動のためにも、そのようなデータ・ネットワークにますます依存するようになっている。インターネットの出現およびその後に続けられた開発によって、会社、個人およびそのようなネットワークのその他のユーザの間で効率的通信を求める要求は増大するばかりである。
【０００５】
そのようなネットワークを介したデータの送信および受信に対するその要求は、いわゆる“トラフィック（トラヒック）”、即ちそのネットワーク上の適当なパスを通る（traverse）ディジタル符号化情報のボリュームまたは“ペイロード”を発生させる。不幸なことに、ネットワークを通るトラフィックは、しばしば或る点においてまたはそのネットワークの或るパスに沿って輻輳（congestion）または“障害スポット（点）”を生じさせる。そのような輻輳は、腹立たしいほど低速のデータ伝送の形態をとり、または最悪の場合はそのようなネットワークを介して所要の情報を送信または受信することが全く不可能な状態になることがある。この問題は、或るネットワーク・アーキテクチャの下で、せいぜいその最も低速のリンクまたはパス（pathway）が許容する速さでしかそのトラフィックが進行しないことによっていっそうひどくなる。
【０００６】
明らかに、そのようなトラフィック輻輳は幾つもの理由によって望ましくない。そのようなトラフィックに“置かれた（stuck）”ユーザは、彼らのネットワーク・サービス・プロバイダに対してその輻輳について非難し、その結果、そのようなプロバイダは潜在的にビジネスを失う可能性がある。また、そのようなネットワーク遅延は、ネットワーク・ユーザの生産性に対して直接的および間接的に負（マイナス）の効果を与える。
【０００７】
そのようなネットワーク輻輳またはその他のネットワーク“障害スポット”の状態を緩和する１つのアプローチ（解決法）は、その輻輳または障害スポットに関する適時で正確な情報を得ることである。不幸なことに、コンピュータ・ネットワークの複雑さ（intricacies）を解明しその輻輳を緩和しようとする現在の技術による試みには、種々の欠点および短所がある。例えば、現在の技術のネットワーク・モニタ・ツール（監視手段）は、カストマイズ（customize、注文設計）するのが難しく、従ってネットワーク輻輳または障害スポットを分析するための必要なツールが欠けている。そのようなネットワーク“探知器（sniffer）”は、或る特定のプロトコルのトラフィック・ダンプ（dump）を実行することにしばしば限定され、そのダンプではやはりネットワーク輻輳のソース（源）を正確に記述または特定できないかもしれない。換言すれば、現在の技術の大部分のネットワーク・モニタおよび“検出器（sniffer）”は、その機能がリアルタイム・データをまとめる（tabulate、表作成）機能または長い期間にわたってデータを記録する機能に限定されている。
【０００８】
現在の技術によるネットワーク・モニタは、一般的に、ネットワークの性能（パフォーマンス）を評価し推定するためにネットワークに侵入する（入り込む）。参考文献“ＴＣＰ／ＩＰ Illustrated, Volume I − The Protocols”Chapter ７および８、Addison-Wesley Publishing Co.より市販、１９９４年には、そのような技術の１つが記載されている。インターネットにおける情報の“パケット”のラウンドトリップ（往復）時間を推定するために、そのネットワーク・モニタは、追加的なパケットをそのネットワークに送って、そのような追加的パケットの伝達を追跡する。従って、ネットワーク性能そのものを判定するプロセスそのものが、そのトラフィックに情報の追加的パケットを加えることによってその性能をますます低下させる。
【０００９】
上述の方法は侵入的だけでなく概して不正確でもある。特に、一方向（one-way、片道）の時間はテスト・パケットのラウンドトリップの遅延時間を概ね２で除算することによって評価される。しかし、そのネットワークにおける非対称性（この点については後述する）に一部基づいて考えると、ラウンドトリップ時間の半分は一般的に一方向遅延時間に等しくはない。その不正確さを補償するために、現在の技術の或る教示によれば、テスト・パケットをより頻繁にそのネットワークに送り込んで、テスト中またはモニタ（監視）中のそのネットワークの性能をさらに低下させる解決法を用いる。
【００１０】
ネットワーク・トラフィック・フローまたはネットワーク帯域幅のディメンション（測定）がより正確にモデル化できれば、ネットワーク性能はより増強（改善）され得る。特に、トラフィックは或るネットワーク・パス中を必ずしも対称に流れる必要はない。これは、特に、インターネット接続上のエンド・ユーザにおいてそのパスが終端しているときに言えることである。そのようなパスは、エンド・ユーザが、通常、アップロードするペイロードまたはトラフィックより多量のペイロードまたはトラフィックをダウンロードするという点で、非対称である。現在の技術によるネットワーク・モニタは、一般的に、そのような非対称性を検出したりまたはモデル化したりせず、その結果、そうでない場合に要求され得るよりも多くのネットワーク資源が特定のルート（経路）に充てられる。それには追加的費用がかかりそれはコンピュータ資源を浪費する。
【００１１】
従って、ネットワーク性能を改善しネットワーク・トラフィック輻輳を緩和することに対するニーズ（要求）が存在する。さらに、トラフィック・フローに侵入せず、様々なトラフィック・パラメータまたは“パケット”のタイプを分析するよう適合化でき、さらに所要の統計的情報を高速で正確に収集しまとめる（表作成する）ようなツールに対するニーズが存在する。
【００１２】
コンピュータ・データ・ネットワークの利用が増大するに従って、会社および個人は、そのようなネットワーク上でユーザに関するデータまたはそのトラフィックに関するデータを収集し濾波しまたは“プロフィールを生成する（分析をまとめる）”ことにますます興味を持つようになっている。マーケティング会社またはその他の販売組織は、ネットワーク・トラフィックの正確な記録および分析によって収集できる動態的人口統計的情報またはその他のデータに特に関心を持つかもしれない。不幸なことに、多数のインターネット広告者（アドバタイザ）は、ユーザにフォームおよびアンケートに書き込むよう依頼することによって顧客のプロフィール（概要）を取得する。顧客はしばしばそのような質問に回答するのに煩わされたくないので、広告者はその顧客情報のほとんどを逃してしまう。従って、より侵入的でない形態で顧客の“プロフィール”を入手することに対するニーズが存在する。
【００１３】
ネットワークの拡大する利用は、同様に、“ハッカー”またはその他の損害を与える侵入者たちが民間（私有）のまたは保護されたネットワークにおいていたずら（mischief）または場合によっては犯罪的活動を行う可能性を拡大させた。そのようにして、セキュリティ破りのソースを決定することができるシステムは、例えばＦＢＩのような施行機関にとって、コンピュータ関連の犯罪または軽犯罪の風潮を抑えるのに役立つであろう。しかし、現在の技術では、前述のように、セキュリティ動作を容易にするための最適な方法でネットワークにおけるデータのフローを分析し、まとめ（表作成し）、モニタし（監視し）または記録することは一般的にはできない。
【００１４】
ネットワークのモニタを託された会社または個人は、適時的に大量の情報および統計的情報を取得する必要があるだけでなく、そのようなデータを高速で容易に理解可能なフォーマットで見る必要がある。それでも前述のように、現在の技術の解決法は、しばしば時間的順序でそのようなデータの不充分な統計編集またはグラフィック表現を用いて“ダンプ”を供給することにしばしば限定される。従って、ネットワーク・トラフィック情報を編集するだけでなく、さらに或る一般的に必要な計算を行い、ユーザ・フレンドリで（使いやすく）柔軟なフォーマットでそのような計算結果をグラフィック的に表現することが望ましい。
【００１５】
【特許文献１】特開平３−２１２０４０号公報
【非特許文献１】大岸智彦他、「インターネット用パフォーマンスモニタの実装とその解析例」、電子通信学会技術研究報告  SSE98097, IN98-78, CS98-94、１９９８年９月２５日
【非特許文献２】串田高幸他、「インターネットにおけるトラフィック収集と解析」、情報処理学会研究会報告、マルチメディア通信と分散処理７５−３、１９９６年２月２９日
【非特許文献３】(株)エイブルコミュニケーション、「遠隔ＬＡＮ監視システム『MOSTRE』」、コンピュータ＆LAN、株式会社オーム社、第１５巻、第８号、８〜１０頁
【発明の開示】
【発明が解決しようとする課題】
【００１６】
通常のデータ通信モニタ方法およびシステムの短所を克服するために、通信回線（ライン）をモニタする新しい方法を実現する。本発明の目的は、通信データを収集して分析するネットワーク・モニタを実現することである。本発明の別の目的は、通信データを収集して分析する方法を実現することである。
【課題を解決するための手段】
【００１７】
これらの目的およびその他の目的を達成するために、およびその目的を考慮して、本発明は、第１の通信回線上のデータをモニタする方法を実現する。その第１の通信回線からデータが受信され、そのデータから複数のパケットが抽出される。次いで、その複数のパケットに対応する統計的情報が再帰的に生成される。
【００１８】
上述の概略の説明および次の詳細な説明は本発明の典型例であって、本発明をそれらに限定されるものではないと理解すべきである。
【００１９】
本発明は図面を参照して読むことによって次の詳細な説明から最も良く理解される。一般的プラクティスによれば、図面の種々の特徴がスケール（拡大縮小）されるものではないことを強調しておく。逆に、種々の特徴の寸法は、明瞭にするために任意に拡大または縮小されている。
【発明を実施するための最良の形態】
【００２０】
以下に、添付の図面を参照して説明する。図面において同じ参照番号は同じ構成要素を示している。
図１は、第１の通信回線（ライン）１０４を介して典型例のネットワークＮ１  １０６に結合された、本発明による典型例のネットワーク・モニタ１０２を例示している。ネットワーク・モニタ１０２は、通信回線１０４上でデータ通信（トラフィック）を受信（モニタ）して、通信回線１０４上のデータ・トラフィックのリアルタイム・メトリック（距離、計量、測定基準）または統計的情報を供給する。
【００２１】
通信回線１０４は、単一データ・リンク層プロトコルを用いて、より高い階層プロトコル層の様々な多数のプロトコルのトラフィックをトランスポート（輸送）する。そのような１つの階層プロトコル構成２００が図２に例示されている。ネットワークＮ１  １０６とルータ１０８の間のトラフィックにおけるデータ・リンク層プロトコル２０２、この典型例の場合はイーサネット（Ethernet）(登録商標)は、カプセル化された（encapsulated、隠蔽された）ＩＰＸ、ＩＰ、ＡＲＰまたはその他のネットワーク層２０４のトラフィックを含んでいてもよい。そのＩＰトラフィックは、カプセル化されたＵＤＰ、ＴＣＰ、ＩＣＭＰまたはその他のトランスポート層２０６のトラフィックを含んでいてもよい。そのＴＣＰトラフィックは、カプセル化されたＷｅｂ、ＦＴＰ（ファイル転送プロトコル）、ドメイン・ネーム・サービスまたはその他のアプリケーション層２０８のトラフィックを含んでいてもよい。
【００２２】
本発明によるネットワーク・モニタ１０２はハードウェアおよびソフトウェア（後述する）を含んでいる。そのハードウェアおよびソフトウェアは、１つまたは複数のプロトコル層におけるそのようなトラフィック上で種々のリアルタイム統計的情報を発生することができるような方法で、ネットワーク・トラフィックを収集して分析する。ネットワーク・モニタ１０２によって発生されるリアルタイム統計的情報は、サービスの品質と量の分析、サービスの品質とサービスの量に基づく課金、ダイナミック（動的）なネットワーク資源の割り当ておよび計画、データ・コンテンツに基づく顧客プロフィール作成、ネットワーク・セキュリティ分析、およびセッション再生を可能にする。典型例の統計的情報は、バイト・カウント（計数値）、ビット・カウント（計数値）、一方向（片道）またはラウンドトリップ（往復）の遅延、応答時間、再送信バイト、１つのホスト当たりの発信バイト数、１つのホスト当たりの着信バイト数、発信−着信ホスト・ペア（対）カウント、ｗｅｂアボート（打ち切り）レート（率）、スループット、グッドプット（goodput）、および遅延または欠落（ロス）による再送信バイト百分率（パーセント）を含んでいる。これらの統計的情報は、データ・リンク層とアプリケーション層の間の１つまたは複数のプロトコル層における第１の通信回線１０４上のトラフィックに基づいて選択的に供給されればよい。
【００２３】
図３に示した典型例のネットワーク・モニタ３０２の動作を、図４におけるフローチャートを参照して説明する。ネットワーク・モニタ３０２は、第１の接続３１２によって第１の通信回線３０８に結合された第１のネットワーク・インタフェース３０４と、第２の接続３１４によって第２の通信回線３１０に結合された第２のネットワーク・インタフェース３０６とを含んでいる。第１のインタフェース３０４は第１の通信回線３０８から第１のデータ（ビットストリーム）を受信し（ステップ４０２）、次いでそのビットストリームが複数のパケットに分離（分解、segregate）される（ステップ４０４）。ここでは分離（segregate）という用語は、前に定義したパケットがビットストリームから抽出されていることを意味するものとして用いられる。そのビットストリームは、インタフェース３０４またはホスト・コンピュータ３１６のいずれかによって複数のパケットに分離すればよい。そのパケットはメモリ３１８に格納される。そのメモリは、この実施形態では階層的であり、短期メモリ３２０および少なくとも１つの長期メモリ３２２を含んでいる。次いで、ユーザ・インタフェース３２４によって最適制御されるプロセッサおよびクエリ（問合せ）エンジン３１６は、図４を参照して以下で説明するようにそのパケットを処理する。
【００２４】
典型例の実施形態において、ネットワーク・モニタ３０２は、第１の通信回線３０８に非侵入的形態で結合される。即ち、ネットワーク・モニタ３０２は通信回線上のトラフィックのフローを直接的に妨害しない。ネットワーク・モニタ３０２は、例えば、第１の接続３１２をスイッチまたはルータにおけるポートまたはジャックにプラグインする（差し込む）ことによって、通信回線３０８をブレークして第１の接続３１２が結合されるＹコネクタをインストールすることによって、その第１の接続をハブに接続することによって、またはネットワーク・モニタ３０２を中央局（交換局）におけるモニタ・ジャック３０２に接続することによって、通信回線３０８に結合されてもよい。
【００２５】
プロセッサおよびクエリ・エンジン３１６は、パケットをレコードに変換して、メモリにそのレコードを格納する（ステップ４１４〜４２２）。プロセッサおよびクエリ・エンジン３１６は、そのパケットに対応する統計的情報を発生する適正なプログラムを含んでいる（ステップ４０６〜４１２）。パケットに対する統計的情報の発生は種々の方法で実現できるが、１つの好ましいアプローチ（方法）では、所定のタイマ期間または“サンプリング時間”にわたって受信された１組のパケットを処理して、対応する統計的情報を発生する（ステップ４０８）。次いで、その処理が、連続する複数の期間（time periods）に受信された連続するパケット組に対して、再帰的に繰り返される（ステップ４１０）。その処理中に、適正なプログラムが、適正な期間に（時間間隔で、intervals）その発生された統計的情報をメモリに格納する。そのような期間（間隔）は、パケットの各組に対応する各期間（間隔）の順序と同じ順序であることが好ましい。
【００２６】
そのパケットをレコードに変換することによって、次に説明するように多様な種々の別の統計的情報を発生させることが可能になる。そのレコードは、まず各パケットのタイプを決定して（ステップ４１４）次いでその決定されたタイプに基づいてそのパケットを濾波する（ステップ４１６）ことによって、生成される。各パケットに対してインデックスが発生され（ステップ４１８）、次いでそのパケットはインデックスされた（インデックスが付加された、インデキシングされた）レコードに変換されて（ステップ４２０）、メモリに格納される（ステップ４２２）。次いで各パケットに対して前に発生された統計的情報を用いてさらに統計的情報が発生され（ステップ４２６）、次いで、例えば表示装置（ステップ４２８）、別の統計的情報に基づいてネットワーク・ルーティングをダイナミックに（動的に）調整するルータ（ステップ４３０）、その発生された統計的情報に基づいて決定されたサービスの品質または量に基づいてクライアントに課金する課金サービス（ステップ４３２）のような、１つ以上の（１つまたはそれより多い）アプリケーションに供給される。
【００２７】
次に、ｗｅｂトラフィックをカプセル化するＴＣＰパケットをさらにカプセル化するカプセル化されたＩＰパケットを含んだイーサネット（Ethernet）通信回線について（図２参照）、図４のプロセスのアプリケーションを説明する。そのイーサネット・ビットストリームは、通信回線から受信されて（ステップ４０２）、パケットに分離される（ステップ４０４）。そのパケットは複数の組に分割される。その各組は、連続する複数の１秒期間（典型例の期間）の中の１つの期間において受信されたパケットを含んでいる（ステップ４０６）。各１秒期間において受信したビット数（典型例の統計的情報）が計算される（ステップ４０８）。次の１秒期間に対応する次の組のパケットを受信し（ステップ４１０）次いでそれらのパケットにおけるビット数を計算する（ステップ４０８）ことによって、連続する期間に対して連続的な統計的情報が生成される。各１秒期間に対するビット・カウントは、それが生成されたときにメモリに格納される（ステップ４１２）。
【００２８】
各パケットのタイプ（例えば、ＩＰ、ＡＲＰ、・・・）が判定される（ステップ４１４）。ユーザがＩＰパケットのトラフィックを分析したいだけの場合には、そのパケットは濾波されてＩＰパケットだけを通過させる（ステップ４１６）。ネットワーク・モニタが各ＩＰパケットを受信した時間は、各対応するＩＰパケットに対するインデックスとして用いられる（ステップ４１８）。次いで、インデックスされたレコードが、各ＩＰパケットに対して生成されて（ステップ４２０）、メモリに格納される（ステップ４２２）。第１のフィールドＦ１としてのインデックスと第２のフィールドＦ２としてのパケットとを有する典型例のレコードを次に例示する。
【表１】
2006129533.tif 000003
【００２９】
ＩＰパケットを通過させるだけの濾波に加えて（ステップ４１６）、そのフィルタを用いて、上述のレコードが第２のフィールドＦ２にＩＰ部分のみを含むようにイーサネット・オーバヘッド部分を切り捨てる（トランケートする）ことによって、例えばＩＰ部分のみのようなパケットの一部をだけを通過させる。その代替構成として、そのレコードは複数のフィールドを含んでいてもよい。その各フィールドは、例えばソース（送信元、発信）アドレスまたは宛先アドレスのようなＩＰパケットの一部に対応する。濾波は複数のフィールドの中の任意の１つ以上のものに基づいて行われてもよい。
【００３０】
その格納されたレコードのみからまたはステップ４０６〜４１２において発生されたパケットに対する統計的情報との組み合わせで、任意の数の統計的情報を発生させることができる。この例において、関連する技術において知られている別の統計的情報には、連続する各１分において受信された全てのパケットにおけるビットの数に対する受信したＩＰパケットにおけるビットの数の比率が含まれる（ステップ４２６）。この統計的情報の計算は本発明によって容易に行われる。その理由は、その格納されたパケットは既に全てがＩＰパケットであり、受信時間によってインデックスされているからである。そのようにして、インデックスによってそのレコードをソートし、連続する各１分に対するレコードの組を読み出し、各組のレコードにおけるビット数を付加することによって、その計算が実行される。１分当たりの全てのパケットにおけるビットの数は、１秒毎に発生されそれぞれ６０個からなる複数のグループ（即ち各グループは１分に等しい）において発生される前に計算されたビット・カウントの総和を求めることによって計算される。
【００３１】
以上で、本発明によるネットワーク・モニタによって行われる濾波および格納の方法の具体例を、図４を参照して説明した。本発明によるネットワーク・モニタ５００のデータ収集および分析の方法の柔軟性を、図５のデータ・フロー図を参照して以下説明する。
【００３２】
入来するビットストリームは、パケタイザ（パケット化器）５０２によってパケット化される。ビットストリームの復号は、既知のプロトコルについては自動的に実行すればよく、またはカスタムの（特注、オーダメイド）または民間の（proprietary）プロトコルについてはユーザ固有のパラメータに従って実行すればよい。例えば、新しいデータ・リンク層プロトコルが導入される場合には、ネットワーク・モニタ５００は、ユーザ・インタフェース５２０を用いて入力されたユーザ決定（規定）のプロトコルに応答するための適正なプログラムを含んでいる。従って、本発明のネットワーク・モニタ５００は、新しいプロトコルのパケット構成を認識して入来ビットストリームをパケット化する。次いで、そのネットワーク・モニタは、より高い各プロトコル層を通してそのデータ収集および分析の方法を実行する。この柔軟性は、データ・リンク層に限定されない。換言すれば、本発明によるネットワーク・モニタ５００は、他のプロトコル層におけるカスタム・プロトコルに対して通信データ（データ通信）を収集し分析することができる。
【００３３】
そのパケットは、パスＡを用いて短期メモリ５０８に直接格納すればよい。これは、通信回線から受信した全てのデータを格納するのに役立つ。その短期メモリ５０８は、周期的にデータを長期メモリ５１０に転送して、オーバフローを防止する。１つの短期メモリ５０８および１つの長期メモリ５１０を有するものとして示されているが、本発明の教え（知見）は、複数のメモリ装置を含むその他の階層的メモリ構成にも適用できる。例えば、そのメモリは、ランダム・アクセス・メモリ（ＲＡＭ）、ディスク・メモリおよびテープ・メモリを含んでいてもよい。ＲＡＭが満たされると、データがディスク・メモリに転送される。ディスク・メモリが満たされると、データはテープ・メモリに転送される。テープ・メモリが満たされると、例えば、記録保管のために連続的または長期データ蓄積のためにテープが交換される。長期メモリ５０８に対する二重矢印およびメモリ５０８、５１０の間の二重矢印によって示されているように、そのメモリに格納されたデータは、後で分析用にまたは後述するアプリケーション５２２〜５３０の中の１つのアプリケーション用に検索されてもよい。
【００３４】
セキュリティ・アプリケーション５２８用に、全てのパケットをメモリに直接格納することが望ましい。例えば、ネットワーク・モニタは、１週間の期間に対する全ての通信を格納して最も古い蓄積データをオーバライト（上書き）するようにプログラムしてもよい。セキュリティ破りがその発生の１週間以内に検出された場合には、その蓄積データはネットワーク・モニタによって分析されてそのソースおよびそのセキュリティ破りの度合いが決定される。
【００３５】
そのパケット化されたデータは、代替構成として、パケタイザ５０２によってインデックス発生器５０４へ供給されてもよい。インデックス発生器５０４は、受信パケットの中の１つ以上のものに対応するインデックスを発生する。１つのパケットに対応する１つのインデックスの例には、そのネットワーク・モニタがそのパケットを受信した時間を示すタイム・スタンプ、パケット（プロトコルおよび／または層）のタイプ、パケットのサイズ、パケット番号（１、２、３、・・・）、インタフェース番号、アプリケーションおよび関係するセッションが含まれる。レコード発生器５０６は、パケットおよびその発生されたインデックスを受け取り、その発生されたインデックスを含んだレコードを発生する。その代替構成として、レコード発生器５０６は、その受け取ったパケットおよびインデックスを、メモリ５０８および５１０に前に格納された現在のレコードと結合させてもよい。また、そのレコード発生器は、パスＣを介してパケットを直接受け取って、そのパケットを含んだインデックスされていないレコードを生成してもよく、またはメモリ５０８、５１０に前に格納された現在のレコード中にそのパケットを結合させてもよい。
【００３６】
例えば、１つのレコードはＡＴＭセッションに対応して発生される。ＡＴＭセッションに対応する第１のセル（固定サイズのパケット）が受信されたとき、その第１のセルはインデックスされて、インデックスされたレコードが発生されてメモリ５０８、５１０に格納される。そのインデックスは例えばＡＴＭセッションの識別子であってもよい。ＡＴＭセッションに対応する別のセルが受信されたとき、順番に受信されるとは限らないが、レコード発生器５０６は、パスＣを介してそのセルを直接受け取り、前に格納されたインデックスされたレコードをメモリ５０８、５１０から読み出し、次いでその新しく受け取ったセルをそのインデックスされたレコードに結合させてもよい。レコード発生器５０６は、一般的なレコードにおける一般的なＡＴＭセッションに属するパケットを単に結合させることに加えて、さらにそのレコード内のその受信ＡＴＭセルをその正しい順序に配置してもよい。
【００３７】
レコード／パケット・タイプ識別器（identifier）５１２は、レコード発生器５０６またはメモリ５０８のいずれかからパケットまたはレコードを受け取って、その対応する“タイプ”または“プロパティ（特性）”を識別することによってその受け取ったパケットまたはレコードを特徴付ける（特徴を判別する）。パケットまたはレコードのタイプまたはプロパティは、多様性のある（versatile）識別子であり、ユーザ・インタフェース５２０を介してプログラムすればよい。パケットまたはレコードのタイプまたはプロパティの例には、対応するビットまたはタイプの数、そのプロトコル層、特定のプロトコル層におけるそのプロトコル・タイプ、ソース・アドレス、宛先アドレス、エンド・ユーザＩＤおよびアプリケーションＩＤが含まれる。次いで、レコードまたはパケットは、パケット・タイプ・フィルタ５１６において、レコード／パケット・タイプ識別器５１２によって識別されたプロパティまたはタイプに基づいて濾波される。次いで、その濾波されたレコードまたはパケットはインデックスされ、インデックスされてレコードに向けられ、またはメモリ５０８、５１０に直接格納される。
【００３８】
期間（time period）フィルタ５１４は、そのレコード発生器またはメモリ５０８、５１０からレコードまたはパケットを受け取って、ネットワーク・モニタによって通信回線からそれが受信された時間に基づいてそれを濾波する。次いで、そのレコードまたはパケットは、連続するそれぞれの期間においてそのネットワーク・モニタによって受信されたパケットに対応する複数のグループに分離される。次いで、スタティスティック（統計的情報）発生器５１８は、連続する対応する各期間において受信されたパケットに対応する連続する期間の各々に対して統計的情報を発生する。
【００３９】
その濾波されたパケットおよびその濾波された統計的情報はメモリに格納される。図５における機能ブロック相互間のパスは、メモリのその内容（コンテンツ）を再び用いて別の濾波または統計的情報発生を実行してもよいことを示している。従って、本発明によるネットワーク・モニタは、前に発生した統計的情報または格納されたパケットに基づいて統計的情報を発生することによって、再帰的に（recursively）データを収集して分析してもよい。
【００４０】
ユーザ・インタフェース５２０は、上述のようにそのネットワーク・モニタをカスタム・プロトコル用にプログラムすることに加えて、さらにそのネットワーク・モニタ内における各機能ブロックの各動作パラメータを規定してもよい。例えば、ユーザは、インデックス発生器５０４によって用いられるインデックス、期間フィルタ５１４によって用いられる期間、および連続する期間の各々に対してスタティスティック発生器５１８によって発生される統計的情報を特定（指定）してもよい。
【００４１】
ネットワーク・モニタ５００によって発生されるその収集されたデータおよびその対応する分析（結果）は、１つ以上のアプリケーション５２２〜５３０に供給されてもよい。例えば、表示装置５２２は、図１０〜２８における表示スクリーンに関してさらに後で説明するように、ユーザ選択に応答して統計的情報、レコードまたはパケットを表示してもよい。
【００４２】
ネットワーク・モニタ５００によって発生された統計的情報は、ネットワーク・アドミニストレータ（administrator）またはルータ５２４に供給されて、ネットワーク性能に対応する統計的情報に応答してネットワーク上で、通信のダイナミックなルーティング、および“イールド・マネジメント（yield management）”としても知られているネットワーク帯域幅管理（マネジメント）を可能にする。一方向遅延を測定すること、および様々なプロトコル層におけるプロトコル毎のトラフィック統計的情報を供給することにより、本発明によるネットワーク・モニタが、トラフィック・フローを定量化することによってその非対称性を識別して、その測定されたフローに従ってネットワーク・アドミニストレータにネットワーク資源のサイズを適正に決定させることができるということが、直ぐに分かる。
【００４３】
通信ネットワークはそのサービス層において最適化できる。その理由は、本発明によるネットワーク・モニタは任意のプロトコル層におけるトラフィック・フローを分析するのに適したプログラムを含んでいるからである。様々なサービスが相異なるサービス要求を有するかもしれないが、それらのサービスはしばしば１つの通信ネットワークにおいて統合される。それにもかかわらず、例えばリアルタイム・マルチメディア、ＩＰ上の音声、データおよびインターネットのようなサービスの各々は、固有のネットワーク・サービス要求を有する。例えば、ＩＰ上の音声について、音声伝送品質低下についての許容度が低いために、遅延またはデータ欠落を含むサービスの品質がより低くなることは許容できないかもしれない。それに対して、データ伝送は、再送によるエラー回復（修復）によって欠落的環境においても進めることができる。典型例のルータ５２４は、それらのサービス要求に応じて様々に決定される相異なるサービスに対応するトラフィックをルーティング（経路指定）するよう構成される。
【００４４】
本発明によるネットワーク・モニタは、各個々のサービスおよび／またはユーザに対応するフローを識別し様々なサービスとの間のインタラクション（対話）の分析（結果）を供給するプログラムされた機能を含んでいる。その情報はルータによって使用されて、例えば、ネットワーク・トポロジ、ルートまたはサービス分離等の最適化についてリアルタイムまたは非リアルタイムの判断を行って、全ての各サービスにそのサービス固有のサービス品質要求を与えるのに適した最適構成を実現する。
【００４５】
課金システム５２６は、様々なサービスおよび様々なホストに対応するサービスの品質および／または量の統計的情報を受け取ってそれに従ってクライアントに課金するよう構成してもよい。それによって、前の測定されないサービスに対する均一（flat）レートの課金ではなくて、その統計に基づいてクライアントに課金することが可能になる。例えば、クライアントは、ＩＰ通信を介した音声に対してクライアントの制限のないインターネット・サービスを用いてもよい。本発明によれば、ネットワーク・モニタ５００は、ＩＰ呼における音声の番号、持続時間および宛先に関する特定のクライアントに対する統計的情報を発生してもよい。次いで、その統計的情報は課金システム５２６によって課金情報に変換されて、そのクライアントはそれに従って課金される。従って、ＩＰ呼における音声に対してインターネットを使用するインターネット加入者は、非インターネット電話サービスに対して行われるように、呼の品質、持続時間および宛先に従って課金されてもよい。同様に、クライアントは、電子商取引（ｅコマース）、株取引の数、リアルタイム株相場（取引価格）に対する要求の数、およびその他の取引に基づいて課金されてもよい。その代替構成として、クライアントは、提供されたサービスの品質に応じて決まる相異なる課金レートを含んだサービス契約をしてもよく、それに従って課金されてもよい。また、ネットワーク・モニタを用いて、最低サービス標準またはサービス・レベル契約を保証するサービス契約に従うことを保証してもよい。
【００４６】
上述のように、その収集されたデータをセキュリティ５２８に対して用いて、セキュリティ破りを識別し、不適切なネットワーク使用または違法な活動を識別してもよい。例えば、パケットを濾波して、サーバに対してＦＴＰ（ファイル転送プロトコル、ファイル転送プログラム）された特定のファイルを識別して、誰が特定のマシンまたはサーバをテルネット（telnet）（にログオン）したかを識別し、いったんログオンされたときはその者が何をタイプしたかを確認し（見）てもよい。
【００４７】
ネットワーク・モニタからの統計的情報は、ユーザまたはユーザのグループのプロフィールを作成するためのそのユーザまたはユーザ・グループに対応していてもよい。多くのインターネット広告は、ユーザに幾つかの質問に回答するよう依頼することによって生成された顧客プロフィールに基づいて、各顧客に送られる。本発明によるネットワーク・モニタは、その内容（コンテンツ）に基づいて各受信パケットを濾波して個々の顧客プロフィールを形成することができる。例えば、フィラデルフィア顧客ベースをモニタするノードは、全てのユーザからの全てのパケットをそれがインターネットに入る前において検査してもよい。また、それらのユーザに返されたトラフィックは、パケット内の特定のテキストを探す（濾波する）またはそのユーザによって訪問（アクセス）されたｗｅｂサイトを探すことによって、分析することができる。次いで、例えば目標（ターゲット）の電子メールのようなユーザにとって興味のあるユーザに対する内容（コンテンツ）を目標にすべく、その濾波されたデータに基づいてユーザまたはユーザ・グループ毎のプロフィールが発生されてもよい。濾波のための上述の方法が法律施行またはセキュリティ当局によって同様に用いられて、通信がモニタされて、不法な動作が検出され、または選択されたユーザの活動がモニタされてもよい。
【００４８】
また、ネットワーク・モニタを用いて、再生装置５３０にデータを供給して、通信回線からモニタされたクライアント・セッションを再生してもよい。全ての受信パケットは記録されて、特定のセッションに基づいて濾波されてもよい。そのセッションは、パケットそのものに含まれている情報に基づいて、または例えばＳＤＲ（セッション・ディレクトリ・プロトコル）のような特定のパケットまたはチャネルにおいて受信されたセッション情報に基づいて、識別されてもよい。次いで、そのセッションに対応するパケットは、そのユーザに対して元々提示された形態で再生すればよい。この方法を用いて、ユーザのまたはＩＰ会話における音声の全ての活動を再生してもよい。
【００４９】
そのネットワーク・モニタは、ユーザによって、民間のまたはカスタムのプロトコルを用いてトラフィックをトランスポートする通信回線をモニタするように構成されてもよい。ユーザは、ネットワーク・モニタと通信回線の間の適した物理層インタフェースと共に、ユーザ・インタフェースを用いて民間のプロトコル・パラメータを入力してもよい。そのパラメータは、ネットワーク・モニタがビットストリームからパケットを分離するように通信回線上でトランスポートされたビットストリーム内のパケット構成を規定する。また、そのパケット・フィールドの内容（コンテンツ）に基づいた統計的情報を供給するようにそのネットワーク・モニタをカスタム・クエリ（問合せ）を用いて構成することができるように、追加的パラメータがパケット内の各フィールドを規定してもよい。同様に、ネットワーク・モニタは、リンク層より高い層におけるカスタム・プロトコルに対応するデータを受信して分析するようプログラムされてもよい。
【００５０】
典型例のネットワークにおいて、データ通信プロトコルは、タイム・スタンプ・フィールドを含むように各パケットを規定してもよい。ソースから宛先に送信されたパケットは、ソースによる送信の時間を示すタイム・スタンプ・フィールドにタイム・スタンプ値を含んでいる。パケットが宛先で受信されたとき、その宛先は、現在の時間値からタイム・スタンプ値を減算することによってそのソースからその宛先までの一方向送信持続時間または遅延を計算できる。そのプロトコルは、ネットワーク・モニタ相互間の通信によって別々のネットワーク・モニタにおけるパケット・ペア（対）をマッチさせる（一致させる、突合せる）必要性をなくすことによって、より単純な一方向の送信遅延およびサービス品質の測定を可能にする。
【００５１】
そのソースとその宛先の間に多数の別々の中間伝送パスを含んでいるネットワークに対して、一方向のエンドツーエンド（end-to-end）送信持続時間情報は、そのソースとその宛先の間のどこかにおける特定の障害に関する情報を供給しない。障害診断を改善するために、エンドツーエンド遅延を計算するだけでなくて、本発明によるネットワーク・モニタは、そのソースとその宛先の間の中間の別々の伝送パスの中の１つに結合できる。そのネットワーク・モニタは、そのソースからその宛先までそのネットワークを通るパケットからタイム・スタンプ値を受信できる。そのタイム・スタンプ値を、ネットワーク・モニタによるパケットの受信時における現在の時間に対して減算して、中間持続時間値を決定してもよい。上述のような１つ以上の中間的に隔たったモニタを用いてネットワークにおける障害の位置を突き止めてもよい。典型例の実施形態において、そのソース、宛先およびネットワーク・モニタの各々は、伝送持続時間を計算するために用いられる現在の時間を受信するためのＧＰＳ（グローバル・ポジショニング衛星、全世界測位衛星）インタフェースを含んでいる。
【００５２】
本発明によるネットワーク・モニタが供給できるメトリックのうちの１つは、特定のソースまたは宛先に関する特定のソース−宛先のペア（対）に対するアボートされた接続（コネクション）の数の表示（インジケーション）、特定のソースまたは宛先に対する接続の合計に対するアボートされた接続の比率（ratio）に関する情報である。障害のあるＴＣＰ（伝送制御プロトコル）サービスを識別する典型例の方法を、図６におけるフローチャート６００を参照して説明する。
【００５３】
この分野の専門家に知られているように、ＴＣＰセッションは、クライアントによって通常オープンされ（開かれ）ており、それがクライアントに送信するデータをそれ以上持っていないときにサーバによってクローズされる（閉じられる、終了される）。ＴＣＰセッションがクライアントによってクローズされている場合、それはそのセッションが途中で中断されていることを示す。一例としてｗｅｂを用いると、クライアント（ユーザはブラウザを用いる）は、所望のデータに対する要求に関する考えが単純に変わったこと、または受信中の所望のデータの遅延に耐えられないことを含めた諸々の理由によって、そのセッションをクローズしてもよい。
【００５４】
ネットワーク・モニタは、通信回線からパケットを受信して（ステップ６０２）、そのパケットがＴＣＰセッションに属するかどうかを識別する（ステップ６０４）。そのネットワーク・モニタは、そのパケットが属する幾つかのトランスポート層プロトコルの中のいずれかを識別するパケット中のプロトコル・フィールドを識別して復号することによって、そのパケットがＴＣＰパケットかどうかを識別してもよい。いったんパケットがＴＣＰとして識別されると、ＴＣＰクライアントおよびＴＣＰサーバは識別される（ステップ６０６）。次いで、そのパケットを検査して、それがＴＣＰ接続をオープンするかまたはＴＣＰ接続を開始するかを判定する（ステップ６０８）。そのパケットがＴＣＰセッションのオープニングまたは開始のパケットである場合には、前に識別された（ステップ６０６における識別）ＴＣＰサーバに対するＴＣＰセッションの合計数のカウントがインクリメント（増分）される（ステップ６１０）。
【００５５】
そのパケットがオープニング・パケットでなかった場合は、次にネットワーク・モニタはそのパケットがＴＣＰ接続をクローズしているかどうかを判定する（ステップ６１２）。そのパケットがＴＣＰ接続をクローズしていない場合は、ネットワーク・モニタは、次のパケットを取得する（ステップ６０２）。それ以外の場合は、ネットワーク・モニタは、例えばＦＩＮビットを検査することによってその接続がサーバによってクローズされるかどうか、またはその接続がクライアントによってクローズされるかどうかを判定する（ステップ６１４）。サーバによるクローズはセッションの正常終了を示し、ネットワーク・モニタは、次のパケットを取得する（ステップ６０２）。サーバ以外のものによるクローズはそのセッションの途中終了（中断）を示し、特定のサーバに対応する途中のクローズ・カウントはインクリメントされる（ステップ６１６）。特定のサーバのＴＣＰセッションの合計に対する途中クローズの比率が計算されて（ステップ６２０）、所定の閾値と比較される（ステップ６２２）。途中クローズの比率がその閾値を越えた場合には、その特定のサーバは“障害のあるサーバ”として識別される（ステップ６２４）。
【００５６】
この分野の専門家に知られているように、幾つかのネットワークでは、特定のＴＣＰセッションに対応する全てのパケットは同じ通信回線中を伝達しなくてもよく、従って１つのネットワーク・モニタ・インタフェースによって検出されなくてもよい。ネットワーク・モニタは、全てのパケットを“捕捉（catch）”するためにサーバまたはクライアントにまたはその近傍に配置することができる。その代替構成として、上述のように複数のネットワーク・モニタ・インタフェースを用いてパケットに対応するレコードを格納してもよい。次いで、その格納されたレコードが分析されて、いずれのサーバに“障害”があり得るかが判定される。典型例の実施形態において、遠隔ネットワーク・モニタの各々は、例えばフィルタを用いてＦＩＮパケットを探し、ＦＩＮパケットを検出したときに、遠隔ネットワーク・モニタは、ＦＩＮパケットの内容（コンテンツ）を含んだメッセージを、“障害のあるサーバ”の判定を行う中央モニタに送信する。
【００５７】
アボートされた接続の測定および障害のあるサーバの識別に関する教えをＴＣＰセッションについて以上説明したが、その教えは、一般的にその他のプロトコルおよびその他のプロトコル層に適用でき、障害のあるＴＣＰサーバを識別することに限定されない。例えば、他のプロトコルにおいて、セッションは、それがクライアントであってもまたはサーバであっても、同じノードによってオープンされてクローズされる。さらに、そのセッションのペイロードは、別々の通信リンクからのまたは別々の通信リンク上のセッション制御メッセージからの別々のパケットで送信されてもよい。
【００５８】
図７に示された別の代替実施形態において、本発明による通信をモニタするためのシステム７０１は、１つ以上のネットワーク・モニタを含んでいてもよい。その各モニタは図７に示されたネットワークにおけるそれぞれの通信回線に結合されている。第１、第２および第３のネットワーク・モニタ７００、７１０、７２０は、第１、第２および第３の通信回線７０２、７１２、７２２にそれぞれ結合される。各ネットワーク・モニタ７００、７１０、７２０は、図５におけるデータ・フロー図に関して上述したようなそのそれぞれの通信回線から受信されたデータを収集して分析する。
【００５９】
複数のネットワーク・モニタ７００、７１０、７２０を含んでいるシステムは、独立のデータ収集および分析を実現することに加えて、その相異なるネットワーク・モニタにおいて受信されたデータを相関させて、改善されたネットワーク性能分析を実現する。例えば、一方向遅延は、第１の通信回線７０２から第２の通信回線７１２まで伝達するデータに対して計算すればよい。
【００６０】
一方向遅延を計算する典型例の方法が、図８におけるフローチャートによって示されている。一般的に、“同じ”パケットが別々の２つのネットワーク・モニタにおいて識別されて、それが各モニタによって受信されたときの両者の間の時間の差を用いて一方向遅延が計算される。“同じ”パケットは、別々のネットワーク・モニタの間で変化するパケットの各部分を削除（消去）することによって識別される。
【００６１】
第１と第２のネットワーク・モニタ７００、７１０の各々は、そのそれぞれの通信回線７０２、７１２からデータを受信する（ステップ８０２、８０６）。パケタイザ５０２は、その受信データをパケットに分離して（ステップ８０３、８０７）、各インデックス発生器（５０４）は、各パケットの受信時間（タイム・スタンプ）を各パケットに関連付ける。レコード発生器５０６は、各パケットに対応するタイム・スタンプとデータ・パケットの固有の部分（ＵＤＰＤ）とを含んでいるレコードを発生して、そのレコードをメモリ５０８、５１０に格納する（ステップ８０４、８０８）。
【００６２】
ＵＰＤＰは、データ・ユニットを一意的に識別可能にする受信パケットの部分である。例えば、イーサネット（Ethernet）通信回線およびＩＰペイロードについて、そのパケットからイーサネット・ヘッダが取り出され、ＩＰｔｔｌおよびチェックサム・フィールドがゼロにされ、ＩＰヘッダおよび連続する２０個のバイトがセーブ（保存）されてレコード発生器５０６によってＵＰＤＰレコードに組み込まれる。そのＵＰＤＰは、様々なプロトコルに対して異なるものであり、ユーザ・インタフェースを用いてプログラムされればよい。
【００６３】
第１のネットワーク・モニタ７００のＵＰＤＰレコードは第２のネットワーク・モニタ７１０のＵＰＤＰレコードと比較されて、ＵＰＤＰのペア（対）がマッチされる（突合され）（ステップ８１０）。第１と第２のネットワーク・モニタは通信リンク７３０を介して通信すればよい。通信リンク７３０は、モニタ中の（帯域内の）ネットワークを通してネットワーク・モニタの通信によって構成すればよい。その代替構成として、通信リンク７３０は、例えば電話回線、無線接続または衛星接続を介してそのネットワークの外側の（帯域外）通信によって構成してもよい。
【００６４】
マッチ（一致）したＵＰＤＰの各ペア（対）に対して、第２のネットワーク・モニタからの対応するタイム・スタンプｔｓ２が第１のネットワーク・モニタからのタイム・スタンプｔｓ１から減算される（ステップ８１２）。この時間差ｔｓ１−ｔｓ２は、ＵＰＤＰに対応するデータが第２のネットワーク・モニタ７１０から第１のネットワーク・モニタ７００まで伝達するための持続時間を表す。ＵＰＤＰを計算することによって、同じまたは相異なる通信プロトコルを用いる第１と第２の通信回線７０２、７１２の間における或るペイロードの伝送持続時間を、上述の方法によって決定すればよい。
【００６５】
典型例の実施形態において、時間差ｔｓ１−ｔｓ２は、第１の通信回線７０２の遅延を明示するよう正規化される（ステップ８１４、８１６）。その遅延は、次の等式によって示されるように、ＵＰＤＰに対応するパケットが第１の通信回線を通るための遅延ｘｍｉｔ−ｄｅｌａｙ（伝送遅延）をその時間差から減算することによって、正規化される。
[数１]
正規化されたネットワーク遅延
＝（ｔｓ１−ｔｓ２）−（linked_speed／packet_length）
【００６６】
ここで、ｌｉｎｋ＿ｓｐｅｅｄ（リンク速度）は第１の通信回線７１２における伝送レート（速度、率）であり、ｐａｋｅｔ＿ｌｅｎｇｔｈ（パケット長）はＵＰＤＰを含んでいた第１の通信回線上のパケットの長さである。その計算されたネットワーク遅延は、キュー（待ち行列）遅延および伝送遅延による成分（コンポーネント）含んでいるかもしれない。図５にデータ・フロー図によって示されているように、スタティスティック発生器５１８はパケットを受信することができ、そのパケットに対してＵＰＤＰレコードが発生され、スタティスティック発生器５１８は、パケットにおけるビット数を計算し、正規化の計算において使用されるＵＰＤＰレコードに組み込まれるようにそのレコード発生器にその統計的情報を供給する。ラウンドトリップ時間は、第１のネットワーク・モニタから第２のネットワーク・モニタまでの遅延を計算し、その遅延を第２のネットワーク・モニタから第１のネットワーク・モニタまでの遅延に加算することによって、推定してもよい。
【００６７】
その計算された伝送遅延の精度は第１と第２のネットワーク・モニタ７００、７１０の時間クロックの同期に応じて決まる。そのネットワーク・モニタは、通信回線７３０を介して通信してそのそれぞれのクロックを同期させてもよい。典型例の実施形態において、そのネットワーク・モニタは、共通時間供給源７４０から時間信号を受信することによって同期させてもよい。典型例の実施形態において、その伝送遅延は１０ミリ秒より小さい誤差の精度のレベルで発生され、即ちその計算された遅延と実際の遅延の間の差は１０ミリ秒より少ない。好ましい実施形態において、共通時間供給源７４０は例えばＧＰＳ（グローバル・ポジショナル衛星）のようなグローバル衛星のシステムであり、各ネットワーク・モニタ７００、７１０は、１つ以上のグローバル衛星から時間信号を受信するための受信機を含んでいる。モニタされる２つの通信回線が互いに接近しているときは、第１と第２のネットワーク・モニタ７００、７１０のうちの一方はマスタＧＰＳ受信機を含んでいればよく、その他方は、そのマスタに結合されたスレーブＧＰＳ受信機を含んでいればよい。
【００６８】
典型例のネットワーク・モニタは、モニタ中の通信回線に結合されたネットワーク・インタフェース・カード（ＮＩＣ）上にインタフェース・コンピュータを有するホスト・コンピュータを用いて実装される。上述のように、ＮＩＣによって受信したデータは、そのホスト・コンピュータに送出力される前に処理すればよい。また、上述のように、そのネットワーク・モニタは、通信回線からのデータの受信時間を用いて、ネットワーク通信統計的情報またはメトリックを発生させればよい。データが通信回線から受信されたときの時間を正確に記録するためには、インタフェース・コンピュータは、受信時間をそのデータに関係付ける（そのデータに時間をスタンプ（記録）する）。そのホスト・コンピュータではなくてそのインタフェース・コンピュータにそのデータに時間をスタンプさせることによって、そのインタフェース・コンピュータからそのホスト・コンピュータまでデータを転送するときの遅延による受信時間における不正確さが減少しまたは除去される。
【００６９】
典型例の実施形態において、そのインタフェース・コンピュータはインタフェース・クロックを含んでおり、そのホスト・コンピュータはホスト・クロックを含んでいる。そのインタフェース・クロックおよびホスト・クロックは、そのホスト・コンピュータがタイム・スタンプを用いてその受信データに対応する統計的情報を正確に発生させることができるように、同期化される。典型例の実施形態において、そのインタフェース・クロックはカウンタとして実装される。各パケットが通信回線から受信されるときに、そのカウンタの現在の値がそのパケットと関係付けられる。そのパケットは後でそのカウンタ値と共にそのホスト・コンピュータに転送される。そのホスト・コンピュータは、絶対時間基準に同期したホスト・クロックを含んでいる。上述のように、絶対時間基準は、ＧＰＳ（グローバル・ポジショニング衛星）によって供給すればよい。
【００７０】
そのホスト・クロックおよびインタフェース・クロックは、そのインタフェース・コンピュータによって各パケットに関係付けられたカウンタ値を絶対時間に相関させることによって、同期される。そのインタフェース・クロックをそのホスト・クロックに同期させる方法を、図９Ａおよび９Ｂにおけるフローチャートを参照して、それぞれホスト・コンピュータおよびインタフェース・コンピュータに関して説明する。一般的には、そのホスト・コンピュータは、インタフェース・コンピュータに対してインタフェース・クロック・カウンタの値を周期的に要求して、その値を用いてそのカウンタをホスト・コンピュータに相関させる。
【００７１】
図９Ａおよび９Ｂを参照すると、そのホスト・コンピュータがそのインタフェース・コンピュータから１組のパケットを受け取った場合（ステップ９０２）、そのホスト・コンピュータは、“ゲット・カウンタ（カウンタの獲得）”メッセージをそのインタフェース・コンピュータに送出することによって、そのインタフェース・コンピュータに対してカウンタ値を要求することを進める（ステップ９０６）。典型例の実施形態において、そのインタフェース・コンピュータは、直接メモリ・アクセス（ＤＭＡ）動作によってそのホスト・コンピュータのメモリに１組のパケットを格納し、次いでそのホスト・コンピュータに割り込んでそのパケットの転送を示す。そのホスト・コンピュータが１組のパケットを受け取っていない場合は、そのホスト・コンピュータは、タイムアウト期間だけパケットを待ち（ステップ９０４）、その期間の後、カウンタ値を要求する（ステップ９０６）。そのホスト・コンピュータは、それがインタフェース・カウンタ値を要求したときに、そのホスト・クロックの時間を記録する（ステップ９０６）。
【００７２】
そのインタフェース・コンピュータがそのホスト・コンピュータから“ゲット・カウンタ”メッセージを受け取ったときに（ステップ９２０）、そのインタフェース・コンピュータは、それが現在アイドル状態かどうかまたはそれが通信回線からデータを受信しているかどうかを判定する（ステップ９２２）。それがアイドル状態でない場合は、そのインタフェース・コンピュータは、“トライ・アゲン（再試行）”メッセージをそのホスト・コンピュータに送出する（ステップ９２４）。それがアイドル状態である場合は、そのインタフェース・コンピュータは、カウンタ値を読み出して、予め計算された割り込みサービス時間を減算して（ステップ９２６）調整されたカウンタ値を発生する。次いで、そのインタフェース・コンピュータは、そのホスト・コンピュータにその調整されたカウンタ値を送出する（ステップ９２８）。
【００７３】
その予め計算された割り込みサービス時間は、そのインタフェース・コンピュータがそのホストからカウンタ要求を受け取った時点と、そのインタフェース・コンピュータがそのホスト・コンピュータにその調整されたカウンタ値を供給した時点の間の持続時間（長さ）に対応する。その予め計算された割り込みサービス時間は論理分析器を用いて実験的に求めてもよく、例えば、そのインタフェースがそのカウンタの要求を受け取った時点からそのインタフェースがそのカウンタ値を供給するまでの間の持続時間を測定すればよい。実験の遅延測定を正常（通常）動作の期間における遅延にマッチ（整合、一致）させるために、そのインタフェースがアイドル状態であることが分かりそのアイドル状態のときに正常（通常）動作の期間においてそのインタフェースが要求に対してサービス（応答処理）したときに、その実験の要求がそのインタフェースに供給される。この分野の専門家に知られているように、そのインタフェース・コンピュータの応答時間は繰り返し取得されて、動作の期間における使用のために平均サービス時間が発生される。
【００７４】
そのホスト・コンピュータは、そのカウンタ値を受け取ったときに、そのホスト・コンピュータ・クロックに対するそのインタフェース・クロック・カウンタの相対的周波数の推定値を計算する（ステップ９１２）。その相対的周波数を用いて、同期ルーチンの次の実行まで、そのインタフェース・コンピュータから受け取ったパケットに関連付けられたカウンタ値を相関させる。典型例の実施形態において、そのホスト・コンピュータは、その相対的周波数を計算する前に、ステップ９０６において記録した時間からホスト割り込みサービス時間を減算して、そのホストがそのインタフェースからそのカウントを受け取った時点からそのホストがその相対的周波数を計算した時点までの間の遅延を求める。
【００７５】
典型例の実施形態において、各々がそれぞれの通信回線に結合された複数のネットワーク・インタフェースが１つのユニットとして実装されており、共通のクロックを共用する。従って、その共通クロックと同期させるだけで、そのホスト・クロックが、それぞれの通信回線の中の任意のものから受信されたデータに関連付けられたタイム・スタンプに同期化される。
【００７６】
図１０〜２８は、本発明によるネットワーク・モニタによって収集され分析されたデータを表示しまたネットワーク・モニタによるデータ分析を制御するためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）を例示するスクリーン表示である。図１０における表示は、テーブル・フレーム（表枠）１０１０、第２のフレーム１０３０、およびボタン・フレーム１０５０を含んでいる。そのテーブル・フレーム１０１０は、ユーザ選択用の選択可能なボックスおよびテキスト入力ボックスを有する第１の部分１０１１と、受信データに対応する統計的情報のテーブルを有する第２の部分１０１２とを含んでいる。テーブル１０２３は、その選択可能なボタン、ボックスおよびフィールドの下に現れるものであって、分析中の特定のデータに対応するエントリ（項目）を含んでいる。プロット・フレーム１０３０は、受信データに対応する統計的情報を示すプロット１０３２および１０３４を含んでいる。ボタン・フレーム１０５０は、ユーザ設定（構成）可能な１組のボタンを含んでいる。
【００７７】
テーブル・フレーム１０１０の第１の部分１０１１におけるそのテキスト入力ボックスおよび選択可能なボックスは、ユーザによるそのオプションの選択を防止しそのテキスト・ボックスにおけるユーザの入力（エントリ）を防止するようオプションとして選択可能な形態で設定（固定）されればよい。図１０に表示されたそのオプションおよびボックスに関連付けられた諸機能を以下で説明する。
【００７８】
１．スタート（Start）:スタート（開始）フィールド１０１３は、トラフィックが分析されてその結果がＧＵＩに表示される開始時間を指定するものである。
【００７９】
２．ストップ（Stop）：ストップ（停止）フィールド１０１４は、トラフィックが分析されてその結果がＧＵＩに表示される終了時間を指定するものである。従って、そのスタート／ストップ・フィールド１０１３および１０１４は、トラフィックが分析されてからＧＵＩを通してユーザに提示されるまでの間の時間を指定する。スタートおよびストップ・フィールド１０１３および１０１４の内容（コンテンツ）は、複数のフォーマットで表示してもよい。例えば、図１０には日付フォーマットでそのコンテンツが表示される。その代替構成として、そのコンテンツが＋／−時間として表示されて現在の時間に対する相対的時間が示されてもよく、用語“現在（今、ナウ）”を用いて現在の時間を表してもよく、または用語“したことがない（ネバー）”を用いてそのデータが連続的に更新されるべきことを表してもよい。
【００８０】
３．ウィンドウ（Window）：ウィンドウ（窓）フィールド１０１５は、第２のフレーム１０３０においてプロットされる値を計算する時間間隔（期間）を示すものである。例えば、ユーザがウィンドウ・フィールドとして“１”を入力した場合、プロット・フィールドにおける値は１秒毎にプロットされる。ユーザは、そのプロットの分解能を示すための適当な単位を用いて、ウィンドウ・フィールドに値を入力してもよい（例えば、水平スケールの単位が時間である場合の時間分解能を示すための１ｓ、１ｍｓ、１００μｓ、・・・）。空欄のウィンドウ・フィールド１０１５は、水平スケールにおけるその分解能が自動的に設定されるべきことを示している。
【００８１】
４．トップＮ（Top N）：トップ（上位）Ｎフィールド１０１６は、テーブル・フレーム１０１０の第２の部分１０１２に現れるテーブル１０２３用のエントリの最大数を指定するものである。トップＮが１０である場合は、テーブル１０２３は、特定の列の値によって降順にソートされた１０行を含んでいる。トップＮが−１０である場合は、テーブル１０２３は、特定の列の値によって昇順にソートされた１０行を含んでいる（即ち、これがボトム（下位）Ｎのノーション（概念）になる）。
【００８２】
５．フィルタ（Filter）：フィルタ・ウィンドウ（フィールド）１０１７は、表示されるデータに適用されるフィルタを記述するものである。例えば、フィルタは、リンク層プロトコルＩＥＥＥ８０２．３を用いたパケットに対する結果を表示するための“プロトコルＩＥＥＥ８０２．３”にできるあろう。ＩＰトラフィックだけを示すように前に濾波されたデータに対して、“ホスト１０．０．０．１”のフィルタは、ソースまたは宛先のホストのいずれかが１０．０．０．１であった場合のＩＰトラフィックに対する結果を表示するであろう。種々の複雑なフィルタも可能である。
【００８３】
６．ドゥＤＮＳ（Do DNS）：ドゥＤＮＳ（ＤＮＳ実行）チェックボックス１０１８は、テーブル１０２３における各エントリを数（ニューメリカル）表現からテキスト表現に変換するものである。例えば、ＩＰにおいて、数表現（ＩＰアドレス）を用いてホストが識別される。ＤＮＳ（ドメイン・ネーム・サーバ）はＩＰアドレスのこの数表現からテキスト表現へのマッピングを含んでいてもよい。例えば、ドゥＤＮＳチェックボックスがチェックされたときに、ＩＰアドレス１０．０．０．１をテキスト表現foo.niksun.comに変換してもよい。ＤＮＳ以外のプロトコルに対して、チェックボックスに付与されるラベルはそれに従って同等の機能に応じて変化する。
【００８４】
７．ヘルプ（Help）：各フィールドの隣にあるヘルプ・ボタン１０１９は、選択されたときに、コンテキスト（文脈、状況）に敏感な支援（アシスタンス）の表示を生じさせるものである。例えば、フィルタ１０１７の隣のヘルプ・ボタンが選択された場合、フィルタに対するヘルプ・ウィンドウがポップアップするであろう。
【００８５】
８．リフレッシュ（Refresh）：リフレッシュ・ボタン１０２０は、全てのフレームの内容（コンテンツ）をリフレッシュ（復元）するものである。
【００８６】
９．フォワードおよびバックワード・ボタン（Forward and Backward Buttons）：テーブル・フレーム１０１０の第１の部分１０１１のトップ（頂部）におけるフォワード（進む、順方向）１０２１およびバックワード（戻る、逆方向）１０２２のボタンは、整列された全てのフレームの内容（コンテンツ）を保つ付加された機能を有するブラウザの“フォワード”および“バック”ボタンと同様に機能するものである。それに対して、ブラウザの“フォワード”および“バック”ボタンをクリックすると、フレーム単位で順方向の動きおよび逆方向の動きを生じさせ、従って種々のフレームの相互間の対応関係が失われる。
【００８７】
プロット・フレーム１０３０は、プロット１０３２、１０３４、テキスト入力ボックス、および選択可能なボックスおよびボタンを含んでいる。そのテキスト入力ボックスおよび選択可能なボックスは、ユーザによるオプションの選択を防止しテキスト・ボックスにおけるユーザ入力を防止するようオプションとして選択可能な形態で設定（固定）されればよい。
【００８８】
１．アップデート・テーブル・アンド・プロット（Update Tables and Plots、テーブルおよびプロットを更新する）：このボタン１０３６は、調整（coordinate）された形態でそのテーブルおよびフレームを更新するものである。例えば、ユーザがマウスを用いてそのプロットの一部を選択することによってズームインする場合は、そのボタン１０３６をクリックすることによって、ズームインされた選択された時間領域に対するプロットおよびテーブルが更新されるであろう。
【００８９】
２．バイト／パケット・カウント（およびビット／パケット・レート）（およびユティリゼーション）（Byte/Packet Counts (and Bit/Packet Rates) (and Utilization（利用））：このボタン１０３７は、選択時に“バイト／パケット・カウント”、“ビット／パケット・レート”および“ユティリゼーション”の３つのオプションの間でその１つを変更するものである。また、そのプロットは、それに従って、或るウィンドウにおけるバイト／パケット・カウントから、ビットおよびパケット・レート（即ち、１秒当たりのビットまたはパケットの数）へ、さらにユティリゼーションへと変化させる。典型例の実施形態において、バイト・プロットは、リンク速度に対する正規化された値を表示する（即ち、ビット・レートをリンクまたはチャネルまたは仮想回路容量で除算してビット数毎秒で表したもの）。
【００９０】
３．トグル・ペアレント・プロット（Toggle Parent Plot、ペアレント・プロットをトグルする）：このボタン１０３８は、次に説明するようにそのプロット上のラインをトグル動作させるものである。
【００９１】
４．トグル・プロット・オブ・アベレージ（Toggle Plot of Average、平均プロットをトグルする）：トグル・プロット・オブ・アベレージのボタン１０３９は、そのプロットのｙ軸の平均値（図示せず）が表示されるかどうかをトグル動作させるものである。
【００９２】
５．プレイ／フォワード／ストップ／ファースト・フォワード／リワインド／ファースト・リワインド／ポーズ・ボタン（Play/Forward/Stop/Fast Forward/Rewind/Fast Rewind/Pause Buttons）：これらのボタン１０４０は、そのスクリーン上のプロットの再生を制御して、そのプロットを時間経過とともに更新させ時間ととにもスクロールさせるものである。テーブル・フレーム１０１０におけるそのテーブル１０２３は、プロット１０３２および１０３４とマッチ（一致）するように更新される。
【００９３】
６．トップ・プロット（Top Plot）：図１０に示されたトップ（頂部）プロット１０３２は、バイト／秒で表現されたリンク・レベル・ビット・レートのプロットである。
【００９４】
７．ボトム・プロット（Bottom Plot）：図１０におけるボトム（底部）プロット１０３４は、パケット／秒で表現されたリンク・レベル・パケット・レートのプロットである。
【００９５】
テーブル・フレーム１０１０におけるテーブル１０２３は、スタート１０１３およびストップ１０１４のフィールドによって指定された期間において活動状態にあることが見出されたプロトコルに基づいて自動的に発生される。図１０において、テーブル１０２３は、スタート時間とストップ時間の間で、２６４Ｋ（Ｋ＝１０００（キロ））ＩＰパケットおよび９１９ＡＲＰパケットがネットワーク・モニタによって受信されたことを示している。ＩＰパケットおよびＡＲＰパケットはそれぞれ９９Ｍバイトおよび５５Ｋバイトを含んでいる（Ｍ＝１００，０００（メガ））。
【００９６】
テーブル１０２３におけるエントリは、選択されたフィールドによってデータをソートするように選択できる。例えば、テーブルにおけるパケット・ヘッディングがクリックされてそのテーブルがそのパケットの列によって動作（活動）の降順にソートされ、かつそのヘッダが再度クリックされた場合には、逆の順序でソートされるであろう。その他のテーブル・ヘッディングの選択によって、同様にそのエントリがソートされる。
【００９７】
図１１は本発明のズーム機能を示している。図１０におけるスタート／ストップ期間（時間間隔）７：１８／１２：０２が、図１１において９：００／１０：００の期間に狭められている。それに従って、テーブル１０２３およびプロット１０３２が更新されている。スタート１０１３およびストップ１０１４、１０３４のフィールド値は、フィールド１０１３、１０１４そのものにおける手動入力によってまたはプロット１０３２、１０３４における期間の例えばマウス等によるグラフィック選択によって、調整されてもよい。その表示は、選択時に、その選択された期間にズームする。そのプロットをズームインすると、ユーザによって選択された期間においてそのプロットが再生成される。次いで、“アップデート・テーブル・アンド・プロット（Update Tables and Plots）”ボタン１０３６の選択によって、テーブル・フレーム１０１０におけるデータがプロット１０３２、１０３４に同期する。また、ユーザが“オート・シンク（自動同期、auto-synch）”機能（図示せず）を選択した場合は、そのプロットは自動的に更新できるであろう。“アップデート・テーブル・アンド・プロット”ボタン１０３６は、ユーザが数回でそのデータを更新することなく所望の期間までズームすることを可能にする。それによって、最後の期間が選択されるまでネットワーク・モニタによる不要な処理を減少させることができるという利点が得られる。
【００９８】
図１０におけるテーブル１０２３においてエントリとしてリストアップ（リスト）されているプロトコルは、ハイパーリンクとしてユーザによって選択可能で、例えば、その選択されたプロトコル内にカプセル化されたプロトコルがリストアップされる。図１０におけるテーブル１０２３におけるＩＰエントリをクリックまたは選択すると、結果として図１２の表示が得られる。その選択によって、図１０のプロット・フレーム１０３０におけるプロット１０３２、１０３４は、図１２におけるプロット１２３２、１２４３におけるＩＰトラフィックだけを表示するように自動的に更新する。
【００９９】
そのプロットは、リンク層からの全てのトラフィックをライン・チャート（線グラフ）として、全てのＩＰトラフィックをバー・チャート（棒グラフ）として示す。この二重表示フォーマットは、前のレベル（この場合はイーサネット）の全てのトラフィックと比較したときの１つのレベル（この場合はＩＰ）の全てのトラフィックの両者の間の相関関係のグラフィック表現を与える。
【０１００】
また、テーブル・フレーム１２１０におけるテーブルの内容（コンテンツ）は、ＩＰトラフィックに対応するように更新される。テーブル１２２３は、“スタート”時間と“ストップ”時間の間のモニタ中のリンク上で使用されていた全てのＩＰプロトコルをリストアップする。この特定の場合において、ＴＣＰ、ＵＰＤおよびＩＣＭＰ  ＩＰプロトコルだけが見出された。また、ＩＰホストによる動作が表示されてもよい。テーブル・フレーム１２１０をスクロール・ダウンすることによって、ソース・ホストによるＩＰカウントのテーブルが、ＴｏｐＮ＝２の場合について図１３に示されているように表される。
【０１０１】
図１３において、ホストによって発生されたトラフィックに対するソース・ホスト・テーブル１３０２に、ホストによって受信されたトラフィックに対する宛先ホスト・テーブル１３０４に、およびホストによって発生され受信されたトラフィックに対するホスト・テーブル１３０６に、トラフィックが表示される。テーブル・フレーム１３１０におけるリンク１３０８上でクリックすることによって、図１４に示された“ホスト−ペア（ホスト対、host-pair）”テーブル１４０２の表示が発生される。
【０１０２】
ホスト−ペア・テーブル１４０２は、識別された各ペア（対）に対するホストのペアの間で送信されたパケットおよびバイトの合計の数をリストアップしている。
【０１０３】
“宛先ホスト”例えば１０．０．０．４７（図１４における１４０４）を選択すると、その選択された“宛先ホスト”によってそのトラフィックをさらに濾波してホスト１０．０．０．４７に宛てたトラフィックだけが表示される。これが図１５に示されている。図１５において、テーブル１５０２は、この場合、スタートとストップの間の期間にモニタされたトラフィックに対して、全てホスト１２８．３２．１３０．１０から１０．０．０．４７に宛てたトラフィックを示す。
【０１０４】
従って、ホスト１２８．３２．１３０．１０だけが、“スタート”時間と“ストップ”時間の間で１０．０．０．４７にトラフィックを送信していることが分かる。プロット・フレーム１５３０におけるプロット１５３２、１５３４は、これら２つのホストの間のこの動作を、バー・チャート１５３５としておよび全てのトラフィックをライン・チャート１５３６として、表示する。また、カラーを用いてプロットまたはテーブル中のデータを区別する。
【０１０５】
図１２におけるテーブル１２２３におけるＴＣＰエントリが選択された場合は、プロトコル・スタックを上がって、テーブル・フレーム１６１０は、図１６に示されているように、基礎となる（underlying）各アプリケーション１６１２に対するＴＣＰレベル・カウントを含むように更新される。例えば、設計された期間において受信された２１メガバイト（ＭＢｙｔｅ）を含んだ２７Ｋ  ＨＴＴＰ（ｗｅｂ）パケットが存在した。
【０１０６】
図１６において、“ＴＣＰフロー（TCP Flow）”ボタン１６０４が選択された場合、全てのＴＣＰフローが、図１７に示されているように持続時間および性能メトリックとともに表示される。ＴＣＰフローは、２つのホストの間の１つのＴＣＰセッションに属する１組のパケットを含んでいる。各フローはプロットされればよく、またはその対応するパケットは、所望のＴＣＰフローにそれぞれ対応する“プロット”ボタン１７０２または“ｐｋｔｓ”ボタン１７０４を選択することによって表示される。ドゥＤＮＳオプションが選択された場合には、全てのＴＣＰホストＩＰアドレスがそのそれぞれのネーム（例えば、foo.niksun.com）によって置き換えられるであろうことに留意すべきである。ユーザは、例えば１０．０．０．４７のような特定のホストを識別するリンクのような他のリンク上でクリックすることによって、フローを収集（集計）してもよい。ユーザが１０．０．０．４７（１７０６）上でクリックした場合、ホスト１０．０．０．４７に対する収集（集計）されたフローは図１８に示されているように表示される。
【０１０７】
図１８は、ホスト１０．０．０．４７から発信している全てのＴＣＰフローを示している。図１８における表示は、１０．０．０．４７ホストに選択したフィルタを図１７に表示されたデータに適用することによって発生されたものである。さらに、フィルタを、同様に図１８におけるその他のホスト（ハイパーリンク）上でクリックすることによって適用することもできる。例えば、“ターム・ホスト（Term Host）”の列において、ユーザがホスト１０．０．０．５（１８０２）を選択した場合には、ホスト１０．０．０．４７（ソースとして）とホスト１０．０．０．５（宛先として）の間の全てのフローが表示される。
【０１０８】
図１６のスクリーン表示に“ＴＣＰパフォーマンス（TCP performance（ＴＣＰ性能））”選択を提示して、例えばＴＣＰパフォーマンス・テーブルを発生させてもよい。“ＴＣＰパフォーマンス”ハイパーリンク上でクリックすることによって、図１９に示されているようにＴＣＰ用のパフォーマンス・テーブル１９０２を表示してもよい。明確にするために図１９に全体のテーブルのフレームが表示されている。その表示は、最悪の２つの実行中のＴＣＰクライアントおよびサーバ（ＴｏｐＮフィールド値２）に対する“トラブルドＴＣＰクライアント（Troubled TCP Clients（障害のあるＴＣＰクライアント））”テーブルおよび“トラブルドＴＣＰクライアント（Troubled TCP Servers（障害のあるＴＣＰサーバ））”テーブルを含んでいる。スタート・フィールドおよびストップ・フィールドによって指定された期間にわたって、そのテーブルは、各ＴＣＰクライアントまたはサーバに対して次の測定（結果）を示す。
【０１０９】
１．ナンバ・オブ・コネクション（No. of Connections）：これは、クライアントまたはサーバに対するＴＣＰ接続の合計数である。
【０１１０】
２．ＴＣＰデータ・バイト（TCP Data Bytes）：これは、全てのＴＣＰ接続によって搬送されるデータ・バイトの合計数である。
【０１１１】
３．ＴＣＰグッド・プット（バイト毎秒）（TCP goodput(Bytes/sec)）：これは、ＴＣＰペイロード・スループット（アプリケーション・スループット）またはＴＣＰグッド・プットを示している。即ち、アプリケーション・バイトの合計数を、それらのバイトを送信するのに必要な時間で除算してその数の接続について平均したものである。
【０１１２】
４．ＴＣＰスループット（バイト毎秒）（TCP throughput (Bytes/sec)）：これは、ＴＣＰ接続において搬送されたバイトの合計数を時間で除算したもの（ＴＣＰフォロー・レート）である。
【０１１３】
５．アベレージＲＴＴ（Avg RTT（平均ＲＴＴ））：これは、その数の接続を通るクライアントとサーバの間の平均ラウンドトリップ時間を示している。
【０１１４】
６．アベレージ・レスポンス（Avg Response）：これはサーバからクライアントまでの平均応答時間を示している。
【０１１５】
７．リトランスミット％（Retransmit %）：これは、再送された（輻輳、欠落または遅延、またはその他の理由によるもの）ＴＣＰバイトの百分率を示している。
【０１１６】
ＴＣＰパフォーマンス・テーブルは、ユーザ・インタフェースを介してその他のメトリックを追加しまたは現在のメトリックを削除するようカストマイズされてもよい。
【０１１７】
図１６におけるｈｔｔｐハイパーリンクを選択することによって、結果として図２０に示したようなｗｅｂトラフィック（ｈｔｔｐ）に対する統計的情報の表示が得られる。
【０１１８】
図２０のスクリーン表示に“ｈｔｔｐパフォーマンス（http performance（ｈｔｔｐ性能））”選択が提示されて、例えば、ｈｔｔｐパフォーマンス・テーブルを発生させる。“ｈｔｔｐパフォーマンス”ハイパーリンク上でクリックすることによって、図２１に示されているようにｈｔｔｐ用のパフォーマンス・テーブル２１０２が表示される。明確にするために図２１に全体のテーブル・フレームが示されている。その表示は、最悪の２つの実行中のＷＷＷクライアントおよびサーバ（トップＮフィールド値が２）に対する“トラブルドＷＷＷクライアント（Troubled WWW Clients（障害のあるＷＷＷクライアント））”テーブルおよび“トラブルドＷＷＷサーバ（Troubled WWW Servers（障害のあるＷＷＷサーバ））”テーブルを含んでいる。
【０１１９】
ｈｔｔｐパフォーマンス・テーブル２１０２におけるメトリックは、オンラインで生成されて、障害のあるＷＷＷクライアントおよびＷＷＷサーバとしてユーザに表示されてもよく、または直ぐに動作させるためにネットワーク管理システムに直接供給されてもよい。これらのメトリックは、ネットワーク・アドミニストレータ（管理者）が悪いサーバおよび接続を識別するのを助ける。また、この情報を、ｗｅｂサーバ・オペレータに、より広い帯域幅を購入しまたは彼のサーバを設定するよう通知するためのベース（基礎）として用いてもよい。さらに、それを用いて、クライアントに、彼らがより広い帯域幅を必要としているかもしれないこと、または別のサービス・プロバイダを選択する必要があるかもしれないことを通知することができる。従って、それらのメトリックを用いてユーザに与えられるサービスの品質を改善してもよく、それらのメトリックは最終的にネットワーク・アドミニストレータに別の収入を与えるかもしれない。例えば、テーブル“トラブルドＷＷＷサーバ”において、リストアップされた第２のサーバ（２０４．１６２．９６．１０）は約３３％のｗｅｂアボート（打ち切り）を示した。これは、そのｗｅｂサイトからの顧客の３３％の潜在的ロス（消失、逸失）を示している。
【０１２０】
テーブル・フレーム１６１０は、図１６に示されているように基礎となる（underlying）各アプリケーション１６１２に対するＴＣＰレベルのカウントを含むように更新される。例えば、設定された期間において受信された２１メガバイト（ＭＢｙｔｅ）を含んだ２７Ｋ  ＨＴＴＰ（ｗｅｂ）が存在した。
【０１２１】
図１２におけるＵＤＰハイパーリンク１２４０が選択されると、プロトコル・スタックを上がって、図２２の表示がＵＤＰトラフィックのレベルを示すように提示される。テーブル・フレーム２２１０において、各ＵＤＰアプリケーションまたはＩＤＰポートについての動作を示す“ＵＤＰレベル・カウント（UDP Level Counts）”テーブルが表示される。例えば、その表示は、６９ＫＢｙｔｅ（キロバイト）を含んだ４５３個のドメイン・パケットが存在することを示した。
【０１２２】
ＵＤＰ帯域幅使用は合計のＩＰの約０．３２％だけであったことに留意すべきである（図１２におけるテーブル１２２３を参照）。従って、プロット・フレームは、ＵＤＰトラフィック（BLUE（青）のもの）を縮小するＩＰトラフィック（RED（赤）グラフ）だけを示す。“トグル・ペアレント・ディスプレイ（Toggle Parent Display）”上でクリックすることによって、ユーザは、ＩＰに対するプロット（ペアレント・プロット）が除去されると、ＵＤＰトラフィック上のＹ軸だけをズームすることができる（これは示されていない）。
【０１２３】
図２２における“Ｍボーン（MBONE）”ボタン２２０２が選択されると、図２３に示されているようなMBONE（マルチメディア・バックボーン）セッションのアプリケーション層分析（結果）の表示が得られる。
【０１２４】
図２２におけるボタン・フレーム２２５０における“ビュー・パケット（View Packets（パケット表示））”ボタン２２０４の選択によって、図２４に示されているように全てのパケットのダンプが与えられる。ネットワーク・モニタは全てのパケットを記録できるので、全てのパケットおよびその内容（コンテンツ）が表示できる。図２４の表示におけるリンクによって、ユーザは、そのデータストリームを柔軟に濾波できる。ユーザが１０．０．０．１２（２４０２）上でクリックした場合、次のダンプのスクリーンは１０．０．０．１２へのおよび１０．０．０．１２からのパケットだけを含んでいる。次のそのスクリーンにおいて、ユーザが１０．０．０．５を選択した場合、その更新された表示は１０．０．０．１２と１０．０．０．５の間のパケットだけを示すであろう。また、ユーザは、ポートを選択することによってさらにそのダンプを品質評価（qualify、修飾）することもできる。スクリーン表示の頂部における選択２４０４からダンプのタイプを選択することによって、ダンプ・パケットに対する種々のオプションが適用できる。
【０１２５】
図２２のボタン・フレーム２２５０における“レコメンド（Recommend（推奨））”ボタン２２０６の選択によって、ネットワークに対するリアルタイム容量または帯域幅推奨（値）の表示が結果として得られる。“レコメンド”ボタン２２０６の選択を検出すると、ネットワーク・モニタは、数学的モデルを用いて、ユーザが見ているデータを翻訳（解釈）して、アプリケーション（またはその他のタイプのトラフィック）による帯域幅使用に対する推奨（値）、または特定のサービス品質を得るためのリンク／スイッチ容量の設定に対する推奨を提示する。図２５にはそのような幾つかの統計的情報２５０２が示されている。ユーザは、分析されたトラフィックのタイプに対する所望のサービス品質を支援（サポート）するのに必要な容量に対する推奨を得るために、例えばロス・レート（欠落率）および最大遅延のような所望のサービス品質の値を入力してもよい。図２５および２６は、設定可能な推奨（値）を示している。
【０１２６】
典型例の実施形態において、ユーザは、特定のアプリケーションと、特定のサービス品質レベルに対するネットワーク資源の“サイズを決定”したい“ビジー期間”を選択してもよい。次いで、ネットワーク・モニタにおける適当なサブルーチンが、特定のアプリケーション・トラフィックを分析し、“モデル・パラメータ”を抽出して分析する。数学的モデル、およびパラメータおよびサービス品質のパラメータ（例えばパケット・ロス・レート（欠落率）、ネットワーク遅延、フレーム・レート、等）の推定を用いて、その数学的モデルは、例えば統計的マルチプレクス・ゲイン（多重化利得）、容量要求およびバッファ割り当てのような統計的情報を計算し、また、サービス品質要求を満たしながらネットワーク利用を最大化するためのスイッチ／ルータ構成、ネットワーク資源またはサーバ・パラメータを、ユーザに提供する。そのような推奨（レコメンデーション）は、リアルタイムで計算できる。その際、様々なサービスに属する全てのパケットまたは１組のパケットに対して統計的情報が更新され、また、サービス品質要求を満たす動的資源割当を可能にするための最適構成における各フローに対して、フィードバックをパスに沿って各ネットワーク要素を供給する。
【０１２７】
そのグラフのｘ軸２６０２はユーザの数を表し、ｙ軸２６０４はビット毎秒の容量を表す。所望のユーザ数に対して、その容量は、そのチャートから読み取られ、または対応するテーブルによって算出した結果の表示から読み取られる。図２７は、ＩＰアドレスがその登録されたネームに決定（分解）されるようにドゥＤＮＳボタンが選択された場合について、図２２の表示と同様の表示を例示している。
【０１２８】
図２８は、図２２におけるボタン・フレーム２２５０に“スタティスティックス（Statistics（統計））”ボタン２２０８が選択されたときに表示される統計的情報を示す表示である。“スタティスティックス”ボタン２２０８が選択されると、ネットワーク・モニタは、ユーザが現在見ているデータに基づいて種々の統計的情報を計算する。典型例の統計的情報は、パケット・サイズ配分、プロトコル配分、クライアント毎の帯域幅使用、ドメインによる帯域幅使用、サーバ当たりの平均応答時間、サーバ−クライアントペア（対）の間の平均ラウンドトリップ時間、およびパフォーマンス・メトリックを含んでいる。
【０１２９】
本発明は、ホスト・コンピュータとインタフェース・コンピュータの間の諸機能の特定の分割（配分）に限定されるものではない。ホスト・コンピュータとインタフェース・コンピュータの機能は、１つのコンピュータによって実行される。本発明によるネットワーク・モニタに対するインタフェースは、ユーザ・インタフェースに限定されることなく、モニタ中のネットワークまたは別の通信回線を介するものであってもよい。
【０１３０】
以上、ある特定の実施形態を参照して例示し説明したが、本発明は、示した詳細に限定しようとするものではない。むしろ、請求の範囲の範囲および均等手段の範囲内で本発明の精神から逸脱することなくその詳細について種々の変形を行うことができる。
【図面の簡単な説明】
【０１３１】
【図１】通信回線に結合された本発明によるネットワーク・モニタを示している図である。
【図２】典型例のプロトコル階層を例示している図である。
【図３】本発明による典型例のネットワーク・モニタのブロック図である。
【図４】本発明による通信回線をモニタする典型例の方法を例示するフローチャートである。
【図５】本発明によるネットワーク・モニタのデータ収集および分析方法の多数の順列配置の図である。
【図６】障害サーバを識別する方法を例示するフローチャートである。
【図７】ネットワークにおける別々の２つの通信回線に結合された本発明によるネットワーク・モニタを用いたネットワークを示す図である。
【図８】伝送遅延を求める方法を例示するフローチャートである。
【図９】（Ａ）はインタフェース・コンピュータに同期させるホスト・コンピュータの動作を例示するフローチャートであり、（Ｂ）は、ホスト・コンピュータに同期させるインタフェース・コンピュータの動作を例示するフローチャートである。
【図１０】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１１】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１２】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１３】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１４】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１５】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１６】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１７】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１８】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図１９】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２０】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２１】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２２】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２３】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２４】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２５】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２６】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２７】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【図２８】モニタ・パラメータを受信するユーザ・インタフェースを例示し、および通信分析情報を表示し提供する方法を例示するスクリーン表示の図である。
【符号の説明】
【０１３２】
１０２  ネットワーク・モニタ、    １０４  第１の通信回線、    １０６  ネットワークＮ１、    ３１６  プロセッサおよびクエリ・エンジン、    ３２０  メモリ、    ３２４  ユーザ・インタフェース。
【図１】
2006129533.tif 000004
【図２】
2006129533.tif 000005
【図３】
2006129533.tif 000006
【図４】
2006129533.tif 000007
【図５】
2006129533.tif 000008
【図６】
2006129533.tif 000009
【図７】
2006129533.tif 000010
【図８】
2006129533.tif 000011
【図９】
2006129533.tif 000012
【図１０】
2006129533.tif 000013
【図１１】
2006129533.tif 000014
【図１２】
2006129533.tif 000015
【図１３】
2006129533.tif 000016
【図１４】
2006129533.tif 000017
【図１５】
2006129533.tif 000018
【図１６】
2006129533.tif 000019
【図１７】
2006129533.tif 000020
【図１８】
2006129533.tif 000021
【図１９】
2006129533.tif 000022
【図２０】
2006129533.tif 000023
【図２１】
2006129533.tif 000024
【図２２】
2006129533.tif 000025
【図２３】
2006129533.tif 000026
【図２４】
2006129533.tif 000027
【図２５】
2006129533.tif 000028
【図２６】
2006129533.tif 000029
【図２７】
2006129533.tif 000030
【図２８】
2006129533.tif 000031