JP6318453B2 - 単一接続上での多くのクライアントストリームの多重化 - Google Patents
単一接続上での多くのクライアントストリームの多重化 Download PDFInfo
- Publication number
- JP6318453B2 JP6318453B2 JP2015228864A JP2015228864A JP6318453B2 JP 6318453 B2 JP6318453 B2 JP 6318453B2 JP 2015228864 A JP2015228864 A JP 2015228864A JP 2015228864 A JP2015228864 A JP 2015228864A JP 6318453 B2 JP6318453 B2 JP 6318453B2
- Authority
- JP
- Japan
- Prior art keywords
- tcp
- client
- proxy server
- web server
- data
- 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
Links
- 230000004044 response Effects 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 25
- 230000003139 buffering effect Effects 0.000 claims description 20
- 239000000872 buffer Substances 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 17
- 230000032258 transport Effects 0.000 claims description 17
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 231100000176 abortion Toxicity 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/0001—Arrangements for dividing the transmission path
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Description
プロキシサーバを、ウェブサーバに多重TCP接続を介して通信結合させる段階と、
複数のクライアントから発信される複数の入力TCP通信をプロキシサーバで受信する段階であり、各入力TCP通信はパケットペイロードデータを含む少なくとも1つのTCPパケットを含む、段階と、
それぞれのクライアントデータストリームにおける所与のTCP接続上で受信される、複数のTCPパケットに含まれるパケットペイロードデータをバッファリングする段階と、
複数のクライアントデータストリームにおける複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントを、プロキシサーバで、複数の多重(MUX)TCPパケットにカプセル化する段階であって、複数のMUX・TCPパケットの少なくとも一部分は、少なくとも2つの別々のクライアントデータストリームからの複数のデータセグメントをカプセル化する段階と、
複数のMUX・TCPパケットをプロキシサーバから多重TCP接続上でウェブサーバにトランスポートする段階と、
ウェブサーバにおいて、複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、複数のクライアントデータストリームを再アセンブルする段階と、
複数の再アセンブルされたクライアントデータストリームからパケットペイロードデータを抽出する段階と、を備える、方法。
HTTP応答を第1クライアントが行先となっているクライアントデータストリームに埋め込む段階と、
1または複数のMUX/TCPパケットにおけるクライアントデータストリームに対応する複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントをカプセル化する段階と、
1または複数のMUX/TCPパケットをウェブサーバからプロキシサーバへ多重TCP接続上でトランスポートする段階と、
MUX・TCPパケットからのデータセグメントをデカプセル化する段階と、
クライアントデータストリームを再アセンブルする段階と、
HTTP応答を抽出し、プロキシサーバから第1TCP接続上で行先クライアントへ転送される1または複数のTCPパケットにおけるHTTP応答をカプセル化する段階と、によってHTTP応答を第1クライアントへ戻す段階を更に備える、方法。
各TCP接続に対し、プロキシサーバにおける少なくとも1つのキューをTCP接続に割り当てる段階と、
TCP接続に割り当てられた少なくとも1つのキューにおいて、TCP接続上で受信される複数のTCPパケットに含まれるパケットペイロードデータを備えるクライアントデータストリームをバッファリングする段階と、を更に備える、方法。
プロキシサーバの複数の出力キューにおいてTCP接続上でトランスファーされた複数のTCPパケットに含まれるパケットペイロードデータの複数のシーケンシャル実行を備えるクライアントデータストリームをバッファリングする段階であって、各出力キューはそれぞれのTCP接続に対して割り当てられる、段階と、
多重TCP接続を介してウェブサーバへトランスポートされる複数のMUX・TCPパケットのストリームを、複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化される複数のデータセグメントをプルするための複数の出力キューを選択するためのキューセレクタを用いて生成する段階と、を更に備える。
新たなクライアントから送信されるハイパーテキストトランスポートプロトコル(HTTP)リクエストを受信し、ウェブサーバを介してアクセスされるウェブサイトに対するユニバーサルリソースロケータ(URL)にアクセスする段階と、
新たなクライアントとプロキシサーバとの間で新たなTCP接続を確立する段階と、
プロキシサーバおよびウェブサーバの各々における複数のキューを割り当て、新たなクライアントからプロキシサーバで受信された複数のHTTPリクエストをウェブサーバに多重TCP接続上で転送すること、およびウェブサーバで生成された複数のHTTP応答を新たなクライアントに、多重TCP接続を介して、プロキシサーバおよび新たなTCP接続に転送することをサポートする段階と、を更に備える。
多重TCP接続の全体の帯域幅のそれぞれの帯域幅スライスを、プロキシサーバで確立された各TCP接続に対して、および多重TCP接続上で転送されるべきである複数のTCPパケットに対して、割り当てる段階と、
個別のTCP接続に対して割り当てられた帯域幅スライスが動的に調整されることを可能にする段階と、を更に備える。
TCP接続上でクライアントから受信される入力TCPトラフィックをバッファリングすることを継続する段階と、
TCP接続に対するトラフィックが再開することが許されるという指示を受信する段階と、
バッファにおいて累積しているTCPトラフィックに対応する複数のデータセグメントをプロキシサーバからウェブサーバへ送信することを再開する段階と、を更に備える。
ウェブサーバからの情報をプロキシサーバへ送信し、多重化されてよく且つ多重TCP接続上で送信されてよい複数の同時データストリームの最大数を識別する段階と、
複数の同時データストリームの最大数に対応する多数のクライアント接続を確立する段階と、
プロキシサーバでウェブサーバと通信することを望む新たなクライアントからデータを受信する段階と、
新たなクライアントからのデータをバッファリングする段階と、
既存クライアントがサーバとの通信を終了したと判断することに応答して、新たなクライアントに対してウェブサーバと新たなクライアント接続をネゴシエートする段階と、を更に備える。
プロセッサと、
プロセッサに動作可能に結合されているメモリと、
プロセッサに動作可能に結合された少なくとも1つのネットワークポートを含むネットワークアダプタと、
複数の命令が中に記憶されており、
プロキシサーバとウェブサーバとの間で多重TCP接続を確立し、多重TCP接続はデータを、ネットワークアダプタにおけるネットワークポートに結合されたリンクを含む転送パスをトランスポートするように構成されており、複数のクライアントは複数のそれぞれのTCP接続を介してプロキシサーバに接続されていることと、
複数のクライアントを行先としているクライアントデータストリームデータを、複数の多重(MUX)TCPパケットのストリームとして多重TCP接続上でプロキシサーバへ送信し、各MUX・TCPパケットは、プロキシサーバとクライアントとの間のTCP接続上のクライアントに、プロキシサーバを介して転送されるべきである複数のTCPパケットにおいてカプセル化されるべきであるパケットペイロードデータを備える1または複数のクライアントデータストリームからの複数のシーケンシャル実行の複数のビットを備える、1または複数のデータセグメントをカプセル化することと、をウェブサーバ装置ができるようにするべく、プロセッサによって実行されるように構成されており、複数のMUX・TCPパケットの少なくとも一部分は少なくとも2つの別々のクライアントデータストリームに対する複数のデータセグメントをカプセル化する、複数のソフトウェアモジュールと、を備えるストレージデバイスと、を備える、ウェブサーバ装置。
多重TCP接続上で複数のMUX・TCPパケットのストリームをプロキシサーバから受信することであって、各MUX・TCPパケットは1または複数のデータセグメントをカプセル化し、各データセグメントは、TCPクライアントから受信されるクライアントデータストリームの一部分を備えることと、
複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、複数のクライアントデータストリームを再アセンブルすることと、
複数の再アセンブルされたクライアントデータストリームからパケットペイロードデータを抽出することと、をウェブサーバ装置ができるようにするように構成されている。
メモリのメモリ空間における複数のキューのそれぞれのセットを、複数のクライアントをプロキシサーバに接続するべく用いられる複数のTCP接続の各々に対して割り当てることをウェブサーバ装置ができるようにするように構成されており、所与のTCP接続に対する複数のキューのそれぞれのセットは、少なくとも1つの出力キューおよび少なくとも1つの入力キューを含む。
複数の出力キューにおけるソフトウェア処理スタックによって生成される複数のクライアントデータストリームをキューに加えることであって、各出力キューに対してキューに加えられた複数のクライアントデータストリームに含まれるデータは、単一のクライアントが行先となっていることと、
複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化されるべく、複数のデータセグメントをプルするための複数の出力キューを選択するためのキューセレクタを用いることによって、複数のMUX・TCPパケットのストリームを生成することと、をウェブサーバ装置ができるようにするように構成されている。
複数のTCP接続の各々に対して多重TCP接続のそれぞれの帯域幅スライスを割り当てることと、
複数のTCP接続に対して割り当てられた複数の帯域幅スライスに従って複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装することと、をウェブサーバ装置ができるようにするように構成されている。
多重TCP接続を介してトランスポートされ、個々のベースで複数の選択されたTCP接続に関連している複数のクライアントデータストリームをスロットルさせる、または一時的に中止されることの少なくとも1つをウェブサーバ装置ができるようにするように構成されている。
プロセッサと、
プロセッサに動作可能に結合されたメモリと、
プロセッサに動作可能に結合された複数のネットワークポートと、
複数のソフトウェアモジュールを備える複数の命令を中に記憶しているストレージデバイスと、を備え、
複数のソフトウェアモジュールは、
第1ネットワークポートでそれぞれの複数のクライアントとの複数のTCP接続を確立することと、
プロキシサーバとウェブサーバとの間の多重TCP接続を確立することであって、多重TCP接続は、プロキシサーバ装置における第2ネットワークポートに結合されたリンクを含む転送パスでデータをトランスポートするように構成されている、ことと、
複数のTCP接続上で複数のクライアントから複数のTCPパケットを受信することと、
プロキシサーバ装置を介してウェブサーバへプロキシ処理されることになっている複数のTCPパケットを識別することと、
プロキシサーバ装置を介してプロキシ処理されることになっており、それぞれのクライアントデータストリームにおける所与のTCP接続上で受信される複数のTCPパケットに含まれるデータをバッファリングすることと、
複数のシーケンシャル実行の複数のクライアントデータストリームを備える複数のデータセグメントを、複数の多重(MUX)TCPパケットにカプセル化することであって、複数のMUX・TCPパケットの少なくとも一部分は、複数のシーケンシャル実行の少なくとも2つの別々のクライアントデータストリームを備える複数のデータセグメントをカプセル化することと、
第2ネットワークポートからのアウトバウンドの複数のMUX・TCPパケットが多重TCP接続上のウェブサーバへ転送されるように送信することと、をプロキシサーバ装置ができるようにするべく、プロセッサによって実行されるように構成されている、プロキシサーバ装置。
ウェブサーバから多重TCP接続上の複数のMUX・TCPパケットのストリームを受信することであって、各MUX・TCPパケットは、1または複数のクライアントデータストリームにおける複数のシーケンシャル実行の複数のビットを備える1または複数のデータセグメントをカプセル化することと、
複数のMUX・TCPパケットにおいてカプセル化された1または複数のデータセグメントをデカプセル化することと、
複数のクライアントデータストリームを再アセンブルすることと、
所与のクライアントデータストリームに関連しているTCP接続を識別することと、
所与のクライアントデータストリームに関連しているクライアントへ行くことになっている複数のTCPパケットにおける所与のクライアントデータストリームから抽出されたパケットペイロードデータをカプセル化することと、
クライアントに対するTCP接続上で行先クライアントへ複数のTCPパケットを転送することと、をプロキシサーバ装置ができるようにするように構成されている。
複数のクライアントをプロキシサーバに接続するべく用いられる複数のTCP接続の各々に対し、メモリのメモリ空間における複数のキューのそれぞれのセットを割り当てることをプロキシサーバ装置ができるようにするように構成されており、所与のTCP接続に対する複数のキューのそれぞれのセットは、多重TCP接続を介してウェブサーバへ転送されることになっている複数のTCPパケットがバッファリングされる少なくとも1つの出力キューを含む。
複数のTCP接続の各々に対して、多重TCP接続のそれぞれの帯域幅スライスを割り当てることと、
複数のTCP接続に対して割り当てられた複数の帯域幅スライスに従って、複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装することと、をプロキシサーバ装置ができるようにするように構成されている。
TCP接続を識別するウェブサーバからスロットルコマンドおよび中止コマンドのうち1つを受信することと、
応答において、多重TCP接続上でトランスポートされているTCP接続に関連しているクライアントデータストリームをスロットルすることおよび中止することのうち1つをすることと、をプロキシサーバ装置ができるようにするように構成されている。
プロキシサーバで複数のクライアントを持つ複数のTCP接続を確立することであって、各TCP接続は、TCPポートを用いてクライアントをプロキシサーバに接続することと、
通信しているプロキシサーバを、多重TCP接続を介してウェブサーバと結合させることと、
複数のクライアントから発信されている複数の入力TCP通信をプロキシサーバで受信することであって、各入力TCP通信は、ハイパーテキストトランスポートプロトコル(HTTP)リクエストを備えるデータを含む少なくとも1つのTCPパケットを含む、ことと、
所与のTCP接続に対し複数のTCPパケットから複数のHTTPリクエストを備えるパケットペイロードデータを抽出し、抽出されたパケットペイロードデータをクライアントデータストリームに加えることと、
プロキシサーバにおいて、複数のクライアントデータストリームの複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントを複数の多重(MUX)TCPパケットにカプセル化することであって、複数のMUX・TCPパケットの少なくとも一部分は、多重のクライアントデータストリームからの複数のデータセグメントをカプセル化することと、
プロキシサーバからの複数のMUX・TCPパケットを多重TCP接続上においてウェブサーバへトランスポートすることと、
ウェブサーバにおいて、複数のデータセグメントを複数のMUX・TCPパケットにデカプセル化し、複数のクライアントデータストリームを再アセンブルすることと、
再アセンブルされた複数のクライアントデータストリームから複数のHTTPリクエストを抽出することと、をプロキシサーバおよびウェブサーバができるようにするべく、プロキシサーバおよびウェブサーバにおいて実行されるように構成されている複数のソフトウェアモジュールを備える、少なくとも1つの非一時的機械可読媒体。
HTTPリクエストを送信したクライアントが行先であるクライアントデータストリームにおけるHTTPリクエストにHTTP応答を埋め込むことと、
1または複数のMUX/TCPパケットにおいてクライアントデータストリームに対応する1または複数のデータセグメントをカプセル化することと、
1または複数のMUX/TCPパケットをウェブサーバからプロキシサーバへ多重TCP接続上においてトランスポートすることと、
1または複数のMUX/TCPパケットにおいてカプセル化された1または複数のデータセグメントをデカプセル化することと、
複数のクライアントデータストリームを再アセンブルすることと、
クライアントデータストリームに関連しているTCP接続を識別することと、
再アセンブルされたクライアントデータストリームからHTTP応答を抽出し、HTTP応答を、クライアントデータストリームに関連しているクライアントが行先である1または複数のTCPパケットにおいてカプセル化することと、
1または複数のTCPパケットをクライアントに対するTCP接続上において行先クライアントへ転送することと、をプロキシサーバおよびウェブサーバが、実行においてできるようにするように構成されている。
各TCP接続に対して、TCP接続に対するプロキシサーバにおいて少なくとも1つのキューを割り当てることと、
TCP接続に割り当てられた少なくとも1つのキューにおいて、TCP接続上で受信された複数のTCPパケットに含まれるパケットペイロードデータを備える複数のクライアントデータストリームをバッファリングすることと、をプロキシサーバおよびウェブサーバが実行においてできるようにするように構成されている。
プロキシサーバにおける複数の出力キューにおいて、TCP接続上でトランスファーされる複数のTCPパケットに含まれる複数のシーケンシャル実行のパケットペイロードデータを備えるクライアントデータストリームをバッファリングすることであって、各出力キューは、それぞれのTCP接続に対して割り当てられている、ことと、
多重TCP接続を介してウェブサーバへトランスポートされることになっている複数のMUX・TCPパケットのストリームを、複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化されるべく、複数のデータセグメントをプルするための複数の出力キューを選択するためのキューセレクタを用いることによって、生成することと、をプロキシサーバおよびウェブサーバが実行においてできるようにするように構成されている。
新たなクライアントから送信されたHTTPリクエストを受信し、ウェブサーバを介してアクセスされるウェブサイトに対するユニバーサルリソースロケータ(URL)にアクセスすることと、
新たなクライアントとプロキシサーバとの間において新たなTCP接続を確立することと、
新たなクライアントからプロキシサーバで受信された複数のHTTPリクエストを、多重TCP接続を介してウェブサーバへ転送すること、およびウェブサーバで生成された複数のHTTP応答を、多重TCP接続を介して新たなクライアントへ、プロキシサーバおよび新たなTCP接続へ転送することをサポートするべく、プロキシサーバおよびウェブサーバの各々における複数のキューを割り当てることと、をプロキシサーバおよびウェブサーバが、実行において、できるようにするように構成されている。
プロキシサーバで確立された各TCP接続に対して、およびどの複数のTCPパケットが多重TCP接続上で転送されることになっているかに対して、多重TCP接続の全体の帯域幅のそれぞれの帯域幅スライスを割り当てることと、
個別のTCP接続に対して割り当てられた帯域幅スライスが、動的に調整されることを可能にすることと、をプロキシサーバおよびウェブサーバが、実行において、できるようにするように構成されている。
TCP接続上でクライアントから受信される入力TCPトラフィックをバッファリングすることを継続することと、
TCP接続に対するトラフィックが再開することが許されるという指示を受信することと、
バッファにおいて累積しているTCPトラフィックに対応する複数のデータセグメントのプロキシサーバからウェブサーバへの送信を再開することと、ができるようにするように構成されている。
情報をウェブサーバからプロキシサーバへ送信し、多重化されており、多重TCP接続上で送信される複数の同時データストリームの最大数を識別することと、
同時データストリームの最大数に対応する多数のクライアント接続の数を確立することと、
プロキシサーバで、ウェブサーバと通信することを望む新たなクライアントからデータを受信することと、
新たなクライアントからのデータをバッファリングすることと、
既存クライアントがサーバとの通信が終了していると判断することに応答して、新たなクライアントに対しウェブサーバとの新たなクライアント接続をネゴシエートすることと、をプロキシサーバおよびウェブサーバが実行においてできるようにするように構成されている。
プロセッサと、
プロセッサに動作可能に結合されているメモリと、
プロセッサに動作可能に結合された少なくとも1つのネットワークポートを含むネットワークアダプタと、
プロキシサーバとウェブサーバとの間で多重TCP接続を確立するためであり、多重TCP接続はデータを、ネットワークアダプタにおけるネットワークポートに結合されたリンクを含む転送パスにおいてトランスポートするように構成されており、複数のクライアントはそれぞれの複数のTCP接続を介してプロキシサーバに接続されている、且つ
複数のクライアントを行先としているクライアントデータストリームデータを、複数の多重(MUX)TCPパケットのストリームとして多重TCP接続上でプロキシサーバに送信するため、の手段と、を備え、
各MUX・TCPパケットは、プロキシサーバとクライアントとの間のTCP接続上でクライアントに、プロキシサーバを介して転送されるべき複数のTCPパケットにおいてカプセル化されるべきであるパケットペイロードデータを備える1または複数のクライアントデータストリームからの複数のシーケンシャル実行の複数のビットを備える、1または複数のデータセグメントをカプセル化し、複数のMUX・TCPパケットの少なくとも一部分は少なくとも2つの別々のクライアントデータストリームに対する複数のデータセグメントをカプセル化する、ウェブサーバ装置。
プロキシサーバから多重TCP接続上で複数のMUX・TCPパケットのストリームを受信し、各MUX・TCPパケットは、1または複数のデータセグメントをカプセル化し、各データセグメントはTCPクライアントから受信されたクライアントデータストリームの一部分を備え、
複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、複数のクライアントデータストリームを再アセンブルし、且つ
再アセンブルされた複数のクライアントデータストリームからパケットペイロードデータを抽出する、手段を備えるウェブサーバ装置。
複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化されるべく、複数のデータセグメントをプルするための複数の出力キューを選択するためのキューセレクタを用いることによって、複数のMUX・TCPパケットのストリームを生成するための手段を更に備える、節34―38のいずれかのウェブサーバ装置。
複数のTCP接続に対して割り当てられた複数の帯域幅スライスに従って、複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装するための手段を、更に備える、節38のウェブサーバ装置
プロセッサと、
プロセッサに動作可能に結合されたメモリと、
プロセッサに動作可能に結合された複数のネットワークポートと、
第1ネットワークポートでそれぞれのクライアントとの複数のTCP接続を確立するため、
プロキシサーバとウェブサーバとの間の多重TCP接続を確立するためであって、多重TCP接続は、プロキシサーバ装置における第2ネットワークポートに結合されたリンクを含む転送パスでデータをトランスポートするように構成されており、
複数のTCP接続上で複数のクライアントから複数のTCPパケットを受信するためであり、
プロキシサーバ装置を介してウェブサーバへプロキシ処理されることになっている複数のTCPパケットを識別するためであり、
プロキシサーバ装置を介してプロキシ処理されることになっており、それぞれのクライアントデータストリームにおける所与のTCP接続上で受信される複数のTCPパケットに含まれるデータをバッファリングするためであり、
複数のシーケンシャル実行の複数のクライアントデータストリームを備える複数のデータセグメントを、複数の多重(MUX)TCPパケットにおいてカプセル化するためであって、複数のMUX・TCPパケットの少なくとも一部分は、複数のシーケンシャル実行の少なくとも2つの別々のクライアントデータストリームを備える複数のデータセグメントをカプセル化するためであり、且つ
第2ネットワークポートからのアウトバウンドの複数のMUX・TCPパケットが多重TCP接続上のウェブサーバへ転送されるように送信するための、手段を備える、プロキシサーバ装置。
複数のMUX・TCPパケットにおいてカプセル化された1または複数のデータセグメントをデカプセル化するためであり、
複数のクライアントデータストリームを再アセンブルするためであり、
所与のクライアントデータストリームに関連しているTCP接続を識別するためであり、
所与のクライアントデータストリームに関連しているクライアントが行先である複数のTCPパケットにおいて所与のクライアントデータストリームから抽出されたパケットペイロードデータをカプセル化するためであり、且つ
クライアントに対するTCP接続上で行先クライアントに複数のTCPパケットを転送するための、手段を更に備える、節41のプロキシサーバ装置。
複数のTCP接続に対して割り当てられた複数の帯域幅スライスに従って、複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装するための手段を更に備える、節43のプロキシサーバ装置。
応答において、多重TCP接続上でトランスポートされているTCP接続に関連しているクライアントデータストリームをスロットリングまたは中止するうちの1つを行うための手段を更に備える、節41―44のいずれかのプロキシサーバ装置。
Claims (27)
- 複数のクライアントとの複数のTCP接続をプロキシサーバで確立する段階であって、各TCP接続は、TCPポートを用いて前記プロキシサーバにクライアントを接続する、段階と、
多重TCP接続を介して前記プロキシサーバをウェブサーバと通信結合させる段階と、
前記複数のクライアントから発信される複数の入力TCP通信を前記プロキシサーバで受信する段階であって、各入力TCP通信は、パケットペイロードデータを含む少なくとも1つのTCPパケットを含む、段階と、
それぞれのクライアントデータストリームにおける所与のTCP接続上で受信される複数のTCPパケットに含まれる前記パケットペイロードデータをバッファリングする段階と、
前記プロキシサーバにおいて、複数の前記クライアントデータストリームにおける複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントを、複数の多重TCPパケット(複数のMUX・TCPパケット)にカプセル化する段階であって、前記複数のMUX・TCPパケットの少なくとも一部分は、少なくとも2つの別々のクライアントデータストリームからの複数のデータセグメントをカプセル化する、段階と、
前記複数のMUX・TCPパケットを前記プロキシサーバから前記ウェブサーバへ前記多重TCP接続上でトランスポートする段階と、
前記ウェブサーバで、
前記複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、前記複数のクライアントデータストリームを再アセンブルする段階と、
再アセンブルされた前記複数のクライアントデータストリームからパケットペイロードデータを抽出する段階と
を備え、
前記ウェブサーバを介してアクセスされるウェブサイトに対するユニバーサルリソースロケータ(URL)にアクセスするべく新たなクライアントから送信されるハイパーテキストトランスポートプロトコル(HTTP)リクエストを受信する段階と、
前記新たなクライアントと前記プロキシサーバとの間で新たなTCP接続を確立する段階と、
前記プロキシサーバで受信された複数のHTTPリクエストを前記新たなクライアントから前記ウェブサーバへ前記多重TCP接続を介して転送すること、および前記ウェブサーバで生成された複数のHTTP応答を、前記新たなクライアントに、前記プロキシサーバおよび前記新たなTCP接続への前記多重TCP接続を介して転送することをサポートするべく、前記プロキシサーバおよび前記ウェブサーバの各々において複数のキューを割り当てる段階と、を更に備え、
前記プロキシサーバおよび前記ウェブサーバに割り当てられる前記複数のキューは、新たなクライアントのための前記複数のHTTPリクエスト及び前記複数のHTTP応答の利用のために専用のものである、方法。 - 多重化され、前記多重TCP接続上で送信され得る複数の同時データストリームの最大数を識別する情報を、前記ウェブサーバから前記プロキシサーバへ送信する段階と、
前記複数の同時データストリームの前記最大数に対応する複数のクライアント接続を確立する段階と、
前記プロキシサーバで、前記ウェブサーバと通信することを望む新たなクライアントからデータを受信する段階と、
前記新たなクライアントからの前記データをバッファリングする段階と、
既存クライアントが前記ウェブサーバと通信することを終了していると判断することに応答して、前記ウェブサーバと新たなクライアント接続を、前記新たなクライアントのためにネゴシエートする段階と、を更に備える、請求項1に記載の方法。 - 多重化され、プロキシサーバとウェブサーバとの間の多重TCP接続上で送信され得る複数の同時データストリームの最大数を識別する情報を、前記ウェブサーバから前記プロキシサーバへ送信する段階と、
前記複数の同時データストリームの前記最大数に対応する複数のクライアントとの複数のTCP接続をプロキシサーバで確立する段階であって、各TCP接続は、TCPポートを用いて前記プロキシサーバにクライアントを接続する、段階と、
前記多重TCP接続を介して前記プロキシサーバをウェブサーバと通信結合させる段階と、
前記複数のクライアントから発信される複数の入力TCP通信を前記プロキシサーバで受信する段階であって、各入力TCP通信は、パケットペイロードデータを含む少なくとも1つのTCPパケットを含む、段階と、
それぞれのクライアントデータストリームにおける所与のTCP接続上で受信される複数のTCPパケットに含まれる前記パケットペイロードデータをバッファリングする段階と、
前記プロキシサーバにおいて、複数の前記クライアントデータストリームにおける複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントを、複数の多重TCPパケット(複数のMUX・TCPパケット)にカプセル化する段階であって、前記複数のMUX・TCPパケットの少なくとも一部分は、少なくとも2つの別々のクライアントデータストリームからの複数のデータセグメントをカプセル化する、段階と、
前記複数のMUX・TCPパケットを前記プロキシサーバから前記ウェブサーバへ前記多重TCP接続上でトランスポートする段階と、
前記ウェブサーバで、
前記複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、前記複数のクライアントデータストリームを再アセンブルする段階と、
再アセンブルされた前記複数のクライアントデータストリームからパケットペイロードデータを抽出する段階と、
前記プロキシサーバで、
前記ウェブサーバと通信することを望む新たなクライアントからデータを受信する段階と、
前記新たなクライアントからの前記データをバッファリングする段階と、
既存クライアントが前記ウェブサーバと通信することを終了していると判断することに応答して、前記ウェブサーバと新たなクライアント接続を、前記新たなクライアントのためにネゴシエートする段階と
を備える、方法。 - 第1TCP接続上で受信される前記1または複数のTCPパケットは、第1クライアントから送信されるハイパーテキストトランスポートプロトコル(HTTP)リクエストを備え、
前記方法は、
前記第1クライアントが行先であるクライアントデータストリームにおいてHTTP応答を埋めこむ段階と、
1または複数のMUX・TCPパケットの前記クライアントデータストリームに対応する複数のシーケンシャル実行の複数のビットを備える複数のデータセグメントをカプセル化する段階と、
前記ウェブサーバからの前記1または複数のMUX・TCPパケットを前記多重TCP接続上で前記プロキシサーバへトランスポートする段階と、
前記1または複数のMUX・TCPパケットからの前記複数のデータセグメントをデカプセル化する段階と、
前記クライアントデータストリームを再アセンブルする段階と、
前記HTTP応答を抽出し、前記プロキシサーバから行先の前記クライアントへ前記第1TCP接続上で転送される1または複数のTCPパケットにおいて前記HTTP応答をカプセル化する段階と、によって、前記第1クライアントへ前記HTTP応答を戻す段階を更に備える、請求項1から3のいずれか一項に記載の方法。 - 各TCP接続に対し、
前記プロキシサーバの少なくとも1つのキューを前記TCP接続に対して割り当てる段階と、
前記TCP接続に対して割り当てられた前記少なくとも1つのキューにおいて、前記TCP接続上で受信される、複数のTCPパケットに含まれるパケットペイロードデータを備えるクライアントデータストリームをバッファリングする段階と
を更に備える、請求項1から4のいずれか一項に記載の方法。 - 各TCP接続に対して割り当てられた前記プロキシサーバの前記少なくとも1つのキューは、出力キューを有し、
前記方法は、
前記プロキシサーバの複数の前記出力キューの前記TCP接続上でトランスファーされる複数のTCPパケットに含まれる複数のシーケンシャル実行のパケットペイロードデータを備えるクライアントデータストリームをバッファリングする段階であって、各出力キューはそれぞれのTCP接続に対して割り当てられる、段階と、
複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化されるべき複数のデータセグメントをプルするための複数の出力キューを選択するキューセレクタを用いることによって、前記多重TCP接続を介して前記ウェブサーバへトランスポートされるべき複数のMUX・TCPパケットの前記ストリームを、生成する段階と、
を更に備える、請求項5に記載の方法。 - 前記多重TCP接続は、全体の帯域幅を有し、
前記方法は、
前記多重TCP接続の前記全体の帯域幅のそれぞれの帯域幅スライスを、前記プロキシサーバで確立された各TCP接続に対して、および前記多重TCP接続上で転送されるべき複数のTCPパケットに対して割り当てる段階と、
個別のTCP接続に対して割り当てられた前記帯域幅スライスが動的に調整されることを可能にする段階と、を更に備える、請求項1から6のいずれか一項に記載の方法。 - 前記ウェブサーバおよび前記プロキシサーバのうち少なくとも1つが、前記多重TCP接続上で転送される複数の個別のTCP接続に対するデータのトランスファーのレートを管理することを可能にする段階を更に備える、請求項1から7のいずれか一項に記載の方法。
- 前記ウェブサーバおよび前記プロキシサーバのうち少なくとも1つが、選択されたTCP接続に対応するトラフィックが前記多重TCP接続上で転送されることを、中止することを可能にする段階を更に備える、請求項8に記載の方法。
- 前記ウェブサーバは前記プロキシサーバにリクエストを送信し、所与のTCP接続に対するトラフィックを中止し、
前記方法は、
前記TCP接続上でクライアントから受信される入力TCPトラフィックをバッファリングすることを継続する段階と、
前記TCP接続に対するトラフィックが再開することが許されるという指示を受信する段階と、
バッファに累積されている前記入力TCPトラフィックに対応する複数のデータセグメントを、前記プロキシサーバから前記ウェブサーバへ送信することを再開する段階と、を更に備える、請求項9に記載の方法。 - プロキシサーバおよびウェブサーバに、請求項1から10のいずれか一項に記載の方法を実行させるプログラム。
- ウェブサーバ装置であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合された少なくとも1つのネットワークポートを含むネットワークアダプタと、
複数のソフトウェアモジュールを備える複数の命令を記憶しているストレージデバイスと、を備え、
前記複数のソフトウェアモジュールは、
前記ウェブサーバ装置が、
多重化され、プロキシサーバと前記ウェブサーバ装置との間の多重TCP接続上で送信され得る複数の同時データストリームの最大数を識別する情報を前記プロキシサーバへ送信することと、
前記プロキシサーバと前記ウェブサーバ装置との間で多重TCP接続を確立することであって、前記多重TCP接続は、前記ネットワークアダプタにおけるネットワークポートに結合されたリンクを含む転送パスにおいてデータをトランスポートし、前記複数の同時データストリームの前記最大数に対応する複数のクライアントが前記プロキシサーバにそれぞれの複数のTCP接続を介して接続されている、ことと、
前記プロキシサーバに前記複数のクライアントを接続するべく用いられる前記複数のTCP接続の各々に対して前記メモリのメモリ空間における複数のキューのそれぞれのセットを割り当てることができるようにし、所与のTCP接続に対する複数のキューのそれぞれの前記セットが、少なくとも1つの出力キューおよび少なくとも1つの入力キューを有する、ことと
前記複数のクライアントが行先であるクライアントデータストリームデータを、複数の多重TCPパケット(複数のMUX・TCPパケット)のストリームとして前記プロキシサーバへ前記多重TCP接続上で送信することであって、各MUX・TCPパケットは、前記プロキシサーバを介して前記プロキシサーバとクライアントとの間のTCP接続上で前記クライアントに転送されるべき複数のTCPパケットにおいてカプセル化されるパケットペイロードデータを備える、1または複数のクライアントデータストリームからの複数のシーケンシャル実行の複数のビットを備える1または複数のデータセグメントをカプセル化し、前記複数のMUX・TCPパケットの少なくとも一部分は、少なくとも2つの別々のクライアントデータストリームに対する複数のデータセグメントをカプセル化する、こと、とができるようにするべく、前記プロセッサによって実行される、ウェブサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記ウェブサーバ装置が、
前記プロキシサーバから前記多重TCP接続上で複数のMUX・TCPパケットのストリームを受信することであって、各MUX・TCPパケットは、1または複数のデータセグメントをカプセル化し、各データセグメントはTCPクライアントから受信されたクライアントデータストリームの一部分を備える、ことと、
前記複数のMUX・TCPパケットにおける複数のデータセグメントをデカプセル化し、前記複数のクライアントデータストリームを再アセンブルすることと、
前記再アセンブルされた複数のクライアントデータストリームからのパケットペイロードデータを抽出することと、をできるようにする、請求項12に記載のウェブサーバ装置。 - 各TCP接続および前記接続に対して割り当てられた複数のキューのセットにおける前記複数のキューは、固有クライアント識別子によって識別される、請求項12または13に記載のウェブサーバ装置。
- 前記複数のソフトウェアモジュールは、ソフトウェア処理スタックを有し、前記複数のソフトウェアモジュールは、更に、前記ウェブサーバ装置が、
前記ソフトウェア処理スタックによって生成される複数のクライアントデータストリームを複数の出力キューに加えることであって、各出力キューに加えられた前記複数のクライアントデータストリームに含まれるデータは、単一のクライアントを行先としている、ことと、
複数のMUX・TCPパケットのストリームを、
前記複数のMUX・TCPパケットのストリームにおけるそれぞれの複数のMUX・TCPパケットにおいてカプセル化されるべきである、複数のデータセグメントをプルするための複数の出力キューを選択するキューセレクタを用いることによって生成することと、ができるようにする、請求項12から14のいずれか一項に記載のウェブサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記ウェブサーバ装置が、
前記複数のTCP接続の各々に対して前記多重TCP接続のそれぞれの帯域幅スライスを割り当てることと、前記複数のTCP接続に対して割り当てられた複数の前記帯域幅スライスに従って複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装することとができるようにする、請求項15に記載のウェブサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記多重TCP接続を介してトランスポートされる、および選択された複数のTCP接続に個々のベースで関連している複数のクライアントデータストリームをスロットルまたは中止するうち少なくとも1つを前記ウェブサーバ装置ができるようにする、請求項16に記載のウェブサーバ装置。
- 前記複数のソフトウェアモジュールは、更に、前記ウェブサーバ装置が、
複数の多重TCP接続制御コマンドを前記プロキシサーバに送信し、前記プロキシサーバから複数のコマンド応答を受信することができるようにし、前記複数の多重TCP接続制御コマンドは、前記多重TCP接続を管理するために用いられる、請求項12から17のいずれか一項に記載のウェブサーバ装置。 - ウェブサーバに対するプロキシサーバとして動作するプロキシサーバ装置であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合された複数のネットワークポートと、
複数のソフトウェアモジュールを備える複数の命令を記憶しているストレージデバイスと、を備え、
前記複数のソフトウェアモジュールは、
前記プロキシサーバ装置が、
第1ネットワークポートで、複数のクライアントのそれぞれと複数のTCP接続を確立することと、
前記プロキシサーバ装置と前記ウェブサーバとの間に多重TCP接続を確立することであって、前記多重TCP接続は、前記プロキシサーバ装置における第2ネットワークポートに結合されたリンクを含む転送パスにおいてデータをトランスポートする、ことと、
前記複数のTCP接続上で前記複数のクライアントから複数のTCPパケットを受信することと、
前記プロキシサーバ装置を介して前記ウェブサーバへプロキシ処理される複数のTCPパケットを識別することと、
前記プロキシサーバ装置を介してプロキシ処理される、且つそれぞれのクライアントデータストリームの所与のTCP接続上で受信される前記複数のTCPパケットに含まれるデータをバッファリングすることと、
複数の多重TCPパケット(複数のMUX・TCPパケット)における複数のシーケンシャル実行の複数の前記クライアントデータストリームを備える複数のデータセグメントをカプセル化することであって、前記複数のMUX・TCPパケットの少なくとも一部分は、複数のシーケンシャル実行の少なくとも2つの別々のクライアントデータストリームを備える複数のデータセグメントをカプセル化する、ことと、
転送される前記第2ネットワークポートからのアウトバウンドの前記複数のMUX・TCPパケットを、前記多重TCP接続上で前記ウェブサーバに送信することと、
ができるようにするべく、前記プロセッサによって実行され、
前記複数のソフトウェアモジュールは、
前記プロキシサーバ装置が、更に、
前記ウェブサーバを介してアクセスされるウェブサイトに対するユニバーサルリソースロケータ(URL)にアクセスするべく新たなクライアントから送信されるハイパーテキストトランスポートプロトコル(HTTP)リクエストを受信することと、
前記新たなクライアントと前記プロキシサーバとの間で新たなTCP接続を確立することと、
前記プロキシサーバで受信された複数のHTTPリクエストを前記新たなクライアントから前記ウェブサーバへ前記多重TCP接続を介して転送すること、および前記ウェブサーバで生成された複数のHTTP応答を、前記新たなクライアントに、前記プロキシサーバおよび前記新たなTCP接続への前記多重TCP接続を介して転送することをサポートするべく、前記プロキシサーバおよび前記ウェブサーバの各々において複数のキューを割り当てることと、
ができるようにするべく、前記プロセッサによって実行され、
前記プロキシサーバおよび前記ウェブサーバに割り当てられる前記複数のキューは、新たなクライアントのための前記複数のHTTPリクエスト及び前記複数のHTTP応答の利用のために専用のものである、プロキシサーバ装置。 - 前記複数のソフトウェアモジュールは、
前記プロキシサーバ装置が、更に、
多重化され、前記プロキシサーバ装置と前記ウェブサーバとの間の多重TCP接続上で送信され得る複数の同時データストリームの最大数を識別する情報を、前記ウェブサーバから受信することと、
前記複数の同時データストリームの前記最大数に対応する複数のクライアント接続を確立する段階と、
前記ウェブサーバと通信することを望む新たなクライアントからデータを受信することと、
前記新たなクライアントからの前記データをバッファリングすることと、
既存クライアントが前記プロキシサーバ装置と通信することを終了していると判断することに応答して、前記ウェブサーバと新たなクライアント接続を、前記新たなクライアントのためにネゴシエートすることと、
ができるようにするべく、前記プロセッサによって実行される、請求項19に記載のプロキシサーバ装置。 - ウェブサーバに対するプロキシサーバとして動作するプロキシサーバ装置であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合された複数のネットワークポートと、
複数のソフトウェアモジュールを備える複数の命令を記憶しているストレージデバイスと、を備え、
前記複数のソフトウェアモジュールは、
前記プロキシサーバ装置が、
多重化され、前記プロキシサーバ装置と前記ウェブサーバとの間の多重TCP接続上で送信され得る複数の同時データストリームの最大数を識別する情報を、前記ウェブサーバから受信することと、
第1ネットワークポートで、前記複数の同時データストリームの前記最大数に対応する複数のクライアントのそれぞれと複数のTCP接続を確立することと、
前記プロキシサーバ装置と前記ウェブサーバとの間に多重TCP接続を確立することであって、前記多重TCP接続は、前記プロキシサーバ装置における第2ネットワークポートに結合されたリンクを含む転送パスにおいてデータをトランスポートする、ことと、
前記複数のTCP接続上で前記複数のクライアントから複数のTCPパケットを受信することと、
前記プロキシサーバ装置を介して前記ウェブサーバへプロキシ処理される複数のTCPパケットを識別することと、
前記プロキシサーバ装置を介してプロキシ処理される、且つそれぞれのクライアントデータストリームの所与のTCP接続上で受信される前記複数のTCPパケットに含まれるデータをバッファリングすることと、
複数の多重TCPパケット(複数のMUX・TCPパケット)における複数のシーケンシャル実行の複数の前記クライアントデータストリームを備える複数のデータセグメントをカプセル化することであって、前記複数のMUX・TCPパケットの少なくとも一部分は、複数のシーケンシャル実行の少なくとも2つの別々のクライアントデータストリームを備える複数のデータセグメントをカプセル化する、ことと、
転送される前記第2ネットワークポートからのアウトバウンドの前記複数のMUX・TCPパケットを、前記多重TCP接続上で前記ウェブサーバに送信することと、
ができるようにするべく、前記プロセッサによって実行され、
前記複数のソフトウェアモジュールは、
前記プロキシサーバ装置が、更に、
前記ウェブサーバと通信することを望む新たなクライアントからデータを受信することと、
前記新たなクライアントからの前記データをバッファリングすることと、
既存クライアントが前記プロキシサーバと通信することを終了していると判断することに応答して、前記ウェブサーバと新たなクライアント接続を、前記新たなクライアントのためにネゴシエートすることと
ができるようにするべく、前記プロセッサによって実行されるプロキシサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記プロキシサーバ装置が、
複数のMUX・TCPパケットのストリームを前記ウェブサーバから前記多重TCP接続上で受信することであって、各MUX・TCPパケットは、1または複数のクライアントデータストリームにおける複数のシーケンシャル実行の複数のビットを備える1または複数のデータセグメントをカプセル化する、ことと、
前記複数のMUX・TCPパケットにおいてカプセル化された前記1または複数のデータセグメントをデカプセル化することと、
前記複数のクライアントデータストリームを再アセンブルすることと、
所与のクライアントデータストリームに関連しているTCP接続を識別することと、
前記所与のクライアントデータストリームから抽出されたパケットペイロードデータを、前記所与のクライアントデータストリームと関連しているクライアントを行先としている複数のTCPパケットにおいてカプセル化することと、
前記クライアントに対する前記TCP接続上で、行先の前記クライアントへ前記複数のTCPパケットを転送することと、ができるようにする、請求項19から21のいずれか一項に記載のプロキシサーバ装置。 - 前記パケットペイロードデータは、複数のハイパーテキストトランスポートプロトコル(HTTP)応答を備える、請求項22に記載のプロキシサーバ装置。
- 前記複数のソフトウェアモジュールは、更に、前記プロキシサーバ装置が、
前記複数のクライアントを前記プロキシサーバ装置に接続するべく用いられる前記複数のTCP接続の各々に対して、前記メモリのメモリ空間における複数のキューのそれぞれのセットを割り当てることができるようにし、所与のTCP接続に対する複数のキューのそれぞれの前記セットは、前記ウェブサーバに前記多重TCP接続を介して転送されるべき複数のTCPパケットがバッファリングされる、少なくとも1つの出力キューを有する、請求項22に記載のプロキシサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記プロキシサーバ装置が、
前記複数のTCP接続の各々に対して前記多重TCP接続のそれぞれの帯域幅スライスを割り当てることと、
前記複数のTCP接続に対して割り当てられた複数の前記帯域幅スライスに従って複数のデータセグメントをプルするための複数の出力キューを選択するキュー選択アルゴリズムを実装することと、ができるようにする、請求項24に記載のプロキシサーバ装置。 - 前記複数のソフトウェアモジュールは、更に、前記プロキシサーバ装置が、
TCP接続を識別している前記ウェブサーバからスロットルコマンドおよび中止コマンドのうちの1つを受信することと、
応答において、前記多重TCP接続上でトランスポートされる前記TCP接続に関連しているクライアントデータストリームのスロットルおよび中止のうち1つをすることと、ができるようにする、請求項19から25のいずれか一項に記載のプロキシサーバ装置。 - 請求項11に記載のプログラムを記憶しているコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/583,337 | 2014-12-26 | ||
US14/583,337 US9923677B2 (en) | 2014-12-26 | 2014-12-26 | Multiplexing many client streams over a single connection |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016127597A JP2016127597A (ja) | 2016-07-11 |
JP6318453B2 true JP6318453B2 (ja) | 2018-05-09 |
Family
ID=56117053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015228864A Active JP6318453B2 (ja) | 2014-12-26 | 2015-11-24 | 単一接続上での多くのクライアントストリームの多重化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9923677B2 (ja) |
JP (1) | JP6318453B2 (ja) |
CN (1) | CN105743812B (ja) |
DE (1) | DE102015119893B4 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666474B (zh) * | 2016-07-30 | 2021-04-20 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
CN106302661B (zh) * | 2016-08-02 | 2019-08-13 | 网宿科技股份有限公司 | P2p数据加速方法、装置和系统 |
US10291750B1 (en) * | 2016-12-13 | 2019-05-14 | Juniper Networks, Inc. | Aggregating data sessions between autonomous systems |
CN110521185A (zh) * | 2017-04-14 | 2019-11-29 | 英特尔公司 | 服务器和网络辅助超文本传输协议动态自适应流送信令 |
US10320694B2 (en) * | 2017-05-04 | 2019-06-11 | Nokia Of America Corporation | Methods, apparatuses and computer-readable storage mediums for communication via user services platform |
EP3625943B1 (en) * | 2017-05-16 | 2021-09-08 | Telefonaktiebolaget LM Ericsson (PUBL) | Low latency media ingestion system, devices and methods |
CN107911415A (zh) * | 2017-10-20 | 2018-04-13 | 深圳市网心科技有限公司 | Tcp流的多路复用系统及其方法、存储介质与终端 |
CN107872538B (zh) * | 2017-12-07 | 2021-02-02 | 浙江大华技术股份有限公司 | 解耦tcp长连接的业务处理方法、反向代理和业务服务器 |
US10686910B2 (en) * | 2018-02-02 | 2020-06-16 | Servicenow, Inc. | Distributed queueing in a remote network management architecture |
EP3753228B1 (en) * | 2018-02-15 | 2024-02-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Providing cloud connectivity to a network of communicatively interconnected network nodes |
US11249857B2 (en) | 2018-10-19 | 2022-02-15 | Netapp, Inc. | Methods for managing clusters of a storage system using a cloud resident orchestrator and devices thereof |
US10820057B2 (en) * | 2018-11-07 | 2020-10-27 | Nvidia Corp. | Scalable light-weight protocols for wire-speed packet ordering |
CN111262715B (zh) * | 2018-11-30 | 2021-04-02 | 贵州白山云科技股份有限公司 | 一种虚拟内网加速方法、系统和计算机设备 |
US11108704B2 (en) | 2018-12-04 | 2021-08-31 | Nvidia Corp. | Use of stashing buffers to improve the efficiency of crossbar switches |
CN111367650B (zh) * | 2018-12-26 | 2023-11-21 | 浙江大学 | 一种输入输出流的处理方法、装置及系统 |
TWI758680B (zh) * | 2019-01-31 | 2022-03-21 | 日商日本電氣股份有限公司 | 資料中繼裝置、方法、發送系統及程式 |
CN110784444B (zh) * | 2019-09-09 | 2021-10-15 | 航天行云科技有限公司 | 一种嵌套数据流处理的方法及相关设备 |
CN112929393A (zh) * | 2019-12-05 | 2021-06-08 | 中兴通讯股份有限公司 | 一种建立http/2连接的方法、系统、装置和电子设备 |
CN113453378B (zh) * | 2020-03-26 | 2023-06-16 | 成都鼎桥通信技术有限公司 | 一种s1应用协议链路的建立方法和装置 |
CN113973093B (zh) * | 2020-07-24 | 2023-10-13 | 中移(苏州)软件技术有限公司 | 数据传输方法及装置、电子设备、可读存储介质 |
US11595502B2 (en) * | 2020-10-15 | 2023-02-28 | Pensando Systems Inc. | Methods and systems for layer 7 hardware assist and CPU task offloads |
CN112671933B (zh) * | 2021-02-23 | 2022-04-26 | 浙江中控技术股份有限公司 | 一种数据处理方法及系统 |
CN113472875A (zh) * | 2021-06-28 | 2021-10-01 | 深信服科技股份有限公司 | 一种连接复用方法、装置、电子设备及存储介质 |
US11770215B2 (en) | 2022-02-17 | 2023-09-26 | Nvidia Corp. | Transceiver system with end-to-end reliability and ordering protocols |
CN114884881B (zh) * | 2022-05-12 | 2023-07-07 | 福建天晴在线互动科技有限公司 | 一种数据压缩传输方法及终端 |
CN115348332B (zh) * | 2022-07-08 | 2023-08-29 | 宜通世纪科技股份有限公司 | 一种信令分析场景中http数据流会话的重组方法 |
CN115942006B (zh) * | 2022-12-06 | 2024-05-28 | 北京中电兴发科技有限公司 | 一种适用于网络单端口复用多路视频的方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3707927B2 (ja) | 1998-04-14 | 2005-10-19 | 富士通株式会社 | サーバスループット予約システム |
US7013338B1 (en) * | 2000-07-28 | 2006-03-14 | Prominence Networks, Inc. | Multiplexing several individual application sessions over a pre-allocated reservation protocol session |
US20020042839A1 (en) * | 2000-10-10 | 2002-04-11 | Christopher Peiffer | HTTP multiplexor/demultiplexor |
US7801978B1 (en) * | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
JP2002185488A (ja) | 2000-12-14 | 2002-06-28 | Nippon Telegr & Teleph Corp <Ntt> | 通信効率増幅装置 |
US7003572B1 (en) | 2001-02-28 | 2006-02-21 | Packeteer, Inc. | System and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment |
US6934257B2 (en) * | 2001-04-04 | 2005-08-23 | Intel Corporation | Transferring transmission control protocol packets |
US8090866B1 (en) * | 2002-01-18 | 2012-01-03 | Cisco Technology, Inc. | TCP proxy connection management in a gigabit environment |
US7406087B1 (en) * | 2002-11-08 | 2008-07-29 | Juniper Networks, Inc. | Systems and methods for accelerating TCP/IP data stream processing |
CA2875770C (en) * | 2005-08-11 | 2017-05-02 | Telekom Malaysia Berhad | Distributed digital subscriber line access multiplexer |
US20080304486A1 (en) * | 2007-06-08 | 2008-12-11 | Joshua Verweyst Graessley | Multiplexed data stream protocol |
WO2010100837A1 (ja) * | 2009-03-06 | 2010-09-10 | 日本電気株式会社 | 通信レート制御方法、送信装置および通信システム |
US8780858B2 (en) * | 2010-01-05 | 2014-07-15 | Qualcomm Incorporated | Controlling transmission control protocol (TCP) transmissions in handover |
US9288137B2 (en) * | 2010-05-09 | 2016-03-15 | Citrix Systems, Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
US8996657B2 (en) * | 2010-09-01 | 2015-03-31 | Canon Kabushiki Kaisha | Systems and methods for multiplexing network channels |
US20120054316A1 (en) | 2010-09-01 | 2012-03-01 | Canon Kabushiki Kaisha | Tcp multiplexing over a proxy |
US8400923B2 (en) * | 2010-10-15 | 2013-03-19 | Telefonaktiebolaget L M Ericsson (Publ) | Multipath transmission control protocol proxy |
US20120151087A1 (en) * | 2010-12-14 | 2012-06-14 | Nuvel, Inc. | System and method for providing a network proxy data tunnel |
US9215131B2 (en) * | 2012-06-29 | 2015-12-15 | Cisco Technology, Inc. | Methods for exchanging network management messages using UDP over HTTP protocol |
CN103023987A (zh) | 2012-11-27 | 2013-04-03 | 蓝盾信息安全技术股份有限公司 | 一种基于tcp连接的多路复用的方法 |
US9531846B2 (en) * | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US20150256493A1 (en) * | 2014-03-05 | 2015-09-10 | David Wilson | System and Method for Document Processing |
-
2014
- 2014-12-26 US US14/583,337 patent/US9923677B2/en active Active
-
2015
- 2015-11-17 DE DE102015119893.2A patent/DE102015119893B4/de active Active
- 2015-11-24 JP JP2015228864A patent/JP6318453B2/ja active Active
- 2015-11-26 CN CN201511036053.XA patent/CN105743812B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
DE102015119893B4 (de) | 2021-11-18 |
CN105743812B (zh) | 2019-08-27 |
US9923677B2 (en) | 2018-03-20 |
CN105743812A (zh) | 2016-07-06 |
JP2016127597A (ja) | 2016-07-11 |
DE102015119893A1 (de) | 2016-06-30 |
US20160191672A1 (en) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6318453B2 (ja) | 単一接続上での多くのクライアントストリームの多重化 | |
CN108476208B (zh) | 多路径传输设计 | |
US8396954B2 (en) | Routing and service performance management in an application acceleration environment | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
CN106293957B (zh) | 内容中心网络中的灵活命令和控制 | |
US9438701B2 (en) | Systems and methods for a SPDY to HTTP gateway | |
US7970951B2 (en) | Method and system for media-based data transfer | |
TW201215037A (en) | Switch system, switch control method, and non-transitory computer readable storage medium | |
US9998373B2 (en) | Data routing acceleration | |
EP3225014A1 (en) | Source ip address transparency systems and methods | |
JP2016521501A (ja) | ブロードキャスティングシステムにおける動的キュー管理方法及び装置 | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
WO2012121098A1 (ja) | ネットワークシステム、パケット処理方法、及び記憶媒体 | |
US10298494B2 (en) | Reducing short-packet overhead in computer clusters | |
US9847929B2 (en) | Cluster and forwarding method | |
EP3275139B1 (en) | Technologies for network packet pacing during segmentation operations | |
US9531629B2 (en) | Fibre channel over Ethernet switch system | |
US20050195851A1 (en) | System, apparatus and method of aggregating TCP-offloaded adapters | |
US10148576B2 (en) | Network processing unit (NPU) integrated layer 2 network device for layer 3 offloading | |
US10897488B1 (en) | Multiplexing traffic from multiple network namespaces to a single listener in a stream-based server application | |
WO2016079626A1 (en) | Reducing short-packet overhead in computer clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170920 |
|
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: 20180306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180316 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6318453 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |