Manual:Queues - Burst
Theory
Burst is a feature that allows to satisfy queue requirement for additional bandwidth even if required rate is bigger that MIR (max-limit) for a short period of time.
Burst can occur only if average-rate of the queue for the last burst-time seconds is smaller that burst-threshold. Burst must stop if average-rate of the queue for the last burst-time seconds is bigger or equal to burst-threshold
Burst mechanism is simple - if burst is allowed max-limit value is replaced by burst-limit value. When burst is disallowed max-limit value remains unchanged.
- burst-limit (NUMBER) : maximal upload/download data rate which can be reached while the burst is allowed
- burst-time (TIME) : period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)
- burst-threshold (NUMBER) : basically this is value of burst on/off switch.
- average-rate (read-only) : Every 1/16 part of the burst-time, the router calculates the average data rate of each class over the last burst-time seconds.
- actual-rate (read-only) : actual traffic transfer rate of the queue
Example
Values: limit-at=1M , max-limit=2M , burst-threshold=1500k , burst-limit=4M
Client will try to download two 4MB (32Mb) files, first download will start at zero seconds, second download will start at 17th second. Traffic was unused for last minute.
Burst-time=16s
As we can see as soon as client requested bandwidth it was able to get 4Mpbs burst for 6 seconds. This is longest possible burst with given values (longest-burst-time = burst-threshold * burst-time / burst-limit). As soon as burst runs out rest of the file will be downloaded with 2Mbps. This way file was downloaded in 9 seconds without burst it would take 16 seconds. Burst have 7 seconds to recharge before next download will start.
Note that burst is still disallowed when download started and it kicks in only afterward - in the middle of download. So with this example we proved that burst may happen in the middle of download. Burst was ~4 seconds long and file was downloaded 4 seconds faster then without burst.
Average rate is calculated every 1/16 of burst time, so in this case 1s
Time | average-rate | burst | actual-rate |
---|---|---|---|
0 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/16=0Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
1 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
2 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4)/16=500Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
3 | (0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4)/16=750Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
4 | (0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
5 | (0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
6 | (0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
7 | (0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
8 | (0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
9 | (0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
10 | (0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
11 | (0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
12 | (0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
13 | (0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
14 | (0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
15 | (0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
16 | (4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
17 | (4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
18 | (4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
19 | (4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
20 | (4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
21 | (4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
22 | (2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
23 | (2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
24 | (2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
25 | (2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
26 | (0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
27 | (0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
28 | (0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
29 | (0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
30 | (0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
31 | (0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
Burst-time=8s
If we decrease burst-time to 8 seconds - we are able to see that in this case bursts are only at the beginning of downloads
Average rate is calculated every 1/16th of burst time, so in this case every 0.5 seconds.
Time | average-rate | burst | actual-rate |
---|---|---|---|
0.0 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/8=0Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
0.5 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2)/8=250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
1.0 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2)/8=500Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
1.5 | (0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2)/8=750Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
2.0 | (0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+2)/8=1000Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
2.5 | (0+0+0+0+0+0+0+0+0+0+0+2+2+2+2+2)/8=1250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
3.0 | (0+0+0+0+0+0+0+0+0+0+2+2+2+2+2+2)/8=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
3.5 | (0+0+0+0+0+0+0+0+0+2+2+2+2+2+2+1)/8=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
4.0 | (0+0+0+0+0+0+0+0+2+2+2+2+2+2+1+1)/8=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
4.5 | (0+0+0+0+0+0+0+2+2+2+2+2+2+1+1+1)/8=1875Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
5.0 | (0+0+0+0+0+0+2+2+2+2+2+2+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
5.5 | (0+0+0+0+0+2+2+2+2+2+2+1+1+1+1+1)/8=2125Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
6.0 | (0+0+0+0+2+2+2+2+2+2+1+1+1+1+1+1)/8=2250Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
6.5 | (0+0+0+2+2+2+2+2+2+1+1+1+1+1+1+1)/8=2375Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
7.0 | (0+0+2+2+2+2+2+2+1+1+1+1+1+1+1+1)/8=2500Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
7.5 | (0+2+2+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
8.0 | (2+2+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
8.5 | (2+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
9.0 | (2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
9.5 | (2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
10.0 | (2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
10.5 | (2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
11.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
11.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
12.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
12.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
13.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
13.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
14.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+0+0)/8=1750Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
14.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+0+0+0)/8=1625Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
15.0 | (1+1+1+1+1+1+1+1+1+1+1+1+0+0+0+0)/8=1500Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
15.5 | (1+1+1+1+1+1+1+1+1+1+1+0+0+0+0+0)/8=1375Kbps | average-rate < burst-threshold → Burst is allowed | 0Mbps (0Mb per 0,5sek) |
16.0 | (1+1+1+1+1+1+1+1+1+1+0+0+0+0+0+0)/8=1250Kbps | average-rate < burst-threshold → Burst is allowed | 0Mbps (0Mb per 0,5sek) |
16.5 | (1+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0)/8=1125Kbps | average-rate < burst-threshold → Burst is allowed | 0Mbps (0Mb per 0,5sek) |
17.0 | (1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0)/8=1000Kbps | average-rate < burst-threshold → Burst is allowed | 2Mbps (1Mb per 0,5sek) |
17.5 | (1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+1)/8=1000Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
18.0 | (1+1+1+1+1+1+0+0+0+0+0+0+0+0+1+2)/8=1125Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
18.5 | (1+1+1+1+1+0+0+0+0+0+0+0+0+1+2+2)/8=1250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
19.0 | (1+1+1+1+0+0+0+0+0+0+0+0+1+2+2+2)/8=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps (2Mb per 0,5sek) |
19.5 | (1+1+1+0+0+0+0+0+0+0+0+1+2+2+2+2)/8=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
20.0 | (1+1+0+0+0+0+0+0+0+0+1+2+2+2+2+1)/8=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
20.5 | (1+0+0+0+0+0+0+0+0+1+2+2+2+2+1+1)/8=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
21.0 | (0+0+0+0+0+0+0+0+1+2+2+2+2+1+1+1)/8=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
21.5 | (0+0+0+0+0+0+0+1+2+2+2+2+1+1+1+1)/8=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
22.0 | (0+0+0+0+0+0+1+2+2+2+2+1+1+1+1+1)/8=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
22.5 | (0+0+0+0+0+1+2+2+2+2+1+1+1+1+1+1)/8=1875Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
23.0 | (0+0+0+0+1+2+2+2+2+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
23.5 | (0+0+0+1+2+2+2+2+1+1+1+1+1+1+1+1)/8=2125Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
24.0 | (0+0+1+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2250Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
24.5 | (0+1+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
25.0 | (1+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
25.5 | (2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
26.0 | (2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
26.5 | (2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
27.0 | (2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
27.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
28.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
28.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
29.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
29.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
30.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps (1Mb per 0,5sek) |
30.5 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |
31.0 | (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps (0Mb per 0,5sek) |