IP Library Granted Patent US 8,310,928
Granted Patent B2
US 8,310,928 · App. 12/634,496 · Granted Nov 13, 2012

Flow control system architecture

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 8,310,928
App. No.
12/634,496
Granted
Nov 13, 2012
Kind
B2
Abstract

One or more flow control modules, implemented on various types of network topologies, provide a number of functionalities for controlling the flow of IP packets (such as TCP/IP packets) over a network connection. The flow control modules may be implemented within a sender and/or receiver or may be deployed into a network as a separate device without requiring significant additional resources.

Claims (35)

1. A method for more efficiently utilizing network bandwidth between two or more network devices, the method comprising the steps of:

receiving, by a first network device connected to a sender from a second network device connected to a receiver, a transmission rate limit;

transmitting, by the first network device via the second network device, data packets from the sender to the receiver at a first transmission rate based on the transmission rate limit from the second network device;

receiving, by the first network device from the second network device, an adjusted transmission rate limit, the adjusted transmission rate limit comprising the transmission rate limit adjusted, by the second network device, in response to allocating bandwidth by the second network device for communications between the second network device and a third network device different from the first network device; and

transmitting, by the first network device via the second network device, data packets from the sender to the receiver at a second transmission rate based on the adjusted transmission rate limit received from the second network device.

2. The method of claim 1 , further comprising receiving, by the first network device from the second network device, the transmission rate limit in response to a request sent by the first network device.

3. The method of claim 1 , further comprising receiving, by the first network device, the transmission rate limit determined based on bandwidth allocated by the second network device for communications between the first network device and the second network device.

4. The method of claim 1 , further comprising allocating, by one of the first or the second network device, network bandwidth for communications between the first network device and the second network device based on the adjusted transmission rate limit.

5. The method of claim 1 , further comprising buffering, by the first network device, data packets transmitted by the sender at a rate overrunning the adjusted transmission rate limit.

6. The method of claim 1 , further comprising adjusting, by the second network device, the transmission rate limit in response to bandwidth allocated by the second network device for a plurality of connections between the second network device and a plurality network devices.

7. The method of claim 1 , further comprising transmitting, by the second network device to the first network device, one of the transmission rate limit or the adjusted transmission rate limit via an acknowledgement packet.

8. The method of claim 1 , further comprising:

receiving, by the second network device from the first network device, an estimation of a round trip time for communication between the first network device and the second network device; and

determining, by the second network device, the transmission rate limit in response to the estimation of the round trip time.

9. The method of claim 1 , further comprising waiting, by the second network device, to receive a confirmation that the first network device is transmitting the data packets from the sender to the receiver at the second transmission rate.

10. The method of claim 9 , further comprising transmitting, by the second network device to the third network device, a third transmission rate limit for communications between the second network device and the third network device in response to receiving the confirmation from the first network device.

11. A system for more efficiently utilizing network bandwidth between two or more network devices, the system comprising:

a first network device connected to a sender transmitting data packets from the sender to a receiver at a first transmission rate based on a transmission rate limit;

a second network device connected to the receiver adjusting the transmission rate limit in response to allocating bandwidth by the second network device for communications between the second network device and a third network device different from the first network device, and transmitting the adjusted transmission rate limit to the first network device;

wherein the first network device transmits via the second network device data packets from the sender to the receiver at a second transmission rate based on the adjusted transmission rate limit transmitted from the second network device.

12. The system of claim 11 , wherein the first network device receives from the second network device the transmission rate limit.

13. The system of claim 11 , wherein the first network device receives the transmission rate limit determined based on bandwidth allocated by the second network device for communications between the first network device and the second network device.

14. The system of claim 11 , wherein one of the first or the second network device allocates network bandwidth for communications between the first network device and the second network device based on the adjusted transmission rate limit.

15. The system of claim 11 , wherein the first network device buffers data packets transmitted by the sender at a rate overrunning the adjusted transmission rate limit.

16. The system of claim 11 , wherein the second network device adjusts the transmission rate limit in response to bandwidth allocated by the second network device for a plurality of connections between the second network device and a plurality network devices.

17. The system of claim 11 , wherein the second network device transmits to the first network device one of the transmission rate limit or the adjusted transmission rate limit via an acknowledgement packet.

18. The system of claim 11 , wherein the second network device receives from the first network device an estimation of a round trip time for communication between the first network device and the second network device and determines the transmission rate limit in response to the estimation of the round trip time.

19. The system of claim 11 , wherein the second network device waits to receive a confirmation that the first network device is transmitting the data packets from the sender to the receiver at the second transmission rate.

20. The system of claim 19 , wherein the second network device transmits to the third network device a third transmission rate limit for communications between the second network device and the third network device in response to receiving the confirmation from the first network device.

21. A method for more efficiently utilizing network bandwidth between two or more network devices, the method comprising the steps of:

transmitting, to a first network device connected to a sender by a second network device connected to a receiver, a transmission rate limit;

receiving, by the second network device via the first network device, data packets from the sender to the receiver at a first transmission rate based on the transmission rate limit transmitted to the first network device;

adjusting, by the second network device, the transmission rate limit in response to allocating bandwidth by the second network device for communications between the second network device and a third network device different from the first network device;

transmitting, by the second network device to the first network device, the adjusted transmission rate limit; and

receiving, by the second network device via the first network device, data packets from the sender to the receiver at a second transmission rate based on the adjusted transmission rate transmitted to the first network device.

Assignments (9)
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 →
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: 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 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 15, 2011
From: ORBITAL DATA CORPORATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 027392/0357 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2010
From: SAMUELS, ALLEN R.; SUTTER, PAUL G.
To: ORBITAL DATA CORPORATION
Reel/Frame 024204/0775 →
Continuity (4)
Continuation 10901952 · Jul 28, 2004
Continuation In Part 10696507 · Oct 29, 2003
Provisional Application 60490694 · Jul 29, 2003
Related Publication 20100103819A1 · Apr 29, 2010