Learn more about traffic shaping, when to use it, and where to apply it. We also have an article showing examples of how to configure traffic shaping.
Traffic shaping is a method of limiting the bandwidth going through an interface. Typically, traffic shaping will have a committed information rate (CIR) measured in bits/second (bps). For example, if you purchase a 100Mbps circuit, the CIR is 100,000,000 bps. With traffic shaping, any traffic that exceeds the average bit rate will be buffered, the size of the buffer is referred to as queue-limit in Cisco terms, but other vendors may call it something else. With traffic policing, any traffic that exceeds the average bit rate will be dropped or re-marked for discard eligibility, depending on how the policer is configured. Most Metro Ethernet providers will configure their policers to drop the traffic that exceeds the policer rate.
The average traffic shaping rate is achieved by sending small chunks of data at defined intervals. For example, say you are a baseball pitcher who can throw 10 baseballs per second (Bbps). You can achieve this rate in more than one way. If you throw 2 baseballs every 200ms (milliseconds), that will achieve 10 Bbps. Intervals of 200ms means there will be 5 intervals in one second (1000ms/200ms). Two baseballs times 5 intervals = 10 Bbps. Another way of achieving the same rate is to throw 5 baseballs every 500ms. This leaves us with 2 intervals in one second (1000ms/500ms). Five baseballs times 2 intervals = 10 Bbps.
In the first example our Tc = 200ms, our Bc = 2 baseballs and our CIR was 10 Bbps
In the second example our Tc = 500ms, our Bc = 5 baseballs and our CIR was 10 Bbps
This example shows that we achieve the same average rate over one second whether we throw 5 baseballs every 500ms or 2 baseballs every 200ms; either way we will reach the same rate (10 Bbps).
In networking, we just replace the baseballs with bits.
The equation for traffic shaping: Tc = Bc/CIR
First example: .200 seconds = 2 bits/10bps
Second example: .500 seconds = 5 bits/10bps
The image below illustrates this analogy. We can split up the baseballs in different ways to achieve the same rate over one second. We can send more baseballs (bits) less often or we can send fewer baseballs more often.
The rate at which the pitcher throws baseballs is important to the catcher. The catcher can only catch 2 baseballs every 200ms, if 5 baseballs are thrown to the catcher every 500ms, the catcher will likely drop baseballs. In our analogy the catcher is the policer controlled by the local Metro Ethernet provider and the pitcher is the shaper at the CE WAN interface, which is either controlled by the end user or Lumen (if you purchased managed equipment).
Follow these rules anytime a new circuit is installed or an existing circuit is upgraded:
Port Speed | CIR | Traffic shaping needed? |
100Mbps | 50Mbps | Yes |
100Mbps | 100Mbps | No |
1Gbps | 100Mbps | Yes |
1Gbps | 1Gbps | No |
If you are providing your own CPE, then you would need to configure traffic shaping on your WAN interface facing Lumen. If you purchased a managed CPE device from Lumen, then we would configure traffic shaping for you on the managed CPE.
Metro Ethernet providers will police traffic ingress at the User Network Interface (UNI). The UNI is also known as the demarcation between the CPE and the Metro Ethernet provider. Traffic shaping should be applied egress at the CPE-WAN interface.
The IPERF results below show the importance of traffic shaping. The last line (in bold) shows the average rate over the full test, each line in the middle represents the rate at one-second intervals. The column on the left shows the rate fluctuating around 7–10Mbps. These poor results and fluctuation are due to drops in a policer, this is because TCP will react to the packet loss and slow down as a result. The column on the right shows a more steady rate around 43–44Mbps. This is the result after adding 50Mbps traffic shaping which resolved the policer drops.
Missing or misconfigured traffic shaping can degrade any application (voice, video, data, etc).
Without traffic shaping
> iperf -c 10.10.10.10 -i 1 -t 30 -w 825K
------------------------------------------------------------
Client connecting to 10.10.10.10, TCP port 5001
TCP window size: 825 KByte (WARNING: requested 825 KByte)
------------------------------------------------------------
[ 3] local 10.20.20.20 port 54039 connected with 10.10.10.10 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 1.0- 2.0 sec 768 KBytes 6.29 Mbits/sec
[ 3] 2.0- 3.0 sec 896 KBytes 7.34 Mbits/sec
[ 3] 3.0- 4.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 4.0- 5.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 5.0- 6.0 sec 896 KBytes 7.34 Mbits/sec
[ 3] 6.0- 7.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 7.0- 8.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 8.0- 9.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 9.0-10.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 10.0-11.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 11.0-12.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 12.0-13.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 13.0-14.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 14.0-15.0 sec 1.00 MBytes 8.39 Mbits/sec
[ 3] 15.0-16.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 16.0-17.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 17.0-18.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 18.0-19.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 19.0-20.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 20.0-21.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 21.0-22.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 22.0-23.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 23.0-24.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 24.0-25.0 sec 1.12 MBytes 9.44 Mbits/sec
[ 3] 25.0-26.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 26.0-27.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 27.0-28.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 28.0-29.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 29.0-30.0 sec 1.38 MBytes 11.5 Mbits/sec
[ 3] 0.0-30.1 sec 33.0 MBytes 9.20 Mbits/sec
With traffic shaping
> iperf -c 10.10.10.10 -i 1 -t 30 -w 825K
------------------------------------------------------------
Client connecting to 10.10.10.10, TCP port 5001
TCP window size: 825 KByte (WARNING: requested 825 KByte)
------------------------------------------------------------
[ 3] local 10.20.20.20 port 49581 connected with 10.10.10.10 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 1.0- 2.0 sec 4.88 MBytes 40.9 Mbits/sec
[ 3] 2.0- 3.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 3.0- 4.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 4.0- 5.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 5.0- 6.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 6.0- 7.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 7.0- 8.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 8.0- 9.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 9.0-10.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 10.0-11.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 11.0-12.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 12.0-13.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 13.0-14.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 14.0-15.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 15.0-16.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 16.0-17.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 17.0-18.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 18.0-19.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 19.0-20.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 20.0-21.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 21.0-22.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 22.0-23.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 23.0-24.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 24.0-25.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 25.0-26.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 26.0-27.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 27.0-28.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 28.0-29.0 sec 5.25 MBytes 44.0 Mbits/sec
[ 3] 29.0-30.0 sec 5.12 MBytes 43.0 Mbits/sec
[ 3] 0.0-30.0 sec 152 MBytes 42.5 Mbits/sec