Hi,

I completely agree that this service differentiation was wrong from the 
beginning. The idea of using bits to implement a trade-off that doesn't involve 
prioritization between users is old (*), and has always been the right approach 
in my opinion.

At least one proposal in this direction is currently being made in the IETF, 
and I definitely think that this is the right way to go:   
http://tools.ietf.org/html/draft-lai-tsvwg-normalizer-02

Cheers,
Michael



(*) - the oldest example I know of is the Alternative Best Effort Service 
http://infoscience.epfl.ch/record/223 , slightly newer we have e.g.:
http://people.networks.imdea.org/~sergey_gorinsky/pdf/RD_Services_SIGCOMM_2008.pdf



On 16. mai 2014, at 00:53, Jonathan Morton <[email protected]> wrote:

> There is, I think, one good way to make Diffserv actually work. It does 
> require several steps in tandem.
> 
> Step one is to accept and admit that differential pricing based on scarcity 
> economics does not work on the internet. That's going to be tough to swallow 
> for the big commercial players.
> 
> Step two is to define service levels in such a way that asking for a bonus in 
> one category inherently requires taking a deficit in some other category. 
> This permits trusting the Diffserv field, wherever it happens to come from.
> 
> That part is where the old TOS flags went wrong, because they tried to define 
> mutually exclusive characteristics of traffic orthogonally. It was possible 
> for traffic to request service that was simultaneously higher bandwidth, 
> higher reliability, lower latency, *and* cheaper than service without any 
> flags set. This was obviously nonsensical.
> 
> My suggested definition is a straight trade-off of priority for bandwidth. If 
> you want maximum bandwidth, you're going to have to put up with lower 
> priority relative to traffic which has effectively requested low latency, 
> which in turn will find itself throttled to some fraction of the available 
> bandwidth in return for that priority. It forces whoever is setting the flags 
> to make a genuine engineering trade-off, and happily it can trivially be made 
> compatible with the legacy Precedence interpretation of the Diffserv field.
> 
> Codepoint 000000, naturally, corresponds to full bandwidth, minimum priority 
> traffic, and is the default.
> 
> To implement it, we're going to need a throttled priority queue. This should 
> be straightforward - a set of 64 TBFs with the special properties that higher 
> priority buckets refill more slowly, and that spending from a bucket also 
> spends the same amount from all lower-priority buckets. Then at dequeue, take 
> a packet from the highest priority queue with a positive bucket and a waiting 
> packet, then refill each bucket with the appropriate fraction of the dequeued 
> packet size. (Implementation detail: what to do if no such packet exists; 
> also, what fraction to use for each bucket.) Naturally, each TBF can and 
> should support a child qdisc such as fq_codel.
> 
> - Jonathan Morton
> _______________________________________________
> Bloat mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/bloat

_______________________________________________
Bloat mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/bloat

Reply via email to