JP4903270B2 - 冗長の接続を除去する方法 - Google Patents

冗長の接続を除去する方法 Download PDF

Info

Publication number
JP4903270B2
JP4903270B2 JP2009537131A JP2009537131A JP4903270B2 JP 4903270 B2 JP4903270 B2 JP 4903270B2 JP 2009537131 A JP2009537131 A JP 2009537131A JP 2009537131 A JP2009537131 A JP 2009537131A JP 4903270 B2 JP4903270 B2 JP 4903270B2
Authority
JP
Japan
Prior art keywords
tcp
network address
udp connection
udp
address translation
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.)
Expired - Fee Related
Application number
JP2009537131A
Other languages
English (en)
Other versions
JP2010510715A (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2010510715A publication Critical patent/JP2010510715A/ja
Application granted granted Critical
Publication of JP4903270B2 publication Critical patent/JP4903270B2/ja
Expired - Fee Related 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/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • 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]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

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

Description

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

Claims (27)

  1. 冗長のTCP/UDP接続を除去する方法であって、
    2つのTCP/UDP接続をマージする要求をネットワークアドレス変換装置に送信し、
    前記ネットワークアドレス変換装置により、第1のTCP/UDP接続の第1の部分を終了させ、
    前記ネットワークアドレス変換装置により、第2のTCP/UDP接続の第1の部分を終了させ、
    前記ネットワークアドレス変換装置により、前記第1及び第2のTCP/UDP接続のそれぞれの第2の部分をマージすることを有する方法。
  2. 前記第1のTCP/UDP接続の前記第1の部分を終了させることは、
    前記第1のTCP/UDP接続、第1の装置と第2の装置との間で通信を実施し、前記第2のTCP/UDP接続、前記第1の装置と第3の装置との間で通信を実施し、前記第1及び第2のTCP/UDP接続のそれぞれ前記ネットワークアドレス変換装置を通じて実施される場合、第1の装置と第2の装置との間のTCP/UDP接続を終了させ
    前記第1の装置により前記第2の装置から受信したバッファに入れられたデータを処理し、
    前記ネットワークアドレス変換装置により、前記第1の装置と前記第2の装置との間の通信の終了を示すメッセージを送信することを更に有する、請求項1に記載の方法。
  3. 前記第2のTCP/UDP接続の前記第1の部分を終了させることは、
    前記第1の装置により、バッファに入れられたデータを前記第3の装置に送信し、
    前記ネットワークアドレス変換装置により、前記第1の装置と前記第3の装置との間の通信の終了を示すメッセージを送信することを更に有する、請求項2に記載の方法。
  4. 前記第1の装置と前記第2の装置との間に前記第1のTCP/UDP接続を確立し、前記第1の装置と前記第3の装置との間に前記第2のTCP/UDP接続を確立することを更に有する、請求項1に記載の方法。
  5. 前記第2のTCP/UDP接続の前記第1の部分を終了させることは、
    TCP/UDP接続メッセージの終了を第3の装置に送信し、
    前記TCP/UDP接続メッセージの終了の承認を受信し、
    最終的な承認を送信することを更に有する、請求項2に記載の方法。
  6. TCP/UDP接続をマージする方法であって、
    ネットワークアドレス変換装置により、第1のTCP/UDP接続の第1の部分を終了させ、
    前記ネットワークアドレス変換装置により、第2のTCP/UDP接続の第1の部分を終了させ、
    前記ネットワークアドレス変換装置により、前記第1及び第2のTCP/UDP接続のそれぞれの第2の部分をマージすることを有する方法。
  7. 前記第1のTCP/UDP接続の前記第1の部分を終了させることは、
    何らかの以前に送信したが未承認のデータの受信の承認を待機し、
    前記第1のTCP/UDP接続、第1の装置と第2の装置との間で通信を実施し、前記第2のTCP/UDP接続、前記第1の装置と第3の装置との間で通信を実施し、前記第1及び第2のTCP/UDP接続のそれぞれ前記ネットワークアドレス変換装置を通じて実施される場合、前記第1のTCP/UDP接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズし
    前記ネットワークアドレス変換装置から、前記第1の装置と前記第2の装置との間の通信の終了を示すメッセージを受信することを更に有する、請求項6に記載の方法。
  8. 前記第2のTCP/UDP接続の前記第1の部分を終了させることは、
    前記第2のTCP/UDP接続を介して通信する装置の間のプロトコル状態に関する情報を更新し、
    前記第1の装置と前記第3の装置との間の通信の終了を示すメッセージを受信し、
    前記第2のTCP/UDP接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズすることを更に有する、請求項7に記載の方法。
  9. 前記第2の装置と前記第3の装置との間に新しいマッピングを生成することを更に有する、請求項8に記載の方法。
  10. 前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第1の装置により送信されたかのように前記第3の装置に見えるようにする、請求項9に記載の方法。
  11. 最大シーケンス番号がTCP/UDP接続毎に記録される、請求項6に記載の方法。
  12. 最大承認番号がTCP/UDP接続毎に記録される、請求項6に記載の方法。
  13. 冗長のTCP/UDP接続を除去するシステムであって、
    2つのTCP/UDP接続をマージする要求をネットワークアドレス変換装置に送信する手段と、
    前記ネットワークアドレス変換装置により、第1のTCP/UDP接続の第1の部分を終了させる手段と、
    前記ネットワークアドレス変換装置により、第2のTCP/UDP接続の第1の部分を終了させる手段と、
    前記ネットワークアドレス変換装置により、前記第1及び第2のTCP/UDP接続のそれぞれの第2の部分をマージする手段と
    を有するシステム。
  14. 前記第1のTCP/UDP接続の前記第1の部分を終了させる手段は、
    前記第1のTCP/UDP接続、第1の装置と第2の装置との間で通信を実施し、前記第2のTCP/UDP接続、前記第1の装置と第3の装置との間で通信を実施し、前記第1及び第2のTCP/UDP接続のそれぞれ前記ネットワークアドレス変換装置を通じて実施される場合、第1の装置と第2の装置との間のTCP/UDP接続を終了させる手段と、
    前記第1の装置により前記第2の装置から受信したバッファに入れられたデータを処理する手段と、
    前記ネットワークアドレス変換装置により、前記第1の装置と前記第2の装置との間の通信の終了を示すメッセージを送信する手段と
    を更に有する、請求項13に記載のシステム。
  15. 前記第2のTCP/UDP接続の前記第1の部分を終了させる手段は、
    前記第1の装置により、バッファに入れられたデータを前記第3の装置に送信する手段と、
    前記ネットワークアドレス変換装置により、前記第1の装置と前記第3の装置との間の通信の終了を示すメッセージを送信する手段と
    を更に有する、請求項14に記載のシステム。
  16. 前記第1の装置と前記第2の装置との間に前記第1のTCP/UDP接続を確立する手段と、
    前記第1の装置と第3の装置との間に前記第2のTCP/UDP接続を確立する手段と
    を更に有する、請求項13に記載のシステム。
  17. 前記第2のTCP/UDP接続の前記第1の部分を終了させる手段は、
    TCP/UDP接続メッセージの終了を前記第3の装置に送信する手段と、
    前記TCP/UDP接続メッセージの終了の承認を受信する手段と、
    最終的な承認を送信する手段と
    を更に有する、請求項14に記載のシステム。
  18. TCP/UDP接続をマージするシステムであって、
    ネットワークアドレス変換装置により、2つのTCP/UDP接続をマージする要求を受信する手段と、
    前記ネットワークアドレス変換装置により、第1のTCP/UDP接続の第1の部分を終了させる手段と、
    前記ネットワークアドレス変換装置により、第2のTCP/UDP接続の第1の部分を終了させる手段と、
    前記ネットワークアドレス変換装置により、前記第1及び第2のTCP/UDP接続のそれぞれの第2の部分をマージする手段と
    を有するシステム。
  19. 前記第1のTCP/UDP接続の前記第1の部分を終了させる手段は、
    何らかの以前に送信したが未承認のデータの受信の承認を待機する手段と、
    前記第1のTCP/UDP接続、第1の装置と第2の装置との間で通信を実施し、前記第2のTCP/UDP接続、前記第1の装置と第3の装置との間で通信を実施し、前記第1及び第2のTCP/UDP接続のそれぞれ前記ネットワークアドレス変換装置を通じて実施される場合、前記第1のTCP/UDP接続を介して通信する装置の間のプロトコル状態に関する情報をフリーズする手段と、
    前記ネットワークアドレス変換装置から、前記第1の装置と前記第2の装置との間の通信の終了を示すメッセージを受信する手段と
    を更に有する、請求項18に記載のシステム。
  20. 前記第2のTCP/UDP接続の前記第1の部分を終了させる手段は、
    前記第2のTCP/UDP接続を介して通信する装置の間のプロトコル状態に関する情報を更新する手段と、
    前記第1の装置と前記第3の装置との間の通信の終了を示すメッセージを受信する手段と、
    前記第2のTCP/UDP接続を介して通信する前記装置の間のプロトコル状態に関する情報をフリーズする手段と
    を更に有する、請求項19に記載のシステム。
  21. 前記第2の装置と前記第3の装置との間に新しいマッピングを生成することを更に有する、請求項20に記載のシステム。
  22. 前記新しいマッピングは、データパケットのシーケンス番号及び承認番号を変更し、これにより、前記パケットが前記第1の装置により送信されたかのように前記第3の装置に見えるようにする、請求項21に記載のシステム。
  23. 最大シーケンス番号がTCP/UDP接続毎に記録される、請求項18に記載のシステム。
  24. 最大承認番号がTCP/UDP接続毎に記録される、請求項18に記載のシステム。
  25. チェックサムを計算する手段を更に有する、請求項18に記載のシステム。
  26. TCP/UDP接続をマージする方法であって、
    ネットワークアドレス変換装置により、第1の装置と第2の装置との間で第1のマッピングを終了させ、
    前記ネットワークアドレス変換装置により、前記第1の装置と第3の装置との間で第2のマッピングを終了させ、
    前記ネットワークアドレス変換装置により、前記第2の装置と前記第3の装置との間でマッピングを生成することを有する方法。
  27. TCP/UDP接続をマージするシステムであって、
    ネットワークアドレス変換装置により、第1の装置と第2の装置との間で第1のマッピングを終了させる手段と、
    前記ネットワークアドレス変換装置により、前記第1の装置と第3の装置との間で第2のマッピングを終了させる手段と、
    前記ネットワークアドレス変換装置により、前記第2の装置と前記第3の装置との間でマッピングを生成する手段と
    を有するシステム。
