Charge-Sensitive TCP and Rate Control

Charge-Sensitive TCP and Rate
Control
Richard J. La
Department of EECS
UC Berkeley
November 22, 1999
Motivation
• Network users have a great deal of freedom as to how
they can share the available bandwidth in the network
• The increasing complexity and size of the Internet
renders centralized rate allocation impractical
– distributed algorithm is desired
• Two classes of flow/congestion control mechanisms
– rate-based : directly controls the transmission rate based on
feedback
– window-based : controls the congestion window size to
adjust the transmission rate and backlog
Motivation
• Transmission Control Protocol (TCP) does not
necessarily results in a fair or efficient allocation of
the available bandwidth
• Many algorithms have been proposed to achieve
fairness among the connections
• Fairness alone may not be a suitable objective
– most algorithms do not reflect the user utilities or
preferences
– good rate allocation should not only be fair, but should also
maximize the overall utility of the users
Model
• Network with a set J of links and a set I of users
– C j , j  J , - capacity of link j
–
J i , i  I , - route of user i
–
A  Ai , j , i  I , j  J ,


where Ai , j 
{
1, if j  J i
0, otherwise
– U i ( x) - utility of user i when it receives a rate of x
(utility function - increasing & strictly concave)
Model (Kelly)
• SYSTEM (U , A, C ) :
maximize
U ( x )
iI
T
i
i
subject to A x  C
over
x0
– system is not likely to know U  (U i (), i  I )
– impractical for a centralized system to compute and allocate
the user rates
Model (Kelly)
• NETWORK ( A, C; p) :
maximize
 p  log( x )
i
iI
T
i
subject to A x  C
over
x0
• USERi (U i ; i ) :
maximize
over
Ui (
pi
i
) - pi
pi  0
Background (Kelly’s work)
• One can always find vectors *  (*i , i  I ), p*  ( pi* , i  I ),
and
such that
x*  ( xi* , i  I )
1)
pi* solves USERi (U i ; *i ) for all i  I
2)
xi* solves NETWORK ( A, C; p* ) :
3)
pi*  *i  xi*
4) x * is the unique solution to SYSTEM (U , A, C )
Fairness
• Max-min fairness :
– a user’s rate cannot be increased without decreasing the rate
of another user who is already receiving a smaller rate
– gives an absolute priority to the users with smaller rates
• (weighted) proportional fairness :
–
x' is weighted proportionally fair with weight vector p
if x' is feasible and for any other feasible vector x
xi  xi '
i pi x '  0
i
Fluid Model (Mo & Walrand)
•
AT x  C  0
(1)
Q ( AT x  C )  0
( 2)
X ( AC ' q  d )  w
(3)
x  0, q  0
( 4)
where
d i : propagatio n delay of connection i
wi : congestion window size of connection i
C  (C1 ,  , C J )T , q  (q1 ,  , q J )T ,
d  (d1 ,  , d I )T , w  ( w1 ,  , wI )T ,
X  diag ( x), C '  diag (C11 ,  , C J1 ), Q  diag (q),
Fluid Model (Mo & Walrand)
• Theorem 1 (Mo & Walrand) : For all w there exists
a unique x that satisfies the constraints (1)-(4)
– this theorem tells us that the rate vector is a well defined
function of the window sizes w.
– denote the function by x(w)
– x(w) is continuous and differentiable at an interior point
– q(w) may not be unique, but the sum of the queuing delay
along any route is well defined
Mo & Walrand’s Algorithm
• (p, 1)-proportionally fair algorithm :
d i si (t )
d
wi (t )  
dt
d i (t ) wi (t )
where
 : some positive constant
pi : target queue size of connection i
si (t )  wi (t )  xi (t )  d i  pi
d i (t )  d i   q j (t )
jJ i
Mo & Walrand’s Algorithm
• Theorem 2 (Mo & Walrand) : The window sizes
converge to a unique point w* such that for all i  I
wi*  xi ( w* )  d i  pi
Further, the resulting rate at the unique stable point w*
is weighted proportionally fair that solves
NETWOKR(A, C ; p).
Pricing Scheme
• Price per unit flow at a switch is the queuing delay at
the switch, i.e.,
q j ( w)
g j ( w) 
Cj
– the total price per unit flow of user i is given by
hi ( w)  xi  
jJ i
where
q ij
q j ( w)
Cj
xi ( w)
 qj 
  q ij  pi
Cj
jJ i
jJ i
is connection i’s queue size at resource j
User Optimization & Assumption
• User optimization problem :
U i ( xi )  xi  
jJ i

where
i
Ui (
pi
qj
Cj
)  pi
i
is the price per unit flow, which is the queuing delay
• Assumption 1 : The optimal price
^
p i (i )  arg max U i (
pi
is a decreasing function of
i .
pi
i
)  pi
Examples of Utility Functions
• U i ( xi ) c  x , where c  0, 0  a  1
a
i
• U i ( xi ) c  log( xi  b) , where c  0, 0  b  1
Price Updating Rule
• At time t, each user i updates its price according to
pi
pi (t )  arg max U i (
)  pi

pi
i (t )

{
0,
if i (t  )  U ' (0)
pi

pi such that U i ' (
)


(
t
),
i

i (t )
if 0  i (t  )  U ' (0)
Price Updating Rule
• Define a mapping
T : P  P to be
~
~
pi
Ti ( p)  arg max
Ui (
)  pi
~
i ( p)
pi
• Fixed point of the mapping T is a vector p such that
T(p) = p.
• Theorem : There exists a unique fixed point p* of the
mapping T, and the resulting rate allocation from p* is
the optimal rate allocation x* that solves
SYSTEM(U,A,C).
Algorithm I
• Suppose that users update their prices according to
^
pi (n)  pi (n  1)
pi (n)  pi (n  1) 
M
• Assumption 2 : There exists M > 0 such that
  * ,
(a) for all p such that
^
*
p
(

)

2
M
p
 i
 i  (2M  1) pi
i
(b) for all p such that
  * ,
i
i
^
*
p
(

)

2
M
p
 i
 i  (2M  1) pi
i
i
i
Convergence in Single Bottleneck Case
• Theorem : Under the assumptions 1 and 2, the user
prices p(n) converges to the unique fixed point of the
mapping T under both Jacobi and the totally
asynchronous update schemes as n   .
Algorithm II
• Suppose that users update their window sizes
according to
d
wi (t )    M i (t )  ri (t )
dt
where
d i  U i ' ( xi (t ))  xi (t )  U i ' ' ( xi (t ))
M i (t ) 
d i   q j (t )
jJ i
wi (t )  xi (t )  (d i  U i ' ( xi (t )))
ri (t ) 
wi (t )
Assumption & Convergence
• Assumption 3: The utility functions satisfy
U i ' ( xi )  xi U i ' ' ( xi )  0 for all xi  [0, C i ]
where C i  min C j .
jJ i
• Theorem : Under assumption 3, the window sizes
converge to a unique stable point of the algorithm II,
where the resulting rates solve SYSTEM(U,A,C).