System and methods for improved network routing
RE049275 · 2022-11-01
Assignee
Inventors
Cpc classification
International classification
Abstract
Known intra-domain routing methods (e.g., OSPF and IS-IS) are link-state routing protocols with hop-by-hop forwarding that sacrifice optimal traffic engineering for ease of implementation and management. Known optimal traffic engineering procedures are either not link-state methods or require source routing—characteristics that make them difficult to implement. Certain embodiments of the present invention include a fully distributed, adaptive, link-state routing protocol with hop-by-hop forwarding configured to achieve optimal traffic engineering. Such embodiments facilitate significant performance improvements relative to known intra-domain routing methods and decrease network infrastructure requirements.
Claims
1. A system for improving routing of a commodity through a network, comprising: a processor; a main memory in communication with the processor via a communication infrastructure and storing instructions that, when executed by the processor, cause the processor to: recognize two or more nodes in the network; ascertain one or more links between the two or more nodes in the network; assign a price value to each of the one or more links between the two or more nodes in the network; receive a request for routing at least one unit of the commodity from a source node to a destination node in the network; and .[.compute an optimal next node subsequent to the source node, wherein a split ratio applied.]. .Iadd.route the at least one unit of the commodity from the source node to the destination node in the network, wherein the routing of the at least one unit of the commodity is based at least in part on applying a dynamically adjusted split ratio weighting factor in at least one of the two or more nodes in a pathway between the source node and the destination node in the network, the split ratio weighting factor being computed .Iaddend.in .Iadd.the .Iaddend.at least one of the two or more nodes .[.is dynamically adjusted, a split ratio weighting factor expressed as,.]. .Iadd.in the pathway between the source node and the destination node in the network according to: .Iaddend.
2. The system of claim 1, wherein the .[.compute step includes.]. .Iadd.split ratio weighting factor is further computed by.Iaddend.: using Dijkstra's method with tie-breaking based on a node index; surveying a shortest pathway from the source node to the destination node; initializing the branch cardinality (η.sub.u.sup.t)for the shortest pathway from the source node to the destination node; and at every subsequent node, setting η.sub.u.sup.t←η.sub.u.sup.tb, wherein .[.η represents a number of branches, u represents a source node, t represents a destination node, and.]. b represents a number of branches from a particular junction.
3. The system of claim 1, wherein the commodity is an information packet.
.[.4. The system of claim 1, wherein the network is an electronic data network..].
5. .[.The system of claim 1,.]. .Iadd.A system for improving routing of a commodity through a network, comprising: a processor; a main memory in communication with the processor via a communication infrastructure and storing instructions that, when executed by the processor, cause the processor to: recognize two or more nodes in the network; ascertain one or more links between the two or more nodes in the network; assign a price value to each of the one or more links between the two or more nodes in the network: receive a request for routing at least one unit of the commodity from a source node to a destination node in the network; and route the at least one unit of the commodity from the source node to the destination node in the network, wherein the routing of the at least one unit of the commodity is based at least in part on applying a dynamically adjusted split ratio weighting factor in at least one of the two or more nodes in a pathway between the source node and the destination node in the network, the split ratio weighting factor being computed in the at least one of the two or more nodes in the pathway between the source node and the destination node in the network according to:
6. The system of claim 1, wherein each of the two or more nodes is a computer system.
.[.7. A method for routing electronic data packets in a network, the method comprising: one or more processors executing a process to: identify a plurality of network nodes in a network, wherein packets are sent between a source node of the plurality of network nodes, and a destination node of the plurality of network nodes; for each packet, performing a calculation of a split ratio at each node on an ongoing basis, wherein the split ratio comprises a selection of which node-to-node route each packet takes to go from a source destination node to a destination node, wherein calculating the split ratio at each node comprises, taking into account each node's current knowledge of shortest paths to a destination node for a packet; and decreasing a number of packets forwarded to a node that is not in a shortest path to the destination node, wherein the rate of decrease is proportional to a value of a current split ratio..].
.[.8. The method claim 7, wherein the one or more processors comprise one or more routers associated with network nodes, and wherein not all of the routers are required to perform the process..].
.[.9. The method of claim 7 wherein performing the calculation of the split ratio at each node comprises receiving network link state information, and does involve information regarding demand at nodes..].
.[.10. The method of claim 9, wherein the link state information comprises one or more of a number of packets between nodes, and a number of packets per unit of distance between nodes..].
.[.11. The method of claim 7, wherein the process comprises calculating a weighting factor for the split ratio at each node for each possible next node..].
.[.12. The method of claim 7, wherein the process comprises iteratively modifying packet forwarding at each node, comprising: a node determining whether there are packets currently destined for a given destination node; if there are no packets currently destined for the given destination node, the node forwarding newly received packets to the given destination node along a shortest path; if there are packets currently destined for the given destination node, the node adjusting a number of packets forwarded to the given destination node..].
.[.13. The method of claim 12, wherein adjusting the number of packets comprises reducing a number of packets along non-shortest routes and increasing the number of packets along currently calculated shortest paths..].
.[.14. The method of claim 13, wherein adjusting is performed iteratively until an optimal route is obtained..].
.[.15. The method of claim 8, wherein the performance of the process by a subset of the one or more routers, including one of the one or more routers, improves traffic in the network..].
.[.16. The method of claim 7 wherein the one or more processors comprise one or more routers associated with network nodes, and a central processor, and wherein the central processor performs the process for each node and transmits results to each node for use in routing network traffic..].
.Iadd.17. A system comprising: at least one node including a link-state router (LSR), wherein the at least one node is coupled to a network including a plurality of nodes coupled via a plurality of links; wherein the LSR is configured to include a plurality of routing components; wherein the LSR is configured to receive feedback including link state information of the plurality of links; wherein at least one of the plurality of routing components is configured: to use the link state information to characterize current knowledge of a shortest path to a destination node in the network; to select a split ratio that incrementally increases traffic along a first one of the plurality of links that corresponds to the shortest path to the destination node and incrementally decreases traffic along at least a second one of the plurality of links that corresponds to at least one other path to the destination node; and to determine a best route through the network by determining, using the selected split ratio, at least one optimal subsequent node of the plurality of nodes; wherein the determination of the at least one optimal subsequent node is repeated at each optimal subsequent node, based at least in part on split ratios selected at each optimal subsequent node using current knowledge of the shortest path to the destination node at each optimal subsequent node, until the destination node is reached; and wherein the LSR is configured to control routing of traffic using the best route..Iaddend.
.Iadd.18. The system of claim 17, wherein the at least one routing component includes at least one objective function, wherein resultant values generated by the at least one objective function adaptively characterize the network..Iaddend.
.Iadd.19. The system of claim 18, wherein the determination of the best route includes applying the at least one objective function to the link state information..Iaddend.
.Iadd.20. The system of claim 19, wherein the adaptive characterization of the network comprises recognizing changes in parameters of the network based at least in part on feedback of the link state information of the plurality of links, and adapting the characterization of the network in response to the changes in the parameters..Iaddend.
.Iadd.21. The system of claim 20, wherein the at least one routing component dynamically adapts to changes in traffic on the network..Iaddend.
.Iadd.22. The system of claim 20, wherein the parameters include changes in network topology..Iaddend.
.Iadd.23. The system of claim 20, wherein the parameters include variations in network traffic..Iaddend.
.Iadd.24. The system of claim 20, wherein the parameters include the link state information..Iaddend.
.Iadd.25. The system of claim 24, wherein the link state information comprises a numerical description of a state of at least one of the plurality of links..Iaddend.
.Iadd.26. The system of claim 24, wherein the link state information comprises a valuation of an amount of traffic on at least one of the plurality of links..Iaddend.
.Iadd.27. The system of claim 24, wherein the link state information comprises one or more of a number of packets between nodes, and a number of packets per unit of distance between nodes..Iaddend.
.Iadd.28. The system of claim 20, wherein the adaptive characterization of the network using the feedback of the link state information obviates pre-assigned network traffic information in order to compute link weights..Iaddend.
.Iadd.29. The system of claim 20, wherein the adaptive characterization of the network obviates pre-assigned network traffic information in order to begin routing traffic using the best route..Iaddend.
.Iadd.30. The system of claim 20, wherein the control of the routing by the at least one routing component based at least in part on the adaptive characterization of the network obviates routing based at least in part on coordination of the at least one node with others of the plurality of nodes..Iaddend.
.Iadd.31. The system of claim 17, wherein the at least one node including the LSR includes a single node including the LSR..Iaddend.
.Iadd.32. The system of claim 17, wherein the at least one node including the LSR includes two or more nodes each including the LSR..Iaddend.
.Iadd.33. The system of claim 17, wherein the at least one node including the LSR includes the plurality of nodes each including the LSR..Iaddend.
.Iadd.34. The system of claim 17, wherein the link state information is received at the LSR of the at least one node asynchronously relative to any other node of the plurality of nodes..Iaddend.
.Iadd.35. The system of claim 19, wherein the applying of the at least one objective function to the link state information at the at least one node is asynchronous relative to any other node of the plurality of nodes..Iaddend.
.Iadd.36. The system of claim 19, wherein the link state information includes updated link state information..Iaddend.
.Iadd.37. The system of claim 36, wherein the determination of the best route includes dynamically adjusting the route at the at least one node in response to the updated link state information..Iaddend.
.Iadd.38. The system of claim 37, wherein the dynamic adjusting is performed iteratively until an optimal route is obtained, wherein the optimal route is a route that minimizes the objective function..Iaddend.
.Iadd.39. The system of claim 38, wherein the dynamic adjusting of an iteration includes applying the at least one objective function to the updated link state information received during the iteration..Iaddend.
.Iadd.40. The system of claim 39, wherein the dynamic adjusting comprises reducing a number of packets along non-shortest paths to the destination node..Iaddend.
.Iadd.41. The system of claim 39, wherein the dynamic adjusting comprises increasing a number of packets along the shortest path to the destination node..Iaddend.
.Iadd.42. The system of claim 39, wherein the dynamic adjusting comprises, for each packet to be routed to the destination node during each iteration, selection of a route each packet takes through the network using the selected split ratio..Iaddend.
.Iadd.43. The system of claim 42, wherein the dynamic adjusting comprises decreasing a number of packets forwarded to a node that is not in a shortest path to the destination node..Iaddend.
.Iadd.44. The system of claim 43, wherein the rate of decrease is proportional to a value of the selected split ratio..Iaddend.
.Iadd.45. The system of claim 19, wherein the best route is determined by minimizing the at least one objective function using the link state information..Iaddend.
.Iadd.46. The system of claim 45, wherein the best route is an optimal route between a source node and the destination node of the plurality of nodes..Iaddend.
.Iadd.47. The system of claim 46, wherein the best route comprises a lowest cost route through the network..Iaddend.
.Iadd.48. The system of claim 46, wherein the best route comprises a shortest route through the network..Iaddend.
.Iadd.49. The system of claim 19, wherein the at least one routing component is configured to iteratively apply in real time the at least one objective function to the link state information and generate a plurality of link weights comprising a link weight for each link of the plurality of links..Iaddend.
.Iadd.50. The system of claim 49, wherein the at least one routing component is configured to determine at least one route for tenant traffic flow according to the plurality of link weights..Iaddend.
.Iadd.51. The system of claim 50, wherein the control of the routing of the tenant traffic flow comprises continually adapting the at least one route in response to changes in the link state information as processed by the at least one objective function..Iaddend.
.Iadd.52. The system of claim 17, wherein the control of the routing comprises controlling routing of traffic to a next node of the best route via a single path..Iaddend.
.Iadd.53. The system of claim 17, wherein the control of the routing comprises controlling routing of traffic to a next node of the best route via a plurality of paths..Iaddend.
.Iadd.54. The system of claim 17, wherein the control of the routing at the at least one node is independent of routing decisions of any other node of the plurality of nodes..Iaddend.
.Iadd.55. The system of claim 17, wherein the LSR is configured to operate in conjunction with a plurality of routing systems of other nodes of the plurality of nodes..Iaddend.
.Iadd.56. The system of claim 17, wherein the at least one node includes a control plane that is separate and distinct from a data plane..Iaddend.
.Iadd.57. The system of claim 56, wherein the control plane is distributed among the plurality of nodes..Iaddend.
.Iadd.58. The system of claim 56, wherein the control plane comprises at least one of software and hardware..Iaddend.
.Iadd.59. The system of claim 56, wherein the data plane comprises at least one of software and hardware..Iaddend.
.Iadd.60. The system of claim 17, wherein the at least one routing component includes a software-defined algorithm executing in the at least one node, wherein the at least one routing component is configured to interoperate with other network components of the at least one node..Iaddend.
.Iadd.61. The system of claim 60, wherein the other network components of the at least one node include one or more of logic components, interconnect components, ports, memory components, input/output components, and algorithms..Iaddend.
.Iadd.62. The system of claim 17, wherein at least one routing component is configured to use the link state information to adaptively characterize the network..Iaddend.
.Iadd.63. The system of claim 62, wherein at least one routing component is configured to iteratively determine the best route through the network based at least in part on the adaptive characterization..Iaddend.
.Iadd.64. The system of claim 17 wherein selecting the split ratio comprises computing a split ratio weighting factor expressed as:
.Iadd.65. The system of claim 18, wherein computing the split ratio weighting factor comprises: using Dijkstra's method with tie-breaking based on a node index; surveying the shortest path from the source node to the destination node; initializing the branch cardinality (η.sub.u.sup.t) for the shortest path from the source node to the destination node; and at every subsequent node, setting η.sub.u.sup.t←η.sub.u.sup.tb, wherein η represents a number of branches, u represents a source node, t represents a destination node, and b represents a number of branches from a particular junction..Iaddend.
.Iadd.66. The system of claim 17, wherein the traffic comprises one or more information packets..Iaddend.
.Iadd.67. The system of claim 17, wherein the network is an electronic data network..Iaddend.
.Iadd.68. The system of claim 17, wherein each of the plurality of nodes is a router..Iaddend.
.Iadd.69. The system of claim 17, wherein each of the plurality of nodes is a computer system..Iaddend.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The preferred embodiments of the invention will be described in conjunction with the appended drawings provided to illustrate and not to limit the invention, where like designations denote like elements, and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
(37) The question of how to route information packets through an electronic data network can be defined more generally as a multi-commodity flow (“MCF”) problem. For a given directed graph, G=(V,E) with node/router set V and edge/link, set E with link capacities c.sub.u,v; ∀ (u,v)ϵE, and demands D(s,t) defined as the rate required for communication from s to t, the MCF problem can been summarized below.
(38)
(39) Commodities are defined in terms of their final destination t. ƒ.sub.u,v.sup.t is the flow on link (u,v) corresponding to commodity t and ƒ.sub.u,v is the total flow on link (u,v). The cost function, Φ, is typically selected to be a convex function of the link rate vector ƒ={ƒ.sub.u,v}, ∀ (u,v)ϵE. For example, if the M/M/1 delay formula is used for the cost function, then Φ (ƒ)=Σ.sub.u,v Φ.sub.u,v (ƒ.sub.u,v)=Σ.sub.u,v ƒ.sub.u,v/(c.sub.u,v−ƒ.sub.u,v). Throughout this application, this cost function will be used unless specified otherwise. It is also assumed that Φ′.sub.u,v (ƒ.sub.u,v).sub.
(40) Using the first derivative of the cost function as the price of a link in distance calculations permits the achievement of an optimal solution. The price of the link (u,v) is defined as w.sub.u,v=Φ′.sub.u,v(ƒ.sub.u,v), the price of a path p as Σ.sub.u,vϵp w.sub.u,v and the price at a node u to a destination t as,
(41)
where q.sub.t.sup.t=0. The price at a node can be interpreted as the average price to the destination from that node where the average is taken over all outgoing edges to the destination weighted by the split ratios along those edges. If instead the average is done over all possible paths, Equation (1) can be stated without recursion as,
(42)
where P.sub.u,t is the set of paths from u to t and d.sub.p=Σ.sub.(u,v)ϵp w.sub.u,v.
(43) As identified above, the selection of which packets or how many packets follow which path through which nodes is termed a “split ratio”. A split ratio may be determined for each commodity (e.g., information packet) at every node. More specifically, each router's split ratios are adjusted and traffic is moved from one outgoing link to another. Such embodiments only control the next hop on a packet path, which is hop-by-hop routing. If the entire path rate was controlled, the system would be using source routing. Also, the split ratio determination may include favoring links that form the shortest pathway, even though the average price via the next hop node may not be the lowest. If the lowest average price was prioritized, this is termed “Gallager's approach”, which is a distance vector solution (Gallager's approach is compared with an embodiment of the present invention in
(44) In addition, the split ratio determination may include adapting the split ratios dynamically and incrementally by decreasing the packet traffic along links that belong to non-shortest paths while increasing along the link that is part of the shortest path at every router. In contrast, if split ratios are set to send packets only to the links leading to the currently calculated shortest path, then the result is OSPF with weights, w.sub.u.v.
(45) Certain portions of certain embodiments of the present invention are configured to address specific scenarios that may occur in a network. One scenario is illustrated in
(46) Given w.sub.l>w.sub.s, a strategy to reach optimal use of the first link and the second link might be to dynamically shift traffic from the more expensive link to the cheaper link at some rate δ>0 until the prices of the two links become the same. The split ratio for the first link 54 at node A is represented by α.sub.l and the split ratio for the second link 56 is represented by α.sub.s. In certain embodiments, the traffic over the first link 54 is decreased and traffic at the second link is increased. The α.sub.l value may be decreased while the α.sub.s value is increased at rate δ/r. In such embodiments, the first link price is w.sub.l=Φ.sub.l′(α.sub.lr) and the second link price w.sub.s=Φ.sub.s′(α.sub.sr).
(47) There are at least two ways to interpret and generalize the intuition gained from this scenario. Both give the same solution for this very simple example but in general will lead to different dynamics and possibly different split ratios. One interpretation, which forms the basis of procedures used in certain known methods, is that the router shifts traffic headed to neighbor nodes with higher average price to the neighbor node with the lowest average price.
(48) A second interpretation, which is the basis of certain embodiments of the present invention, is that the router shifts traffic from links along more expensive paths to the link along the path with the lowest price. Mathematically, the following update rule for the split ratios is:
(49)
where (u, v)ϵE but is not on the shortest path from u to destination t and r.sub.u.sup.t is the incoming rate at node u at destination t.
(50) However, as a potential counter-example to this interpretation, some version of the scenario described in
(51)
where r.sub.B is the incoming rate to C at B and the inequality follows from the relationship between the prices.
(52) The scenario illustrated in
(53) The scenario illustrated in
(54)
which may be positive for k>1. Accordingly, to avoid increasing the cost, a weighting factor of the split ratio itself is added to the Equation below.
(55)
where (u, v)ϵE, but is not on the shortest path from u to destination t.
(56) With the new rule (Equation 4), the cost derivative can be evaluated as follows.
(57)
Where the last inequality follows from the fact that the average prices from router A to router C, which is α.sub.mw.sub.m+(1−α.sub.m)(w.sub.B+w.sub.l) has to be at least as large as the price of the shortest path from A to C, which is w.sub.B+w.sub.s.
(58) Additional adaptations to the Equation 4 can be made to improve the likelihood that its application will result in a decrease in cost of the network. The scenario in
(59)
which may be positive for k>1.
(60) Once again it is possible to modify the rule for the split ratios from δα.sub.u,v.sup.t/r.sub.u.sup.t to δα.sub.u,v.sup.t/η.sub.u.sup.tr.sub.u.sup.t. In certain embodiments, the η.sub.u.sup.t=k while for a general network, η.sub.u.sup.t may be calculated according to a method specified later in this application. The calculation for determining the routing of information packets is updated to:
(61)
where (u, v)ϵE, but is not on the shortest path from u to destination t.
(62) Overall, embodiments of the present invention results in split ratios for all the links converging to a set where every element of the set achieves the global optimum to the MCF problem and accordingly achieves optimal traffic engineering for the network. To illustrate, a few more notations are defined below.
(63) For a particular destination t at node s,
(64)
the inflow rate to a node s destined to t, which, because of node flow balance requirements is also the outflow at s to t. The character α is also used without indexing to represent the set of all the split ratios from all the routers in the network. At a router u, α.sub.u,v.sup.t controls the fraction of traffic to destination t that uses outgoing link (u, v) while satisfying α.sub.u,v.sup.t≥0 and Σ.sub.v:(u,v)ϵEα.sub.u,v.sup.t=1.
(65) Branch cardinality is used to make sure that nodes that are farther away from a destination node are more conservative in how much traffic they shift to the shortest path leading to the destination. As noted earlier, if nodes simply shifted a large percentage or all of their traffic to the shortest node, the performance of the network would be poor. OSPF is an example of the latter. The characters η.sub.u.sup.t, which represent the branch cardinality, are defined as the product of the number of branches encountered in traversing the shortest path tree (e.g., route) rooted at t from t to u. Being a link-state routing method, each node u has the link-state information to run Dijkstra's method to compute the shortest path tree to destination t. Every node has to independently determine the same shortest path tree to permit the method to proceed as desired. At any stage of Dijkstra's method, if there is ambiguity as to which node should be added next, tie-breaking based on node index is used. For the purposes of the present application, a “node index” is an identifier that uniquely describes each node in a network. Examples include a MAC address, IP address, etc.
(66) An exemplary calculation of η.sub.u.sup.t is illustrated in method steps below. More specifically, the method steps are configured to calculate η.sub.u.sup.t{w.sub.e ∀.sub.eϵE}. 1. Compute shortest path tree for destination t using Dijkstra's method with tie-breaking based on node index 2. Traverse the tree from t to u 3. Initialize η.sub.u.sup.t←1 4. At every junction, do η.sub.u.sup.t←η.sub.u.sup.tb, where b is the number of branches from that junction
(67) The overall link-state routing method can be used to control the evolution of the destination specific split ratio α.sub.u,v.sup.t for any node u. Suppose that (u,
(68)
(69) The equations above specify how to iteratively decide modifying packet forwarding at each router. First, each node checks to see whether it has traffic to a given destination. If it does not already have traffic going to a destination, it forwards all newly received packets to that destination along the shortest path to that destination. If it does already have traffic going to a destination, it adjusts what fraction of traffic it forwards along its different outgoing links according to the equations. As noted in the case studies earlier, it reduces the traffic along non-shortest paths and increases it along the outgoing link leading to the currently calculated shortest path. This procedure is iteratively followed until the optimal solution is obtained.
(70) To prove the optimality of the above link-state hop-by-hop method, two lemmas will be analyzed. The first Lemma relates the node prices to the link weights for each destination t. More specifically,
(71) Lemma 1.
(72)
(73) It analytically states the intuitive idea that the total price of sending traffic to meet the demand in the network, as defined by the sum of the products of the traffic demand rate and the node price for each demand node, is equal to the sum over all links of the price of sending traffic through each link. The second lemma describes how to calculate the time rate of change of network cost.
(74)
(75) The second Lemma captures the fact that the change in network cost can either be expressed in terms of the change in the link flow rates, i.e., how each link affects the network cost or in terms of the change in the split ratios at each node, i.e., how each node affects the network cost.
(76) Next, certain method embodiments of the present invention are summarized in the following Theorem.
(77) Theorem. In a network, at every node u, for every destination t, let the evolution of the split ratios be defined by equations (6)-(9). Then, starting from any initial conditions, α converges to the largest invariant set {α|Φ(ƒ)=0} and any element of this set yields an optimal solution to the MCF problem. This result is proved in three steps of the following proof.
(78) Proof. First, it is shown that {dot over (Φ)}(ƒ)≤0. Then, this result invokes LaSalle's Invariance Principle for hybrid systems to assert that α converges to the largest invariant set in {α|(ƒ)=0}. Third, it is shown that any element of this set is an optimal solution to the MCF problem.
(79) First in this part of the method is step 1, in which the following is true.
(80)
where {dot over (Φ)}.sup.t(ƒ)=Σ.sub.(u,v)ϵE{dot over (f)}.sub.u,v.sup.tw.sub.u,v is the rate of change of the network cost as the flows to destination t change. Consequently, if {dot over (Φ)}.sup.t(ƒ)≤0 for each destination t, then {dot over (Φ)}(ƒ). From Lemma 2,
(81)
(82) This part of the step 1 method is configured to decompose the change in cost to a particular destination t, by grouping the terms from the summation derived in Lemma 2, using the branches of the shortest path tree rooted at that destination. More precisely, a branch (B) is defined as the set of nodes on the path from a leaf node on the shortest path tree to the destination node t. Given the definition, some intermediate nodes clearly will be shared among multiple branches. The change in cost contributed by these nodes is properly divided among the different branches that pass through these routers in the following way. Each node u has a corresponding η.sub.u.sup.t value which appears in the denominator of the expression for the change in cost. When grouping terms, for a particular branch passing through an intermediate node, to only take a fraction, 1/π.sub.u.sup.B, of the change in cost contributed by the intermediate node, to be summed with that branch so that π.sub.u.sup.Bη.sub.u.sup.t, for that node u is the same as the branch cardinality of the leaf router which defines the branch. Consequently, π.sub.u.sup.Bη.sub.u.sup.t will be the same for all routers u encountered in a traversal from the leaf router of the branch to the destination. Given the definition of η.sub.u.sup.t and π.sub.u.sup.B, one can check Σ.sub.B1/π.sub.u.sup.B=1, so the total contributing form node u is distributed over different branches. See the following equation.
(83)
For a given branch B, with n nodes numbered 1, . . . , n from the leaf node to the destination, as noted above, 1/π.sub.u.sup.B is the fraction of the change in cost due to node u that it contributes to the branch summation. For ease of notation, in what follows, the character η will be used to represent every router u that belongs to the branch B. For any uϵ{1, 2, . . . , n−1}, the following equation applies:
(84)
If r.sub.u.sup.t=0, following equations (8) and (9), the left hand side of (10) is zero because {dot over (α)}.sub.u,v.sup.t=0, the right hand side of (10) is also zero because α.sub.u,u+1.sup.t=1. If r.sub.u.sup.t>0, (10) is still valid because of the following.
(85)
(86) Therefore
(87)
(88) The last inequality follows from the fact that the average price from the leaf router (node 1) to the destination (node n) which can be thought of as an average over paths from Equation (2), has to be no less than the price of the shortest path. Note that this relationship holds with equality only when the node price of the leaf node is the same as the price of the shortest path which means that all the traffic from every node in the branch to the destination is along shortest paths to the destination.
(89) Then, the result is as follows.
(90)
(91) The next step is related to convergence. Given the control laws, it is clear that {dot over (Φ)}(ƒ)≤0. In order to show convergence, the language of hybrid automata is used to model the dynamics of this system and methods. Specifically, embodiments of this invention are an example of a non-blocking, deterministic, and continuous hybrid automaton. Consequently, invoking a generalization of LaSalle's Invariance Principle to hybrid automata ensures that the set of split ratios converges to the largest invariant set within {α|{dot over (Φ)}(ƒ)=0}.
(92) The subsequent step is related to optimality. For {dot over (Φ)}(ƒ)=0 to be true, {dot over (Φ)}(ƒ)=0 which implies that the change in cost along each branch is as follows.
(93)
for every t.
(94) From the preceding analysis, the change in cost along a branch B is zero only when all the traffic from the nodes that belong to the branch is being routed to the destination through shortest paths with respect to the link prices. Since this is a necessary and sufficient condition for optimality in MCF, the proof is complete.
(95) Next, as an illustrative example to help understand the first step of the above proof, a sample shortest path tree is analyzed and the corresponding cost change calculations are identified explicitly. A shortest path tree is illustrated in
(96) As noted in the proof, the change in the cost function due to the routers increasing traffic along the links in the shortest path tree can be calculated using Lemma 2. In order to evaluate it, the terms in the summation are divided and grouped per branch. For routers downstream to a leaf router in a branch, only a fraction of the change in the cost contributed by the downstream router is selected where the fraction is determined by the need to have the same η for all routers in the summation for a branch. The contribution to the change in the cost by the routers for the highlighted branch can be calculated as follows,
(97)
(98) As shown in
(99) Before reviewing how embodiments of the present invention may interact with a single-path routing method, certain terms are defined. First, for the purposes of this application, a “single-path method used to make routing decisions” is a router that uses a set of link weights to calculate the shortest path to the destination and makes forwarding decisions based on that shortest path. Also, if the single-path router calculations are triggered as often as that in the present invention, examples can be illustrated in which the routes in the network will oscillate and not settle down. This is because the single-path method moves all the traffic from one path to another instead of just a fraction. Also, a notion of time-scale separation between how often the method of the present invention is triggered and the single-path method is triggered. In certain embodiments, the subset of routers running the present invention will execute the method in between slower single-path calculations. Given this set up, the two methods can work with either the same link weights or method-specific link weights. Since local optimization methods exist for calculating single-path method link weights and because method-specific calculations can be triggered on the receipt of new method-specific link weights, the use of method-specific link weights generally are broadcast by each router at different timescales. However, this assumption is more important from an implementation perspective than for the argument that follows.
(100) Another useful assumption is that each router is aware of the method that the other routers in the network are using. With the time-scale separation and the assumption that every router is aware of the specific method running at every other router, for a given destination, the ‘single-path’ routers have a pruning effect on the network from the perspective of the routers running an embodiment of the present invention, i.e., the outgoing links that are not used by them are effectively not a part of the network topology. Assuming that every router is aware of the specific method running at every other router, the nodes running embodiments of the present invention will base their calculations on this reduced network and attain the optimal routing solution for this network. Essentially, the routers implementing an embodiment of the present invention increase the search space for finding a better routing solution and thus improve network performance.
(101) Certain embodiments of the present invention can be evaluated for certain performance metrics, specifically, the optimality, rate of convergence to the optimal solution, adaptivity as the traffic changes, and asynchronous environments and its interaction with single path routing methods. The evaluations may be performed on three network topologies—the benchmark Abilene network (
(102) Regarding convergence, the speed of convergence depends on the step-size. In certain embodiments, the step size is the unit of time with which the changes in the split ratios calculated in Equations (6)-(9) is multiplied to determine how much to vary the split ratios from one time slot to the next. The metric, network load is defined as the ratio of the total traffic on the network to its total capacity. In general, smaller step-sizes improve convergence of an embodiment of the present invention to the optimal solution at the expense of speed of convergence.
(103) This concept is illustrated in
(104) Another factor that affects the rate of convergence of the system and methods is the load on the network. The maximum network load for the Abilene network may be 24.6%, mesh network may be 26.1% and the hierarchical network may be 5.3%. These values indicate the point at which further scaling up the demand for the given traffic pattern would exceed the capacity of at least one link in the network, even with optimal routing. From
(105) Regarding performance, the optimal solution may be calculated for the test networks by solving the corresponding MCF problem using cvx method known in the art or another method known in the art under different network load conditions. The objective value obtained by using the present invention matched the optimal solution for each test case as can be seen from
(106) In
(107) To illustrate how certain embodiments of the present invention are configured to dynamically adapt to changes in traffic on the network,
(108) A closely related concept to certain embodiments of the system and methods of the present invention is the evolution of the split ratios at individual routers. A plot of the evolution of the split ratios from Indianapolis to Los Angeles is illustrated in
(109) In dynamic network environments, random delays can affect the time it takes for link-state information to reach every node in the network as required by certain embodiments of the method. Note that without synchronized link-state updates, facets of the present invention, e.g., calculating the shortest path tree and η.sub.u.sup.t may be affected. There are at least two ways to approach this problem. The first is to allow enough time between successive iterations of the running method so that every node has access to the most up-to-date link-state information. The second is to let the nodes execute the steps of the present invention despite asynchronous link-state updates. It is also possible for asynchronous behavior to arise despite synchronized link-state updates due to some subset of the nodes executing the steps faster than the other nodes.
(110)
(111)
(112)
(113) To quickly achieve multipath functionality in the network 50, packet forwarding decisions may be transferred from the firmware to higher level software which could be easily modified via SCONE (Software Component of NetFPGA). A new table may be added to the software to store the split ratios in addition to the routing table provided in the reference router implementation for the NetFPGA platform. Then a random number generator may be used in conjunction with the routing table and the split ratios table to forward traffic as needed.
(114) Then, the link-state update packets are modified to be broadcast frequently enough to ensure relatively quick convergence of the method and to modify their payload to transmit the link rates. For example, the link-states may be set to broadcast every 250 milliseconds. The network cost function may be represented as Σ.sub.(u,v)ϵEƒ.sub.u,v.sup.2, which results in 2.sub.u,v as the price of each link. Other components of the method such as retrieving the incoming rate into each board and the outgoing rate on each link can be easily obtained from the NetFPGA registers. Also, Dijkstra's method is changed to run with the new link weights instead of hop-count as it was doing in the Reference Router implementation in SCONE.
(115) To further test the system and methods, video traffic may be sent using, for example, a VLC Media Player as a video server from node B to node C. As described above, the KKT conditions of the multi-commodity flow problem are what permit focusing on shortest paths based on the price and use that to claim optimality of the method. From the KKT conditions of the MCF problem, for the given cost function, it is easy to see that the values of the split ratios at optimality should be α.sub.B,A.sup.C=0.25 and α.sub.B,C.sup.C=0.75. The evolution of the split ratios in such an embodiment as captured using SCONE, which comes with the NetFPGA platform, is presented in
(116) In the same network 50 embodiment illustrated in
(117) As stated above, certain embodiments of the present invention include an optimal, link-state, hop-by-hop routing method. Advantageously, certain embodiments of the present invention may facilitate capital savings for ISPs by reducing investments in infrastructure to keep utilization of the networks manageable by current suboptimal procedures). In addition, the present invention may facilitate performance benefits for consumers.
(118) Throughout this application, certain systems and methods have been described. Certain embodiments of the systems include a computer system and certain of the method steps may be implemented by a computer system.
(119) Computer system 200 includes an input/output display interface 202 connected to communication infrastructure 204—such as a bus —, which forwards data such as graphics, text, and information, from the communication infrastructure 204 or from a frame buffer (not shown) to other components of the computer system 200. The input/output display interface 202 may be, for example, a keyboard, touch screen, joystick, trackball, mouse, monitor, speaker, printer, Google Glass® unit, web camera, any other computer peripheral device, or any combination thereof, capable of entering and/or viewing data.
(120) Computer system 200 includes one or more processors 206, which may be a special purpose or a general-purpose digital signal processor that processes certain information. Computer system 200 also includes a main memory 208, for example random access memory (“RAM”), read-only memory (“ROM”), mass storage device, or any combination thereof. Computer system 200 may also include a secondary memory 210 such as a hard disk unit 212, a removable storage unit 214, or any combination thereof. Computer system 200 may also include a communication interface 216, for example, a modem, a network interface (such as an Ethernet card or Ethernet cable), a communication port, a PCMCIA slot and card, wired or wireless systems (such as Wi-Fi, Bluetooth, Infrared), local area networks, wide area networks, intranets, etc.
(121) It is contemplated that the main memory 208, secondary memory 210, communication interface 216, or a combination thereof, function as a computer usable storage medium, otherwise referred to as a computer readable storage medium, to store and/or access computer software including computer instructions. Certain embodiments of a computer readable storage medium do not include any transitory signals or waves. For example, computer programs or other instructions may be loaded into the computer system 200 such as through a removable storage device, for example, a floppy disk, ZIP disks, magnetic tape, portable flash drive, optical disk such as a CD or DVD or Blu-ray, Micro-Electro-Mechanical Systems (“MEMS”), nanotechnological apparatus. Specifically, computer software including computer instructions may be transferred from the removable storage unit 214 or hard disc unit 212 to the secondary memory 210 or through the communication infrastructure 204 to the main memory 208 of the computer system 200.
(122) Communication interface 216 allows software, instructions and data to be transferred between the computer system 200 and external devices or external networks. Software, instructions, and/or data transferred by the communication interface 216 are typically in the form of signals that may be electronic, electromagnetic, optical or other signals capable of being sent and received by the communication interface 216. Signals may be sent and received using wire or cable, fiber optics, a phone line, a cellular phone link, a Radio Frequency (“RF”) link, wireless link, or other communication channels.
(123) Computer programs, when executed, enable the computer system 200, particularly the processor 206, to implement the methods of the invention according to computer software including instructions.
(124) The computer system 200 described herein may perform any one of, or any combination of, the steps of any of the methods presented herein. It is also contemplated that the methods according to the invention may be performed automatically, or may be invoked by some form of manual intervention.
(125) The computer system 200 of
(126) The computer system 200 may be a handheld device and include any small-sized computer device including, for example, a personal digital assistant (“PDA”), smart handheld computing device, cellular telephone, or a laptop or netbook computer, hand held console or MP3 player, tablet, or similar hand held computer device, such as an iPad®, iPad Touch® or iPhone®.
(127)
(128) Specifically, the cloud computing system 300 includes at least one client computer 302. The client computer 302 may be any device through the use of which a distributed computing environment may be accessed to perform the methods disclosed herein, for example, a traditional computer, portable computer, mobile phone, personal digital assistant, tablet to name a few. The client computer 302 includes memory such as random access memory (“RAM”), read-only memory (“ROM”), mass storage device, or any combination thereof. The memory functions as a computer usable storage medium, otherwise referred to as a computer readable storage medium, to store and/or access computer software and/or instructions.
(129) The client computer 302 also includes a communications interface, for example, a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, wired or wireless systems, etc. The communications interface allows communication through transferred signals between the client computer 302 and external devices including networks such as the Internet 304 and cloud data center 306. Communication may be implemented using wireless or wired capability such as cable, fiber optics, a phone line, a cellular phone link, radio waves or other communication channels.
(130) The client computer 302 establishes communication with the Internet 304 —specifically to one or more servers—to, in turn, establish communication with one or more cloud data centers 306. A cloud data center 306 includes one or more networks 310a, 310b, 310c managed through a cloud management system 308. Each network 310a, 310b, 310c includes resource servers 312a, 312b, 312c, respectively. Servers 312a, 312b, 312c permit access to a collection of computing resources and components that can be invoked to instantiate a virtual machine, process, or other resource for a limited or defined duration. For example, one group of resource servers can host and serve an operating system or components thereof to deliver and instantiate a virtual machine. Another group of resource servers can accept requests to host computing cycles or processor time, to supply a defined level of processing power for a virtual machine. A further group of resource servers can host and serve applications to load on an instantiation of a virtual machine, such as an email client, a browser application, a messaging application, or other applications or software.
(131) The cloud management system 308 can comprise a dedicated or centralized server and/or other software, hardware, and network tools to communicate with one or more networks 310a, 310b, 310c, such as the Internet or other public or private network, with all sets of resource servers 312a, 312b, 312c. The cloud management system 308 may be configured to query and identify the computing resources and components managed by the set of resource servers 312a, 312b, 312c needed and available for use in the cloud data center 306. Specifically, the cloud management system 308 may be configured to identify the hardware resources and components such as type and amount of processing power, type and amount of memory, type and amount of storage, type and amount of network bandwidth and the like, of the set of resource servers 312a, 312b, 312c needed and available for use in the cloud data center 306. Likewise, the cloud management system 308 can be configured to identify the software resources and components, such as type of Operating System (“OS”), application programs, and the like, of the set of resource servers 312a, 312b, 312c needed and available for use in the cloud data center 306.
(132) The present invention is also directed to computer products, otherwise referred to as computer program products, to provide software to the cloud computing system 300. Computer products store software on any computer useable medium, known now or in the future. Such software, when executed, may implement the methods according to certain embodiments of the invention. Examples of computer useable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks, tapes, magnetic storage devices, optical storage devices, Micro-Electro-Mechanical Systems (“MEMS”), nanotechnological storage device, etc.), and communication mediums (e.g., wired and wireless communications networks, local area networks, wide area networks, intranets, etc.). It is to be appreciated that the embodiments described herein may be implemented using software, hardware, firmware, or combinations thereof.
(133) The cloud computing system 300 of
(134) Certain embodiments of the present invention also may be implemented by utilizing software defined networks. In such embodiments, the system and methods may exist on the application layer in the context of software defined networking.
(135) While the disclosure is susceptible to various modifications and alternative forms, specific exemplary embodiments of the present invention have been shown by way of example in the drawings and have been described in detail. It should be understood, however, that there is no intent to limit the disclosure to the particular embodiments disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure as defined by the appended claims.