Home > CISCO, QoS > Understanding Traffic Shaping

Understanding Traffic Shaping

November 25th, 2010

Traffic Shaping involves in queueing traffic rather than dropping it. Traffic Shaping terminology is:

  • Tc – Time interval (in milliseconds) over which the committed burst (Bc) can be sent. Tc = Bc/CIR
  • Bc – Committed burst size (in bits). This is the amount of traffic that can be sent over an interval Tc
  • CIR – Committed Information Rate (in bits per second). The rate defined in the traffic contract
  • Shaped Rate – The rate at which a particular traffic is shaped. It could be same as CIR or higher than CIR.
  • Be – Excess burst size (in bits). This is the number of bits that can be sent beyond Bc

Traffic Shaping-2

A Cisco router divides 1 second into multiple sub-seconds. Above, 1 second is divided into 8 intervals (125ms each). Each interval is called Tc. During each Tc, the router sends a burst of traffic which is called Bc.

For example, to achieve a CIR (contract rate) of 128Kbps, the Cisco router will send 16000 bits (Bc = 128000 * 0.125) during the first interval and stop sending any further traffic until the next interval. So, if the access link speed is 1.544Mbps, it will take the Cisco router 10.3ms to send 16000 bits. For the rest of the interval, it will not send any traffic.

Traffic Shaping with no Excess Burst:

Traffic shaping involves the concept of Token Bucket. In the token bucket scenario, each token lets you send 1 bit. The size of the token bucket is Bc. There are two actions that revolve around token bucket and the tokens-

  1. Re-filling of bucket with new tokens
  2. Consumption of tokens by the Shaper to earn the right to send packets

At the beginning of each Tc interval, the token bucket is filled with tokens, but no more than Bc. If there is not enough room in the bucket as the tokens were not used up in the previous interval, some tokens spill out. Those spilled tokens cant be used.

Every time a packet is sent, the Shaper spends tokens from the bucket to buy the right to forward the packet. When the Shaper tries to send the packet, and there are not enough tokens in the bucket, the Shaper must wait until the next interval when the bucket is refilled.

In Cisco IOS, traffic shaping with no excess burst can be configured using shape average <shaping-rate> command from policy-map configuration mode. The “shaping-rate” could be same as CIR or slightly higher than CIR but less than access-link rate.

The following example shows the configuration of average traffic shaping. Traffic shaping is applied to outgoing TCP traffic generated via Iperf.

Traffic shaping with no excess burst

class-map P5001
match access-group 101
!
policy-map SHAPE
class 5001
shape average percent 50
!
interface fastethernet 0/1
bandwidth 1000
service-policy output SHAPE
!

Cisco recommends only the shaping rate should be specified and the inbuilt algorithm will calculate appropriate Bc. Cisco IOS chooses Tc=24ms here. The Bc is calculated as 12000 bits. The Increment value indicates the number of tokens replenished every Tc interval. Also note, the Shaping Active suggests no shaping. The reason being if there is no traffic flowing through the interface, shaping will not be in effect. The Byte Limit indicates the size of the token bucket.

output

Router# show policy-map interface fastethernet 0/1
FastEthernet0/1

Service-policy output: SHAPE

Class-map: P5001 (match-all)
5368 packets, 7598188 bytes
5 minute offered rate 99000 bps, drop rate 0 bps
Match: access-group 101
Traffic Shaping
Target/Average Byte Sustain Excess    Interval Increment
Rate           Limit bits/int  bits/int  (ms)      (bytes)
50 (%)                0 (ms)      0 (ms)
500000/500000 3000 12000 12000     24 1500

Adapt  Queue     Packets   Bytes     Packets   Bytes     Shaping
Active Depth                         Delayed   Delayed   Active
-      0         5367      7597242   5343      7587026   no

Class-map: class-default (match-any)
457 packets, 33974 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

When Iperf was initiated to generate TCP traffic with 4 different flows, the maximum throughput it could achieve was 481kbps (~500kbps). This is almost equal to the shaping rate 500kbps.

Iperf output

