[Cake] diffserv3 vs diffserv4

Kevin Darbyshire-Bryant kevin at darbyshire-bryant.me.uk
Sat Jul 25 17:33:47 EDT 2020


Apologies.  I think this is a cultural divide and misunderstanding, certainly on my part.  Bellhead is uncomfortably close to bellend and in the context of ‘absurd’ I’m afraid I rather took your bellhead to be rather closer to my interpretation of bellend.  In essence I thought you were saying I was a bit of a cock, which I probably am but for reasons other than the ones mentioned.

Possibly getting back to subject.  CAKE is probably the fairest thing I know and worships the god of (low) latency.  When I first heard of cake many years ago, the promise of ‘full link’ and ‘low latency’ I couldn’t believe it.  I’ve subsequently learned it’s all about queues, effective queue management and picking the right packet at the right time to fill the right tx slot.  It’s all about latency.  It’s all about shooting/marking the right packets to signal correctly and keep latency of each flow under control.  I understand the phrase “It’s the latency, stupid”.

Cake is so fair across flows that cake offers deliberate unfairness features, things that bias that fairness, some obvious, some not.  The obvious one is using packet categorisation to choose priority levels.  Instead of the default ‘every packet is equal’ of besteffort, a choice of categorisation are available from ‘diffserv3’ (a 3 tier system) to ‘diffserv8’ (an 8 tier system) all designed to introduce an unfairness, ‘least important’ to ‘most important’.  The categories or tins in cake parlance also have bandwidth thresholds, representing minimum capacities for that tin in the presence of traffic in competing tins.

A less obvious but deliberate unfairness mechanism in cake is ‘host fairness’.  This counts the number of flows to/from each host and divides the bandwidth amongst the flows such that each host gets an even share. e.g. 1 host with 9 flows vs 1 host with 1 flow will end up with the 9 flow host getting 50% of bandwidth across those 9 flows whilst the 1 flow host will get 50% of bandwidth across 1 flow.  This prevents gaming of bandwidth allocation simply by starting more flows.

Going all the way back to the start of this thread which spoke about ‘more important to de-prioritise’ my domestic use case/problem is to support ‘bittorrent’ but at a lower importance than bulk (my backups) at a lower importance than best effort (browsing) at a lower importance than latency/jitter sensitive video at a lower importance than voip.  That’s 5 categories (LE, BK, BE, VI, VO), but it could easily be 4 (LE, BK, BE, VO) with ‘video’ lumped in with Best Effort as is done with diffserv3.

Cake’s tin bandwidth thresholds say ‘you’re allowed to have at least this much’ and in my diffserv5 implementation it’s 1/64th of configured bandwidth simply ‘cos it can’t really be zero.  In the absence of other traffic, Least Effort under CAKE will happily consume ALL the bandwidth, great, nothing more important..bittorrent you go right ahead.  But as soon as something more important comes along, well, that takes (within limits) priority.  I think this is called ’soft admission’ but not totally sure.

I apologies if I have incorrectly used bandwidth/capacity/rate/whatever but hopefully everyone will understand what I’m trying to say.

Kevin

> On 25 Jul 2020, at 21:04, Sebastian Moeller <moeller0 at gmx.de> wrote:
> 
> Hi David,
> 
> I believe that folks here, certainly Kevin, have accepted the domain specificity of diffserv and we are mainly discussion, how many tiers of differential latency tolerance we desire ;). It goes without saying that this is all within the "home domain", and the goal is how little/few priority games we need to play for decent performance under load. Sure, end2end signaling would be desirable, but as you point out does not exist in diffserve today and is also not very likely to appear anytime soon, but in one's home it is still relatively easy to identify a few special cases, like bit-torrent (don't get in the way of "real" traffic) or VoIP (quite latency and especially jitter averse, but also typically of modest rate) that could/should be taken care of.
> 	As far as I can tell that is all the cake/sqm's diffserve modes try to accomplish. DSCPs are simply used, as there exists machinery for routers/end-hosts OS to selectively set/re-set them and all IP packets will carry them.
> 	Regarding the Bell-haededness, sure I might qualify for that moniker/abuse*, but the relevant factor, IMHO, is not so much the exact rate cut-offs of the different priority tiers, but the simple realization that low latency via prioritization requires relatively low rates, otherwise "priority" traffic will self congest, so these thresholds serve to establish a "cost" for using each priority tier.
> 
> Best Regards
> 	Sebastian
> 
> *) By virtue of intellectual laziness, it is simply often easier for me to think in rate shares than the alternatives. But hey, I do this as a hobby, so I cut myself a lot of slack here ;) But I take no offense in being labeled that.
> 
> 
>> On Jul 25, 2020, at 21:35, David P. Reed <dpreed at deepplum.com> wrote:
>> 
>> I want to apologize for any implication that you, Mr. Darbyshire-Bryant, were a "bellhead". AFAIK, you were quoting a staement from the designers of diffserv4, who apparently still believe in bandwidth division as a metric.
>> 
>> But I understand it might be painful to hear my critique of the diffserv design process.
>> 
>> Just be aware that it's my problem, not yours. I don't mean to offend you. I do, however, feel like the folks who did "design" diffserv (and continue to promote it) completely miss the whole point of why the Internet is architected the way it is. And since they haven't managed to respond to a clue-by-4 yet, I'm tired of just pointing out that the idea doesn't actually achieve any benefits, because no one (literally no one) has evern done a consistent assignment of end-to-end meaning to the various diffserv labels after decades of failed testing.
>> 
>> Since this is a group discussion, and not just a response to you, my comment was aimed at the general group (which is not dedicated to bellhead thinking, thank goodness).
>> 
>> And to be clear, AQM (cake, being an example) is not about bandwidth allocation. It does focus on latency/queueing-delay, for the most part.
>> 
>> Hence my concern that diffserv's fundamental misunderstanding of the responsibility of router queue management might contaminate a very, very important project.
>> 
>> 
>> On Saturday, July 25, 2020 1:54pm, "Kevin Darbyshire-Bryant" <kevin at darbyshire-bryant.me.uk> said:
>> 
>>> I didn’t sign up for this abuse. Bellhead eh? Well f**k off!
>>> 
>>> I’ve had enough - bye.
>>> 
>>>> On 25 Jul 2020, at 18:48, David P. Reed <dpreed at deepplum.com> wrote:
>>>> 
>>>> This idea (dividing the link rate capacity, since "bandwidth" is an incorrect
>>> term not to be promulgated), is absurd, but typical of "bellhead" thinking.
>>>> 
>>>> Per packet latency is the key control variable, even for TCP. That's because
>>> capacity/rate is not controllable by routers, but by routing in a general Internet
>>> situation.
>>>> 
>>>> Latency is controlled by queuing delay in a packet network, not bitrate. And
>>> in mixed traffic, which after all is why traffic is classified in the first place,
>>> by its characteristics and response to increased latency end-to-end, is the core
>>> "control" for the internetwork as a whole.
>>>> 
>>>> So, by promoting thinking about "bandwidth" a whole sequence of
>>> misformulations of network management is embedded into the thinking of those
>>> designing queue management algorithms.
>>>> 
>>>> And make no mistake, queue management is the ONLY knob other than sending
>>> different packets on different routes that one has for routers.
>>>> 
>>>> I don't know who proposed this fractional division, but it is clearly a
>>> bellhead-influenced thinker who thinks all protocols are CBR flows like in the old
>>> phone system.
>>>> 
>>>> But almost no flows in the internet are CBR flows! File transfers are not,
>>> streaming TV is not, web ttraffic is not, game traffic is not. Only
>>> non-statistically multiplexed real-time telephony and *some* video conferencing is
>>> CBR.
>>>> 
>>>> Yet this bizarre idea of dividing "bandwidth" among all categories of flows
>>> pops up. Probably from employees of phone companies or phone equipment suppliers.
>>> Or folks who went to Uni and were trained in "communications" by former phone
>>> engineers.
>>>> 
>>>> Latency, latency, latency. Queue delay, queue delay, queue delay. Not link
>>> speed! Change your brains.
>>>> 
>>>> It's hard fo fight this bellhead crowd (or the bellheadedness in your own
>>> thinking) but think about packets and queues instead.
>>>> 
>>>> My good friend Len Kleinrock didn't invent "Bandwidth Theory"! He invented
>>> Queueing Theory. For a reason.
>>>> 
>>>> On Saturday, July 25, 2020 6:12am, "Kevin Darbyshire-Bryant"
>>> <kevin at darbyshire-bryant.me.uk> said:
>>>> 
>>>>> _______________________________________________
>>>>> Cake mailing list
>>>>> Cake at lists.bufferbloat.net
>>>>> https://lists.bufferbloat.net/listinfo/cake
>>>>> 
>>>>> 
>>>>>> On 24 Jul 2020, at 18:42, Kevin Darbyshire-Bryant
>>>>> <kevin at darbyshire-bryant.me.uk> wrote:
>>>>>> 
>>>>>> 
>>>>>> The move from diffserv4 to diffserv5 WAS about de-prioritization.
>>>>> 
>>>>> It was also about minimum bandwidth allocations:
>>>>> 
>>>>> LE: 1/64th
>>>>> BK: 1/16th
>>>>> BE: 1/1
>>>>> VI: 1/2
>>>>> VO: 1/4
>>>>> 
>>>>> So worst case, best effort should get 11/64ths in the extreme case of
>>> all other
>>>>> tins in use.
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Kevin D-B
>>>>> 
>>>>> gpg: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A
>>>>> 
>>>>> 
>>> 
>>> 
>>> Cheers,
>>> 
>>> Kevin D-B
>>> 
>>> gpg: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A
>>> 
>>> 
>> _______________________________________________
>> Cake mailing list
>> Cake at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cake
> 


Cheers,

Kevin D-B

gpg: 012C ACB2 28C6 C53E 9775  9123 B3A2 389B 9DE2 334A

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <https://lists.bufferbloat.net/pipermail/cake/attachments/20200725/ac370c26/attachment.sig>


More information about the Cake mailing list