Back to results
US 7,583,677 B1Granted
Dynamic flow-based multi-path load balancing with quality of service assurances
AssigneeJuniper Networks, Inc.
InventorsQingming Ma, Anupam A. Bharali
Life of this patent
Estimating the term…
Abstract
In general, the invention is directed to techniques of dynamically balancing network traffic load among multiple paths through a computer network. The techniques distribute and redistribute flows of network packets between different paths based on dynamically measured path bandwidth and loads of each flow. In distributing the flows, Quality of Service (QoS) bandwidth requirements of the flows may be maintained.
Claims36
A computer-implemented method comprising:
- dynamically assigning incoming flows of network packets to network paths in a plurality of network paths to a destination, wherein the incoming flows of network packets are assigned such that the network paths have sufficient available bandwidth to satisfy Quality of Service (QoS) bandwidth requirements associated with the incoming flows, and wherein the incoming flows are load balanced among the network paths;
- forwarding the network packets of the incoming flows along the assigned network paths such that the QoS bandwidth requirements associated with the flows are satisfied;
- selecting a flow assigned to one of the network paths when the network path does not have sufficient available bandwidth to satisfy a QoS bandwidth requirement associated with one of the flows assigned to the network path;
- un-assigning the selected flow from the network paths;
- and
- maintaining a queue structure to hold a hierarchy of network packet queues,
- wherein the queue structure comprises one or more destination queues to contain all unsent network packets awaiting transmission to a destination,
- wherein a destination queue in the queue structure for a destination comprises one or more path queues to contain all unsent network packets awaiting transmission to the destination via a network path,
- wherein a path queue in the queue structure for a network path comprises one or more QoS class queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to a QoS class, and
- wherein a QoS class queue in the queue structure of a QoS class comprises one or more flow queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to the QoS class and that belong to a network flow.
7 more elements
A network device comprising:
- an initial load balancer to dynamically assign incoming flows of network packets to network paths in a plurality of network paths to a destination, wherein the initial load balancer assigns the incoming flows such that the network paths have sufficient available bandwidth to satisfy Quality of Service (QoS) bandwidth requirements associated with the incoming flows, and wherein the incoming flows are load balanced among the network paths;
- a load rebalancer to select a flow assigned to one of the network paths when the network path does not have sufficient available bandwidth to satisfy a QoS bandwidth requirement associated with the flow and to un-assign the selected flow from the network path;
- a packet scheduler to send the network packets of the incoming flows to the destination via the assigned network paths, such that the QoS requirements associated with the flows are satisfied;
- and
- a queue structure to hold a hierarchy of network packet queues,
- wherein the queue structure comprises one or more destination queues to contain all unsent network packets awaiting transmission to a destination,
- wherein a destination queue in the queue structure for a destination comprises one or more path queues to contain all unsent network packets awaiting transmission to the destination via a network path,
- wherein a path queue in the queue structure for a network path comprises one or more QoS class queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to a QoS class, and
- wherein a QoS class queue in the queue structure of a QoS class comprises one or more flow queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to the QoS class and that belong to a network flow.
6 more elements
A computer-readable medium comprising instructions, the instructions causing a programmable processor to:
- dynamically assign incoming flows of network packets to network paths in a plurality of network paths to a destination, wherein the incoming flows of network packets are assigned such that the network paths have sufficient available bandwidth to satisfy Quality of Service (QoS) bandwidth requirements associated with the incoming flows, and wherein the incoming flows are load balanced among the network paths;
- forward the network packets of the incoming flows along the assigned network paths such that the QoS bandwidth requirements associated with the flows are satisfied;
- select a flow assigned to one of the network paths when the network path does not have sufficient available bandwidth to satisfy a QoS bandwidth requirement associated with a flow assigned to the network path;
- un-assign the selected flow from the network paths;
- and
- maintain a queue structure to hold a hierarchy of network packet queues,
- wherein the queue structure comprises one or more destination queues to contain all unsent network packets awaiting transmission to a destination,
- wherein a destination queue in the queue structure for a destination comprises one or more path queues to contain all unsent network packets awaiting transmission to the destination via a network path,
- wherein a path queue in the queue structure for a network path comprises one or more QoS class queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to a QoS class, and
- wherein a QoS class queue in the queue structure of a QoS class comprises one or more flow queues to contain all unsent network packets awaiting transmission to the destination via the network path that belong to the QoS class and that belong to a network flow.
7 more elements
Dependencies are inferred from the claim text.