QoS(5)QoS 体系と優先制御

QoS には3つのカテゴリがある。Best Effort/優先制御/帯域制御だ。最初に登場したのは、QoS 機能を全く持たない 「Best Effort」、次に「優先制御」が登場した。優先度の高いパケットを先に送信する制御方法で、遅延ジッタに敏感な音声や映像を優先して送りたいときに使用する。

次に登場したのが「帯域制御」で、一定量の帯域が必要な映像や音声などに必要帯域を確保する時に使用する。この場合は、帯域の上限値が設定されることが多い。Webサイトアクセスやファイル転送は、優先度を高くしたり帯域を確保する必要はない。しかし、データ量が非常に多いため映像や音声などの緊急度の高いデータを圧迫する恐れがあり、帯域を制限するために「帯域制御」を使用することがある。この場合は、帯域の上限設定をすることになる。

優先制御と帯域制御は単独で使用することも、組み合わせで使用することもある。QoS 全体は図1 の様に体系づけることができる。「輻輳管理」で処理手順を定義し、クラス別キューからの取り出し方で様々な「優先制御」「帯域制御」の手法がある。「輻輳回避」は、クラス別キューまたは送信キューが溢れない様に、事前にパケットを廃棄すると共に TCP 再送による輻輳を回避する狙いがある。

帯域制御事例

音声や映像の優先度を上げて帯域を確保する事例は多数あるが、「帯域制限」の事例は少ない。これは、数少ない帯域制限の事例だ。

某学校で生徒全員がパソコンを持ち、先生の指導に従いシミュレーションや通信実験を行っていた。しかし、トラフィックが異常に多く通信障害が発生した。調べてみると、数人の生徒が授業中に漫画サイトや映像配信サイトにアクセスしていた。もちろん先生が期待した作業ではない。そこで、対象生徒の受信帯域を徐々に絞り込み、最終的には TCP の限界帯域(数10kbps あたり)まで絞り込んだ。生徒は余りの遅さに漫画サイトなどへのアクセスを諦めた。生徒は帯域が絞られていることには気が付かなったようだ。彼らが単位を取れたかは聞いていない。

DiffServ と IntServ

もう一つの QoS 体系として「DiffServ/IntServ」がある。 規格化団体 IETF(Internet Engineering Task Force)が提案している QoS 体系だ。 DiffServ/IntServ は優先制御/帯域制御にほぼ対応している。

DiffServ ( Differentiated Services)は、クラス分類/マーキング/キューイング/スケジューリングを行う QoS 制御で、優先制御と同じ概念になる。インターネットなどの広域網で QoS を提供するモデルで、一般的に QoS と言えば DiffServ を指すことが多い。

IntServ (Integrated Services) は、ネットワークで QoS を提供するもう一つのモデルだ。RSVP などの帯域予約技術を使い、ネットワーク内に仮想回線を作る。例えば、映像配信であれば、映像配信ソースから全ての映像受信装置までの全経路の帯域を予約し仮想回線を作りこむ。通信フロー(映像1本1本)ごとに帯域予約をかけ、ネットワーク機器がこの情報を保持し、必要に応じて更新しなければならない。処理負荷が重いため大規模なネットワークには向かず、比較的小規模なネットワーク用だ。「帯域制御」はネットワーク内に仮想回線を作る方式だけではなく、カバー範囲が広い。帯域制御の概念は IntServ より少し広いイメージだ。Ethernet TSN は映像配信での帯域制御に「IntServ」の考え方を採用している。

QoS 体系
図1 QoS 体系

優先制御

ルータやスイッチなどのネットワーク機器には、受信データを宛先に転送するためデータを一時保存する領域「キュー」がある。キューの持ち方、キューにデータを格納する方法やキューからデータを取り出す順序や量の制御が QoS だ。QoS の処理手順は、「輻輳管理」と呼ばれる4つのステージで順次処理される(図2)。

輻輳管理 4 ステージ
図2 輻輳管理 4 ステージ

輻輳管理

クラス分類

帯域を割り当てたり優先的に送信するパケットを分類する。分類には次のようなパラメータがあり、組み合わせで使用することもある。産業用イーサネットは、第2層(リンク層)で動作することが多い。第3層以上のパラメータを使えないことがあるため、VLAN ID をクラス分類識別に使用することが多い。

  • 送信元/宛先 TCP/UDP ポート番号
  • 送信元/宛先 IP アドレス
  • IP ヘッダの DSCP 値/IP ヘッダの Precedence 値
  • VLAN ID
マーキング
クラス分類したパケットに登録キュー識別番号を割り当てる。
キューイング
マーキングしたパケットをそれぞれのキューに格納する。キューに収まらない場合は廃棄される。
スケジューリング
どのキューからパケットを取り出し送信するかを決める。キューから取り出すパケット数やデータ量(Byte 数)はスケジューラで決まる。スケジューラの動作で、「優先制御」や「帯域制御」の動作が決まり、優先制御や帯域制御の様々なバリエーションもスケジューラの作り方で変わる。

優先制御と帯域制御には、輻輳管理の処理があるが、 Best Effort には輻輳管理がない。受信パケットは到着順に送信キューに格納され、格納順に送信される。送信キューが一杯になれば、無条件で廃棄される(図3)。

Best Effort の処理ステージ
図3 Best Effort の処理ステージ

クラス分類

ネットワーク上のフローやパケットへ優先制御や帯域制御を行うには、先ず「分類」する必要がある。分類パラメータには次のようなパラメータがある。選択するパラメータによって期待する QoS 動作対象が異なる。

クラス分類パラメータ

送信元/宛先 TCP/UDP ポート番号

送信元/宛先 IP アドレス

IPv4 ヘッダ DSCP 値/ IPv4 ヘッダ Precedence 値

VLAN ID

アプリケーションの QoS

送信元/宛先 TCP/UDP ポート番号と送信元/宛先 IP アドレスの組み合わせでクラス分類を行うと、特定の送受信ノード上の特定アプリケーションが対象になる。送信元/宛先IPアドレスで送受信ノードが決まり、送信元/宛先 TCP/UDP ポート番号でノード上のアプリケーションが決まる(図4 赤線)。その他のトラフィック(黒線)は QoS 対象外になる。TCP と UDP のポート番号は、TCP/UDPヘッダで指定する(図8)。

アプリケーションの QoS
図4 アプリケーションの QoS

送受信ノードの QoS

送信元 IP アドレスでクラス分類を行うと、特定ノードが送信するパケットが対象になり(赤線)、宛先 IP アドレスでクラス分類を行うと、特定ノードが受信するパケットが QoS の対象になる(青線)。破線は対象外になる。

アプリケーションの QoS
図5 アプリケーションの QoS

パケットの QoS

パケットごとの QoS の識別には、第2層(L2)または第3層(L3)の識別コードを使用する。第2層の識別コードは、VLAN タグの中にある「PCP: Priority Code Point 」で一般的に「CoS 値」と呼ばれる。第3層は IP が前提で、「IP Precedence 値または DSCP 値」で「ToS:Type of Service」領域にある。

どちらの識別コードを使用するかは、ネットワーク構成によって異なる。第2層の識別コードはルータを経由すると書き換えられるため、第2層で通信する領域では有効だが、ルータを経由する End to End では使えない。ルータを超える通信では、第3層の識別コードを使う必要がある。

しかし、第2層で動作するスイッチは、機種によるが第3層の識別コードを解釈できないことが多い。また、産業用イーサネットでは第3層が IP になるとは限らないため、第3層の ToS 値は使えない。産業用イーサネットは、一般的にルータを超えることはなく、第2層でネットワークを構成することが多い。このような状況を考えると、産業用イーサネットでは、第2層の「CoS 値」で識別することになる。Ethernet/IP、PROFINET や Ethernet TSN では、CoS 値の PCP をパケットの優先制御や帯域制御に使用している。

CoS 値は、802.1Q タグ付きフレームの PCP 領域の 3 ビットで 0~7の8段階の優先度を定義している(図6)。

802.1Q タグ付きフレームとPCP
図6 802.1Q タグ付きフレームとPCP

第3層の識別コードは、IPv4 ヘッダの ToS 領域で定義される。ToS 領域は 8 ビットだが、そのうち先頭 3 ビットだけを使用するのが「 IP Precedence」で、先頭 6 ビットを使用するのが「DSCP 値」になる。IP Precedence は、0~7の8段階で優先度を、DSCP は 0~63 の 64 段階で優先度を表している(図7)。

IPv4 ヘッダ
図7 IPv4 ヘッダ
TCP と UDP ヘッダ
図8 TCP と UDP ヘッダ

QoS

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。