QoS
ネットワークで、通信の種類ごとに帯域や遅延、損失などの品質を確保するための仕組みの総称。優先制御、帯域制御(シェーピング、ポリシング)、アドミッション制御などの技術を組み合わせて実現する。
イマシルちゃんの解説
道路が混んでいるとき、救急車は先に通してもらえるよね。
ネットワークでも、混んでいるときに、全部の通信を同じように扱うと、電話の声が途切れたり、会議の映像が止まったりしちゃうんだ。
そこで、「急ぐ通信は先に通す」「この通信はここまでの速さに抑える」みたいに、交通整理をするんだよ。
より深い解説
定義
QoS(Quality of Service)は、ネットワークの資源(帯域、バッファ)を、通信の種類や重要度に応じて配分し、必要な通信品質を確保する技術である。品質は、主に次の指標で表される。
主な技術
| 技術 | 内容 |
|---|---|
| 分類とマーキング | パケットを種類ごとに分け、IPヘッダーのDSCPや、IEEE 802.1QタグのPCP(CoS)に優先度を書き込む |
| 優先制御 | 優先度ごとに待ち行列(キュー)を分け、優先度の高いキューから送り出す |
| シェーピング | 送り出す間隔を調整し、規定の速度を超えないように平準化する。超えた分はバッファにためる |
| ポリシング | 入ってくるトラフィックを監視し、規定の速度を超えた分を破棄するか、優先度を下げる |
| アドミッション制御 | 通信を始める前に資源を要求させ、確保できる場合だけ通信を受け付ける |
| 輻輳回避 | キューがあふれる前に、パケットを確率的に捨てて、TCPの送信量を抑えさせる(RED、WRED) |
QoSの考え方(アーキテクチャ)
| 方式 | 内容 |
|---|---|
| ベストエフォート | 特別な扱いをせず、すべてのパケットを同じように、できる範囲で送る |
| IntServ | 通信ごとに、経路上の各ルータで資源を予約する(RSVPを使う)。厳密だが、規模が大きくなると管理が難しい |
| DiffServ | パケットに付けた優先度(DSCP)に応じて、各ルータがクラスごとに扱いを変える。規模が大きくても扱いやすい |
使い分けの例
| 通信 | 求められる品質 | 扱い |
|---|---|---|
| IP電話の音声 | 遅延、ジッタが小さいこと | 最優先のキューで送る(DSCP の EF) |
| ビデオ会議 | 帯域と遅延 | 優先度を高めにし、帯域を確保する |
| ファイル転送、Web | 遅延にはそれほど敏感でない | 通常のキュー(ベストエフォート) |
ベストエフォートは、優先度を変えずに転送する方式であり、フレームの種類や宛先に応じて優先度を変えることは、優先制御である。
MQTTのQoSとの区別
MQTTにも「QoS」という設定(0、1、2)があるが、これはメッセージを届ける保証のレベル(最大1回、少なくとも1回、ちょうど1回)を表すもので、ネットワークの帯域や遅延を制御するQoSとは別の意味である。