JP2017520996A - トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ - Google Patents

トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ Download PDF

Info

Publication number
JP2017520996A
JP2017520996A JP2016573769A JP2016573769A JP2017520996A JP 2017520996 A JP2017520996 A JP 2017520996A JP 2016573769 A JP2016573769 A JP 2016573769A JP 2016573769 A JP2016573769 A JP 2016573769A JP 2017520996 A JP2017520996 A JP 2017520996A
Authority
JP
Japan
Prior art keywords
connection
packet
source device
destination device
transmission control
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.)
Granted
Application number
JP2016573769A
Other languages
English (en)
Other versions
JP6541697B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017520996A publication Critical patent/JP2017520996A/ja
Application granted granted Critical
Publication of JP6541697B2 publication Critical patent/JP6541697B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/04Registration at HLR or HSS [Home Subscriber Server]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】トランスペアレント性能拡張プロキシ、送信元デバイスと宛先デバイスとの間のトランスペアレント性能拡張プロキシを動作させるための方法、および、対応するコンピュータ・プログラムを提供する。【解決手段】方法は、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するステップを含む。方法は、パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するステップをさらに含む。さらに、方法は、パケットに対する伝送制御プロトコル・データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行して、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送するステップを含む。【選択図】図5

Description

本発明は、一般的には情報処理に関し、特に、性能拡張プロキシ(performance-enhancing proxy)のためのハイブリッド手法に関する。
伝送制御プロトコル/インターネット・プロトコル(TCP/IP)を、ワイヤレス・ネットワークを介して使用する際の根本的な問題は、パケット損失をネットワーク輻輳の兆候と解釈することによるTCPのデフォルトの挙動である。この想定は、パケット損失が主にルータでのバッファリング制限により引き起こされる、ワイヤード・ネットワークでは有用である。一方で、この想定は、ワイヤレス・ネットワークでは問題を引き起こす。ワイヤレス・ネットワークでは、パケット損失が、フェージング、減衰、およびコリジョンなどの問題点、大気を伝送チャネルとして使用することに特有の問題に起因して起こる場合があるからである。これらのパケット損失は、ワイヤレス・チャネルを十分に利用されないままにして、性能を不必要に制約する場合がある。
例えば、この問題を軽減することを、以下の2つの手法、すなわち
(a)エンド・ホストTCPプロトコル・スタックを修正すること、または、
(b)性能拡張プロキシとして知られているミドルボックスを、ワイヤレス・リンクの近くに挿入すること
によって、パケット損失を輻輳制御から切り離すことにより行うための手法が存在している。
第1の手法は、展開するのが困難である。これは、ワイヤレス・リンクを利用するクライアントおよびサーバをすべてアップグレードすること、典型的には、多種多様のモバイル・デバイスおよびサーバ・オペレーティング・システムに起因するきわめて困難なプロセスに依拠するからである。
第2の手法は、展開するのがより容易である。これは、クライアントおよびサーバに対して、漸次に、およびトランスペアレントに行われ得るからである。しかしながら、従来技術で実装されるような第2の手法は、多くの欠陥から不利を招いている。そのような欠陥は、送信器による正しくない挙動を引き起こす場合がある、TCP接続のセマンティクスを望ましくない様式で変化させることを含むが、それに限定されない。
本発明の目的は、トランスペアレント性能拡張プロキシを動作させるための方法、コンピュータ・プログラム、および、トランスペアレント性能拡張プロキシを提供することである。
本原理の態様によれば、送信元デバイスと宛先デバイスとの間のトランスペアレント性能拡張プロキシを動作させるための方法が提供される。方法は、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するステップを含む。方法は、パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するステップをさらに含む。さらに、方法は、パケットに対する伝送制御プロトコル・データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行させて、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送するステップを含む。
本原理の別の態様によれば、トランスペアレント性能拡張プロキシを動作させるためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。プログラム命令は、トランスペアレント性能拡張プロキシに含まれるプロセッサにより、トランスペアレント性能拡張プロキシが、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するように実行可能である。さらに、トランスペアレント性能拡張プロキシに含まれるプロセッサにより実行可能なプログラム命令は、トランスペアレント性能拡張プロキシが、パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するようにする。さらに、トランスペアレント性能拡張プロキシに含まれるプロセッサにより実行可能なプログラム命令は、トランスペアレント性能拡張プロキシが、パケットに対する伝送制御プロトコル・データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行して、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送するようにする。
本原理のさらに別の態様によれば、送信元デバイスと宛先デバイスとの間に配置するためのトランスペアレント性能拡張プロキシが提供される。プロキシは、宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するためのプロセッサを含む。プロキシは、パケットのコピーを記憶するためのメモリをさらに含む。パケットに対する伝送制御プロトコル接続セットアップ段階の間、プロセッサは、伝送制御プロトコル接続セマンティクスを保存する。さらに、パケットに対する伝送制御プロトコル・データ転送段階の間、プロセッサは、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行して、パケットを宛先デバイスに、保存されるパケット・ヘッダ情報によって伝送する。
これらおよび他の、特徴および利点は、付随する図面とともに読むことになる、それらの特徴および利点の例示的な実施形態の以下の詳細な説明から明らかとなろう。
本開示は、以下の図を参照する、好ましい実施形態の以下の説明での詳細を提供する。
本原理の実施形態による、本原理が適用され得る例示的な環境100を示す図である。 本原理の実施形態による、本原理が適用され得る別の例示的な環境200を示す図である。 本原理の実施形態による、図1のトランスペアレント性能拡張プロキシ(PEP)130、および、図2のPEP230をさらに示す図である。 本原理の実施形態による、トランスペアレント性能拡張プロキシ(PEP)により実行される例示的な方法400を示す図である。 本原理の実施形態による、例示的なハイブリッド(分割−スヌープ(Split-Snoop))TCPハンドシェイク500を示す図である。
本原理は、性能拡張プロキシのためのハイブリッド手法を対象とする。本明細書で説明する性能拡張プロキシは、送信デバイスと受信デバイスとの中間に配置されることが意図される。本明細書では用語「中間」は、性能拡張プロキシ(PEP)のイン・バンド構成(図1)、および、PEPのサイド・バンド構成(図2)の任意のものを指す。
本願では、以下の用語、すなわち、送信デバイス、送信器、送信元、およびサーバが、本明細書では互換的に使用されるということに留意されたい。本願では、以下の用語、すなわち、受信デバイス、受信器、宛先、クライアント・デバイス、およびクライアントもまた、本明細書では互換的に使用されるということにさらに留意されたい。そのような用語の互換性は、当業者により容易に察知されるものである。
図1は、本原理の実施形態による、本原理が適用され得る例示的な環境100を示す。環境100は、サーバ110、ワイド・エリア・ネットワーク(WAN)120、性能拡張プロキシ(PEP)130、アクセス・ポイント140、およびクライアント・デバイス150(本明細書では以降、一言で「クライアント」)を含む。PEP130は、アクセス・ポイント140に、ローカル・エリア・ネットワーク(LAN)160を介して接続される。
環境100ではPEP130は、イン・バンド構成で接続される。したがってすべてのトラフィックは、PEP130を通って流れる。ゆえにPEP130は、PEP130がすべてのパケットをとらえるという点で、ルータと同様である。
図2は、本原理の実施形態による、本原理が適用され得る別の例示的な環境200を示す。環境200は、サーバ210、ワイド・エリア・ネットワーク(WAN)220、ルータ225、性能拡張プロキシ(PEP)230、アクセス・ポイント240、およびクライアント・デバイス250(本明細書では以降、一言で「クライアント」)を含む。PEP230は、アクセス・ポイント240に、ローカル・エリア・ネットワーク(LAN)260を介して接続される。当然ながら本原理は、図2または3で示す構成に限定されない。例えば図2に関しては、別の実施形態ではPEP230は、LAN260の代わりに、ワイド・エリア・ネットワーク(WAN)に接続される場合がある。さらに別の実施形態ではPEP230は、アクセス・ポイント240の内部に組み込まれる場合がある。本明細書で説明した先の構成は、単に例示的なものであり、したがって当業者であれば、PEP230(および、図3に関して下記で説明するPEP330)が使用され得る、これらおよび他の構成を考えることを、本明細書で提供する本原理の教示を与えられることで、本原理の趣旨を守りながら行うであろう。
環境200ではPEP230は、サイド・バンド構成で接続される。ルータ225は、パケットをPEP230にリダイレクトする。ルータ225によるリダイレクションは、例えば、ただし次のものに限定されないが、MAC層リライティングまたはトンネリングで実行され得る。したがってPEP230は、ルータ225によりそのPEP230にリダイレクトされるトラフィックをとらえるのみである。
図3は、本原理の実施形態による、図1のトランスペアレント性能拡張プロキシ(PEP)130、および、図2のPEP230をさらに示す。PEP130/230は、他の構成要素にシステム・バス302を介して動作可能に結合される、少なくとも1つのプロセッサ(CPU)304を含む。キャッシュ306、読み出し専用メモリ(ROM)308、ランダム・アクセス・メモリ(RAM)310、入出力(I/O)アダプタ320、2つのネットワーク・アダプタ341および342、ユーザ・インターフェイス・アダプタ350、ならびにディスプレイ・アダプタ360が、システム・バス302に動作可能に結合される。
第1の記憶デバイス322、および第2の記憶デバイス324が、システム・バス302に、I/Oアダプタ320により動作可能に結合される。第1の記憶デバイス322、および第2の記憶デバイス324は、ディスク記憶デバイス(例えば、磁気または光学ディスク記憶デバイス)、ソリッド・ステート磁気デバイス等々の任意のものであり得る。第1の記憶デバイス322、および第2の記憶デバイス324は、同じタイプの記憶デバイス、または、異なるタイプの記憶デバイスであり得る。
ネットワーク・アダプタ341および342は、ワイヤード・ネットワーク・アダプタ、またはワイヤレス・ネットワーク・アダプタ、あるいはその両方の任意のものであり得る。すなわちネットワーク・アダプタ341および342は、同じタイプ(両方ともワイヤード、または両方ともワイヤレス)、または異なるタイプのものであり得る。実施形態では、ネットワーク・アダプタ341はワイヤレス・ネットワーク・アダプタであり、ネットワーク・アダプタ342はワイヤード・ネットワーク・アダプタである。当然ながら、任意の数のネットワーク・アダプタが、本原理の教示によって、実装形態に応じて使用され得る。
第1のユーザ入力デバイス352、第2のユーザ入力デバイス354、および第3のユーザ入力デバイス356が、システム・バス302に、ユーザ・インターフェイス・アダプタ350により動作可能に結合される。第1のユーザ入力デバイス352、第2のユーザ入力デバイス354、および第3のユーザ入力デバイス356は、キーボード、マウス、キーパッド、画像取り込みデバイス、動き検知デバイス、マイクロホン、先のデバイスの少なくとも2つの機能性を組み込むデバイス等々の任意のものであり得る。当然ながら、他のタイプの入力デバイスがさらには、本原理の趣旨を守りながら使用され得る。第1のユーザ入力デバイス352、第2のユーザ入力デバイス354、および第3のユーザ入力デバイス356は、同じタイプのユーザ入力デバイス、または、異なるタイプのユーザ入力デバイスであり得る。第1のユーザ入力デバイス352、第2のユーザ入力デバイス354、および第3のユーザ入力デバイス356は、PEP130/230への、およびPEP130/230からの情報を、入力および出力するために使用される。
ディスプレイ・デバイス362が、システム・バス302に、ディスプレイ・アダプタ360により動作可能に結合される。
実施形態では、PEP130/230はサーバであり得る。PEP130/230は、例えば、WANアクセラレータ、ウェブ・キャッシュ、およびネットワーク・オプティマイザ・アプライアンス/WIFI(R)アクセラレータ(NOA/WAX)として実装され得るが、それらに限定されない。
当然ながら、PEP130/230はさらには、当業者により容易に企図されるように、他の要素(示さない)を含む、および、ある決まった要素を省略する場合がある。例えば、様々な他の入力デバイスまたは出力デバイスあるいはその両方が、当業者により容易に理解されるように、PEP130/230に、その特定の実装形態に応じて含まれる場合がある。例えば様々なタイプの、ワイヤレスまたはワイヤードあるいはその両方の、入力または出力あるいはその両方のデバイスが使用され得る。さらに一部の実施形態では、ユーザ直接入力デバイスが省略される場合があり、ユーザ入力は、ネットワーク・アダプタ341および342の一方または両方によって、リモートで提供される。さらに、様々な構成での追加的なプロセッサ、コントローラ、メモリ等々もまた、当業者により容易に察知されるように利用され得る。PEP130/230のこれらおよび他の変形形態は、本明細書で提供する本原理の教示を与えられることで、当業者により容易に企図される。
図4は、本原理の実施形態による、トランスペアレント性能拡張プロキシ(PEP)により実行される例示的な方法400を示す。トランスペアレントPEPは例えば、図1で示すPEP130、または、図2で示すPEP230であり得る。トランスペアレントPEPは、送信器と受信器との中間に配置される。送信器は例えば、図1で示すサーバ110、または、図2で示すサーバ210であり得る。受信器は例えば、図1で示すクライアント・デバイス150、または、図2で示すクライアント・デバイス250であり得る。
ステップ410では、接続が送信器と受信器との間で確立されることに応答して、接続を終結させ、TCPプロトコルを、受信器に対して送信器として、および、送信器に対して受信器として実行させ、2つの接続を有効に作成する。
ステップ420では、経路最大伝送ユニット(MTU)(path Maximum Transmission Unit)、SACK、明示的輻輳通知(ECN)等々のような、受信器および送信器がネゴシエートしたTCPオプションを保存する。
ステップ430では、新しいデータ・パケットを受信することに応答して、新しいデータ・パケットをコピーし、新しいデータ・パケットのコピーをキャッシュし、新しいデータ・パケットのコピーを受信器に転送する。
ステップ440では、受信器に転送される新しいデータ・パケットのコピーに対するパケット損失の識別に応答して、キャッシュされている新しいデータ・パケットのコピーを再送する。パケット損失の識別は例えば、重複ACK、選択的確認応答(SACK)ブロック、再送タイムアウト等々によって行われ得る。
ステップ450では、受信器に転送される新しいパケットのコピーに対する確認応答(ACK)を受信することに応答して、キャッシュされている新しいデータ・パケットのコピーを破棄する。
ステップ430に関しては、同じことが、パケットのコピーを「破棄すること」を必然的に含むように説明される。用語「破棄すること」または「破棄する」は、例えば、パケットを除去する、取り消す、削除する、リストから外す、もしくは参照解除する、または、パケットを使用不可能もしくはアクセス不可能にすることの効果を有する、種々のアクションの任意のものを包含する。例としてパケットは、パケットに関連するメモリを割り振り解除し、そのメモリをオペレーティング・システムに返上することにより、または、メモリをメモリ・プールに返上することにより「破棄され」得る。
次に、TCPシーケンス番号、同期(SYN)フラグ、および確認応答(ACK)に関して説明する。TCPは、シーケンス番号を使用して、データの各々のバイトを識別する。シーケンス番号は、データが、例えば、伝送の間の再順序付けまたはパケット損失にかかわらず、適正な意図される順序で再構築され得るように、送信元デバイスおよび宛先デバイスから送信されるバイトの順序を識別する。さらにはシーケンス番号によって、宛先デバイスが、重複パケットを放棄することが可能となる。送信元デバイスと宛先デバイスとの間で交換される初期シーケンス番号(ISN)は、任意のものである(例えば、シーケンス予測攻撃を防止する)。SYNフラグがセットされる(1)場合、これは、実際の第1のデータ・バイトの初期シーケンス番号であり、対応するACK内の確認応答される番号は、したがって、このシーケンス番号に1を加えたものである。SYNフラグがクリアである(0)場合、これは、現在のセッションに対するこのセグメントの第1のデータ・バイトの累算されたシーケンス番号である。ACKフラグがセットされる(1)場合、ACKフィールドの値は、受信器が待ち受けられるという次のシーケンス番号であり、そのことは、存する場合にはすべての先行のバイトの受信について確認応答することに役立つ。送信元および宛先により送信される第1のACKは、他方の初期シーケンス番号自体について確認応答するが、データについては確認応答しない。
次に、性能拡張プロキシに関して説明する。
性能拡張プロキシ(PEP)は、多くの形式(リンク・レベル、TCPレベル、ハイパーテキスト転送プロトコル(HTTP)プロキシ)のものが入手可能であるが、好都合な手法はTCP層でのものである。これは、すべてのTCPトラフィック(インターネット上のトラフィックの大部分である)の利益になるからである。
TCP PEPは、2つのカテゴリ、すなわち、分割TCPおよびスヌープTCPに分けられる。両方とも、ワイヤレス・リンクに対する性能を、異なる形ではあるが改善し、異なる利点および欠点を有する。
分割TCPの事例では、PEPは、送信元から宛先への接続を2つの接続に、明示的に、さもなければ暗黙的に分割する。接続を明示的に分割する際には、分割TCPは、異なるIPアドレスおよびTCPポート番号を使用する。接続を暗黙的に分割する際には、PEPは、各々の方向で、送信元から宛先への接続のエンドポイント(宛先)であるふりをする。すなわちPEPは、同じIPアドレスを使用して、宛先に対して送信元に、および、送信元に対して宛先になりすます。分割TCPのどちらの事例でも、送信元および宛先は、それらの間のPEPの使用を認識するようにされる必要はない。
スヌープTCPの事例では、PEPは、両方の方向でのTCPセグメントの伝送を、例えば、既存の(非分割)接続でのACKフィルタリングおよび再構築により制御する。重複TCP ACKが受信される時、そのような状況は、パケット損失の高い公算と関連するので、対応する失われたパケットが、送信元がパケット損失を何ら知ることのない状態で再送される。
本原理は、分割−スヌープ、TCPレベル性能拡張プロキシに対するハイブリッド手法を提案するものである。分割−スヌープは、2つの手法の利点の最良の状態、および最小限のセットの欠点を伴う、類のない設計点に到達する特徴の、新規の、および自明でない組合せである。
次に、分割TCPに関して説明する。
分割TCPは、明示的に(異なるIPアドレスおよびTCPポート番号を使用して)、さもなければ暗黙的に(同じIPアドレスを使用し、クライアントに対してサーバに、および、サーバに対してクライアントになりすますことにより)、PEPでのTCP接続を終結させる。
分割TCPは、それが性能を少なくとも4つの形で改善するという点で、以下の利点を有する。
(1)分割TCPによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
(2)分割TCPによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。
(3)分割TCPは、元の受信器より大きな受信ウィンドウを告知することにより、送信器が利用可能なバッファ空間のサイズを増加させる。
(4)分割TCPによって、利用可能な、ある決まったTCP機能性を行うことによる(例えば、ワイヤレス構成要素に対する選択的確認応答(SACK)、または、ワイヤード・リンクに対する大きなウィンドウを可能にすることによる)、ネットワークの部分に対するプロトコル挙動の改善が可能となる。
分割TCPは、以下の欠点を有する。
(1)分割TCPは、TCP接続のセマンティクスを、2つの重要な形で変化させる。
(a)接続失敗エラー・コードが(例えば、応答エラーなしとなるものを接続リセット・エラーに変換することにより)変化させられ、そのことが、送信器による正しくない挙動を引き起こす場合がある。
(b)データ確認応答が、PEPにより送信器に、クライアントにより確認応答される前に返され、そのことが、受信器が情報を得たと、受信器が得なかった時に送信器が確信することにつながり、やはり潜在的に、正しくない送信器挙動につながる。
(2)分割TCPは、スヌープTCPより多くの処理およびメモリ・リソースを要する。
(3)分割TCPは、検出するのが相対的に容易であり、なぜならば、外側の観察者に対して、分割TCPはTCPパケット(例えば、シーケンス番号、TCPオプション、パケット・チェックサム等々)を修正するからである。
次に、スヌープTCPに関して説明する。
スヌープTCPは、TCP会話を監視し、いつパケットが失われたかを(元の送信器が行う前に)決定し、そのパケットを送信器に代わって再送する、インテリジェントなTCP認識パケット・キャッシュである。
スヌープTCPは、受信器に対して、送信器が受信器に対するよりも近いので、このことによって、より迅速な損失回復、およびしたがって、より良好な性能が可能となる。スヌープTCPは、TCP接続を終結させない。
スヌープTCPは、以下の利点を有する。
(1)スヌープTCPによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
(2)スヌープTCPは、いかなるTCPセマンティクスも破らない。
(3)スヌープTCPは、分割TCPより少ないリソース(CPUおよびメモリ/状態)を要する。
(4)スヌープTCPは、検出するのがより難しく、なぜならばスヌープTCPは、TCP接続挙動に対して、引き起こす変化がより少ないからである。
スヌープTCPは、以下の欠点を有する。
(1)接続は、分割TCPと比較して、スヌープによってより長いレイテンシを経ることになる。
(2)スヌープTCPは、分割TCPと比較して、より低い性能ゲインを示す。
分割TCPおよびスヌープTCPの関連性のある態様を説明したが、次に、本原理の実施形態によって分割−スヌープをさらに説明する。
上記で記したように、本原理は、分割−スヌープ、TCPレベル性能拡張プロキシに対するハイブリッド手法を提案する。有利には分割−スヌープは、2つの手法の利点の最良の状態、および欠点の最小限の一団を伴う、類のない設計点を提供する。
例として、ただし全く網羅的ではなく、本願では以下のことを述べる。スヌープTCPと同様に、分割−スヌープは、パケットをキャッシュし、それらのパケットを送信器の代わりに、必要な時に再送する。さらにはスヌープTCPと同様に、分割−スヌープは、接続セットアップ・セマンティクスを保存することを、接続を、両方の側が、それらの側の接続確立シーケンスを完了するまで終結させないことにより行う。加えてスヌープTCPと同様に、分割−スヌープは、送信器により送信されるデータについて、データが受信器に到着する前に確認応答する。
したがって、実施形態では分割−スヌープは、以下の利点を有し得る。
(1)分割−スヌープによって、ワイヤレス・リンクに対する、より迅速な損失回復が可能となる。
(2)分割−スヌープによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。
(3)分割−スヌープは、スヌープTCPは行うが、分割TCPは行わないように、スヌープTCPの接続セットアップ・セマンティクスを保存する(例えば分割−スヌープは、TCP接続失敗エラー・コードを変化させず、データACKを、PEPにより送信元に、宛先により確認応答される前に返すこともなく、接続を、両方の側が、それらの側の接続確立シーケンスを完了するまで終結させることもない)。
(4)分割−スヌープは、分割TCPより少ないCPUおよびメモリ・リソースを要する。
(5)分割−スヌープは、分割TCPより検出するのが難しい。分割−スヌープを検出することは、より複雑な動態を理解することを要する。
(6)分割−スヌープは、分割TCPに対して、より良好な相互運用性(例えば、有効性のための機会)を提供する。例えば分割−スヌープは、パケット・シーケンスを乱すことが、分割TCPより少ない。さらに分割−スヌープは、分割TCPより、予期されない相互作用に対して堅牢である。
(7)分割−スヌープは、分割TCPに対して、同等の、または匹敵する性能を有する。
実施形態では分割−スヌープは、以下の欠点を有し得る。
(1)分割−スヌープは、分割TCPは行うが、スヌープTCPは行わないように、TCPのデータ転送セマンティクスを破る。送信器TCPスタックは、データがクライアントに届けられたと、データが届けられなかった場合がある時に判断することになる。
(2)分割−スヌープは、スヌープTCPより多くのCPUおよびメモリ・リソースを要する。
(3)分割−スヌープは、スヌープTCPより検出するのが容易である。
図5は、本原理の実施形態による、例示的なハイブリッド(分割−スヌープ)TCPハンドシェイク500を示す。
ステップ510では、PEP130/230により、サーバ110/210により送信されるシーケンス番号Xを傍受する。
ステップ520では、PEP130/230により、シーケンス番号Xをクライアント・デバイス150/250に転送する。
ステップ530では、PEP130/230により、クライアント・デバイス150/250により送信されるシーケンス番号Y、ACK=X+1を傍受する。
ステップ540では、PEP130/230により、シーケンス番号=y、ACK=X+1をサーバ110/210に転送する。
ステップ550では、PEP130/230から、ACK=Y+1をクライアント・デバイス150/250に送信する。
ステップ560では、PEP130/230により、サーバ110/210からのACK=Y+1を傍受する。
分割−スヌープはこのように、実装形態の大部分に関しての分割TCPの性能利益、および、スヌープTCPのセマンティクの利益の大部分を実現する、類のない設計点を提供する。
このように、分割−スヌープで具現化されるハイブリッド手法は、有利には積極的に、すべてのパケット・ヘッダを保存する。分割−スヌープは、同じヘッダ情報を使用して、検出を回避する。ゆえに、ヘッダ情報の変換(translation)は必要でない。伝送制御プロトコル(TCP)を必然的に含む実施形態では、パケット・ヘッダ情報は、例えば、以下のもの、すなわち、少なくとも1つのTCPポート番号(例えば、送信元ポート番号または宛先ポート番号あるいはその両方)、TCPシーケンス番号、TCPヘッダ・オプション(例えば、オプション種類フィールド、オプション長さフィールド、およびオプション日付フィールドの、1つまたは複数での情報)、TCP明示的輻輳通知情報等々を含むが、それらに限定されない。インターネット・プロトコル(IP)を必然的に含む実施形態では、パケット・ヘッダ・オプションは、例えば、以下のもの、すなわち、少なくとも1つのIPアドレス(例えば、送信元アドレスまたは宛先アドレスあるいはその両方)、IPホップ・カウント、IP生存時間(TTL)、IPタイプ・オブ・サービス(別名、差別化サービス・コード・ポイント(DSCP))、IP明示的輻輳通知情報等々を含むが、それらに限定されない。媒体アクセス制御(MAC)を必然的に含む実施形態では、パケット・ヘッダ・オプションは、例えば、以下のもの、すなわち、MACアドレス、仮想ローカル・エリア・ネットワーク・タグ等々を含むが、それらに限定されない。
実施形態では、変換することなく保存されるパケット・ヘッダ情報は、TCPヘッダのすべての10個の必須フィールドで指定されるすべての情報を含む。実施形態では、トランスレーションなしで保存されるパケット・ヘッダ情報は、ヘッダの少なくともすべての必須オプション・フィールドで指定されるすべての情報をさらに含む。
本願では、TCPプロトコル動作、ゆえに、PEP130/230の動作を、接続セットアップ段階、データ転送段階、および接続終結段階を必然的に含むように説明する場合があるということに留意されたい。送信元とPEPとの間の、および、PEPと宛先との間の接続は、データ転送段階に入ることに先立つ接続セットアップ段階に属する、図5で示すハイブリッド(分割−スヌープ)TCPハンドシェイク500で確立される。データ転送段階の間のデータ伝送の完了の後、接続終結段階は、前述の接続を閉じ、その接続に対するすべての割り振られたリソースを解放する。
分割−スヌープで具現化されるハイブリッド手法は、接続セットアップ段階(別名、接続確立段階)の間、スヌープTCPのように挙動を行う。ゆえに分割−スヌープは、TCP接続セマンティクスを、接続セットアップ段階の間保存する。したがって例えば分割−スヌープは、同期確認応答(SYN−ACK)が宛先デバイスから返ってくるのを待ち、送信元デバイスと宛先デバイスとの間の接続の終結を、送信元デバイスおよび宛先デバイスの両方が、それらの送信元デバイスおよび宛先デバイスのそれぞれの接続確立シーケンス(すなわち、送信元デバイスと宛先デバイスとの間の全二重通信に対するSYN、SYN−ACK、ACK)を完了するまで防止する。
さらに、分割−スヌープで具現化されるハイブリッド手法は、接続終結段階の間、分割TCPのように挙動を行う。ゆえに分割−スヌープはさらには、TCP接続セマンティクスを、接続終結段階の間保存する。すなわち、データ転送段階の間のデータ伝送の完了の後、接続終結段階は、送信元デバイスとプロキシとの間の接続、および、プロキシと宛先デバイスとの間の接続を閉じ、それらの接続に対するすべての割り振られたリソースを解放する。
さらには、分割−スヌープで具現化されるハイブリッド手法は、データ転送段階の間、分割TCPのように挙動を行う。したがって分割−スヌープは、データ転送段階の間、宛先デバイスに対して送信元デバイスになりすまし、送信元デバイスに対して宛先デバイスになりすますことにより伝送制御プロトコルを実行させる。そのようななりすまし(masquerading)の結果として、分割−スヌープによって、送信器の輻輳ウィンドウが、より短いラウンドトリップ時間に起因して、より迅速に増大することが可能となる。すなわち分割−スヌープは、送信元デバイスの輻輳ウィンドウ・サイズの増大レートを、より短いラウンドトリップ時間に起因して増加させる。より短いラウンドトリップ時間は、PEPが、送信元デバイスより宛先デバイスに近いことに起因する。このように、実施形態では分割−スヌープは、分割TCPに対して利用可能な同じ性能改善を実現することが可能である。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるための、コンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体(または、複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または、上述のものの任意の適した組合せであり得るが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル・バーサタイル・ディスク(DVD)、memory stick(R)、フロッピィ(R)・ディスク、命令が記録されるパンチ・カードまたは溝内の一段高い構造などの機械的に符号化されるデバイス、および、上述のものの任意の適した組合せを含む。コンピュータ可読記憶媒体を、本明細書では、本質的には、電波もしくは他の自由伝搬する電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または、電線を介して伝送される電気信号などの、一時的な信号であると解釈すべきではない。
本明細書で説明するコンピュータ可読プログラム命令は、それぞれのコンピューティング/処理デバイスにコンピュータ可読記憶媒体から、あるいは、外部コンピュータまたは外部記憶デバイスに、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介してダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各々のコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスが、コンピュータ可読プログラム命令をネットワークから受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイスの内部のコンピュータ可読記憶媒体での記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定・データ、または、1つもしくは複数のプログラミング言語の任意の組合せで書き表される、ソース・コードもしくはオブジェクト・コードのいずれかであり得るものであり、それらのプログラミング言語は、Java(R)、Smalltalk(R)、C++、または類するものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来型の手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アローン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、および部分的にリモート・コンピュータ上で、または、全体的にリモート・コンピュータもしくはサーバ上で実行し得る。後の方のシナリオではリモート・コンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介して接続され得るものであり、または接続は、外部コンピュータに対して(例えば、インターネットを介して、インターネット・サービス・プロバイダを使用して)行われ得る。一部の実施形態では、例えば、プログラマブル論理回路網、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路網が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路網をパーソナライズすることにより、コンピュータ可読プログラム命令を実行し得る。
本発明の態様を、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート例示またはブロック図あるいはその両方を参照して説明している。フローチャート例示またはブロック図あるいはその両方の各々のブロック、および、フローチャート例示またはブロック図あるいはその両方でのブロックの組合せが、コンピュータ可読プログラム命令により実装され得るということが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/行為を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はさらには、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/行為の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の様式で機能するように指図するものであってもよい。
コンピュータ可読プログラム命令はさらには、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/行為を実装するように、コンピュータ実装プロセスを生み出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図でのフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を例示するものである。この点に関して、フローチャートまたはブロック図での各々のブロックは、指定される論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または小部分を表し得る。一部の代替的実装形態では、ブロックで記される機能は、図で記される順序から外れて行われる場合がある。例えば、連続して示す2つのブロックは、実際には、実質的に同時に実行される場合があり、またはブロックは時には、必然的に含まれる機能性に応じて、逆の順序で実行される場合がある。ブロック図またはフローチャート例示あるいはその両方の各々のブロック、および、ブロック図またはフローチャート例示あるいはその両方でのブロックの組合せは、指定される機能もしくは行為を実行する、または、専用ハードウェアおよびコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムにより実装され得るということが、さらには留意されよう。
本明細書で、本原理の「1つの実施形態」または「実施形態」、および、それらの他の変形に言及することは、実施形態に関して説明した、特定の特徴、構造、特性等々が、本原理の少なくとも1つの実施形態に含まれるということを意味する。したがって、本明細書の全体を通して様々な場所に出現する、語句「1つの実施形態で」または「実施形態で」、および、任意の他の変形の出現は、必ずしもすべてが同じ実施形態に言及しているわけではない。
例えば「A/B」、「AまたはBあるいはその両方」、および「AおよびBの少なくとも1つ」の事例での、以下の「/」、「〜または…あるいはその両方」、および「〜の少なくとも1つ」のいずれかの使用は、第1の列挙される選択肢(A)のみの選択、または、第2の列挙される選択肢(B)のみの選択、または、両方の選択肢(AおよびB)の選択を包含することが意図されるということを察知すべきである。さらなる例として、「A、B、またはC、あるいはその組合せ」、および「A、B、およびCの少なくとも1つ」の事例では、そのような言い回しは、第1の列挙される選択肢(A)のみの選択、または、第2の列挙される選択肢(B)のみの選択、または、第3の列挙される選択肢(C)のみの選択、または、第1および第2の列挙される選択肢(AおよびB)のみの選択、または、第1および第3の列挙される選択肢(AおよびC)のみの選択、または、第2および第3の列挙される選択肢(BおよびC)のみの選択、または、すべての3つの選択肢(AおよびBおよびC)の選択を包含することが意図される。このことは、当技術分野および関係する技術分野の当業者により容易に明らかなように、同じように多くの列挙される項目に対して拡大され得る。
システムおよび方法の好ましい実施形態(例示的であり、限定的ではないことが意図される)を説明したが、変更および変形が、当業者により、上記の教示に鑑みて行われ得るということが留意される。したがって、添付の特許請求の範囲により概説されるような本発明の範囲内のものである変更が、開示する特定の実施形態において行われ得るということを理解すべきである。このように本発明の態様を、特許法により要される詳細および特殊性とともに説明したが、何が請求され、特許証により保護されるように所望されるかは、添付の特許請求の範囲で論述される。

Claims (20)

  1. 送信元デバイスと宛先デバイスとの間のトランスペアレント性能拡張プロキシを動作させるための方法であって、
    前記宛先デバイスに転送されることになるパケットであって、前記送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するステップと、
    前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存するステップと、
    前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行させて、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送するステップと
    を含む、方法。
  2. 変換することなく保存される前記パケット・ヘッダ情報は、
    前記パケットの伝送制御プロトコル通信に対しての、伝送制御プロトコル・ポート番号、伝送制御プロトコル・シーケンス番号、および伝送制御プロトコル・ヘッダ・オプションの少なくとも1つ、
    前記パケットのインターネット・プロトコル通信に対しての、インターネット・プロトコル・アドレス、インターネット・プロトコル・ホップ・リミット、インターネット・プロトコル生存時間、インターネット・プロトコル・タイプ・オブ・サービス、および明示的輻輳通知の少なくとも1つ、ならびに、
    前記パケットの媒体アクセス制御通信に対しての、媒体アクセス制御アドレス、および仮想ローカル・エリア・ネットワーク・タグの少なくとも1つ
    の少なくとも1つを含む、請求項1に記載の方法。
  3. 変換することなく保存される前記パケット・ヘッダ情報は、前記ヘッダのすべての必須フィールドで指定されるすべての情報を含む、請求項1または2に記載の方法。
  4. 変換することなく保存される前記パケット・ヘッダ情報は、前記ヘッダの少なくとも一部の必須オプション・フィールドで指定されるすべての情報をさらに含む、請求項3に記載の方法。
  5. 同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記接続セットアップ段階の間保存される、請求項1ないし4のいずれかに記載の方法。
  6. 前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続を閉じ、前記トランスペアレント性能拡張プロキシと前記宛先デバイスとの間の接続を閉じ、前記接続に対するすべての割り振られたリソースを解放することにより、伝送制御プロトコル接続セマンティクスを、前記パケットに対する接続終結段階の間保存するステップをさらに含む、請求項1ないし5のいずれかに記載の方法。
  7. 前記パケットを前記送信元デバイスから受信することに応答して、前記パケットのコピーを生成し、前記パケットの前記コピーをキャッシュし、前記パケットの前記コピーを前記宛先デバイスに伝送するステップと、
    前記パケットに対する確認応答を前記送信元デバイスから受信することに応答して、キャッシュされている前記パケットの前記コピーを破棄するステップと、
    前記パケットに関係するパケット損失の検出に応答して、キャッシュされている前記パケットの前記コピーを再送するステップと
    をさらに含む、請求項1ないし6のいずれかに記載の方法。
  8. 前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成するステップをさらに含む、請求項1ないし7のいずれかに記載の方法。
  9. 前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の前記接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存するステップをさらに含む、請求項8に記載の方法。
  10. 前記伝送制御プロトコル・オプションは、経路最大伝送ユニット、選択的確認応答、および明示的輻輳通知の少なくとも1つを含む、請求項9に記載の方法。
  11. トランスペアレント性能拡張プロキシを動作させるためのコンピュータ・プログラムであって、前記トランスペアレント性能拡張プロキシに、
    宛先デバイスに転送されることになるパケットであって、送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存することと、
    前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、伝送制御プロトコル接続セマンティクスを保存することと、
    前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行して、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送することと
    を実行させる、コンピュータ・プログラム。
  12. 変換することなく保存される前記パケット・ヘッダ情報は、
    前記パケットの伝送制御プロトコル通信に対しての、伝送制御プロトコル・ポート番号、伝送制御プロトコル・シーケンス番号、および伝送制御プロトコル・ヘッダ・オプションの少なくとも1つ、
    前記パケットのインターネット・プロトコル通信に対しての、インターネット・プロトコル・アドレス、インターネット・プロトコル・ホップ・リミット、インターネット・プロトコル生存時間、インターネット・プロトコル・タイプ・オブ・サービス、および明示的輻輳通知の少なくとも1つ、ならびに、
    前記パケットの媒体アクセス制御通信に対しての、媒体アクセス制御アドレス、および仮想ローカル・エリア・ネットワーク・タグの少なくとも1つ
    の少なくとも1つを含む、請求項11に記載のコンピュータ・プログラム。
  13. 同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記接続セットアップ段階の間保存される、請求項11または12に記載のコンピュータ・プログラム。
  14. 前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続を閉じ、前記トランスペアレント性能拡張プロキシと前記宛先デバイスとの間の接続を閉じ、前記接続に対するすべての割り振られたリソースを解放することにより、伝送制御プロトコル接続セマンティクスを、前記パケットに対する接続終結段階の間保存することをさらに前記トランスペアレント性能拡張プロキシに実行させる、請求項11ないし13のいずれか一項に記載のコンピュータ・プログラム。
  15. 前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成することをさらに前記トランスペアレント性能拡張プロキシに実行させる、請求項11ないし14のいずれか一項に記載のコンピュータ・プログラム。
  16. 前記送信元デバイスと前記プロキシとの間の前記接続、および、前記プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存することをさらに前記トランスペアレント性能拡張プロキシに実行させる、請求項15に記載のコンピュータ・プログラム。
  17. 送信元デバイスと宛先デバイスとの間に配置するためのトランスペアレント性能拡張プロキシであって、
    前記宛先デバイスに転送されることになるパケットであって、前記送信元デバイスから受信されるパケットに対するヘッダのパケット・ヘッダ情報を、変換することなく保存するためのプロセッサと、
    前記パケットのコピーを記憶するためのメモリと
    を備え、
    前記パケットに対する伝送制御プロトコル接続セットアップ段階の間、前記プロセッサは、伝送制御プロトコル接続セマンティクスを保存し、
    前記パケットに対する伝送制御プロトコル・データ転送段階の間、前記プロセッサは、前記宛先デバイスに対して前記送信元デバイスになりすまし、前記送信元デバイスに対して前記宛先デバイスになりすますことにより伝送制御プロトコルを実行して、前記パケットを前記宛先デバイスに、前記保存されるパケット・ヘッダ情報によって伝送する、トランスペアレント性能拡張プロキシ。
  18. 同期確認応答が前記宛先デバイスから返るのを待ち、前記送信元デバイスと前記宛先デバイスとの間の接続の終結を、前記送信元デバイスおよび前記宛先デバイスの両方が、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対する、前記送信元デバイスおよび前記宛先デバイスのそれぞれの接続確立シーケンスを完了するまで防止することにより、前記伝送制御プロトコル接続セマンティクスは、前記接続セットアップ段階の間保存される、請求項17に記載のトランスペアレント性能拡張プロキシ。
  19. 前記プロセッサは、前記伝送制御プロトコル接続セットアップ段階の間の、前記送信元デバイスと前記宛先デバイスとの間の接続の確立の際に、前記接続を前記トランスペアレント性能拡張プロキシでローカルに終結させ、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の接続を生成する、請求項17または18に記載のトランスペアレント性能拡張プロキシ。
  20. 前記プロセッサは、前記送信元デバイスと前記トランスペアレント性能拡張プロキシとの間の前記接続、および、前記トランスペアレント性能拡張プロキシと前記送信元デバイスとの間の前記接続に対して、前記送信元デバイスと前記宛先デバイスとの間で、前記送信元デバイスと前記宛先デバイスとの間の前記接続に対して、以前にネゴシエートされた任意の伝送制御プロトコル・オプションを保存する、請求項19に記載のトランスペアレント性能拡張プロキシ。
JP2016573769A 2014-06-24 2015-06-22 トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ Active JP6541697B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/313,354 2014-06-24
US14/313,354 US9397939B2 (en) 2014-06-24 2014-06-24 Hybrid approach for performance enhancing proxies
PCT/IB2015/054660 WO2015198201A1 (en) 2014-06-24 2015-06-22 Hybrid approach for performance enhancing proxies

Publications (2)

Publication Number Publication Date
JP2017520996A true JP2017520996A (ja) 2017-07-27
JP6541697B2 JP6541697B2 (ja) 2019-07-10

Family

ID=54870675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016573769A Active JP6541697B2 (ja) 2014-06-24 2015-06-22 トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ

Country Status (6)

Country Link
US (3) US9397939B2 (ja)
JP (1) JP6541697B2 (ja)
CN (1) CN106416199B (ja)
DE (1) DE112015003004B4 (ja)
GB (1) GB2541851B (ja)
WO (1) WO2015198201A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1016391B (de) 1957-01-18 1957-09-26 Helmut Jedlicka Verfahren zur Verbindung beliebiger Materialien unter gleichzeitiger Verwendung von Klebstoffen und mechanischen Mitteln
WO2015200929A1 (en) * 2014-06-28 2015-12-30 Hughes Network Systems, Llc Dynamic disabling of multi-step transport layer handshake spoofing in performance enhancing proxies (peps) in broadband networks
CN106357364B (zh) * 2015-07-15 2020-09-25 腾讯科技(深圳)有限公司 数据传输方法、装置及系统
US10419968B2 (en) * 2016-03-30 2019-09-17 International Business Machines Corporation Dynamic selection of TCP congestion control for improved performances
CN107819853B (zh) * 2017-11-13 2019-08-16 中国联合网络通信集团有限公司 一种数据传输方法及装置
CN109842567B (zh) 2017-11-24 2020-12-25 华为技术有限公司 数据分发方法以及分发服务器
CN108111434B (zh) * 2017-12-14 2021-03-16 四川大学 一种基于可靠udp和喷泉码的航空自组网可靠传输方法
EP3759891A1 (en) * 2018-03-01 2021-01-06 Nokia Technologies Oy Conversion between transmission control protocols
CN110740093B (zh) * 2019-10-24 2020-09-15 北京大学 一种基于虚拟主机的数据转发装置
US11496397B2 (en) * 2021-01-06 2022-11-08 Verizon Patent And Licensing Inc. Transparent quantitative congestion control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252179A (ja) * 1998-03-05 1999-09-17 Kdd Corp 非対称回線用tcp通信高速化装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2576780B2 (ja) 1993-12-17 1997-01-29 日本電気株式会社 プロトコル終端方式
US6266335B1 (en) * 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
JP3730480B2 (ja) 2000-05-23 2006-01-05 株式会社東芝 ゲートウェイ装置
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8238241B2 (en) * 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7616644B2 (en) * 2004-02-25 2009-11-10 Nokia Corporation Method and apparatus providing a protocol to enable a wireless TCP session using a split TCP connection
US8069250B2 (en) * 2005-04-28 2011-11-29 Vmware, Inc. One-way proxy system
US8320250B2 (en) * 2008-02-12 2012-11-27 Nvidia Corporation Method and arrangement for TCP flow control
EP2351333B1 (en) * 2008-11-25 2019-09-18 Citrix Systems, Inc. Systems and methods for applying transformations to ip addresses obtained by domain name service (dns)
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US8654659B2 (en) * 2009-12-23 2014-02-18 Citrix Systems, Inc. Systems and methods for listening policies for virtual servers of appliance
US9438494B2 (en) * 2011-12-28 2016-09-06 Avvasi Inc. Apparatus and methods for optimizing network data transmission
JP2016501464A (ja) 2012-11-08 2016-01-18 キュー ファクター コミュニケーションズ コーポレーション プロキシサーバを用いて通信ネットワークにおいてtcp及び他のネットワークプロトコルのパフォーマンスを向上させる方法及び装置
US9935879B2 (en) 2012-12-29 2018-04-03 Netronome Systems, Inc. Efficient intercept of connection-based transport layer connections

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252179A (ja) * 1998-03-05 1999-09-17 Kdd Corp 非対称回線用tcp通信高速化装置

Also Published As

Publication number Publication date
US20190253511A1 (en) 2019-08-15
DE112015003004B4 (de) 2024-02-29
US10341449B2 (en) 2019-07-02
US20150372908A1 (en) 2015-12-24
DE112015003004T5 (de) 2017-03-23
WO2015198201A1 (en) 2015-12-30
CN106416199A (zh) 2017-02-15
GB2541851A (en) 2017-03-01
GB201700127D0 (en) 2017-02-22
US10791192B2 (en) 2020-09-29
US20160241662A1 (en) 2016-08-18
CN106416199B (zh) 2019-10-18
GB2541851B (en) 2020-12-09
JP6541697B2 (ja) 2019-07-10
US9397939B2 (en) 2016-07-19

Similar Documents

Publication Publication Date Title
US10791192B2 (en) Hybrid approach for performance enhancing proxies
US11641387B2 (en) Timely delivery of real-time media problem when TCP must be used
US8379515B1 (en) TCP throughput control by imposing temporal delay
JP6858749B2 (ja) 負荷平衡システムにおいて接続を確立するデバイス及び方法
US20190327347A1 (en) Transparent inline content inspection and modification in a TCP session
CN109412946B (zh) 一种确定回源路径的方法、装置、服务器及可读存储介质
KR20090014334A (ko) 전송 프로토콜의 성능을 향상시키는 시스템 및 방법
US9509450B2 (en) Snoop virtual receiver time
JP5080654B2 (ja) 通信装置、通信方法
US11522979B2 (en) Transmission control protocol (TCP) acknowledgement (ACK) packet suppression
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
JP2007180686A (ja) 中継通信装置、記憶媒体、集積回路および通信システム
JP4506430B2 (ja) アプリケーションモニタ装置
WO2015048999A1 (en) Method and proxy node for source to destination packet transfer
JP4701265B2 (ja) 送信端末及びデータ送信方法
US10805420B2 (en) Proxy-less wide area network acceleration
US11528344B2 (en) Elimination of latency in a communication channel
Kaur et al. A Mathematical Approach to Avoid Congestion and To Analyze Snoop Behavior In Wired Cum Wireless Network
CN114124489A (zh) 防止流量攻击的方法、清洗装置、设备和介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190611

R150 Certificate of patent or registration of utility model

Ref document number: 6541697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150