Traffic shaping (also known as “packet shaping”) is a computer network traffic management technique which delays some or all datagrams to bring them into compliance with a desired traffic profile. Traffic shaping is a form of rate limiting.
So… Let’s say you’re a business that processes credit cards. You have 15 stores and 1 corporate headquarters that has your computer network. They 15 stores only need a little bandwidth to send the transactions to HQ but the HQ needs more bandwidth to accept the data from all of the 15 stores. What you have is a mismatch in bandwidth (or CIR, Committed Information Rate.) The stores would only need a 56K DS0 (56,000 bits per second) circuit but the HQ would need a full T1 (DS1) running at 1.544 megabits per second to handle all the traffic coming from and going to the stores.
So the problem is, the HQ is a fire hose and the stores are a garden hose… You can’t spray a fire-hose into a garden-hose and not expect some water is going splash out. In data, that water would be drops or lost packets.
To limit bandwidth, you can shape or you can police.
Traffic policing propagates bursts. When the traffic rate reaches the configured maximum rate, excess traffic is dropped (or remarked). The result is an output rate that appears as a saw-tooth with crests and troughs. In contrast to policing, traffic shaping retains excess packets in a queue and then schedules the excess for later transmission over increments of time. The result of traffic shaping is a smoothed packet output rate.
Shaping implies the existence of a queue and of sufficient memory to buffer delayed packets, while policing does not. Queueing is an outbound concept; packets going out an interface get queued and can be shaped. Only policing can be applied to inbound traffic on an interface. Ensure that you have sufficient memory when enabling shaping. In addition, shaping requires a scheduling function for later transmission of any delayed packets. This scheduling function allows you to organize the shaping queue into different queues. Examples of scheduling functions are Class Based Weighted Fair Queuing (CBWFQ) and Low Latency Queuing (LLQ).
Simply stated, both shaping and policing use the token bucket metaphor. A token bucket itself has no discard or priority policy. Let’s look at how the token bucket metaphor works:
Tokens are put into the bucket at a certain rate.
Each token is permission for the source to send a certain number of bits into the network.
To send a packet, the traffic regulator must be able to remove from the bucket a number of tokens equal in representation to the packet size.
If not enough tokens are in the bucket to send a packet, the packet either waits until the bucket has enough tokens (in the case of a shaper) or the packet is discarded or marked down (in the case of a policer).
The bucket itself has a specified capacity. If the bucket fills to capacity, newly arriving tokens are discarded and are not available to future packets. Thus, at any time, the largest burst a source can send into the network is roughly proportional to the size of the bucket. A token bucket permits burstiness, but bounds it.
Use the police command to specify that a class of traffic should have a maximum rate imposed on it, and if that rate is exceeded, an immediate action must be taken. In other words, with the police command, it is not an option to buffer the packet and later send it out, as is the case for the shape command.
This example shows the configuration of two traffic-shaped interfaces on a router. Ethernet interface 0 is configured to limit User Datagram Protocol (UDP) traffic to 1 Mbps. Ethernet interface 1 is configured to limit all output to 5 Mbps.
access-list 101 permit udp any any
traffic-shape group 101 1000000 125000 125000
traffic-shape rate 5000000 625000 625000