JP2009537131A 2006-11-20 2006-11-20 冗長の接続を除去する方法 Expired - Fee Related JP4903270B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2006/044941 WO2008063166A1 (en) 2006-11-20 2006-11-20 Method for eliminating redundant connections

Publications (2)

Publication Number Publication Date
JP2010510715A JP2010510715A (ja) 2010-04-02
JP4903270B2 true JP4903270B2 (ja) 2012-03-28

Family

ID=39429981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009537131A Expired - Fee Related JP4903270B2 (ja) 2006-11-20 2006-11-20 冗長の接続を除去する方法

Country Status (6)

Country Link
US (1) US9231784B2 (ja)
EP (1) EP2084852A4 (ja)
JP (1) JP4903270B2 (ja)
CN (1) CN101536417B (ja)
BR (1) BRPI0622122A2 (ja)
WO (1) WO2008063166A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI433674B (zh) 2006-12-28 2014-04-11 Infinity Discovery Inc 環杷明(cyclopamine)類似物類
US7493383B1 (en) * 2006-12-29 2009-02-17 F5 Networks, Inc. TCP-over-TCP using multiple TCP streams
US7877490B1 (en) * 2007-12-28 2011-01-25 Violin Memory, Inc. Method and apparatus for efficient TCP connection handoff
US7979557B2 (en) * 2008-04-11 2011-07-12 Mobitv, Inc. Fast setup response prediction
US8473625B1 (en) * 2010-12-10 2013-06-25 Sprint Communications Company L.P. Preservation of network address translation (NAT) state across wireless sessions
US10375133B2 (en) 2011-02-22 2019-08-06 Theatro Labs, Inc. Content distribution and data aggregation for scalability of observation platforms
US9602625B2 (en) 2011-02-22 2017-03-21 Theatrolabs, Inc. Mediating a communication in an observation platform
US10134001B2 (en) 2011-02-22 2018-11-20 Theatro Labs, Inc. Observation platform using structured communications for gathering and reporting employee performance information
US9542695B2 (en) * 2011-02-22 2017-01-10 Theatro Labs, Inc. Observation platform for performing structured communications
US11599843B2 (en) 2011-02-22 2023-03-07 Theatro Labs, Inc. Configuring , deploying, and operating an application for structured communications for emergency response and tracking
EP2679041B1 (en) 2011-02-22 2018-11-14 Theatro Labs, Inc. Observation platform for using structured communications
US11636420B2 (en) 2011-02-22 2023-04-25 Theatro Labs, Inc. Configuring, deploying, and operating applications for structured communications within observation platforms
US9407543B2 (en) 2011-02-22 2016-08-02 Theatrolabs, Inc. Observation platform for using structured communications with cloud computing
US10699313B2 (en) 2011-02-22 2020-06-30 Theatro Labs, Inc. Observation platform for performing structured communications
US10069781B2 (en) 2015-09-29 2018-09-04 Theatro Labs, Inc. Observation platform using structured communications with external devices and systems
US10204524B2 (en) 2011-02-22 2019-02-12 Theatro Labs, Inc. Observation platform for training, monitoring and mining structured communications
US11605043B2 (en) 2011-02-22 2023-03-14 Theatro Labs, Inc. Configuring, deploying, and operating an application for buy-online-pickup-in-store (BOPIS) processes, actions and analytics
US10814233B2 (en) 2017-11-08 2020-10-27 Take-Two Interactive Software, Inc. System and method for session management in a multiplayer network gaming environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252615A (ja) * 1998-03-02 1999-09-17 Hitachi Ltd 通信接続切替方法及び通信接続切替装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601101B1 (en) * 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
EP1500244B1 (en) 2001-05-01 2013-04-03 Meta4hand Inc. Wireless network computing
US7076564B2 (en) * 2001-09-17 2006-07-11 Micromuse Ltd. Method and apparatus for determining and resolving missing topology features of a network for improved topology accuracy
US20040203385A1 (en) * 2003-03-14 2004-10-14 Sathya Narayanan Session endpoint management method for ad-hoc networks
EP1667411B1 (en) 2004-12-01 2018-11-21 Thomson Licensing System and method for content playback

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252615A (ja) * 1998-03-02 1999-09-17 Hitachi Ltd 通信接続切替方法及び通信接続切替装置

