QoS(DiffServ)の処理の仕組みと手順
QoS(DiffServ)の処理の仕組みと手順
概要、主な手順
この節ではOoSで最も広く普及しているDiffServモデルの仕組みを説明していきます。
DiffServモデルは、①分類、②マーキング、③キューイング、④スケジューリングといった処理をこの順番で行います。
1. 分類
ネットワーク機器(ルータ、スイッチ)に到達したパケットを、IPアドレス、ポート番号、CoS値、DSCP値、Precedence値などを元に分類します。
2. マーキング
フレームまたはパケットに優先度を付けるための設定(マーキング)します。フレーム(レイヤ2のデータ)への設定をL2マーキング、パケット(レイヤ3のデータ)への設定をL3マーキングと呼びます。
※ CoS(Class of Service)値:フレーム(レイヤ2のデータ)に設定できるフレームの優先度を表す値
※ DSCP値、Precedence値:パケット(レイヤ3のデータ)に設定できるパケットの優先度を表す値
3. キューイング
優先度に従って、パケットをキュー(領域)別に並べます。
キューはインタフェースごとに複数、存在し、キューによって転送される優先度は異なります。優先度の高いパケットほど、優先度の高いキューに配置され、優先度の高いキューにあるパケットから優先的に転送します。
4. スケジューリング
複数あるキューの中から、キューの優先度に従ってパケットの転送する順番の調整をします。
優先度の高いキューのパケットばかりを優先して転送すると、優先順位の低いパケットがいつまでも転送されません。
そうならないよう各キューのパケットを転送する順番、割合、優先度を踏まえて調整します。
マーキング
各パケット、フレームに優先順位を付けるマーキングについて詳しく見ていきましょう。
マーキングは、レイヤ2(データリンク層)として処理できるデータのフレームを対象にしたL2マーキングと、レイヤ3(ネットワーク層)として処理できるデータのパケットを対象にしたL3マーキングに分類できます。
それぞれの特徴や、データ(パケット、フレーム)の中身を次のページ以降で確認していきましょう。
L2マーキング
レイヤ2(データリンク層)として処理できるデータのフレームへの優先順位を付ける(マーキング)
L3マーキング
レイヤ3(ネットワーク層)として処理できるデータのパケットへの優先順位を付ける(マーキング)
L2マーキング
L2マーキングでは、VLANタグに含めることができるIEEE 802.1Qフレームが使用されます。
VLANタグの中に、データ(フレーム)の優先順位を示すCoS値を決めるPCP(Priority Code Point)フィールドが含まれているからです。
このフィールドは3ビットに0~7の8段階で優先順位を示す値を入れることができます。
IEEE 802.1Qフレーム
L3マーキング
L3マーキングでは、パケット内に含まれるIP Precedence値またはDSCP値を使って、パケットの優先順位を決めます。
これらの値は、IPv4ヘッダに含まれるToS(Type of Service:サービスタイプ)というフィールドで扱うことができます。
ToSフィールドは8ビットのフィールドです。
その内、先頭の3ビットだけを使用すると、
0~7(8段階)の優先度を示すIP Precedence値になり、先頭の6ビットを使用すると、
0~63(64段階)の優先度を示すDSCP値になります。
DSCPの方がビット数も多いのでより細かい優先度の設定ができます。またDSCPの先頭
3ビットをCS(Class Selector)と呼びます。
DSCPの構成について
DSCPの中身は、(転送する順番を決める)優先度、破棄されやすさの二つで構成されています。
先頭の3ビットが優先度、後半の3ビットが破棄されやすさを表します。
※例
2進数表記で「011 010 (10進数で26) 」と「011 100 (10進数で28) 」の場合、優先度は同じ011(2)ですが、破棄されやすさは、
「010(6) < 100(8)」なので後者の方が高いことがわかります。
また優先度、破棄されやすさの値を元に、AF(Assured Forwarding)とEF(Expedited Forwarding)が割り当てられます。
AF(Assured Forwarding)
ある程度、品質が担保される場合のもので、優先度1~3、破棄されやすさ0、2、4が割り当てられます。
EF(Expedited Forwarding)
優先的に転送されるためのもので、優先度4、破棄されやすさ6が割り当てられます。
各AFとEFごとの優先度、DSCP値(2進数、10進数)は右の通りです。
破棄されやすさと、優先度を軸に各AFとEFを分類すると、下の図の通りになります。
キューイングとスケジューリング
キューイングとは
キューイングとは、パケットを転送するまでの間、キュー(パケットの格納スペース)にパケットを格納することです。
パケットの入力、出力先であるインタフェースには、複数のキューがあり、キューによって転送の優先順位が決まります。
そのためパケットは、優先度に沿ったキューへ格納されます。
スケジューリングとは
一方、スケジューリングは、優先順位を元に、数あるキューの中からパケットを転送する順番を決めることです。
キューイング、スケジューリング方式の種類
キューイング、スケジューリングには色々な方式があります。以下代表的なキューイング、スケジューリングをまとめました。