IP Library Granted Patent US 11,627,091
Granted Patent B2
US 11,627,091 · App. 16/588,638 · Granted Apr 11, 2023

Systems and methods for managing streams of packets via intermediary devices

Inventors: Georgy Momchilov (Parkland, FL); Derek Thorslund (San Jose, CA); Daljit Singh (San Jose, CA); Vladimir Vysotsky (Fremont, CA)
Assignee: CITRIX SYSTEMS INC.
H04L47/2441H04L47/2458H04L47/2475H04L47/31H04L47/746H04L47/76H04L47/781H04L47/805H04L47/822H04L69/22H04L63/166
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 11,627,091
App. No.
16/588,638
Granted
Apr 11, 2023
Kind
B2
Abstract

Virtual application and desktop delivery may be optimized by supplying application metadata and user intent to the device between a client and a server hosting resources for the delivery. The data packets used to deliver the virtual application or desktop may be also tagged with references to the application. By supplying the metadata and tagging packets with the metadata, an intermediary network device may provide streams of data packets at the target QoS. In addition, the device may apply network resource allocation rules (e.g., firewalls and QoS configuration) for redirected content retrieved by the client out of band relative to a virtual channel such as the Internet. The network resource allocation rules may differ for different types of resources accessed. The device may also control a delivery agent on the server to modify communication sessions established through the virtual channels based on network conditions.

Claims (26)

1. A method comprising:

determining, by a network device intermediary between a client device and a server, network conditions on a plurality of virtual channels, the network device supporting the plurality of virtual channels between the client device and an application provided by a delivery agent of the server, the plurality of virtual channels to communicate streams of packets for the application;

transmitting, by the network device to the delivery agent, metadata indicative of the determined network conditions on the plurality of virtual channels for the application; and

causing, by the network device, the delivery agent of the server to update a packet transmission configuration to change a graphics mode for communications on at least one of the plurality of virtual channels from a first mode to a second mode that is more efficient than the first mode for the application provided by the delivery agent of the server, the update of the packet transmission configuration being in response to receipt, by the delivery agent, of the metadata from the network device, wherein the first mode includes a H.264 graphics mode and the second mode includes a Thinwire+ graphics mode.

2. The method of claim 1 , wherein updating the packet transmission configuration comprises changing an allocation of network resources to apply to the plurality of virtual channels.

3. The method of claim 2 , wherein the network conditions comprise a reduction in bandwidth to the plurality of virtual channels, and wherein changing the allocation of network resources includes disabling a first virtual channel from the plurality of virtual channels.

4. The method of claim 3 , wherein the first virtual channel is selected from a list or priority-related order of virtual channels to disable.

5. The method of claim 2 , wherein changing the allocation of network resources includes applying a bandwidth cap to at least one of the plurality of virtual channels.

6. The method of claim 2 , wherein the network conditions comprise a link failure, and wherein changing the allocation of network resources includes disabling a first virtual channel from the plurality of virtual channels or reducing an allocation of bandwidth to the first virtual channel.

7. The method of claim 1 , wherein the network conditions comprise an increase in at least one of latency or packet loss to the plurality of virtual channels, and wherein updating the packet transmission configuration comprises changing at least one of the plurality of virtual channels from a first transmission mode to a second transmission mode that is more lossy than the first transmission mode.

8. A network device comprising:

at least one processor configured to:

determine network conditions on a plurality of virtual channels, the network device supporting the plurality of virtual channels between a client device and an application provided by a delivery agent of a server, the plurality of virtual channels to communicate streams of packets for the application;

transmit, to the delivery agent, metadata indicative of the determined network conditions on the plurality of virtual channels for the application; and

cause the delivery agent of the server to update a packet transmission configuration to change a graphics mode for communications on at least one of the plurality of virtual channels from a first mode to a second mode that is more efficient than the first mode for the application provided by the delivery agent of the server, the update of the packet transmission configuration being in response to receipt, by the delivery agent, of the metadata from the network device, wherein the first mode includes a H.264 graphics mode and the second mode includes a Thinwire+ graphics mode.

9. The network device of claim 8 , wherein updating the packet transmission configuration comprises changing an allocation of network resources to apply to the plurality of virtual channels.

10. The network device of claim 9 , wherein the network conditions comprise a reduction in bandwidth to the plurality of virtual channels, wherein changing the allocation of network resources includes disabling a first virtual channel from the plurality of virtual channels, and wherein the first virtual channel is selected from a list or priority-related order of virtual channels to disable.

11. The network device of claim 9 , wherein changing the allocation of network resources includes applying a bandwidth cap to at least one of the plurality of virtual channels.

12. The network device of claim 9 , wherein the network conditions comprise a link failure, and wherein changing the allocation of network resources includes disabling a first virtual channel from the plurality of virtual channels or reducing an allocation of bandwidth to the first virtual channel.

13. A non-transitory computer readable medium storing program instructions for causing one or more processors to:

determine network conditions on each of a plurality of virtual channels, the network device supporting the plurality of virtual channels between a client device and an application provided by a delivery agent of a server, the plurality of virtual channels to communicate streams of packets for the application;

transmit, to the delivery agent, metadata indicative of the determined network conditions on the plurality of virtual channels for the application; and

cause the delivery agent of the server to update a packet transmission configuration to change a graphics mode for communications on at least one of the plurality of virtual channels from a first mode to a second mode that is more efficient than the first mode for the application provided by the delivery agent of the server, the update of the packet transmission configuration being in response to receipt, by the delivery agent, of the metadata from the network device, wherein the first mode includes a H.264 graphics mode and the second mode includes a Thinwire+ graphics mode.

14. The non-transitory computer readable medium of claim 13 , wherein updating the packet transmission configuration comprises changing an allocation of network resources to apply to the plurality of virtual channels.

15. The method of claim 1 , wherein a packet communicated via at least one of the plurality of virtual channels is tagged with the metadata.

16. The method of claim 1 , wherein the delivery agent is configured to update the packet transmission configuration in accordance with a quality of service (QoS) configuration for the plurality of virtual channels for the application.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
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 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
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 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2019
From: MOMCHILOV, GEORGY; THORSLUND, DEREK; SINGH, DALJIT; VYSOTSKY, VLADIMIR
To: CITRIX SYSTEMS, INC.
Reel/Frame 050616/0298 →
Continuity (3)
Continuation 16588280 · Sep 30, 2019
Provisional Application 62850348 · May 20, 2019
Related Publication 20200374238A1 · Nov 26, 2020