QoS - WRED(Weighted Random Early Detection)

 

WRED(Weighted Random Early Detection)

WRED は、Priority queueing やCustom queueing、CBWFQ のような
「輻輳を制御する」技術ではなく、「輻輳を回避する」技術です。

輻輳が発生すると、機器のキューにパケットが溜まっていきます。
当然キューの量には限界がありますので、キューが一杯になると
それ以降のパケットはどんなに優先度が高いパケットであっても
破棄されてしまいます。

この動作を「TailDrop(テールドロップ)」と言います。

TailDrop が発生することで最も困るのが、TCP 通信です。

 

TCP のスロースタートアルゴリズム

ここで、スロースタートアルゴリズムについて説明しておきましょう。

TCP 通信では、効率的に通信を行うために受信側が受信可能な
ウインドウ・サイズを広告するのですが、いきなりウインドウ・サイズで
データを送信するのではなく、最初はウインドウ・サイズ以下のデータ量を
送信します。

そして、ACK を受信する度に送信するセグメント数を倍々で
増やしていく
ことで、帯域の有効活用を行います。

この技術を「スロースタートアルゴリズム」といいます。

 

スロースタートアルゴリズム

 

そして、もし輻輳が発生するとデータの送信料を半分に下げます。
この動作を「グローバルシンクロナイゼーション」と呼びます。

 

グローバルシンクロナイゼーション

 

TailDrop が発生すると、データの送信料を半分に落としてしまうため、
非常に効率が悪くなってしまいます。

そこで、この問題を解決するために WRED が考えられました。

 

WRED の動作

WRED の説明の前に、RED について解説しておきましょう。
RED は機器に搭載されているバッファを使って、バッファに溜まった
パケットを、バッファが一杯になる前にランダムにパケットを
破棄します。

もしバッファがある閾値を超えると、連続する複数のパケットを
一気に破棄します。

 

WRED

こうすることで事前に輻輳を回避できるわけです。

RED の場合は、何も考えずにパケットを破棄してしまいますが、
WRED の場合は IP ヘッダー内の TOS フィールド(IP PrecedenceやDSCP)
と組み合わせて、優先度の低いパケットから破棄してくれます。

 

WRED の設定例

WRED を設定する場合は、インタフェースコンフィグレーションモードにて
以下の設定を入れるだけで基本的には動作が可能です。


(config-if)# random-detect [ prec-based | dscp-based ]

オプションで IP Precedence ベースか、DSCP ベースかを
選択することも可能です。(デフォルトは IP Precedence ベース)

上記設定だけで基本的には動作しますが、以下の WRED のパラメータを
変更することも可能です。

  • minimum threshold
    パケットが破棄され始める値
    平均キューサイズがこの値を超えると破棄が始まります。
  • maximum threshold
    平均キューサイズがこの値に達すると、平均キューサイズが
    maximum threshold を下回るまで、すべてのパケットが廃棄されます。
  • mark probability
    キューサイズがmaximum thresholdに達した時にパケットを
    いくつ落すかという割合の値です。
    仮に 10 の場合は、10 パケットごとに 1 パケットが破棄されます。

各パラメータの設定は以下になります。


(config-if)# random-detect { precedence | dscp } [value] min-threshold max-threshold mark-prob-denominator

{ precedence | dscp } に続く、value は IP Precedence か
DSCP の値を入れます。

設定例は以下


interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.0
random-detect
random-detect precedence 7 1000 2000 2

設定は「show queueing random-detect」でも確認が可能です。


router#show queueing random-detect
Current random-detect configuration:
FastEthernet0/0
Queueing strategy: random early detection (WRED)
Exp-weight-constant: 9 (1/512)
Mean queue depth: 0

classRandom dropTail dropMinimum MaximumMark
pkts/bytes pkts/bytesthreshthreshprob
00/00/0 20401/10
10/00/0 22401/10
20/00/0 24401/10
30/00/0 26401/10
40/00/0 28401/10
50/00/0 31401/10
60/00/0 33401/10
70/00/0 100020001/2
rsvp0/00/0 37401/10

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: