ITの教科書検索
入門・発展ページ読了 約12分

QoSとは ― 優先制御・帯域制御とDiffServ

QoSとは、混雑時にどの通信を先に、どれだけ通すかを決める仕組みです。優先制御と帯域制御(シェーピング・ポリシング)、DiffServとDSCPを図で解説します。

目次
  1. QoSとは
  2. QoSが必要になる理由
  3. QoSの流れ:分類・マーキング・キューイング
  4. 優先制御:送り出す順番を変える
  5. 帯域制御:シェーピングとポリシング
  6. DiffServとDSCP
  7. 有線LAN・無線LANの優先度
  8. オーバーレイネットワークとQoS
  9. 練習問題

QoSとは、混雑したときに通信の扱いに差を付ける仕組み

QoS(Quality of Service)は、回線が混んだときに、どの通信を先に送り、どの通信にどれだけの帯域を使わせるかを決める仕組みです。手法は大きく2つあり、送り出す順番を変える優先制御と、通す量を上限に収める帯域制御です。

QoSは、回線を速くする技術ではありません。限られた回線の中で、遅れに弱い通信を守るために、ほかの通信を待たせたり絞ったりします。たとえば、大きなファイルの転送と同じ回線でも、Web会議の音声が途切れないようにできます。

QoSが必要になる理由:混雑で遅れる・捨てられる

ルータは、すぐに送り出せないパケットを待ち行列にためます。この待ち行列をキューと呼びます。回線が混むとキューが長くなり、パケットが届くまでの時間が延びます。

キューがいっぱいになると、ルータは新しく来たパケットを捨てます。ファイル転送のようにTCPを使う通信なら、捨てられた分は再送されます。一方、音声通話の声は、再送を待っていては会話に間に合いません。

通信の品質は、次の4つの指標で表します。QoSの目的は、守りたい通信のこれらの値が、混雑しても悪化しないようにすることです。

品質の指標意味困る通信の例
遅延パケットが届くまでにかかる時間音声通話・Web会議の会話のずれ
ゆらぎ(ジッタ)届くまでの時間のばらつき音声が途切れる・速くなる
パケット損失途中で捨てられて届かない割合映像のブロックノイズ
帯域一定時間に送れるデータの量大きなファイルの転送時間

インターネットは基本的に、どの通信も同じように扱います。届けるために最善は尽くしますが、品質は保証しません。この扱いをベストエフォートと呼びます。

QoSの流れ:分類・マーキング・キューイング

QoSを効かせるルータやスイッチは、パケットを次の順に扱います。優先制御と帯域制御は、このうち後ろの2段階で働きます。前の2段階は、そのための目印を用意する準備です。

段階すること
1. 分類宛先のポート番号やアドレスを見て、音声・Web・ファイル転送などのグループに分ける
2. マーキング分けた結果を、優先度の値としてヘッダに書き込む
3. キューインググループごとに別のキューに入れ、どのキューから送り出すかを決める(優先制御)
4. シェーピング・ポリシング上限を超えた分を遅らせるか捨てるかして、帯域を上限に収める(帯域制御)

優先制御:キューから送り出す順番を変える

優先制御は、優先度の高いキューにパケットがあれば、そちらを先に送り出す手法です。音声のパケットは、ファイル転送のパケットの後ろに並ばずに済みます。次の図で、優先制御のあり・なしを切り替えて、送り出す順番を比べられます。

6個のパケットが同時に待ち行列に並んでいます。どのパケットも、送り出すのに2ミリ秒かかるとします。

  1. 1番目ファイル10〜2ミリ秒
  2. 2番目ファイル22〜4ミリ秒
  3. 3番目Web14〜6ミリ秒
  4. 4番目音声16〜8ミリ秒
  5. 5番目ファイル38〜10ミリ秒
  6. 6番目音声210〜12ミリ秒
音声1が待つ時間
6ミリ秒
音声2が待つ時間
10ミリ秒
全部が出終わる時刻
12ミリ秒

