キューイングおよびスケジューリング
キューイングおよびスケジューリングのプロセスにより、ネットワーク トラフィックを管理するための堅牢なフレームワークが提供され、データがネットワーク全体でスムーズかつ効率的に流れることが保証されます。これを実現するために、次のセクションで説明するように、トラフィック キューイング、トラフィック スケジューリング、トラフィック シェーピング、輻輳回避、および輻輳管理サービスが使用されます。
トラフィック キューイング
トラフィック キューイングは、入力と出力データの両方のパケットの注文が関与しています。デバイスは、異なるトラフィック クラス内のパケット シーケンシングを制御するために複数のキューをサポートできます。これは、ネットワークを通過するデータ フローを管理し、パケットが順序正しく処理されるようにするために重要です。
トラフィック スケジューリング
トラフィックのスケジューリングとは、トラフィックの一貫したフローを実現するために、パケットを必要な頻度で定期的に出力することです。トラフィックのスケジューリングをさまざまなトラフィック クラスに適用することで、プライオリティによってトラフィックに重み付けを行うことができます。
クラス マップの変更
![]() (注) |
提供されるシステム定義のキューイング クラス マップを変更することはできません。 |
-
デフォルトの動作:デフォルトでは、すべてのネットワーク トラフィックが qos-group 0 と呼ばれる 1 つのカテゴリにグループ化されます。これは、特定の構成がなければ、すべてのトラフィックが同じように扱われることを意味します。
-
[システム定義クラス(System-Defined Classes)]:これらは、さまざまなタイプのトラフィックの処理方法を管理する事前定義されたカテゴリです。直接変更することはできません。
-
ポリシー処理:
-
特定のキュー グループを構成できるタイプ キューイング ポリシーを作成できます。詳細については、タイプ キューイング ポリシーの構成を参照してください。
-
タイプ QoS ポリシーを使用して異なる qos-group にトラフィックを割り当てる場合は、帯域幅の再割り当てなど、特定のニーズを満たすためにこれらのシステム定義のポリシーをさらに調整する必要があります。
-
ポリシー マップとクラス マップの設定の詳細については、「モジュラ QoS コマンドライン インターフェイス(CLI)の使用」の章を参照してください。
トラフィック シェーピング
トラフィック シェーピングは、インターフェイスを離れるトラフィックのフローを制御して、リモート ターゲット インターフェイスの速度と一致させ、契約されたポリシーを遵守するために使用される手法です。このプロセスは、パケット フローを調整し、スムーズにすることで、データ レートの不一致によって発生したボトルネックを解消します。重要な側面は次のとおりです:
-
[最大トラフィックレート(Maximum Traffic Rate)]:各ポートの出力キューのトラフィックレートに制限を課し、このしきい値を超えるパケットをバッファリングしてパケット損失を最小限に抑えます。
-
トラフィックポリシングとの比較:トラフィック シェーピングは、パケットをドロップするのではなくバッファすることで、TCP トラフィックの動作を改善します。
-
[帯域幅制御(Bandwidth Control)]:使用可能な帯域幅を制御できます。トラフィックがシェーパー レートに準拠するようにし、特定のターゲット インターフェイスの過剰な出力トラフィックを回避します。
-
キュー長のしきい値(Queue Length Thresholds):キュー長を効果的に管理するため、重み付けランダム早期検出(WRED)を使用して構成されます。
輻輳回避
次の方式を使用して、デバイス上のトラフィックの輻輳を予防的に回避できます。
-
TCP または非 TCP トラフィックに WRED を適用します。
-
TCP または非 TCP トラフィックにテール ドロップを適用します。
輻輳管理
輻輳管理では、次の方法を使用して、キューがしきい値を超えた場合の輻輳を防止することで、ネットワーク パフォーマンスを維持します。
-
明示的な混雑通知(ECN)(Explicit Congestion Notification)
-
Approximate Fair Drop
-
重み付けランダム早期検出
輻輳管理の設定の詳細については、「出力キューでの WRED の設定」 の項を参照してください。
明示的な混雑通知(ECN)(Explicit Congestion Notification)
Explicit Congestion Notification(ECN)は WRED の拡張で、平均キュー長が特定のしきい値を超えた場合にパケットをドロップせずにマーキングします。これは、ルータやエンド ホストに輻輳を通知し、パケット伝送を遅くするように促すのに役立ちます。
Approximate Fair Drop
近似フェア ドロップ(AFD)は、輻輳時に長寿命の大規模フロー(エレファント フロー)に作用するアクティブ キュー管理(AQM)アルゴリズムで、短フロー(マウス フロー)には影響しません。
輻輳が発生すると、AFD アルゴリズムは、大規模なフローから確率的にパケットをドロップし、短いフローには影響を与えずに、設定されたキューの望ましい値でキューの占有率を維持します。
ECN は、パケットをドロップする代わりに輻輳状態をマーキングするために、特定のトラフィック クラスで AFD と有効にできます。
![]() (注) |
AFD アルゴリズムは、エレファント フローとして認定されたフローにのみ適用できます。マウス フローは保護されており、AFD ドロップの影響を受けません。 |
AFD ユーザ プロファイル
AFD では次の 3 つのユーザ プロファイルが提供されます。
-
メッシュ(アグレッシブ)
AFD および ETRAP タイマーはアグレッシブに設定されているため、キューの深さはそれほど大きくなく、キューの望ましい値の近くに維持されます。
-
バースト(デフォルト)
AFD および ETRAP タイマーはアグレッシブでもコンサバティブでもないため、キューの深さがキューの望ましい値の近くにあることが確認できます。
-
ウルトラバースト(コンサバティブ)
AFD タイマーと ETRAP タイマーはコンサバティブに設定されているため、より多くのバーストが吸収され、キューの深さの変動がキューの望ましい値の周辺で確認されます。
これらのプロファイルは、ETrap および AFD タイマーを、非常にバースト性のあるトラフィックまたはそれほどバースト性のないトラフィックなど、さまざまなトラフィック プロファイルに対して事前に設定された値に設定します。設定の柔軟性を高めるために、プロファイルで設定された ETrap period は、hardware qos etrap コマンドで ETrap age-period を設定することで上書きできます。ただし、AFD タイマーは変更できません。
次に、ETrap age-period の設定例を示します。
switch(config)# hardware qos etrap age-period 50 usec
次に、AFD ユーザ プロファイルの設定例を示します。
-
Mesh(Aggressive with ETrap age-period:20 µsec and AFD period:10 µsec)
switch(config)# hardware qos afd profile mesh
-
Burst (Default with ETrap age-period: 50 µsec and AFD period: 25 µsec)
switch(config)# hardware qos afd profile burst
-
Ultra-burst (Conservative with ETrap age-period: 100 µsec and AFD period: 50 µsec)
switch(config)# hardware qos afd profile ultra-burst
エレファントフロー
フローで受信したバイト数が Etrap byte-count-threshold で指定されたバイト数を超えると、フローはエレファント フローまたは、大規模なフローと見なされます。
フローが引き続きエレファント フローであるためには、構成されたタイマー期間に構成された bw_threshold のバイト数を受信する必要があります。それ以外の場合、フローは ETrap ハッシュ テーブルから削除されます。
すべてのエレファント フローの入力レートが計算され、AFD アルゴリズムが消費する出力に転送されます。
エレファント トラップ
エレファント トラップ(ETrap)はフローを識別してハッシュし、ドロップ確率の計算のためにフローごとの到着レートを AFD に転送します。これは、大規模なフローと短いフローを区別し、大規模なフローのみが AFD ドロップの対象となるようにするのに役立ちます。
ETrap パラメータ
ETrap には、構成可能な 次のパラメータがあります:
-
Byte-count
Byte-count は、エレファント フローを識別するために使用されます。フローで受信したバイト数が byte-count-threshold で指定されたバイト数を超えると、そのフローはエレファント フローと見なされます。(デフォルトの byte-count は 1 MB 以下です)。
-
Age-period および Bandwidth-threshold
Age-period および Bandwidth-threshold は、エレファント フローのアクティブ性を追跡するために一緒に使用されます。
エージング期間中の平均帯域幅が設定された帯域幅しきい値よりも低い場合、エレファント フローは非アクティブと見なされ、タイムアウトになり、エレファント フロー テーブルから削除されます。(デフォルトの経過時間は 50 マイクロ秒です。デフォルトの bandwidth-threshold は 500 バイトです。
例:
switch (config)# hardware qos etrap age-period 50 usec
switch (config)# hardware qos etrap bandwidth-threshold 500 bytes
switch (config)# hardware qos etrap byte-count 1048555
重み付けランダム早期検出
重み付けランダム早期検出は、ランダムなドロップ確率を計算し、トラフィック クラスのすべてのフローでパケットを無差別にドロップする別の AQM アルゴリズムです。AFD と同時に使用することはできません。どちらも目的は同じですが、方法が異なるためです。
WRED と AFD の比較
機能 | WRED | AFD |
---|---|---|
アルゴリズムタイプ | アクティブ キュー管理 | アクティブ キュー管理 |
ドロップ メカニズム/輻輳管理 | ランダムなドロップ確率を計算し、トラフィック クラスのすべてのフローでパケットを無差別にドロップします。 | 着信フローの到着レートに基づいてドロップ確率を計算し、計算された適正レートと比較し、ショート フローに影響を与えずに、大規模フローからのパケットをドロップします。 |
優先的対応 | よりプライオリティの高いフローを維持するために、パケットのプライオリティ(CoS、DSCP/トラフィック クラス、または IP precedence 値)を考慮 | 長寿命のエレファント フローと短命のマイス フローを区別することにより公平さを重視し、マイス フローがドロップされないようにします。 |
![]() (注) |
AFD と WRED を同時に適用することはできません。システムで使用できるのは 1 つだけです。 |