WRED ( Weighted Random Early Detection )



 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 



ネットワークエンジニアとして

Copyright(C) 2002-2008 Cool. All Rights Reserved