US8514865B2
Expired / Lapsed
US
⏱️ 0.0 years remaining
Assigning WAN links to subflows based on WAN link characteristics and application preferences
Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 2004-04-30
•
Granted: 2013-08-20
•
Expires: 2024-04-30
Abstract
Abstract WAN link preferences for subflows of an application flow are determined. The characteristics of WAN links operable to transmit the subflows are also determined. The WAN link preferences are compared to the WAN link characteristics, and the subflows are assigned to the WAN links based on the comparison.
Inventors
- 👤 Puneet Sharma
- 👤 Sung-Ju Lee
- 👤 John T. Brassil
- 👤 Kang G. Shin
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-24 20:37
CPC Classifications
H; H04; H04L; H04L12/00; H04L12/28; H04L12/2854; H04L12/2856; H04L12/2869; H04L12/287; H04L12/2874; H04L12/54; H04L12/56; H04L12/5691; H04L12/5692; H04L47/00; H04L47/10; H04L47/12; H04L47/125; H04L47/70; H04L47/80; H04L47/803; H04L2212/00
Claims Analysis
Total Claims: 39
Claim 1
Independent Claim
254 words
A method of assigning subflows of an application flow to a plurality of communication links, the method comprising: receiving a highest priority application flow to be transmitted to a first device in a network; dividing the highest priority application flow into highest priority application subflows; determining communication link preferences for the highest priority application subflows; determining characteristics of communication links operable to transmit the highest priority application subflows; comparing the communication link preferences to the communication link characteristics; selecting a set of communication links based on the comparison, wherein the set of communication links is connected to a plurality of devices in the network that contains the first device; assigning the highest priority application subflows to the selected set of communication links to transmit the highest priority application subflows to the first device over the selected set of communication links; receiving a next highest priority application flow; dividing the next highest priority application flow into next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to communication link characteristics of communication links operable to transmit the next highest priority application subflows; selecting a next set of communication links based on the comparison; and assigning the next highest priority application subflows to the next set of communication links wherein the next highest priority application subflows are to be transmitted to the first device in the network on the next set of communication links.
Claim 2
Independent Claim
254 words
A method of assigning subflows of an application flow to a plurality of communication links, the method comprising: receiving a highest priority application flow to be transmitted to a first device in a network; dividing the highest priority application flow into highest priority application subflows; determining communication link preferences for the highest priority application subflows; determining characteristics of communication links operable to transmit the highest priority application subflows; comparing the communication link preferences to the communication link characteristics; selecting a set of communication links based on the comparison, wherein the set of communication links is connected to a plurality of devices in the network that contains the first device; assigning the highest priority application subflows to the selected set of communication links to transmit the highest priority application subflows to the first device over the selected set of communication links; receiving a next highest priority application flow; dividing the next highest priority application flow into next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to communication link characteristics of communication links operable to transmit the next highest priority application subflows; selecting a next set of communication links based on the comparison; and assigning the next highest priority application subflows to the next set of communication links wherein the next highest priority application subflows are to be transmitted to the first device in the network on the next set of communication links.
Claim 3
Dependent Claim
20 words
The method of claim 1 , comprising: transmitting each subflow of the highest priority flow on the assigned communication link.
Claim 4
Dependent Claim
32 words
The method of claim 1 , wherein determining communication link preferences comprises: identifying an application associated with the highest priority application flow; and determining communication link preferences based on the identified application.
Claim 5
Dependent Claim
22 words
The method of claim 3 , wherein the communication link preferences comprise communication link preferences for each highest priority application flow subflow.
Claim 6
Dependent Claim
57 words
The method of claim 3 , comprising: prioritizing the highest priority application subflows based on the application; and wherein assigning the highest priority application subflows to the selected set of communication links comprises assigning a highest priority subflow to a communication link having determined characteristics that best match the communication link preferences for the highest priority subflow.
Claim 7
Dependent Claim
130 words
The method of claim 5 , wherein assigning the highest priority application subflows to the selected set of communication links comprises: determining whether any bandwidth on the communication link assigned to the highest priority subflow is available; using a scheduling algorithm to schedule transmission of packets for the highest priority subflow and a next highest priority subflow on the communication link assigned to the highest priority subflow in response to determining that bandwidth on the communication link assigned to the highest priority communication link is available; and identifying a best match communication link, not including the communication link assigned to the highest priority subflow, for the next highest priority subflow in response to determining that bandwidth on the communication link assigned to the highest priority communication link is not available.
Claim 8
Dependent Claim
40 words
The method of claim 1 , wherein determining communication link characteristics of communication links operable to transmit the highest priority application subflows comprises: measuring the communication link characteristics of the communication links operable to transmit the highest priority application subflows.
Claim 9
Dependent Claim
27 words
The method of claim 1 , dividing the highest priority application flow into subflows comprises: demultiplexing the highest priority application flow into the highest priority application subflows.
Claim 10
Dependent Claim
60 words
The method of claim 1 , comprising: identifying at least two sets of communication links operable to transmit the highest priority subflows to the first device in the network; estimating a throughput of each set of communication links; and selecting one of the at least two sets of communication links having a greater throughput to transmit the highest priority subflows.
Claim 11
Dependent Claim
34 words
The method of claim 9 , wherein estimating a throughput of each set of communication links comprises: estimating the throughput based on at least one of round-trip time, bandwidth, loss probabilities, and packet lengths.
Claim 12
Dependent Claim
34 words
The method of claim 10 , wherein estimating a throughput of each set of communication links comprises: estimating the throughput based on at least one of transmission delay for each link and remultiplexing delay.
Claim 13
Independent Claim
250 words
A method of striping application flows across a plurality of communication links, the method comprising: receiving application flows; prioritizing the application flows; selecting a highest priority application flow to be transmitted to a first device in the network; dividing the highest priority application flow into highest priority application subflows; determining communication link preferences for each of the highest priority application subflows; determining communication link characteristics for the plurality of communication links; comparing the communication link preferences to the communication link characteristics; selecting a first set of communication links based on the comparison, wherein the first set of communication links is connected to a plurality of devices in the network that contains the first device; assigning the subflows to the first set of communication links to transmit the highest priority application subflows to the first device over the first set of communication links; selecting a next highest priority application flow of the prioritized application flows; dividing the next highest priority application flow into a next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to the communication link characteristics; selecting a next set of communication links based on the comparison; and assigning the next highest priority application to the next set of communication links wherein the next highest priority application subflows are to be transmitted to the first device in the network on the next set of communication links.
Claim 14
Independent Claim
250 words
A method of striping application flows across a plurality of communication links, the method comprising: receiving application flows; prioritizing the application flows; selecting a highest priority application flow to be transmitted to a first device in the network; dividing the highest priority application flow into highest priority application subflows; determining communication link preferences for each of the highest priority application subflows; determining communication link characteristics for the plurality of communication links; comparing the communication link preferences to the communication link characteristics; selecting a first set of communication links based on the comparison, wherein the first set of communication links is connected to a plurality of devices in the network that contains the first device; assigning the subflows to the first set of communication links to transmit the highest priority application subflows to the first device over the first set of communication links; selecting a next highest priority application flow of the prioritized application flows; dividing the next highest priority application flow into a next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to the communication link characteristics; selecting a next set of communication links based on the comparison; and assigning the next highest priority application to the next set of communication links wherein the next highest priority application subflows are to be transmitted to the first device in the network on the next set of communication links.
Claim 15
Dependent Claim
18 words
The method of claim 12 , comprising: transmitting each highest priority application subflow on the assigned communication link.
Claim 16
Dependent Claim
48 words
The method of claim 12 , wherein determining communication link preferences for each of the highest priority application subflows comprises: identifying an application associated with the highest priority application flow; and determining communication link preferences for each of the highest priority application subflows based on the identified application.
Claim 17
Dependent Claim
57 words
The method of claim 14 , comprising: prioritizing the highest priority application subflows based on the application; and wherein assigning the highest priority application subflows to the selected set of communication links comprises assigning a highest priority subflow to a communication link having determined characteristics that best match the communication link preferences for the highest priority subflow.
Claim 18
Independent Claim
204 words
An apparatus comprising: a processor to prioritize application flows, determine communication link preferences for subflows of a highest priority application flow and subflows of a next highest application flow of the prioritized flows, determine communication link characteristics of a set of communication links for each of the highest priority application subflows and the next highest priority application subflows; an inverse multiplexer to receive the highest priority application flow to be transmitted in a network, divide the highest priority application flow into the highest priority application subflows wherein the highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the highest priority application subflows, and receive the next highest priority application flow to be transmitted in the network, divide the next highest priority application flow into the next highest priority application subflows wherein the next highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the next highest priority application subflows; and an interface to transmit the highest priority application subflows and the next highest priority application subflows in the network on the corresponding assigned communication links.
Claim 19
Independent Claim
204 words
An apparatus comprising: a processor to prioritize application flows, determine communication link preferences for subflows of a highest priority application flow and subflows of a next highest application flow of the prioritized flows, determine communication link characteristics of a set of communication links for each of the highest priority application subflows and the next highest priority application subflows; an inverse multiplexer to receive the highest priority application flow to be transmitted in a network, divide the highest priority application flow into the highest priority application subflows wherein the highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the highest priority application subflows, and receive the next highest priority application flow to be transmitted in the network, divide the next highest priority application flow into the next highest priority application subflows wherein the next highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the next highest priority application subflows; and an interface to transmit the highest priority application subflows and the next highest priority application subflows in the network on the corresponding assigned communication links.
Claim 20
Dependent Claim
49 words
The apparatus of claim 16 , comprising: an application preference storage unit for storing communication link preferences associated with a plurality of applications, wherein the processor is operable to retrieve the communication link preferences for the highest priority and next highest priority application flows from the application storage unit.
Claim 21
Dependent Claim
61 words
The apparatus of claim 16 , comprising: a link characteristic storage unit to store communication link characteristics for the set of communication links, wherein the processor is operable to retrieve the communication link characteristics of the set of communication links for each of the highest priority application subflows and the next highest priority application subflows from the link characteristic storage unit.
Claim 22
Dependent Claim
36 words
The apparatus of claim 16 , comprising: a sensor to measure the communication link characteristics of the set of communication links for each of the highest priority application subflows and the next highest priority application subflows.
Claim 23
Dependent Claim
35 words
The apparatus of claim 16 , wherein the communication link preferences of the subflows of the highest priority application flow and the next highest application subflows are associated with an application of the application flow.
Claim 24
Dependent Claim
233 words
A non-transitory computer readable medium storing machine readable instructions that when executed by a computer cause the computer to: divide a highest priority application flow into highest priority application subflows, wherein the application flow is to be transmitted in a network; determine communication link preferences for the highest priority application subflows; determine characteristics of communication links operable to transmit the highest priority application subflows; compare the determined communication link preferences to the determined communication link characteristics; select a set of communication links based on the comparison, wherein the set of communication links is connected to a plurality of devices in the network; and the highest priority application subflows to the selected set of communication links to transmit the subflows to the first device over the selected set of communication links; dividing a next highest priority application flow into next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to communication link characteristics of communication links operable to transmit the next highest priority application subflows; selecting a next set of communication links based on the comparison; and assigning the next highest priority application subflows to the next set of communication links wherein the next highest priority application subflows are to be transmitted in the network on the next set of communication links.
Claim 25
Dependent Claim
233 words
A non-transitory computer readable medium storing machine readable instructions that when executed by a computer cause the computer to: divide a highest priority application flow into highest priority application subflows, wherein the application flow is to be transmitted in a network; determine communication link preferences for the highest priority application subflows; determine characteristics of communication links operable to transmit the highest priority application subflows; compare the determined communication link preferences to the determined communication link characteristics; select a set of communication links based on the comparison, wherein the set of communication links is connected to a plurality of devices in the network; and the highest priority application subflows to the selected set of communication links to transmit the subflows to the first device over the selected set of communication links; dividing a next highest priority application flow into next highest priority application subflows; determining communication link preferences for each of the next highest priority application subflows; comparing the communication link preferences for each of the next highest priority application subflows to communication link characteristics of communication links operable to transmit the next highest priority application subflows; selecting a next set of communication links based on the comparison; and assigning the next highest priority application subflows to the next set of communication links wherein the next highest priority application subflows are to be transmitted in the network on the next set of communication links.
Claim 26
Dependent Claim
52 words
The non-transitory computer readable medium of claim 21 , wherein the machine readable instructions to determine communication link preferences comprises machine readable instructions to: identify a highest priority application for the highest priority application flow; and determine the communication link preferences for the highest priority application subflows based on the identified application.
Claim 27
Dependent Claim
53 words
The non-transitory computer readable medium of claim 22 , wherein the machine readable instructions executable to: prioritize the highest priority application subflows based on the highest priority application; and assign a highest priority subflow to a communication link having determined characteristics that best match the communication link preferences for the highest priority subflow.
Claim 28
Dependent Claim
68 words
The non-transitory computer readable medium of claim 21 , wherein the machine readable instructions are executable to: identify at least two sets of communication links operable to transmit the highest priority application subflows in the network; estimate a throughput of each set of communication links; and select one of the at least two sets of communication links having a greater throughput to transmit the highest priority application subflows.
Claim 29
Dependent Claim
31 words
The non-transitory computer readable medium of claim 21 , wherein the communication link preferences for the highest priority application subflows are associated with an application of the highest priority application flow.
Claim 30
Independent Claim
215 words
A method of transmitting an application flow across a communication, the method comprising: receiving a highest application flow to be transmitted to a first device in a network; dividing the highest application flow into highest priority application subflows; assigning the highest priority application subflows to communication links based on communication link preferences for the highest priority application subflows and based on characteristics of the communication links, wherein the communication links are connected to a plurality of devices in the network that contains the first device; encapsulating packets generated from the subflows with a general routing encapsulation (GRE) header; transmitting the packets to the first device in the network on the assigned communication links; receiving a next highest application flow to be transmitted to the first device in the network; dividing the next highest application flow into next highest priority application subflows; assigning the next highest priority application subflows to communication links based on communication link preferences for the next highest priority application subflows and based on characteristics of the communication links; encapsulating packets generated from the next highest priority application subflows with the GRE header; and transmitting the packets for the next highest priority application subflows to the first device in the network on the assigned communication links for the next highest priority application subflows.
Claim 31
Independent Claim
215 words
A method of transmitting an application flow across a communication, the method comprising: receiving a highest application flow to be transmitted to a first device in a network; dividing the highest application flow into highest priority application subflows; assigning the highest priority application subflows to communication links based on communication link preferences for the highest priority application subflows and based on characteristics of the communication links, wherein the communication links are connected to a plurality of devices in the network that contains the first device; encapsulating packets generated from the subflows with a general routing encapsulation (GRE) header; transmitting the packets to the first device in the network on the assigned communication links; receiving a next highest application flow to be transmitted to the first device in the network; dividing the next highest application flow into next highest priority application subflows; assigning the next highest priority application subflows to communication links based on communication link preferences for the next highest priority application subflows and based on characteristics of the communication links; encapsulating packets generated from the next highest priority application subflows with the GRE header; and transmitting the packets for the next highest priority application subflows to the first device in the network on the assigned communication links for the next highest priority application subflows.
Claim 32
Dependent Claim
36 words
The method of claim 26 , wherein assigning the highest priority application subflows comprises: determining the communication link preferences for the highest priority application subflows based on an application associated with the highest priority application subflows.
Claim 33
Dependent Claim
41 words
The method of claim 26 , wherein assigning the highest priority application subflows comprises: prioritizing the highest priority application subflows; and assigning the highest priority application subflows to the communication links based on the priorities of the highest priority application subflows.
Claim 34
Dependent Claim
54 words
The method of claim 26 , wherein transmitting the packets for the highest priority application subflows on the assigned communication links comprises: transmitting the packets for the highest priority application subflows to the first device in the network via GRE tunnels, the GRE tunnels including the communication links for the highest priority application subflows.
Claim 35
Independent Claim
215 words
An apparatus comprising: a processor to prioritize application flows, determine communication link preferences for subflows of a highest priority application flow and subflows of a next highest application flow of the prioritized flows, determine communication link characteristics of a set of communication links for each of the highest priority application subflows and the next highest priority application subflows; an inverse multiplexer to receive the highest priority application flow to be transmitted in a network, divide the highest priority application flow into the highest priority application subflows wherein the highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the highest priority application subflows, and receive the next highest priority application flow to be transmitted in the network, divide the next highest priority application flow into the next highest priority application subflows wherein the next highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the next highest priority application subflows; and a packet generator generating packets for the highest priority application subflows and the next highest priority application subflows and encapsulating the packets with a general routing encapsulation (GRE) header for transmission on the corresponding communication links.
Claim 36
Independent Claim
215 words
An apparatus comprising: a processor to prioritize application flows, determine communication link preferences for subflows of a highest priority application flow and subflows of a next highest application flow of the prioritized flows, determine communication link characteristics of a set of communication links for each of the highest priority application subflows and the next highest priority application subflows; an inverse multiplexer to receive the highest priority application flow to be transmitted in a network, divide the highest priority application flow into the highest priority application subflows wherein the highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the highest priority application subflows, and receive the next highest priority application flow to be transmitted in the network, divide the next highest priority application flow into the next highest priority application subflows wherein the next highest priority application subflows are assigned to the set of communication links having communication link characteristics that best match the communication link preferences of the next highest priority application subflows; and a packet generator generating packets for the highest priority application subflows and the next highest priority application subflows and encapsulating the packets with a general routing encapsulation (GRE) header for transmission on the corresponding communication links.
Claim 37
Dependent Claim
27 words
The apparatus of claim 30 , comprising: a transmitter transmitting the highest priority application subflows and the next highest priority application subflows on the assigned communication links.
Claim 38
Dependent Claim
41 words
The apparatus of claim 30 , wherein the processor is to retrieve at least one of the communication link preferences and the communication link characteristics for the highest priority application subflows and the next highest priority application subflows from a database.
Claim 39
Dependent Claim
26 words
The apparatus of claim 30 , wherein the apparatus is located at one of a content provider, an Internet service provider, and a third-party service provider.
References Cited (Backward Citations)
WO2002045013A2
Cited
US20040073694A1
Cited
US20030147408A1
Cited
US20020186661A1
Cited
EP1328091A1
Cited
US20030189932A1
Cited
EP1359720A1
Cited
US20030223395A1
Cited
US20040042460A1
Cited
US20040001493A1
Cited
US20040184483A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2016-08-19 | 2017-02-18 | 2017-08-20 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2020-08-19 | 2021-02-18 | 2021-08-20 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2024-08-19 | 2025-02-18 | 2025-08-20 | $7700.00 | Window Closed / Lapsed |