Data network controller
DCFirst Claim
1. A method for controlling a data flow on a network, wherein the network includes a plurality of network service providers (NSPs), the method comprising:
- comparing a candidate loss for a candidate NSP to a current loss for the current NSP, wherein the current NSP is currently used for routing the data flow and the candidate NSP is selected from the remaining ones of the plurality of NSPs;
comparing a candidate latency for the candidate NSP to a current latency for the current NSP;
if the candidate loss and the candidate latency for the candidate NSP are better than the current loss and the current latency for the current NSP, then comparing the candidate NSP to the other of the remaining ones of the plurality of NSPs by;
determining a best latency of the remaining ones of the NSPs;
determining a best loss of the remaining ones of the NSPs;
for those remaining ones of the NSPs that have the best latency and the best loss, determining a greatest available bandwidth of the remaining ones of the NSPs;
for those remaining ones of the NSPs that have the greatest available bandwidth, determining a least next cost tier;
for those remaining ones of the NSPs that have the least next cost tier, determining a lowest identifier; and
assigning a change value so that the data flow is moved from the current NSP to the remaining one of the NSPs that has the lowest identifier.
13 Assignments
Litigations
0 Petitions
Accused Products
Abstract
The present invention provides for a system and method for data network control. Using a flow control system, embodiments of the present invention can analyze traffic flow volume and performance, incorporate usage, billing, and cost control data to yield an improved data network controller. Efficiency in data routing is improved while costs are decreased by enabling the selection of the optimal performance data route. Cost constraints and costs are minimized for an overall data load. Given a diverse set of cost structures for available transit providers, the overall system cost can be minimized by distributing traffic in a manner that takes advantage of the diverse billing structures and yet maintains acceptable performance levels. Systems and methods in accordance with embodiments of the present invention determine projected flow performance and projected flow volume in relation to the available bandwidth and marginal cost to a destination provider.
-
Citations
12 Claims
-
1. A method for controlling a data flow on a network, wherein the network includes a plurality of network service providers (NSPs), the method comprising:
-
comparing a candidate loss for a candidate NSP to a current loss for the current NSP, wherein the current NSP is currently used for routing the data flow and the candidate NSP is selected from the remaining ones of the plurality of NSPs; comparing a candidate latency for the candidate NSP to a current latency for the current NSP; if the candidate loss and the candidate latency for the candidate NSP are better than the current loss and the current latency for the current NSP, then comparing the candidate NSP to the other of the remaining ones of the plurality of NSPs by; determining a best latency of the remaining ones of the NSPs; determining a best loss of the remaining ones of the NSPs; for those remaining ones of the NSPs that have the best latency and the best loss, determining a greatest available bandwidth of the remaining ones of the NSPs; for those remaining ones of the NSPs that have the greatest available bandwidth, determining a least next cost tier; for those remaining ones of the NSPs that have the least next cost tier, determining a lowest identifier; and assigning a change value so that the data flow is moved from the current NSP to the remaining one of the NSPs that has the lowest identifier.
-
-
2. An apparatus for controlling a data flow on a network, wherein the network includes a plurality of network service providers (NSPs) and the data flow is currently routed through a current NSP, the apparatus comprising at least one computing device configured to:
-
evaluate a candidate latency for a candidate NSP, wherein the candidate NSP is selected from remaining ones of the plurality of NSPs; evaluate a candidate loss for the candidate NSP; evaluate a candidate bandwidth for the candidate NSP to a bandwidth allocation for the candidate NSP; determine a loss value for the remaining ones of the plurality of NSPs; determine a cost for the remaining ones of the plurality of NSPs; evaluate an identifier for the remaining ones of the plurality of NSPs; and determine a change value. - View Dependent Claims (3)
-
-
4. An apparatus for controlling a data flow on a network, wherein the network includes a plurality of network service providers (NSPs) and the data flow is currently routed through a current NSP, the apparatus comprising at least one computing device configured to:
-
compare a candidate loss for a candidate NSP to a current loss for the current NSP, wherein the candidate NSP is selected from the remaining ones of the plurality of NSPs; compare a candidate latency for the candidate NSP to a current latency for the current NSP; determine a best latency of the remaining ones of the plurality of NSPs; determine a best loss of the remaining ones of the plurality of NSPs; evaluate a candidate bandwidth for the candidate NSP; determine a maximum candidate bandwidth value for the candidate NSP; determine a cost tier for the remaining ones of the plurality of NSPs; determine a lowest identifier of the remaining ones of the plurality of NSPs; and assign a change value to control routing of the data flow.
-
-
5. A computer-readable medium storing instructions for controlling data flow on a network, wherein the network includes a plurality of network service providers (NSPs) and the data flow is currently routed through a current NSP, by performing the steps of:
-
evaluating a candidate latency for a candidate NSP, wherein the candidate NSP is selected from remaining ones of the plurality of NSPs; evaluating a candidate loss for a candidate NSP; comparing a candidate bandwidth for a candidate NSP to a bandwidth allocation for a candidate NSP; determining a loss value for at least some of the remaining ones of the plurality of NSPs; determining a cost for at least some of the remaining ones of the plurality of NSPs; evaluating an identifier for at least some of the remaining ones of the plurality of NSPs; and determining a change value. - View Dependent Claims (6)
-
-
7. A computer-readable medium storing instructions for controlling a data flow on a network, wherein the network includes a plurality of network service providers (NSPs) and the data flow is currently routed through a current NSP, by performing the steps of:
-
comparing a candidate loss for a candidate NSP to a current loss for the current NSP, wherein the candidate NSP is selected from remaining ones of the plurality of NSPs; comparing a candidate latency for the candidate NSP to a current latency for the current NSP; determining a best latency for the remaining ones of the plurality of NSPs; determining a best loss for the remaining ones of the plurality of NSPs; evaluating a candidate bandwidth values for the candidate NSP; determining a maximum candidate bandwidth value for the candidate NSP; determining a cost tier for the remaining ones of the plurality of NSPs; determining a lowest identifier for the remaining ones of the plurality of NSPs; and assigning a change value to control the data flow.
-
-
8. A method for distributing data flows between a plurality of network system providers (NSPs), wherein each NSP has a multi-tier cost structure and a minimum commitment level, the method comprising:
-
providing a data flow on a current NSP; for a candidate NSP, wherein the candidate NSP is one of the remaining NSPs; comparing performance data for the current NSP with performance data for the candidate NSP; if the performance data for the candidate NSP is better than the performance data for the current NSP, then determining whether current bandwidth for the candidate NSP is below bandwidth allocation for the candidate NSP; if the current bandwidth for the candidate NSP is below the bandwidth allocation for the candidate NSP, then comparing performance data for the candidate NSP with other ones of the remaining NSPs; and comparing cost data for the candidate NSP with other ones of the remaining NSPs; and based on the performance data and cost data comparisons, changing the data flow from the first NSP to one of the remaining NSPs. - View Dependent Claims (9, 10, 11, 12)
-
Specification