(57)【要約】  冗長の接続を除去する方法及びシステムが記載され、２つの接続をマージする要求を送信し、第１の接続の第１の部分を終了させ、第１の接続は、第１の装置と第２の装置との間で通信を実施し、第２の接続の第１の部分を終了させ、第２の接続は、第１の装置と第３の装置との間で通信を実施し、第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。接続をマージする方法及びシステムも記載され、２つの接続をマージする要求を受信し、第１の接続の第１の部分を終了させ、第１の接続は、第１の装置と第２の装置との間で通信を実施し、第２の接続の第１の部分を終了させ、第２の接続は、第１の装置と第３の装置との間で通信を実施し、第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。
2010510715.tif 000002
【特許請求の範囲】
【請求項１】
冗長の接続を除去する方法であって、
２つの接続をマージする要求を送信し、
第１の接続の第１の部分を終了させ、前記第１の接続は、第１の装置と第２の装置との間で通信を実施し、
第２の接続の第１の部分を終了させ、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、
前記第１及び第２の接続のそれぞれの第２の部分をマージすることを有する方法。
【請求項２】
前記第１の接続の前記第１の部分を終了させることは、
前記第１の装置と前記第２の装置との間の接続を終了させ、
前記第１の装置により前記第２の装置から受信したバッファのデータを処理し、
前記第２の装置との通信の終了を示すメッセージを送信することを更に有する、請求項１に記載の方法。
【請求項３】
前記第２の接続の前記第１の部分を終了させることは、
バッファのデータを前記第３の装置に送信し、
前記第３の装置との通信の終了を示すメッセージを送信することを更に有する、請求項２に記載の方法。
【請求項４】
前記第１の装置と前記第２の装置との間に前記第１の接続を確立し、前記第１の装置と前記第３の装置との間に前記第２の接続を確立することを更に有する、請求項１に記載の方法。
【請求項５】
前記第２の接続の前記第１の部分を終了させることは、
接続メッセージの終了を第３の装置に送信し、
前記接続メッセージの終了の承認を受信し、
最終的な承認を送信することを更に有する、請求項２に記載の方法。
【請求項６】
接続をマージする方法であって、
２つの接続をマージする要求を受信し、
第１の接続の第１の部分を終了させ、前記第１の接続は、第１の装置と第２の装置との間で通信を実施し、
第２の接続の第１の部分を終了させ、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、
前記第１及び第２の接続のそれぞれの第２の部分をマージすることを有する方法。
【請求項７】
前記第１の接続の前記第１の部分を終了させることは、
何らかの以前に送信したが未承認のデータの受信の承認を待機し、
前記第１の接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズし、
前記第１の装置と前記第２の装置との間の通信の終了を示すメッセージを受信することを更に有する、請求項６に記載の方法。
【請求項８】
前記第２の接続の前記第１の部分を終了させることは、
前記第２の装置を介して通信する装置の間のプロトコル状態に関する情報を更新し、
前記第１の装置と前記第３の装置との間の通信の終了を示すメッセージを受信し、
前記第２の接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズすることを更に有する、請求項７に記載の方法。
【請求項９】
前記第２の装置と前記第３の装置との間に新しいマッピングを生成することを更に有する、請求項８に記載の方法。
【請求項１０】
前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第１の装置により送信されたかのように前記第３の装置に見えるようにする、請求項９に記載の方法。
【請求項１１】
最大シーケンス番号が接続毎に記録される、請求項６に記載の方法。
【請求項１２】
最大承認番号が接続毎に記録される、請求項６に記載の方法。
【請求項１３】
冗長の接続を除去するシステムであって、
２つの接続をマージする要求を送信する手段と、
第１の接続の第１の部分を終了させる手段であり、前記第１の接続は、第１の装置と第２の装置との間で通信を実施する手段と、
第２の接続の第１の部分を終了させる手段であり、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施される手段と、
前記第１及び第２の接続のそれぞれの第２の部分をマージする手段と
を有するシステム。
【請求項１４】
前記第１の接続の前記第１の部分を終了させる手段は、
前記第１の装置と前記第２の装置との間の接続を終了させる手段と、
前記第１の装置により前記第２の装置から受信したバッファのデータを処理する手段と、
前記第２の装置との通信の終了を示すメッセージを送信する手段と
を更に有する、請求項１３に記載のシステム。
【請求項１５】
前記第２の接続の前記第１の部分を終了させる手段は、
バッファのデータを前記第３の装置に送信する手段と、
前記第３の装置との通信の終了を示すメッセージを送信する手段と
を更に有する、請求項１４に記載のシステム。
【請求項１６】
前記第１の装置と前記第２の装置との間に前記第１の接続を確立する手段と、
前記第１の装置と第３の装置との間に前記第２の接続を確立する手段と
を更に有する、請求項１３に記載のシステム。
【請求項１７】
前記第２の接続の前記第１の部分を終了させる手段は、
接続メッセージの終了を前記第３の装置に送信する手段と、
前記接続メッセージの終了の承認を受信する手段と、
最終的な承認を送信する手段と
を更に有する、請求項１４に記載のシステム。
【請求項１８】
接続をマージするシステムであって、
２つの接続をマージする要求を受信する手段と、
第１の接続の第１の部分を終了させる手段であり、前記第１の接続は、第１の装置と第２の装置との間で通信を実施する手段と、
第２の接続の第１の部分を終了させる手段であり、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施される手段と、
前記第１及び第２の接続のそれぞれの第２の部分をマージする手段と
を有するシステム。
【請求項１９】
前記第１の接続の前記第１の部分を終了させる手段は、
何らかの以前に送信したが未承認のデータの受信の承認を待機する手段と、
前記第１の接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズする手段と、
前記第１の装置と前記第２の装置との間の通信の終了を示すメッセージを受信する手段と
を更に有する、請求項１８に記載のシステム。
【請求項２０】
前記第２の接続の前記第１の部分を終了させる手段は、
前記第２の装置を介して通信する装置の間のプロトコル状態に関する情報を更新する手段と、
前記第１の装置と前記第３の装置との間の通信の終了を示すメッセージを受信する手段と、
前記第２の接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズする手段と
を更に有する、請求項１９に記載のシステム。
【請求項２１】
前記第２の装置と前記第３の装置との間に新しいマッピングを生成することを更に有する、請求項２０に記載のシステム。
【請求項２２】
前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第１の装置により送信されたかのように前記第３の装置に見えるようにする、請求項２１に記載のシステム。
【請求項２３】
最大シーケンス番号が接続毎に記録される、請求項１８に記載のシステム。
【請求項２４】
最大承認番号が接続毎に記録される、請求項１８に記載のシステム。
【請求項２５】
チェックサムを計算する手段を更に有する、請求項１８に記載のシステム。
【請求項２６】
接続をマージする方法であって、
第１の装置と第２の装置との間で第１のマッピングを終了させ、
前記第１の装置と第３の装置との間で第２のマッピングを終了させ、
前記第２の装置と前記第３の装置との間でマッピングを生成することを有する方法。
【請求項２７】
接続をマージするシステムであって、
第１の装置と第２の装置との間で第１のマッピングを終了させる手段と、
前記第１の装置と第３の装置との間で第２のマッピングを終了させる手段と、
前記第２の装置と前記第３の装置との間でマッピングを生成する手段と
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーキングに関し、特にTCP/UDP接続を使用した装置に関する。
【背景技術】
【０００２】
ネットワーキング技術の進展は、様々な装置の通信を容易にしており、アプリケーションが複数の装置に関与することを可能にしている。通常では異なる目的のための設計されたこれらの装置は、異なる計算機能、メモリ容量及び消費電力を有する。その結果、これらの装置がアプリケーション（ファイル共有及びファイルダウンロード）に関与するときに、これらの装置について異なる要件が存在する。
【０００３】
図１は、無線アクセスポイントが（ネットワークアドレス変換（NAT：Network  Address  Translation）型ルータ（ネットワーク変換装置）を介して）インターネットに接続される例示的なホームネットワーキング環境を示している。また、ネットワーク接続ストレージ（NAS：network  attached  storage）装置（宛先ストレージ装置／ストレージ装置）、デスクトップコンピュータ及び複数の無線クライアント（例えば、ラップトップ、PDA（personal  digital  assistant））も存在する。ここで用いられる“／”は、構成要素の代替名を示すものとして解釈されるべきである。図１に示す例示的な環境で、ファイル共有アプリケーションは、４つの装置（遠隔ファイル（データ）サーバ（ソースデータサーバ／ソース装置）、ネットワーク接続ストレージ（NAS）、アクセスポイント及び少なくとも１つの移動クライアント（例えば、ラップトップ又はPDA））に関与する。ラップトップ及びPDAは強力なCPUとユーザフレンドリーなインタフェースとを備えているが、これらは常に電源オンになるように設計されていない。他方、無線アクセスポイント及びNASは、通常では遅いCPU及び小さいメモリを備えた小型の組み込み型システムである。これらは、ほとんどの時間に電源オンになる。
【０００４】
これらの装置により使用される通信プロトコルは、通常ではTCPである。しかし、TCPのエンド・ツー・エンドの性質は、全ての参加する装置を一緒に結び付け、これらがセッションの期間中にアクティブであることを要求する。しかし、必ずしも常に全ての装置が必要であるとは限らない。例えば、PDAは、ファイルダウンロードを開始するために使用され得る。実際に望ましいことは、ファイルが遠隔ファイル（データ）サーバ（ソース装置）からNASディスク（ストレージ装置）に直接ダウンロードされ、これにより、ダウンロードが始まったときにPDAが一時停止できることである。複数の理由で、NASに直接これを行うことを命令することは可能でないことがある。まず、NASは、ダム装置（dumb  device）であることがあり、接続を開始するように制御され得ない。次に、初期接続設定処理は、複雑な認証を必要とするため、人間の相互作用（例えば、ユーザ名及びパスワードの記入、スクリプト（例えば、Java（登録商標）スクリプト）の解釈、又は図表によるパズルの解決）を必要とすることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常では、アプリケーションが適切に動作するために、複数の接続が設定されて維持される。しかし、この手法には複数の欠点が存在する。まず、全ての参加者がセッション中にアクティブであるという要件は、移動装置の移動性を制限する。アプリケーションの適切な機能がアクティブなTCPエンドポイント／装置に依存するため、装置が切断又は一時停止されることは不可能である。しかし、これらの装置を常に電源オンに保持することは、通常では望ましくない。例えば、ノートブックコンピュータを仕事に持ち歩くことが必要である又は望ましいことがあり、又はPDAが限られた電池寿命を有することがある。次に、冗長の接続は、多くのリソースを消費する。これらの装置をアクティブに保持する際に電力が消費され、装置の間でデータを送信するために余分な帯域が必要になり、チェックサム計算を実行するためにCPUサイクルが必要になり、パケットをバッファに入れるためにメモリが必要になる。最後に、冗長の接続は、通常ではアプリケーションの信頼性及び性能を増加させないが、冗長の接続は、多い障害のポイント、多いボトルネックのリンク及び大きい待ち時間を導入する。例えば、無線接続は、パケット損失及び接続のドロップをしばしば受けやすい。アプリケーションが関与する無線リンクが多くなるほど、実際にデータ通信の信頼性が低くなる。
【０００６】
従来技術の手法では、プロキシがネットワークアドレス変換装置に配置されている。外部への接続は、プロキシにより行われて保持される。まず、複数の装置は、ネットワークアドレス変換装置に接続し、同じ接続を要求することができる。従って、移動装置は、接続を設定し、他の装置にこの接続を使用するように命令することができる。しかし、この手法は、特定のホストの間での接続の共有のみを可能にし、接続の数を減少させない。更に、いくつかのダム装置（例えば、NAS）は、ネットワークアドレス変換装置への接続を開始することすらできないことがある。更に、ネットワークアドレス変換装置の余分な数の接続のため、ネットワーク変換装置は、多くのリソース（例えば、データコピー及びチェックサム計算、パケットのバッファリング等）を必要とする。TCPスプライシング（TCP  splicing）は、同様の従来技術の手法であるが、この焦点は、クライアントとサーバとの間の接続のプロキシの性能を改善することにある。これは、３つの装置（クライアント、サーバ及びプロキシ）のみに関与する。他の従来技術の手法であるMsocksは、同じ装置の移動性の問題を解決するために、TCPスプライシングを利用する。すなわち、ホストが移動すると、その接続はトランスポートレベルで維持される。Msocksはまた、特別のライブラリとリンクするために移動装置のアプリケーションを変更することを必要とする。
【課題を解決するための手段】
【０００７】
本発明は、複数の装置がアプリケーションに関与するときに、冗長のTCP/UDP接続を除去する方法を対象とし、１つの装置から他の装置への通信セッションのトランスペアレントな移行を可能にし、移動装置の移動性を容易にする。
【０００８】
本発明による方法は、移動装置のTCPの実装における制限のないことを含み、複数の利点を有する。２つの接続がマージ（合併又は併合）できるように整合させるために、接続は同様の拡張機能（例えば、ウィンドウスケール（window  scale）、選択性の承認（selective  acknowledgement）、タイムスタンプ）を有するべきである。ある程度の余分のオーバーヘッドで、これらの機能のいくつかをネットワークアドレス変換装置に実装することは可能である。
【０００９】
冗長の接続を除去する方法及びシステムが記載され、２つの接続をマージする要求を送信し、第１の接続の第１の部分を終了させ、第１の接続は、第１の装置と第２の装置との間で通信を実施し、第２の接続の第１の部分を終了させ、第２の接続は、第１の装置と第３の装置との間で通信を実施し、第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。接続をマージする方法及びシステムも記載され、２つの接続をマージする要求を受信し、第１の接続の第１の部分を終了させ、第１の接続は、第１の装置と第２の装置との間で通信を実施し、第２の接続の第１の部分を終了させ、第２の接続は、第１の装置と第３の装置との間で通信を実施し、第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。本発明は、半分の接続である接続部分について記載されている点に留意すべきである。
【００１０】
接続をマージする方法及びシステムも記載され、第１の装置と第２の装置との間で第１のマッピングを終了させ、第１の装置と第３の装置との間で第２のマッピングを終了させ、第２の装置と第３の装置との間でマッピングを生成することを有する。
【図面の簡単な説明】
【００１１】
【図１】例示的なホームネットワーキング環境
【図２】本発明の原理による接続マージ処理の概略図
【発明を実施するための形態】
【００１２】
本発明は、添付図面と共に読まれたときに以下の詳細な説明から最も良く理解できる。
【００１３】
図１は、無線アクセスポイントがインターネットに接続される例示的なホームネットワーキング環境を示している。アクセスポイントは、インターネットに直接接続されてもよく、ネットワークアドレス変換（NAT：Network  Address  Translation）型ルータ（ネットワークアドレス変換装置）を介して接続されてもよい。また、ネットワーク接続ストレージ（NAS：network  attached  storage）装置（宛先ストレージ装置）、デスクトップコンピュータ及び複数の無線クライアント（例えば、ラップトップ、PDA）も存在する。図１に示す例示的な環境で、ファイル共有アプリケーションは、４つの装置（遠隔ファイル（データ）サーバ、ネットワーク接続ストレージ（NAS）装置、アクセスポイント及び少なくとも１つの移動クライアント（例えば、ラップトップ又はPDA（personal  digital  assistant）））に関与する。ラップトップ及びPDAは強力なCPUとユーザフレンドリーなインタフェースとを備えているが、これらは常に電源オンになるように設計されていない。他方、無線アクセスポイント及びNASは、通常では遅いCPU及び小さいメモリを備えた小型の組み込み型システムである。これらは、ほとんどの時間に電源オンになる。
【００１４】
本発明は、冗長の接続を有するデータ／ファイル共有又はデータ／ファイルダウンロード形式のアプリケーションを対象とする。これは、TCP及びUDP通信プロトコルの双方で典型的に生じる。ほとんどのデータ／ファイル共有又はファイルダウンロードアプリケーションでは、データは、インタラクティブアプリケーションのように迅速には必要にならない。しかし、本発明は、ストリーミング及びVoIPアプリケーションでも使用され得る。本発明はファイル／データダウンロードに関して記載されるが、本発明は、同様にファイル／データアップロードアプリケーションでも動作する点に留意すべきである。この場合、装置の役目が逆になる。ソース装置は宛先装置になり、その逆も同様である。
【００１５】
一実施例では、本発明は、TCP型アプリケーションを扱う。図２を参照すると、移動装置は、第１の接続を使用してソースデータサーバ（ソース装置）Sへの接続を開始し、第２の接続を使用して宛先ストレージサーバ／ストレージ装置Dにコンテンツを保存する。双方の接続は、ネットワークアドレス変換装置を通過する。すなわち、移動装置とソース装置との間の接続は、移動装置とストレージ装置との間の接続と同様に、ネットワークアドレス変換装置を通過する。接続の確立の後に、移動装置は、ネットワークアドレス変換装置に対してこれらの２つの接続をマージするように要求する。これにより、ソース装置Sは、データをストレージ装置Dに直接転送する。図２の接続は、通信が双方向であることを示す両方向の矢印を有する点に留意すべきである。本発明の方法の説明で、以下の記号が使用される。
S：ソース装置／ソースデータサーバ
M：移動装置
D：宛先ストレージサーバ／ストレージ装置
N：ネットワークアドレス変換ホスト／ネットワークアドレス変換装置
接続の方向毎にプロトコル状態情報を記録するためにタプル（tuple）が規定される。タプルは２つのフィールドから構成される。
T(snd_max,ack_max)
タプルは、接続の一方向についてネットワークアドレス変換装置により検出された最大シーケンス番号と最大承認番号とを記録する。各タプルは、対応する装置のプロトコル状態の遅延したミラーとして考えられてもよい。しかし、状態の正確性を維持しなければならないエンド装置とは異なり、ネットワークアドレス変換装置は、記録を付けさえすればよい。例えば、エンド装置は、順序が狂ったパケットをバッファに入れなければならないが、ネットワークアドレス変換装置は、通常の動作中にパケットをバッファに入れない。従って、状態は遅延していると考えられる。これは、エンド装置とネットワークアドレス変換装置との間のネットワーク内に依然としてパケットが存在するからである。この手法の利点は、ネットワークアドレス変換装置のプロキシを必要とせずに、プロトコルの複雑性がエンド装置で保持されるという点にある。
【００１６】
本発明の原理に従って設定されたネットワークアドレス変換装置で使用される４つのタプルが存在する。
Tsm：ソースホストから移動装置への半分の接続のためのタプル
Tms：移動ホストからソース装置への半分の接続のためのタプル
Tmd：移動ホストから宛先装置への半分の接続のためのタプル
Tdm：宛先ホストから移動装置への半分の接続のためのタプル
これらの４つのタプルは、２つの接続（ネットワークアドレス変換装置を介したソース装置と移動装置との間の接続の(Tms,Tsm)、及びネットワークアドレス変換装置を介した移動装置と宛先／ストレージ装置との間の(Tmd,Tdm)）に対応する。従って、設定中に、移動装置は、ソース装置（ソースデータサーバ又はデータサーバ）への第１の接続を開始する。次に、移動装置は、ストレージ装置への第２の接続を開始する。これらの２つのステップは交換されてもよい。次に、移動装置は、ソース装置からファイル／データを取得する。最後に、移動装置は、ファイル／データをストレージ装置に転送する。
【００１７】
移動装置がこれらの２つの接続をマージすることを決定すると、まず、移動装置は、２つの接続がマージされることを示すメッセージをネットワークアドレス変換装置に送信する。この場合、マージにより、移動装置に関与する接続を除去する。ネットワークアドレス変換装置は、未承認データが承認されるのを待機し、移動装置とソース装置との間の接続の移動装置側を終了させる（terminate）。受信したバッファのデータを処理した後に、移動装置は、ストレージ装置との通信の終了を示す他のメッセージをネットワークアドレス変換装置に送信する。第２のメッセージを受信すると、ネットワークアドレス変換装置は、接続をマージし始めることができる。接続は以下の段階でマージされる。
【００１８】
段階１：通常の動作
ネットワークアドレス変換装置で、プロトコル情報は、他の接続とマージされる可能性があるマージ毎に追跡される必要がある。SYNフラグセットを有するパケットのシーケンス番号から始めて、ネットワークアドレス変換装置が検出した最大のシーケンス番号及び承認番号が記録される。しかし、パケット損失又は並び替えのため、反対側で全ての以前のパケットを受信していない可能性がある。エンド装置は、損失したパケットの再送信を処理する。例えば、シーケンス番号Psm.seq及び承認番号Psm.ackでソース装置から移動装置に送信したパケットPsmは、以下のように対応するタプルを更新する。
(Tsm.snd_max<Psm.seq)である場合、Tsm.snd_max=Psm.seq
(Tsm.ack_max<Psm.ack)である場合、Tsm.ack_max=Psm.ack
段階２：第１の接続の“終了”
移動装置が２つの接続のマージを要求する場合、ネットワークアドレス変換装置に通知するメッセージを送信する。ネットワークアドレス変換装置は、移動装置とソース装置との間の第１の接続についての２つのタプルをフリーズする。この時点から、低いシーケンス番号及び承認番号を有するパケットのみがこれらの間で転送され得る。これらのパケットは、ネットワーク内で遅延しているか、エラーのため再送信されている。特定のペイロードのシーケンス番号が対応するタプルの“snd_max”を超える場合、ペイロードは切り捨てられる。移動ホスト／装置及びソースホスト／装置の双方は、ネットワークアドレス変換装置により検出された最大シーケンス番号より大きいシーケンス番号を検出できないため、対応するタプルの“ack_max”より大きい承認番号を有するパケットは破棄される。マージ動作を実行するために要する時間は、TCPのタイムアウト値より小さくなるべきであるため、エンド装置は、破棄されたパケットを損失したものとして検出し、再送信を実行することができるべきである。実装の改善として、ネットワークアドレス変換装置は、ネットワークアドレス変換装置の利用可能なメモリに応じて“snd_max”を超えるペイロードを有するいくつかのパケットをバッファに入れるように選択してもよい。
【００１９】
パケットが正確に受信された後に、ネットワークアドレス変換装置は、アクティブ・クローズ（active  close）を開始し、FINを移動装置に送信する。移動装置の観点から、接続が終了する。ネットワークアドレス変換装置は、移動装置からFIN、ACKを待機し、ネットワークアドレス変換装置は、最終的なACKを送信する。すなわち、移動装置がソース装置からデータを受信する移動装置とソース装置との間の接続の半分が終了する。
【００２０】
段階３：第２の接続の“終了”
移動装置は、ソース装置からのバッファのデータを処理し続け、ストレージ装置との接続の終了を示すメッセージをネットワークアドレス変換装置に送信する。このメッセージはアプリケーションにより規定され、ストレージ装置に送信された全てのデータが承認された後に送信される。すなわち、ストレージ装置が移動装置からデータを受信する移動装置とストレージ装置との間の接続の半分が終了する。
【００２１】
他の実施例では、移動装置は、FINを有するパケットをストレージ装置に送信する。この実施例では、ネットワークアドレス変換装置は、宛先に転送せずに、FINメッセージを傍受する。これは、基本的にパッシブ・クローズ（passive  close）であり、ネットワークアドレス変換装置は、FIN及びACKで移動装置に応答し、移動装置から最終的なACKを待機する。アプリケーションがFINメッセージを使用せずにメッセージを送信すると、ネットワークアドレス変換装置は、前の段階と同様に移動装置への半分の接続を終了させる。
【００２２】
この段階で、終了メッセージ又はFINメッセージを有するパケットが受信されるまで、第２の接続のタプルが更新される。次に、第２の接続のタプルがフリーズされる。この時点から、snd_maxより小さいシーケンス番号及びack_maxより小さい承認番号を有するパケットのみが前の段階と同様に受け付けられる。
【００２３】
移動装置が移動装置とストレージ装置との間の接続の半分を終了させた後に、ネットワークアドレス変換装置は、ストレージ装置とソース装置との間に新しいマッピングを生成し、これらの間でパケットを転送する準備をする。FINメッセージが接続を終了させるために使用される場合、snd_maxがFIN-1のシーケンス番号として指定される。
【００２４】
段階４：マージの完了
これらの２つの接続のシーケンス番号及び承認番号は独立している。パケットは、ソース装置と移動装置との間で単に直接転送できない。移動装置がこれらの２つの接続に関与していなくても、パケットが移動装置からのものであるように見えるように、パケットは変更される必要がある。例えば、ソース装置から生じたパケットでは、シーケンス空間を送信するソース装置は、パケットをストレージ装置に送信するために移動装置により使用される送信シーケンス空間にマッピングされる。承認もまた、ストレージ装置により使用される送信空間に入るように変更される。シーケンス番号は以下のように変更される。
Psm.seq=Psm.seq-Tsm.snd_max+Tmd.snd_max
ACKは以下のように変更される。
Psm.ack=Psm.ack-Tms.snd_max+Tdm.snd_max
ソース装置から移動装置へのパケットの詳細な動作は以下のようになる。
Psm.dst_ip=D.ip（宛先ipを宛先（ストレージ装置）に変更）
Psm.dst_port=D.port
Psm.src_ip=M.ip
Psm.src_port=M.port（Dと通信するために使用されるポート）
Psm.seq=Psm.seq-Tsm.snd_max+Tmd.snd_max
Psm.ack=Psm.ack-Tms.snd_max+Tdm.snd_max
第３及び第４の命令は併せて、データ／ファイルが移動装置からのものであるが、データ／ファイルが実際にソース装置から生じるように思わせるために、宛先（ストレージ装置）をだます。ストレージ装置から移動装置へのパケットの詳細な動作は以下のようになる。
Pdm.dst_ip=S.ip
Pdm.dst_port=S.port
Pdm.src_ip=N.ip
Pdm.dst_port=N.port
Pdm.seq=Pdm.seq-Tdm.snd_max+Tms.snd_max
Pdm.ack=Pdm.ack-Tmd.snd_max+Tms.snd_max
前述の動作で実現するものは、第１及び第２の接続のそれぞれ他の（第２の）半分のマージである。すなわち、ソース装置は、ネットワークアドレス変換装置を介してデータ／ファイル／パケットをストレージ装置に送信する。ネットワークアドレス変換装置は、もはや関与していない移動装置からデータ／パケットが生じるようにストレージ装置に見えるように、パケットヘッダを変更する。このことは、移動装置からソース装置へ及びストレージ装置から移動装置への通信を効率的にマージ又は終了させる。
【００２５】
N.portは、遠隔データソースサーバ（遠隔ソース装置）に見えるポートである点に留意すべきである。ネットワークアドレス変換装置の実装に応じて、ソース装置に接続するために移動装置により使用されるポートと異なってもよい。M.portは、ストレージ装置に見えるポートである。前述の例では、ストレージ装置は移動装置と同じネットワーク内にあるため、M.portは、移動装置により使用されるポートと同じである。前述の変更の後で、TCPヘッダ及びIPヘッダのチェックサムが計算される、又はインクリメントして再計算される。
【００２６】
他の実施例では、アプリケーションは、トランスポートプロトコルとしてUDPを使用する。まず、移動装置はソース装置に接続し、ネットワークアドレス変換装置は、移動装置により使用されるUDPポートとソース装置により使用されるポートとの間のマッピングを維持する。移動装置がストレージ装置にセッションを移行することを決定すると、まず、移動装置は、ストレージ装置へのUDPセッションを活性化する（実装に応じて、移動装置又はストレージ装置がセッションを開始することができる）。次に、移動装置は、移動装置Mとソース装置Sとの間のマッピングをストレージ装置Dとソース装置Sとの間のマッピングに変更するように、ネットワークアドレス変換装置に命令する。
【００２７】
ソース装置から移動装置に送信されるパケットでは、ネットワークアドレス変換装置は以下の動作を実行する。
Psm.src_ip=M.ip
Psm.src_port=M.port（Dと通信するために使用されるポート）
Psm.dst_port=D.port
Psm.dst_ip=D.ip
ストレージ装置から移動装置に送信されるパケットでは、ネットワークアドレス変換装置は以下の動作を実行する。
Pdm.dst_ip=S.ip
Pdm.dst_port=S.port
Pdm.src_ip=N.ip
Pdm.dst_port=N.port
本発明による方法で示したファイル共有アプリケーションの他に、本発明の方法は、例えば以下のような他の用途を有する。
1.１つの装置から他の装置にストリーミングセッションをトランスペアレントに切り替える。本発明の方法を使用して、ユーザがパーソナルコンピュータ（PC）又はPDAからストリーミングビデオを視聴することを可能にするストリーミングクライアントは、後で、TCP/UDPを使用するTV（又はセットトップボックス付きTV）に移行することができる。ストリーミングアプリケーションがTCPのみを使用する場合（例えば、RTP  over  RTSP）、まず、移動装置はアプリケーション状態をストレージ装置に転送し、TCP接続をストレージ装置に移行する。ストリーミングアプリケーションがTCP（例えば、RTSP）及びUDP（RTP）を使用する場合、まず、移動装置はアプリケーション状態（RTSP状態）及びRTP状態をストレージ装置に転送し、TCP及びUDP接続をストレージ装置に移行する。
2.ストリーミングセッションの“視聴”からストリーミングセッションの“格納”にトランスペアレントに切り替える。この用途は、ストレージ装置が装置（例えば、TV）で処理／表示する代わりにローカルのストレージにストリームを格納する点を除いて、前述のものと同様である。
3.１つの装置から他の装置に又は１つのユーザ電話機から他のユーザ電話機にVoIP呼をトランスペアレントに切り替える。この用途は、前述の２つの用途と同様であり、まず、アプリケーション状態をストレージ装置に転送し、次に、TCP/UDP接続を移行することにより実装される。
【００２８】
更なる状態を使用しないアプリケーション又はセッションの開始時にのみいくつかの状態を使用するアプリケーションでは、移動装置とストレージ装置との双方で動作するアプリケーションは、不変のままでもよい。しかし、セッション中にいくつかの状態を維持しなければならないアプリケーションでは、アプリケーションは、これらの状態を転送し、前述のように本発明による方法を使用して基礎となる接続を移行するように変更されなければならない。
【００２９】
接続のマージを開始するために、ネットワークアドレス変換装置は、共通ゲートウェイインタフェース（CGI：common  gateway  interface）型のウェブインタフェースを提供してもよい。クライアントは、CGIスクリプトにアクセスし、現在追跡されている接続のリストを取得し、ネットワークアドレス変換装置がマージすべき接続を示してもよい。他の実施例は、ネットワークアドレス変換装置にデーモンプロセスを配置し、マージ命令を送信する移動装置用の通信インタフェースを規定することである。
【００３０】
本発明は、様々な形式のハードウェア、ソフトウェア、ファームウェア、専用目的プロセッサ又はこれらの組み合わせで実装されてもよい。本発明は、ソフトウェアとハードウェアとの組み合わせとして実装されることが好ましい。更に、ソフトウェアは、プログラムストレージ装置に明確に具現されたアプリケーションプログラムとして実装されることが好ましい。アプリケーションプログラムは、何らかの適切なアーキテクチャを有する機械にアップロードされて実行されてもよい。機械は、１つ以上の中央処理装置（CPU）、ランダムアクセスメモリ（RAM）及び入出力（I/O）インタフェースのようなハードウェアを有するコンピュータプラットフォームに実装されることが好ましい。コンピュータプラットフォームはまた、オペレーティングシステムとマイクロ命令コードとを含む。ここに記載する様々な処理及び機能は、マイクロ命令コードの一部でもよく、オペレーティングシステムを介して実行されるアプリケーションプログラムの一部でもよい（これらの組み合わせでもよい）。更に、更なるデータストレージ装置及び印刷装置のように、様々な他の周辺装置がコンピュータプラットフォームに接続されてもよい。
【００３１】
添付図面に示すいくつかの構成要素のシステム構成要素及び方法のステップは、ソフトウェアで実装されることが好ましいため、システム構成要素（又は処理ステップ）の間の実際の接続は、本発明がプログラムされる方法に応じて異なってもよいことが更にわかる。ここでの教示を踏まえて、当業者は、本発明の前記及び同様の実装又は構成を検討することができる。
【図１】
2010510715.tif 000003
【図２】
2010510715.tif 000004
【手続補正書】
【提出日】平成21年5月21日(2009.5.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
冗長の接続を除去する方法であって、
２つの接続をマージする要求を送信し、
第１の接続の第１の部分を終了させ、
第２の接続の第１の部分を終了させ、
前記第１及び第２の接続のそれぞれの第２の部分をマージすることを有する方法。
【請求項２】
前記第１の接続の前記第１の部分を終了させることは、
第１の装置と第２の装置との間の通信を終了させ、前記第１の接続は、前記第１の装置と前記第２の装置との間で通信を実施し、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、
前記第１の装置により前記第２の装置から受信したバッファのデータを処理し、
前記第２の装置との通信の終了を示すメッセージを送信することを更に有する、請求項１に記載の方法。
【請求項３】
前記第２の接続の前記第１の部分を終了させることは、
バッファのデータを前記第３の装置に送信し、
前記第３の装置との通信の終了を示すメッセージを送信することを更に有する、請求項２に記載の方法。
【請求項４】
前記第１の装置と前記第２の装置との間に前記第１の接続を確立し、前記第１の装置と前記第３の装置との間に前記第２の接続を確立することを更に有する、請求項１に記載の方法。
【請求項５】
前記第２の接続の前記第１の部分を終了させることは、
接続メッセージの終了を第３の装置に送信し、
前記接続メッセージの終了の承認を受信し、
最終的な承認を送信することを更に有する、請求項２に記載の方法。
【請求項６】
接続をマージする方法であって、
第１の接続の第１の部分を終了させ、
第２の接続の第１の部分を終了させ、
前記第１及び第２の接続のそれぞれの第２の部分をマージすることを有する方法。
【請求項７】
前記第１の接続の前記第１の部分を終了させることは、
何らかの以前に送信したが未承認のデータの受信の承認を待機し、
前記第１の接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズし、前記第１の接続は、第１の装置と第２の装置との間で通信を実施し、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施され、
前記第１の装置と前記第２の装置との間の通信の終了を示すメッセージを受信することを更に有する、請求項６に記載の方法。
【請求項８】
前記第２の接続の前記第１の部分を終了させることは、
前記第２の装置を介して通信する装置の間のプロトコル状態に関する情報を更新し、
前記第１の装置と前記第３の装置との間の通信の終了を示すメッセージを受信し、
前記第２の接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズすることを更に有する、請求項７に記載の方法。
【請求項９】
前記第２の装置と前記第３の装置との間に新しいマッピングを生成することを更に有する、請求項８に記載の方法。
【請求項１０】
前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第１の装置により送信されたかのように前記第３の装置に見えるようにする、請求項９に記載の方法。
【請求項１１】
最大シーケンス番号が接続毎に記録される、請求項６に記載の方法。
【請求項１２】
最大承認番号が接続毎に記録される、請求項６に記載の方法。
【請求項１３】
冗長の接続を除去するシステムであって、
２つの接続をマージする要求を送信する手段と、
第１の接続の第１の部分を終了させる手段と、
第２の接続の第１の部分を終了させる手段と、
前記第１及び第２の接続のそれぞれの第２の部分をマージする手段と
を有するシステム。
【請求項１４】
前記第１の接続の前記第１の部分を終了させる手段は、
第１の装置と第２の装置との間の接続を終了させる手段であり、前記第１の接続は、前記第１の装置と前記第２の装置との間で通信を実施し、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施される手段と、
前記第１の装置により前記第２の装置から受信したバッファのデータを処理する手段と、
前記第２の装置との通信の終了を示すメッセージを送信する手段と
を更に有する、請求項１３に記載のシステム。
【請求項１５】
前記第２の接続の前記第１の部分を終了させる手段は、
バッファのデータを前記第３の装置に送信する手段と、
前記第３の装置との通信の終了を示すメッセージを送信する手段と
を更に有する、請求項１４に記載のシステム。
【請求項１６】
前記第１の装置と前記第２の装置との間に前記第１の接続を確立する手段と、
前記第１の装置と第３の装置との間に前記第２の接続を確立する手段と
を更に有する、請求項１３に記載のシステム。
【請求項１７】
前記第２の接続の前記第１の部分を終了させる手段は、
接続メッセージの終了を前記第３の装置に送信する手段と、
前記接続メッセージの終了の承認を受信する手段と、
最終的な承認を送信する手段と
を更に有する、請求項１４に記載のシステム。
【請求項１８】
接続をマージするシステムであって、
２つの接続をマージする要求を受信する手段と、
第１の接続の第１の部分を終了させる手段と、
第２の接続の第１の部分を終了させる手段と、
前記第１及び第２の接続のそれぞれの第２の部分をマージする手段と
を有するシステム。
【請求項１９】
前記第１の接続の前記第１の部分を終了させる手段は、
何らかの以前に送信したが未承認のデータの受信の承認を待機する手段と、
前記第１の接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズする手段であり、前記第１の接続は、第１の装置と第２の装置との間で通信を実施し、前記第２の接続は、前記第１の装置と第３の装置との間で通信を実施し、前記第１及び第２の接続のそれぞれは、第４の装置を通じて実施される手段と、
前記第１の装置と前記第２の装置との間の通信の終了を示すメッセージを受信する手段と
を更に有する、請求項１８に記載のシステム。
【請求項２０】
前記第２の接続の前記第１の部分を終了させる手段は、
前記第２の装置を介して通信する装置の間のプロトコル状態に関する情報を更新する手段と、
前記第１の装置と前記第３の装置との間の通信の終了を示すメッセージを受信する手段と、
前記第２の接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズする手段と
を更に有する、請求項１９に記載のシステム。
【請求項２１】
前記第２の装置と前記第３の装置との間に新しいマッピングを生成することを更に有する、請求項２０に記載のシステム。
【請求項２２】
前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第１の装置により送信されたかのように前記第３の装置に見えるようにする、請求項２１に記載のシステム。
【請求項２３】
最大シーケンス番号が接続毎に記録される、請求項１８に記載のシステム。
【請求項２４】
最大承認番号が接続毎に記録される、請求項１８に記載のシステム。
【請求項２５】
チェックサムを計算する手段を更に有する、請求項１８に記載のシステム。
【請求項２６】
接続をマージする方法であって、
第１の装置と第２の装置との間で第１のマッピングを終了させ、
前記第１の装置と第３の装置との間で第２のマッピングを終了させ、
前記第２の装置と前記第３の装置との間でマッピングを生成することを有する方法。
【請求項２７】
接続をマージするシステムであって、
第１の装置と第２の装置との間で第１のマッピングを終了させる手段と、
前記第１の装置と第３の装置との間で第２のマッピングを終了させる手段と、
前記第２の装置と前記第３の装置との間でマッピングを生成する手段と
を有するシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
冗長の接続を除去する方法及びシステムが記載され、２つの接続をマージする要求を送信し、第１の接続の第１の部分を終了させ、第２の接続の第１の部分を終了させ、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。接続をマージする方法及びシステムも記載され、２つの接続をマージする要求を受信し、第１の接続の第１の部分を終了させ、第２の接続の第１の部分を終了させ、第１及び第２の接続のそれぞれの第２の部分をマージすることを有する。本発明は、半分の接続である接続部分について記載されている点に留意すべきである。
【国際調査報告】
2010510715.tif 000005
2010510715.tif 000006