キューイング & スケジューリング - 全体イメージ図
-
分類→ポリシング&マーキングの終了後、最終的にパケットはCoS値に基づき各キューに格納されます。

Cat3550の場合、10/100のI/FとGiga対応のI/Fとではキューイング&スケジューリング処理が異なります。
Giga対応ポートでのキューイングとスケジューリング
Giga対応のポートでは、輻輳管理の場合は出力キューとWRR、輻輳回避の場合はテールドロップ、または
WREDを使用します。4つの出力キューのうち1つが最優先処理される緊急キューです。各キューに割り当て
られたバッファスペースをウェイトの割合として設定するには
I/Fで[ wrr-queue queue-limit ] を使用します。
各キューに2つの廃棄スレッシュホールドを割り当ててから、[
DSCP/スレッシュホールドマップ ] を使用して
DSCPをスレッシュホールドにマッピングして、I/F上でテールドロップまたはWREDのいずれかを有効にします。
廃棄スレッシュホールドの設定として、テールドロップの場合はI/F上で[
wrr-queue threshold ] を使用して
WREDの場合はI/F上で [ wrr-queue random-detect
max-threshold ] を使用します。どちらを実装させようと
DSCP/スレッシュホールドマップは必要であり、[
wrr-queue dscp-map ]を I/F上で設定する必要があります。
出力リンクの空いている帯域幅はキュー間で分割されます。WRRのウェイト率に応じて処理されるように
キューを設定するには [ wrr-queue
bandwidth
] コマンドを使用します。WRRスケジューリングでは各キュー
からウェイト値に従って順番にいくつかパケットを送信していくことによって、ロープライオリティのキューが
ハイプライオリティのキューのトラフィックの伝送中に完全に無視されないようにします。但し、出力キューの
4が緊急キューになった場合、このキューに格納されるトラフィックは常に最優先処理されます。その場合、
WRRは4番目の帯域幅のウェイトは無視されて比率計算から除外されます。緊急キューが空になるまで
他のキューは一切処理されません。緊急キューを有効にするためには
I/F上で [ priority-queue out ] と
設定します。CoS値に対する各出力キューのマッピングは
I/F上で [ wrr-queue cos-map ] で設定します。

テールドロップ ( 実際はWTD )
Catalyst3550において、テールドロップのGiga対応ポートの
[ デフォルト ] の輻輳回避技術です。テール
ドロップ使用した場合、スレッシュホールドを超えるまでパケットはキューイングされます。threshold
1 に
割り当てられたDSCPのパケットはパケット量がthreshold
1以下にならない限り、廃棄され続けます。一方
threshold 2 に割り当てられたDSCPのパケットはthreshold
2の値を越えない限り、キューイングされます。
テールドロップの設定は入力I/Fに [ wrr-queue
dscp-map ] を設定して、DSCP/スレッシュホールドマップ
を定義して、出力I/Fに [ wrr-queue
threshold
] を設定してthreshold1とthreshold2のしきい値を設定する。
デフォルトでは、全てのDSCP値がthreshold
1 にマップされており、そのthreshold1のしきい値は100%です。
テールドロップとWREDは排他的関係にあり、テールドロップを設定している時はWREDを有効にできません。
WRED
Ciscoにより実装されたRED( Random
Early
Detection )はWREDと呼ばれています。WREDは発生した輻輳
を制御するのではなく、輻輳を予測して回避しようとする技術です。WREDはTCPの輻輳制御を利用します。
WREDは輻輳が激しくなる前にパケットをランダムに廃棄して、パケットの送信元に伝送速度を下げるように
要求します。パケットの送信元でTCPが動作していることを前提に、全てのパケットが宛先に到達するまで
伝送速度を下げるようWREDは送信元に要求して輻輳を回避しようとします。出力インターフェースに輻輳の
兆候がでるとWREDはパケットを選択的にドロップさせて、テールドロップが起きないように努力します。早め
に一部のパケットをドロップさせることにより、一度に多数のパケットが廃棄されなくなります。ギガビット対応
のポートではこのWREDを適用することができます。[
wrr-queue random-detect max-threshold
] コマンド
により4つの出力キューに対して、2つのスレッシュホールドを設定することができます。各スレッシュホールド
は、WREDがランダムにパケットを廃棄する開始する時点を示します。キューの上限に近づくにつれて、廃棄
されるパケットも増えていきます。もちろん、キューの上限を超えた場合は、全てのパケットが廃棄されます。

