JP2013532438A - IPv4アプリケーションのための4TO6ネットワークスタック - Google Patents

IPv4アプリケーションのための4TO6ネットワークスタック Download PDF

Info

Publication number
JP2013532438A
JP2013532438A JP2013515355A JP2013515355A JP2013532438A JP 2013532438 A JP2013532438 A JP 2013532438A JP 2013515355 A JP2013515355 A JP 2013515355A JP 2013515355 A JP2013515355 A JP 2013515355A JP 2013532438 A JP2013532438 A JP 2013532438A
Authority
JP
Japan
Prior art keywords
ipv4
ipv6
address
packet
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013515355A
Other languages
English (en)
Other versions
JP2013532438A5 (ja
Inventor
アルカティブ ハサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013532438A publication Critical patent/JP2013532438A/ja
Publication of JP2013532438A5 publication Critical patent/JP2013532438A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

IPv4互換アプリケーションからの通信またはIPv4互換アプリケーションへの通信の際にネットワークエンドポイントのグローバルに一意な識別にIPv6アドレッシングを利用するためのシステム、方法、およびコンピュータ記憶媒体を実現する。IPv4エンドポイントからの、および/またはIPv4エンドポイントに向けられたデータのIPv4パケットは、データのIPv6パケット内にカプセル化される。IPv6互換アドレスは、データのIPv6パケットの宛先に関して識別される。IPv6アドレスは、カプセル化されたIPv4パケットのIPv4アドレスを表すIPv4識別子からなるGUIDである。データのIPv6パケットは、IPv6アドレスによって識別された宛先に伝達される。4to6スタックは、送信先の前にデータの着信IPv6パケットをインターセプトして、IPv6ヘッダ情報を消去し、データのIPv4パケットを露わにすることができる。

Description

本発明は、IPv4アプリケーションのための4TO6ネットワークスタックに関する。
コンピューティングデバイス間の通信は、典型的には、ネットワークを通じて行われる。パケット交換方式のネットワークでは、それぞれのネットワークデバイスは、ネットワーク内の特定のデバイスを識別するためにIP(インターネットプロトコル)アドレスを割り当てられている。
IPアドレスのための主たる標準は、IPv4(インターネットプロトコルバージョン4)である。IPv4アドレスは長さが32ビット(4バイト)であるため、利用可能なIPv4アドレスの数は4,294,967,296(232)に制限される。ネットワーク接続を求めるクライアントデバイスの数が増大し続けるとともに、利用可能なIPv4アドレスの数は減り続け、最終的にはゼロになる。この問題は、IPv4アドレス枯渇と呼ばれている。
IPv6(インターネットプロトコルバージョン6)は、IPv4の後継として開発されたインターネットプロトコルバージョンである。IPv6は、IPv4より格段に広いアドレス空間を有する。これは、128ビットのアドレスを使用する結果である。IPv6のアドレス空間は、2128個のアドレスをサポートする。
本発明の実施形態は、IPv4互換アプリケーションからの通信またはIPv4互換アプリケーションへの通信の際にネットワークエンドポイントのグローバルに一意な識別(globally unique identification)にIPv6アドレッシングを使用するためのシステム、方法、およびコンピュータ記憶媒体に関する。IPv4エンドポイントからの、および/またはIPv4エンドポイントに向けられたデータのIPv4パケットは、データのIPv6パケット内にカプセル化される。IPv6互換アドレスは、データのIPv6パケットの宛先に関して識別される。IPv6アドレスは、カプセル化されたIPv4パケットのIPv4アドレスを表すIPv4識別子からなるGUID(globally unique identifier)である。データのIPv6パケットは、IPv6アドレスによって識別された宛先に伝達される。4to6スタックは、送信先の前にデータの着信IPv6パケットをインターセプトして、IPv6ヘッダ情報を消去し、データのIPv4パケットを露わにすることができる。
この「課題を解決するための手段」では、以下の「発明を実施するための形態」でさらに説明される簡素化された形式の概念の選択を導入する。この「課題を解決するための手段」は、請求された主題の重要な特徴または本質的な特徴を識別することを意図されていないし、また請求された主題の範囲を定める補助手段として使用されることも意図されていない。
本発明の例示的な実施形態は、参照により本明細書に組み込まれている、付属の図面を参照しつつ以下で詳しく説明される。
本発明の実施形態を実装するのに好適な例示的なコンピューティングデバイスを示す図である。 本発明の実施形態によるデータの例示的なIPv4パケットを示す図である。 本発明の実施形態によるデータの例示的なIPv6パケットを示す図である。 本発明の実施形態による4to6スタックからのデータの例示的なIPv6パケットを示す図である。 本発明の例示的な一実施形態によるIPv6アドレスを示す図である。 本発明の実施形態による例示的なシステムを示すブロック図である。 本発明の実施形態による通信および処理の例示的な流れを示す図である。 本発明の実施形態によるIPv4互換アプリケーションからの通信にIPv6アドレッシングを使用する例示的な方法を表すブロック図である。 本発明の実施形態によるIPv4互換アプリケーションへの通信にIPv6アドレッシングを使用する例示的な方法を表すブロック図である。
本発明の実施形態の主題は、法的要件を満たすように本明細書における特異性とともに説明されている。しかし、説明自体は、本発明の範囲を制限することを意図されていない。むしろ、発明者らは、請求されている主題が他の方法でも、他の現在の、もしくは将来の技術と併せて、異なるステップもしくは本明細書で説明されているステップに似たステップの組み合わせを含むように具現化されうることを企図している。
本発明の実施形態は、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ビットを増加させることができる。しかし、例示的な実施形態ではY+Z+X=128であると理解される。
図6は、本発明の実施形態による例示的なシステム600を示すブロック図である。システム600は、エンドポイントA 602、エンドポイントB 604、ネットワーク606、およびネームサーバ(すでに示されているようにNS)608からなる。本明細書で説明されているこの配置構成および他の配置構成は、例としてのみ示されていることは理解されるであろう。他の配置構成および要素(例えば、デバイス、エンドポイント、ネットワーク、アプリケーション、テーブル、スタックなど)を、図示されているものに加えて、またはその代わりに使用することができ、いくつかの要素についてはまとめて省くこともできる。さらに、本明細書で説明されている要素の多くは、離散もしくは分散構成要素として、または他の構成要素と連携して、また好適な組み合わせにより、好適なロケーションにおいて実装されうる機能する実体である。本明細書において1つまたは複数の実体により実行されるものとして説明されているさまざまな機能は、ハードウェア、ファームウェア、および/またはソフトウェアによって実行されうる。例えば、さまざまな機能が、メモリ内に格納されている命令を実行するプロセッサによって実行することが可能である。
図6に示されている構成要素のそれぞれは、例えば図1を参照しつつ説明されているコンピューティングデバイス100などの、任意の種類のコンピューティングデバイスであってよい。任意の数のエンドポイント、ネットワーク、ネームサーバ、送信元、および宛先は、本発明の範囲内においてシステム600内で使用することができることは理解されるであろう。それに加えて、図示されていない他の構成要素も、システム600内に組み込むことができる。
ネットワーク606は、IPv6の通信をサポートすることができるネットワークである。ネットワーク606は、部分的にしかIPv6をサポートできないことが考えられる。例えば、レガシーIPv4互換ネットワーキングデバイスは、ネットワーク606を通じて一部の通信の経路選択を行うステップを取り扱うために使用されうる。IPv4互換デバイスが、少なくとも一部、使用される場合、IPv6トンネリングなどのよく知られているトンネリング技術を本明細書で説明されている機能と組み合わせて使用することが企図される。図6の構成要素は、ネットワーク606を介して互いに通信することができ、これは、限定はしないが、1つまたは複数のLAN(ローカルエリアネットワーク)および/またはWAN(ワイドエリアネットワーク)を含みうる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
例示的な一実施形態では、NS608は、ネットワーク606を使用する構成要素/デバイスに対する名前解決サービスを提供するネームサーバである。例えば、ネームサーバ608は、現在のネットワーキング環境で一般に使用されるダイナミックNS(DNS)であってよい。しかし、従来の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にある名前解決テーブルへの情報を動的に更新することができる。
エンドポイントA 602は、IPv4互換アプリケーション612、仮想ネットワークインターフェースカード614、4to6スタック616、および名前解決テーブルキャッシュA 618からなる。エンドポイントB 604は、IPv4互換アプリケーション620、仮想ネットワークインターフェースカード622、4to6スタック624、および名前解決テーブルキャッシュB 626からなる。
すでに説明されているように、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スタックは、名前解決テーブルキャッシュA 618と連携して動作し、情報の書き込み、保持、更新、および/または同期処理を行うことができる。例えば、一実施形態では、名前解決テーブルキャッシュA 618は、名前解決テーブル610を通じてアクセス可能な情報のローカルキャッシュである。
例示的な一実施形態では、IPv4互換アプリケーション620、仮想ネットワークインターフェースカード622、4to6スタック624、および名前解決テーブルキャッシュB 626は、エンドポイントA 602に関してすでに説明されている同様の名前の構成要素に相当する。
したがって、本発明の実施形態の範囲内で所望の機能を実現するために、任意の数の構成要素を使用することができる。わかりやすくするために図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のセマンティクス(peer-level IPv4 semantics)を提供する仮想オーバーレイネットワーク内に属し、したがって、これはレガシーIPv4アプリケーションをサポートする。
引き続き図7に示されている例を参照すると、送信元IPv4互換アプリケーション702は、宛先のIPv4互換アプリケーション710への配信を意図してIPv4 712としてデータのパケットを生成し、伝達する。4to6スタック704は、データパケット通信をインターセプトし、カプセル化714のプロセスを実行する。カプセル化714のプロセスは、IPv4 712をIPv6データパケット内に入れる(例えば、IPv6パケットのペイロードとして)。例示的な一実施形態では、送信元のIPv4互換アプリケーション702に関連付けられている仮想NICは、宛先のIPv4互換アプリケーション710と通信するために送信元のIPv4互換アプリケーション702によって使用される。4to6スタック704は、宛先を識別するために仮想NICからの通信を識別する。宛先は、仮想NICのグループ識別子(組織識別子を含むこともできる)からなるIPv6アドレスと通信データパケットのヘッダ内に示されるIPv4宛先アドレスとを有する。グループ識別子およびIPv4宛先アドレスは、IPv6アドレスを生成するために使用することができる。IPv6、IPv4、およびグループ識別子の間のこの関連付けは、名前解決テーブルキャッシュまたは他のリポジトリ内で保持されうる。
4to6スタック704から、カプセル化されたIPv4通信がネットワーク706を通じてIPv6 716/IPv6 718の通信として送られる。IPv6 718の通信は、宛先のIPv4互換アプリケーション710に関連付けられている4to6スタック708によってインターセプトされる。抽出720のプロセスが実行され、IPv6のヘッダ情報を消去してIPv4データケットを露わにする。IPv4データパケットは、IPv4 722の通信として宛先の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互換性を有していなくてもよいことを理解されたい。例えば、6to4(RFC3056)ではIPv6のサイトは明示的なトンネル設定なしでIPv4ネットワーク上で互いに通信することを許しているが、エンドポイントはIPv6との互換性を有していなければならない。同様に、IPv6トンネルブローカー(RFC3053)では、IPv6ホストがIPv6トンネルブローカーを通るIPv4トンネルを用いて互いに接続することを許しているが、ここでもまたエンドポイントはIPv6との互換性を有していなければならない。それに加えて、Teredoは、エンドポイントがIPv4のNAT(ネットワークアドレス変換器)の内側にある場合に、ユニキャストIPv6トラフィックに対してアドレスの割り当ておよびホスト間のトンネリングを提供するが、ここでもまたエンドポイントはIPv6との互換性を有していなければならない。さらに、ISATAP(Intra-Site Automatic Tunneling Addressing Protocol)(RFC4214)も、アプリケーションがエンドポイントでIPv6との互換性を有していること要求する。
それに加えて、本発明の実施形態によって対処される問題に対する前の戦略では、グローバルに一意なIPv4を使用することが必要な場合がある(例えば、ステートレスのIP/ICMP変換RFC2765)。さらに、別の前の戦略では、IPv6エンドポイントに対するアプリケーションレベルのゲートウェイでIPv4エンドポイントのアドレッシングを行うことが必要になることがある(例えば、NAT−PTおよびNAPT−PT RFC4966)。本発明の例示的な一実施形態では、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のスタックにおいて一意的なポート番号を使用する。
示されているさまざまな構成要素、さらには、図に示されていない構成要素の多くの異なる配列は、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限するのではなく、例示的であることを意図して説明されている。範囲から逸脱しない代替えの実施形態も、当業者には明らかであろう。当業者であれば、本発明の範囲から逸脱することなく前述の改善を実装する代替え手段を開発することができる。
いくつかの特徴および部分的組み合わせは、有用であり、他の特徴および部分的組み合わせを参照せずに使用することができ、請求項の範囲内にあることが企図されていると理解される。さまざまな図に示されているすべてのステップが、説明されている特定の順序で実行される必要はない。

Claims (15)

  1. IPv4互換アプリケーションからの通信のためにIPv6アドレッシングを使用する方法であって、
    第1のIPv4アプリケーションから伝達されるデータのIPv4パケットを受信するステップであって、前記データのパケットがIPv4アドレスを使用して宛先に送られる、ステップと、
    前記データのIPv4パケットをデータのIPv6パケット内にカプセル化するステップであって、前記データのIPv6パケットがIPv6アドレスを使用して前記宛先に送られ、
    前記IPv6アドレスは、前記IPv4アドレスとグループ識別子とからなる、ステップと、
    前記IPv6アドレスを使用して、前記データのIPv6パケットを前記宛先に伝達するステップと
    を含むことを特徴とする方法。
  2. 前記データのIPv4パケットを受信する前記ステップは、4to6スタックが前記データのIPv4パケットをインターセプトするステップであることを特徴とする請求項1に記載の方法。
  3. 前記第1のIPv4アプリケーションまたは前記宛先は、IPv6アドレッシングをサポートしないことを特徴とする請求項1に記載の方法。
  4. 前記宛先は、第2のIPv4アプリケーションであることを特徴とする請求項1に記載の方法。
  5. 前記IPv4アドレスは、プライベートネットワーク内で一意な識別子であることを特徴とする請求項1に記載の方法。
  6. カプセル化する前記ステップは、オペレーティングシステムまたはネットワークルーティングデバイスに関連付けられている4to6スタックによって実行されることを特徴とする請求項1に記載の方法。
  7. 前記IPv6アドレスは、4バイトを使用するグループ識別子、4バイトを使用するIPv4アドレス、および8バイトを使用する組織識別子からなることを特徴とする請求項1に記載の方法。
  8. 前記IPv6アドレスの最下位4バイトは前記IPv4アドレスを表すことを特徴とする請求項1に記載の方法。
  9. 前記第1のIPv4アプリケーションおよび前記宛先は、共通のグループ識別子を有することを特徴とする請求項1に記載の方法。
  10. プロセッサおよびメモリを有するコンピューティングシステムによって実行されたときに前記コンピューティングシステムに方法を実行させるコンピュータ実行可能命令が含まれている1つまたは複数のコンピュータ記憶媒体であって、前記方法は
    データのIPv6パケットを受信するステップであって、前記データのIPv6パケットは、データペイロードと宛先のグローバルに一意なIPv6アドレスとからなり、前記IPv6アドレスは、128ビットの識別子であり、
    前記グローバルに一意なIPv6アドレスの前記128ビット識別子の定義済みの数は、IPv4アドレスと互換性のあるIPv4識別子である、ステップと、
    少なくとも一部は前記グローバルに一意なIPv6アドレスの前記IPv4識別子に基づき、前記宛先の宛先IPv4アドレスを決定するステップと、
    前記宛先IPv4アドレスを使用して前記データペイロードを前記宛先に伝達するステップと
    を含むことを特徴とする1つまたは複数のコンピュータ記憶媒体。
  11. 前記IPv6データパケットは、前記宛先と前記データペイロードの送信元とが関連付けられているグループ識別子からさらに構成されることを特徴とする請求項10に記載の方法。
  12. 前記宛先IPv4アドレスは、前記IPv4識別子であることを特徴とする請求項10に記載の方法。
  13. 前記宛先IPv4アドレスは、前記IPv6アドレスを使用してネームサーバ解決要求から決定されることを特徴とする請求項10に記載の方法。
  14. 前記データのIPv6パケットからIPv6ヘッダを取り除き、前記データペイロードからなるデータのIPv4互換パケットを残すステップをさらに含むことを特徴とする請求項10に記載の方法。
  15. IPv4互換アプリケーションからの通信のためにIPv6アドレッシングを使用するシステムであって、
    インターネットを介してアクセス可能なネームサーバと、
    前記ネームサーバに関連付けられている名前解決テーブルであって、前記名前解決テーブルは、宛先に関連付けられている識別子のマッピングを保持し、
    前記識別子の前記マッピングは、グローバルに一意なIPv6アドレス、プライベートネットワークのIPv4アドレス、およびグループ識別子の間のマッピングである、名前解決テーブルと、
    仮想ネットワークのIPv4アドレスを使用してIPv4データパケットを前記宛先に伝達する機能を有するIPv4コンピュータアプリケーションと、
    前記IPv4コンピュータアプリケーションに関連付けられている仮想ネットワークインターフェースカード(NIC)であって、前記コンピュータアプリケーションから前記IPv4データパケットを前記宛先に伝達することを可能にする、仮想NICと、
    前記仮想NICと通信する4to6スタックであって、前記宛先のグローバルに一意なIPv6アドレスからなるIPv6データパケット内に前記IPv4データパケットをカプセル化し、
    前記プライベートネットワークのIPv4アドレスと前記グローバルに一意なIPv6アドレスとの間の前記名前解決テーブル内のマッピングを使用して、前記グローバルに一意なIPv6アドレスを識別する、4to6スタックと
    を備えたことを特徴とするシステム。
JP2013515355A 2010-06-17 2011-05-25 IPv4アプリケーションのための4TO6ネットワークスタック Pending JP2013532438A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/817,964 2010-06-17
US12/817,964 US8406232B2 (en) 2010-06-17 2010-06-17 4to6 network stack for IPv4 applications
PCT/US2011/037970 WO2011159445A2 (en) 2010-06-17 2011-05-25 4t06 network stack for ipv4 applications

Publications (2)

Publication Number Publication Date
JP2013532438A true JP2013532438A (ja) 2013-08-15
JP2013532438A5 JP2013532438A5 (ja) 2014-06-26

Family

ID=45328628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013515355A Pending JP2013532438A (ja) 2010-06-17 2011-05-25 IPv4アプリケーションのための4TO6ネットワークスタック

Country Status (5)

Country Link
US (1) US8406232B2 (ja)
EP (1) EP2583433B1 (ja)
JP (1) JP2013532438A (ja)
CN (1) CN102948121B (ja)
WO (1) WO2011159445A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011020102A2 (en) * 2009-08-14 2011-02-17 Akamai Technologies, Inc. Method and apparatus for correlating nameserver ipv6 and ipv4 addresses
CN102347993B (zh) * 2010-07-28 2014-03-26 中国移动通信集团公司 一种网络通信的方法和设备
US8351430B2 (en) * 2010-09-30 2013-01-08 Microsoft Corporation Routing using global address pairs
US8705545B2 (en) * 2011-08-18 2014-04-22 Oracle International Corporation N-way routing packets across an intermediate network
CN103297554B (zh) * 2012-03-02 2016-09-28 深圳市中兴通讯技术服务有限责任公司 IPv4和IPv6兼容处理的方法及装置
US20140006638A1 (en) * 2012-06-29 2014-01-02 Alan Kavanagh Method and a network node, for use in a data center, for routing an ipv4 packet over an ipv6 network
CN103634415B (zh) * 2012-08-22 2018-01-12 国基电子(上海)有限公司 减少网络地址表头的系统、装置及方法
TWI493948B (zh) * 2012-08-22 2015-07-21 Hon Hai Prec Ind Co Ltd 減少網路位址表頭的系統、裝置及方法
US9553801B2 (en) * 2012-09-25 2017-01-24 Google Inc. Network device
US9191313B2 (en) 2012-10-15 2015-11-17 International Business Machines Corporation Communications over multiple protocol interfaces in a computing environment
JP6098192B2 (ja) * 2013-01-31 2017-03-22 富士通株式会社 アドレス生成装置
WO2015003379A1 (zh) * 2013-07-12 2015-01-15 华为技术有限公司 一种数据通信方法、设备和系统
CN105814867B (zh) * 2013-12-11 2021-01-12 易希提卫生与保健公司 用于将协议帧定址到目标设备的方案
CN105100293A (zh) * 2014-05-19 2015-11-25 中兴通讯股份有限公司 地址转换方法、装置及数据交互方法、系统
WO2017039499A1 (en) * 2015-09-01 2017-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Computer program, computer-readable storage medium transmitting device, receiving device and methods performed therein for transferring background user data
US20170142234A1 (en) * 2015-11-13 2017-05-18 Microsoft Technology Licensing, Llc Scalable addressing mechanism for virtual machines
CN106559511B (zh) * 2016-10-18 2019-05-24 优刻得科技股份有限公司 云系统、云端公共服务系统及用于云系统的互访方法
US11570207B2 (en) 2019-12-31 2023-01-31 Juniper Networks, Inc. Dynamic security actions for network tunnels against spoofing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003158520A (ja) * 2000-12-25 2003-05-30 Iiga Co Ltd ネットワークアドレス表示装置及びネットワークアドレス割り当て装置
JP2005197936A (ja) * 2004-01-06 2005-07-21 Kddi Corp 通信システム、登録装置及び通信装置
JP2008047968A (ja) * 2006-08-10 2008-02-28 Nippon Telegraph & Telephone East Corp 通信システム、およびネットワーク機器の共有方法
JP2008543139A (ja) * 2005-05-25 2008-11-27 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステムおよびその管理方法、通信端末およびパケットを送信するための方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708219B1 (en) * 1999-10-26 2004-03-16 3Com Corporation Method and system for dual-network address utilization
US20010040895A1 (en) * 2000-03-16 2001-11-15 Templin Fred Lambert An IPv6-IPv4 compatibility aggregatable global unicast address format for incremental deployment of IPv6 nodes within IPv4
US6845091B2 (en) * 2000-03-16 2005-01-18 Sri International Mobile ad hoc extensions for the internet
US8046452B2 (en) 2001-03-08 2011-10-25 British Telecommunications Public Limited Company Inter-network address translator that is separately addressable from address alias assignment process
EP1488610B1 (en) 2002-03-27 2018-09-12 British Telecommunications public limited company System for selecting a connectivity mechanism
JP3857183B2 (ja) * 2002-05-24 2006-12-13 株式会社日立コミュニケーションテクノロジー アドレス変換機能を備えたパケット転送装置
CA2393547A1 (en) 2002-07-15 2004-01-15 Hexago Inc. Method and apparatus for connecting ipv6 devices through an ipv4 network using a tunneling protocol
US7231452B2 (en) * 2002-11-29 2007-06-12 National University Of Singapore Method and apparatus for communicating on a communication network
WO2004057831A1 (en) * 2002-12-20 2004-07-08 Koninklijke Philips Electronics N.V. System and method for establishing communication between a client and a server in a heterogenous ip network
US20040148428A1 (en) 2003-01-28 2004-07-29 George Tsirtsis Methods and apparatus for supporting an internet protocol (IP) version independent mobility management system
KR100666987B1 (ko) 2004-11-15 2007-01-10 삼성전자주식회사 이중스택 전환 메커니즘을 이용한 IPv4-IPv6 전환시스템 및 그 방법
KR100716163B1 (ko) * 2004-12-23 2007-05-10 삼성전자주식회사 IPv4망과 IPv6망 간의 멀티캐스팅을 위한 터널링방법 및 장치
US7609691B2 (en) 2005-03-21 2009-10-27 Cisco Technology, Inc. Method and system for automatically interconnecting IPv4 networks across an IPv6 network
US7483439B2 (en) * 2005-03-21 2009-01-27 Cisco Technology, Inc. VPN services using address translation over an IPv6 network
JP4052522B2 (ja) * 2006-04-12 2008-02-27 松下電器産業株式会社 ネットワーク機器及びネットワーク機器管理方法
US8228942B2 (en) 2006-09-25 2012-07-24 Zte Corporation System and method for IPv4 and IPv6 migration
KR100817552B1 (ko) 2006-09-29 2008-03-27 한국전자통신연구원 맵핑 테이블을 이용한 IPv4/IPv6 단말 또는 응용프로그램간 프로토콜 변환 장치 및 방법과, 프로토콜 변환장치의 맵핑 테이블 생성 방법
US8875237B2 (en) 2007-10-31 2014-10-28 Microsoft Corporation Private network access using IPv6 tunneling
ES2387868T3 (es) * 2008-06-30 2012-10-03 France Telecom Procedimiento de recepción de un paquete de datos en un dominio IPv6, dispositivo y pasarela residencial asociados

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003158520A (ja) * 2000-12-25 2003-05-30 Iiga Co Ltd ネットワークアドレス表示装置及びネットワークアドレス割り当て装置
JP2005197936A (ja) * 2004-01-06 2005-07-21 Kddi Corp 通信システム、登録装置及び通信装置
JP2008543139A (ja) * 2005-05-25 2008-11-27 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステムおよびその管理方法、通信端末およびパケットを送信するための方法
JP2008047968A (ja) * 2006-08-10 2008-02-28 Nippon Telegraph & Telephone East Corp 通信システム、およびネットワーク機器の共有方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016000544; 大森 敏行: '実用化段階に入ったIPv6 空間拡張以外にもメリットはある' 日経バイト 第207号, 20000901, p.24-28, 日経BP社 *

Also Published As

Publication number Publication date
CN102948121B (zh) 2016-07-06
WO2011159445A2 (en) 2011-12-22
EP2583433B1 (en) 2020-02-12
CN102948121A (zh) 2013-02-27
EP2583433A2 (en) 2013-04-24
US8406232B2 (en) 2013-03-26
US20110310898A1 (en) 2011-12-22
EP2583433A4 (en) 2013-10-30
WO2011159445A3 (en) 2012-03-29

Similar Documents

Publication Publication Date Title
JP2013532438A (ja) IPv4アプリケーションのための4TO6ネットワークスタック
US8351430B2 (en) Routing using global address pairs
US7450585B2 (en) Method and system in an IP network for using a network address translation (NAT) with any type of application
US7245622B2 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
US7158526B2 (en) Packet communication method and apparatus and a recording medium storing a packet communication program
US10367733B2 (en) Identifier-based virtual networking
US7701952B2 (en) Packet communication method and apparatus and a recording medium storing a packet communication program
US8223780B2 (en) Method for forwarding data packet, system, and device
US8805977B2 (en) Method and system for address conflict resolution
CN101656761B (zh) 地址变换装置、方法、名称解决系统、方法以及节点
JP2013532438A5 (ja)
US7437474B2 (en) Proxy-less packet routing between private and public address realms
EP2472811A1 (en) Method and system for implementing interconnection between internet protocol version 4 network and new network
CN102394947B (zh) IPv4与IPv6的地址翻译方法、装置、系统及ALG设备
AU2023203289A1 (en) Systems and methods for providing a ReNAT communications environment
US7266119B2 (en) NAT system for supporting mobile IP in private networks and its method
US7356031B1 (en) Inter-v4 realm routing
Jayanthi et al. Transition and mobility management in the integrated IPv4 and IPv6 network-A systematic review
WO2022089412A1 (zh) 一种通信方法及装置
CN103024096B (zh) 一种在cgn网络中快速互联网访问的方法
JP4349413B2 (ja) パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体
US20080172493A1 (en) Method, system and host for telecommunications involving IPv4 and IPv6
US20240163211A1 (en) Inter-realm routing within a shaft

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140507

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160112