JP2005057752A - 異なるプロトコルバージョンを持つシステム間の通信を提供する装置と方法 - Google Patents

異なるプロトコルバージョンを持つシステム間の通信を提供する装置と方法 Download PDF

Info

Publication number
JP2005057752A
JP2005057752A JP2004216825A JP2004216825A JP2005057752A JP 2005057752 A JP2005057752 A JP 2005057752A JP 2004216825 A JP2004216825 A JP 2004216825A JP 2004216825 A JP2004216825 A JP 2004216825A JP 2005057752 A JP2005057752 A JP 2005057752A
Authority
JP
Japan
Prior art keywords
ipv4
socket
packet
ipv6
api
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
JP2004216825A
Other languages
English (en)
Inventor
Sachin G Deshpande
ジー デシュパンデ サチン
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Publication of JP2005057752A publication Critical patent/JP2005057752A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

【課題】IPv4(インターネットプロトコルのバージョン4)のアプリケーション108が、IPv6(インターネットプロトコルのバージョン6)のシステム104とコンピュータネットワーク106を介して通信できるようにするシステムを提供する。
【解決手段】このシステムは、コンピュータ装置と実行可能な命令を含んでいる。実行可能な命令は、IPv4ソケットのアプリケーションプログラミングインターフェース(API)に関数コールするように構成されている。命令は、関数コールをローソケットを使用する翻訳関数コールに翻訳する。ローソケットを使用するその翻訳関数コール用のIPv4ソケットAPIに別の関数コールを行う。パケットをIPv4スタックに渡す。
【選択図】図1

Description