WREDの設定は、TD同様に入力I/Fに [ wrr-queue
dscp-map ] を設定し、DSCP/スレッシュホールドマップ
を定義します。そして出力I/Fに [ wrr-queue
random-detect max-threshold queue-id
threshold1,
2 ] の
コマンドにより、キューに対するしきい値を設定していきます。thresholdに指定可能な範囲は
1〜100 です。
10/100ポートでのキューイングとスケジューリング
10/100ポートでは、キューイングとスケジューリングプロセス中は出力キューを使用して、最小確保レベルと
バッファサイズを選択し、WRRを使用して輻輳管理を行います。このポートでは輻輳回避の実装はありません。
10/100ポートでは4つの出力キューがあり、そのうちの1つが緊急キュー(queue4)となります。各キューでは
8つの最小確保レベルのうちの1つを利用できます。各レベルにはパケットをキューイングするためのバッファ
スペースがデフォルトで100パケット分あります。最小確保レベルに指定されたバッファがいっぱいになると、
バッファースペースが空くまでパケットが廃棄されます。下図は10/100ポートのキューの割り当て、最小確保
レベル、バッファサイズの例を示しています。F0/1の出力キュー1には最小確保レベル1、出力キュー2には
最小確保レベル3、出力キュー3には最小確保レベル5、出力キュー4には最小確保レベル7を割当ています。
これによりF0/1のキュー1のバッファサイズは10パケット、F0/1のキュー4のバッファサイズは70パケットだと
分かります。最小確保レベル(Minimum-Reserve
Level)に対するバッファスペースの割り当てのコマンドには
[ mls qos min-reserve ] を使用します。キューに最小確保レベル(MRL)を割り当てるには、インターフェースの
コンフィグレーションで [ wrr-queue
min-reserve
] コマンドを使用します。下図はMRLのマッピングの例です。
| キューとMRLのマップ |
|
MRLとバッファサイズのマップ |
| FastEthernet |
Queue 1 |
Queue 2 |
Queue 3 |
Queue 4 |
MRL |
バッファサイズ |
| MRL |
MRL |
MRL |
MRL |
1 |
10 |
| 0/1 |
1 |
3 |
5 |
7 |
2 |
20 |
| 0/2 |
2 |
4 |
6 |
8 |
3 |
30 |
| 0/3 |
1 |
2 |
3 |
4 |
4 |
40 |
| 0/4 |
5 |
6 |
7 |
8 |
5 |
50 |
| : |
: |
: |
: |
: |
6 |
60 |
| : |
: |
: |
: |
: |
7 |
70 |
| : |
: |
: |
: |
: |
8 |
80 |
出力リンクの空いている帯域幅はキュー間で分割されます。WRRのウェイト率に応じて処理されるように
キューを設定するには [ wrr-queue bandwidth
] コマンドを使用します。WRRスケジューリングでは各キュー
からウェイト値に従って順番にいくつかパケットを送信していくことによって、ロープライオリティのキューが
ハイプライオリティのキューのトラフィックの伝送中に完全に無視されないようにします。但し、出力キューの
4が緊急キューになった場合、このキューに格納されるトラフィックは常に最優先処理されます。その場合、
WRRは4番目の帯域幅のウェイトは無視されて比率計算から除外されます。緊急キューが空になるまで
他のキューは一切処理されません。緊急キューを有効にするためには
I/F上で [ priority-queue out ] と
設定します。CoS値に対する各出力キューのマッピングは
I/F上で [ wrr-queue cos-map ] で設定します。

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