Business Support: Network


An overview of traffic shaping

Learn more about traffic shaping, when to use it, and where to apply it.

This topic provides and overview of traffic shaping and why it's important. We also have a topic providing examples of how to configure traffic shaping.

What is traffic shaping?

Traffic shaping is a method of limiting the bandwidth going through an interface. Typically, traffic shaping will have a CIR (committed information rate) 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 upon 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, you are a baseball pitcher and can throw 10 baseballs per second (Bbps). You can achieve this rate in more than one way. If you throw 2 baseballs every 200 ms (milliseconds), that will achieve 10 Bbps. Intervals of 200ms means there will be 5 intervals in one second (1000ms / 200ms). 2 baseballs * 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). 5 baseballs * 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

Tc = Time between throwing baseballs

Bc = number of baseballs thrown

CIR = average number of baseballs over one second.     

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 will reach the same rate (10 Bbps).

In networking, we just replace the baseballs with bits.

The equation for traffic shaping: Tc = Bc / CIR

  • Tc is measured in seconds
  • Bc is measured in bits
  • CIR is measured in bits/sec (bps)

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 you throw baseballs is important to the catcher. The catcher in this case can only catch 2 baseballs every 200ms, if you try to throw 5 baseballs to the catcher every 500ms, he 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 CenturyLink (if you purchased managed CPE).

  • Adding traffic shaping with the default burst sizes is better than not having traffic shaping
  • When it comes to traffic shaping there is no “one size fits” all.  The burst sizes and queue-limit may need to be tweaked to obtain the best performance
  • Be aware that some vendors will represent the burst sizes in different formats (bytes vs. bits)

Do I need traffic shaping?

  • Traffic shaping is used when purchasing Metro Ethernet service

  • If you have a DS1, DS3 or OCx circuit, then you don’t need traffic shaping

  • Traffic shaping is used when the purchased CIR is less than port speed

  • If the purchased CIR is equal to the port speed, then you don’t need traffic shaping

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

Who needs to configure traffic shaping?

If you are providing your own CPE, then you would need to configure traffic shaping on your WAN interface facing CenturyLink. If you purchased a managed CPE device from CenturyLink, then we would configure traffic shaping for you on the managed CPE.

Where should I apply traffic shaping?

Metro Ethernet providers will police traffic ingress at the UNI (User Network Interface). 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.

Why is traffic shaping important?

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