本発明は、全体として、コンピュータネットワークを介する電子通信に関し、特に、異なるプロトコルバージョンを持つシステム間の通信を提供する装置及び方法に関する。
コンピュータ技術及び通信技術は、急速に進歩し続けている。実際に、コンピュータ技術及び通信技術は、個人の日常生活に様々な形で組み込まれている。例えば、一般の消費者により現在使用されている多くの装置には、小型のコンピュータが組み込まれている。これらの小型のコンピュータは、サイズも精巧度も様々である。これらの小型コンピュータは、1つのマイクロコントローラから機能を完備した完全なコンピュータシステムまで精巧度も多様である。例えば、小型コンピュータは、マイクロコントローラのようなワンチップコンピュータ、コントローラのようなワンボードタイプのコンピュータ、IBM−PC互換のデスクトップコンピュータなどがある。
コンピュータは、ビジネス、産業及び学術研究の殆どあらゆる分野で用いられている。コンピュータを使用する家庭も増加している。コンピュータの普及も、インターネットを含むコンピュータネットワークの利用の増大により急速に進んでいる。殆どの会社は、1つ以上のコンピュータネットワークを有しており、インターネットを盛んに利用している。従業員の生産性を上げるために、人とコンピュータの対話が要求されることも多い。コンピュータとソフトウェアの改良は、ビジネス及び産業の生産性を飛躍的に向上させる原動力となっている。
コンピュータネットワークは、データの送受信を支配する規則を用いる。コンピュータネットワークのこれらの規則は、プロトコルと呼ばれることが多い。コンピュータネットワークとの組み合わせで今日使用されているプロトコルは多種多様である。現在用いられている重要なプロトコルの1つは、インターネットプロトコルである。このインターネットプロトコルは、TCP/IP通信プロトコル群中のネットワーク層プロトコルである。
現在のインターネットプロトコルのバージョンは、IPv4(IPバージョン4)として知られている。インターネットの急速な成長により、IPv4のアドレス空間は、最終的には使い尽くされるであろう。インターネットプロトコルの新しいバージョンは、IPv6(IPバージョン6)として知られている。IPv6は、コンピュータネットワーク通信のために強化された機能性の提供を目的としている。
IPv4からIPv6への移行は、急進的に行われるのではなく、完了するまでに或る程度の期間を要するであろう。そのために、或るシステムはIPv4を使用し、或るシステムはIPv6を使用する移行期間が生じるであろう。即ち、この移行期間中、IPv4プロトコルとIPv6プロトコルは共存する必要がある。
本発明は、上述のごとき実情に鑑みてなされたものであり、例えばIPv4とIPv6との共存のような、プロトコルの異なるバージョン間での共存を可能にするシステム及び方法を提供することをその目的とする。
本発明は、上述のごとき課題を解決するために、以下の各技術手段により構成される。
本発明の第1の技術手段は、第1バージョンのプロトコルを用いる第1システムと第2バージョンのプロトコルを用いる第2システムとの間の通信を提供するコンピュータシステムのための方法であって、前記第1システムに第1のアプリケーションを供給することと、前記第1バージョン用のソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する翻訳関数コール用のソケットAPIに関数コールを行うことと、パケットを前記プロトコルの第1バージョン用のスタックに渡すことと、を含んでなることを特徴としたものである。
第2の技術手段は、第1の技術手段において、前記プロトコルの前記第1バージョンがIPv4(インターネットプロトコルのバージョン4)であり、前記プロトコルの前記第2バージョンがIPv6(インターネットプロトコルのバージョン6)であることを特徴としたものである。
第3の技術手段は、第2の技術手段において、IPヘッダを供給することをさらに含むことを特徴としたものである。
第4の技術手段は、第2の技術手段において、IPヘッダを一回だけ供給することさらに含むことを特徴としたものである。
第5の技術手段は、第2の技術手段において、前記方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータ層を挿入することにより実行することを特徴としたものである。
第6の技術手段は、第2の技術手段において、前記方法は、IPv6スタックを用いることなく実行することを特徴としたものである。
第7の技術手段は,第4の技術手段において,前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴としたものである。
第8の技術手段は、第2の技術手段において、受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを宛先アプリケーションに渡すことと、を含んでなること特徴としたものである。
第9の技術手段は,第2の技術手段において,IPv4のルーティングインフラストラクチャによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴としたものである。
第10の技術手段は、第2の技術手段において、ネーム−アドレスのリゾルブ関連関数を実行するためにネームリゾルバサービスを用いることをさらに含むことを特徴としたものである。
第11の技術手段は、第10の技術手段において、前記ネームリゾルバサービスは、IPv4スタックとIPv6スタックを含む個別のホスト上で実行されるように構成されていることを特徴としたものである。
第12の技術手段は,第11の技術手段において,前記ネームリゾルバサービスのネーム−アドレスリゾルバ関数がIPv6スタックを使用することを特徴としたものである。
第13の技術手段は、第12の技術手段において、前記ネームリゾルバサービスが、前記第1システムからの問い合わせを受信し、前記アドレスリゾルバ関数を用いてレコードを獲得し、該レコードを前記第1システムに送るように構成されていることを特徴としたものである。
第14の技術手段は、第2の技術手段において、送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行が、パケットを送るためにIPv4ソケットAPIコールを代行受信することと、ローソケットを用いるためにIPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当するIPv4ソケットのAPI関数をコールすることと、前記パケットを前記スタックに渡すことと、を含んでなることを特徴としたものである。
第15の技術手段は、第14の技術手段において、IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴としたものである。
第16の技術手段は、第14の技術手段において、前記パケットを断片化することをさらに含むことを特徴としたものである。
第17の技術手段は、第14の技術手段において、前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴としたものである。
第18の技術手段は,IPv4(インターネットプロトコルのバージョン4)システムとIPv6(インターネットプロトコルのバージョン6)システムとの間の通信を提供する方法を、IPv4のコンピュータシステムに実装するための実行可能な1組の命令であって、前記方法は、前記IPv4システムにIPv4アプリケーションを供給することと、IPv4ソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する前記翻訳関数コール用の前記IPv4ソケットAPIに他の関数コールを行うことと、パケットをIPv4スタックに渡すことと、を含んでなることを特徴としたものである。
第19の技術手段は、第18の技術手段において、前記方法はIPヘッダを一回だけ供給することさらに含むことを特徴としたものである。
第20の技術手段は、第18の技術手段において、前記方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータを挿入することにより実行することを特徴としたものである。
第21の技術手段は、第18の技術手段において、前記方法は、IPv6スタックを用いることなく実行することを特徴としたものである。
第22の技術手段は、第18の技術手段において、前記方法は、受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを前記IPv4アプリケーションに渡すことと、を含んでなることを特徴としたものである。
第23の技術手段は、第18の技術手段において、前記方法は、送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、データを送るためにIPv4ソケットのAPIコールを代行受信することと、ローソケットを用いるためにIPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当するIPv4ソケットAPI関数をコールすることと、前記データを前記IPv4スタックに渡すことと、を含んでなることを特徴としたものである。
第24の技術手段は、第23の技術手段において、IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴としたものである。
第25の技術手段は、第23の技術手段において、前記パケットを断片化することをさらに含むことを特徴としたものである。
第26の技術手段は、第23の技術手段において、前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴としたものである。
第27の技術手段は、第18乃至26のいずれかの技術手段における実行可能な1組の命令を記憶したコンピュータ読み取り可能な記録媒体である。
第28の技術手段は、IPv4(インターネットプロトコルのバージョン4)のアプリケーションが、IPv6(インターネットプロトコルのバージョン6)システムを用いるコンピュータネットワークを介して通信できるようにするシステムであって、当該システムは、コンピュータ装置と、コンピュータ装置で実行可能な命令より成り、該実行可能な命令は、IPv4ソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する前記翻訳関数コール用の前記IPv4ソケットAPIに他の関数コールを行うことと、パケットをIPv4スタックに渡すことと、を含んでなる方法を実行するように構成されていることを特徴としたものである。
第29の技術手段は、第27の技術手段において、ソケットAPI層とTCP/IPv4層との間にあるAPIレベルトランスレータを有することを特徴としたものである。
第30の技術手段は、第27の技術手段において、前記方法は、受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを前記IPv4アプリケーションに渡すことより成ることを特徴としたものである。
第31の技術手段は、第27の技術手段において、前記方法は、送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、前記パケットを送るためにIPv4ソケットAPIコールを代行受信することと、ローソケットを用いるために前記IPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当する前記IPv4ソケットAPI関数をコールすることと、前記パケットを前記IPv4スタックに渡すことと、を含んでなることを特徴としたものである。
第32の技術手段は、第27の技術手段において、前記方法は、IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴としたものである。
第33の技術手段は、第27の技術手段において、前記方法は、前記パケットを断片化することをさらに含むことを特徴としたものである。
本発明によれば、コンピュータネットワークのシステムと方法を改良してIPv4とIPv6のプロトコルの共存など、プロトコルの異なるバージョン間での共存が可能となり、この移行期間中に発生し得る幾つかの難しい問題を最小限に留めることができる。また、本発明によれば、強化した機能性の提供で実現される利益により、IPv4からIPv6への移行を促進させることができる。
本発明の実施形態は、添付の図面を参照し、明細書の説明と特許請求範囲の記述を読むことにより明らかになろう。これらの図面は、代表的な実施形態を説明しているのであり、従って、本発明の範囲を制限するものではない。添付図面を参照し、実施形態につき詳述する。
コンピュータシステムが、第1のシステムと第2のシステム間の通信を提供するための方法を開示する。第1のシステムは、プロトコルの第1バージョンを用い、第2のシステムは、プロトコルの第2バージョンを用いる。第1アプリケーションは、第1システムに備えられている。関数コールを、第1バージョン用のソケットAPI(アプリケーションプログラミングインターフェース)に対して行う。この関数コールが、ローソケットを用いる翻訳関数コールに翻訳される。パケットが第1バージョンのプロトコル用のスタックに渡される。このパケットはネットワークカードドライバに送ることができる。
一実施例によれば、第1バージョンプロトコルは、IPv4(インターネットプロトコルのバージョン4)であり、第2バージョンプロトコルは、IPv6(インターネットプロトコルのバージョン6)である。
開示の方法は、IPヘッダの供給をも含んでいる。本方法の一実施例において、IPヘッダは、一回だけ提供される。
この方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータ層を挿入することにより実装できる。さらに、この方法は、IPv6スタックを用いないで実装できる。
受信に関係するIPv4ソケット関数は、代わりの実装方法でも提供できる。この代替の実装方法において、入ってくるパケットは、1つのローソケットで受信される。到着パケットの正確な宛先を決定するためにソースホストがチェックされる。到着パケット用のポート番号がチェックされる。トランスポート,IPヘッダが到着パケットから剥がされる。ペイロードが宛先アプリケーションに渡される。IPv4のルーティングインフラストラクチュアでのIPv6パケットのトンネリングを実行できる。
ネームリゾルバサービスは、ネーム−アドレスのリゾルバ関連関数を実行するために使用できる。このネームリゾルバサービスは、IPv4スタックとIPv6スタックを含む独立ホスト上で実行するように構成されている。ネームリゾルバサービスのネーム−アドレスリゾルバ関数は、IPv6スタックを使用する。ネームリゾルバサービスは、第1システムからの問い合わせを受信し、アドレスリゾルバ関数を使用して、レコードを獲得し、そのレコードを第1システムに送るように構成することができる。
送信関連IPv4ソケット関数は、代わりの実行方法でも提供可能である。この別の実行方法では、IPv4ソケットのAPIコールは、パケットを送るために代行受信(インターセプト)される。IPv4ソケットのAPIコールは、1つのローソケットを使用するために翻訳される。トランスポートとIPv6のヘッダが供給される。該当するIPv4ソケットのAPI関数が前述のローソケットのために呼び出され、パケットがスタックに渡される。
幾つかのシステムでは、このパケットを断片化する。さらに、このパケットをネットワークカードドライバに引き渡す。
IPv4(インターネットプロトコルバージョン4)のコンピュータシステムに、IPv4システムとIPv6(インターネットプロトコルバージョン6)システムとの間の通信を提供するための方法を実装する実行可能な命令セットを開示する。IPv4アプリケーションは、IPv4システムに装備される。IPv4ソケットのアプリケーションプログララミングインターフェース(API)に関数コールをかける。この関数コールを翻訳し、翻訳関数コールがローソケットを用いる。もう1つの関数コールが、ローソケットを用いる翻訳関数用IPv4ソケットAPIに対して行われる。1つのパケットが、1つのIPv4スタックに渡される。
実行可能な命令セットの方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータ層を挿入することにより実装できる。実行可能な命令は、コンピュータ可読媒体に記憶される。
IPv4(インターネットプロトコルバージョン4)のアプリケーションを、コンピュータネットワークを通じてIPv6(インターネットプロトコルバージョン6)のシステムと通信できるようにするシステムを開示する。このシステムは、コンピュータ装置と実行可能な命令を含んでいる。実行可能な命令は、IPv4ソケットのアプリケーションプログラミングインターフェース(API)に関数コールをするように構成されている。これらの命令が、関数コールを翻訳関数コールに翻訳し、その翻訳関数コールがローソケットを使用する。もう1つの関数コールが、ローソケットを使用する翻訳関数コール用のIPv4ソケットAPIになされる。1つのパケットが、1つのIPv4スタックに送られる。
図面に図示し記述した実施形態の構成要素は、種々異なる構成に配置して設計できることは容易に理解できよう。図面に図示した本発明によるシステムと方法の実施形態に関し以下に詳述するが、その説明は、発明の範囲を制限するものではなく、本発明の実施形態を説明するだけのものである。
用語“一例の”は、“一例、一つの特例、或いは図例”を意味する。“一例”として記述された実施形態は、必ずしも、他の実施形態に対し優位もしくは有利な形態として構成されるものではない。種々の実施形態を図面に表示しているが、図面に特記ない限り、必ずしも縮尺製図したものではない。
本明細書に記述した幾つかの実施形態は、コンピュータ装置に格納されたソフトウェアモジュールもしくは構成要素として示される。ここで使用されているソフトウェアモジュールもしくは構成要素は、メモリ装置内に格納され、及び/又は、システムバス又はネットワークで電子信号として送信される任意のタイプの演算命令もしくはコンピュータが実行可能なコードを含んでいる。ソフトウェアモジュールは、例えば、一つ以上の演算命令の物理的もしくは論理的ブロックより成り、ルーチン,プログラム,オブジェクト,コンポーネント,データストラクチャ等として構成することができ、一つ以上のタスクを実行するか、または、特定のアブストラクトデータ形式を実動化する。
或る特定の実施形態において、特定のソフトウェアモジュールをメモリ装置の異なる場所に格納された異なる命令より構成することができ、共に、そのモジュールの記述された機能性を実現する。実際に、一つのモジュールは単一命令もしくは多数の命令より構成でき、幾つかの異なるコードセグメント、異なるプログラム、及び幾つかのメモリ装置に、分散することができる。幾つかの実施形態は、コンピュータネットワークを通じて結合された或る遠隔処理装置がタスクを実行する分散計算機環境において実際に使用することができる。分散計算機環境において、ソフトウェアモジュールは、地域及び/又は遠隔の記憶装置に置くことができる。
一実施形態を、ここでの実施例として説明するが、別の実施例も本発明の範囲を逸脱することなく種々の形態を含むことができることを注記しておく。
開示の実施形態と関連して記述した方法のステップ又は動作の順序は、当業者であれば、本発明の範囲を逸脱することなく変更することが可能である。従って、図面又は明細書中のどの順序も説明のためだけのものであり、要求される順序を意味するものではない。
インターネットは、数多くの異なる種類のコンピュータとコンピュータ装置が互いに通信することを可能にする。インターネット上のコンピュータとコンピュータ装置は、インターネットプロトコルを用いて互いに通信する。図1は、コンピュータネットワークにより互いに通信する2つの異なるシステムを示すブロック図である。図1に示す一方のシステム102は、IPv4(IPバージョン4)として知られている現在のバージョンのインターネットプロトコルを使用し、他方のシステム104は、IPv6(IPバージョン6)として知られている新しいバージョンのインターネットプロトコルを使用する。これらのシステムは、コンピュータネットワーク106により互いに通信する。説明のために、IPv4のアプリケーション108をIPv4コンピュータシステム102に装備する。
多くの異なる種類のコンピュータ装置をコンピュータネットワーク上で使用することができる。図2は、本実施形態と共に用いられる代表的なハードウェアの主構成品を示すブロック図である。開示のシステムと方法は、コンピュータネットワーク106を介して他の装置と通信するコンピュータ装置202で用いられる。コンピュータ装置202は、当技術分野において公知の市販されているものである。図2には、コンピュータ装置202内に用いられている主なハードウェア構成品を示してある。コンピュータ装置202は一般的に、入力部品又は入力装置204及び/又は出力部品又は出力装置206と電子通信するプロセッサ203を含んでいる。このプロセッサ203は、プロセッサ203と電子通信可能な、即ち、電気信号の形式で入力及び/又は出力可能な入力装置204及び/又は出力装置206と操作可能に接続されている。装置202の実施形態は、入力装置204、出力装置206、及びプロセッサ203を同一の物理的構成もしくは個別のハウジング又は構造に含むことができる。
電子装置202は、メモリ208を含むことができる。このメモリ208は、プロセッサ203から離れた別の構成品であってよい。或いは、メモリ208は、プロセッサ203として同じ部分に含まれるオンボードメモリ208であってもよい。例えば、マイクロコントローラは、ある特定量のオンボードメモリを搭載していることが多い。
プロセッサ203は、通信インターフェース210とも電子通信する。通信インターフェース210は、他の装置202との通信に使用することができる。従って、種々異なる装置202の通信インターフェース210は、互いに通信して、コンピュータ装置202間の信号もしくはメッセージを送信するように設計することができる。
コンピュータ装置202は、他の通信ポート212を含むことができる。さらに、他の構成品214を電子装置202に含むことができる。
勿論、当業者ならば、本実施形態には、異なる多くの種類の装置が用いられることを理解できよう。コンピュータ装置202は、マイクロコントローラの様なワンチップコンピュータ、コントローラのようなワンボードタイプのコンピュータ、IBM−PCと互換性のあるデスクトップ型コンピュータ、ルータ、ホスト、パーソナルデジタルアシスタント(PDA)、ユニックスベースのワークステーション等である。したがって、図2のブロック図は、コンピュータ装置202の代表的な構成品を説明するためのものであり、開示実施形態の範囲を制限するものではない。
現在のインターネットプロトコルのバージョンは、IPv4(IPバージョン4)として知られている。IPv4は、32ビットを用いてアドレスを表現する。インターネットの急速な発展により、IPv4のアドレス空間が最終的に枯渇してしまう。インターネットプロトコルの新しいバージョンは、IPv6(IPバージョン6)として知られている。IPv6は、128ビットを用いてアドレスを表現する。IPアドレスの増大に加え、IPv6は、より簡素な構成をサポートし、IPレベルにおけるセキュリティを提供し、サービスの品質(QOS)をよりよく維持することを目的としている。
IPv4からIPv6へ移行は、迅速なプロセスではなく、その完了までにはある程度の期間を要する。従って、この移行期間の間、IPv4とIPv6のプロトコルは共存する必要がある。IPv6は、IPv4からの移行をサポートするように設計されている。RFC2893,Gilligan R.,Nordmark E.の“IPv6ホスト及びルータ用移行メカニズム”(2000年8月)は、IPv6のホスト及びルータのための、IPv4と互換性のあるメカニズムを定義している。この互換性を達成するための幾つかのメカニズムは、トンネルと、二重のIPスタックと、ドメインネームシステムである。
トンネリングに関して、IPv6のパケットは、現存のIPv4の経路インフラストラクチャでトンネルさせることができる。これは、IPv6のパケットにIPv4ヘッダをつけてカプセル化し、IPv4ヘッダのソースと宛先アドレスフィールドをトンネルの終点に設定することにより実現される。
二重のIPスタックも、IPv4互換性を助けることができる。システムは、IPv6ノード上にIPv6とIPv4の両方のスタックを実装し維持するように構築される。
ドメインネームシステム(DNS)への変更は、IPv4の互換性を助けることができる。DNSのインフラストラクチャは、IPv4とIPv6のノードのネームからアドレス及びアドレスからネームの解決をサポートするためにアップグレードすることができる。
現在、現存のIPv4のアプリケーションの数は、IPv6のアプリケーションの数より多い。IPv4のアプリケーションをIPv6で使用できるようにする1つの方法は、IPv4のアプリケーションをIPv6の新しいAPIを使用するように変更することである。しかしながら、IPv4アプリケーションを変更することは、全ての場合に実現できるわけではない。例えば、ソースコードは、入手できないか、もしくは、これらのアプリケーションのために失われている。さらに、IPv4アプリケーションの変更は、これらのアプリケーションを実行する特定のオペレーティングシステムのために使用可能なIPv6スタックがあることを前提にしている。これは、全ての場合に当てはまることではない。例えば、幾つかの埋め込まれたアプリケーションの場合、それらのアプリケーション用のオペレーションシステムはIPv6スタックのためのサポートを有していない。かような状況においては、現存のIPv4アプリケーションが、IPv4アプリケーションのソースコードを変更することなく、IPv6のホストと通信できるようにする解決法が望まれる。これを実現する幾つかの可能な方法があり、その中にBump−In−the−Stack(BIS)とBump−In−the−API(BIA)が含まれている。
BIS法は、TCP/IPv4層とネットワークカードドライバモジュールの間のデータの流れを代行受信(インターセプト)し、IPv4からIPv6又はその逆に翻訳することにより動作する。BIA法は、IPv4 APIとIPv6 API間の翻訳メカニズムを設ける。
BIS法は、下記の欠点を有している。BISのシナリオでは、先ず、IPv4ヘッダをTCP/IPv4スタックにより追加し、次に、BISモジュールがパケットを代行受信し、IPv6ヘッダを追加する。これは、IPv4ヘッダを最初に加え、その後、IPv6ヘッダに交換するために、オーバヘッドを含んでいる。BISモジュールは、IPv4スタックとネットワークドライバ間のパケットを代行受信する必要があり、オペレーティングシステム又はネットワークドライバ構造によってサポートされていない。システムがBISを用いることを試み、オペレーティングシステム又はネットワークドライバがそのBISの操作をサポートしていない場合、このシステムは、サポートされていないBISの使用を試みている間、そのシステムは不安定になるか、さもなければ、使用不能になる。
BIA法は、下記の欠点を有している。BIAは、IPv4アプリケーションを走らせるIPv6スタックをホストに据え付ける必要がある。しかしながら、IPv6スタックは、全てのオペレーティングシステムに対し使用可能ではない。
このシステムと方法は、APIレベルのトランスレータ(ALT)法を提供し、現存のIPv4アプリケーションのIPv6ホストとの通信を可能にする。この方法は、パケットをスタックレベルにおいて捕捉することを要求せず、ホストにIPv6スタックが据え付けられていない場合でも実動する。開示のシステムと方法は、IPv4アプリケーションがIPv6ホストと通信する上で幾つかの利点を提供する。この方法は、IPv6スタックが据え付けられていない(例えば、そのシステム用のIPv6スタックが存在していない)場合でも実動する。BIS法と異なり、このシステムは、IPヘッダを2回付加する必要がない。さらに、開示の実施形態は、(BIS法の場合と異なり)IPスタックとネットワークカードドライバ間でパケットを捕捉する必要がない。
ここに開示するシステムと方法は、現存のIPv4アプリケーションがIPv6ホストと通信できるようにする。以下の実施態様を理解する上で有益であるので、BIS法とBIA法について簡単に説明する。
図3はBump−In−the−Stack(BIS)法302の全体構造を示している。IPv4アプリケーション304は、最上層にある。IPv4アプリケーション304はソケットAPI(IPv4)306の上にあり、ソケットAPI(IPv4)306はTCP(UDP)/IPv4 308の上にある。BISは、TCP/IPv4層308とネットワークカードドライバ層312の間に、特別な層を加えることにより作用する。この新しい層は、パケット代行受信(BIS)層310である。この層310において、パケットは代行受信され、送出パケットはIPv4からIPv6に翻訳され、到着パケットはIPv6からIPv4に翻訳される。
図4は、Bump−In−the−API(BIA)法402の全体構造を示している。IPv4アプリケーション404は、最上層にある。IPv4アプリケーション404はソケットAPI(IPv4,IPv6)406の上にある。図示のように、BIA法は、各IPv4ソケットのAPIをIPv6ソケットのAPIにマップする。従って、BIAトランスレータ408は、ソケット関数コールを代行受信する。BIA法の場合、オペレーティングシステム用に使用でき、設置できるIPv6スタック層が必要である。結果として、BIA法はIPv6スタックが使用できなければ働けない。
図5はAPIレベルのトランスレータの構造502を示している。IPv4アプリケーション504は、最上層にある。IPv4アプリケーション504は、ソケットAPI(IPv4)506の上にある。図5から明らかなように、APIレベルの翻訳方法において、IPv4ソケット関数コールを代行受信する。しかしながら、(BIA法の場合)IPv6のスタックがないので、各関数コールをマップしてローソケットを用い、(“送信”操作のために)自身のIPヘッダを供給し、IPv4スタックの機能性を使用する。APIレベルの翻訳方法について以下に詳述する。図示のように、APIレベルのトランスレータは、IPヘッダの提供を可能にするローソケット及びIP_HDRINCL又は等価のソケットオプションをサポートしている任意のシステムで働くことができる。
図6は、APIレベルトランスレータを実装するための一般方法を示すフローチャートである。データを送る際に、IPv4アプリケーションは、IPv4ソケットAPIをコールする(ステップ602)。各ソケットコールは、ローソケット(SOCK_RAW option)を使用するために翻訳される(ステップ604)。本方法は自身のIPヘッダを提供する(ステップ606)。1つの実施例において、これは、IPヘッダを供給するためにローソケットにソケットオプションを設定することにより実行される(setsockopt function,IP_HDRINCL option)。次に、本方法は、IPv4ソケット関数用の代替の実装を提供する(ステップ608)。
IPv4ソケット関数用の代替の実装を提供する際に、下記のガイドラインに従うことができる。このガイドラインは、伝送及び受信関連機能(例えば、sendto,send,recvfrom,recv)用に使用することができる。
図7は、データ受信方法700を説明するためのフローチャートである。データを受信する時に、システムは、ローソケットで到着パケットを受信することができる(ステップ702)。必要ならば、ソースホストをチェックし、正しいアプリケーション用パケットであるかを確認する(ステップ704)。受信したパケットのポート番号をチェックする(ステップ706)。次に、システムは、受信パケットのトランスポートヘッダ及びIPヘッダを剥ぎ取り(ステップ708)、ペイロードをアプリケーションに渡す(ステップ710)。
トンネルを用いることができる。ローソケットの挙動に応じて、IPv6パケットを、“ホストからルータへの”トンネルを用いるように作成することができる。UDP及びICMPプロトコルの場合は、ここに記述のシステムを用いてパケットを送信し受信できることは、当業者ならば理解できよう。TCPプロトコルの場合、ユーザレベルのTCPの実動化が用いられる。
ネーム−アドレスの解決に関連する関数(例えば、gethostbyname,gethostbyaddr,inter_addr)の場合、次の2つの方法の中の1つを用いることができる。第1の方法は、BISにより用いられる方法である。即ち、拡張ネームリゾルバとアドレスマッパをBISにおけるように使用する。第2の方法は、図9に示すように、“ネームリゾルバ”サービスを定義して使用する。“ネームリゾルバ”サービス906は、IPv6とIPv4のスタック(910及び908)を有する個別のホスト902上で実行できる。IPv4のみのホスト904上の代行受信されたネーム−アドレスのリゾルバ関数は、“ネームリゾルバ”サービス906を参照することができ、問い合わせを送る。サービス906は、IPv6スタック910を用いより新しいネーム‐アドレスリゾルバ関数(例えば、getaddrinfo,getnameinfo等)を用いることができ、IPv4のみのホスト904からの問い合わせに対して得たレコードAAAAを返送する。このレコードAAAAは、特定のホスト名又はIPv4アドレスの問い合わせを伴い、APIレベルトランスレータ(ALT)のアドレス解決モジュールに記憶される。このマッピングは、該当する宛先ホスト名又は宛先IPv4アドレスに一致する全ての宛先アドレスに対する適当なIPv6ヘッダを供給するために使用される。ソースIPv4アドレスは、RFC2765(Stateless IP/ICMP−翻訳アルゴリズム(SIIT)−Nordmark E.,Sun Microsystems“Stateless IP/ICMP翻訳アルゴリズム(SIIT),”RFC2765、2000年2月)からの勧告に基づきIPv6アドレスにマップすることができる。
BIS、BIA及びALTの方法におけるステップの順序について以下に説明し、これらの方法の差異をさらに明らかにする。IPv4アプリケーションが、或るデータを送りたいケースを考える。BIS法の場合、IPv4アプリケーションは、データを送るためにIPv4ソケットAPIのコールをする。このデータは、IPv4ソケットAPIによりIPv4スタックに渡される。IPv4スタックは、その上にトランスポート,IPv4ヘッダを付ける。スタックは、さらに他の関数を実行し、IPv4パケットを下の層に渡す。BISパケット代行受信者がこのIPv4パケットを代行受信し、それをIPv6パケットに翻訳し、次に、そのパケットをネットワークカードドライバに渡す。
BIA法の場合,IPv4アプリケーションがデータを送るためにIPv4ソケットAPIのコールをする。BIAモジュールがこの関数コールを代行受信し、代わりに、対応するIPv6ソケットAPI関数をコールする。データは、かようにしてIPv6スタックに渡される。IPv6スタックは、適当なトランスポート,IPv6ヘッダを付加する。このIPv6スタックは、また、他の関数を実行でき、IPv6パケットをネットワークカードドライバに渡す。
図8は、IPv4アプリケーションがALT法を用いてデータを送る方法800を説明するためのフローチャートである。ALT法において、IPv4アプリケーションは、データを送るためにIPv4ソケットAPIのコールをする(ステップ802)。ALTモジュールがこの関数コールを代行受信する(ステップ804)。ALTモジュールは、対応するソケットを、すでにローソケットにマップしている(ステップ806)。ALTは、適当なトランスポートとIPv6ヘッダを付加する(ステップ808)。必要ならば、ホストからルータへのトンネルを用いる(ステップ810)。また、必要ならば、パケットを断片化する(ステップ811)。次に、ALTは、ローソケットのための対応IPv4ソケットAPI関数をコールし(ステップ812)、パケットをIPv4スタックに渡す(ステップ814)。このスタックは、(トランスポート,IPヘッダの付加以外の)他の関数を実行でき、パケットをネットワークカードドライバに渡す(ステップ818)。
当業者ならば、情報及び信号は、種々異なる技術及び技法を用い表現できることは理解できよう。例えば、上述の説明において記述されたデータ、命令、指令、情報、信号、ビット、記号、チップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光フィールドもしくは光粒子又は任意の組み合わせによって表現することができる。
当業者ならば、開示の実施形態に関連する種々の論理ブロック、モジュール、回路、及びアルゴリズムのステップは、電子ハードウェア、コンピュータハードウェア、もしくは両方の組み合わせとして実装できることは理解できよう。このハードウェアとソフトウェアの互換性を明瞭に示すために、種々の構成要素、ブロック、モジュール、回路、及びステップは、全体として機能性の面から記述してきた。かような機能性をハードウェアもしくはソフトウェアとして実装するかは、特定のアプリケーションと全システムに課せられた設計上の制約に依存する。熟練者であれば、各特定のアプリケーションに対して種々の方法で記述の機能性を実装できるが、しかし、そのような実装の決定は、本発明の範囲から逸脱するものと解釈すべきではない。
開示の実施形態に関連する種々の論理ブロック、モジュール、及び回路は、汎用のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイシグナル(FPGA)もしくは他のプログラム可能な論理装置、離散的ゲートもしくはトランジスタ論理、離散的ハードウェア構成要素、又は記述された関数を実行するために設計された任意の組み合わせによって実装でき、実行できる。汎用プロセッサは、マイクロプロセッサであってよいが、それに代わり、プロセッサを、普通のプロセッサ、コントローラ、マイクロコントローラ、もしくはステートマシンとしてもよい。プロセッサは、コンピュータ装置の組み合わせ、例えば、DSP(デジタル信号プロセッサ)とマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPを核として連結した1つ以上のマイクロプロセッサもしくは任意の他の構成として実装することもできる。
開示の実施形態に関連し記述された方法もしくはアルゴリズムのステップは、直接ハードウェアに、プロセッサにより実行されるソフトウェアモジュールに、もしくは両方の組み合わせとして実装できる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能なディスク、CD−ROMもしくは当技術において公知の任意形状の記憶媒体に常駐させることができる。典型的な記憶媒体は、その記憶媒体からの情報を読み取り、またその記憶媒体に情報を書き込みすることができるプロセッサと連結されている。別の選択肢として、記憶媒体をプロセッサと一体化してもよい。プロセッサと記憶媒体は、ASIC(特定用途向け集積回路)に常駐させることもできる。ASICは、ユーザの端末機に常駐させることができる。別の選択肢として、プロセッサと記憶媒体をユーザの端末機内の離散的構成要素として常駐させてもよい。
開示の方法は、記述した方法を達成するための1つ以上のステップもしくは動作から成る。方法のステップ及び/又は動作は、本発明の範囲から逸脱することなく、互換性を有する。即ち、実施形態の適切な実行のために、ステップもしくは動作の特別な順序が要求されない限り、特別なステップ及び/又は動作の順序及び/又は使用は、本発明の範囲から逸脱することなく変更することができる。
本発明の特別な実施形態と応用について図示し説明してきたが、本発明は、開示された通りの正確な構成と構成要素に限定されないことを理解すべきである。本発明の精神と範囲から逸脱することなく、ここに開示した本発明の方法及びシステムの配列、動作及び細部について、当業者には明らかな種々の変形、変更及び変化を加えることができる。
1つのコンピュータネットワークを介して互いに通信する2つ異なるシステムを示すブロック図である。 本発明の一実施形態において使用されるコンピュータ装置で利用されている、代表的なハードウェアの主要な構成要素を示すブロック図である。 BIS(Bump−In−the−Stack)法の全体構造の説明図である。 BIA(Bump−In−the−API)法の全体構造を示す図である。 APIレベルトランスレータの構造を示す図である。 APIレベルトランスレータを実装する一般的な方法を説明するためのフローチャートである。 データの受信方法を説明するためのフローチャートである。 APIレベルのトランスレータを用いIPv4アプリケーションがデータを送信する方法を説明するためのフローチャートである。 ネームリゾルバサービスを説明するためのブロック図である。
符号の説明
102…コンピュータシステム(IPv4システム)、104…コンピュータシステム(IPv6システム)、106…コンピュータネットワーク、108…IPv4アプリケーション、202…コンピュータ装置、203…プロセッサ、204…入力装置、206…出力装置、208…メモリ、210…通信インターフェース、212…通信ポート、214…他の構成要素、304−IPv4アプリケーション、306…ソケットAPI(IPv4)、308…TCP(UDP)/IPv4、310…パケット代行受信者(BIS)、312…ネットワークカードドライバ、404…IPv4アプリケーション、406…ソケットAPI(IPv4,IPv6)、408…BIAトランスレータ(BIA)、410…TCP(UDP)/IPv6、412…TCP(UDP)/IPv4、414…ネットワークカードドライバ、504…IPv4アプリケーション、506…ソケットAPI(IPv4)、508…APIレベルのトランスレータ(ALT)、510…TCP(UDP)/IPv4,ローソケット、512…ネットワークカードドライバ、902…コンピュータシステム、904…IPv4ホスト、906…ネームリゾルバサービス、908…IPv4スタック、910…IPv6スタック。

Claims (33)

  1. 第1バージョンのプロトコルを用いる第1システムと第2バージョンのプロトコルを用いる第2システムとの間の通信を提供するコンピュータシステムのための方法であって、前記第1システムに第1のアプリケーションを供給することと、前記第1バージョン用のソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する翻訳関数コール用のソケットAPIに関数コールを行うことと、パケットを前記プロトコルの第1バージョン用のスタックに渡すことと、を含んでなることを特徴とする方法。
  2. 前記プロトコルの前記第1バージョンがIPv4(インターネットプロトコルのバージョン4)であり、前記プロトコルの前記第2バージョンがIPv6(インターネットプロトコルのバージョン6)であることを特徴とする請求項1に記載の方法。
  3. IPヘッダを供給することをさらに含むことを特徴とする請求項2に記載の方法。
  4. IPヘッダを一回だけ供給することさらに含むことを特徴とする請求項2に記載の方法。
  5. 前記方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータ層を挿入することにより実行することを特徴とする請求項2に記載の方法。
  6. 前記方法は、IPv6スタックを用いることなく実行することを特徴とする請求項2に記載の方法。
  7. 前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴とする請求項4に記載の方法。
  8. 受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを宛先アプリケーションに渡すことと、を含んでなること特徴とする請求項2に記載の方法。
  9. IPv4のルーティングインフラストラクチャによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴とする請求項2に記載の方法。
  10. ネーム−アドレスのリゾルブ関連関数を実行するためにネームリゾルバサービスを用いることをさらに含むことを特徴とする請求項2に記載の方法。
  11. 前記ネームリゾルバサービスは、IPv4スタックとIPv6スタックを含む個別のホスト上で実行されるように構成されていることを特徴とする請求項10に記載の方法。
  12. 前記ネームリゾルバサービスのネーム−アドレスリゾルバ関数がIPv6スタックを使用することを特徴とする請求項11に記載の方法。
  13. 前記ネームリゾルバサービスが、前記第1システムからの問い合わせを受信し、前記アドレスリゾルバ関数を用いてレコードを獲得し、該レコードを前記第1システムに送るように構成されていることを特徴とする請求項12に記載の方法。
  14. 送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行が、パケットを送るためにIPv4ソケットAPIコールを代行受信することと、ローソケットを用いるためにIPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当するIPv4ソケットのAPI関数をコールすることと、前記パケットを前記スタックに渡すことと、を含んでなることを特徴とする請求項2に記載の方法。
  15. IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴とする請求項14に記載の方法。
  16. 前記パケットを断片化することをさらに含むことを特徴とする請求項14に記載の方法。
  17. 前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴とする請求項14に記載の方法。
  18. IPv4(インターネットプロトコルのバージョン4)システムとIPv6(インターネットプロトコルのバージョン6)システムとの間の通信を提供する方法を、IPv4のコンピュータシステムに実装するための実行可能な1組の命令であって、前記方法は、前記IPv4システムにIPv4アプリケーションを供給することと、IPv4ソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する前記翻訳関数コール用の前記IPv4ソケットAPIに他の関数コールを行うことと、パケットをIPv4スタックに渡すことと、を含んでなることを特徴とする実行可能な1組の命令。
  19. 前記方法はIPヘッダを一回だけ供給することさらに含むことを特徴とする請求項18に記載の実行可能な1組の命令。
  20. 前記方法は、ソケットAPI層とTCP/IPv4層との間にAPIレベルトランスレータを挿入することにより実行することを特徴とする請求項18に記載の実行可能な1組の命令。
  21. 前記方法は、IPv6スタックを用いることなく実行することを特徴とする請求項18に記載の実行可能な1組の命令。
  22. 前記方法は、受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを前記IPv4アプリケーションに渡すことと、を含んでなることを特徴とする請求項18に記載の実行可能な1組の命令。
  23. 前記方法は、送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、データを送るためにIPv4ソケットのAPIコールを代行受信することと、ローソケットを用いるためにIPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当するIPv4ソケットAPI関数をコールすることと、前記データを前記IPv4スタックに渡すことと、を含んでなることを特徴とする請求項18に記載の実行可能な1組の命令。
  24. IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴とする請求項23に記載の実行可能な1組の命令。
  25. 前記パケットを断片化することをさらに含むことを特徴とする請求項23に記載の実行可能な1組の命令。
  26. 前記パケットをネットワークカードドライバに渡すことをさらに含むことを特徴とする請求項23に記載の実行可能な1組の命令。
  27. 請求項18乃至26のいずれか1項に記載の実行可能な1組の命令を記憶したコンピュータ読み取り可能な記録媒体。
  28. IPv4(インターネットプロトコルのバージョン4)のアプリケーションが、IPv6(インターネットプロトコルのバージョン6)システムを用いるコンピュータネットワークを介して通信できるようにするシステムであって、当該システムは、コンピュータ装置と、コンピュータ装置で実行可能な命令より成り、該実行可能な命令は、IPv4ソケットアプリケーションプログラミングインターフェース(API)に関数コールを行うことと、該関数コールをローソケットを使用する翻訳関数コールに翻訳することと、ローソケットを使用する前記翻訳関数コール用の前記IPv4ソケットAPIに他の関数コールを行うことと、パケットをIPv4スタックに渡すことと、を含んでなる方法を実行するように構成されていることを特徴とするシステム。
  29. ソケットAPI層とTCP/IPv4層との間にあるAPIレベルトランスレータを有することを特徴とする請求項28に記載のシステム。
  30. 前記方法は、受信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、ローソケット上で到着パケットを受信することと、該到着パケット用の正しい宛先を決定するためにソースホストをチェックすることと、前記到着パケット用のポート番号をチェックすることと、前記到着パケットからトランスポートヘッダ及びIPヘッダを剥ぎ取ることと、ペイロードを前記IPv4アプリケーションに渡すことより成ることを特徴とする請求項28に記載のシステム。
  31. 前記方法は、送信関連IPv4ソケット関数のための代替実行を提供することをさらに含み、該代替実行は、前記パケットを送るためにIPv4ソケットAPIコールを代行受信することと、ローソケットを用いるために前記IPv4ソケットAPIコールを翻訳することと、トランスポートヘッダ及びIPv6ヘッダを供給することと、前記ローソケット用の該当する前記IPv4ソケットAPI関数をコールすることと、前記パケットを前記IPv4スタックに渡すことと、を含んでなることを特徴とする請求項28に記載のシステム。
  32. 前記方法は、IPv4ルーティングインフラストラクチュアによるIPv6パケットのトンネリングを実行することをさらに含むことを特徴とする請求項28に記載のシステム。
  33. 前記方法は、前記パケットを断片化することをさらに含むことを特徴とする請求項28に記載のシステム。
JP2004216825A 2003-08-07 2004-07-26 異なるプロトコルバージョンを持つシステム間の通信を提供する装置と方法 Pending JP2005057752A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/637,408 US7340746B2 (en) 2003-08-07 2003-08-07 Apparatus and methods for providing communication between systems having different protocol versions

Publications (1)

Publication Number Publication Date
JP2005057752A true JP2005057752A (ja) 2005-03-03

Family

ID=33552973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004216825A Pending JP2005057752A (ja) 2003-08-07 2004-07-26 異なるプロトコルバージョンを持つシステム間の通信を提供する装置と方法

Country Status (3)

Country Link
US (1) US7340746B2 (ja)
EP (1) EP1505792A3 (ja)
JP (1) JP2005057752A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008306736A (ja) * 2006-05-23 2008-12-18 Freebit Co Ltd 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870569B (zh) * 2005-05-25 2012-02-08 国际商业机器公司 网络系统及其管理方法、通信终端和报文发送方法
US8412207B2 (en) * 2006-12-21 2013-04-02 Core Wireless Licensing S.A.R.L. Method of providing a mobility service
US8635440B2 (en) * 2007-12-13 2014-01-21 Microsoft Corporation Proxy with layer 3 security
US8739289B2 (en) * 2008-04-04 2014-05-27 Microsoft Corporation Hardware interface for enabling direct access and security assessment sharing
US8909812B2 (en) 2009-06-03 2014-12-09 China Mobile Group Beijing Co., Ltd. Method and device for communication for host device with IPv4 application
CN101909042B (zh) * 2009-06-03 2012-12-26 中国移动通信集团公司 具有IPv4应用的主机通过IPv6网络进行通信的方法和系统
CN101931658B (zh) * 2009-06-26 2013-07-03 中国移动通信集团公司 具有IPv4应用的IPv6主机进行通信的方法与装置
US8484666B2 (en) 2010-09-13 2013-07-09 Microsoft Corporation Optimizations for implementing multi-stack stack hosts
US8521897B2 (en) 2011-03-15 2013-08-27 Microscan Systems, Inc. Generic data exchange method using hierarchical routing
CN102739809B (zh) * 2011-04-07 2015-07-15 中国电信股份有限公司 DNS64数据库、服务器、系统和IPv4/IPv6通信方法
US9479475B1 (en) * 2014-03-17 2016-10-25 Michael E. Mazarick System and method for IPv4 to IPv6 transition rather than an outage
CN117112044B (zh) * 2023-10-23 2024-02-06 腾讯科技(深圳)有限公司 基于网卡的指令处理方法、装置、设备和介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US21703A (en) * 1858-10-05 shaler
US21704A (en) * 1858-10-05 Improvement in wrappers for cigars
US24960A (en) * 1859-08-02 Machinery fob molding candles
US21705A (en) * 1858-10-05 Apparatus fob tanning
US136216A (en) * 1873-02-25 Improvement in sawing-machines
US21706A (en) * 1858-10-05 tatum
US136237A (en) * 1873-02-25 Improvement in car-couplings
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
JP3531367B2 (ja) * 1996-07-04 2004-05-31 株式会社日立製作所 トランスレータ
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6690669B1 (en) 1996-11-01 2004-02-10 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus
EP0840482B1 (en) 1996-11-01 2007-04-25 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus
JPH11136285A (ja) 1997-10-31 1999-05-21 Hitachi Ltd IPv4−IPv6通信方法およびIPv4−IPv6変換装置
US6360265B1 (en) * 1998-07-08 2002-03-19 Lucent Technologies Inc. Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US6675218B1 (en) * 1998-08-14 2004-01-06 3Com Corporation System for user-space network packet modification
JP3017217B1 (ja) 1999-03-02 2000-03-06 中国日本電気ソフトウェア株式会社 IPv4―IPv6変換装置
EP1087575A1 (en) 1999-09-24 2001-03-28 BRITISH TELECOMMUNICATIONS public limited company Packet network interfacing
WO2001022683A2 (en) 1999-09-24 2001-03-29 British Telecommunications Public Limited Company Packet network interfacing
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
JP3635223B2 (ja) 2000-03-29 2005-04-06 松下電器産業株式会社 IPv4−IPv6アドレス置換方法、およびIPv4−IPv6通信方法
WO2002073933A1 (en) 2001-03-08 2002-09-19 British Telecommunications Public Limited Company Address translator
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008306736A (ja) * 2006-05-23 2008-12-18 Freebit Co Ltd 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム

