Rate policies assign specific rate in bits per second per TCP connection. In addition, you can specify how much excess bandwidth each connection may use. Rate policies have two components: guaranteed bandwidth and burstable bandwidth. Bandwidth is allocated to each individual user session. You must be very careful not to assign large amounts of guaranteed bandwidth, because as the number of simultaneous sessions increases, you'll run out of bandwidth.
Priority policies denote only relative importance of a flow and do not specify how much rate is given or how excess is allocated. You can specify a value from 0 to 7, where 7 is the highest priority. The Inbound/Default and Outbound/Default classes are factory-set to a priority of 3.
Below are basic rules about how PacketWise allocates bandwidth:
a) Traffic flows with guaranteed rates (that is, rate policies) are allocated bandwidth first. All other traffic competes for the remaining or excess bandwidth at its policy priority level.
b) Traffic classes that don't have a specific policy assigned are given a priority 3 policy (the default).
c) If a rate policy is designated burstable at a certain priority level, any available excess bandwidth is allocated in chunks according to this priority level. Priority policies get any excess bandwidth they need/want.
Here are some simple examples.
- Class1 has a 10k guaranteed rate policy, burstable at priority 3.
- Class2 has a priority 4 policy.
Class1, being that it has a rate policy, will get its 10k of guaranteed bandwidth. Then, Class2, being that it has a priority policy whose level is higher than the burstable priority level of Class1, gets all the excess bandwidth it needs. If Class2 needs all the excess bandwidth, it gets all the excess bandwidth (although Class1 still gets its guaranteed 10k). If Class2 doesn't use all excess bandwidth, Class1 will get excess bandwidth as needed.
- Class1 has a priority 4 policy
- All other classes use the default priority 3 policy
If Class1 is a bandwidth hog, it will get ALL of the available bandwidth. All other classes will be starved and get nothing because Class1 has a higher priority level than the other classes.
As we can see from the above examples, priority policies should be used with careful consideration of their implications on other traffic and can potentially cause bandwidth starvation of classes with lower priority levels.