(57)【要約】ＩＰｖ４互換アプリケーションからの通信またはＩＰｖ４互換アプリケーションへの通信の際にネットワークエンドポイントのグローバルに一意な識別にＩＰｖ６アドレッシングを利用するためのシステム、方法、およびコンピュータ記憶媒体を実現する。ＩＰｖ４エンドポイントからの、および／またはＩＰｖ４エンドポイントに向けられたデータのＩＰｖ４パケットは、データのＩＰｖ６パケット内にカプセル化される。ＩＰｖ６互換アドレスは、データのＩＰｖ６パケットの宛先に関して識別される。ＩＰｖ６アドレスは、カプセル化されたＩＰｖ４パケットのＩＰｖ４アドレスを表すＩＰｖ４識別子からなるＧＵＩＤである。データのＩＰｖ６パケットは、ＩＰｖ６アドレスによって識別された宛先に伝達される。４ｔｏ６スタックは、送信先の前にデータの着信ＩＰｖ６パケットをインターセプトして、ＩＰｖ６ヘッダ情報を消去し、データのＩＰｖ４パケットを露わにすることができる。
2013532438.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰｖ４互換アプリケーションからの通信のためにＩＰｖ６アドレッシングを使用する方法であって、
第１のＩＰｖ４アプリケーションから伝達されるデータのＩＰｖ４パケットを受信するステップであって、前記データのパケットがＩＰｖ４アドレスを使用して宛先に送られる、ステップと、
前記データのＩＰｖ４パケットをデータのＩＰｖ６パケット内にカプセル化するステップであって、前記データのＩＰｖ６パケットがＩＰｖ６アドレスを使用して前記宛先に送られ、
前記ＩＰｖ６アドレスは、前記ＩＰｖ４アドレスとグループ識別子とからなる、ステップと、
前記ＩＰｖ６アドレスを使用して、前記データのＩＰｖ６パケットを前記宛先に伝達するステップと
を含むことを特徴とする方法。
【請求項２】
前記データのＩＰｖ４パケットを受信する前記ステップは、４ｔｏ６スタックが前記データのＩＰｖ４パケットをインターセプトするステップであることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のＩＰｖ４アプリケーションまたは前記宛先は、ＩＰｖ６アドレッシングをサポートしないことを特徴とする請求項１に記載の方法。
【請求項４】
前記宛先は、第２のＩＰｖ４アプリケーションであることを特徴とする請求項１に記載の方法。
【請求項５】
前記ＩＰｖ４アドレスは、プライベートネットワーク内で一意な識別子であることを特徴とする請求項１に記載の方法。
【請求項６】
カプセル化する前記ステップは、オペレーティングシステムまたはネットワークルーティングデバイスに関連付けられている４ｔｏ６スタックによって実行されることを特徴とする請求項１に記載の方法。
【請求項７】
前記ＩＰｖ６アドレスは、４バイトを使用するグループ識別子、４バイトを使用するＩＰｖ４アドレス、および８バイトを使用する組織識別子からなることを特徴とする請求項１に記載の方法。
【請求項８】
前記ＩＰｖ６アドレスの最下位４バイトは前記ＩＰｖ４アドレスを表すことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のＩＰｖ４アプリケーションおよび前記宛先は、共通のグループ識別子を有することを特徴とする請求項１に記載の方法。
【請求項１０】
プロセッサおよびメモリを有するコンピューティングシステムによって実行されたときに前記コンピューティングシステムに方法を実行させるコンピュータ実行可能命令が含まれている１つまたは複数のコンピュータ記憶媒体であって、前記方法は
データのＩＰｖ６パケットを受信するステップであって、前記データのＩＰｖ６パケットは、データペイロードと宛先のグローバルに一意なＩＰｖ６アドレスとからなり、前記ＩＰｖ６アドレスは、１２８ビットの識別子であり、
前記グローバルに一意なＩＰｖ６アドレスの前記１２８ビット識別子の定義済みの数は、ＩＰｖ４アドレスと互換性のあるＩＰｖ４識別子である、ステップと、
少なくとも一部は前記グローバルに一意なＩＰｖ６アドレスの前記ＩＰｖ４識別子に基づき、前記宛先の宛先ＩＰｖ４アドレスを決定するステップと、
前記宛先ＩＰｖ４アドレスを使用して前記データペイロードを前記宛先に伝達するステップと
を含むことを特徴とする１つまたは複数のコンピュータ記憶媒体。
【請求項１１】
前記ＩＰｖ６データパケットは、前記宛先と前記データペイロードの送信元とが関連付けられているグループ識別子からさらに構成されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記宛先ＩＰｖ４アドレスは、前記ＩＰｖ４識別子であることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記宛先ＩＰｖ４アドレスは、前記ＩＰｖ６アドレスを使用してネームサーバ解決要求から決定されることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記データのＩＰｖ６パケットからＩＰｖ６ヘッダを取り除き、前記データペイロードからなるデータのＩＰｖ４互換パケットを残すステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
ＩＰｖ４互換アプリケーションからの通信のためにＩＰｖ６アドレッシングを使用するシステムであって、
インターネットを介してアクセス可能なネームサーバと、
前記ネームサーバに関連付けられている名前解決テーブルであって、前記名前解決テーブルは、宛先に関連付けられている識別子のマッピングを保持し、
前記識別子の前記マッピングは、グローバルに一意なＩＰｖ６アドレス、プライベートネットワークのＩＰｖ４アドレス、およびグループ識別子の間のマッピングである、名前解決テーブルと、
仮想ネットワークのＩＰｖ４アドレスを使用してＩＰｖ４データパケットを前記宛先に伝達する機能を有するＩＰｖ４コンピュータアプリケーションと、
前記ＩＰｖ４コンピュータアプリケーションに関連付けられている仮想ネットワークインターフェースカード（ＮＩＣ）であって、前記コンピュータアプリケーションから前記ＩＰｖ４データパケットを前記宛先に伝達することを可能にする、仮想ＮＩＣと、
前記仮想ＮＩＣと通信する４ｔｏ６スタックであって、前記宛先のグローバルに一意なＩＰｖ６アドレスからなるＩＰｖ６データパケット内に前記ＩＰｖ４データパケットをカプセル化し、
前記プライベートネットワークのＩＰｖ４アドレスと前記グローバルに一意なＩＰｖ６アドレスとの間の前記名前解決テーブル内のマッピングを使用して、前記グローバルに一意なＩＰｖ６アドレスを識別する、４ｔｏ６スタックと
を備えたことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰｖ４アプリケーションのための４ＴＯ６ネットワークスタックに関する。
【背景技術】
【０００２】
コンピューティングデバイス間の通信は、典型的には、ネットワークを通じて行われる。パケット交換方式のネットワークでは、それぞれのネットワークデバイスは、ネットワーク内の特定のデバイスを識別するためにＩＰ（インターネットプロトコル）アドレスを割り当てられている。
【０００３】
ＩＰアドレスのための主たる標準は、ＩＰｖ４（インターネットプロトコルバージョン４）である。ＩＰｖ４アドレスは長さが３２ビット（４バイト）であるため、利用可能なＩＰｖ４アドレスの数は４，２９４，９６７，２９６（２32）に制限される。ネットワーク接続を求めるクライアントデバイスの数が増大し続けるとともに、利用可能なＩＰｖ４アドレスの数は減り続け、最終的にはゼロになる。この問題は、ＩＰｖ４アドレス枯渇と呼ばれている。
【０００４】
ＩＰｖ６（インターネットプロトコルバージョン６）は、ＩＰｖ４の後継として開発されたインターネットプロトコルバージョンである。ＩＰｖ６は、ＩＰｖ４より格段に広いアドレス空間を有する。これは、１２８ビットのアドレスを使用する結果である。ＩＰｖ６のアドレス空間は、２128個のアドレスをサポートする。
【発明の概要】
【０００５】
本発明の実施形態は、ＩＰｖ４互換アプリケーションからの通信またはＩＰｖ４互換アプリケーションへの通信の際にネットワークエンドポイントのグローバルに一意な識別（globally unique identification）にＩＰｖ６アドレッシングを使用するためのシステム、方法、およびコンピュータ記憶媒体に関する。ＩＰｖ４エンドポイントからの、および／またはＩＰｖ４エンドポイントに向けられたデータのＩＰｖ４パケットは、データのＩＰｖ６パケット内にカプセル化される。ＩＰｖ６互換アドレスは、データのＩＰｖ６パケットの宛先に関して識別される。ＩＰｖ６アドレスは、カプセル化されたＩＰｖ４パケットのＩＰｖ４アドレスを表すＩＰｖ４識別子からなるＧＵＩＤ（globally unique identifier）である。データのＩＰｖ６パケットは、ＩＰｖ６アドレスによって識別された宛先に伝達される。４ｔｏ６スタックは、送信先の前にデータの着信ＩＰｖ６パケットをインターセプトして、ＩＰｖ６ヘッダ情報を消去し、データのＩＰｖ４パケットを露わにすることができる。
【０００６】
この「課題を解決するための手段」では、以下の「発明を実施するための形態」でさらに説明される簡素化された形式の概念の選択を導入する。この「課題を解決するための手段」は、請求された主題の重要な特徴または本質的な特徴を識別することを意図されていないし、また請求された主題の範囲を定める補助手段として使用されることも意図されていない。
【図面の簡単な説明】
【０００７】
本発明の例示的な実施形態は、参照により本明細書に組み込まれている、付属の図面を参照しつつ以下で詳しく説明される。
【０００８】
【図１】本発明の実施形態を実装するのに好適な例示的なコンピューティングデバイスを示す図である。
【図２】本発明の実施形態によるデータの例示的なＩＰｖ４パケットを示す図である。
【図３】本発明の実施形態によるデータの例示的なＩＰｖ６パケットを示す図である。
【図４】本発明の実施形態による４ｔｏ６スタックからのデータの例示的なＩＰｖ６パケットを示す図である。
【図５】本発明の例示的な一実施形態によるＩＰｖ６アドレスを示す図である。
【図６】本発明の実施形態による例示的なシステムを示すブロック図である。
【図７】本発明の実施形態による通信および処理の例示的な流れを示す図である。
【図８】本発明の実施形態によるＩＰｖ４互換アプリケーションからの通信にＩＰｖ６アドレッシングを使用する例示的な方法を表すブロック図である。
【図９】本発明の実施形態によるＩＰｖ４互換アプリケーションへの通信にＩＰｖ６アドレッシングを使用する例示的な方法を表すブロック図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態の主題は、法的要件を満たすように本明細書における特異性とともに説明されている。しかし、説明自体は、本発明の範囲を制限することを意図されていない。むしろ、発明者らは、請求されている主題が他の方法でも、他の現在の、もしくは将来の技術と併せて、異なるステップもしくは本明細書で説明されているステップに似たステップの組み合わせを含むように具現化されうることを企図している。
【００１０】
本発明の実施形態は、ＩＰｖ４互換アプリケーションからの通信またはＩＰｖ４互換アプリケーションへの通信の際にＩＰｖ６アドレッシングを使用するためのシステム、方法、およびコンピュータ記憶媒体に関する。ＩＰｖ４エンドポイントからの、および／またはＩＰｖ４エンドポイントに向けられたデータのＩＰｖ４パケットは、データのＩＰｖ６パケット内にカプセル化される。ＩＰｖ６互換アドレスは、データのＩＰｖ６パケットの宛先に関して識別される。ＩＰｖ６アドレスは、カプセル化されたＩＰｖ４パケットのＩＰｖ４アドレスを表すＩＰｖ４識別子からなるＧＵＩＤである。データのＩＰｖ６パケットは、ＩＰｖ６アドレスによって識別された宛先に伝達される。４ｔｏ６スタックは、送信先の前にデータの着信ＩＰｖ６パケットをインターセプトして、ＩＰｖ６ヘッダ情報を消去し、データのＩＰｖ４パケットを露わにすることができる。同様に、４ｔｏ６スタックは、送信元（例えば、ＩＰｖ４アプリケーション）によって生成されたデータの送信ＩＰｖ４パケットをインターセプトして、それをＩＰｖ６ヘッダ内にカプセル化してから宛先（例えば、ＩＰｖ４アプリケーション、ＩＰｖ６アプリケーション）に転送することができる。一意なＩＰｖ６識別子および対応するグローバルでない一意なＩＰｖ４識別子は、ダイナミックネームサーバおよび通信しているエンドポイント（例えば、送信元、宛先）におけるすべてのＩＰｖ６識別子に共通のフィールドであるグループ識別子を介して互いに関連付けられる。
【００１１】
したがって、一態様では、本発明は、ＩＰｖ４互換アプリケーションからの通信にＩＰｖ６アドレッシングを使用する方法を提供する。この方法は、第１のＩＰｖ４アプリケーションから伝達されるデータのＩＰｖ４パケットを受信するステップを含み、データのパケットは、ＩＰｖ４アドレスを使用して宛先に送られる。さらに、この方法は、データのＩＰｖ６パケット内にデータのＩＰｖ４パケットをカプセル化するステップを含み、データのＩＰｖ６パケットは、ＩＰｖ６アドレスを使用してその宛先に送られる。それに加えて、ＩＰｖ６アドレスは、ＩＰｖ４アドレスとグループ識別子とからなる。この方法は、ＩＰｖ６アドレスを使用してデータのＩＰｖ６パケットを宛先に伝達するステップも含む。
【００１２】
別の態様では、本発明は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されたときにコンピューティングシステムに方法を実行させるコンピュータ実行可能命令が含まれているコンピュータ記憶媒体を備える。この方法は、データのＩＰｖ６パケットを受信するステップを含み、データのＩＰｖ６パケットは、データペイロードと宛先のグローバルに一意なＩＰｖ６アドレスとからなり、ＩＰｖ６アドレスは、１２８ビットの識別子である。グローバルに一意なＩＰｖ６アドレスの１２８ビット識別子の定義済みの数は、ＩＰｖ４アドレスと互換性のあるＩＰｖ４識別子である。この方法は、少なくとも一部はグローバルに一意なＩＰｖ６アドレスのＩＰｖ４識別子に基づき宛先の宛先ＩＰｖ４アドレスを決定するステップも含む。この方法は、宛先ＩＰｖ４アドレスを使用して、データペイロードを宛先に伝達するステップも含む。
【００１３】
本発明の第３の態様は、ＩＰｖ４互換アプリケーションからの通信にＩＰｖ６アドレッシングを使用するためのシステムを実現する。システムは、インターネットを介してアクセス可能なネームサーバを備える。システムは、ネームサーバに関連付けられている名前解決テーブルも備える。名前解決テーブルには、宛先に関連付けられている識別子のマッピングが保持される。これらの識別子のマッピングは、グローバルに一意なＩＰｖ６アドレス、仮想ネットワークのＩＰｖ４アドレス、およびグループ識別子の間のマッピングである。システムは、プライベートネットワークのＩＰｖ４アドレスを使用してＩＰｖ４データパケットを宛先に伝達する機能を有するＩＰｖ４コンピュータアプリケーションも備える。システムは、ＩＰｖ４コンピュータアプリケーションに関連付けられている仮想ＮＩＣ（ネットワークインターフェースカード）も備える。仮想ＮＩＣは、コンピュータアプリケーションからＩＰｖ４データパケットを宛先に伝達する機能を円滑にする。システムは、仮想ＮＩＣと通信する４ｔｏ６スタックも備える。４ｔｏ６スタックは、宛先のグローバルに一意なＩＰｖ６アドレスからなるＩＰｖ６データパケット内にＩＰｖ４データパケットをカプセル化する。４ｔｏ６スタックは、プライベートネットワークのＩＰｖ４アドレスとグローバルに一意なＩＰｖ６アドレスとの間の名前解決テーブル内のマッピングを使用してグローバルに一意なＩＰｖ６アドレスを識別する。
【００１４】
本発明の実施形態の概要を簡単に説明したが、その実施形態を実装するのに適した例示的な動作環境について以下で説明する。
【００１５】
一般に図面を参照するが、最初に図１を参照すると、本発明の実施形態を実装するのに適した例示的な動作環境が示されており、一般にコンピューティングデバイス１００として指示されている。コンピューティングデバイス１００は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティングデバイス１００は、例示されている１つのモジュール／構成要素またはその組み合わせに関係する何らかの依存関係または要求条件がそのコンピューティングデバイス１００内にあるものと解釈されるべきでない。
【００１６】
実施形態は、携帯情報端末または他のハンドヘルドデバイスなどのコンピュータまたは他のマシンによって実行される、プログラムモジュールなどのコンピュータ実行可能命令を含む、コンピュータコードまたはマシン使用可能命令の一般的背景状況において説明することができる。一般に、ルーチン、プログラム、オブジェクト、モジュール、データ構造、および同様のものを含むプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するコードを意味する。実施形態は、ハンドヘルドデバイス、家電製品、汎用コンピュータ、専用コンピューティングデバイスなどを含む、さまざまなシステム構成において実施することができる。また実施形態は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。
【００１７】
引き続き図１を参照すると、コンピューティングデバイス１００は、メモリ１１２、１つまたは複数のプロセッサ１１４、１つまたは複数のプレゼンテーションモジュール１１６、Ｉ／Ｏ（入出力）ポート１１８、Ｉ／Ｏモジュール１２０、および例示的な電源１２２などのデバイスを直接的にまたは間接的に結合するバス１１０を備えることがわかる。バス１１０は、１つまたは複数のバス（アドレスバス、データバス、またはその組み合わせなど）となるようなものとしてよい。わかりやすくするために図１のさまざまなブロックが線で示されているが、実際は、さまざまなモジュールを線引きするのはそれほど明確でなく、これらの線は、暗喩的に、より正確には灰色で曖昧なものとなる。例えば、表示デバイスなどのプレゼンテーションモジュールをＩ／Ｏモジュールとみなすことができる。また、プロセッサはメモリを備える。本発明の発明者らは、このようなことは技術の本質であることを理解しており、繰り返して言うと、図１の略図は、１つまたは複数の実施形態に関して使用することができる例示的なコンピューティングデバイスを単に例示しているにすぎない。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」などのカテゴリは、すべて図１の範囲内にあることが企図され、「コンピュータ」または「コンピューティングデバイス」を参照するので、区別はなされない。
【００１８】
コンピューティングデバイス１００は、典型的には、さまざまなコンピュータ可読媒体を備える。例えば、限定はしないが、コンピュータ可読媒体として、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読出し専用メモリ）、ＥＥＰＲＯＭ（電子的消去可能プログラマブル読出し専用メモリ）、フラッシュメモリもしくは他のメモリ技術、ＣＤＲＯＭ、ＤＶＤ（デジタル多目的ディスク）または他の光もしくはホログラフィック媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶装置デバイス、または所望の情報を符号化し、コンピューティングデバイス１００によりアクセスするために使用することができる他の媒体が挙げられる。
【００１９】
メモリ１１２として、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。メモリは、取り外し可能、取り外し不可能、またはその組み合わせとすることができる。例示的なハードウェアデバイスは、固体メモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス１００は、メモリ１１２またはＩ／Ｏモジュール１２０などのさまざまな要素からデータを読み取る１つまたは複数のプロセッサを含む。プレゼンテーションモジュール（複数可）１１６は、ユーザまたは他のデバイスにデータ指示を送る。例示的なプレゼンテーションモジュールは、表示デバイス、スピーカ、印刷モジュール、振動モジュール、および同様のものを含む。Ｉ／Ｏポート１１８を使用することで、コンピューティングデバイス１００は、Ｉ／Ｏモジュール１２０を含む他のデバイスに論理的に結合することができ、一部は組み込みにすることもできる。例示的なモジュールは、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、プリンタ、無線デバイス、および同様のものを含む。
【００２０】
図２は、本発明の実施形態によるデータの例示的なＩＰｖ４パケット２００を示す図である。データのＩＰｖ４パケット２００は、ＩＰｖ４宛先アドレス２０２、ＩＰｖ４送信元アドレス２０４、およびデータペイロード２０６からなる。ＩＰｖ４アドレスは、宛先または送信元に関連付けられているかどうかに関係なく、３２ビット（４バイト）識別子である。その結果、ＩＰｖ４宛先アドレスおよびＩＰｖ４送信元アドレス２０４は、それぞれ、３２ビットの情報を使用してネットワーク接続環境においてアクセス可能な特定のロケーション（例えば、アプリケーション、デバイス）を識別する。
【００２１】
歴史的に、それぞれのＩＰｖ４アドレスは、同じネットワーク（例えば、プライベートネットワーク、インターネット）によってアクセス可能な他のロケーションから、指定のロケーションを特に識別するように機能するＧＵＩＤである。インターネットが発展した結果、ＩＰｖ４アドレスの消費が増大しインターネットに固有の利用可能なＩＰｖ４アドレスの枯渇が避けられない状況に至った。したがって、インターネットによるデータのＩＰｖ４パケット２００の通信は、宛先のロケーションを識別するためにＩＰｖ４宛先アドレス２０２における一意な識別子に依存する。ＩＰｖ４宛先アドレス２０２は、データのＩＰｖ４パケット２００の宛先を、３２ビット識別子により識別する。同様に、ＩＰｖ４送信元アドレス２０４を埋めるときに一意な識別子が望ましい。ＩＰｖ４送信元アドレス２０４は、データのＩＰｖ４パケット２００の送信元を、３２ビット識別子により識別する。
【００２２】
例示的な一実施形態において、ＩＰｖ４送信元アドレス２０４によって識別されるような、データのＩＰｖ４パケット２００の送信元は、オペレーティングシステムと連携して動作するコンピューティングアプリケーションである。コンピューティングアプリケーションは、ＩＰｖ４アドレッシング（つまり、ＩＰｖ４規約を使用するアドレスデータパケット）を使用するようにコーティングすることができる。本発明の例示的な一実施形態では、コンピューティングアプリケーションは、ＩＰｖ６を使用するようにコーティングされていない。
【００２３】
コンピューティングアプリケーションがＩＰｖ６アドレッシングをサポートしていない場合、ＩＰｖ６に固有の利点を、コンピューティングアプリケーションから使用することはできない。例えば、ＩＰｖ６では、１２８ビットのアドレス（１６バイトのアドレス）を採用しており、これによりＩＰｖ４の３２ビットのアドレスに比べてグローバルに一意なアドレス識別子が大幅に増える。ＩＰｖ４とＩＰｖ６との間にいくつかの固有の相違点（例えば、ＩＰｖ４のパケットとＩＰｖ６のパケットのヘッダは著しく異なる）があるため、これら２つのプロトコルには相互運用性がない。
【００２４】
データペイロード２０６は、送信元から宛先への通信が意図されている実体を含むデータのＩＰｖ４パケット２００の部分である。例示的な一実施形態では、ＩＰｖ４宛先アドレス２０２およびＩＰｖ４送信元アドレス２０４は、データのＩＰｖ４パケット２００に関連付けられているヘッダの２つの部分である。
【００２５】
図３は、本発明の例示的な一実施形態によるデータの例示的なＩＰｖ６パケット３００を示す図である。データのＩＰｖ６パケット３００は、ＩＰｖ６宛先アドレス３０２、ＩＰｖ６送信元アドレス３０４、およびデータペイロード３０６からなる。データペイロード３０６は、送信元から宛先への通信が意図されている実体を典型的に含むデータのＩＰｖ６パケット３００の部分である。ＩＰｖ６宛先アドレスは、データのＩＰｖ６パケット３００の意図された受信者のＩＰｖ６互換識別子である。ＩＰｖ６送信元アドレス３０４は、データのＩＰｖ６パケット３００の「送信元」の互換識別子である。これから理解されるように、パケットの「送信元」は、パケットの発信元または生成元を識別することができないが、その代わりに、「送信元」は、応答が送られるべきパケットが進む経路上の地点（例えば、ルーター）を識別することができる。したがって、本明細書で使用されているような「送信元」という用語は、応答がデータパケットの発信点とは反対の方へ向けられうる地点を指すものとしてよいことを理解されたい。
【００２６】
ＩＰｖ６宛先アドレス３０２およびＩＰｖ６送信元アドレス３０４は、データのＩＰｖ６パケット３００のヘッダを含む部分である。ＩＰｖ６宛先アドレス３０２およびＩＰｖ６送信元アドレス３０４のそれぞれは、ＩＰｖ６規約による１２８ビットのアドレス（１６バイトのアドレス）である。
【００２７】
図４は、本発明の実施形態による例示的なＩＰｖ６パケット４００（例えば、ＩＰｖ６データパケット）を示している。ＩＰｖ６パケット４００は、一実施形態では、一部は４ｔｏ６スタックによって作成される。本明細書でさらに詳しく説明されるように、４ｔｏ６スタックは、ＩＰｖ６パケット内にＩＰｖ４パケットをカプセル化する。ＩＰｖ６パケット４００は、宛先４０２、送信元４０４、およびペイロード４０６からなる。図３のデータのＩＰｖ６パケット３００に関してすでに説明されているように、宛先４０２は、ＩＰｖ６パケット４００に対する意図された受信者ロケーションを表す。送信元４０４は、すでに説明されているように、ＩＰｖ６パケットの発信元である発信ロケーション（例えば、生成ロケーション、通信経路上の地点）を識別する。
【００２８】
ペイロード４０６は、データのカプセル化されたＩＰｖ４パケットである。例えば、図２に関して説明されているデータのＩＰｖ４パケット２００は、ＩＰｖ６に準拠して通信のアドレッシングを行うことができないＩＰｖ４アプリケーションによって生成されうる。したがって、図４に示されているように、ＩＰｖ４は、ペイロード４０６としてＩＰｖ６パケット４００内にカプセル化されうる。後でさらに詳しく説明するように、ＩＰｖ６パケット４００のペイロード４０６は、ＩＰｖ４パケットのペイロードを含むだけでなく、ペイロード４０６は、ＩＰｖ４パケットのヘッダに典型的に関連付けられている情報（例えば、ＩＰｖ４宛先アドレス、ＩＰｖ４送信元アドレス）からも構成されうる。
【００２９】
宛先４０２は、ＩＰｖ６宛先アドレス４０８からなる。例示的な一実施形態における、ＩＰｖ６宛先アドレス４０８は、これ以降図５に関して説明されるものと同様のフォーマットを有する。送信元４０４は、ＩＰｖ６送信元アドレス４１０からなる。例示的な一実施形態では、ＩＰｖ６送信元アドレス４１０は、これ以降図５に関して説明されるものと同様のフォーマットを有する。
【００３０】
ペイロード４０６は、ＩＰｖ４宛先アドレス４１２、ＩＰｖ４送信元アドレス４１４、およびデータペイロード４１６からなる。図４に示されているＩＰｖ６パケットは、４ｔｏ６スタックがＩＰｖ６互換パケット内のＩＰｖ４対応アプリケーションを発信元とするＩＰｖ４パケットをカプセル化する本発明の例示的な一実施形態によるパケットである。したがって、宛先においてＩＰｖ４パケットの使用を円滑に進めるために、一実施形態では、ＩＰｖ４パケットのヘッダの内容がペイロード４０６の一部としてＩＰｖ６パケット内に保持され搬送される。例えば、元のＩＰｖ４パケットは（図２に関してすでに説明されているように）ＩＰｖ４宛先アドレスおよびＩＰｖ４送信元アドレスを含み、これらはＩＰｖ６ペイロード４０６内でそれぞれＩＰｖ４宛先アドレス４１２およびＩＰｖ４送信元アドレス４１４として表される。
【００３１】
本発明の例示的な一実施形態において、ＩＰｖ４互換アプリケーションは、ＩＰｖ４パケットの生成に備えて、所望の宛先のＩＰｖ４アドレスについて、ＮＳ（ネームサーバ）要求を実行することができる。この例では、宛先は、アプリケーションＢと参照され、発信側アプリケーションは、アプリケーションＡと参照される。図６に関してさらに詳しく説明されるように、ＮＳは、ダイナミックスＮＳであるものとしてよい。次いで、この要求に対するＮＳの応答が、この例では、４ｔｏ６スタックによってインターセプトされ、その後、アプリケーション側が受信する。次いで、４ｔｏ６スタックは、送信パケットへの着信応答のためアプリケーションにサービスを提供する仮想ネットワークインターフェースカードを起動することができる。それに加えて、ＮＳまたは４ｔｏ６スタック（または関連付けられている名前解決テーブル）のいずれかによって提供される情報を、その後、アプリケーションＢの所望の宛先をアドレッシングするためにＩＰｖ４アドレスが機能しているアプリケーションＡに送ることができる。
【００３２】
その結果、この例では、次いでアプリケーションＡがＮＳまたは４ｔｏ６スタックによって提供されるＩＰｖ４アドレスによって記述される宛先を持つパケットを生成する。しかし、後でさらに詳しく説明されるように、ＮＳまたは４ｔｏ６スタックによって提供されるＩＰｖ４アドレスは、この例では、グローバルに一意ではない。ＩＰｖ４アドレスは、少なくとも一部はアプリケーションＡおよびアプリケーションＢからなるグループとして定義されるグループ内で一意である。別の言い方をすると、この例で与えられるＩＰｖ４アドレスは、インターネット上で一意ではないが、アプリケーションＡおよびアプリケーションＢからなるグループに参加しているエンドポイント間では一意であるということである。このグループ関連付けは、ＮＳ内で維持されうる。
【００３３】
引き続きこの例において、アプリケーションＡによって作成されるＩＰｖ４パケットは、４ｔｏ６スタックによってインターセプトされる。インターセプトされたＩＰｖ４パケットは、ＩＰｖ６互換ヘッダが実装されるようにＩＰｖ６パケット内にカプセル化される。本明細書で説明されたときに、ＩＰｖ６ヘッダは、完全なＩＰｖ６ヘッダであるか、または短縮されたＩＰｖ６互換ヘッダであるものとしてよいことを理解されたい。ＩＰｖ６ヘッダは、宛先（例えば、図４の宛先４０２）および送信元（例えば、図４の送信元４０４）を含むものとしてよい。宛先ＩＰｖ６アドレスは、この例では、本発明の例の態様を円滑に実行されるようにＩＰｖ４アドレス、ＩＰｖ６アドレス、およびグループ識別子を互いにマッピングする名前解決テーブルによって与えられる。したがって、この例では、カプセル化するＩＰｖ６パケットは、アプリケーションＢに対応するＩＰｖ６宛先アドレスを含む。
【００３４】
アプリケーションＡによって生成されるＩＰｖ４パケットがＩＰｖ６パケット内にカプセル化された後、ＩＰｖ６によって実現されうる利点を活かしながらアプリケーションＢへのパケットの通信を調整するためにＩＰｖ６ヘッダに依存する。次いで、ＩＰｖ６パケットは、データペイロードの一部として、アプリケーションＡによって生成されるＩＰｖ４ヘッダも含みうる。例示的な一実施形態において、アプリケーションＢに沿って４ｔｏ６スタックに到達した後、ＩＰｖ６ヘッダはデータペイロードから消去され／取り除かれ、アプリケーションＡによって生成された元のＩＰｖ４データパケットが露出する。次いで、ＩＰｖ６ヘッダが消去されたＩＰｖ６パケット（今はもうＩＰｖ４パケット）がアプリケーションＢに渡される。アプリケーションＢおよびアプリケーションＡは、通信パケットが道程のある区間においてＩＰｖ６パケットとして渡されたことを知ることなく動作しうる。したがって、アプリケーションＡおよびアプリケーションＢは、ＩＰｖ６の使用が円滑に進むように更新されるか、または他の何らかの形で修正されるということがないレガシーアプリケーションであるものとしてよい。
【００３５】
図５は、本発明の例示的な一実施形態によるＩＰｖ６アドレス５００を示している。ＩＰｖ６アドレスは、標準の１２８ビットからなるが、これら１２８個のビットの割り当ては、現在の実施形態に固有である。例えば、１２８ビットのうちの最上位のＹ（つまり、定義済みの数Ｙ）ビットは、組織識別子５０２として使用される。同様に、この例では、１２８ビットのうちの最下位のＸ（つまり、定義済みの数Ｘ）ビットは、ＩＰｖ４互換アドレス５０６を組み込むために使用される。それに加えて、この例では、１２８ビットの中間位のＺビットは、グループ識別子５０４として使用される。
【００３６】
組織識別子は、組織を識別する。例えば、組織は、ワシントン州レドモンド所在の本件出願人によるＡＺＵＲＥなどのクラウドコンピューティングプラットフォームであってもよい。組織は、事業体（例えば、企業、政府、大学、市、州）であってもよい。組織は、上で示唆されている分類に限定されない。
【００３７】
グループ識別子は、組織内の「グループ」を識別する。例えば、グループは、クラウドコンピューティングプラットフォーム内の一サービスを実行するテナントを含むことができる。グループは、組織内の職務を遂行するために連携して作業にあたるリソースの集合体（例えば、プロセッサとコンピュータ可読記憶装置の集合体）であってもよい。
【００３８】
ＩＰｖ４互換アドレスは、ＩＰｖ４の要件を満たす識別子である。例示的な一実施形態では、ＩＰｖ４互換アドレスは、ＩＰｖ４の要件を満たすが、ＩＰｖ４互換アドレスは、グローバルに一意ではなく、その代わりに、関連付けられているグループ識別子によって識別されるグループ内で一意である。そのため、ネットワーク（例えば、インターネット）によってアクセス可能な複数のエンドポイントが、同じＩＰｖ４互換アドレス５０６を有するが（つまり、したがってグローバルに一意ではないが）、ＩＰｖ４互換のアドレスは、グループ識別子５０４を共有するエンドポイント間で一意であることが企図される。
【００３９】
典型的なＩＰｖ４アドレスは、３２ビット（例えば、４バイト）からなる。その結果、例示的な一実施形態では、ＩＰｖ４互換アドレス５０６では、ＩＰｖ６アドレス５００の最下位１２８ビットのうちの３２個のビットを使用する。別の言い方をすると、ＩＰｖ４互換アドレス５０６は、最下位３２（例えば、Ｘビット）ビットを消費する。さらに、組織識別子５０２は、この例では、１２８ビットのうちの６４個の（つまり、Ｙビットの）最上位ビットを使用する。その結果、この例では、グループ識別子５０４は、１２８ビットの残り３２ビット（つまり、Ｚビット）を中間位ビットとして使用する。Ｙ、Ｚ、およびＸビット間のビット使用の他の組み合わせも企図されることを理解されたい。例えば、最上位のＹビットを縮小し、中間位のＺビットを増加させることができる。しかし、例示的な実施形態ではＹ＋Ｚ＋Ｘ＝１２８であると理解される。
【００４０】
図６は、本発明の実施形態による例示的なシステム６００を示すブロック図である。システム６００は、エンドポイントＡ  ６０２、エンドポイントＢ  ６０４、ネットワーク６０６、およびネームサーバ（すでに示されているようにＮＳ）６０８からなる。本明細書で説明されているこの配置構成および他の配置構成は、例としてのみ示されていることは理解されるであろう。他の配置構成および要素（例えば、デバイス、エンドポイント、ネットワーク、アプリケーション、テーブル、スタックなど）を、図示されているものに加えて、またはその代わりに使用することができ、いくつかの要素についてはまとめて省くこともできる。さらに、本明細書で説明されている要素の多くは、離散もしくは分散構成要素として、または他の構成要素と連携して、また好適な組み合わせにより、好適なロケーションにおいて実装されうる機能する実体である。本明細書において１つまたは複数の実体により実行されるものとして説明されているさまざまな機能は、ハードウェア、ファームウェア、および／またはソフトウェアによって実行されうる。例えば、さまざまな機能が、メモリ内に格納されている命令を実行するプロセッサによって実行することが可能である。
【００４１】
図６に示されている構成要素のそれぞれは、例えば図１を参照しつつ説明されているコンピューティングデバイス１００などの、任意の種類のコンピューティングデバイスであってよい。任意の数のエンドポイント、ネットワーク、ネームサーバ、送信元、および宛先は、本発明の範囲内においてシステム６００内で使用することができることは理解されるであろう。それに加えて、図示されていない他の構成要素も、システム６００内に組み込むことができる。
【００４２】
ネットワーク６０６は、ＩＰｖ６の通信をサポートすることができるネットワークである。ネットワーク６０６は、部分的にしかＩＰｖ６をサポートできないことが考えられる。例えば、レガシーＩＰｖ４互換ネットワーキングデバイスは、ネットワーク６０６を通じて一部の通信の経路選択を行うステップを取り扱うために使用されうる。ＩＰｖ４互換デバイスが、少なくとも一部、使用される場合、ＩＰｖ６トンネリングなどのよく知られているトンネリング技術を本明細書で説明されている機能と組み合わせて使用することが企図される。図６の構成要素は、ネットワーク６０６を介して互いに通信することができ、これは、限定はしないが、１つまたは複数のＬＡＮ（ローカルエリアネットワーク）および／またはＷＡＮ（ワイドエリアネットワーク）を含みうる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【００４３】
例示的な一実施形態では、ＮＳ６０８は、ネットワーク６０６を使用する構成要素／デバイスに対する名前解決サービスを提供するネームサーバである。例えば、ネームサーバ６０８は、現在のネットワーキング環境で一般に使用されるダイナミックＮＳ（ＤＮＳ）であってよい。しかし、従来のＤＮＳとは異なり、ＮＳ６０８は、名前解決テーブル６１０からなる。ほかにも特徴はあるがとりわけ、名前解決テーブル６１０は、ＩＰｖ６アドレス（図５のＩＰｖ６アドレス５００）、ＩＰｖ４互換アドレス、およびエンドポイントに対するグループ識別子のマッピングを保持する。ネットワーク６０６によってアクセス可能なそれぞれのエンドポイントに対するこれらの少なくとも３つのレコードのマッピングを保持するために、１つまたは複数のＮＳ６０８が実装されうることが企図される。
【００４４】
本発明の実施形態に関して説明されているようなＩＰｖ６アドレスは、ＩＰｖ４互換アドレスとグループ識別子とからなるものとすることができ、例示的な一実施形態ではＩＰｖ６アドレスのみが保持されることが企図される。グループ識別子および／またはＩＰｖ４互換アドレスは、ＩＰｖ６アドレスから識別されうる。例えば、ＩＰｖ６アドレスの最下位のＸビットを、相関するＩＰｖ４互換アドレスを識別するために検証することができる。同様に、中間位のＺビットを、グループ識別子を識別するために検証することができる。さらに、本発明のいくつかの実施形態は、名前解決テーブル内に、ＩＰｖ４互換アドレス、グループ識別子、およびエンドポイントの組織識別子を保持することが企図されている。これら３つのレコードは、本明細書で説明されているようにＩＰｖ６アドレスを識別するために組み合わせて使用することができる。さまざまなレコードの任意の組み合わせが、ＩＰｖ６アドレス、ＩＰｖ４アドレス、および与えられたエンドポイントのグループ識別子を識別するために実装されうる。
【００４５】
名前解決テーブル６１０には、多くの異なる方法で情報を書き込むことができる。例えば、エンドポイントは、情報を提供することができる。ネットワーク管理者も、情報を提供することができる。この情報は、ネットワーク６０６を通過するデータパケットを調査することによって識別することができる。この情報は、エンドポイントに関連付けられている１つまたは複数のサービス（例えば、４ｔｏ６スタック）によって識別されうる。ローカルの名前解決テーブルキャッシュにより、ＮＳにある名前解決テーブルへの情報を動的に更新することができる。
【００４６】
エンドポイントＡ  ６０２は、ＩＰｖ４互換アプリケーション６１２、仮想ネットワークインターフェースカード６１４、４ｔｏ６スタック６１６、および名前解決テーブルキャッシュＡ  ６１８からなる。エンドポイントＢ  ６０４は、ＩＰｖ４互換アプリケーション６２０、仮想ネットワークインターフェースカード６２２、４ｔｏ６スタック６２４、および名前解決テーブルキャッシュＢ  ６２６からなる。
【００４７】
すでに説明されているように、ＩＰｖ４互換アプリケーション６１２または６２０などの、ＩＰｖ４互換アプリケーションは、ＩＰｖ４標準を使用して通信のアドレッシングを行うアプリケーションである。そのため、例示的な一実施形態では、ＩＰｖ４互換アプリケーションは、ＩＰｖ６アドレッシングを使用して通信（例えば、データパケット）のアドレッシングを行うことができない。したがって、この例では、ＩＰｖ４互換アプリケーションは、本質的にＩＰｖ６を使用することはできない。
【００４８】
例示的な一実施形態では、ＩＰｖ４互換アプリケーション６１２などの、アプリケーションは、データパケットを送信するエンドポイント（例えば、送信元）またはデータパケットが送信されるエンドポイント（例えば、宛先）である。ＩＰｖ４互換アプリケーション６１２は、例示的な一実施形態では、クラウドコンピューティング環境内で稼働するサービスである。
【００４９】
４ｔｏ６スタック６１６は、本発明のさまざまな実施形態の特徴を実現するファームウェア、ハードウェア、および／またはソフトウェアの実装である。例えば、４ｔｏ６スタック６１６は、ＩＰｖ４互換アプリケーション６１２を宛先とするＮＳ６０８からの名前解決応答をインターセプトすることができる。この応答（または他の実施形態における要求）をインターセプトした後、４ｔｏ６スタック６１６は、宛先のＩＰｖ４アドレスを提供することができる。例示的な一実施形態では、４ｔｏ６スタック６１６は、オペレーティングシステムによって使用されるプラグインである。例示的な別の実施形態では、４ｔｏ６スタック６１６は、オペレーティングシステムのｓｈｉｍである。４ｔｏ６スタックをオペレーティングシステムと連携して使用することによって、４ｔｏ６スタックは、個別でのそれぞれのアプリケーションとは反対にオペレーティングシステムと連携するように構成されるだけでよい。しかし、４ｔｏ６スタックは、個別のアプリケーションによっても同様に実装される。さらに、４ｔｏ６スタックは、ネットワークルーティングデバイス内に組み込まれる。
【００５０】
それに加えて、４ｔｏ６スタック６１６は、ＩＰｖ４互換アプリケーション６１２に対するインターフェースとして働く仮想ネットワークインターフェースカード６１４を呼び出すことができる。さらに、４ｔｏ６スタックは、名前解決テーブルキャッシュＡ  ６１８と連携して動作し、情報の書き込み、保持、更新、および／または同期処理を行うことができる。例えば、一実施形態では、名前解決テーブルキャッシュＡ  ６１８は、名前解決テーブル６１０を通じてアクセス可能な情報のローカルキャッシュである。
【００５１】
例示的な一実施形態では、ＩＰｖ４互換アプリケーション６２０、仮想ネットワークインターフェースカード６２２、４ｔｏ６スタック６２４、および名前解決テーブルキャッシュＢ  ６２６は、エンドポイントＡ  ６０２に関してすでに説明されている同様の名前の構成要素に相当する。
【００５２】
したがって、本発明の実施形態の範囲内で所望の機能を実現するために、任意の数の構成要素を使用することができる。わかりやすくするために図６のさまざまな構成要素が線で示されているが、実際は、さまざまな構成要素を線引きするのはそれほど明確でなく、これらの線は、暗喩的に、より正確には灰色であるか、もしくは曖昧なものとなる。さらに、図６のいくつかの構成要素は、単一ブロックとして示されているけれども、図は性質および数の点での例であり、制限するものとして解釈すべきでない。
【００５３】
図６に説明されている構成要素を使用する本発明の例示的な実施形態は、これ以降図７に関して説明する。
【００５４】
図７は、本発明の実施形態による通信および処理の例示的な流れ７００を示している。流れ７００は、少なくとも一部は、送信元のＩＰｖ４互換アプリケーション７０２、４ｔｏ６スタック７０４、ネットワーク７０６、４ｔｏ６スタック７０８、および宛先のＩＰｖ４互換アプリケーション７１０の間の流れである。
【００５５】
図７の周辺、および図７を伴う以下の説明は、単なる例にすぎず、発明の実施形態を対象としているが、本明細書では追加の実施形態が企図されていることを理解されたい。
【００５６】
例示的な一実施形態では、その後一意なＩＰｖ６アドレスおよびグループ識別子に関連付けられる公開の完全修飾ドメイン名などの、グローバルに一意な名前にエンドポイントを登録するためにダイナミックＮＳが使用される。この例では、すでに説明されているように、グループ識別子は１２８ビットのＩＰｖ６アドレスの最上位の９６ビットを１つにまとめて、または組合せとして消費するグループ識別子および組織識別子であってよい。引き続きこの例を参照すると、グローバルに一意な名前をＩＰｖ６アドレスに関連付けた後、４ｔｏ６スタックがエンドポイントの呼び出し経路内に追加されることがわかる。
【００５７】
図７に例示されているように、ＩＰｖ４互換アプリケーション（例えば、送信元）は、ネットワーク７０６によって、宛先、つまり宛先のＩＰｖ４互換内アプリケーション７１０にデータのパケットを伝達することを意図している場合がある。この例においてデータパケットの通信を行うために、送信元のＩＰｖ４互換アプリケーション７０２は、宛先のＩＰｖ４互換機アプリケーション７１０に対するＮＳへのネームサーバ解決要求を開始する（図示せず）。次いで、ＮＳは、送信元のＩＰｖ４互換アプリケーション７０２に、宛先のＩＰｖ４互換アプリケーション７１０に対するＩＰｖ４アドレスとＩＰｖ６アドレスの両方を返す（図示せず）。返されたＩＰｖ６アドレスの最下位３２ビットが、返されたＩＰｖ４アドレスに対応している場合、ＩＰｖ４互換アプリケーションは４ｔｏ６スタックを使用することができると判定することができる。
【００５８】
引き続き図７を参照すると、４ｔｏ６スタック７０４は、名前解決テーブル（キャッシュもしくは元のテーブル）の中に宛先のＩＰｖ４互換アプリケーション７１０に対するグループ識別子を入力することができる。入力することができる追加の情報は、宛先のＩＰｖ４互換アプリケーション７１０に対するＩＰｖ６アドレスおよび／または仮想ＩＰｖ４アドレス（ＩＰｖ６アドレスの最下位３２ビット）を含む。仮想ＩＰｖ４アドレスは、すでに説明されているように、グループ識別子によって識別されたグループ内で一意であるが、仮想ＩＰｖ４アドレスは、グローバルに一意ではない場合がある。
【００５９】
一意な仮想ＩＰｖ４および／またはＩＰｖ６アドレスは、アドレスサーバ（図示せず）から取得することができる。例えば、アドレスサーバへのポインターは、送信元のＩＰｖ４互換アプリケーション７０２が宛先のＩＰｖ４互換機アプリケーション７１０の解決を要求したときにＮＳによって提供される名前解決に含まれうる。この例では、アドレスサーバは、ＤＨＣＰサーバによって同様に提供されうる機能を提供することができる。仮想的な一意なＩＰｖ４の名前割り当ての結果、送信元のＩＰｖ４互換アプリケーション７０２および宛先のＩＰｖ４互換アプリケーション７１０は、仮想的なレベルの通信でピアレベルのＩＰｖ４のセマンティクス（peer-level IPv4 semantics）を提供する仮想オーバーレイネットワーク内に属し、したがって、これはレガシーＩＰｖ４アプリケーションをサポートする。
【００６０】
引き続き図７に示されている例を参照すると、送信元ＩＰｖ４互換アプリケーション７０２は、宛先のＩＰｖ４互換アプリケーション７１０への配信を意図してＩＰｖ４  ７１２としてデータのパケットを生成し、伝達する。４ｔｏ６スタック７０４は、データパケット通信をインターセプトし、カプセル化７１４のプロセスを実行する。カプセル化７１４のプロセスは、ＩＰｖ４  ７１２をＩＰｖ６データパケット内に入れる（例えば、ＩＰｖ６パケットのペイロードとして）。例示的な一実施形態では、送信元のＩＰｖ４互換アプリケーション７０２に関連付けられている仮想ＮＩＣは、宛先のＩＰｖ４互換アプリケーション７１０と通信するために送信元のＩＰｖ４互換アプリケーション７０２によって使用される。４ｔｏ６スタック７０４は、宛先を識別するために仮想ＮＩＣからの通信を識別する。宛先は、仮想ＮＩＣのグループ識別子（組織識別子を含むこともできる）からなるＩＰｖ６アドレスと通信データパケットのヘッダ内に示されるＩＰｖ４宛先アドレスとを有する。グループ識別子およびＩＰｖ４宛先アドレスは、ＩＰｖ６アドレスを生成するために使用することができる。ＩＰｖ６、ＩＰｖ４、およびグループ識別子の間のこの関連付けは、名前解決テーブルキャッシュまたは他のリポジトリ内で保持されうる。
【００６１】
４ｔｏ６スタック７０４から、カプセル化されたＩＰｖ４通信がネットワーク７０６を通じてＩＰｖ６  ７１６／ＩＰｖ６  ７１８の通信として送られる。ＩＰｖ６  ７１８の通信は、宛先のＩＰｖ４互換アプリケーション７１０に関連付けられている４ｔｏ６スタック７０８によってインターセプトされる。抽出７２０のプロセスが実行され、ＩＰｖ６のヘッダ情報を消去してＩＰｖ４データケットを露わにする。ＩＰｖ４データパケットは、ＩＰｖ４  ７２２の通信として宛先のＩＰｖ４互換アプリケーション７１０に伝達される。共通のＩＰｖ４仮想ネットワークに関連付けられている送信元のＩＰｖ４互換アプリケーション７０２と宛先のＩＰｖ４互換アプリケーション７１０との間のＩＰｖ４メッセージの通信が円滑に行われるように仮想ＮＩＣを宛先のＩＰｖ４互換アプリケーション７１０に関連付けることができることを理解されたい。
【００６２】
４ｔｏ６スタック７０８は、カプセル化されたＩＰｖ４データパケットを含むデータパケットを識別するためにいくつかの検出技術を使用することができる。ＩＰｖ６パケットヘッダが「フローラベル」またはフラグを立てる他のメカニズムを備えることが企図される。それに加えて、データパケットに随伴するＩＰｖ６送信元アドレスに対して分析を実行することが企図される。送信元のＩＰｖ６アドレスのＹおよびＺの最上位ビット（例えば、９６ビット）がＩＰｖ４互換アプリケーションのＹおよびＺの最上位ビットに対応する場合、通信の発信元が宛先のＩＰｖ４互換アプリケーション７１０と同じグループの内のエンドポイントである（したがって、潜在的に、同じ仮想ネットワークである）と推測することが可能である。
【００６３】
上記の例と本明細書で取り上げられている他の実施形態に基づき、ＩＰｖ６を実装するための前の戦略とは異なり、エンドポイントアプリケーションの一方もしくは両方が本発明の実施形態によりＩＰｖ６互換性を有していなくてもよいことを理解されたい。例えば、６ｔｏ４（ＲＦＣ３０５６）ではＩＰｖ６のサイトは明示的なトンネル設定なしでＩＰｖ４ネットワーク上で互いに通信することを許しているが、エンドポイントはＩＰｖ６との互換性を有していなければならない。同様に、ＩＰｖ６トンネルブローカー（ＲＦＣ３０５３）では、ＩＰｖ６ホストがＩＰｖ６トンネルブローカーを通るＩＰｖ４トンネルを用いて互いに接続することを許しているが、ここでもまたエンドポイントはＩＰｖ６との互換性を有していなければならない。それに加えて、Ｔｅｒｅｄｏは、エンドポイントがＩＰｖ４のＮＡＴ（ネットワークアドレス変換器）の内側にある場合に、ユニキャストＩＰｖ６トラフィックに対してアドレスの割り当ておよびホスト間のトンネリングを提供するが、ここでもまたエンドポイントはＩＰｖ６との互換性を有していなければならない。さらに、ＩＳＡＴＡＰ（Intra-Site Automatic Tunneling Addressing Protocol）（ＲＦＣ４２１４）も、アプリケーションがエンドポイントでＩＰｖ６との互換性を有していること要求する。
【００６４】
それに加えて、本発明の実施形態によって対処される問題に対する前の戦略では、グローバルに一意なＩＰｖ４を使用することが必要な場合がある（例えば、ステートレスのＩＰ／ＩＣＭＰ変換ＲＦＣ２７６５）。さらに、別の前の戦略では、ＩＰｖ６エンドポイントに対するアプリケーションレベルのゲートウェイでＩＰｖ４エンドポイントのアドレッシングを行うことが必要になることがある（例えば、ＮＡＴ−ＰＴおよびＮＡＰＴ−ＰＴ  ＲＦＣ４９６６）。本発明の例示的な一実施形態では、ＩＰｖ６の利点の少なくともいくつかの利点を実現しながら、ＩＰｖ６アプリケーションレベルのゲートウェイは１つまたは複数のＩＰｖ４アプリケーション間で通信するために使用されない。
【００６５】
図８は、本発明の実施形態によるＩＰｖ４互換アプリケーションからの通信にＩＰｖ６アドレッシングを使用する例示的な方法８００を表すブロック図である。ブロック８０２は、送信元のＩＰｖ４アプリケーションから伝達されるデータのＩＰｖ４パケットを受信するステップを示している。例示的な一実施形態において、データのパケットは、ＩＰｖ４アドレスを使用して宛先に送られる。データのＩＰｖ４パケットの受信は、ＩＰｖ４互換アプリケーションに関連付けられている４ｔｏ６スタックがデータをインターセプトすることとすることができる。
【００６６】
ブロック８０４で、データのＩＰｖ４パケットをデータのＩＰｖ６パケットとしてカプセル化する。すでに説明されているように、カプセル化プロセスは、ＩＰｖ６ヘッダをＩＰｖ４パケットに付加してＩＰｖ４パケットをＩＰｖ６パケットのデータペイロードにするステップを含むことができる。ＩＰｖ６パケットは、例示的な一実施形態において、データのＩＰｖ４パケットからのＩＰｖ４アドレスおよびグループ識別子（グループ識別子および／または組織識別子を含むものとしてよい）からなるＩＰｖ６アドレスを使用して宛先を識別する。
【００６７】
ブロック８０６で、ＩＰｖ４パケットをカプセル化するＩＰｖ６パケットは、ＩＰｖ６アドレスを使用して宛先に伝達される。データパケット（例えば、ＩＰｖ６パケット内のＩＰｖ４パケット）をカプセル化するプロセスは、カプセル化されたパケットの全部または一部を含んでもよいことを理解されたい。例えば、例示的な一実施形態において、ヘッダ情報をＩＰｖ４パケットから取り除き、ＩＰｖ６パケット内のデータペイロードのサイズを縮小することができる。宛先に到達した後、取り除かれたＩＰｖ４ヘッダ情報を１つまたは複数の送信元から決定することができる（例えば、名前解決テーブル、ＩＰｖ６アドレッシング規約の推測）。
【００６８】
図９は、本発明の実施形態によるＩＰｖ４互換アプリケーションへの通信にＩＰｖ６アドレッシングを使用する例示的な方法９００を表すブロック図である。ブロック９０２で、データのＩＰｖ６パケットを受信する。例示的な一実施形態では、データのＩＰｖ６パケットは、データペイロードと宛先のグローバルに一意なＩＰｖ６アドレスとからなる。データペイロードは、例示的な一実施形態において、データのカプセル化されたＩＰｖ４パケットの全部または一部である。この例では、宛先のＩＰｖ６アドレスは、ＩＰｖ４互換識別子からなる１２８ビット識別子である。例えば、最下位３２ビット（４バイト）は、ＩＰｖ４アドレスの３２ビットに対応するものとしてよい。
【００６９】
ブロック９０４で、宛先ＩＰｖ４アドレスが、少なくとも一部はＩＰｖ６アドレスに含まれるＩＰｖ４互換識別子に基づき決定される。この例では、決定されたＩＰｖ４アドレスは、グローバルに一意ではないが、その代わりに、宛先が関連付けられているプライベートネットワークに一意である。
【００７０】
ブロック９０６で、ＩＰｖ６ヘッダが、データのＩＰｖ６パケットから取り除かれる。別の言い方をすると、例示的な一実施形態において、データのＩＰｖ４パケットは、通信パッケージとして使用されたデータのＩＰｖ６パケットからパケット化を解除される（例えば、抽出される）。したがって、ＩＰｖ６パケットからＩＰｖ４パケットを抽出することにより、宛先エンドポイントで使用できるようにＩＰｖ４パケットを残す。例えば、ＩＰｖ４パケットのＩＰｖ４ヘッダおよびデータペイロードは、例示的な一実施形態において、ＩＰｖ６ヘッダを取り除くことによってＩＰｖ６パケットから抽出される。ＩＰｖ６ヘッダを取り除くことは、最終的に転送するためにＩＰｖ４に準拠するデータのＩＰｖ４パケットを識別された宛先上に置くステップを含むものとしてよい。
【００７１】
ブロック９０８で、ＩＰｖ４データパケットであり得る、データのＩＰｖ６パケットからのデータペイロードは、ブロック９０４で識別されたＩＰｖ４アドレスを使用して宛先に伝達される。すでに説明されているように、データのＩＰｖ４パケットは、ＩＰｖ６アドレスに含まれるグループ識別子に関連付けられ、および／またはＩＰｖ４アドレスによって識別された宛先に関連付けられている仮想ＮＩＣに伝達されうる。仮想ＮＩＣは、着信データパケットを受信したとき、送信データパケットを受信したとき、および／または４ｔｏ６スタックを利用することができるエンドポイントの識別したとき、４ｔｏ６スタックによって有効にされうる。さらに、仮想ＮＩＣは同じ仮想ＩＰｖ４アドレスを使用するアプリケーションのグループに関連付けられるが、アプリケーションはそれぞれのアプリケーションが監視している（例えば、モニターしている、通信に使用する）ポートによって互いから区別されることが企図されている。例えば、共通の仮想ＩＰｖ４（例えば、グローバルに一意でないＩＰｖ４アドレス）を共有するアプリケーションのグループ内のそれぞれのアプリケーションは、ＴＣＰまたはＵＤＰなどのレイヤ４のスタックにおいて一意的なポート番号を使用する。
【００７２】
示されているさまざまな構成要素、さらには、図に示されていない構成要素の多くの異なる配列は、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限するのではなく、例示的であることを意図して説明されている。範囲から逸脱しない代替えの実施形態も、当業者には明らかであろう。当業者であれば、本発明の範囲から逸脱することなく前述の改善を実装する代替え手段を開発することができる。
【００７３】
いくつかの特徴および部分的組み合わせは、有用であり、他の特徴および部分的組み合わせを参照せずに使用することができ、請求項の範囲内にあることが企図されていると理解される。さまざまな図に示されているすべてのステップが、説明されている特定の順序で実行される必要はない。
【図１】
2013532438.tif 000003
【図２】
2013532438.tif 000004
【図３】
2013532438.tif 000005
【図４】
2013532438.tif 000006
【図５】
2013532438.tif 000007
【図６】
2013532438.tif 000008
【図７】
2013532438.tif 000009
【図８】
2013532438.tif 000010
【図９】
2013532438.tif 000011
【国際調査報告】
2013532438.tif 000012
2013532438.tif 000013
2013532438.tif 000014