IP Library Granted Patent US 8,885,632
Granted Patent B2
US 8,885,632 · App. 11/498,491 · Granted Nov 11, 2014

Communications scheduler

Inventors: David Anthony Hughes (Los Altos Hills, CA); Balaji Balasubramanian (San Jose, CA); Danny Kwok (Los Altos, CA)
Assignee: Silver Peak Systems, Inc.
H04L45/00H04L47/24H04L47/22H04L43/0894
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,885,632
App. No.
11/498,491
Granted
Nov 11, 2014
Kind
B2
Abstract

A System for providing communications over a communications network includes a communications interface and processor. The communications interface communicates over the communications network. The processor directs a communications scheduler to determine at least one metric for a path within the communications network. The processor also selects a data flow for the path and determines whether to transmit a packet in the selected data flow based on the at least one metric. The processor then directs a communications protocol handler to generate the packet for the selected data flow.

Claims (30)

1. A system for providing network communications, the system comprising:

a TCP/IP stack module stored in memory and executed by a processor to:

receive application data in a data flow, inform a communications scheduler module that the data flow has data to be transmitted over a network, and generate at least one data packet for the data flow from the application data to be transmitted over the network, when directed by the communications scheduler module;

the communications scheduler module stored in memory and executed by the processor to:

determine the capacity of a path, select a suitable path, prioritize data flows for the selected path based on the TCP/IP stack module informing the communications scheduler module which data flows have data to be transmitted, select a data flow for the selected path, and direct the TCP/IP stack module to generate the at least one data packet for the data flow from the application data in the selected data flow, buffering of the at least one data packet from the application data not being required at the communications scheduler module; and

a communications interface module stored in memory and executed by the processor to transmit the at least one data packet for the data flow via the selected path at an optimal transmission rate, wherein the data flow is transmitted over the selected path without waiting for lost packets or acknowledgements to indicate network congestion.

2. The system of claim 1 , wherein the execution of the communications scheduler module to determine the capacity of the path includes determining a bandwidth estimate.

3. The system of claim 1 , the communications scheduler module is executable to determine whether a data flow has information to send prior to selecting the data flow for the path.

4. The system of claim 1 , wherein the communications scheduler module is executable to determine respective priorities of data flows and select the data flow based on the priorities and the capacity of the path.

5. The system of claim 4 , wherein the priorities are based on a fairness policy.

6. A method for providing network communications, the method comprising:

executing by a processor a TCP/IP stack module stored in memory to:

receive application data in a data flow, inform a communications scheduler module that the data flow has data to be transmitted over a network, and generate at least one data packet for the data flow from the application data to be transmitted over the network, when directed by the communications scheduler module;

executing by a processor the communications scheduler module stored in memory to:

determine the capacity of a path, select a suitable path, prioritize data flows for the selected path based on the TCP/IP stack module informing the communications scheduler module which data flows have data to be transmitted, select a data flow for the selected path, and direct the TCP/IP stack module to generate the at least one data packet for the data flow from the application data in the selected data flow, buffering of the at least one data packet from the application data not being required at the communications scheduler module; and

executing by a processor a communications interface module stored in memory to transmit the at least one data packet for data flow via the selected path at an optimal transmission rate, wherein the data flow is transmitted over the selected path without waiting for lost packets or acknowledgements to indicate network congestion.

7. The method of claim 6 , wherein executing the communications scheduler module to determine the capacity of the path includes determining a bandwidth estimate.

8. The method of claim 6 , further comprising executing the communications scheduler module to determine whether a data flow has information to send prior to selecting the data flow for the path.

9. The method of claim 6 , further comprising executing the communications scheduler module to determine respective priorities of data flows, wherein the data flow is selected based on the priorities and the capacity of the path.

10. The method of claim 9 , wherein the priorities are based on a fairness policy.

11. A non-transitory computer readable storage medium having a program embodied thereon, the program executable by a processor to perform a method for providing network communications, the method comprising:

executing a TCP/IP stack module stored in memory to:

receive application data in a data flow, inform a communications scheduler module that the data flow has data to be transmitted over a network, and generate at least one data packet for the data flow from the application data to be transmitted over the network, when directed by the communications scheduler module;

executing the communications scheduler module stored in memory to:

determine the capacity of a path, select a suitable path, prioritize data flows for the selected path based on the TCP/IP stack module informing the communications scheduler module which data flows have data to be transmitted, select a data flow for the selected path, and direct the TCP/IP stack module to generate the at least one data packet for the data flow from the application data in the selected flow, buffering of the at least one data packet from the application data not being required at the communications scheduler module; and

executing a communications interface module stored in memory to transmit the at least one data packet for data flow via the selected path at an optimal transmission rate, wherein the data flow is transmitted over the selected path without waiting for lost packets or acknowledgements to indicate network congestion.

12. The computer readable storage medium of claim 11 , wherein executing the communications scheduler module to determine the capacity of the path includes determining a bandwidth estimate.

13. The computer readable storage medium of claim 11 , wherein the method further comprises executing the communications scheduler module to determine whether a data flow has information to send prior to the selection of the data flow for the path.

14. The computer readable storage medium of claim 11 , wherein the method further comprises executing the communications scheduler module to determine respective priorities of data flows, wherein the data flow is selected based on the priorities and the capacity of the path.

15. The computer readable storage medium of claim 14 , wherein the priorities are based on a fairness policy.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059670/0198 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058943/0413 →
RELEASE OF SECURITY INTEREST Recorded Sep 22, 2020
From: GOLUB CAPITAL LLC
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 053852/0231 →
SECURITY INTEREST Recorded Apr 16, 2019
From: SILVER PEAK SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 048921/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2006
From: HUGHES, DAVID ANTHONY; BALASUBRAMANIAN, BALAJI; KWOK, DANNY
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 018135/0245 →
Continuity (1)
Related Publication 20080031149A1 · Feb 7, 2008