(57)【要約】  複数の経路制御ノードを具備するパケット・ベースの相互接続網において、ネットワーク・リソースに関する情報を決定する方法が提供され、当該方法は、前記相互接続網に接続された複数のエンド・ユーザ端末の各々に向けてユーザ・ソフトウェアを配布するステップであって、前記ネットワーク・データの収集機能の他に、ユーザ向けの主たる機能を有している、ステップと、前記ユーザ・ソフトウェアと関連して、前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードを配布するステップであって、前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過する、ステップと、前記複数のエンド・ユーザ端末の上で前記副次的なプログラム・コードにより実行される前記プロービングの結果として得られるデータを受信するステップであって、前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含む、ステップと、前記受信したデータに基づいてネットワーク・リソースの推定結果を決定するステップとを具備する。【選択図】図１
2014513501.tif 000002
【特許請求の範囲】
【請求項１】
複数の経路制御ノードを具備するパケット・ベースの相互接続網において、ネットワーク・リソースに関する情報を決定する方法であって：
前記相互接続網に接続された複数のエンド・ユーザ端末の各々に向けてユーザ・ソフトウェアを配布するステップと、
前記ユーザ・ソフトウェアと関連して、前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、前記相互接続網内において、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードを配布するステップであって、前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過する、ステップと、
前記複数のエンド・ユーザ端末の上で前記副次的なプログラム・コードにより実行される前記プロービングの結果として得られるデータを受信するステップであって、前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含む、ステップと、
前記受信したデータに基づいてネットワーク・リソースの推定結果を決定するステップと、
を具備し、前記ユーザ・ソフトウェアは、前記ネットワーク・データの収集機能とは別の主たるユーザ向け機能を有することを特徴とする方法。
【請求項２】
前記ユーザ・ソフトウェアおよびこれと関連する前記副次的なプログラム・コードを前記配布するステップは、ユーザ・アプリケーションのそれぞれのインスタンスを前記複数のエンド・ユーザ端末に向けて配布する動作を具備し、
前記ユーザ・アプリケーションは、前記ユーザ・ソフトウェアと前記副次的なプログラム・コードを具備しており、
少なくとも、前記副次的なプログラム・コードの実行は、前記ユーザ・ソフトウェアの実行に依存してなされるという意味において、前記ユーザ・ソフトウェアと前記副次的なプログラム・コードは、同一のユーザ・アプリケーションを構成する部分である、
ことを特徴とする、請求項１記載の方法。
【請求項３】
前記副次的なプログラム・コードは、前記ユーザ・アプリケーションが起動された際に、前記ユーザ・ソフトウェアと一緒に自動的に実行されるように構成設定されていることを特徴とする、請求項２記載の方法。
【請求項４】
前記副次的なプログラム・コードは、前記ユーザ・ソフトウェアと同一のダウンロード／インストール実行手順の一部として配布されることを特徴とする、請求項２または請求項３のいずれか一方に記載された方法。
【請求項５】
前記ユーザ・ソフトウェアは、前記パケット・ベースの相互接続網を介したパケット・ベースの音声通話、ビデオ通話またはＩＭメッセージ交換の形での通信を実行するユーザ向けの主たる機能を有する通信ソフトウェアを具備していることを特徴とする、請求項１乃至請求項４の中のいずれか一項に記載された方法。
【請求項６】
前記ユーザ・アプリケーションは、前記通信ソフトウェアと前記副次的なプログラム・コードを具備する通信クライアント・アプリケーションを具備し、
前記通信ソフトウェアは、自身のそれぞれのエンド・ユーザ端末と宛先となる端末との間で、前記相互接続網内で第１の通信経路を経由して前記通信を実行するように構成され、前記副次的なプログラム・コードは、一つ以上の異なる第２の通信経路を経由してプロービング用のパケットを送信するように構成され、前記第１と第２の通信経路の各々は、複数の前記経路制御ノードを通過し、
前記決定するステップは、前記第１と第２の通信経路をそれぞれ経由して経験されるパケット配送特性の相違に基づいて、前記第１と第２の通信経路の少なくとも一方に沿って、ネットワーク・リソースに関する情報を決定する動作を具備する、
ことを特徴とする請求項２または請求項５のいずれか一方に記載された方法。
【請求項７】
各通信経路に沿ってある一つの経路制御ノードから次ホップ・ノードに向かうルーティング動作は、前記相互接続網内におけるより下位の階層のプロトコルによって決定され、
前記副次的なプログラム・コードは、より上位に位置するアプリケーション層においてプロービング用のパケットをルーティングすることによって、またはパケット中継動作を行う一つ以上のエンド・ユーザ端末のそれぞれの上で実行中の前記ユーザ・アプリケーションの更に一つ以上のインスタンスを介して、前記プロービング用のパケットを宛先となる端末に向かわせることによって、一つ以上の前記第２の通信経路を経由したルーティング動作を引き起こすように構成される、
ことを特徴とする請求項６記載の方法。
【請求項８】
前記プロービングは、ランダム化されたアルゴリズムに従って実行されることを特徴とする、請求項１乃至請求項７の中のいずれか一項に記載された方法。
【請求項９】
複数の経路制御ノードを具備するパケット・ベースの相互接続網に接続されたエンド・ユーザ端末の上で使用するためのユーザ・アプリケーションであって、コンピュータ読み取り可能な記録媒体の上に具現化され：
ユーザ・ソフトウェアと、
前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードと、
を具備し、
前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過し、
前記副次的なプログラム・コードは、前記プロービングの結果として得られるデータを報告するようにさらに構成され、前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含み、前記報告された前記データに基づいて、ネットワーク・リソースの推定結果が決定されることを可能にすることを特徴とし、
前記ユーザ・ソフトウェアは、前記ネットワーク・データの収集機能とは別の主たるユーザ向け機能を有することを特徴とするユーザ・アプリケーション。
【請求項１０】
複数の経路制御ノードを具備するパケット・ベースの相互接続網において、ネットワーク・リソースに関する情報を決定するシステムであって：
前記相互接続網に接続された複数のエンド・ユーザ端末の各々に向けてユーザ・ソフトウェアを配布するためのネットワーク装置を具備し、
前記ユーザ・ソフトウェアと関連して、前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、前記相互接続網内において、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードを配布するように前記ネットワーク装置は構成され、
前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過することを特徴とし、
当該システムは、前記複数のエンド・ユーザ端末の上で前記副次的なプログラム・コードによって実行される前記プロービングの結果として得られるデータを受信し、前記受信したデータに基づいてネットワーク・リソースに関する推定結果を決定するように構成されたデータ処理設備をさらに具備し、
前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含んでいることを特徴とし、前記ユーザ・ソフトウェアは、前記ネットワーク・データの収集機能とは別の主たるユーザ向け機能を有することを特徴とする、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等のようなパケットに基づく相互接続網の上で、ネットワーク・リソースをマッピングする技術に関する。
【背景技術】
【０００２】
図１はインターネット等のような相互接続網（または相互接続網の一部分）の高度に図式化された表現である。相互接続網は、２つ以上の運用管理者によって運用される複数のネットワークが相互に接続され、相互接続ネットワーク化のための共通のプロトコルに従って通信するように構成されたネットワーク構成である。相互接続網は、典型的には、複数の都市や複数の国々を接続しており、その本来的性質においてある程度までは一般的に非階層的な構造である。インターネットは、これまでにおいて最も広く普及し、最も広く利用されてきた相互接続網の例であり、ＩＰ（Internet  Protocol）プロトコルまたはＩＰプロトコル・ファミリ（Internet  Protocol  Suite）を使用する相互接続網として定義される。
【０００３】
図１に示されるとおり、デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット型端末またはモバイル・ハンドセット等のようなエンド・ユーザ端末の多数の集まり２ａ、２ｂ、２ｃ、…、２Ψの中の各々は、少なくとも一つのネットワーク通信サービス事業者に属する少なくとも一つの経路制御ノード４ａ、４ｂ、…、４ｗにそれぞれ接続されている。同様に、サーバの多数の集まり３ａ、…、３ｄの中の各々も、少なくとも一つの経路制御ノード４に接続されている。各接続は、有線および／または無線による一つ以上の接続区間を具備しており、当該接続区間には、例えば、固定電話網に対する有線モデムによる接続、有線のローカルエリア網（ＬＡＮ）５、および／または無線ルータを介した無線接続、または移動電話網でのパケット・ベースの通信サービスを介した無線接続などが含まれる。例示的な目的のために、図１には一つだけのローカルエリア網（ＬＡＮ）５が図示されているが、一般的には、ユーザ端末２とそのすぐ上流に位置するノード４との間にはより多くの接続がＬＡＮ接続によって存在することが可能である。さらに、無線ルータを介した接続の場合には、図１には明示的に示されていないが、小規模な無線ローカルエリア網（ＷＬＡＮ）を介した接続を効果的に形成することが可能である。
【０００４】
経路制御ノード４の各々は、少なくとも一つの隣接する他の経路制御ノード４に対して直に接続されており、その結果、通信サービス事業者に属するノード４の各々は、全て互いに少なくとも代理接続手段によって相互接続される。ここでの説明において、ノード間が直に接続されていることは、相互接続網のレベルにおいてルーティング・ホップ数を一つ分だけ要することを意味しており、他方、代理接続手段により接続されていることは、ルーティング・ホップ数を２つ分以上必要とすることを意味する。
【０００５】
動作中において、エンド・ユーザ端末２は他のエンド・ユーザ端末２またはサーバ３を宛先とするデータのパケットを生成し、あるいはその逆もまた同様であり、当該パケットの宛先は、相互接続網におけるネットワーク・アドレスを介して識別され、そのようなネットワーク・アドレスの具体例としては、各パケットのヘッダー部分の中に含まれているＩＰアドレス等がある。続いて、エンド・ユーザ端末２は、自身と直に接続される経路制御ノードに向けて上流方向に当該パケットを送信し、当該経路制御ノードは、ユーザ端末２のローカルな通信サービス事業者に属す経路制御ノードである。経路制御ノード４の各々は、ユーザ端末２、サーバ３または経路制御ノードから受信した入来パケットの相互接続網内アドレス（例えば、ＩＰアドレス）を検査し、当該アドレスに基づいて、引き続いて次ホップの経路制御ノードに向けて、または宛先となるユーザ端末２またはサーバに向けて当該パケットを転送し、このようなパケット転送は、パケットの宛先から相対的に見た相互接続網内の現在の経路制御ノードの位置に応じて適切に判断される。その結果、当該パケットは、送信元となるユーザ端末２またはサーバ３から宛先となるユーザ端末２またはサーバ３に対して一連の複数の経路制御ノードを経由してルーティングされる。
【０００６】
図中において４ａ〜４ｅ、４ｉ〜４ｌおよび４ｐ〜４ｓと表記されているノード等のような幾つかの経路制御ノードは、（例えば、特定の都市内の）局所的な通信トラフィックを取り扱うことが可能であり、（例えば、同じ都市内の）一つ以上の他のローカルな経路制御ノードとローカルな通信回線を介して直に接続されている。図中において４ｆ、４ｇ、４ｍ、４ｎ、４ｔおよび４ｕと表記されているノード等のような幾つかの経路制御ノードは、（例えば、複数の都市の間または複数の州の間を跨る）国内通信トラフィックを取り扱うことが可能であり、（例えば、他の都市や他の州における）一つ以上の他の国内経路制御ノードと国内通信回線を介して直に接続されている。図中において４ｈ、４ｏ、および４ｗと表記されているノード等のような幾つかの経路制御ノードは、国際的な通信トラフィックを取り扱うことが可能であり、他の国々における他の国際的な経路制御ノードと（例えば、海外との間の回線のような）国際的な通信回線を介して直に接続されている。加えて、ローカルな経路制御ノードの各々は、続いてさらに一つ以上の国内経路制御ノード又は国際的な経路制御ノードと直に接続することが可能であり、および／または国内経路制御ノードの各々は、一つ以上のローカルな経路制御ノードと一つ以上の国際的な経路制御ノードとの間を接続することが可能である。しかしながら、図１に図示された接続は、単に例示的な目的のためだけのものであり、一般的には、上述したものよりも複雑なネットワーク構成が展開される可能性が高いことが理解されよう。実際に、インターネット等のような相互接続網は、地理的な相互接続の様々な階層において、図１において図式的に示したものよりも数多くのユーザ端末２、サーバ３および経路制御ノード４を具備している可能性が高く、複数の経路制御ノード４は、「ローカルなノード」、「国内ノード」および「国際的なノード」から成る固定された階層レベルに必ずしも分割されるとは限らない（例えば、国際的な経路制御ノードはエンド・ユーザ端末または一つ以上のサーバに直に接続することもまた可能かもしれない）。
【０００７】
上述したとおり、経路制御ノード４は、ネットワーク通信サービス事業者（必ずしも、これら全てがエンド・ユーザに対して直接的にサービス提供するものであるとは限らない）の形態を採る複数の異なるネットワーク運用管理者によって運用管理される複数のノードを含んでおり、異なるネットワーク通信サービス事業者同士は、お互いの間で、経路制御に関する通信規約上の相互的な合意を有している。例えば、同一の都市や同一の州の中においてネットワーク運用管理をしている２つのネットワーク通信サービス事業者、またはそれぞれ異なる国においてネットワーク運用管理をしている２つのネットワーク通信サービス事業者は、お互いの顧客の通信トラフィックを相互間でルーティングするために、通信規約上の相互的な合意を有することが可能である。
【０００８】
しかしながら、上述したようなネットワーク構成においては、ネットワーク・リソースに関する情報を収集することが困難であるという問題がある。時間の経過に伴って、任意の特定の経路制御ノードであるノード４は、トラフィック量の時間変化を経験する。さらに、経路制御ノード４が異なれば、それぞれ異なる時刻において経験するトラフィック量もそれぞれ異なり、および／または経路制御ノード４が異なれば、それぞれ異なる単位時間当たりのトラフィック量をルーティング処理するために、各ノードが有する容量もそれぞれ異なる（例えば、各ノード毎にトラフィック・キューの長さやプロセッサ処理能力がそれぞれ異なる）。ネットワーク・リソースにおける上述したような多様性またはその他の多様性は、例えば、どこか特定の経路制御ノード４の上でのルーティング処理上のボトルネックに起因する等して、宛先端末である端末２やサーバ３において経験されるパケット損失、レイテンシ（通信遅延）またはビットレートの低下などのようなそれぞれ異なる望ましくない性質を結果として生じ得る。
【０００９】
例えば、ネットワーク計画上の目的などのために、上述したような情報を知ることは有益であると考えられるが、インターネットのような大規模な相互接続網が本質的に分散された構造であり、制御が集中化されておらず、多数の異なる通信サービス事業者によって管理されているという性質は、これを非常に困難な作業にしてしまう。
【００１０】
幾つかのインターネット・サービス・プロバイダ（ＩＳＰ）は、都市内にトラフィック監視設備を設置しているが、これは、現実の個人に向けたトラフィック配送に関して問題となる情報（例えば、エンド・ユーザが経験するパケット損失やレイテンシ等に関する情報）を提供することが出来ない。
【００１１】
幾つかのインターネット・サービス・プロバイダ（ＩＳＰ）はさらに、ネットワーク性能を解析するのを支援することが可能となるように、ユーザのエンド・ユーザ端末２の上でユーザが実行すべき専用のアプリケーションをダウンロードするようにユーザに依頼する。しかしながら、それらのアプリケーションの機能は、単一のＩＳＰに属するネットワーク内においてリソースに関するデータを収集することだけに限定され、相互接続網全体を見渡すようなより広範囲な俯瞰図を提供することは出来ない。
【００１２】
そこで、インターネットのようなパケット・ベースの相互接続網においてネットワーク・リソースに関する情報を収集するための改善されたシステム、方法、および／またはソフトウェア・ツールを提供することが望まれている。
【発明の概要】
【００１３】
本発明に係る一つの実施態様に従って、複数の経路制御ノードを具備するパケット・ベースの相互接続網において、ネットワーク・リソースに関する情報を決定する方法が提供され、当該方法は、前記相互接続網に接続された複数のエンド・ユーザ端末の各々に向けてユーザ・ソフトウェアを配布するステップであって、前記ネットワーク・データの収集機能の他に、ユーザ向けの主たる機能を有している、ステップと、前記ユーザ・ソフトウェアと関連して、前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードを配布するステップであって、前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過する、ステップと、前記複数のエンド・ユーザ端末の上で前記副次的なプログラム・コードにより実行される前記プロービングの結果として得られるデータを受信するステップであって、前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含む、ステップと、前記受信したデータに基づいてネットワーク・リソースの推定結果を決定するステップとを具備する。
【００１４】
例えば、Ｖｏｉｃｅ−ｏｖｅｒ−ＩＰ（ＶｏＩＰ）やＷｅｂブラウザ・ソフトウェア等のようなユーザ・ソフトウェアの更なる既存の構成アイテムと関連して、副次的なプログラム・コードの形で、ユーザに対してネットワーク・リソースの監視ツールを配布することによって、ユーザが属するＩＳＰとは無関係に、本発明は、既存の大規模なユーザ基盤を効果的に活用することが可能であり、それにより、本発明は、様々な異なるネットワーク通信サービス事業者に属するノードを介して前記相互接続網にアクセスするユーザからデータを収集する。その結果、本発明は、単一の地理的領域や単一の通信サービス事業者に属するノードだけに限定されずに、相互接続網のより広範な領域にわたって展開されるべきネットワーク接続トポロジのより大規模な俯瞰図を実現可能にする。すなわち、互いに異なる地理的場所にある複数の異なる通信サービス事業者（例えば、ＩＳＰ）に属する通信設備を跨る複数の通信経路をプロービングすることにより、インターネットやその他の相互接続網の接続トポロジに関するより良好な全体像モデルを決定することが可能となるのである。
【００１５】
好適には、前記ユーザ・ソフトウェアおよびこれと関連する副次的なプログラム・コードの前記配布は、ユーザ・アプリケーションのそれぞれのインスタンスを前記複数のエンド・ユーザ端末に向けて配布する動作を具備し、前記ユーザ・アプリケーションは、前記ユーザ・ソフトウェアと前記副次的なプログラム・コードを具備しており、少なくとも、前記副次的なプログラム・コードの実行は、前記ユーザ・ソフトウェアの実行に依存してなされるという意味において、前記ユーザ・ソフトウェアと前記副次的なプログラム・コードは、同一のユーザ・アプリケーションを構成する部分である。
【００１６】
前記副次的なプログラム・コードは、前記ユーザ・アプリケーションが起動された際に、前記ユーザ・ソフトウェアと共に、自動的に実行されるように構成されることが可能である。
【００１７】
前記副次的なプログラム・コードは、前記ユーザ・ソフトウェアの実行期間中において前記ユーザ・ソフトウェアによって提示された選択メニューをユーザが選択した際に、実行されるように構成されることが可能である。
【００１８】
前記副次的なプログラム・コードは、前記ユーザ・ソフトウェアと同様なダウンロード手順およびインストール手順の一部として配布されることが可能である。
【００１９】
その結果、本発明に係る好適な実施例においては、現状のＩＳＰが自身の顧客に対してするように求めているのと同様な方法で別個のスタンドアロン型のアプリケーションを手動操作によりダウンロードして操作しなければならないことにより、ユーザが無用の不便を感じること無しに、前記ユーザ端末は、データの収集動作に自動的に参加するようになる。ユーザがアプリケーションを使用しようとする表向きの主たる目的（例えば、ＶｏＩＰ通話やＷｅｂのブラウジングなど）である他の目的のために前記ユーザ・アプリケーションをユーザが開いている最中に、副次的なプログラム・コードの代わりに、リソース監視動作のためのプログラム・コードがバックグラウンドで実行される。このような方法でユーザの負担を軽減することは、ユーザがリソース監視ツールを取得するのを促すのに特に効果的であり、その結果、前記相互接続網の広範な領域にわたる大規模なユーザ基盤を活用することが可能となる。
【００２０】
本発明に係る更なる実施例においては、前記プロービングする動作は、ランダム化されたる後リズムに従って実行されることが可能である。
【００２１】
本発明に係る特に好適な実施例においては、前記ユーザ・ソフトウェアは、パケット・ベースの相互接続網を介したパケット・ベースの音声通話、ビデオ通話またはＩＭメッセージ交換の形での通信を実行するユーザ向けの主たる機能を有する通信ソフトウェアを具備している。
【００２２】
前記ユーザ・アプリケーションは、前記通信ソフトウェアと前記副次的なプログラム・コードを具備する通信クライアント・アプリケーションを具備している。
【００２３】
前記通信ソフトウェアは、自身のそれぞれのエンド・ユーザ端末と宛先となる端末との間で、前記相互接続網内で第１の通信経路を経由して前記通信を実行するように構成され、前記副次的なプログラム・コードは、一つ以上の異なる第２の通信経路を経由してプロービング用のパケットを送信するように構成されることが可能であり、第１と第２の通信経路は、複数の前記経路制御ノードを通過し、前記決定するステップは、第１と第２の通信経路をそれぞれ経由して経験されるパケット配送特性の相違に基づいて、第１と第２の通信経路の少なくとも一方に沿って、ネットワーク・リソースに関する情報を決定する動作を具備することが可能である。
【００２４】
前記パケット配送特性は、レイテンシ、ジッタ、パケット損失、誤り率、およびビットレートの中の少なくとも一つを具備することが可能である。
【００２５】
各通信経路に沿ってある一つの経路制御ノードから次ホップ・ノードに向かうルーティング動作は、相互接続網内におけるより下位のレイヤー階層のプロトコルによって決定され、前記副次的なプログラム・コードは、より上位のアプリケーション層においてプロービング用のパケットをルーティングすることによって、またはパケット中継動作を行う一つ以上のエンド・ユーザ端末のそれぞれの上で実行中の前記ユーザ・アプリケーションの更に一つ以上のインスタンスを介して、前記プロービング用のパケットを宛先となる端末に向かわせることによって、一つ以上の第２の通信経路を経由したルーティング動作を引き起こすように構成されることが可能である。
【００２６】
前記パケット中継動作を行うエンド・ユーザ端末は、上述した通信サービスの消費者である必要は無い。
【００２７】
前記副次的なプログラム・コードは、ネットワーク・リソースの前記決定の結果に応じて、前記パケット中継動作を行うエンド・ユーザ端末を経由した前記通信をリダイレクトするように構成されることが可能である。
【００２８】
前記副次的なプログラム・コードは、前記プロービングの結果として得られたデータをネットワーク・リソースに関する情報の前記決定を実行するデータ処理装置に報告するように構成されることが可能である。
【００２９】
前記データ処理装置は、前記リダイレクトを制御することが可能である。
【００３０】
以上のように、本発明に係る特に効果的な一つの実装においては、ネットワーク・リソースに関する情報は、前記相互接続網の接続トポロジをモデル化するだけでなく、アプリケーション層において通信ストリームを中継するためのサードパーティ中継機器を選択するためにも使用されることが可能である。前記中継動作を行う端末は、一般的には通信システムにおけるエンド・ユーザと成る場合も有り得るものの、前記中継動作を行う端末は、中継されるべき特定の通信ストリームの消費者である必要は無い。本発明に係る複数の実施例においては、この事は、以下のような状況において、特に有益な特徴となり得る。例えば、ＮＡＴやファイアーウォールの通過のために最も効率的な（例えば、レイテンシやパケット損失を減らす等のためにパケット配送特性の観点から効率的な）通信経路を見出す際、または前記通信ストリームに関する最も効率的な通信経路を単純に見出す際などである（例えば、ＩＰ層ルーティングなどのインターネットワーク層内ルーティングのみによって決定された通信経路は、ある一つの経路制御ノード４から次ホップ・ノードまでの次の直接接続を経由する直近の次ホップのみに関心を払い、その通信経路のさらに先で起こり得るボトルネックやその他の問題を考慮に入れないので、上記のように決定された通信経路は必ずしも最も効率的であるとは限らない）。
【００３１】
本発明に係る代替的な実施例においては、前記ユーザ・ソフトウェアは、Ｗｅｂブラウザ・ソフトウェアを具備する。
【００３２】
本発明に係る更なる実施態様に従って、複数の経路制御ノードを具備するパケット・ベースの相互接続網に接続されたエンド・ユーザ端末の上で使用するためのユーザ・アプリケーションが提供され、当該ユーザ・アプリケーションは、コンピュータ読み取り可能な記録媒体の上に具現化され、前記ネットワーク・データの収集機能の他に、ユーザ向けの主たる機能を有しているユーザ・ソフトウェアと、前記相互接続網の中をそれぞれのエンド・ユーザ端末から宛先となる端末へと向かう複数の異なる通信経路をプロービングすることによって、ネットワーク・リソースに関するデータの収集動作に参加するように構成された副次的なプログラム・コードと、を具備し、前記複数の異なる通信経路の各々は、複数の前記経路制御ノードを通過し、前記副次的なプログラム・コードは、前記プロービングの結果として得られるデータを報告するようにさらに構成され、前記プロービングの結果として得られる前記データは、複数の異なるネットワーク通信サービス事業者に属する前記経路制御ノードを通る通信経路から結果として得られるデータを含み、前記報告された前記データに基づいて、ネットワーク・リソースの推定結果が決定されることを可能にすることを特徴とする。
【００３３】
本発明に係る幾つかの実施例においては、前記ユーザ・アプリケーションは、本発明に関して上述した方法の特徴のいずれかに従ってさらに構成設定されることが可能である。本発明をより良く理解するための、そして本発明がどのように実施可能であるかを示すための例示的な手段として、本発明に係る実施例は、本明細書に添付した以下の図面を参照しながら後述される。
【図面の簡単な説明】
【００３４】
【図１】インターネットのような相互接続網の図式化された表現
【図２】ユーザ・アプリケーションの概略的なブロック図
【図３】ユーザ・アプリケーションが備えるユーザ・インターフェースの概略的な図解
【図４】通信プロトコル階層の図式的表現
【図５】データ・パケットの図式的な表現
【発明を実施するための形態】
【００３５】
図２は、エンド・ユーザ・コンピュータ端末２の概略的なブロック図を図示し、当該エンド・ユーザ・コンピュータ端末２は、一つ以上の処理ユニットの形態をとる処理装置と、ＲＯＭ、ハードディスク・ドライブおよび／またはフラッシュ・メモリ等の不揮発性メモリの形態をとる電子的記憶媒体を具備している。当該エンド・ユーザ端末は、デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット型コンピュータ、スマートフォン等のようなモバイル・ハンドセット、セットトップ・ボックスを取り付けたテレビのような処理装置が組み込まれた家庭電化製品の何れかとすることが可能である。図１に示されたエンド・ユーザ端末２ａ、２ｂ、２ｃ、…、２Ψの各々は、上述したような種類の端末であっても良く、その他の種類の端末とすることも可能である。
【００３６】
エンド・ユーザ端末２の各々の記憶媒体は、各エンド・ユーザ端末内の処理装置の上で実行されるように構成されたオペレーティング・システム（ＯＳ）１０を格納している。上述した記憶媒体はさらに、ＶｏＩＰ（Voice-Over-IP）クライアントやインスタント・メッセージング（ＩＭ）クライアントの形態をとる通信クライアント・アプリケーション等のような多数のユーザ・アプリケーション、およびＷｅｂブラウザ、電子メール・クライアント、音楽プレーヤー等のような一つ以上のその他のアプリケーションをさらに格納している。ユーザ・アプリケーション１２および他のアプリケーション１８は、オペレーティング・システム１０の制御下において、上述した処理装置の上で実行されるようにさらに構成されている。
【００３７】
本発明に係る複数の実施例に従うならば、通信クライアント・アプリケーション１２は、主要部である通信ソフトウェア１４に加えて、副次的なプログラム・コード部分１６を具備している。主要部である通信ソフトウェア１４は、実行された際に、主要なユーザ向け機能（例えば、ＶｏＩＰ通話、ビデオ通話および／またはＩＭメッセージング等のような機能）を実行するように構成され、上述した主要なユーザ向け機能とは、ユーザがアプリケーション１２を実行しようとする本来の目的である主要な機能や用途である。しかしながら、副次的なプログラム・コード部分１６は、ネットワーク・リソースの監視活動に参加する動作を実行する追加の副次的な機能を提供し、そのような副次的な機能は、相互接続網内の様々な通信経路上をプロービングして、プロービングされた通信経路上で経験されるレイテンシ、パケット損失率またはビットレート等のような上記プロービングの結果を報告することによって実現される。
【００３８】
ユーザの日常的な視点から見ると、ユーザは、表向きは、通常の通信クライアントを起動し、図３において図式的に示すような通常の通信クライアントが提供するのと同様であるが実際には通信ソフトウェア１４により表示されている従来型のフロント・エンド・ユーザ・インターフェースを見ている必要があるだけである。しかしながら、ユーザ・アプリケーション１２が実行中の間は、主要な機能を実行する通信ソフトウェア１４に加えて、副次的なプログラム・コードであるリソース監視実行コード１６もまた、（ユーザからは見えない形で、または最小限にしか見えない形で）バックグラウンドで実行されることとなる。当該通信クライアント・アプリケーションをインストールしたりアップデートしたりする際に、（例えば、ライセンス契約の画面を介するなどして）ユーザが上述した副次的なプログラム・コードの存在に気付くようにすることも可能である。本発明に係る複数の実施例においては、通信クライアントのユーザ・インターフェースはさらに、当該副次的なプログラム・コードにより実行されるリソース監視動作を有効化したり無効化したりするための選択肢をユーザに提供することも可能であり、このような選択肢の提供は、当該通信クライアントのフロント・エンド・ユーザ・インターフェースの中の何らかの適切なユーザ制御入力部を介して画面上に呼び出されることが可能な選択メニューの形をとることが可能である。
【００３９】
本発明に係る実施例に関して、アプリケーションと呼ばれているものは、必ずしも基本的に一体不可分なソフトウェアのユニットを指して言っているとは限らず、その代わりに、既存のアプリケーションに対してプラグイン、アップデート・モジュール又はアドオン・モジュール等を追加することにより形成される複合構造的なアプリケーション等のような任意の実行可能プログラムを指して言うことも可能である（例えば、上述した副次的なプログラム・コードは、同じ全体のアプリケーション１２の一部として動作することが可能となるように通信ソフトウェア１４とのインターフェースを有するプラグイン・モジュールとして供給されることが可能である）。それにもかかわらず、本発明に係る好適な実施例においては、副次的なプログラム・コード１６は、通信ソフトウェア１４の実行に依存する形で起動されるという意味において、少なくともユーザ・アプリケーション１２の主たるユーザ向け機能と関係付けられることが意図されている。すなわち、ユーザ・アプリケーション１２は、当該ユーザ・アプリケーションがユーザに提供される本来の目的（例えば、通信クライアントとしての用途）である主たるユーザ向け機能を実行するための主要なプログラム・コード１４を具備することとなり、これは、ユーザ・アプリケーション１２が起動された際に、起動する主たるソフトウェアである。ユーザ・アプリケーション１２はこれに加えて、ネットワーク・データをプロービングし、報告するための副次的なプログラム・コードをさらに具備しており、副次的なプログラム・コード１６は、主要なプログラム・コード１４が実行されることに依存して実行される。例えば、副次的なプログラム・コード１６は、ユーザ・アプリケーション１２の起動時に主たる通信ソフトウェア１４と一緒に自動的に起動されるように構成されていたり、主たる通信ソフトウェア１４の実行中にユーザが該当するオプションを選択して初めてユーザ・アプリケーション１２内から起動されたりするという意味において、副次的なプログラム・コード１６は、同じユーザ・アプリケーション１２の中の一部であると看做すことが可能である。
【００４０】
副次的なプログラム・コード１６の配布は、主たるソフトウェア１４がユーザによってダウンロードされ、インストールされるのと同時に実行されることが好適であり、すなわち、主たるソフトウェア１４と同一のダウンロード／インストール操作の一部として、同一の機会に配布されることが好適であり、主たるソフトウェア１４は、ユーザ・アプリケーション１２の主要な機能を実行するものである。その結果、ユーザは、これら２つのダウンロード／インストール操作を別々に手動操作により実行することを促される必要が無い。代替的に、副次的なプログラム・コード１６は、アドイン・モジュールとして別個にダウンロードされることが可能であるが、ただしこの場合、上述したダウンロードは、主たるソフトウェア１４に適用されるソフトウェア更新モジュールを含むアップデート実行プロセスの一部として実行されることが好適である。
【００４１】
ユーザの視点から見ると、主たる通信ソフトウェア１４とユーザ・アプリケーション１２とは、一体であり同じものであり、殆どの時間において、ユーザは、バックグラウンドで走っている副次的なプログラム・コードの存在をわざわざ意識する必要が無い（ただし、副次的なプログラム・コード１６の利用に関する最初のライセンス契約条項を受け入れたり、副次的なプログラム・コード１６の有効化したり無効化したりするためにオプション・ボタンをトグル操作したりする場合を除く）。それにもかかわらず、副次的なプログラム・コード１６によるネットワーク監視動作は、改善されたネットワーク接続トポロジ推定やルーティング制御を結果として達成できるという点で非常に有益であり得る。
【００４２】
ネットワーク・リソースを監視するように（または、少なくともネットワーク・リソースの監視動作に参加するように）副次的なプログラム・コード１６を好適に構成するための仕組みは、図１、図４および図５を参照しながら以下においてより詳細に後述される。以下の説明は、インターネット上でライブ音声通話および／またはライブ・ビデオ通話を実行するためのＶｏＩＰクライアントとの関連において例示的な方法により記述されるが、本発明の技術的範囲は、パケット・ベースの相互接続網と同種の任意のネットワーク構成の上で通信するためのその他の種類の通信クライアントをカバーする範囲まで拡張されることが可能である。
【００４３】
当業者には良く知られているように、インターネットのような相互接続網の上で端末とノードとが通信するための基本的な仕組みは、プロトコル階層構造（各端末２，３および経路制御ノード４の上で実行されているソフトウェアの形で具現化されている）と看做されることが可能である。プロトコル階層構造を表現するために数多くの方法があるが、一つの一般的な方法は、図４に図示するとおりのものである。
【００４４】
この表現において、最下位に位置する階層は、ユーザ端末２と経路制御ノード４との間、または２つの経路制御ノードの間を直接的に結ぶ直接リンクの上でビット列を伝送する役割を有するリンク層２２である。これは例えば、ダイアルアップ回線、ブロードバンド回線、イーサネット（登録商標）、またはＷｉＦｉ接続などの上でデータを伝送するプロトコルを伴うことが可能である。リンク層２２は、インターネットワーク・レベルにおけるルーティング動作の概念を含んではおらず、複数の異なるリンクのそれぞれの上で異なるリンク層プロトコルが使用される。何故なら、そのようなルーティング動作は、その直接の上位層であるインターネットワーク層２４が実行するものであり、それは、相互接続網全体にわたるルーティング制御のための共通のプロトコルを提供する。すなわち、リンク層２２は、パケットが次ホップとして何れの経路制御ノード４または端末２に向けられるべきかについては決定をせず、インターネットワーク層（例えば、ＩＰ層）２４内でインターネットワーク・アドレス（例えば、ＩＰアドレス）に基づいて次ホップとなる経路制御ノード４や端末２が識別されて初めて、パケットを構成するビット列を次ホップとなる経路制御ノード４または端末２に送信するだけである。
【００４５】
インターネットワーク層（例えば、ＩＰ層）２４は、パケットのルーティング動作を直接実行する役割を有するパケット転送プロトコルである。図５において図式的に示されるとおり、データのパケットは、ヘッダー部分３２とペイロード部分３４の両者を具備している。ヘッダー部分３２は、宛先となるエンド・ユーザ端末２のインターネットワーク・アドレス（例えば、ＩＰアドレス）を具備しており、ペイロード部分３４は、送信者側のユーザ・アプリケーション１２、１８によって送信されることが望まれる実際のユーザ・データを具備している。経路制御ノード４がパケットを受信した際、そのＩＰ層ソフトウェアは、そのＩＰアドレスを検査し、当該パケットのルーティング先とすべき次ホップである隣接する経路制御ノード４（あるいは、宛先となる端末が隣接している場合には、エンド・ユーザ端末２）を決定する。すなわち、上述した決定は、当該パケットを送信すべき次の直接リンクまたは相互接続網内の次ホップを決定することである。しかしながら、何れか一つの所与の経路制御ノード４の上にあるＩＰ層２４は、通信経路の全体にわたる接続トポロジを決定したり指定したりすることは出来ない、つまり、複数のホップを一括して決定することは出来ず、すぐ次の経路制御ノード４や端末２に繋がるすぐ次のホップを決定することが出来るだけである。
【００４６】
トランスポート層２６は、ＩＰヘッダーの先頭部分に包含される位置に追加のヘッダー情報を追加する。従って、トランスポート・プロトコルは、ポート番号付与、誤り検出、パケット順序制御、およびパケット受信の確認応答などを含む一定程度のエンド・ツー・エンド接続機能を追加することが可能である。しかしながら、トランスポート層２６も依然として、ユーザ・アプリケーションが通信経路の接続トポロジを指定することを可能にする機能を提供していない、つまり、当該パケットが何れの経路制御ノード４を経由してルーティングされるかをユーザ・アプリケーションが選択することを可能にしていない。
【００４７】
アプリケーション層２８は、パケット内のペイロード部分３４に含められるべきユーザ情報（例えば、音声通話やビデオ通話に関する音声やビデオのコンテンツ、またはＩＭメッセージングに関するユーザ・テキストなど）と関係している。アプリケーション１２、１８は、問題となっているアプリケーションに対して適切な形で、アプリケーション１２、１８が所望する任意のコンテンツをペイロード部分の中に自由に含めることが可能である。
【００４８】
好適な実装形態に従うならば、本発明は、ＩＰ層２４またはトランスポート層２６によってサポートされていないルーティング・トポロジに対するさらに高水準の制御を提供しながら、ルーティング制御の追加の層を提供するために、当該アプリケーション層とパケット内のペイロード部をさらに有効活用する。アプリケーション層におけるこの種のルーティング制御は、オーバーレイ・ネットワークの形成動作と呼ばれる。
【００４９】
例えば、送信者側のエンド・ユーザ端末２ｅの上で実行中の通信アプリケーション１２の一つのインスタンスが、宛先となるエンド・ユーザ端末２ｘの上で実行中の通信アプリケーション１２の他のインスタンスに向けて一つのパケット又は複数のパケットから成るストリームを送信したいと希望していると仮定する。ＩＰ層単独によって本来的に決定されるはずの通信経路は、例えば、４ｈから４ｏへと向かう大西洋横断リンクを経由して伸びている。しかしながら、上述した仮定の代わりに今度は、送信者側の通信アプリケーション１２が中継動作を行う第３のエンド・ユーザ端末２λの上で実行中の通信アプリケーションのインスタンスを経由してパケットを送信することを希望していると仮定する。この場合においては、送信者側の通信アプリケーション１２は、中継動作を行うエンド・ユーザ端末２のＩＰアドレスを有するパケットを生成し、ＩＰ層２４が関知する限りの範囲内においては、中継動作を行うエンド・ユーザ端末２ｉを宛先となる端末であるとして指定する。しかしながら、ここでさらに、送信者側のエンド・ユーザ端末２ｅは最終的な宛先が端末２ｘである旨を識別する表示情報を少なくとも一つのパケット・ペイロード部分３４の中に挿入する。中継動作を行うエンド・ユーザ端末２ｉの上で実行中の通信アプリケーション１２のインスタンスが当該パケットを受信した際に、当該インスタンスは、パケット内のペイロード部分をラッピング解除し、（例えば、当該表示情報が表す識別子を検索テーブルがＩＰアドレスにマッピングする処理に基づいて）最終的な宛先である端末２ｘのＩＰアドレスを決定し、続いて、当該最終的な宛先である端末２ｘのＩＰアドレスを具備するＩＰヘッダーと共に当該ペイロード伝送媒体部分の残りの部分を再度ラッピングし、インターネット上で当該パケットを再度送信する。その結果、これは、４ｈから４ｏに直接到達するのではなく、４ｈから４ｗへと至る太平洋横断リンクを経由し、さらに（他のホップも含めて）４ｗから４ｏへと至る国際的なリンクを経由する全体的な通信経路を結果として生成する。
【００５０】
サーバ３もまた、上述した方法により、アプリケーション層において中継動作を行う端末として指定されることが可能である。
【００５１】
従来型のオーバーレイ・ネットワークにおいては、この種の技法は、（例えば、ファイアウォールやＮＡＴの通過を可能にしたり、多対多の電話会議通話（３人以上の参加者がいるグループ通話）を実現するためにより良好な計算処理リソースを有するなどの理由により）、中継動作を行うエンド・ユーザ端末２、３の何らかの有益な性質を有効活用することを意図する場合に限って使用可能なだけである。しかしながら、本発明に係る複数の実施例に従うならば、上述したアプリケーション層におけるルーティング技法は、一つの通信経路が特定の複数の経路制御ノードを経由するように、あるいは、複数の経路制御ノードの間の特定のリンクを経由するように強制し、それによって、例えば、レイテンシ、パケット損失、ビットレート、スループットおよび／またはジッタ等のような上記通信経路上の何らかの配送特性をプロービングすることが出来る。
【００５２】
従って、ユーザ・アプリケーション１２、１８は、パケットが何れの経路制御ノードを経由してルーティングされるかに関して直接制御する機能を有していない一方で、それにもかかわらず、同一のオーバーレイ・ネットワークの一部を形成しながら仲介者として機能するユーザ・アプリケーション１２を経由してルーティングを実行することにより、通信経路の幾つかの側面を操作することが出来る。
【００５３】
以下、上述した技法をネットワーク・リソースの監視動作に適用するための幾つかの適用例をより詳細に検討する。
【００５４】
再び図１を参照すると、まず最初に、エンド・ユーザ端末２ｅの上で実行中のＶｏＩＰクライアント１２がアプリケーション層における如何なる具体的なルーティング態様も指定することなく、宛先となるエンド・ユーザ端末２ｘとの間で音声またはビデオのストリームを設定すると仮定する。この場合には、通信経路は、中継動作を実行するエンド・ユーザ端末２やサーバ３を一切含んでおらず、当該通信経路は、送信されるパケットのＩＰヘッダ内にある宛先端末２ｘのＩＰアドレス、およびネットワーク通信サービス事業者に属する複数の経路制御ノード４によって実行されるルーティング判断のみによって決定される。例えば、初期状態における通信経路は、以下のようになり得る。
【００５５】
２ｅ−４ｂ−４ｆ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
しかしながら、ＶｏＩＰクライアント１２は、（例えば、レイテンシ、パケット損失および／またはジッタを軽減したり、ビットレートを増加させたりするために）計測可能な一つ以上の配送特性に鑑みて、より良好な別の通信経路が実際に存在するか否かを判断することを希望するかもしれない。具体的には、インターネット等のような大規模な相互接続網の上でルーティングを実行する際に、地理的に最短距離の通信経路やＩＰ層単独により決定された通信経路は必ずしも最適であるとは限らない。例えば、地理的に近接した経路制御ノード４は、通信ボトルネック状態を経験しているかも知れない。従って、中継動作を実行する別のエンド・ユーザ端末２やサーバ３を介した（あるいは実際にはこれらの複数を介した）ルーティング制御によってアプリケーション層内で強制的に設定されることが可能な通信経路の候補となり得るその他の複数の通信経路をテスト出来るようにすることが望ましい。
【００５６】
この目的を達成するために、ＶｏＩＰクライアント１２は、その特別な副次的プログラム・コード１６により、代替的な通信経路に沿って一つ以上のプロービング用パケットを送信するように構成され、当該代替的な通信経路は、アプリケーション層におけるルーティング制御により、中継動作を実行する少なくとも一つのエンド・ユーザ端末２および／またはサーバ３を含んでいる。例えば、上述した一つ以上のプロービング用パケットは、以下の通信経路に沿って伝送されることが可能である。
【００５７】
２ｅ−４ｂ−４ｃ−２ｉ−４ｃ−４ｇ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
好適には、ＶｏＩＰクライアント１２は、実際に複数の通信経路に対して同様の方法でプロービングを実行することとなり、上記以外の他の幾つかの通信経路の具体例は、例えば以下のとおりとすることが可能である。
【００５８】
２ｅ−４ｂ−４ａ−３ａ−４ａ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
２ｅ−４ｂ−４ｆ−４ｈ−４ｗ−４ｔ−４ｑ−２λ−４ｑ−４ｔ−４ｗ−４ｏ−４ｎ−４ｋ−２ｘ
２ｅ−４ｂ−４ｆ−４ｈ−４ｗ−４ｕ−３ｄ−４ｕ−４ｗ−４ｏ−４ｎ−４ｋ−２ｘ
２ｅ−４ｂ−４ｆ−４ｈ−４ｏ−４ｍ−４ｉ−２ｔ−４ｉ−４ｊ−４ｋ−２ｘ
【００５９】
当該一つ以上のプロービング用パケットは、宛先となる端末２ｘに対する「Ｐｉｎｇ」パケットとして振舞うことが可能であり、その結果、宛先となる端末２ｘの上で実行中のクライアント１２から送信者側の端末２ｅの上で実行中のクライアント１２へと応答を返信する動作が起動され、当該返信される応答は、プロービングされる通信経路上において一つ以上のプロービング用パケットによって経験された配送特性を報告するものである。代替的に、上述した一つ以上のプロービング用パケットは、宛先となる端末２ｘが制御サーバ（例えば、図中の３ｂ）の上で実行中のコントローラに向けた配送によって経験された配送特性を報告する動作をトリガーすることが可能であり、これに引き続いて、当該プロービング用パケットは、送信者側のエンド・ユーザ端末２ｅの振る舞いを制御することが出来るように構成される（制御の内容は、インターネットを介して、又は携帯電話網のような代替的な制御媒体を介してシグナリングされる）。
【００６０】
初期状態における通信経路もまた、伝送されるストリームによって暗黙的に又はそれとは別である一つ以上のプロービング用パケットによって同一の情報に関してプロービングされる。
【００６１】
プロービングされた通信経路の何れかがパケット損失、誤り率、レイテンシまたはビットレート等（またはこれらの一つ以上に基づく測度もしくはこれらの中の２つ以上の組み合わせ等）のような何らかの定量化可能な配送特性の観点から、初期状態における又は現在の通信経路と比較してより好適であることが見出された場合には、送信者側の端末２ｅの上で実行中のクライアント１２または制御サーバ３ｂの上で実行中のコントローラは、音声又はビデオの主たるストリームが改善された通信経路を経由するように、これらのストリームを方向付け、このような方向付けは、中継動作を実行するエンド・ユーザ端末２またはサーバ３を介したアプリケーション層でのルーティング制御によって達成される。この実行過程は、上述したストリームの伝送が進行中である全期間を通して反復実行されることが可能であり、その結果、最適な通信経路が動的に更新され又はチェックされることが可能である。
【００６２】
同様の技法は、ファイル転送やＩＭメッセージ交換等のようなその他の種類のストリームや通信について通信経路を見出すために使用されることも可能である。本発明に係る複数の実施例においては、上述した配送特性、すなわち問題となる特性は、クライアント１２によって必要とされる通信の種類に依存する可能性がある。
【００６３】
中継動作を実行する端末が、例えば図中の２ｉや２ｔ等のようなエンド・ユーザ端末であったばあには、上述した中継動作を実行するエンド・ユーザ端末は、上述したストリームの消費者である必要は無い点に留意されたい（ここでの説明における「消費」とは、例えば、音声やビデオのストリームを再生出力したり、ＩＭメッセージを画面表示したり、ファイル転送によって受信したファイルを記憶したりする等の最終的な目的のために上述したストリームを使用することを意味する）。むしろ、上述した中継動作を実行するエンド・ユーザ端末は単に、この相互的なルーティング制御方式に加入することに同意したユーザによって通信クライアント・アプリケーション１２のさらに追加のインスタンスと共にインストールされることが可能である（全く異なるストリームの送信者側または消費者側が新たな機会において関与するようになった際に、中継動作を行う端末２ｉ又は２ｔのユーザは、自身に関する全体の合意から利益を受けることが可能である）。
【００６４】
本発明に係る好適な実施例においては、上述したプロービングは、蟻のコロニーと類似した方法に従って決定される。食料を得るために、上記コロニー内の蟻の大多数は、食料と蟻の巣との間にわたって他の蟻が残した臭いの跡を追跡する。しかし、時たま、無作為に選ばれた一匹の蟻が主たる行列から離れて、ランダムな軌跡を描いて歩行を始める。上述したランダムな軌跡に沿った歩行が結果として偶然にも食料に到達するためのより良好な経路となった場合にはその蟻は、新しい臭いの痕跡を残しながら巣へと帰還する。続いて、まとまった数の蟻の集団がその新しい臭いの痕跡を追跡し始める。上記と類似した態様に従って、本発明は、ランダムな「蟻のコロニー」の形態を採るアルゴリズムを採用することが可能であり、このアルゴリズムにより、通信トラフィックの主たるストリームが現在の通信経路の上でルーティングされているけれども、時たま、それとは異なる試験的な通信経路の上でランダムにプロービング用パケットが送信される。プロービングの送出タイミングや送信経路はランダムなものとすることが可能である。
【００６５】
しかしながら、本発明に係る代替的な実施例においては、プロービングが実行される通信経路は、システマティックな手法で決定されることが可能であり、例えば、中継動作端末２または中継動作サーバ３の可能な複数の候補を含む一覧表の中を周期的に巡回させるなどして決定することが可能であり、あるいは上述したランダムな手法とこのシステマティックな手法との組み合わせを伴うことが可能である。
【００６６】
プロービングの実行頻度とアプリケーション層ルーティングを決定するアルゴリズムは、ランダムな手法であれ、システマティックな手法であれ、送信者側のＶｏＩＰクライアント１２自身の一部であることが可能であり、または、制御サーバ（例えば、図中の３ｂ）の上で実行中の制御モジュールにおいて実行されることが可能であり、当該制御サーバは、送信者側のＶｏＩＰクライアント１２がプロービングを実行するであろう時期と場所を制御することが可能となるように構成されたサーバである（制御の内容は、インターネットを介して、又は携帯電話網のような代替的な制御媒体を介してシグナリングされる）。
【００６７】
上記以外の本発明の関連する利用目的は、ファイアウォールやＮＡＴ（Network  Address  Translation）を通過することである。例えば、上述した具体例において、基本的な通信経路として示した「２ｅ−４ｂ−４ｆ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ」は受け入れ可能な選択肢ではない場合がある。何故なら、端末２ｘの上のファイアウォールは送信者側端末２ｅを信頼しないかも知れず、あるいは、送信者側端末２ｅは端末２ｘの上のＮＡＴを通り抜けて通信できないかも知れないからである。すなわち、初期状態におけるパケット・ストリーム通信に関してすら、アプリケーション層において、中継動作実行端末２や中継動作実行サーバ３が関与している場合が有り得る。この場合、何れの通信経路が最適であるかを動的に検査して通信経路を更新する処理動作は、上述した方法に忠実に従って進められることが可能であるが、選択された通信経路は何れも問題となっているファイアウォールやＮＡＴを通過することがさらに可能でなくてはならないという選定基準（これは、ファイアウォールやＮＡＴを通過するための最適な方法を見出すという目的を伴う）がさらに追加されている。この時、地理的に見て宛先に最も近い中継ノードが必ずしも最適とは限らないことに留意されたい。
【００６８】
本発明のさらに別の利用目的は、（時間の経過に伴って変化する可能性が高い）ネットワーク接続トポロジの全体像モデルを構築することが可能となるようにデータ処理設備にデータを報告することである。当該データ処理設備は、サーバ（例えば、図中の３ｂ）とすることが可能であり、または複数のエンド・ユーザ端末２に跨って分散的に実行される分散型のアルゴリズムにより実現されるものとすることが可能である。
【００６９】
動作中において、互いに異なる様々なエンド・ユーザ端末２の上でそれぞれ実行中の通信クライアント・アプリケーション１２の複数のインスタンスの各々は、リソース監視動作を実行する副次的プログラム・コード１６を実行し、上述したアプリケーション層でのルーティング制御によってインターネット全体にわたる様々な通信経路をプロービングする。個々の通信クライアント１２が、自身の伝送媒体ストリームをリダイレクトするためにこの仕組みを使用するか否かとは無関係に、個々の通信クライアント１２は依然として上述したプロービングの結果を当該データ処理設備３ｂに報告するように構成されることが可能である。すなわち、宛先となる端末（例えば、図中の２ｘ）または送信者側の端末（例えば、図中の２ｅ）のいずれか一方は、プロービングされた通信経路の上で経験されたパケット損失、誤り率、レイテンシ、ビットレートまたはジッタ等（またはこれらに基づく何らかの測度）の計測された配送特性を当該データ処理設備に報告することとなる。好適には、当該データ処理設備３ｂに対して上記報告する動作は、インターネットを経由して実行することもまた可能である（ただし、インターネット以外に、携帯電話網接続のような代替的な報告媒体を使用する可能性も排除するものではない）。
【００７０】
上述したプロービング動作の単独実行の何れもが、通信ボトルネックやその他の問題が生じている箇所を判断するのに充分とは言えないだろう。しかしながら、一旦２つ以上の通信経路がプロービングされたならば、インターネット／相互接続網の内部における通信ボトルネックやその他の問題の発生箇所について何らかの情報を推測することが可能となる。
【００７１】
ブロービングされた通信経路のうち、上記の説明において例示した以下の具体例を再び検討してみる。
（ｉ）２ｅ−４ｂ−４ｆ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
（ii）２ｅ−４ｂ−４ｃ−２ｉ−４ｃ−４ｇ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
（iii）２ｅ−４ｂ−４ａ−３ａ−４ａ−４ｈ−４ｏ−４ｎ−４ｋ−２ｘ
（iv）２ｅ−４ｂ−４ｆ−４ｈ−４ｗ−４ｔ−４ｑ−２λ−４ｑ−４ｔ−４ｗ−４ｏ−４ｎ−４ｋ−２ｘ
（ｖ）２ｅ−４ｂ−４ｆ−４ｈ−４ｗ−４ｕ−３ｄ−４ｕ−４ｗ−４ｏ−４ｎ−４ｋ−２ｘ
（vi）２ｅ−４ｂ−４ｆ−４ｈ−４ｏ−４ｍ−４ｉ−２ｔ−４ｉ−４ｊ−４ｋ−２ｘ
【００７２】
例えば、上記の通信経路（ii）は、上記の通信経路（i）と比べて非常に低いレイテンシ又はパケット損失を経験するならば、この事は、上記の通信経路（ii）において除外されている経路制御ノード４ｆが問題を抱えたノードである、すなわち、大量の通信トラフィックによって過負荷状態にあることを示唆している可能性がある。
【００７３】
他方、上記の通信経路（i）〜（iii）および（iv）が、代替的な大西洋横断ルートを採用する上記の通信経路（ｖ）および（vi）と比較して相対的に高い通信遅延やパケット損失を経験するならば、ノード４ｈと４ｏとの間を結ぶ大西洋横断ルートが問題の発生源であることを示唆している可能性がある。この事は、地理的な距離が短いからと言って必ずしも最適な通信経路であるということが保証されるとは限らないことを示す一例である。
【００７４】
さらに別の例として、通信経路（i）〜（ｖ）の全てが劣悪な状態であり、複数の異なる大西洋横断ルート同士の間に殆ど差異が無いが、通信経路（vi）は通信遅延やパケット損失に関して大幅な改善（軽減効果）を示しているような場合を仮定する。この事は、一連の経路制御ノードの連鎖の中で、ノード４ｎが問題の発生箇所であることを示唆している可能性がある。
【００７５】
さらに別の例として、エンド・ユーザ端末２ｏ、２ｐおよび２ｑが関与している全ての通信経路の上で状態が劣悪である一方で、それ以外の大半の通信経路上での状態が良好であるならば、ＬＡＮ（ローカルエリア網）５の内部に問題があることが推測可能である。
【００７６】
以上のように、実効的には、複数の通信経路に関して複数のエンド・ユーザ端末によって報告されたデータは、データ処理設備によって解を算出され又は解を推定される大規模な連立方程式を形成すると考えることが可能である。上述した方程式の厳密解を算出することが不可能な場合ですらも依然として、可能性が高いと考えられるネットワーク接続トポロジの全体像やモデルを構築することが出来る可能性がある。より多くのエンド・ユーザ端末が関与している複数の通信経路から成るより多くの組み合わせをテストするほど、可能性として起こり得る問題の発生源として、より多くのノードやリンクを考慮に入れることが可能である。従って、ＶｏＩＰ通信クライアント等のように広く普及したユーザ・アプリケーションを使用してリソース監視用プログラム・コード１６を配布することが特に効果的である。
【００７７】
最終的には、上述したとおりに収集された情報は、例えば、ネットワーク内において、新しい通信機器をインストールしたり、既存の通信機器をアップグレードしたり、一つ以上の経路制御ノードにおいてルーティング制御ポリシーを修正したりする等して、相互接続網を構成変更するために使用することが可能である。
【００７８】
本発明に関して上述した複数の実施例は、単に具体例を例示するためだけに記述されていることを理解されたい。
【００７９】
例えば、本発明は、ＶｏＩＰクライアントを使用する場合だけに限定されることは無く、例えば、ＩＭメッセージ交換のために通信経路を選択する場合などのような他の種類の通信クライアントを使用してルーティングを制御する場合においても利用することが可能である。さらに、本発明は、通信クライアントを配布する実施例だけに限定されることは無く、代替的に、Ｗｅｂブラウザや音楽プレーや・ソフトウェア等のように通信クライアントとは異なる種類の広く一般的に普及しているユーザ・アプリケーションと一緒にして配布する実施例も含むことが可能である。
【００８０】
副次的なプログラム・コード１６によるプロービングの処理動作は、別個の人為的内容のプロービング用パケットまたはプロービング用メッセージを送信することを具備しており、この場合の人為的内容とは、如何なるユーザ・トラフィックも含んでおらず、主たるプログラム・コード１４の機能に関係した如何なるデータも含んでおらず、実際には、プロービング以外に他の如何なる目的も持っていないという意味である。代替的に、副次的なプログラム・コード１６によるプロービングの処理動作は、主たるプログラム・コード１４が自身の持つ通常の主要機能と関連して既に送信したパケットを使用することを伴う。例えば、主たるプログラム・コード１４が他の複数のノードから存在確認情報を取得するために存在確認用のＰｉｎｇ送信を実行する際や、主たるプログラム・コード１４が、ピア・ツー・ピア・シナリオに従って分散型データベースから複数のノードに関する情報を収集する際に、主たるプログラム・コード１４は上述したパケット送信を実行する。すなわち、この場合においては、副次的なプログラム・コード１６は、主たるプログラム・コード１４によって通信される幾つかの特定のパケットに対して副次的な目的を追加的に付与する。
【００８１】
さらに上記説明は、その大部分がエンド・ユーザ端末２の視点から記述されてきたけれども、送信者側の端末、宛先となる端末または中継動作を実行する端末の何れについても、サーバ３を代替物として使用することが可能である。ここで、用語「サーバ」の意味は、単一サイトまたは単一の筐体内で稼動する単一のサーバ・ユニットに限定されるようには意図されておらず、複数サイトまたは複数の筐体内において稼動する複数のサーバから成る装置構成をも包含する。ネットワーク通信サービス事業者に属する経路制御ノード４に関しては、ルータ機器やルーティング制御は、ネットワーク機器の任意の特定の箇所を意味するものではなく、データを転送することに関する任意のノードや任意の処理動作を指して言うことが可能である。さらには、ネットワーク通信サービス事業者の意味は、何らかの特定の種類の事業モデルに限定されるようには意図されておらず、任意のネットワーク運用管理主体またはこれと同様のものを一般的に指して言うことが可能である。
【００８２】
本明細書の教示内容に接することにより、本発明に係るその他の変形実施例は当業者にとっては直ちに自明なものとなろう。本発明の技術的範囲は、上述した例示的実施例に限定されるものではなく、本明細書に添付した特許請求の範囲によってのみ規定される。
【図１】
2014513501.tif 000003
【図２】
2014513501.tif 000004
【図３】
2014513501.tif 000005
【図４】
2014513501.tif 000006
【図５】
2014513501.tif 000007
【国際調査報告】
2014513501.tif 000008
2014513501.tif 000009