Also Published As

Publication number Publication date
US20050034131A1 (en) 2005-02-10
EP1505792A2 (en) 2005-02-09
US7340746B2 (en) 2008-03-04
EP1505792A3 (en) 2005-08-24

Similar Documents

Publication Publication Date Title
US7245622B2 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
US8526467B2 (en) Facilitating transition of network operations from IP version 4 to IP version 6
US6567405B1 (en) Method and protocol for distributed network address translation
JP5937078B2 (ja) マルチテナントリレーを使用する仮想ネットワークの提供
US8351430B2 (en) Routing using global address pairs
US8458303B2 (en) Utilizing a gateway for the assignment of internet protocol addresses to client devices in a shared subset
EP1820317A1 (en) Tunneling ipv6 packets
US20190281140A1 (en) Client-defined rules in provider network environments
WO2005109785A1 (ja) 情報処理装置、バブルパケット送信方法およびプログラム
JP2005057752A (ja) 異なるプロトコルバージョンを持つシステム間の通信を提供する装置と方法
Babatunde et al. A comparative review of internet protocol version 4 (ipv4) and internet protocol version 6 (ipv6)
Tschudin et al. Network pointers
Albkerat et al. Analysis of IPv6 transition technologies
CN101325580A (zh) 基于nat-pt的ftp应用层网关的实现方法
Chauhan et al. A survey on next generation Internet Protocol: IPv6
US8509235B2 (en) Layer-2 packet return in proxy-router communication protocol environments
CN100539551C (zh) 静态网络地址转换-协议转换的实现方法及网关设备
WO2007000606A1 (en) Routing data in a computing device
Jain et al. Performance Comparison Between Different Tunneling Techniques Using Different Routing Protocols
JP4480605B2 (ja) ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム
Khan et al. Necessity to migrate to IPv6
Raste et al. Design and implementation scheme for deploying IPv4 over IPv6 tunnel
Newmarch et al. Socket-Level Programming
Ali et al. Hybrid approach for migration of IPv6 to IPv4 Network for enhancing security in Virtual Private Cloud.
CN113542108A (zh) 一种基于IPv6的分布式隧道互联网关

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060922