(57)【特許請求の範囲】
【請求項１】
複数の仮想ネットワークを含む仮想ネットワーキング・システム内での量子化輻輳通知のための方法であって、各仮想ネットワークは、物理ネットワーク・インターフェース・カード、および、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含み、
前記物理ネットワーク・インターフェース・カードが、
前記仮想ネットワークの仮想マシンに、前記仮想ネットワークを反応ポイントとして識別する、対応する仮想反応ポイント識別子を割り当てることであって、前記仮想反応ポイント識別子は、前記仮想マシンによって生成されたパケット・フローに関連付けられ、更に、前記パケット・フローを配送するための対応する仮想トンネル・エンド・ポイントにも関連付けられる、割り当てること、および
前記仮想トンネル・エンド・ポイントを介して配送される、各パケット・フローの各パケットに、前記対応する仮想反応ポイント識別子を含む輻輳通知タグを付けること、ならびに、
受信したパケットのサンプリングに基づいてパケット輻輳を検出したことに応じて、
輻輳ポイントを識別し、対応する仮想トンネル・エンド・ポイントに関連付けられる仮想輻輳ポイント識別子と、前記輻輳通知タグに含まれ、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンの仮想反応ポイント識別子とを含む、輻輳通知メッセージを生成すること、および、
前記対応する仮想トンネル・エンド・ポイントを介して、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンに前記輻輳通知メッセージを転送すること、
を含む、方法。
【請求項２】
輻輳通知メッセージを受信する各仮想マシンについて、前記輻輳通知メッセージに基づき、前記仮想マシンに対応する少なくとも１つのパケット生成レートを調整すること、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記物理ネットワーク・インターフェース・カードが、
各パケットに関するトンネリング・パラメータを受信すること、および、
前記パケットに関するトンネリング・パラメータに基づき、最外部輻輳通知タグおよび最内部輻輳通知タグを含むように、各パケットをカプセル化すること、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記物理ネットワーク・インターフェース・カードが、
少なくとも１つのオーバーレイ・スイッチおよび少なくとも１つの非オーバーレイ・スイッチを含む複数のスイッチを介して、パケットを配送すること、
をさらに含み、
各オーバーレイ・スイッチは、パケットの最内部輻輳通知タグを処理し、
各非オーバーレイ・スイッチはパケットの最外部輻輳通知タグを処理する、
請求項３に記載の方法。
【請求項５】
複数の仮想ネットワークを備える仮想ネットワーキング・システムであって、
各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを備え、
各仮想ネットワークについて、
前記仮想ネットワークの仮想マシンに、前記仮想ネットワークを反応ポイントとして識別する、対応する仮想反応ポイント識別子を割り当てることであって、前記仮想反応ポイント識別子は、前記仮想マシンによって生成されたパケット・フローに関連付けられ、更に、前記パケット・フローを配送するための対応する仮想トンネル・エンド・ポイントにも関連付けられる、割り当てること、および
前記仮想トンネル・エンド・ポイントを介して配送される、各パケット・フローの各パケットに、前記対応する仮想反応ポイント識別子を含む輻輳通知タグを付けること、ならびに、
受信したパケットのサンプリングに基づいてパケット輻輳を検出したことに応じて、
輻輳ポイントを識別し、対応する仮想トンネル・エンド・ポイントに関連付けられる仮想輻輳ポイント識別子と、前記輻輳通知タグに含まれ、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンの仮想反応ポイント識別子とを含む、輻輳通知メッセージを生成すること、および、
前記対応する仮想トンネル・エンド・ポイントを介して、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンに前記輻輳通知メッセージを転送すること、
を実行するために構成されたトラフィック管理モジュールを含む、
物理ネットワーク・インターフェース・カード（ＮＩＣ）をさらに備える、仮想ネットワーキング・システム。
【請求項６】
輻輳通知メッセージを受信する各仮想マシンについて、前記仮想マシンに対応する少なくとも１つのパケット生成レートは、前記輻輳通知メッセージに基づいて調整される、
請求項５に記載のシステム。
【請求項７】
各仮想ネットワークに関する各物理ＮＩＣは、
各パケットに関するトンネリング・パラメータを受信すること、および、
前記パケットに関するトンネリング・パラメータに基づき、最外部輻輳通知タグおよび最内部輻輳通知タグを含むように、各パケットをカプセル化すること、
を実行するためにさらに構成される、請求項６に記載のシステム。
【請求項８】
少なくとも１つのオーバーレイ・スイッチおよび少なくとも１つの非オーバーレイ・スイッチを含む、パケットを配送するための複数のスイッチをさらに備え、
各オーバーレイ・スイッチは、パケットの最内部輻輳通知タグを処理し、
各非オーバーレイ・スイッチはパケットの最外部輻輳通知タグを処理する、
請求項７に記載のシステム。
【請求項９】
複数の仮想ネットワークを備える仮想ネットワーキング・システム内での量子化輻輳通知のためのコンピュータ・プログラムであって、各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを備え、
コンピュータに、
前記仮想ネットワークの仮想マシンに、前記仮想ネットワークを反応ポイントとして識別する、対応する仮想反応ポイント識別子を割り当てることであって、前記仮想反応ポイント識別子は、前記仮想マシンによって生成されたパケット・フローに関連付けられ、更に、前記パケット・フローを配送するための対応する仮想トンネル・エンド・ポイントにも関連付けられる、割り当てること、および
前記仮想トンネル・エンド・ポイントを介して配送される、各パケット・フローの各パケットに、前記対応する仮想反応ポイント識別子を含む輻輳通知タグを付けること、ならびに、
受信したパケットのサンプリングに基づいてパケット輻輳を検出したことに応じて、
輻輳ポイントを識別し、対応する仮想トンネル・エンド・ポイントに関連付けられる仮想輻輳ポイント識別子と、前記輻輳通知タグに含まれ、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンの仮想反応ポイント識別子とを含む、輻輳通知メッセージを生成すること、および、
前記対応する仮想トンネル・エンド・ポイントを介して、前記輻輳ポイントでのパケット輻輳に寄与している仮想マシンに前記輻輳通知メッセージを転送すること、
を実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、オーバーレイ仮想環境に関し、具体的には、仮想ネットワーキング・システムにおける量子化輻輳通知（ＱＣＮ）に関する。
【背景技術】
【０００２】
オーバーレイを使用するネットワーク仮想化は、ハイパーバイザおよびネットワーキング・ベンダによるサポートが可能な、拡張可能仮想ローカル・エリア・ネットワーク（ＶｘＬＡＮ）カプセル化およびネットワーク仮想化ジェネリック・ルーティング・カプセル化（ＮＶＧＲＥ）などの、カプセル化を使用する。ＶｘＬＡＮまたはＮＶＧＲＥのカプセル化を使用するために、ハイパーバイザ仮想スイッチはそれぞれのオーバーレイ技術をサポートするように修正される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
カプセル化タイプとの不適合により、異なるパケット形式を変換する変換ゲートウェイを使用することが必要となる。変換ゲートウェイは通信のボトルネックであり、通信性能に影響を与える。
【課題を解決するための手段】
【０００４】
一実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システム内での量子化輻輳通知のための方法を提供する。各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。各パケット・フローの各パケットには、パケット・フローの対応する仮想フロー識別子を含む輻輳通知タグが付けられる。各パケット・フローは対応するトンネル・エンド・ポイントにマッピングされ、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。各パケット・フローに関連付けられた各輻輳ポイントに対して輻輳通知メッセージが生成され、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。各輻輳ポイントは対応するトンネル・エンド・ポイントにマッピングされ、輻輳ポイントに関する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【０００５】
別の実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システムを提供する。各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。各仮想ネットワークは、仮想ネットワークの各仮想マシンによって生成された各パケット・フローの各パケットに、パケット・フローの対応する仮想フロー識別子を含む輻輳通知タグを付けるために構成されたトラフィック管理モジュールを含む、物理ネットワーク・インターフェース・カード（ＮＩＣ）を含む。トラフィック管理モジュールは、さらに、各パケット・フローを仮想ネットワークの対応するトンネル・エンド・ポイントにマッピングするために構成され、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。トラフィック管理モジュールは、さらに、各パケット・フローに関連付けられた各輻輳ポイントに対する輻輳通知メッセージを生成するために構成され、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子、および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。トラフィック管理モジュールは、さらに、各輻輳ポイントを対応するトンネル・エンド・ポイントにマッピングするために構成され、輻輳ポイントに対する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【０００６】
別の実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システム内での量子化輻輳通知のためのコンピュータ・プログラム製品を提供し、各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。コンピュータ・プログラム製品は、プログラム・コードを記憶するコンピュータ可読記憶媒体を備え、プログラム・コードは、各パケット・フローの各パケットにパケット・フローの対応する仮想フロー識別子を含む輻輳通知タグを付けるために、コンピュータによって実行可能である。各パケット・フローは対応するトンネル・エンド・ポイントにマッピングされ、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。プログラム・コードは、さらに、各パケット・フローに関連付けられた各輻輳ポイントに対して輻輳通知メッセージを生成するために、コンピュータによって実行可能であり、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。各輻輳ポイントは対応するトンネル・エンド・ポイントにマッピングされ、輻輳ポイントに関する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【０００７】
本発明のこれらおよび他の特徴、態様、および利点は、以下の説明、付加された特許請求の範囲、および添付の図面を参照しながら理解されよう。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に従った、例示のクラウド・コンピューティング・ノードを示すブロック図である。
【図２】本発明の実施形態に従った、例示のクラウド・コンピューティング環境を示す図である。
【図３】本発明の実施形態に従った、クラウド・コンピューティング環境の抽象モデル層を示す図である。
【図４】本発明の実施形態を使用するための、分散オーバーレイ仮想環境４００を示すブロック図である。
【図５】本発明の実施形態に従った、仮想ネットワーキング・システム内のパケット配送を示す図である。
【図６】本発明の実施形態に従った、図５の物理ＮＩＣデバイスを示すブロック図である。
【図７】本発明の実施形態に従った、図６のトラフィック・マネージャ・アプリケーション・モジュールを示すブロック図である。
【図８】本発明の実施形態に従った、図５の仮想ネットワークによって生成された発信パケットの処理を示す図である。
【図９】本発明の実施形態に従った、例示のパケットを示す図である。
【図１０】本発明の実施形態に従った、例示のカプセル化パケットを示す図である。
【図１１】本発明の実施形態に従った、図８の仮想ネットワーク４０５に関するＶＣＰＩＤを示す図である。
【図１２】本発明の実施形態に従った、例示のＣＮＭを示す図である。
【図１３】本発明の実施形態に従った、１つまたは複数の仮想マシンを含む仮想ネットワークによって生成された発信パケットの処理に関する、例示のプロセスを示すフローチャートである。
【図１４】本発明の実施形態に従った、ＣＮＭを生成するための例示のプロセスを示すフローチャートである。
【図１５】本発明の一実施形態を実装するために有用な情報処理システム３００を示す、高水準ブロック図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態はオーバーレイ仮想環境に関し、具体的には、仮想ネットワーキング・システム内の量子化輻輳通知（ＱＣＮ）に関する。一実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システム内の量子化輻輳通知のための方法を提供する。各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。各パケット・フローの各パケットには、パケット・フローの対応する仮想フロー識別子を含む輻輳通知タグが付けられる。各パケット・フローは対応するトンネル・エンド・ポイントにマッピングされ、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。各パケット・フローに関連付けられた各輻輳ポイントに対して輻輳通知メッセージが生成され、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。各輻輳ポイントは対応するトンネル・エンド・ポイントにマッピングされ、輻輳ポイントに関する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【００１０】
別の実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システムを提供する。各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。各仮想ネットワークは、仮想ネットワークの各仮想マシンによって生成された各パケット・フローの各パケットに、パケット・フローの対応する仮想フロー識別子を含む輻輳通知タグを付けるために構成されたトラフィック管理モジュールを含む、物理ネットワーク・インターフェース・カード（ＮＩＣ）を含む。トラフィック管理モジュールは、さらに、各パケット・フローを仮想ネットワークの対応するトンネル・エンド・ポイントにマッピングするために構成され、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。トラフィック管理モジュールは、さらに、各パケット・フローに関連付けられた各輻輳ポイントに対する輻輳通知メッセージを生成するために構成され、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子、および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。トラフィック管理モジュールは、さらに、各輻輳ポイントを対応するトンネル・エンド・ポイントにマッピングするために構成され、輻輳ポイントに対する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【００１１】
別の実施形態は、複数の仮想ネットワークを含む仮想ネットワーキング・システム内での量子化輻輳通知のためのコンピュータ・プログラム製品を提供し、各仮想ネットワークは、１つまたは複数のパケット・フローを生成するように構成された少なくとも１つの仮想マシンを含む。コンピュータ・プログラム製品は、プログラム・コードを記憶するコンピュータ可読記憶媒体を備え、プログラム・コードは、各パケット・フローの各パケットにパケット・フローの対応する仮想フロー識別子を含む輻輳通知タグを付けるために、コンピュータによって実行可能である。各パケット・フローは対応するトンネル・エンド・ポイントにマッピングされ、パケット・フローの各パケットは対応するトンネル・エンド・ポイントを介して配送される。プログラム・コードは、さらに、各パケット・フローに関連付けられた各輻輳ポイントに対して輻輳通知メッセージを生成するために、コンピュータによって実行可能であり、輻輳通知メッセージは、輻輳ポイントの仮想輻輳ポイント識別子および輻輳ポイントでのパケット輻輳に寄与している仮想マシンのソース・アドレスを含む。各輻輳ポイントは対応するトンネル・エンド・ポイントにマッピングされ、輻輳ポイントに関する各輻輳通知メッセージは対応するトンネル・エンド・ポイントを介して配送され、対応する仮想トンネル・エンド・ポイントは、輻輳ポイントでのパケット輻輳に寄与している仮想マシンに輻輳通知メッセージを転送する。
【００１２】
本開示はクラウド・コンピューティングの詳細な説明を含むが、本明細書で示される教示の実装はクラウド・コンピューティング環境に限定されないことを予め理解されよう。むしろ本発明の実施形態は、現在知られていないかまたは今後開発される任意の他のタイプのコンピューティング環境に関連して実装可能である。
【００１３】
クラウド・コンピューティングは、最小の管理努力またはサービス・プロバイダとの対話で即時のプロビジョニングおよび解放が可能な、構成可能コンピューティング・リソース（たとえばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスのための、サービス送達のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、および少なくとも４つの展開（デプロイメント）モデルを含むことができる。
【００１４】
特性は以下の通りである。
【００１５】
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダとの人間の対話を必要とせず、必要に応じて自動的にサーバ時間およびネットワーク・ストレージなどの、コンピューティング機能を一方的にプロビジョニングすることができる。
【００１６】
ブロード・ネットワーク・アクセス：機能は、ネットワークを介して利用可能であり、異機種のシンまたはシック・クライアント・プラットフォーム（たとえば携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する、標準機構を介してアクセスされる。
【００１７】
リソース・プーリング：プロバイダのコンピューティング・リソースは、需要に応じて動的に割り当ておよび再割り当てされる異なる物理および仮想リソースを用いて、マルチテナント・モデルを使用する複数の消費者にサービスを提供するためにプールされる。消費者は一般に、提供されるリソースの正確な位置に対する制御または知識を持たないが、位置をより高い抽象化レベル（たとえば国、州、またはデータセンタ）で指定できる場合がある、という点において、位置独立感がある。
【００１８】
高速弾性：機能は、即時にスケール・アウトするために、いくつかのケースでは自動的に、高速かつ弾性的にプロビジョニング可能であり、即時にスケール・インするために高速に解放可能である。消費者にとって、プロビジョニングに使用可能なこの機能はしばしば無制限であるように見え、いつでもいかなる量でも購入可能である。
【００１９】
計測済みサービス：クラウド・システムは、サービスのタイプ（たとえばストレージ、処理、帯域幅、およびアクティブな消費者アカウント）に適切な何らかのレベルの抽象化で計測機能を利用することによって、リソースを自動的に制御および最適化する。利用されるサービスのプロバイダおよび消費者の両方に透明性を与えながら、リソース使用量を監視、制御、および報告することができる。
【００２０】
サービス・モデルは以下の通りである。
【００２１】
サービス型ソフトウェア（ＳａａＳ）：消費者に提供される機能は、クラウド・インフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションには、様々なクライアント・デバイスから、ウェブ・ブラウザ（たとえばウェブベースの電子メール）などのシン・クライアント・インターフェースを介してアクセス可能である。消費者は、限られた消費者特有のアプリケーション構成設定の可能性を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、あるいは個々のアプリケーション機能を含む、下にあるクラウド・インフラストラクチャを管理または制御しない。
【００２２】
サービス型プラットフォーム（ＰａａＳ）：消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または獲得アプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、下にあるクラウド・インフラストラクチャは管理または制御しないが、展開されたアプリケーションおよび可能なアプリケーション・ホスト環境構成に対する制御を有する。
【００２３】
サービス型インフラストラクチャ（ＩａａＳ）：消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含むことが可能な任意のソフトウェアを消費者が展開および実行できる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、下にあるクラウド・インフラストラクチャは管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および選択ネットワーキング構成要素（たとえばホスト・ファイアウォール）の可能な制限付き制御に対する制御を有する。
【００２４】
展開モデルは以下の通りである。
【００２５】
プライベート・クラウド：クラウド・インフラストラクチャは、組織専用に動作する。組織または第三者による管理が可能であり、施設内または施設外に存在可能である。
【００２６】
コミュニティ・クラウド：クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の問題（たとえばミッション、セキュリティ要件、ポリシー、およびコンプライアンス検討事項）を有する特定のコミュニティをサポートする。組織または第三者による管理が可能であり、施設内または施設外に存在可能である。
【００２７】
パブリック・クラウド：クラウド・インフラストラクチャは、一般大衆または大企業グループが使用可能であり、クラウド・サービスを販売する組織によって所有される。
【００２８】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、依然として固有のエンティティであるが、データおよびアプリケーションの移植性（たとえばクラウド間のロードバランシングのためのクラウド・バースティング）を可能にする標準化または専有技術によって互いに結び付けられた、２つまたはそれ以上の（プライベート、コミュニティ、またはパブリック）クラウドで構成される。
【００２９】
クラウド・コンピューティング環境は、ステートレス性、疎結合、モジュール性、および意味論的相互動作性によるサービス重視である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【００３０】
図１は、本発明の実施形態に従った、例示のクラウド・コンピューティング・ノード１０のブロック図を示す。図１に示されるクラウド・コンピューティング・ノード１０は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明する本発明の実施形態の使用または機能性の範囲に関して、いかなる制限をも示唆することは意図されていない。ともかく、クラウド・コンピューティング・ノード１０は、上記に示されたいずれの機能も実装または実行が可能である。
【００３１】
クラウド・コンピューティング・ノード１０は、多数の他の汎用または特定用途向けのコンピューティング・システム環境または構成で動作可能な、コンピュータ・システム／サーバ１２を備える。コンピュータ・システム／サーバ１２と共に使用するのに好適であり得る良く知られたコンピューティング・システム、環境、または構成の例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マルチプロセッサベース・システム、セット・トップ・ボックス、プログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【００３２】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令との一般的な関連において、説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、論理、データ構造、などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実施可能である。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータ・システム記憶媒体内に配置可能である。
【００３３】
コンピュータ・システム／サーバ１２の構成要素は、１つまたは複数のプロセッサあるいは処理ユニット１６、システム・メモリ２８、および様々なシステム構成要素（たとえばシステム・メモリ２８およびプロセッサ１６）を結合するバス１８を含むことができるが、これらに限定されない。バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および任意の様々なバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、１つまたは複数のタイプのバス構造を表す。限定ではなく例として、こうしたアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカル・バス、および周辺構成要素相互接続（ＰＣＩ）バスを含む。
【００３４】
コンピュータ・システム／サーバ１２は、典型的には、様々なコンピュータ・システム可読媒体を含む。こうした媒体は、コンピュータ・システム／サーバ１２によってアクセス可能な任意の使用可能媒体とすることが可能であり、揮発性および不揮発性の媒体、取り外し可能および取り外し不可の媒体の、両方を含む。
【００３５】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不可、揮発性／不揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。単なる例として、取り外し不可、不揮発性の磁気媒体（図示せず、典型的には「ハード・ドライブ」と呼ばれる）からの読み取りおよびこれへの書き込みのための、記憶システム３４が提供可能である。図には示されていないが、取り外し可能、不揮発性の磁気ディスク（たとえば「フレキシブル・ディスク」）からの読み取りおよびこれへの書き込みのための磁気ディスク・ドライブ、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの、取り外し可能、不揮発性の光ディスクからの読み取りおよびこれへの書き込みのための光ディスク・ドライブが、提供可能である。こうしたインスタンスでは、１つまたは複数のデータ媒体インターフェースによって各々がバス１８に接続可能である。以下でさらに図示および説明するように、システム・メモリ２８は、本発明の実施形態の機能を実施するように構成されたプログラム・モジュールのセット（たとえば少なくとも１つ）を有する、少なくとも１つのプログラム製品を含むことができる。
【００３６】
本発明の実施形態は、内部に（ベースバンド内に、または搬送波の一部として）コンピュータ可読プログラム・コードが具備された伝搬データ信号を含み得る、コンピュータ可読信号媒体として実装可能である。こうした伝搬信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない様々な形のうちのいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを通信、伝搬、または移送可能な、任意のコンピュータ可読媒体とすることができる。
【００３７】
コンピュータ可読媒体上に具備されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ）など、または上記の任意の好適な組み合わせを含むがこれらに限定されない、任意の適切な媒体を使用して伝送可能である。
【００３８】
少なくとも１つのプログラム・モジュール４２を含むプログラム／ユーティリティ４０が、限定ではなく例として、システム・メモリ２８、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ内に、記憶可能である。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組み合わせの各々が、ネットワーキング環境の実装を含むことができる。プログラム・モジュール４２は、一般に、本明細書に記載された実施形態の機能または方法を実行する。
【００３９】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４、消費者がコンピュータ・システム／サーバ１２と対話できるようにする１つまたは複数のデバイス、または、コンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（たとえばネットワーク・カード、モデムなど）といった、１つまたは複数の外部デバイス１４とも通信可能である。こうした通信は、Ｉ／Ｏインターフェース２２を介して実行可能である。さらにまた、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般のワイド・エリア・ネットワーク（ＷＡＮ）、パブリック・ネットワーク（たとえばインターネット）などの、１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信可能である。図に示されるように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他の構成要素と通信する。図示されていないが、他のハードウェアまたはソフトウェアの構成要素が、コンピュータ・システム／サーバ１２と共に使用可能であることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどが含まれるが、これらに限定されない。
【００４０】
図２は、本発明の実施形態に従った、クラウド・コンピューティング環境５０の例を示す。ここで図２を参照すると、例示のクラウド・コンピューティング環境５０が示されている。クラウド・コンピューティング環境５０は、たとえば携帯情報端末（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、自動車コンピュータ・システム５４Ｎなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイス５４が通信可能な、１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は互いに通信可能である。ノード１０は、前述の専用、コミュニティ、公開、またはハイブリッドのクラウド、あるいはそれらの組み合わせなどの、１つまたは複数のネットワーク内で、物理的または仮想的にグループ化することができる（図示せず）。これによってクラウド・コンピューティング環境５０は、インフラストラクチャ、プラットフォーム、またはソフトウェアを、クラウド消費者がローカル・コンピューティング・デバイス上にリソースを維持する必要のないサービスとして提供することができる。図２に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは単なる例示であり、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意のタイプのネットワークまたはネットワーク・アドレス指定接続を介して（たとえばウェブ・ブラウザを使用して）、任意のコンピュータ化されたデバイスと通信可能であることを理解されよう。
【００４１】
図３は、本発明の実施形態に従った、クラウド・コンピューティング環境５０の抽象モデル層を示す。ここで図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能抽象層のセットが示されている。図３に示される構成要素、層、および機能は単なる例示であり、本発明の実施形態はそれらに限定されないことをあらかじめ理解されたい。図に示されるように、以下の層および対応する機能が提供される。
【００４２】
ハードウェアおよびソフトウェア層６０は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例はメインフレームを含む。一例では、ＩＢＭ（Ｒ）ｚＳｅｒｉｅｓシステムおよびＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャベース・サーバである。一例では、ＩＢＭ  ｐＳｅｒｉｅｓシステム、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、記憶デバイス、ネットワーク、およびネットワーキング構成要素である。ソフトウェア構成要素の例はネットワーク・アプリケーション・サーバ・ソフトウェアを含む。一例では、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェアおよびデータベース・ソフトウェアである。一例では、ＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェアである。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界中の多くの管轄区域内で登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【００４３】
仮想化層６２は、仮想サーバ、仮想ストレージ、仮想専用ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントという、仮想エンティティの例が提供可能な、抽象層を提供する。
【００４４】
一例において、管理層６４は以下で説明する機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計測および価格設定は、クラウド・コンピューティング環境内でリソースが使用される際のコスト追跡、およびこれらのリソースを消費するための課金またはインボイス作成を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクに関する識別検証、ならびにデータおよび他のリソースに関する保護を提供する。消費者ポータルは、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、必要なサービス・レベルに合致するようなクラウド・コンピューティング・リソースの割り振りおよび管理を提供する。サービス内容合意書（ＳＬＡ）の計画および履行は、ＳＬＡに従って将来の要件が予測されるクラウド・コンピューティング・リソースに関する事前取り決めおよびその調達を提供する。
【００４５】
作業負荷層６６は、クラウド・コンピューティング環境が使用可能な機能の例を提供する。この層から提供可能な作業負荷および機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想学級教育配信、データ分析処理、トランザクション処理、ならびにカプセル化マッピングおよび通信を含む。前述のように、図３に関して説明した前述のすべての例は単なる例示であり、本発明はこれらの例に限定されない。
【００４６】
本明細書で説明する本発明のすべての機能は、典型的には、プログラム／ユーティリティ４０のプログラム・コード４２（図１）のモジュールとして有形に具備可能な、ネットワーク非依存ネットワーク・インターフェース・システムによって実行されることを理解されよう。しかしながらその限りではない。むしろ本明細書に示される機能は、図３に示される層６０〜６６のいずれかによっても実行、実装または有効化が可能である。
【００４７】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に示される教示の実装はクラウド・コンピューティング環境に限定されないことに再度言及したい。むしろ本発明の実施形態は、現在知られているかまたは今後開発される任意のタイプのクラスタ化コンピューティング環境で実装されることが意図される。
【００４８】
本発明の実施形態は、複数のカプセル化をサポートしているホスト間の相互運用性の提供に関する。一実施形態は、仮想スイッチに関するパケット・カプセル化プロトコル・タイプ情報のマッピングを含む方法を含む。各仮想スイッチは、１つまたは複数の仮想マシン（ＶＭ）に関連付けられる。一実施形態において、マッピングに基づき、第１の仮想スイッチに関連付けられた第１のＶＭおよび第２の仮想スイッチに関連付けられた第２のＶＭについて、１つまたは複数の共通カプセル化プロトコル・タイプが存在するかどうかが判別される。一実施形態において、第１の仮想スイッチおよび第２の仮想スイッチについて、１つまたは複数の共通カプセル化プロトコル・タイプが存在するものと判別された場合、共通カプセル化プロトコル・タイプが選択される。選択された共通カプセル化プロトコル・タイプを使用して、第１のＶＭと第２のＶＭとの間の通信のためにパケットがカプセル化される。
【００４９】
図４は、本発明の実施形態を使用するための分散オーバーレイ仮想環境４００を示すブロック図である。一実施形態において、分散オーバーレイ仮想環境４００は、分散オーバーレイ仮想イーサネット（ＤＯＶＥ）ネットワーク・システムを含むことができる。分散オーバーレイ仮想環境４００は、複数の仮想システム（またはネットワーク）４０５（一実施形態ではＤＯＶＥモジュールとも呼ばれる）を含む。各仮想システム４０５は、少なくとも１つのＶＭ３２０を作成および実行するためのハイパーバイザ３１６を含む、サーバ３１０（またはホスト）を備える。各ハイパーバイザ３１６は、オーバーレイ機能（たとえばＤＯＶＥ機能）を提供する少なくとも１つの仮想スイッチ３１５を含む。仮想システム４０５は、物理スイッチ、ルータ、サーバ、ゲートウェイ、ファイアウォールなどを含むことが可能な物理層３２５（たとえば物理ハードウェアおよびソフトウェア・プロセスを含む）の上に位置する。物理層３２５は下層と呼ばれる場合もある。仮想システム４０５は、物理スイッチ、ルータ、サーバ、ゲートウェイ、ファイアウォールなどの既存のハードウェア機構と相互動作する。
【００５０】
一実施形態において、オーバーレイ・ネットワーク・セグメント１〜Ｎ３０５（たとえばオーバーレイ・ネットワーク・セグメント１〜３）は、異なる要素（たとえばハイパーバイザ３１６、ＶＭ３２０）の通信用に複数のシステムを接続し、ここでＮは正の数（たとえば２、３、５、１０など）である。３つのシステム４０５が示されているが、より多くの（またはより少ない）システム４０５を分散オーバーレイ仮想環境４００内に含めることができることに留意されたい。一実施形態において、仮想スイッチ３１５はＤＯＶＥスイッチを含む。
【００５１】
一実施形態において、オーバーレイ・ネットワーク・セグメント１〜Ｎ３０５はハイパーバイザ３１６間にオーバーレイ・ネットワークを作成して、パケットのカプセル化を使用し、１つのＶＭ３２０から発信されるパケットがカプセル化され（たとえばオーバーレイおよび物理ネットワーク・ヘッダの追加）、物理層３２５（下層）を使用してターゲットＶＭ３２０が常駐するサーバ３１０に送達される。一実施形態では、物理層３２５において、パケットを転送するために物理スイッチによって外側ヘッダが使用され、カプセル化ヘッダ内のオーバーレイ識別子（ＩＤ）がトラフィック分離を提供する。宛先サーバ３１０の仮想スイッチ３１５への着信パケットはカプセル化解除され（たとえばカプセル化ヘッダがパケットから除去され）、宛先ＶＭ３２０に送達される。各仮想スイッチ３１５はオーバーレイ機能を提供するように構成される。たとえば一実施形態において、各仮想スイッチ３１５は発信パケットをカプセル化し、着信パケットをカプセル化解除するように構成される。
【００５２】
一実施形態において、異なる仮想システム４０５間でアドレス非依存性がサポートされる。たとえば、２つの異なるシステム４０５内で動作する２つの異なるＶＭ３２０は、同じインターネット・プロトコル（ＩＰ）アドレスおよびメディア・アクセス制御（ＭＡＣ）アドレスを有することができる。別の例として、システム４０５は、同じシステム４０５に属するＶＭ３２０の、異なる物理サブネット内に配置された異なるホスト上への展開をサポートする（物理エンティティ間のスイッチまたはルータを含む）。別の実施形態において、異なるシステム４０５に属するＶＭ３２０を同じ物理ホスト上でホストすることができる。さらに別の実施形態において、システム４０５は、ＶＭ３２０ネットワーク・アドレスの変更およびそのネットワーク接続の喪失なしに、データ・センタ内の任意の場所でのＶＭ３２０マイグレーションをサポートする。
【００５３】
一実施形態において、システム４０５は、（分散ポリシー・サービス（ＤＰＳ）からの）ポリシーに基づく物理経路変換によってデータをカプセル化して、カプセル化されたデータをシステム４０５間で送信し、データはカプセル化解除された後、宛先ＶＭ３２０に転送される。一実施形態において、ポリシーは、特定のタスクを実行する下にある物理エンティティの詳細なしに、仮想ネットワークを介してデータがどのように送信される必要があるかを論理的に記述している。
【００５４】
一実施形態において、ハイパーバイザ３１６（たとえばＶＭ３２０マネージャ）は、複数のオペレーティング・システム（たとえばＶＭ３２０などのＶＭ）がホスト・コンピュータ上で同時に実行できるようにする。ハイパーバイザ３１６は、ＶＭ３２０に対する物理リソースの抽象化を提供する。たとえば物理ネットワーク・インターフェース・カード（ＮＩＣ）は、システム４０５の仮想ＮＩＣ（ｖＮＩＣ）として抽象化することができる。一実施形態において、仮想スイッチ３１５は、ＶＭ３２０に接続性を提供するための、ハイパーバイザ３１６内のイーサネット・スイッチのソフトウェア抽象化である。
【００５５】
図５は、本発明の実施形態に従った、仮想ネットワーキング・システム１００内のパケット配送を示す。システム１００は、複数の仮想ネットワーク（システム）４０５を含む。各仮想ネットワーク４０５は、ハイパーバイザ３１６を実行する少なくとも１つのサーバ（ホスト）３１０を含む。ハイパーバイザ３１６は、１つまたは複数の仮想マシン３２０を作成および実行する。
【００５６】
仮想ネットワーク４０５の各仮想マシン３２０は、別の仮想マシン３２０から着信パケットを受信したり、別の仮想マシン３２０に発信パケットを送信したりすることができる。一実施形態において、物理ネットワーク・インターフェース・コントローラ（ＮＩＣ）デバイス４２０は、ＩＰネットワーク２５０を介して異なる仮想ネットワーク４０５間でのパケット配送を容易にするために使用される。各仮想ネットワーク４０５は、オーバーレイ・ゲートウェイ４１５を介して仮想ネットワーク４０５をＩＰネットワーク２５０に接続する、対応する物理ＮＩＣデバイス４２０を有する。
【００５７】
各仮想ネットワーク４０５は、着信パケットおよび発信パケットを処理するための少なくとも１つのＤＯＶＥスイッチ３１５を含む。仮想ネットワーク４０５のＤＯＶＥスイッチ３１５は、仮想ネットワーク４０５の仮想マシン３２０から発信パケットを受信するように構成される。一実施形態において、ＤＯＶＥスイッチ３１５は発信パケットに、対応する仮想ネットワーキング・タグ（たとえばＶＬＡＮタグ）を付ける。ＤＯＶＥスイッチ３１５は、仮想ネットワーク４０５に関して対応する物理ＮＩＣデバイス４２０に発信パケットを送信する。ＤＯＶＥスイッチ３１５は、さらに、物理ＮＩＣデバイス４２０から着信パケットを受信するように構成される。着信パケットを受信すると、ＤＯＶＥスイッチ３１５は、着信パケットがいずれの仮想マシン３２０をターゲットとしているかを判別し、そのターゲット仮想マシン３２０に着信パケットを送信する。
【００５８】
各仮想ネットワーク４０５は、仮想ネットワーク４０５について対応する物理ＮＩＣ  ４２０と通信するためのＮＩＣドライバ４１０をさらに含む。
【００５９】
図６は、本発明の実施形態に従った、図５の物理ＮＩＣデバイス４２０のブロック図である。オーバーレイ機能が仮想サーバ側ソフトウェア（すなわちハイパーバイザ３１６）によって提供される図４とは異なり、図６のオーバーレイ機能は物理ＮＩＣデバイス４２０上にオフロードされる。物理ＮＩＣデバイス４２０は、マルチレーン周辺構成要素相互接続エクスプレス（ＰＣＩｅ）インターフェース・モジュール４２１、受信／送信（ＲＸ／ＴＸ）バッファの第１のセット４２２、トンネル・マネージャ・モジュール４２３、アドレス解決プロトコル（ＡＲＰ）および転送情報ベース（ＦＩＢ）マネージャ・モジュール４２４、インターネット・プロトコル・マルチメディア通信（ＩＰＭＣ）サポート・モジュール４２５、パケット・カプセル化／カプセル化解除モジュール４２６、ＲＸ／ＴＸバッファの第２のセット４２７、イーサネット・コントローラ４２８、およびトラフィック・マネージャ・モジュール４３０という、オーバーレイ・トンネリング機能をサポートする構成要素を少なくとも備える。
【００６０】
マルチレーンＰＣＩｅインターフェース・モジュール４２１は、サーバ３１０と物理ＮＩＣデバイス４２０との間でパケットを送受信し、物理ＮＩＣデバイス４２０に関する制御パラメータをプログラミングし、物理ＮＩＣデバイス４２０に関する統計および制御パラメータを読み取る、ＣＰＵインターフェースである。
【００６１】
ＲＸ／ＴＸバッファの第１のセット４２２は、サーバ３１０と物理ＮＩＣデバイス４２０との間でパケットをバッファリングする。ＲＸ／ＴＸバッファの第２のセット４２７は、物理ＮＩＣデバイス４２０とオーバーレイ・ゲートウェイ４１５との間でパケットをバッファリングする。
【００６２】
仮想ネットワーク４０５からの各発信パケットは、ＩＰネットワーク２５０を介して別の仮想ネットワークに配送される前に、物理ネットワーク・ヘッダなどの補足データと共にカプセル化される。トンネル・マネージャ・モジュール４２３は、ソースＭＡＣおよび宛先ＭＡＣなどの、各発信パケットが共にカプセル化されるデータを決定する。
【００６３】
ＡＲＰおよびＦＩＢマネージャ・モジュール４２４は、通信プロトコル（たとえばＩＥＥＥ８０２．３およびＩＥＥＥ８０２．１１を介したＩＰｖ４）に基づいて、ネットワーク層アドレスをリンク層アドレスに解決する。ＡＲＰおよびＦＩＢマネージャ・モジュール４２４は、パケット・ルーティング情報を含む転送テーブルも維持する。
【００６４】
ＩＰＭＣサポート・モジュール４２５は、各オーバーレイ・ネットワークのブロードキャスト・ドメインを下層ネットワーク・マルチキャスト・グループにマッピングし、それによってＡＲＰおよび他のブロードキャスト指向プロトコルを解決する。
【００６５】
パケット・カプセル化／カプセル化解除モジュール４２６は、ＩＰネットワーク２５０を介して発信パケットを別の仮想ネットワーク４０５に送信する前に、各発信パケットをカプセル化する。ＩＰネットワーク２５０は、異なる仮想ネットワーク４０５の間でカプセル化されたパケットを伝搬する。パケット・カプセル化／カプセル化解除モジュール４２６は、ＩＰネットワーク２５０を介して別の仮想ネットワーク４０５から受信した各着信パケットもカプセル化解除する。
【００６６】
イーサネット・コントローラ４２８は、物理ＮＩＣデバイス４２０とオーバーレイ・ゲートウェイ４１５との間で交換されたパケットを処理する。
【００６７】
本明細書において以下で詳細に説明するように、トラフィック・マネージャ・アプリケーション・モジュール４３０は量子化輻輳通知（ＱＣＮ）を容易にする。
【００６８】
図７は、本発明の実施形態に従った、図６のトラフィック・マネージャ・アプリケーション・モジュール４３０のブロック図である。トラフィック・マネージャ・アプリケーション・モジュール４３０は、仮想ネットワーク４０５などのサーバ３１０上で実行する仮想化環境に対するＱＣＮを容易にする。
【００６９】
仮想輻輳ポイント（ＶＣＰ）は、大容量のパケットが仮想トンネル・エンド・ポイント（ＶＴＥＰ）４５０から当該ＶＣＰを横切って配送される結果として輻輳し始める、仮想ネットワーキング・システム１００のリソースを表す。たとえばＶＣＰは、仮想マシン３２０に関するＱＣＮ対応の仮想優先度付きキューのセット４３１とすることが可能であり、セット４３１は、（たとえばＤＯＶＥスイッチ３１５内の）サーバ３１０上またはオーバーレイ・トンネリング機能を備える物理ＮＩＣデバイス４２０上の、いずれかで維持される。各ＶＣＰは少なくとも１つのＶＴＥＰ４５０に関連付けられる。各ＶＴＥＰ４５０は、物理ＮＩＣデバイス４２０を介して物理オーバーレイ・ゲートウェイ・スイッチからトラフィックを受信し、このトラフィックをＶＴＥＰ４５０に関連付けられたＶＣＰに転送するように構成される。
【００７０】
各ＶＣＰはＱＣＮ設定で構成される。ＶＣＰがトラフィックで輻輳される場合、ＶＣＰは輻輳に寄与しているトラフィックのソースにＣＮＭを返送する。ソースは、同じオーバーレイ・ネットワーク内の物理反応ポイント（ＲＰ）または仮想反応ポイント（ＶＲＰ）とすることができる。
【００７１】
仮想反応ポイント（ＶＲＰ）は、１つまたは複数のデータ（たとえばパケット）のフローを仮想ネットワーキング・システム１００に注入するトラフィック生成のソースおよびシンクを表す。たとえば、ＶＲＰは仮想マシン３２０に対するＱＣＮ対応の仮想優先度付きキューのセット４３１とすることが可能であり、セット４３１は仮想マシン３２０のｖＮＩＣに関連付けられる。トラフィック・マネージャ・アプリケーション・モジュール４３０は、ＶＲＰに関するデータ・フローの注入レートを調整するために、輻輳通知メッセージ（ＣＮＭ）を使用する。本明細書において以下で詳細に説明するように、各ＶＣＰまたは物理輻輳ポイント（ＣＰ）は、ＶＣＰまたはＣＰで輻輳を発生させる同じオーバーレイ・ネットワーク内のＶＲＰまたはＲＰをターゲットとする輻輳通知メッセージ（ＣＮＭ）を生成する。
【００７２】
トラフィック・マネージャ・アプリケーション・モジュール４３０は、各仮想マシン３２０に対する仮想優先度付きキューのセット４３１、メモリ・ユニット４３２、トンネル・インターフェース・マネージャ・モジュール４３５、ＲＸ／ＴＸインターフェース・モジュール４３６、ＰＣＩｅおよびダイレクト・メモリ・アクセス（ＤＭＡ）ブロック・モジュール４３７、ＶＲＰ／ＶＣＰマネージャおよび分類モジュール４３８、ならびにキュー・マネージャおよびＱＣＮ論理モジュール４３９、という構成要素を少なくとも備える。
【００７３】
ＶＲＰ／ＶＣＰマネージャおよび分類モジュール４３８は、仮想反応ポイント識別子（ＶＲＰＩＤ）を作成および管理する。各ＶＲＰＩＤは、仮想ネットワーキング・システム１００内のＶＲＰを識別する１６ビット識別子である。ＶＲＰＩＤは、ＱＣＮ標準（たとえばＩＥＥＥ８０２．１Ｑａｕ）によって定義されたフロー識別子にマッピングする。
【００７４】
ＶＲＰは１つまたは複数のＶＲＰＩＤ（すなわちフロー識別子）を有することができる。複数のパケット・フローを生成するＶＲＰは複数のＶＲＰＩＤを有することができ、各ＶＲＰＩＤはＶＲＰによって生成されたフローに対応する。ＶＲＰは別々のキューイングおよびバッファリング・リソースを、フローに関連付けられた各ＶＲＰＩＤに割り振る。
【００７５】
具体的には、ＶＲＰ／ＶＣＰマネージャおよび分類モジュール４３８は対応する仮想ネットワーク４０５の各仮想マシン３２０に少なくとも１つの対応するＶＲＰＩＤを割り当てる。各ＶＲＰＩＤは、ＱＣＮ標準（たとえばＩＥＥＥ８０２．１Ｑａｕ）によって定義されたフロー識別子または反応ポイント識別子（ＲＰＩＤ）にマッピングする。キュー・マネージャおよびＱＣＮ論理モジュール４３９は、ＶＲＰＩＤに基づいてパケットを分類する。
【００７６】
ＶＲＰ／ＶＣＰマネージャおよび分類モジュール４３８は、仮想輻輳ポイント識別子（ＶＣＰＩＤ）も作成および管理する。各ＶＣＰＩＤは、仮想ネットワーキング・システム１００内のＶＣＰを識別する６４ビット識別子である。具体的には、ＶＲＰ／ＶＣＰマネージャおよび分類モジュール４３８は、対応する仮想ネットワーク４０５内の各ＶＣＰに対応するＶＣＰＩＤを割り当てる。各ＶＣＰＩＤはＱＣＮ標準（たとえばＩＥＥＥ８０２．１Ｑａｕ）によって定義された輻輳ポイント識別子（ＣＰＩＤ）にマッピングする。
【００７７】
仮想マシン３２０に対する仮想優先度付きキューの各セット４３１は、複数の仮想優先度付きキュー４３１ＰＱを含む。一実施形態において、トラフィック管理モジュール４３０は仮想マシン３２０に対する複数の仮想優先度付きキュー４３１ＰＱをサポートしているため、仮想マシン３２０には複数のＶＲＰＩＤを割り当てることができる。
【００７８】
キュー・マネージャおよびＱＣＮ論理モジュール４３９は、パケットに対してキューイングおよびデキューイング動作を実行する。具体的には、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、１つまたは複数の仮想優先度付きキュー４３１ＰＱを、対応する仮想ネットワーク４０５の各仮想マシン３２０に割り当てる。リソースのキューイングおよびバッファリングは、サーバ３１０（たとえばＤＯＶＥスイッチ３１５）内または物理ＮＩＣデバイス４２０内で維持することができる。
【００７９】
キュー・マネージャおよびＱＣＮ論理モジュール４３９は、各仮想優先度付きキュー４３１ＰＱ上のＱＣＮも容易にする。具体的には、各仮想優先度付きキュー４３１ＰＱについて、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、仮想マシン３２０によって生成された各発信パケットに、仮想マシン３２０に対する対応するＶＲＰＩＤを含む輻輳通知（ＣＮ）タグを付ける。
【００８０】
キュー・マネージャおよびＱＣＮ論理モジュール４３９は、事前にプログラミングされたＱＣＮ論理に基づいて、各仮想優先度付きキュー４３１ＰＱ上のフレームのサンプリングも行う。サンプリングに基づいて輻輳された各仮想優先度付きキュー４３１ＰＱについて、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、輻輳に寄与しているパケットのＣＮタグに含まれるＶＲＰＩＤまたはＲＰＩＤをターゲットとするＣＮＭを生成する。
【００８１】
キュー・マネージャおよびＱＣＮ論理モジュール４３９は、対応する仮想ネットワーク４０５の仮想マシン３２０をターゲットとする着信パケットがトラバースする仮想ネットワーキング・システム１００の経路に沿って、ＶＣＰによって生成されるＣＮＭの処理も行う。キュー・マネージャおよびＱＣＮ論理モジュール４３９は各ＣＮＭを復号し、ＣＮＭに含まれるＶＲＰＩＤに基づいて輻輳に寄与しているＶＲＰを決定して、ＶＲＰＩＤと共に仮想マシン３２０にＣＮＭを転送し、ここで仮想マシン３２０の仮想反応ポイント伝送（ＴＸ）論理が、受信したＣＮＭに基づいてパケット生成の対応レートを調整する（たとえば生成される発信パケットのレートを下げる）。
【００８２】
トンネル・マネージャ・インターフェース・モジュール４３５は、キュー・マネージャおよびＱＣＮ論理モジュール４３９が各パケットに関するトンネリング・パラメータを受信し、パケットに関する対応するＶＲＰＩＤまたはＶＣＰＩＤを決定できるように、物理ＮＩＣデバイス４２０のトンネル・マネージャ・モジュール４２３をキュー・マネージャおよびＱＣＮ論理モジュール４３９とインターフェースさせる。
【００８３】
メモリ・ユニット４３２はバッファ・マネージャ４３３およびバッファ・メモリ４３４を備える。バッファ・マネージャ４３３はバッファ・メモリ４３４を管理する。具体的には、バッファ・マネージャ４３３は、最大伝送単位（ＭＴＵ）サイズおよびバッファ・サイズ要件に少なくとも部分的に基づいて、バッファ・メモリ４３４を（固定サイズまたは可変サイズの）複数のバッファに分割する。
【００８４】
各バッファは、バッファ・マネージャ４３３によって管理される対応するバッファ・ヘッダを有する。受信したあらゆるパケットについて、バッファ・マネージャ４３３は１つまたは複数のバッファをキュー・マネージャおよびＱＣＮ論理モジュール４３９に割り振る。バッファ・マネージャ４３３は、キュー・マネージャおよびＱＣＮ論理モジュール４３９から１つまたは複数のバッファを再利用する９ことも可能である。バッファ・マネージャ４３３は、どれだけのバッファが空いており、どれだけのバッファが使用されているかなどの、バッファに関する統計を追跡する。
【００８５】
ＲＸ／ＴＸインターフェースは、論理を送受信するための物理インターフェースを表す。
【００８６】
ＰＣＩｅおよびダイレクト・メモリ・アクセス（ＤＭＡ）ブロック・モジュール４３７は、サーバ３１０と物理ＮＩＣデバイス４２０との間でパケットを送受信し、物理ＮＩＣデバイス４２０に関する制御パラメータをプログラミングし、物理ＮＩＣデバイス４２０に関する統計および制御パラメータを読み取る、ＣＰＵインターフェースである。
【００８７】
一実施形態において、対応するＣＮタグを備える各発信パケットについて、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、発信パケットに関する最外部カプセル化パケット内にＣＮタグを複製／コピーする。具体的には、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、トンネル・マネージャ・インターフェース・モジュール４３５を介して、トンネル・マネージャ・モジュール４２３から発信パケットに関するトンネリング・パラメータ（たとえば、発信パケットが配送される際に介するトンネル・エンド・ポイントに関するパラメータ）を受信する。受信したトンネリング・パラメータに基づいて、キュー・マネージャおよびＱＣＮ論理モジュール４３９は、パケットを転送するトンネル・エンド・ポイントに関するソースＭＡＣアドレス、およびパケットの転送先となるトンネル・エンド・ポイントに関する宛先ＭＡＣアドレスなどの、最外部カプセル化パケットに含められることになるデータを決定する。次にキュー・マネージャおよびＱＣＮ論理モジュール４３９は、ＣＮタグのコピーを最外部カプセル化パケット内に挿入する。したがって発信パケットは、最内部ＣＮタグ（すなわち、発信パケット内のＣＮタグ）および最外部ＣＮタグ（すなわち、発信パケットが共にカプセル化される最外部カプセル化パケット内のＣＮタグ）の、２つのＣＮタグを有する。
【００８８】
発信パケットに関する最外部カプセル化パケットのみを検査する非オーバーレイ輻輳ポイント（たとえばＩＰネットワーク２５０の物理スイッチ／ルータ３２５）は、最外部ＣＮタグを処理することができる。発信パケットの最内部パケットを検査できるオーバーレイ輻輳ポイント（たとえばＤＯＶＥスイッチ３１５、物理ＮＩＣデバイス４２０）は、最内部ＣＮタグを処理することができる。
【００８９】
図８は、本発明の実施形態に従った、図５の仮想ネットワーク４０５によって生成された発信パケットの処理を示す。仮想ネットワーク４０５は、仮想マシンＶＭ０、ＶＭ１、ＶＭ２、・・・、およびＶＭｎなどの、サーバ３１０上で実行する複数の仮想マシン３２０を含むことができる。仮想ネットワーク４０５に関する対応する物理ＮＩＣデバイス４２０は、各仮想マシン３２０から発信されるパケットの各フローにＶＲＰＩＤを割り当てる。
【００９０】
たとえば、図８に示されるように、物理ＮＩＣデバイス４２０は、仮想マシンＶＭ０によって生成されたパケットのフローにＶＲＰＩＤ０を、仮想マシンＶＭ１によって生成されたパケットのフローにＶＲＰＩＤ１を、仮想マシンＶＭ２によって生成されたパケットのフローにＶＲＰＩＤ２を、・・・、仮想マシンＶＭｎによって生成されたパケットのフローにＶＲＰＩＤｎを、割り当てる。
【００９１】
物理ＮＩＣデバイス４２０は、発信パケットに関するトンネリング・パラメータ（たとえば、発信パケットをＩＰネットワーク２５０に転送するＶＴＥＰ４５０に関するパラメータ）に基づいて、各発信パケットをカプセル化する。
【００９２】
ＶＴＥＰ４５０から出る各パケットは、対応するＶＲＰＩＤまたはＶＣＰＩＤに多重分離される。具体的には、各ＶＲＰＩＤおよび各ＶＣＰＩＤが対応するＶＴＥＰ４５０にマッピングされる。
【００９３】
たとえば、図８に示されるように、ＶＲＰＩＤ０およびＶＲＰＩＤ１がＶＴＥＰ０にマッピングされ、ＶＲＰＩＤ２がＶＴＥＰ１にマッピングされ、・・・、ＶＲＰＩＤｎがＶＴＥＰｎにマッピングされる。したがって、ＶＲＰＩＤ０またはＶＲＰＩＤ１のいずれかが割り当てられたフローの各発信パケットはＶＴＥＰ０のソースＭＡＣアドレスと共にカプセル化され、ＶＲＰＩＤ２が割り当てられたフローの各発信パケットはＶＴＥＰ１のソースＭＡＣアドレスと共にカプセル化され、ＶＲＰＩＤｎが割り当てられたフローの各発信パケットはＶＴＥＰｎのソースＭＡＣアドレスと共にカプセル化される。
【００９４】
オーバーレイＣＰ（たとえばＤＯＶＥスイッチ３１５、物理ＮＩＣデバイス４２０）によって生成されたＣＮＭは、オーバーレイＣＰでの輻輳に寄与している仮想マシン３２０に関するＶＲＰＩＤおよびソースＭＡＣアドレスを含む。非オーバーレイＣＰ（たとえばＩＰネットワーク２５０の物理スイッチ／ルータ３２５）によって生成されたＣＮＭは、非オーバーレイＣＰでの輻輳に寄与している仮想トンネル・エンド・ポイントに関するＶＲＰＩＤおよびソースＭＡＣアドレスを含む。
【００９５】
物理ＮＩＣデバイス４２０は、オーバーレイ・ゲートウェイ４１５を介してＩＰネットワーク２５０とパケットを交換するためのポート４４０をさらに含む。
【００９６】
図９は、本発明の実施形態に従った例示のパケット１５０を示す。パケット１５０は、パケットに関する宛先を識別する宛先アドレス（たとえばパケットの送信／ブロードキャスト先である仮想マシン３２０のＭＡＣアドレス）、パケットに関するソースを識別するソース・アドレス（たとえばパケットを生成した仮想マシン３２０のＭＡＣアドレス）、Ｓタグ（たとえば８０２．１Ｑ  ＶＬＡＮタグ）、Ｃタグ、ＣＮタグ、パケットが搬送しているデータを含むイーサネット・ペイロード情報、および巡回冗長検査（ＣＲＣ）情報、という情報を、少なくとも含む。
【００９７】
一実施形態において、ＣＮタグはＱＣＮイーサネット・タイプ識別子、およびパケットが生成したＶＲＰを識別するＶＲＰＩＤを含む。一実施形態において、宛先アドレスは６バイト長さであり、ソース・アドレスは６バイト長さであり、Ｓタグは４バイト長さであり、Ｃタグは４バイト長さであり、ＣＮタグは、ＱＣＮイーサネット・タイプに関する２バイトおよびＶＲＰＩＤまたはフロー識別子に関する２バイトを含む４バイト長さであり、ＣＲＣ情報は２バイト長さである。
【００９８】
図１０は、本発明の実施形態に従った、例示のカプセル化パケット１６０を示す。各発信パケット１５０がＩＰネットワーク２５０に転送される前に、物理ＮＩＣデバイス４２０は、レイヤ２（Ｌ２）ヘッダなどの補足データを含む最外部カプセル化パケットと共に発信パケット１５０をカプセル化する。
【００９９】
たとえば、図１０に示されるように、カプセル化パケット１６０は、Ｌ２ヘッダを含む最外部カプセル化パケット、および図９で識別された情報を含む最内部パケットを含む。Ｌ２ヘッダは、パケットの宛先を識別する宛先アドレス（たとえば、パケットの送信／ブロードキャストの宛先である仮想トンネル・エンド・ポイントのＭＡＣアドレス）およびパケットのソースを識別するソース・アドレス（たとえば、パケットを転送する仮想トンネル・エンド・ポイントのＭＡＣアドレス）を含むことができる。
【０１００】
別の例として、カプセル化パケット１６０は、Ｌ２ヘッダおよびレイヤ３（Ｌ３）ヘッダを含む最外部カプセル化パケット、および図９で識別された情報を含む最内部パケットを含む。
【０１０１】
一実施形態において、物理ＮＩＣデバイス４２０は、最内部パケット内のＣＮタグ（すなわち最内部ＣＮタグ）のコピー／複製を最外部カプセル化パケット内に挿入し、それによって最外部ＣＮタグを作成する。
【０１０２】
発信パケットに関する最外部カプセル化パケットのみを検査する非オーバーレイ輻輳ポイント（たとえばＩＰネットワーク２５０の物理スイッチ／ルータ３２５）は、最外部ＣＮタグを処理することができる。発信パケットの最内部パケットを検査できるオーバーレイ輻輳ポイント（たとえばＤＯＶＥスイッチ３１５、物理ＮＩＣデバイス４２０）は、最内部ＣＮタグを処理することができる。
【０１０３】
図１１は、本発明の実施形態に従った、図８の仮想ネットワーク４０５に関するＶＣＰＩＤを示す。物理ＮＩＣデバイス４２０は、ポート４４０を介して異なるトンネル・エンド・ポイントをターゲットとする着信パケットを受信する。物理ＮＩＣデバイス４２０は、各仮想マシン３２０に対して輻輳ポイントのうちの１つを識別するＶＣＰＩＤを割り当てる。たとえば、図１１に示されるように、物理ＮＩＣデバイス４２０は、輻輳ポイントを伴う仮想マシンＶＭ０、ＶＭ１、ＶＭ２、・・・、およびＶＭｎに、それぞれＶＣＰＩＤ０、ＶＣＰＩＤ１、ＶＣＰＩＤ２、・・・、ＶＣＰＩＤｎのＶＣＰＩＤを割り当てる。
【０１０４】
各ＶＣＰＩＤは対応するＶＴＥＰ４５０にマッピングされる。たとえば図１１に示されるように、ＶＣＰＩＤ０およびＶＣＰＩＤ１はＶＴＥＰ０にマッピングされ、ＶＣＰＩＤ２はＶＴＥＰ１にマッピングされ、・・・、ＶＣＰＩＤｎはＶＴＥＰｎにマッピングされる。したがって、ＶＣＰＩＤ０またはＶＣＰＩＤ１に関連付けられた各発信パケットはＶＴＥＰ０のソースＭＡＣアドレスと共にカプセル化され、ＶＣＰＩＤ２に関連付けられた各発信パケットはＶＴＥＰ１のソースＭＡＣアドレスと共にカプセル化され、ＶＣＰＩＤｎに関連付けられた各発信パケットはＶＴＥＰｎのソースＭＡＣアドレスと共にカプセル化される。
【０１０５】
さらに、ＶＴＥＰ０のソースＭＡＣアドレスと共にカプセル化された各着信パケットはＶＣＰＩＤ０またはＶＣＰＩＤ１のいずれかに関連付けられ、ＶＴＥＰ１のソースＭＡＣアドレスと共にカプセル化された各着信パケットはＶＣＰＩＤ２に関連付けられ、ＶＴＥＰｎのソースＭＡＣアドレスと共にカプセル化された各着信パケットはＶＣＰＩＤｎに関連付けられる。
【０１０６】
図１２は、本発明の実施形態に従った例示のＣＮＭ１７０を示す。ＣＮＭ１７０は、ＣＮＭ１７０に関する宛先を識別する宛先アドレス（たとえばＣＮＭの送信／ブロードキャスト先である仮想マシン３２０のＭＡＣアドレス）、ＣＮＭに関するソースを識別するソース・アドレス（たとえばＣＮＭを生成した輻輳ポイントのＭＡＣアドレス）、Ｓタグ（たとえば８０２．１Ｑ  ＶＬＡＮタグ）、Ｃタグ、ＣＮタグ、ＣＮＭペイロード情報、および巡回冗長検査（ＣＲＣ）情報、という情報を、少なくとも含む。
【０１０７】
一実施形態において、ＣＮＭペイロード情報は、サンプリングされたデータ・フレームのＭＡＣサービス・データ・ユニット（ＭＳＤＵ）、カプセル化されたフレーム長さ情報、カプセル化された宛先ＭＡＣアドレス、カプセル化された優先度識別子、Ｑｄｅｌｔａ、Ｑｏｆｆｓｅｔ、輻輳ポイントを識別するＶＣＰＩＤ、ＱｎｔｚＦｂ、予約済み識別子、およびバージョン識別子を含む。
【０１０８】
一実施形態において、宛先アドレスは６バイト長さであり、ソース・アドレスは６バイト長さであり、Ｓタグは４バイト長さであり、Ｃタグは４バイト長さであり、ＣＮタグは４バイト長さであり、サンプリングされたデータ・フレームＭＳＤＵは６４バイト長さであり、カプセル化された宛先ＭＡＣアドレスは４８ビット長さであり、カプセル化された優先度識別子は１６ビット長さであり、Ｑｄｅｌｔａは１６ビット長さであり、Ｑｏｆｆｓｅｔは１６ビット長さであり、ＶＣＰＩＤは６４ビット長さであり、ＱｎｔｚＦｂは６ビット長さであり、予約済み識別子は６ビット長さであり、バージョン識別子は６ビット長さであり、ＣＲＣ情報は２バイト長さである。
【０１０９】
図１３は、本発明の実施形態に従った、１つまたは複数の仮想マシンを含む仮想ネットワークによって生成された発信パケットの処理に関する、例示のプロセス６００のフローチャートを示す。プロセス・ブロック６０１で、ＶＲＰＩＤを各仮想マシンに割り当てる。プロセス・ブロック６０２で、各仮想マシンからの各発信パケットに、仮想マシンに関するＶＲＰＩＤを含むＣＮタグを付ける。プロセス・ブロック６０３で、カプセル化データと共に各発信パケットをカプセル化し、カプセル化データは発信パケットに関するＣＮタグのコピーを含む。プロセス・ブロック６０４で、カプセル化された発信パケットをターゲットの宛先に転送する。
【０１１０】
図１４は、本発明の実施形態に従った、ＣＮＭを生成するための例示のプロセス７００のフローチャートを示す。プロセス・ブロック７０１で、配送用のパケットを受信する。プロセス・ブロック７０２で、受信したパケットに対してＱＣＮサンプリングを実行する。プロセス・ブロック７０３で、サンプリングに基づいて輻輳が検出された場合、ＣＰを識別するＶＣＰＩＤ、および輻輳に寄与している仮想マシンを識別するＶＲＰＩＤを含む、ＣＮＭを生成する。プロセス・ブロック７０４で、輻輳に寄与している仮想マシンにＣＮＭを転送する。
【０１１１】
図１５は、本発明の一実施形態を実装するために有用な情報処理システム３００を示す、高水準ブロック図である。コンピュータ・システムは、プロセッサ３０２などの１つまたは複数のプロセッサを含む。プロセッサ３０２は通信インフラストラクチャ３０４（たとえば通信バス、クロスオーバ・バー、またはネットワーク）に接続される。
【０１１２】
コンピュータ・システムは、グラフィックス、テキスト、および通信インフラストラクチャ３０４からの（または図示されていないフレーム・バッファからの）他のデータを、ディスプレイ・ユニット３０８上で表示するために転送する、ディスプレイ・インターフェース３０６を含むことができる。コンピュータ・システムは、メイン・メモリ３１０、好ましくはランダム・アクセス・メモリ（ＲＡＭ）も含み、２次メモリ３１２も含むことができる。２次メモリ３１２は、たとえば、ハード・ディスク・ドライブ３１４および、たとえばフレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す、取り外し可能ストレージ・ドライブ３１６を含むことができる。取り外し可能ストレージ・ドライブ３１６は、当業者に良く知られた方法で、取り外し可能ストレージ・ユニット３１８からの読み取り、または取り外し可能ストレージ・ユニット３１８への書き込みを行う。取り外し可能ストレージ・ユニット３１８は、取り外し可能ストレージ・ドライブ３１６による読み取りおよび書き込みが行われる、たとえばフレキシブル・ディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。理解されるように、取り外し可能ストレージ・ユニット３１８は、コンピュータ・ソフトウェアやデータを記憶するコンピュータ可読媒体を含む。
【０１１３】
代替の実施形態において、２次メモリ３１２は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードできるようにするための他の同様の手段を含むことができる。こうした手段は、たとえば取り外し可能ストレージ・ユニット３５０およびインターフェース３２２を含むことができる。こうした手段の例は、（ビデオ・ゲーム・デバイスで見られるような）プログラム・パッケージおよびパッケージ・インターフェース、取り外し可能メモリ・チップ（ＥＰＲＯＭまたはＰＲＯＭなど）および関連付けられたソケット、ならびに、ソフトウェアおよびデータを取り外し可能ストレージ・ユニット３５０からコンピュータ・システムに転送できるようにする他の取り外し可能ストレージ・ユニット３５０およびインターフェース３２２を含むことができる。
【０１１４】
コンピュータ・システムは通信インターフェース３２４も含むことができる。通信インターフェース３２４は、ソフトウェアおよびデータをコンピュータ・システムと外部デバイスとの間で転送できるようにする。通信インターフェース３２４の例は、モデム、ネットワーク・インターフェース（イーサネット・カードなど）、通信ポート、またはＰＣＭＣＩＡスロットおよびカードなどを含むことができる。通信インターフェース３２４を介して転送されるソフトウェアおよびデータは、たとえば電子、電磁、光、または通信インターフェース３２４による受信が可能な他の信号とすることが可能な、信号の形である。信号は、通信経路（すなわちチャネル）３２６を介して通信インターフェース３２４に提供される。この通信経路３２６は信号を搬送し、ワイヤまたはケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、または他の通信チャネル、あるいはそれらすべてを使用して、実装可能である。
【０１１５】
本書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」という用語は、一般にメイン・メモリ３１０および２次メモリ３１２、取り外し可能ストレージ・ドライブ３１６、ならびにハード・ディスク・ドライブ３１４にインストールされたハード・ディスクなどの媒体を表すために使用される。
【０１１６】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）は、メイン・メモリ３１０および２次メモリ３１２に記憶される。コンピュータ・プログラムは、通信インターフェース３２４を介して受信することもできる。こうしたコンピュータ・プログラムは、実行された場合、コンピュータ・システムが本明細書で考察された本発明の特徴を実行できるようにする。特にコンピュータ・プログラムは、実行された場合、プロセッサ３０２がコンピュータ・システムの特徴を実行できるようにする。したがって、こうしたコンピュータ・プログラムはコンピュータ・システムのコントローラを表す。
【０１１７】
上記の説明から、本発明が、本発明の実施形態を実装するためのシステム、コンピュータ・プログラム製品、および方法を提供することがわかるであろう。本発明は、階層型ルーティング、およびニューラル・ネットワークにおける構造的柔軟性を伴う２方向情報フローのための、持続性コンピュータ使用可能記憶媒体をさらに提供する。持続性コンピュータ使用可能記憶媒体はコンピュータ可読プログラムを有し、プログラムはコンピュータ上で処理されると、本明細書で説明される実施形態に従って本発明のステップをコンピュータに実装させる。特許請求の範囲における単数形での要素への言及は、明示的に示されていない限り「唯一無二」を意味するものとは意図されておらず、むしろ「１つまたは複数」である。当業者に現在知られているかまたは今後知られることになる前述の例示の実施形態の要素に対するすべての構造上および機能上の等価物は、本特許請求の範囲によって包含されるものと意図される。本明細書において請求されるいかなる要素も、その要素が「関する手段」または「関するステップ」という句を用いて明示的に示されていない限り、米国特許法第１１２条第６段落の規定に基づくものと解釈される。
【０１１８】
本明細書で使用される用語は、特定の実施形態のみを説明するためのものであり、本発明を限定するものとは意図されない。本明細書で使用される場合、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明白に示していない限り複数形も含むものと意図される。「含む」および「含んでいる」は、本明細書で使用される場合、示された特徴、整数、ステップ、動作、要素、または構成要素、あるいはそれらすべての存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはそれらすべての存在または追加を排除するものではないことをさらに理解されよう。
【０１１９】
以下の特許請求の範囲におけるすべての手段またはステップならびに機能要素の対応する構造、材料、動作、および等価物は、具体的に請求される場合、他の請求される要素との組み合わせで機能を実行するための任意の構造、材料、または動作を含むものと意図される。本発明の説明は例示および説明の目的で提示してきたが、本発明が開示された形で網羅または限定されるものとは意図されない。当業者であれば、本発明の範囲および趣旨を逸脱することなく、多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用例を最もよく説明するため、ならびに、企図された特定の用途に好適な様々な修正を伴う様々な実施形態に関して本発明を他の当業者が理解できるようにするために、選択および説明された。
【図１】
0006388609.tif 000002
【図２】
0006388609.tif 000003
【図３】
0006388609.tif 000004
【図４】
0006388609.tif 000005
【図５】
0006388609.tif 000006
【図６】
0006388609.tif 000007
【図７】
0006388609.tif 000008
【図８】
0006388609.tif 000009
【図９】
0006388609.tif 000010
【図１０】
0006388609.tif 000011
【図１１】
0006388609.tif 000012
【図１２】
0006388609.tif 000013
【図１３】
0006388609.tif 000014
【図１４】
0006388609.tif 000015
【図１５】
0006388609.tif 000016