Patent ID: 7613121

Claim:
A system that facilitates network data routing, comprising: a receiving component configured to: obtain a set of source data for transmitting over a network to a target node, and receive a set of congestion data from each of a plurality of neighboring nodes, each of the plurality of neighboring nodes directly neighboring the receiving component such that no nodes are between the receiving component and any of the plurality of neighboring nodes, the received set of congestion data corresponding to a cost for transmitting the set of source data via each of the respective plurality of neighboring nodes to the target node; a memory component configured to store the received set of congestion data, the set of congestion data stored prior to any request for the received congestion data from a requesting node; and an adaptive routing component configured to: dynamically route the set of source data to one of the plurality of neighboring nodes, the one of the plurality of neighboring nodes selected as a function of the received set of congestion data: perform at least one of either increase a data rate via a lowest cost network path, or decrease a data rate via a highest cost network path; and determine when w k > ∑ j ⁢ ( p ij + avg ⁢ ⁢ p j k ) ⁢ r ij k and then increase a rate of flow to a lowest cost neighbor j*=arg min j p j k : r ij * k ⁡ ( t + Δ ) = r ij * k ⁡ ( t ) + max ⁢ { M , w k - ∑ j ⁢ ( p ij + avg ⁢ ⁢ p j k ) ⁢ r ij k ⁡ ( t ) ( p ij * + min ⁢ ⁢ p j * k ) } , ( Eq . ⁢ 10 ) where w k is a cost budget for a session k, p ij is a price per unit flow of a link carrying data from node to node i to node j, r ij k is the rate of flow on a link carrying data from node i to node j for session k, and M is a maximum allowable increase in the rate of flow.