[Cake] triple flow isolation
moeller0 at gmx.de
Fri Jan 15 03:05:34 EST 2016
> On Jan 15, 2016, at 01:05 , Jonathan Morton <chromatix99 at gmail.com> wrote:
>> On 14 Jan, 2016, at 20:53, moeller0 <moeller0 at gmx.de> wrote:
>> So I have not grokked the triple algorithm fully (aka not at all), but I already know that what user’s are looking for is fairness by internal host IPs. Now, since as I explained before ingress and egress really are too flexible to use as direction pointers, I assume we are looking for some configuration parameter that contains a direction; so as long as “triple” allows to request fairness by source IP or by destination IP (since these might change depending on the interface cake is running on) all will be fine. I just do not see how a simple unidirectional parameter like “triple-iso” will allow to take the fact into account that ingress and egress are only relative to the sqm interface and do not necessarily align with the internal/WAN ingress and egress… But as I said before I do not claim I understand what triple-iso intends to accomplish in detail.
> The short version is that, in theory at least, I’ve found a way to ensure fairness without needing to know which side of the interface is which.
Could you please explain the fairness you are talking about here? I still want to test cake in my environment and will do a much better job if I know what behavior to expect, and frankly I am unsure what triple-iso is supposed to guarantee (I know this is my own responsibility, but getting a high level description seems more efficient than trying to deduce this from the implementation, especially given that you are not fully satisfied withe the current implementation). Thanks in advance.
> By accounting for *both* source and destination host fairness at the same time, and not placing one above the other in importance, it should all work out in the end. The method by which I do so is probably interesting enough to write a paper about, once I’ve got it working in practice.
> At this point, I strongly suspect I’ve made an implementation blunder, since even single-stepping through the theoretical algorithm’s behaviour, packet by packet, produces approximately the desired results - which are however not reproduced in actual measurements on my LAN. Time to add more stats to the multitude already present!
> If you want to be explicit about directionality, that’s what the two new “dual” modes are for. The “triple isolation” algorithm is still used, but the undesired attribute is ignored. The “triple” mode combines their effects.
This is the part I can not get my head around: fairness by internal host IP (what people seem to request, with, as you alluded to before, DSCP tiers per internal host IP and per flow fairness in each tier) basically will not generally allow fairness by external IP. E.g. three internal hosts talk to 6 external hosts, fairness by internal IP will try to give 1/3 of the bandwidth to the internal hosts, fairness by external IP will give 1/6, now unless the connections are symmetric (each internal IP talks to the same number of external IPs) the actual bandwidth distribution will deviate from either 1/3 or 1/6, so what level of fairness will triple-iso aim for? With explicit directionality I can easily see how to enforce either 1/3 or 1/6 in the example...
> - Jonathan Morton
More information about the Cake