23.03.2017 Views

wilamowski-b-m-irwin-j-d-industrial-communication-systems-2011

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

19-12 Industrial Communication Systems<br />

Tail drop [25] is the router default queuing response to congestion. When the output queue is full and<br />

tail drop running, all packets trying to enter the queue are dropped until the congestion is eliminated<br />

and the queue is no longer full.<br />

Tail drop treats all traffic equally and does not differentiate between classes of service. The tail drop<br />

mechanism is not a good scheme in environments with a large number of TCP flows or in any environment<br />

in which selective dropping is wanted.<br />

Some of the worst consequences of simple tail drop mechanism are<br />

• With congestion in the network, dropping affects most of the TCP sessions, which simultaneously<br />

back off and then restart again, provoking inefficient link use at the congestion point.<br />

• TCP starvation, with buffers temporarily seized by aggressive flows, and normal TCP flows<br />

experience buffer starvation.<br />

• It is possible that buffering introduce delay and jitter because packets are stopped, waiting in<br />

queues.<br />

• Premium traffic is also dropped because of the inexistence of differentiated drop mechanisms.<br />

One of the approaches for avoiding these problems is the random early detection (RED) feature. RED<br />

[25] does not take into account the precedence or CoS, it simply uses one of the single threshold when<br />

that threshold value for the buffer fills. RED start to drop packets randomly (not all packets, as with tail<br />

drop) until the maximum threshold is got, and then all the packets are dropped. The idea is that the<br />

probability of dropping a packet rises linearly with the increase of buffer filling above the threshold.<br />

RED is very efficient only with TCP-based traffic, because it takes advantage of the windowing mechanism<br />

used by TCP to manage congestion. As a consequence, it is not very useful when the traffic type<br />

is not TCP-based.<br />

Other useful mechanism is Weighted RED (WRED, Figure 19.7) [25]. It is very similar to RED in that<br />

both define some threshold, and that threshold starts to randomly drop packets; but WRED is CoSaware,<br />

meaning that a CoS value is added to each of the thresholds.<br />

When the threshold is exceeded, WRED randomly drops packets with the CoS assigned. For example,<br />

with two thresholds in the queue<br />

• CoS 0 and 1 are assigned to threshold 1, and the threshold set to 40% of buffer filling.<br />

• CoS 2 and 3 are assigned to threshold 2, and the threshold set to 80% of buffer filling.<br />

At the moment that buffer exceeds 40% of use, packets with CoS 0 and 1 will start to be randomly<br />

dropped. More packets will be dropped while the buffer use grows. If 80% is reached, packets with CoS<br />

Calculate average<br />

queue size<br />

Current<br />

queue<br />

size<br />

IP packet<br />

IP precedence<br />

or<br />

DSCP<br />

WRED<br />

Queue<br />

full ?<br />

Yes<br />

No<br />

FIFO queue<br />

Select<br />

WRED<br />

profile<br />

Minimum threshold<br />

Maximum threshold<br />

Maximum probability<br />

denominator<br />

Random<br />

drop<br />

Tail drop<br />

FIGURE 19.7<br />

Weighted random early detection mechanism.<br />

© <strong>2011</strong> by Taylor and Francis Group, LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!