(57)【特許請求の範囲】
【請求項１】
コンピューター実行可能命令を含むコンピューター・プログラムであって、前記コンピューター実行可能命令が、計算システムの１つ以上のプロセッサーによって実行されると、前記計算システムに方法を実行させ、該方法が、
ネットワークにおける少なくとも１つのフローの各々に対するフロー情報を受信するステップであって、前記フロー情報が、対応するフローに関する性能情報を含む、ステップと、
フロー情報が受信された前記少なくとも１つのフローの内１つ以上の各々に対して、当該フローに属するネットワーク・トラフィックが通過する経路を推定するステップと、
前記少なくとも１つのフローの少なくとも部分集合における各フローに対する前記性能情報と、前記推定とを使用して、前記少なくとも１つのフローの前記少なくとも部分集合の前記推定された経路間で共通の少なくとも１つの候補問題ネットワーク・エンティティを識別するステップと、
を含み、
フローが、前記ネットワークにおける任意の２つのエンド・ノード間におけるネットワーク通信の集合であり、前記ネットワーク通信が、共通の特性を有して、通過ノードのメッシュを通る連続した通信リンクの同じ経路を辿り、
前記フロー情報は、前記対応するフローの前記エンド・ノードの少なくとも１つから受信する、
コンピューター・プログラム。
【請求項２】
請求項１記載のコンピューター・プログラムにおいて、前記少なくとも１つの候補問題ネットワーク・エンティティが、前記ネットワークにおける通過ノードを含む、コンピューター・プログラム。
【請求項３】
請求項１記載のコンピューター・プログラムにおいて、前記少なくとも１つの候補問題ネットワーク・エンティティが、前記ネットワークにおけるネットワーク・リンクを含む、コンピューター・プログラム。
【請求項４】
請求項１記載のコンピューター・プログラムにおいて、前記少なくとも１つの候補問題ネットワーク・エンティティが、複数の候補問題ネットワーク・エンティティを含む、コンピューター・プログラム。
【請求項５】
請求項１記載のコンピューター・プログラムにおいて、前記少なくとも１つのフローの内１つ以上に対する前記性能情報が、前記対応するフローの再送信統計を含む、コンピューター・プログラム。
【請求項６】
請求項１記載のコンピューター・プログラムにおいて、前記少なくとも１つのフローの内１つ以上に対する前記性能情報が、前記対応するフローのレイテンシー統計を含む、コンピューター・プログラム。
【請求項７】
ネットワーク性能不足の候補根源を識別するためのシステムであって、該システムが、
ネットワーク内の複数のフローの各々に関し、該複数のフローの各々に対するフロー情報を使用して、ネットワーク・トラヒックが前記ネットワークを通過する経路を推定するように構成された経路推定コンポーネントであって、前記フロー情報が、対応するフローに関する性能情報を含む、コンポーネントと、
前記複数のフローの少なくとも部分集合における各フローに対する前記性能情報を使用して、前記複数のフローの前記少なくとも部分集合の前記推定された経路間で共通の少なくとも１つの候補問題ネットワーク・エンティティを識別する候補問題検出コンポーネントと、
を含み、
フローが、前記ネットワークにおける任意の２つのエンド・ノード間におけるネットワーク通信の集合であり、前記ネットワーク通信が、共通の特性を有して、通過ノードのメッシュを通る連続した通信リンクの同じ経路を辿り、
前記フロー情報は、前記対応するフローの前記エンド・ノードの少なくとも１つから受信する、
システム。
【請求項８】
請求項７記載のシステムであって、更に、
前記候補問題検出コンポーネントが識別した少なくとも１つの候補問題ネットワーク・エンティティに対して、軽減措置を取るように構成された軽減コンポーネントを含む、システム。
【請求項９】
１つ以上のプロセッサーにより実行されるコンピューター実装方法であって、前記１つ以上のプロセッサーが前記コンピューター実装方法のためのコンピューター実行可能命令を実行し、前記コンピューター実装方法が、
ネットワークにおける少なくとも１つのフローの各々に対するフロー情報を受信するステップであって、前記フロー情報が、対応するフローに関する性能情報を含む、ステップと、
フロー情報が受信された前記少なくとも１つのフローの内１つ以上の各々に対して、当該フローに属するネットワーク・トラフィックが通過する経路を推定するステップと、
前記少なくとも１つのフローの少なくとも部分集合における各フローに対する前記性能情報と、前記推定とを使用して、前記少なくとも１つのフローの前記少なくとも部分集合の前記推定された経路間で共通の少なくとも１つの候補問題ネットワーク・エンティティを識別するステップと、
を含み、
フローが、前記ネットワークにおける任意の２つのエンド・ノード間におけるネットワーク通信の集合であり、前記ネットワーク通信が、共通の特性を有して、通過ノードのメッシュを通る連続した通信リンクの同じ経路を辿り、
前記フロー情報は、前記対応するフローの前記エンド・ノードの少なくとも１つから受信する、
コンピューター実装方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  計算システムは、我々が仕事をする、遊ぶ、そして生活する方法を変えた。最近の計算システムは、ソフトウェアによって指令される通りに多種多様のタスクを実行し、計算システムに利用可能なサービスを実行することができる。計算システムは、増々互いに接続されつつあり、これによって計算システム間において更に協働相互作用(cooperative interactivity)を可能にする。その上、現在では計算システム間で大量のマルチメディア・データーが配信される。したがって、計算ワークフローは、これまでよりも更に、ネットワークを介した信頼性のある配信に依存することになる。
【０００２】
[0002]  ネットワークは、相互接続された計算システム（多くの場合、「ノード」または「ネットワーク・ノード」と呼ばれる）のトポロジーで構成される。ネットワーク・ノード間のチャネルを「リンク」と呼ぶ。メッセージが１つの計算システムから他の計算システムに配信されるとき、リンクされたノードのトポロジーにおける経路を横断する一定のフローを通ってこれらのメッセージを送信することができる。ネットワーク・ノードおよびリンクの性能は変動する可能性がある。ルーティング技術は、特定の経路の性能が劣化した場合、メッセージが代わりの経路を取ることを可能にする。ノードまたはリンクの性能が著しく劣化した場合、そのノードまたはリンクを使用から外し、修理し、および／または交換することができる。
【０００３】
[0003]  本明細書において特許請求する主題は、任意の欠点を解決する実施形態にも、以上で説明したような環境だけで動作する実施形態にも限定されない。逆に、この背景は、本明細書において説明するいくつかの実施形態を実施することができる実証的な技術エリアを例示するために、示されたに過ぎない。
【発明の概要】
【０００４】
[0004]  本明細書において説明する実施形態の少なくとも一部は、複数のエンド・ノードと、間に複数の通過ノード(transit node)とを有するネットワークにおけるネットワーク通信問題の検出に関する。このようなネットワークでは、任意の２つの所与のエンド・ノード間において、１つ以上のフローがあると考えられる。各フローは、ネットワーク・トラフィックがある種の特性を有する場合にこのネットワーク・トラフィックが通りそうな２つの対応するエンド・ノード間の経路を表す。このようなネットワークの一例にメッシュ・ネットワークがある。
【０００５】
[0005]  本明細書において説明する実施形態によれば、エンド・ノードの内１つ以上が、ネットワーク通信問題の検出をサポートするために報告を提供する。例えば、所与のエンド・ノードがフローを監視し、そのフローについて関連フロー情報を作る。このフロー情報は、フローのエンドポイントに関する情報、およびフローに関する性能情報を含むことができる。次いで、フロー情報は報告される。
【０００６】
[0006]  本明細書において説明する実施形態によれば、システムがネットワーク性能不足の候補根源を識別する。例えば、システムは、ネットワーク内にある複数のフローの各々について、ネットワーク・トラフィックが通過しそうなこのネットワークの経路を推定する。次いで、システムは、複数のフローの少なくとも部分集合の各々についての性能情報を使用して、複数のフローの少なくとも部分集合の推定された経路間で共通する、少なくとも１つの候補問題ネットワーク・エンティティを識別することができる。一例として、この性能情報は、複数のエンド・ノードによって報告されるフロー情報から収集されていたのでもよい。
【０００７】
[0007] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。
【図面の簡単な説明】
【０００８】
[0008]  以上で挙げた本発明の利点および特徴、ならびに他の利点および特徴を得ることができる仕組み(manner)を説明するために、以上で端的に説明した発明の更に特定的な説明を、添付図面に示されるその具体的な実施形態を参照しながら行う。これらの図面は本発明の典型的な実施形態だけを図示するに過ぎず、したがってその範囲の限定であると考えてはならないことを理解した上で、添付図面の使用により、更に具体的にそして詳細に本発明について説明する(described and explained)。
【図１】図１は、本明細書において説明する原理を採用することができる計算システム例を示す。
【図２】図２は、本明細書において説明する原理を採用することができるネットワーク例を示し、このネットワーク例は、通過ノードのメッシュを介して結合された複数のエンド・ノードと通信リンク集合(communication link set)とを含む。
【図３】図３は、エンド・ノードがネットワークにおけるフローに関して報告する方法のフローチャートを示す。
【図４】図４は、監視されるフロー毎にエンド・ノードによって作ることができるフロー情報の例を示す。
【図５】図５は、１つ以上のエンドポイントから報告されたフロー情報を使用して、ネットワーク問題の根源を識別するシステムを抽象的に示す。
【図６】図６は、ネットワーク問題の根源を識別し、このネットワーク問題を軽減することが可能な方法のフローチャートを示す。
【図７】図７は、図２のネットワークを示すが、ここでは、性能が低いフローの経路が重ね合わされ、候補問題ネットワーク・エンティティが通信リンク集合の中の１つの通信リンクであることを示す。
【図８】図８は、図２のネットワークを示すが、ここでは、性能が低いフローの経路が重ね合わされ、候補問題ネットワーク・エンティティが通過ノードであることを示す。
【発明を実施するための形態】
【０００９】
[0017]  本明細書において説明する実施形態の少なくとも一部は、複数のエンド・ノードと、間に複数の通過ノードとを有するネットワークにおけるネットワーク通信問題の検出に関する。このようなネットワークでは、任意の２つの所与のエンド・ノード間において、１つ以上のフローがあると考えられる。各フローは、ネットワーク・トラフィックがある種の特性を有する場合にこのネットワーク・トラフィックが通りそうな２つの対応するエンド・ノード間の経路を表す。このようなネットワークの一例にメッシュ・ネットワークがある。
【００１０】
[0018]  本明細書において説明する実施形態によれば、エンド・ノードの内１つ以上が、ネットワーク通信問題の検出をサポートするために報告を提供する。例えば、所与のエンド・ノードがフローを監視し、そのフローについて関連フロー情報を作ることができる。このフロー情報は、フローのエンドポイントに関する情報、およびフローに関する性能情報を含むことができる。次いで、フロー情報は報告される。
【００１１】
[0019]  本明細書において説明する実施形態によれば、システムがネットワーク性能不足の候補根源を識別する。例えば、システムは、ネットワーク内にある複数のフローの各々について、ネットワーク・トラフィックが通過しそうなこのネットワークの経路を推定する。次いで、システムは、複数のフローの少なくとも部分集合の各々についての性能情報を使用して、複数のフローの少なくとも部分集の推定された経路間で共通する、少なくとも１つの候補問題「ネットワーク・エンティティ」を識別することができる。一例として、この性能情報は、複数のエンド・ノードによって報告されるフロー情報から収集されていたのでもよい。
【００１２】
[0020]  図１に関して、計算システムの序論を説明する。次いで、後続の図に関して、方法および支持アーキテクチャの例について説明する。
[0021]  今日、計算システムは増々多種多様な形態をなしつつある。例えば、計算システムは、ハンドヘルド・デバイス、アプライアンス、ラップトップ・コンピューター、デスクトップ・コンピューター、メインフレーム、分散型計算システム、または従来では計算システムと見なされなかったデバイスであってもよい。この説明および特許請求の範囲において、「計算システム」という用語は、少なくとも１つの物理的および有形プロセッサー、ならびにプロセッサーによって実行することができるコンピューター実行可能命令を有することができる物理的および有形メモリーを含む任意のデバイスまたはシステム（またはその組み合わせ）を含むように、広く定められるものとする。メモリーは、任意の形態をなすことができ、計算システムの本質(nature)および形態に依存してもよい。計算システムは、ネットワーク環境にわたって分散されてもよく、複数の要素計算システムを含んでもよい。
【００１３】
[0022]  図１に示すように、計算システム１００は、その最も基本的な構成では、通例少なくとも１つの処理ユニット１０２とメモリー１０４とを含む。メモリー１０４は、物理システム・メモリーであるとしてもよく、揮発性、不揮発性、またはこれら２つの何らかの組み合わせであってもよい。また、「メモリー」という用語は、本明細書では、物理記憶媒体のような、不揮発性大容量ストレージを指すために使用されることもある。計算システムが分散型である場合、処理、メモリー、および／または記憶能力も分散することができる。本明細書において使用する場合、「実行可能モジュール」または「実行可能コンポーネント」という用語は、計算システムにおいて実行することができるソフトウェア・オブジェクト、ルーチン、またはメソッドを指すことができる。本明細書において説明する異なるコンポーネント、モジュール、エンジン、およびサービスが、計算システムにおいて実行するオブジェクトまたはプロセスとして実装されてもよい（例えば、別個のスレッドとして）。
【００１４】
[0023]  以下に続く説明では、１つ以上の計算システムによって実行されるアクトを参照しながら、実施形態について説明する。このようなアクトがソフトウェアで実装される場合、このアクトを実行する関連計算システムの１つ以上のプロセッサーは、コンピューター実行可能命令を実行したことに応答して、計算システムの動作を指令する。例えば、このようなコンピューター実行可能命令は、コンピューター・プログラム製品を形成する１つ以上のコンピューター読み取り可能媒体において具体化することができる。このような動作の一例は、データーの操作を伴う。コンピューター実行可能命令（および操作されたデーター）は、計算システム１００のメモリー１０４に格納することができる。また、計算システム１００は、通信チャネル１０８も内蔵することができる。通信チャネル１０８は、計算システム１００が、例えば、ネットワーク１１０を介して、他のメッセージ・プロセッサーと通信することを可能にする。
【００１５】
[0024]  本明細書において説明する実施形態は、特殊目的コンピューターまたは汎用コンピューターを含むまたは利用することができ、以下で更に詳しく説明するように、例えば、１つ以上のプロセッサーおよびシステム・メモリーのような、コンピューター・ハードウェアを含む。また、本明細書において説明する実施形態は、コンピューター実行可能命令および／またはデーター構造を搬送または格納するために物理コンピューター読み取り可能媒体または他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用コンピューター・システムまたは特殊目的コンピューター・システムによってアクセスすることができる任意の入手可能な媒体とすることができる。コンピューター実行可能命令を格納するコンピューター読み取り可能媒体は物理記憶媒体である。コンピューター実行可能命令を搬送するコンピューター読み取り可能媒体は送信媒体である。つまり、一例として、そして限定ではなく、本発明の実施形態は、少なくとも２つの全く異なる種類のコンピューター読み取り可能媒体、即ち、コンピューター記憶媒体および送信媒体を含むことができる。
【００１６】
[0025]  コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望のプログラム・コード手段をコンピューター実行可能命令の形態で、またはデーター構造を格納するために使用することができ、更に汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができる任意の他の有形媒体を含む。
【００１７】
[0026]  「ネットワーク」とは、コンピューター・システムおよび／またはモジュールおよび／または他の電子デバイス間における電子データーの移送を可能にする１つ以上のデーター・リンクとして定められる。情報がネットワークまたは他の通信接続（ハードワイヤ接続、ワイヤレス、あるいはハードワイヤ接続またはワイヤレスの組み合わせ）を介してコンピューターに転送または提供されるとき、コンピューターはこの接続を正しく送信媒体と見なす。送信媒体は、所望のプログラム・コード手段をコンピューター実行可能命令の形態でまたはデーター構造を搬送するために使用することができ、汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができるネットワークおよび／またはデーター・リンクを含むことができる。以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【００１８】
[0027]  更に、種々のコンピューター・システム・コンポーネントに到達したとき、コンピューター実行可能命令の形態であるプログラム・コード手段またはデーター構造を自動的に送信媒体からコンピューター記憶媒体に（またはその逆に）転送することができる。例えば、ネットワークまたはデーター・リンクを介して受信されたコンピューター実行可能命令またはデーター構造は、ネットワーク・インターフェース・モジュール（例えば、「ＮＩＣ」）内にあるＲＡＭにバッファし、次いで最終的にコンピューター・システムのＲＡＭ、および／またはコンピューター・システムにおいてそれよりも揮発性でないコンピューター記憶媒体に転送することができる。このように、コンピューター記憶媒体は、送信媒体も利用する（またはこれを主に使用するのであっても）コンピューター・システム・コンポーネントに含むことができることは理解されてしかるべきである。
【００１９】
[0028]  コンピューター実行可能命令は、例えば、命令およびデーターを含み、プロセッサーにおいて実行されると、汎用コンピューター、特殊目的コンピューター、または特殊目的処理デバイスに、一定の機能または機能の集合を実行させる。コンピューター実行可能命令は、例えば、バイナリー、アセンブリー言語のような中間フォーマット命令、またはソース・コードであってもよい。本主題は、構造的特徴および／または方法論的アクトに特定の文言で説明されてきたが、添付する特許請求の範囲において定められる主題は、以上で説明した特徴やアクトに必ずしも限定されないことは理解されよう。逆に、以上で説明した特徴およびアクトは、特許請求の範囲を実現する形態例として開示したまでである。
【００２０】
[0029]  尚、本発明は、多くのタイプのコンピューター・システム構成を有するネットワーク計算環境においても実現できることは当業者には認められよう。コンピューター・システム構成には、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター、移動体電話機、ＰＤＡ、ページャ、ルーター、スイッチ等が含まれる。また、本発明は分散型システム環境においても実施することができ、ネットワークを介して（ハードワイヤ接続データー・リンク、ワイヤレス・データー・リンク、またはハードワイヤ接続およびワイヤレス・データー・リンクの組み合わせのいずれかによって）リンクされたローカルおよびリモート・コンピューター・システムの双方がタスクを実行する。分散型システム環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイス内に配置されてもよい。
【００２１】
[0030]  図２は、本明細書において説明する原理を採用することができるネットワーク例２００を示す。勿論、ネットワーク技術は、殆どあらゆるネットワーク・トポロジーを採用できるという特徴がある。したがって、本明細書において説明する原理は、ネットワーク例２００と同じトポロジーを有するネットワークには全く限定されず、ネットワーク・トポロジーには関係なく適用することができる。しかしながら、技術的原理を説明するために具体的な例を有することは有用であるので、ネットワーク２００を頻繁に例として引用する。
【００２２】
[0031]  ネットワーク例２００は、１４個のネットワーク・ノード２０１〜２１４を含む。これらのネットワーク・ノードは、４つのエンド・ノード２０１〜２０４（矩形の記号で表す）と、１０個の伝達ノード(transport node)２０５〜２１４（円の記号で表す）を含む。エンド・ノード２０１〜２０４は、伝達ノード２０５〜２１４のメッシュを介してメッセージを送ることによって、互いに通信することができる。
【００２３】
[0032]  メッシュは、通信リンクによって構成され、各ネットワーク・ノードが、通信リンク集合を介して少なくとも１つの他のネットワーク・ノードに結合され、各集合は１つの通信リンクを含む。例えば、ネットワーク２００は、通信リンク集合Ａ〜Ｖを含むことが示されている。各通信リンク集合Ａ〜Ｖは、１つまたは複数の、あるいはもっと多数の通信リンクを含むこともできる。
【００２４】
[0033]  「エンド・ノード」とは、通信通過ノード(transit node)ではなく、ネットワーク通信のエンドポイントとなるネットワーク・ノードである。例えば、図２において、ネットワーク・ノード２０１〜２０４がエンド・ノードであり、図２では矩形として記号で表されている。他のネットワーク・ノード２０５〜２１４は、図２では円として記号で表されている伝達ノード(transport node)である。
【００２５】
[0034]  本明細書において説明する原理にしたがって、エンド・ノードは、システムがネットワーク問題の根源を推定することを可能にするために、このシステムと協働アクションを実行する。具体的には、エンド・ノードはフロー情報を報告し、システムはこのフロー情報を使用してネットワーク問題の根源を推定する。
【００２６】
[0035]  図３は、エンド・ノードがネットワークにおけるフローに関して報告する方法３００のフローチャートを示す。図２を参照すると、方法３００は、ネットワークにおけるエンド・ノード２０１〜２０４の各々によって実行することができる。具体的には、エンド・ノードは少なくとも１つのフローの各々を監視する（アクト３０１）。監視したノードの各々について、エンドポイントはフロー情報を作る（アクト３０２）。フロー情報は、フローに関するエンドポイント情報を含み、更にフローに関する性能情報を含む。次いで、エンド・ノードは、作ったフロー情報、およびフロー情報が作られた少なくとも１つのフローについての付随性能情報を報告する（アクト３０３）。
【００２７】
[0036]  本明細書および特許請求の範囲において使用する場合、「フロー」とは、ネットワーク通信が同じ経路の連続通信リンクを辿って通過ノードのメッシュを通過する傾向があるという共通の特性を十分に有するネットワーク通信の集合である。したがって、フローは、経路に対応すると考えることができ、フローは、その経路を使用する傾向があるネットワーク通信を含む。
【００２８】
[0037]  図４は、エンド・ノードによって、監視した各フローについて作ることができるフロー情報４００の例を示す。フロー情報４００は、エンドポイント情報４０１と、性能情報４０２とを含む。
【００２９】
[0038]  エンドポイント情報４０１は、フローのエンドポイントを定める情報と、伝達ノード(transport node)を通って同じ経路を横断する傾向をネットワーク通信に持たせる、フローのネットワーク通信の特性を定める他の情報とを含む。例えば、一実施形態では、エンドポイント情報４０１は、フローに含まれるネットワーク通信のソース・エンド・ノードおよび宛先エンド・ノード双方についてのインターネット・プロトコル（ＩＰ）プロトコル・アドレスおよびＴＣＰポート情報を定める。
【００３０】
[0039]  性能情報４０２は、フローに関する任意の情報を含むことができ、この情報は、そのフローに対応する経路に問題があるか否か推論するために使用することができる。一例のみとして、性能情報４０２は、最近行われたネットワーク通信の再送信回数、再送信のレート、送信されたネットワーク通信が再送信されるに至った割合、同じネットワーク通信が送信を試行された最大回数、再送信されなければならなかったネットワーク通信が再送信されるに至った平均回数等のような、フローについての再送信統計を含むことができる。代わりにまたは加えて、性能情報４０２はフローについてのレイテンシー統計も含むことができる。例えば、レイテンシー統計は、ネットワーク通信が経路を横断するのに要した平均時間、ネットワーク通信が経路を横断するのに要した時間の標準偏差、ネットワーク通信が経路を横断するのに要した最大時間等の内任意の１つ以上を含むことができる。
【００３１】
[0040]  図５は、１つ以上のエンドポイントから報告されたフロー情報を使用して、ネットワーク問題の根源を識別するシステム５００を抽象的に示す。例えば、ネットワークにおける複数のエンドポイントの各々が、１つまたは恐らくは複数のフローについてのフロー情報をシステム５００に報告するとしてもよい。次いで、これによって、システム５００はフロー毎に経路を識別または推定し、それぞれのフロー情報を使用して問題を有する経路を識別し、これらの経路間における共通のネットワーク・エンティティを識別することを可能にするのでもよい。更に、システム５００は、問題があるフロー間で共通するネットワーク・エンティティに現れるあらゆる問題を軽減しようとすることもできる。
【００３２】
[0041]  システム５００は、ネットワークにおけるネットワーク・ノードの各々と通信することができる通信コンポーネント５０１を含む。例えば、図２のネットワーク２００では、通信コンポーネント５０１は、ネットワーク・ノード２０１〜２１４の各々と通信することができる。一例として、通信コンポーネント５０１は、エンド・ノードの各々が方法３００を実行したことに応答して、エンド・ノード２０１〜２０４の各々からフロー情報を受信するとしてもよい。
【００３３】
[0042]  また、システム５００は、経路推定コンポーネント５０２も含む。経路推定コンポーネント５０２は、フロー情報を使用して、フローのネットワーク・トラフィックがそのネットワークを通過するときに辿りそうな経路を推定するように構成される。経路推定コンポーネント５０２は、この推定を、システム５００によって受信されるフロー情報の全てまで、各々について実行することができる。これを行うために、経路推定コンポーネント５０２は、通信コンポーネント５０１を使用してネットワーク・ノードと通信し、ネットワーク・ノードが所与のフローのトラフィックの経路をどのように決定するか調べることができる。これをどのように実行すればよいかについて、その例を以下で更に説明する。
【００３４】
[0043]  また、システム５００は候補問題検出コンポーネント５０３も含む。候補問題検出コンポーネント５０３は、フロー情報からの性能情報を使用して、性能の問題を明らかに伝えているフローについて推定された経路間で共通する少なくとも１つの候補問題ネットワーク・エンティティを識別するように構成される。このようにするために、候補問題検出コンポーネントは、１つ以上のフローについてのフロー情報４００からの性能情報４０２にアクセスし、更に経路推定コンポーネント４０２からフロー毎に推定された経路にもアクセスする。
【００３５】
[0044]  また、システム５００は軽減コンポーネント５０４も含むことができる。軽減コンポーネント５０４は、候補問題検出コンポーネント５０３からの候補ネットワーク・エンティティ識別を使用して、それに応じて問題を軽減するように構成される。例えば、問題ネットワーク・エンティティが通過ノードである場合、軽減コンポーネント５０４は近隣の通過ノードがこの問題の通過ノードを使用しないように、または問題の通過ノードを通過して経路が決められているフローの数を少なくとも減らすように構成することができる。問題ネットワーク・エンティティが通信リンクである場合、軽減コンポーネント５０３はその通信リンクの各端部における２つの通過ノードを、問題の通信リンクの使用を減らすまたは止めるように構成することができる。また、軽減コンポーネントは、１つ以上の他のコンポーネントおよび／またはユーザに問題を知らせる、軽減動作(activity)をスケジューリングする等を含む、他の補正アクションも実行することができる。
【００３６】
[0045]  システム５００は、図１の計算システム１００について先に説明したように構成し、動作することができる。したがって、システム５００は図１の計算システム１００の例を表す。更に、通信モジュール５０１、経路推定コンポーネント５０２、候補問題検出コンポーネント５０３、および軽減コンポーネント５０４は、各々、この計算システムにおいて実行するモジュールであってもよい。代わりにまたは加えて、これらのモジュールおよびコンポーネント５０１〜５０４の各々は、分散型環境における別個の計算システムであってもよい。
【００３７】
[0046]  図５における残りのフローについて、図６に関して説明する。図６は、ネットワーク問題に対して根源を識別し、ネットワーク問題を軽減することが可能な方法６００のフローチャートを示す。図６の方法６００は、図２のネットワーク２００における問題検出に関して、図５のシステム５００を使用して実行することができるので、ここでは方法６００を図６ならびに図２および図５を頻繁に参照しながら説明する。
【００３８】
[0047]  方法６００にしたがって、本システムはネットワークにおけるエンド・ノードからフロー情報を受信する（アクト６０１）。例えば、図５の通信モジュール５０１がエンド・ノードの内１つ以上からインターフェースを介してこのフロー情報を受信することができる（矢印５１１によって表される）。一例として、通信モジュール５０１が図２のネットワーク２００におけるエンド・ノード２０１、２０２、および２０４の各々からフロー情報を受信するとしてもよい。このシナリオでは、エンド・ノード２０３はフロー情報を報告できない、したがって報告しないと仮定する。
【００３９】
[0048]  次いで、本システムはフロー情報が提供された各フローに関連する経路を推定する（アクト６０２）。例えば、図５において、経路推定コンポーネント５０２が、通信モジュール５０１から受信した（矢印５１２を通って）フロー情報を使用してこの推定を実行するとしてもよい。
【００４０】
[0049]  この推定がどのように行われるかの例について、これより、具体的な例に関して説明する。フロー情報が報告された時点において、フロー情報自体は、そのフローの対応するネットワーク通信が通る経路を識別しない。しかしながら、経路推定コンポーネント５０２は、それが評価しているネットワーク（例えば、図２のネットワーク２００）のネットワーク・トポロジーの知識を有し、更にフロー情報内に含まれるエンドポイント情報に基づいて、そのフローのソースおよび宛先エンド・ノードも知っている。
【００４１】
[0050]  この例において、ソース・エンドポイントがエンド・ノード２０１であり、宛先エンドポイントがエンド・ノード２０２であると仮定する。したがって、経路推定コンポーネント５０２は、一度に１つの通過ノードに問いあわせて、そのフローに属する通信の経路を決定する次のノードはどれか、その通過ノードに尋ねることができる。例えば、この問いあわせ（矢印５１３によって表される）は、通信モジュール５０１を使用してそれぞれの通過ノードに伝わり、一方、応答は、同様に矢印５１２によって表されるように、通信モジュール５０１から受信される。
【００４２】
[0051]  例えば、ソース・エンドポイントがエンド・ノード２０１であり、宛先エンドポイントがエンド・ノード２０２であるフローのコンテキストでは、通過ノード２０５に最初に問いあわせる。特性を定めるフローが通過ノード２０５に供給され、これらの特性を有するネットワーク通信をどこに、そしてどのリンクを介して、転送するか尋ねられる。通過ノードが、この通過ノード２０７が次の通過ノードであると応答し、通信リンク集合Ｃの内特定のリンクを識別したと仮定する。次いで、通過ノード２０７に、同じフロー・パラメータで問いあわせる。通過ノード２０７が、通過ノード２０８が次の通過ノードであると応答し、通信リンク集合Ｆの内特定のリンクを識別したと仮定する。次いで、通過ノード２０８に、同じフロー・パラメータで問いあわせる。通過ノード２０８が、通過ノード２１１が次の通過ノードであると応答し、通信リンク集合Ｏの内特定のリンクを識別したと仮定する。通過ノード２１１に同じフロー・パラメータで問いあわせ、通過ノード２１１は、通信リンク集合Ｑの内どの通信リンクを使用して、このフローのメッセージをエンド・ノード２０２に送信するか識別することによって応答する。
【００４３】
[0052]  この方法は、フロー毎に経路（識別されたノードおよびリンクのシーケンスを表す）を推定するために使用することができる。尚、この推定に完全な確実性は必要とされないことを注記しておく。１つのフローに対して複数の可能な経路があり、各々が推定された発生確率(probability of occurring)を有するのであってもよい。候補問題検出コンポーネント５０３は、情報理論における確率モデルを扱い、経路推定が確定的でなくてもまたは低い確率が関連付けられても、恐らくは非常に高いレベルの確率まで候補問題ネットワーク・コンポーネントを推定することができる。
【００４４】
[0053]  次いで、システムは、経路推定を使用して、少なくとも１つの候補問題ネットワーク・エンティティを識別する（アクト６０３）。例えば、図５において、候補問題検出コンポーネント５０３は、フローについて推定された経路を受信する（矢印５１４によって表されるように）。また、候補問題検出コンポーネントは、フロー毎の性能情報も、通信モジュール５０１から直接、または恐らくは他のコンポーネント（経路推定コンポーネント５０２のような）を介して間接的に受信する。
【００４５】
[0054]  候補問題検出コンポーネント５０３は、問題を有するフローを識別し、対応するフローにアクセスし、これらの経路間で共通するネットワーク・エンティティを識別することができる。次いで、これらの共通するネットワーク・エンティティは候補問題ネットワーク・エンティティとなる。これより図７および図８に関して、様々な例を示す。
【００４６】
[0055]  図７は、図２のネットワーク２００を示すが、ここでは、性能が低いフローの経路が重ね合わされている。この場合、４つの問題経路７０１〜７０４が発見されている。経路７０１〜７０４の全ての間で共通する１つのネットワーク・エンティティは、通信リンク集合Ｇである。実際、通信リンク集合Ｇには１つしか通信リンクがなく、これに障害があることもあり得る。したがって、４つの問題経路７０１〜７０４は、これらが全て通信リンク集合Ｇ内でその特定の通信リンクを使用することを示すとしてもよい。このように、通信リンク集合Ｇにおけるその通信リンクに障害があると推定することができる。問題のフローに関して多くのデーターが収集される程、増々確実に推定することが可能になる。
【００４７】
[0056]  再度図５を参照すると、通信リンクの識別が軽減コンポーネント５０４に送られる（矢印５１６によって表されるように）。次いで、軽減コンポーネント５０４は、通信モジュール５０１がコマンドをネットワーク２００内のしかるべき通過ノードに送ることができるように、軽減コマンドを送ることによって（矢印５１７によって表されるように）、問題を軽減しようとすることができる。例えば、通信リンク集合Ｇにおける障害通信リンクの場合、軽減コンポーネント５０４は、通過ノード２０７に、その障害通信リンクを介した通過ノード２０９へのフローを減らして、ネットワーク・トラフィックの経路を決定する(route)ように命令するのでもよく、あるいは通過ノード２０７にこの障害通信リンクを全く使用しないように命令するのであってもよい。同様に、軽減コマンド５０４は、通過ノード２０９に、その障害通信リンクを介して通過ノード２０７へのフローを減らして、ネットワーク・トラフィックの経路を決定するように命令するのでもよく、あるいは通過ノード２０９にこの障害通信リンクを全く使用しないように命令するのであってもよい。
【００４８】
[0057]  既に述べたように、所与のフローの経路が、絶対的な確実さで検出できない場合もあり得る。その場合、確率モデルを使用して、更に高い確実度で、問題ネットワーク・エンティティを識別することもできる。例えば、図７の例では、８つの性能が低い方のフローに関連する２５通りの可能な経路があると仮定する（一部は使用確率が低い）。２５通りの可能な経路全てに関連する１つの共通ネットワーク・エンティティがないこともあり得る。しかしながら、可能な経路の内２３本が通信リンク集合内でその同じ通信リンクを共有し、２本の可能な経路だけがその通信リンクを使用しなかったと仮定する（比較的低い使用確率）。これらの状況下でも、通信リンク集合Ｇ内におけるその通信リンクを、障害ネットワーク・エンティティであるとして（殆ど確実に）推定することができる。また、通信システムは、ネットワーク・ノードと（または他の監視システムとでも）相互作用して、リンク問題(link issue)の確率を高めるまたは低くする可能性がある追加の情報を収集することも可能である。例えば、リンクがある種のエラー（破損した入力パケット、大量のログ・メッセージ、リンク・ステータスのバウンス(bouncing)等）を示す場合、これは確率を測定することに非常に関連がある情報となる。
【００４９】
[0058]  図８は、図２のネットワーク２００を示すが、ここでは、性能が低いフローの経路が重ね合わされている。この場合、５通りの問題経路８０１〜８０５が発見されている。ここでは、障害経路の全ての間で共通すると思われる１つの通信リンク集合はない。代わりに、ここでは、障害経路の全ての間で共通すると思われる通過ノード全体がある。つまり、通過ノード２０８が候補問題ネットワーク・エンティティとして推定されるとしてもよい。通信システムは、ネットワーク・ノードと（他の監視システムとでも）相互作用して、この候補問題ネットワーク・エンティティに対する問題の確率を高めるまたは低くする可能性がある追加情報を収集することもできる。通過ノード２０８が問題を有する確率が高いことを確認した場合、軽減コンポーネントは、近隣通過ノード２０５、２０７、２０９、２１１、および２１２の内１つ以上の各々に、これらを通過ノード２０８にリンクする通信リンク集合をいずれも使用しないように命令することができる。
【００５０】
[0059]  ある場合には、複数の候補問題ネットワーク・エンティティが識別されることもあり得る。例えば、恐らく、図７のフロー７０１〜７０４の組み合わせ、およびフロー８０１〜８０５が障害があるとして識別される。その場合、通過ノード２０８および通信リンク集合Ｇの通信リンクが、障害があるとして識別されるとしてもよい。次いで、軽減コンポーネントは、これら候補問題ネットワーク・エンティティのいずれかまたは双方に対する信頼(reliance)を低下または消滅させてもよい。
【００５１】
[0060]  したがって、本明細書において説明した原理は、候補問題ネットワーク・エンティティの検出を自動化し、その候補問題ネットワーク・エンティティの信頼を低下させる(mitigate)効果的なメカニズムを提供する。このように、本明細書ではネットワーク問題の修復(remediation)の自動検出について説明した。
【００５２】
[0061]  本発明は、その主旨や本質的な特性から逸脱することなく、他の特定形態で具体化することもできる。説明した実施形態は、あらゆる観点において、限定的ではなく例示的であると解釈されるものとする。したがって、本発明の範囲は、以上の説明でははく、添付する特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲に該当する全ての変更は、それらの範囲に包含されるものとする。
【図１】
0006705815.tif 000002
【図２】
0006705815.tif 000003
【図３】
0006705815.tif 000004
【図４】
0006705815.tif 000005
【図５】
0006705815.tif 000006
【図６】
0006705815.tif 000007
【図７】
0006705815.tif 000008
【図８】
0006705815.tif 000009