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
