Cisco QoS FAQ: Congestion Avoidance Through Drop Policies

Cisco QoS FAQ: Congestion Avoidance Through Drop Policies

Q1. Describe the function of the congestion window in TCP, and how it is changed as a result of packet loss.

Answer: The TCP congestion window, or CWND, is one of two windowing mechanisms that limit TCP senders. CWND can be split in half as a result of packet loss, slowing the sending rate. CWND can also be slammed shut to the size of a single segment in some cases.

Q2. Identify the two TCP windowing mechanisms, and describe when each is used.

Answer: The TCP congestion window, or CWND, and the TCP receiver window, are the two windowing mechanisms. The lower of the two values is used at all times.

Q3. Describe the process of TCP slow start, and when it occurs.

Answer: TCP slow start governs the growth of the TCP congestion window after the window has been lowered in reaction to a packet drop. Slow start increases the window by one for each positively acknowledged packet received.

Q4. Describe the process of TCP congestion avoidance, and when it occurs.

Answer: TCP congestion avoidance then governs the growth of the TCP congestion window after the slow start phase has been completed.

Q5. Describe the meaning of the term “global synchronization,” and discuss what causes it.

Answer: Global synchronization describes a condition in which many TCP connections have their congestion windows lowered due to unacknowledged or lost segments at around the same instant in time. The connections all grow CWND at about the same rate, re-creating the same congestion levels again, causing more drops, which in turn reduces again the TCP congestion windows. Global synchronization is caused by a large number of packet drops in a very short period, typically the result of tail drops.

Q6. Define the meaning of the term “tail drop.”

Answer: When a queue fills, and a new packet must be placed into the queue, the packet is dropped. Because the packet would be placed into the end, or tail, of the queue, it is called tail drop.

Q7. Define the meaning of the term “TCP starvation.”

Answer: When packets are dropped, TCP connections slow down, but UDP flows do not slow down. UDP packets can consume a disproportionate amount of queue space as a result, which could get to the point that the TCP connections simply get little or no queue space; this is called TCP starvation.

Q8 Does RED compare the actual queue depth or the average queue depth to queue thresholds when deciding whether it should discard a packet? Why this one, and not the other?

Answer: RED uses average queue depth. By using the average, rather than the actual queue depth, RED behaves more consistently, rather than more erratically, which helps prevent synchronization of TCP flows.

Q9. Describe how RED uses actual queue depth to calculate average queue depth. Do not list the formula, but just describe the general idea.

Answer: RED calculates the average by adjusting the previously calculated average a small amount based on the current actual queue depth. By default, the current queue depth is weighted at about .2 percent in the formula.

Q10. Assume the RED minimum threshold is 20, the maximum threshold is 40, and the mark probability denominator is 10. What must be true for RED to discard all new packets?

Answer: The average queue depth must be above 40.

Q11 Assume the RED minimum threshold is 20, the maximum threshold is 40, and the mark probability denominator is 10. What must be true for RED to discard 5 percent of all new packets?

Answer: The average queue depth must be at 30. Because the discard percentage grows linearly from 0 percent to 10 percent (in this case), between average queue depth of 20 through 40, average queue depth of 30 would mean that the discard percentage had grown to 5 percent.

Q12. Define how RED uses the mark probability denominator. Give one example.

Answer: RED calculates the discard percentage based on the formula 1/MPD. For instance, with an MPD of 20, the discard percentage is 1/20, or 5 percent.

Q13. Define the term “exponential weighting constant.” If the value is lowered compared to the default setting of 9, how does RED behave differently?

Answer: The exponential weighting constant defines how quickly the average queue depth changes, by determining how much the actual queue depth affects the rolling average queue depth. If EWC is lowered, the average changes more quickly, because the formula weights the current actual queue depth more than before. Weighted RED (WRED)

Q14. Spell out the words represented by the initialisms RED, WRED, and FRED.

Figure: Sample Network for All FRED Examples—Configuration on R3

cisco-qos-faq-congestion-avoidance-drop-policies

Answer: Random Early Detection (RED), Weighted Random Early Detection (WRED), FlowBased Weighted Random Early Detection (FRED).

