Table of Contents

WREDとは

WRED(Weighted Random Early Detection)とは、輻輳を回避するための技術です。輻輳が発生して、キュー内のパケットが増えてくると、テイルドロップされるまえにWREDによって優先度が低いフローのパケットを一定の確率で破棄(ランダムドロップ)します。アプリケーションのフローの優先度は、IPヘッダのIP PrecedenceまたはDSCPによって決めます。

図 優先度が低いフローのパケットを破棄
図 優先度が低いフローのパケットを破棄

パケットが破棄されたフローの送信元は送信レートを下げます。そうすると、優先度の高いフローのパケットはテイルドロップされることなく、ネットワークの輻輳を回避できます。なお、このような動作はTCPを利用しているアプリケーションであることを前提としています。

図 輻輳の回避
図 輻輳の回避

WREDの動作

WREDによって、輻輳を回避するためにパケットの破棄を行うために、3つのパラメータがあります。

  • Min Threshold
    ランダムドロップを開始するしきい値
  • Max Threshold
    テイルドロップを行うしきい値
  • Mark Probability Denominator (MPD)
    パケットを破棄するときの確率。1/MPDの確率でパケットを破棄する

Min ThresholdとMax Thresholdのしきい値は「キューの深さ」です。キューの深さとは、平均してキューに含まれているパケットの数です。ある時間tにおけるキューの深さQavgは、以下の式で計算しています。

Qavg(t+1)=Qavg(t)*(1-2-n)+Qt*2-n  (n=9)

キューの深さとパケットの破棄確率の関係をグラフ化すると、次のようになります。

図 キューの深さと破棄確率
図 キューの深さと破棄確率

WREDを設定するときには、IP Precedence/DSCPごとにあらかじめ定義されているMax/Min ThresholdおよびMPDの値を利用できます。また、個別に設定することもできます。優先度が低い、すなわち、輻輳時に破棄されやすいフローに対してMin/Max Thresholdを小さくします。優先度が高いフローについては、輻輳時でもできるだけ破棄しないようにMin/Max Thresholdを大きくします。たいていは、MPDは共通の値として設定します。以下のグラフは、フローの優先度ごとのMin/Max ThresholdとMPDの値の一例です。

図 Min/Max Threshold、MPDの例
図 Min/Max Threshold、MPDの例

関連記事

「ネットワークのおべんきょしませんか?」内の記事を検索