並んだ順に送り出します。音声1は前の3個が出終わるまで待ちます。音声2はさらに長く待ちます。

音声Webファイル

音声1の待ち時間は、6ミリ秒から0ミリ秒に減ります。その分、ファイルとWebのパケットは後ろに回ります。すべてが出終わる時刻は12ミリ秒のままで、回線の速さは変わっていません。

優先度の高い通信が回線を使い切ると、優先度の低いキューには順番が回ってきません。そのため、優先キューに入れる通信は、音声のように量の少ないものに絞ります。優先度の低いキューにも一定の割合で順番を回す方式もあり、帯域を比率で分け合うときに使います。

帯域制御:シェーピングとポリシングの違い

帯域制御は、ある通信が使う帯域を、決めた上限に収める手法です。たとえば、ファイル転送には回線の半分までしか使わせないようにします。上限を超えた分の扱いによって、2つに分かれます。

入ってくる通信時間 →上限ポリシング時間 →上限シェーピング時間 →上限超えた分を捨てる超えた分を後で送る合計 19送るのは 15(4 を捨てる)送るのは 19(4 が遅れる)
棒の高さは、その時間に送る量です。ポリシングは、上限を超えた分をその場で捨てます。シェーピングは、超えた分を待ち行列にためておき、上限に収まるように後の時間で送ります。

シェーピングは、超えた分をキューにためて、後で少しずつ送ります。キューがあふれない限り送る量は減らないので、遅れてもよい通信に向いています。ただし、キューにためる分だけ遅延が増えます。

ポリシングは、超えた分をその場で捨てます。キューにためないので遅延は増えませんが、捨てられた分はTCPなら再送になります。捨てる代わりに、優先度を下げる値を書き込んで通す使い方もあります。

シェーピングは遅らせ、ポリシングは捨てると覚えましょう。通信事業者の網の入口では、契約した速度を超えた分をポリシングで捨てることがあります。その場合は、利用者側のルータでシェーピングをかけ、送る速度をあらかじめ合わせておきます。

DiffServとDSCP:IPヘッダの6ビットで優先度を伝える

複数のルータを通る経路で優先度をそろえるには、パケット自体に優先度を書いておく必要があります。この書き方を定めた仕組みがDiffServで、仕様はRFC 2474とRFC 2475にあります。

IPヘッダには、扱いの種類を表す8ビットの欄があります。DiffServは、この欄の先頭6ビットをDSフィールドとして使います。ここに入れる値をDSCPと呼び、ルータはこの値でパケットの扱いを選びます。

8ビットの欄の残りの2ビットは、混雑を知らせるECNが使います。ECNはRFC 3168で定められています。DSCPは6ビットなので、0〜63の64通りの値を表せます。

DiffServの網(DSドメイン)音声通話ファイル転送送る送る境界ルータ分類してDSCPを付ける内部ルータDSCPを見てキューを選ぶ内部ルータDSCPを見てキューを選ぶDSCP 46DSCP 0DSCP 46DSCP 0
パケットを調べて種類を見分ける仕事は、網の入口だけで行います。送信元の端末がDSCPを付けることもあります。内部のルータは、DSCPの値に応じた扱いをするだけです。

DiffServでは、網の入口でパケットを分類してDSCPを付け、網の内部のルータはDSCPの値だけを見て扱いを決めます。ルータ1台ごとの転送の扱い方をPHBと呼びます。

よく使われるDSCPの値は次のとおりです。用途との組み合わせは、RFC 4594が目安として示しているものです。

名前DSCP(2進数)10進数主な用途の目安
EF10111046音声通話
AF4110001034Web会議の映像と音声
CS611000048ルータ同士の経路制御
DF(CS0)0000000ふつうの通信(ベストエフォート)
CS10010008後回しでよい通信

EFは、遅延とゆらぎと損失を小さく保つための扱いで、RFC 3246が定めています。AFは4つのクラスに分かれ、それぞれに捨てられやすさが3段階あります。混雑したときは、同じクラスの中で、捨てられやすさの値が大きいパケットから捨てられます。

