QoSとは

QoSとは、直訳すれば「サービスの品質」です。ネットワークの「サービス」とはデータを転送することです。

いろんなアプリケーションがネットワークを介してデータをやり取りします。アプリケーションごとにデータを転送するときに必要な帯域幅や許容できる遅延などが異なります。QoSによって、アプリケーションのデータの転送に必要な帯域幅を確保したり、遅延を最小化するなどの優先制御を行い、アプリケーションの機能を適切に利用できるようにします。

ネットワーク要件

ネットワーク上を流れるパケットは、さまざまなアプリケーションのものがあります。たとえば、WebアクセスのHTTPパケット、IP電話のVoIPパケット、ビデオ会議システムの動画パケットなどがあります。これらのさまざまなアプリケーションでは、それぞれ求められるネットワークの要件が異なります。

ネットワークの要件とは、具体的には必要とする帯域幅や遅延、パケットロス、ジッタ(jitter)などを意味しています。

WebアクセスのHTTPパケットの転送はバースト性があります。HTTPで大きなサイズのファイルを転送するときには、多くの帯域幅を必要とします。それに対して、多少遅延やジッタが発生してもあまり問題ありません。また、ネットワークの輻輳などの影響でHTTPパケットがロスしてしまうと、再送が発生します。輻輳時に再送が発生すると、ネットワークの輻輳がよりひどくなってしまうこともあります。TCPの機能によって輻輳を緩和することができますが、TCPの輻輳回避機能は、輻輳を検知すると、送信レートを急激に低下させるので帯域幅の利用効率が悪くなってしまうことがあります。

一方、VoIPパケットや動画パケットはリアルタイム性が求められるため、遅延が大きかったり、パケット到着の間隔が一定せずにジッタが発生したりすると通話が成り立たなかったり、映像が途切れ途切れになったりします。VoIPパケットが必要とする帯域幅は、それほど多くはありません。通話中は一定の帯域幅を消費します。動画パケットの帯域幅はVoIPパケットに比べるとかなり多くなります。必要とする帯域幅も一定ではなく、ある程度の幅で変動します。VoIPパケット、動画パケットは数パケット程度のロスはあまり影響しません。一瞬、映像や音声が途切れるぐらいです。パケットロスが発生しても再送も行いません。ただし、連続してパケットロスが発生すると正常な通信はできなくなります。

下記の表は、一般的なアプリケーションごとのネットワークの要件です。

表 ネットワーク要件の例
ネットワーク要件 VoIP HTTP 動画
必要な帯域幅 少ない 多い(バースト) 多い
パケットロスの影響 小さい 大きい(再送が発生) 小さい
遅延の影響 大きい 小さい 大きい
ジッタの影響 大きい 小さい 大きい

こうしたアプリケーションごとに求められる要件に応じて、パケットを処理する順番を変えたり、帯域を制限したりする機能がQoSです。

QoSの必要性

ネットワークはどんどん高速化しています。LANにおいては、1Gbpsは当たり前です。10Gbpsの高速なイーサネットもどんどん利用されるようになっています。WANも高速化しています。

「ネットワークがどんどん高速化しているので特にQoSをかけなくても問題ないのではないか」

という意見を聞くことがあります。

しかし、どんなにネットワークが高速化しても、QoSは必要です。ネットワークで通信する場合、エンドツーエンドですべてネットワークの速度が同じになるわけではないからです。図のようにLANとWANの境界のように速度差があったり、複数の回線を集約していたりする部分があります。そういったところでは、パケットを処理しきれずに遅延が発生する可能性があります。このような速度差が発生しているところで、適切なQoSを設定することが求められます。

図 QoSの必要性

また、ファイル転送などのバースト性のあるデータが発生した場合、一時的にネットワークの帯域幅をすべて使い切ってしまうことがあります。すると、その間リアルタイムトラフィックが遅延するので、バースト通信を行ってしまうようなアプリケーションの帯域制御を行って、リアルタイムトラフィックを随時送信することができるようにQoSの設定が求められます。

バーストとは、短時間にデータが集中するトラフィック特性のことです。FTPやHTTPでサイズの大きいファイルをダウンロードするとバーストになります。

QoSのモデル

QoSを実装する上で、基本的なモデルとして次の3つがあります。

  • Integrated Services(IntServ)
    エンドツーエンドであらかじめアプリケーションに必要な帯域幅を予約するモデル。RSVP(ReSource reserVation Protocol)を利用して、あらかじめ明示的に帯域幅を予約する。
  • Differentiated Services(DiffServ)
    アプリケーションごとのパケットを分類し、アプリケーションごとに差別化してパケットを転送するモデル。ルータは、優先順位が高いパケットを先に処理して、ネットワークに送出する。
  • Best Effort
    特別な優先制御を行わず、パケットが到着した順番でネットワーク上に送出する。Best EffortはFIFO(First In First Out)とも呼びます。

以上のように、IntServとDiffServ、Best Effortのモデルがありますが、一般的にQoSというとDiffServモデルによって、パケットに優先順位をつけ、差別化されたサービス(パケットの転送)を提供することを意味します。