キューイング & スケジューリング - 全体イメージ図
-
分類→ポリシング&マーキングの終了後、パケットはQoSラベルに基づいて各キューに格納されます。

キューイング & スケジューリング - 輻輳回避メカニズム(WTD)
-
入力キューと出力キューでは [ WTD ] と呼ばれるテールドロップの輻輳回避メカニズムの拡張バージョン
を使用します。このメカニズムは、ルータの輻輳回避メカニズムで使用している
[ WRED ] に似ています。
フレームが特定のキューにキューイングされると、WTDはフレームに割り当てられたQoSラベルを使用し
QoSラベルの値に応じた異なるしきい値を適用します。このしきい値を超えたフレームは廃棄されます。
下図は、例えばサイズが1000フレームであるキューでのWTDの動作例です。CoS値が0〜3までの値は
40%のしきい値、CoS値が4と5の値は60%のしきい値、CoS値が6と7の値は100%のしきい値を割り当てる
とします。その場合、CoS値0〜3のフレームは400フレームまで、CoS値4と5のフレームは600フレーム
まで、CoS値6と7のフレームは1000フレームまでキューイングできることを意味します。そして、キューに
400個のフレームが格納されている時に新しいフレームが着信すると、そのフレームがCoS値0〜3である
場合、廃棄されます。それ以外のCoS値である場合はそれぞれのしきい値まではキューイングされます。
100%を割り当てた廃棄しきい値のことを
[
キューフルステート ] と言います。そもそも、WTDの輻輳回避の
実装方式よりも、パケットの優先度(QoSラベル)に応じて複数のキューに分散して格納させることが大切。

各キューには3つの廃棄しきい値があります。そのうち2つは設定変更可能で、もう1つは変更不可能でありキューフルステート。
CCOでも紹介している上図は前提がnot good。なぜなら1つのキューにCoS値0〜7までを格納させる実装は不適切だからです。
キューイング & スケジューリング - スケジューリング(SRR)
-
入力と出力の両方のキューはSRR(Shape Round
Robin)により送信レートが決定され処理してきます。
出力キューでは、SRRを共有モードまたはシェーピングモードに実装することができますが、入力キュー
では共有モードしか実装することは出来ません。以下は、共有モードとシェーピングモードの特徴です。
| スケジューリングの実装 |
| シェーピングモード |
出力キューの帯域幅が保障されこの値にレートが制限される。シェーピングされた
トラフィックの場合はリンクがアイドルの場合も割り当てを超える帯域幅は使用されない。
シェーピングにより、時間あたりのトラフィックフローが均一になり、バーストトラフィックの
最高時と最低時を削減する。各重みの絶対値を使用してキューの帯域幅が計算される。
|
| 共有モード |
各キューは設定された重みに従って帯域幅を共有する。帯域幅はこのレベルが保証
されるがこのレベルに限定されない。例えば、特定のキューが空でありリンクを共有
する必要がない場合、残りのキューは未使用の帯域幅を使用して共有できる。共有
モードの場合、キューからパケットを取り出す頻度は重みの比率に従い制御される。 |
入力キューでは、[ mls qos srr-queue
input
buffer ] コマンドにより2つのキュー間の入力バッファを
分割する比率を定義することができます。また
[ mls qos srr-queue input bandwidth
] コマンドにより
帯域幅割合を指定することが出来て、この重みの比率によりSRRスケジューラーが各インプットキュー
からパケットを送信していきます。また、入力キューではキュー2がプライオリティキューイングとなって
おりデフォルトで有効です。このプライオリティキューは帯域幅10%をデフォルトで割り当てられているが
[ mls qos srr-queue input priority-queue
queue-id bandwidth weight ] により変更することが可能。
入力キューでのキューイングとスケジューリング

出力キューは、4つのキューがありそのうち1つ(キュー1)をプライオリティキューにできます。デフォルト
ではプライオリティキューは発動していないので、発動させる為には
[ piroirty-queue out ] の設定が
必要です。これらの4つのキューは [
キューセット
] に割り当てられています。デフォルトで全ての物理
ポートはキューセット1にマッピングされています。下図では、出力キューのバッファを示していますが、
出力キューの場合、バッファースペースは共通プールと専用プールから構成されます。出力キュー毎に
最小バッファスペースを確保している為、いずれかのキューの使用率が異常に高まっても、他のキュー
のバッファが不足することはなくなります。Catalysスイッチではバッファの空き状況を常に確認しており
キューが限度を越えてない場合、専用プールまたは共通プールからバッファスペースを割り当てます。
出力キューにおけるバッファの割り当ては
[ mls qos queue-set output qset-id
buffers
] コマンドに
より変更することができ、[ mls qos queue-set
ouput qset-id threshold ] コマンドにて変更できます。

出力キューでのキューイングとスケジューリング

Resource :Cat3550 12.2(25)SEC Cat3560 12.2(35)SEE Cat3560 12.2(25)SEE CatalystLANスイッチ教科書 BCMSNテキスト第2版
|