QoS ( Quality of Service ) とは、ネットワーク上で、ある特定の通信のための帯域を予約し、一定の通信速度を保証する技術です。
アプリケーションデータを分類・グループ化し、IPヘッダ内の DSCP や、IEEE802.1Q タグ内の CoS を参照してグループ毎の優先度に従い、データを転送します。
VLANタグヘッダ内にある3ビットのフィールドで優先度を表現し、0 ~ 7 の値をとる。
802.1p ユーザープライオリティとも呼ぶ。
IPヘッダの TOS フィールド内にある 3 ビットのフィールドで優先度を表現し、0 ~ 7 の値をとる。
フレームを受信した機器に対して、該当フレームのトラフィッククラスを示すために使われる。
IP ヘッダの TOS フィールド内にある 6 ビットのフィールドで優先度を表現し、0 ~ 63 の値をとる。
DSCP は IP Precedence と同じ TOS フィールドを使用しているため、IP-Precedence と互換性がある。
フレームを受信した機器に対して、該当フレームのトラフィッククラスを示すために使われる。
タグなしフレームに対して内部処理のために付与する CoS 値のこと。
本製品は、ポート毎に 8 個の送信キューをもつ。送信キューには、ID 0 ~ 7 が割り振られており、IDの数値が大きいほど、優先度が高いキューとなる。
送信キューID の決定を何に基づいて(信頼して)行うかを表す。
本製品では、受信フレームの CoS 値または DSCP 値を使用して、送信キューの振り分けをすることができる。
LAN ポート単位で設定が可能で、初期状態(QoS を有効化したとき)は CoS に設定されている。
CoS 値や DSCP 値から、送信キューID を決定するための変換テーブル。
CoS - 送信キューID変換テーブルと DSCP - 送信キューID変換テーブルの 2 種類があり、それぞれのトラストモードで使用される。
本製品では、これらのテーブルのマッピングを変更することはできない。
受信ポート毎に設定された優先度。トラストモードが"ポート優先"の場合、そのポートで受信したフレームは、ポート優先度の設定に基づいて送信キューへ格納される。
本製品の QoS 制御は、工場出荷時、 無効 となっています。
QoS 制御の有効化は、 qos enable コマンドで行います。無効化する場合は、 no qos コマンドで行います。
QoS 制御コマンドのほとんどは、QoS が有効化されていないと実行することができません。
また、QoS 機能の状態は、 show qos コマンドで確認することができます。
QoSの処理フローは以下のようになります。
本製品はフレームを受信すると、フレーム内の CoS 値や DSCP 値 、受信ポートの ポート優先度 に基づいて、送信キューID の初期値を決定します。
フレームの CoS 値、DSCP 値のうち、何に基づいて送信キューを決定するかは、ポートの トラストモード によって決まります。
トラストモード は、 qos trust コマンドで変更することができ、初期設定(QoS 有効化時)は CoS に設定されています。
送信キューの割り当ては、 トラストモード 毎に以下のルールで行われます。
CoS 値 | 送信キューID | Traffic Type |
---|---|---|
0 | 2 | Best Effort |
1 | 0 | Background |
2 | 1 | Standard(spare) |
3 | 3 | Excellent Effort(Business Critical) |
4 | 4 | Controlled Load(Streaming Multimedia) |
5 | 5 | Video(Interactive Media) less than 100 msec latency and jitter |
6 | 6 | Voice(Interactive Media) less than 10 msec latency and jitter |
7 | 7 | Network Control(Reserved Traffic) |
DSCP 値 | 送信キューID | Traffic Type |
---|---|---|
0 - 7 | 2 | Best Effort |
8 -15 | 0 | Background |
16 - 23 | 1 | Standard(spare) |
24 - 31 | 3 | Excellent Effort(Business Critical) |
32 - 39 | 4 | Controlled Load(Streaming Multimedia) |
40 - 47 | 5 | Video(Interactive Media) less than 100 msec latency and jitter |
48 - 55 | 6 | Voice(Interactive Media) less than 10 msec latency and jitter |
56 - 63 | 7 | Network Control(Reserved Traffic) |
受信したフレームのCoS値またはDSCP値の書き換えを、ポート毎に行います。
特定のポートで受信したフレームの優先度を制御するために使用します。
リマーキングは送信キュー再割り当ての前に実行されるため、本製品の優先制御においてもリマーキング後のCoS値またはDSCP値が使用されます。
一連の QoS 処理によって最終的に決定した送信キューへ、フレームを格納します。
本製品では、送信キュー混雑状況を解消するために、フレームを選択し、破棄する仕組みを提供します。
スケジューリングにより、送信キューに格納されたフレームをどのような規則で送出するかを決定します。
輻輳制御の仕組みと合わせて、スケジューリングを適切に制御することによって、QoS を保証するのに役立ちます。(不適切なスケジューリングは QoS を劣化させます。)
本製品は、送信キューのスケジューリング方式として、 重み付きラウンドロビン方式(WRR) をサポートします。
送信キューID | Weight | Ratio |
---|---|---|
7 (highest priority) | 4 | 20% |
6 | 4 | 20% |
5 | 3 | 15% |
4 | 3 | 15% |
3 | 2 | 10% |
2 | 2 | 10% |
1 | 1 | 5% |
0 (lowest priority) | 1 | 5% |
PHB | DSCP値 | RFC | |
---|---|---|---|
Default | 0 | RFC2474 | |
CS (Class Selector) | CS0 | 0 | RFC2474 |
CS1 | 8 | ||
CS2 | 16 | ||
CS3 | 24 | ||
CS4 | 32 | ||
CS5 | 40 | ||
CS6 | 48 | ||
CS7 | 56 | ||
AF (Assured Forwarding) | AF11 | 10 | RFC2597 |
AF12 | 12 | ||
AF13 | 14 | ||
AF21 | 18 | ||
AF22 | 20 | ||
AF23 | 22 | ||
AF31 | 26 | ||
AF32 | 28 | ||
AF33 | 30 | ||
AF41 | 34 | ||
AF42 | 36 | ||
AF43 | 38 | ||
EF (Expedited Forwarding) | 46 | RFC2598 |
関連コマンドについて、以下に示します。
詳細は、コマンドリファレンスを参照してください。
操作項目 | 操作コマンド |
---|---|
QoS の有効・無効制御 | qos enable |
デフォルト CoS の設定 | qos cos |
トラストモードの変更 | qos trust |
ポート優先度の設定 | qos port-priority-queue |
QoS 機能の設定状態の表示 | show qos |
LANポートの QoS 情報の表示 | show qos interface |
送信キュー使用率の表示 | show qos queue-counters |
リマーキングの設定 | remark |
フレームの DSCP 値に基づき送信キューを振り分け、優先制御を行います。
Yamaha(config)#qos enable … (QoS を有効にする) Yamaha(config)#interface port1.1 … (LAN ポート #1 に対する設定) Yamaha(config-if)#qos trust dscp … (トラストモードを DSCP に変更) Yamaha(config-if)#exit Yamaha(config)#interface port1.2 … (LAN ポート #2 に対する設定) Yamaha(config-if)#qos trust dscp … (トラストモードを DSCP に変更) Yamaha(config-if)#exit
フレームの CoS 値に基づき送信キューを振り分け、優先制御を行います。
Yamaha(config)#qos enable … (QoS を有効にする) Yamaha(config)#interface port1.1 … (LAN ポート #1 に対する設定) Yamaha(config-if)#qos trust cos … (トラストモードを CoS に変更) Yamaha(config-if)#qos cos 2 … (タグ無しのフレームをCoS値 2 で受信したものとして扱う) Yamaha(config-if)#exit Yamaha(config)#interface port1.2 … (LAN ポート #2 に対する設定) Yamaha(config-if)#qos trust cos … (トラストモードを CoS に変更) Yamaha(config-if)#qos cos 2 … (タグ無しのフレームをCoS値 2 で受信したものとして扱う) Yamaha(config-if)#exit
受信ポート毎にDSCP値を付与し、そのDSCP値に基づいて送信キューを再度割り当てます。
以下の例の場合、LAN ポート #1で受信したフレームは最も優先度の高い送信キュー(ID: 7, 重み20%)に格納され、
LAN ポート #2で受信したフレームは次に優先度の高い送信キュー(ID: 5, 重み15%)に格納、
LAN ポート #3で受信したフレームは3つのLANポートのうち最も優先度の低い送信キュー(ID: 2, 重み10%)に格納されます。
Yamaha(config)#qos enable … (QoS を有効にする) Yamaha(config)#interface port1.1 … (LAN ポート #1 に対する設定) Yamaha(config-if)#qos trust dscp … (トラストモードを "DSCP" に変更) Yamaha(config-if)#remark dscp 56 … (LAN ポート #1 で受信したフレームのDSCP値を 56 に設定) Yamaha(config-if)#exit Yamaha(config)#interface port1.2 … (LAN ポート #2 に対する設定) Yamaha(config-if)#qos trust dscp … (トラストモードを "DSCP" に変更) Yamaha(config-if)#remark dscp 36 … (LAN ポート #1 で受信したフレームのDSCP値を 36 に設定) Yamaha(config-if)#exit Yamaha(config)#interface port1.3 … (LAN ポート #3 に対する設定) Yamaha(config-if)#qos trust dscp … (トラストモードを "DSCP" に変更) Yamaha(config-if)#remark dscp 0 … (LAN ポート #1 で受信したフレームのDSCP値を 0 に設定) Yamaha(config-if)#exit
受信ポート毎に指定したポート優先度に基づいて、送信キューを決定します。
Yamaha(config)#qos enable … (QoS を有効にする) Yamaha(config)#interface port1.1 … (LAN ポート #1 に対する設定) Yamaha(config-if)#qos trust port-priority … (トラストモードを "ポート優先" に変更) Yamaha(config-if)#qos port-priority-queue 6 … (ポート優先度を 6 に設定) Yamaha(config-if)#exit Yamaha(config)#interface port1.2 … (LAN ポート #2 に対する設定) Yamaha(config-if)#qos trust port-priority … (トラストモードを "ポート優先" に変更) Yamaha(config-if)#qos port-priority-queue 4 … (ポート優先度を 4 に設定) Yamaha(config-if)#exit Yamaha(config)#interface port1.3 … (LAN ポート #3 に対する設定) Yamaha(config-if)#qos trust port-priority … (トラストモードを "ポート優先" に変更) Yamaha(config-if)#qos port-priority-queue 2 … (ポート優先度を 2 に設定) Yamaha(config-if)#exit
特になし