|
WRED とは
輻輳を回避させる為に、インターフェースのキューにたまってきたパケットを事前にドロップさせる技術です。
パケットをランダムに少しずつドロップさせることにより、TCPを使っているホストに対して輻輳を通知する
ことができます。通知を受けたホストはTCPのWindowサイズを小さくして「
このサイズなら大丈夫だろう 」と
パケットを再送してくれます。結果として、インターフェースのキューが「
満杯 」になりにくい状態を作ります。
テールドロップとは
ところで、インターフェースのキューが満杯になった場合、その後どのような現象が発生するのでしょうか。
満杯になった後でインターフェースに到着するパケットはキューに収まらず全て破棄されることになります。
これをテールドロップと言います。つまり、
WRED はテールドロップを防ぐためのアルゴリズムなのです。
テールドロップを防ぐということは、グローバル同期化を回避するということでもあります。グローバル同期
とは、テールドロップにより大量のTCPセッションが殺され、TCP制御によりいっせいに再送信される状態。
WREDがREDよりも優れている点
テールドロップを防ぐためにパケットをランダムに廃棄する際に、REDでは何も考え座右にランダムに廃棄
していきますが、WREDの場合はパケットの優先度(
IP Precedence値、DSCP値 )等を考慮して廃棄します。
WRED が利用する「ウィンドウサイズ」ってどこ?
20byteのTCPヘッダーには16ビットの
[ Window
Size ] というフィールドがあります。WREDの輻輳回避とは
この16ビットのTCPのWindow Size を利用した輻輳回避です。そして、WREDではIPヘッダーの
[ ToS ] の
フィールドで定義されたパケットの優先度
( = IP PrecedenceやDSCP値 ) を基準にパケット廃棄しています。

つまり、WREDは 「TCPヘッダーのWindow
Size」 と 「IPヘッダーのToS」 を利用するアルゴリズムなのです。

WREDの有効なトラフィック
WREDが有効なトラフィックは、基本的にTCPを使用した通信に限ります。たとえば、ビデオサーバのある
セグメントのインターフェースでWREDを有効化させると、それはただの嫌がらせになる可能性があります。
その理由は、動画や音声の転送はUDPを使用するものが多いのですが、下図のUDPヘッダーを見れば
分かるとおりUDPヘッダーにはウィンドウサイズの調整や再送機能もなにもありません。従って、積極的に
ランダムにパケットを廃棄させたとしても破棄されるだけです。(
上位層アプリにより再送させるものもある。)

Resource : QoS 書籍一覧 Cisco QoS書籍一覧 Cisco QoS Command Guide 12.4 Cisco QoS Configuration Guide 12.4
|