[Iccrg] Re: TCP requirements

S. Keshav keshav at uwaterloo.ca
Thu Oct 12 14:30:34 BST 2006


/* 'm ccing ICCRG on this discussion because it touches on a point  
that Michael brought up in his mail to the group */

Lachlan,

>>         Well, in general, simultaneously achieving Pareto  
>> optimality and
>> fairness is hard. Pareto optimality is easy to achieve when you only
>> consider scheduling, because all work-conserving disciplines are
>> Pareto optimal. However, once you take transport effects into
>> account, especially congestion signals, achieving the Pareto frontier
>> is not a given. Consider a bit-setting scheme such as DECbit. If you
>> have a long RTT flow, you could set bits on an over-limit flow, that
>> would take effect only after a while, and then would persist for 2
>> RTTs (because DECbit takes control actions once every 2 RTTs).
>
> Thanks for your explanation, but I don't quite understand it.  In that
> situation, with dynamics, it isn't clear what quantity we are being
> Pareto or max-min with respect to; time average rates? instantaneous
> rates at some time?  I'm only used to thinking of a single average
> rate per (long lived) flow.
>
We can consider the Pareto frontier with respect to at least two  
quantities:

1. Instantaneous (or short-term) rates, measured say, over the time  
scale of a few ms:
We can achieve Pareto optimality at this time scale with any work- 
conserving scheduling discipline. A (max-min) fair scheduling  
discipline can achieve both Pareto optimality and fairness.

2. Time-average rates, measured over several RTTs (10s to 100s of ms):
Here, things are harder because of feedback at the transport layer.  
When modulated by a transport layer, the sum of time average rates of  
all the flows at a bottleneck link may not sum up to the link rate  
(especially with small buffers and long RTTs). Then, Pareto  
optimality will not be achieved. As a thought experiment, consider a  
WFQ scheduler with only 1 packet of buffering per flow, which drops  
packets whenever a flow has more than one packet in its queue. If you  
send TCP over this, you are going to achieve short-term Pareto  
optimality trivially. However, over the long term, you may achieve  
max-min-fair-share, but *not* Pareto optimality.

>> Clearly, to achieve max-min fairness, the control mechanism will lead
>> you to a non-Pareto allocation.

> Perhaps I'm misunderstanding either max-min fairness or
> Pareto-optimality, but I thought that definition of max-min implied
> Pareto-optimality.  If a particular DECbit solution is non-Pareto,
> then one user can increase without hurting any other (definition of
> non-Pareto); hence it can increase without hurting any worse-off user,
> which I thought was the definition of being not max-min.

I think the confusion arises from the fact that there are two time- 
scales of interest. I hope my example above clarifies the situation.  
In particular, I could have a scheduling discipline that does not  
have one buffer statically allocated per flow,but pools buffers and  
serves FIFO. With TCP, my guess is that you will do *better* than WFQ  
(in terms of sum of average rates).

regards
keshav



More information about the Iccrg mailing list