Claims
- 1. A method of allocating network resources, comprising the steps of:
measuring at least one network parameter related to at least one of an amount of network resource usage, an amount of network traffic, and a service quality parameter; applying a formula to the at least one network parameter to thereby generate a calculation result, the formula being associated with at least one of a Markovian process and a Poisson process; and using the calculation result to dynamically adjust an allocation of at least one of the network resources.
- 2. A method according to claim 1, wherein the at least one network parameter comprises at least one of a queue size and a packet loss rate.
- 3. A method according to claim 1, wherein the step of using the calculation result comprises adjusting at least one service weight associated with at least one of a class, a user, a data source, and a data destination.
- 4. A method according to claim 1, wherein the calculation result comprises at least one probability of overuse of the at least one of the network resources.
- 5. A method according to claim 4, wherein the at least one of the network resources comprises at least one of a memory and a bandwidth capacity.
- 6. A method according to claim 1, further comprising communicating a plurality of status signals to a central controller, wherein the status signals are separated by at least one time period, and wherein the status signals convey information about the at least one network parameter.
- 7. A method according to claim 1, further comprising calculating a probability of violation of at least one service goal.
- 8. A method according to claim 1, further comprising using the calculation result to calculate a probability of overuse of the at least one of the network resources.
- 9. A method according to claim 8, wherein the step of using the calculation result comprises communicating a warning signal to a central controller if the probability of overuse equals or exceeds a probability threshold.
- 10. A method according to claim 1, wherein the at least one network parameter comprises a rate of change of network traffic.
- 11. A method according to claim 10, further comprising adjusting the allocation if the rate change of network traffic equals or exceeds a traffic change rate threshold.
- 12. A method according to claim 1, wherein the measuring step comprises:
measuring, at a first time at which the at least one of the network resources is not overloaded, a queue size and a packet loss rate; measuring, at a second time at which the at least one of the network resources is overloaded, at least one of a packet arrival rate and a packet departure rate; and applying a first mathematical operation to the queue size, the packet loss rate, and the at least one of the packet arrival rate and the packet departure rate, thereby generating a first congestability parameter related to an actual susceptibility to congestion of the at least one of the network resources, wherein the step of applying the formula comprises: applying the formula to the at least one network parameter to thereby approximate a second congestability parameter related to an ideal susceptibility to congestion of the at least one of the network resources; applying a second mathematical operation to the first and second congestability parameters, thereby generating at least one of a congestability difference and a congestability ratio; and using the at least one of the congestability difference and the congestability ratio to determine a calculated amount of adjustment of the allocation of the at least one of the network resources, wherein the calculation result comprises the calculated amount of adjustment of the allocation, and wherein the step of using the calculation result comprises dynamically adjusting the allocation by an amount approximately equal to the calculated amount of adjustment.
- 13. A method of allocating network resources, comprising the steps of:
determining a first amount of data traffic flowing to a first network link, the first amount being associated with a first traffic aggregate; determining a second amount of data traffic flowing to the first network link, the second amount being associated with a second traffic aggregate; and using at least one adjustment rule to adjust at least one of a first aggregate amount and a second aggregate amount, the first aggregate amount comprising the first amount of data traffic and a third amount of data traffic associated with the first traffic aggregate and not flowing through the first network link, the second aggregate amount comprising the second amount of data traffic and a fourth amount of data traffic associated with the second traffic aggregate and not flowing through the first network link, and the at least one adjustment rule being based on at least one of fairness, a branch penalty, and maximization of an aggregated utility.
- 14. A method according to claim 13, wherein the at least one adjustment rule is based on a branch penalty.
- 15. A method according to claim 13, wherein the step of using the at least one adjustment rule comprises:
determining a first fairness weighting factor of the first traffic aggregate; determining a second fairness weighting factor of the second traffic aggregate, the second fairness weighting factor being unequal to the first fairness weighting factor; adjusting the first aggregate amount in accordance with the first fairness weighting factor; and adjusting the second aggregate amount in accordance with the second fairness weighting factor.
- 16. A method according to claim 13, wherein the step of using the at least one adjustment rule comprises:
determining a first utility function of the first traffic aggregate; determining a second utility function of the second traffic aggregate; aggregating the first and second utility functions, thereby generating an aggregated utility function; adjusting the first aggregate amount and the second aggregate amount, thereby maximizing the aggregated utility function.
- 17. A method according to claim 13, wherein the step of using the at least one adjustment rule comprises:
comparing the first and second amounts of data traffic to each other, thereby selecting a larger amount and a smaller amount; reducing the larger amount, thereby rendering the larger amount not significantly larger than the smaller amount.
- 18. A method according to claim 13, wherein the step of using the at least one adjustment rule comprises minimizing a sum of first and second object functions, the first object function being associated with a fairness rule, and the second object function being associated with a branch penalty rule.
- 19. A method according to claim 18, wherein the step of minimizing the sum comprises calculating a Penrose-Moore matrix inverse of a matrix comprising a plurality of traffic amounts, wherein each of the plurality of traffic amounts is associated with at least one of a plurality of users.
- 20. A method according to claim 13, wherein the step of using the at least one adjustment rule comprises minimizing at least one of a variance of a plurality of adjustment amounts, a sum of the plurality of adjustment amounts, and a sum of absolute values of the plurality of adjustment amounts, the plurality of adjustment amounts comprising an amount by which the first aggregate amount is adjusted and an amount by which the second aggregate amount is adjusted.
- 21. A method of determining a utility function, comprising the steps of:
partitioning at least one data set into at least one of an elastic class comprising a plurality of applications and having a heightened utility elasticity, a small multimedia class, and a large multimedia class, wherein the small and large multimedia classes are defined according to at least one resource usage threshold; and determining at least one form of at least one utility function, the form being tailored to the at least one of the elastic class, the small multimedia class, and at least one application within the large multimedia class.
- 22. A method according to claim 21, wherein the elastic class is transmitted using a transmission protocol in which a data sender performs an iterative loop, the iterative loop comprising the steps of:
receiving a feedback signal indicative of at least one of a congestion amount and a data loss rate; reducing a data transmission rate if the at least one of the congestion amount and the data loss rate is greater than a threshold value; and increasing the data transmission rate if the at least one of the congestion amount and the data loss rate is less than the threshold value.
- 23. A method according to claim 22, wherein the at least one form of the at least one utility function comprises an elastic class form tailored to the elastic class, the elastic class form being derived based upon macroscopic throughput loss behavior of the elastic class.
- 24. A method of determining a utility function, comprising the steps of:
approximating a plurality of utility functions using a plurality of piece-wise linear utility functions; and aggregating the plurality of piece-wise linear utility functions to thereby form an aggregated utility function comprising an upper envelope function derived from the plurality of piece-wise linear utility functions, the upper envelope function comprising a plurality of linear segments, each of the plurality of linear segments having a slope having upper and lower limits.
- 25. A method according to claim 24, wherein the aggregated utility function comprises a function of at least one resource, the method further comprising:
determining an available amount of the at least one resource; determining at least one utility value of a portion of the aggregated utility function, the portion of the aggregated utility function being associated with the available amount of the at least one resource; using the at least one utility value of the portion of the aggregated utility function to select at least one portion of at least one of the plurality of piece-wise linear utility functions, the at least one portion being associated with the portion of the aggregated utility function; using the at least one portion to determine an amount of the at least one resource to be allocated to at least one data category.
- 26. A method according to claim 25, wherein the at least one resource comprises a data communication network resource, wherein each of the plurality of utility functions is associated with one of a plurality of service classes, and wherein the at least one data category comprises the plurality of service classes.
- 27. A method according to claim 24, wherein the aggregated utility function is associated with data transmitted between a first ingress and a selected egress, the method further comprising:
calculating a second utility function associated with data transmitted between a second ingress and the selected egress; and aggregating the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 28. A method according to claim 27, wherein the step of aggregating the aggregated utility function and the second utility function comprises:
applying a first weighting factor to the aggregated utility function, thereby generating a first weighted utility function; applying a second weighting factor to the second utility function, thereby generating a second weighted utility function; and aggregating the first and second weighted utility functions, thereby generating the second-level aggregated utility function.
- 29. A method according to claim 24, wherein the aggregated utility function is associated with a first data aggregate, the method further comprising:
calculating a second utility function associated with a second data aggregate; and aggregating the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 30. A method according to claim 24, wherein the aggregated utility function is associated with a first data aggregate, the method further comprising:
weighting the aggregated utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of a data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; approximating a utility function of a second data aggregate; weighting the utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and controlling at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 31. A method according to claim 24, wherein the step of aggregating the plurality of piece-wise linear utility functions comprises weighting each of the plurality of piece-wise linear utility functions using one of a plurality of weighting factors, wherein at least two of the plurality of weighting factors are unequal.
- 32. A method according to claim 24, wherein each of the plurality of utility functions comprises a function of a data communication network resource.
- 33. A method of allocating resources, comprising the steps of:
approximating a first utility function using a first piece-wise linear utility function, wherein the first utility function is associated with a first resource user category; approximating a second utility function using a second piece-wise linear utility function, wherein the second utility function is associated with a second resource user category; weighting the first piece-wise linear utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility associated with the first resource user category upon a first amount of at least one resource, the first amount of the at least one resource being allocated to the first resource user category; weighting the second piece-wise linear utility function using a second weighting factor unequal to the first weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility associated with the second resource user category upon a second amount of the at least one resource, the second amount of the at least one resource being allocated to the second resource user category; and controlling at least one of the first and second amounts of the at least one resource such that the weighted utility associated with the first resource user category is approximately equal to the weighted utility associated with the second resource user category.
- 34. A method according to claim 33, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, and wherein the at least one resource comprises a data communication network resource, the method further comprising:
aggregating the first and second data sets, thereby forming a first data aggregate; generating an approximate utility function of the first data aggregate; weighting the approximate utility function of the first data aggregate using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of the data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; generating an approximate a utility function of a second data aggregate; weighting the approximate utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and controlling at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 35. A method according to claim 33, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, and wherein the at least one resource comprises a data communication network resource, the method further comprising:
aggregating the first and second data sets, thereby forming a first data aggregate; calculating a first aggregated utility function associated with the first data aggregate; calculating a second aggregated utility function associated with a second data aggregate; and aggregating the first and second aggregated utility functions, thereby generating a second-level aggregated utility function.
- 36. A method according to claim 33, wherein the at least one resource comprises a data communication network resource.
- 37. A method according to claim 36, wherein at least one of the first and second resource user categories comprises at least one service class.
- 38. A method of allocating network resources, comprising the steps of:
using a fairness-based algorithm to identify a selected set of at least one member egress having a first amount of congestability, wherein the selected set is defined according to the first amount of congestability, wherein at least one non-member egress is excluded from the selected set, the non-member egress having a second amount of congestability unequal to the first amount of congestability, wherein the first amount of congestability is dependent upon a first amount of a network resource, the first amount of the network resource being allocated to the member egress, and wherein the second amount of congestability is dependent upon a second amount of the network resource, the second amount of the network resource being allocated to the non-member egress; and adjusting at least one of the first and second amounts of the network resource, thereby causing the second amount of congestability to become approximately equal to the first amount of congestability, thereby increasing a number of member egresses in the selected set.
- 39. A method according to claim 38, wherein the first amount of congestability is greater than the second amount of congestability, and wherein the adjusting step comprises reducing the second amount of the network resource, thereby causing the second amount of congestability to increase by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
- 40. A method according to claim 38, wherein the first amount of congestability is less than the second amount of congestability, and wherein the adjusting step comprises increasing the second amount of the network resource, thereby causing the second amount of congestability to decrease by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
- 41. An apparatus for allocating network resources, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
measuring at least one network parameter related to at least one of an amount of network resource usage, an amount of network traffic, and a service quality parameter; applying a formula to the at least one network parameter to thereby generate a calculation result, the formula being associated with at least one of a Markovian process and a Poisson process; and using the calculation result to dynamically adjust an allocation of at least one of the network resources.
- 42. An apparatus as recited in claim 41, wherein the at least one network parameter comprises at least one of a queue size and a packet loss rate.
- 43. An apparatus as recited in claim 41, wherein the step of using the calculation result comprises adjusting at least one service weight associated with at least one of a class, a user, a data source, and a data destination.
- 44. An apparatus as recited in claim 41, wherein the calculation result comprises at least one probability of overuse of the at least one of the network resources.
- 45. An apparatus as recited in claim 44, wherein the at least one of the network resources comprises at least one of a memory and a bandwidth capacity.
- 46. An apparatus as recited in claim 41, wherein the set of instructions further directs the processor to communicate a plurality of status signals to a central controller, wherein the status signals are separated by at least one time period, and wherein the status signals convey information about the at least one network parameter.
- 47. An apparatus as recited in claim 41, wherein the set of instructions further directs the processor to calculate a probability of violation of at least one service goal.
- 48. An apparatus as recited in claim 41, wherein the set of instructions further directs the processor to use the calculation result to calculate a probability of overuse of the at least one of the network resources.
- 49. An apparatus as recited in claim 48, wherein the set of instructions further directs the processor to communicate a warning signal to a central controller if the probability of overuse equals or exceeds a probability threshold.
- 50. An apparatus as recited in claim 41, wherein the at least one network parameter comprises a rate of change of network traffic.
- 51. An apparatus as recited in claim 50, wherein the set of instructions further directs the processor to adjust the allocation if the rate change of network traffic equals or exceeds a traffic change rate threshold.
- 52. An apparatus as recited in claim 41, wherein the measuring step comprises:
measuring, at a first time at which the at least one of the network resources is not overloaded, a queue size and a packet loss rate; measuring, at a second time at which the at least one of the network resources is overloaded, at least one of a packet arrival rate and a packet departure rate; and applying a first mathematical operation to the queue size, the packet loss rate, and the at least one of the packet arrival rate and the packet departure rate, thereby generating a first congestability parameter related to an actual susceptibility to congestion of the at least one of the network resources, wherein the step of applying the formula comprises: applying the formula to the at least one network parameter to thereby approximate a second congestability parameter related to an ideal susceptibility to congestion of the at least one of the network resources; applying a second mathematical operation to the first and second congestability parameters, thereby generating at least one of a congestability difference and a congestability ratio; and using the at least one of the congestability difference and the congestability ratio to determine a calculated amount of adjustment of the allocation of the at least one of the network resources, wherein the calculation result comprises the calculated amount of adjustment of the allocation, and wherein the step of using the calculation result comprises dynamically adjusting the allocation by an amount approximately equal to the calculated amount of adjustment.
- 53. An apparatus for allocating network resources, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
determining a first amount of data traffic flowing to a first network link, the first amount being associated with a first traffic aggregate; determining a second amount of data traffic flowing to the first network link, the second amount being associated with a second traffic aggregate; and using at least one adjustment rule to adjust at least one of a first aggregate amount and a second aggregate amount, the first aggregate amount comprising the first amount of data traffic and a third amount of data traffic associated with the first traffic aggregate and not flowing through the first network link, the second aggregate amount comprising the second amount of data traffic and a fourth amount of data traffic associated with the second traffic aggregate and not flowing through the first network link, and the at least one adjustment rule being based on at least one of fairness, a branch penalty, and maximization of an aggregated utility.
- 54. An apparatus as recited in claim 53, wherein the at least one adjustment rule is based on a branch penalty.
- 55. An apparatus as recited in claim 53, wherein the step of using the at least one adjustment rule comprises:
determining a first fairness weighting factor of the first traffic aggregate; determining a second fairness weighting factor of the second traffic aggregate, the second fairness weighting factor being unequal to the first fairness weighting factor; adjusting the first aggregate amount in accordance with the first fairness weighting factor; and adjusting the second aggregate amount in accordance with the second fairness weighting factor.
- 56. An apparatus as recited in claim 53, wherein the step of using the at least one adjustment rule comprises:
determining a first utility function of the first traffic aggregate; determining a second utility function of the second traffic aggregate; aggregating the first and second utility functions, thereby generating an aggregated utility function; adjusting the first aggregate amount and the second aggregate amount, thereby maximizing the aggregated utility function.
- 57. An apparatus as recited in claim 53, wherein the step of using the at least one adjustment rule comprises:
comparing the first and second amounts of data traffic to each other, thereby selecting larger amount and a smaller amount; reducing the larger amount, thereby rendering the larger amount not significantly larger than the smaller amount.
- 58. An apparatus as recited in claim 53, wherein the step of using the at least one adjustment rule comprises minimizing a sum of first and second object functions, the first object function being associated with a fairness rule, and the second object function being associated with a branch penalty rule.
- 59. An apparatus as recited in claim 58, wherein the step of minimizing the sum comprises calculating a Penrose-Moore matrix inverse of a matrix comprising a plurality of traffic amounts, wherein each of the plurality of traffic amounts is associated with at least one of a plurality of users.
- 60. An apparatus as recited in claim 53, wherein the step of using the at least one adjustment rule comprises minimizing at least one of a variance of a plurality of adjustment amounts, a sum of the plurality of adjustment amounts, and a sum of absolute values of the plurality of adjustment amounts, the plurality of adjustment amounts comprising an amount by which the first aggregate amount is adjusted and an amount by which the second aggregate amount is adjusted.
- 61. An apparatus for determining a utility function, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
partitioning at least one data set into at least one of an elastic class comprising a plurality of applications and having a heightened utility elasticity, a small multimedia class, and a large multimedia class, wherein the small and large multimedia classes are defined according to at least one resource usage threshold; and determining at least one form of at least one utility function, the form being tailored to the at least one of the elastic class, the small multimedia class, and at least one application within the large multimedia class.
- 62. An apparatus as recited in claim 61, wherein the elastic class is transmitted using a transmission protocol in which a data sender performs an iterative loop, the iterative loop comprising the steps of:
receiving a feedback signal indicative of at least one of a congestion amount and a data loss rate; reducing a data transmission rate if the at least one of the congestion amount and the data loss rate is greater than a threshold value; and increasing the data transmission rate if the at least one of the congestion amount and the data loss rate is less than the threshold value.
- 63. An apparatus as recited in claim 62, wherein the at least one form of the at least one utility function comprises an elastic class form tailored to the elastic class, the elastic class form being derived based upon macroscopic throughput loss behavior of the elastic class.
- 64. An apparatus for determining a utility function, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
approximating a plurality of utility functions using a plurality of piece-wise linear utility functions; and aggregating the plurality of piece-wise linear utility functions to thereby form an aggregated utility function comprising an upper envelope function derived from the plurality of piece-wise linear utility functions, the upper envelope function comprising a plurality of linear segments, each of the plurality of linear segments having a slope having upper and lower limits
- 65. An apparatus as recited in claim 64, wherein the aggregated utility function comprises a function of at least one resource, and wherein the set of instructions further directs the processor to:
determine an available amount of the at least one resource; determine at least one utility value of a portion of the aggregated utility function, the portion of the aggregated utility function being associated with the available amount of the at least one resource; use the at least one utility value of the portion of the aggregated utility function to select at least one portion of at least one of the plurality of piece-wise linear utility functions, the at least one portion being associated with the portion of the aggregated utility function; use the at least one portion to determine an amount of the at least one resource to be allocated to at least one data category.
- 66. An apparatus as recited in claim 65, wherein the at least one resource comprises a data communication network resource, wherein each of the plurality of utility functions is associated with one of a plurality of service classes, and wherein the at least one data category comprises the plurality of service classes.
- 67. An apparatus as recited in claim 64, wherein the aggregated utility function is associated with data transmitted between a first ingress and a selected egress, and wherein the set of instructions further directs the processor to:
calculate a second utility function associated with data transmitted between a second ingress and the selected egress; and aggregate the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 68. An apparatus as recited in claim 67, wherein the step of aggregating the aggregated utility function and the second utility function comprises:
applying a first weighting factor to the aggregated utility function, thereby generating a first weighted utility function; applying a second weighting factor to the second utility function, thereby generating a second weighted utility function; and aggregating the first and second weighted utility functions, thereby generating the second-level aggregated utility function.
- 69. An apparatus as recited in claim 64, wherein the aggregated utility function is associated with a first data aggregate, and wherein the set of instructions further directs the processor to:
calculate a second utility function associated with a second data aggregate; and aggregate the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 70. An apparatus as recited in claim 64, wherein the aggregated utility function is associated with a first data aggregate, and wherein the set of instructions further directs the processor to:
weight the aggregated utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of a data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; approximate a utility function of a second data aggregate; weight the utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and control at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 71. An apparatus as recited in claim 64, wherein the step of aggregating the plurality of piece-wise linear utility functions comprises weighting each of the plurality of piece-wise linear utility functions using one of a plurality of weighting factors, wherein at least two of the plurality of weighting factors are unequal.
- 72. An apparatus as recited in claim 64, wherein each of the plurality of utility functions comprises a function of a data communication network resource.
- 73. An apparatus for allocating resources, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
approximating a first utility function using a first piece-wise linear utility function, wherein the first utility function is associated with a first resource user category; approximating a second utility function using a second piece-wise linear utility function, wherein the second utility function is associated with a second resource user category; weighting the first piece-wise linear utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility associated with the first resource user category upon a first amount of at least one resource, the first amount of the at least one resource being allocated to the first resource user category; weighting the second piece-wise linear utility function using a second weighting factor unequal to the first weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility associated with the second resource user category upon a second amount of the at least one resource, the second amount of the at least one resource being allocated to the second resource user category; and controlling at least one of the first and second amounts of the at least one resource such that the weighted utility associated with the first resource user category is approximately equal to the weighted utility associated with the second resource user category.
- 74. An apparatus as recited in claim 73, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, wherein the at least one resource comprises a data communication network resource, and wherein the set of instructions further directs the processor to:
aggregate the first and second data sets, thereby forming a first data aggregate; generate an approximate utility function of the first data aggregate; weight the approximate utility function of the first data aggregate using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of the data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; generate an approximate utility function of a second data aggregate; weight the approximate utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and control at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 75. An apparatus as recited in claim 73, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, wherein the at least one resource comprises a data communication network resource, and wherein the set of instructions further directs the processor to:
aggregate the first and second data sets, thereby forming a first data aggregate; calculate a first aggregated utility function associated with the first data aggregate; calculate a second aggregated utility function associated with a second data aggregate; and aggregate the first and second aggregated utility functions, thereby generating a second-level aggregated utility function.
- 76. An apparatus as recited in claim 73, wherein the at least one resource comprises a data communication network resource.
- 77. An apparatus as recited in claim 76, wherein at least one of the first and second resource user categories comprises at least one service class.
- 78. An apparatus for allocating network resources, comprising a processor controlled by a set of instructions directing the processor to perform the steps of:
using a fairness-based algorithm to identify a selected set of at least one member egress having a first amount of congestability, wherein the selected set is defined according to the first amount of congestability, wherein at least one non-member egress is excluded from the selected set, the non-member egress having a second amount of congestability unequal to the first amount of congestability, wherein the first amount of congestability is dependent upon a first amount of a network resource, the first amount of the network resource being allocated to the member egress, and wherein the second amount of congestability is dependent upon a second amount of the network resource, the second amount of the network resource being allocated to the non-member egress; and adjusting at least one of the first and second amounts of the network resource, thereby causing the second amount of congestability to become approximately equal to the first amount of congestability, thereby increasing a number of member egresses in the selected set.
- 79. An apparatus as recited in claim 78, wherein the first amount of congestability is greater than the second amount of congestability, and wherein the adjusting step comprises reducing the second amount of the network resource, thereby causing the second amount of congestability to increase by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
- 80. An apparatus as recited in claim 78, wherein the first amount of congestability is less than the second amount of congestability, and wherein the adjusting step comprises increasing the second amount of the network resource, thereby causing the second amount of congestability to decrease by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
- 81. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
measuring at least one network parameter related to at least one of an amount of network resource usage, an amount of network traffic, and a service quality parameter; applying a formula to the at least one network parameter to thereby generate a calculation result, the formula being associated with at least one of a Markovian process and a Poisson process; and using the calculation result to dynamically adjust an allocation of at least one of the network resources.
- 82. A computer-readable medium as recited in claim 81, wherein the at least one network parameter comprises at least one of a queue size and a packet loss rate.
- 83. A computer-readable medium as recited in claim 81, wherein the step of using the calculation result comprises adjusting at least one service weight associated with at least one of a class, a user, a data source, and a data destination.
- 84. A computer-readable medium as recited in claim 81, wherein the calculation result comprises at least one probability of overuse of the at least one of the network resources.
- 85. A computer-readable medium as recited in claim 84, wherein the at least one of the network resources comprises at least one of a memory and a bandwidth capacity.
- 86. A computer-readable medium as recited in claim 81, wherein the set of instructions is further configured to direct the processor to communicate a plurality of status signals to a central controller, wherein the status signals are separated by at least one time period, and wherein the status signals convey information about the at least one network parameter.
- 87. A computer-readable medium as recited in claim 81, wherein the set of instructions is further configured to direct the processor to calculate a probability of violation of at least one service goal.
- 88. A computer-readable medium as recited in claim 81, wherein the set of instructions is further configured to direct the processor to use the calculation result to calculate a probability of overuse of the at least one of the network resources.
- 89. A computer-readable medium as recited in claim 88, wherein the set of instructions is further configured to direct the processor to communicate a warning signal to a central controller if the probability of overuse equals or exceeds a probability threshold.
- 90. A computer-readable medium as recited in claim 81, wherein the at least one network parameter comprises a rate of change of network traffic.
- 91. A computer-readable medium as recited in claim 90, wherein the set of instructions is further configured to direct the processor to adjust the allocation if the rate change of network traffic equals or exceeds a traffic change rate threshold.
- 92. A computer-readable medium as recited in claim 81, wherein the measuring step comprises:
measuring, at a first time at which the at least one of the network resources is not overloaded, a queue size and a packet loss rate; measuring, at a second time at which the at least one of the network resources is overloaded, at least one of a packet arrival rate and a packet departure rate; and applying a first mathematical operation to the queue size, the packet loss rate, and the at least one of the packet arrival rate and the packet departure rate, thereby generating a first congestability parameter related to an actual susceptibility to congestion of the at least one of the network resources, wherein the step of applying the formula comprises: applying the formula to the at least one network parameter to thereby approximate a second congestability parameter related to an ideal susceptibility to congestion of the at least one of the network resources; applying a second mathematical operation to the first and second congestability parameters, thereby generating at least one of a congestability difference and a congestability ratio; and using the at least one of the congestability difference and the congestability ratio to determine a calculated amount of adjustment of the allocation of the at least one of the network resources, wherein the calculation result comprises the calculated amount of adjustment of the allocation, and wherein the step of using the calculation result comprises dynamically adjusting the allocation by an amount approximately equal to the calculated amount of adjustment.
- 93. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
determining a first amount of data traffic flowing to a first network link, the first amount being associated with a first traffic aggregate; determining a second amount of data traffic flowing to the first network link, the second amount being associated with a second traffic aggregate; and using at least one adjustment rule to adjust at least one of a first aggregate amount and a second aggregate amount, the first aggregate amount comprising the first amount of data traffic and a third amount of data traffic associated with the first traffic aggregate and not flowing through the first network link, the second aggregate amount comprising the second amount of data traffic and a fourth amount of data traffic associated with the second traffic aggregate and not flowing through the first network link, and the at least one adjustment rule being based on at least one of fairness, a branch penalty, and maximization of an aggregated utility.
- 94. A computer-readable medium as recited in claim 93, wherein the at least one adjustment rule is based on a branch penalty.
- 95. A computer-readable medium as recited in claim 93, wherein the step of using the at least one adjustment rule comprises:
determining a first fairness weighting factor of the first traffic aggregate; determining a second fairness weighting factor of the second traffic aggregate, the second fairness weighting factor being unequal to the first fairness weighting factor; adjusting the first aggregate amount in accordance with the first fairness weighting factor; and adjusting the second aggregate amount in accordance with the second fairness weighting factor.
- 96. A computer-readable medium as recited in claim 93, wherein the step of using the at least one adjustment rule comprises:
determining a first utility function of the first traffic aggregate; determining a second utility function of the second traffic aggregate; aggregating the first and second utility functions, thereby generating an aggregated utility function; adjusting the first aggregate amount and the second aggregate amount, thereby maximizing the aggregated utility function.
- 97. A computer-readable medium as recited in claim 93, wherein the step of using the at least one adjustment rule comprises:
comparing the first and second amounts of data traffic to each other, thereby selecting larger amount and a smaller amount; reducing the larger amount, thereby rendering the larger amount not significantly larger than the smaller amount.
- 98. A computer-readable medium as recited in claim 93, wherein the step of using the at least one adjustment rule comprises minimizing a sum of first and second object functions, the first object function being associated with a fairness rule, and the second object function being associated with a branch penalty rule.
- 99. A computer-readable medium as recited in claim 98, wherein the step of minimizing the sum comprises calculating a Penrose-Moore matrix inverse of a matrix comprising a plurality of traffic amounts, wherein each of the plurality of traffic amounts is associated with at least one of a plurality of users.
- 100. A computer-readable medium as recited in claim 93, wherein the step of using the at least one adjustment rule comprises minimizing at least one of a variance of a plurality of adjustment amounts, a sum of the plurality of adjustment amounts, and a sum of absolute values of the plurality of adjustment amounts, the plurality of adjustment amounts comprising an amount by which the first aggregate amount is adjusted and an amount by which the second aggregate amount is adjusted.
- 101. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
partitioning at least one data set into at least one of an elastic class comprising a plurality of applications and having a heightened utility elasticity, a small multimedia class, and a large multimedia class, wherein the small and large multimedia classes are defined according to at least one resource usage threshold; and determining at least one form of at least one utility function, the form being tailored to the at least one of the elastic class, the small multimedia class, and at least one application within the large multimedia class.
- 102. A computer-readable medium as recited in claim 101, wherein the elastic class is transmitted using a transmission protocol in which a data sender performs an iterative loop, the iterative loop comprising the steps of:
receiving a feedback signal indicative of at least one of a congestion amount and a data loss rate; reducing a data transmission rate if the at least one of the congestion amount and the data loss rate is greater than a threshold value; and increasing the data transmission rate if the at least one of the congestion amount and the data loss rate is less than the threshold value.
- 103. A computer-readable medium as recited in claim 102, wherein the at least one form of the at least one utility function comprises an elastic class form tailored to the elastic class, the elastic class form being derived based upon macroscopic throughput loss behavior of the elastic class.
- 104. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
approximating a plurality of utility functions using a plurality of piece-wise linear utility functions; and aggregating the plurality of piece-wise linear utility functions to thereby form an aggregated utility function comprising an upper envelope function derived from the plurality of piece-wise linear utility functions, the upper envelope function comprising a plurality of linear segments, each of the plurality of linear segments having a slope having upper and lower limits.
- 105. A computer-readable medium as recited in claim 104, wherein the aggregated utility function comprises a function of at least one resource, and wherein the set of instructions is further configured to direct the processor to:
determine an available amount of the at least one resource; determine at least one utility value of a portion of the aggregated utility function, the portion of the aggregated utility function being associated with the available amount of the at least one resource; use the at least one utility value of the portion of the aggregated utility function to select at least one portion of at least one of the plurality of piece-wise linear utility functions, the at least one portion being associated with the portion of the aggregated utility function; use the at least one portion to determine an amount of the at least one resource to be allocated to at least one data category.
- 106. A computer-readable medium as recited in claim 105, wherein the at least one resource comprises a data communication network resource, wherein each of the plurality of utility functions is associated with one of a plurality of service classes, and wherein the at least one data category comprises the plurality of service classes.
- 107. A computer-readable medium as recited in claim 104, wherein the aggregated utility function is associated with data transmitted between a first ingress and a selected egress, and wherein the set of instructions is further configured to direct the processor to:
calculate a second utility function associated with data transmitted between a second ingress and the selected egress; and aggregate the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 108. A computer-readable medium as recited in claim 107, wherein the step of aggregating the aggregated utility function and the second utility function comprises:
applying a first weighting factor to the aggregated utility function, thereby generating a first weighted utility function; applying a second weighting factor to the second utility function, thereby generating a second weighted utility function; and aggregating the first and second weighted utility functions, thereby generating the second-level aggregated utility function.
- 109. A computer-readable medium as recited in claim 104, wherein the aggregated utility function is associated with a first data aggregate, and wherein the set of instructions is further configured to direct the processor to:
calculate a second utility function associated with a second data aggregate; and aggregate the aggregated utility function and the second utility function, thereby generating a second-level aggregated utility function.
- 110. A computer-readable medium as recited in claim 104, wherein the aggregated utility function is associated with a first data aggregate, and wherein the set of instructions is further configured to direct the processor to:
weight the aggregated utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of a data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; approximate a utility function of a second data aggregate; weight the utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and control at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 111. A computer-readable medium as recited in claim 104, wherein the step of aggregating the plurality of piece-wise linear utility functions comprises weighting each of the plurality of piece-wise linear utility functions using one of a plurality of weighting factors, wherein at least two of the plurality of weighting factors are unequal.
- 112. A computer-readable medium as recited in claim 104, wherein each of the plurality of utility functions comprises a function of a data communication network resource.
- 113. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
approximating a first utility function using a first piece-wise linear utility function, wherein the first utility function is associated with a first resource user category; approximating a second utility function using a second piece-wise linear utility function, wherein the second utility function is associated with a second resource user category; weighting the first piece-wise linear utility function using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility associated with the first resource user category upon a first amount of at least one resource, the first amount of the at least one resource being allocated to the first resource user category; weighting the second piece-wise linear utility function using a second weighting factor unequal to the first weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility associated with the second resource user category upon a second amount of the at least one resource, the second amount of the at least one resource being allocated to the second resource user category; and controlling at least one of the first and second amounts of the at least one resource such that the weighted utility associated with the first resource user category is approximately equal to the weighted utility associated with the second resource user category.
- 114. A computer-readable medium as recited in claim 113, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, wherein the at least one resource comprises a data communication network resource, and wherein the set of instructions is further configured to direct the processor to:
aggregate the first and second data sets, thereby forming a first data aggregate; generate an approximate utility function of the first data aggregate; weight the approximate utility function of the first data aggregate using a first weighting factor, thereby generating a first weighted utility function, the first weighted utility function representing a dependence of a weighted utility of the first data aggregate upon a first amount of the data communication network resource, the first amount of the data communication network resource being allocated to the first data aggregate; generate an approximate utility function of a second data aggregate; weight the approximate utility function of the second data aggregate using a second weighting factor, thereby generating a second weighted utility function, the second weighted utility function representing a dependence of a weighted utility of the second data aggregate upon a second amount of the data communication network resource, the second amount of the data communication network resource being allocated to the second data aggregate; and control at least one of the first and second amounts of the data communication network resource, thereby causing the weighted utility of the first data aggregate to be approximately equal to the weighted utility of the second data aggregate.
- 115. A computer-readable medium as recited in claim 113, wherein the first resource user category defines a first data set, wherein the second resource user category defines a second data set, wherein the at least one resource comprises a data communication network resource, and wherein the set of instructions is further configured to direct the processor to:
aggregate the first and second data sets, thereby forming a first data aggregate; calculate a first aggregated utility function associated with the first data aggregate; calculate a second aggregated utility function associated with a second data aggregate; and aggregate the first and second aggregated utility functions, thereby generating a second-level aggregated utility function.
- 116. A computer-readable medium as recited in claim 113, wherein the at least one resource comprises a data communication network resource.
- 117. A computer-readable medium as recited in claim 116, wherein at least one of the first and second resource user categories comprises at least one service class.
- 118. A computer-readable medium having a set of instructions configured to direct a processor to perform the steps of:
using a fairness-based algorithm to identify a selected set of at least one member egress having a first amount of congestability, wherein the selected set is defined according to the first amount of congestability, wherein at least one non-member egress is excluded from the selected set, the non-member egress having a second amount of congestability unequal to the first amount of congestability, wherein the first amount of congestability is dependent upon a first amount of a network resource, the first amount of the network resource being allocated to the member egress, and wherein the second amount of congestability is dependent upon a second amount of the network resource, the second amount of the network resource being allocated to the non-member egress; and adjusting at least one of the first and second amounts of the network resource, thereby causing the second amount of congestability to become approximately equal to the first amount of congestability, thereby increasing a number of member egresses in the selected set.
- 119. A computer-readable medium as recited in claim 118, wherein the first amount of congestability is greater than the second amount of congestability, and wherein the adjusting step comprises reducing the second amount of the network resource, thereby causing the second amount of congestability to increase by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
- 120. A computer-readable medium as recited in claim 118, wherein the first amount of congestability is less than the second amount of congestability, and wherein the adjusting step comprises increasing the second amount of the network resource, thereby causing the second amount of congestability to decrease by an amount sufficient to render the second amount of congestability approximately equal to the first amount of congestability.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application claims priority to United States Provisional Patent Application entitled “Dynamic Provisioning of Network Capacity to Support Quantitatively Differentiated Internet Services,” Serial No. 60/188,899, which was filed on Mar. 23, 2000.
PCT Information
Filing Document |
Filing Date |
Country |
Kind |
PCT/US01/08057 |
3/13/2001 |
WO |
|