Marking tells the network what matters. Queuing is where that information is used, and shaping is what creates a queue in the first place.

Get the order wrong — queue without shaping, or shape without a scheduler — and QoS becomes a configuration that looks correct and changes nothing.

Shaping versus policing

Shaper Policer
Action Buffers excess Drops or re-marks excess
Effect on latency Adds delay Adds loss
Where Before the bottleneck At the bottleneck
Use Egress toward a smaller circuit ISP side, ingress

Shape on egress to just under the circuit rate. Police only where you cannot shape, such as inbound.

Shaper creates the queue; the scheduler decides who enters first.

Scheduling disciplines

Discipline Behavior Use
FIFO One queue, first in first out Default, no QoS
Priority (strict) Higher class always served first Voice, with a cap
Weighted fair Shares bandwidth by weight Data classes
LLQ Priority queue with a bandwidth limit Voice plus weighted data

Strict priority without a cap starves everything else the moment the priority class is busy. Cisco's LLQ and equivalents add the cap; if your platform calls it "priority," check whether it is capped.

Queue depth is a latency decision

A queue of 1000 packets on a 100 Mbps link is 80 ms of delay at MTU 1500. A voice call needs total one-way latency under 150 ms to stay comfortable.

Queue depth Serialization delay at 100 Mbps
50 packets ~6 ms
200 packets ~24 ms
1000 packets ~120 ms

Deep queues improve throughput for bulk traffic and ruin latency for everything else. That is bufferbloat in one table.

AQM is the modern answer

Active queue management (CoDel, FQ-CoDel, CAKE) keeps queues short automatically by dropping or marking early. If your platform offers it, prefer it over hand-tuned depths — it adapts to changing link speeds.

Worked example: 100 Mbps circuit, LLQ

Class Allocation Behavior
Voice (EF) 10 Mbps cap Priority, drops above cap
Video (AF41) 30 Mbps Weighted, low drop
Business (AF21) 40 Mbps Weighted
Bulk (CS1) 15 Mbps Weighted, first to drop
Default Remainder Weighted

Shaper at 95 Mbps. Total allocations sum to 95, so nothing is promised twice.

What breaks in production

  • Queuing without shaping, so the ISP's policer drops before your queue forms.
  • Uncapped priority, starving every other class.
  • Overcommitted allocations, where the sum of guarantees exceeds the link.
  • Queue depth set to maximum, adding hundreds of milliseconds of delay.
  • Shaping the LAN instead of the WAN, where there is no congestion to manage.
  • No measurement under load, so nobody knows whether the policy works.

Checklist

  1. The shaper is on the egress toward the smaller link, set below line rate.
  2. Priority traffic is capped.
  3. Class allocations sum to no more than the shaper rate.
  4. Queue depth (or AQM) is chosen for latency, not throughput.
  5. QoS is verified under load, with voice quality measured.
  6. The ISP side is understood, even if it cannot be controlled.

Next

The queues exist. Continue with Voice, the traffic that punishes every mistake.

  • QoS
  • Queuing
  • Shaping
  • Policing
  • Latency