DSフィールドは、もとはIPv4のToSという欄でした。その先頭3ビットで優先度を表す使い方を、IP Precedenceと呼びます。DSCPのうち下3ビットが0の値は、IP Precedenceとの互換性を保つように定められています。

IntServとの違い:予約するか、印を付けるか

DiffServより前には、通信ごとに帯域を予約する考え方がありました。これをIntServと呼び、予約の手順にはRSVPというプロトコルを使います。経路上のルータは、予約した通信を1つずつ記憶しておく必要があります。

通信の数が多い網では、1つずつ記憶するとルータの負担が大きくなります。DiffServはパケットをいくつかのグループにまとめて扱うので、通信ごとの状態を記憶せずに済みます。そのため、大規模な網のQoSにはDiffServが使われます。

管理者の違う網をまたぐと、付けたDSCPがそのまま扱われるとは限りません。DSCPの意味はそれぞれの網の管理者が決めるので、網の境界で値を書き換えることもあります。

有線LAN・無線LANの優先度:CoSとWMM

DSCPはIPヘッダの中にあります。第2層のスイッチや無線LANのアクセスポイントは、フレームにも優先度を入れて扱います。

どこで優先度を入れる場所段階
IPのパケットIPヘッダのDSフィールドのDSCP6ビット(0〜63)
有線LANのフレーム802.1QタグのPCP(CoSとも呼ぶ)3ビット(0〜7)
無線LANWi-Fiのアクセスカテゴリ(WMM)音声・映像・標準・低優先の4つ

有線LANでは、VLANの802.1Qタグに、優先度を表す3ビットがあります。この3ビットをPCPと呼びます。CoSと呼ぶこともあります。タグの付いたフレームを運ぶスイッチは、この値でキューを選べます。

無線LANでは、送信の待ち時間を種類ごとに変えて、音声を優先して送れるようにします。種類は音声・映像・標準・低優先の4つで、IEEE 802.11eで定められました。Wi-Fi機器では、この仕組みをWMMと呼びます。無線LANのCSMA/CAの待ち時間を、種類ごとに短くしたり長くしたりする仕組みです。

RFC 8325は、DSCPとWi-Fiの種類の対応を定めています。たとえばEFの音声は、Wi-Fiでは音声の種類で送ります。

オーバーレイネットワークとQoS

既存のIPネットワークの上に、カプセル化で別の論理的なネットワークを重ねる作り方があります。重ねた側をオーバーレイネットワーク、土台の側をアンダーレイと呼びます。データセンターで使うVXLANは代表例で、第2層のネットワークを第3層のネットワークの上に重ねます。オーバーレイの設定は、SDNのコントローラからまとめて配ることがあります。拠点間のWANでこの作り方をとる技術が、SD-WANです。

VPNのトンネリングと同じく、元のパケットには外側のヘッダが付きます。アンダーレイのルータは、外側のIPヘッダだけを見て転送します。内側のパケットにDSCPが付いていても、そのままでは途中のルータに読まれません。

そこで、トンネルの入口で内側のDSCPを外側のIPヘッダにもコピーします。こうすれば、アンダーレイのルータでも優先制御を効かせられます。この扱い方は、トンネルとDiffServの関係を整理したRFC 2983に書かれています。

オーバーレイの用語は、データセンターの仮想ネットワークの枠組みを示すRFC 7365にあります。VXLANの仕様はRFC 7348です。

練習問題(全5問)

Q1回線が混んでいるとき、音声通話のパケットを先に送り出すようにした。このQoSの手法は?
Q2シェーピングとポリシングの違いとして正しいものは?
Q3DiffServで使うDSCPについて正しいものは?
Q4DiffServで、内部のルータが行うこととして最も適切なものは?
Q5VXLANなどのオーバーレイネットワークで、アンダーレイのルータに優先制御を効かせる方法として最も適切なものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す