Pricing a Shared Access Link for Fair and Efficient Operation with Variable User Data Rates Joy Kuri Sharmili Roy Centre for Electronics Design and Technology Indian Institute of Science Bangalore, India Centre for Electronics Design and Technology Indian Institute of Science Bangalore, India kuri@cedt.iisc.ernet.in sharmili@cedt.iisc.ernet.in ABSTRACT The literature on pricing implicitly assumes an “infinite data” model, in which sources can sustain any data rate indefinitely. We assume a more realistic “finite data” model, in which sources occasionally run out of data; this leads to variable user data rates. Further, we assume that users have contracts with the service provider, specifying the rates at which they can inject traffic into the network. Our objective is to study how prices can be set such that a single link can be shared efficiently and fairly among users in a dynamically changing scenario where a subset of users occasionally has little data to send. User preferences are modelled by concave increasing utility functions. Further, we introduce two additional elements: a convex increasing disutility function and a convex increasing multiplicative congestion-penalty function. The disutility function takes the shortfall (contracted rate minus present rate) as its argument, and essentially encourages users to send traffic at their contracted rates, while the congestion-penalty function discourages heavy users from sending excess data when the link is congested. We obtain simple necessary and sufficient conditions on prices for fair and efficient link sharing; moreover, we show that a single price for all users achieves this. We illustrate the ideas using some simple experiments. Categories and Subject Descriptors C.2.5 [local and Wide-Area Networks]: Access Schemes General Terms Design, Performance, Theory Keywords Pricing, Congestion, Fairness 1. INTRODUCTION AND RELATED WORK Pricing has been suggested as a mechanism to control congestion and ensure fair and efficient operation of networks. In much of the published literature ([3] [4] [6] [12] [13], [1] [5]), elastic traffic is considered and the context of operation is as follows. Each user of the network has a utility function that quantifies the benefit that she derives from the network. The utility function is an increasing (often, concave increasing) function of the rate at which the user can send data through the network. The system objective is maximization of the sum of all users’ utility functions. The problem is to find the vector of users’ rates such that the system objective is realized. The resulting constrained optimization problem can be solved in a centralized manner if all the utility functions were known. In practice, however, there is no central authority that computes rates and further, the users’ utility functions are not known. In [3], Kelly proposed a decentralized method to arrive at the system-optimal rates. In this method, the network declares prices, and each user individually solves the problem of maximizing her net benefit or net utility, which is her utility minus the total cost paid to the network. He shows that there exists a vector of prices such that the vector of individually optimal rates arrived at by the users is, indeed, the system-optimal rate vector. Nevertheless, several authors have pointed out that it is enough to work under the assumption of direct revelation, in which the users’ utility functions are revealed to a central controlling authority ([7], [2]). In other words, we do not lose anything by assuming that the users’ utility functions are known because there always exists an equivalent formulation based on direct revelation. Accordingly, we assume in this paper that users’ utility functions are known to the central authority (the service provider) which can then use this knowledge to design appropriate prices. It will turn out that the complete utility function need not be known; actually, far less knowledge suffices — only the derivative of the utility function at a single point is enough. Further, [8] mentions that prices are used in two kinds of problems: one in which the objective is to promote fair and efficient resource sharing, and another in which the objective is maximization of the revenue earned by the central authority. As in [8], our objective in this paper is the former, viz., fair and efficient sharing of a single access link; we do not consider the problem of revenue maximization. The published literature, however, tacitly assumes an infinite data model. Every source is assumed to have an infinite backlog of data. The implication is that a source can send traffic at any rate (obtained from the solution to the individual optimization problem) continuously — there is never a dearth of data. In practice, of course, sources will occasionally run out of data. We consider a finite data model, in which, occasionally, a source does not have enough data to send. Therefore, a source may not be able to sustain a data rate that is suitable for a fair and efficient operation of the system. Further, in practice, users have contracts with the service provider (SP) that specify the rates at which they can send traffic into the network. Hence, the practical problem is often not to find out the correct vector of rates by using a distributed algorithm—the correct vector is simply the vector of contracted rates. Rather, it is important to devise a scheme of operation such that any slack caused by a user who is sending traffic at a rate lower than her contracted rate— referred to as an “underuser” henceforth—can be utilized by others. Correspondingly, a user with plenty of data available is referred to as an “overuser” because she can send data at a rate higher than her contracted rate. We also believe that one must have congestion-dependent and user-dependent pricing. If the network is not congested, then the price should remain low, so that users with excess data can utilize the network. But when the network becomes congested, the price should not increase equally for all users; rather, those users that have exceeded their contracted rates and have caused congestion should be charged heavily, while those who are compliant should be charged at no more than their nominal rates. Even though our framework allows different prices for different users, our analysis shows that a single price for all users suffices. This is attractive, because the management problem of maintaining prices for a possibly large number of users is solved very simply. Summarizing, our approach is different from that in the literature in the following respects: (a) finite data model, (b) contracted rates and (c) congestion-dependent as well as user-dependent pricing. We are interested in ensuring that network operation is characterised by the following. • When some users are underusers because of limited available data, it should be possible for others to increase their rates so as to utilize the slack. Does there exist a pricing scheme such that users with plenty of data available are encouraged to become overusers? This means that in this situation, these users’ net utilities should be maximized at values higher than the corresponding contracted rates. • Later, when underusers wish to increase their rates because they have more data to send, they should have the incentive to do so and overusers should be encouraged to back down. Does their exist a pricing scheme such that this happens? Again, this means that the users’ net utility values should be maximized at the appropriate points. In [9], [11] and [10], the authors consider priority queueing to provide differentiated services to a mix of elastic and real-time traffic. Users choose the priority class to which their traffic belongs. Higher priority traffic experiences better service but its price is higher. Game-theoretic analysis is used to investigate whether a system equilibrium exists. [9] also considers how the network operator can set prices such that revenue is maximized at equilibrium. In our work, we do not have multiple classes and we do not consider priority queueing. There is only one traffic class, carrying elastic traffic. 2. MODEL 2.1 Utility function D(x) i Shortfall (x) γi λi (shortfall = 0) Figure 1: An example disutility function. The function need not be continuous at λi = γi . Disutility is zero for λi ≥ γi , and convex increasing in shortfall when the shortfall is strictly positive. We consider a single link which is shared among N users, where N is a given and fixed integer. The capacity of the link is C bits/sec. We use a fluid model for traffic. User i generates fluid at rate λi . We emphasize that this is a variable, because the user may not be able to generate traffic at a constant rate throughout. User i has a contract to send traffic at rate γi , and the price charged by the SP is πi ; this is the total price, not the price per unit flow. When λi > γi , we call (λi − γi ) the “excess rate.” Throughout this paper, we assume that the sum of the contracted rates equals the link capacity, i.e., N X γi = C i=1 The utility of user i is a concave strictly increasing function of the rate of user i traffic actually carried by the SP. We assume that if a fraction β of the aggregate offered traffic is dropped, then a fraction β of each user’s traffic is dropped. This means that the dropped traffic is split equally among all users. Then the utility for user i is Ui (λi (1 − β)). 2.2 Disutility function When user i is not able to send traffic at her contracted rate γi , i.e., the rate λi is less than γi , we consider a “disutility” for user i. This measures the amount of dissatisfaction that user i suffers from at not being able to generate sufficient traffic. (γi − λi ) is referred to as the “shortfall” of user i, and the disutility function is a convex increasing function of shortfall. Further, the disutility function is defined to be zero when λi ≥ γi . See Figure 1 for an example. As mentioned in the previous section, one of our objectives is to design a scheme in which underusers have the incentive to increase their rates of transmission when they have sufficient data to send. The disutility function is crucial in making this possible. Intuitively, whenever a user has sufficient data, it makes sense for her to send at a rate λi ≥ γi because by doing so, the user can avoid paying the “cost” imposed by the disutility function (because disutility is zero for λi ≥ γi ). The only situation where disutility appears is when a user is hampered by not having enough data to sustain a rate greater than or equal to γi . 2.3 Multiplicative congestion-penalty function The pricing scheme is characterized by the following fea- Price P(y) i Link congested Congestion−penalty factor convex−increasing with excess rate when link is congested 1 γi (excess = 0) Excess (y) λi Figure 2: An example congestion-penalty function. The domain is λi ∈ [γi , ∞), i.e., the domain corresponds to excess ≥ 0. tures. Underusers are charged less than their contracted price. This is motivated by the goal of usage-based pricing. If a user is sending at a rate which is a fraction f of her contracted value, the charge is correspondingly a fraction f of her contracted charge. However, overusers are charged differently, depending upon whether the link is congested or not. When the link is not congested, overusers are charged their contracted prices. The rationale for this is that as long as there is no congestion, users should be permitted to go above their contracted rates at no extra cost. However, when the link is congested, overusers are charged heavily, because the overusers are themselves responsible for the congestion. If overuser i is sending at a rate λi > γi , then the price charged is πi Pi (λi − γi ), where Pi (.) is a multiplicative congestion-penalty function, and it takes the excess rate (λi − γi ) as its argument. Pi (λi − γi ) is a convex increasing function of excess rate. Because the congestionpenalty function appears only when the link is congested and user i is an overuser, we set Pi (0) = 1. An example is shown in Figure 2. In Figure 3, we give a schematic representation of the pricing scheme. We plot the price paid by user i versus her traffic rate λi . There are two curves: one for an uncongested link and the other for a congested link. As long as λi < γi , i is an underuser and is therefore charged less than πi . When λi increases beyond γi , the price is maintained at πi for the uncongested link; but for the congested link, the multiplicative congestion-penalty function appears, the price is πi Pi (λi − γi ) and the price paid rises steeply. 2.4 Net utility function The “net utility” of user i is defined to be her utility minus disutility (which may be zero) minus the price paid to the SP. 2.5 Fair and Efficient Link Sharing Our intention is to understand how the prices πi , 1 ≤ i ≤ N , can be set, so that the system behaviour is “desirable” in the following sense. Let L and H denote the set of underusers and overusers, respectively. When the resource is not congested because users in L are below their contracted rates, other users in the complement Lc are not prevented from going above their contracted rates. This is desirable so that the resource is fully utilized. Suppose that the resource is fully utilized and, further, π Link not congested i Price remains at contracted value when link is not congested γi λi Figure 3: Schematic showing how the price charged by the SP changes, depending on both the rate at which a user sends traffic and the state of congestion of the link. that there is no congestion. Now if users in L wish to increase their rates and go up to their contracted values, they should have the incentive to do that; at the same time, users in H should have the incentive to reduce their rates. This is desirable so that users in L can reclaim their share of the network resources from users in H when they wish to do so. 3. ANALYSIS In this section, we explore how the prices πi , 1 ≤ i ≤ N , can be set so that desirable behaviour occurs. We focus on user i and assume that the transmission rates λj of the other users j, 1 ≤ j ≤ N, j 6= i, are given and fixed. We provide the proof-outlines of the following results in the Appendix. In all cases, the proofs are based on the definition of net utility for that case, elementary calculus and simple algebra. Throughout the rest of the paper we denote the aggregate P sum of rates of all users except user i by θi , i.e., θi = N j=1 λj . j6=i 3.1 Other users below aggregate contracted rate In this section, we consider a system where θi < (C − γi ). In such a system, user i should have the incentive to transmit at a rate (C − θi ), so that the link is fully utilized, but without causing congestion. We wish to find out how to set the price πi such that this goal is achieved. The net utility function for user i is denoted as N Ui . Following are the three different situations which can arise depending upon the flow rate of user i. • When λi < γi , N Ui = Ui (λi ) − Di (γi − λi ) − λ i γi πi • When γi ≤ λi ≤ (C − θi ), N Ui = • When λi ≤ (C − θi ), Ui (λi ) − πi • When λi > (C − θi ), N Ui = Ui (λi (1 − β)) − πi Pi (λi − γi ) Ui > 0, then i has incentive to increase her rate beyond If dN dλi λi . Corresponding conclusions apply when the derivative at λi is negative or zero. Lemma 3.1. When the total traffic from users j ∈ {1, 2, .. ., N }, j 6= i, is less than their aggregate contracted rate, N Ui is maximized at the point λ∗i = (C − θi ) if and only if the price πi satisfies Ui0 (C − θi ) θi ≤ πi ≤ γi (Ui0 (γi ) + lim Di0 (x)) (1) 0 x→0+ C Pi (C − θi − γi ) Further, N Ui is an increasing function of λi to the left of λ∗i and a decreasing function of λi to the right of λ∗i . Here, limx→0+ Di0 (x) indicates the right-hand limit of Di0 (x) as x goes to zero, i.e., as x goes to zero while remaining positive always. This is necessitated by the definition of the disutility function D(x) with x denoting the shortfall; as Figure 1 showed, D(x) need not be continuous at x = 0. 3.2 Other users at aggregate contracted rate Here we have θi = (C − γi ). User i needs to transmit at a rate γi so that the link is fully utilized and yet there is no congestion. The net utility function for the different situations in this case are defined as follows. • When λi < γi , N Ui = Ui (λi ) − Di (γi − λi ) − λ i γi πi • When λi ≥ γi , N Ui = = Ui (λi ) − Di (γi − λi ) − N Ui Ui (λi (1 − β)) − πi Pi (λi − γi ) Lemma 3.2. When the total traffic from users j ∈ {1, 2, .. ., N }, j 6= i, is equal to their aggregate contracted rate, N Ui is maximized at the point λ∗i = γi if and only if the price πi satisfies Ui0 (γi ) C − γi ≤ πi ≤ γi (Ui0 (γi ) + lim Di0 (x)) x→0+ C limx→0+ Pi0 (x) (2) Further, N Ui is an increasing function of λi to the left of λ∗i and a decreasing function of λi to the right of λ∗i . We note that the interval in Equation 2 is a subset of that in Equation 1 because the lower bounds are ordered. So, a choice of πi satisfying Equation 2 will always satisfy Equation 1. 3.3 Other users above aggregate contracted rate Because the other users are sending an aggregate amount of traffic that exceeds the sum of their contracted rates, we have θi > (C − γi ). In this case, it is desirable that, notwithstanding the congested link, user i be able to increase her rate to her “rightful” share γi while other users back down. We can write the expressions for net utility function in different situations as λ i γi • When (C − θi ) < λi < γi , N Ui Ui (λi (1 − β)) − Di (γi − λi ) − = πi λ i γi πi • When λi ≥ γi , N Ui = Ui (λi (1 − β)) − πi Pi (λi − γi ) Lemma 3.3. When the total traffic from users j ∈ {1, 2, .. ., N }, j 6= i, is more than their aggregate contracted rate, N Ui is maximized at the point λ∗i = γi if and only if the price πi satisfies ηi Ui0 (µi γi ) 0 0 ≤ πi ≤ γi ηi Ui (µi γi ) + lim Di (x) (3) x→0+ limx→0+ Pi0 (x) θi and ηi = γµi i+θ . Further, N Ui is an where µi = γi C +θi i increasing function of λi to the left of λ∗i and a decreasing function of λi to the right of λ∗i . Having obtained the three ranges of πi , we would like to know what the intersection of the three ranges looks like. The significance of this is that it may be possible to choose a value of πi that will work (i.e., lead to desirable behaviour) irrespective of whether the aggregate traffic from users j ∈ {1, 2, . . . , N }, j 6= i, is below, at or above the corresponding aggregate contracted rate. U 0 (0) i Lemma 3.4. πi = limx→0+ lies within all the three Pi0 (x) intervals if we choose γi such that γi ≥ Ui0 (0) 0 (limx→0+ Di (x))(limx→0+ (4) Pi0 (x)) Proof. The left edge in Equation 1 is smaller than the left edge in Equation 2. Also, the right edges in the two cases are the same. So, it is enough to ensure that the second case is a valid interval. We know that the utility function is a concave increasing function and penalty function is a convex increasing function. So C − γ Ui0 (γi ) Ui0 (0) i ≤ 0 C limx→0+ Pi (x) limx→0+ Pi0 (x) If we choose γi such that it satisfies Equation 4, γi (Ui0 (γi ) + lim Di0 (x)) ≥ x→0+ Ui0 (0) limx→0+ Pi0 (x) U 0 (0) i Equations 1 and 2 are non-void intervals and limx→0+ Pi0 (x) lies within both the intervals. Similarly in Equation 3, the θi lower bound on πi has µi < 1 and γi +θi ≤ 1. So the U 0 (0) i lower bound is less than limx→0+ . And if γi is chosen Pi0 (x) according to Equation 4, the upper bound will definitely Ui0 (0) exceed limx→0+ , therefore allowing us to choose πi = P 0 (x) Ui0 (0) . limx→0+ Pi0 (x) i U 0 (0) i Hence, γi ≥ (limx→0+ P 0 (x))(lim for i = 1, 2, .. 0 x→0+ Di (x)) i ., N , ensures that the intersection interval for each i is nonUi0 (0) empty, and πi = limx→0+ lies within this intersection Pi0 (x) interval. 2 Lemma 3.5. If we choose a γi such that γi ≥ (5) where the maximization and minimization are done over l = {1, 2, ..., N }, one single value of price for all users irrespective of the congestion state of the link, is sufficient for the desirable behaviour. That value of price is πi = maxl limx→0+ Ul0 (x) minl limx→0+ Pl0 (x) ∀i ∈ {1, 2, . . . , N } EXPERIMENTAL RESULTS WITH MULTIPLE USERS ACCESSING A SINGLE LINK In this section we provide experimental results of two simulations done in MATLAB 7.0. In these simulations multiple users access a single link and we study the dynamics of the rates of all the users when some of them are occasionally data limited. 4.1 maxl Ul0 (0) minl limx→0+ Pl0 (x) minl limx→0+ Dl0 (x) ∀i ∈ {1, 2, . . . , N } 4. (6) 4 users accessing a link of capacity 5 units The link capacity C is assumed to be 5 units and the number of users N = 4. In this experiment we assume a simple utility function for all users, the utility is just the carried traffic rate i.e., Ui (λi ) = λi for all i ∈ {1, 2, . . . , N }. If β is the fraction of traffic dropped by the link then Ui (λi (1 − β)) = λi (1 − β). We choose the disutility function to be exponential function of the shortfall. So, Di (γi −λi ) = e(γi −λi ) for all users. Finally, the penalty function is also taken to be an exponential function of the excess rate. Pi (λi − γi ) = e(λi −γi ) for all users. According to Lemma 3.5, for all i ∈ {1, 2, . . . , N } γi ≥ = Proof. We have already shown that for all users i = {1, 2, ..., N }, the lower bound of πi can attain a maximum Ui0 (0) value of limx→0+ . So if πi is chosen according to EquaPi0 (x) tion 6, for all users, πi will exceed their respective lower limits. If γi is such that it satisfies Equation 5, then γi lim Di0 (x) x→0+ ≥ maxl Ul0 (0) limx→0+ Di0 (x) minl limx→0+ Pl0 (x) minl limx→0+ Dl0 (x) ≥ maxl Ul0 (0) minl limx→0+ Pl0 (x) Therefore, the upper bound of πi for all i = {1, 2, ..., N } is maxl Ul0 (0) bigger than min limx→0+ . P 0 (x) l l 2 It can be seen that when prices are set according to Equation 6, (γ1 , γ2 , . . . , γN )t is a Nash equilibrium. Considering any i ∈ {1, 2, . . . , N }, we find that the aggregate rate from the other users is equal to the sum of their contracted rates, and therefore, Lemma 3.2 applies. This means that user i has no incentive to change her rate from γi , and this conclusion applies to all the users. Hence, (γ1 , γ2 , . . . , γN )t is a Nash equilibrium when prices are set according to the intervals mentioned in Lemma 3.4. Moreover, it can be seen that (γ1 , γ2 , . . . , γN )t is the unique Nash PN equilibrium in this problem. We consider a λ with j=1 λj = C, but with one i for which λi > γi . Then, there PNmust be aPkNfor which λk < γk . With respect to this k, j=1 λj > j=1 γj , and the third case above applies. j6=k j6=k Therefore, by Lemma 3.3, k would like to increase her rate to γP k . Hence λ is not a Nash PN equilibrium. In other cases as well ( N j=1 λj > C and j=1 λj < C) we can argue similarly. Hence, (γ1 , γ2 , . . . , γN )t is the unique Nash equilibrium here. πi = = 1 U 0 (0) limx→0+ P 0 (x) limx→0+ D0 (x) U 0 (0) limx→0+ P 0 (x) 1 So we choose the vector of contracted rates to be [1 1 1 2]. We observe that the contracted rates of all the users add up to the capacity of the link. An initial rate vector λ is chosen in which some users are above their contracted rates and some are below theirs. For this four-user system we take λ = [1.5 2 0.5 1.5]. So users 1 and 2 are overusers and users 3 and 4 are underusers. This means that at the start of the simulation, some users have limited data to send and hence they are not able to utilize their contracted rates fully. Just after the start, we assume that the limited data condition is removed, and each user now has sufficient data to sustain any data rate. Each user explores the neighbourhood of her present rate value to see if her net utility can be improved. In the MATLAB experiment, we use a step size of 0.01. From Lemma 3.5, we can set a price of πi = 1, 1 ≤ i ≤ 4. On applying this price-value, we observe that each user converges to her contracted rate in the process of maximizing her respective net utility. Figure 4 illustrates these results. Now suppose user 1 and 2 run out of data and their rates drop to 0.5 and 0.7, respectively. We would like users 3 and 4 to use up the spare capacity left by users 1 and 2. At this point, λ= [0.5 0.7 1 2]. According to Lemma 3.5, π3 = 1 and π4 = 1 will allow users 3 and 4 to go above their contracted rates and use the spare bandwidth. In the simulation, we keep user 1 and 2 fixed at 0.5 and 0.7 respectively and allow users 3 and 4 to keep checking their net utilities at each iteration and trying to maximize it as described previously. We observe that user 3 increases her rate from 1 to 1.4 and user 4 increases hers from 2 to 2.4, thus equally sharing the extra bandwidth between themselves. Figure 5 shows these results. Now let us assume that user 1 and 2 again have large amounts of data to send, and can sustain any rate. We Change in the rates of all users assuming "infinite data model" 2.2 user 1 user 2 user 3 user 4 1.6 2 1.8 Rates of all users Rates of all users 1.8 1.4 1.2 1 1.6 1.4 1.2 1 0.8 0.8 0.6 0.6 0 50 100 150 200 Number of iterations 250 0.4 300 Figure 4: Just before the start, λ = [1.5 2 0.5 1.5]. At the start of the simulation, all users have sufficient data to sustain any rate. The pricing scheme ensures that the rates of all the users converge to their respective contracted values. would like to find out whether they can reclaim their share of bandwidths again. At this point, λ = [0.5 0.7 1.4 2.4]. We know that price-values equal to one unit for all users will allow this recapture of bandwidth share. In the simulation, all users monitor their respective net utilities at each iteration and try to maximize it. We find that at equilibrium, all users again converge to their respective contracted rates. Figure 6 shows these results. This experiment illustrates that it is possible to assign prices once and for all at the beginning, such that this price vector ensures fair and efficient link sharing no matter what the sets of underusers and overusers may be. Also, the SP need not have to store N different prices for N users. 4.2 user 1 user 2 user 3 user 4 2.2 2 0.4 Once all users converge to their contracted rates, some of them run out of data. The others then share the spare bandwidth among themselves. 2.4 users accessing a link of capacity units 20 27 In this experiment 20 users are trying to access a link having a capacity of 27 units. We choose the following utility, penalty and disutility functions for all users. U (λi ) = log(1 + λi ) P (λi − γi ) D(γi − λi ) = = 1 + (λi − γi )2 + 2(λi − γi ) (γi − λi )2 + 2(γi − λi ) From Lemma 3.5, we know that the contracted rate γi and the contracted price πi for all i ∈ {1, 2, . . . , N } should satisfy γi ≥ = πi = = U 0 (0) limx→0+ P 0 (x) limx→0+ D0 (x) 0.25 U 0 (0) limx→0+ P 0 (x) 0.5 Accordingly, we divide these 20 users into 4 groups. Users 1, 2, 3 and 4 belong to the first group and they have a 0 100 200 300 Number of iterations 400 500 600 Figure 5: Just before time 250, all users are at their contracted values. At time 250, users 1 and 2 are limited to sending traffic at rates 0.5 and 0.7, respectively. The pricing scheme ensures that users 3 and 4 are able to go beyond their contracted rates and utilize the link fully. contracted rate of 0.5 units each. So the contracted rate vector for users in group 1 is γg1 = [0.5 0.5 0.5 0.5]. Users 5, 6, 7, 8 and 9 belong to second group and have a contracted rate of 1 unit each. So γg2 = [1.0 1.0 1.0 1.0 1.0] where the first element of the vector is the contracted rate of user 5 and so on. Group 3 consists of users 10, 11, 12 and 13 with γg3 = [1.5 1.5 1.5 1.5]. And users 14, 15, 16, 17, 18, 19 and 20 form the fourth group having the contracted rate vector as γg4 = [2.0 2.0 2.0 2.0 2.0 2.0 2.0]. We can see that the contracted rates sum up to the capacity of the link. We choose an intial rate vector in which some users are underusers and some are overusers. For this experiment, we select the initial rates in the following manner. For the users in group 1 we choose rate vector to be λg1 = [0.1 0.1 0.7 0.7]. So users 1 and 2 are underusers and users 3 and 4 are overusers. Similarly, we take the rate vector for group 2 as λg2 = [1.0 1.0 1.2 1.7 0.2]. Here users 7 and 8 are overusers and user 9 is underuser. In case of group 3, λg3 = [1.8 2.0 0.1 0.2] with users 10 and 11 being overusers and 12 and 13 being underusers. Finally, λg4 = [2.0 2.0 1.1 0.6 0.2 2.8 4.0] having users 16, 17 and 18 as underusers and users 19 and 20 as overusers. Now we remove the finite data restriction and assume that all users can sustain any rate. Each user explores the neighbourhood of her present rate to see where her net utility can be improved. Again we keep the step size as 0.01. On applying a price of 0.5 units for each user, we would expect the underusers to go upto their contracted rates and the overusers to come down to their contracted rates. Figure 7 shows the experimental results for this situation. At the end of 250th iteration, all the users have converged to their respective contracted rates thereby making the flow rate vector equal to the contracted rate vector. Now we assume that some of the users run out of data and therefore cannot sustain their contracted rates. Specifically, user 1 user 2 user 3 user 4 Rates of all users 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 100 200 300 400 500 Number of iterations 600 700 800 Figure 6: Continuation of the experiment in Figures 4 and 5. At time 500, underusers 1 and 2 are again ready to send traffic at high rates. The pricing scheme ensures that the underusers reclaim their bandwidth shares while the overusers 3 and 4 back down. in group 1 we assume that users 1 and 4 run out of data and can sustain rates of only 0.2 and 0.1 units respectively. Therefore, at 251th iteration, λg1 = [0.2 0.5 0.5 0.1]. In group 2, we assume users 6 and 7 are stuck at 0.5 and 0.4 respectively therefore making λg2 = [1.0 0.5 0.4 1.0 1.0]. Let us say users 10 and 11 in group 3 are data limited to a rate of 1.2 and 0.8 units which gives λg3 = [1.2 0.8 1.5 1.5]. Users 14, 15, 16 and 20 in group 4 are stuck at 1.4, 1.6, 1.8 and 1.2 respectively. So λg4 = [1.4 1.6 1.8 2.0 2.0 2.0 1.2]. At this point, we would want the users who are not data limited to utilize the spare room created by these underusers. We observe that the price of 0.5 units for all users is sufficient for this to happen. Figure 8 shows the simulation results where we see that users 2, 3, 5, 8, 9, 12, 13, 17, 18 and 19 go above their contracted rates to use up the link fully. At the 500th iteration, the flow rate converges to λg1 = [0.200 0.975 0.995 0.100], λg2 = [1.475 0.500 0.400 1.495 1.475], λg3 = [1.200 0.800 1.975 1.975] and λg4 = [1.400 1.600 1.800 2.475 2.475 2.475 1.200]. Although some users are underusers, cummulatively all the users are able to use up 26.99 units of bandwidth out of the full capacity of 27 units. At the 501th iteration, we assume that the underusers now have enough data to sustain any rate. Now the overusers should back down and let underusers gain back their share of the bandwidth. Figure 9 shows this behaviour. By the end of 600th iteration, all the users again converge to their respective contracted rates. So a fixed price of 0.5 units for all users was sufficient to enforce desirable behaviour in the link. 5. STABILITY When no user is constrained by limited amounts of available data, what is the rate vector that the collection of users converges to? When prices are set according to Equation 4, lambda for users with gamma=1.5 0 user 1 user 2 user 3 user 4 0.8 0.6 0.4 lambda for users with gamma=1 2 Changes in the rates of all users assuming "infinite backlog model" 2 1 0 0 50 2.5 100 150 200 Number of iterations 250 2 1.5 1 user 10 user 11 user 12 user 13 0.5 0 0 50 100 150 200 Number of iterations 250 300 1.5 1 user 5 user 6 user 7 user 8 user 9 0.5 0 300 lambda for users with gamma=2 2.2 lambda for users with gamma=0.5 Dynamics of rates of all users 2.4 0 50 3.5 100 150 200 Number of iterations 250 300 3 2.5 2 1.5 1 0.5 0 0 50 100 150 200 Number of iterations user 14 user 15 user 16 user 17 user 18 user 19 250user 20300 Figure 7: Just before the start, λ =[λg1 λg2 λg3 λg4 ]=[0.1 0.1 0.7 0.7 1.0 1.0 1.2 1.7 0.2 1.8 2.0 0.1 0.2 2.0 2.0 1.1 0.6 0.2 2.8 4.0]. At the start of the simulation, all users have sufficient data to sustain any rate. The pricing scheme ensures that the rates of all the users converge to their respective contracted values. it has been argued earlier that (γ1 , γ2 , . . . , γN )t is the unique Nash equilibrium. Hence, when prices are set in accordance with the conditions, system stability is assured. 6. CONCLUSION We considered sources that could occasionally be constrained by limited amounts of available data. Further, each user has a contract with the service provider, specifying the rate at which she can send traffic into the network. We were interested in a congestion-dependent as well as userdependent pricing scheme that would ensure fair and efficient sharing of the single link shared by the sources. We introduced the idea of disutility for underusers and noted that the disutility term encourages underusers to increase their rates whenever they have sufficient data. We presented simple necessary and sufficient conditions for setting prices such that fair and efficient sharing of the link is possible and observed that one value of price for all users can achieve this. The SP is not required to store different 0.4 0.2 0 0 100 2.5 200 300 400 Number of iterations 500 2 1.5 1 0.5 0 600 0 100 200 300 400 Number of iterations user 5 user 6 user 7 user 8 user 9 1 0.5 0 1 0.8 0.6 0.4 0.2 0 0 100 3.5 200 300 400 Number of iterations 500 600 3 2.5 user 14 user 15 user 16 user 17 user 18 user 19 user 20 2 1.5 user 10 1 user 11 0.5 user 12 user 13 0 500 600 0 100 200 300 400 Number of iterations 500 600 lambda for users with gamma=1 0.6 1.5 Dynamics of rates of all users 2 user 1 user 2 user 3 1.5 user 4 1.2 0 200 2.5 400 600 Number of iterations 1.5 1 0 user 10 user 11 user 12 user 13 0 200 400 600 Number of iterations 0.5 0 200 3.5 2 0.5 user 5 user 6 user 7 user 8 user 9 1 0 800 lambda for users with gamma=2 user 1 user 2 user 3 user 4 lambda for users with gamma=0.5 0.8 lambda for users with gamma=1.5 1 lambda for users with gamma=1 1.2 lambda for users with gamma=2 lambda for users with gamma=0.5 lambda for users with gamma=1.5 When all users converge to their contracted rates, some of them run out of data. The others then share the spare bandwidth among themselves. 2 800 400 600 Number of iterations 800 3 2.5 2 1.5 1 0.5 0 0 200 400 Number of iterations user 14 user 15 user 16 user 17 user 18 user 19 600 user 20800 Figure 8: Just before time 250, all users are at their contracted values. At time 250, users 1, 4, 6, 7, 10, 11, 14, 15, 16 and 20 are limited to sending traffic at rates 0.2, 0.1, 0.5, 0.4, 1.2, 0.8, 1.4, 1.6, 1.8 and 1.2 respectively. The pricing scheme ensures that users 2, 3, 5, 8, 9, 12, 13, 17, 18 and 19 are able to go beyond their contracted rates and utilize the link fully. Figure 9: Continuation of the experiment in Figures 7 and 8. At time 500, underusers 1, 4, 6, 7, 10, 11, 14, 15, 16 and 20 are again ready to send traffic at high rates. The pricing scheme ensures that the underusers reclaim their bandwidth shares while the overusers 2, 3, 5, 8, 9, 12, 13, 17, 18 and 19 back down. prices for different users and keep changing them dynamically depending upon the congestion state of the link. Some simple experiments in MATLAB demonstrated the utility of our approach. We recognize the following limitations of our work. Firstly, we considered the resource to be only a single link; in general, of course, the resource is a full network. This is the topic of ongoing work. Secondly, we have not explicitly considered the problem of revenue maximization for the service provider. While our goals of fair and efficient sharing of the link are natural and would, indirectly, lead to high revenue for the provider, we would like to consider the problem of explicit revenue maximization as well. France Telecom – R & D, 2002. [3] F. Kelly. Charging and rate control for elastic traffic (corrected version). European Transaction on Telecommunication, 8(1):33–37, Jan 1997. [4] F. Kelly, A. K. Maulloo, and D. Tan. Rate control for communication networks: shadow prices, proportional fairness and stability. J. Oper. Res. Soc., 49(3):237–252, Mar 1998. [5] S. Kunniyar and R. Srikant. End-to-end congestion control schemes: Utility functions, random losses and ecn marks. IEEE/ACM Transactions on Networking, 11(5):689–702, Oct 2003. [6] R. J. La and V. Anantharam. Utility-based rate control in the internet for elastic traffic. IEEE Transactions on Networking, 10(2):272–286, Apr 2002. [7] A. A. Lazar and N. Semret. Design and analysis of the progressive second bid auction for network bandwidth sharing. Telecommunication Systems – Special Issue on Network Economics, 1999. [8] P. Maillé and B. Tuffin. Multi-bid auctions for 7. REFERENCES [1] T. Alpcan and T. Basar. A utility-based congestion control scheme for internet-style networks with delay. Proceedings of IEEE InfoCom, Apr 2003. [2] A. Delenda. Mécanismes dèncheres pour le partage de ressources télécom. Technical Report Tech Rep 7831, [9] [10] [11] [12] [13] bandwidth allocation in communication networks. In Proceedings of IEEE Infocom, April 2004. M. Mandjes. Pricing strategies under heterogeneous service requirements. Proceedings of the IEEE Infocom, Mar 2003. P. Marbach. Priority service and max-min fairness. IEEE/ACM Transactions on Networking, 11(5):733–746, Oct 2003. P. Marbach. Analysis of a static pricing scheme for priority services. IEEE/ACM Transactions on Networking, 12(2):312–325, Apr 2004. J. Mo and J. Walrand. Fair end-to-end window-based congestion control. IEEE/ACM Transactions on Networking, 8(5):556–567, Oct 2000. J. Shu and P. Varaiya. Pricing network services. Proceedings of the IEEE Infocom, Mar 2003. Pi (x) is an convex increasing function of x, and Pi (0) = 1, Pi (C −θi −γi ) > 1. So we can choose any non-negative price value below the upper bound found above. Apart from this, we want to ensure that N Ui decreases with λi when λi is greater than (C − θi ). For this to happen, dN Ui ≤0 dλi when λi > (C − θi ). Let λi = C − θi + δ, for some δ > 0. Then, by definition N Ui = Ui ((C − θi + δ)(1 − β)) − πi Pi (C − θi + δ − γi ) where β = = APPENDIX Proof of Lemma 3.1 As long as user i stays below her contracted rate γi , there is no congestion in the link and hence zero packet dropping probability. Also, the price charged by the service provider is proportional to the fraction of link capacity utilized by the user. So the net utility (N Ui ) is, λ i N Ui = Ui (λi ) − Di (γi − λi ) − πi γi User i has incentive to increase her rate if and only if her net utility increases with increase in λi . That is, dN Ui dλ πi i 0 0 Ui (λi ) + Di (γi − λi ) − γi ≥ 0 ≥ 0 For N Ui to keep increasing till user i reaches γi , it is sufficient to have πi ≤ γi (Ui0 (γi ) + lim Di0 (x)) x→0+ This condition is also necessary because if πi > γi (Ui0 (γi ) + Ui limx→0+ Di0 (x)), then there exists a λi < γi such that dN < dλi 0 0. This can be seen as follows. If πi > γi (Ui (γi )+limx→0+ Di0 (x)), then ( πγii − Ui0 (γi )) > limx→0+ Di0 (x). Also, π dN Ui i = Di0 (γi − λi ) − − Ui0 (γi ) dλi γi When λi is sufficiently close to γi , Di0 (γi − λi ) drops beUi low the fixed quantity ( πγii − Ui0 (γi )). At this point, dN dλi becomes negative. Since the total traffic from users j ∈ {1, 2, . . . , N }, j 6= i, is less than their aggregate contracted rate, user i should have the incentive to increase her rate further till the link is fully utilized, i.e., till λi is equal to (C − θi ). When λi ∈ [γi , (C − θi )], N Ui is simply Ui (λi ) − πi which is an increasing function of λi . This in turn gives user i every reason to increase λi in this range. When λi becomes more than (C − θi ), the link gets congested. We would like to ensure that user i has no incentive to increase her rate beyond (C −θi ). It can be observed that as long as we choose πi ≥ 0 and Pi (C − θi − γi ) ≥ 1 the net utility function for user i at a rate just above (C − θi ) is less than the net utility function at (C − θi ). Since (λi + θi − C) (λi + θi ) δ (C + δ) So, the requirement becomes (C − θ + δ)C d i − πi Pi (C − θi + δ − γi ) Ui dδ (C + δ) ! ≤0 On simplification, the above gives the following condition on πi . Cθi 1 0 (C − θi + δ)C πi ≥ U × 0 i (C + δ)2 (C + δ) Pi (C − θi − γi + δ) Because we want the lower bound to hold for every δ > 0, we now take the supremum of the lower bound over all δ > 0. This yields θ U 0 (C − θ ) i i i πi ≥ C Pi0 (C − θi − γi ) This proves that the lower bound on πi is sufficient. Necessity is shown 0 be a given small number. as follows. Let > Ui0 (C−θi ) θi If we take − as the lower bound, then C P 0 (C−θi −γi ) i simple algebra shows that there exists a δ > 0 such that dN Ui > 0. This contradicts our requirement and concludes dλi the proof. 2 Proof of Lemma 3.2 There is no congestion in the link and no packets are dropped unless user i overshoots her contracted rate. The price charged by the service provider is proportional to the link capacity utilized by the user when she is below her contracted rate. The expression for net utility is, λ i πi N Ui = Ui (λi ) − Di (γi − λi ) − γi Following similar algebra as done in the proof of Lemma 3.1 we can show that the necessary and sufficient condition for user i to increase her rate up to γi is πi ≤ γi (Ui0 (γi ) + lim Di0 (x)) x→0+ Since the total traffic from users j ∈ {1, 2, . . . , N }, j 6= i, is equal to their aggregate contracted rate, once user i reaches her contracted rate, the link is fully utilized. So, the user should have no more incentive to increase her rate any further. From the definition of net utility function it is clear that when πi ≥ 0 and Pi (0) ≥ 1, N Ui at λi = γi is greater than N Ui at λi > γi . And for N Ui to be a decreasing with λi once λi > γi , C(γi + δ) d − πi Pi (δ) ≤ 0 Ui dδ (C + δ) This can be reduced to πi ≥ = Ui0 (C − θi ) since (C − θi ) = γi in this case. Because we want the lower bound to hold for every δ > 0, we now take the supremum of the lower bound over all δ > 0. This gives C − γ Ui0 (γi ) i πi ≥ C limx→0+ Pi0 (x) This proves that the lower bound on πi is sufficient. The necessity of the lower bound can be proved in exactly the same way as done in the case of previous Lemma. 2 Proof of Lemma 3.3 Since the total traffic from users other than i is more than their aggregate contracted rates, user i has room to increase her rate only up to (C − θi ) without causing congestion in the link. This is possible if, λ d i πi Ui (λi ) − Di (γi − λi ) − ≥ 0 dλi γi This N Ui should not cease to increase till λi reaches (C −θi ). We can simplify the above to get the following sufficient condition on πi . (7) Since (C − θi ) < γi , we want user i to increase her rate further up to her rightful share of γi . So, for δ > 0, (C − θi + δ)C d − Di (γi − (C − θi + δ)) Ui dδ (C + δ) C − θ + δ i − πi ≥ 0 γi which reduces to yθi Ui0 ((C − θi + δ)y) + Di0 (γi − C + θi − δ) πi ≤ γ i (C + δ) C where y = ( C+δ ). User i should be allowed to go only up to γi . So, δ cannot exceed γi − (C − θi ). This leads to further simplification of the condition on πi γC Cθi i 0 0 + lim Di (x) (8) Ui πi ≤ γ i x→0+ (γi + θi )2 γi + θ i To prove that the upper bound of Equation 8 is less than the upper bound of Equation 7 we proceed as follows. Since, Di (x) is a convex increasing function of x, and θi > (C −γi ), x→0+ θi (C − θi − γi ) θi (C − θi − γi ) + γi C (C − θi ) C(C − γi ) (γi + δ)C Ui0 (C + δ)2 Pi0 (δ) (C + δ) (C − θi + δ)C C(C − γi ) 0 U i (C + δ)2 Pi0 (δ) (C + δ) Di0 (γi − C + θi ) > lim Di0 (x) θi C − θi − γi (C − θi )(θi + γi ) πi ≤ γi (Ui0 (C − θi ) + Di0 (γi − C + θi )) Also, > (C − γi ) < 0 < 0 < γi C < γi C Cγi < (θi + γi ) Cγi > Ui0 θi + γ i i and (γ Cθ 2 < 1. This proves that Equation 8 is a subset i +θi ) of Equation 7. Now, N Ui at λi = γi should exceed N Ui at λi > γi and N Ui should keep reducing with λi when λi ∈ (γi , ∞). Mathematically, for a small δ > 0, (γi + δ)C γi C Ui − πi ≥ U i − πi Pi (δ) γi + θ i γi + δ + θ i which can be ensured if πi ≥ 0 and Pi (0) ≥ 1. Also, (γi + δ)C d − πi Pi (δ) ≤ 0 Ui dδ γi + δ + θ i Simplification of this results in the following lower bound on πi . γC Cθi i πi ≥ Ui0 0 2 (γi + θi ) limx→0+ Pi (x) γi + θ i The necessity of both upper bound and lower bound can be proved by doing similar algebra as has been done in Lemma 3.1. 2