Last lecture - Traffic shaping with token bucket algorithm, Fair queueing Discussion on Fairness Today -- Max-min fairness, Routing ----------------------------------------------------------------------------- Question: Assume that we are given the link capacities (rates/bandwidth) and a set of flows (sender-receiver pairs) each going through some predetermined links, how should the bandwidth be distributed (allocated) to each flow? How do we define fairness of bandwidth allocation? Easy when there is single link, each flow gets an equal share Not obvious when there are multiple links. An allocation of rates (bandwidth) to a set of flows in a network is feasible if the sum of rates of flows passing through any link does not exceed the link's capacity. A rate allocation is max-min fair if it is feasible and for each flow i, the rate of i, r_i, cannot be increased while maintaining feasibility without decreasing some other flow j's rate for which r_j <= r_i. Given any feasible rate allocation, a link l is a bottleneck link for a flow i if a) flow i passes through l b) l's capacity is fully utilized c) r_i is larger than the rates allocated to other flows passing through link l Fact: a rate allocation is max-min fair if every flow has a bottleneck link. Examples illustrating max-min fairness. To incorporate the ideas of guaranteed bandwidth, we would apply the definition of max-min fairness to the extra (left-over) bandwidth of the link after the guaranteed bandwidth of each flow is subtracted from the link capacity. An example is given to illustrate this point. Introduction to routing a) Source routing b) Virtual circuit routing (e.g. in ATM) c) Datagram routing (e.g. IP)