(57)【要約】自律ネットワークについてのルーティングアウェアネスを伝達するための技術が説明される。少なくともいくつかの実施形態において、ルーティングアウェアネスは、異なるエンドポイント間で通信セッションをルーティングする自律ネットワークの属性を指す。様々な実施形態に従うと、ルーティングアウェアネスは、特定の自律ネットワークが、異なる自律ネットワーク間でルーティングアウェアネスを伝達するためのプロトコルをサポートしているかどうかを示す。ルーティングアウェアネスはまた、自律ネットワークの性能属性を含み得る。そのようなルーティングアウェアネスは、通信セッションをルーティングすることに関与するエンティティが、通信セッションのルーティング及び処理に関して十分な情報に基づく決定をすることを可能にする。
2017528961.tif 000002
【特許請求の範囲】
【請求項１】
通信セッションの性能を最適化するための、コンピュータにより実施される方法であって、
複数の自律ネットワークについてのルーティングアウェアネスであって、前記複数の自律ネットワークの個々のネットワークが、通信セッションのルーティングについてのルーティングアウェアネスを伝達するためのプロトコルをサポートしているかどうかを指定するルーティングアウェアネスを集約するステップと、
前記通信セッションの性能最適化をもたらすために、前記通信セッションのデータストリームとは独立して、前記複数の自律ネットワークのうちの１以上の自律ネットワークに前記ルーティングアウェアネスを伝達するステップと、
を含む方法。
【請求項２】
前記集約するステップは、
前記通信セッションの開始、及び
前記通信セッションが未来時に発生するようスケジュールされていることを確認したこと
のうちの少なくとも１つに応じて発生する、請求項１に記載の方法。
【請求項３】
前記集約するステップの前に、
前記複数の自律ネットワークのうちの１以上の自律ネットワークから、ルーティングパス属性を受信するステップと、
前記ルーティングパス属性を含むように前記ルーティングアウェアネスを集約するステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記ルーティングアウェアネスは、前記通信セッションをルーティングするために、前記プロトコルをサポートしている特定の自律ネットワークが、前記プロトコルをサポートしていない異なる自律ネットワークより優先されることを示す、請求項１に記載の方法。
【請求項５】
前記ルーティングアウェアネスは、前記複数の自律ネットワークのうちの少なくとも１つの自律ネットワークが、通信セッションをルーティングするためのネットワークのホワイトリスト、ブラックリスト、及びグレーリストのうちの１つにリストされていることを示す、請求項１に記載の方法。
【請求項６】
前記複数の自律ネットワークのうちの特定の自律ネットワークのルーティング属性の変化のインジケーションを受信するステップと、
前記特定の自律ネットワークの前記ルーティング属性の変化のさらなるルーティングアウェアネスを伝達するステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
通信セッションの性能を最適化するためのシステムであって、
少なくとも１つのプロセッサと、
命令を記憶している１以上のコンピュータ読み取り可能な記憶媒体であって、前記命令は、前記少なくとも１つのプロセッサによる実行に応じて、前記システムに、
通信セッションについてのルーティングパスのインジケーションを受信する動作と、
前記通信セッションについての前記ルーティングパスに沿った特定の自律ネットワークが、前記通信セッションについてのルーティングアウェアネスを伝達するためのプロトコルをサポートしていないことを確認する動作と、
前記通信セッションをルーティングするために利用可能であり前記プロトコルをサポートしている異なる自律ネットワークを特定する動作と、
前記通信セッションをルーティングするために前記異なる自律ネットワークが前記特定の自律ネットワークより優先されることを示すために、前記通信セッションについてのルーティングアウェアネスを更新する動作と、
前記通信セッションの性能最適化をもたらすために、前記通信セッションをルーティングすることに関与するエンティティに、前記の更新されたルーティングアウェアネスを通信する動作と、
を含む複数の動作を実行させる、１以上のコンピュータ読み取り可能な記憶媒体と、
を備えているシステム。
【請求項８】
前記システムは、前記特定の自律ネットワーク及び前記異なる自律ネットワークとは別個に実装されているネットワークシステムを備えている、請求項７に記載のシステム。
【請求項９】
前記ルーティングアウェアネスは、前記通信セッションについての前記ルーティングパスに沿った複数の自律ネットワークについてのルーティングパス属性を含む、請求項７に記載のシステム。
【請求項１０】
通信セッションの性能を最適化するための、コンピュータにより実装される方法であって、
通信セッションの開始に応じて、前記通信セッションのルーティングパスに沿った１以上の自律ネットワークについてのルーティングアウェアネスであって、前記１以上の自律ネットワークが、前記通信セッションのルーティングについてのルーティングアウェアネスを伝達するためのプロトコルをサポートしているかどうかを指定するルーティングアウェアネスを集約するステップと、
前記通信セッションの性能最適化をもたらすために、前記通信セッションのデータストリームとは独立して、前記通信セッションの前記ルーティングパスに沿った少なくとも１つの他の自律ネットワークに、前記ルーティングアウェアネスを伝達するステップと、
を含む方法。
【請求項１１】
前記ルーティングアウェアネスは、前記１以上の自律ネットワークのうちの少なくとも１つの自律ネットワークが、前記通信セッションをルーティングするための優先されるネットワークであることを示す、請求項１０に記載の方法。
【請求項１２】
前記ルーティングアウェアネスは、前記１以上の自律ネットワークについての性能属性を含む、請求項１０に記載の方法。
【請求項１３】
前記ルーティングアウェアネスは、前記ルーティングパスを変更して特定の自律ネットワークを異なる自律ネットワークで置き換える命令又は提案を含む、請求項１０に記載の方法。
【請求項１４】
前記１以上の自律ネットワークのうちの特定の自律ネットワークのルーティング属性の変化のインジケーションを受信するステップと、
前記特定の自律ネットワークの前記ルーティング属性の変化のさらなるルーティングアウェアネスを伝達するステップと、
をさらに含む、請求項１０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
現在の通信システムは、異なるサービスとの様々な通信モダリティの統合を含む様々な機能を有する。例えば、インスタントメッセージング、音声／ビデオ通信、データ／アプリケーション共有、ホワイトボーディング、及び他の形態の通信が、加入者についてのプレゼンス及び利用可能性情報と組み合わされ得る。そのようなシステムは、様々なステータスカテゴリ、代替連絡先、カレンダー情報、及び類似の特徴について発呼者に命令を提供すること等の拡張機能を加入者に提供することができる。さらに、様々なタイプの文書及びコンテンツを作成及び変更するのにユーザが共有及び連携することを可能にするコラボレーションシステムが、異なる種類のコミュニケーション及びコラボレーション機能を提供するマルチモーダルコミュニケーションシステムと統合され得る。そのような統合されたシステムは、時としてユニファイドコミュニケーション及びコラボレーション（ＵＣ＆Ｃ）システムと呼ばれる。
【０００２】
ＵＣ＆Ｃシステムは、通信の増大した柔軟性を提供しているが、いくつかの実装課題も与えている。例えば、ＵＣ＆Ｃシステムは、一般に、複数の相互接続ネットワークを利用して様々な通信をルーティングする。異なるネットワークが、異なるエンティティによって管理されることがあるので、したがって、独立して管理されるネットワーク間でルーティングされる通信の通信品質を管理するのに課題が生じる。さらに、ＵＣ＆Ｃは、一般に、モバイルデバイス、例えば、タブレット、スマートフォン、ラップトップ等にロードすることができるソフトウェアを介して実装される。したがって、ＵＣ＆Ｃ通信トラフィックを管理するための技術は、一般に、変化する接続シナリオに適応するために、流動性を有し動的でなければならない。
【発明の概要】
【０００３】
この発明の概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択されたコンセプトを簡略化された形で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものでもないし、特許請求される主題の範囲を決定する際の助けとして使用されることを意図するものでもない。
【０００４】
自律ネットワークについてのルーティングアウェアネス（routing  awareness）を伝達するための技術が説明される。少なくともいくつかの実施形態において、ルーティングアウェアネスは、異なるエンドポイント間で通信セッションをルーティングする自律ネットワークの属性を指す。様々な実施形態に従うと、ルーティングアウェアネスは、特定の自律ネットワークが、異なる自律ネットワーク間でルーティングアウェアネスを伝達するためのプロトコルをサポートしているかどうかを示す。ルーティングアウェアネスはまた、自律ネットワークの性能属性を含み得る。そのようなルーティングアウェアネスは、通信セッションをルーティングすることに関与するエンティティが、通信セッションのルーティング及び処理に関して十分な情報に基づく決定をすることを可能にする。
【図面の簡単な説明】
【０００５】
詳細な説明が、添付の図面を参照して記載される。図面において、参照符号の最も左の数字（群）は、その参照符号が最初に出現する図面を特定するものである。説明及び図面における異なるインスタンスでの同じ参照符号の使用は、類似の又は同一のアイテムを示し得る。
【図１】本明細書で説明される技術を使用するよう動作可能である、例示的な実装における環境の図。
【図２】１以上の実施形態に従った、ルーティングアウェアネスを集約するための例示的な実施シナリオを示す図。
【図３】１以上の実施形態に従った、自律ネットワーク間でルーティングパスアウェアネスを決定するための例示的な実施シナリオを示す図。
【図４】１以上の実施形態に従った、通信セッションをリルーティングするための例示的な実施シナリオを示す図。
【図５】１以上の実施形態に従った、ルーティングアウェアネスを伝達するための方法におけるステップを示すフロー図。
【図６】１以上の実施形態に従った、ルーティングパス優先を示すための方法におけるステップを示すフロー図。
【図７】１以上の実施形態に従った、ルーティングパス属性の変化のルーティングアウェアネスを伝達するための方法におけるステップを示すフロー図。
【図８】本明細書で説明される技術の実施形態を実装するよう構成されている、図１に関連して説明される例示的なシステム及びコンピューティングデバイスを示す図。
【発明を実施するための形態】
【０００６】
概要
自律ネットワークについてのルーティングアウェアネスを伝達するための技術が説明される。少なくともいくつかの実施形態において、ルーティングアウェアネスは、異なるエンドポイント間で通信セッションをルーティングする自律ネットワークの属性を指す。一般に、通信セッションは、異なる通信エンドポイント間の通信メディアのリアルタイム交換を指す。通信セッションの例は、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）通話、ビデオ通話、テキストメッセージング、ファイル転送、コンテンツ共有、及び／又はこれらの組合せを含む。少なくともいくつかの実施形態において、通信セッションは、ユニファイドコミュニケーション及びコラボレーション（ＵＣ＆Ｃ）セッションを表す。
【０００７】
様々な実施形態に従うと、ルーティングアウェアネスは、特定の自律ネットワークが、異なる自律ネットワーク間でルーティングアウェアネスを伝達するためのプロトコルをサポートしているかどうかを示す。そのようなプロトコルは、以下でより詳細に説明されるが、一般に、通信セッション自体から帯域外（out-of-band）で自律ネットワーク及び通信セッションの属性を伝達するためのプロシージャを指す。したがって、ルーティングアウェアネスの伝達は、通信セッションのルーティング及び処理とは独立している。
【０００８】
様々な実施形態に従うと、ルーティングアウェアネスは、通信セッション品質及び／又は異なる自律ネットワークにわたって発生するエラーのインジケーション等の、自律ネットワークの性能属性を含む。したがって、本明細書で説明される技術は、異なる自律ネットワークにルーティングアウェアネスを通知するための多様なシナリオを提供する。そのようなルーティングアウェアネスは、通信セッションをルーティングすることに関与するエンティティが、通信セッションデータのルーティング及び処理に関して十分な情報に基づく決定をすることを可能にする。
【０００９】
以下の説明において、本明細書で説明される技術を使用するよう動作可能である例示的な環境が最初に説明される。次に、「ルーティングアウェアネスの伝達」と題されたセクションにおいて、１以上の実施形態に従った、ルーティングアウェアネスを伝達するためのいくつかの例示的なやり方が説明される。これに続いて、「例示的な実施シナリオ」と題されたセクションにおいて、１以上の実施形態に従ったいくつかの例示的な実施シナリオが説明される。次に、「例示的なプロシージャ」と題されたセクションにおいて、１以上の実施形態に従ったいくつかの例示的なプロシージャが説明される。最後に、「例示的なシステム及びデバイス」と題されたセクションにおいて、１以上の実施形態に従った、本明細書で説明される技術を使用するよう動作可能である例示的なシステム及びデバイスが説明される。
【００１０】
１以上の実施形態に従った例示的な実装の概要を提示したが、次に、例示的な実装が使用され得る例示的な環境について検討する。
【００１１】
例示的な環境
図１は、本明細書で説明される、自律ネットワークについてのルーティングアウェアネスを伝達するための技術を使用するよう動作可能である、例示的な実装における環境１００の図である。一般に、環境１００は、様々な異なるモダリティを介する通信を可能にする様々なデバイス、サービス、及びネットワークを含む。例えば、環境１００は、クライアントネットワーク１０４に接続されるクライアントデバイス１０２を含む。クライアントデバイス１０２は、従来のコンピュータ（例えば、デスクトップパーソナルコンピュータ、ラップトップコンピュータ等）、移動局、エンターテイメント機器、スマートフォン、ウェアラブルデバイス、ネットブック、ゲームコンソール、ハンドヘルドデバイス（例えば、タブレット）等といった様々な態様で構成され得る。
【００１２】
クライアントネットワーク１０４は、インターネット等の様々なネットワーク及び／又はサービスへの接続をクライアントデバイス１０２に提供するネットワークを表す。クライアントネットワーク１０４は、インターネットサービスプロバイダ（ＩＳＰ）等の特定のエンタープライズエンティティによって提供及び／又は管理され得る。例えば、クライアントネットワーク１０４は、ネットワーク接続をクライアントデバイス１０２に提供するローカルアクセスプロバイダ（ＬＡＰ）ネットワークを表す。クライアントアクセスネットワーク１０４は、ブロードバンドケーブル、デジタル加入者線（ＤＳＬ）、無線セルラ、無線データ接続（例えば、ＷｉＦｉ（登録商標））、Ｔキャリア（例えば、Ｔ１）、イーサネット（登録商標）等といった様々な異なる接続技術を介して接続をクライアントデバイス１０２に提供することができる。
【００１３】
クライアントネットワーク１０４は、クライアントネットワークコンポーネント１０６を含み、クライアントネットワークコンポーネント１０６は、クライアントネットワーク１０４を実装及び維持するためのハードウェア及びロジック等の、クライアントネットワーク１０４の異なるインフラストラクチャコンポーネントを表す。クライアントネットワークコンポーネント１０６の例は、ネットワークスイッチ、ルータ、ゲートウェイ等を含む。クライアントネットワークコンポーネント１０６は、例えば、クライアントネットワークコントローラ１０８及びクライアントゲートウェイ１１０を含む。クライアントネットワークコントローラ１０８は、クライアントネットワークコンポーネント１０６の接続及びルーティング等の、クライアントネットワーク１０４の様々な側面を管理する機能を表す。クライアントゲートウェイ１１０は、クライアントネットワーク１０４から他のネットワークにデータをルーティングするための機能を表す。クライアントゲートウェイ１１０の例は、ボーダールータ、顧客構内設備（ＣＰＥ）ルータ、及び／又は、他のネットワークとインタフェースをとってデータを交換する他のデバイスを含む。
【００１４】
様々な実施形態に従うと、クライアントネットワークコントローラ１０８は、様々なクライアントネットワークコンポーネント１０６の状態アウェアネスを保持する。例えば、クライアントネットワークコントローラ１０８は、（例えば、位置に関する）クライアントネットワークコンポーネント１０６のマッピングと、異なるクライアントネットワークコントローラ１０８についての信号品質、クライアントネットワークコントローラ１０８のサービス品質（ＱｏＳ）属性等といった、クライアントネットワークコントローラ１０８の性能属性と、を保持する。
【００１５】
クライアントネットワークコントローラ１０８は、例えば、クライアントネットワークコンポーネント１０６についてのルーティング情報にアクセスする接続及びロジックを含む。例えば、クライアントネットワークコントローラ１０８は、クライアントネットワークコンポーネント１０６についての内部ゲートウェイプロトコル（ＩＧＰ）及び／又はスパニングツリースイッチングトポロジにアクセスすることができる。これは、クライアントネットワークコントローラ１０８が、クライアントネットワーク１０４内の異なるデータルーティングパスを識別すること、及び、異なるルーティングパスをマッピング及び再マッピングすることを可能にする。
【００１６】
クライアントネットワーク１０４には、中間ネットワーク１１２が接続され、中間ネットワーク１１２は、エンドポイントネットワーク１１４に接続される。中間ネットワーク１１２及びエンドポイントネットワーク１１４は、ブロードバンドケーブル、デジタル加入者線（ＤＳＬ）、無線セルラ、無線データ接続（例えば、ＷｉＦｉ（登録商標））、Ｔキャリア（例えば、Ｔ１）、イーサネット（登録商標）等といった様々な異なるネットワーキング技術に従って、異なるそれぞれのエンティティによって、実装及び管理され得る異なるタイプ及びインスタンスの有線ネットワーク及び無線ネットワークを表す。
【００１７】
様々な実施形態に従うと、クライアントネットワーク１０４と中間ネットワーク１１２とエンドポイントネットワーク１１４との間の接続は、クライアントデバイス１０２とエンドポイント１１６との間の異なる通信パスを提供する。エンドポイント１１６は、クライアントデバイス１０２が通信できるデバイス及び／又は機能を表す。
【００１８】
中間ネットワーク１１２は、中間ネットワークコンポーネント１１８を含み、中間ネットワークコンポーネント１１８は、中間ネットワークコントローラ１２０及びエッジルータ１２２を含む。一般に、中間ネットワークコンポーネント１１８は、中間ネットワーク１１２を実装及び維持するためのハードウェア及びロジック等の、中間ネットワーク１１２の異なるインフラストラクチャコンポーネントを表す。中間ネットワークコントローラ１２０は、中間ネットワークコンポーネント１１８の接続及びルーティング等の、中間ネットワーク１１２の様々な側面を管理する機能を表す。エッジルータ１２２は、中間ネットワーク１１２から、クライアントネットワーク１０４及びエンドポイントネットワーク１１４等の他のネットワークにデータをルーティングするための機能を表す。様々な実施形態に従うと、エッジルータ１２２のうちの１以上は、クライアントゲートウェイ１１０のうちの１以上とインタフェースをとって、クライアントネットワーク１０４と中間ネットワーク１１２との間のピアリングポイントを提供する。
【００１９】
エンドポイントネットワーク１１４は、エンドポイントネットワークコンポーネント１２４を含み、エンドポイントネットワークコンポーネント１２４は、エンドポイントネットワークコントローラ１２６及びエンドポイントゲートウェイ１２８を含む。一般に、エンドポイントネットワークコントローラ１２６は、エンドポイントネットワークコンポーネント１２４の接続及びルーティング等の、エンドポイントネットワーク１１４の様々な側面を管理する機能を表す。エンドポイントゲートウェイ１２８は、エンドポイントネットワーク１１４から、中間ネットワーク１１２等の他のネットワークにデータをルーティングするための機能を表す。例えば、エッジルータ１２２のうちの１以上は、エンドポイントゲートウェイ１２８のうちの１以上とインタフェースをとって、エンドポイントネットワーク１１４と中間ネットワーク１１２との間のピアリングポイントを提供する。エンドポイントネットワークコンポーネント１２４の例示的な属性及び態様は、クライアントネットワークコンポーネント１０６に関して上述されている通りである。
【００２０】
様々な実施形態に従うと、クライアントデバイス１０２とエンドポイント１１６との間の通信は、クライアントデバイス１０２の通信クライアント１３０及びエンドポイント１１６の通信クライアント１３２を介して促進される。一般に、通信クライアント１３０、１３２は、クライアントデバイス１０２及びエンドポイント１１６を介する異なる形態の通信を可能にする機能を表す。通信クライアント１３０、１３２の例は、音声通信アプリケーション（例えば、ＶｏＩＰクライアント）、ビデオ通信アプリケーション、メッセージングアプリケーション、コンテンツ共有アプリケーション、及びこれらの組合せを含む。通信クライアント１３０、１３２は、例えば、異なる通信モダリティが組み合わされて多様な通信シナリオが提供されることを可能にする。
【００２１】
少なくともいくつかの実施形態において、通信クライアント１３０、１３２は、通信サービス１３４へのインタフェースを表す。一般に、通信サービス１３４は、クライアントデバイス１０２とエンドポイント１１６との間の通信の管理のための様々なタスクを実行するサービスを表す。通信サービス１３４は、例えば、通信クライアント１３０と通信クライアント１３２との間の通信セッションの開始、調整、及び終了を管理することができる。
【００２２】
通信サービス１３４は、多くの異なるネットワークにわたってプレゼンスを維持し、クラウドベースのサービス、分散サービス、ウェブベースのサービス等といった様々な異なるアーキテクチャに従って実装され得る。通信サービス１３４の例は、ＶｏＩＰサービス、オンライン会議サービス、ＵＣ＆Ｃサービス等を含む。少なくともいくつかの実施形態において、通信サービス１３４は、公衆交換電話網（「ＰＳＴＮ」）と通信する構内交換機（ＰＢＸ）として実装されて又はそのようなＰＢＸに接続されて、クライアントデバイス１０２とエンドポイント１１６等の他のエンドポイントとの間の音声通信が可能にされ得る。
【００２３】
本明細書で説明される、自律ネットワークについてのルーティングアウェアネスを伝達するための技術に関して、環境１００は、ネットワークアドバイザシステム１３６を含む。一般に、ネットワークアドバイザシステム１３６は、異なるエンティティにルーティングアウェアネスを伝達する機能を表す。「ルーティングアウェアネス」は、例えば、中間ネットワーク１１２を介してクライアントデバイス１０２とエンドポイント１１６との間でデータをルーティングするためのルーティングパスに関連する情報を指す。少なくともいくつかの実施形態において、ルーティングアウェアネスは、異なるネットワークの属性を含み、特定の通信セッションから独立している。さらに、ルーティングアウェアネスは、通信セッションの特定のインスタンス、通信セッションをルーティングすることに関与するネットワークの属性、通信セッションに参加するユーザ等についてのデータを含み得る。ルーティングアウェアネスに関するさらなる詳細は、以下で説明される。
【００２４】
様々な実施形態に従うと、ネットワークアドバイザシステム１３６は、クライアントネットワーク１０４のクライアントネットワークアドバイザ１３８、中間ネットワーク１１２の中間ネットワークアドバイザ１４０、及びエンドポイントネットワーク１１４のエンドポイントネットワークアドバイザ１４２とインタフェースをとる。ネットワークアドバイザシステム１３６は、異なるネットワークアドバイザからルーティングアウェアネスを受信することができ、異なるネットワークアドバイザ間でルーティングアウェアネスを伝達して、個々のネットワークが異なるネットワークのルーティング属性の状態アウェアネスを保持し、したがって、通信セッション性能を最適化するためにインテリジェントな決定をすることを可能にし得る。少なくともいくつかの実施形態において、ネットワークアドバイザは、ネットワークアドバイザシステム１３６のエージェントとして異なるネットワークに配置され得る。代替的に、ネットワークアドバイザは、ネットワークアドバイザシステム１３６とは独立して配置及び／又は実装されてもよい。
【００２５】
様々な実施形態に従うと、ネットワークアドバイザは、異なるネットワークに関連するルーティングアウェアネスを受信し、それらのそれぞれのネットワークのネットワークコンポーネント（例えば、それらのそれぞれのネットワークコントローラ）にルーティングアウェアネスを伝達し、それらのそれぞれのネットワークのルーティング属性の状態アウェアネスを保持する機能を表す。クライアントネットワークアドバイザ１３８は、例えば、クライアントネットワークコントローラ１０８及び／又は他のクライアントネットワークコンポーネント１０６とインタフェースをとり、クライアントネットワークコンポーネント１０６と、ネットワークアドバイザシステム１３６及び／又は他のネットワークアドバイザ等の他のエンティティと、の間の情報ポータルとして動作する機能を表す。
【００２６】
中間ネットワークアドバイザ１４０は、中間ネットワークコントローラ１２０及び／又は他の中間ネットワークコンポーネント１１８とインタフェースをとり、中間ネットワークコンポーネント１１８と、ネットワークアドバイザシステム１３６及び／又は他のネットワークアドバイザ等の他のエンティティと、の間の情報ポータルとして動作する機能を表す。様々な実施形態に従うと、中間ネットワーク１１２の少なくともいくつかはそれぞれ、中間ネットワークアドバイザ１４０の異なるそれぞれのインスタンスを含む。しかしながら、これは、限定的であると解釈されるべきではなく、以下で詳述されるように、中間ネットワーク１１２のうちのいくつかは、それぞれのネットワークアドバイザ１４０を含まず、したがって、本明細書で説明される、自律ネットワークについてのルーティングアウェアネスを伝達するための技術をサポートしない。本明細書における説明の目的で、そのようなネットワークは、「非サポートネットワーク」と呼ばれる。
【００２７】
エンドポイントネットワークアドバイザ１４２は、エンドポイントネットワークコントローラ１２６及び／又は他のエンドポイントネットワークコンポーネント１２４とインタフェースをとり、エンドポイントネットワークコンポーネント１２４と、ネットワークアドバイザシステム１３６及び／又は他のネットワークアドバイザ等の他のエンティティと、の間の情報ポータルとして動作する機能を表す。クライアントネットワークアドバイザ１３８、中間ネットワークアドバイザ１４０、及びエンドポイントネットワークアドバイザ１４２のうちの１つが具体的に言及されない限り、本明細書で使用される「ネットワークアドバイザ」という用語は、クライアントネットワークアドバイザ１３８、中間ネットワークアドバイザ１４０、及びエンドポイントネットワークアドバイザ１４２のうちの１つ又はこれらの全てを指し得る。
【００２８】
１以上の実施形態に従うと、ネットワークアドバイザシステム１３６は、例えば、通信サービス１３４によって管理される通信セッションのついてのルーティングアウェアネスを伝達するために、通信サービス１３４によって実装及び／又は維持され得る。代替的に、ネットワークアドバイザシステム１３６は、通信サービス１３４とは別々に且つ／又は独立して実装されてもよい。ネットワークアドバイザシステム１３６は、例えば、異なる通信クライアント及び通信サービス等の、通信セッションに関与する異なるエンティティ及び／又はシステムについてのルーティングアウェアネスを集約及び伝達することができる。
【００２９】
クライアントネットワークデータベース（ＤＢ）１４４が、クライアントネットワーク１０４について保持され、クライアントネットワーク１０４についての様々なタイプのルーティング情報をトラッキングする機能を表す。例えば、クライアントネットワークＤＢ１４４は、様々なクライアントネットワークコンポーネント１０６についての性能属性及び統計量等の、様々なクライアントネットワークコンポーネント１０６についての状態情報をトラッキングするために使用され得る。クライアントネットワークコントローラ１０８は、例えば、クライアントネットワークコンポーネント１０６についての状態情報をクライアントネットワークアドバイザ１３８に通信することができ、クライアントネットワークアドバイザ１３８は、クライアントネットワークＤＢ１４４の一部として、状態情報を記憶する。代替的又は追加的に、クライアントネットワークコントローラ１０８は、クライアントネットワークＤＢ１４４と直接インタラクトして、例えば、クライアントネットワークＤＢ１４４に情報を投入し、クライアントネットワークＤＢ１４４から情報を取得してもよい。様々な実施形態に従うと、クライアントネットワークＤＢ１４４からの情報を使用して、例えば、クライアントデバイス１０２の通信セッションについてのルーティングパスを決定するために、様々な決定をすることができる。以下でさらに詳述されるように、クライアントネットワークＤＢ１４４は、中間ネットワーク１１２及びエンドポイントネットワーク１１４等の他のネットワークについての状態情報を記憶するために使用されてもよい。
【００３０】
中間ネットワークデータベース（ＤＢ）１４６が、中間ネットワーク１１２について保持され、中間ネットワーク１１２についての様々なタイプの情報をトラッキングする機能を表す。様々な実施形態に従うと、中間ネットワーク１１２の個々はそれぞれ、中間ネットワークＤＢ１４６の異なるそれぞれのインスタンスを含む。例えば、個々の中間ネットワークＤＢ１４６は、それぞれの中間ネットワーク１１２のための中間ネットワークコンポーネント１１８についての性能属性及び統計量等の、それぞれの中間ネットワークコンポーネント１１８についての状態情報をトラッキングするために使用され得る。中間ネットワークＤＢはまた、他の中間ネットワーク１１２、クライアントネットワーク１０４、エンドポイントネットワーク１１４等といった他のネットワークについての状態情報を記憶することができる。中間ネットワークＤＢ１４６のさらなる態様及び機能は、クライアントネットワークＤＢ１４４に関して上述されている通りである。
【００３１】
エンドポイントネットワークデータベース（ＤＢ）１４８が、エンドポイントネットワーク１１４について保持され、エンドポイントネットワーク１１４についての様々なタイプの情報をトラッキングする機能を表す。例えば、エンドポイントネットワークＤＢ１４８は、様々なエンドポイントネットワークコンポーネント１２４についての性能属性及び統計量等の、様々なエンドポイントネットワークコンポーネント１２４についての状態情報をトラッキングするために使用され得る。エンドポイントネットワークＤＢはまた、中間ネットワーク１１２のうちの１以上、クライアントネットワーク１０４等といった他のネットワークについての状態情報を記憶することができる。エンドポイントネットワークＤＢ１４８のさらなる態様及び機能は、クライアントネットワークＤＢ１４４に関して上述されている通りである。
【００３２】
１以上の実施形態に従うと、ネットワークアドバイザシステム１３６は、システムネットワークデータベース（ＤＢ）１５０を保持し、システムネットワークＤＢ１５０は、環境１００の異なるネットワークに関連する様々な情報をトラッキングする機能を表す。例えば、システムネットワークＤＢ１５０は、クライアントネットワーク１０４、中間ネットワーク１１２、及びエンドポイントネットワーク１１４のネットワーク属性のアクティブ状態アウェアネス（例えば、ルーティングアウェアネス）を保持する。システムネットワークＤＢ１５０は、例えば、特定のネットワークが、本明細書で説明される、ルーティングアウェアネスの伝達のためのプロトコルをサポートしているか、部分的にサポートしているか、又はサポートしていないかをトラッキングする。システムネットワークＤＢ１５０によってトラッキングされ得るネットワーク属性の他の例は、異なるネットワークにわたる通信セッションの現在の性能属性及び過去の性能属性等の性能属性を含む。
【００３３】
システムネットワークＤＢ１５０はまた、個々の通信セッションについての識別子、個々の通信セッションに関与するエンドポイント、個々の通信セッションがルーティングされる途中のネットワーク、通信セッションの性能属性等といった、様々な現在の通信セッション及び過去の通信セッションについてのルーティングアウェアネスをトラッキングすることができる。本明細書でさらに詳述されるように、通信セッションに関連するルーティングアウェアネスは、通信セッション自体のデータから帯域外で伝達され得る。したがって、通信セッションデータの処理及びルーティングに関する決定は、実際の通信セッションデータを処理する且つ／又は扱うことなく、なされ得る。
【００３４】
少なくともいくつかの実施形態において、通信セッション及び／又はネットワーク状態に関連するルーティングアウェアネスは、通信セッションに影響を及ぼし得る状態のエンドツーエンドアウェアネスを提供するために、異なるネットワークアドバイザ間で伝達され得る。例えば、ネットワークアドバイザは、互いと通信して、ネットワークアドバイザシステム１３６とは独立して、ルーティングアウェアネスを共有することができる。代替的又は追加的に、ルーティングアウェアネスは、個々のネットワークアドバイザからネットワークアドバイザシステム１３６に伝達されてもよく、ネットワークアドバイザシステム１３６が、システムネットワークＤＢ１５０の一部として、そのような情報を集約してもよい。ネットワークアドバイザシステム１３６は、ルーティングアウェアネスが、通信セッションをルーティング及び処理することに関与するエンティティに伝達されることを可能にするために、異なるネットワーク間でルーティングアウェアネスを共有することができる。さらに別の実施形態として、個々のネットワークコントローラは、ネットワークアドバイザシステム１３６と直接通信して、ルーティングアウェアネスを送信及び受信してもよい。
【００３５】
一般に、クライアントネットワーク１０４、個々の中間ネットワーク１１２、及びエンドポイントネットワーク１１４はそれぞれ、それらのそれぞれのピアリングポイント、例えば、ゲートウェイ、エッジルータ等を介して互いと接続する個々の自律ネットワークを表す。異なるネットワークは、例えば、異なるインフラストラクチャ及びサービスプロバイダ等の異なるエンティティによって実装及び管理され得る。したがって、本明細書で説明される実装は、ルーティングアウェアネスが、通信セッションをルーティング及び／又は処理することに関与する異なる自律ネットワークの間で伝達され得る様々な異なる環境を提供する。
【００３６】
様々な実施形態に従うと、クライアントネットワーク１０４、中間ネットワーク１１２のうちの１以上、及びエンドポイントネットワーク１１４は、ソフトウェア定義ネットワーク（ＳＤＮ）として実装され得る。そのような実装において、ＳＤＮネットワークのためのそれぞれのネットワークアドバイザは、ルーティングアウェアネスを受信、処理、及び伝達することができるＳＤＮコントローラを表す。
【００３７】
本明細書で説明される様々なエンティティは、複数及び単数の両方の実装において言及され得る。エンティティが、複数及び単数の両方の実装において説明されるとき、単数の実装への言及は、複数の実装のインスタンスを指す。例えば、１つの中間ネットワーク１１２への言及は、複数の中間ネットワーク１１２の特定のインスタンスを指す。
【００３８】
本明細書で説明される技術が動作し得る例示的な環境例を説明したが、次に、１以上の実施形態に従った、ルーティングアウェアネスを伝達する例示的なやり方について検討する。
【００３９】
ルーティングアウェアネスの伝達
様々な実施形態に従うと、技術は、ネットワーク状態についての情報、通信セッションについての情報等といったルーティングアウェアネスを様々なエンティティに動的に通知するために使用され得る。例えば、ネットワーク及び通信セッションの様々な属性を含む通知イベントが生成され得る。本明細書で説明される、自律ネットワークについてのルーティングアウェアネスを伝達するための技術に関して、通知イベントは、異なるエンティティに伝達され得る。
【００４０】
少なくともいくつかの実施形態において、通知イベントは、ルーティングアウェアネスを構成して、通信セッションに関与する様々なエンティティにルーティングアウェアネスを通信するために使用され得る通信アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して構成され得る。例えば、通信ＡＰＩは、ネットワーク及び／又は通信セッションの属性が特定され得るダイアログイベント及びセッションイベントを特定することができる。例えば、通信ＡＰＩを使用して生成された通知イベントを介して伝達され得る以下のイベント及び属性について検討する。
【００４１】
ダイアログイベント−これらのイベントは、通信セッションの開始、更新、及び終了等の、通信セッションの様々な部分に適用される。ダイアログイベントは、以下の例示的な属性のうちの１以上を含み得る。
【００４２】
（１）ネットワーク識別子：この属性は、ダイアログイベントが受信される元のネットワーク等のネットワークを識別するために使用され得る。少なくともいくつかの実施形態において、ネットワーク識別子は、特定のネットワークを識別する自律システム（ＡＳ）番号を含み得る。環境１００に関して、例えば、ネットワーク識別子は、クライアントネットワーク１０４、中間ネットワーク１１２、及び／又はエンドポイントネットワーク１１４を識別することができる。
【００４３】
（２）タイムスタンプ：この属性は、通信セッションの開始、通信セッション中に発生する更新、及び通信セッションの終了（例えば、終わり）についてのタイムスタンプを指定するために使用され得る。
【００４４】
（３）送信元ＩＰアドレス：この属性は、通信セッション中のメディアの送信元であるデバイス、例えば、通信セッションを開始するデバイスについてのＩＰアドレスを指定するために使用され得る。環境１００に関して、例えば、送信元ＩＰアドレスは、クライアントデバイス１０２又はエンドポイント１１６についてのものであり得る。
【００４５】
（４）宛先ＩＰアドレス：この属性は、通信セッションの一部としてメディアを受信するデバイスについてのＩＰアドレスを指定するために使用され得る。環境１００に関して、例えば、宛先ＩＰアドレスは、クライアントデバイス１０２又はエンドポイント１１６についてのものであり得る。
【００４６】
（５）トランスポートタイプ：この属性は、通信セッションについての１つのトランスポートタイプ又はトランスポートタイプの組合せを指定するために使用され得る。トランスポートタイプの例は、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）等を含む。
【００４７】
（６）送信元ポート：この属性は、送信元デバイス、例えば、上述した送信元ＩＰアドレスによって識別される送信元デバイスにおけるポートについての識別子を指定するために使用され得る。
【００４８】
（７）宛先ポート：この属性は、宛先デバイス、例えば、上述した宛先ＩＰアドレスによって識別される宛先デバイスにおけるポートについての識別子を指定するために使用され得る。
【００４９】
（８）メディアタイプ：この属性は、通信セッションの一部として送信される且つ／又は送信されている１つのメディアタイプ及び／又は複数のメディアタイプを指定するために使用され得る。本明細書の別の箇所で説明されるように、通信セッションは、複数の異なるタイプのメディアを含み得る。したがって、メディアタイプ属性は、例えば、本明細書で説明されるサービスポリシーを適用するために、通信セッションにおけるメディアタイプを識別するために使用され得る。
【００５０】
（９）帯域幅推定：この属性は、通信セッションに対して割り当てられる推定帯域幅を指定するために使用され得る。推定帯域幅は、例えば、ユーザに関連付けられた特権レベル、通信セッションに含まれる１つのタイプのメディア及び／又は複数のタイプのメディア等といった様々なファクタに基づき得る。
【００５１】
（１０）Ｔｏ：この属性は、通信セッションにおけるメディアの送信先のユーザを識別するために使用され得る。
【００５２】
（１１）Ｆｒｏｍ：この属性は、通信セッションにおけるメディアの送信元のユーザを識別するために使用され得る。
【００５３】
（１２）コーデック：この属性は、通信セッションの一部として利用される１以上のコーデックを指定するために使用され得る。
【００５４】
（１３）エラーコード：この属性は、通信セッションの一部として発生し得るエラーについての様々なエラーコードを指定するために使用され得る。例えば、エラーは、通信セッションの開始中に発生するエラー、通信セッション中に発生したエラー、通信セッションが終了されるときに発生するエラー等を含み得る。
【００５５】
セッション問題イベント−これらのイベントは、通信セッションがエラー、性能劣化等を経験したときに生成及び適用され得る。セッション問題イベントは、ダイアログイベントに関して上述した属性のうちの１以上を含み得、以下の属性のうちの１以上をさらに含んでもよい。
【００５６】
（１）平均オピニオン評点（ＭＯＳ）劣化：この属性は、通信セッションについてのＭＯＳを指定するために使用され得る。この属性は、例えば、通信セッションの全般的な品質が低下したことを示すために使用され得る。
【００５７】
（２）ジッタ到着時間間隔：この属性は、通信セッションについてのジッタ値を指定するために使用され得る。この属性は、例えば、１以上のジッタ値が増加したこと、例えば、１以上のジッタ値が、指定された閾ジッタ値を超えたことを示すために使用され得る。
【００５８】
（３）パケット損失率：この属性は、通信セッションについてのパケット損失率を指定するために使用され得る。この属性は、例えば、パケット損失率が増加したこと、例えば、パケット損失率が、指定された閾パケットロス率値を超えたことを示すために使用され得る。
【００５９】
（４）ラウンドトリップ遅延（ＲＴＤ）：この属性は、通信セッションにおけるパケットについてのＲＴＤ値を指定するために使用され得る。この属性は、例えば、パケットについてのＲＴＤ値が増加したこと、例えば、パケットについてのＲＴＤ値が、指定された閾ＲＴＤ値を超えたことを示すために使用され得る。
【００６０】
（５）隠匿比率：この属性は、通信セッションを開始した後に観測される発話時間に対する隠匿時間（concealment  time）の累積比率を指定するために使用され得る。この属性は、例えば、隠匿比率が増加したこと、例えば、隠匿比率が、指定された閾隠匿比率値を超えたことを示すために使用され得る。
【００６１】
ネットワーク性能イベント−これらのイベントは、様々なネットワーク属性に加えて、特定のネットワークについて観測される挙動及び性能パラメータを指定するために生成及び適用され得る。例えば、ネットワーク性能イベントは、特定のエンティティ（例えば、ネットワークアドバイザ）にルーティングアウェアネスを提供するために、特定のエンティティに通信され得る。ネットワーク性能イベントは、ダイアログイベントに関して上述した属性のうちの１以上を含み得、以下の属性のうちの１以上をさらに含んでもよい。
【００６２】
（１）サポートネットワーク：この属性は、特定のネットワークが、ルーティングアウェアネスを伝達するためのプロトコルをサポートしている（「サポート」）か、部分的にサポートしている（「部分的」）か、又はルーティングアウェアネスの伝達をサポートしていない（「非サポート」）かを示すために使用され得る。少なくともいくつかの実施形態において、ルーティングアウェアネスプロトコルは、このプロトコルを他のプロトコルと区別するカスタムプロトコルＩＤ及び／又はプロトコル番号を介して識別され得る。
【００６３】
（２）平均オピニオン評点（ＭＯＳ）レベル：この属性は、特定のネットワークを移動する通信セッションについて観測されるＭＯＳを示すために使用され得る。ネットワークについてのＭＯＳは、例えば、複数の異なる通信セッションにわたってＭＯＳを平均化することによって決定され得る。
【００６４】
（３）ジッタ到着時間間隔：この属性は、特定のネットワークにおける通信セッションデータについて観測されるジッタ値を指定するために使用され得る。
【００６５】
（４）パケット損失率：この属性は、特定のネットワークにおける通信セッションデータについて観測されるパケット損失率を指定するために使用され得る。
【００６６】
（５）ラウンドトリップ遅延（ＲＴＤ）：この属性は、特定のネットワークにおける通信セッションデータについて観測されるＲＴＤ値を指定するために使用され得る。
【００６７】
（６）隠匿比率：この属性は、特定のネットワークにおける通信セッションデータについて観測される発話時間に対する隠匿時間の観測される累積比率を示すために使用され得る。
【００６８】
（７）ルーティングポリシー：この属性は、セキュリティポリシー、サービスレベルポリシー、サービス品質（ＱｏＳ）ポリシー等といった異なるルーティングポリシーを指定するために使用され得る。ルーティングポリシーは、例えば、特定のネットワーク、個々の通信セッション等に固有であり得る。
【００６９】
（８）ネットワーク優先：この属性は、通信セッションをルーティングするために利用されるよう優先され得る特定のネットワーク等の、特定のネットワークについての優先レベルを識別するために使用され得る。少なくともいくつかの実施形態において、ネットワークのホワイトリスト、グレーリスト、及び／又はブラックリストが実装され得る。ネットワークホワイトリストは、例えば、ルーティングアウェアネスを伝達することをサポートしている、通信セッションデータを処理するときに許容可能な性能品質に関連付けられている、有効なセキュリティプロシージャを実施すると知られている、等の優先されるネットワークを識別する。ネットワークブラックリストは、非サポートであると知られているネットワーク、旧式のセキュリティプロトコルを実装するネットワーク、安全でない位置（例えば、地理的位置）におけるネットワーク等といった、様々な基準を満たさないと知られているネットワークを識別することができる。ネットワークグレーリストは、知られていない属性を有するネットワーク、例えば、ホワイトリスト又はブラックリストに入れられるのに十分な情報のないネットワークを識別することができる。
【００７０】
したがって、本明細書で説明される様々な通知は、上述した属性のうちの１以上を含み得、様々なエンティティにルーティングアウェアネスを伝達するために使用され得る。少なくともいくつかの実施形態において、属性は、特定のネットワーク及び／又はネットワークコンポーネントの性能属性を特徴づけるために、特定のネットワーク及び／又はネットワークコンポーネントに対応付けられ得る。
【００７１】
ルーティングアウェアネスを伝達する例示的なやり方を説明したが、次に、１以上の実施形態に従った、ルーティングアウェアネスを伝達するためのいくつかの例示的な実施シナリオについて検討する。
【００７２】
例示的な実施シナリオ
以下のセクションにおいて、１以上の実施形態に従った、ルーティングアウェアネスを伝達するための例示的な実施シナリオが説明される。実施シナリオは、上述した環境１００及び／又は任意の他の適切な環境において実施され得る。
【００７３】
図２は、１以上の実施形態に従った、ルーティングアウェアネスを集約するための例示的な実施シナリオ２００を示している。シナリオ２００は、環境１００に関して上記で紹介された様々なエンティティ及びコンポーネントを含む。
【００７４】
シナリオ２００において、通信セッション２０２が、クライアントデバイス１０２とエンドポイント１１６との間で開始される又は開始されるようスケジュールされている。例えば、ユーザが、エンドポイント１１６との通信セッション２０２を開始する要求を入力する。代替的に、通信セッション２０２は、スケジュールされているミーティング又は他のカレンダーイベントに関連する等、未来時に発生するようスケジュールされたスケジュールされている通信セッションを表す。
【００７５】
通信セッションを開始する要求に応じて、通信セッション２０２についてのルーティングパスが、クライアントデバイス１０２とエンドポイント１１６との間で決定される。様々な実施形態に従うと、通信セッションをルーティングするためのルーティングパスは、クライアントネットワークコントローラ１０８、中間ネットワークコントローラ１２０、及び／又はエンドポイントネットワークコントローラ１２６によって適用される最短パスアルゴリズム等の任意の適切なアルゴリズムを使用して選択される。少なくともいくつかの実施形態において、ルーティングパスは、ボーダーゲートウェイプロトコル（ＢＧＰ）等の特定のルーティングプロトコルに基づいて導出される。
【００７６】
さらに通信セッション２０２を開始する要求に応じて、通信クライアント１３０は、クライアントネットワークアドバイザ１３８に開始ダイアログイベント２０４を送信する。開始ダイアログイベント２０４は、通信セッション２０２を一意に識別する情報を含む。例えば、上述した通知イベントが、送信元識別子及び宛先識別子、ポート番号、セッションタイプ、コーデック等といった、通信セッション２０２の属性を通信するために使用され得る。
【００７７】
クライアントネットワークアドバイザ１３８は、開始ダイアログイベント２０４に基づいて、通信セッション２０２についての情報に関して、クライアントネットワークコントローラ１０８にセッション問合せ２０６を通信する。一般に、セッション問合せ２０６は、通信セッション２０２を識別する等の、開始ダイアログイベント２０４からの情報を含む。セッション問合せ２０６はまた、通信セッション２０２についてのルーティング情報を要求する。例えば、セッション問合せ２０６は、トレースルートプロシージャを実行して、通信セッション２０２がエンドポイント１１６にルーティングされる又はルーティングされるであろう途中のネットワーク及び／又はネットワークコンポーネントを特定する要求を含む。
【００７８】
クライアントネットワークコントローラ１０８は、セッション問合せ２０６に応じて、通信セッション２０２が中間ネットワーク１１２に向けてクライアントネットワーク１０４を出る際の特定のクライアントゲートウェイ１１０についての識別子等の、クライアントネットワーク１０４内の通信セッション２０２についてのルーティングパス情報を決定する。少なくともいくつかの実施形態において、クライアントネットワークコントローラ１０８は、通信セッションがルーティングされる途中の異なるネットワーク（例えば、中間ネットワーク１１２）を決定する。例えば、クライアントネットワークコントローラ１０８は、トレースルートプロシージャを実行して、そのようなネットワークを特定することができる。
【００７９】
クライアントネットワークコントローラ１０８は、ルーティング情報を含むセッション応答２０８を生成する。セッション応答２０８にはまた、クライアントネットワーク１０４におけるルーティングパスの性能属性等の他の情報も投入され得る。そのような性能属性の例は、ルーティングパスにわたって観測される、利用可能な帯域幅、パケット誤り率、ジッタ、パケット損失率等を含む。クライアントネットワークコントローラ１０８は、次いで、クライアントネットワークアドバイザ１３８にセッション応答２０８を通信する。
【００８０】
シナリオ２００に関して、クライアントネットワークアドバイザ１３８は、通信セッション２０２に関与するエンドポイントについての識別子、ルーティング情報（例えば、通信セッションがクライアントネットワーク１０４から出る際のクライアントゲートウェイ１１０）、ルーティングパスの性能属性等といった、開始ダイアログイベント２０４及びセッション応答２０８からの情報が投入されたクライアントセッション通知２１０を生成する。クライアントネットワークアドバイザ１３８は、ネットワークアドバイザシステム１３６にクライアントセッション通知２１０を通信する。
【００８１】
ネットワークアドバイザシステム１３６は、クライアントセッション通知２１０を受信し、この通知において指定されている様々な属性及び情報を確認する。ネットワークアドバイザシステム１３６は、これらの属性に基づいて、通信セッション２０２がルーティングされる途中の中間ネットワーク１１２を特定する。中間ネットワーク１１２は、ネットワークについて指定される自律システム（ＡＳ）番号を介して等、様々な方法で特定され得る。
【００８２】
ネットワークアドバイザシステム１３６は、通信セッション２０２のルーティングパスについてのネットワーク識別子（ＩＤ）を、システムネットワークＤＢ１５０において識別されるネットワークと照合しようと試みる。一般に、システムネットワークＤＢ１５０は、個々のネットワークＩＤを個々のネットワークの属性に対応付けている。異なるネットワーク属性の例は、本明細書の別の箇所で詳述され、個々のネットワークが、本明細書で説明される、ルーティングアウェアネスの伝達のためのプロトコルをサポートしているかどうかを含む。
【００８３】
少なくともいくつかの実施形態において、システムネットワークＤＢ１５０は、クライアントデバイス１０２とエンドポイント１１６との間の異なるネットワークルートを指定する変更ルーティングテーブルを含む。異なるルートについて、システムネットワークＤＢ１５０は、個々の中間ネットワーク１１２がサポートネットワークであるかどうかと、個々の中間ネットワーク１１２についての性能属性と、を指定することができる。システムネットワークＤＢ１５０はまた、個々の中間ネットワーク１１２が、ネットワークホワイトリスト、ネットワークブラックリスト、又はネットワークグレーリストにリストされるかを指定することができる。ネットワークホワイトリスト、ネットワークブラックリスト、及びネットワークグレーリストの例は、上述されている。
【００８４】
ネットワークアドバイザシステム１３６は、ネットワークＩＤをシステムネットワークＤＢ１５０と照合したことに基づいて、特定されたネットワークのうちの１以上のネットワークの属性を含む通信セッション２０２のルーティングパスのルーティングアウェアネスを生成する。ネットワークアドバイザシステム１３６は、クライアントネットワークアドバイザ１３８にルーティングアウェアネス２１２ａを通信し、通信セッション２０２のルーティングパスに沿った中間ネットワークアドバイザ１４０にルーティングアウェアネス２１２ｂを通信し、エンドポイントネットワークアドバイザ１４２にルーティングアウェアネス２１２ｎを通信する。一般に、ルーティングアウェアネス２１２ａ、２１２ｂ、２１２ｎは、通信セッション２０２のルーティングパスに沿った異なるネットワークの属性を含み、その例は、上述されている。
【００８５】
１以上の実施形態に従うと、ルーティングアウェアネス２１２ａ、２１２ｂ、２１２ｎは、通信セッション２０２をルーティングするためにどの中間ネットワーク１１２が使用されるかを指定する、異なるネットワークアドバイザに対する命令を含み得る。例えば、特定の中間ネットワーク１１２が、プロトコルサポートネットワークであると判定され、他の中間ネットワークが、非サポートであると判定された場合、ルーティングアウェアネス２１２ａ、２１２ｂ、２１２ｎは、プロトコルサポートネットワークが非サポートネットワークの代わりに使用されることを指定することができる。そのような命令に基づいて、通信セッション２０２は、１以上の異なる中間ネットワーク１１２を介してリルーティングされ（rerouted）得る。
【００８６】
代替的又は追加的に、ルーティングアウェアネス２１２ａ、２１２ｂ、２１２ｎは、他のネットワークより優先されるネットワークについてのＩＤ等の、ネットワークについての情報又は提案を提供してもよい。個々のネットワークアドバイザ及び／又はネットワークコントローラは、通信セッションをルーティングするためのルーティングパスを決定する際にルーティングアウェアネス２１２ａ、２１２ｂ、２１２ｎを考慮することができる。例えば、特定のネットワークのためのネットワークアドバイザは、特定のネットワークについてのルーティングポリシーに基づいて、提案されたネットワークに通信セッション２０２をルーティング（例えば、リルーティング）するかどうかを決定することができる。異なるルーティングポリシーの例は、上述されている。
【００８７】
上述したように、中間ネットワーク１１２のうちの１以上は、プロトコルサポートネットワークとはみなされない。したがって、少なくともいくつかの実施形態において、ルーティングアウェアネスは、そのような非サポートネットワークには伝達されない。
【００８８】
したがって、シナリオ２００は、少なくともいくつかの実施形態において、ネットワークアドバイザシステム１３６が、異なるネットワークからのルーティングアウェアネスを集約するよう機能できることを例示している。ネットワークアドバイザシステム１３６は、例えば、ルーティングアウェアネスを受信、集約、及び伝達することができる中央サービスとして機能する。
【００８９】
図３は、１以上の実施形態に従った、自律ネットワーク間でルーティングパスアウェアネスを決定するための例示的な実施シナリオ３００を示している。シナリオ３００は、環境１００に関して上記で紹介された様々なエンティティ及びコンポーネントを含む。少なくともいくつかの実施形態において、シナリオ３００は、シナリオ２００に対する代替のシナリオ又は追加のシナリオを表す。
【００９０】
シナリオ３００において、通信セッション３０２が、クライアントデバイス１０２とエンドポイント１１６との間で開始される又は開始されるようスケジュールされている。したがって、クライアントネットワークアドバイザ１３８は、クライアントネットワーク１０４にわたる通信セッション３０２についての初期パスルーティング情報を確認する。パスルーティング情報を確認する例示的なやり方は、上述されており、クライアントネットワークコントローラ１０８にパスルーティング情報について問い合わせることを含み得る。クライアントネットワークコントローラ１０８は、例えば、ＢＧＰを使用して、クライアントデバイス１０２とエンドポイント１１６との間の最短パスを最初に確認する。
【００９１】
初期ルーティングパス情報で始まって、クライアントネットワークアドバイザ１３８は、通信セッション３０２をルーティングする次の中間ネットワーク１１２を特定する。例えば、クライアントネットワークアドバイザ１３８は、最短パス決定の一部として特定される次の中間ネットワーク１１２が、プロトコルサポートネットワークであるかどうかを確認する。クライアントネットワークアドバイザ１３８は、次のネットワークについてのＩＤをクライアントネットワークＤＢ１４４に対してチェックすること、次の中間ネットワーク１１２がサポートネットワークであるかどうかに関して次の中間ネットワーク１１２に問い合わせること、次の中間ネットワーク１１２がサポートネットワークであるかどうかに関してネットワークアドバイザシステム１３６に問い合わせること等によって等、様々な方法で、次の中間ネットワーク１１２が、プロトコルサポートネットワークであるかどうかを確認することができる。
【００９２】
次の中間ネットワーク１１２が、サポートネットワークであると特定された場合、クライアントネットワークアドバイザ１３８は、次の中間ネットワーク１１２がアウェアネスプロトコルサポートネットワークであることを示すために、クライアントネットワークＤＢ１４４を更新することができる。例えば、次の中間ネットワーク１１２がサポートネットワークであることを示すために、次の中間ネットワーク１１２を識別するレコードエントリが作成又は更新され得る。様々な実施形態に従うと、クライアントネットワークアドバイザ１３８はまた、ネットワークアドバイザシステム１３６に通知を通信することができ、ネットワークアドバイザシステム１３６は、次の中間ネットワーク１１２がサポートネットワークであることを示すために、システムネットワークＤＢ１５０を更新することができる。
【００９３】
シナリオ３００の目的で、次の中間ネットワーク１１２がプロトコルサポートネットワークであると特定されなかったと仮定する。したがって、クライアントネットワークアドバイザ１３８は、他の中間ネットワーク１１２がプロトコルサポートネットワークであるかどうかについて問い合わせる。クライアントネットワークアドバイザ１３８は、他の中間ネットワーク１１２についてのＩＤをクライアントネットワークＤＢ１４４に対してチェックすること、他の中間ネットワーク１１２がサポートネットワークであるかどうかに関して他の中間ネットワーク１１２に問い合わせること、他の中間ネットワーク１１２がサポートネットワークであるかどうかに関してネットワークアドバイザシステム１３６に問い合わせること等によって等、様々な方法で、他の中間ネットワーク１１２がプロトコルサポートネットワークであるかどうかを確認することができる。
【００９４】
クライアントネットワークアドバイザ１３８は、プロトコルサポートネットワークについての問合せに基づいて、サポートネットワークである異なる中間ネットワーク１１２を特定する。したがって、クライアントネットワークアドバイザ１３８は、通信セッション３０２をルーティングするための優先されるネットワークであるとして異なる中間ネットワーク１１２を特定するルーティング通知３０４を、クライアントネットワークコントローラ１０８に通信する。ルーティング通知３０４は、例えば、次の中間ネットワーク１１２から異なる中間ネットワーク１１２に通信セッション３０２をリルーティングする命令を含み得る。代替的に、ルーティング通知３０４は、異なる中間ネットワーク１１２が、通信セッション３０２についての優先されるルーティングパスであることを特定してもよく、クライアントネットワークコントローラ１０８が、異なる中間ネットワーク１１２に通信セッション３０２をリルーティングするどうかを決定してもよい。例えば、クライアントネットワークコントローラ１０８は、クライアントネットワーク１０４についてのネットワークポリシーに基づいて、異なる中間ネットワーク１１２へのリルーティングが優先される且つ／又は許可されるかどうかを確認してもよい。
【００９５】
シナリオ３００を続けると、通信セッション３０２が、異なる中間ネットワーク１１２にリルーティングされる。様々な実施形態に従うと、リルーティングは、通信セッション３０２が進行中である間に動的に発生し得る。通信セッション３０２がまだ開始されていない例において、リルーティングは、通信セッション３０２が開始されるときに、通信セッション３０２が異なる中間ネットワーク１１２を介してルーティングされるように、通信セッション３０２についてのルーティングパスを再構成するように実施されてもよい。
【００９６】
シナリオ３００に関して、クライアントネットワークアドバイザ１３８によって行われる反復的パス決定が、通信セッション３０２がエンドポイント１１６にルーティングされる途中の中間ネットワーク１１２のための中間ネットワークアドバイザ１４０によって行われる。例えば、反復的パス決定３０６が、異なる中間ネットワーク１１２のための中間ネットワークアドバイザ１４０に加えて、通信セッション３０２がルーティングされる途中の中間ネットワーク１１２のための他の中間ネットワークアドバイザ１４０によって行われる。個々の中間ネットワークアドバイザ１４０は、例えば、それぞれ反復的パス決定３０６を行う。
【００９７】
様々な実施形態に従うと、反復的パス決定３０６は、特定の中間ネットワーク１１２がサポートネットワークであるかどうかに基づいて通信セッション３０２をルーティングするための優先されるパス候補を特定するプロシージャを表す。例えば、反復的パス決定３０６は、プロトコルサポート中間ネットワーク１１２の最高割合（highest  proportion）を含む、クライアントネットワーク１０４とエンドポイントネットワーク１１４との間の最短パスを特定しようと試みる。反復的パス決定３０６はまた、上述したルーティングポリシー等の他のネットワークポリシーに基づき得る。一般に、反復的パス決定３０６は、例えば、通信セッション３０２をルーティングするために、ルーティングアウェアネスを生成する例示的なやり方を表す。
【００９８】
個々の中間ネットワークアドバイザ１４０は、反復的パス決定３０６に基づいて、中間ネットワークコントローラ１２０のそれぞれのインスタンスに、ルーティング通知３０８を通信することができる。様々な実施形態に従うと、ルーティング通知３０８は、異なる中間ネットワーク１１２に通信セッション３０２をリルーティングする命令を含み得る。代替的に、ルーティング通知３０８は、異なる中間ネットワーク１１２が、通信セッション３０２についての優先されるルーティングパスであることを特定してもよく、それぞれの中間ネットワークコントローラ１２０が、それに応じて通信セッション３０２をリルーティングするかどうかを決定してもよい。例えば、中間ネットワークコントローラ１２０は、それぞれの中間ネットワーク１１２についてのネットワークポリシーに基づいて、異なる中間ネットワーク１１２へのリルーティングが優先される且つ／又は許可されるかどうかを確認することができる。
【００９９】
したがって、シナリオ３００は、ルーティングアウェアネスが、優先されるパス候補を特定するためにネットワークごとに生成され得ること、及び、通信セッションについてのルーティングパスが、プロトコルサポートネットワークを含むように、ルーティングアウェアネスに基づいて、先制的且つ／又は動的に構成及び再構成され得ること、を例示している。
【０１００】
図４は、１以上の実施形態に従った、通信セッションをリルーティングするための例示的な実施シナリオ４００を示している。シナリオ４００は、環境１００に関して上記で紹介された様々なエンティティ及びコンポーネントを含む。理解を単純化するために、環境１００の所定の要素は、視覚的に省略されるが、説明の目的で暗に存在するものとみなされる。少なくともいくつかの実施形態において、シナリオ４００は、シナリオ２００、３００の例及び／又は拡張を表す。
【０１０１】
シナリオ４００において、通信セッション４０２が、クライアントデバイス１０２とエンドポイント１１６との間で開始される又は開始されるようスケジュールされている。通信セッション４０２は、例えば、通信セッション２０２、３０２の例を表す。したがって、初期ルーティングパス４０４が、最短パスプロトコル、例えば、ＢＧＰに基づく等して、通信セッション４０２について決定される。図示されるように、ルーティングパス４０４は、中間ネットワーク１１２ａ、中間ネットワーク１１２ｂ、及び中間ネットワーク１１２ｎを含む。
【０１０２】
シナリオ４００に関して、ルーティングアウェアネス４０６が、通信セッション４０２について生成される。ルーティングアウェアネス４０６は、様々な方法で生成され得、その例が、上述されており、以下で説明される。例えば、ルーティングアウェアネス４０６は、シナリオ２００に関して説明されたように、ネットワークアドバイザシステム１３６から伝達されたルーティングアウェアネスに基づいて生成され得る。代替的又は追加的に、ルーティングアウェアネス４０６は、シナリオ３００に関して説明されたように、個々のネットワークによって実行されるプロシージャを介して生成されてもよい。
【０１０３】
様々な実施形態に従うと、ルーティングアウェアネス４０６は、通信セッション４０２をルーティングするための優先されるパス候補を特定する。ルーティングアウェアネス４０６は、例えば、中間ネットワーク１１２ｃが中間ネットワーク１１２ｂより優先されることを指定する。例えば、中間ネットワーク１１２ｃは、プロトコルサポートネットワークであると特定され得るのに対し、中間ネットワーク１１２ｂは、非プロトコルサポートネットワーク又は未同定（uncharacterized）ネットワークであると特定され得る。
【０１０４】
したがって、初期ルーティングパス４０４は、ルーティングアウェアネス４０６に基づいて、変更ルーティングパス４０８を生成するよう再構成され得る。変更ルーティングパス４０８は、中間ネットワーク１１２ｂを介してではなく、中間ネットワーク１１２ｃを介して、通信セッション４０２をルーティングする。様々な実施形態に従うと、変更ルーティングパス４０８は、クライアントネットワーク１０４とエンドポイントネットワーク１１４との間の厳密な最短パス決定に基づくルーティングパス４０４より長いルーティングパスであり得る。しかしながら、これは、限定的であることを意図するものではなく、他の例示的な実施形態においては、変更ルーティングパス４０８は、ルーティングパス４０４と等しい又はルーティングパス４０４より短いルーティング距離であってもよい。
【０１０５】
１以上の実施形態に従うと、変更ルーティングパス４０８は、通信セッション４０２の開始前に先制的に実装され得る。代替的又は追加的に、変更ルーティングパス４０８は、通信セッション４０２の開始後に、通信セッション４０２が進行中である間に動的に適用されてもよい。例えば、変更ルーティングパス４０８は、ルーティングパス４０４から変更ルーティングパス４０８に通信セッション４０２を動的にリルーティングするために適用されてもよい。
【０１０６】
少なくともいくつかの実施形態において、上記シナリオにおいて説明された様々な通知、問合せ、及び応答は、上記で詳述された通信ＡＰＩを介して等、上述した例示的な通知イベントを使用して構成され得る。例えば、通信ＡＰＩに関して説明された様々な属性についての値が、シナリオ２００〜４００に関して説明された様々な情報を伝達するために使用され得る。したがって、通信ＡＰＩは、通信セッションに関与する異なるエンティティの間でルーティングアウェアネスを伝達するために利用され得る。
【０１０７】
これらのシナリオにおいて示されるように、ルーティングアウェアネスは、通信セッションから帯域外で、例えば、通信セッションとは独立しているデータストリームを使用して、伝達される。例えば、様々な通知及び応答は、通信セッションに関与するエンティティの間で伝達され得るルーティングアウェアネスのインスタンスを表す。
【０１０８】
これらのシナリオが、クライアントデバイス１０２とエンドポイント１１６との間の通信セッションに関して説明されたが、本明細書で説明される技術は、複数の通信セッション、例えば、複数の同時通信セッションについてのルーティングアウェアネスを伝達するために使用されてもよいことを理解されたい。例えば、様々な問合せ、応答、及び通知は、クライアントデバイス１０２、エンドポイント１１６、及び明示されていない他のエンドポイントを伴う会議呼の一部等の、複数の同時通信セッションについてのルーティングアウェアネスを決定及び伝達するために使用されてもよい。別の例として、通信セッションは、クライアントデバイス１０２からエンドポイント１１６を含む複数の他のエンドポイントへのマルチキャスト通信イベントの一部であってもよい。したがって、ルーティングアウェアネスは、複数の異なるルーティングパスに沿って、同時に発生している又は同時に実施されるようスケジュールされている個々の通信セッションについて、伝達されてもよい。
【０１０９】
少なくともいくつかの実施形態において、上述したシナリオは、通信セッションが開始されるようにスケジュールされていることを検出したことに応じて、例えば、通信セッションが開始される前に、実施され得る。カレンダーイベントは、例えば、通信セッションが、スケジュールされた将来の日時に開始されるようスケジュールされていることを示し得る。したがって、スケジュールされている通信セッションについてのルーティングアウェアネスが、通信セッションの開始前に生成及び伝達され得る。
【０１１０】
したがって、これらのシナリオは、スケジュールされた日時前に通信セッションのルーティングアウェアネスを伝達するために実施され得る。そのような先制的なルーティングアウェアネスは、個々のネットワークが、スケジュールされている通信セッションを処理するためのリソースを確保することを可能にするため等の様々な目的で、使用され得る。
【０１１１】
少なくともいくつかの実施形態において、これらのシナリオは、通信セッション中に複数回等、通信セッションが進行中である間に実施され得る。例えば、これらのシナリオは、ネットワーク及び通信セッション状態のアクティブ状態アウェアネスを保持するために、通信セッション中に周期的に実施され得る。代替的又は追加的に、これらのシナリオは、特定のネットワーク内のネットワーク問題及び／又はセッション問題のインジケーション等のトリガーイベントに応じて実施されてもよい。したがって、上述したシナリオに従って伝達されるルーティングアウェアネスは、セッション開始、セッション診断及び修復、セッション終了、セッション後解析等のため等、様々な目的で利用され得る。
【０１１２】
したがって、ネットワーク及び通信セッションに関連する状態のルーティングアウェアネスは、通信セッションをルーティング及び／又は処理することに関与するエンティティの間で共有され得る。そのようなルーティングアウェアネスは、通信セッションの性能を最適化する、通信セッションにおいて発生する且つ／又は発生し得るエラーを軽減する等のため等、様々な形で利用され得る。
【０１１３】
いくつかの例示的な実施シナリオを説明したが、次に、１以上の実施形態に従ったいくつかの例示的なプロシージャにつて検討する。
【０１１４】
例示的なプロシージャ
以下の説明において、１以上の実施形態に従った、自律ネットワークについてのルーティングアウェアネスを伝達するためのいくつかの例示的なプロシージャが記載される。例示的なプロシージャは、図１の環境１００、図８のシステム８００、及び／又は任意の他の適切な環境において使用され得る。プロシージャは、例えば、上述した実施シナリオを実装するための例示的なプロシージャを表す。少なくともいくつかの実施形態において、様々なプロシージャについて示されるステップは、自動的に実行され、ユーザインタラクションとは独立しているものであり得る。
【０１１５】
図５は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施に従った、ルーティングアウェアネスを伝達するための例示的なプロシージャを示している。
【０１１６】
ステップ５００は、複数の自律ネットワークについてのルーティングアウェアネスを集約する。ルーティングアウェアネスを集約する例示的なやり方は、シナリオ２００〜４００を参照して等、上述されている。例えば、ルーティングアウェアネスは、ネットワークアドバイザシステム１３６等の、個々の自律ネットワークとは別個に実装されるシステムによって受信及び集約され得る。例えば、ネットワークアドバイザシステム１３６は、個々の自律ネットワークからルーティングパス属性を受信することができ、ルーティングパス属性を集約してルーティングアウェアネスを生成することができる。代替的又は追加的に、ルーティングアウェアネスは、異なるネットワーク間の、例えば、異なるネットワークアドバイザ間のルーティングパス属性の通信に基づいて、集約されてもよい。
【０１１７】
一般に、ルーティングアウェアネスは、通信セッションについてのルーティングパスに関連する様々なタイプの情報を含む。ルーティングアウェアネスは、例えば、特定のネットワークが、プロトコルサポートネットワークであるか又は非サポートネットワークであるかを示す。ルーティングアウェアネスに含まれ得る他の例示的な属性は、通知イベント及び／又は通信ＡＰＩに関して上記で詳述されている。ルーティングアウェアネスは、例えば、通信セッションがルーティングされ得る途中の自律ネットワークの性能属性を指定する。
【０１１８】
少なくともいくつかの実施形態において、ルーティングパスアウェアネスは、通信セッションが開始される又は開始されるようスケジュールされているというインジケーションに応じて集約され得る。環境１００に関して、例えば、ネットワークアドバイザのうちの１以上が、ネットワークのうちの１以上を伴う通信セッションのインジケーションを受信する。インジケーションは、通信クライアント（例えば、通信クライアント１３０）から、ネットワークコントローラから、ネットワークアドバイザシステム１３６から等の通知を介する等、様々な形で受信され得る。
【０１１９】
少なくともいくつかの実施形態において、スケジュールされている通信セッションが、スケジュールされている通信セッションを含むカレンダーイベントに基づく等して、検出され得る。例えば、ユーザは、カレンダーアプリケーションを利用して、ウェブミーティング、会議呼、マルチキャストセッション等といったカレンダーイベントを将来の日時にスケジュールすることができる。ユーザは、日時、招待されるユーザ、関与する通信メディアのタイプ等といった、カレンダーイベントについてのパラメータを指定することができる。したがって、通信セッションが開始されるようスケジュールされていることを確認することは、通信セッションを含むカレンダーイベントを検出することに基づき得る。
【０１２０】
ステップ５０２は、複数の自律ネットワーク間でルーティングアウェアネスを伝達する。ルーティングアウェアネスは、例えば、通信セッションのデータストリームから帯域外で通信される。
【０１２１】
少なくともいくつかの実施形態において、ルーティングアウェアネスは、ネットワークツーネットワーク通信を介して等、自律ネットワーク自体の間で通信される。例えば、異なる自律ネットワークのためのネットワークアドバイザは、互いとの直接通信に関与して、ルーティングアウェアネスを交換することができる。
【０１２２】
代替的又は追加的に、ルーティングアウェアネスは、ネットワークアドバイザシステム１３６等の、自律ネットワークとは別個に実装されるサービス及び／又はシステムによって伝達されてもよい。
【０１２３】
上述したように、ルーティングアウェアネスは、異なるやり方で実装され得る。例えば、ルーティングアウェアネスは、特定の優先されるネットワークを介して通信セッションをルーティングする命令を含み得る。代替的又は追加的に、ルーティングアウェアネスは、通信セッションをルーティングするための特定の優先されるネットワークを特定し、ネットワーク関連エンティティ（例えば、ネットワークコントローラ）が、優先されるネットワークに通信セッションをルーティングするかどうかを決定することを可能にし得る。したがって、様々な実施形態に従うと、ルーティングアウェアネスは、指示的又は情報的であり得る。
【０１２４】
図６は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、ルーティングパス優先を示すための例示的なプロシージャを示している。
【０１２５】
ステップ６００は、通信セッションについてのルーティングパスのインジケーションを受信する。インジケーションは、例えば、２つのエンドポイント間の通信セッションが開始される又は開始されるようスケジュールされているというインジケーションに対応する。例えば、特定の自律ネットワークのためのネットワークアドバイザが、通信クライアントから等、通信セッションが開始されるという通知を受信する。少なくともいくつかの実施形態において、ルーティングパスのインジケーションは、ルーティングパスのネットワーク及び／又はネットワークコンポーネントについての識別子を介して等、通信セッションについてのルーティングパスに沿ったネットワークを特定することができる。様々な実施形態に従うと、通信セッションは、２つのエンドポイント間の仮想通信セッションに対応してもよく、必ずしも実際の通信セッションである必要はない。
【０１２６】
ステップ６０２は、通信セッションについてのルーティングパスに沿った特定の自律ネットワークが、通信セッションについてのルーティングアウェアネスを伝達するためのプロトコルをサポートしていないことを確認する。特定の自律ネットワークは、例えば、最短パスアルゴリズムを使用して算出されたルーティングパスに基づいて決定され得る。ネットワークがサポートネットワークであるかどうかを判定する例示的なやり方は上述されている。
【０１２７】
ステップ６０４は、通信セッションをルーティングするために利用可能でありプロトコルをサポートしている異なる自律ネットワークを特定する。特定のネットワークのためのクライアントネットワークアドバイザが、例えば、特定のネットワークのネットワークコントローラ及び／又はルーティングテーブルに、通信セッションをルーティングするために利用可能である別のネットワークについて問い合わせる。
【０１２８】
ステップ６０６は、通信セッションをルーティングするために異なる自律ネットワークが特定の自律ネットワークより優先されることを示すために、通信セッションについてのルーティングアウェアネスを更新する。ルーティングアウェアネスは、例えば、特定のネットワークを異なるネットワークで置き換えた、通信セッションについての変更ルーティングパスを含み得る。
【０１２９】
ステップ６０８は、通信セッションをルーティングすることに関与するエンティティに、更新されたルーティングアウェアネスを通信する。例えば、更新されたルーティングアウェアネスは、ルーティングパスが、異なる自律ネットワークを含み且つ／又は特定の自律ネットワークを含まないように再構成されることを可能にするために、特定の自律ネットワークのためのネットワークコントローラに通信され得る。代替的又は追加的に、更新されたルーティングアウェアネスは、更新されたルーティングアウェアネスが、集約されて、通信セッションをルーティングすることに関与する他のエンティティに伝達され得るように、外部サービス（例えば、ネットワークアドバイザシステム１３６）に通信され得る。
【０１３０】
上述したように、更新されたルーティングアウェアネスは、通信セッションをリルーティングする命令として、且つ／又は、通信セッションをルーティングすることに関与する他のエンティティ（例えば、ネットワークコントローラ）の裁量で実装され得る情報として、伝達され得る。
【０１３１】
図７は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、ルーティングパス属性の変化のルーティングアウェアネスを伝達するための例示的なプロシージャを示している。
【０１３２】
ステップ７００は、自律ネットワークについてのルーティング属性の変化のインジケーションを受信する。例えば、自律ネットワークが本明細書で説明されたルーティングアウェアネスプロトコルをサポートしているというインジケーションが受信され得る。自律ネットワークは、例えば、ルーティングアウェアネスプロトコルを以前にはサポートしていなかったかもしれないが、ルーティングアウェアネスプロトコルをサポートするよう再構成され得る。
【０１３３】
変化することがあるルーティング属性の他の例は、例示的な通知イベント及び例示的な通信ＡＰＩに関して上述されている。ルーティング属性の変化は、例えば、セッション品質の低下のインジケーション及び／又は自律ネットワークにわたって通信セッションにおいて発生するセッションエラーの増加のインジケーションに基づき得る。そのようなインジケーションの例は、ジッタ、パケット損失率、パケット誤り率等の増加を含む。少なくともいくつかの実施形態において、ルーティング属性の変化は、通信セッションの品質が低下したことを指定するユーザ入力に基づいて示され得る。
【０１３４】
ルーティングパス属性の変化は、ネットワーク輻輳の増加、１以上のネットワークコンポーネントの不具合、利用可能な帯域幅の減少等といった、自律ネットワーク内のネットワーク状態の変化に基づき得る。
【０１３５】
様々な実施形態に従うと、変化のインジケーションは、自律ネットワークのためのネットワークアドバイザ等の、自律ネットワークに関連付けられているエンティティによって受信され得る。追加的又は代替的に、変化のインジケーションは、異なる自律ネットワークのためのネットワークアドバイザ、ネットワークアドバイザシステム１３６等といった別のエンティティによって受信されてもよい。
【０１３６】
様々な実施形態に従うと、変化のインジケーションは、通信セッションが進行中である間に受信される。自律ネットワークは、例えば、通信セッションについての全ルーティングパスを構成する自律ネットワークのグループ内に現れる。
【０１３７】
ステップ７０２は、自律ネットワークのルーティング属性の変化のルーティングアウェアネスを伝達する。例えば、自律ネットワークのためのネットワークアドバイザは、他の自律ネットワークのための他のネットワークアドバイザ、ネットワークアドバイザシステム１３６等といった他のエンティティに、変化のルーティングアウェアネスを伝達する。少なくともいくつかの実施形態において、ネットワークアドバイザシステム１３６は、他の自律ネットワークのための１以上のネットワークアドバイザに、変化のルーティングアウェアネスを伝達することができる。
【０１３８】
少なくともいくつかの実施形態において、ルーティングパス属性の変化のルーティングアウェアネスは、通信セッションのルーティングパスが再構成されることを可能にし得る。例えば、変化が、自律ネットワークにわたる通信セッションにおけるエラー及び／又は問題を示す場合、ルーティングパスは、自律ネットワーク周辺で再算出され得る。例えば、ルーティングパス属性の変化を検出したネットワークアドバイザは、それぞれのネットワークコントローラに通知することができ、それぞれのネットワークコントローラは、自律ネットワーク周辺でルーティングパスを再算出することができる。ルーティングパスは、例えば、問題がある自律ネットワークが回避されるように、異なる自律ネットワークを含むように再算出され得る。
【０１３９】
代替的に、自律ネットワークがルーティングアウェアネスプロトコルをサポートしていること、及び／又は、自律ネットワークの性能属性がセッション品質の増大を示すこと、を変化が示す場合、通信セッションについてのルーティングパスは、自律ネットワークを含むように再算出され得る。例えば、ルーティングパスは、ルーティングアウェアネスプロトコルをサポートしていない且つ／又はセッション問題を経験している現在の自律ネットワークの代わりに自律ネットワークを含むように再算出され得る。
【０１４０】
様々な実施形態に従うと、上述した方法は、セッション開始前、セッション開始と同時、通信セッション中、セッション終了時、及び通信セッション後等、通信セッションの様々な段階で複数回実行され得る。例えば、ルーティングアウェアネスは、通信セッションに影響を及ぼし得るルーティング状態の動的且つアクティブな状態アウェアネスを保持するために、通信セッションが進行中である間にリアルタイムに伝達及び更新され得る。
【０１４１】
ルーティングアウェアネスはまた、例えば、異なる自律ネットワークにおけるルーティング状態を自律ネットワークに通知し、自律ネットワークが通信セッションのルーティングに関してインテリジェントな決定をすることを可能にするために、通信セッションの開始前に先制的に通信され得る。ルーティングアウェアネスは、通信セッション中に発生したネットワーク性能のシステム診断及び統計解析のため等、通信セッションの終了後に通信されることもある。
【０１４２】
したがって、本明細書で説明された技術は、通信セッションをルーティングすることに関与する異なるエンティティにルーティングアウェアネスを伝達するための様々なシナリオ及び実装を提供する。ルーティングアウェアネスは、そのようなエンティティが、通信セッションデータのルーティング及び処理に関して十分な情報に基づく決定をすることを可能にする。
【０１４３】
いくつかの例示的なプロシージャを説明したが、次に、１以上の実施形態に従った例示的なシステム及びデバイスについて検討する。
【０１４４】
例示的なシステム及びデバイス
図８は、本明細書で説明された様々な技術を実装することができる１以上のコンピューティングシステム及び／又はコンピューティングデバイスを表す例示的なコンピューティングデバイス８０２を含む例示的なシステムを、概括的に８００で示している。例えば、図１を参照して上述したクライアントデバイス１０２及び／又はエンドポイント１１６は、コンピューティングデバイス８０２として具現化され得る。コンピューティングデバイス８０２は、例えば、サービスプロバイダのサーバ、クライアントに関連付けられたデバイス（例えば、クライアントデバイス）、オンチップシステム、及び／又は任意の他の適切なコンピューティングデバイス若しくはコンピューティングシステムであり得る。
【０１４５】
図示される例示的なコンピューティングデバイス８０２は、互いと通信可能に説明される、処理システム８０４、１以上のコンピュータ読み取り可能な媒体８０６、及び１以上の入力／出力（Ｉ／Ｏ）インタフェース８０８を含む。図示されていないが、コンピューティングデバイス８０２は、様々なコンポーネントを互いに接続するシステムバス又は他のデータ・コマンド転送システムをさらに含み得る。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのいずれかを利用するプロセッサバス若しくはローカルバス等の異なるバス構造の任意の１つ又は組合せを含み得る。制御線及びデータ線等の様々な他の例も企図されている。
【０１４６】
処理システム８０４は、ハードウェアを使用して１以上の動作を実行する機能を表す。したがって、処理システム８０４は、プロセッサ、機能ブロック等として構成され得るハードウェア要素８１０を含むものとして図示されている。これは、特定用途向け集積回路又は１以上の半導体を使用して形成される他のロジックデバイスとしてのハードウェアによる実装物を含み得る。ハードウェア要素８１０は、ハードウェア要素８１０が形成される材料又はハードウェア要素８１０において使用される処理機構によって限定されるものではない。例えば、プロセッサは、１以上の半導体及び／又はトランジスタ（例えば、電子集積回路（ＩＣ））を含み得る。そのようなコンテキストにおいて、プロセッサ実行可能な命令は、電子的に実行可能な命令であり得る。
【０１４７】
コンピュータ読み取り可能な媒体８０６は、メモリ／ストレージ８１２を含むものとして図示されている。メモリ／ストレージ８１２は、１以上のコンピュータ読み取り可能な媒体に関連付けられたメモリ／ストレージ能力を表す。メモリ／ストレージ８１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）等）及び／又は不揮発性媒体（読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ８１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブ等）に加えて、取外し可能な媒体（例えば、フラッシュメモリ、取外し可能なハードドライブ、光ディスク等）を含み得る。コンピュータ読み取り媒体８０６は、さらに以下で説明されるように、様々な他の態様で構成されてもよい。
【０１４８】
１以上の入力／出力インタフェース８０８は、ユーザが様々な入力デバイスを使用してコンピューティングデバイス８０２にコマンド及び情報を入力することを可能に、様々な出力デバイスを使用して情報がユーザ及び／又は他のコンポーネント若しくはデバイスに提示されることを可能にする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロホン（例えば、音声認識及び／又は発話入力用）、スキャナ、タッチ機能（例えば、物理的タッチを検出するよう構成される静電容量式センサ又は他のセンサ）、（例えば、タッチを伴わない動きをジェスチャとして検出するために、赤外周波数等の非可視波長又は可視波長を使用することができる）カメラ等を含む。出力デバイスの例は、ディスプレイデバイス（例えば、モニタ又はプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等を含む。したがって、コンピューティングデバイス８０２は、ユーザインタラクションをサポートするために、さらに以下で説明されるように、様々な態様で構成されてもよい。
【０１４９】
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的コンテキストにおいて本明細書で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用される「モジュール」、「機能」、「エンティティ」、及び「コンポーネント」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。本明細書で説明された技術の特徴は、プラットフォーム非依存であり、これは、本技術が、様々なプロセッサを有する様々な商用コンピューティングプラットフォーム上に実装され得ることを意味する。
【０１５０】
説明されたモジュール及び技術の実装物は、何らかの形態のコンピュータ読み取り可能な媒体に記憶されてもよいし、そのような媒体を介して伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピューティングデバイス８０２がアクセスできる様々な媒体を含み得る。限定ではなく例として、コンピュータ読み取り可能な媒体は、「コンピュータ読み取り可能な記憶媒体」及び「コンピュータ読み取り可能な信号媒体」を含み得る。
【０１５１】
「コンピュータ読み取り可能な記憶媒体」は、単なる信号伝送、搬送波、又は信号自体ではなく、情報の永続的記憶を可能にする媒体及び／又はデバイスを指し得る。コンピュータ読み取り可能な記憶媒体は、信号自体を含まない。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、ロジック要素／回路、又は他のデータ等の情報の記憶に適した方法又は技術で実装された揮発性及び不揮発性の取外し可能及び取外し不可能な媒体及び／又は記憶デバイス等のハードウェアを含む。コンピュータ読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するのに適しておりコンピュータがアクセスできる他の記憶デバイス、有形媒体、若しくは製品を含み得るが、これらに限定されるものではない。
【０１５２】
「コンピュータ読み取り可能な信号媒体」は、ネットワークを介して等、コンピューティングデバイス８０２のハードウェアに命令を伝送するよう構成された信号伝送媒体を指し得る。信号媒体は、典型的には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを、搬送波、データ信号、又は他の伝送機構等の変調されたデータ信号で具現化することができる。信号媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、無線周波数（ＲＦ）、赤外線、及び他の無線媒体等の無線媒体と、を含む。
【０１５３】
前記したように、ハードウェア要素８１０及びコンピュータ読み取り可能な媒体８０６は、本明細書で説明された技術の少なくともいくつかの態様を実装するためにいくつかの実施形態において使用され得るハードウェア形態で実装される命令、モジュール、プログラマブルデバイスロジック、及び／又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）、及び、シリコンによる他の実装物又は他のハードウェアデバイスのコンポーネントを含み得る。このコンテキストにおいて、ハードウェア要素は、ハードウェア要素に加えて、実行される命令を記憶するために利用されるハードウェアデバイス、例えば、前述したコンピュータ読み取り可能な記憶媒体によって具現化される命令、モジュール、及び／又はロジックによって定義されるプログラムタスクを実行する処理デバイスとして動作することができる。
【０１５４】
上記の組合せも、本明細書で説明された様々な技術及びモジュールを実装するために使用されてよい。したがって、ソフトウェア、ハードウェア、又はプログラムモジュール及び他のプログラムモジュールが、何らかの形態のコンピュータ読み取り可能な記憶媒体上に具現化される且つ／又は１以上のハードウェア要素８１０によって具現化される１以上の命令及び／又はロジックとして実装され得る。コンピューティングデバイス８０２は、ソフトウェアモジュール及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実行するよう構成され得る。したがって、ソフトウェアとしてコンピューティングデバイス８０２によって実行可能であるモジュールの実装は、例えば、処理システムのハードウェア要素８１０及び／又はコンピュータ読み取り可能な記憶媒体を使用することによって、少なくとも部分的にハードウェアで実現され得る。命令及び／又は機能は、本明細書で説明された技術、モジュール、及び例を実装する１以上の製品（例えば、１以上のコンピューティングデバイス８０２及び／又は処理システム８０４）によって実行可能／動作可能であり得る。
【０１５５】
図８にさらに示されるように、例示的なシステム８００は、パーソナルコンピュータ（ＰＣ）、テレビジョンデバイス、及び／又はモバイルデバイス上でアプリケーションを実行するときにシームレスなユーザエクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームをプレイしている間、ビデオを見ている間等に１つのデバイスから次のデバイスに遷移するときに、共通のユーザエクスペリエンスのために全ての３つの環境で実質的に同様に動作する。
【０１５６】
例示的なシステム８００において、複数のデバイスが、中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルにあってもよいし、複数のデバイスからリモートに位置してもよい。１つの実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続される１以上のサーバコンピュータのクラウドであり得る。
【０１５７】
１つの実施形態において、この相互接続アーキテクチャは、複数のデバイスのユーザに共通のシームレスなエクスペリエンスを提供するために、機能が複数のデバイスにわたって提供されることを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し得、中央コンピューティングデバイスは、デバイスに合わせて調整されるとともになお全てのデバイスに共通であるエクスペリエンスをデバイスに提供することを可能にするプラットフォームを使用する。１つの実施形態において、ターゲットデバイスのクラスが作成され、エクスペリエンスは、デバイスの一般クラスに合わせて調整される。デバイスのクラスは、デバイスの物理的特徴、使用のタイプ、又は他の共通の特性によって定義され得る。
【０１５８】
様々な実施形態において、コンピューティングデバイス８０２は、コンピュータ８１４、モバイル８１６、及びテレビジョン８１８使用のため等、様々な異なる構成をとることができる。これらの構成の各々は、一般に異なる構造及び能力を有し得るデバイスを含み、したがって、コンピューティングデバイス８０２は、異なるデバイスクラスのうちの１以上に応じて構成され得る。例えば、コンピューティングデバイス８０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ８１４クラスとして実装され得る。
【０１５９】
コンピューティングデバイス８０２はまた、携帯電話機、ポータブル音楽プレーヤ、ポータブルゲームデバイス、タブレットコンピュータ、ウェアラブルデバイス、マルチスクリーンコンピュータ等といったモバイルデバイスを含むデバイスのモバイル８１６クラスとして実装され得る。コンピューティングデバイス８０２はまた、カジュアルな視聴環境で一般により大型のスクリーンを有する又はそのようなスクリーンに接続されるデバイスを含むデバイスのテレビジョン８１８クラスとして実装され得る。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
【０１６０】
本明細書で説明された技術は、コンピューティングデバイス８０２のこれらの様々な構成によってサポートされ得るものであり、本明細書で説明された技術の特定の例に限定されるものではない。例えば、ネットワークアドバイザ、通信サービス１３４、及び／又はネットワークアドバイザシステム１３６に関して説明された機能は、全て又は部分的に、以下で説明されるプラットフォーム８２２を介して「クラウド」８２０を通じて等、分散システムの使用を介して実装されてもよい。
【０１６１】
クラウド８２０は、リソース８２４のためのプラットフォーム８２２を含む且つ／又は表す。プラットフォーム８２２は、クラウド８２０のソフトウェアリソース及びハードウェア（例えば、サーバ）の基礎をなす機能を抽象化する。リソース８２４は、コンピューティングデバイス８０２からリモートにあるサーバ上でコンピュータ処理が実行されている間に利用され得るアプリケーション及び／又はデータを含み得る。リソース８２４はまた、インターネット、及び／又は、セルラネットワーク若しくはＷｉ−Ｆｉ（登録商標）ネットワーク等の加入者ネットワークを介して提供されるサービスを含み得る。
【０１６２】
プラットフォーム８２２は、コンピューティングデバイス８０２を他のコンピューティングデバイスに接続するためのリソース及び機能を抽象化することができる。プラットフォーム８２２はまた、リソースのスケーリングを抽象化して、プラットフォーム８２２を介して実装されるリソース８２４の遭遇する要求に対応するレベルのスケールを提供するよう機能することができる。したがって、相互接続されるデバイスの実施形態において、本明細書で説明された機能の実装は、システム８００にわたって分散されてもよい。例えば、機能は、部分的にコンピューティングデバイス８０２上に実装されるとともに、クラウド８２０の機能を抽象化するプラットフォーム８２２を介して実装されてもよい。
【０１６３】
本明細書で説明された技術を実行するために実装され得るいくつかの方法が、本明細書で説明されている。方法の態様は、ハードウェア、ファームウェア、若しくはソフトウェア、又はこれらの組合せで実装され得る。方法が、１以上のデバイスによって実行される動作を指定するステップのセットとして図示されているが、それぞれのブロックによる動作を実行するために図示される順序に必ずしも限定されるわけではない。さらに、特定の方法に関して図示される動作は、１以上の実施形態に従った異なる方法の動作と組み合わされることもあるし、且つ／又は、交換されることもある。方法の態様は、環境１００に関して上述した様々なエンティティ間のインタラクションを介して実行され得る。
【０１６４】
結び
自律ネットワークについてのルーティングアウェアネスを伝達するための技術が説明された。実施形態が、構造的特徴及び／又は方法的動作に特有の言葉で説明されたが、請求項において定められる実施形態は、説明された特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、特定の特徴及び動作は、特許請求される実施形態を実施する例示的な形態として開示されている。
【図１】
2017528961.tif 000003
【図２】
2017528961.tif 000004
【図３】
2017528961.tif 000005
【図４】
2017528961.tif 000006
【図５】
2017528961.tif 000007
【図６】
2017528961.tif 000008
【図７】
2017528961.tif 000009
【図８】
2017528961.tif 000010
【国際調査報告】
2017528961.tif 000011