IP Library Granted Patent US 9,246,822
Granted Patent B2
US 9,246,822 · App. 14/281,834 · Granted Jan 26, 2016

Methods and apparatus for using a layered gear to analyze and manage real-time network quality of service transmission for mobile devices on public networks

Inventors: Stephen D Vilke (Danville, CA); Rudy Willis (Clayton, CA); James Selvidge (Berkeley, CA); Paul Hinks (Larkspur, CA)
Assignee: Citrix Systems, Inc.
H04L47/196H04L41/142H04L43/04H04L47/25
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 9,246,822
App. No.
14/281,834
Granted
Jan 26, 2016
Kind
B2
Abstract

Methods for providing layered gear mechanism to enable optimal transmission of data packets includes identifying types of data that are scheduled for transmission over a network. Data packets are generated at different depths for a particular type of data identified for transmission, wherein the data packets are generated at a source. The data packets of different depths are transmitted in different layers over a network, to a destination, wherein each layer of data packets corresponds to a specific depth. Response for the data packets transmitted in each layer is collected from the network as the data packets progress along the network. The response is analyzed to identify network transmission characteristics for each layer. A depth is selected for transmitting subsequent data packets for the particular data type based on the network transmission characteristics obtained through the analysis.

Claims (47)

1. A method for providing layered gear mechanism to enable optimal transmission of data packets, comprising:

identifying types of data that are scheduled for transmission over a network;

generating data packets of different depths for a particular type of data identified for transmission, at a source;

transmitting the data packets of different depths in different layers over the network to a destination, each layer of data packets corresponding to a specific depth;

collecting response for the data packets transmitted in each layer, from the network, as the data packets progress along the network;

analyzing the collected response for the data packets transmitted in each layer to identify one or more network transmission characteristics of each layer, the one or more network transmission characteristics identifying one or more transmission metrics associated with each layer; and

selecting a specific one of the different depths for transmitting subsequent data packets for the particular type of data based on the analyzing,

wherein operations are performed by a processor.

2. The method of claim 1 , wherein the data packets are generated at each depth in accordance to compliance rule specified for the network, the compliance rule identifying one or more recipes for generating data packets for each type of data.

3. The method of claim 1 , further includes,

capturing data usage history for the particular type of data over time, the data usage history identifying changes to network transmission characteristics of each layer; and

adjusting the transmission of the data packets in the selected depth dynamically based on the changes to the network transmission characteristics.

4. The method of claim 1 , further includes,

monitoring system characteristics of the network over time, the monitoring identifying changes to system characteristics of the network; and

adjusting the transmission of the data packets in the selected depth dynamically based on the changes identified in the system characteristics.

5. The method of claim 4 , wherein changes to the system characteristics include changes to streaming tolerance established for the network.

6. The method of claim 1 , wherein the response is collected for each layer of the data packets, such that the response collected for a particular layer is of same depth as the data packets in the particular layer.

7. The method of claim 1 , wherein analyzing the collected response further includes,

determining input count of the data packets transmitted in each layer from the source to the destination over the network;

determining output count of the data packets in the respective layers returned in a response from the destination to the source; and

computing difference between the input count and the output count for each layer of the data packets transmitted over the network, the difference used in the identification of network transmission characteristics associated with each layer.

8. The method of claim 1 , wherein analyzing the collected response further includes,

determining input cadence and output cadence for a fractional linear combination of the data packets transmitted in each layer for a specific time of transmission; and

computing data packet differentials at each layer for the specific time by computing difference between the input cadence and the output cadence of the corresponding data packets in each layer of the fractional linear combination of data packets, the data packet differentials used in the identification of network transmission characteristics associated with each layer.

9. A method for providing layered gear mechanism to enable optimal transmission of data packets, comprising:

identifying a plurality of types of data that are scheduled for transmission over a network;

generating data packets for the plurality of types of data, at a source, wherein data packets for at least two types of data are generated at specific depth;

transmitting the data packets of the specific depths in different layers over the network to a destination, wherein each layer of data packets correspond to a specific type of data;

collecting response for the data packets transmitted in each layer, from the network, as the data packets progress along the network;

analyzing the collected response for the data packets transmitted in each layer to identify network transmission characteristics of each layer, the network transmission characteristics identifying transmission metrics associated with each layer; and

selecting one of the at least two types of data for transmitting at the specific depth based on the analyzing, so that subsequent data packets of the selected type of data are transmitted at the specific depth,

wherein operations are performed by a processor.

10. The method of claim 9 , wherein the data packets are generated at each depth in accordance to compliance rule specified for the network, the compliance rule identifying one or more recipes for generating data packets for each type of data and for each depth.

11. The method of claim 10 , further includes periodically cycling through the recipes for each depth within the compliance rules to calibrate the depth of the data packets in each layer.

12. The method of claim 9 , further includes periodically calibrating amount of data packets and the depth of the data packets that are transmitted in each layer based on network transmission characteristics.

13. The method of claim 9 , wherein the response data packets returned to the source for each layer is of the same depth as the data packets transmitted to the destination for the respective layer.

14. The method of claim 9 , wherein analyzing the collected response further includes,

determining input count of the data packets transmitted in each layer from the source to the destination over the network;

determining output count of the data packets in the respective layers returned in a response from the destination to the source; and

computing difference between the input count and the output count for each layer of the data packets transmitted over the network, the difference used in the identification of network transmission characteristics associated with each layer.

15. The method of claim 9 , wherein analyzing the collected response further includes,

determining input cadence of data packets in each layer leaving the source and output cadence for the response returning for each layer from the destination; and

evaluating the input cadence and the output cadence for each layer of transmission, the evaluation identifying deltas in the cadence for each layer, the deltas in the cadence from each layer used in the identification of network transmission characteristics associated with each layer.

16. The method of claim 15 , wherein the evaluation of the input and output cadences are done at end points of transmission.

17. The method of claim 15 , wherein the evaluation of the input and the output cadences are performed at different transmission points between the source and the destination.

18. The method of claim 15 , wherein the evaluation further includes generating a statistical model representing a real-time map of state of the transmission over the network for different time periods.

19. The method of claim 18 , wherein the statistical model is used in dynamically adjusting transmission of subsequent data packets in a particular layer based on the network transmission characteristics.

Assignments (8)
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 →
Continuity (4)
Continuation 13492804 · Jun 9, 2012
Continuation PCTUS2012041776 · Jun 8, 2012
Provisional Application 61494863 · Jun 8, 2011
Related Publication 20140254376A1 · Sep 11, 2014