IP Library Granted Patent US 9,397,951
Granted Patent B1
US 9,397,951 · App. 14/677,841 · Granted Jul 19, 2016

Quality of service using multiple flows

Inventor: David Anthony Hughes (Los Altos Hills, CA)
Assignee: Silver Peak Systems, Inc.
H04L47/2491H04L47/24
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,397,951
App. No.
14/677,841
Granted
Jul 19, 2016
Kind
B1
Abstract

A method, system, and computer program are provided for quality of service using multiple flows. At a first digital device, a plurality of inter-computer flows is established between the first digital device and a computer. A plurality of inter-device flows is also established between the first digital device and a second digital device via a communication network. At least one flow metric associated with each of the inter-device flows is determined, which may include, for example, a latency metric, a loss metric, and/or a re-ordering metric. According to various embodiments, flow metrics may form a basis for categorizing the inter-device flows. One or more preferred flows are selected based on the flow metrics. Finally, a packet to be sent to the second device is directed to one of the preferred flows.

Claims (48)

1. A method comprising:

establishing by a first digital device, a plurality of inter-computer flows between the first digital device and a first computer;

establishing by the first digital device, a plurality of inter-device flows between the first digital device and a second digital device, the first digital device in communication with the second digital device via a communication network, the first digital device and the second digital device overriding, at least in part, influence from performance and priorities associated with transferring packets across the communication network in establishing the plurality of inter-device flows;

receiving a data packet at the first digital device via at least one of the plurality of inter-computer flows;

determining at least one flow metric associated with each of the plurality of inter-device flows, wherein the at least one flow metric is iteratively determined;

classifying each of the plurality of inter-device flows based at least in part on the at least one flow metric;

selecting a preferred inter-device flow from the plurality of inter-device flows based at least in part on the classification of the inter-device flows;

amending header information on the data packet by adding additional header information, based at least in part on the selected preferred inter-device flow;

directing the amended data packet to be sent by the first digital device to the second digital device via the selected preferred inter-device flow without regard to communication network protocols;

restoring the data packet to its original form as received by the first digital device upon receipt by the second digital device; and

updating the classification of each of the plurality of inter-device flows based at least in part on the directed amended data packet sent by the first digital device to the second digital device via the selected preferred inter-device flow.

2. The method of claim 1 , wherein the updating the classification of each of the plurality of inter-device flows is based at least in part on updating at least one flow metric associated with each of the plurality of inter-device flows to determine currently preferred inter-device flows.

3. The method of claim 1 , further comprising terminating at least one inter-device flow and establishing at least one new inter-device flow in its place, based on the classification of each of the plurality of inter-device flows.

4. The method of claim 1 , wherein the selecting the preferred inter-device flow from the plurality of inter-device flows is further based on characteristics of the data packet to be directed.

5. The method of claim 1 , wherein determining the at least one flow metric comprises receiving one or more flow-health packets from the second digital device.

6. The method of claim 1 , wherein the at least one flow metric is determined, at least in part, from previously directed packets and previously received packets.

7. The method of claim 1 , wherein the at least one flow metric comprises a latency metric.

8. The method of claim 1 , wherein the at least one flow metric comprises a loss metric.

9. The method of claim 1 , wherein the at least one flow metric comprises a reordering metric.

10. The method of claim 1 , wherein the first digital device is a network memory digital device, a router, or a computer.

11. A system comprising:

a first digital device configured to:

establish a plurality of inter-computer flows between the first digital device and a first computer;

establish a plurality of inter-device flows between the first digital device and a second digital device, the first digital device in communication with the second digital device via a communication network, the first digital device and the second digital device overriding, at least in part, influence from performance and priorities associated with transferring packets across the communication network in establishing the plurality of inter-device flows;

receive a data packet at the first digital device via at least one of the plurality of inter-computer flows;

determine at least one flow metric associated with each of the plurality of inter-device flows, wherein the at least one flow metric is iteratively determined;

classify each of the plurality of inter-device flows based at least in part on the at least one flow metric;

select a preferred inter-device flow from the plurality of inter-device flows based at least in part on the classification of the inter-device flows;

amend header information on the data packet by adding additional header information, based at least in part on the selected preferred inter-device flow;

direct the amended data packet to be sent by the first digital device to the second digital device via the selected preferred inter-device flow without regard to communication network protocols;

restore the data packet to its original form as received by the first digital device upon receipt by the second digital device; and

update the classification of each of the plurality of inter-device flows based at least in part on the directed amended data packet sent by the first digital device to the second digital device via the selected preferred inter-device flow.

12. The system of claim 11 , wherein the first digital device is further configured to update the classification of each of the plurality of inter-device flows is based at least in part on updating at least one flow metric associated with each of the plurality of inter-device flows to determine currently preferred inter-device flows.

13. The system of claim 11 , wherein the first digital device is further configured to select the preferred inter-device flow from the plurality of inter-device flows based at least in part on characteristics of the data packet to be directed.

14. The system of claim 11 , wherein the first digital device is further configured to determine the at least one flow metric, at least in part, by receiving one or more flow-health packets from the second digital device.

15. The system of claim 11 , wherein the first digital device is further configured to terminate at least one inter-device flow and establish at least one new inter-device flow in its place, based on the classification of each of the plurality of inter-device flows.

16. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor for performing a method, the method comprising:

at a first digital device:

establishing a plurality of inter-computer flows between the first digital device and a first computer;

establishing a plurality of inter-device flows between the first digital device and a second digital device, the first digital device in communication with the second digital device via a communication network, the first digital device and the second digital device overriding, at least in part, influence from performance and priorities associated with transferring packets across the communication network in establishing the plurality of inter-device flows;

receiving a data packet at the first digital device via at least one of the plurality of inter-computer flows;

determining at least one flow metric associated with each of the plurality of inter-device flows, wherein the at least one flow metric is iteratively determined,

classifying each of the plurality of inter-device flows based at least in part on the at least one flow metric;

selecting a preferred inter-device flow from the plurality of inter-device flows based at least in part on the classification of the inter-device flows;

amending header information on the data packet by adding additional header information, based at least in part on the selected preferred inter-device flow;

directing the amended data packet to be sent by the first digital device to the second digital device via the selected preferred inter-device flow without regard to communication network protocols;

restoring the data packet to its original form as received by the first digital device upon receipt by the second digital device; and

updating the classification of each of the plurality of inter-device flows based at least in part on the directed amended data packet sent by the first digital device to the second digital device via the selected preferred inter-device flow.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059684/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058985/0301 →
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 Apr 6, 2016
From: HUGHES, DAVID ANTHONY
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 038211/0070 →
Continuity (2)
Continuation 14248188 · Apr 8, 2014
Continuation 12217440 · Jul 3, 2008