(57)【特許請求の範囲】
【請求項１】
処理装置により実行される方法であって、
前記処理装置が、第１のパケットを第２のパケットにカプセル化して、第１のデータパケットを形成するステップと、
前記処理装置が、送信先ノードに前記第１のデータパケットを送信するステップであって、前記第１のデータパケットは、前記第１のデータパケットがルーティングされる特定のノードの情報を含み、前記第１のデータパケットを送信することは、前記第２のパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記特定のノードに前記第１のデータパケットを送信することを含む、ステップと、
前記処理装置が、前記第１のデータパケットを送信した結果に少なくとも部分的に基づいて、前記特定のノードの健全性状態を判定するステップであって、前記特定のノードの健全性状態は、前記第１のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、ステップと、
前記第１のデータパケットの送信についてのルーティング結果が、前記予め定められた時間期間内に受信されなかった場合、
前記処理装置が、第３のパケットを第４のパケットにカプセル化して、第２のデータパケットを形成するステップと、
前記処理装置が、前記送信先ノードに前記第２のデータパケットを送信するステップであって、前記第２のデータパケットは、前記第２のデータパケットがルーティングされる、前記特定のノードに隣接する他のノードの情報を含み、前記第２のデータパケットを送信することは、前記第４のパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記他のノードに前記第２のデータパケットを送信することを含む、ステップと、
前記処理装置が、前記第２のデータパケットを送信した結果に少なくとも部分的に基づいて、前記他のノードの健全性状態を判定するステップであって、前記他のノードの健全性状態は、前記第２のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、ステップと、
を含む方法。
【請求項２】
前記第１のパケットを前記第２のパケットにカプセル化することは、前記第２のパケットのパケットヘッダ内に前記特定のノードのアドレス情報を含めることを含む、請求項１記載の方法。
【請求項３】
前記特定のノードのアドレス情報は、前記特定のノードのグローバルアドレス又はローカルアドレスを含み、前記グローバルアドレスは、前記特定のノード及び前記送信先ノードを含むネットワーク内でルーティング可能なアドレスに対応し、前記ローカルアドレスは、前記特定のノードの１以上の近傍ノードによって到達可能なアドレスに対応する、請求項２記載の方法。
【請求項４】
前記特定のノードの前記情報は、前記特定のノードに前記第１のデータパケットを送信するノードから前記第１のデータパケットが伝送されるホップの数を含む、請求項１乃至３いずれか一項記載の方法。
【請求項５】
前記第１のデータパケットを送信した前記結果が、予め定められた時間閾値内での前記送信先ノードにおける前記第１のデータパケットの受信の成功に該当する場合、前記処理装置が、前記特定のノードが機能していると判定するステップ
をさらに含む、請求項１乃至４いずれか一項記載の方法。
【請求項６】
プロセッサに、
第１のパケットを第２のパケットにカプセル化して、第１のデータパケットを形成する動作と、
送信先ノードに前記第１のデータパケットを送信する動作であって、前記第１のデータパケットは、前記第１のデータパケットがルーティングされる特定のノードの情報を含み、前記第１のデータパケットを送信することは、前記第２のパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記特定のノードに前記第１のデータパケットを送信することを含む、動作と、
前記第１のデータパケットを送信した結果に少なくとも部分的に基づいて、前記特定のノードの健全性状態を判定する動作であって、前記特定のノードの健全性状態は、前記第１のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、動作と、
前記第１のデータパケットの送信についてのルーティング結果が、前記予め定められた時間期間内に受信されなかった場合、
第３のパケットを第４のパケットにカプセル化して、第２のデータパケットを形成する動作と、
前記送信先ノードに前記第２のデータパケットを送信する動作であって、前記第２のデータパケットは、前記第２のデータパケットがルーティングされる、前記特定のノードに隣接する他のノードの情報を含み、前記第２のデータパケットを送信することは、前記第４のパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記他のノードに前記第２のデータパケットを送信することを含む、動作と、
前記第２のデータパケットを送信した結果に少なくとも部分的に基づいて、前記他のノードの健全性状態を判定する動作であって、前記他のノードの健全性状態は、前記第２のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、動作と、
を含む複数の動作を実行させるプログラム。
【請求項７】
前記第１のパケットを前記第２のパケットにカプセル化することは、前記第２のパケットのパケットヘッダ内に前記特定のノードのアドレス情報を含めることを含む、請求項６記載のプログラム。
【請求項８】
前記第１のデータパケットは、前記第１のデータパケットの生成元である送信元ノードと同じノードを送信先とする、請求項６又は７記載のプログラム。
【請求項９】
前記複数の動作は、
前記第１のデータパケットを送信した前記結果が、予め定められた時間閾値内での前記送信先ノードにおける前記第１のデータパケットの受信の成功に該当する場合、前記特定のノードが機能していると判定する動作
をさらに含む、請求項８記載のプログラム。
【請求項１０】
プロセッサと、
実行可能な命令を記憶しているメモリであって、前記命令が、前記プロセッサにより実行されたときに、前記命令は、前記プロセッサに、
第２のデータパケット内に第１のデータパケットを含める動作であって、前記第２のデータパケットのパケットヘッダは、動作状態が判定されるべき特定のノードに関連付けられた情報を含み、前記第１のデータパケットのパケットヘッダは、前記特定のノードの前記動作状態を判定する送信先ノードに関連付けられた情報を含む、動作と、
前記第２のデータパケットを送信する動作であって、前記第２のデータパケットを送信することは、前記第２のデータパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記特定のノードに前記第２のデータパケットを送信することを含む、動作と、
前記送信先ノードから、前記第２のデータパケットのルーティング結果を示す通知メッセージを受信する動作と、
前記第２のデータパケットを送信した結果に少なくとも部分的に基づいて、前記特定のノードの健全性状態を判定する動作であって、前記特定のノードの健全性状態は、前記第２のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、動作と、
前記第２のデータパケットの送信についてのルーティング結果が、前記予め定められた時間期間内に受信されなかった場合、
第４のデータパケット内に第３のデータパケットを含める動作であって、前記第４のデータパケットのパケットヘッダは、動作状態が判定されるべき、前記特定のノードに隣接する他のノードに関連付けられた情報を含み、前記第３のデータパケットのパケットヘッダは、前記他のノードの前記動作状態を判定する前記送信先ノードに関連付けられた情報を含む、動作と、
前記第４のデータパケットを送信する動作であって、前記第４のデータパケットを送信することは、前記第４のデータパケットのパケットヘッダ内に含められた送信先アドレス情報に従って、前記他のノードに前記第４のデータパケットを送信することを含む、動作と、
前記送信先ノードから、前記第４のデータパケットのルーティング結果を示す通知メッセージを受信する動作と、
前記第４のデータパケットを送信した結果に少なくとも部分的に基づいて、前記他のノードの健全性状態を判定する動作であって、前記他のノードの健全性状態は、前記第４のデータパケットの送信についてのルーティング結果が、予め定められた時間期間内に受信されたかどうかに基づいて判定される、動作と、
を含む複数の動作を実行させる、メモリと、
を備えたシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
データセンターネットワークは、莫大な数のデバイスを相互接続し、ネットワーク内において１つのデバイスから別のデバイスへのデータ伝送を可能にしている。信頼できるデータ伝送を提供するために、データセンターネットワークのトポロジは、通常、データ伝送のために、ネットワーク内の２つのデバイスの間で複数のパスを可能にするよう設計される。複数のパスの設計は、障害及びトラフィック輻輳の際に性能のなだらかな低下を提供し得るが、この設計はまた、ネットワーク内の障害が発生したデバイス若しくは正常でないデバイス、又はネットワーク内のデバイス間の障害が発生した接続リンク若しくは正常でない接続リンクを特定する難しさを増大させ得る。
【発明の概要】
【０００２】
この概要は、発明を実施するための形態において以下でさらに説明される、細粒度ネットワークモニタリングの簡略化されたコンセプトを提供する。この概要は、特許請求される主題の必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するよう使用されることを意図するものでもない。
【０００３】
本出願において、細粒度ネットワークモニタリングの例示的な実施形態が説明される。一実施形態において、送信元ノードは、動作状態又は健全性状態が解析されるべき１以上の特定のノード又は接続リンクを決定又は選択する。１以上の特定のノード又は接続リンクを決定すると、送信元ノードは、１以上の特定のノード又は接続リンクに対応するデータパケットを反復的にカプセル化又はラップして、テストデータパケットを形成することができる。一実施形態において、送信元ノードは、テストデータパケットが１以上の特定のノード又は接続リンクを介してルーティングされることを可能にする情報を、１以上の特定のノード又は接続リンクに対応するデータパケットのパケットヘッダ内に挿入する又は含めることができる。いくつかの実施形態において、テストデータパケットを形成した後、送信元ノードは、ネットワーク（例えば、データセンターネットワーク）にテストデータパケットを送出することができる。送信元ノード、又はテストデータパケットを受信する送信先ノードは、テストデータパケットが予め定められた基準に従って受信されたかどうかに少なくとも部分的に基づいて、１以上の特定のノード又は接続リンクの動作状態又は健全性状態を判定することができる。
【図面の簡単な説明】
【０００４】
詳細な説明が、添付の図面を参照する形で記載される。図面において、参照符号の最も左の数字（群）は、その参照符号が最初に現れる図を識別するものである。異なる図における同じ参照符号の使用は、類似アイテム又は同一アイテムを示す。
【図１】細粒度ネットワークモニタリングシステムの例示的な環境を示す図。
【図２】図１に示される例示的な細粒度ネットワークモニタリングシステムのデバイスの例を示す図。
【図３Ａ】ネットワーク内でテストデータパケットをルーティングするための例示的なフレームワークを示す図。
【図３Ｂ】ネットワーク内でテストデータパケットをルーティングするための例示的なフレームワークを示す図。
【図４】細粒度ネットワークモニタリングの例示的な方法を示す図。
【図５】図１に示される例示的な細粒度ネットワークモニタリングシステムのデバイスの例示的なユーザインタフェースを示す図。
【発明を実施するための形態】
【０００５】
ネットワークモニタリング、及び、障害が発生したデバイス及び接続リンクの特定のための多くのアルゴリズムが提案されている。しかしながら、そのようなアルゴリズムは、ネットワークモニタリング中に、ネットワーク内に大量のさらなるトラフィックをもたらすことがあるだけでなく、障害が発生したデバイス又は接続リンク（例えば、適切に機能していない且つ／又は過負荷を受けているデバイス又は接続リンク）を効率的且つ正確に特定することができないこともある。
【０００６】
本開示において、データセンターネットワーク等のデータネットワーク又は通信ネットワークにおいて使用可能なネットワークモニタリングシステムが説明される。ネットワークモニタリングシステムは、動作状態又は健全性状態が解析又は調査されるべきノード又はリンクを決定又は選択し、ノード又はリンクの動作状態又は健全性状態を判定するために、ノード又はリンクを介してルーティング又伝送されるよう構成されるデータパケット（例えば、テストデータパケット）を作成する。一実施形態において、ネットワークモニタリングシステムは、トンネリングカプセル化を用いて、複数のレイヤ又はレベルのデータパケットを含むテストデータパケットを作成又は生成することができる。ここで、少なくとも１つのレイヤ又はレベルのデータパケットは、解析されるべき特定のノード又はリンクを介して伝送されるよう構成される。ネットワークモニタリングシステムは、テストデータパケットのルーティング結果に基づいて、解析されるべきノード又はリンクの動作状態又は健全性状態を判定することができ、解析結果を、その後の解析及び保守のために、例えばネットワークのネットワークアドミニストレータ又はオペレータといった関連する人物にレポートすることができる。
【０００７】
一実施形態において、ノード又はリンクの動作状態又は健全性状態は、ノード又はリンクが適切に又は意図されるように機能しているかどうか、ノード又はリンクが過負荷を受けているかどうか、ノード又はリンクが故障しているかどうか等を含み得るが、これらに限定されるものではない。いくつかの実施形態において、ネットワークモニタリングシステムは、ノード又はパスを、ランダムに又は戦略的に選択することができる（例えば、特定の選択アルゴリズムに基づいて等）。追加的又は代替的に、ネットワークモニタリングシステムは、２以上のノード及び／又はリンクを決定又は選択して、１つのモニタリングプローブ又は複数のモニタリングプローブにおいてそれぞれの動作状態又は健全性状態を解析してもよい。
【０００８】
動作状態又は健全性状態が解析又は調査されるべきノード又はリンクを決定又は選択した後、ネットワークモニタリングシステムは、そのノード又はリンクにデータパケットをルーティングするための方策を決定又は選択することができる。一実施形態において、ネットワークモニタリングシステムは、第１のデータパケット及び第２のデータパケットを作成し、第１のデータパケット内に第２のデータパケットをラップして又は含めて、テストデータパケットを生成又は作成することができる。一例において、ネットワークモニタリングシステムは、トンネリングカプセル化を用いて、テストデータパケットを生成又は作成することができる。ネットワークモニタリングシステムは、第１のデータパケットが、選択されたノード又はパスを介して伝送又はルーティングされるようにするための１以上の属性を、第１のデータパケットのパケットヘッダ内に設定することができる。限定ではなく例として、ネットワークモニタリングシステムは、第１のデータパケットのパケットヘッダ内の送信先アドレスを、選択されたノード又はリンクに関連付けられたアドレスに設定することができる。一実施形態において、選択されたノード又はリンクに関連付けられたアドレスは、例えば、ネットワーク内でルーティング可能なアドレスに対応するグローバルアドレス、例えば、選択されたノード又はリンクに隣接する１以上のノードによってのみルーティング可能な又は到達可能なアドレスに対応するローカルアドレスを含み得る。
【０００９】
追加的又は代替的に、いくつかの実施形態において、ネットワークモニタリングシステムは、選択されたノード又はリンクへのパスを反映又は規定するために使用され得る１以上の他の属性を、第１のデータパケットのパケットヘッダ内に設定することができる。例えば、ネットワークモニタリングシステムは、選択されたノード又はリンクへのパスを反映又は規定するために、ホップカウント（すなわち、ホップの数）又はホップ制限（すなわち、データパケットが破棄又はドロップされる前にこのデータパケットが移動することが許容されるホップの最大数）の属性値を、第１のデータパケットのパケットヘッダ内に設定することができる。
【００１０】
このモニタリングプローブにおいて、２以上のノード又はリンクが解析されるべきである場合、ネットワークモニタリングシステムは、データパケットを反復的にラップ又はカプセル化して、テストデータパケットを生成又は作成することができる。ここで、それぞれのパケットヘッダ内の１以上の属性は、解析されるべき対応するノード又はリンクを規定するために設定される。
【００１１】
テストデータパケットを生成すると、ネットワークモニタリングシステムは、１以上の他のデータパケットを含むテストデータパケットを、ネットワークに送信することができる。一実施形態において、ネットワークモニタリングシステムは、テストデータパケットの送信元又は生成元であるノードと同じであることもあれば異なることもある送信先ノードに、テストデータパケットを送信することができる。一例において、ネットワークモニタリングシステムが存在するノードにテストデータパケットを返送することは、ネットワークモニタリングシステムが、テストデータパケットが受信される別のノードに対してテストデータパケットのルーティング結果を要求してそのルーティング結果を待つことから解放させる。
【００１２】
一実施形態において、ネットワークモニタリングシステムは、１以上の予め定められた基準に基づいて、選択されたノード又はリンクの動作状態又は健全性状態を判定することができる。１以上の予め定められた基準は、データパケットが送信先ノードにおいて成功裡に受信されたかどうか、データパケットが予め定められた時間期間内に送信先ノードにおいて受信されたかどうか等を含み得るが、これらに限定されるものではない。
【００１３】
データパケットが、１以上の予め定められた基準を満たしている場合、ネットワークモニタリングシステムは、選択されたノード又はリンクが、適切に又は期待通りに機能していると判定することができる。データパケットが、１以上の予め定められた基準を満たしていない場合、ネットワークモニタリングシステムは、選択されたノード又はリンクが、障害及び／又は過負荷の影響を受けていると判定することができる。いくつかの実施形態において、ネットワークモニタリングシステムは、選択されたノード又はリンクが障害又は過負荷を受けているかどうかを判定するために、さらなる解析を実行することができる。
【００１４】
説明しているシステムは、適切に機能しているかどうかを判定する特定のノード又はリンクを選択又は決定し、それにより、データセンターネットワーク等のネットワーク内の１以上のノードの細粒度モニタリングを可能にする。説明しているシステムは、さらなる解析及び／又はその後の保守のために、ノード又はリンクの動作状態を、ネットワークアドミニストレータ又はオペレータにレポートすることができる。
【００１５】
本明細書に記載の例において、ネットワークモニタリングシステムは、解析するノード又はリンクを決定し、第２のデータパケット内に第１のデータパケットをカプセル化し、第２のデータパケットを送出し、第１のデータパケットが１以上の予め定められた基準に従って受信されたかどうかに基づいて、ノード又はリンクの動作状態を判定する。しかしながら、他の実施形態において、これらの機能は、同じ位置又は異なる位置に配置された１以上のサービスにより実行されてもよい。例えば、少なくとも１つの実施形態において、選択サービスが、どのノード又はリンクが調査されるべきであるかを選択するのに対し、準備サービスが、送信されるカプセル化されたパケットを含むデータパケットを準備してもよい。送信サービスが、送信先ノードにデータパケットを送出してもよく、判定サービスが、１以上の予め定められた基準に基づいて、選択されたノード又はリンクの動作状態又は健全性状態を判定してもよい。
【００１６】
さらに、本明細書に記載の例において、ネットワークモニタリングシステムは、１つのデバイスにインストールされるソフトウェア及び／又は設けられるハードウェアとして、又は、サービスとして実装され得るが、他の実施形態において、ネットワークモニタリングシステムは、ネットワーク上の、且つ／又は分散コンピューティングアーキテクチャ若しくはクラウドコンピューティングアーキテクチャにおいて分散される、１以上のサーバに設けられる複数のデバイス及び／又はサービスにより実装されてもよい。
【００１７】
本出願では、複数の多様な実装形態及び実施形態が説明される。以下のセクションでは、様々な実装形態を実施するために使用され得るフレームワークの例示的な例が説明される。次いで、本出願では、ネットワークモニタリングシステムを実装するための例示的なシステム、デバイス、及びプロセスが説明される。
【００１８】
例示的なフレームワーク
図１は、ネットワークモニタリングシステム１０２を実装するために使用可能な例示的なフレームワーク１００を示している。この例において、ネットワークモニタリングシステム１０２は、複数のデバイス１０４−１、１０４−２、．．．、１０４−Ｎ（これらは集合的にデバイス１０４と呼ばれる）のうちの１つのデバイスに含められるものとして説明される。しかしながら、他の例において、ネットワークモニタリングシステムは、デバイス１０４から独立した又はデバイス１０４とは別個のエンティティであってもよい。例えば、ネットワークモニタリングシステム１０２は、互いと且つ／又はネットワーク１０８を介してデバイス１０４とデータを通信することができる１以上のサーバ１０６に含められてもよいし、且つ／又は、そのような１以上のサーバ１０６の間で分散されてもよい。追加的又は代替的に、いくつかの例において、ネットワークモニタリングシステム１０２の機能は、１以上のデバイス１０４及び１以上のサーバ１０６に含められてもよいし、且つ／又は、１以上のデバイス１０４及び１以上のサーバ１０６の間で分散されてもよい。例えば、１以上のサーバ１０６が、ネットワークモニタリングシステム１０２の機能の一部を含むのに対し、１以上のデバイス１０４が、ネットワークモニタリングシステム１０２の他の機能を含んでもよい。さらに、いくつかの実施形態において、ネットワークモニタリングシステム１０２の機能の一部又は全ては、例えば、サーバ１０６及び／又はデバイス１０４により形成されるクラウドコンピューティングシステム又はクラウドコンピューティングアーキテクチャに含められてもよい。他の例において、１以上のサーバ１０６は、ネットワーク１０８の一部であってもよい。
【００１９】
デバイス１０４のうちの１以上のデバイスは、多様なコンピューティングデバイスのうちの任意のコンピューティングデバイスとして実装され得る。そのようなコンピューティングデバイスは、デスクトップコンピュータ、ノートブックコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス、ネットブック、インターネット機器、タブレットコンピュータ、スレートコンピュータ、モバイルデバイス（例えば、携帯電話機、携帯情報端末、スマートフォン等）等、又はこれらの組合せを含むが、これらに限定されるものではない。
【００２０】
ネットワーク１０８は、無線ネットワーク、有線ネットワーク、又はこれらの組合せであり得る。ネットワーク１０８は、互いに相互接続された個々のネットワークの集合であり得、１つの大型ネットワーク（例えば、インターネット又はイントラネット）として機能し得る。そのような個々のネットワークの例は、電話網、ケーブル網、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及びメトロポリタンエリアネットワーク（ＭＡＮ）を含むが、これらに限定されるものではない。さらに、個々のネットワークは、無線ネットワーク、有線ネットワーク、又はこれらの組合せであり得る。有線ネットワークは、電気キャリア接続（例えば、通信ケーブル等）及び／又は光キャリア接続（例えば、光ファイバ接続等）を含み得る。無線ネットワークは、例えば、ＷｉＦｉ（登録商標）ネットワーク、他の無線周波数ネットワーク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）等）等を含み得る。一実施形態において、ネットワーク１０８は、データセンターネットワークを含み得る。
【００２１】
さらに、一例において、ネットワーク１０８は、複数のノード１１０及び複数の接続リンク１１２を含み得る。複数のノード１１０は、スイッチ（例えば、コモディディスイッチ（commodity  switch）等）、ルータ、ハブ等といったスイッチングコンポーネント又はルーティングコンポーネントを含み得る。いくつかの実施形態において、複数のノード１１０は、デバイス１０４等の、処理能力及び／又は記憶能力を有する１以上のデバイスをさらに含み得る。複数の接続リンク１１２とともに、複数のノード１１０は、複数のデバイス１０４及び１以上のサーバ１０６を互いに相互接続することができる。一実施形態において、複数のノード１１０は、ネットワーク１０８全体の特定のトポロジ又はネットワーク１０８の異なる部分における異なるトポロジを形成するように、複数の接続リンク１１２を介して編成され得る。例示的なトポロジは、ファット状トポロジ（fat-like  topology）、リングトポロジ、スタートポロジ、バストポロジ、ハイブリッドトポロジ、又はこれらの様々な組合せを含み得るが、これらに限定されるものではない。いくつかの例において、複数のノード１１０は、トップオブラック（ＴｏＲ）スイッチ、アグリゲートスイッチ、コアスイッチ等を含む複数のレイヤのスイッチとして編成され得る。
【００２２】
一実施形態において、特定のデバイス（例えば、デバイス１０４−Ｎ）は、メモリ１１６に接続される１以上の処理装置１１４を含み得る。１以上の処理装置１１４は、例えば、マイクロプロセッサ、特定用途向け命令セットプロセッサ、物理処理装置（ＰＰＵ）、中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）、デジタル信号プロセッサ等を含む１以上のハードウェアプロセッサとして実装され得る。追加的又は代替的に、本明細書に記載の機能は、１以上のハードウェアロジックコンポーネントにより少なくとも部分的に実行されてもよい。限定ではなく例として、使用可能な例示的なタイプのハードウェアロジックコンポーネントは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）等を含む。
【００２３】
メモリ１１６は、１以上の処理装置１１４により実行される１以上のアプリケーション１１８（例えば、ネットワークモニタリングアプリケーション等）及び他のプログラムデータ１２０を含み得る又は記憶し得る。メモリ１１６は、ネットワークサーバ、ルータ、及び／又はサーバ１０６等の他のデバイスに接続され得る、そのような他のデバイスに関連付けられ得る、且つ／又は、そのような他のデバイスによってアクセス可能であり得る。
【００２４】
メモリ１１６は、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリ及び／又は読み取り専用メモリ（ＲＯＭ）やフラッシュＲＡＭ等の不揮発性メモリを含み得る。メモリ１１６は、コンピュータ読み取り可能な媒体の例である。コンピュータ読み取り可能な媒体は、少なくとも２つのタイプのコンピュータ読み取り可能な媒体、すなわち、コンピュータ記憶媒体及び通信媒体を含む。
【００２５】
コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータ等の情報の記憶のために任意の方法又は技術により実装された揮発性媒体及び不揮発性媒体、着脱可能な媒体及び着脱不可能な媒体を含む。コンピュータ記憶媒体は、相変化メモリ（ＰＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、他のタイプのＲＡＭ、ＲＯＭ、電気的に消去可能なプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、若しくは他のメモリ技術、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、コンピューティングデバイスによりアクセスされる情報を記憶するために使用することができる任意の他の非伝送媒体を含むが、これらに限定されるものではない。
【００２６】
反対に、通信媒体は、搬送波や他の伝送メカニズム等の変調されたデータ信号内に、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを具現化することができる。本明細書で定義されるように、コンピュータ記憶媒体は、通信媒体を含まない。
【００２７】
ユーザ１２２は、デバイス１０４のアプリケーション１１８（例えば、ネットワークモニタリングアプリケーション、ブラウザアプリケーション等）を使用して、ネットワーク１０８内のノード１１０及び／又は接続リンク１１２の動作状態又は健全性状態をモニタリングすることができる。一実施形態において、ネットワークモニタリングアプリケーションは、ネットワークモニタリングシステム１０２により提供されるアプリケーションであり得る。いくつかの実施形態において、ネットワークモニタリングアプリケーションは、ネットワークモニタリングシステム１０２と通信して、ネットワークモニタリングを実行するためにネットワークモニタリングシステム１０２と協働することができる独立したアプリケーションであり得る。ネットワークモニタリングアプリケーションは、ネットワーク１０８のトポロジに関連付けられた情報を、マップ及び／又はリストの形態で提供することができ、解析する特定のノード１１０及び／又は特定の接続リンク１１２をユーザ１２２が選択することを可能にし得る。ノード１１０及び／又は接続リンク１１２の選択のインジケーションを受信した後、ネットワークモニタリングシステム１０２は、プローブ（例えば、テストデータパケット等）を作成して、選択されたノード１１０及び／又は接続リンク１１２の動作状態又は健全性状態を判定し、例えば、デバイス１０４のディスプレイ１２４を介して、解析の結果をユーザ１２２に返す。
【００２８】
例示的なネットワークモニタリングシステム
図２は、例示的なネットワークモニタリングシステム１０２をより詳細に示している。この例において、例示的なネットワークモニタリングシステム１０２は、デバイス１０４に含められるものとして又はデバイス１０４の一部として説明される。上述したように、デバイス１０４は、１以上の処理装置１１４及びメモリ１１６を含み得るが、これらに限定されるものではない。さらに、デバイス１０４は、１以上のアプリケーション１１８をさらに含み得る。いくつかの実施形態において、デバイス１０４は、ネットワークインタフェース２０２及び入力／出力インタフェース２０４をさらに含み得る。１以上の処理装置１１４は、ネットワークインタフェース２０２０から受信された命令、入力／出力インタフェース２０４から受信された命令、及び／又はメモリ１１６に記憶されている命令を実行するよう構成されている。一実施形態において、デバイス１０４は、ディスプレイ１２４をさらに含む。ディスプレイ１２４は、タッチスクリーン、通常のスクリーン（すなわち、タッチ感知能力を有さないスクリーン）等を含み得る。
【００２９】
ネットワークモニタリングシステム１０２は、プログラムモジュール２０６及びプログラムデータ２０８を含み得る。一実施形態において、ネットワークモニタリングシステム１０２は、入力モジュール２１０を含み得る。入力モジュール２１０は、ユーザ１２２からの、動作状態又は健全性状態が解析されるべきノード１１０又は接続リンク１１２に関連付けられた情報を受信することができる。例えば、ネットワークモニタリングシステム１０２の出力モジュール２１２は、デバイス１０４のディスプレイ１２４においてユーザ１２２に提示するために、複数のノード１１０及び／又は接続リンク１１２の全て又はサブセットのトポロジマップ（又は、リスト）を提供することができる。一実施形態において、出力モジュール２１２は、例えば、ネットワークモニタリングアプリケーション、ブラウザアプリケーション等の、デバイス１０４のアプリケーション１１８を介して提示するために、トポロジマップ又はリストを提供することができる。ユーザ１２２が、トポロジマップ又はリストから、ノード１１０又は接続リンク１１２を選択した後、入力モジュール２１０は、デバイス１０４又はアプリケーション１１８から、選択されたノード１１０又は接続リンク１１２の情報を受信する。
【００３０】
追加的又は代替的に、ネットワークモニタリングシステム１０２は、選択モジュール２１４を含んでもよい。選択モジュール２１４は、１以上の選択アルゴリズム又は選択方策に基づいて、ノード１１０又は接続リンク１１２を自動的又は半自動的に選択することができる。例えば、選択モジュール２１４は、複数のノード１１０及び／又は接続リンク１１２から、ノード１１０及び／又は接続リンク１１２をランダムに選択することができる。いくつかの例において、ユーザ１２２は、ネットワーク１０８の解析されるべき特定の部分を、ネットワークモニタリングシステム１０２に示すことができる。入力モジュール２１０を介してネットワーク１０８の特定の部分の情報を受信した後、選択モジュール２１４は、ネットワーク１０８の特定の部分からランダムにノード１１０及び／又は接続リンク１１２を選択することができる。一実施形態において、選択モジュール２１４は、例えば、デバイス１０４に最も近いノード１１０又は接続リンク１１２から始まって、ユーザ１２２により示されたノード１１０又は接続リンク１１２まで、ノード１１０及び／又は接続リンク１１２を漸進的に選択することにより、ノード１１０又は接続リンク１１２を戦略的に選択することができる。いくつかの例において、選択モジュール２１４は、ネットワーク１０８の特定の部分内の１以上のノード１１０及び／又は接続リンク１１２をランダムに選択することができる。一例において、ネットワークモニタリングシステム１０２は、１つのモニタリングプローブ又は複数のモニタリングプローブに関して解析されるべき１以上のノード１１０及び／又は接続リンク１１２を決定又は選択することができる。追加的又は代替的に、ネットワークモニタリングシステム１０２は、実質的に同じ時間に又は異なる時間に、１以上のノード１１０及び／又は接続リンク１１２を調査してもよい。
【００３１】
解析されるべきノード１１０又は接続リンク１１２を選択すると、ネットワークモニタリングシステム１０２は、選択されたノード１１０又は接続リンク１１２の動作状態又は健全性状態を調査するために送信されるデータパケットを準備する準備モジュール２１６を使用することができる。一実施形態において、準備モジュール２１６は、選択されたノード１１０又は接続リンク１１２にデータパケットをルーティングするために使用可能な情報を取得することができる。限定ではなく例として、選択されたノード１１０又は接続リンク１１２にデータパケットをルーティングするために使用可能な情報は、グローバルアドレス、ローカルアドレス、選択されたノード１１０に到達するためのホップの（最小）数等を含み得る。準備モジュール２１６は、複数のノード１１０及び複数の接続リンク１１２に関連付けられたアドレス及び／又は識別情報を含むデータベース２１８から、選択されたノード１１０又は接続リンク１１２にデータパケットをルーティングするために使用可能な情報を取得することができる。さらに、いくつかの実施形態において、データベース２１８は、ネットワーク１０８のトポロジ情報、及び／又は、１以上の以前のプローブにおいて判定された、複数のノード１１０及び複数の接続リンク１１２の動作状態又は健全性状態等をさらに含み得る。
【００３２】
一実施形態において、ノードのローカルアドレスは、ノードの近傍内での通信のために意図され、ノードの近傍内の１以上の近傍ノード及び／又はネットワーク１０８の一部又は全ての中に配置されているノードのサブセットによって（のみ）到達可能であるネットワークアドレスに対応し得る。さらに、ノードのグローバルアドレスは、ネットワーク１０８の内部及び／又は外部にある別のノード（例えば、デバイス１０４、サーバ１０６等）によってルーティング可能且つ／又はアクセス可能であるネットワークアドレスに対応し得る。ノードに関連付けられたホップの数又はホップカウントは、データパケットを送出するノード又はデバイス（例えば、この例ではデバイス１０４）からデータパケットをノード１１０にルーティングするのに必要とされるホップの数に対応し得る。いくつかの実施形態において、選択された接続リンク１１２に関連付けられた情報は、選択された接続リンク１１２の２つの端に対応するノードに関連付けられたアドレス情報又はルーティング情報（例えば、グローバルアドレス、ローカルアドレス、又はこれらの組合せ等）を含み得るが、これに限定されるものではない。
【００３３】
選択されたノード１１０又は接続リンク１１２にデータパケットをルーティングするために使用可能な情報を取得すると、準備モジュール２１６は、取得された情報に基づいて、データパケットを準備することにより、データパケットが伝送又はルーティングされるパス又はパスの一部を制御又は指定することができる。限定ではなく例として、準備モジュール２１６は、トンネリングプロトコルに従って、テストデータパケットを準備又は生成することができる。トンネリングプロトコルの例は、ＩＰｉｎＩＰ、ＧＲＥ（汎用ルーティングカプセル化）、ＭＰＬＳ（マルチプロトコルラベルスイッチング）等を含み得るが、これらに限定されるものではない。説明のために、ＩＰｉｎＩＰトンネリングプロトコルが、例示のために以下で使用される。しかしながら、本開示は、このＩＰｉｎＩＰトンネリングプロトコルに限定的に解釈されるべきではなく、上述した他のトンネリングプロトコルにも適用可能である。
【００３４】
一実施形態において、１つのノード１１０が選択された場合、準備モジュール２１６は、第２のデータパケット（例えば、「外側の」データパケット）のデータボディ又はペイロードに、第１のデータパケット（例えば、「内側の」データパケット）をラップして又は含めて、テストデータパケットを形成することができる。準備モジュール２１６は、さらに、内側のデータパケットの内側のパケットヘッダ及び外側のデータパケットの外側のパケットヘッダという２つのパケットヘッダを生成することができる。準備モジュール２１６は、選択されたノード１１０に関連付けられたルーティング情報（例えば、グローバルアドレス、ローカルアドレス、ホップカウント等）を、外側のデータパケットの外側のパケットヘッダ内に設定する又は含めることができ、別のノード１１０（例えば、送信先ノード１１０又はデバイス１０４）のルーティング情報を、内側のデータパケットの内側のパケットヘッダ内に設定する又は含めることができる。ネットワーク１０８が使用する且つ／又はデバイス若しくはノード１１０が採用するプロトコル又はアドレッシング方式のタイプに応じて、パケットヘッダは、ＩＰｖ６パケットヘッダ、ＩＰｖ４ヘッダ等を含み得る。
【００３５】
追加的又は代替的に、接続リンク１１２が選択された場合、準備モジュール２１６は、第２のデータパケットに第１のデータパケットをラップして又は含めて、テストデータパケットを形成してもよい。準備モジュール２１６は、さらに、第１のデータパケットの第１のパケットヘッダ及び第２のデータパケットの第２のパケットヘッダという２つのパケットヘッダを生成する。準備モジュール２１６は、接続リンク１１２の第１の端に関連付けられたルーティング情報（例えば、グローバルアドレス、ローカルアドレス、ホップカウント等）を、第１のデータパケットの第１のパケットヘッダ内に設定する又は含めることができ、接続リンク１１２の第２の端のルーティング情報を、第２のデータパケットの第２のパケットヘッダ内に設定する又は含めることができる。さらに、送信先ノード１１０が、接続リンク１１２の第１の端とは異なる場合、準備モジュール２１６は、第１のデータパケットに第３のデータパケットをラップして又は含めて、送信先ノード１１０又はデバイス１０４に関連付けられたルーティング情報を、第３のデータパケットのパケットヘッダ内に設定する又は含めることができる。
【００３６】
いくつかの実施形態において、２以上のノード１１０及び／又は接続リンク１１２が選択された場合、準備モジュール２１６は、上述したように、選択されたノード１１０及び／又は接続リンク１１２に対応するそれぞれのデータパケットを順次に反復的にラップして又は含めて、テストデータパケットを形成することができる。さらに、準備モジュール２１６は、これに応じて、それぞれのデータパケットのパケットヘッダを生成して、選択されたノード１１０及び／又は接続リンク１１２のルーティング情報を、それらのパケットヘッダ内にそれぞれ設定する又は含めることができる。いくつかの例において、テストデータパケットの最も内側のデータパケットのパケットヘッダ内に含められたルーティング情報は、送信先ノード１１０又はデバイス１０４についてのルーティング情報に対応し得る。
【００３７】
いくつかの実施形態において、準備モジュール２１６は、１以上の他の属性又はパラメータを、テストデータパケットの、選択されたノード１１０及び／又は接続リンク１１２に関連付けられた１以上のデータパケットのそれぞれのパケットヘッダ内に設定することができる。例えば、準備モジュール２１６は、選択されたノード１１０又は接続リンク１１２に関連付けられたデータパケットのパケットヘッダに対して、ＤＳＣＰ（差別化サービスコードポイント）の値を設定して、データパケットが伝送されるパス上での、データパケットが属する優先度グループ（ＰＧ）を制御することができる。追加的又は代替的に、準備モジュール２１６は、選択されたノード１１０又は接続リンク１１２に関連付けられたデータパケットのパケットヘッダに対して、ＥＣＮ（明示的輻輳通知）の値を設定して、データパケットが伝送されるパス上でデータパケットが有する可能性がある輻輳経験を制御してもよい。
【００３８】
テストデータパケットを作成又は生成すると、ネットワークモニタリングシステム１０２の送信モジュール２２０は、テストデータパケットを、ネットワーク１０８を介して送信先ノード１１０又はデバイス１０４に送出することができる。さらに、ネットワークモニタリングシステム１０２は、テストデータパケットのルーティング結果を待つ又はリスンするよう構成されている受信モジュール２２２を含み得る。一実施形態において、ルーティング結果は、テストデータパケットのカプセル化されたデータパケット（例えば、テストデータパケット内にカプセル化された最も内側のデータパケット）が、送信先ノード１１０又はデバイス１０４において受信されたかどうか等の結果を含み得る。送信先ノード１１０又はデバイス１０４が、ネットワークモニタリングシステム１０２又はネットワークモニタリングシステム１０２の一部を含むかどうかに応じて、受信モジュール２２２は、送信先ノード１１０又はデバイス１０４においてルーティング結果を受信することができる（ネットワークモニタリングシステム１０２の少なくとも一部が送信先ノード１１０又はデバイス１０４に含まれる場合）か、又は、送信先ノード１１０又はデバイス１０４から送信された通知メッセージとしてルーティング結果を受信することができる（ネットワークモニタリングシステム１０２が、送信先ノード１１０又はデバイス１０４から独立したエンティティである場合）。
【００３９】
一実施形態において、ネットワークモニタリングシステム１０２の判定モジュール２２４は、１以上の予め定められた基準に従って、選択されたノード１１０又は接続リンク１１２の動作状態又は健全性状態を判定することができる。１以上の予め定められた基準は、例えば、ルーティング結果が、受信モジュール２２２により受信されたかどうか、ルーティング結果が、予め定められた時間期間内に受信モジュール２２２により受信されたかどうか等を含み得る。ルーティング結果が受信されなかった場合、又は、ルーティング結果が、予め定められた時間期間を超えて受信された場合、判定モジュール２２４は、動作状態又は健全性状態が解析されるべき選択されたノード１１０又は接続リンク１１２が、疑わしい状態の影響を受けている（例えば、選択されたノード１１０又は接続リンク１１２が過負荷を受けている又はトラフィック輻輳を被っている、選択されたノード１１０又は接続リンク１１２が故障している又は障害を受けている等）と判定することができる。例えば、ルーティング結果が、予め定められた時間期間を超えて受信モジュール２２２により受信された場合、判定モジュール２２４は、選択されたノード１１０又は接続リンク１１２が、過負荷又はトラフィック輻輳の影響を受けている可能性があると判定することができる。ルーティング結果が、受信モジュール２２２により受信されなかった場合、判定モジュール２２４は、例えば、選択されたノード１１０又は接続リンク１１２が故障している又は障害の影響を受けている可能性があると判定することができる。
【００４０】
いくつかの実施形態において、判定モジュール２２４は、ネットワーク１０８内に問題が存在することを判定することはできるが、その問題が、選択されたノード１１０又は接続リンク１１２に関連するものか又はネットワーク１０８内の他のノード又は接続リンクに関連するものかを識別できないことがある。判定モジュール２２４は、さらなる解析が望ましいと判定することができる。判定モジュール２２４は、選択されたノード１１０又は接続リンク１１２に隣接する１以上の他のノード１１０及び／又は接続リンク１１２の動作状態又は健全性状態を解析又は判定するために、選択されたノード１１０又は接続リンク１１２に隣接する１以上の他のノード１１０及び／又は接続リンク１１２を選択するように選択モジュール２１４に指示することができる。一実施形態において、第１のノード又は接続リンクが、第２のノード又は接続リンクから、予め定められた数（例えば、１つ、２つ、３つ等）のホップの分だけ離れて位置する場合、第１のノード又は接続リンクは、第２のノード又は接続リンクに隣接している。予め定められた数のホップは、例えば、ネットワーク１０８のネットワークアドミニストレータ又はオペレータ（例えば、ユーザ１２２）により規定され得る。追加的又は代替的に、判定モジュール２２４は、プロンプトをユーザ１２２に提供し、どの１以上の他のノード１１０及び／又は接続リンク１１２が解析されるべきであるかの指示及び／又はインジケーションを提供するようにユーザ１２２に要求してもよい。いくつかの実施形態において、ネットワークモニタリングシステム１０２は、解析された１以上のノード１１０及び／又は接続リンク１１２の動作状態及び／又は対応する問題のレコード等の他のプログラムデータ１２０をさらに含み得る。
【００４１】
例示的なシナリオ
図３Ａは、上述した実施形態に従ってテストデータパケットを伝送する第１の例示的なフレームワーク又はシナリオ３００を示している。この例において、ネットワークモニタリングシステム１０２は、上記の実施形態において説明したように、外側のパケットヘッダ３０４、内側のパケットヘッダ３０６、及びデータボディ（又は、ペイロード）３０８を含むテストデータパケット３０２を準備する。例えば、外側のパケットヘッダ３０４は、送信先アドレスとして、動作状態が解析されるべき特定のノード３１２（例えば、コアスイッチ等のスイッチ）に関連付けられたルーティング情報（例えば、グローバルアドレス、ローカルアドレス、又はホップカウント等）を含む。また、この例において、内側のパケットヘッダ３０６は、内側のパケットの対応する送信先アドレスとして、送信元３１０のルーティング情報を含む。ネットワークモニタリングシステム１０２は、次いで、送信元３１０（例えば、デバイス１０４又はサーバ１０６）から、ネットワーク１０８を介して、テストデータパケット３０２を送信することができる。
【００４２】
一実施形態において、テストデータパケット３０２は、１以上の中継ノード３１４を介してルーティングされ、特定のノード３１２に到達し得る。テストデータパケット３０２は、特定のノード３１２の処理リソースを消費することなく、特定のノード３１２のデータプレーン又はレイヤにおいて逆カプセル化又はアンラップされ得る。逆カプセル化又はアンラップされると、逆カプセル化又はアンラップされたデータパケット３１６は、内側のパケットヘッダ３０６内に含められた送信先アドレスに基づいて、１以上の中継ノード３１４（テストデータパケット３０２が、送信元３１０から特定のノード３１２にルーティングされたときのノードと同じであることもあるし同じでないこともある）を介して送信元３１０にルーティング又は転送され得る。一実施形態において、逆カプセル化又はアンラップされたデータパケット３１６は、通常の又は一般的なデータパケットをルーティング又は転送するのと同じメカニズムを使用して、１以上の中継ノード３１４を介して送信元３１０にルーティング又は転送され得る。送信元３１０に到達した後、ネットワークモニタリングシステム１０２は、上記の実施形態において説明したように、逆カプセル化又はアンラップされたデータパケット３１６に関連付けられた情報を解析して、特定のノード３１２の動作状態を判定することができる。
【００４３】
いくつかの実施形態において、問題が特定のノード３１２について存在する（例えば、特定のノード３１２が故障している又は過負荷を受けている）場合、テストデータパケット３０２は、特定のノード３１２に到達できないことがあり、したがって、テストデータパケット３０２に関連付けられたデータパケットが、送信元３１０において受信されないことがある。この場合、ネットワークモニタリングシステム１０２は、特定のノード３１２が現在問題を被っていると判定又は検出することができる。ネットワークモニタリングシステム１０２は、次いで、デバイス１０４のディスプレイ１２４を介してユーザ１２２に提示するために、解析結果を提供することができ、ユーザ１２２からのさらなる指示を待つ。追加的又は代替的に、ネットワークモニタリングシステム１０２は、ユーザ１２２からの介入又は指示があってもなくても、問題の発生源を識別又は特定するために、特定のノード３１２に隣接する１以上のノード１１０及び／又は接続リンク１１２を漸進的に選択してもよい。
【００４４】
図３Ｂは、上述した実施形態に従ってテストデータパケットを伝送する第２の例示的なフレームワーク又はシナリオ３１８を示している。この例において、ネットワークモニタリングシステム１０２は、１つモニタリングプローブ又は１回のモニタリング試行において、複数のノード１１０及び／又は接続リンク１１２の動作状態又は健全性状態を判定又は解析することができる。一実施形態において、テストデータパケット３２０は、上記の実施形態において説明したように、外側のパケットヘッダ３２２、複数の内側のパケットヘッダ３２４−１、．．．、３２４−Ｋ、及びデータボディ（又は、ペイロード）３２６を含み得る。ここで、Ｋは、１より大きい整数である。外側のパケットヘッダ３２２は、送信先アドレスとして、動作状態が解析されるべき第１のノード３２８（例えば、ＴｏＲスイッチ等のスイッチ）に関連付けられたルーティング情報（例えば、グローバルアドレス、ローカルアドレス、又はホップカウント等）を含み得る。内側のパケットヘッダ３２４−１は、送信先アドレスとして、動作状態が解析されるべき第２のノード３３０（例えば、アグリゲートスイッチ等のスイッチ）に関連付けられたルーティング情報（例えば、グローバルアドレス、ローカルアドレス、又はホップカウント等）を含み得る。また、この例において、最も内側のパケットヘッダ３２４−Ｋは、最も内側のデータパケット３３４の対応する送信先アドレスとして、送信先３３２のルーティング情報を含み得る。ネットワークモニタリングシステム１０２は、次いで、送信元３３６（例えば、デバイス１０４又はサーバ１０６）から、ネットワーク１０８を介して、テストデータパケット３２０を送信することができる。
【００４５】
一実施形態において、テストデータパケット３２０が、成功裡にルーティングされて第１のノード３２８に到達すると、テストデータパケット３２０は、第１のノード３２８の処理リソースを消費して又は消費することなく、第１のノード３２８のデータプレーン又はレイヤにおいて逆カプセル化又はアンラップされて、内側のパケットヘッダ３２４−１が露出される。逆カプセル化又はアンラップされると、第１のアンラップされたデータパケット３３８は、次いで、内側のパケットヘッダ３２４−１内に含められた送信先アドレスに基づいて、Ｍ個の中継ノード３４０を介して、第２のノード３３０にルーティングされ得る。ここで、Ｍは、０以上の整数である。一実施形態において、第１のアンラップされたデータパケット３３８は、通常の又は一般的なデータパケットをルーティング又は転送するのと同じメカニズムを使用して、第２のノード３３０にルーティング又は転送され得る。一例において、第２のノード３３０に成功裡に到達した場合、第１のアンラップされたデータパケット３３８は、第２のノード３３０の対応するデータプレーン又はレイヤにおいて逆カプセル化又はアンラップされて、第２のアンラップされたデータパケット３４２が生成され得る。第２のアンラップされたデータパケット３４２は、次いで、０以上の中継ノードを介して、動作状態が解析されるべき別のノード又は送信先３３２にルーティングされ得る。一実施形態において、第２のアンラップされたデータパケット３４２は、通常の又は一般的なデータパケットをルーティング又は転送するのと同じメカニズムを使用して、送信先３３２にルーティング又は転送され得る。テストデータパケット３２０の最も内側のデータパケット３３４が送信先３３２に成功裡に到達したかどうかに応じて、ネットワークモニタリングシステム１０２は、上記の実施形態において説明したように、複数のノード１１０及び／又は接続リンク１１２のうちの１以上が適切に機能しているか又は過負荷を受けているか等を判定することができる。
【００４６】
代替実装形態
ネットワークモニタリングシステム１０２が、テストデータパケットの送信元及び／又は送信先であるデバイス１０４の一部として又はそのようなデバイス１０４に含められるものとして説明されたが、いくつかの実施形態において、ネットワークモニタリングシステム１０２は、テストデータパケットの送信元であるデバイス１０４及び／又はテストデータパケットの送信先であるデバイス１０４とは異なる１以上のデバイス１０４及び／又は１以上のサーバ１０６に含められてもよい。この例において、一例として図１を参照すると、ネットワークモニタリングシステム１０２は、テストデータパケットを準備して送信するように第１のデバイス１０４（例えば、デバイス１０４−１）に要求する要求又は指示を、第１のデバイス１０４に送信することができる。ネットワークモニタリングシステム１０２はまた、テストデータパケットのルーティング結果に関する通知メッセージをネットワークモニタリングシステム１０２に返送するように第２のデバイス１０４（第１のデバイス１０４と同じであることもあるし異なることもある）に要求する別の要求又は指示を、第２のデバイス１０４に送信することができる。いくつかの例において、第１のデバイス１０４と第２のデバイス１０４とが同じである場合、ネットワークモニタリングシステム１０２は、１つの要求又は指示を、この同じデバイス１０４に送信することで、テストデータパケットの送信とテストデータパケットのルーティング結果の通知との両方を実現することができる。
【００４７】
さらに、上記の実施形態では、ネットワークモニタリングシステム１０２が、選択されたノードの動作状態又は健全性状態を調査するためのテストデータパケットを生成又は作成するとして説明されたが、他の例において、ネットワークモニタリングシステム１０２は、ネットワークモニタリングに元々は又は初期には関連しないオリジナルの又は通常のデータパケットに、この調査を組み込んでもよい。例えば、オリジナルの又は通常のデータパケットは、別のアプリケーション１１８の動作又は要求に起因して第１のデバイスから第２のデバイスに送信されるデータパケットを含み得る。ここで、第１のデバイス又は第２のデバイスは、ネットワークモニタリングに関連しないものである。この場合、ネットワークモニタリングシステム１０２は、動作状態が解析されるべきノードに対応するデータパケット内にオリジナルのデータパケットをラップ又はカプセル化して、新たなデータパケットを形成することができ、解析されるべきノードを介して第２のデバイスに、新たなデータパケットを送信することができる。いくつかの例において、ネットワークモニタリングシステム１０２は、オリジナルのデータパケットの送信とともに調査のこの組み込みを示すデータフォーマットについて、第２のデバイスとネゴシエート又は合意することができ、それに応じてオリジナルのデータパケットのパケットヘッダ及び／又はデータボディ（例えば、ペイロード）を変更するか又は変更しないで、この組み込みを示すことができる。（フォーマットがネゴシエート又は合意されたことに応じて変更を伴うか又は伴わない）オリジナルのデータパケットを受信した後、第２のデバイスは、合意されたデータフォーマットに基づいて、変更を認識することができ、オリジナルのデータパケットのルーティング結果（したがって、解析されるべきノードに対応するデータパケットのルーティング結果）を、ネットワークモニタリングシステム１０２に通知することができる。
【００４８】
例示的な方法
図４は、ネットワークモニタリングの例示的な方法４００を示すフローチャートである。いくつかの場合において、図４の方法は、図１のフレームワークにおいて、図２のネットワークモニタリングシステムを使用して、且つ／又は、図３に対応する類似のシナリオの下、実施され得る。説明のしやすさのため、方法４００は、図１〜図３を参照して説明される。しかしながら、方法４００は、代替的に、他の環境において且つ／又は他のシステムを使用して、実施されてもよい。
【００４９】
図４に示される方法４００は、コンピュータ実行可能な命令の一般的なコンテキストにおいて説明される。一般に、コンピュータ実行可能な命令は、特定の機能を実行する又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、ファンクション等を含み得る。方法４００はまた、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、コンピュータ実行可能な命令は、メモリ記憶デバイスを含むローカルコンピュータ記憶媒体及び／又はリモートコンピュータ記憶媒体に配置され得る。
【００５０】
この例示的な方法は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せにより実装され得る一連の動作を表現する論理フローグラフにおけるブロックの集合として図示されている。この方法が説明される順番は、限定として解釈されるようには意図されておらず、任意の数の説明する方法ブロックが、この方法又は代替方法を実施するために任意の順番で組み合わされ得る。さらに、個々のブロックは、本明細書に記載の主題の主旨及び範囲から逸脱することなく、この方法から省かれ得る。ソフトウェアのコンテキストにおいて、これらのブロックは、コンピュータ命令を表す。コンピュータ命令は、１以上のプロセッサにより実行されたときに、説明する動作を実行する。ハードウェアのコンテキストにおいて、これらのブロックの一部又は全ては、説明する動作を実行する特定用途向け集積回路（ＡＳＩＣ）又は他の物理コンポーネントを表し得る。
【００５１】
図４を参照すると、ブロック４０２において、方法４００は、解析されるべきノード又は接続リンクを決定することを含む。例えば、図２を参照すると、入力モジュール２１０又は選択モジュール２１４は、動作状態又は健全性状態が解析されるべき１以上のノード１１０及び／又は１以上の接続リンク１１２を決定又は選択することができる。
【００５２】
ブロック４０４において、方法４００は、解析されるべきノード又は接続リンクのルーティング情報を取得することを含む。例えば、図２を参照すると、準備モジュール２１６は、選択された１以上のノード１１０及び／又は選択された１以上の接続リンク１１２に関連付けられたそれぞれのルーティング情報を取得することができる。
【００５３】
ブロック４０６において、方法４００は、１以上のデータパケットをカプセル化又はラップして、テストデータパケットを形成することを含む。例えば、図２を参照すると、準備モジュール２１６は、トンネリングプロトコルに従って、第２のデータパケットに第１のデータパケットをカプセル化又はラップして、テストデータパケットを形成することができる。一実施形態において、第１のデータパケット及び第２のデータパケットのうちの少なくとも１つは、選択されたノード１１０又は選択された接続リンク１１２の端に対応する。
【００５４】
ブロック４０８において、方法４００は、１以上のノード及び／又は接続リンクが解析されるべきかどうかを判定することを含む。例えば、図２を参照すると、準備モジュール２１６は、別の選択されたノード１１０又は別の選択された接続リンク１１２の端についてさらなるカプセル化又はラッピングが実行されるべきかどうかを判定することができる。さらなるカプセル化又はラッピングが実行されるべきである場合、準備モジュール２１６は、別の選択されたノード１１０又は別の選択された接続リンク１１２の端に対応する別のデータパケットに、テストデータパケットを反復的に又は繰り返しカプセル化又はラップする。
【００５５】
ブロック４１０において、方法４００は、テストデータパケットを送信することを含む。例えば、図２を参照すると、カプセル化又はラッピングがもはや必要とされない場合、送信モジュール２２０は、テストデータパケットを送出することができる。
【００５６】
ブロック４１２において、方法４００は、テストデータパケットのルーティング結果を受信することを含む。例えば、図２を参照すると、受信モジュール２２２は、送信先ノード１１０若しくはデバイス１０４又は最終ノード１１０若しくはデバイス１０４において、又は、送信先ノード１１０若しくはデバイス１０４又は最終ノード１１０若しくはデバイス１０４から、テストデータパケットのルーティング結果を受信することができる。
【００５７】
ブロック４１４において、方法４００は、ノード又は接続リンクの動作状態を判定することを含む。例えば、図２を参照すると、判定モジュール２２４は、ルーティング結果に基づき、１以上の予め定められた基準に従って、選択された１以上のノード１１０及び／又は選択された１以上の接続リンク１１２のそれぞれの動作状態を判定することができる。
【００５８】
ブロック４１６において、方法４００は、別のノード又は接続リンクが解析されるべきかどうかを判定することを含む。例えば、図２を参照すると、入力モジュール２１０又は選択モジュール２１４は、別のノード１１０又は接続リンク１１２が解析されるべきかどうかを判定することができる。さらなるノード１１０又は接続リンク１１２が解析される必要がない場合、入力モジュール２１０又は選択モジュール２１４は、終了して次の要求又は指示を待つ。さらなるノード１１０又は接続リンク１１２が解析される必要がある場合、準備モジュール２１６は、さらなるノード１１０又は接続リンク１１２に関連付けられたルーティング情報を取得し、新たなテストデータパケットを準備することができる。
【００５９】
本明細書に記載の方法の動作のいずれも、１以上のコンピュータ読み取り可能な媒体に記憶された命令に基づいて、プロセッサ又は他の電子デバイスにより少なくとも部分的に実施され得る。限定ではなく例として、本明細書に記載の方法の動作のいずれも、１以上のコンピュータ記憶媒体等の１以上のコンピュータ読み取り可能な媒体に記憶され得る実行可能な命令を伴うよう構成された１以上のプロセッサの制御の下、実施され得る。さらに、上記で説明した様々な実施形態のコンポーネント及び動作は、本開示から逸脱することなく、組み合わされ得る、再配置され得る、置換され得る、且つ／又は省かれ得る。
【００６０】
例示的なユーザインタフェース
図５は、ユーザ１２２とインタラクトする又はやり取りするために例示的なネットワークモニタリングシステム１０２により使用され得る例示的なユーザインタフェース５００を示している。この例において、ユーザインタフェース５００は、アプリケーション１１８（例えば、デバイス１０４のネットワークモニタリングアプリケーション）を介して提供されるユーザインタフェースとして説明される。他の例において、ユーザインタフェース５００は、ネットワークモニタリングシステム１０２によりリモートで提供され、デバイス１０４のディスプレイ１２４を介しアプリケーション１１８（例えば、ブラウザアプリケーション）を介してユーザ１２２に提示されるユーザインタフェースであってもよい。この例において、ディスプレイ１２４は、タッチスクリーンとして説明される。他の例において、ディスプレイ１２４は、タッチ感知能力を有さない通常のスクリーンを含んでもよい。
【００６１】
一実施形態において、ユーザインタフェース５００は、ネットワーク１０８内のノード１１０及び／又は接続リンク１１２の一部又は全てのトロポジマップ５０２及び／又はリスト５０４を含み得る。トポロジマップ５０２及び／又はリスト５０４は、ネットワーク１０８内の１以上のノード１１０及び／又は接続リンク１１２に関連付けられた情報を提供することができる。提供される情報の例は、１以上のノード１１０及び／又は接続リンク１１２の識別情報、１以上のノード１１０及び／又は接続リンク１１２の動作状態、１以上のノード１１０及び／又は接続リンク１１２の最終更新日時等を含み得るが、これらに限定されるものではない。一例において、ノード１１０及び／又は接続リンク１１２に関連付けられた情報は、ユーザ１２２が、ノード１１０又は接続リンク１１２を表すグラフィックオブジェクト上にポインティング手段（例えば、タッチスクリーンについては指又はスタイラス、通常のスクリーンについてはマウス等）を配置させたときに、トポロジマップ５０２上でユーザ１１２に提示され得る。
【００６２】
一実施形態において、ユーザ１２２は、特定のノード１１０又は接続リンク１１２を選択して（５０６）、その特定のノード１１０又は接続リンク１１２の動作状態又は健全性状態を判定するようにネットワークモニタリングシステム１０２に指示することができる。いくつかの実施形態において、ユーザ１２２は、動作状態が解析されるべき１以上のノード１１０及び／又は接続リンク１１２を含む、ネットワーク１０８の一部又はサブセットを選択することができる（５０８）。
【００６３】
入力モジュール２１０を介して、特定のノード１１０又は接続リンク１１２（又はネットワーク１０８のサブセット）の選択のインジケーションを受信すると、ネットワークモニタリングシステム１０２は、上記の実施形態において説明したように、選択されたノード１１０又は接続リンク１１２（又はネットワーク１０８の選択されたサブセット）のネットワークモニタリングを実行することができる。選択されたノード１１０又は接続リンク１１２（又はネットワーク１０８の選択されたサブセット）の動作状態を判定したことに応じて、ネットワークモニタリングシステム１０２は、ユーザインタフェース５００の結果セクション５１０においてユーザ１２２に提示するために、解析結果を提供することができる。
【００６４】
追加的又は代替的に、いくつかの実施形態において、アプリケーション１１８が、ユーザインタフェース５００の異なる領域（すなわち、結果セクション）において解析結果を提示してもよい。限定ではなく例として、ユーザインタフェース５００又はアプリケーション１１８は、解析結果を示すために、選択されたノード１１０又は接続リンク１１２（又はネットワーク１０８の選択されたサブセット）に対応する、トポロジマップ５０２及び／又はリスト５０４の部分を更新することができる。一実施形態において、ユーザインタフェース５００又はアプリケーション１１８は、選択されたノード１１０又は接続リンク１１２（又はネットワーク１０８の選択されたサブセット）の解析結果をユーザ１２２が容易に識別できるように、トポロジマップ５０２及び／又はリスト５０４の更新された部分をハイライトすることができる。ユーザインタフェース５００又はアプリケーション１１８は、異なる色、スタイル（例えば、テキストのサイズ、フォント、スタイル等）を使用することにより、更新された部分をハイライトすることができる。追加的又は代替的に、ユーザインタフェース５００又はアプリケーション１１８は、例えば、更新された部分を点滅させる又は光らせることにより、更新された部分をハイライトしてもよい。
【００６５】
さらに、いくつかの実施形態において、ネットワークモニタリングシステム１０２は、選択されたノード１１０又は接続リンク１１２（又は、ネットワーク１０８の選択されたサブセットの１以上のノード１１０及び／又は接続リンク１１２）がどの問題（過負荷、障害、故障等）を被っている可能性が最も高いかを判定するために、選択されたノード１１０又は接続リンク１１２（又は、ネットワーク１０８の選択されたサブセットの１以上のノード１１０及び／又は接続リンク１１２）に対してさらなる解析を実行するかどうかをユーザ１２２が決定することを可能にし得る。
【００６６】
結び
実施形態が、構造的特徴及び／又は方法的動作に特有の言葉で説明されたが、請求項は、説明された特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、特定の特徴又は動作は、特許請求される主題を実施する例示的な形態として開示されたものである。
【図１】
0006651463.tif 000002
【図２】
0006651463.tif 000003
【図３Ａ】
0006651463.tif 000004
【図３Ｂ】
0006651463.tif 000005
【図４】
0006651463.tif 000006
【図５】
0006651463.tif 000007