(57)【要約】  往復遅延の遠隔推定を使用したデータネットワーク輻輳診断のための技術が開示されている。モニタリングノード（１１０）はネットワークノードとネットワードノードの間でテストメッセージを送信し、テストメッセージがモニタリングノードから送信されたときからテストメッセージがモニタリングノードに返されるときまでの送信時間を測定する。ネットワークノードとネットワークノードの間のパス遅延は測定された時間遅延に基づいて判断される。ネットワークパス遅延を判断する技術は、ネットワーク輻輳問題を診断するための３フェーズテスト手順とも併用されて使用される。ネットワークトポロジとルーティングテーブルはさまざまであるために、第１フェーズと第２フェーズのどちらのテスト手順が特定のパスセグメントに適しているかを判断するためにある種の確認チェックが必要になる場合がある。さらに、待ち行列遅延は、トラフィック独立遅延をテストメッセージの測定された送信時間から減算することによって判断できるので、この待ち行列遅延はパス遅延を判断するために使用することができる。このトラフィック独立遅延は低ネットワークトラフィックの期間に判断することができる。
2008519493.tif 000002
【特許請求の範囲】
【請求項１】
第１ネットワークノードと第２ネットワークノードの間のパス遅延を測定する方法であって、
モニタリングノードから第１メッセージを送信し、前記第１メッセージは、前記第１ネットワークノードへのパスと、前記第２ネットワークへのパスと、前記第１ネットワークノードへと戻るパスを通過して、前記モニタリングノードに戻されるステップと、
前記第１メッセージが前記モニタリングノードから送信されたときから前記第１メッセージが前記モニタリングノードに戻されるときまでの第１送信時間を測定するステップと、
前記モニタリングノードから第２メッセージを送信し、前記第２メッセージは、前記第１ネットワークへのパスを通過して、前記モニタリングノードに戻されるステップと、
第２メッセージが前記モニタリングノードから送信されたときから前記第２メッセージが前記モニタリングノードに戻されるときまでの第２送信時間を測定するステップと、
前記第１送信時間と前記第２送信時間に基づいて、前記パス遅延を判断するステップと
を備えたことを特徴とする方法。
【請求項２】
前記第１送信時間のトラフィック独立遅延部分を前記測定された第１送信時間から減算することによって第１待ち行列遅延を判断するステップと、
前記第２送信時間のトラフィック独立遅延部分を前記測定された第２送信時間から減算することによって第２待ち行列遅延を判断するステップと
をさらに備え、
前記パス遅延は前記第１および第２待ち行列遅延を使用して判断されることを特徴とする請求項１に記載の方法。
【請求項３】
前記トラフィック独立遅延は伝搬遅延を含むことを特徴とする請求項２に記載の方法。
【請求項４】
低ネットワークトラフィック期間の間に前記トラフィック独立遅延を判断するステップをさらに備えたことを特徴とする請求項２に記載の方法。
【請求項５】
前記第１および第２メッセージは、ゆとりのあるソースルーティングを利用するネットワークパスのうち少なくとも一部を指定する特徴とする請求項１に記載の方法。
【請求項６】
ソースノードと宛て先ノードの間のネットワーク輻輳を診断する方法であって、
ソースノードから宛て先ノードへの順方向パスと、宛て先ノードからソースノードへの逆方向パスとの両方によって共有される、ソースノードと宛て先ノードの間のノードの第１セットを特定するステップと、
可能性を疑われるパスセグメントの縮減されたセットを特定するために、前記ノードの第１セットにおけるノード間のパス遅延を計算するステップと、
ソースノードから宛て先ノードへの順方向パスと、宛て先ノードからソースノードへの逆方向パスとの両方によって共用されていない、前記可能性を疑われるパスセグメントの縮減されたセット内のノードの第２セットを特定するステップと、
さらに可能性を疑われるパスセグメントの縮減されたセットを特定するために、前記ノードの第２セットにおけるノード間のパス遅延を計算するステップと、
前記さらに可能性を疑われるパスセグメントの縮減されたセットに残っているリンクのリンク遅延を計算するステップと
を備えたことを特徴とする方法。
【請求項７】
可能性を疑われるパスセグメントの縮減されたセットを特定するために前記ノードの第１セットにおけるノード間のパス遅延を計算する前記ステップは、ある特定のパスセグメントに関連する計算されたパス遅延が比較的小さい場合、前記可能性を疑われるパスセグメントから前記特定のパスセグメントを除外するステップをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項８】
可能性を疑われるパスセグメントの縮減されたセットを特定するために前記ノードの第１セットにおけるノード間のパス遅延を計算する前記ステップは、補完パスセグメントに関連する計算されたパス遅延が十分に大きい場合、前記可能性を疑われるパスセグメントからパスセグメントを除外するステップをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項９】
さらに可能性を疑われるパスセグメントの縮減されたセットを特定するために前記ノードの第２セットにおけるノード間のパス遅延を計算する前記ステップは、ある特定のパスセグメントに関連する計算されたパス遅延が比較的小さい場合、前記さらに可能性を疑われるパスセグメントの縮減されたセットから前記特定のパスセグメントを除外するステップをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項１０】
可能性を疑われるパスセグメントの縮減されたセットを特定するために前記ノードの第２セットにおけるノード間のパス遅延を計算する前記ステップは、繰り返し実行され、各々の繰り返しごとに可能性を疑われるパスセグメントのセットは、ほぼ２分の１に縮減されることを特徴とする請求項６に記載の方法。
【請求項１１】
さらに可能性を疑われるパスセグメントの縮減されたセットを特定するために前記ノードの第２セットにおけるノード間のパス遅延を計算する前記ステップは、繰り返し実行され、各々の繰り返しごとに可能性を疑われるパスセグメントのセットは、ほぼ２分の１縮減されることを特徴とする請求項６に記載の方法。
【請求項１２】
前記ノードの第１セットにおけるノード間の特定のパスセグメントについて計算されたパス遅延が、前記ソースノードと宛て先ノードの間の関連パスセグメントのパス遅延であるかどうかを判断することに確認チェックを実行し、パス遅延でない場合、前記パス遅延が比較的小さい場合に、前記可能性を疑われるパスセグメントから前記特定のパスセグメントを除外するが、前記パス遅延が比較的大きい場合に、前記可能性を疑われるパスセグメントから補完パスセグメントを除外しないステップ
をさらに備えたことを特徴とする請求項６に記載の方法。
【請求項１３】
前記ノードの第２セットにおけるノード間の特定のパスセグメントについて計算されたパス遅延が前記ソースノードと宛て先ノードの間の関連パスセグメントのパス遅延であるかどうかを判断することに確認チェックを実行し、パス遅延でない場合、前記ソースノードと宛て先ノードの間の関連パスセグメントの一部分でもある特定のパスの一部分のみを前記可能性を疑われるパスセグメントから除外するステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項１４】
パスとリンクの遅延を計算する前記ステップであって、
モニタリングノードから第１メッセージを送信し、前記第１メッセージは第１ノードへのパス、第２ノードへのパス、前記第１ノードに戻るパスを通過して、前記モニタリングノードに戻されるステップと、
第１メッセージが前記モニタリングノードから送信されたときから前記第１メッセージが前記モニタリングノードに戻されるときまでの第１送信時間を測定するステップと、
前記モニタリングノードから第２メッセージを送信し、前記第２メッセージは前記ネットワークノードへのパスを通過して、前記モニタリングノードに戻されるステップと、
第２メッセージが前記モニタリングノードから送信されたときから前記第２メッセージが前記モニタリングノードに戻されるときまでの第２送信時間を測定するステップと、
前記第１送信時間と前記第２送信時間に基づいて前記パス遅延を判断するステップと
をさらに備えたことを特徴とする請求項６に記載の方法。
【請求項１５】
前記第１送信時間のトラフィック独立遅延部分を前記測定された第１送信時間から減算することによって第１待ち行列遅延を判断するステップと、
前記第２送信時間のトラフィック独立遅延部分を前記測定された第２送信時間から減算することによって第２待ち行列遅延を判断するステップと
をさらに備え、
前記パス遅延は前記第１および第２待ち行列遅延に基づいて判断されることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記トラフィック独立遅延は伝搬遅延を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
低ネットワークトラフィック期間の間に前記トラフィック独立遅延を判断するステップをさらに備えたことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記第１および第２メッセージは、ゆとりのあるソースルーティングを利用するネットワークパスのうち少なくとも一部を指定していることを特徴とする請求項１４に記載の方法。
【請求項１９】
第１ネットワークと第２ネットワークノードの間のパス遅延を測定するモニタリングノードであって、
前記モニタリングノードから第１メッセージを送信し、前記第１メッセージは前記第１ネットワークノードへのパス、前記第２ネットワークノードへのパス、前記第１ネットワークノードに戻るパスを通過して、前記モニタリングノードに戻される手段と、
前記第１メッセージが前記モニタリングノードから送信されたときから前記第１メッセージが前記モニタリングノードに戻されるときまでの第１送信時間を測定する手段と、
前記モニタリングノードから第２メッセージを送信し、前記第２メッセージは前記第１ネットワークノードへのパスを通過して、前記モニタリングノードに戻される手段と、
第２メッセージが前記モニタリングノードから送信されたときから前記第２メッセージが前記モニタリングノードに戻されるときまでの第２送信時間を測定する手段と、
前記第１送信時間と前記第２送信時間に基づいて前記パスセグメント遅延を判断する手段と
を備えたことを特徴とするモニタリングノード。
【請求項２０】
前記第１送信時間のトラフィック独立遅延部分を前記測定された第１送信時間から減算することによって第１待ち行列遅延を判断する手段と、
前記第２送信時間のトラフィック独立遅延部分を前記測定された第２送信時間から減算することによって第２待ち行列遅延を判断する手段と
をさらに備え、
前記パス遅延は前記第１および第２待ち行列遅延を使用して判断されることを特徴とする請求項１９に記載のモニタリングノード。
【請求項２１】
前記トラフィック独立遅延は伝搬遅延を含むことを特徴とする請求項２０に記載のモニタリングノード。
【請求項２２】
低ネットワークトラフィック期間の間に前記トラフィック独立遅延を判断する手段をさらに備えたことを特徴とする請求項２０に記載のモニタリングノード。
【請求項２３】
前記第１および第２メッセージは、ゆとりのあるソースルーティングを利用するネットワークパスのうち少なくとも一部を指定することを特徴とする請求項１９に記載のモニタリングノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してデータネットワークに関し、さらに詳しくは、データネットワークにおける往復パスセグメント遅延を推定することに関する。
【背景技術】
【０００２】
サービス品質ＱｏＳ(Quality of Service)は、インターネット（または他のデータネットワーク）上でビジネスを行なうｅコマース企業にとってますます重要になっている。このような企業は、インターネット上でさまざまなサービスを顧客に提供しており、このサービスは、商業的トランザクションを遂行する能力を含む。これらの企業は、顧客にオンライン機能を提供する１以上のＷｅｂサーバを一般に保持する。これらのＷｅｂサービスのインターネットへの接続性は、インターネットサービスプロバイダＩＳＰ(Internet service provider)によって提供される。ｅコマース企業の成功の多くは、インターネットへのＷｅｂサーバへの接続品質によるので、そのような企業は、ＩＳＰとのＳＬＡ(service level agreement)に関心がある。ＳＬＡはＩＳＰが企業に提供するサービスのレベルを規定し、なんらかの最低限のＱｏＳをｅコマース企業に保証している場合がある。
【０００３】
ＳＬＡの人気が高まることは、ＳＬＡをどのように実施するか、ＩＳＰによってｅコマース企業に提供されるＱｏＳをどのようにモニタするかという問題が次に起こる。感知されるネットワーク輻輳は種々のネットワーク要素のためであり、その一部はＳＬＡに基づくＩＳＰの責任であり、その他はＩＳＰの責任ではなく、ＳＬＡによって保証されていないかもしれない。従って、ＩＳＰは、遅延を引き起こすネットワークの一部分についての責任者でないかもしれないので、エンドツーエンド(end to end)のネットワーク遅延を単に検知することは、ＳＬＡと関係しているとは限らない。
【０００４】
ｅコマース企業は、ＳＬＡに基づいてＩＳＰによって提供されるＱｏＳをモニタするか、またはｅコマース企業はＩＳＰによって提供されるＱｏＳをモニタするために第三者のサービスに従事するかもしれない。いずれの方法でも、サービスをモニタする当事者はネットワークサービスプロバイダではなく、したがって、ネットワークプロバイダの自由になっているネットワーク診断ツールのすべてへのアクセスを有さない。そのために、第三者の監視者が遅延を引き起こすデータネットワークの一部分を正確に突き止めることは困難であるのが一般的である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
第三者の監督者がデータネットワークにおける輻輳を検知し、どのネットワークパスセグメント、または特定のリンクがネットワーク遅延の原因であるかを判断できるようにする技術が必要である。
【課題を解決するための手段】
【０００６】
本発明はネットワーク輻輳を診断する改良技術を提供する。
【０００７】
本発明の実施形態によれば、２ネットワークノード間のパス遅延を判断するために、モニタリングノードを利用する。モニタリングノードは第１テストメッセージを送信し、このテストメッセージは、第１ネットワークノードへのパス、第２ネットワークノードへのパス、第１ネットワークノードに戻るパスを通過して、モニタリングノードに戻される。モニタリングノードは、第１テストメッセージの送信と受信の間の時間遅延を測定する。モニタリングノードは、第２テストメッセージを送信し、このテストメッセージは、第１ネットワークノードへのパスを通過し、そのあとモニタリングノードに戻される。モニタリングノードは、第２テストメッセージの送信と受信の間の時間遅延を測定する。第１および第２ネットワークノード間のパス遅延は、測定された２つの時間遅延に基づいて判断することができる。
【０００８】
ネットワークパス遅延を判断する技術は、本発明の別の実施形態によれば、ネットワーク輻輳問題を診断するための３フェーズのテスト手順と併せて利用することもできる。第１フェーズの間、ソースノードから宛て先ノードへの順方向パスと、宛て先ノードからソースノードへの逆方向パスとの両方によって共有される、ソースノードと宛て先ノードの間のノードの第１セットが特定される。第１セットにおけるノード間のパス遅延は、その後、輻輳を引き起こす、可能性を疑われるパスセグメントの縮減されたセットを特定するために計算される。次に第２フェーズの間、ソースノードから宛て先ノードへの順方向パスと、宛て先ノードからソースノードへの逆方向パスとの両方によって共有されていない、可能性を疑われるパスセグメントの縮減されたセット内のノードの第２セットが特定される。第２セットにおけるノード間のパス遅延は、次に、可能性を疑われるパスセグメントのセットをさらに縮減するために計算される。最後に、第３フェーズの間、さらに可能性を疑われるパスセグメントの縮減されたセットに残っているリンクのリンク遅延が計算される。
【０００９】
テスト手順の第１フェーズの間、特定のパスセグメントに関連するパス遅延が比較的小さい場合、特定のパスセグメントを、可能性を疑われるパスセグメントのセットから除外してもよい。特定のパスセグメントに関連するパス遅延が、テスト手順の第１フェーズの間に十分に大きい場合、測定されたパスセグメントの補完パスセグメントを、可能性を疑われるパスセグメントのセットから除外してもよい。テスト手順の第２フェーズの間、パス遅延が比較的小さい場合、パスセグメントを、可能性を疑われるパスセグメントのセットから除外してもよい。第１フェーズと第２フェーズのテストは繰り返してもよく、繰り返しごとに、可能性を疑われるパスセグメントのセットは、約２分の１縮減される。
【００１０】
本発明の別の態様によれば、種々のネットワークトポロジとネットワークルーティングテーブルに起因して、第１フェーズと第２フェーズのどちらのテスト手順が特定のパスセグメントに適しているかを判断するためになんらかの確認チェックが必要になる場合がある。
【００１１】
本発明の別の態様によれば、待ち行列遅延は、テストメッセージの測定された遅延時間からトラフィック独立遅延を減算することによって判断することができ、このような待ち行列遅延を、パス遅延を判断するために使用することができる。このようなトラフィック独立遅延は低ネットワークトラフィックの期間の間に判断することができる。
【００１２】
本発明の上記およびその他の利点は、以下の詳細説明と添付図面を参照することによって、当業者にとって明らかとなる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の原理を実現することができるパケットデータネットワーク１００を示す。ネットワーク１００は、ネットワークリンクによって接続された多数のノードを含む。ネットワーク１００などのネットワークは、データネットワーキングの分野ではよく知られている。このようなネットワークにおけるノード（一般に、図１において「Ｎ」として示されている）は一般に、データパケットを受信し、別のルータを介してその最終宛て先に、そのデータパケットを転送するネットワークルータである。ルータは一般に、標準ネットワークインタフェースを使用して実現され、その動作は、コンピュータプログラム命令を実行する１以上のプロセッサによって制御される。データネットワークの実装は、ネットワークルータを含めて、この分野ではよく知られていて、ここで詳細には説明しない。  ソースノード１０４（たとえば、ｅコマース企業のサーバであるかもしれない）と、宛て先ノード１０２（たとえば、ユーザコンピュータをデータネットワークに接続するのに使用されるＰＯＰ（point of presence）であるかもしれない）とを考える。
【００１４】
さらに、ネットワークにおけるパスセグメント遅延を推定するために本発明の原理に従って使用できるモニタリングノード１１０を考える。モニタリングノード１１０は、標準ネットワークインタフェースを使用するプログラマブルコンピュータを使用して実装できる。モニタリングノード１１０の例示実施形態を示すハイレベルブロックを図５に示す。図５において、モニタリングノード１１０は、モニタリングノード１１０の全体動作を制御するプロセッサ５０２（または複数のプロセッサ）を備える。このような動作はメモリ５０４に格納され、プロセッサ５０２によって実行されるプログラム命令によって定義されている。メモリ５０４は、任意の種類のコンピュータ可読媒体であってよく、電子、磁気、または光媒体を含むが、これらに限定されない。さらに、１つのメモリユニット５０４が図５に示される一方で、メモリユニット５０４は複数のメモリユニットを備えることができ、このようなメモリユニットは任意の種類のメモリを備えることを理解されたい。モニタリングノード１１０は、モニタリングノード１１０とデータネットワークとの間でデータパケットの通信を提供するネットワークインタフェース５０６も備える。モニタリングノード１１０は、Ｉ／Ｏ５０８として図５に表される、１以上の入力／出力デバイスを備え、モニタリングノード１１０のユーザとの対話を可能とする。図５に示すようにプログラマブルコンピュータとして実装されるネットワークノードは、この分野ではよく知られているので、このようなネットワークノードの詳細をここでさらに説明はしない。
【００１５】
ここで図１に戻ると、モニタリングノード１１０にだけアクセスを有する第三者は、ネットワーク遅延を診断し、遅延を引き起こすリンクの位置を判断するために、ソースノード１０４と宛て先ノード１０２との間のパスを監視したいかもしれない。ネットワーク１００の一部（例えば、部分１０６）が、ｅコマース企業がＳＬＡを有する場所で特定のネットワークサービスプロバイダ（例えば、ＩＳＰ）の責任となる場合に、この１つの動機付けであるかもしれない。（ソースノード１０４と宛て先ノード１０２との間の）往復遅延が検知される場合、ネットワークのどの部分が遅延を引き起こしているかを判断することが望ましい。例えば、遅延の原因がネットワーク部分１０６内にあると判断される場合、ｅコマース企業はネットワークのその部分に責任のあるＩＳＰに連絡することができる。ここでｅコマース企業によって管理されるネットワーク部分１０８を考える。遅延の原因がネットワーク１００の部分１０８内であると判断される場合、この遅延は前述のＩＳＰの責任とはならない。任意の出来事も、図１および添付の詳細な説明からわかるように、ネットワーク遅延が存在することだけでなく、ネットワークの特定部分が遅延を引き起こしていることを検知できることは重要である。
【００１６】
本発明の実施形態によるネットワーク診断は２つの部分を備える。第１部分はネットワークトポロジ発見であり、第２部分は輻輳の間の実際の測定である。第１部分は、ソースノードと宛て先ノードとの間の種々のパスを判断するために必要とされる。また、この第１部分の一部として、さらなる詳細を以下で説明するように、トラフィック独立遅延の測定は、ネットワーク輻輳遅延をこの測定部分の間により隔離できるように推定される。
【００１７】
図２は、第１部分の間に実行されるステップのフローチャートである。最初に、ステップ２０２において、ネットワークトポロジが判断される。ネットワークトポロジは、tracerouteコマンド（経路探索コマンド）を使用して判断され、これは、ソースノードと宛て先ノードとの間のネットワークルートをトレースするインターネットユーティリティとしてよく知られている。「traceroute」とも呼ばれるこのtracerouteユーティリティの出力は、２エンドポイントの間の各「ホップ」（インターネットルータまたは別のホストコンピュータ）、およびパケットがそのホップからバウンスオフ（bounce off)されるのに要した往復時間を示す。したがって、tracerouteは、ネットワーク内の与えられたソースと宛て先の間のエンドツーエンドパスで使用されるルーティングと中間リンクとを発見するために使用される。一般的に、tracerouteは、traceroute dの形のコマンドに１つのパラメータを使用して実行される。ここで、traceroute dのdは、宛て先ノードであり、コマンドはソースノードにおいて実行される。
【００１８】
指定された宛て先に到達するためにネットワークによって使用されるネットワークルートをtracerouteコマンドが正確にトレースするために、ルート内の各ルータは、パケットの存続時間の満了についての通知をサポートしなければならない。この理由は、指定された宛て先ノードへのルートを発見するためにtracerouteコマンドがソースノードで実行されるとき、ソースノードは、パケットの存続時間フィールドに異なる値を指定して宛て先ノードに向けてテストパケットのシーケンスを発信し、これは実際には使用されるホップの数の制限であるので（要した物理的時間への制限ではない）、各パケットは宛て先へのルート上の異なるノードでその制限時間を使い果たすことになるからである。ルータがその存続時間をちょうど使い果たそうとしているパケットを受信するとき、ルータはパケットの存続時間が満了したという通知を、その満了が起こった個所のルータの通知と共に、パケットのソースに送信することを想定する。ソースノードは、すべてのテストパケットのすべての存続時間満了の通知を収集することによって、元々指定された宛て先へのルートをトレースすることができる。この技術を用いてネットワークトポロジを正確に発見するために、ネットワーク内のルータは存続時間満了の通知を、その通知内のそれ自身の識別と共に、供給するよう構成されている必要がある。
【００１９】
tracerouteは、ソースノードと宛て先ノードの間の前述のtracerouteコマンドによって特定されるパスとは別のパスを発見するのにも使用できる。これは、tracerouteコマンドをゆとりのあるソースルーティング併せて使用することによって達成できる。一般に、ゆとりのあるソースルーティングによって、データパケットのソースはパケットをルーティングするために、ある程度ゆとりのあるガイダンスをネットワークに与えることができる。より詳しくは、ソースノードはゆとりのあるソースルーティングオプションの使用のインジケータを、ノードのリストと共にパケットのＩＰヘッダに含めることができ、これは一般に、リストのすべてのノードをリストされた順にたずねるルートを使用することによって、パケットをその最終宛て先にルーティングすることを必要とする。ルーティングにゆとりがあるとは、リスト上の連続するノードがネットワーク内のすぐ近隣でない場合に、ルート上の追加ノードを採用することを、ネットワークが許容されるという意味である。ゆとりのあるソースルーティングをtracerouteユーティリティと併せて使用されるとき、ソースノードｓと宛て先ノードｄとの間に他のパスを発見することが可能になる。より詳しくは、ゆとりのあるソースルーティングをtracerouteと併せて使用して、tracerouteパケットを宛て先ノードへの途中の特定の中間ノードに向けることが可能となる。従って、ソースｓで実行されるtraceroute -g i dの形のコマンドは、中間ノードｉを経由してソースｓから宛て先ｄへのパケットが取るルートを発見するために使用することができる。同様に、ソースｓで実行されるtraceroute  g d s形式のコマンドは、中間ノードとしてｄを使用してｓから自身に戻る往復パスを判断するために使用することができる。
【００２０】
以下でより詳しく説明するように、ここで説明されている実施形態は、モニタリングノードと別のネットワークノードとの間の種々の特定パスに沿ってエンドツーエンド遅延を測定する。これは、ゆとりのあるソースルーティングを利用するカスタマイズされたインターネットメッセージを使用して実行される。以下の説明からわかるように、これらの特殊化されたパスメッセージを使用すると、第三者のネットワーク監視者はソースノードｓと宛て先ノードｄの間の種々のエンドツーエンドパスに沿って、エンドツーエンド遅延測定を取得できる。この遅延測定は、メッセージの送信時間とその戻り時間を比較することによって判断される。
【００２１】
エンドツーエンド測定から監視されるネットワーク遅延は２つのコンポーネントからなることに留意されたい。すなわち、ネットワーク輻輳の結果の待ち行列遅延と、トラフィック独立遅延（例えば、送信と伝搬）である。ネットワーク動作を監視する当事者は、一般に、トラフィック独立遅延よりも待ち行列遅延のほうに関心があるので、トラフィック独立遅延を事前に知ることは、監視された遅延からトラフィック独立遅延を除くことができるので有益である。従って、図２のフローチャートの第２のステップ２０４は、これらのトラフィック独立遅延の判断であり、この遅延は以下のように判断することができる。
【００２２】
パスｐを通過する際、監視された遅延は待ち行列遅延とトラフィック独立遅延の和となることに留意されたい。安定したネットワークルーティングを想定すると、複数のテストパケットは同じパスに沿って送信される。そのように、任意のパスに沿って監視されたエンドツーエンド遅延の最小値が、トラフィック独立遅延にほとんど等しくなる。さらに、テストパケットの任意がパスに沿ったすべてのホップで長さゼロの待ち行列に出会う場合、パスに沿ったエンドツーエンド遅延の最小値は、パスのトラフィック独立遅延に等しくなる。パケットの１つにこの最小遅延と出会う可能性は、発信されるパケットの数と共に上昇する。さらに、比較的軽いネットワーク負担の間にテストが実行される場合、パケットの１がこの最小遅延と出会うる可能性はさらに上昇する。従って、図２のステップ２０４によれば、関心のある種々のネットワークパスに沿ってトラフィック独立関連遅延は、ネットワークが輻輳していない期間の間に、「オフライン」で推定される。
【００２３】
図３は、本発明の実施形態によるネットワーク診断の間にネットワークにおける双方向（対称）リンク遅延を判断するために実行されるステップのフローチャートである。以下の説明で説明するように、図３併せて説明される実施形態は、測定された往復エンドツーエンド遅延に基づいて双方向リンク遅延を判断するためのステップを説明する。往復エンドツーエンド遅延は、順方向パス遅延と逆方向パス遅延の和である。理想的な解決方法は、往復測定に基づいて順方向パスと逆方向パスを個別に特徴付けることができることである。しかし、一方向の遅延を判断することは、実用的として見なされがち以上にリソースを必要とする。大部分の実用的ネットワーク実装において、対称往復リンク遅延は、輻輳問題を診断に適切である。従って、図３は、測定された往復エンドツーエンド遅延に基づいて双方向リンク遅延を判断するステップを説明する。
【００２４】
図４のネットワークと併せて図３のフローチャートのステップを説明する。図４を参照すると、モニタリングノードμ４０２とノードλ４０４を考える。モニタリングノードμ４０２とノードλ４０４の間のエンドツーエンドルーティングパスは、図２のステップ２０２で上述したように、ゆとりのあるソースルーティングオプションと共にtracerouteユーティリティを使用して発見できる。さらに詳しくは、コマンドtraceroute g λ μをモニタリングノードμ４０２から発信して、中間ノードとしてλを使用して、μから自身への往復パスを判断することができる。このtracerouteテストから、μからλへの順方向パスとλからμへの逆方向パスとの両方向で使用された中間ノードを判断することが可能である。関心のあるリンクが２中間ノードｉ４０６とｊ４０８を相互接続しているリンク４１０であるという説明の目的を想定する。双方向リンク４１０は、２つの単方向リンクと呼ぶこともでき、中間ノードｉ４０６から中間ノードｉ４０８へのリンクを、Ｌｉｊと呼び、中間ノードｉ４０８から中間ノードｉ４０６へのリンクを、Ｌｊｉと呼ぶことにする。モニタリングノードμ４０２からノードλ４０４へのパスにおいて、他の中間ノードが存在するかもしれないことは、当業者に理解できる。これらの他の中間ノードは図４に示されていないが、ネットワーク雲４１２と４１４によって表される。さらに、リンク４１０の一方向だけが結果的に関心となる可能性は、μとλの間の往復ルートで使用されることを意味することも、当業者によって理解される。
【００２５】
ネットワーク遅延が検知されたと想定すると、パスにおけるリンクは、図３と併せて説明されるようにテストすることができる。まず、ステップ３０４において、特定のリンクが分析のために選択される。この例では、リンク４１０が評価のために選択されると想定する。ステップ３０６において、テストメッセージがモニタリングノードμ４０２から送信され、このメッセージは中間ノードｉ４０６、リンクＬｉｊ、中間ノードｊ４０８、リンクＬｊｉ、中間ノードｉ４０６を通過し、モニタリングノードμ４０２に戻される。このメッセージは中間ノードｉ４０６の最初の宛て先で、しかし、中間ノードｉ４０６に到着したあと、ルートを中間ノードｊ４０８に、中間ノードｉ４０６に、そしてモニタリングノードμ４０２に戻るように連続的に延長されるように、ゆとりのあるソースルーティングオプションを使用して指定したパケットのヘッダで、ゆとりのあるソースルーティングを利用することができる。この方式で、ステップ３０８で表されるように、遅延Ｘｊは、モニタリングノードμ４０２から中間ノードｊ４０８へ、そして戻されて測定できる。関心のある遅延Ｘｊは遅延の待ち行列部分であり、そのため、トラフィック独立遅延は図２のステップ２０４で行なわれた判断から分かるので、モニタリングノードμ４０２から中間ノードｊ４０８へおよびモニタリングノードμ４０２に戻るエンドツーエンドパス遅延のトラフィック独立遅延部分を除去することができる。
【００２６】
次に、ステップ３１０において、テストメッセージは、モニタリングノードμ４０２から送信され、このメッセージは中間ノードｊ４０８へおよび中間ノードｊ４０８からリンク４１０を通過することなく、中間ノードｉ４０６を通過して、モニタリングノードμ４０２に戻される。このテストメッセージは、中間ノードｉ４０６を最初の宛て先で、しかし、中間ノードｉ４０６に到着したあと、ルートをモニタリングノードμ４０２に戻るように延長することを、ゆとりのあるソースルーティングオプションを使用して指定したパケットのヘッダで、ゆとりのあるソースルーティングを利用することができる。この方式で、ステップ３１２で表されるように、遅延Ｘjは、モニタリングノードμ４０２から中間ノードｉ４０６へ、そして戻されて、測定されることができる。もう一度、関心のある遅延Ｘjは、遅延の待ち行列部分であり、そのために、トラフィック独立遅延は図２のステップ２０４で行なわれた判断から分かるので、モニタリングノードμ４０２から中間ノードｉ４０６へ、および戻されるエンドツーエンドパス遅延のトラフィック独立遅延部分は除去することができる。
【００２７】
図３のステップは２つの密接に関連するパス上の往復エンドツーエンド遅延の測定から双方向リンク遅延をこれまでされたことを理解すべきである。すなわち、モニタリングノードμ４０２から中間ノードｉ４０６へ、および戻される短いパスｐｘと、モニタリングノードμ４０２から中間ノードｊ４０８へ、および戻される長いパスＰｘである。短いパスｐｘおよび長いパスＰｘは、それぞれ図４に４１８と４１６として図で表わされる。パスＰｘ上の遅延はステップ３０８においてｘ,-として測定され、パスｐｘ上の遅延はステップ３１２においてＸｊとして測定される。従って、ステップ３１４において表されるように、リンク４１０上の対称遅延（Ｓy）はＳy＝Ｘj−ｘjとして計算することができる。
【００２８】
一般に、モニタリングノードμ４０２と中間ノードｉ４０６の間のパスセグメントは比較的に長くすることができ、２方向（中間ノードｉ４０６へおよび中間ノードｉ４０６から）で異なることも可能であるが、重要な要求条件は、モニタリングノードμ４０２と中間ノードｉ４０６の間の同じセグメントが、Ｘｊとｘjの両方の計算で使用され、パスＰｘ４１６は、中間ノードｉ４０６と中間ノードｊ４０８の間の直接リンク４１０だけを使用することである。これらの要求が満たされる限り、Ｓｙは、Ｓy=Ｘj Ｘjとして計算することができる。
【００２９】
上述した技術を用いて、第三者の監視者は往復リンク遅延を判断することができる。多くのネットワーク状況において、ネットワーク問題を正確に診断するのに、往復リンク遅延の知識は十分である。例えば、ある特定リンクが、双方向遅延を過剰に有することが分かり、同じＩＳＰが、リンクの両方向に責任がある場合、遅延に関してその特定ＩＳＰに連絡すればよいと判断することができる。
【００３０】
個別リンクをテストするための上述したプロシージャにおいて、テストするリンクを選択するステップ３０４は、任意の基礎に基づいても行なうことができ、これは、関心のあるルート上のリンクのそれぞれを連続的に選択するのと基本的に同じである。しかし、大部分の実用的ネットワーク実装において、モニタリングノードと宛て先ノードとの間の多数のホップを含む比較的長いパスがある。そのために、パス内の各リンクについて図３のステップを実行することは非効率であるのが通常である。従って、図６、７Ａ、７Ｂ、および７Ｃと併せてここで説明するように、有利な実施形態において、ネットワーク輻輳を診断するために３フェーズの技術が使用される。
【００３１】
ネットワーク輻輳診断のための３フェーズの技術のハイレベルフローチャートを図６に示し、図７Ａ、７Ｂ、および７Ｃに示される例示的ネットワークと併せて３フェーズの技術を説明する。図７Ａ、７Ｂ、および７Ｃは、垂直方向に図７Ａが上段に、図７Ｂが中段に、図７Ｃが下段に置かれている単一図と理解すべきである（そして、図７Ａ、７Ｂ、および７Ｃの全３つの図を、図７として呼ぶ）。図７はソースノード７０２、モニタリングノード７０４、および宛て先ノード７０６を示す。ソースノード７０２、モニタリングノード７０４、および宛て先ノード７０６を接続するノードを図７に示し、これらのノードの各々は、番号（Ｎ＃）で示されている。図７もまた、ノードを相互接続する方向リンクを示す。図７には、関心のあるメインルートを、モニタリングノード７０４をメインルートと接続することができるパスのうちの１つ上リンクと共に示されるが、明確化のために、図７はネットワークの他のリンクは省かれている。ここで、ソースノード７０２と宛て先ノード７０６の間のパスを考えてみる。ソースと宛て先の間で送信されるパケットについてネットワーク遅延が監視されたときは、遅延の原因となりうることが多くの疑われるリンクが存在することは、当業者に読んで理解されるだろう。従って、図３と関連して、上述した技術を用いてリンクのそれぞれを個別にテストすることは、長い時間がかかり、大量のリソースを使用することになる。有利な実施形態によれば、図６の３フェーズの技術は、比較的少ないテストでテストする疑わしいリンクの数を縮減するために使用される。典型的な問題が発生したとき、通常、単一のリンクだけが問題の原因であることを想定することに留意されたい。
【００３２】
予備的な事柄として、上述したように、図３に説明される技術は双方向リンク遅延を判断したことに留意されたい。図７および図８と併せてここで説明するように、図３と併せて説明した技術と類似する技術は、リンク遅延よりむしろパス遅延を判断するためにフェーズ１（６０２）とフェーズ２（６０４）で使用される。図３で説明される技術は、以下のように、２ノードＸとＹの間のパス遅延を判断するために拡張できることは、当業者は理解する。ノードＸとＹは近隣ノードである必要はなく、ＸとＹの間のパスには複数のノードが存在することが可能であることに留意されたい。ノードＸとＹ間のパス遅延をモニタリングノードＭから判断するために、まず次のように送信されたテストメッセージについて、遅延が測定される：Ｍ→Ｘ→Ｙ→Ｘ→Ｍ（遅延１）。次に、次のように送信されたテストメッセージについて、遅延が測定される：Ｍ→Ｘ→Ｍ（遅延２）。遅延１−遅延２＝ノードＸとＹ間のパスセグメント遅延。この方式でパス遅延を計算する原理は、図３と併せて上述されるように、リンク遅延を計算する原理と類似している。
【００３３】
ここで図６を参照すると、第１フェーズ６０２は以下のように進める。ここで用いられている「閉じた(closed)」パスという用語は、最終ポイントが開始ポイントと等しい任意のパスに共通の意味を有することに留意されたい。また、ここで用いられている「大きな(large)」および「短い(short)」という用語は、パスの長さを説明するための相対的な用語として使用される。調査の開始時は、すべてのリンクが疑わしいリンクであり、１つの問題リンクだけが存在する場合、その問題を突き止める最も効率的な方法は、バイナリ検索を行い、調査の各ステップでテストを実行することであり、これはそのステップで残っているほぼ半分の疑わしいリンクをテストすることである。問題は、順方向ルートは常に逆方向ルートと一致しないので、疑わしいルートの正確なセットを正確にテストすることは常に可能ではない。しかしこのようなテストは、典型的には実行できる。従って、第１フェーズ６０２の手順では、最初に、順方向パスＳ→Ｄと逆方向パスＤ→Ｓの両方によって共有される、「大きな」閉じたパスＳ→Ｄ→Ｓ上のノードのリストを特定する。図７の例を使用すると、共有ノードのこのリストは、Ｓ、Ｎ４、Ｎ８、Ｎ１２、Ｎ１８、Ｎ２８、Ｎ３２、Ｎ３６、Ｎ４０、Ｎ４４、Ｎ４８、およびＤである。この閉じたパスにおけるすべてのリンクが「大きな」閉じたパスＳ→Ｄ→Ｓ上の最初に気付かれた遅延を疑わしいリンクであるという意味において、このリスト上の任意の２つの共有ノードＡとＢについて、パスセグメントＡ→Ｂ→Ａのテストは正確なテストである。「短い」閉じたパスＡ→Ｂ→Ａのテストは、Ｍ→Ａ→Ｍの遅延をＭ→Ａ→Ｂ→Ａ→Ｍの遅延から減算することによって行なわれ、これらの疑わしいリンクを決定づけるテストが得られる。この遅延が許容し得るほど小さい場合、Ａ→Ｂ→Ａにおけるリンクは疑わしいリンクリストから除去できる。その遅延が大きい場合、Ａ→Ｂ→Ａにおけるリンクは疑わしいリンクとして残される。さらに、２つの大きな遅延（Ａ→Ｂ→Ａの場合とＳ→Ｄ→Ｓについて、またはＳ→Ｄ→Ｓの代わりに、Ａ→Ｂ→ＡとＳ→Ｄ→Ｓの間の中間セグメントＡ´→Ｂ´→Ａ´について［前回のテストでは、この中間セグメントＡ´→Ｂ´→Ａ´に対して疑わしいリンクの所在が突き止められていたと想定する］）が十分に小さい場合、Ａ→Ｂ→Ａの外側のリンクは疑わしいリストから除去することができる。ある疑わしいリンクのセットのテストを使用して、テストされたセットの外側のリンク（つまり、補完リンク）を除去する最終的可能性であり、検索のこの初期フェーズを特徴づける。例えば、図７の例示的なネットワークについて、この第１フェーズは以下のように進めることができる。
【００３４】
最初に、問題リンクについての現在の疑わしいリンクリストは、Ｓ→Ｄ→Ｓからのパスにおけるリンクのすべてになっている。第１フェーズにおける最初のテストは、Ｓ→Ｎ２８→Ｓからのパスセグメントがテストされることになる。このテストでＮ２８がよい選択肢だったのは、これがＳとＤの間のほぼ中間ポイントであり、従って、疑わしいリンクを約半分だけ狭めることができるからである。このテストが十分に高い遅延という結果になると想定すると、疑わしいリンクの新しいセットは、パスＳ→Ｎ２８→Ｓ上のリンクになり、パスＮ２８→Ｄ→Ｎ２８におけるリンクは疑わしいリンクとして除外される。このプロセスはその後繰り返され、次のテストは、Ｓ→Ｎ１２→Ｓからのパスセグメントがテストされることになる。Ｎ１２がこのテストで良い選択肢だったのは、これがＳとＤの間のほぼ中間ポイントであり、従って、この場合も、疑わしいリンクを約半分だけしぼることができるからである。このテストの結果、遅延が相対的に低いと想定すると、新しいセットの疑わしいリンクがパスＳ→Ｎ２８→Ｓ上のリンクになり、パスＮ２８→Ｄ→Ｎ２８におけるリンクは疑わしいリンクとして除外される。そのあと、この処理は繰り返され、次のテストでは、Ｓ→Ｎ１２→Ｓからのパスセグメントがテストされることになる。Ｎ１２がこのテストで良い選択肢だったのは、これがＳとＮ２８の間のほぼ中間ポイントであり、従ってこれもまた疑わしいリンクを約半分に絞ることができるからである。このテストが相対的に低い遅延という結果であると想定すると、疑わしいリンクの新しいセットはパスＮ１２→Ｎ２８→Ｎ１２上のリンクになり、パスＮ１２→Ｓ→Ｎ１２におけるリンクは疑わしいリンクとして除外される。この処理は繰り返され、次のテストでは、Ｎ１２→Ｎ１８→Ｎ１２からのパスセグメントがテストされることになる。このテストが、相対的に低い遅延という結果になると想定すると、疑わしいリンクの新しいセットは、パスＮ１８→Ｎ２８→Ｎ１８上のリンクになり、パスＮ１２→Ｎ１８→Ｎ１２におけるリンクは疑わしいリンクとして除外される。疑わしいパスＮ１８→Ｎ２８→Ｎ１８は、順方向パスと逆方向パス上の中間共有ノード（つまり、エンドポイントとしてのＮ１８とＮ２８の相対的中間である）のない「短い」閉じたパスであることに留意されたい。共有ノード間の「短い」閉じたパスのさらなるテストはさらなる情報を出せないので、この調査の第１フェーズはここで終了する。
【００３５】
第２フェーズ６０４において、元の「大きな」閉じたパスＳ−＊Ｄ−＊Ｓ上のノードＸとＹ間の疑わしいパスセグメントについてテストが行なわれるが、ＸとＹは元のＳ−＊Ｄ−＊Ｓの順方向パスと逆方向パスの両方によって共有されていないので、「短い」閉じたパスＸ−＊Ｙ−＊Ｘには、Ｘ−＊Ｙ上の疑わしいリンクに加え、Ｙ→Ｘ上の一部の「局外リンク(bystander)」（すなわち、元の「大きな」閉じたパスＳ−＊Ｄ−＊Ｓ上には生じないリンク）を含むことがある。上述したように、Ｘ−＊Ｙ−＊Ｘのテストは、Ｍ→Ｘ−＊Ｍの遅延をＭ−＊Ｘ−＊Ｙ→Ｘ→Ｍの遅延から減算することから成る。しかし、Ｘ−＊Ｙは疑わしいリンクで一杯である一方で、Ｙ−＊Ｘをおそらく「局外リンク」を処理するものとして扱うここでの議論と対称的に、同じ情報についての代替テストは、Ｍ−＊Ｙ−＊Ｍの遅延をＭ→Ｙ−＊Ｘ−＊Ｙ−＊Ｍの遅延から減算することであり、ＭがＸよりもＹに近接していれば、この代替テストは高速化され、より正確になり得ることに留意すべき価値がある。いずれの場合も、「局外リンク」の存在の意味は、遅延Ｘ−＊Ｙ−＊Ｘが大きくなる場合、このパスの外側からどの疑わしいリンクを除去するのに、この情報を使用できないことである。それでもなお、このテストは実行する価値があり、なぜなら遅延Ｘ−＊Ｙ−＊Ｘが小さくなる場合、元の「大きい」閉じたパスＳ−＊Ｄ−＊Ｓ（通常、Ｘ−＊Ｙの方向と反対の方向にある）上でたまたま使用されているＹ−＊Ｘのリンクと共に、Ｘ−＊Ｙのリンクを疑わしいリンクとして除去できるからである。再度、問題リンクが１つだけ存在する可能性が与えられると、望みを高く持ち、１回のテストで多くのリンクが同時にクリアできることを期待して比較的長いセグメントＸ−＊Ｙのテストを行なう価値がある。言い換えると、任意の一回のテストで残っている疑わしいリンクのほぼ「半分」をテストするテストを実行するのが適切であり、残っている疑わしいリンクのリストは断片化されるために、そして遅延が大きくもはや救いようがないという結果のために、この「半分」は、典型的には半分以下になるはずである。
【００３６】
上術から例を続けると、両方が１つだけのリンクよりも長く、両方が共有されていないノード間のセグメントをテストする第２フェーズは以下のように進められる。第１フェーズの終了時において、疑わしいリンクのリストはＮ１８−＊Ｎ２８−＊Ｎ１８であり、これは第２フェーズではこれが疑わしいリンクリストで開始される。最初のテストでは、パスセグメントＮ２２−＊Ｎ１８−＊Ｎ２２上のリンクであるかもしれなく、このテストは、Ｍ→Ｎ１８→Ｍの遅延をＭ→Ｎ１８→Ｎ２２→Ｍの遅延から減算することによって実装され、なぜならＭがＮ１８に近接しているからである。このテストの結果は比較的低い遅延が返されると想定すると、テストパスセグメントＭ２２→Ｎ１８→Ｎ２２におけるリンクは。疑わしいリンクリストから除去されるかもしれない。特に、Ｎ２２→Ｎ１８を除去することができ、Ｎ１８→Ｎ２２に対してネットワークによって使用されるルートによっては、特に、疑わしいリンクがたまたまこのルーと上に存在するかどうかによって、これらの疑わしいリンクも除去されるかもしれない。この例において具体的には、すでに述べたように、図７は基本的にメインルートから外れたリンクまたはノードを示していないので、Ｎ１８→Ｎ２２についてネットワークによって選択されたルートが一部のメインルートから外れたノードについてのＮ１８→Ｎ２０→Ｈ→Ｎ２２Ｄであると仮定する。特に、このルートはＮ２２→Ｎ１８→Ｎ２２のテストの直前に疑わしいリンクであるリンクＮ１８→Ｎ２０を含むことに留意されたい。Ｎ２２→Ｎ１８→Ｎ２２上のすべてのリンクの疑いをこのテストによって晴らすことは、Ｎ１８→Ｎ２０を疑いから晴らすことを含む。結果として、新しい疑わしいリストは、Ｎ２０→Ｎ２８→Ｎ２２になる。次のテストは、パスセグメントＮ２５→Ｎ２２→Ｎ２５上のリンクであるかもしれない。このテストの結果が比較的高い遅延を返すと想定すると、このテストによって情報は判断されず、疑わしいリンクリストはＮ２０→Ｎ２８→Ｎ２２のままになっている。次のテストでは、パスセグメントＮ２８→Ｎ２５→Ｎ２８上のリンクであるかもしれない。このテストの結果が比較的低い遅延を返すと想定すると、テストパスセグメントＮ２８→Ｎ２５→Ｎ２８上のリンクが疑わしいリンクリストから除去されるかもしれない。結果として、新しい疑わしいリストはＮ２０→Ｎ２８＋Ｎ２５→Ｎ２２になる。次のテストは、パスセグメントＮ２４→Ｎ２８→Ｎ２４上のリンクであるかもしれない。このテストの結果が比較的低い遅延を返すと想定すると、テストパスセグメントＮ２４→Ｎ２８→Ｎ２４上のリンクが疑わしいリンクリストから除去されるかもしれない。結果として、新しい疑わしいリンクリストはＮ２０→Ｎ２４＋Ｎ２５→Ｎ２２になり、疑わしいリンクをさらに縮減するためには、個別リンクのテストが当然に使用されるので第２フェーズは終了する。
【００３７】
最終フェーズである第３フェーズ（６０６）は、疑わしいリンクリストに残っている個別リンクをチェックする。個別リンクのテストは、基本的に第２フェーズでのテストと同じであり、それぞれは、元の「大きな」閉じたパスＳ→Ｄ→ＳのセグメントＸ→Ｙをテストを主に目的とする「短い」閉じたパスＸ→Ｙ→Ｘのテストである。テストされるパスは閉じている必要があり、逆方向部分Ｙ→Ｘは、典型的には元の「大きな」閉じたパスＳ→Ｄ→Ｓ上にないので、テストされるパスＸ→Ｙ→Ｘは、典型的には疑わしいリンクだけに限定されない。第２フェーズとの１つの違いは、ＸとＹが隣接ノードであり、２ルートＸ→ＹとＹ→Ｘは各々がシングルホップルートでありことが確かであり、ここで２ホップがＸ−Ｙリンクのまさに２方向である。より重要なことは、Ｘ→Ｙ→Ｘのテストが過剰に大きな遅延という結果の場合、その結果は、疑わしいリンクＸ→Ｙが問題リンクであるとした「確信」として解釈される。引き続き図７の例について説明すると、３つの残っている疑わしいリンクＮ２０→Ｎ２４、Ｎ２５→Ｎ２３、およびＮ２３→Ｎ２２の各々は、問題リンクを判断するために別々にテストされることになる。
【００３８】
したがって、要約すると、図６に示されるテスト手順のフェーズは次のようになっている。第１フェーズは、元の「大きい」閉じたパスＳ→Ｄ→Ｓの順方向パスと逆方向パスによって共有されるノードＸとＹ間の「短い」閉じたパスＸ→Ｙ→Ｘの決定テストからなっている。第２フェーズは、双方とも共有されていないで、隣接リンクでないノードＸとＹ間の「短い」閉じたパスＸ→Ｙ→Ｘの準決定テストからなり、低い遅延は疑わしいリンクリストからＸ−Ｙのリンクを除外し、高い遅延は情報を得られない。第３フェーズは個別リンクＸ→Ｙ→Ｘのテストからなり、ＸとＹは隣接リンクであり、低い遅延は疑わしいリンクリストからＸ−Ｙリンクを除外し、遅延が高いことはＸ−Ｙリンクが問題リンクであるという判断をする結果となる。ここで留意されたいのは、第１フェーズのテストは上述の起こり得る条件について「決定的」である一方（典型的に少ない輻輳リンクであり、関心のあるエンドツーエンドルートは最大でも１つの輻輳リンクを有し、問題の遅延が常に１つの非常に輻輳したリンクだけのためであるネットワーク）、これらの条件が満たされない場合、第１フェーズのテストで測定された遅延はテストされるセグメントの疑いを晴らすのに十分に低くなく、テストされるセグメントの補完リンク(complement)の疑いを晴らすのに十分に高いが、その遅延は中間的であるので、疑わしいリンクが疑いから晴らされない。さらに留意されたいのは、高い遅延の責任のあるＩＳＰを単に特定することが診断の目的である限り、現在の疑わしいリンクリストが単一のＩＳＰの範囲内になるよう十分に縮減されると直ちに、テストは終了する。
【００３９】
３フェーズテスト手順全体を上述してきて留意されたいのは、多くの確認チェックが必要であり、かかるテストが失敗した場合、上述した３フェーズテスト手順に若干の調整が必要になることである。この確認チェックと必要な調整は、図８と併せて説明し、図８は、ソースノードＳ、宛て先ノードＤ、および中間ノードＸ、Ａ１、Ａ２、およびＹを示す。一般的な関心は、ノードＸからノードＹへのパスセグメント（Ｐ１）がノードＳからノードＤへの長いルート（Ｆ）の一部である場合、ネットワークがＤあてのパケットをＸから転送するために使用するセグメントＰ１上を、ネットワークがＹあてのパケットをノードＸから転送することが必ずしも事実でないことである。例えば、図８を参照して、宛て先Ｄについて、Ｘでのルーティングテーブルは、Ｙ宛てのパケットが次にノードＡ１に送信されるよう設計されているパケットを有す一方で、Ｄ宛てのパケットはノードＡ２に送信される。しかし、Ｙでのルーティングテーブルは、ＳとＸの両方あてのパケットが同じノードＡ２に送信されるよう設計されているパケットを有する。このような場合、ＸとＹはＳとＤ間のルートの順方向セグメントと逆方向セグメントの両方に生じるが（そしてさもなければ、上述した第１フェーズテストの候補である）、Ｘ→Ｙ→Ｘのテストは正しいリンクをテストしないので、このテストが第１フェーズのテストとして含まれるべきでなく、なぜなら診断されているメインルート上で使用されていないリンク（例えば、ＸからＡ１へのリンクのどちらか）をテストルートＸ→Ａ１→Ｙ→Ａ２→Ｘが使用しているとき、非常に高い遅延でさえ、第１フェーズで疑わしいリンクとしてどのリンクも除外するためにも使用できないからである。同様に、第２フェーズにおいて、診断されているメインルート上にＸからＹへのセグメント（Ｐ１）が現れている理由だけでは、テストＸ→Ｙ→Ｘでテストできることを意味しない。
【００４０】
前の段落で説明した理由により、確認テストは、Ｘ→Ｙ→ＸのテストがＸからＹへの望みのパスをテストしていることをチェックするのに必要とされる（このテストは、ＸとＹが隣接の場合には必要とされないことに留意されたい）。このテストは、上述のよく知られたtracerouteユーティリティを使用して実行することができる。テストが失敗した場合は（つまり、Ｘ→Ｙ→ＸのテストがＸからＹへの望みのパスをテストしていることを確認できない場合）、上述したように３フェーズテストになんらかの調整が必要になる。最初に、ＸとＹが共有ノードでないが、Ｘ→Ｙ→Ｘによって使用されるパスが望みのパスでない場合、Ｘ→Ｙ→Ｘのテストは第１フェーズの技術を用いて解釈できないが、しかし代わりに第２フェーズの技術を用いて解釈する必要があり、この手法では、測定された遅延が低い場合、Ｘ→Ｙ→Ｘによって使用されたパス上に現れる疑わしいリンクが疑いから晴らされるが、測定された遅延が高い場合、補完リンクは疑いから晴らされない。同様に、第２フェーズテストの間、元のルートのＸからＹへのセグメントＰ１をテストすることが望まれるが、異なるパスセグメントが明らかになったために、Ｘ→ＹとＹ→Ｘのtraceroute確認テストが失敗する場合、最善でも、Ｘ→Ｙ→Ｘのテストは、tracerouteがテストＸ→Ｙ→Ｘによって採用されることを示すルート上に現れた、元のルートの疑わしいリンクだけを疑いから晴らすために使用できる。場合によって、一部の（典型的には、比較的短い）マルチホップセグメントは、セグメントの個別リンクのテストを通すことを除き、効率的にテストできない。
【００４１】
したがって、確認チェックと調整を要約して、第１フェーズテストは、診断されているルートの順方向パスと逆方向パスによって単に共有されているだけでなく、診断されているルートのセグメントであるルートを相互間で採用する特性も有するノードに適用される。さらに、第２フェーズは、確認テストに失敗する共有ノードと共に非共有ノードに適用され、従って第１フェーズでテストできない。このように、上述した３フェーズテストは、ここで説明するように確認の結果に基づいて調整される必要がある。
【００４２】
ある実施形態において、テストメッセージのパケットサイズは、図４のネットワークおよびリンク４１０の双方向遅延を測定するために図３と併せて説明したメッセージを参照して、以下のように指定することができる。ノードμ→ｉ→ｊ→ｉ→μからのパスを通過するパケットについて、最小ＩＰヘッダサイズは２０バイトであり、ノードμ→ｉ→ｊ→ｉ→μからのルートを指定するメッセージについてゆとりのあるソースの指定は１６バイトが必要であり、テストパケットのシーケンス番号の推奨サイズは２０バイトであり、したがってテストメッセージのサイズは４０バイトという結果となる。ノードμ→ｉ→μからのパスを通過するパケットについて、最小ＩＰヘッダサイズは２０バイトであり、ノードμ→ｉ→μからのルートを指定するメッセージについてゆとりのあるソースの指定は８バイトが必要であり、テストパケットのシーケンス番号の推奨サイズは４バイトであり、したがってテストメッセージのサイズは３２バイトという結果になる。
【００４３】
ここで説明している技術の精度には、この技術が双方向リンク遅延を特定するという問題を解決する一方で、１つのノード（モニタリングノード）だけからの往復エンドツーエンドパス遅延だけの測定を行ない、２ノードを結合するリンクの双方向遅延がその両方向にリンクを通過する際に出くわす遅延の和であるということから、いくつかの制限がある。品質低下したサービスの例を、ある関心のある往復エンドツーエンドパス上に過剰の遅延を監察するという形で診断するという問題が与えられているとき、ここで説明された実施形態は、関心のあるパス上のすべてのリンクのすべての双方向リンク遅延を特定し、その後、個々の双方向リンク遅延が過剰であるリンクを特定することができる。多くのケースでは、この技術は過剰のパス遅延を診断するのに成功するが、双方向リンク遅延を扱っている一方で、あるパス遅延を構築したリンク遅延がすべて単方向遅延であるために、診断エラーが発生する可能性がある。この事実は、往復エンドツーエンドパスがそのアウトバウンド部分とインバウンド部分について同じリンクを使用しないという共通ケースにおいて特に重要である。この技術は双方向遅延を扱っている一方で、単方向遅延も関係する遅延であることから、次のように３タイプのエラーが発生する可能性がある。最初に、リンクの２方向が異なるＩＳＰによって管理されていて、この技術が過剰の双方向遅延を有しているとそのリンクを判断する場合、この技術は完全な診断を提供することに失敗したことになる。次に、その診断が求められている品質低下した往復パス上でリンクの一方向だけが使用される場合、そしてリンクのその方向が適度に過剰の遅延と共に品質低下を構築し、リンクの他方の方向の遅延が適度な過剰をオフセットするのに十分に小さく、過剰でない双方向遅延という結果になる場合、この技術は、品質低下を構築するとして（つまり、リンクは偽の負である）リンクを特定することを失敗する。最後に、その診断が求められている品質低下した往復パス上でリンクの一方向だけが使用されていているが、その方向の遅延が小さく、反対方向がリンクの双方向遅延を過剰にするほどの大きさを有する場合、この技術は過剰の双方向遅延を有するとしてリンクを特定し、リンクが元の品質低下を構築した偽の印象（つまり、リンクは偽の正である）を与えることになる。このケースにおける偽(falsity)が関心のある元のパス上の品質低下の構築にのみ関係していて、なぜなら、それにもかかわらずリンクが少なくとも一方向で過剰な遅延を有するからであることに留意されたい。
【００４４】
上述してきた詳細説明はすべての点において例示的であって、限定的なものではないと解すべきであることを理解されたい。また、ここに開示される本発明の範囲は詳細説明から判断されるのではなく、特許法によって許容される全範囲に従って解釈されるものとして特許請求の範囲から判断されるべきである。ここで図示し、説明している実施形態は本発明の原理を示したものに過ぎず、本発明の範囲と精神から逸脱せずに、当業者によって種々な変更を実装されうる。当業者は、本発明の範囲と精神から逸脱せずに、種々な他の特徴の組み合わせを実装できる。
【図面の簡単な説明】
【００４５】
【図１】本発明の原理を実装できるパケットデータネットワークを示す。
【図２】ネットワーク輻輳診断の第１部分の間に実行されるステップのフローチャートを示す。
【図３】本発明の実施形態に従ってネットワーク診断の間、双方向（対称）リンク遅延を判断するために実行されるステップのフローチャートを示す。
【図４】例示的なデータネットワークトポロジを示す。
【図５】モニタリングノードの例示的な実施形態のハイレベルブロック図を示す。
【図６】ネットワーク輻輳診断のための３フェーズ技術のハイレベルフローチャートを示す。
【図７Ａ】例示的データネットワークトポロジを示す。
【図７Ｂ】例示的データネットワークトポロジを示す。
【図７Ｃ】例示的データネットワークトポロジを示す。
【図８】例示的データネットワークトポロジを示す。
【符号の説明】
【００４６】
１００  パケットデータネットワーク
１０２  宛て先ノード
１０４  ソースノード
１０８  ｅコマース企業によって管理されるネットワーク部分
１１０  モニタリングノード
５０２  プロセッサ
５０４  メモリ
５０６  ネットワークインタフェース
５０８  Ｉ／Ｏ
【図１】
2008519493.tif 000003
【図２】
2008519493.tif 000004
【図３】
2008519493.tif 000005
【図４】
2008519493.tif 000006
【図５】
2008519493.tif 000007
【図６】
2008519493.tif 000008
【図７Ａ】
2008519493.tif 000009
【図７Ｂ】
2008519493.tif 000010
【図７Ｃ】
2008519493.tif 000011
【図８】
2008519493.tif 000012
【国際調査報告】
2008519493.tif 000013