C:\>iperf -c 192.168.2.10 -p 5001 -P 4 -t 60
------------------------------------------------------------
Client connecting to 192.168.2.10, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1912] local 192.168.1.10 port 1053 connected with 192.168.2.10 port 5001
[1880] local 192.168.1.10 port 1054 connected with 192.168.2.10 port 5001
[1864] local 192.168.1.10 port 1055 connected with 192.168.2.10 port 5001
[1848] local 192.168.1.10 port 1056 connected with 192.168.2.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[1864]  0.0-60.5 sec   888 KBytes   120 Kbits/sec
[1848]  0.0-60.9 sec   896 KBytes   120 Kbits/sec
[1880]  0.0-61.2 sec   904 KBytes   121 Kbits/sec
[1912]  0.0-61.2 sec   904 KBytes   121 Kbits/sec
[SUM]  0.0-61.2 sec  3.51 MBytes   481 Kbits/sec

Traffic Shaping with Excess Burst:

Traffic shaping implements Be by making the token bucket bigger; of the size of (Bc + Be). There are now Bc+Be worth of tokens in the bucket. Still, at the start of each interval Tc, the Shaper fills the bucket with Bc amount of tokens. However, if due to inactivity during some interval (like in figure 1 above), the bucket can accommodate those Bc worth of tokens since its size has been increased. Now, in the next Tc interval, if there are more bits to send, the Shaper can use these Bc+Be tokens to send that amount of bits. In essence, exceed the shaping rate as long as there are extra tokens left in the bucket.

The diagram below shows that since there was no activity during fifth Tc interval, the Shaper used up those extra tokens and sent Bc+Be worth of bits in the sixth interval.

Traffic Shaping With Be

Shaping at Peak rate:

With shape peak, CB shaping allows Bc+Be bits to be sent every interval even if there has been no period of inactivity. The Shaper replenishes Bc+Be tokens into the bucket.

In Cisco IOS, peak traffic shaping can be configured using shape peak <shaping-rate> command from policy-map configuration mode.

The following example shows the configuration of peak traffic shaping. Traffic shaping is applied to outgoing TCP traffic generated via Iperf.

peak traffic shaping

class-map P5001
match access-group 101
!
policy-map SHAPE
class 5001
shape peak percent 50
!
interface fastethernet 0/1
bandwidth 1000
service-policy output SHAPE
!

Again, the Cisco IOS calculates the appropriate Bc and Be values. It uses Tc=24ms.

Router output

Router# show policy-map interface fastethernet 0/1
FastEthernet0/1

Service-policy output: SHAPE

Class-map: P5001 (match-all)
5335 packets, 7555414 bytes
5 minute offered rate 95000 bps, drop rate 0 bps
Match: access-group 101
Traffic Shaping
Target/Average Byte   Sustain Excess Interval Increment
Rate           Limit  bits/int bits/int (ms) (bytes)
50 (%)                0 (ms)      0 (ms)
1000000/500000 3000   12000 12000 24 3000

Adapt  Queue     Packets   Bytes     Packets   Bytes     Shaping
Active Depth                         Delayed   Delayed   Active
-      0         5334      7554468   5317      7550502   no

Class-map: class-default (match-any)
170 packets, 12700 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

The Iperf output shows that the maximum throughput achieved this time is almost double than average shaping rate.

Iperf output

C:\>iperf -c 192.168.2.10 -p 5001 -P 4 -t 60
------------------------------------------------------------
Client connecting to 192.168.2.10, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1912] local 192.168.1.10 port 1061 connected with 192.168.2.10 port 5001
[1880] local 192.168.1.10 port 1062 connected with 192.168.2.10 port 5001
[1864] local 192.168.1.10 port 1063 connected with 192.168.2.10 port 5001
[1848] local 192.168.1.10 port 1064 connected with 192.168.2.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[1864]  0.0-60.4 sec  1.73 MBytes   240 Kbits/sec
[1880]  0.0-60.5 sec  1.73 MBytes   240 Kbits/sec
[1912]  0.0-60.5 sec  1.73 MBytes   240 Kbits/sec
[1848]  0.0-60.5 sec  1.73 MBytes   240 Kbits/sec
[SUM]  0.0-60.5 sec  6.93 MBytes   960 Kbits/sec


KINDLY REPRODUCED FROM SOURCE: http://sites.google.com/site/amitsciscozone/

Categories: CISCO, QoS Tags:
Comments are closed.