To illustrate the membership functions, Table 9.1 identifies sample packet rates along with their degree of membership within the two functions.
Packet Rate | m_low(x) | m_high(x) |
---|---|---|
| ||
10 | 1.0 | 0.0 |
85 | 0.75 | 0.0 |
90 | 0.5 | 0.0 |
95 | 0.25 | 0.0 |
100 | 0.0 | 0.0 |
105 | 0.0 | 0.25 |
110 | 0.0 | 0.5 |
115 | 0.0 | 0.75 |
180 | 0.0 | 1.0 |
So given these two membership functions, we can determine the degree of membership for a given rate of packet flow. However, how can this be used in terms of a control strategy for adjusting the packet flow to maintain a consistent quality of service? A very simple mechanism involves the degree of membership to be used as a coefficient to the gating algorithm.
Our gating function defines how many packets may pass during a given interval (for example one second). Each second, the number of packets that are permitted to pass is adjusted to maintain consistent utilization for the application. If the utilization is too high, we decrease the number of packets. Otherwise, if the utilization is too low, we increase it accordingly . The question is, how much to increase?
A simple mechanism is to use our degree of membership as the coefficient applied to the packet delta. Consider Equation 9.3.
(9.3) |
The variable rate is the current number of packets that are permitted to pass through in the given time period (one second). Constant pdelta is a tunable parameter that defines the maximum number of packets that can be added to or subtracted from the rate. The membership functions then provide the degree of membership that is used as a coefficient in the rate-tuning algorithm.
Let's look at a few examples using a pdelta of 10. While our rate will represent a non-integer value, we'll round up for the tuning algorithm.
Given a rate of 110, how will our algorithm adjust the rate for the gating mechanism? Using our Equation 9.3, we get:
rate = 110 + (0 * 10) - (0.5 * 10) = 105
On the next iteration, if the application continues to generate at the given rate of 105, we'll get:
rate = 105 + (0 * 10) - (0.25 * 10) = 102.5
This process continues until we reach our dead- band of 100 at which point no further rate changes are performed.
If our rate had been low, such as 80, Equation 9.3 would have adjusted as follows :
rate = 80 + (1 * 10)-(0 * 10) = 90
Therefore, using the degree of membership as a coefficient for rate-change results in a very simple control mechanism.