ネットワークエンジニア を目指して

ようこそ「ネットワークエンジニアを目指して」へ!!
「ネットワークトラブルに恐れることなく立ち向かえるネットワークエンジニア」へと導くことを信条に、ネットワーク技術の解説とネットワークに関する情報を幅広く紹介します!

ホーム > QoS > QoS - WRED(Weighted Random Early Detection)

QoS - WRED(Weighted Random Early Detection)

Bookmark this on Hatena Bookmark   
▼ ネットワークエンジニアにおすすめのサイトはこちら ▼

 

WRED(Weighted Random Early Detection)

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

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

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

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

 

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

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

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

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

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

 

 

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

 

 

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

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

 

WRED の動作

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

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

 

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

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

おすすめ記事

おすすめ書籍紹介

マスタリングTCP/IP 応用編
入門編を卒業したらこちら。
応用編も入門編と同様に豊富な図を使用し、TCP/IPに関するさらに詳細な解説を記している。
特にパッケットの構造はかなり詳細に解説しており、初心者にはすこしつらいかもしれないが非常に読みやすいのでぜひ読んでみてほしい。

インターネットルーティング入門 第2版
ネットワーク初心者の方にぜひおすすめしたい一冊。絵を豊富に使用し、「ルーティングとは」から始まり最後はRIP、BGP、MPLSまで深い解説ではなく、浅く満遍なく解説しています。
この本が理解できればルーティングスキルの第一歩を踏み出せるでしょう。

関連記事

QoSとは
QoSの基本

QoS - クラス分類とマーキング
クラス分類とマーキングについて学んでいきましょう

QoS - それぞれの機能
QoSの3つの基本機能について

QoS - 輻輳制御 (Queueing)
輻輳制御 (Queueing)についての解説

QoS - プライオリティ・キューイング(PQ)
プライオリティ・キューイングについての解説

QoS - カスタムキューイング(Custom queueing)
カスタム・キューイングについての解説

QoS - カスタムキューイング(Custom queueing)その2
カスタム・キューイングについての解説

QoS - WFQ(Weighted Fair Queue)その1
WFQ(Weighted Fair Queue)についての解説

QoS - WFQ(Weighted Fair Queue)その2
WFQ(Weighted Fair Queue)についての解説

QoS - IP Precedence
IP Precedenceについての解説

QoS - DSCP
DSCPについての解説

QoS - CBWFQ
CBWFQについての解説

QoS - LLQ (Low Latencey Queuing)
LLQについての解説

QoS - WRED(Weighted Random Early Detection)
WREDについての解説

QoS - ポリシングとシェーピング
ポリシングとシェーピングについての解説

QoS - GTS(Generic Traffic Shaping)
GTSについての解説

メールマガジン

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

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

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

もちろん無料です!!

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

メールアドレス: