The Crisis Of Tail Drop

TCP Windowing – As soon as packet is acknowledged, TCP will try and much as possible to send as much traffic and increase the window size until you reach the link utilisation. Packet Loss will eventually occur when link is saturated. TCP Window will then fall in size by half, then we will build back up the window and then drop again by half when loss occurs.

Multiple occurrences of this result in TCP Synchronisation. (Global TCP Sync)

Tail Drop Flaws

1. TCP Sync

2. Traffic Starvation (Most aggressive flows will saturate queue, FTP or HTTP TCP based application for example)

3. Unbiased Dropping

Random Early Detection

RED = Industry Standard

WRED = Cisco Preparatory

  • Random drops packets from TCP flows to minimise TCP Synchronisation occurrences.
  • Dropping becomes more aggressive as queues full.
  • Specific to reliable protocols – TCP

Weighted Random Early Detection

Cisco Implementation of RED allows multiple RED profiles

RED Profiles

  1. IP Precendence (8 profiles)
  2. DSCP (64 profiles)

Mark Probability Denominator (MPD) – Value set for example 1, meaning 1 out of 10 packets will be dropped. This only applies when the max threshold is reached. Router has the intelligence to determine a ratio on the fly.

Cisco have created their own profiles to take over with good min/max and MPD values.

WRED Classes

IP Prec 1-8 – Each class can have set min/max and MPD values. (top to bottom value, you should never really reach IP Prec 5! As the issue should be dealt with at a lower IP Prec class)

The same thing can be applied to DSCP with Assured Forwarding.

WRED Configuration

random-detect – Set under the policy/class

random-detect dscp-based – Uses Cisco profiles for DSCP. Jeremy best practice!

random-detect dscp AF11 10 50 10 (Min/Max/MPD)

WRED ECN Enhancements

Explicit Congestion Notification (ECN) – Adds a proactive approach to WRED Tells sender to slow down with packets at random!

Uses last 2 bits of ToS byte.

DSCP BITS x 6  – 1 1 1 1 1 1 1 1 – ECN BITS x 2

Has 1 of 4 markings…. as follows…

0 0 – Not ECN Capable

0 1 – Endpoints are ECN capable

1 0 – Endpoints are ECN Capable

1 1 – Congestion Experienced

How ECN Works

Router and endpoint/hosts need to be ECN compatible.

Destination router will send an ECN-ECHO back to the host that sent the packet, if an ECN host is detected then it will back off and slow down!

Router to Router this will not really work.. the host needs to be involved.

ECH Configuration

Under policy map…

Under class map…

random-detect ecn

Makes router ECH compatible and can send ECN-ECHO packets and also sent congestion notifications as required by altering last 2 bits.


IMG_0649 IMG_0650 IMG_0651 IMG_0652 IMG_0653 IMG_0654