JP4494891B2 - ローカル接続変換との仮想接続 - Google Patents

ローカル接続変換との仮想接続 Download PDF

Info

Publication number
JP4494891B2
JP4494891B2 JP2004206469A JP2004206469A JP4494891B2 JP 4494891 B2 JP4494891 B2 JP 4494891B2 JP 2004206469 A JP2004206469 A JP 2004206469A JP 2004206469 A JP2004206469 A JP 2004206469A JP 4494891 B2 JP4494891 B2 JP 4494891B2
Authority
JP
Japan
Prior art keywords
connection
peer
network
local
original
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.)
Active
Application number
JP2004206469A
Other languages
English (en)
Other versions
JP2005039820A (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 JP2005039820A publication Critical patent/JP2005039820A/ja
Application granted granted Critical
Publication of JP4494891B2 publication Critical patent/JP4494891B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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/256NAT traversal
    • H04L61/2571NAT traversal for identification, e.g. for authentication or billing 
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • H04W36/0019Control or signalling for completing the hand-off for data sessions of end-to-end connection adapted for mobile IP [MIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/08Mobility data transfer
    • H04W8/14Mobility data transfer between corresponding nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Pens And Brushes (AREA)
  • Dowels (AREA)
  • Materials For Medical Uses (AREA)

Description

本発明は、一般に、コンピュータネットワークに関し、より詳細には、ネットワーク化されたコンピュータがそのネットワーク接続ポイントを変更することが可能なコンピュータネットワークに関する。
今日の大規模なコンピュータネットワークは、一般に、ネットワークユーザ、特にモバイルネットワークユーザに対して、複数地点でネットワークに接続する機会を提供している。ネットワーク接続ポイントが異なると、例えば、異なるコストでサービス品質が異なり、かつ/または異なる組織によって維持されている可能性があるため、ネットワークユーザは、ネットワーク接続ポイントを変更しようという気になる可能性がある。例えば、コストを最小限に抑え、かつ/またはサービスの質を最大限にするために、ネットワーク接続ポイントを自動的に変更するようコンピュータを構成することもできる。
コンピュータネットワークサービスを利用するアプリケーションにとっては、そのコンピュータネットワークサービスがそのアプリケーションにとってできるだけ透過的であることが望ましい。すなわち、アプリケーションは、特に下位層ネットワークプロトコルの変更に関して、認識している必要があるコンピュータネットワークサービスの実装の詳細ができるだけ少ないことが望ましい。ベースプロトコル中に適切な機能を組み込んでいないコンピュータネットワークの場合、ネットワーク接続ポイントの変更をアプリケーションに対して透過的にするためには追加メカニズムが必要なことがある。例えば、コンピュータが、インターネットへの接続ポイントを変更すると、新しいネットワーク接続ポイントは、一般に、新しいインターネットプロトコル(IP)アドレスに関連付けられる。例えば、基準となるIPv4(Internet Protocol version4)またはIPv6(Internet Protocol version6)のもとでは、ネットワーク接続ポイントの変更の前にアクティブ接続を確立しているコンピュータ上のアプリケーションは、変更に続いてそれらの接続を再構築するための用意が必要な場合がある。
この説明の目的で、アプリケーションに対してネットワーク接続ポイントの変更を透過的にするための従来の試みを、インフラストラクチャ解決策およびエンドツーエンド解決策として分類することができる。インフラストラクチャ解決策は、一般に、さらなるネットワーク構成要素および/またはネットワークルーティングシステムの修正を必要とする。例えば、Mobile IP for IPv4およびMobile IP for IPv6は、追加のホームエージェントネットワーク構成要素を必要とする、ルーティングベースのインフラストラクチャ解決策である。一方、エンドツーエンド解決策は、ネットワークルーティングとは関係なく、通信エンドポイントにおいてネットワーク接続ポイントの変更を管理する。例えば、エンドツーエンド解決策の例が、非特許文献1に記載されている。エンドツーエンド解決策の利点は、既存のネットワークインフラストラクチャに修正を加えることなく、透過的なネットワーク接続ポイントの変更が可能になることである。
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
従来の解決策には欠点がある。例えば、Mobile IP for IPv4およびMobile IP for IPv6には、ルーティングを非能率的にし、ネットワークセキュリティモデルに違反する可能性がある、間接ルーティングが含まれる。従来のエンドツーエンド解決策は、通信接続に参加している各コンピュータがそのネットワーク接続ポイントを同時に変更するといったケースを処理することができず、あるいは、そのようなケースを一貫しない状態で処理する。コンピュータネットワークにおけるNAT(Network Address Translation)の使用は、従来の解決策によっては非効率的におよび/または矛盾して扱われる場合がある、最新のコンピュータネットワークの別の態様である。
従来の解決策によっては、バージョンが異なるネットワークプロトコルを異なって扱うものがあり、これによって透過性が損われる場合がある。コンピュータネットワークによっては、階層化プロトコルに対するサポートを提供するものがあり、例えば、インターネットプロトコルは、通常、TCP(Transmission Control Protocol)およびUDP(User Datagram Protocol)と関連して使用される。従来の解決策の中には、上位プロトコル層の態様を、非効率的に、または矛盾した状態でしかサポートしないものがあり、例えば、ある解決策は、IPより上位層のTCPをサポートするが、IPより上位層のUDPと適切に連動することができない。階層化プロトコルの異なる局面が異なって扱われることをアプリケーションが認識する必要がないならば、透過性を向上させることができる。
この節には、本発明のいくつかの実施形態の簡単な概要を記載する。この概要は、本発明の広範囲にわたる全体像ではない。この概要は、本発明の主要/重要な構成要素を識別することを意図したものではなく、また、本発明の範囲を説明することを意図したものでもない。この概要の目的は、後に記載するより詳細な説明の前置きとして、簡単な形で本発明のいくつかの実施形態を提示することだけである。
本発明の一実施形態では、ローカル接続変換テーブルが、少なくとも1つの通信接続に参加しているピアに対してローカルに維持される。ローカル接続変換テーブルは、そのピアが参加している通信接続の、1つまたは複数の元の接続パラメータ、ならびにその通信接続の1つまたは複数の現在の(おそらくは異なる)接続パラメータを含む。
本発明の一実施形態では、ピアは、そのネットワーク接続ポイントを変更することができる。変更の結果、ピアは、それがアクティブ通信接続を確立している各ピアに対して、接続更新メッセージを送る。接続更新メッセージは、通信接続識別子、およびそのピアが移動した先のネットワーク接続ポイントの識別子を含む。
本発明の一実施形態では、ローカル接続変換コンポーネントが、ローカル接続変換テーブルを維持するよう構成される。ローカル接続変換テーブルは、ローカル接続変換コンポーネントに対してローカルな通信ピアと、リモートピアとの間の各アクティブ通信接続についてエントリを有する。各ローカル接続変換テーブルエントリは、元の接続仕様および現在の接続仕様を含む。
添付の特許請求の範囲は、本発明の特徴について詳細に記載しているが、本発明およびその利点は、添付の図面を参照しながら以下の詳細な説明を読むことにより、最もよく理解できる。
本発明の様々な実施形態の説明を始める前に、本発明の様々な実施形態を実施することができるコンピュータおよびネットワーク環境について説明する。特に要求されるわけではないが、本発明を、コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明する。一般に、プログラムは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、オブジェクト、コンポーネント、データ構造などを含む。本明細書で使用している「プログラム」という用語は、単一のプログラムモジュールまたは協働する複数のプログラムモジュールを意味することがある。本明細書で使用している「コンピュータ」および「コンピュータデバイス」という用語には、パーソナルコンピュータ(PC)、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、タブレットPC、ラップトップコンピュータ、マイクロプロセッサまたはマイクロコントローラを備えた消費者家電、ルータ、ゲートウェイ、ハブなど、1つまたは複数のプログラムを電子的に実行するどのデバイスも含まれる。本発明はまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境においても利用することができる。分散コンピューティング環境では、プログラムをローカルおよびリモートのメモリ記憶装置の両方に置くことができる。
本発明の態様を組み込むのに適したコンピュータネットワーク環境の例を、図1を参照しながら説明する。この例示的コンピュータネットワーク環境は、雲によって表してあるネットワーク104を介して、互いに通信を行っているいくつかのコンピュータ102を含む。ネットワーク104は、ルータ、ゲートウェイ、ハブなど、多くの周知のコンポーネントを含むことができ、また、コンピュータ102が有線および/または無線媒体を介して通信できるようにする。ネットワーク104を介して互いに対話する際、コンピュータ102の1つまたは複数は、その他のコンピュータ102に対して、クライアント、サーバ、またはピアとして動作することができる。したがって、本発明の様々な実施形態を、クライアント、サーバ、ピア、またはそれらの組合せの上で実施することができる。ただし、本明細書に含まれている具体例では、それらのコンピュータのタイプすべてについて述べていない場合もある。
図2を参照すると、本明細書に記載の本発明の態様を実装することができる、コンピュータ102の基本構成の例を示してある。コンピュータ102は、その最も基本的な構成において、一般に、少なくとも処理装置202およびメモリ204を含む。処理装置202は、本発明の様々な実施形態に従ってタスクを実行するための命令を実行する。このようなタスクを実行する際、処理装置202は、コンピュータ102のその他の部分およびコンピュータ102の外部のデバイスに対して電子信号を送って何らかの結果を生じさせることができる。コンピュータ102の正確な構成およびタイプに応じて、メモリ204は、揮発性(RAMなど)、不揮発性(ROMまたはフラッシュメモリなど)、またはそれら2つの組合せの場合がある。この最も基本的な構成を、図2では破線206で示してある。
コンピュータ102はまた、追加の特徴/機能を備えることもできる。例えば、コンピュータ102は、追加ストレージ(取外し可能208および/または取外し不可能210)を含むことができ、これには磁気または光ディスクまたはテープが含まれるが、それらに限定されるわけではない。コンピュータ記憶媒体には、コンピュータ実行可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための、いずれかの方法または技術で実装された、揮発性および不揮発性の取外し可能および取外し不可能媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、CD−ROM、デジタル多用途ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気記憶装置、あるいは、所望の情報を記憶するために使用でき、コンピュータ102がアクセスできる任意のその他の媒体が含まれるが、それらに限定されるわけではない。このようなコンピュータ記憶媒体はどれも、コンピュータ102の一部になり得る。
コンピュータ102は、好ましくは、デバイスが、リモートコンピュータ214などのその他のデバイスと通信できるようにする、通信接続212も含む。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポートメカニズムなどの変調データ信号に実施し、また、いずれかの情報配信媒体を含む。例として、「通信媒体」という用語には、音響、RF、赤外線、およびその他の無線媒体などの無線媒体が含まれるが、それらに限定されるわけではない。本明細書で使用している「コンピュータ可読媒体」という用語には、コンピュータ記憶媒体および通信媒体の両方が含まれる。
コンピュータ102はまた、キーボード/キーパッド、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス216も含むことができる。ディスプレイ、スピーカ、プリンタなどの出力デバイス218も含むことができる。これらのデバイスはすべて、当技術分野では周知のものであり、ここで詳細に説明する必要はない。
以下の説明においては、別途記載がない限り、本発明を、1つまたは複数のコンピューティングデバイスによって実施される動作、およびオペレーションの記号表現を参照しながら説明する。したがって、時にはコンピュータによって実行されていると記載することもあるこのような動作およびオペレーションには、コンピュータの処理装置による、構造化された形態のデータを表す電気信号の操作が含まれることを理解されよう。この操作によって、データが変換され、またはコンピュータのメモリシステム中のロケーションでそのデータが維持され、それによって、当業者がよく理解しているやり方でコンピュータのオペレーションが再構築または変更される。データが維持されるデータ構造は、そのデータのフォーマットによって定義される特定のプロパティを有する、メモリの物理ロケーションである。しかし、本発明を上記の状況において説明しているが、当業者であれば、以下に記載の様々な動作およびオペレーションをハードウェアに実装できることを理解されるように、その状況に限定されるわけではない。
本発明の一実施形態では、コンピュータネットワークにおいて通信接続を確立し、維持するためのプロトコルを、例えば、国際標準化機構(ISO)の開放型システム間相互接続(OSI)モデルに記載されている層に対応する、複数のプロトコル層によって実装することができる。OSIモデルの詳細については、例えば非特許文献2を参照されたい。本発明の一実施形態では、仮想接続(VC)層がプロトコルに追加され、または既存のプロトコル層中に組み込まれる。以下に、インターネットプロトコル(IP)およびIPベースのプロトコルを参照しながら、いくつかの例を説明する。しかし、本発明の実施形態はそれらに限定されるわけではなく、それらの例は、国を超えたルーティングを行うどのネットワークプロトコルにも汎用化できるものである。
図3は、既存のネットワーク層に仮想接続層を追加するための例示的スキームを示す。仮想接続層302は、1つまたは複数の下位ネットワーク層304と1つまたは複数の上位ネットワーク層306の間に常駐する。下位ネットワーク層304の例には、物理媒体における信号のフォーマッティングを決定する物理層、および複数のコンピュータ(例えば、図1のコンピュータ102)による共用物理通信媒体へのアクセスを制御する媒体アクセス制御(MAC)層が含まれる。上位ネットワーク層306の例には、ユーザベースの認証依存ポリシー(authentication dependent policy)を実施するセッション層、およびデータを共通のネットワーク伝送フォーマットから特定のアプリケーションフォーマットに変換するプレゼンテーション層が含まれる。
アプリケーション層308は、上位ネットワーク層306と相互作用することにより、ネットワークサービスを利用する。上位ネットワーク層306は仮想接続層302と相互作用し、仮想接続層302は下位ネットワーク層304と相互作用する。下位ネットワーク層304の少なくとも1つは、物理伝送媒体と相互作用する。本発明の一実施形態では、仮想接続層302は、ある接続への参加者がそのネットワーク接続ポイントを変更した場合でも、その接続の元の識別情報によってアプリケーション層308がその接続を参照できるようにすることにより、通信接続(例えば、図2の通信接続212)を仮想化する。
図4および図5は、本発明の実施形態に従って、追加仮想接続層を階層化TCP/IP実装に組み込む2つの例を示す。図4では、下位ネットワーク層は、ネットワークハードウェア404にインターフェースを提供するデバイスドライバ402、および上位ネットワーク層とは独立したインターネットプロトコル機能を実装するIP層406を含む。上位ネットワーク層は、TCP/IPの伝送制御態様を実装するTCP層408、および、アプリケーション412がコンピュータネットワークサービスにアクセスするために利用する、ネットワークソケットアプリケーションプログラミングインターフェース(API)410を含む。図4では、仮想接続層414がTCP層408とIP層406の間に配置されており、それによって、発信データ(すなわち、送信されるデータ)を、IP層406がそれを見る前にインターセプトすることができ、また、着信データ(すなわち受信されたデータ)を、IP層406がインターネットプロトコル機能に関してそのデータを処理し終わった後にインターセプトすることができる。
いくつかの従来のTCP/IP実装においては、例えば、パフォーマンスを向上させるために、IP層およびTCP層が単一のデータ処理モジュールとして実装される。このような場合、例えば、既存の実装に対する修正を最小限に抑えるために、図5に示す別のロケーションに仮想接続層502を追加すると有利な場合がある。既存の実装に対する修正を最小限に抑えることによって、新しいモジュールによってもたらされるエラーの数を低減することができ、したがって、システムの後修正がより安定して行われる。図5では、仮想接続層502が統合されたTCP/IP層504とデバイスドライバ402(すなわち、図4のデバイスドライバ402と同じデバイスドライバ)の間に配置されている。発信データは、TCP/IP層504によって処理された後、仮想接続層502によってインターセプトされる。着信データは、TCP/IP層504に渡される前に、仮想接続層502によってインターセプトされる。
図6は、本発明の一実施形態に従って仮想接続層サービスを実装するのに適した、例示的仮想接続モジュールを示す。仮想接続モジュール600は、ローカル接続変換テーブル604中の情報に基づいて通信接続を変換するよう構成された、ローカル接続変換(LCT)コンポーネント602を含む。接続管理コンポーネント606は、ローカル接続変換テーブル604中のエントリを、リモートピア(すなわち、図2のリモートコンピュータ214)における対応エントリと同期させるよう構成されている。ピアネゴシエーションコンポーネント608は、複数ピアと仮想接続プリファランス(preference)を交換し、また、ピアが送った仮想接続プロトコルメッセージを認証するための基礎をネゴシエートする。
仮想接続モジュール600は、リモート仮想接続Subscribe−Notifyサービス(図6には示していないが、図10を参照しながら以下に説明する)へのローカルプロキシとしての役割を果たす、仮想接続Subscribe−Notifyサービス(VC SNS)プロキシコンポーネント610を含む。ローカルコンポーネント610が利用する特定のリモート仮想接続Subscribe−Notifyサービスを、例えば、動的ホスト構成プロトコル(DHCP)を介して構成することができる。図6に示す例では、VC SNSプロキシ610はユーザモードで実行されるが、一方、仮想接続モジュール600の残りのコンポーネントはカーネルモードで実行される。破線612は、実行している仮想接続モジュール600における、カーネルモードとユーザモードの境界を示す。コンピュータのオペレーティングシステムという状況でのカーネルモードとユーザモードの使用については、当技術分野ではよく知られており、ここで詳説する必要はない。
ローカル接続変換テーブル604は、ピア間の各アクティブ通信接続についてのエントリを含む。本発明の一実施形態では、エントリは、通信接続が確立されたときに追加され、通信接続が終了したときに削除される。ローカル接続変換テーブル604中の各エントリは、元の接続仕様を現在の接続仕様に関連付ける。接続仕様は、1つまたは複数の通信接続パラメータを含み、特定のネットワークプロトコル層または1組のネットワークプロトコル層の通信接続を一意に識別することができる。本発明の一実施形態では、元の接続仕様と現在の接続仕様それぞれの間に1対1の関係がある。
接続仕様は、例えば、その接続に参加している各ピアのネットワーク接続ポイント識別子(ネットワークアドレス)、IPネットワークにおけるIPアドレス、TCP/IPネットワークにおけるIPアドレスおよびTCPポート、またはUDP/IPネットワークにおけるIPアドレスおよびUDPポートを含むことができる。本発明の一実施形態では、アクティブ通信接続に参加しているピアがどれもそのネットワーク接続ポイントを変更しなかった場合、対応するエントリの現在の接続仕様は、元の接続仕様と同じである。しかし、ピアのうち1つまたは複数が移動した場合(すなわち、そのネットワーク接続ポイントを変更した場合)には、現在の接続仕様が更新される。本発明の一実施形態では、通信接続の寿命の間、元の接続仕様が変更されることはない。
次の表は、TCPおよびUDPなどの上位層プロトコルをサポートするIPベースのコンピュータネットワークの接続仕様の例である。
Figure 0004494891
この表には、ローカルピアのIPネットワーク接続ポイントを識別するローカルIPアドレス、および、そのローカルピアにおける上位層プロトコルポートを識別するローカルポート番号が含まれている。ローカルピアは、複数の通信接続に参加することができる。各通信接続は、ポート番号に関連付けることができる。同様に、この表には、さらにリモートIPアドレスおよびリモートポート番号が含まれている。上位層プロトコル型は、IPネットワークによって経路指定される、ある型の上位層プロトコル、例えば、TCPまたはUDPを表す。本発明の一実施形態では、ローカルおよびリモートIPアドレス、上位層プロトコル型、およびローカルおよびリモートポート番号の組合せによって、通信接続が指定される。
仮想接続モジュール600は、発信データストリーム中の各発信ネットワークプロトコル単位(例えば、IPデータグラム)、および着信データストリーム中の各着信ネットワークプロトコル単位をインターセプトすることができる。本発明の一実施形態では、仮想接続モジュール600によってインターセプトされた各発信ネットワークプロトコル単位について、ローカル接続変換コンポーネント602が、その発信ネットワークプロトコル単位に関連付けられた接続仕様を、元の接続仕様から現在の接続仕様に変換する。さらに、仮想接続モジュール600によってインターセプトされた各着信ネットワークプロトコル単位について、ローカル接続変換コンポーネント602が、その着信ネットワークプロトコル単位に関連付けられた接続仕様を、現在の接続仕様から元の接続仕様に変換する。図7に、IPベースのネットワークのための例示的変換オペレーションを示す。
図7で、ローカル接続変換テーブル604は、現在の接続仕様704に関連付けられた元の接続仕様702を含む。元の接続仕様の1つ、IP:IPは、ローカルIPアドレスIPおよびリモートIPアドレスIPを含む。すなわち、アクティブ接続が最初に確立されたときに、ローカルコンピュータがアドレスIPでそのIPネットワークに接続され、リモートコンピュータがアドレスIPでIPネットワークに接続された。リモートコンピュータは、接続の寿命の間のいずれか時点で、そのIPネットワーク接続ポイントをアドレスIPに変更しており、その結果、現在の接続使用IP:IPが元の接続使用IP:IPとは異なる。現在の接続仕様IP:IPは、同じローカルIPアドレスIPを備えているが、リモートIPアドレスIPは、元のリモートIPアドレスIPから変わっている。リモートポート番号も同様に変化する場合があるが、ただしこの詳細は図7には示していない。
発信プロトコル単位706は、仮想接続モジュール600(図6)によってインターセプトされ、変換のためにローカル接続変換コンポーネント602に提出される。各プロトコル単位706、708、710、712は、IPデータグラム、TCPデータグラム、UDPデータグラムなどである。各プロトコル単位706、708、710、712は、発信元(From)IPアドレスおよび宛先(To)IPアドレスに関連付けられている。IPアドレスは、例えばIPデータグラムの場合にはプロトコル単位中に組み込まれている場合があり、あるいは、プロトコル単位のコンテキスト、例えば、下位プロトコル層から構文解析された、またはデータストリーム中の前のプロトコル単位から構文解析された、または上位プロトコル層によって明白に指定された文脈データの一部、またはオペレーティングシステム環境の一部の場合がある。
ローカル接続変換コンポーネント602は、発信プロトコル単位706の接続仕様を判断する。発信プロトコル単位706の場合、これは元の接続仕様IP:IPに対応する。ローカル接続変換コンポーネント602は、次いで、ローカル接続変換テーブル604のルックアップを行い(周知の技術を利用して)、対応する現在の接続仕様、この場合は現在の接続仕様IP:IPを見つける。ローカル接続変換コンポーネント602は、(場合によって、そのプロトコル単位中の、またはそのプロトコル単位のコンテキスト中の)発信プロトコル単位706のIPアドレスおよび他のどの接続仕様関連のものも、現在の接続仕様IP:IPのデータと置き換え、その結果、変換された発信プロトコル単位708が得られる。
同様に、着信プロトコル単位710も、仮想接続モジュールによってインターセプトされ、変換のためにローカル接続変換コンポーネント602に提出される。ローカル接続変換モジュールは、着信プロトコル単位710が現在の接続仕様IP:IPに関連付けられていると判断し、ローカル接続変換テーブル604のルックアップを行って、対応する元の接続仕様IP:IPを見つける。次いで、発信プロトコル単位710の接続仕様関連のものを置き換えて、変換された着信プロトコル単位712を提供する。着信プロトコル単位712は、次いで、より上位のプロトコル層に渡される。本発明の一実施形態では、上位プロトコル層、特にアプリケーション層は、元の接続仕様に対応する接続仕様情報を参照し、一方、下位プロトコル層は、現在の接続仕様に対応する接続仕様情報を参照する。
図6に戻ると、本発明の一実施形態では、ローカルピア(すなわち、ローカル接続変換テーブル604が常駐しているピア)が移動したことを理由に、あるいはリモートピアが移動したことを理由に、現在の接続仕様を更新することができる。本発明の一実施形態では、接続に参加している各ピアがそれ自身の仮想接続モジュール600を備えており、したがって、それ自身のローカル接続変換(LCT)テーブル604を備えている。本発明の一実施形態では、接続に参加しているピアの1つが移動した場合に、参加している各ピアにおいて、対応する現在の接続仕様が更新される。仮想接続モジュール600は、ネットワーク接続ポイントにおけるローカルな変更を検出することができる場合があり、あるいは、別のローカルモジュール、例えば、その変更を開始したローカルモジュールによって、そのローカルな変更を知らされることが可能である。ローカルに検出された変更によって、まず、ローカル接続変換(LCT)テーブル604の更新が行われる。次の表は、IPベースのネットワークの場合の、ローカル接続変換(LCT)テーブルの一部の更新例を示す。
Figure 0004494891
表に示してある更新例では、IPアドレスIPを有するローカルピアとIPアドレスIPを有するリモートピアとの間にアクティブTCP/IP接続が存在する。この例では、接続仕様は、ローカルピアのIPアドレスとポート番号(もともとはIPとポート)、リモートピアのIPアドレスとポート番号(すなわち、IPとポート)、および上位層プロトコル型(すなわちTCP)を含む5個組(5−tuple)である。ローカルピアは、そのIPアドレスとポート番号とがIPとポートとになるよう、そのIPネットワーク接続ポイントを変更する。変更前、元の接続仕様と現在の接続仕様は同じであり、すなわち5個組(IP、ポート、IP、ポート、TCP)である。変更後、元の接続仕様とは同じであるが、現在の接続仕様は新しいIPネットワーク接続ポイントで更新され、すなわち、5個組(IP、ポート、IP、ポート、TCP)になる。
本発明の一実施形態では、リモートピア(複数リモートピア)においローカル接続テーブル604を更新するために、ローカル接続管理コンポーネント606にローカルネットワーク接続ポイントの変更が知らされる。ローカル接続管理コンポーネント606は、リモート接続管理コンポーネント(複数リモート接続管理コンポーネント)に、少なくとも3つの仮想接続メッセージ、すなわち、接続更新(CU)、接続更新応答(CUA)、および接続更新要求(CUR)を伝達することができる。
接続更新メッセージは、変更が生じたピアから通信接続に参加しているリモートピアに対して、変更接続仕様情報を運ぶことができる。本発明の一実施形態では、ピアは、そのネットワーク接続ポイントを変更すると、それがアクティブ通信接続を確立しているピアのそれぞれに対して接続更新メッセージを送る。接続更新応答メッセージは、接続更新メッセージを受信したことを認めるために、接続更新メッセージへの返信として送信される。接続更新応答メッセージは、接続更新メッセージと同じ情報を含む場合がある。接続更新要求メッセージは、例えば、ピアが、受信側ピアがネットワーク接続ポイントを変更したと通知されたが、受信側ピアが接続更新メッセージをそのピアに送らなかった場合に、そのピアが、接続更新メッセージを受信側ピアに要求するために送ることができる。
図8は、仮想接続モジュールを備えた通信中のピア同士が、一方のピアがそのIPネットワーク接続ポイントを変更した場合に、IPベースの通信接続を維持するための仮想接続メッセージを交換する例を示している。図8において、ピアA802は、IPネットワークを介してピアB804とアクティブ通信接続を確立している。ピアA802は、IPアドレスIPでIPネットワークに接続しており、ピアB804は、もともとIPアドレスIPでIPネットワークに接続している。この接続の寿命の間に、ピアB804は、そのIPネットワーク接続ポイントをIPアドレスIPに変更する。この変更を、ピアB804がピアB806に移動(破線矢印で示す)したとして、図8に図式的に示してある。
移動の後、ピアB806は、上述のようにそのローカル接続変換(LCT)テーブルを更新し、次いで、ピアA802に接続更新メッセージ808を送る。この移動の後、ピアA802は、接続更新メッセージ808を受け取るまでの間、ピアB806の新しいIPネットワーク接続ポイントを知らないためにピアB806と通信することができない場合がある。接続更新メッセージ808は、ピアB806の新しいネットワーク接続ポイントを識別する情報、例えば、新しいIPアドレスIPと新しいポート番号ポートを含む。さらに、接続更新メッセージ808は、元の接続に関する情報、例えば、元のIPアドレスIPとポート番号、ポートなどの元の接続識別子、元の接続仕様、または元の接続に対応する接続トークンを含む。適切な接続トークンは、例えば、元の接続仕様の暗号化ハッシュ、または通信中のピアの一方が維持している接続カウントなどの場合がある。
ピアA802の仮想接続モジュールが接続更新メッセージ808を受け取ると、接続更新メッセージ808は、接続管理コンポーネント(例えば、図6の接続管理コンポーネント606)によって構文解析され、対応する元の接続仕様が判断される。例えば、接続更新メッセージ808は、元の接続仕様を含むことができ、または、元の接続仕様をローカル(ピアA802にとって)コンテキストと組み合わせて再構築するのに十分な情報を含むことができる。あるいは、接続更新メッセージ808が元の接続トークンを含む場合には、接続トークンを接続仕様と関連付けるテーブル(または同様のデータ構造)のルックアップを行うことによって、元の接続仕様を判断することができる。元の接続仕様が入手できると、ローカル接続変換テーブル(例えば、図6のローカル接続変換テーブル604)中の対応する現在の接続仕様を更新することができる。次の表は、ピアA802における更新の態様を示す。
Figure 0004494891
ピアB804の移動前、元の接続仕様と現在の接続仕様は共に同じ5個組、すなわち、ピアA802のIPアドレスとポート番号(すなわちIPとボート)、ピアB804のIPアドレスとポート番号(すなわちIPとボート)、および上位層プロトコル型、この場合TCPである。ピアB804の移動後、現在の接続仕様はピアBの新しいネットワーク接続ポイントで更新され(すなわち、IPとポートがIPとポートになる)、現在の接続仕様の5個組は(IP、ポート、IP、ポート、TCP)になる。元の接続仕様は、この移動による影響を受けない。
ピアA802は、接続更新メッセージ808に応答して、接続更新応答メッセージ810をピアB806に送る。接続更新応答メッセージ810は、ピアA802における接続更新オペレーションの成功または失敗をピアB806に通知することができる。接続更新応答メッセージ810の受信の後、ピアA802とピアB806は、再びIPベースの通信を始めることができる。さらに、本発明の一実施形態では、仮想接続層よりも上位のプロトコル層およびアプリケーション層が、ピアB806のIPネットワーク接続ポイントの変更を認識しない。
図8では、ピアB806がピアA802に送る接続更新メッセージ808に加えて、ピアB806は、仮想接続Subscribe−Notifyサービス(VC SNS)814にも接続更新メッセージ812を送る。本発明の一実施形態による仮想接続Subscribe−Notifyサービスについて、図10を参照しながら以下に説明する。
図9は、図8の仮想接続メッセージの順番の例を示す。図9を見ると、ピアB806は、まず、接続更新メッセージ812を仮想接続Subscribe−Notifyサービス814に送る。同時に(実際上)、ピアB806は、接続更新メッセージ808をピアA802に送る。これに応答して、ピアA802は、接続更新応答メッセージ810をピアB806に送る。接続更新メッセージ808および接続更新応答メッセージ810は、2ピア間の通信接続を更新するための仮想接続プロトコルを完了するのに適した、仮想接続メッセージペアの例である。図8および図9に示す例は、より単純な仮想接続メッセージプロトコルの例の1つである。本明細書では、それについて、比較のために以下の例で詳細に説明している。
図8に示す例から次に移る前に、ローカル接続変換テーブルが更新される際に生じる可能性がある特殊なケースについて説明するのが有益であろう。ピアBがあるネットワーク接続ポイント(IP、ポート)から別のネットワーク接続ポイント(IP、ポート)に移動した後、ピアBは、元のネットワーク接続ポイントを放棄することができる。あるピアが放棄したネットワーク接続ポイントを、別のピアが自分のものとすることができ、または別のピアに再割り当てすることができる。例えば、IPv4ネットワークサービスプロバイダは、IPv4アドレスのプールからIPv4アドレスを通信ピアに割り当て、次いで、そのピアがそのIPv4アドレスを放棄または解除すると、再割当てできるよう、そのIPv4アドレスをプールに返すことによって、IPv4アドレスのプールを管理することができる。ピアC(図8には図示せず)は、ピアBの移動後にネットワークに接続した場合、ピアBが放棄したネットワーク接続ポイントを占有することができる。この場合、ピアAが依然としてピアBとアクティブ通信接続を確立している間に、ピアCがピアAと通信接続を確立すると、ローカル接続変換テーブルでコンフリクトが生じる場合がある。次の表は、ピアAにおけるローカル接続変換テーブルの態様を示す。
Figure 0004494891
この表は、ピアAのネットワーク接続ポイント(IP、ポート)、ピアBの元のネットワーク接続ポイント(IP、ポート)および上位層プロトコルTCPを含む元の接続仕様を有する、第1のローカル接続変換テーブルエントリを示している。この第1のエントリの現在の接続仕様は、ピアBがそのネットワーク接続ポイントを(IP、ポート)に変更したことを示している。すなわち、第1のエントリは、図8示したシナリオに対応する。この表はまた、ピアAのネットワーク接続ポイント(IP、ポート)からピアCのネットワーク接続ポイント(IP、ポート)へのTCP/IP接続として指定されている元の接続を有する、第2のローカル接続変換テーブルエントリも示している。対応する現在の接続仕様は同じである。
IPがIPと同じであり、ポートがポートと同じである場合、ローカル接続変換テーブル中の第1と第2のエントリは、元の接続仕様が同じであり、すなわち、それらはコンフリクトを起こしている場合がある。この例では、接続を受け付ける前に、その接続をピアCから(IP、ポート)にローカルに再接続することにより、ピアAにおけるコンフリクトを回避することができる。この場合、ポートはポートとは異なるポートである。同様の戦略が、非IPベースのコンピュータネットワークの場合も利用可能である。元の接続仕様と現在の接続仕様の間の1対1の関係を保証するために、現在の接続仕様について同様のコンフリクトチェックおよびアクションを要求することができる。
接続更新メッセージを生成できる悪意あるピアは、仮想接続機能を利用しているピアに損害を与えることができる場合がある。本発明の一実施形態では、無認可の接続更新を防ぐために、各仮想接続メッセージが、各仮想接続メッセージを信頼できるピアからのものとして認証する暗号化署名を含むことができる。認証の基礎を確立するために、仮想接続モジュールを組み込んでいるピアは、通信接続を確立する際に一連の仮想接続メッセージを交換することができる。例えば、ピア同士が、Elliptic Curve Diffie−Hellman公開鍵交換スキームを利用して暗号化認証のための基礎を確立することができる。当技術分野ではこのスキームおよびその他の同様の適切なスキームが知られており、ここで詳説する必要はない。暗号化認証の基礎はまた、所望によりメッセージ暗号化のために利用することもできる。
例えば、通信接続を確立する際に送受信される一連の仮想接続メッセージ(ピアネゴシエーションメッセージ)を、図6のピアネゴシエーションコンポーネント608によって処理することができる。ピア同士がピアネゴシエーションメッセージを使って交換するさらなる情報には、ピアが知っている、自分のネットワーク接続ポイント、特定のピアが移動可能であるかどうかの指示、および特定のピアの処理能力の指示が含まれ得る。ピアのネットワーク接続ポイントを利用して、そのピアが、以下に説明するようにNAT(Network Address Translation)後方であるかどうかを判断することができる。ピアの処理能力は、例えば、通信接続の安全のためにピアが選択した暗号化認証スキームに影響を与える場合がある。
本発明の一実施形態では、仮想接続Subscribe−Notifyサービスによって、通信中のピアは、ピアのネットワーク接続ポイントの変更イベントの通知を依頼し、ネットワーク接続ポイント変更イベントを発行し、通知依頼をしておいた、発行ネットワーク接続ポイント変更イベントの通知を受け取ることができる。Subscribe−Notifyサービス(またはPublish−Subscribeサービス)は当技術分野で知られており、したがって、ここでは、その詳細のほんの一部だけを説明する。
本発明の一実施形態では、ネットワーク接続ポイント変更イベントは、ピアがそのネットワーク接続ポイントを変更した場合に、例えば、図8のピアBが第1のネットワーク接続ポイント(IP、ポート)から第2のネットワーク接続ポイント(IP、ポート)に移動した場合に発生する。ネットワーク接続ポイント変更イベントの通知依頼には、通知依頼側ピアから仮想接続Subscribe−Notifyサービスに通知依頼メッセージを送ることが含まれる。通知依頼メッセージは、例えば、通知依頼側ピアがアクティブに通信を行っている先のピアを接続した、特定のネットワーク接続ポイントを指定することができる。通知依頼メッセージはまた、仮想接続Subscribe−Notifyサービスが、その通知依頼にマッチするイベントの通知を送ることができる通知アドレスも含むことができる。ネットワーク接続ポイント変更イベントの発行には、イベントが発生したピアから、仮想接続Subscribe−Notifyサービスに、特定のピアがそのネットワーク接続ポイントを第1の(前の、または元の)ネットワーク接続ポイントから第2の(または現在の)ネットワーク接続ポイントに変更したことを明記した発行メッセージを送ることが含まれる場合がある。接続更新メッセージは、適切な発行メッセージの例である。
発行メッセージに応答して、仮想接続Subscribe−Notifyサービスは、その通知依頼のそれぞれをチェックして、発行イベントにマッチする通知依頼の通知アドレスに、通知メッセージを送る。通知メッセージは、移動したピアの現在のネットワーク接続ポイントを含むことができ、したがって、例えば、通知を受けたピアは、その移動したピアに対して接続更新要求メッセージを送ることができる。通知メッセージは、移動したピアが発行した接続更新メッセージのコピーを含むことができる。本発明の一実施形態では、通知依頼が、イベントを発行したピアの移動元のネットワーク接続ポイントを指定している場合、すなわち、通知依頼が、発行側ピアの前のネットワーク接続ポイントを指定している場合でも、その通知依頼が発行されたネットワーク接続ポイントの変更にマッチする。別の実施形態では、ネットワーク接続ポイント変更イベントを、ネットワーク接続ポイント変更イベント通知依頼にマッチさせるステップは、以下に説明するさらなるステップおよび/または基準を含む場合がある。
図10は、本発明の実施形態による、例示的モジュラー仮想接続Subscribe−Notifyサービスアーキテクチャを示す。仮想接続Subscribe−Notifyサービス1000は、ピア(例えば、図8のピアA802およびピアB804)から通知依頼メッセージ1004を受け取って構文解析し、次いで、対応する通知依頼1006を通知依頼データベース1008に記憶する通知依頼モジュール1002を含む。発行モジュール1010は、ピアから発行メッセージ1012を受け取って構文解析し、構文解析したネットワーク接続ポイント変更イベント1014をマッチモジュール1016に提出する。マッチモジュール1016は、通知依頼データベース1008をサーチして、各ネットワーク接続ポイント変更イベント1014にマッチする通知依頼を探し、マッチする通知依頼のリスト1018を通知モジュール1020に提出する。通知モジュール1020は、通知メッセージ1022を生成して、リスト1018中のマッチする通知依頼の通知アドレスに送る。
1つまたは複数の仮想接続Subscribe−Notifyサービスが、仮想接続を組み込んでいるコンピュータネットワークにおける接続更新メッセージの唯一のソースである可能性がある。しかし、本発明の一実施形態では、可能な限り、移動したピアに、接続更新メッセージを直接、通信相手のピアに送信させるポリシーを実装し、また、仮想接続Subscribe−Notifyサービスの役割を、接続更新メッセージを直接、送ること(「直接接続更新」)が不可能な状況のためにとっておくことによって、スケーラビィリティを向上させることができる。直接接続更新が可能ではない状況の例には、通信接続の複数参加者が同時に移動した場合、および、移動したピアがネットワークアドレス変換(NAT)後方のピアと通信している場合が含まれる。
図11は、図8に示す例を拡張して、通信接続の複数参加者が同時に移動した場合に仮想接続Subscribe−Notifyサービス814が果たす役割を示している。図8に関しては、図11のピアA802は、IPネットワークを介してピアB804とアクティブ通信接続を確立している。図11には明確に示していないが、ピアA802およびピアBピアB804は、互いのネットワーク接続ポイントの変更の通知を依頼している。すなわち、ピアA802は、IPで接続されているピア(すなわち、ピアB804)のネットワーク接続ポイントの変更の通知を依頼する通知依頼メッセージを仮想接続Subscribe−Notifyサービス814に送っており、ピアB804は、同様に、IPで接続されているピア(すなわち、ピアB802)によって生成されたネットワーク接続ポイント変更イベントの通知を依頼する通知依頼メッセージを仮想接続Subscribe−Notifyサービス814に送っている。
再び、図8に関しては、ピアB804は、そのネットワーク接続ポイントを変更し、接続更新メッセージ812を仮想接続Subscribe−Notifyサービス814に送ることによってネットワーク接続ポイント変更イベントを発行し、ピアA802に接続更新メッセージ(図11には図示せず)を送ることによって、直接、ピアA802との接続を更新しようと試みる。しかし、図11では、ピアA802が、同時に(例えば、ピアA802が接続更新メッセージをピアB806から受け取る前に)、そのIPネットワーク接続ポイントをIPアドレスIPからIPアドレスIPに変更しており、すなわちピアA802はピアA1102に移動している。ピアA1102は、移動後、本発明の一実施形態に従って、接続更新メッセージ1104を仮想接続Subscribe−Notifyサービス814に送ることによってネットワーク接続ポイント変更イベントを発行し、次いで、ピアB802に接続更新メッセージ(同じく図11には図示せず)を送ることによって、ピアB802とのその接続を直接、更新しようと試みる。
両方のピア(ピアA802、ピアB804)が移動しているため、どちらの直接接続更新も成功しない。ピアA1102およびピアB806は、支援なしに通信を続けられない場合がある。本発明の一実施形態では、仮想接続Subscribe−Notifyサービス814が、両方のピア(ピアA802、ピアB804)が同時に移動したことを検出して、少なくとも一方のピアに、他方が移動したことを通知することにより、支援を提供する。仮想接続Subscribe−Notifyサービス814は、例えば、各ピアが、構成可能な時間内に(例えば、1秒以内に)、ネットワーク接続ポイント変更イベントを仮想接続Subscribe−Notifyサービス814に発行した場合に、2つのピアが同時に移動したと判断することができる。
図11に示す例では、仮想接続Subscribe−Notifyサービス814は、接続更新メッセージ1104および接続更新メッセージ812を、直接接続更新の発生にしてはあまりに接近して受け取ったため、ピアA802とピアB804とが同時に移動したと判断する。その結果、仮想接続Subscribe−Notifyサービス814は、ピアB806に、ピアA802のネットワーク接続ポイントが変更されたことを通知する、通知メッセージ1106を送る。通知メッセージ1106は、ピアB806が、対応する元の接続仕様および現在の接続仕様、例えば、ピアA1102の元のIPアドレスIPおよび現在のIPアドレスIPを判断できるようにする情報を含む。
通知メッセージ1106を受け取った結果、ピアB806は、ピアA1102の現在のネットワーク接続ポイントを判断することができる。ピアB806とピアA1102との間の接続を更新するために、ピアB806は、接続更新(CU)メッセージ1108をピアA1102に送り、また、本発明の一実施形態に従って、ピアA1102は、接続更新応答(CUA)メッセージ1110で返信する。AおよびBにおいてローカル接続変換テーブルの更新が成功した後は、ピアA1102とピアB806の間の通信接続が更新されている。
図12は、図11の仮想接続メッセージの順番の例を示す。図12を参照すると、ピアB806は接続更新メッセージ812を、ピアA1102は接続更新メッセージ1104を、仮想接続Subscribe−Notifyサービス814に送る。接続更新メッセージ812、1104は、時間的にきわめて接近して仮想接続Subscribe−Notifyサービス814に到着し、これによって、仮想接続Subscribe−Notifyサービス814は、ピアA1102とピアB806が同時に移動したことを警告される。ピアA1102、ピアB806が通信できなくなることを防ぐために、仮想接続Subscribe−Notifyサービス814は、通知メッセージ1006をピアB806に送る。もちろん、同じ結果で、接続更新メッセージ1104が接続更新メッセージ812よりも前に到着する場合もあり、図11を参照しながら説明した例の状況においては、通知メッセージをピアA1102、またはピアB806、またはその両方に送ることができる。
ピアB806は、通知メッセージ1106を受け取ると、接続更新メッセージ1108をピアA1102に送るよう促される。接続更新メッセージ1108に応答して、ピアA1102は、接続更新応答メッセージ1110をピアB806に送り、このシーケンスを完了する。
NATなしのコンピュータネットワークの場合、および/またはピアがNAT後方ではないことがわかっている場合、通知メッセージ1106は、接続更新メッセージ1108の役割を果たすことができ、返信としてピアA1102に送られる接続更新応答1110は接続更新を完了することができ、したがって、接続更新メッセージ1108が重複することになる。NATを備えたコンピュータネットワークでは、接続更新要求メッセージ(図12には図示せず)が、下記に説明するような有益な役割を果たす。
NAT(Network Address Translation)は当技術分野では知られており、したがって、ここではその特徴のほんのいくつかだけについて説明する。コンピュータネットワークによっては、各ネットワーク接続ポイントがネットワークアドレスに関連付けられていることがあり、例えば、IPネットワークにおいては、各IPネットワーク接続ポイントをIPアドレスに関連付けることができる。一般に、ネットワークアドレスはサイズが制限されており、例えば、IPv4ネットワークでは、ネットワークアドレスが32ビットに制限されている。1組のネットワークアドレスを、アドレス空間として理解することができる。ネットワークアドレスのサイズが制限されているネットワークでは、ネットワークアドレスが足りなくなる可能性があり、すなわち、ネットワークアドレス空間がサポートできるよりも多くのネットワーク接続ポイントが所望される可能性がある。NATは、例えば、既存のアドレス空間中のある1つのネットワークアドレスで、その既存のアドレス空間に新しいアドレス空間を付加する方法を提供する。NATメカニズムの例の詳細については、非特許文献3を参照されたい。
この記載においては、例えば、図8を参照しながら説明した例が発生する既存のアドレス空間を公共アドレス空間と呼び、また、NATによってこの公共アドレス空間に付加されるアドレス空間を専用アドレス空間と呼ぶ。専用アドレス空間中のピア(すなわち、専用ネットワークアドレスに関連付けられたネットワーク接続ポイントを有するピア)は、公共アドレス空間中のピア(すなわち、公共ネットワークアドレスに関連付けられたネットワーク接続ポイントを有するピア)に対し、NAT後方であると言われる。
本発明の一実施形態では、NATを組み込んでいるコンピュータネットワーク特有の特徴は、公共アドレス空間中のピア(公共ピア)が専用アドレス空間中のピア(専用ピア)と通信することが、最初に専用ピアが公共ピアに接触しない限り、できない場合があることである。さらに、ピアをそのネットワークアドレスによって識別するというのがNATメカニズムの一般的なやり方であり、そのため、新たなネットワーク接続ポイントに移動した、新たなネットワークアドレスを備えたピアは、NATメカニズムにとっては異なるピアに見える場合がある。そのような場合には、移動した公共ピアは、直接、専用ピアに接続更新メッセージを送ることができなくなる。本発明の一実施形態では、仮想接続Subscribe−Notifyサービスは、接続更新を容易にすることができる。
図13は、NATを組み込んでいるコンピュータネットワークにおいて、仮想接続Subscribe−Notifyサービス814が果たす役割を説明する図8を参照しながら説明した例の変形を示す。図13で、ピアA1302は、IPベースのネットワークを介して、ピアB804と通信接続を確立している。ピアA1302は、破線で示すように、NAT1304後方である。ピアA1302は、それに関連付けられた少なくとも2つのIPアドレス、すなわち、NAT1304後方の専用アドレス空間中のIPアドレス、IP、および公共アドレス空間中のそのIPアドレス、IPNATを有する。図13に示す例では、ピアA1302は移動しない。ピアB804は、もともとは公共アドレス空間中のIPアドレスIPに位置しているが、その後、同じく公共アドレス空間中のIPアドレスIPに移動する。
ピアA1302は、通知依頼メッセージ1306を仮想接続Subscribe−Notifyサービス814に送ることによって、ピアB804が発行するネットワーク接続ポイント変更イベントの通知を依頼する。通知依頼メッセージ1306を送ることによって、専用ピアA1302はまた仮想接続Subscribe−Notifyサービス814との通信接続も確立し、この通信接続を介して、仮想接続Subscribe−Notifyサービス814はその後のメッセージ、例えば通知メッセージ1308を送ることができる。本発明の一実施形態では、ピアB804は、ピアA1302が専用ネットワークアドレスに関連付けられていることを判断できる。ピアA1302が専用ネットワークアドレスに関連付けられているとピアB804が判断した場合、本発明の一実施形態では、ピアB804は、対処することができないため、すなわち、専用ネットワーク接続ポイント変更イベント通知に基づいて、ピアA1302に接続更新メッセージを送ることができないため、ピアA1302のネットワーク接続ポイントの変更の通知を依頼しない。
ピアB806は、IPアドレスIPに移動すると、接続更新メッセージ812を仮想接続Subscribe−Notifyサービス814に発行する。ピアB806が接続更新メッセージ(図13には図示せず)を直接、ピアA1302に送ろうとした場合、専用ピアA1302がその新しいIPアドレスIPで前にピアB806に接触していないため、その試みは失敗する可能性がある。本発明の一実施形態では、ピアB806は、ピアA1302とさらに通信を行う前に、ピアA1302からの接触を待つ。
接続更新メッセージ812を受け取った結果、仮想接続Subscribe−Notifyサービス814は、その通知依頼データベースをサーチして、専用ピアA1302がピアB804のネットワーク接続ポイントの変更の通知を依頼していると判断する。図11を参照しながら説明した例とは対照的に、仮想接続Subscribe−Notifyサービス814は、ピアA1302が専用ピアであると判断すると、できるだけ早く、通知メッセージ1308をピアA1302に送る。通知メッセージ1308は、ピアA1302が接続更新要求メッセージ1310をピアB806の新しいIPアドレスIPにてピアB806に送るよう促す。ピアA1302が最初にピアB806に接触すると、ピアB806は、接続更新メッセージ1312で接続更新要求メッセージ1310に応答することができる。ピアA1302が接続更新メッセージ1312を受け取ると、仮想接続接続更新プロトコル(virtual connectivity connection update protocol)が完了する。
図14は、図13を参照しながら説明した仮想接続メッセージの順番の例を示す。図14を見ると、ピアA1302は、ピアB804との通信接続を確立した直後、仮想接続Subscribe−Notifyサービス814に、ピアBが発行したネットワーク接続ポイント変更イベントの通知を依頼する通知依頼メッセージ1306を送る。ピアB804はピアB806に移動し、接続更新メッセージ812を仮想接続Subscribe−Notifyサービス814に送ることによってネットワーク接続ポイント変更イベントを発行する。ピアA1302が専用である(すなわち、専用ピアである)結果、またそうであるために、仮想接続Subscribe−Notifyサービス814は通知メッセージ1308を生成し、さらに遅れることなく、それをピアA1302に送る。ピアA1302は、通知メッセージ1308を受け取った結果、接続更新要求メッセージ1310を、新しいIPアドレスIPのピアB806に送る。ピアB806は、この要求に応答して、接続更新メッセージ1312を送る。接続更新要求メッセージ1310および接続更新メッセージ1312は、2ピア間の通信接続を更新するための仮想接続プロトコルを完了するのに適した、仮想接続メッセージペアの例である。
図15は、図13に示す例を拡張して、通信接続の複数参加者が同時に移動し、それらの参加者のうち少なくとも1つがNAT後方である場合に、仮想接続Subscribe−Notifyサービス814が果たす役割を示している。図13に関しては、図15の専用ピアA1302がピアB804と通信接続を確立しており、また、ピアA1302が、ピアB804によって発行されるネットワーク接続ポイント変更イベントの通知を依頼している。ピアB804は、そのネットワーク接続ポイントをIPアドレスIPからIPアドレスIPに変更し、また、ピアB806は、移動後、接続更新メッセージ812を使って、ネットワーク接続ポイント変更を仮想接続Subscribe−Notifyサービス814に発行する。
図15では、ピアA1302も、そのネットワーク接続ポイントを専用IPアドレスIPから専用IPアドレスIPA'に変更する。すなわち、NAT1304後方のピアA1302が、NAT1504後方のピアA1502に移動する。NAT1304はNAT1504と同じ場合もあり、または、NAT1504は異なる場合もある。すなわち、IPアドレスIPA'は、IPアドレスIPと同じ専用アドレス空間にある場合もあり、または異なる専用アドレス空間、例えば、異なる組織が管理する専用アドレス空間中にある場合もある。専用ピアA1502は、移動後、(公共アドレス空間中に位置する)仮想接続Subscribe−Notifyサービス814および公共ピアBからメッセージ(例えば、通知メッセージ)を受け取ることができなくなる場合がある。しかし、ピアA1502は、接続更新メッセージ1506を仮想接続Subscribe−Notifyサービス814に送ることによってそのネットワーク接続ポイント変更イベントを発行し、これによって、(その新しいIPアドレスIPの)専用ピアA1502と仮想接続Subscribe−Notifyサービス814との間の、NAT1504を介した通信が再構築される。
この例では、ピアB806は、ピアA1302が専用ピアであると判断したので、ピアB806は接続更新メッセージを直接、ピアA1302に送ろうとはしない。ピアA1502は、移動後、接続更新メッセージ(図15に図示せず)を直接、ピアB804に送ろうとするが、しかし、ピアB804も移動しているため、その試みは失敗する。図11を参照しながら説明した例に関しては、仮想接続Subscribe−Notifyサービス814からの通知メッセージが仮想接続プロトコルを進めることができる。図11を参照しながら説明した例とは異なり、ピアB806への通知メッセージは、公共ピアB806が専用ピアA1502に接触できるようにはしない。代わりに、仮想接続Subscribe−Notifyサービス814が、ピアB806の新しいIPアドレスIPをピアA1502に知らせる通知メッセージ1508を、ピアA1502に送る。専用ピアA1502は、次いで、ピアB806に接続更新メッセージ1510を送り、それによってピアB806が接続更新応答メッセージ1512で返信できるようにし、またそれを促す。
図16は、図15の仮想接続メッセージの順番の例を示す。図16を見ると、ピアB806は、接続更新メッセージ812を仮想接続Subscribe−Notifyサービス814に送る。その後すぐ、ピアA1502は、接続更新メッセージ1506を仮想接続Subscribe−Notifyサービス814に送る。仮想接続Subscribe−Notifyサービス814は、接続更新メッセージ812、1506を時間的に接近して受け取ったことに応答して、通知メッセージ1508をピアA1502に送る。ピアA1502は、通知メッセージ1508に応答して、接続更新メッセージ1510をピアB806に送る。接続更新メッセージ1510が送られた結果、ピアB806は、応答してピアA1502に接続更新応答メッセージ1512を送る。
様々な例示的シナリオに関して仮想接続プロトコルの態様を説明してきたが、次に、仮想接続プロトコルの参加者が、本発明の実施形態に従って仮想接続プロトコルメッセージを送る際に利用する、例示的決定手順について説明する。
図17は、例えば、接続管理コンポーネント606(図6)がローカルネットワーク接続ポイント(NAP)変更イベントの結果として実行する例示的ステップを示す。ステップ1702で、接続管理コンポーネント606は、ローカルネットワーク接続ポイント変更イベントが発生したことを検出する(または、そのイベントについて知らされる)。その結果、ステップ1704で、接続更新メッセージを仮想接続Subscribe−Notifyサービスに送ることによって、そのイベントが仮想接続Subscribe−Notifyサービスに発行される。ステップ1706で、接続管理コンポーネント606は、ローカル接続変換テーブル604中の次のエントリを、あるいは、前に何も選択されていない場合には最初のエントリを選択する。ステップ1708で、現在の接続仕様が新しいローカルネットワーク接続ポイントに適合するよう、選択されたローカル接続変換テーブル604のエントリが更新される。
リモートピアの対応するLCTテーブル604を更新させるために、手順はステップ1710に進み、そこで、そのリモートピアが公共アドレス空間中にあるか、または専用アドレス空間中にあるかを判断する。リモートピアが公共であると判断された場合、手順はステップ1712に進む。ステップ1712で、接続更新メッセージがリモートピアに送られる。リモートピアが専用であると判断された場合、接続管理コンポーネント606は、仮想接続Subscribe−Notifyサービスを利用して、ネットワーク接続ポイント変更イベントをリモートピアに通知する。手順はステップ1714に進む。ステップ1714で、手順は、ローカル接続変換テーブル604中の各エントリがすでに選択されているかどうかをチェックする。選択されていない場合、手順はステップ1706に戻り、次のエントリを選択する。選択されている場合は、この例示的手順は終了する。
図18は、例えば、仮想接続Subscribe−Notifyサービス1000(図10)のマッチモジュール1016が、発行されたネットワーク接続ポイント変更イベントの結果として実行する例示的手順を示す。ステップ1802で、マッチモジュール1016は、特定のピア、この場合、初期IPアドレスIPの、上述の例(例えば、図8を参照しながら説明した例)のピアB804のネットワーク接続ポイント変更イベントを受け取る。ステップ1804で、マッチモジュール1016は、通知依頼データベース1008中の次の候補通知依頼を選択する。この例では、候補通知依頼は、IPアドレスIPから移動してきたピア(すなわち、ピアB804)によって発行されたネットワーク接続ポイント変更イベントの通知依頼である。候補通知依頼が以前に選択されていない場合には、最初の候補通知依頼が選択される。候補通知依頼がない場合、手順は終了する。
ステップ1806で、通知依頼を行ったピア(通知依頼側ピア)が公共か専用かを判断する。ピアが公共か専用かを判断するための例示的決定手順を、図19を参照しながら以下に説明する。通知依頼側ピアが専用の場合、ネットワーク接続ポイント変更イベントを発行したピアは、仮想接続Subscribe−Notifyサービスを利用して、その専用ピアにイベントを通知し、手順はステップ1808に進む。ステップ1808で、通知依頼側ピアは、ネットワーク接続ポイント変更イベントを通知される。あるいは、ステップ1808で、例えば通知モジュール1020によって、通知依頼側ピアを通知すべきピアのリストに追加することができる。
通知依頼側ピアが公共の場合には、ネットワーク接続ポイント変更イベントを発行したピア(発行側ピア)は、例えば通知依頼側ピアが同時にネットワーク接続ポイントを変更することがない限り、仮想接続Subscribe−Notifyサービスの援助を受けることなく、直接、通知依頼側ピアに接続更新メッセージを送ることができる。通知依頼側ピアのそのような同時移動を検出するために、手順はステップ1810に進む。ステップ1810で、手順は、最大期間、この例では1秒間、通知依頼側ピアが同様にネットワーク接続ポイント変更イベントを発行するのを待つ。手順がステップ1810に進んだときに、通知依頼側ピアがすでにネットワーク接続ポイント変更イベントを発行している場合には、手順は、ステップ1810で待たない場合もある。
ステップ1810の後、手順はステップ1812に進み、そこで、発行側ピアが通知依頼側ピアに接続更新メッセージを送ることができた前に通知依頼側ピアが移動したかどうかについて、すなわち、最大期間が満了する前に、通知依頼側ピアもネットワーク接続ポイント変更イベントを発行したかどうかを判断する。通知依頼側ピアが「同時に」移動したと判断された場合には、手順は、通知依頼側ピアが発行側ピアの移動を通知されるよう、ステップ1808に進む。そうでない場合には、仮想接続Subscribe−Notifyサービスは、発行側ピアが通知依頼側ピアに、直接、接続更新メッセージを送ることができたと想定する。手順は、ステップ1808を飛ばして、ステップ1814に進む。本発明の一実施形態全体を通して役立つように、複数実行スレッドおよびその他の並行処理技術を利用することができるが、ステップ1810およびステップ1812を、それらのステップが、候補通知依頼側ピアの処理ループの遅延を最小限に抑えるための並行処理またはそれと同等の技術(例えば、定期的にチェックされる監視リスト)の良き候補であることを示すために、破線1816で囲んである。
候補通知依頼側ピアが専用であって、通知の試みが失敗した場合には、図15を参照しながら上記に説明した例に関しては、その専用通知依頼側ピアが発行側ピアと同様に移動した可能性がある。その場合、通知の失敗を検出した時点で、手順はステップ1810に進み、そこで、その専用通知依頼側ピアからのネットワーク接続ポイント変更イベントの発行を待つことができる。最大ステップ1810の、専用通知依頼側ピアに対する最大待機期間は、公共通知依頼側ピアに対する最大待機期間とは異なる場合がある。
ステップ1814で、手順はさらなる候補通知依頼側ピアが存在するかどうかチェックする。さらなる候補通知依頼側ピアが存在する場合には、手順は、次の通知依頼側ピアのためにステップ1804に戻る。存在しない場合には、手順は終了する。
本発明の一実施形態では、通信ピアが公共か専用かによって、特定の挙動が判断される。上述のように、少なくとも2つのネットワークアドレス、すなわち、NATサービスの公共ネットワークアドレスと、NATサービスによって作成される専用アドレス空間中のそのピアのネットワークアドレスとが専用ピアに関連付けられている場合がある。専用ピアは、他のピアへの仮想接続メッセージにおいて、それが専用ステータスであることを示す明確なフラグを立てることができる。あるいは、各ピアは、そのネットワークアドレスを、それが送信する1つまたは複数の仮想接続メッセージ中に含めることができる。この場合、そのメッセージを受け取るその他のピアは、含まれているネットワークアドレスを、そのメッセージの明白な発信元アドレスであるネットワークアドレスと比較することができる。含まれているネットワークアドレスが明白な発信元アドレスに合致する場合、そのピアが公共であると判断できる。含まれているネットワークアドレスがメッセージの明白な発信元アドレスに合致しない場合には、送信側ピアが専用であると判断できる。
図19は、通知依頼が公共ピアに関連付けられているか、または専用ピアに関連付けられているかを判断するために、仮想接続Subscribe−Notifyサービス1000(図10)が実行することができる例示的ステップを示す。ステップ1902で、仮想接続Subscribe−Notifyサービスは、TCP/IPネットワークを介して、ピアから通知依頼メッセージを受け取る。ステップ1904で、メッセージの「封筒(envelope)」、例えばメッセージのIPヘッダを構文解析することにより、その通知依頼メッセージの明白な発信元が判断される。あるいは、確立されている送信側ピアとの通信接続の属性を問い合わせることによって、メッセージの明白な発信元が入手できる。ステップ1906で、通知依頼メッセージの内容が構文解析される。本発明の一実施形態では、ネットワーク接続ポイントイベント通知依頼メッセージは、その通知依頼側ピアのネットワークアドレス(この例ではIPアドレス)を含む。そのネットワークアドレスが通知依頼側ピアにわかっているためである。
ステップ1908で、通知依頼メッセージの明白な発信元は、通知依頼メッセージ中に含まれているネットワークアドレスと比較される。通知依頼メッセージの明白な発信元が、通知依頼側ピアが通知依頼メッセージに含めたネットワークアドレスと合致する場合には、手順はステップ1910に進む。合致しない場合には、手順はステップ1912に進む。ステップ1910で、通知依頼は公共ピアに関連付けられていると判断される。ステップ1912で、通知依頼は専用ピアに関連付けられていると判断される。この判断は、仮想接続Subscribe−Notifyサービス1000の様々なモジュールにおいて繰り返し行われる場合があり、あるいは、例えば通知依頼モジュール1002において、一度だけ行われる場合がある。次いで、通知依頼は、公共または専用を示すフラグが立てられた状態で、通知依頼データベース1008に記憶される。
仮想接続メッセージを下位層ネットワークプロトコル中に組み込むことができる。例えば、インターネットプロトコルのIPオプション機能を利用することにより、仮想接続メッセージをIPデータグラムに追加することができる。インターネットプロトコルのIPオプション機能の詳細については、非特許文献4を参照されたい。1つまたは複数の、例えばIPオプションを利用して仮想接続メッセージを下位層プロトコルデータグラムに組み込む場合、その追加オプションを仮想接続オプション(VCオプション)と呼ぶことができる。発信仮想接続メッセージを運ぶ仮想接続オプションは、一般に、上位プロトコル層によって生成される発信プロトコル単位中に組み込まれるが、仮想接続層は、次の上位層プロトコル単位を待つことが無効および/または非効率的である場合には、それ自身の、例えば、仮想接続オプションを組み込んでいる「空の」IPパケットを生成することができる。
伝送制御プロトコルのTCPオプション機能を利用して、仮想接続オプションをTCPデータグラムに追加することができる。伝送制御プロトコルのTCPオプション機能の詳細については、非特許文献5を参照されたい。データグラムオプションを明白にサポートしていない下位層プロトコルでも、仮想接続オプションを下位層プロトコルデータグラムに付加することによって、仮想接続オプションを組み込むことができる。図20は、仮想接続オプションをUDPデータグラムに付加するための例示的スキームを示す。
図20では、1つまたは複数の仮想接続オプション2002が、IPネットワークを介して送信されるUDPデータグラムに付加されている。UDPデータグラムは、UDPヘッダ2004およびUDPボディ2006を含む。UDPヘッダ2004は、UDPボディ2006中のユーザデータを含めて、UDPデータグラムの長さを表す、UDPデータ長フィールド(LengthUDP)を含む。ユーザデータグラムプロトコルのさらなる詳細については、非特許文献6を参照されたい。UDPデータグラムは、IPネットワークを介して送信できるよう、IPヘッダ2008で開始している。この例では、UDPデータグラムおよび仮想接続オプション2002がIPデータグラムのボディである。IPヘッダ2008は、IPヘッダ2008中のバイト数を表すIPヘッダ長データフィールド(LengthIP Header)と、IPデータグラム(ヘッダ2008およびボディ2004、2006、2002)中のバイト数を表すIP総データ長フィールド(LengthIP)を含む。仮想接続オプション2002(LengthVC options)の長さを、以下のようにして算出することができる。
LengthVC options = LengthIP - LengthIP Header - LengthUDP
すなわち、1つまたは複数の仮想接続オプション2002のバイト数(8ビット)を、IPデータグラム中の総バイト数からIPヘッダ2008中のバイト数を引き、さらにUDPデータグラム中のバイト数を引いたものとして算出できる。
同様のスキームを利用して、仮想接続オプションをその他の下位層プロトコルデータグラムに付加することができる。しかし、このような付加データは、仮想接続モジュール(例えば、図6の仮想接続モジュール600)を組み込んでいないピアによって正しく解釈されない場合がある。リモートピアが仮想接続モジュールを組み込んでいるかどうかをテストするために、1つまたは複数の仮想接続オプション、例えば特定の仮想接続プローブオプションを、そのリモートピアに送る最初のネットワークプロトコルデータグラム中に組み込むことができる。返信に1つまたは複数の対応する仮想接続オプションが含まれていれば、そのリモートピアに、拡張VCとして、すなわち仮想接続プロトコルに正しく参加できるとして、フラグを立てることができる。
図21は、例えば、仮想接続モジュール600のピアネゴシエーションコンポーネント608(図6)が、リモートピアが仮想接続オペレーションをサポートしているかどうかを判断するために実行する、例示的ステップを示す。ステップ2102で、SYNフラグが設定され、仮想接続プローブオプションを組み込んでいる初期TCPデータグラムが、リモートピアに送信される。ステップ2104で、その初期TCPデータグラムに対する返信、例えば、SYNおよびACKフラグが設定された、またはRSTフラグが設定されたTCPデータグラムが受信される。ステップ2106で、その返信が、仮想接続プローブオプションのために構文解析される。ステップ2108で、返信が仮想接続プローブオプションを組み込んでいるかどうかの判断がなされる。返信が仮想接続プローブオプションを組み込んでいる場合には、手順はステップ2110に進み、そこで、リモートピアに拡張VCというフラグが立てられる。組み込んでいない場合には、手順はステップ2112に進み、リモートピアに非拡張VCというフラグが立てられ、さらなる仮想接続メッセージはリモートピアに送信されない。上記に説明した仮想接続機能は、この場合は利用できない。
刊行物、特許出願、特許を含めて、本明細書に記載されているすべての参考文献は、それら各参考文献が、参照により組み込まれるように個々にかつ明確に示され、またそのすべてが本明細書に記載されているものとして、参照により本明細書に組み込まれている。
本発明を記載する文脈において(特に、添付の特許請求の範囲の文脈において)、「1つの(ある)〜」および「当該(前記)〜」という用語、および同様の指示用語を使用してある場合、それは、本明細書において別途指摘している場合、または文脈により明らかに相反する場合を除き、単数と複数の両方を対象とするものとして解釈すべきである。「含む」という用語は、別途指摘している場合を除き、オープンエンド用語(すなわち、「含むが、それに限定されない」ことを意味する)として解釈されるべきである。本明細書において値の範囲を記載しているのは、本明細書に別途指摘していない限り、単にその範囲内に含まれる別個の値それぞれを個々に表すための簡便な方法としての役割を果たすことを意図したものであり、別個の値それぞれは、本明細書に個々に記載されているものとして本明細書に組み込まれている。本明細書に記載のすべての方法は、本明細書に別途指摘されている場合、またはそうではなく文脈により明らかに相反する場合を除き、いずれかの適切な順序で実行することができる。いずれかまたはすべての例の使用、または本明細書で用いている例示的な言い方(例えば、「〜など」)は、単に本発明をより明らかにすることを意図したものであり、別途、主張している場合を除き、本発明の範囲を限定するものではない。本明細書中のどのような言い方も、いずれかの非特許請求要素を本発明の実施に不可欠なものとして示すものとして解釈してはならない。
本明細書には、発明者が知っている、本発明を実施するための最良の形態を含めて、発明を実施するための最良の形態を記載してある。当業者は、前述の説明を読むことによって、それらの最良の形態の変形が明らかになる場合もあろう。発明者は、当業者がそのような変形形態を利用することを期待する。また、発明者は、本発明が本明細書に具体的に記載されているのとは異なって実施されることを意図している。したがって、本発明は、本明細書に添付の特許請求の範囲に記載されている主題の修正および同等物もすべて、適用法により許可されたものとして含む。さらに、本明細書に別途指摘している場合、または文脈により明らかに相反する場合を除き、最良の形態のすべての可能な変形における、上述の要素のどのような組合せも本発明に含まれる。
ネットワークによって接続されているコンピュータを示す概略図である。 本発明の一実施形態を実施するために使用可能な例示的コンピュータシステムを全体的に示す概略図である。 本発明の一実施形態に従って仮想接続層を組み込んでいる、階層化ネットワークモデルを示す概略図である。 本発明の一実施形態に従って仮想接続層を組み込んでいる、例示的階層化TCP/IP実装を示す概略図である。 本発明の一実施形態に従って仮想接続層を組み込んでいる、別の例示的階層化TCP/IP実装を示す概略図である。 本発明の一実施形態に従って仮想接続層サービスを実施するために適した、例示的仮想接続モジュールを示す概略図である。 本発明の一実施形態による例示的ローカル接続変換オペレーションを示す概略図である。 本発明の一実施形態による例示的仮想接続プロトコルを示す概略図である。 本発明の一実施形態形態による、図8の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。 本発明の一実施形態形態による、例示的モジュラー仮想接続Subscribe−Notifyサービスアーキテクチャを示す概略図である。 本発明の一実施形態形態による、同時移動シナリオのための例示的仮想接続プロトコルを示す概略図である。 本発明の一実施形態形態による、図11の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。 本発明の一実施形態形態による、ネットワークアドレス変換を組み込んでいるコンピュータネットワークにおける例示的仮想接続プロトコルを示す概略図である。 本発明の一実施形態形態による、図13の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。 本発明の一実施形態形態による、同時移動およびネットワークアドレス変換が含まれるシナリオのための例示的仮想接続プロトコルを示す概略図である。 本発明の一実施形態形態による、図15の仮想接続プロトコルメッセージの順番の例を示すプロトコル図である。 本発明の一実施形態形態に従って仮想接続モジュールによって実行される例示的ステップを示す流れ図である。 本発明の一実施形態形態に従って仮想接続Subscribe−Notifyサービスマッチモジュールによって実行される例示的ステップを示す流れ図である。 仮想接続Subscribe−Notifyサービスが、通知依頼側ピアが公共か専用かを判断するために、本発明の一実施形態形態に従って実行する例示的ステップを示す流れ図である。 本発明の一実施形態形態による、仮想接続オプションを組み込んでいるUDP/IPデータグラムを示す概略図である。 仮想接続モジュールが、リモートピアが仮想接続機能をサポートしているかどうかを判断するために、本発明の一実施形態形態に従って実行する例示的ステップを示す流れ図である。
符号の説明
302 仮想接続層
304 下位ネットワーク層
306 上位ネットワーク層
308 アプリケーション層
402 デバイスドライバ
404 ネットワークハードウェア
410 ソケットAPI
412 アプリケーション
414 仮想接続
402 デバイスドライバ
404 ネットワークハードウェア
410 ソケットAPI
412 アプリケーション
504 仮想接続
600 仮想接続モジュール
602 ローカル接続変換
604 LCTテーブル
606 接続管理
608 ピアネゴシエーション
610 VC SNSプロキシ
1000 仮想接続Subscribe−Notifyサービス
1002 通知依頼モジュール
1004 通知依頼メッセージ
1006 通知依頼
1008 通知依頼データベース
1010 発行モジュール
1012 発行メッセージ
1014 イベント
1016 マッチモジュール
1018 マッチリスト
1020 通知モジュール
1022 通知メッセージ
2002 VCオプション
2004 UDPヘッダ
2006 UDPボディ
2008 IPヘッダ

Claims (30)

  1. ローカル接続変換テーブルを、少なくとも1つの通信接続に参加しているピアに対してローカルに維持することを含む方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記ローカル接続変換テーブルが、
    前記少なくとも1つの通信接続の少なくとも1つの元の接続パラメータと、
    前記少なくとも1つの通信接続の少なくとも1つの現在の接続パラメータと
    を含み、
    前記ローカル接続変換テーブルは、各アクティブ通信接続について、少なくとも1つの元の接続パラメータと少なくとも1つの現在の接続パラメータとをさらに含み、
    前記各アクティブ通信接続は少なくとも1つのデータストリームを含み、該データストリームの各々は、前記通信接続の少なくとも1つの接続パラメータを含み、また、
    前記方法は、
    アウトバウンドデータストリームを有する各通信接続について、前記アウトバウンドデータストリームの前記少なくとも1つの接続パラメータを、前記ローカル接続変換テーブルの対応する少なくとも1つの現在の接続パラメータに変換すること、および
    インバウンドデータストリームを有する各通信接続について、前記インバウンドデータストリームの前記少なくとも1つの接続パラメータを、前記ローカル接続変換テーブルの対応する少なくとも1つの元の接続パラメータに変換すること
    を含むことを特徴とするコンピュータ可読媒体。
  2. 前記データストリームの各々は少なくとも1つのインターネットプロトコル(IP)データグラムを含み、
    前記少なくとも1つの現在の接続パラメータは、現在のローカルIPアドレスを含み、
    前記アウトバウンドデータストリームの前記少なくとも1つの接続パラメータを前記ローカル接続変換テーブルの対応する少なくとも1つの現在の接続パラメータに変換することは、各アウトバウンドIPデータグラムのソースアドレスを前記現在のローカルIPアドレスと置き換えることを含むことを特徴とする請求項に記載のコンピュータ可読媒体。
  3. 前記少なくとも1つの現在の接続パラメータは、現在のリモートIPアドレスをさらに含み、
    前記アウトバウンドデータストリームの前記少なくとも1つの接続パラメータを前記ローカル接続変換テーブルの対応する少なくとも1つの現在の接続パラメータに変換することは、
    前記アウトバウンドIPデータグラムの各々の宛先アドレスを、対応する前記現在のリモートIPアドレスと置き換えることをさらに含むことを特徴とする請求項に記載のコンピュータ可読媒体。
  4. 少なくともローカル接続変換テーブルを維持するよう構成されているローカル接続変換コンポーネントを含むコンピュータ化システムであって、前記ローカル接続変換テーブルが、前記ローカル接続変換コンポーネントに対してローカルな通信ピアと、前記ローカル接続変換コンポーネントに対してリモートな通信ピアとの間の各アクティブ通信接続についてローカル接続変換テーブルエントリを含み、各ローカル接続変換テーブルエントリが、
    元の接続仕様と、
    現在の接続仕様と
    を含み、
    前記ローカル接続変換コンポーネントは、少なくとも、
    前記ローカル接続変換コンポーネントに対してローカルな通信ピアから出発する各ネットワークプロトコル単位をインターセプトし、
    前記出発プロトコル単位に関連付けられたローカル接続変換テーブルエントリを判断し、
    前記出発プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの元の接続仕様の少なくとも1つのパラメータに対応する、前記出発プロトコル単位中の少なくとも1つのデータフィールド値を、前記出発プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの現在の接続仕様の、対応する少なくとも1つのパラメータの少なくとも1つの値と置き換えるようさらに構成されていることを特徴とするコンピュータ化システム。
  5. 少なくともローカル接続変換テーブルを維持するよう構成されているローカル接続変換コンポーネントを含むコンピュータ化システムであって、前記ローカル接続変換テーブルが、前記ローカル接続変換コンポーネントに対してローカルな通信ピアと、前記ローカル接続変換コンポーネントに対してリモートな通信ピアとの間の各アクティブ通信接続についてローカル接続変換テーブルエントリを含み、各ローカル接続変換テーブルエントリが、
    元の接続仕様と、
    現在の接続仕様と
    を含み、
    前記ローカル接続変換コンポーネントは、少なくとも、
    前記ローカル接続変換コンポーネントに対してローカルな通信ピアに到着する各ネットワークプロトコル単位をインターセプトし、
    前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリを判断し、
    前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの現在の接続仕様の少なくとも1つのパラメータに対応する、前記到着プロトコル単位中の少なくとも1つのデータフィールド値を、前記到着プロトコル単位に関連付けられた前記ローカル接続変換テーブルエントリの元の接続仕様の、対応する少なくとも1つのパラメータの少なくとも1つの値と置き換えるようさらに構成されていることを特徴とするコンピュータ化システム。
  6. 第1のネットワーク接続ポイントに接続された第1のピアに第1のローカル接続変換テーブルを提供するステップであって、前記第1のピアは、第2のネットワーク接続ポイントに接続された第2のピアにネットワーク接続されているステップと、
    前記第1および第2のネットワーク接続ポイントの元の接続仕様を前記第1のローカル接続変換テーブルに記憶するステップであって、前記元の接続仕様は、各接続ポイントの元のアドレスおよび元のポートを含むステップと、
    前記第1および第2のピアのうちの1つが初期ネットワーク接続ポイントから新たなネットワーク接続ポイントに切り替える場合、前記第1および第2のネットワーク接続の更新された接続仕様を前記第1のローカル接続変換テーブルに記憶するステップであって、前記更新された接続仕様は、前記新たなネットワーク接続ポイントに対応する新しいアドレスまたは新しいポートの少なくとも1つを含むステップと、
    発信接続仕様が前記元の接続仕様に対応する場合、前記第1のローカル接続変換テーブルを使用して、発信ネットワークプロトコル単位の前記発信接続仕様を前記更新された接続仕様に変換するステップと、
    前記新たな接続ポイントを介して前記第1のピアおよび第2のピアから前記発信ネットワークプロトコル単位を送るステップと、
    を含むことを特徴とする方法。
  7. 着信接続仕様が前記更新された接続仕様に対応する場合、前記第1のローカル接続変換テーブルを使用して着信ネットワークプロトコル単位の前記着信接続仕様を前記元の接続仕様に変換するステップと、
    前記第1のピアにおいて前記着信ネットワークプロトコル単位を受け取るステップであって、前記着信ネットワークプロトコル単位は、前記新たな接続を介して前記第2のピアから送られるステップと
    をさらに含むことを特徴とする請求項6に記載の方法。
  8. 前記発信ネットワークプロトコル単位は、前記第1のピアまたは第2のピアからの発信データストリームのうちの1つに含まれ、前記着信ネットワークプロトコル単位が前記第2のピアから前記第1のピアの着信データストリームに含まれることを特徴とする請求項7に記載の方法。
  9. 前記発信ネットワークプロトコル単位および前記着信ネットワークプロトコル単位は、それぞれインターネットプロトコル(IP)データグラムを含むことを特徴とする請求項6に記載の方法。
  10. 前記元のアドレスおよび前記新しいアドレスは、インターネットプロトコル(IP)アドレスを含むことを特徴とする請求項6に記載の方法。
  11. 前記元のポートおよび前記新しいポートは、それぞれTCP(Transmission Control Protocol)ポートまたはUDP(User Datagram Protocol)ポートのうちの1つを含むことを特徴とする請求項6に記載の方法。
  12. 発信接続仕様を変換するステップは、前記元のアドレスの1つを前記新しいアドレスに置き換えること、または、前記元のポートの1つを前記新しいポートに置き換えること、のうち少なくとも1つを含むことを特徴とする請求項6に記載の方法
  13. 着信接続仕様を変換するステップは、前記新しいアドレスを前記元のアドレスのうちの1つと置き換えること、または、前記新しいポートを前記元のポートのうちの1つと置き換えること、のうち少なくとも1つを含むことを特徴とする請求項6に記載の方法。
  14. 前記第1のピアが前記初期ネットワーク接続ポイントから新たなネットワーク接続ポイントへ切り替える場合、前記第1のピアから前記第2のピアに接続更新メッセージを送るステップであって、前記接続更新メッセージは、前記元の接続仕様および前記更新された仕様を含むステップをさらに含むことを特徴とする請求項6に記載の方法。
  15. 前記第2のピアに第2のローカル接続変換テーブルを提供するステップと、
    前記第2のローカル接続変換テーブルを前記接続更新メッセージからの更新された仕様に更新するステップとをさらに含むことを特徴とする請求項14に記載の方法。
  16. 接続更新メッセージを送るステップは、前記第1のピアの同一性を認証する暗号署名を含む接続更新メッセージを送ることをさらに含むことを特徴とする請求項14に記載の方法。
  17. 第1のネットワーク接続ポイントに接続された第1のピアにローカル接続変換テーブルを提供するステップであって、前記第1のピアは、第2のネットワーク接続ポイントに接続された第2のピアとネットワーク接続されているステップと、
    前記第1および第2のネットワーク接続ポイントの元の接続仕様を前記ローカル接続変換テーブルに記憶するステップであって、前記元の接続仕様は、各接続ポイントの元のアドレスおよび元のポートを含むステップと、
    前記第1および第2のピアのうちの1つが初期ネットワーク接続ポイントから新たなネットワーク接続ポイントに切り替える場合、前記第1および第2のネットワーク接続の更新された接続仕様を前記ローカル接続テーブルに記憶するステップであって、前記更新された接続仕様は、前記新たなネットワーク接続ポイントに対応する新しいアドレスまたは新しいポートの少なくとも1つを含むステップと、
    前記着信接続仕様が前記更新された接続仕様に対応する場合、前記ローカル接続変換テーブルを使用して着信ネットワークプロトコル単位の着信接続仕様を前記元の接続仕様に変換するステップと、
    前記第1のピアにおいて前記着信ネットワークプロトコル単位を受け取るステップであって、前記着信ネットワークプロトコル単位は、前記新たな接続を介して前記第2のピアから送られるステップと
    を含む方法を実行するためのコンピュータ実行可能命令を備えたコンピュータ可読データ記憶媒体。
  18. 前記方法は、前記第1のピアが前記初期ネットワーク接続ポイントから新たなネットワーク接続ポイントに切り替える場合、接続更新メッセージを前記第1のピアから前記第2のピアへ送るステップを含み、前記接続更新メッセージは、前記元の接続仕様および前記更新された仕様を含むステップをさらに含むことを特徴とする請求項17に記載のコンピュータ可読データ記憶媒体。
  19. 接続更新メッセージを送るステップは、前記第1のピアの同一性を認証する暗号署名を含む接続更新メッセージを送ることをさらに含むことを特徴とする請求項18に記載のコンピュータ可読データ記憶媒体。
  20. 前記方法は、前記初期ネットワーク接続ポイントから新たなネットワーク接続ポイントへの前記第1のピアの切替えを仮想接続Subscribe−Notifyサービスに発行するステップをさらに含むことを特徴とする請求項17に記載のコンピュータ可読データ記憶媒体。
  21. 前記切替えを発行するステップは、前記第1のピアから前記仮想接続Subscribe−Notifyサービスへ発行メッセージを送ることを含み、前記発行メッセージは、前記第2のピアが前記元の接続仕様および前記更新された仕様を決定することを可能にする情報を含むことを特徴とする請求項20に記載のコンピュータ可読データ記憶媒体
  22. 前記接続更新メッセージは、下位層ネットワークプロトコルに組み込まれることによって前記第1および第2のピア間で送られることを特徴とする請求項17に記載のコンピュータ可読データ記憶媒体。
  23. 前記下位層ネットワークプロトコルは、インターネットプロトコル(IP)であり、
    前記接続更新メッセージは、少なくとも1つのIPオプションとして前記インターネットプロトコルに組み込まれることを特徴とする請求項22に記載のコンピュータ可読データ記憶媒体。
  24. 前記下位層ネットワークプロトコルは、TCP(Transmission Control Protocol)であり、
    前記接続更新メッセージは、少なくとも1つのTCPオプションとしてTCPに組み込まれることを特徴とする請求項22に記載のコンピュータ可読データ記憶媒体。
  25. 前記下位層ネットワークプロトコルは、UDP(User Datagram Protocol)であり、
    前記接続更新メッセージは、少なくとも、UDPデータグラムに前記接続更新メッセージデータを付加することによって、前記UDPに組み込まれ、前記接続更新メッセージは、TCPオプションに関してフォーマットされていることを特徴とする請求項22に記載のコンピュータ可読データ記憶媒体。
  26. テーブルエントリに前記コンピューティングデバイスおよびピアコンピューティングデバイスの元の接続仕様を記憶するよう構成されたローカル接続変換テーブルであって、前記コンピューティングデバイスは、ネットワーク接続の第1のネットワーク接続ポイントに接続され、前記ピアコンピューティングデバイスは、前記ネットワーク接続の第2のネットワーク接続ポイントに接続されているローカル接続変換テーブルであって、前記元の接続仕様は、各接続ポイントの元のアドレスおよび元のポートを含んでいる、ローカル接続変換テーブルと、
    前記第1および第2のピアが前記初期ネットワーク接続ポイントから新たなネットワーク接続ポイントへ切り替える場合、前記テーブルエントリに前記第1および第2のネットワーク接続の更新された接続仕様を記憶するよう構成されたローカル接続変換コンポーネントであって、前記更新された接続仕様は、前記新たなネットワーク接続ポイントに対応する新しいアドレスまたは新しいポートのうち少なくとも1つを含む、ローカル接続変換コンポーネントと、
    発信接続仕様が前記元の接続仕様に対応する場合、前記第1のローカル接続変換テーブルを使用して発信ネットワークプロトコル単位の前記発信接続仕様を前記更新された接続仕様に変換する第1の変換コンポーネントと、
    着信接続仕様が前記更新された接続仕様に対応する場合、前記ローカル接続変換テーブルを使用して着信ネットワークプロトコル単位の前記着信接続仕様を前記元の接続仕様に変換する第2の変換コンポーネントと、
    を含むことを特徴とするコンピューティングデバイス。
  27. 前記元の接続仕様および前記更新された接続仕様がそれぞれプロトコル設定を含むコンピューティングデバイスであって、前記プロトコル設定は、TCP(Transmission Control Protocol)およびUDP(User Datagram Protocol)のうちの1つを含むことを特徴とする請求項26に記載のコンピューティングデバイス。
  28. 前記第1の変換コンポーネントは、少なくとも、
    前記発信ネットワークプロトコル単位をインターセプトし、
    前記発信接続仕様の元のアドレスまたは元のポートの少なくとも1つを前記対応する新しいアドレスまたは新しいポートのうち少なくとも1つと置き換えるようさらに構成された請求項26に記載のコンピューティングデバイス。
  29. 前記第2の変換コンポーネントは、少なくとも、
    前記着信ネットワークプロトコル単位をインターセプトし、
    前記着信接続仕様の新しいアドレスまたは新しいポートの少なくとも1つを前記対応する元のアドレスまたは元のポートのうち少なくとも1つと置き換えるようさらに構成された請求項26に記載のコンピューティングデバイス。
  30. 少なくとも、接続更新メッセージを受け取るよう構成された接続管理コンポーネントをさらに含むコンピューティングデバイスであって、前記接続更新メッセージは、前記元の接続仕様と、前記更新された仕様と、前記テーブルエントリの参照を含むことを特徴とする請求項26に記載のコンピューティングデバイス。
JP2004206469A 2003-07-14 2004-07-13 ローカル接続変換との仮想接続 Active JP4494891B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/619,330 US7581010B2 (en) 2003-07-14 2003-07-14 Virtual connectivity with local connection translation

Publications (2)

Publication Number Publication Date
JP2005039820A JP2005039820A (ja) 2005-02-10
JP4494891B2 true JP4494891B2 (ja) 2010-06-30

Family

ID=33477073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004206469A Active JP4494891B2 (ja) 2003-07-14 2004-07-13 ローカル接続変換との仮想接続

Country Status (7)

Country Link
US (1) US7581010B2 (ja)
EP (1) EP1499087B1 (ja)
JP (1) JP4494891B2 (ja)
KR (1) KR101087359B1 (ja)
CN (1) CN1578249B (ja)
AT (1) ATE438251T1 (ja)
DE (1) DE602004022222D1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769866B2 (en) * 2003-07-14 2010-08-03 Microsoft Corporation Virtual connectivity with subscribe-notify service
US8065418B1 (en) * 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
US7684783B1 (en) * 2004-03-23 2010-03-23 Autocell Laboratories, Inc. System and method for authenticating devices in a wireless network
US8219622B2 (en) * 2005-02-09 2012-07-10 Verizon Business Global Llc Systems and methods for providing extended peering
US7738887B2 (en) * 2005-10-31 2010-06-15 Microsoft Corporation Voice instant messaging between mobile and computing devices
US20070115917A1 (en) * 2005-10-31 2007-05-24 Microsoft Corporation MTOM data transfer via TCP
US8145733B1 (en) * 2006-02-15 2012-03-27 Trend Micro Incorporated Identification of computers located behind an address translation server
CN101390369B (zh) * 2006-02-28 2012-11-14 国际商业机器公司 点对点通信的检测和控制
KR101345136B1 (ko) * 2007-09-19 2013-12-26 삼성전자주식회사 서비스 전달/공유 방법 및 그 장치
JP2009230269A (ja) 2008-03-19 2009-10-08 Sony Corp 情報処理装置、情報処理方法、リモートサーバ、情報処理システム
US8266284B2 (en) 2008-05-16 2012-09-11 Microsoft Corporation System from reputation shaping a peer-to-peer network
KR100948693B1 (ko) * 2008-10-08 2010-03-18 한국전자통신연구원 가상 플랫폼을 이용한 이종 망간 프로토콜 연동 지원을 위한 인터넷 프로토콜 변환장치 및 방법
US8750112B2 (en) * 2009-03-16 2014-06-10 Echostar Technologies L.L.C. Method and node for employing network connections over a connectionless transport layer protocol
US9949305B2 (en) 2009-10-02 2018-04-17 Blackberry Limited Methods and apparatus for peer-to-peer communications in a wireless local area network
US20110302312A1 (en) * 2010-06-02 2011-12-08 Mccrory Dave Dennis Cloud resource proxy with attribute mirroring
US9170797B2 (en) 2012-01-31 2015-10-27 Red Hat, Inc. Automated deployment of an application in a computing platform
US9262238B2 (en) * 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9098177B2 (en) * 2012-12-13 2015-08-04 Google Technology Holdings LLC Apparatus and methods for facilitating context handoff between devices in a cloud based wireless personal area network
US20190182337A1 (en) * 2017-12-12 2019-06-13 Interset Software, Inc. Peer connection monitoring of network applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003087843A (ja) * 2001-09-17 2003-03-20 Mitsubishi Electric Corp 移動体通信システムおよびセッション収容方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US6452920B1 (en) * 1998-12-30 2002-09-17 Telefonaktiebolaget Lm Ericsson Mobile terminating L2TP using mobile IP data
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
US7050432B1 (en) * 1999-03-30 2006-05-23 International Busines Machines Corporation Message logging for reliable multicasting across a routing network
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US7117270B2 (en) * 2001-08-15 2006-10-03 Precache, Inc. Method for sending and receiving a Boolean function over a network
US7207008B1 (en) * 2001-09-12 2007-04-17 Bellsouth Intellectual Property Corp. Method, system, apparatus, and computer-readable medium for interactive notification of events
US6907501B2 (en) 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
US7443865B1 (en) * 2002-04-04 2008-10-28 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US7379970B1 (en) * 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US7051102B2 (en) * 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7484225B2 (en) * 2002-08-08 2009-01-27 Sun Microsystems, Inc. System and method for describing and identifying abstract software modules in peer-to-peer network environments
US7657597B2 (en) * 2002-09-26 2010-02-02 Sun Microsystems, Inc. Instant messaging using distributed indexes
US7430747B2 (en) * 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7516174B1 (en) * 2004-11-02 2009-04-07 Cisco Systems, Inc. Wireless network security mechanism including reverse network address translation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003087843A (ja) * 2001-09-17 2003-03-20 Mitsubishi Electric Corp 移動体通信システムおよびセッション収容方法

Also Published As

Publication number Publication date
EP1499087A3 (en) 2006-10-11
US20050015496A1 (en) 2005-01-20
KR101087359B1 (ko) 2011-11-25
CN1578249B (zh) 2011-08-31
ATE438251T1 (de) 2009-08-15
DE602004022222D1 (de) 2009-09-10
EP1499087A2 (en) 2005-01-19
EP1499087B1 (en) 2009-07-29
KR20050010506A (ko) 2005-01-27
CN1578249A (zh) 2005-02-09
US7581010B2 (en) 2009-08-25
JP2005039820A (ja) 2005-02-10

Similar Documents

Publication Publication Date Title
JP4494891B2 (ja) ローカル接続変換との仮想接続
EP2466847B1 (en) Custodian routing with network address translation in content-centric networks
CN112911027B (zh) 用于建立媒体会话的方法和装置
US7729366B2 (en) Method, apparatus and system for network mobility of a mobile communication device
EP2702732B1 (en) System and method for secure instant messaging
US7245622B2 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
EP2540060B1 (en) Apparatus and method for establishing and utilizing backup communication channels
EP2503804A1 (en) Apparatus and method for managing peer-to-peer connections between different service providers
WO2016210196A1 (en) Media relay server
US20070078986A1 (en) Techniques for reducing session set-up for real-time communications over a network
JP4633395B2 (ja) サブスクライブ−通知サービスとの仮想接続
AU2012262053A1 (en) System and method for secure instant messaging
WO2016210202A1 (en) Media relay server
EP2466846B1 (en) Sip-based custodian routing in content-centric networks
US10412122B1 (en) Dynamic per-session NAT-behavior selection
Bhagwat et al. MSOCKS+: an architecture for transport layer mobility
Tilak et al. A concurrent migration extension to an end-to-end host mobility architecture
US9923866B2 (en) Communication system, terminal apparatus and server
Mattsson Mobile Data Communication based on Host Identity Protocol (HIP)
Komu et al. RFC 5770: Basic Host Identity Protocol (HIP) Extensions for Traversal of Network Address Translators
Ma Ye Development of an infrastructure for session continuity in SIP

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100402

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100408

R150 Certificate of patent or registration of utility model

Ref document number: 4494891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250