IPv4互換アプリケーションからの通信のためにIPv6アドレッシングを使用する方法であって、第1のIPv4アプリケーションから伝達されるデータのIPv4パケットを受信するステップであって、前記データのパケットがIPv4アドレスを使用して宛先に送られる、ステップと、前記データのIPv4パケットをデータのIPv6パケット内にカプセル化するステップであって、前記データのIPv6パケットがIPv6アドレスを使用して前記宛先に送られ、前記IPv6アドレスは、前記IPv4アドレスとグループ識別子とからなる、ステップと、前記IPv6アドレスを使用して、前記データのIPv6パケットを前記宛先に伝達するステップとを含むことを特徴とする方法。前記データのIPv4パケットを受信する前記ステップは、4to6スタックが前記データのIPv4パケットをインターセプトするステップであることを特徴とする請求項1に記載の方法。前記第1のIPv4アプリケーションまたは前記宛先は、IPv6アドレッシングをサポートしないことを特徴とする請求項1に記載の方法。前記宛先は、第2のIPv4アプリケーションであることを特徴とする請求項1に記載の方法。前記IPv4アドレスは、プライベートネットワーク内で一意な識別子であることを特徴とする請求項1に記載の方法。カプセル化する前記ステップは、オペレーティングシステムまたはネットワークルーティングデバイスに関連付けられている4to6スタックによって実行されることを特徴とする請求項1に記載の方法。前記IPv6アドレスは、4バイトを使用するグループ識別子、4バイトを使用するIPv4アドレス、および8バイトを使用する組織識別子からなることを特徴とする請求項1に記載の方法。前記IPv6アドレスの最下位4バイトは前記IPv4アドレスを表すことを特徴とする請求項1に記載の方法。前記第1のIPv4アプリケーションおよび前記宛先は、共通のグループ識別子を有することを特徴とする請求項1に記載の方法。プロセッサおよびメモリを有するコンピューティングシステムによって実行されたときに前記コンピューティングシステムに方法を実行させるコンピュータ実行可能命令が含まれている1つまたは複数のコンピュータ記憶媒体であって、前記方法はデータのIPv6パケットを受信するステップであって、前記データのIPv6パケットは、データペイロードと宛先のグローバルに一意なIPv6アドレスとからなり、前記IPv6アドレスは、128ビットの識別子であり、前記グローバルに一意なIPv6アドレスの前記128ビット識別子の定義済みの数は、IPv4アドレスと互換性のあるIPv4識別子である、ステップと、少なくとも一部は前記グローバルに一意なIPv6アドレスの前記IPv4識別子に基づき、前記宛先の宛先IPv4アドレスを決定するステップと、前記宛先IPv4アドレスを使用して前記データペイロードを前記宛先に伝達するステップとを含むことを特徴とする1つまたは複数のコンピュータ記憶媒体。前記IPv6データパケットは、前記宛先と前記データペイロードの送信元とが関連付けられているグループ識別子からさらに構成されることを特徴とする請求項10に記載の方法。前記宛先IPv4アドレスは、前記IPv4識別子であることを特徴とする請求項10に記載の方法。前記宛先IPv4アドレスは、前記IPv6アドレスを使用してネームサーバ解決要求から決定されることを特徴とする請求項10に記載の方法。前記データのIPv6パケットからIPv6ヘッダを取り除き、前記データペイロードからなるデータのIPv4互換パケットを残すステップをさらに含むことを特徴とする請求項10に記載の方法。IPv4互換アプリケーションからの通信のためにIPv6アドレッシングを使用するシステムであって、インターネットを介してアクセス可能なネームサーバと、前記ネームサーバに関連付けられている名前解決テーブルであって、前記名前解決テーブルは、宛先に関連付けられている識別子のマッピングを保持し、前記識別子の前記マッピングは、グローバルに一意なIPv6アドレス、プライベートネットワークのIPv4アドレス、およびグループ識別子の間のマッピングである、名前解決テーブルと、仮想ネットワークのIPv4アドレスを使用してIPv4データパケットを前記宛先に伝達する機能を有するIPv4コンピュータアプリケーションと、前記IPv4コンピュータアプリケーションに関連付けられている仮想ネットワークインターフェースカードNICであって、前記コンピュータアプリケーションから前記IPv4データパケットを前記宛先に伝達することを可能にする、仮想NICと、前記仮想NICと通信する4to6スタックであって、前記宛先のグローバルに一意なIPv6アドレスからなるIPv6データパケット内に前記IPv4データパケットをカプセル化し、前記プライベートネットワークのIPv4アドレスと前記グローバルに一意なIPv6アドレスとの間の前記名前解決テーブル内のマッピングを使用して、前記グローバルに一意なIPv6アドレスを識別する、4to6スタックとを備えたことを特徴とするシステム。本発明の実施形態の主題は、法的要件を満たすように本明細書における特異性とともに説明されている。しかし、説明自体は、本発明の範囲を制限することを意図されていない。むしろ、発明者らは、請求されている主題が他の方法でも、他の現在の、もしくは将来の技術と併せて、異なるステップもしくは本明細書で説明されているステップに似たステップの組み合わせを含むように具現化されうることを企図している。本発明の実施形態は、IPv4互換アプリケーションからの通信またはIPv4互換アプリケーションへの通信の際にIPv6アドレッシングを使用するためのシステム、方法、およびコンピュータ記憶媒体に関する。IPv4エンドポイントからの、および/またはIPv4エンドポイントに向けられたデータのIPv4パケットは、データのIPv6パケット内にカプセル化される。IPv6互換アドレスは、データのIPv6パケットの宛先に関して識別される。IPv6アドレスは、カプセル化されたIPv4パケットのIPv4アドレスを表すIPv4識別子からなるGUIDである。データのIPv6パケットは、IPv6アドレスによって識別された宛先に伝達される。4to6スタックは、送信先の前にデータの着信IPv6パケットをインターセプトして、IPv6ヘッダ情報を消去し、データのIPv4パケットを露わにすることができる。同様に、4to6スタックは、送信元例えば、IPv4アプリケーションによって生成されたデータの送信IPv4パケットをインターセプトして、それをIPv6ヘッダ内にカプセル化してから宛先例えば、IPv4アプリケーション、IPv6アプリケーションに転送することができる。一意なIPv6識別子および対応するグローバルでない一意なIPv4識別子は、ダイナミックネームサーバおよび通信しているエンドポイント例えば、送信元、宛先におけるすべてのIPv6識別子に共通のフィールドであるグループ識別子を介して互いに関連付けられる。したがって、一態様では、本発明は、IPv4互換アプリケーションからの通信にIPv6アドレッシングを使用する方法を提供する。この方法は、第1のIPv4アプリケーションから伝達されるデータのIPv4パケットを受信するステップを含み、データのパケットは、IPv4アドレスを使用して宛先に送られる。さらに、この方法は、データのIPv6パケット内にデータのIPv4パケットをカプセル化するステップを含み、データのIPv6パケットは、IPv6アドレスを使用してその宛先に送られる。それに加えて、IPv6アドレスは、IPv4アドレスとグループ識別子とからなる。この方法は、IPv6アドレスを使用してデータのIPv6パケットを宛先に伝達するステップも含む。別の態様では、本発明は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されたときにコンピューティングシステムに方法を実行させるコンピュータ実行可能命令が含まれているコンピュータ記憶媒体を備える。この方法は、データのIPv6パケットを受信するステップを含み、データのIPv6パケットは、データペイロードと宛先のグローバルに一意なIPv6アドレスとからなり、IPv6アドレスは、128ビットの識別子である。グローバルに一意なIPv6アドレスの128ビット識別子の定義済みの数は、IPv4アドレスと互換性のあるIPv4識別子である。この方法は、少なくとも一部はグローバルに一意なIPv6アドレスのIPv4識別子に基づき宛先の宛先IPv4アドレスを決定するステップも含む。この方法は、宛先IPv4アドレスを使用して、データペイロードを宛先に伝達するステップも含む。本発明の第3の態様は、IPv4互換アプリケーションからの通信にIPv6アドレッシングを使用するためのシステムを実現する。システムは、インターネットを介してアクセス可能なネームサーバを備える。システムは、ネームサーバに関連付けられている名前解決テーブルも備える。名前解決テーブルには、宛先に関連付けられている識別子のマッピングが保持される。これらの識別子のマッピングは、グローバルに一意なIPv6アドレス、仮想ネットワークのIPv4アドレス、およびグループ識別子の間のマッピングである。システムは、プライベートネットワークのIPv4アドレスを使用してIPv4データパケットを宛先に伝達する機能を有するIPv4コンピュータアプリケーションも備える。システムは、IPv4コンピュータアプリケーションに関連付けられている仮想NICネットワークインターフェースカードも備える。仮想NICは、コンピュータアプリケーションからIPv4データパケットを宛先に伝達する機能を円滑にする。システムは、仮想NICと通信する4to6スタックも備える。4to6スタックは、宛先のグローバルに一意なIPv6アドレスからなるIPv6データパケット内にIPv4データパケットをカプセル化する。4to6スタックは、プライベートネットワークのIPv4アドレスとグローバルに一意なIPv6アドレスとの間の名前解決テーブル内のマッピングを使用してグローバルに一意なIPv6アドレスを識別する。本発明の実施形態の概要を簡単に説明したが、その実施形態を実装するのに適した例示的な動作環境について以下で説明する。一般に図面を参照するが、最初に図1を参照すると、本発明の実施形態を実装するのに適した例示的な動作環境が示されており、一般にコンピューティングデバイス100として指示されている。コンピューティングデバイス100は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティングデバイス100は、例示されている1つのモジュール/構成要素またはその組み合わせに関係する何らかの依存関係または要求条件がそのコンピューティングデバイス100内にあるものと解釈されるべきでない。実施形態は、携帯情報端末または他のハンドヘルドデバイスなどのコンピュータまたは他のマシンによって実行される、プログラムモジュールなどのコンピュータ実行可能命令を含む、コンピュータコードまたはマシン使用可能命令の一般的背景状況において説明することができる。一般に、ルーチン、プログラム、オブジェクト、モジュール、データ構造、および同様のものを含むプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するコードを意味する。実施形態は、ハンドヘルドデバイス、家電製品、汎用コンピュータ、専用コンピューティングデバイスなどを含む、さまざまなシステム構成において実施することができる。また実施形態は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。引き続き図1を参照すると、コンピューティングデバイス100は、メモリ112、1つまたは複数のプロセッサ114、1つまたは複数のプレゼンテーションモジュール116、I/O入出力ポート118、I/Oモジュール120、および例示的な電源122などのデバイスを直接的にまたは間接的に結合するバス110を備えることがわかる。バス110は、1つまたは複数のバスアドレスバス、データバス、またはその組み合わせなどとなるようなものとしてよい。わかりやすくするために図1のさまざまなブロックが線で示されているが、実際は、さまざまなモジュールを線引きするのはそれほど明確でなく、これらの線は、暗喩的に、より正確には灰色で曖昧なものとなる。例えば、表示デバイスなどのプレゼンテーションモジュールをI/Oモジュールとみなすことができる。また、プロセッサはメモリを備える。本発明の発明者らは、このようなことは技術の本質であることを理解しており、繰り返して言うと、図1の略図は、1つまたは複数の実施形態に関して使用することができる例示的なコンピューティングデバイスを単に例示しているにすぎない。ワークステーション、サーバ、ラップトップ、ハンドヘルドデバイスなどのカテゴリは、すべて図1の範囲内にあることが企図され、コンピュータまたはコンピューティングデバイスを参照するので、区別はなされない。コンピューティングデバイス100は、典型的には、さまざまなコンピュータ可読媒体を備える。例えば、限定はしないが、コンピュータ可読媒体として、RAMランダムアクセスメモリ、ROM読出し専用メモリ、EEPROM電子的消去可能プログラマブル読出し専用メモリ、フラッシュメモリもしくは他のメモリ技術、CDROM、DVDデジタル多目的ディスクまたは他の光もしくはホログラフィック媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶装置デバイス、または所望の情報を符号化し、コンピューティングデバイス100によりアクセスするために使用することができる他の媒体が挙げられる。メモリ112として、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。メモリは、取り外し可能、取り外し不可能、またはその組み合わせとすることができる。例示的なハードウェアデバイスは、固体メモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス100は、メモリ112またはI/Oモジュール120などのさまざまな要素からデータを読み取る1つまたは複数のプロセッサを含む。プレゼンテーションモジュール複数可116は、ユーザまたは他のデバイスにデータ指示を送る。例示的なプレゼンテーションモジュールは、表示デバイス、スピーカ、印刷モジュール、振動モジュール、および同様のものを含む。I/Oポート118を使用することで、コンピューティングデバイス100は、I/Oモジュール120を含む他のデバイスに論理的に結合することができ、一部は組み込みにすることもできる。例示的なモジュールは、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、プリンタ、無線デバイス、および同様のものを含む。図2は、本発明の実施形態によるデータの例示的なIPv4パケット200を示す図である。データのIPv4パケット200は、IPv4宛先アドレス202、IPv4送信元アドレス204、およびデータペイロード206からなる。IPv4アドレスは、宛先または送信元に関連付けられているかどうかに関係なく、32ビット4バイト識別子である。その結果、IPv4宛先アドレスおよびIPv4送信元アドレス204は、それぞれ、32ビットの情報を使用してネットワーク接続環境においてアクセス可能な特定のロケーション例えば、アプリケーション、デバイスを識別する。歴史的に、それぞれのIPv4アドレスは、同じネットワーク例えば、プライベートネットワーク、インターネットによってアクセス可能な他のロケーションから、指定のロケーションを特に識別するように機能するGUIDである。インターネットが発展した結果、IPv4アドレスの消費が増大しインターネットに固有の利用可能なIPv4アドレスの枯渇が避けられない状況に至った。したがって、インターネットによるデータのIPv4パケット200の通信は、宛先のロケーションを識別するためにIPv4宛先アドレス202における一意な識別子に依存する。IPv4宛先アドレス202は、データのIPv4パケット200の宛先を、32ビット識別子により識別する。同様に、IPv4送信元アドレス204を埋めるときに一意な識別子が望ましい。IPv4送信元アドレス204は、データのIPv4パケット200の送信元を、32ビット識別子により識別する。例示的な一実施形態において、IPv4送信元アドレス204によって識別されるような、データのIPv4パケット200の送信元は、オペレーティングシステムと連携して動作するコンピューティングアプリケーションである。コンピューティングアプリケーションは、IPv4アドレッシングつまり、IPv4規約を使用するアドレスデータパケットを使用するようにコーティングすることができる。本発明の例示的な一実施形態では、コンピューティングアプリケーションは、IPv6を使用するようにコーティングされていない。コンピューティングアプリケーションがIPv6アドレッシングをサポートしていない場合、IPv6に固有の利点を、コンピューティングアプリケーションから使用することはできない。例えば、IPv6では、128ビットのアドレス16バイトのアドレスを採用しており、これによりIPv4の32ビットのアドレスに比べてグローバルに一意なアドレス識別子が大幅に増える。IPv4とIPv6との間にいくつかの固有の相違点例えば、IPv4のパケットとIPv6のパケットのヘッダは著しく異なるがあるため、これら2つのプロトコルには相互運用性がない。データペイロード206は、送信元から宛先への通信が意図されている実体を含むデータのIPv4パケット200の部分である。例示的な一実施形態では、IPv4宛先アドレス202およびIPv4送信元アドレス204は、データのIPv4パケット200に関連付けられているヘッダの2つの部分である。図3は、本発明の例示的な一実施形態によるデータの例示的なIPv6パケット300を示す図である。データのIPv6パケット300は、IPv6宛先アドレス302、IPv6送信元アドレス304、およびデータペイロード306からなる。データペイロード306は、送信元から宛先への通信が意図されている実体を典型的に含むデータのIPv6パケット300の部分である。IPv6宛先アドレスは、データのIPv6パケット300の意図された受信者のIPv6互換識別子である。IPv6送信元アドレス304は、データのIPv6パケット300の送信元の互換識別子である。これから理解されるように、パケットの送信元は、パケットの発信元または生成元を識別することができないが、その代わりに、送信元は、応答が送られるべきパケットが進む経路上の地点例えば、ルーターを識別することができる。したがって、本明細書で使用されているような送信元という用語は、応答がデータパケットの発信点とは反対の方へ向けられうる地点を指すものとしてよいことを理解されたい。IPv6宛先アドレス302およびIPv6送信元アドレス304は、データのIPv6パケット300のヘッダを含む部分である。IPv6宛先アドレス302およびIPv6送信元アドレス304のそれぞれは、IPv6規約による128ビットのアドレス16バイトのアドレスである。図4は、本発明の実施形態による例示的なIPv6パケット400例えば、IPv6データパケットを示している。IPv6パケット400は、一実施形態では、一部は4to6スタックによって作成される。本明細書でさらに詳しく説明されるように、4to6スタックは、IPv6パケット内にIPv4パケットをカプセル化する。IPv6パケット400は、宛先402、送信元404、およびペイロード406からなる。図3のデータのIPv6パケット300に関してすでに説明されているように、宛先402は、IPv6パケット400に対する意図された受信者ロケーションを表す。送信元404は、すでに説明されているように、IPv6パケットの発信元である発信ロケーション例えば、生成ロケーション、通信経路上の地点を識別する。ペイロード406は、データのカプセル化されたIPv4パケットである。例えば、図2に関して説明されているデータのIPv4パケット200は、IPv6に準拠して通信のアドレッシングを行うことができないIPv4アプリケーションによって生成されうる。したがって、図4に示されているように、IPv4は、ペイロード406としてIPv6パケット400内にカプセル化されうる。後でさらに詳しく説明するように、IPv6パケット400のペイロード406は、IPv4パケットのペイロードを含むだけでなく、ペイロード406は、IPv4パケットのヘッダに典型的に関連付けられている情報例えば、IPv4宛先アドレス、IPv4送信元アドレスからも構成されうる。宛先402は、IPv6宛先アドレス408からなる。例示的な一実施形態における、IPv6宛先アドレス408は、これ以降図5に関して説明されるものと同様のフォーマットを有する。送信元404は、IPv6送信元アドレス410からなる。例示的な一実施形態では、IPv6送信元アドレス410は、これ以降図5に関して説明されるものと同様のフォーマットを有する。ペイロード406は、IPv4宛先アドレス412、IPv4送信元アドレス414、およびデータペイロード416からなる。図4に示されているIPv6パケットは、4to6スタックがIPv6互換パケット内のIPv4対応アプリケーションを発信元とするIPv4パケットをカプセル化する本発明の例示的な一実施形態によるパケットである。したがって、宛先においてIPv4パケットの使用を円滑に進めるために、一実施形態では、IPv4パケットのヘッダの内容がペイロード406の一部としてIPv6パケット内に保持され搬送される。例えば、元のIPv4パケットは図2に関してすでに説明されているようにIPv4宛先アドレスおよびIPv4送信元アドレスを含み、これらはIPv6ペイロード406内でそれぞれIPv4宛先アドレス412およびIPv4送信元アドレス414として表される。本発明の例示的な一実施形態において、IPv4互換アプリケーションは、IPv4パケットの生成に備えて、所望の宛先のIPv4アドレスについて、NSネームサーバ要求を実行することができる。この例では、宛先は、アプリケーションBと参照され、発信側アプリケーションは、アプリケーションAと参照される。図6に関してさらに詳しく説明されるように、NSは、ダイナミックスNSであるものとしてよい。次いで、この要求に対するNSの応答が、この例では、4to6スタックによってインターセプトされ、その後、アプリケーション側が受信する。次いで、4to6スタックは、送信パケットへの着信応答のためアプリケーションにサービスを提供する仮想ネットワークインターフェースカードを起動することができる。それに加えて、NSまたは4to6スタックまたは関連付けられている名前解決テーブルのいずれかによって提供される情報を、その後、アプリケーションBの所望の宛先をアドレッシングするためにIPv4アドレスが機能しているアプリケーションAに送ることができる。その結果、この例では、次いでアプリケーションAがNSまたは4to6スタックによって提供されるIPv4アドレスによって記述される宛先を持つパケットを生成する。しかし、後でさらに詳しく説明されるように、NSまたは4to6スタックによって提供されるIPv4アドレスは、この例では、グローバルに一意ではない。IPv4アドレスは、少なくとも一部はアプリケーションAおよびアプリケーションBからなるグループとして定義されるグループ内で一意である。別の言い方をすると、この例で与えられるIPv4アドレスは、インターネット上で一意ではないが、アプリケーションAおよびアプリケーションBからなるグループに参加しているエンドポイント間では一意であるということである。このグループ関連付けは、NS内で維持されうる。引き続きこの例において、アプリケーションAによって作成されるIPv4パケットは、4to6スタックによってインターセプトされる。インターセプトされたIPv4パケットは、IPv6互換ヘッダが実装されるようにIPv6パケット内にカプセル化される。本明細書で説明されたときに、IPv6ヘッダは、完全なIPv6ヘッダであるか、または短縮されたIPv6互換ヘッダであるものとしてよいことを理解されたい。IPv6ヘッダは、宛先例えば、図4の宛先402および送信元例えば、図4の送信元404を含むものとしてよい。宛先IPv6アドレスは、この例では、本発明の例の態様を円滑に実行されるようにIPv4アドレス、IPv6アドレス、およびグループ識別子を互いにマッピングする名前解決テーブルによって与えられる。したがって、この例では、カプセル化するIPv6パケットは、アプリケーションBに対応するIPv6宛先アドレスを含む。アプリケーションAによって生成されるIPv4パケットがIPv6パケット内にカプセル化された後、IPv6によって実現されうる利点を活かしながらアプリケーションBへのパケットの通信を調整するためにIPv6ヘッダに依存する。次いで、IPv6パケットは、データペイロードの一部として、アプリケーションAによって生成されるIPv4ヘッダも含みうる。例示的な一実施形態において、アプリケーションBに沿って4to6スタックに到達した後、IPv6ヘッダはデータペイロードから消去され/取り除かれ、アプリケーションAによって生成された元のIPv4データパケットが露出する。次いで、IPv6ヘッダが消去されたIPv6パケット今はもうIPv4パケットがアプリケーションBに渡される。アプリケーションBおよびアプリケーションAは、通信パケットが道程のある区間においてIPv6パケットとして渡されたことを知ることなく動作しうる。したがって、アプリケーションAおよびアプリケーションBは、IPv6の使用が円滑に進むように更新されるか、または他の何らかの形で修正されるということがないレガシーアプリケーションであるものとしてよい。図5は、本発明の例示的な一実施形態によるIPv6アドレス500を示している。IPv6アドレスは、標準の128ビットからなるが、これら128個のビットの割り当ては、現在の実施形態に固有である。例えば、128ビットのうちの最上位のYつまり、定義済みの数Yビットは、組織識別子502として使用される。同様に、この例では、128ビットのうちの最下位のXつまり、定義済みの数Xビットは、IPv4互換アドレス506を組み込むために使用される。それに加えて、この例では、128ビットの中間位のZビットは、グループ識別子504として使用される。組織識別子は、組織を識別する。例えば、組織は、ワシントン州レドモンド所在の本件出願人によるAZUREなどのクラウドコンピューティングプラットフォームであってもよい。組織は、事業体例えば、企業、政府、大学、市、州であってもよい。組織は、上で示唆されている分類に限定されない。グループ識別子は、組織内のグループを識別する。例えば、グループは、クラウドコンピューティングプラットフォーム内の一サービスを実行するテナントを含むことができる。グループは、組織内の職務を遂行するために連携して作業にあたるリソースの集合体例えば、プロセッサとコンピュータ可読記憶装置の集合体であってもよい。IPv4互換アドレスは、IPv4の要件を満たす識別子である。例示的な一実施形態では、IPv4互換アドレスは、IPv4の要件を満たすが、IPv4互換アドレスは、グローバルに一意ではなく、その代わりに、関連付けられているグループ識別子によって識別されるグループ内で一意である。そのため、ネットワーク例えば、インターネットによってアクセス可能な複数のエンドポイントが、同じIPv4互換アドレス506を有するがつまり、したがってグローバルに一意ではないが、IPv4互換のアドレスは、グループ識別子504を共有するエンドポイント間で一意であることが企図される。典型的なIPv4アドレスは、32ビット例えば、4バイトからなる。その結果、例示的な一実施形態では、IPv4互換アドレス506では、IPv6アドレス500の最下位128ビットのうちの32個のビットを使用する。別の言い方をすると、IPv4互換アドレス506は、最下位32例えば、Xビットビットを消費する。さらに、組織識別子502は、この例では、128ビットのうちの64個のつまり、Yビットの最上位ビットを使用する。その結果、この例では、グループ識別子504は、128ビットの残り32ビットつまり、Zビットを中間位ビットとして使用する。Y、Z、およびXビット間のビット使用の他の組み合わせも企図されることを理解されたい。例えば、最上位のYビットを縮小し、中間位のZビットを増加させることができる。しかし、例示的な実施形態ではYZX=128であると理解される。図6は、本発明の実施形態による例示的なシステム600を示すブロック図である。システム600は、エンドポイントA602、エンドポイントB604、ネットワーク606、およびネームサーバすでに示されているようにNS608からなる。本明細書で説明されているこの配置構成および他の配置構成は、例としてのみ示されていることは理解されるであろう。他の配置構成および要素例えば、デバイス、エンドポイント、ネットワーク、アプリケーション、テーブル、スタックなどを、図示されているものに加えて、またはその代わりに使用することができ、いくつかの要素についてはまとめて省くこともできる。さらに、本明細書で説明されている要素の多くは、離散もしくは分散構成要素として、または他の構成要素と連携して、また好適な組み合わせにより、好適なロケーションにおいて実装されうる機能する実体である。本明細書において1つまたは複数の実体により実行されるものとして説明されているさまざまな機能は、ハードウェア、ファームウェア、および/またはソフトウェアによって実行されうる。例えば、さまざまな機能が、メモリ内に格納されている命令を実行するプロセッサによって実行することが可能である。図6に示されている構成要素のそれぞれは、例えば図1を参照しつつ説明されているコンピューティングデバイス100などの、任意の種類のコンピューティングデバイスであってよい。任意の数のエンドポイント、ネットワーク、ネームサーバ、送信元、および宛先は、本発明の範囲内においてシステム600内で使用することができることは理解されるであろう。それに加えて、図示されていない他の構成要素も、システム600内に組み込むことができる。ネットワーク606は、IPv6の通信をサポートすることができるネットワークである。ネットワーク606は、部分的にしかIPv6をサポートできないことが考えられる。例えば、レガシーIPv4互換ネットワーキングデバイスは、ネットワーク606を通じて一部の通信の経路選択を行うステップを取り扱うために使用されうる。IPv4互換デバイスが、少なくとも一部、使用される場合、IPv6トンネリングなどのよく知られているトンネリング技術を本明細書で説明されている機能と組み合わせて使用することが企図される。図6の構成要素は、ネットワーク606を介して互いに通信することができ、これは、限定はしないが、1つまたは複数のLANローカルエリアネットワークおよび/またはWANワイドエリアネットワークを含みうる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。例示的な一実施形態では、NS608は、ネットワーク606を使用する構成要素/デバイスに対する名前解決サービスを提供するネームサーバである。例えば、ネームサーバ608は、現在のネットワーキング環境で一般に使用されるダイナミックNSDNSであってよい。しかし、従来のDNSとは異なり、NS608は、名前解決テーブル610からなる。ほかにも特徴はあるがとりわけ、名前解決テーブル610は、IPv6アドレス図5のIPv6アドレス500、IPv4互換アドレス、およびエンドポイントに対するグループ識別子のマッピングを保持する。ネットワーク606によってアクセス可能なそれぞれのエンドポイントに対するこれらの少なくとも3つのレコードのマッピングを保持するために、1つまたは複数のNS608が実装されうることが企図される。本発明の実施形態に関して説明されているようなIPv6アドレスは、IPv4互換アドレスとグループ識別子とからなるものとすることができ、例示的な一実施形態ではIPv6アドレスのみが保持されることが企図される。グループ識別子および/またはIPv4互換アドレスは、IPv6アドレスから識別されうる。例えば、IPv6アドレスの最下位のXビットを、相関するIPv4互換アドレスを識別するために検証することができる。同様に、中間位のZビットを、グループ識別子を識別するために検証することができる。さらに、本発明のいくつかの実施形態は、名前解決テーブル内に、IPv4互換アドレス、グループ識別子、およびエンドポイントの組織識別子を保持することが企図されている。これら3つのレコードは、本明細書で説明されているようにIPv6アドレスを識別するために組み合わせて使用することができる。さまざまなレコードの任意の組み合わせが、IPv6アドレス、IPv4アドレス、および与えられたエンドポイントのグループ識別子を識別するために実装されうる。名前解決テーブル610には、多くの異なる方法で情報を書き込むことができる。例えば、エンドポイントは、情報を提供することができる。ネットワーク管理者も、情報を提供することができる。この情報は、ネットワーク606を通過するデータパケットを調査することによって識別することができる。この情報は、エンドポイントに関連付けられている1つまたは複数のサービス例えば、4to6スタックによって識別されうる。ローカルの名前解決テーブルキャッシュにより、NSにある名前解決テーブルへの情報を動的に更新することができる。エンドポイントA602は、IPv4互換アプリケーション612、仮想ネットワークインターフェースカード614、4to6スタック616、および名前解決テーブルキャッシュA618からなる。エンドポイントB604は、IPv4互換アプリケーション620、仮想ネットワークインターフェースカード622、4to6スタック624、および名前解決テーブルキャッシュB626からなる。すでに説明されているように、IPv4互換アプリケーション612または620などの、IPv4互換アプリケーションは、IPv4標準を使用して通信のアドレッシングを行うアプリケーションである。そのため、例示的な一実施形態では、IPv4互換アプリケーションは、IPv6アドレッシングを使用して通信例えば、データパケットのアドレッシングを行うことができない。したがって、この例では、IPv4互換アプリケーションは、本質的にIPv6を使用することはできない。例示的な一実施形態では、IPv4互換アプリケーション612などの、アプリケーションは、データパケットを送信するエンドポイント例えば、送信元またはデータパケットが送信されるエンドポイント例えば、宛先である。IPv4互換アプリケーション612は、例示的な一実施形態では、クラウドコンピューティング環境内で稼働するサービスである。4to6スタック616は、本発明のさまざまな実施形態の特徴を実現するファームウェア、ハードウェア、および/またはソフトウェアの実装である。例えば、4to6スタック616は、IPv4互換アプリケーション612を宛先とするNS608からの名前解決応答をインターセプトすることができる。この応答または他の実施形態における要求をインターセプトした後、4to6スタック616は、宛先のIPv4アドレスを提供することができる。例示的な一実施形態では、4to6スタック616は、オペレーティングシステムによって使用されるプラグインである。例示的な別の実施形態では、4to6スタック616は、オペレーティングシステムのshimである。4to6スタックをオペレーティングシステムと連携して使用することによって、4to6スタックは、個別でのそれぞれのアプリケーションとは反対にオペレーティングシステムと連携するように構成されるだけでよい。しかし、4to6スタックは、個別のアプリケーションによっても同様に実装される。さらに、4to6スタックは、ネットワークルーティングデバイス内に組み込まれる。それに加えて、4to6スタック616は、IPv4互換アプリケーション612に対するインターフェースとして働く仮想ネットワークインターフェースカード614を呼び出すことができる。さらに、4to6スタックは、名前解決テーブルキャッシュA618と連携して動作し、情報の書き込み、保持、更新、および/または同期処理を行うことができる。例えば、一実施形態では、名前解決テーブルキャッシュA618は、名前解決テーブル610を通じてアクセス可能な情報のローカルキャッシュである。例示的な一実施形態では、IPv4互換アプリケーション620、仮想ネットワークインターフェースカード622、4to6スタック624、および名前解決テーブルキャッシュB626は、エンドポイントA602に関してすでに説明されている同様の名前の構成要素に相当する。したがって、本発明の実施形態の範囲内で所望の機能を実現するために、任意の数の構成要素を使用することができる。わかりやすくするために図6のさまざまな構成要素が線で示されているが、実際は、さまざまな構成要素を線引きするのはそれほど明確でなく、これらの線は、暗喩的に、より正確には灰色であるか、もしくは曖昧なものとなる。さらに、図6のいくつかの構成要素は、単一ブロックとして示されているけれども、図は性質および数の点での例であり、制限するものとして解釈すべきでない。図6に説明されている構成要素を使用する本発明の例示的な実施形態は、これ以降図7に関して説明する。図7は、本発明の実施形態による通信および処理の例示的な流れ700を示している。流れ700は、少なくとも一部は、送信元のIPv4互換アプリケーション702、4to6スタック704、ネットワーク706、4to6スタック708、および宛先のIPv4互換アプリケーション710の間の流れである。図7の周辺、および図7を伴う以下の説明は、単なる例にすぎず、発明の実施形態を対象としているが、本明細書では追加の実施形態が企図されていることを理解されたい。例示的な一実施形態では、その後一意なIPv6アドレスおよびグループ識別子に関連付けられる公開の完全修飾ドメイン名などの、グローバルに一意な名前にエンドポイントを登録するためにダイナミックNSが使用される。この例では、すでに説明されているように、グループ識別子は128ビットのIPv6アドレスの最上位の96ビットを1つにまとめて、または組合せとして消費するグループ識別子および組織識別子であってよい。引き続きこの例を参照すると、グローバルに一意な名前をIPv6アドレスに関連付けた後、4to6スタックがエンドポイントの呼び出し経路内に追加されることがわかる。図7に例示されているように、IPv4互換アプリケーション例えば、送信元は、ネットワーク706によって、宛先、つまり宛先のIPv4互換内アプリケーション710にデータのパケットを伝達することを意図している場合がある。この例においてデータパケットの通信を行うために、送信元のIPv4互換アプリケーション702は、宛先のIPv4互換機アプリケーション710に対するNSへのネームサーバ解決要求を開始する図示せず。次いで、NSは、送信元のIPv4互換アプリケーション702に、宛先のIPv4互換アプリケーション710に対するIPv4アドレスとIPv6アドレスの両方を返す図示せず。返されたIPv6アドレスの最下位32ビットが、返されたIPv4アドレスに対応している場合、IPv4互換アプリケーションは4to6スタックを使用することができると判定することができる。引き続き図7を参照すると、4to6スタック704は、名前解決テーブルキャッシュもしくは元のテーブルの中に宛先のIPv4互換アプリケーション710に対するグループ識別子を入力することができる。入力することができる追加の情報は、宛先のIPv4互換アプリケーション710に対するIPv6アドレスおよび/または仮想IPv4アドレスIPv6アドレスの最下位32ビットを含む。仮想IPv4アドレスは、すでに説明されているように、グループ識別子によって識別されたグループ内で一意であるが、仮想IPv4アドレスは、グローバルに一意ではない場合がある。一意な仮想IPv4および/またはIPv6アドレスは、アドレスサーバ図示せずから取得することができる。例えば、アドレスサーバへのポインターは、送信元のIPv4互換アプリケーション702が宛先のIPv4互換機アプリケーション710の解決を要求したときにNSによって提供される名前解決に含まれうる。この例では、アドレスサーバは、DHCPサーバによって同様に提供されうる機能を提供することができる。仮想的な一意なIPv4の名前割り当ての結果、送信元のIPv4互換アプリケーション702および宛先のIPv4互換アプリケーション710は、仮想的なレベルの通信でピアレベルのIPv4のセマンティクスpeerlevelIPv4semanticsを提供する仮想オーバーレイネットワーク内に属し、したがって、これはレガシーIPv4アプリケーションをサポートする。引き続き図7に示されている例を参照すると、送信元IPv4互換アプリケーション702は、宛先のIPv4互換アプリケーション710への配信を意図してIPv4712としてデータのパケットを生成し、伝達する。4to6スタック704は、データパケット通信をインターセプトし、カプセル化714のプロセスを実行する。カプセル化714のプロセスは、IPv4712をIPv6データパケット内に入れる例えば、IPv6パケットのペイロードとして。例示的な一実施形態では、送信元のIPv4互換アプリケーション702に関連付けられている仮想NICは、宛先のIPv4互換アプリケーション710と通信するために送信元のIPv4互換アプリケーション702によって使用される。4to6スタック704は、宛先を識別するために仮想NICからの通信を識別する。宛先は、仮想NICのグループ識別子組織識別子を含むこともできるからなるIPv6アドレスと通信データパケットのヘッダ内に示されるIPv4宛先アドレスとを有する。グループ識別子およびIPv4宛先アドレスは、IPv6アドレスを生成するために使用することができる。IPv6、IPv4、およびグループ識別子の間のこの関連付けは、名前解決テーブルキャッシュまたは他のリポジトリ内で保持されうる。4to6スタック704から、カプセル化されたIPv4通信がネットワーク706を通じてIPv6716/IPv6718の通信として送られる。IPv6718の通信は、宛先のIPv4互換アプリケーション710に関連付けられている4to6スタック708によってインターセプトされる。抽出720のプロセスが実行され、IPv6のヘッダ情報を消去してIPv4データケットを露わにする。IPv4データパケットは、IPv4722の通信として宛先のIPv4互換アプリケーション710に伝達される。共通のIPv4仮想ネットワークに関連付けられている送信元のIPv4互換アプリケーション702と宛先のIPv4互換アプリケーション710との間のIPv4メッセージの通信が円滑に行われるように仮想NICを宛先のIPv4互換アプリケーション710に関連付けることができることを理解されたい。4to6スタック708は、カプセル化されたIPv4データパケットを含むデータパケットを識別するためにいくつかの検出技術を使用することができる。IPv6パケットヘッダがフローラベルまたはフラグを立てる他のメカニズムを備えることが企図される。それに加えて、データパケットに随伴するIPv6送信元アドレスに対して分析を実行することが企図される。送信元のIPv6アドレスのYおよびZの最上位ビット例えば、96ビットがIPv4互換アプリケーションのYおよびZの最上位ビットに対応する場合、通信の発信元が宛先のIPv4互換アプリケーション710と同じグループの内のエンドポイントであるしたがって、潜在的に、同じ仮想ネットワークであると推測することが可能である。上記の例と本明細書で取り上げられている他の実施形態に基づき、IPv6を実装するための前の戦略とは異なり、エンドポイントアプリケーションの一方もしくは両方が本発明の実施形態によりIPv6互換性を有していなくてもよいことを理解されたい。例えば、6to4RFC3056ではIPv6のサイトは明示的なトンネル設定なしでIPv4ネットワーク上で互いに通信することを許しているが、エンドポイントはIPv6との互換性を有していなければならない。同様に、IPv6トンネルブローカーRFC3053では、IPv6ホストがIPv6トンネルブローカーを通るIPv4トンネルを用いて互いに接続することを許しているが、ここでもまたエンドポイントはIPv6との互換性を有していなければならない。それに加えて、Teredoは、エンドポイントがIPv4のNATネットワークアドレス変換器の内側にある場合に、ユニキャストIPv6トラフィックに対してアドレスの割り当ておよびホスト間のトンネリングを提供するが、ここでもまたエンドポイントはIPv6との互換性を有していなければならない。さらに、ISATAPIntraSiteAutomaticTunnelingAddressingProtocolRFC4214も、アプリケーションがエンドポイントでIPv6との互換性を有していること要求する。それに加えて、本発明の実施形態によって対処される問題に対する前の戦略では、グローバルに一意なIPv4を使用することが必要な場合がある例えば、ステートレスのIP/ICMP変換RFC2765。さらに、別の前の戦略では、IPv6エンドポイントに対するアプリケーションレベルのゲートウェイでIPv4エンドポイントのアドレッシングを行うことが必要になることがある例えば、NAT-PTおよびNAPT-PTRFC4966。本発明の例示的な一実施形態では、IPv6の利点の少なくともいくつかの利点を実現しながら、IPv6アプリケーションレベルのゲートウェイは1つまたは複数のIPv4アプリケーション間で通信するために使用されない。図8は、本発明の実施形態によるIPv4互換アプリケーションからの通信にIPv6アドレッシングを使用する例示的な方法800を表すブロック図である。ブロック802は、送信元のIPv4アプリケーションから伝達されるデータのIPv4パケットを受信するステップを示している。例示的な一実施形態において、データのパケットは、IPv4アドレスを使用して宛先に送られる。データのIPv4パケットの受信は、IPv4互換アプリケーションに関連付けられている4to6スタックがデータをインターセプトすることとすることができる。ブロック804で、データのIPv4パケットをデータのIPv6パケットとしてカプセル化する。すでに説明されているように、カプセル化プロセスは、IPv6ヘッダをIPv4パケットに付加してIPv4パケットをIPv6パケットのデータペイロードにするステップを含むことができる。IPv6パケットは、例示的な一実施形態において、データのIPv4パケットからのIPv4アドレスおよびグループ識別子グループ識別子および/または組織識別子を含むものとしてよいからなるIPv6アドレスを使用して宛先を識別する。ブロック806で、IPv4パケットをカプセル化するIPv6パケットは、IPv6アドレスを使用して宛先に伝達される。データパケット例えば、IPv6パケット内のIPv4パケットをカプセル化するプロセスは、カプセル化されたパケットの全部または一部を含んでもよいことを理解されたい。例えば、例示的な一実施形態において、ヘッダ情報をIPv4パケットから取り除き、IPv6パケット内のデータペイロードのサイズを縮小することができる。宛先に到達した後、取り除かれたIPv4ヘッダ情報を1つまたは複数の送信元から決定することができる例えば、名前解決テーブル、IPv6アドレッシング規約の推測。図9は、本発明の実施形態によるIPv4互換アプリケーションへの通信にIPv6アドレッシングを使用する例示的な方法900を表すブロック図である。ブロック902で、データのIPv6パケットを受信する。例示的な一実施形態では、データのIPv6パケットは、データペイロードと宛先のグローバルに一意なIPv6アドレスとからなる。データペイロードは、例示的な一実施形態において、データのカプセル化されたIPv4パケットの全部または一部である。この例では、宛先のIPv6アドレスは、IPv4互換識別子からなる128ビット識別子である。例えば、最下位32ビット4バイトは、IPv4アドレスの32ビットに対応するものとしてよい。ブロック904で、宛先IPv4アドレスが、少なくとも一部はIPv6アドレスに含まれるIPv4互換識別子に基づき決定される。この例では、決定されたIPv4アドレスは、グローバルに一意ではないが、その代わりに、宛先が関連付けられているプライベートネットワークに一意である。ブロック906で、IPv6ヘッダが、データのIPv6パケットから取り除かれる。別の言い方をすると、例示的な一実施形態において、データのIPv4パケットは、通信パッケージとして使用されたデータのIPv6パケットからパケット化を解除される例えば、抽出される。したがって、IPv6パケットからIPv4パケットを抽出することにより、宛先エンドポイントで使用できるようにIPv4パケットを残す。例えば、IPv4パケットのIPv4ヘッダおよびデータペイロードは、例示的な一実施形態において、IPv6ヘッダを取り除くことによってIPv6パケットから抽出される。IPv6ヘッダを取り除くことは、最終的に転送するためにIPv4に準拠するデータのIPv4パケットを識別された宛先上に置くステップを含むものとしてよい。ブロック908で、IPv4データパケットであり得る、データのIPv6パケットからのデータペイロードは、ブロック904で識別されたIPv4アドレスを使用して宛先に伝達される。すでに説明されているように、データのIPv4パケットは、IPv6アドレスに含まれるグループ識別子に関連付けられ、および/またはIPv4アドレスによって識別された宛先に関連付けられている仮想NICに伝達されうる。仮想NICは、着信データパケットを受信したとき、送信データパケットを受信したとき、および/または4to6スタックを利用することができるエンドポイントの識別したとき、4to6スタックによって有効にされうる。さらに、仮想NICは同じ仮想IPv4アドレスを使用するアプリケーションのグループに関連付けられるが、アプリケーションはそれぞれのアプリケーションが監視している例えば、モニターしている、通信に使用するポートによって互いから区別されることが企図されている。例えば、共通の仮想IPv4例えば、グローバルに一意でないIPv4アドレスを共有するアプリケーションのグループ内のそれぞれのアプリケーションは、TCPまたはUDPなどのレイヤ4のスタックにおいて一意的なポート番号を使用する。示されているさまざまな構成要素、さらには、図に示されていない構成要素の多くの異なる配列は、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限するのではなく、例示的であることを意図して説明されている。範囲から逸脱しない代替えの実施形態も、当業者には明らかであろう。当業者であれば、本発明の範囲から逸脱することなく前述の改善を実装する代替え手段を開発することができる。いくつかの特徴および部分的組み合わせは、有用であり、他の特徴および部分的組み合わせを参照せずに使用することができ、請求項の範囲内にあることが企図されていると理解される。さまざまな図に示されているすべてのステップが、説明されている特定の順序で実行される必要はない。