(57)【要約】【課題】  ローカルおよびリモートピアのネットワーク接続ポイントの変更を、ネットワークサービスを使用しているアプリケーションに対して透過的にすること。【解決手段】  各ピアに対してローカルな仮想接続モジュールは、通信接続パラメータを見掛けから実に、また実から見掛けに変換すると共に、安全な接続更新を直接、ピアに送り、かつピアから受け取る。モバイルＩＰとは異なり、ルーティングインフラストラクチャの修正はまったく必要とされない。Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスは、直接ピアツーピア接続更新が可能でない場合、例えば、２つの通信中のピアが同時に移動した場合、または移動中のピアがＮＡＴ後方のピアと通信を行っている場合に、接続更新通知を提供する。このような状態を検出するための方法が、仮想接続プロトコル／仮想接続モジュールアーキテクチャとして開示される。【選択図】  図７
2005039820.tif 000002
【特許請求の範囲】
【請求項１】
ローカル接続変換テーブルを、少なくとも１つの通信接続に参加しているピアに対してローカルに維持することを含む方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記ローカル接続変換テーブルが、
前記少なくとも１つの通信接続の少なくとも１つの元の接続パラメータと、
前記少なくとも１つの通信接続の少なくとも１つの現在の接続パラメータと
を含むことを特徴とするコンピュータ可読媒体。
【請求項２】
前記ローカル接続変換テーブルは、各アクティブ通信接続について、少なくとも１つの元の接続パラメータと少なくとも１つの現在の接続パラメータとをさらに含むことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記各アクティブ通信接続は少なくとも１つのデータストリームを含み、該データストリームの各々は、前記通信接続の少なくとも１つの接続パラメータを含み、また、
前記方法は、
アウトバウンドデータストリームを有する各通信接続について、前記アウトバウンドデータストリームの前記少なくとも１つの接続パラメータを、前記ローカル接続変換テーブルの対応する少なくとも１つの現在の接続パラメータに変換すること、および
インバウンドデータストリームを有する各通信接続について、前記インバウンドデータストリームの前記少なくとも１つの接続パラメータを、前記ローカル接続変換テーブルの対応する少なくとも１つの元の接続パラメータに変換すること
を含むことを特徴とする請求項２に記載のコンピュータ可読媒体。
【請求項４】
前記データストリームの各々は少なくもと１つのインターネットプロトコル（ＩＰ）データグラムを含み、
前記少なくとも１つの現在の接続パラメータは、現在のローカルＩＰアドレスを含み、
前記アウトバウンドデータストリームの前記少なくとも１つの接続パラメータを前記ローカル接続変換テーブルの対応する少なくとも１つの現在の接続パラメータに変換することは、各アウトバウンドＩＰデータグラムのソースアドレスを前記現在のローカルＩＰアドレスと置き換えることを含むことを特徴とする請求項３に記載のコンピュータ可読媒体。
【請求項５】
前記少なくとも１つの現在の接続パラメータは、現在のリモートＩＰアドレスをさらに含み、
前記アウトバウンドデータストリームの前記少なくとも１つの接続パラメータを前記ローカル接続変換テーブルの対応する少なくとも１つの現在の接続パラメータに変換することは、
前記アウトバウンドＩＰデータグラムの各々の宛先アドレスを、対応する前記現在のリモートＩＰアドレスと置き換えることをさらに含むことを特徴とする請求項４に記載のコンピュータ可読媒体。
【請求項６】
前記ローカル接続変換テーブルは、各アクティブ通信接続について、元の接続仕様と現在の接続仕様とをさらに含み、前記接続仕様の各々は、
ローカルネットワーク接続ポイント識別子と、
リモートネットワーク接続ポイント識別子と
を含むことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項７】
前記ネットワーク接続ポイント識別子の各々は、
インターネットプロトコル（ＩＰ）アドレスと、
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ポートと
を含むことを特徴とする請求項６に記載のコンピュータ可読媒体。
【請求項８】
前記ネットワーク接続ポイント識別子の各々は、
インターネットプロトコル（ＩＰ）アドレスと、
ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ポートとを含むことを特徴とする請求項６に記載のコンピュータ可読媒体。
【請求項９】
前記ローカル接続変換テーブルを維持することは、前記ローカルネットワーク接続ポイントの変更の結果、前記ローカル接続変換テーブル中の各エントリについて、前記ローカル接続変換テーブルのエントリの現在の接続仕様のローカルネットワーク接続ポイント識別子を更新することを含むことを特徴とする請求項６に記載のコンピュータ可読媒体。
【請求項１０】
前記方法は、接続更新メッセージを受け取ることをさらに含み、前記接続更新メッセージが、
元の接続識別子と、
新しいネットワーク接続ポイント識別子と
を含むことを特徴とする請求項６に記載のコンピュータ可読媒体。
【請求項１１】
前記ローカル接続変換テーブルを維持することは、前記接続更新メッセージを受け取った結果、前記接続更新メッセージの元の接続識別子によって識別される、前記ローカル接続変換テーブルのエントリの現在の接続仕様のリモートネットワーク接続ポイント識別子を更新することを含むことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
ローカルピアがそのネットワーク接続ポイントを第１のネットワーク接続ポイントから第２のネットワーク接続ポイントへ変更した結果、前記ローカルピアとの通信接続に参加している各リモートピアに接続更新メッセージを送ることを含む方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記接続更新メッセージが、
通信接続識別子と、
前記第２のネットワーク接続ポイントの識別子と
を含むことを特徴とするコンピュータ可読媒体。
【請求項１３】
前記接続更新メッセージは、前記ローカルピアの識別を認証する暗号化署名を含むことを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記方法は、前記ローカルネットワーク接続ポイントの変更イベントを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに発行することをさらに含むことを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
前記ローカルネットワーク接続ポイントの変更イベントを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに発行することは、発行メッセージを、前記ローカルピアから前記仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに送ることを含み、前記発行メッセージは、
前記第１のネットワーク接続ポイントの識別子と、
前記第２のネットワーク接続ポイントの識別子と
を含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記接続更新メッセージは、下位層ネットワークプロトコル中に組み込まれることによってピア間で送られることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１７】
前記下位層ネットワークプロトコルはインターネットプロトコル（ＩＰ）であり、
前記接続更新メッセージは、少なくとも１つのＩＰオプションとして前記インターネットプロトコル中に組み込まれることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記下位層ネットワークプロトコルはＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）であり、
前記接続更新メッセージは、少なくとも１つのＴＣＰオプションとしてＴＣＰプロトコル中に組み込まれることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
前記下位層ネットワークプロトコルはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）であり、
前記接続更新メッセージは、少なくとも、ＴＣＰオプションに関してフォーマットされているＵＤＰデータグラムに前記接続更新メッセージデータを付加することによって、前記ＵＤＰプロトコル中に組み込まれることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
少なくともローカル接続変換テーブルを維持するよう構成されているローカル接続変換コンポーネントを含むコンピュータ化システムであって、前記ローカル接続変換テーブルが、前記ローカル接続変換コンポーネントに対してローカルな通信ピアと、前記ローカル接続変換コンポーネントに対してリモートな通信ピアとの間の各アクティブ通信接続についてローカル接続変換テーブルエントリを含み、各ローカル接続変換テーブルエントリが、
元の接続仕様と、
現在の接続仕様と
を含むことを特徴とするコンピュータ化システム。
【請求項２１】
前記接続仕様の各々は、
前記ローカル接続変換コンポーネントに対してローカルな通信ピアのネットワーク接続ポイントの識別子と、
前記ローカル接続変換コンポーネントに対してリモートな通信ピアのネットワーク接続ポイントの識別子と
を含むことを特徴とする請求項２０に記載のコンピュータ化システム。
【請求項２２】
前記ローカル接続変換コンポーネントは、少なくとも、
前記ローカル接続変換コンポーネントに対してローカルな通信ピアから出発する各ネットワークプロトコル単位をインターセプトし、
前記出発プロトコル単位に関連付けられたローカル接続変換テーブルエントリを判断し、
前記出発プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの元の接続仕様の少なくとも１つのパラメータに対応する、前記出発プロトコル単位中の少なくとも１つのデータフィールド値を、前記出発プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの現在の接続仕様の、対応する少なくとも１つのパラメータの少なくとも１つの値と置き換えるようさらに構成されていることを特徴とする請求項２０に記載のコンピュータ化システム。
【請求項２３】
前記ローカル接続変換コンポーネントは、少なくとも、
前記ローカル接続変換コンポーネントに対してローカルな通信ピアに到着する各ネットワークプロトコル単位をインターセプトし、
前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリを判断し、
前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの現在の接続仕様の少なくとも１つのパラメータに対応する、前記到着プロトコル単位中の少なくとも１つのデータフィールド値を、前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの元の接続仕様の、対応する少なくとも１つのパラメータの少なくとも１つの値と置き換えるようさらに構成されていることを特徴とする請求項２０に記載のコンピュータ化システム。
【請求項２４】
少なくとも、接続更新メッセージを受け取るよう構成されている接続管理コンポーネントをさらに含み、前記接続更新メッセージが、
ローカル接続変換テーブルエントリの元の接続仕様に対応する識別子と、
前記ローカル接続変換コンポーネントに対してリモートな通信ピアの新しいネットワーク接続ポイントの識別子と
を含むことを特徴とする請求項２０に記載のコンピュータ化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータネットワークに関し、より詳細には、ネットワーク化されたコンピュータがそのネットワーク接続ポイントを変更することが可能なコンピュータネットワークに関する。
【背景技術】
【０００２】
今日の大規模なコンピュータネットワークは、一般に、ネットワークユーザ、特にモバイルネットワークユーザに対して、複数地点でネットワークに接続する機会を提供している。ネットワーク接続ポイントが異なると、例えば、異なるコストでサービス品質が異なり、かつ／または異なる組織によって維持されている可能性があるため、ネットワークユーザは、ネットワーク接続ポイントを変更しようという気になる可能性がある。例えば、コストを最小限に抑え、かつ／またはサービスの質を最大限にするために、ネットワーク接続ポイントを自動的に変更するようコンピュータを構成することもできる。
【０００３】
コンピュータネットワークサービスを利用するアプリケーションにとっては、そのコンピュータネットワークサービスがそのアプリケーションにとってできるだけ透過的であることが望ましい。すなわち、アプリケーションは、特に下位層ネットワークプロトコルの変更に関して、認識している必要があるコンピュータネットワークサービスの実装の詳細ができるだけ少ないことが望ましい。ベースプロトコル中に適切な機能を組み込んでいないコンピュータネットワークの場合、ネットワーク接続ポイントの変更をアプリケーションに対して透過的にするためには追加メカニズムが必要なことがある。例えば、コンピュータが、インターネットへの接続ポイントを変更すると、新しいネットワーク接続ポイントは、一般に、新しいインターネットプロトコル（ＩＰ）アドレスに関連付けられる。例えば、基準となるＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ４）またはＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ６）のもとでは、ネットワーク接続ポイントの変更の前にアクティブ接続を確立しているコンピュータ上のアプリケーションは、変更に続いてそれらの接続を再構築するための用意が必要な場合がある。
【０００４】
この説明の目的で、アプリケーションに対してネットワーク接続ポイントの変更を透過的にするための従来の試みを、インフラストラクチャ解決策およびエンドツーエンド解決策として分類することができる。インフラストラクチャ解決策は、一般に、さらなるネットワーク構成要素および／またはネットワークルーティングシステムの修正を必要とする。例えば、Ｍｏｂｉｌｅ  ＩＰ  ｆｏｒ  ＩＰｖ４およびＭｏｂｉｌｅ  ＩＰ  ｆｏｒ  ＩＰｖ６は、追加のホームエージェントネットワーク構成要素を必要とする、ルーティングベースのインフラストラクチャ解決策である。一方、エンドツーエンド解決策は、ネットワークルーティングとは関係なく、通信エンドポイントにおいてネットワーク接続ポイントの変更を管理する。例えば、エンドツーエンド解決策の例が、非特許文献１に記載されている。エンドツーエンド解決策の利点は、既存のネットワークインフラストラクチャに修正を加えることなく、透過的なネットワーク接続ポイントの変更が可能になることである。
【０００５】
【非特許文献１】Snoeren et al, An End-to-End Approach to Host Mobility, 6th ACM/IEEE International Conference on Mobile Computing and Networking, August 2000
【非特許文献２】Zimmerman, OSI Reference Model - The ISO Model of Architecture for Open System Interconnection, IEEE Transactions on Communications, April 1980
【非特許文献３】Egevang et al., The IP Network Address Translator (NAT), RFC 1631, Internet Engineering Task Force, May 1994
【非特許文献４】Postel, J., Internet Protocol, RFC 791, Information Sciences Institute at the University of Southern California, September 1981
【非特許文献５】Postel, J., Transmission Control Protocol, RFC 793, Information Sciences Institute at the University of Southern California, September 1981
【非特許文献６】Postel, J., User Datagram Protocol, RFC 768, Information Sciences Institute at the University of Southern California, August 1980
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の解決策には欠点がある。例えば、Ｍｏｂｉｌｅ  ＩＰ  ｆｏｒ  ＩＰｖ４およびＭｏｂｉｌｅ  ＩＰ  ｆｏｒ  ＩＰｖ６には、ルーティングを非能率的にし、ネットワークセキュリティモデルに違反する可能性がある、間接ルーティングが含まれる。従来のエンドツーエンド解決策は、通信接続に参加している各コンピュータがそのネットワーク接続ポイントを同時に変更するといったケースを処理することができず、あるいは、そのようなケースを一貫しない状態で処理する。コンピュータネットワークにおけるＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）の使用は、従来の解決策によっては非効率的におよび／または矛盾して扱われる場合がある、最新のコンピュータネットワークの別の態様である。
【０００７】
従来の解決策によっては、バージョンが異なるネットワークプロトコルを異なって扱うものがあり、これによって透過性が損われる場合がある。コンピュータネットワークによっては、階層化プロトコルに対するサポートを提供するものがあり、例えば、インターネットプロトコルは、通常、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）およびＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）と関連して使用される。従来の解決策の中には、上位プロトコル層の態様を、非効率的に、または矛盾した状態でしかサポートしないものがあり、例えば、ある解決策は、ＩＰより上位層のＴＣＰをサポートするが、ＩＰより上位層のＵＤＰと適切に連動することができない。階層化プロトコルの異なる局面が異なって扱われることをアプリケーションが認識する必要がないならば、透過性を向上させることができる。
【課題を解決するための手段】
【０００８】
この節には、本発明のいくつかの実施形態の簡単な概要を記載する。この概要は、本発明の広範囲にわたる全体像ではない。この概要は、本発明の主要／重要な構成要素を識別することを意図したものではなく、また、本発明の範囲を説明することを意図したものでもない。この概要の目的は、後に記載するより詳細な説明の前置きとして、簡単な形で本発明のいくつかの実施形態を提示することだけである。
【０００９】
本発明の一実施形態では、ローカル接続変換テーブルが、少なくとも１つの通信接続に参加しているピアに対してローカルに維持される。ローカル接続変換テーブルは、そのピアが参加している通信接続の、１つまたは複数の元の接続パラメータ、ならびにその通信接続の１つまたは複数の現在の（おそらくは異なる）接続パラメータを含む。
【００１０】
本発明の一実施形態では、ピアは、そのネットワーク接続ポイントを変更することができる。変更の結果、ピアは、それがアクティブ通信接続を確立している各ピアに対して、接続更新メッセージを送る。接続更新メッセージは、通信接続識別子、およびそのピアが移動した先のネットワーク接続ポイントの識別子を含む。
【００１１】
本発明の一実施形態では、ローカル接続変換コンポーネントが、ローカル接続変換テーブルを維持するよう構成される。ローカル接続変換テーブルは、ローカル接続変換コンポーネントに対してローカルな通信ピアと、リモートピアとの間の各アクティブ通信接続についてエントリを有する。各ローカル接続変換テーブルエントリは、元の接続仕様および現在の接続仕様を含む。
【００１２】
添付の特許請求の範囲は、本発明の特徴について詳細に記載しているが、本発明およびその利点は、添付の図面を参照しながら以下の詳細な説明を読むことにより、最もよく理解できる。
【発明を実施するための最良の形態】
【００１３】
本発明の様々な実施形態の説明を始める前に、本発明の様々な実施形態を実施することができるコンピュータおよびネットワーク環境について説明する。特に要求されるわけではないが、本発明を、コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明する。一般に、プログラムは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、オブジェクト、コンポーネント、データ構造などを含む。本明細書で使用している「プログラム」という用語は、単一のプログラムモジュールまたは協働する複数のプログラムモジュールを意味することがある。本明細書で使用している「コンピュータ」および「コンピュータデバイス」という用語には、パーソナルコンピュータ（ＰＣ）、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのプログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、タブレットＰＣ、ラップトップコンピュータ、マイクロプロセッサまたはマイクロコントローラを備えた消費者家電、ルータ、ゲートウェイ、ハブなど、１つまたは複数のプログラムを電子的に実行するどのデバイスも含まれる。本発明はまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境においても利用することができる。分散コンピューティング環境では、プログラムをローカルおよびリモートのメモリ記憶装置の両方に置くことができる。
【００１４】
本発明の態様を組み込むのに適したコンピュータネットワーク環境の例を、図１を参照しながら説明する。この例示的コンピュータネットワーク環境は、雲によって表してあるネットワーク１０４を介して、互いに通信を行っているいくつかのコンピュータ１０２を含む。ネットワーク１０４は、ルータ、ゲートウェイ、ハブなど、多くの周知のコンポーネントを含むことができ、また、コンピュータ１０２が有線および／または無線媒体を介して通信できるようにする。ネットワーク１０４を介して互いに対話する際、コンピュータ１０２の１つまたは複数は、その他のコンピュータ１０２に対して、クライアント、サーバ、またはピアとして動作することができる。したがって、本発明の様々な実施形態を、クライアント、サーバ、ピア、またはそれらの組合せの上で実施することができる。ただし、本明細書に含まれている具体例では、それらのコンピュータのタイプすべてについて述べていない場合もある。
【００１５】
図２を参照すると、本明細書に記載の本発明の態様を実装することができる、コンピュータ１０２の基本構成の例を示してある。コンピュータ１０２は、その最も基本的な構成において、一般に、少なくとも処理装置２０２およびメモリ２０４を含む。処理装置２０２は、本発明の様々な実施形態に従ってタスクを実行するための命令を実行する。このようなタスクを実行する際、処理装置２０２は、コンピュータ１０２のその他の部分およびコンピュータ１０２の外部のデバイスに対して電子信号を送って何らかの結果を生じさせることができる。コンピュータ１０２の正確な構成およびタイプに応じて、メモリ２０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭまたはフラッシュメモリなど）、またはそれら２つの組合せの場合がある。この最も基本的な構成を、図２では破線２０６で示してある。
【００１６】
コンピュータ１０２はまた、追加の特徴／機能を備えることもできる。例えば、コンピュータ１０２は、追加ストレージ（取外し可能２０８および／または取外し不可能２１０）を含むことができ、これには磁気または光ディスクまたはテープが含まれるが、それらに限定されるわけではない。コンピュータ記憶媒体には、コンピュータ実行可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための、いずれかの方法または技術で実装された、揮発性および不揮発性の取外し可能および取外し不可能媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気記憶装置、あるいは、所望の情報を記憶するために使用でき、コンピュータ１０２がアクセスできる任意のその他の媒体が含まれるが、それらに限定されるわけではない。このようなコンピュータ記憶媒体はどれも、コンピュータ１０２の一部になり得る。
【００１７】
コンピュータ１０２は、好ましくは、デバイスが、リモートコンピュータ２１４などのその他のデバイスと通信できるようにする、通信接続２１２も含む。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポートメカニズムなどの変調データ信号に実施し、また、いずれかの情報配信媒体を含む。例として、「通信媒体」という用語には、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体が含まれるが、それらに限定されるわけではない。本明細書で使用している「コンピュータ可読媒体」という用語には、コンピュータ記憶媒体および通信媒体の両方が含まれる。
【００１８】
コンピュータ１０２はまた、キーボード／キーパッド、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス２１６も含むことができる。ディスプレイ、スピーカ、プリンタなどの出力デバイス２１８も含むことができる。これらのデバイスはすべて、当技術分野では周知のものであり、ここで詳細に説明する必要はない。
【００１９】
以下の説明においては、別途記載がない限り、本発明を、１つまたは複数のコンピューティングデバイスによって実施される動作、およびオペレーションの記号表現を参照しながら説明する。したがって、時にはコンピュータによって実行されていると記載することもあるこのような動作およびオペレーションには、コンピュータの処理装置による、構造化された形態のデータを表す電気信号の操作が含まれることを理解されよう。この操作によって、データが変換され、またはコンピュータのメモリシステム中のロケーションでそのデータが維持され、それによって、当業者がよく理解しているやり方でコンピュータのオペレーションが再構築または変更される。データが維持されるデータ構造は、そのデータのフォーマットによって定義される特定のプロパティを有する、メモリの物理ロケーションである。しかし、本発明を上記の状況において説明しているが、当業者であれば、以下に記載の様々な動作およびオペレーションをハードウェアに実装できることを理解されるように、その状況に限定されるわけではない。
【００２０】
本発明の一実施形態では、コンピュータネットワークにおいて通信接続を確立し、維持するためのプロトコルを、例えば、国際標準化機構（ＩＳＯ）の開放型システム間相互接続（ＯＳＩ）モデルに記載されている層に対応する、複数のプロトコル層によって実装することができる。ＯＳＩモデルの詳細については、例えば非特許文献２を参照されたい。本発明の一実施形態では、仮想接続（ＶＣ）層がプロトコルに追加され、または既存のプロトコル層中に組み込まれる。以下に、インターネットプロトコル（ＩＰ）およびＩＰベースのプロトコルを参照しながら、いくつかの例を説明する。しかし、本発明の実施形態はそれらに限定されるわけではなく、それらの例は、国を超えたルーティングを行うどのネットワークプロトコルにも汎用化できるものである。
【００２１】
図３は、既存のネットワーク層に仮想接続層を追加するための例示的スキームを示す。仮想接続層３０２は、１つまたは複数の下位ネットワーク層３０４と１つまたは複数の上位ネットワーク層３０６の間に常駐する。下位ネットワーク層３０４の例には、物理媒体における信号のフォーマッティングを決定する物理層、および複数のコンピュータ（例えば、図１のコンピュータ１０２）による共用物理通信媒体へのアクセスを制御する媒体アクセス制御（ＭＡＣ）層が含まれる。上位ネットワーク層３０６の例には、ユーザベースの認証依存ポリシー（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｄｅｐｅｎｄｅｎｔ  ｐｏｌｉｃｙ）を実施するセッション層、およびデータを共通のネットワーク伝送フォーマットから特定のアプリケーションフォーマットに変換するプレゼンテーション層が含まれる。
【００２２】
アプリケーション層３０８は、上位ネットワーク層３０６と相互作用することにより、ネットワークサービスを利用する。上位ネットワーク層３０６は仮想接続層３０２と相互作用し、仮想接続層３０２は下位ネットワーク層３０４と相互作用する。下位ネットワーク層３０４の少なくとも１つは、物理伝送媒体と相互作用する。本発明の一実施形態では、仮想接続層３０２は、ある接続への参加者がそのネットワーク接続ポイントを変更した場合でも、その接続の元の識別情報によってアプリケーション層３０８がその接続を参照できるようにすることにより、通信接続（例えば、図２の通信接続２１２）を仮想化する。
【００２３】
図４および図５は、本発明の実施形態に従って、追加仮想接続層を階層化ＴＣＰ／ＩＰ実装に組み込む２つの例を示す。図４では、下位ネットワーク層は、ネットワークハードウェア４０４にインターフェースを提供するデバイスドライバ４０２、および上位ネットワーク層とは独立したインターネットプロトコル機能を実装するＩＰ層４０６を含む。上位ネットワーク層は、ＴＣＰ／ＩＰの伝送制御態様を実装するＴＣＰ層４０８、および、アプリケーション４１２がコンピュータネットワークサービスにアクセスするために利用する、ネットワークソケットアプリケーションプログラミングインターフェース（ＡＰＩ）４１０を含む。図４では、仮想接続層４１４がＴＣＰ層４０８とＩＰ層４０６の間に配置されており、それによって、発信データ（すなわち、送信されるデータ）を、ＩＰ層４０６がそれを見る前にインターセプトすることができ、また、着信データ（すなわち受信されたデータ）を、ＩＰ層４０６がインターネットプロトコル機能に関してそのデータを処理し終わった後にインターセプトすることができる。
【００２４】
いくつかの従来のＴＣＰ／ＩＰ実装においては、例えば、パフォーマンスを向上させるために、ＩＰ層およびＴＣＰ層が単一のデータ処理モジュールとして実装される。このような場合、例えば、既存の実装に対する修正を最小限に抑えるために、図５に示す別のロケーションに仮想接続層５０２を追加すると有利な場合がある。既存の実装に対する修正を最小限に抑えることによって、新しいモジュールによってもたらされるエラーの数を低減することができ、したがって、システムの後修正がより安定して行われる。図５では、仮想接続層５０２が統合されたＴＣＰ／ＩＰ層５０４とデバイスドライバ４０２（すなわち、図４のデバイスドライバ４０２と同じデバイスドライバ）の間に配置されている。発信データは、ＴＣＰ／ＩＰ層５０４によって処理された後、仮想接続層５０２によってインターセプトされる。着信データは、ＴＣＰ／ＩＰ層５０４に渡される前に、仮想接続層５０２によってインターセプトされる。
【００２５】
図６は、本発明の一実施形態に従って仮想接続層サービスを実装するのに適した、例示的仮想接続モジュールを示す。仮想接続モジュール６００は、ローカル接続変換テーブル６０４中の情報に基づいて通信接続を変換するよう構成された、ローカル接続変換（ＬＣＴ）コンポーネント６０２を含む。接続管理コンポーネント６０６は、ローカル接続変換テーブル６０４中のエントリを、リモートピア（すなわち、図２のリモートコンピュータ２１４）における対応エントリと同期させるよう構成されている。ピアネゴシエーションコンポーネント６０８は、複数ピアと仮想接続プリファランス（ｐｒｅｆｅｒｅｎｃｅ）を交換し、また、ピアが送った仮想接続プロトコルメッセージを認証するための基礎をネゴシエートする。
【００２６】
仮想接続モジュール６００は、リモート仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス（図６には示していないが、図１０を参照しながら以下に説明する）へのローカルプロキシとしての役割を果たす、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス（ＶＣ  ＳＮＳ）プロキシコンポーネント６１０を含む。ローカルコンポーネント６１０が利用する特定のリモート仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスを、例えば、動的ホスト構成プロトコル（ＤＨＣＰ）を介して構成することができる。図６に示す例では、ＶＣ  ＳＮＳプロキシ６１０はユーザモードで実行されるが、一方、仮想接続モジュール６００の残りのコンポーネントはカーネルモードで実行される。破線６１２は、実行している仮想接続モジュール６００における、カーネルモードとユーザモードの境界を示す。コンピュータのオペレーティングシステムという状況でのカーネルモードとユーザモードの使用については、当技術分野ではよく知られており、ここで詳説する必要はない。
【００２７】
ローカル接続変換テーブル６０４は、ピア間の各アクティブ通信接続についてのエントリを含む。本発明の一実施形態では、エントリは、通信接続が確立されたときに追加され、通信接続が終了したときに削除される。ローカル接続変換テーブル６０４中の各エントリは、元の接続仕様を現在の接続仕様に関連付ける。接続仕様は、１つまたは複数の通信接続パラメータを含み、特定のネットワークプロトコル層または１組のネットワークプロトコル層の通信接続を一意に識別することができる。本発明の一実施形態では、元の接続仕様と現在の接続仕様それぞれの間に１対１の関係がある。
【００２８】
接続仕様は、例えば、その接続に参加している各ピアのネットワーク接続ポイント識別子（ネットワークアドレス）、ＩＰネットワークにおけるＩＰアドレス、ＴＣＰ／ＩＰネットワークにおけるＩＰアドレスおよびＴＣＰポート、またはＵＤＰ／ＩＰネットワークにおけるＩＰアドレスおよびＵＤＰポートを含むことができる。本発明の一実施形態では、アクティブ通信接続に参加しているピアがどれもそのネットワーク接続ポイントを変更しなかった場合、対応するエントリの現在の接続仕様は、元の接続仕様と同じである。しかし、ピアのうち１つまたは複数が移動した場合（すなわち、そのネットワーク接続ポイントを変更した場合）には、現在の接続仕様が更新される。本発明の一実施形態では、通信接続の寿命の間、元の接続仕様が変更されることはない。
【００２９】
次の表は、ＴＣＰおよびＵＤＰなどの上位層プロトコルをサポートするＩＰベースのコンピュータネットワークの接続仕様の例である。
【００３０】
【表１】
2005039820.tif 000003
【００３１】
この表には、ローカルピアのＩＰネットワーク接続ポイントを識別するローカルＩＰアドレス、および、そのローカルピアにおける上位層プロトコルポートを識別するローカルポート番号が含まれている。ローカルピアは、複数の通信接続に参加することができる。各通信接続は、ポート番号に関連付けることができる。同様に、この表には、さらにリモートＩＰアドレスおよびリモートポート番号が含まれている。上位層プロトコル型は、ＩＰネットワークによって経路指定される、ある型の上位層プロトコル、例えば、ＴＣＰまたはＵＤＰを表す。本発明の一実施形態では、ローカルおよびリモートＩＰアドレス、上位層プロトコル型、およびローカルおよびリモートポート番号の組合せによって、通信接続が指定される。
【００３２】
仮想接続モジュール６００は、発信データストリーム中の各発信ネットワークプロトコル単位（例えば、ＩＰデータグラム）、および着信データストリーム中の各着信ネットワークプロトコル単位をインターセプトすることができる。本発明の一実施形態では、仮想接続モジュール６００によってインターセプトされた各発信ネットワークプロトコル単位について、ローカル接続変換コンポーネント６０２が、その発信ネットワークプロトコル単位に関連付けられた接続仕様を、元の接続仕様から現在の接続仕様に変換する。さらに、仮想接続モジュール６００によってインターセプトされた各着信ネットワークプロトコル単位について、ローカル接続変換コンポーネント６０２が、その着信ネットワークプロトコル単位に関連付けられた接続仕様を、現在の接続仕様から元の接続仕様に変換する。図７に、ＩＰベースのネットワークのための例示的変換オペレーションを示す。
【００３３】
図７で、ローカル接続変換テーブル６０４は、現在の接続仕様７０４に関連付けられた元の接続仕様７０２を含む。元の接続仕様の１つ、ＩＰ１：ＩＰ２は、ローカルＩＰアドレスＩＰ１およびリモートＩＰアドレスＩＰ２を含む。すなわち、アクティブ接続が最初に確立されたときに、ローカルコンピュータがアドレスＩＰ１でそのＩＰネットワークに接続され、リモートコンピュータがアドレスＩＰ２でＩＰネットワークに接続された。リモートコンピュータは、接続の寿命の間のいずれか時点で、そのＩＰネットワーク接続ポイントをアドレスＩＰ３に変更しており、その結果、現在の接続使用ＩＰ１：ＩＰ３が元の接続使用ＩＰ１：ＩＰ２とは異なる。現在の接続仕様ＩＰ１：ＩＰ３は、同じローカルＩＰアドレスＩＰ１を備えているが、リモートＩＰアドレスＩＰ３は、元のリモートＩＰアドレスＩＰ２から変わっている。リモートポート番号も同様に変化する場合があるが、ただしこの詳細は図７には示していない。
【００３４】
発信プロトコル単位７０６は、仮想接続モジュール６００（図６）によってインターセプトされ、変換のためにローカル接続変換コンポーネント６０２に提出される。各プロトコル単位７０６、７０８、７１０、７１２は、ＩＰデータグラム、ＴＣＰデータグラム、ＵＤＰデータグラムなどである。各プロトコル単位７０６、７０８、７１０、７１２は、発信元（Ｆｒｏｍ）ＩＰアドレスおよび宛先（Ｔｏ）ＩＰアドレスに関連付けられている。ＩＰアドレスは、例えばＩＰデータグラムの場合にはプロトコル単位中に組み込まれている場合があり、あるいは、プロトコル単位のコンテキスト、例えば、下位プロトコル層から構文解析された、またはデータストリーム中の前のプロトコル単位から構文解析された、または上位プロトコル層によって明白に指定された文脈データの一部、またはオペレーティングシステム環境の一部の場合がある。
【００３５】
ローカル接続変換コンポーネント６０２は、発信プロトコル単位７０６の接続仕様を判断する。発信プロトコル単位７０６の場合、これは元の接続仕様ＩＰ１：ＩＰ２に対応する。ローカル接続変換コンポーネント６０２は、次いで、ローカル接続変換テーブル６０４のルックアップを行い（周知の技術を利用して）、対応する現在の接続仕様、この場合は現在の接続仕様ＩＰ１：ＩＰ３を見つける。ローカル接続変換コンポーネント６０２は、（場合によって、そのプロトコル単位中の、またはそのプロトコル単位のコンテキスト中の）発信プロトコル単位７０６のＩＰアドレスおよび他のどの接続仕様関連のものも、現在の接続仕様ＩＰ１：ＩＰ３のデータと置き換え、その結果、変換された発信プロトコル単位７０８が得られる。
【００３６】
同様に、着信プロトコル単位７１０も、仮想接続モジュールによってインターセプトされ、変換のためにローカル接続変換コンポーネント６０２に提出される。ローカル接続変換モジュールは、着信プロトコル単位７１０が現在の接続仕様ＩＰ１：ＩＰ３に関連付けられていると判断し、ローカル接続変換テーブル６０４のルックアップを行って、対応する元の接続仕様ＩＰ１：ＩＰ２を見つける。次いで、発信プロトコル単位７１０の接続仕様関連のものを置き換えて、変換された着信プロトコル単位７１２を提供する。着信プロトコル単位７１２は、次いで、より上位のプロトコル層に渡される。本発明の一実施形態では、上位プロトコル層、特にアプリケーション層は、元の接続仕様に対応する接続仕様情報を参照し、一方、下位プロトコル層は、現在の接続仕様に対応する接続仕様情報を参照する。
【００３７】
図６に戻ると、本発明の一実施形態では、ローカルピア（すなわち、ローカル接続変換テーブル６０４が常駐しているピア）が移動したことを理由に、あるいはリモートピアが移動したことを理由に、現在の接続仕様を更新することができる。本発明の一実施形態では、接続に参加している各ピアがそれ自身の仮想接続モジュール６００を備えており、したがって、それ自身のローカル接続変換（ＬＣＴ）テーブル６０４を備えている。本発明の一実施形態では、接続に参加しているピアの１つが移動した場合に、参加している各ピアにおいて、対応する現在の接続仕様が更新される。仮想接続モジュール６００は、ネットワーク接続ポイントにおけるローカルな変更を検出することができる場合があり、あるいは、別のローカルモジュール、例えば、その変更を開始したローカルモジュールによって、そのローカルな変更を知らされることが可能である。ローカルに検出された変更によって、まず、ローカル接続変換（ＬＣＴ）テーブル６０４の更新が行われる。次の表は、ＩＰベースのネットワークの場合の、ローカル接続変換（ＬＣＴ）テーブルの一部の更新例を示す。
【００３８】
【表２】
2005039820.tif 000004
【００３９】
表に示してある更新例では、ＩＰアドレスＩＰ２を有するローカルピアとＩＰアドレスＩＰ１を有するリモートピアとの間にアクティブＴＣＰ／ＩＰ接続が存在する。この例では、接続仕様は、ローカルピアのＩＰアドレスとポート番号（もともとはＩＰ２とポート２）、リモートピアのＩＰアドレスとポート番号（すなわち、ＩＰ１とポート１）、および上位層プロトコル型（すなわちＴＣＰ）を含む５個組（５−ｔｕｐｌｅ）である。ローカルピアは、そのＩＰアドレスとポート番号とがＩＰ３とポート３とになるよう、そのＩＰネットワーク接続ポイントを変更する。変更前、元の接続仕様と現在の接続仕様は同じであり、すなわち５個組（ＩＰ２、ポート２、ＩＰ１、ポート１、ＴＣＰ）である。変更後、元の接続仕様とは同じであるが、現在の接続仕様は新しいＩＰネットワーク接続ポイントで更新され、すなわち、５個組（ＩＰ３、ポート３、ＩＰ１、ポート１、ＴＣＰ）になる。
【００４０】
本発明の一実施形態では、リモートピア（複数リモートピア）においローカル接続テーブル６０４を更新するために、ローカル接続管理コンポーネント６０６にローカルネットワーク接続ポイントの変更が知らされる。ローカル接続管理コンポーネント６０６は、リモート接続管理コンポーネント（複数リモート接続管理コンポーネント）に、少なくとも３つの仮想接続メッセージ、すなわち、接続更新（ＣＵ）、接続更新応答（ＣＵＡ）、および接続更新要求（ＣＵＲ）を伝達することができる。
【００４１】
接続更新メッセージは、変更が生じたピアから通信接続に参加しているリモートピアに対して、変更接続仕様情報を運ぶことができる。本発明の一実施形態では、ピアは、そのネットワーク接続ポイントを変更すると、それがアクティブ通信接続を確立しているピアのそれぞれに対して接続更新メッセージを送る。接続更新応答メッセージは、接続更新メッセージを受信したことを認めるために、接続更新メッセージへの返信として送信される。接続更新応答メッセージは、接続更新メッセージと同じ情報を含む場合がある。接続更新要求メッセージは、例えば、ピアが、受信側ピアがネットワーク接続ポイントを変更したと通知されたが、受信側ピアが接続更新メッセージをそのピアに送らなかった場合に、そのピアが、接続更新メッセージを受信側ピアに要求するために送ることができる。
【００４２】
図８は、仮想接続モジュールを備えた通信中のピア同士が、一方のピアがそのＩＰネットワーク接続ポイントを変更した場合に、ＩＰベースの通信接続を維持するための仮想接続メッセージを交換する例を示している。図８において、ピアＡ８０２は、ＩＰネットワークを介してピアＢ８０４とアクティブ通信接続を確立している。ピアＡ８０２は、ＩＰアドレスＩＰ１でＩＰネットワークに接続しており、ピアＢ８０４は、もともとＩＰアドレスＩＰ２でＩＰネットワークに接続している。この接続の寿命の間に、ピアＢ８０４は、そのＩＰネットワーク接続ポイントをＩＰアドレスＩＰ３に変更する。この変更を、ピアＢ８０４がピアＢ８０６に移動（破線矢印で示す）したとして、図８に図式的に示してある。
【００４３】
移動の後、ピアＢ８０６は、上述のようにそのローカル接続変換（ＬＣＴ）テーブルを更新し、次いで、ピアＡ８０２に接続更新メッセージ８０８を送る。この移動の後、ピアＡ８０２は、接続更新メッセージ８０８を受け取るまでの間、ピアＢ８０６の新しいＩＰネットワーク接続ポイントを知らないためにピアＢ８０６と通信することができない場合がある。接続更新メッセージ８０８は、ピアＢ８０６の新しいネットワーク接続ポイントを識別する情報、例えば、新しいＩＰアドレスＩＰ３と新しいポート番号ポート３を含む。さらに、接続更新メッセージ８０８は、元の接続に関する情報、例えば、元のＩＰアドレスＩＰ２とポート番号、ポート２などの元の接続識別子、元の接続仕様、または元の接続に対応する接続トークンを含む。適切な接続トークンは、例えば、元の接続仕様の暗号化ハッシュ、または通信中のピアの一方が維持している接続カウントなどの場合がある。
【００４４】
ピアＡ８０２の仮想接続モジュールが接続更新メッセージ８０８を受け取ると、接続更新メッセージ８０８は、接続管理コンポーネント（例えば、図６の接続管理コンポーネント６０６）によって構文解析され、対応する元の接続仕様が判断される。例えば、接続更新メッセージ８０８は、元の接続仕様を含むことができ、または、元の接続仕様をローカル（ピアＡ８０２にとって）コンテキストと組み合わせて再構築するのに十分な情報を含むことができる。あるいは、接続更新メッセージ８０８が元の接続トークンを含む場合には、接続トークンを接続仕様と関連付けるテーブル（または同様のデータ構造）のルックアップを行うことによって、元の接続仕様を判断することができる。元の接続仕様が入手できると、ローカル接続変換テーブル（例えば、図６のローカル接続変換テーブル６０４）中の対応する現在の接続仕様を更新することができる。次の表は、ピアＡ８０２における更新の態様を示す。
【００４５】
【表３】
2005039820.tif 000005
【００４６】
ピアＢ８０４の移動前、元の接続仕様と現在の接続仕様は共に同じ５個組、すなわち、ピアＡ８０２のＩＰアドレスとポート番号（すなわちＩＰ１とボート１）、ピアＢ８０４のＩＰアドレスとポート番号（すなわちＩＰ２とボート２）、および上位層プロトコル型、この場合ＴＣＰである。ピアＢ８０４の移動後、現在の接続仕様はピアＢの新しいネットワーク接続ポイントで更新され（すなわち、ＩＰ２とポート２がＩＰ３とポート３になる）、現在の接続仕様の５個組は（ＩＰ１、ポート１、ＩＰ３、ポート３、ＴＣＰ）になる。元の接続仕様は、この移動による影響を受けない。
【００４７】
ピアＡ８０２は、接続更新メッセージ８０８に応答して、接続更新応答メッセージ８１０をピアＢ８０６に送る。接続更新応答メッセージ８１０は、ピアＡ８０２における接続更新オペレーションの成功または失敗をピアＢ８０６に通知することができる。接続更新応答メッセージ８１０の受信の後、ピアＡ８０２とピアＢ８０６は、再びＩＰベースの通信を始めることができる。さらに、本発明の一実施形態では、仮想接続層よりも上位のプロトコル層およびアプリケーション層が、ピアＢ８０６のＩＰネットワーク接続ポイントの変更を認識しない。
【００４８】
図８では、ピアＢ８０６がピアＡ８０２に送る接続更新メッセージ８０８に加えて、ピアＢ８０６は、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス（ＶＣ  ＳＮＳ）８１４にも接続更新メッセージ８１２を送る。本発明の一実施形態による仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスについて、図１０を参照しながら以下に説明する。
【００４９】
図９は、図８の仮想接続メッセージの順番の例を示す。図９を見ると、ピアＢ８０６は、まず、接続更新メッセージ８１２を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送る。同時に（実際上）、ピアＢ８０６は、接続更新メッセージ８０８をピアＡ８０２に送る。これに応答して、ピアＡ８０２は、接続更新応答メッセージ８１０をピアＢ８０６に送る。接続更新メッセージ８０８および接続更新応答メッセージ８１０は、２ピア間の通信接続を更新するための仮想接続プロトコルを完了するのに適した、仮想接続メッセージペアの例である。図８および図９に示す例は、より単純な仮想接続メッセージプロトコルの例の１つである。本明細書では、それについて、比較のために以下の例で詳細に説明している。
【００５０】
図８に示す例から次に移る前に、ローカル接続変換テーブルが更新される際に生じる可能性がある特殊なケースについて説明するのが有益であろう。ピアＢがあるネットワーク接続ポイント（ＩＰ２、ポート２）から別のネットワーク接続ポイント（ＩＰ３、ポート３）に移動した後、ピアＢは、元のネットワーク接続ポイントを放棄することができる。あるピアが放棄したネットワーク接続ポイントを、別のピアが自分のものとすることができ、または別のピアに再割り当てすることができる。例えば、ＩＰｖ４ネットワークサービスプロバイダは、ＩＰｖ４アドレスのプールからＩＰｖ４アドレスを通信ピアに割り当て、次いで、そのピアがそのＩＰｖ４アドレスを放棄または解除すると、再割当てできるよう、そのＩＰｖ４アドレスをプールに返すことによって、ＩＰｖ４アドレスのプールを管理することができる。ピアＣ（図８には図示せず）は、ピアＢの移動後にネットワークに接続した場合、ピアＢが放棄したネットワーク接続ポイントを占有することができる。この場合、ピアＡが依然としてピアＢとアクティブ通信接続を確立している間に、ピアＣがピアＡと通信接続を確立すると、ローカル接続変換テーブルでコンフリクトが生じる場合がある。次の表は、ピアＡにおけるローカル接続変換テーブルの態様を示す。
【００５１】
【表４】
2005039820.tif 000006
【００５２】
この表は、ピアＡのネットワーク接続ポイント（ＩＰ１、ポート１）、ピアＢの元のネットワーク接続ポイント（ＩＰ２、ポート２）および上位層プロトコルＴＣＰを含む元の接続仕様を有する、第１のローカル接続変換テーブルエントリを示している。この第１のエントリの現在の接続仕様は、ピアＢがそのネットワーク接続ポイントを（ＩＰ３、ポート３）に変更したことを示している。すなわち、第１のエントリは、図８示したシナリオに対応する。この表はまた、ピアＡのネットワーク接続ポイント（ＩＰ１、ポート１）からピアＣのネットワーク接続ポイント（ＩＰＣ、ポートＣ）へのＴＣＰ／ＩＰ接続として指定されている元の接続を有する、第２のローカル接続変換テーブルエントリも示している。対応する現在の接続仕様は同じである。
【００５３】
ＩＰＣがＩＰ２と同じであり、ポートＣがポート２と同じである場合、ローカル接続変換テーブル中の第１と第２のエントリは、元の接続仕様が同じであり、すなわち、それらはコンフリクトを起こしている場合がある。この例では、接続を受け付ける前に、その接続をピアＣから（ＩＰ１、ポートＡ）にローカルに再接続することにより、ピアＡにおけるコンフリクトを回避することができる。この場合、ポートＡはポート１とは異なるポートである。同様の戦略が、非ＩＰベースのコンピュータネットワークの場合も利用可能である。元の接続仕様と現在の接続仕様の間の１対１の関係を保証するために、現在の接続仕様について同様のコンフリクトチェックおよびアクションを要求することができる。
【００５４】
接続更新メッセージを生成できる悪意あるピアは、仮想接続機能を利用しているピアに損害を与えることができる場合がある。本発明の一実施形態では、無認可の接続更新を防ぐために、各仮想接続メッセージが、各仮想接続メッセージを信頼できるピアからのものとして認証する暗号化署名を含むことができる。認証の基礎を確立するために、仮想接続モジュールを組み込んでいるピアは、通信接続を確立する際に一連の仮想接続メッセージを交換することができる。例えば、ピア同士が、Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開鍵交換スキームを利用して暗号化認証のための基礎を確立することができる。当技術分野ではこのスキームおよびその他の同様の適切なスキームが知られており、ここで詳説する必要はない。暗号化認証の基礎はまた、所望によりメッセージ暗号化のために利用することもできる。
【００５５】
例えば、通信接続を確立する際に送受信される一連の仮想接続メッセージ（ピアネゴシエーションメッセージ）を、図６のピアネゴシエーションコンポーネント６０８によって処理することができる。ピア同士がピアネゴシエーションメッセージを使って交換するさらなる情報には、ピアが知っている、自分のネットワーク接続ポイント、特定のピアが移動可能であるかどうかの指示、および特定のピアの処理能力の指示が含まれ得る。ピアのネットワーク接続ポイントを利用して、そのピアが、以下に説明するようにＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）後方であるかどうかを判断することができる。ピアの処理能力は、例えば、通信接続の安全のためにピアが選択した暗号化認証スキームに影響を与える場合がある。
【００５６】
本発明の一実施形態では、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスによって、通信中のピアは、ピアのネットワーク接続ポイントの変更イベントの通知を依頼し、ネットワーク接続ポイント変更イベントを発行し、通知依頼をしておいた、発行ネットワーク接続ポイント変更イベントの通知を受け取ることができる。Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス（またはＰｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅサービス）は当技術分野で知られており、したがって、ここでは、その詳細のほんの一部だけを説明する。
【００５７】
本発明の一実施形態では、ネットワーク接続ポイント変更イベントは、ピアがそのネットワーク接続ポイントを変更した場合に、例えば、図８のピアＢが第１のネットワーク接続ポイント（ＩＰ２、ポート２）から第２のネットワーク接続ポイント（ＩＰ３、ポート３）に移動した場合に発生する。ネットワーク接続ポイント変更イベントの通知依頼には、通知依頼側ピアから仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに通知依頼メッセージを送ることが含まれる。通知依頼メッセージは、例えば、通知依頼側ピアがアクティブに通信を行っている先のピアを接続した、特定のネットワーク接続ポイントを指定することができる。通知依頼メッセージはまた、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスが、その通知依頼にマッチするイベントの通知を送ることができる通知アドレスも含むことができる。ネットワーク接続ポイント変更イベントの発行には、イベントが発生したピアから、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに、特定のピアがそのネットワーク接続ポイントを第１の（前の、または元の）ネットワーク接続ポイントから第２の（または現在の）ネットワーク接続ポイントに変更したことを明記した発行メッセージを送ることが含まれる場合がある。接続更新メッセージは、適切な発行メッセージの例である。
【００５８】
発行メッセージに応答して、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスは、その通知依頼のそれぞれをチェックして、発行イベントにマッチする通知依頼の通知アドレスに、通知メッセージを送る。通知メッセージは、移動したピアの現在のネットワーク接続ポイントを含むことができ、したがって、例えば、通知を受けたピアは、その移動したピアに対して接続更新要求メッセージを送ることができる。通知メッセージは、移動したピアが発行した接続更新メッセージのコピーを含むことができる。本発明の一実施形態では、通知依頼が、イベントを発行したピアの移動元のネットワーク接続ポイントを指定している場合、すなわち、通知依頼が、発行側ピアの前のネットワーク接続ポイントを指定している場合でも、その通知依頼が発行されたネットワーク接続ポイントの変更にマッチする。別の実施形態では、ネットワーク接続ポイント変更イベントを、ネットワーク接続ポイント変更イベント通知依頼にマッチさせるステップは、以下に説明するさらなるステップおよび／または基準を含む場合がある。
【００５９】
図１０は、本発明の実施形態による、例示的モジュラー仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスアーキテクチャを示す。仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス１０００は、ピア（例えば、図８のピアＡ８０２およびピアＢ８０４）から通知依頼メッセージ１００４を受け取って構文解析し、次いで、対応する通知依頼１００６を通知依頼データベース１００８に記憶する通知依頼モジュール１００２を含む。発行モジュール１０１０は、ピアから発行メッセージ１０１２を受け取って構文解析し、構文解析したネットワーク接続ポイント変更イベント１０１４をマッチモジュール１０１６に提出する。マッチモジュール１０１６は、通知依頼データベース１００８をサーチして、各ネットワーク接続ポイント変更イベント１０１４にマッチする通知依頼を探し、マッチする通知依頼のリスト１０１８を通知モジュール１０２０に提出する。通知モジュール１０２０は、通知メッセージ１０２２を生成して、リスト１０１８中のマッチする通知依頼の通知アドレスに送る。
【００６０】
１つまたは複数の仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスが、仮想接続を組み込んでいるコンピュータネットワークにおける接続更新メッセージの唯一のソースである可能性がある。しかし、本発明の一実施形態では、可能な限り、移動したピアに、接続更新メッセージを直接、通信相手のピアに送信させるポリシーを実装し、また、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスの役割を、接続更新メッセージを直接、送ること（「直接接続更新」）が不可能な状況のためにとっておくことによって、スケーラビィリティを向上させることができる。直接接続更新が可能ではない状況の例には、通信接続の複数参加者が同時に移動した場合、および、移動したピアがネットワークアドレス変換（ＮＡＴ）後方のピアと通信している場合が含まれる。
【００６１】
図１１は、図８に示す例を拡張して、通信接続の複数参加者が同時に移動した場合に仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４が果たす役割を示している。図８に関しては、図１１のピアＡ８０２は、ＩＰネットワークを介してピアＢ８０４とアクティブ通信接続を確立している。図１１には明確に示していないが、ピアＡ８０２およびピアＢピアＢ８０４は、互いのネットワーク接続ポイントの変更の通知を依頼している。すなわち、ピアＡ８０２は、ＩＰ２で接続されているピア（すなわち、ピアＢ８０４）のネットワーク接続ポイントの変更の通知を依頼する通知依頼メッセージを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送っており、ピアＢ８０４は、同様に、ＩＰ１で接続されているピア（すなわち、ピアＢ８０２）によって生成されたネットワーク接続ポイント変更イベントの通知を依頼する通知依頼メッセージを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送っている。
【００６２】
再び、図８に関しては、ピアＢ８０４は、そのネットワーク接続ポイントを変更し、接続更新メッセージ８１２を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送ることによってネットワーク接続ポイント変更イベントを発行し、ピアＡ８０２に接続更新メッセージ（図１１には図示せず）を送ることによって、直接、ピアＡ８０２との接続を更新しようと試みる。しかし、図１１では、ピアＡ８０２が、同時に（例えば、ピアＡ８０２が接続更新メッセージをピアＢ８０６から受け取る前に）、そのＩＰネットワーク接続ポイントをＩＰアドレスＩＰ１からＩＰアドレスＩＰ４に変更しており、すなわちピアＡ８０２はピアＡ１１０２に移動している。ピアＡ１１０２は、移動後、本発明の一実施形態に従って、接続更新メッセージ１１０４を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送ることによってネットワーク接続ポイント変更イベントを発行し、次いで、ピアＢ８０２に接続更新メッセージ（同じく図１１には図示せず）を送ることによって、ピアＢ８０２とのその接続を直接、更新しようと試みる。
【００６３】
両方のピア（ピアＡ８０２、ピアＢ８０４）が移動しているため、どちらの直接接続更新も成功しない。ピアＡ１１０２およびピアＢ８０６は、支援なしに通信を続けられない場合がある。本発明の一実施形態では、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４が、両方のピア（ピアＡ８０２、ピアＢ８０４）が同時に移動したことを検出して、少なくとも一方のピアに、他方が移動したことを通知することにより、支援を提供する。仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、例えば、各ピアが、構成可能な時間内に（例えば、１秒以内に）、ネットワーク接続ポイント変更イベントを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に発行した場合に、２つのピアが同時に移動したと判断することができる。
【００６４】
図１１に示す例では、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、接続更新メッセージ１１０４および接続更新メッセージ８１２を、直接接続更新の発生にしてはあまりに接近して受け取ったため、ピアＡ８０２とピアＢ８０４とが同時に移動したと判断する。その結果、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、ピアＢ８０６に、ピアＡ８０２のネットワーク接続ポイントが変更されたことを通知する、通知メッセージ１１０６を送る。通知メッセージ１１０６は、ピアＢ８０６が、対応する元の接続仕様および現在の接続仕様、例えば、ピアＡ１１０２の元のＩＰアドレスＩＰ１および現在のＩＰアドレスＩＰ４を判断できるようにする情報を含む。
【００６５】
通知メッセージ１１０６を受け取った結果、ピアＢ８０６は、ピアＡ１１０２の現在のネットワーク接続ポイントを判断することができる。ピアＢ８０６とピアＡ１１０２との間の接続を更新するために、ピアＢ８０６は、接続更新（ＣＵ）メッセージ１１０８をピアＡ１１０２に送り、また、本発明の一実施形態に従って、ピアＡ１１０２は、接続更新応答（ＣＵＡ）メッセージ１１１０で返信する。ＡおよびＢにおいてローカル接続変換テーブルの更新が成功した後は、ピアＡ１１０２とピアＢ８０６の間の通信接続が更新されている。
【００６６】
図１２は、図１１の仮想接続メッセージの順番の例を示す。図１２を参照すると、ピアＢ８０６は接続更新メッセージ８１２を、ピアＡ１１０２は接続更新メッセージ１１０４を、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送る。接続更新メッセージ８１２、１１０４は、時間的にきわめて接近して仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に到着し、これによって、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、ピアＡ１１０２とピアＢ８０６が同時に移動したことを警告される。ピアＡ１１０２、ピアＢ８０６が通信できなくなることを防ぐために、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、通知メッセージ１００６をピアＢ８０６に送る。もちろん、同じ結果で、接続更新メッセージ１１０４が接続更新メッセージ８１２よりも前に到着する場合もあり、図１１を参照しながら説明した例の状況においては、通知メッセージをピアＡ１１０２、またはピアＢ８０６、またはその両方に送ることができる。
【００６７】
ピアＢ８０６は、通知メッセージ１１０６を受け取ると、接続更新メッセージ１１０８をピアＡ１１０２に送るよう促される。接続更新メッセージ１１０８に応答して、ピアＡ１１０２は、接続更新応答メッセージ１１１０をピアＢ８０６に送り、このシーケンスを完了する。
【００６８】
ＮＡＴなしのコンピュータネットワークの場合、および／またはピアがＮＡＴ後方ではないことがわかっている場合、通知メッセージ１１０６は、接続更新メッセージ１１０８の役割を果たすことができ、返信としてピアＡ１１０２に送られる接続更新応答１１１０は接続更新を完了することができ、したがって、接続更新メッセージ１１０８が重複することになる。ＮＡＴを備えたコンピュータネットワークでは、接続更新要求メッセージ（図１２には図示せず）が、下記に説明するような有益な役割を果たす。
【００６９】
ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）は当技術分野では知られており、したがって、ここではその特徴のほんのいくつかだけについて説明する。コンピュータネットワークによっては、各ネットワーク接続ポイントがネットワークアドレスに関連付けられていることがあり、例えば、ＩＰネットワークにおいては、各ＩＰネットワーク接続ポイントをＩＰアドレスに関連付けることができる。一般に、ネットワークアドレスはサイズが制限されており、例えば、ＩＰｖ４ネットワークでは、ネットワークアドレスが３２ビットに制限されている。１組のネットワークアドレスを、アドレス空間として理解することができる。ネットワークアドレスのサイズが制限されているネットワークでは、ネットワークアドレスが足りなくなる可能性があり、すなわち、ネットワークアドレス空間がサポートできるよりも多くのネットワーク接続ポイントが所望される可能性がある。ＮＡＴは、例えば、既存のアドレス空間中のある１つのネットワークアドレスで、その既存のアドレス空間に新しいアドレス空間を付加する方法を提供する。ＮＡＴメカニズムの例の詳細については、非特許文献３を参照されたい。
【００７０】
この記載においては、例えば、図８を参照しながら説明した例が発生する既存のアドレス空間を公共アドレス空間と呼び、また、ＮＡＴによってこの公共アドレス空間に付加されるアドレス空間を専用アドレス空間と呼ぶ。専用アドレス空間中のピア（すなわち、専用ネットワークアドレスに関連付けられたネットワーク接続ポイントを有するピア）は、公共アドレス空間中のピア（すなわち、公共ネットワークアドレスに関連付けられたネットワーク接続ポイントを有するピア）に対し、ＮＡＴ後方であると言われる。
【００７１】
本発明の一実施形態では、ＮＡＴを組み込んでいるコンピュータネットワーク特有の特徴は、公共アドレス空間中のピア（公共ピア）が専用アドレス空間中のピア（専用ピア）と通信することが、最初に専用ピアが公共ピアに接触しない限り、できない場合があることである。さらに、ピアをそのネットワークアドレスによって識別するというのがＮＡＴメカニズムの一般的なやり方であり、そのため、新たなネットワーク接続ポイントに移動した、新たなネットワークアドレスを備えたピアは、ＮＡＴメカニズムにとっては異なるピアに見える場合がある。そのような場合には、移動した公共ピアは、直接、専用ピアに接続更新メッセージを送ることができなくなる。本発明の一実施形態では、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスは、接続更新を容易にすることができる。
【００７２】
図１３は、ＮＡＴを組み込んでいるコンピュータネットワークにおいて、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４が果たす役割を説明する図８を参照しながら説明した例の変形を示す。図１３で、ピアＡ１３０２は、ＩＰベースのネットワークを介して、ピアＢ８０４と通信接続を確立している。ピアＡ１３０２は、破線で示すように、ＮＡＴ１３０４後方である。ピアＡ１３０２は、それに関連付けられた少なくとも２つのＩＰアドレス、すなわち、ＮＡＴ１３０４後方の専用アドレス空間中のＩＰアドレス、ＩＰＡ、および公共アドレス空間中のそのＩＰアドレス、ＩＰＮＡＴを有する。図１３に示す例では、ピアＡ１３０２は移動しない。ピアＢ８０４は、もともとは公共アドレス空間中のＩＰアドレスＩＰ２に位置しているが、その後、同じく公共アドレス空間中のＩＰアドレスＩＰ３に移動する。
【００７３】
ピアＡ１３０２は、通知依頼メッセージ１３０６を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送ることによって、ピアＢ８０４が発行するネットワーク接続ポイント変更イベントの通知を依頼する。通知依頼メッセージ１３０６を送ることによって、専用ピアＡ１３０２はまた仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４との通信接続も確立し、この通信接続を介して、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４はその後のメッセージ、例えば通知メッセージ１３０８を送ることができる。本発明の一実施形態では、ピアＢ８０４は、ピアＡ１３０２が専用ネットワークアドレスに関連付けられていることを判断できる。ピアＡ１３０２が専用ネットワークアドレスに関連付けられているとピアＢ８０４が判断した場合、本発明の一実施形態では、ピアＢ８０４は、対処することができないため、すなわち、専用ネットワーク接続ポイント変更イベント通知に基づいて、ピアＡ１３０２に接続更新メッセージを送ることができないため、ピアＡ１３０２のネットワーク接続ポイントの変更の通知を依頼しない。
【００７４】
ピアＢ８０６は、ＩＰアドレスＩＰ３に移動すると、接続更新メッセージ８１２を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に発行する。ピアＢ８０６が接続更新メッセージ（図１３には図示せず）を直接、ピアＡ１３０２に送ろうとした場合、専用ピアＡ１３０２がその新しいＩＰアドレスＩＰ３で前にピアＢ８０６に接触していないため、その試みは失敗する可能性がある。本発明の一実施形態では、ピアＢ８０６は、ピアＡ１３０２とさらに通信を行う前に、ピアＡ１３０２からの接触を待つ。
【００７５】
接続更新メッセージ８１２を受け取った結果、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、その通知依頼データベースをサーチして、専用ピアＡ１３０２がピアＢ８０４のネットワーク接続ポイントの変更の通知を依頼していると判断する。図１１を参照しながら説明した例とは対照的に、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、ピアＡ１３０２が専用ピアであると判断すると、できるだけ早く、通知メッセージ１３０８をピアＡ１３０２に送る。通知メッセージ１３０８は、ピアＡ１３０２が接続更新要求メッセージ１３１０をピアＢ８０６の新しいＩＰアドレスＩＰ３にてピアＢ８０６に送るよう促す。ピアＡ１３０２が最初にピアＢ８０６に接触すると、ピアＢ８０６は、接続更新メッセージ１３１２で接続更新要求メッセージ１３１０に応答することができる。ピアＡ１３０２が接続更新メッセージ１３１２を受け取ると、仮想接続接続更新プロトコル（ｖｉｒｔｕａｌ  ｃｏｎｎｅｃｔｉｖｉｔｙ  ｃｏｎｎｅｃｔｉｏｎ  ｕｐｄａｔｅ  ｐｒｏｔｏｃｏｌ）が完了する。
【００７６】
図１４は、図１３を参照しながら説明した仮想接続メッセージの順番の例を示す。図１４を見ると、ピアＡ１３０２は、ピアＢ８０４との通信接続を確立した直後、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に、ピアＢが発行したネットワーク接続ポイント変更イベントの通知を依頼する通知依頼メッセージ１３０６を送る。ピアＢ８０４はピアＢ８０６に移動し、接続更新メッセージ８１２を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送ることによってネットワーク接続ポイント変更イベントを発行する。ピアＡ１３０２が専用である（すなわち、専用ピアである）結果、またそうであるために、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は通知メッセージ１３０８を生成し、さらに遅れることなく、それをピアＡ１３０２に送る。ピアＡ１３０２は、通知メッセージ１３０８を受け取った結果、接続更新要求メッセージ１３１０を、新しいＩＰアドレスＩＰ３のピアＢ８０６に送る。ピアＢ８０６は、この要求に応答して、接続更新メッセージ１３１２を送る。接続更新要求メッセージ１３１０および接続更新メッセージ１３１２は、２ピア間の通信接続を更新するための仮想接続プロトコルを完了するのに適した、仮想接続メッセージペアの例である。
【００７７】
図１５は、図１３に示す例を拡張して、通信接続の複数参加者が同時に移動し、それらの参加者のうち少なくとも１つがＮＡＴ後方である場合に、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４が果たす役割を示している。図１３に関しては、図１５の専用ピアＡ１３０２がピアＢ８０４と通信接続を確立しており、また、ピアＡ１３０２が、ピアＢ８０４によって発行されるネットワーク接続ポイント変更イベントの通知を依頼している。ピアＢ８０４は、そのネットワーク接続ポイントをＩＰアドレスＩＰ２からＩＰアドレスＩＰ３に変更し、また、ピアＢ８０６は、移動後、接続更新メッセージ８１２を使って、ネットワーク接続ポイント変更を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に発行する。
【００７８】
図１５では、ピアＡ１３０２も、そのネットワーク接続ポイントを専用ＩＰアドレスＩＰＡから専用ＩＰアドレスＩＰＡ'に変更する。すなわち、ＮＡＴ１３０４後方のピアＡ１３０２が、ＮＡＴ１５０４後方のピアＡ１５０２に移動する。ＮＡＴ１３０４はＮＡＴ１５０４と同じ場合もあり、または、ＮＡＴ１５０４は異なる場合もある。すなわち、ＩＰアドレスＩＰＡ'は、ＩＰアドレスＩＰＡと同じ専用アドレス空間にある場合もあり、または異なる専用アドレス空間、例えば、異なる組織が管理する専用アドレス空間中にある場合もある。専用ピアＡ１５０２は、移動後、（公共アドレス空間中に位置する）仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４および公共ピアＢからメッセージ（例えば、通知メッセージ）を受け取ることができなくなる場合がある。しかし、ピアＡ１５０２は、接続更新メッセージ１５０６を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送ることによってそのネットワーク接続ポイント変更イベントを発行し、これによって、（その新しいＩＰアドレスＩＰＡの）専用ピアＡ１５０２と仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４との間の、ＮＡＴ１５０４を介した通信が再構築される。
【００７９】
この例では、ピアＢ８０６は、ピアＡ１３０２が専用ピアであると判断したので、ピアＢ８０６は接続更新メッセージを直接、ピアＡ１３０２に送ろうとはしない。ピアＡ１５０２は、移動後、接続更新メッセージ（図１５に図示せず）を直接、ピアＢ８０４に送ろうとするが、しかし、ピアＢ８０４も移動しているため、その試みは失敗する。図１１を参照しながら説明した例に関しては、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４からの通知メッセージが仮想接続プロトコルを進めることができる。図１１を参照しながら説明した例とは異なり、ピアＢ８０６への通知メッセージは、公共ピアＢ８０６が専用ピアＡ１５０２に接触できるようにはしない。代わりに、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４が、ピアＢ８０６の新しいＩＰアドレスＩＰ３をピアＡ１５０２に知らせる通知メッセージ１５０８を、ピアＡ１５０２に送る。専用ピアＡ１５０２は、次いで、ピアＢ８０６に接続更新メッセージ１５１０を送り、それによってピアＢ８０６が接続更新応答メッセージ１５１２で返信できるようにし、またそれを促す。
【００８０】
図１６は、図１５の仮想接続メッセージの順番の例を示す。図１６を見ると、ピアＢ８０６は、接続更新メッセージ８１２を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送る。その後すぐ、ピアＡ１５０２は、接続更新メッセージ１５０６を仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４に送る。仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス８１４は、接続更新メッセージ８１２、１５０６を時間的に接近して受け取ったことに応答して、通知メッセージ１５０８をピアＡ１５０２に送る。ピアＡ１５０２は、通知メッセージ１５０８に応答して、接続更新メッセージ１５１０をピアＢ８０６に送る。接続更新メッセージ１５１０が送られた結果、ピアＢ８０６は、応答してピアＡ１５０２に接続更新応答メッセージ１５１２を送る。
【００８１】
様々な例示的シナリオに関して仮想接続プロトコルの態様を説明してきたが、次に、仮想接続プロトコルの参加者が、本発明の実施形態に従って仮想接続プロトコルメッセージを送る際に利用する、例示的決定手順について説明する。
【００８２】
図１７は、例えば、接続管理コンポーネント６０６（図６）がローカルネットワーク接続ポイント（ＮＡＰ）変更イベントの結果として実行する例示的ステップを示す。ステップ１７０２で、接続管理コンポーネント６０６は、ローカルネットワーク接続ポイント変更イベントが発生したことを検出する（または、そのイベントについて知らされる）。その結果、ステップ１７０４で、接続更新メッセージを仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに送ることによって、そのイベントが仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスに発行される。ステップ１７０６で、接続管理コンポーネント６０６は、ローカル接続変換テーブル６０４中の次のエントリを、あるいは、前に何も選択されていない場合には最初のエントリを選択する。ステップ１７０８で、現在の接続仕様が新しいローカルネットワーク接続ポイントに適合するよう、選択されたローカル接続変換テーブル６０４のエントリが更新される。
【００８３】
リモートピアの対応するＬＣＴテーブル６０４を更新させるために、手順はステップ１７１０に進み、そこで、そのリモートピアが公共アドレス空間中にあるか、または専用アドレス空間中にあるかを判断する。リモートピアが公共であると判断された場合、手順はステップ１７１２に進む。ステップ１７１２で、接続更新メッセージがリモートピアに送られる。リモートピアが専用であると判断された場合、接続管理コンポーネント６０６は、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスを利用して、ネットワーク接続ポイント変更イベントをリモートピアに通知する。手順はステップ１７１４に進む。ステップ１７１４で、手順は、ローカル接続変換テーブル６０４中の各エントリがすでに選択されているかどうかをチェックする。選択されていない場合、手順はステップ１７０６に戻り、次のエントリを選択する。選択されている場合は、この例示的手順は終了する。
【００８４】
図１８は、例えば、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス１０００（図１０）のマッチモジュール１０１６が、発行されたネットワーク接続ポイント変更イベントの結果として実行する例示的手順を示す。ステップ１８０２で、マッチモジュール１０１６は、特定のピア、この場合、初期ＩＰアドレスＩＰ２の、上述の例（例えば、図８を参照しながら説明した例）のピアＢ８０４のネットワーク接続ポイント変更イベントを受け取る。ステップ１８０４で、マッチモジュール１０１６は、通知依頼データベース１００８中の次の候補通知依頼を選択する。この例では、候補通知依頼は、ＩＰアドレスＩＰ２から移動してきたピア（すなわち、ピアＢ８０４）によって発行されたネットワーク接続ポイント変更イベントの通知依頼である。候補通知依頼が以前に選択されていない場合には、最初の候補通知依頼が選択される。候補通知依頼がない場合、手順は終了する。
【００８５】
ステップ１８０６で、通知依頼を行ったピア（通知依頼側ピア）が公共か専用かを判断する。ピアが公共か専用かを判断するための例示的決定手順を、図１９を参照しながら以下に説明する。通知依頼側ピアが専用の場合、ネットワーク接続ポイント変更イベントを発行したピアは、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスを利用して、その専用ピアにイベントを通知し、手順はステップ１８０８に進む。ステップ１８０８で、通知依頼側ピアは、ネットワーク接続ポイント変更イベントを通知される。あるいは、ステップ１８０８で、例えば通知モジュール１０２０によって、通知依頼側ピアを通知すべきピアのリストに追加することができる。
【００８６】
通知依頼側ピアが公共の場合には、ネットワーク接続ポイント変更イベントを発行したピア（発行側ピア）は、例えば通知依頼側ピアが同時にネットワーク接続ポイントを変更することがない限り、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスの援助を受けることなく、直接、通知依頼側ピアに接続更新メッセージを送ることができる。通知依頼側ピアのそのような同時移動を検出するために、手順はステップ１８１０に進む。ステップ１８１０で、手順は、最大期間、この例では１秒間、通知依頼側ピアが同様にネットワーク接続ポイント変更イベントを発行するのを待つ。手順がステップ１８１０に進んだときに、通知依頼側ピアがすでにネットワーク接続ポイント変更イベントを発行している場合には、手順は、ステップ１８１０で待たない場合もある。
【００８７】
ステップ１８１０の後、手順はステップ１８１２に進み、そこで、発行側ピアが通知依頼側ピアに接続更新メッセージを送ることができた前に通知依頼側ピアが移動したかどうかについて、すなわち、最大期間が満了する前に、通知依頼側ピアもネットワーク接続ポイント変更イベントを発行したかどうかを判断する。通知依頼側ピアが「同時に」移動したと判断された場合には、手順は、通知依頼側ピアが発行側ピアの移動を通知されるよう、ステップ１８０８に進む。そうでない場合には、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスは、発行側ピアが通知依頼側ピアに、直接、接続更新メッセージを送ることができたと想定する。手順は、ステップ１８０８を飛ばして、ステップ１８１４に進む。本発明の一実施形態全体を通して役立つように、複数実行スレッドおよびその他の並行処理技術を利用することができるが、ステップ１８１０およびステップ１８１２を、それらのステップが、候補通知依頼側ピアの処理ループの遅延を最小限に抑えるための並行処理またはそれと同等の技術（例えば、定期的にチェックされる監視リスト）の良き候補であることを示すために、破線１８１６で囲んである。
【００８８】
候補通知依頼側ピアが専用であって、通知の試みが失敗した場合には、図１５を参照しながら上記に説明した例に関しては、その専用通知依頼側ピアが発行側ピアと同様に移動した可能性がある。その場合、通知の失敗を検出した時点で、手順はステップ１８１０に進み、そこで、その専用通知依頼側ピアからのネットワーク接続ポイント変更イベントの発行を待つことができる。最大ステップ１８１０の、専用通知依頼側ピアに対する最大待機期間は、公共通知依頼側ピアに対する最大待機期間とは異なる場合がある。
【００８９】
ステップ１８１４で、手順はさらなる候補通知依頼側ピアが存在するかどうかチェックする。さらなる候補通知依頼側ピアが存在する場合には、手順は、次の通知依頼側ピアのためにステップ１８０４に戻る。存在しない場合には、手順は終了する。
【００９０】
本発明の一実施形態では、通信ピアが公共か専用かによって、特定の挙動が判断される。上述のように、少なくとも２つのネットワークアドレス、すなわち、ＮＡＴサービスの公共ネットワークアドレスと、ＮＡＴサービスによって作成される専用アドレス空間中のそのピアのネットワークアドレスとが専用ピアに関連付けられている場合がある。専用ピアは、他のピアへの仮想接続メッセージにおいて、それが専用ステータスであることを示す明確なフラグを立てることができる。あるいは、各ピアは、そのネットワークアドレスを、それが送信する１つまたは複数の仮想接続メッセージ中に含めることができる。この場合、そのメッセージを受け取るその他のピアは、含まれているネットワークアドレスを、そのメッセージの明白な発信元アドレスであるネットワークアドレスと比較することができる。含まれているネットワークアドレスが明白な発信元アドレスに合致する場合、そのピアが公共であると判断できる。含まれているネットワークアドレスがメッセージの明白な発信元アドレスに合致しない場合には、送信側ピアが専用であると判断できる。
【００９１】
図１９は、通知依頼が公共ピアに関連付けられているか、または専用ピアに関連付けられているかを判断するために、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス１０００（図１０）が実行することができる例示的ステップを示す。ステップ１９０２で、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスは、ＴＣＰ／ＩＰネットワークを介して、ピアから通知依頼メッセージを受け取る。ステップ１９０４で、メッセージの「封筒（ｅｎｖｅｌｏｐｅ）」、例えばメッセージのＩＰヘッダを構文解析することにより、その通知依頼メッセージの明白な発信元が判断される。あるいは、確立されている送信側ピアとの通信接続の属性を問い合わせることによって、メッセージの明白な発信元が入手できる。ステップ１９０６で、通知依頼メッセージの内容が構文解析される。本発明の一実施形態では、ネットワーク接続ポイントイベント通知依頼メッセージは、その通知依頼側ピアのネットワークアドレス（この例ではＩＰアドレス）を含む。そのネットワークアドレスが通知依頼側ピアにわかっているためである。
【００９２】
ステップ１９０８で、通知依頼メッセージの明白な発信元は、通知依頼メッセージ中に含まれているネットワークアドレスと比較される。通知依頼メッセージの明白な発信元が、通知依頼側ピアが通知依頼メッセージに含めたネットワークアドレスと合致する場合には、手順はステップ１９１０に進む。合致しない場合には、手順はステップ１９１２に進む。ステップ１９１０で、通知依頼は公共ピアに関連付けられていると判断される。ステップ１９１２で、通知依頼は専用ピアに関連付けられていると判断される。この判断は、仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス１０００の様々なモジュールにおいて繰り返し行われる場合があり、あるいは、例えば通知依頼モジュール１００２において、一度だけ行われる場合がある。次いで、通知依頼は、公共または専用を示すフラグが立てられた状態で、通知依頼データベース１００８に記憶される。
【００９３】
仮想接続メッセージを下位層ネットワークプロトコル中に組み込むことができる。例えば、インターネットプロトコルのＩＰオプション機能を利用することにより、仮想接続メッセージをＩＰデータグラムに追加することができる。インターネットプロトコルのＩＰオプション機能の詳細については、非特許文献４を参照されたい。１つまたは複数の、例えばＩＰオプションを利用して仮想接続メッセージを下位層プロトコルデータグラムに組み込む場合、その追加オプションを仮想接続オプション（ＶＣオプション）と呼ぶことができる。発信仮想接続メッセージを運ぶ仮想接続オプションは、一般に、上位プロトコル層によって生成される発信プロトコル単位中に組み込まれるが、仮想接続層は、次の上位層プロトコル単位を待つことが無効および／または非効率的である場合には、それ自身の、例えば、仮想接続オプションを組み込んでいる「空の」ＩＰパケットを生成することができる。
【００９４】
伝送制御プロトコルのＴＣＰオプション機能を利用して、仮想接続オプションをＴＣＰデータグラムに追加することができる。伝送制御プロトコルのＴＣＰオプション機能の詳細については、非特許文献５を参照されたい。データグラムオプションを明白にサポートしていない下位層プロトコルでも、仮想接続オプションを下位層プロトコルデータグラムに付加することによって、仮想接続オプションを組み込むことができる。図２０は、仮想接続オプションをＵＤＰデータグラムに付加するための例示的スキームを示す。
【００９５】
図２０では、１つまたは複数の仮想接続オプション２００２が、ＩＰネットワークを介して送信されるＵＤＰデータグラムに付加されている。ＵＤＰデータグラムは、ＵＤＰヘッダ２００４およびＵＤＰボディ２００６を含む。ＵＤＰヘッダ２００４は、ＵＤＰボディ２００６中のユーザデータを含めて、ＵＤＰデータグラムの長さを表す、ＵＤＰデータ長フィールド（ＬｅｎｇｔｈＵＤＰ）を含む。ユーザデータグラムプロトコルのさらなる詳細については、非特許文献６を参照されたい。ＵＤＰデータグラムは、ＩＰネットワークを介して送信できるよう、ＩＰヘッダ２００８で開始している。この例では、ＵＤＰデータグラムおよび仮想接続オプション２００２がＩＰデータグラムのボディである。ＩＰヘッダ２００８は、ＩＰヘッダ２００８中のバイト数を表すＩＰヘッダ長データフィールド（ＬｅｎｇｔｈＩＰ Ｈｅａｄｅｒ）と、ＩＰデータグラム（ヘッダ２００８およびボディ２００４、２００６、２００２）中のバイト数を表すＩＰ総データ長フィールド（ＬｅｎｇｔｈＩＰ）を含む。仮想接続オプション２００２（ＬｅｎｇｔｈＶＣ ｏｐｔｉｏｎｓ）の長さを、以下のようにして算出することができる。  
LengthVC options = LengthIP - LengthIP Header - LengthUDP
すなわち、１つまたは複数の仮想接続オプション２００２のバイト数（８ビット）を、ＩＰデータグラム中の総バイト数からＩＰヘッダ２００８中のバイト数を引き、さらにＵＤＰデータグラム中のバイト数を引いたものとして算出できる。
【００９６】
同様のスキームを利用して、仮想接続オプションをその他の下位層プロトコルデータグラムに付加することができる。しかし、このような付加データは、仮想接続モジュール（例えば、図６の仮想接続モジュール６００）を組み込んでいないピアによって正しく解釈されない場合がある。リモートピアが仮想接続モジュールを組み込んでいるかどうかをテストするために、１つまたは複数の仮想接続オプション、例えば特定の仮想接続プローブオプションを、そのリモートピアに送る最初のネットワークプロトコルデータグラム中に組み込むことができる。返信に１つまたは複数の対応する仮想接続オプションが含まれていれば、そのリモートピアに、拡張ＶＣとして、すなわち仮想接続プロトコルに正しく参加できるとして、フラグを立てることができる。
【００９７】
図２１は、例えば、仮想接続モジュール６００のピアネゴシエーションコンポーネント６０８（図６）が、リモートピアが仮想接続オペレーションをサポートしているかどうかを判断するために実行する、例示的ステップを示す。ステップ２１０２で、ＳＹＮフラグが設定され、仮想接続プローブオプションを組み込んでいる初期ＴＣＰデータグラムが、リモートピアに送信される。ステップ２１０４で、その初期ＴＣＰデータグラムに対する返信、例えば、ＳＹＮおよびＡＣＫフラグが設定された、またはＲＳＴフラグが設定されたＴＣＰデータグラムが受信される。ステップ２１０６で、その返信が、仮想接続プローブオプションのために構文解析される。ステップ２１０８で、返信が仮想接続プローブオプションを組み込んでいるかどうかの判断がなされる。返信が仮想接続プローブオプションを組み込んでいる場合には、手順はステップ２１１０に進み、そこで、リモートピアに拡張ＶＣというフラグが立てられる。組み込んでいない場合には、手順はステップ２１１２に進み、リモートピアに非拡張ＶＣというフラグが立てられ、さらなる仮想接続メッセージはリモートピアに送信されない。上記に説明した仮想接続機能は、この場合は利用できない。
【００９８】
刊行物、特許出願、特許を含めて、本明細書に記載されているすべての参考文献は、それら各参考文献が、参照により組み込まれるように個々にかつ明確に示され、またそのすべてが本明細書に記載されているものとして、参照により本明細書に組み込まれている。
【００９９】
本発明を記載する文脈において（特に、添付の特許請求の範囲の文脈において）、「１つの（ある）〜」および「当該（前記）〜」という用語、および同様の指示用語を使用してある場合、それは、本明細書において別途指摘している場合、または文脈により明らかに相反する場合を除き、単数と複数の両方を対象とするものとして解釈すべきである。「含む」という用語は、別途指摘している場合を除き、オープンエンド用語（すなわち、「含むが、それに限定されない」ことを意味する）として解釈されるべきである。本明細書において値の範囲を記載しているのは、本明細書に別途指摘していない限り、単にその範囲内に含まれる別個の値それぞれを個々に表すための簡便な方法としての役割を果たすことを意図したものであり、別個の値それぞれは、本明細書に個々に記載されているものとして本明細書に組み込まれている。本明細書に記載のすべての方法は、本明細書に別途指摘されている場合、またはそうではなく文脈により明らかに相反する場合を除き、いずれかの適切な順序で実行することができる。いずれかまたはすべての例の使用、または本明細書で用いている例示的な言い方（例えば、「〜など」）は、単に本発明をより明らかにすることを意図したものであり、別途、主張している場合を除き、本発明の範囲を限定するものではない。本明細書中のどのような言い方も、いずれかの非特許請求要素を本発明の実施に不可欠なものとして示すものとして解釈してはならない。
【０１００】
本明細書には、発明者が知っている、本発明を実施するための最良の形態を含めて、発明を実施するための最良の形態を記載してある。当業者は、前述の説明を読むことによって、それらの最良の形態の変形が明らかになる場合もあろう。発明者は、当業者がそのような変形形態を利用することを期待する。また、発明者は、本発明が本明細書に具体的に記載されているのとは異なって実施されることを意図している。したがって、本発明は、本明細書に添付の特許請求の範囲に記載されている主題の修正および同等物もすべて、適用法により許可されたものとして含む。さらに、本明細書に別途指摘している場合、または文脈により明らかに相反する場合を除き、最良の形態のすべての可能な変形における、上述の要素のどのような組合せも本発明に含まれる。
【図面の簡単な説明】
【０１０１】
【図１】ネットワークによって接続されているコンピュータを示す概略図である。
【図２】本発明の一実施形態を実施するために使用可能な例示的コンピュータシステムを全体的に示す概略図である。
【図３】本発明の一実施形態に従って仮想接続層を組み込んでいる、階層化ネットワークモデルを示す概略図である。
【図４】本発明の一実施形態に従って仮想接続層を組み込んでいる、例示的階層化ＴＣＰ／ＩＰ実装を示す概略図である。
【図５】本発明の一実施形態に従って仮想接続層を組み込んでいる、別の例示的階層化ＴＣＰ／ＩＰ実装を示す概略図である。
【図６】本発明の一実施形態に従って仮想接続層サービスを実施するために適した、例示的仮想接続モジュールを示す概略図である。
【図７】本発明の一実施形態による例示的ローカル接続変換オペレーションを示す概略図である。
【図８】本発明の一実施形態による例示的仮想接続プロトコルを示す概略図である。
【図９】本発明の一実施形態形態による、図８の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。
【図１０】本発明の一実施形態形態による、例示的モジュラー仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスアーキテクチャを示す概略図である。
【図１１】本発明の一実施形態形態による、同時移動シナリオのための例示的仮想接続プロトコルを示す概略図である。
【図１２】本発明の一実施形態形態による、図１１の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。
【図１３】本発明の一実施形態形態による、ネットワークアドレス変換を組み込んでいるコンピュータネットワークにおける例示的仮想接続プロトコルを示す概略図である。
【図１４】本発明の一実施形態形態による、図１３の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。
【図１５】本発明の一実施形態形態による、同時移動およびネットワークアドレス変換が含まれるシナリオのための例示的仮想接続プロトコルを示す概略図である。
【図１６】本発明の一実施形態形態による、図１５の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。
【図１７】本発明の一実施形態形態に従って仮想接続モジュールによって実行される例示的ステップを示す流れ図である。
【図１８】本発明の一実施形態形態に従って仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスマッチモジュールによって実行される例示的ステップを示す流れ図である。
【図１９】仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービスが、通知依頼側ピアが公共か専用かを判断するために、本発明の一実施形態形態に従って実行する例示的ステップを示す流れ図である。
【図２０】本発明の一実施形態形態による、仮想接続オプションを組み込んでいるＵＤＰ／ＩＰデータグラムを示す概略図である。
【図２１】仮想接続モジュールが、リモートピアが仮想接続機能をサポートしているかどうかを判断するために、本発明の一実施形態形態に従って実行する例示的ステップを示す流れ図である。
【符号の説明】
【０１０２】
３０２  仮想接続層
３０４  下位ネットワーク層
３０６  上位ネットワーク層
３０８  アプリケーション層
４０２  デバイスドライバ
４０４  ネットワークハードウェア
４１０  ソケットＡＰＩ
４１２  アプリケーション
４１４  仮想接続
４０２  デバイスドライバ
４０４  ネットワークハードウェア
４１０  ソケットＡＰＩ
４１２  アプリケーション
５０４  仮想接続
６００  仮想接続モジュール
６０２  ローカル接続変換
６０４  ＬＣＴテーブル
６０６  接続管理
６０８  ピアネゴシエーション
６１０  ＶＣ  ＳＮＳプロキシ
１０００  仮想接続Ｓｕｂｓｃｒｉｂｅ−Ｎｏｔｉｆｙサービス
１００２  通知依頼モジュール
１００４  通知依頼メッセージ
１００６  通知依頼
１００８  通知依頼データベース
１０１０  発行モジュール
１０１２  発行メッセージ
１０１４  イベント
１０１６  マッチモジュール
１０１８  マッチリスト
１０２０  通知モジュール
１０２２  通知メッセージ
２００２  ＶＣオプション
２００４  ＵＤＰヘッダ
２００６  ＵＤＰボディ
２００８  ＩＰヘッダ
【図１】
2005039820.tif 000007
【図２】
2005039820.tif 000008
【図３】
2005039820.tif 000009
【図４】
2005039820.tif 000010
【図５】
2005039820.tif 000011
【図６】
2005039820.tif 000012
【図７】
2005039820.tif 000013
【図８】
2005039820.tif 000014
【図９】
2005039820.tif 000015
【図１０】
2005039820.tif 000016
【図１１】
2005039820.tif 000017
【図１２】
2005039820.tif 000018
【図１３】
2005039820.tif 000019
【図１４】
2005039820.tif 000020
【図１５】
2005039820.tif 000021
【図１６】
2005039820.tif 000022
【図１７】
2005039820.tif 000023
【図１８】
2005039820.tif 000024
【図１９】
2005039820.tif 000025
【図２０】
2005039820.tif 000026
【図２１】
2005039820.tif 000027