IP Library Granted Patent US 10,361,959
Granted Patent B2
US 10,361,959 · App. 15/160,985 · Granted Jul 23, 2019

Method and system for dynamic interleaving

Inventors: Christopher Raymond Koopmans (Menlo Park, CA); Frederick Alan Koopmans (Menlo Park, CA); Nicholas James Stavrakos (Sunnyvale, CA); Amalraj Antonysamy (Palo Alto, CA)
Assignee: Citrix Systems, Inc.
H04L47/24H04L67/28H04L67/32H04L67/42H04L69/14H04L69/166H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,361,959
App. No.
15/160,985
Granted
Jul 23, 2019
Kind
B2
Abstract

A network environment includes a client station coupled to a proxy server via a first network and one or more content servers coupled to the proxy server via a second network. A plurality of connections are established between the client station and the proxy server over the first network. Requests are dynamically interleaved over any of the connections to the proxy server by the client station. Content is retrieved for the requests from any of the content servers over the second network by the proxy server. Responses including retrieved content for respective requests are dynamically interleaved over any of the connections by the proxy server to the client station.

Claims (47)

1. A method performed by a client station computing device having one or more processors and a network interface, the method comprising:

preparing at least two request messages to be sent over a single persistent connection between the client station computing device and a server device, each of the at least two request messages comprising one or more packets including:

a body, and

a first unique identifier that associates the request message with any corresponding response message including one or more packets having a value identical to the first unique identifier;

transmitting, via the network interface, the at least two request messages over the single persistent connection; and

receiving a response message over the single persistent connection, the response message comprising one or more packets including a body and a second unique identifier that is evaluated to one or more identifiers in a set of unique identifiers.

2. The method of claim 1 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that content for the request message has higher priority than content for at least another request message.

3. The method of claim 1 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that the body is segmented based on chunked encoding.

4. The method of claim 1 , further comprising:

storing, in the set of unique identifiers, the first unique identifier.

5. The method of claim 4 , further comprising:

if the second unique identifier of the response message matches the first unique identifier of the request message, associating the response message with the request message.

6. The method of claim 1 , further comprising

prior to receiving any corresponding response message including one or more packets having the value identical to the first unique identifier, receiving one or more other response messages over the single persistent connection, wherein each of the one or more other response messages comprise one or more packets having a unique identifier different from the first unique identifier.

7. A client station computing device having one or more processors, wherein the client station computing device is communicatively coupled to a server device and comprising:

a network interface to provide for transmission of at least two request messages over a persistent connection between the client station computing device and the server device, each of the at least two request messages comprising one or more packets including:

a body, and

a first unique identifier that associates the request message with any corresponding response message including one or more packets having a value identical to the first unique identifier; and

wherein the one or more processors of the client station computing device is configured to receive a response message over the persistent connection, the response message comprising one or more packets including a body and a second unique identifier that is evaluated to one or more identifiers in the set of unique identifiers.

8. The client station computing device of claim 7 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that content for the request message has higher priority than content for at least another request message.

9. The client station computing device of claim 7 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that the body is segmented based on chunked encoding.

10. The client station computing device of claim 7 , further comprising:

a memory to store, in a set of unique identifiers, the first unique identifier.

11. The client station computing device of claim 7 , wherein the one or more processors of the client station computing device is configured to associate the response message with the request message if the second unique identifier of the response message matches the first unique identifier of the request message.

12. The client station computing device of claim 7 , wherein the network interface is configured to:

prior to a receipt of any corresponding response message including one or more packets having the value identical to the first unique identifier, receive one or more other response messages over the persistent connection, wherein each of the one or more other response messages comprise one or more packets having a unique identifier different from the first unique identifier.

13. A non-transitory computer readable medium that stores a set of instructions that is executable by at least one processor of a client station computing device communicatively coupled to a server via a network to cause the client station computing device to perform a method, the method comprising:

preparing at least two request messages to be sent over a single persistent connection between the client station computing device and the server, each of the at least two request messages comprising one or more packets including:

a body, and

a first unique identifier that associates the request message with any corresponding response message including one or more packets having a value identical to the first unique identifier;

providing instructions for transmitting the prepared request message over the single persistent connection; and

providing instructions for receiving a response message over the single persistent connection, the response message comprising one or more packets including a body and a second unique identifier that is evaluated to one or more identifiers in a set of unique identifiers.

14. The non-transitory computer readable medium of claim 13 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that content for the request message has higher priority than content for at least another request message.

15. The non-transitory computer readable medium of claim 13 , wherein the one or more packets of each of the at least two request messages further include:

control information indicating that the body is segmented based on chunked encoding.

16. The non-transitory computer readable medium of claim 13 , wherein the set of instructions that is executable by the at least one processor of the client station computing device causes the client station computing device to further perform:

storing, in the set of unique identifiers, the first unique identifier.

17. The non-transitory computer readable medium of claim 16 , wherein the set of instructions that is executable by the at least one processor of the client station computing device causes the client station computing device to further perform:

if the second unique identifier of the response message matches the first unique identifier of the request message, associating the response message with the request message.

18. The non-transitory computer readable medium of claim 16 , wherein the set of instructions that is executable by the at least one processor of the client station computing device causes the client station computing device to further perform:

prior to receiving the response message, receiving one or more other response messages over the single persistent connection, wherein each of the one or more other response messages comprise one or more packets having a unique identifier different from the first unique identifier.

19. The non-transitory computer readable medium of claim 16 , wherein the first unique identifier is different from client station source information associated with the request message.

Assignments (5)
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 063126/0892 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2017
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 043240/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: KOOPMANS, CHRISTOPHER RAYMOND; KOOPMANS, FREDERICK ALAN; STAVRAKOS, NICHOLAS JAMES; ANTONYSAMY, AMALRAJ
To: BYTEMOBILE, INC.
Reel/Frame 043234/0433 →
Continuity (3)
Continuation 10871905 · Jun 17, 2004
Provisional Application 60479349 · Jun 17, 2003
Related Publication 20160269299A1 · Sep 15, 2016