Distributed shaping rules
Here we describe how shaping works (either dynamic or static) in distributed shaping rule.
Assume we have distributed shaping rule, which limits aggregate group speed to 128 kbits/s.
By default, dynamic shaping is used. The allowed speed of every group member is computed by the formula:
MAX(128 / number of active group members, 128 - sum of current speeds of all remaining group members)
Result of MAX(x, y) function is maximum of the two values.
Active group members are users who have at least one connection.
Thus allowed speed of individual users can be greater than aggregate allowed group speed divided by number of active group members. But it can't be less than that value. Because of this, if someone does not use all the allowed bandwidth, it can be used by other group members.
But dynamic shaping depends on the availability of at least a little free bandwidth. If there are some, then users with less speed, if necessary, will be able to take more bandwidth, which would entail (in accordance with the above formula) reducing the speed limit for those who have it above average. The total group speed will remain the same.
And if there is no free bandwidth, it is may be not so easy, and those who has more connections or better link to the server could have precedence over the rest users.
For these reasons, static shaping was also implemented, which means that the allowed speed of each group member is computed by the formula:
128 / number of active group members
That is, unused bandwidth is not distributed to others. But it certainly does not completely solve the problem described above, but only slightly smooths its consequences.
We hope that this information will help you better understand how distributed shaping rules work, and will allow you to correctly configure them.