IP Library Granted Patent US 9,071,526
Granted Patent B2
US 9,071,526 · App. 12/818,882 · Granted Jun 30, 2015

Systems and methods for platform rate limiting

Inventors: Roman Avdanin (Santa Clara, CA); Henk Bots (Santa Clara, CA); Ramanjaneyulu Y. Talla (Santa Clara, CA); Abhishek Chauhan (Santa Clara, CA); Rajiv Mirani (Santa Clara, CA)
Assignee: CITRIX SYSTEMS, INC.
H04L47/10H04L43/0894H04L47/20H04L47/215H04L47/2425H04L47/32H04L63/0272H04L63/102
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,071,526
App. No.
12/818,882
Granted
Jun 30, 2015
Kind
B2
Abstract

The present disclosure presents systems and methods for controlling network traffic traversing an intermediary device based on a license or a permit granted for the intermediary device. The systems and methods control a rate of a traffic of a device in accordance with a rate limit identified by a rate limiting license. A rate limiting manager of an intermediary device that processes network traffic between a plurality of clients and a plurality of servers, may identify presence of a rate limiting license that further identifies a performance level. The rate limiting manager may establish a rate limit based on the performance level of the rate limiting license. A throttler of the intermediary may control a rate of receiving network packets in accordance with the rate limit.

Claims (26)

1. A method for controlling a rate of a traffic of a device in accordance with a rate limit identified by a rate limiting license, the method comprising:

a) identifying, by a rate limiting manager of an intermediary device, a type of hardware platform and a presence of a file for validating a rate limiting license, the intermediary device processing network traffic between a plurality of clients and a plurality of servers, the rate limiting license comprising content identifying a particular performance level from a plurality of performance levels supported by the intermediary device, the particular performance level identifying a predetermined set of performance level settings comprising a rate limit;

b) establishing, by the rate limiting manager based on the type of hardware platform and the performance level, the rate limit obtained from the predetermined performance level settings identified by the particular performance level identified by the rate limiting license; and

c) controlling, by a throttler of the intermediary device, a rate of receiving network packets in accordance with the rate limit.

2. The method of claim 1 , wherein step (a) further comprises identifying, by the rate limiting manager, the rate limiting license is not present, and wherein step (b) comprises establishing a set of one or more rate limit parameters for the rate limit for a lower performance level.

3. The method of claim 1 , wherein step (b) further comprises establishing, by the rate limiting manager, a maximum size of a token bucket in milliseconds obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

4. The method of claim 3 , wherein step (c) further comprises receiving, by the throttler, a network packet, determining that the token bucket has reached the maximum size and discarding the network packet in response to the determination.

5. The method of claim 1 , wherein step (b) further comprises establishing, by the rate limiting manager, a throughput rate limit in bits per second obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

6. The method of claim 5 , wherein step (c) further comprises generating, by a token generator, a token for a token bucket at a rate specified by the throughput rate limit.

7. The method of claim 1 , wherein step (b) further comprises establishing, by the rate limiting manager, a packet rate in packets per second obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

8. The method of claim 7 , wherein step (c) further comprises receiving, by the throttler, a network packet having a number of bytes, and removing, by the throttler, a number of tokens from a token bucket equal to the number of bytes.

9. The method of claim 7 , wherein step (c) further comprises receiving, by the throttler, a network packet having a number of bytes, and determining, by the throttler, that a number of tokens in a token bucket is less than the number of bytes and not removing a token from the token bucket.

10. The method of claim 9 , further comprises providing, by the throttler, the network packet to an excess packet handler.

11. A system for controlling a rate of a traffic of a device in accordance with a rate limit identified by a rate limiting license, the system comprising:

a rate limiting manager of an intermediary device identifying a type of hardware platform and a presence of a file for validating a rate limiting license, the intermediary device processing network traffic between a plurality of clients and a plurality of servers, the rate limiting license comprising content identifying a particular performance level from a plurality of performance levels supported by the intermediary device, the particular performance level identifying a predetermined set of performance level settings comprising a rate limit;

the rate limiting manager establishing the rate limit based on the type of hardware platform and the performance level, the rate limit obtained from the predetermined performance level settings identified by the particular performance level identified by the rate limiting license; and

a throttler of the intermediary device controlling a rate of receiving network packets in accordance with the rate limit.

12. The system of claim 11 , further comprising the rate limiting manager identifying the rate limiting license is not present and establishing a set of one or more rate limit parameters for the rate limit for a lower performance level.

13. The system of claim 11 , further comprising the rate limiting manager establishing a maximum size of a token bucket in milliseconds obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

14. The system of claim 13 , further comprising the throttler receiving a network packet, determining that the token bucket has reached the maximum size and discarding the network packet in response to the determination.

15. The system of claim 11 , further comprising the rate limiting manager establishing a throughput rate limit in bits per second obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

16. The system of claim 15 , further comprising a token generator generating a token for a token bucket at a rate specified by the throughput rate limit.

17. The system of claim 11 , further comprising the rate limiting manager establishing a packet rate in packets per second obtained from the predetermined performance level settings identified by the performance level identified by the rate limiting license.

18. The system of claim 17 , further comprising the throttler receiving a network packet having a number of bytes and removing a number of tokens from a token bucket equal to the number of bytes.

19. The system of claim 17 , further comprising the throttler receiving a network packet having a number of bytes, and determining that a number of tokens in a token bucket is less than the number of bytes and not removing a token from the token bucket.

20. The system of claim 19 , further comprising the throttler providing the network packet to an excess packet handler.

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 →
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 →
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 Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
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 →
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 →
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 Jun 10, 2015
From: AVDANIN, ROMAN; BOTS, HENK; TALLA, RAMANJANEYULU Y.; CHAUHAN, ABHISHEK; MIRANI, RAJIV
To: CITRIX SYSTEMS, INC.
Reel/Frame 035879/0873 →
Continuity (2)
Provisional Application 61219264 · Jun 22, 2009
Related Publication 20100322071A1 · Dec 23, 2010