(57)【要約】ＴＣＰ受信装置、ＴＣＰ送信装置、又は双方に結合される、器具状の自動診断モジュール内の、オペレーティングシステムに実装可能な、自動診断ロジックを含む。ＴＣＰイベントがサンプルされ、これらのイベント上の統計のセットが維持される。受信装置側のＴＣＰ診断技術は、送信装置の再伝送タイムアウトを検出すること、受信するパケットの平均サイズを評価すること、受信装置がボトルネックであるか否かを判定すること、及び入力データストリームの他の評価を実行することを含む。送信装置側の診断技術は、伝送タイムアウトにフラグを立てること、伝送されるパケットの平均サイズをモニターすること、広告ウインドウが、受信装置システムと送信装置システムを接続するネットワークの、遅延域幅生成の原因となっているか否かを評価すること、ボトルネックチェックを実行すること、及び、送出されるデータストリームに他の評価を行うことを含む。
2004528648.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとを備えた、少なくとも１つの、ＴＣＰ受信装置である第１計算装置；
プロセッサとメモリとを備えた、少なくとも１つの、ＴＣＰ送信装置である第２の計算装置；
前記第１の計算装置および前記第２の計算装置に結合した通信ネットワーク；
前記第１の計算装置に関連した前記メモリと結合し、（１）ＴＣＰ動作に関する一連のデータを決定すること、（２）ＴＣＰ動作に関する前記一連のデータを評価することを含み；そして、（３）前記評価の結果を生じさせる一連のインストラクション；および、前記第１の計算装置に関連した前記メモリに結合されるデータベース。
【請求項２】
ＴＣＰ動作に関する一連のデータを決定する前記インストラクションが、モニターする一連のイベント、および、前記イベントがモニターされる時間細分性を決定することを含む、請求項１の装置。
【請求項３】
ＴＣＰに関する前記一連のデータを評価する、前記一連のインストラクションが、ＴＣＰ受信装置での再伝送タイムアウト検出のサブセットインストラクションを含む、請求項１の装置。
【請求項４】
再伝送タイムアウトを検出する前記サブセットインストラクションが、
タイムスタンプおよびシーケンス番号を伴って、ＴＣＰ再アセンブリ待ち行列に挿入される各パケットにタグ付けをするインストラクション；
シーケンシャルオーダーにない前記タグを特定するよう、各タグを読み出し、ソートするインストラクション；
シーケンシャルオーダーにない全ての前記各タグに対し、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを保存するインストラクションを含む、請求項３の装置。
【請求項５】
ＴＣＰ動作に関する前記一連のデータを評価する前記一連のインストラクションが、入力パケットの平均パケットサイズを評価するサブセットインストラクションを含む、請求項１の装置。
【請求項６】
平均パケットサイズを評価する前記サブセットインストラクションが、
折り返しパケットのバーストに含まれるパケットを確認するインストラクション；
前記確認されたパケットのサイズを評価するインストラクション；
折り返しパケットの前記バースト内に含まれるいずれかのパケットが、所定の閾値を下回る場合、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項５の装置。
【請求項７】
ＴＣＰ動作に関する前記一連のデータを評価する前記一連のインストラクションが、ＴＣＰ受信装置でボトルネックチェックを実行する、少なくとも３つのサブセットインストラクションを含む、請求項１の装置。
【請求項８】
前記少なくとも３つのサブセットインストラクションのうちの１つが
前記第１の計算装置内で、広告ウィンドウのサイズをモニターするインストラクション；
前記第１の計算装置内で、パケット到達レートをモニターするインストラクション；
パケット到達レートが所定の範囲内に留まる一方で、前記広告ウィンドウのサイズが、特定の閾値を下回る場合に、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項７の装置。
【請求項９】
前記少なくとも３つのサブセットインストラクションのうちの１つが、前記第１の計算装置内に含まれる、前記プロセッサに関連したＴＣＰプロトコルの処理に利用されるサイクル数をモニターするインストラクション；
アイドルタイムとして特徴付けられる、前記第１の計算装置に関連した前記プロセッサの量をモニターするインストラクション；
ＴＣＰプロトコルの処理に利用される前記プロセッサの量のモニターの前記結果と、ＴＣＰ処理に利用される前記プロセッサの量のモニターの結果とを比較するインストラクション；
ＴＣＰ処理に利用される前記プロセッサの量と、ＴＣＰプロトコルの処理に利用される前記プロセッサの量との間の比率が、所定の閾値を下回る場合に、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項７の装置。
【請求項１０】
前記少なくとも３つのサブセットインストラクションのうちの１つが、
前記第１の計算装置がＴＣＰバッファから読み出すレートをモニターするインストラクション；
前記第１の計算装置の読み出しレートを標準レートと比較するインストラクション；
第１の計算装置の前記読み出しレートが、標準レートを所定の値だけ上回る場合、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項７の装置。
【請求項１１】
前記一連のインストラクションが、さらに、前記結果を収集するサブセットインストラクションを含んでいる、請求項１の装置。
【請求項１２】
前記収集サブセットインストラクションが、前記データベース内に格納された情報に基づいて収集するインストラクションを含む、請求項１１の装置。
【請求項１３】
前記収集サブセットインストラクションが、前記結果に基づいて収集するインストラクションを含む、請求項１１の装置。
【請求項１４】
プロセッサとメモリとを備えた、少なくとも１つの、ＴＣＰ受信装置である第１の計算装置；
プロセッサとメモリとを備えた少なくとも１つの、第２の計算装置；
少なくとも１つの、ＴＣＰ受信装置である；
前記第１計算装置および前記第２の計算装置に結合した通信ネットワーク；
前記第１の計算装置に関連した前記メモリと結合し、（１）ＴＣＰ動作に関する一連のデータを決定すること、（２）ＴＣＰ動作に関する前記一連のデータを評価することを含み；そして、（３）前記評価の結果を生じさせる一連のインストラクション；そして、
前記第１の計算装置に関連した前記メモリに結合されるデータベースを含む装置。
【請求項１５】
ＴＣＰ動作に関する一連のデータを決定する前記インストラクションが、モニターする一連のイベント、および、前記イベントがモニターされる時間細分性を決定することを含む、請求項１４の装置。
【請求項１６】
ＴＣＰに関する前記一連のデータを評価する、前記一連のインストラクションが、前記第１の計算装置での再伝送タイムアウト検出のサブセットインストラクションを含む、請求項１４の装置。
【請求項１７】
再伝送タイムアウトを検出する前記サブセットインストラクションが、
何時再伝送時間が期限切れ、パケットが再送されるかを決定するインストラクション；
所定の時間内に起こる再伝送数を測定するインストラクション；
前記再伝送数が、所定の閾値を超えた場合に、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項１６の装置。
【請求項１８】
ＴＣＰ動作に関する前記一連のデータを評価する前記一連のインストラクションが、送出パケットの平均パケットサイズを評価するサブセットインストラクションを含む、請求項１４の装置。
【請求項１９】
平均パケットサイズを評価する前記サブセットインストラクションが、
折り返し結合パケットのバーストに含まれるパケットを確認するインストラクション；
前記確認されたパケットのサイズを評価するインストラクション；
折り返し結合パケットの前記バースト内に含まれるいずれかのパケットが、所定の閾値を下回る場合、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項１８の装置。
【請求項２０】
前記一連のインストラクションが、前記第２の計算装置に関連する受信装置ウィンドウをモニターするサブセットインストラクションを含む、請求項１４の装置。
【請求項２１】
前記受信装置ウィンドウモニターインストラクションが、
前記受信装置ウィンドウ内で利用可能なスペースの、時間に即した変化をモニターするインストラクション；
前記ウィンドウ内での利用可能なスペースの前記変化が、特定の所定パターンにフィットする場合、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項１４の装置。
【請求項２２】
ＴＣＰ動作に関する前記一連のデータを評価する前記一連のインストラクションが、ＴＣＰ送信装置でボトルネックチェックを実行する、少なくとも３つのサブセットインストラクションを含む、請求項１４の装置。
【請求項２３】
前記少なくとも３つのサブセットインストラクションのうちの１つが、
前記第１の計算装置に関連するバッファのサイズをモニターするインストラクション；
パケット送信レートをモニターするインストラクション；
パケット到達レートが所定の範囲内に留まる一方で、前記バッファ内での利用可能なスペースが、特定閾値を下回る場合に、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項２２の装置。
【請求項２４】
前記少なくとも３つのサブセットインストラクションのうちの１つが、前記第１の計算装置に関連するバッファ内の送られない待機データ量をモニターするインストラクション；
所定の時間間隔の間、第１の計算装置が、前記送られない待機データを送信不能である回数をカウントするインストラクション；
前記第１の計算装置が送信不能である前記回数が、所定の閾値を上回る場合に、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項２２の装置。
【請求項２５】
前記少なくとも３つのサブセットインストラクションのうちの１つが、
前記第１の計算装置のプロトコル処理実行レートをモニターするインストラクション；
前記第２の計算装置の前記データ消費帯域幅ををモニターするインストラクション；
前記プロトコル処理レートと、前記データ消費帯域幅を比較するインストラクション；
前記レートと前記帯域幅との間の比率が所定の閾値を上回る場合、フラグを立てるインストラクション；および、
前記メモリ内に前記フラグを格納するインストラクションを含む、請求項２１の装置。
【請求項２６】
前記一連のインストラクションが、さらに、前記結果を収集するインストラクションを含んでいる、請求項１４の装置。
【請求項２７】
前記収集インストラクションが、前記データベース内に格納された情報に基づいて収集するインストラクションを含む、請求項２６の装置。
【請求項２８】
前記収集インストラクションが、前記結果に基づいて収集するインストラクションを含む、請求項２６の装置。
【請求項２９】
ＴＣＰ動作に関する一連のデータを決定するステップ；
ＴＣＰ受信装置、もしくは、ＴＣＰ送信装置のパフォーマンスを評価するステップ；
前記パフォーマンスに関する一連のデータを生成するステップ；および、
前記一連のデータを収集するステップを含む方法。
【請求項３０】
一連のデータを決定する前記ステップが、モニターする一連のイベントを決定するステップ；および、
前記一連のイベントがモニターされる時間細分性を決定するステップを含む、請求項２９の方法。
【請求項３１】
前記パフォーマンスを評価する前記ステップが、データパケットが受信される時間と順序を見ることにより、ＴＣＰ受信装置での再伝送タイムアウトを検出するステップ；
折り返し結合パケットのバースト内に含まれる入力パケットの平均サイズを評価するステップ；
前記ＴＣＰ受信装置の広告ウィンドウのサイズをモニターし、前記データパケット受信レートと比較するステップ；
ＴＣＰプロトコルの実行に用いられるプロセッササイクルの数をモニターし、それらをアイドルタイムとして特徴付けられるサイクル数と比較するステップ；および、
前記ＴＣＰ受信装置のバッファからの読み出しレートをモニターし、それを標準レートと比較するステップを含む、請求項２９の方法。
【請求項３２】
前記パフォーマンスを評価する前記ステップが、何時再伝送時間が期限切れとなり、ＴＣＰ送信装置によってパケットが再送されるかをモニターすることにより、再伝送タイムアウトを検出するステップ；
折り返し結合送出パケットのバースト内に含まれる、前記送出パケットのサイズをモニターすることにより、送出パケットの平均サイズを評価するステップ；
ＴＣＰ受信装置に関連する受信装置ウィンドウのサイズをモニターするステップ；
前記受信装置ウィンドウのサイズ内のパターンをモニターするステップ；
前記ＴＣＰ送信装置に関連するバッファサイズをモニターし、前記パケットが伝送されるレートと比較するステップ；
ＴＣＰ送信装置に関連する前記バッファ内の送られない待機データの量をモニターするステップ；および、
プロトコル処理実行レートをモニターし、それをデータ消費帯域幅と比較するステップを含む、請求項２９の方法。
【請求項３３】
前記収集ステップが、（１）計算装置の属性、および（２）前記一連のデータに関連した結果に基づいて収集することを含む、請求項２９の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送制御プロトコル（ＴＣＰ）パフォーマンス問題状況の診断に関する。
【背景技術】
【０００２】
ＴＣＰは、最も広く用いられている輸送プロトコルの１つである。ＴＣＰは、インターネットおよび多くのイントラネットの双方で用いられ、ＮＦＳ（ネットワークファイルシステム）データのみならず、ＨＴＴＰ（ハイパーテキスト転送プロトコル）およびＣＩＦＴＳ（共通インターネットファイルシステム）トラフィックにも用いられている。ＴＣＰは、様々なネットワーク上で、また、様々な速度で、信頼性のあるコネクション型通信を実現する強力なプロトコルであるが、以下の理由により、データ転送の測定レートが予想を下回る場合がある。（１）データパケット受信装置、もしくはデータパケット送信装置、もしくはその両方が、不十分に構成され、またはオーバーロードに陥っている、（２）ネットワークもしくはその一部が、十分な帯域幅を有していない（例えば、フリンジ上でギガビットレートで実行するネットワークでは、データ送信装置とデータ受信装置との間の経路のどこかにメガビットリンクを含むことがある）、（３）（混雑もしくは他の理由で）複数のデータパケットの損失が起こり、コースグレインド（ｃｏｕｒｓｅ  ｇｒａｉｎｅｄ）再伝送タイムアウトが要求され、もしくは、（４）他の関連する原因。
【０００３】
ほとんどのＴＣＰの実装は、問題を容易にデバッグするようには設計されていないため、ＴＣＰ関連問題の診断には、様々な技術が設計されおよび実装されて来た。第１の技術は、異常なプロトコルの振舞いを隔離し、それをネットワーク経路内の構成異常もしくは過負荷の要素まで遡るよう、バークリーパケットフィルター（Ｂｅｒｋｅｌｅｙ  Ｐａｃｋｅｔ  Ｆｉｌｔｅｒｓ）、およびキャプチャした低レベルのパケットトレースの手動専門分析など、なんらかのタイプのパケットキャプチャメカニズムの使用を伴っている。この技術により特定の通信の分析は可能となるが、どちらかと言えば、不便であり、高価な上にエラーがちである。この技術の変形は、ＬＢＬ研究者により開発された、ティーシーパナリー（ｔｃｐａｎａｌｙ）と呼ばれるツール内に実装されている。ティーシーパナリー（Ｔｃｐａｎａｌｙ）は、パケットフィルタトレースを用いるＴＣＰの活動のパケットトレースを点検することにより、自動的にＴＣＰの実装の動作を分析する。トレースが、ＴＣＰの仕様に矛盾することが判明すると、ティーシーパナリー（ｔｃｐａｎａｌｙ）は、どの特定の活動が異常なのか、（可能ならば）診断し、もしくは指摘することになる。他のパケット駆動システムと同様に、ティーシーパナリー（ｔｃｐａｎａｌｙ）は、ネットワークの一般的なダイナミックな行動に注目するのではなく、混雑制御を実行し、様々な形式のパケットの損失を扱う間、コーナー状態を処理するよう、むしろパケットフィルタの測定誤差、およびＴＣＰアルゴリズムの他の低レベルの詳細を検出することに注目している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
市販のパケットスニファシステムなどの他の技術は、ユニックス（ＵＮＩＸ）のネットスタット（ｎｅｔｓｔａｔ）コマンドにより報告される種類の、集合ＴＣＰ統計を分析するロジックを含んでいる；あいにく、他の同様のこうした技術は、概して、システムがそれまでに体験した総接続の広域分析に制限される。このように、これらは２つのシステム間の特定の接続の、特定の欠陥を検出し、もしくは診断するのに役立つ手段ではない。
【０００５】
従って、ＴＣＰ関連の問題を検出し、および診断するための方法およびシステムを提供することが望まれている。この方法は、自動診断ロジックを含む器具システムが、ネットワークと結合可能で、ＴＣＰのための自動診断技術を実装可能な、本発明の実施例で達成される。
【課題を解決するための手段】
【０００６】
本発明は、ＴＣＰプロトコルのダイナミック動作での、パフォーマンス異常を検出し、および分析するための方法およびシステムを提供する。好ましい実施例では、本発明は、ＴＣＰ受信装置、ＴＣＰ送信装置、もしくは双方に結合される、器具状の自動診断モジュール内の、さまざまなオペレーティングシステム（データオンタップ（Ｄａｔａ  ＯＮＴＡＰ）など）に、いずれも実装可能な自動診断ロジックを含んでいる。
【０００７】
本発明の第１の態様では、ＴＣＰイベントがサンプルされ、これらのイベント上に慎重に維持された統計の組が維持される。サンプリングの細分性およびサンプルされる期間は、特定のシステムの必要条件を満たすよう調整されてもよい。これらの統計は、送信装置側または受信装置側のいずれか、もしくはその両方における異常診断で用いることが出来る。
【０００８】
受信装置側のＴＣＰ診断技術は、（１）送信装置の再伝送タイムアウトを検出すること、（２）受信されるパケットの平均サイズを評価すること、（３）受信装置が、計算もしくはプロトコルボトルネックとして機能しないことを決定すること、および（４）入力データストリームの他の統計学的評価を実行することを含んでいる。
【０００９】
送信装置側の診断技術は、（１）過度の伝送タイムアウトにフラグを立てること、（２）伝送されるパケットの平均サイズをモニターすること、（３）広告ウィンドウが、受信装置システムと送信装置システムを接続するネットワークの、遅延帯域積の原因となり得る程度大きいか否かを評価すること、（４）様々なボトルネックチェックを実行すること、および、（５）送出されるデータストリームの他の統計学的評価を行うことを含んでいる。
【００１０】
本発明の第２の態様では、クライアントシステムの既知の属性を含むデータベースを用いて、自動診断の結果が収集される。属性の例には、ＩＰサブネット番号、ＯＳタイプ／バージョン、最新の構成変更日付、遅延距離、ルート情報、自動診断情報のバーチャルＬＡＮ情報履歴の概要、および、自動診断情報の収集に役立ち得る他の属性が含まれる。共通問題領域および共通属性を伴うクライアントシステムは、システム管理者へのプレゼンテーションのために一緒にグループ化される。
【００１１】
好ましい実施例では、ＴＣＰ自動診断ロジックは、オンラインもしくはオフラインで実行可能である。この自動診断ロジックは、どんな合理的実装に対しても、比較的非破壊的であるが、この特徴により、例えば、演算リソースへの総需要が比較的小さい場合には、非臨界時にシステム分析が実行可能となる。
【発明を実施するための最良の形態】
【００１２】
以下の説明では、好ましい処理ステップとデータ構造を伴う、本発明の好ましい実施例が説明されている。しかし、当業者は、この出願の熟読後に、本発明の実施例が、プログラム制御下で作動する１台以上の汎用プロセッサ（もしくは、特定の処理ステップとデータ構造に順応した専用プロセッサ）を用いて実行可能であり、さらに、こうした設備を用いる、本願明細書内で説明される好ましい処理ステップおよびデータ構造の実現が、過度の実験、あるいはさらなる発明を要しないことを認識するだろう。
【００１３】
システム要素
図１は、ＴＣＰ接続内の制限因子自動検出システムのブロック図を示している。
【００１４】
システム１００は、通信ネットワーク１３０と結合される、複数のＴＣＰ受信装置１１０およびＴＣＰ送信装置１２０を含んでいる。ＴＣＰ送信装置１１０もしくはＴＣＰ受信装置１２０のうちの少なくとも１つは、オペレーティングシステム１４０と自動診断モジュール１５０とを含んでいる。
【００１５】
ＴＣＰ受信装置１１０およびＴＣＰ送信装置１２０は、一般化されたチューリングパラダイム内に置かれる、クライアントワークステーション、もしくはサーバ、もしくは他の情報器具などの、汎用コンピュータを含んでいてもよい。これらの装置は、ＴＣＰ受信装置１１０もしくはＴＣＰ送信装置１２０として分類されるが、この区別は一方の装置と他方の装置との関係に基づくものである。特定のデータパケット用のＴＣＰ受信装置１１０として特徴付けられた装置が、他のデータパケット用のＴＣＰ送信装置１２０として特徴付けられることもある。
【００１６】
通信ネットワーク１３０は、データ通信のために、ＴＣＰ受信装置１１０とＴＣＰ送信装置１２０の間に配列される。好ましい実施例では、通信ネットワーク１３０は、イントラネット、企業ネットワーク、エクストラネット、仮想私設ネットワークまたは仮想交換ネットワークと同様に、これらの代わりにする、インターネットなどのパケット交換ネットワークを含んでいる。代替的実施例では、通信ネットワーク１３０は、ＴＣＰ受信装置１１０およびＴＣＰ送信装置１２０を結合する、他のいかなる通信リンクの組をも含んでいてもよい。
【００１７】
自動診断モジュール１５０は、オペレーティングシステム１４０（好ましくはデータオンタップ（Ｄａｔａ  ＯＮＴＡＰ））と結合され得る１連のソフトウェアインストラクション１５５を含んでいる。他の実施例では、自動診断モジュール１５０は、ＴＣＰ受信装置１１０またはＴＣＰ送信装置１２０のいずれか一方、もしくはその両方と結合可能な、別個の器具の形を取ってもよい。これらのソフトウェアインストラクション１５５は、ＴＣＰ受信装置１１０およびＴＣＰ送信装置の双方上の、問題となる状態を診断するロジック技術を含んでいる。これらのロジック技術に加えて、ソフトウェアインストラクション１５５は、さらに以下を含んでいる。（１）（以下に説明される）様々な決定手順を実行するインストラクション。（２）特定の問題となる状態を改善するインストラクション、および（３）システム管理者に対するプレゼンテーション用の情報を収集するインストラクション。
【００１８】
ソフトウェアインストラクション１５５は、以下を含むＴＣＰ受信装置１１０側で実行可能である：
【００１９】
ＴＣＰ送信装置１２０再伝送タイムアウトを検出し、および評価するインストラクション
一連のインストラクション１５５は、ＴＣＰ送信装置１２０で起こる再伝送タイムアウトを評価する。一連のインストラクション１５５は、ＴＣＰ再アセンブリ待ち行列に挿入される各受信パケットに、タグ付けをするインストラクションを含んでいる。インストラクションが、（１）データパケットが各ＴＣＰ受信装置１１０上に到達する時間、および（２）データパケットが到達するシーケンス番号、の双方を評価するので、「突発的」通信量と再伝送タイムアウトで起こる沈黙期間を区別することが可能である。特定のパケット間到着ギャップ（通常５００ｍｓ）を伴う、多数のパケットのシーケンスの混乱は、ＴＣＰ送信装置で再伝送タイムアウトが起こったことを示している。
【００２０】
平均パケットサイズ
インストラクションセット１５５は、ＴＣＰ送信装置１２０が十分大きなフレームを用いているか否かを判定するため、入力データパケットのサイズを測定し、入力パケットの到達時間を測定するインストラクションを含んでいる。インストラクションセット１５５は、制御情報、もしくは、小さなＴＣＰパケットを用いて必ず通信されるメタデータなどの困惑情報（ｃｏｎｆｏｕｎｄｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ）を、折り返しパケットのバーストの一部である、それら入力パケットのサイズを決定することで排除する。この決定は、バーストの一部でない入力パケットには実行されない。平均パケットサイズが、不適当に小さな（アプリケーションが不十分に書かれていたり、もしくは、ネットワークが構成異常である場合に起こるような）イベントでは、インストラクションの組１５５が、補修ステップに提供されてもよい。
【００２１】
ボトルネックチェック
インストラクションセット１５５は、ＴＣＰ受信装置１１０が、データ転送でボトルネックを生成するか否か判定する、インストラクションの３つの関連するサブセットを含んでいる。第１のインストラクションサブセットは、ＴＣＰ受信装置１１０に結合したバッファ内の、利用可能な空きスペース量をモニターすることを伴う。第２のインストラクションサブセットは、プロトコル処理に利用される受信装置ＣＰＵの量をモニターすること、および、ＴＣＰ処理で費やされるＣＰＵサイクルの量と、アイドルタイムとして残された量とを比較することを伴う。第３のインストラクションサブセットは、受信装置アプリケーションが、ＴＣＰソケット受信装置バッファから読み出すレートをモニターすることを伴う。（１）パケットが実質的に自由空間収縮量を伴わずに、大雑把ではあるが一定レートで、連続的に到達し、（２）ＴＣＰ受信装置１１０が、プロトコル処理実行のためにＣＰＵサイクルから外れることがなく、あるいは（３）受信装置アプリケーションがバッファから読み出すレートが、現在の閾値を下回らない場合、ＴＣＰ受信装置１１０は、計算もしくはプロトコルのボトルネックとして作動している可能性は低い。
【００２２】
ＴＣＰ送信装置１２０側で実行可能なソフトウェアインストラクション１５５は、以下を含む：
【００２３】
過度の再伝送タイムアウトにフラグを立てること
インストラクションセット１５５は、（１）粗粒再伝送タイマが満了し、パケットが再送される時を測定し、（２）何らかのＴＣＰ接続でのタイムアウト数が、特定の所定閾値を超えるか否かを判定し、および、（３）イベント中に、システムマネージャに対して、この閾値が超過されたと通知するインストラクションを含んでいる。
【００２４】
平均パケットサイズ
インストラクションセット１５５は、ＴＣＰ送信装置１２０により送られる伝送データパケットの平均サイズをモニターするインストラクションを含んでいる。ＴＣＰ受信装置１１０上で実行されるパケットサイズモニターと同様に、平均パケットサイズの分析を、折り返し結合パケット列に含まれたパケットに制限すると、制御情報を運ぶ小さなパケットのような、データを歪める多くの要因を排除する。
【００２５】
受信装置ウィンドウモニタリング
ＴＣＰ送信装置１２０上のインストラクションセット１５５は、ＴＣＰ受信装置１１０によって広告されるウィンドウをモニターする。特定のインストラクションは、ＴＣＰ送信装置１２０に、広告ウィンドウが、送信装置および受信装置間の経路の遅延帯域積の原因になり得る程度大きいか否か、チェックさせる。また、インストラクションセット１５５は、時間に即したＴＣＰ受信装置の広告ウィンドウの変化のモニターを、制御する。広告ウィンドウが、比較的一定なまま残っている場合、ＴＣＰ受信装置１１０が、ボトルネックとして機能している見込みはない。
【００２６】
ボトルネックチェック
ＴＣＰ受信装置１１０と同様に、インストラクションセット１５５は、ＴＣＰ送信装置１２０が、計算的もしくはプロトコルのボトルネックでないことを保証するよう、様々なインストラクションサブセットを含んでいる。第１のインストラクションサブセットは、ＴＣＰ送信装置１２０に結合されるバッファサイズと、ＴＣＰ送信装置１２０およびＴＣＰ受信装置１１０間のネットワーク経路の完全な帯域幅とを比較することを伴っている。バッファサイズが適切で、後述のような他の支持がなされない場合は、ＴＣＰ送信装置がボトルネックとして作動している可能性は低い。第２のインストラクションサブセットは、送信バッファ送致での、送られない待機データをモニターすることを伴っている。ＴＣＰ送信装置１２０が何も送ることが出来ない期間がある場合、ＴＣＰ送信装置１２０は、ボトルネックとして作用している可能性がある。最後に、第３インストラクションサブセットは、ＴＣＰ送信装置１２０が、ＴＣＰ受信装置１１０のデータ消費ペースを維持するよう、プロトコル処理を十分速く実行可能か否かをモニターする。プロトコル処理がＴＣＰ受信装置１１０に対して低速度で実行される場合、ＴＣＰ送信装置はボトルネックとして作用している可能性がある。
【００２７】
様々な決定手順を実行するインストラクションは、周期的なＩＣＭＰ（インターネット制御メッセージプロトコル）ピングを用い、ラウンドリップ時間、ＴＣＰ特性評価を測定し、および帯域幅、ＭＴＵサイズ、およびＲＴＯ評価に関する様々な仮定を作成することによる、オフライン遅延計算の測定を含んでいる。これらの様々な決定手順は、上述された他のタイプのインストラクションの実行に用いられてもよい。
【００２８】
また、ソフトウェアインストラクション１５５に加えて、自動診断モジュールは、データベース１５７を含んでいる。データベース１５７は、ＩＰサブネット番号、ＯＳタイプ／バージョン、最新の構成変更日付、遅延距離、ルート情報バーチャルＬＡＮ情報、概要自動診断情報履歴、および、診断情報を収集する場合システム管理者にそれを提示する場合に役に立ち得るような他の属性など、既知のクライアントシステムの様々な属性を記述する、一連のフィールド１５８を含んでいる。この一連のフィールド１５８内に含まれる各フィールドには、適切な重み付けが割り当てられる。この加重された値は、自動診断結果の収集時に用いられる。
【００２９】
図２Ａおよび図２Ｂは、ＴＣＰ受信装置での制限因子自動検出方法の、処理フローチャートを示している。
【００３０】
方法２００の自動診断は、自動診断モジュール１５０がＴＣＰ受信装置１１０側と結合する、システム１００の実施例によって実行される。自動診断方法２００は連続して説明されているが、方法２００のステップは、共にもしくは並行に、非同期的であろうがなかろうが、パイプライン方式、もしくは他の方式で、実行可能である。方法２００は、ただ、そのように示されている以外、この説明が一覧表示するステップと同じ順序で実行されなければならないという、特別な要求はない。
【００３１】
フローポイント２０５では、システム１００は、ＴＣＰ受信装置１１０で自動診断を始める準備ができている。
【００３２】
ステップ２１０で、１組のイベント統計が定義される。１組のイベント統計の定義は、どんなイベントがモニターされ、何時に粒度がそのイベントをモニターするために用いられるかを決定する。好ましい実施例では、自動診断を特定のシステムに合わせるために、特定イベントと特定粒度を確認することは可能である。
【００３３】
ステップ２１５では、ＴＣＰ再アセンブリ待ち行列に挿入される入力パケットは、パケットがＴＣＰ受信装置１１０に到達した時、および、パケットが到着する順番に関してタグ付けされる。
【００３４】
ステップ２２０では、タグは、順が狂って受信されるパケットを確認するために評価される。パケットが順が狂った状態で到達したと確認され、パケット間到達時間が閾値を超えている場合、イベントは、ＴＣＰ送信装置１２０の再伝送タイムアウトを示すものとしてフラグが立てられる。過度の数のこうした再伝送タイムアウトは、送信装置と受信装置との間のネットワーク経路の何らかの問題による、パフォーマンス上の問題を示すもの考えられ、システム管理者に報告されてもよい。可能なら、補修手順が、管理者にされ、提示もしくは実行されてもよい。
【００３５】
ステップ２２５では、特定のタイムフレーム内に到達する特定セットのパケットは、（１）セット内のパケットのいずれもが、小さなパケットの使用を必要とする制御情報、メタデータ、もしくは他のタイプのデータを含んでいない、および、（２）組内のすべてのパケットは、データパケットの同一バーストの一部であるように、確認される。「バースト」は、ＴＣＰ送信装置により、折返し伝送される、１組のパケットと定義される。
【００３６】
ステップ２３０では、ステップ２２５で特定されたパケットの組内に含まれたパケットの平均サイズが計算される。セット内のパケットの所定数が不適当に小さい場合は、フラグが、ＴＣＰアプリケーションが不十分に記述されていたり、もしくは、ネットワークが構成異常となっていることを示すよう設定される。補修手順が、システム管理者に提示され、もしくは実行されてもよい。
【００３７】
ステップ２３５では、ＴＣＰ受信装置１１０に結合したバッファ内の空きスペース量が、所定期間モニターされ、同じ期間の間にパケットが受信されるレートと比較される。パケットが比較的一定レートに到達する時間の間に、空きスペース量が所定の閾値下回るまで下がる場合、フラグが設定される。これは、受信装置がデータ転送においてボトルネックである状況を示していると考えられるだろう。可能なら、補修手順が、システム管理者に提示され、もしくは実行されてもよい。
【００３８】
ステップ２４０では、受信装置ＴＣＰ１１０処理に利用されるＣＰＵサイクル数は、アイドルタイムとして残される量と比較される。ＣＰＵサイクル数が、所定の閾値を超える場合、フラグが設定される。この状況は、データ転送においてボトルネックとなっている、受信装置システムを示していると考えられる。可能なら、補修手順が自動的に実行されてもよい。
【００３９】
ステップ２４５では、受信装置アプリケーションが、ＴＣＰソケット受信装置バッファから読み出すレートが、モニターされる。レートが所定の閾値を下回るまで下がる場合、フラグが設定される。フラグが設定される場合、可能なら、補修手順が自動的に実行されてもよい。
【００４０】
ステップ２５０では、システム管理者に適切なタイプおよび適切な量のデータを提示出来るよう、ポスト診断収集は、モニターされてきたイベント上で実行される。このポスト診断収集は、以下のうち、いくつか、もしくはすべてに一致するものを含む：（１）収集に適切なクライアントシステムのグループ、（２）特に関連する１つ以上の組の属性タイプ（ＩＰサブネット番号、ＯＳタイプ／バージョン、最新の構成変更および他の要因など）、（３）これらのクライアントシステム内で起こった一連の問題。どのクライアントシステムが収集に適切であるかを決定した後、共通の問題を共有するシステムが特定される。これは、データベース１５７に格納されるように、様々な属性に与えられる、特性および重み付けを見ることにより行われる。
【００４１】
ステップ２５５では、最終レポートは、（１）ポスト診断収集、および（２）集
【００４２】
ステップ２６０では、最終レポートは、システム管理者に伝送される。
【００４３】
ステップ２６５では、方法２００のパフォーマンスに関連した、診断結果、補修手順、システム管理者へのメッセージ、および他の情報のレコードが、データベース１５７に格納される。
【００４４】
図３Ａおよび図３Ｂは、ＴＣＰ送信装置での制限因子自動検出方法の処理フロー図を示している。
【００４５】
自動診断のための方法３００は、自動診断モジュール１５０がＴＣＰ送信装置１２０側に結合される、システム１００の実施例により実行される。自動診断方法３００は連続して説明されているが、方法３００のステップは、共に、もしくは並行に、非同期的であろうがなかろうが、パイプライン方式、もしくは他の方式で、実行可能である。方法３００は、ただ、そのように示されている以外、この説明が一覧表示するステップと同じ順序で実行されなければならないという、特別な要求はない。
【００４６】
フローポイント３０５では、システム１００は、ＴＣＰ受信装置１２０で自動診断を始める準備ができている。
【００４７】
ステップ３１０では、いつタイマが切れるかを測定するため、コースグレインド（ｃｏｕｒｓｅ  ｇｒａｉｎｅｄ）再伝送タイマがモニターされ、パケットが再伝送される。再伝送タイムアウトの数が所定の閾値を超える場合、フラグが設定される。この状況は、送信装置と受信装置との間のネットワーク経路内に、何らかの問題があることを示していると考えられる。可能なら、補修手順が実行されてもよい。
【００４８】
ステップ３１５では、特定のタイムフレーム内に送られる特定組のパケットは、（１）セット内のパケットのいずれもが、小さなパケットの使用を必要とする制御情報、メタデータ、もしくは他のタイプのデータを含んでいない、および、（２）セット内のすべてのパケットは、データパケットの同一バーストの一部であるように、確認される。
【００４９】
ステップ３２０では、ステップ３１５で特定されたパケットの組内に含まれたパケットの、平均サイズが計算される。セット内のパケットの所定数が不適当に小さい場合は、フラグが、ＴＣＰアプリケーションが不十分に記述されていたり、もしくは、ネットワークが構成異常となっていることを示すよう設定される。可能なら、補修手順が実行されてもよい。
【００５０】
ステップ３２５では、ＴＣＰ受信装置１１０により、広告されるウィンドウのサイズがモニターされる。
【００５１】
ステップ３３０では、遅延帯域積が計算される。
【００５２】
ステップ３３５では、広告ウィンドウのサイズと遅延帯域積とが比較される。ウィンドウのサイズが遅延帯域積の原因となることが出来る程大きくない場合、これは、ＴＣＰ受信装置１１０が、ボトルネックとして機能しているのを示していることもある。これらの条件の下でフラグが設定され、可能なら、補修ステップが実行されてもよい。
【００５３】
ステップ３４０では、ＴＣＰ受信装置１１０上の広告ウィンドウサイズの変化が、ＴＣＰ送信装置１２０のパフォーマンスと比較される。サイズ変化が所定のパターンに合う場合、ＴＣＰ送信装置１２０は、ボトルネックとして作用していると考え得る。これらの条件の下ではフラグが設定され、可能ならば、補修ステップが実行されてもよい。
【００５４】
ステップ３４５では、ＴＣＰ送信装置１２０のバッファのサイズが、ＴＣＰ送信装置１２０とＴＣＰ受信装置１１０との間のネットワーク経路の帯域幅と比較される。送信バッファサイズがネットワーク経路の帯域幅に対して不十分なものである場合は、ＴＣＰ送信装置１２０はボトルネックとなっている可能性がある。これらの条件の下ではフラグが設定され、可能ならば、補修ステップが実行されてもよい。
【００５５】
ステップ３５０では、各ＴＣＰ送信装置１２０上の送信バッファ内の、非送信、待機データの量がモニターされる。ＴＣＰ送信装置１２０が接続に何も送信出来ない回数が、特定の閾値を超える場合、ＴＣＰ送信装置１２０はボトルネックとなっている可能性がある。これらの条件の下ではフラグが設定され、可能ならば、補修ステップが実行されてもよい。
【００５６】
ステップ３５５では、ポスト診断収集は、モニターされて来たイベント上で実行される。このステップは、方法２００のステップ２５０と同様である。このポスト診断収集は、（１）収集に適切なクライアントシステムのグループ、（２）特に関連する１つ以上の属性タイプ（ＩＰサブネット番号、ＯＳタイプ／バージョン、最新の構成変化、他の要因など）の組、あるいは、（２）これらのクライアントシステム内で発生する問題の組、を確認することを含んでいる。どのクライアントシステムが収集に適切かを決定した後、共通の問題を共有するシステムは、データベース１５７に格納された様々な属性の重みづけを調べることにより特定される。
【００５７】
ステップ３６０では、最終レポートは、（１）ポスト診断収集、および、（２）集められなかった個々の問題の記述に基づいて作られる。
【００５８】
ステップ３６５では、最終レポートがシステム管理者に伝送される。
【００５９】
ステップ３７０では、方法３００のパフォーマンスに関連する診断結果、補修手順、システム管理者へのメッセージ、および他の情報の記録が、データベース１５７に格納される。
【００６０】
代替実施例
好ましい実施例が、本願明細書に開示されているが、本発明の概念、範囲、および精神の範囲内で、多くの変形が可能であり、これらの変形は、この出願を熟読することにより、当業者にとり明白なものとなろう。
【図面の簡単な説明】
【００６１】
【図１】ＴＣＰ接続内の、パフォーマンス制限因子自動検出システムのブロック図を示す。
【図２Ａ】ＴＣＰ受信装置内のパフォーマンス制限因子自動検出方法の処理フロー図の一部を示す。
【図２Ｂ】ＴＣＰ受信装置内のパフォーマンス制限因子自動検出方法の処理フロー図の残部を示す。
【図３Ａ】ＴＣＰ送信装置内のパフォーマンス制限因子自動検出方法の処理フロー図の一部を示す。
【図３Ｂ】ＴＣＰ送信装置内のパフォーマンス制限因子自動検出方法の処理フロー図の残部を示す。
【符号の説明】
【００６２】
１００  システム、１１０  ＴＣＰ受信装置、  １２０ＴＣＰ送信装置、１３０  通信ネットワーク、１４０  オペレーティングシステム、１５０  自動診断モジュール、１５５  ソフトウエアインストラクション、１５７  データベース、１５８  フィールド。
【図２Ａ】
2004528648.tif 000003
【図２Ｂ】
2004528648.tif 000004
【図３Ａ】
2004528648.tif 000005
【図３Ｂ】
2004528648.tif 000006
【国際公開パンフレット】
2004528648.tif 000007
2004528648.tif 000008
2004528648.tif 000009
2004528648.tif 000010
2004528648.tif 000011
2004528648.tif 000012
2004528648.tif 000013
2004528648.tif 000014
2004528648.tif 000015
2004528648.tif 000016
2004528648.tif 000017
2004528648.tif 000018
2004528648.tif 000019
2004528648.tif 000020
2004528648.tif 000021
2004528648.tif 000022
2004528648.tif 000023
2004528648.tif 000024
2004528648.tif 000025
2004528648.tif 000026
2004528648.tif 000027
2004528648.tif 000028
2004528648.tif 000029
2004528648.tif 000030
2004528648.tif 000031
2004528648.tif 000032
2004528648.tif 000033
2004528648.tif 000034
2004528648.tif 000035
2004528648.tif 000036
【国際公開パンフレット（コレクトバージョン）】
2004528648.tif 000037
2004528648.tif 000038
【国際調査報告】
2004528648.tif 000039