Allocating network bandwidth
AssigneeTellabs Operations, Inc.
InventorsKent D. Benson, Robert B. Magill, Terry J. Hrabik, John B. Kenney
Life of this patent
Estimating the term…
Abstract
In allocating bandwidth to data for transfer through a network device, bandwidth is allocated to committed data traffic based on a guaranteed data transfer rate and a queue size of the network device, and bandwidth is allocated to uncommitted data traffic using a weighted maximum/minimum process. The weighted maximum/minimum process allocates bandwidth to the uncommitted data traffic in proportion to a weight associated with the uncommitted data traffic.
Claims92
A method of allocating bandwidth to committed and uncommitted data traffic flows for transfer through a network device, comprising:
- maintaining a queue size of a committed data traffic flow related to one or more committed data traffic flows for a virtual connection;
- maintaining a queue size of an uncommitted traffic flow queue related to one or more uncommitted data flows for the virtual connection;
- allocating bandwidth to a committed data traffic flow based on a guaranteed data transfer rate and the queue size of the committed data traffic flow in the network device;
- and
- allocating bandwidth to uncommitted data traffic flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to an amount of bandwidth needed by the uncommitted data traffic flow and determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A method of allocating bandwidth to data flows passing through a network device, each of the data flows having an associated weight, the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow, the method comprising:
- increasing an amount of bandwidth to the data flows in proportion to weights of the data flows until one port through the network device reaches a maximum value;
- freezing amounts of bandwidth allocated to data flows in the one port;
- and
- increasing an amount of bandwidth to all remaining data flows passing through the network device in proportion to weights of the remaining data flows.
A method of allocating bandwidth to data flows passing through a network device, comprising:
- allocating a predetermined amount of bandwidth to one or more of the data flows;
- and
- distributing remaining bandwidth to remaining data flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the remaining data flows in proportion to a weight associated with each remaining data flow, and the weight corresponding to an amount of bandwidth needed by a data flow and being determined based on a delay and an average rate requirement for each remaining data flow.
An apparatus for transferring data traffic flows through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- transfer a committed data traffic flow through the apparatus using a guaranteed bandwidth;
- determine an amount of bandwidth that was used during a previous data traffic flow transfer;
- and
- allocate bandwidth in the apparatus to uncommitted data traffic flows based on the amount of bandwidth that was used during the previous data traffic flow transfer.
A method of allocating bandwidth to data flows passing through a network device, comprising:
- determining a character of the data flows, the character corresponding to a probability of the data flow in using the bandwidth;
- and
- allocating bandwidth to the data flows in accordance with the character of the data flows, wherein the bandwidth is allocated to data flows according to which data flows have a highest probability of using the bandwidth.
A method of allocating bandwidth to data flows passing through a network device, comprising:
- allocating the bandwidth using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to an amount of bandwidth needed by the uncommitted data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A method of allocating bandwidth to data flows through a network device, comprising:
- allocating bandwidth to the data flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow;
- wherein an amount of bandwidth allocated to data flows passing through an input port of the network device is greater than an amount of data that can pass through the input port of the network device.
A method of allocating bandwidth to data flows passing through a network device, comprising:
- allocating bandwidth to data flows passing through input ports of the network device using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
A method of allocating bandwidth to data flows through a network device, comprising:
- allocating bandwidth to the data flows passing through output ports of the network device using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
An apparatus for allocating bandwidth to data traffic flows through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- maintain a queue size of a committed data traffic flow related to one or more committed data traffic flows for a virtual connection;
- maintain a queue size of the uncommitted traffic flow queue related to one or more uncommitted data flows for the virtual connection;
- allocate bandwidth to a committed data traffic flow based on a guaranteed data transfer rate and a queue size of the committed data traffic flow in the apparatus;
- and
- allocate bandwidth to uncommitted data traffic flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
An apparatus for allocating bandwidth to data flows passing through the apparatus, each of the data flows having an associated weight, the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- increase an amount of bandwidth to the data flows in proportion to the weights of the data flows until one port through the apparatus reaches a maximum value;
- freeze the amounts of bandwidth allocated to the data flows in the one port;
- and
- increase the amount of bandwidth to all the remaining data flows passing through the apparatus in proportion to the weights of the remaining data flows.
An apparatus for allocating bandwidth to data flows passing through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- allocate a predetermined amount of bandwidth to one or more of the data flows;
- and
- distribute remaining bandwidth to remaining data flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the remaining data flows in proportion to a weight associated with each remaining data flow, and the weight corresponding to an amount of bandwidth needed by a data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A apparatus for allocating bandwidth to data flows passing through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- determine a character of the data flows, the character corresponding to a probability of the data flow in using the bandwidth;
- and
- allocate bandwidth to the data flows in accordance with the character of the data flows;
- wherein the bandwidth is allocated to data flows according to which data flows have a highest probability of using the bandwidth.
An apparatus for allocating bandwidth to data flows passing through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- allocate the bandwidth using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
An apparatus for allocating bandwidth to data flows through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- allocate bandwidth to the data flows using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow;
- wherein an amount of bandwidth allocated to data flows passing through an input port of the apparatus is greater than an amount of data that can pass through the input port of the apparatus.
An apparatus for allocating bandwidth to data flows passing through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- allocate bandwidth to data flows passing through input ports of the apparatus using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
A method of transferring data traffic flows through a network device, comprising:
- transferring a committed data traffic flow through the network device using a guaranteed bandwidth;
- determining an amount of bandwidth that was used during a previous data traffic flow transfer;
- and
- allocating bandwidth in the network device to uncommitted data traffic flows based on the amount of bandwidth that was used during the previous data traffic flow transfer.
An apparatus for allocating bandwidth to data flows through the apparatus, the apparatus comprising a memory to store executable code and a processor to execute the code to:
- allocate bandwidth to the data flows passing through output ports of the apparatus using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for transferring data traffic flows through a network device, the computer program comprising instructions that cause a computer to:
- transfer a committed data traffic flow through the network device using a guaranteed bandwidth;
- determine an amount of bandwidth that was used during a previous data traffic flow transfer;
- and
- allocate bandwidth in the network device to uncommitted data traffic flows based on the amount of bandwidth that was used during the previous data traffic flow transfer.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows through a network device, the computer program comprising instructions that cause the computer to:
- allocate bandwidth to the data flows passing through output ports of the network device using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows passing through a network device, the computer program comprising instructions that cause the computer to:
- allocate bandwidth to data flows passing through input ports of the network device using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows through a network device, the computer program comprising instructions that cause the computer to:
- allocate bandwidth to the data flows using a weighted max/min process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to a delay and an average rate requirement for each uncommitted data traffic flow;
- wherein an amount of bandwidth allocated to data flows passing through an input port of the network device is greater than an amount of data that can pass through the input port of the network device.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows passing through a network device, the computer program comprising instructions that cause the computer to:
- allocate the bandwidth using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for allocating bandwidth to data traffic flows for transfer through a network device, the computer program comprising instructions that cause a computer to:
- maintain a queue size of a committed data traffic flow related to one or more committed data traffic flows for a virtual connection;
- maintain a queue size of the uncommitted traffic flow queue related to one or more uncommitted data flows for the virtual connection;
- allocate bandwidth to a committed data traffic flow based on a guaranteed data transfer rate and a queue size of the committed data traffic flow in the network device;
- and
- allocate bandwidth to uncommitted data traffic flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the uncommitted data traffic flows in proportion to a weight associated with each uncommitted data traffic flow, and the weight corresponding to an amount of bandwidth needed by the uncommitted data traffic flow and determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows passing through a network device, each of the data flows having an associated weight, the weight corresponding to an amount of bandwidth needed by an uncommitted data traffic flow, the computer program comprising instructions that cause a computer to:
- increase an amount of bandwidth to the data flows in proportion to the weights of the data flows until one port through the network device reaches a maximum value;
- freeze the amounts of bandwidth allocated to the data flows in the one port;
- and
- increase the amount of bandwidth to all the remaining data flows passing through the network device in proportion to the weights of the remaining data flows.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows passing through a network device, the computer program comprising instructions that cause the computer to:
- allocate a predetermined amount of bandwidth to one or more of the data flows;
- and
- distribute remaining bandwidth to remaining data flows using a weighted maximum/minimum process, wherein the weighted maximum/minimum process allocates bandwidth to the remaining data flows in proportion to a weight associated with each remaining data flow, and the weight corresponding to an amount of bandwidth needed by a data traffic flow and being determined based on a delay and an average rate requirement for each uncommitted data traffic flow.
A computer program stored on a computer-readable medium for allocating bandwidth to data flows passing through a network device, the computer program comprising instructions that cause the computer to:
- determine a character of the data flows, the character corresponding to a probability of the data flow in using the bandwidth;
- and
- allocate bandwidth to the data flows in accordance with the character of the data flows;
- wherein the bandwidth is allocated to data flows according to which data flows have a highest probability of using the bandwidth.
Dependencies are inferred from the claim text.