QoSとは ― 優先制御・帯域制御とDiffServ
QoSとは、
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番目ファイル10〜2ミリ秒
- 2番目ファイル22〜4ミリ秒
- 3番目Web14〜6ミリ秒
- 4番目音声16〜8ミリ秒
- 5番目ファイル38〜10ミリ秒
- 6番目音声210〜12ミリ秒
- 音声1が待つ時間
- 6ミリ秒
- 音声2が待つ時間
- 10ミリ秒
- 全部が出終わる時刻
- 12ミリ秒
並んだ順に送り出します。音声1は前の3個が出終わるまで待ちます。音声2はさらに長く待ちます。
- 1番目音声10〜2ミリ秒
- 2番目音声22〜4ミリ秒
- 3番目ファイル14〜6ミリ秒
- 4番目ファイル26〜8ミリ秒
- 5番目Web18〜10ミリ秒
- 6番目ファイル310〜12ミリ秒
- 音声1が待つ時間
- 0ミリ秒
- 音声2が待つ時間
- 2ミリ秒
- 全部が出終わる時刻
- 12ミリ秒
音声を先に送り出します。そのぶんファイルとWebは後ろに回ります。最後のパケットが出終わる時刻は変わりません。
音声Webファイル
音声1の待ち時間は、6ミリ秒から0ミリ秒に減ります。その分、ファイルとWebのパケットは後ろに回ります。すべてが出終わる時刻は12ミリ秒のままで、回線の速さは変わっていません。
優先度の高い通信が回線を使い切ると、優先度の低いキューには順番が回ってきません。そのため、優先キューに入れる通信は、音声のように量の少ないものに絞ります。優先度の低いキューにも一定の割合で順番を回す方式もあり、帯域を比率で分け合うときに使います。
帯域制御:シェーピングとポリシングの違い
帯域制御は、ある通信が使う帯域を、決めた上限に収める手法です。たとえば、ファイル転送には回線の半分までしか使わせないようにします。上限を超えた分の扱いによって、2つに分かれます。
シェーピングは、超えた分をキューにためて、後で少しずつ送ります。キューがあふれない限り送る量は減らないので、遅れてもよい通信に向いています。ただし、キューにためる分だけ遅延が増えます。
ポリシングは、超えた分をその場で捨てます。キューにためないので遅延は増えませんが、捨てられた分は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では、網の入口でパケットを分類してDSCPを付け、網の内部のルータはDSCPの値だけを見て扱いを決めます。ルータ1台ごとの転送の扱い方をPHBと呼びます。
よく使われるDSCPの値は次のとおりです。用途との組み合わせは、RFC 4594が目安として示しているものです。
| 名前 | DSCP | 10進数 | 主な |
|---|---|---|---|
| EF | 101110 | 46 | 音声通話 |
| AF41 | 100010 | 34 | Web会議の映像と音声 |
| CS6 | 110000 | 48 | ルータ同士の経路制御 |
| DF(CS0) | 000000 | 0 | ふつうの通信(ベストエフォート) |
| CS1 | 001000 | 8 | 後回しでよい通信 |
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フィールドのDSCP | 6ビット(0〜63) |
| 有線LANのフレーム | 802.1QタグのPCP(CoSとも呼ぶ) | 3ビット(0〜7) |
| 無線LAN | Wi-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問)
正解:優先制御
待ち行列から
正解:シェーピングは
シェーピングは、
正解:IPヘッダの
DSCPは、
正解:DSCPの
DiffServでは、
正解:内側の
カプセル化された
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
