QoSとは

 QoSとは、Quality of Serviceの略で、トラフィックのごとにパケットを識別し、優先制御を行ったり、帯域制御を行う技術のことを指します。

 QoSを導入するには、専用装置を導入する方法とルータやスイッチ上でQoS機能を実装する方法があります。最近は、QoS機能を持ったルータやスイッチも充実してきており、QoS処理に必要なルータやスイッチの性能も一昔前に比べると飛躍的に向上しています。

そのため、QoSの導入にはルータやスイッチ上で実装するケースが増えています。

それでは、なぜ、このQoSの技術が必要なのでしょうか?

 IPによる通信は、ベストエフォートで処理を実行します。先に到着したパケットから順に処理を行います。もしも処理しきれないほどのパケットが到着した場合は、バッファに蓄積します。バッファが一杯になるとパケットを破棄して、破棄したパケットを再送してもらうようになっています。(※TCPの場合)

例えば、どのような状況でこのような現象が起こるのでしょうか?

下図のケースでは、問題は発生しません。

 ルータの両側のネットワークの帯域幅は100Mbpsです。また、ルータの処理能力が高く、十分に100Mbpsのトラフィックを処理できるとします。

 そうした場合、ルータの入力インターフェイスにパケットが取り込まれてから、出力インターフェイスから送り出されるまで、ほとんど待たされることはありません。ルータに流れてくるパケットの量に余裕がある場合は、問題が発生しません。

しかし、下図の場合はどうでしょうか?

ルータの左側のLANの帯域幅は、100Mbpsです。ルータの右側のWANの帯域幅は、30Mbpsです。

※インターネットへの接続は、FTTHの光ファイバのサービスであったとしても実際には、スループットは100Mbpsでません。

 出力インターフェイスの帯域幅以上のトラフィックが入力インターフェイスに流れ込んできた場合、パケットを送り出すのが追い付かなくなってしまいます。

 このような状況になるとルータの箇所でボトルネックとなり、取り込まれたパケットが送りだされるまで遅延が発生します。さらに、バッファから溢れたパケットは、破棄されることとなり、それぞれのアプリケーションが必要な帯域幅を確保できない状態になってしまいます。

この遅延やパケットの破棄は、IP電話の音声データやビデオ会議の映像データにとって、これは致命的となります。

なぜ、IP電話やビデオ会議の通信だけトラブルが発生するのかという疑問が生じます。

 それは、音声データの場合、滞りなく宛先に届くようにしないと音声を再生したときに、音声が途切れてしまいます。映像データの場合は、画像が乱れて何が映し出されているのかが分かりにくくなるからです。

 リアルタイムで送らなければならないパケットは、リアルタイムにそして、途中で破棄されることがないように相手に届けなければなりません。

WebやFTPでは、少々相手にパケットを届けるのが遅延したり、途中でパケットが破棄されても問題になることは、ありません。

 それは、少々時間がかかっても最終的には、Webページは表示され、FTPのダウンロードもできるようになっているからです。パケットが途中で破棄されてもTCPの通信のメカニズムで相手に届かなかったパケットは、届けられるようになっています。

このようにアプリケーションが異なると、要求される品質も異なります。

そこで、登場するのがQoSです。

QoSを我々の身近なもので例を挙げると次のようなものがあります。

パトカー、救急車、消防車は、どうでしょうか?

 サイレンを鳴らして周りに自分が緊急車両であるということをアピールすれば、たとえ渋滞している道であろうが優先的に走行することができます。

バスは、どうでしょうか?

道路にバス専用レーンがあれば、バスは優先的にこのレーンを走行することができます。

ディズニーランドでは、どうでしょうか?

 ファストパス(FP)というアトラクションの優先入場券があれば、どんなに人気アトラクションであっても、これさえ持っていれば、別の入口から優先的に入場させてもらえます。

ユニバーサルスタジオでは、どうでしょうか?

エクスプレス・パス ブックレットという有料Eパス(優先券)を持っていれば、優先的にアトラクションを楽しむことができます。

このような仕組みをネットワーク上で実現したものがQoSです。

 QoSの機能には、大きく分けると「パケットの識別」、「優先制御」、「帯域制御」の3つの機能があり、この機能を使って動作しています。

 QoSでは、パケットを送出する回線1本に対して複数のバッファ(キュー)を用意し、優先度の異なるパケットを別々のバッファに振り分けます。

 優先度の高いバッファから優先的にパケットを取り出して回線に送出することで、アプリケーションごとに異なるネットワークの品質と帯域幅を確保しています。