Also Published As

Publication number Publication date
JP2010510715A (ja) 2010-04-02
CN101536417A (zh) 2009-09-16
WO2008063166A1 (en) 2008-05-29
US20090254667A1 (en) 2009-10-08
US9231784B2 (en) 2016-01-05
BRPI0622122A2 (pt) 2011-12-27
EP2084852A1 (en) 2009-08-05
EP2084852A4 (en) 2013-07-31
CN101536417B (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
JP4903270B2 (ja) 冗長の接続を除去する方法
US11671518B2 (en) Adaptive session reliability over multiple transports
US7716731B2 (en) Method for dynamically tunneling over an unreliable protocol or a reliable protocol, based on network conditions
KR100255501B1 (ko) 전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법
US6920501B2 (en) Communication socket migration among different devices
US7184445B2 (en) Architecture and API for of transport and upper layer protocol processing acceleration
US8438321B2 (en) Method and system for supporting hardware acceleration for iSCSI read and write operations and iSCSI chimney
EP2156638B1 (en) Multiplexed data stream protocol
US8688844B1 (en) Establishing network connections between transparent network devices
EP1759317B1 (en) Method and system for supporting read operations for iscsi and iscsi chimney
WO2014008793A1 (zh) 一种tcp数据传输方法、tcp卸载引擎及系统
KR101067394B1 (ko) 페일오버 이벤트를 지원하는 네트워크 상태 객체의 다중오프로드용 방법 및 컴퓨터 프로그램 제품
US8862682B2 (en) Accelerated sockets
US7899031B2 (en) Locally terminating an established connection
WO2011057525A1 (zh) 基于包处理的http服务器及其数据处理方法
JP5481485B2 (ja) 通信装置とそれを用いた受信処理方法及び送信処理方法
US8248939B1 (en) Transferring control of TCP connections between hierarchy of processing mechanisms
US7672239B1 (en) System and method for conducting fast offloading of a connection onto a network interface card
JP2011018106A (ja) 通信プロトコル処理装置およびその方法
JPH11249978A (ja) データ転送方法および装置
JP2017163346A (ja) 通信装置、方法、及びプログラム
KR20240090050A (ko) Quic 프로토콜 기반의 네트워크 환경에서 네트워크 및 파일 입출력 연산을 오프로딩하는 방법 및 시스템
Akzeybek et al. Concurrent multi-path data transfer using modified SCTP
Siddiqui et al. Stream Control Transmission Protocol (SCTP)
DRAFT Wire-Compatible Unordered Delivery in TCP and TLS

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111011

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: 20111213

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: 20120104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees