Congestion avoidance and other QoS tools: WRED, ECN, link fragmentation, RSVP and IP SLA testing
In short: When a queue fills, tail drop discards every new packet and makes many TCP sessions slow down together. WRED drops a few packets early and by class, so TCP backs off gradually; ECN can signal congestion without dropping. Other tools include legacy link fragmentation for slow links, RSVP admission control, and IP SLA probes to prove QoS works.
The problem with tail drop
A queue has a fixed length. With tail drop, the default, once it is full every arriving packet is discarded. That causes three problems on links carrying many TCP sessions:
- Global synchronisation: many sessions lose packets at the same moment, all slow down together, the link goes quiet, then they all speed up and overflow again. Average use stays well below capacity.
- TCP starvation: UDP flows do not slow down when packets are lost, so they can take over the queue.
- Delay: a constantly full queue adds delay for everyone.
RED and WRED
Random early detection (RED) watches the average queue depth. Below a minimum threshold nothing is dropped. Between the minimum and maximum thresholds, packets are dropped at random with a probability that rises towards the mark probability denominator (1 in 10 by default on IOS). Above the maximum, all new packets are dropped. Because only a few sessions lose a packet at a time, TCP sessions back off at different moments and the link stays busy.
Weighted RED (WRED) keeps separate thresholds per IP Precedence or DSCP value. With random-detect dscp-based, AF13 traffic starts dropping before AF11, matching the drop priorities that the AF classes describe.
policy-map WAN-QUEUING
class BULK
bandwidth remaining percent 10
random-detect dscp-based
random-detect ecn
class class-default
fair-queue
random-detect dscp-based
Use WRED only on queues carrying TCP. Never apply it to the voice priority queue: dropping voice early helps nothing, because UDP does not slow down.
Explicit Congestion Notification (ECN) uses the last two bits of the ToS byte. If both ends support ECN, WRED marks the packet as "congestion experienced" instead of dropping it, and the receiver tells the sender to slow down. Modern operating systems support ECN, and it is becoming more common with low-latency designs such as L4S.
Link efficiency on slow links (legacy)
On very slow serial links, a single large packet takes a long time to send. A 1500-byte packet at 64 kbps takes about 188 ms to serialise, and a voice packet stuck behind it misses its deadline even with LLQ. Multilink PPP with link fragmentation and interleaving (LFI) chopped large packets into fragments sized for about 10 ms of transmission and slipped voice packets between them. Header compression (cRTP) reduced voice overhead in the same era. These were important on 128 kbps to 768 kbps links; with today's broadband and Ethernet WAN services, serialisation delay is tiny and LFI is a legacy tool you mainly meet in older exam material.
RSVP admission control and IP SLA testing
RSVP can do something DiffServ cannot: refuse a new call when there is not enough bandwidth, so that one extra call does not degrade all the others. This is called call admission control. Most voice systems now do admission control in the call manager instead, but the idea is the same.
Whatever you configure, prove it works. Cisco IP SLA operations generate synthetic traffic and measure delay, jitter and loss. A UDP jitter probe can carry a DSCP marking, so it travels through the same queues as real voice:
! On the far-end router
ip sla responder
! On the near-end router
ip sla 10
udp-jitter 10.50.1.1 16384 codec g711alaw
tos 184
frequency 60
ip sla schedule 10 life forever start-time now
show ip sla statistics 10
The ToS value 184 is DSCP EF. Graphing these results over time shows whether QoS keeps voice within its targets during busy hours.
Real-world example: a regional newspaper's office link was always 70% busy but users complained of slow page loads in the afternoon. Interface graphs showed a pattern of short peaks and troughs. The engineer recognised global synchronisation from many large photo uploads, enabled DSCP-based WRED on the default and bulk classes, and added an IP SLA jitter probe marked EF to check voice. The link averaged closer to 90% use without long queues, page loads improved, and the probe confirmed voice jitter stayed under 10 ms.
Practice
What is TCP global synchronisation?
Why should WRED not be used on a voice priority queue?
A 1500-byte packet crosses a 128 kbps link. How long does serialisation take?
Key takeaways
- Tail drop causes global synchronisation, TCP starvation and long queues.
- WRED drops randomly and early, with lower-priority DSCP values dropped first.
- ECN marks packets instead of dropping them when both ends support it.
- Multilink PPP fragmentation and interleaving is a legacy fix for slow serial links.
- Use IP SLA probes marked with the right DSCP to prove your QoS works.
Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.