Q15. List the queuing tools that can be concurrently supported on an interface when WRED has been enabled directly on a serial interface.

Answer: FIFO Queuing only.

Q16. Identify the most important difference between RED operation and WRED operation.

Answer: WRED weights its discard decisions based on precedence or DSCP, whereas RED ignores precedence and DSCP.

17 Describe how WRED “weights” packets.

Answer: WRED weights packets based on precedence or DSCP by assigning different minimum threshold, maximum threshold, and mark probability denominator values for each precedence or DSCP.

Q18. List the queuing tools that can enable WRED for use with some or all of their queues, effectively enabling WRED concurrently with the queuing tool.

Answer: CBWFQ and LLQ.

Q19. What command enables you to look at WRED drop statistics when WRED is configured inside an MQC class?

Answer: show policy-map interface

Q20. Taking as many defaults as possible, list the configuration commands needed to configure precedence-based WRED on interface S1/1.

Answer:
interface serial 1/1
random-detect

21 Taking as many defaults as possible, list the configuration commands needed to configure DSCP-based WRED on interface S1/1.

Answer:
interface serial 1/1
random-detect dscp-based

Q22. Taking as many defaults as possible, list the configuration commands needed to configure DSCP-based WRED inside class class1, inside policy map my-policy. (You can assume that the CBWFQ configuration has already been completed, and you just entered global configuration mode. Assume that you need just to enable WRED in class class1.)

Answer:
policy-map my-policy
class class1
random-detect dscp-based

Q23. List the command needed to set the minimum threshold to 25, the maximum threshold to 50, and the mark probability denominator to 4, for precedence 2.

Answer: random-detect precedence 2 25 50 4

Q24. What show command lists detailed statistics about random drops on interface S1/1?

Answer:
show queueing interface s1/1
Flow-Based WRED (FRED)

Q25. List the queuing tools that can be concurrently supported on an interface when FRED has been enabled directly on a serial interface.

Answer: FIFO Queuing only.

Q26. Identify the most significant difference between FRED operation and WRED operation.

Answer: FRED discards packets more aggressively for flows that try to consume a relatively large amount of space in a queue, whereas WRED does not. By doing so, UDP flows can be prevented from taking too much of the space in the queue.

Q27. List the three categories of flows defined by FRED, and identify which category has its packets discarded most aggressively.

Answer: Robust flows, fragile flows, and nonadaptive flows. Nonadaptive flows are discarded most aggressively

28 Describe how FRED prevents TCP starvation.

Answer: FRED prevents hungry UDP flows from consuming too much of a queue, which in turn prevents TCP starvation.

Q29. List the queuing tools that can enable FRED for use with some or all queues, effectively enabling FRED concurrently with the queuing tool.

Answer: None.

Q30. Suppose that an interface has five active flows, with Flow 1 consuming 20 queue entries, and a maximum queue size of 40. Describe the terms “maximum per-flow queue depth,” and give an example of how it is calculated with this example. Use default values for any information not stated in the question.

Answer: The maximum per-flow queue depth defines the dividing line between fragile flows and nonadaptive flows with FRED. First, the average per-flow queue depth is calculated as 40/5 in this case, or 8. The average per-flow queue depth is multiplied by a scaling factor, which defaults to 4, giving a maximum per-flow queue depth of 32. Flow 1 would be considered a fragile flow, because it has fewer than 32 packets in the queue.

Q31 Taking as many defaults as possible, list the configuration commands needed to configure precedence-based FRED on interface S1/1.

Answer:
interface serial 1/1
random-detect flow-based
By using the random-detect flow-based command, Cisco IOS Software adds the random-detect command automatically.

Q32. Taking as many defaults as possible, list the configuration commands needed to configure DSCP-based FRED on interface S1/1.

Answer:
interface serial 1/1
random-detect dscp-based
random-detect flow-based
If you had just used the random-detect flow-based command, and not the randomdetect dscp-based command, Cisco IOS Software would have added the randomdetect command automatically, which enables precedence-based WRED.

About the author

Prasanna

Leave a Comment