優先制御の欠点を補完するため帯域制御が登場した。帯域制御は、帯域に敏感な音声・映像やインタラクティブな通信に必要な帯域を確保するとともに、バーストを抑制することで限られた帯域を有効に使うためのツールだ。
スイッチやルータでの帯域制御には、ポリシング(Policing)とシェーピング(Shaping)がある。ポリシング(Policing)は制限帯域を超えるとパケットを廃棄し、シェーピング(Shaping)はパケットをキューに蓄積することで帯域を抑え平準化する。これらの制御で使われる代表的なモデルが「トークンバケット(Token Bucket)」と「リーキーバケット(Leaky Bucket)」だ。この2つはよく似ているため(名前も!)混同されることが多い(図1)。優先制御の RR/WRR で各キューの伝送量を制御するために「トークンバケット」を使用することがある。

ポリシングとシェーピング
図2 はポリシング動作のイメージだ。ポリシングは制限帯域を超えるとパケットを廃棄し、トラフィック量は鋸歯状に変化する。TCP を使用するファイル転送やWeb アクセスへの適用が本来の狙いだ。パケット廃棄を契機に TCP のスロースタートが働き、TCP Window サイズが縮小することでバーストを抑制すると共にトラフィック量を減らすことが目的だ。UDP には Window 制御や再送機能がなく、単なる廃棄になる。パケット廃棄に敏感で UDP 通信を行う音声や映像に使用すべきではない。

図3 は、シェーピング動作のイメージだ。シェーピングは制限帯域を超えたパケットを遅らせることで帯域を制限すると同時にパケット廃棄を避けるのが狙いだ。トラフィック量はフラットになる。UDP を使用する映像配信で使用することが多い。支障のない範囲でパケットを遅延させ、パケット廃棄を回避すると共に映像特有のバーストを抑えるのが狙いだ。

「シェーピングによる遅延が音声や映像の再生に影響する」という意見もあるが、シェーピングによるパケット遅延時間はマイクロ秒オーダーに過ぎず大きな影響はない。表1 の様に、映像も音声も伝送路ではミリ秒オーダーの遅延を許容している。マイクロ秒オーダーの遅延が影響するとは思えない。
パケットの種類 | 帯域 | 片方向遅延 | ジッタ | 損失 |
---|---|---|---|---|
音声 | 30~320kbps | 150ミリ秒未満 | 30ミリ秒未満 | 1%未満 |
映像 | 384K~20Mbps | 200~400ミリ秒 | 30~50ミリ秒 | 0.1~1%未満 |
ポリシングで TCP パケットを廃棄すると、TCP のトラフィック量が減少しバーストが抑えられる。これは、TCP の「Window 制御(Sliding Window)」と「スロースタート」機能が関係している。
図4 (青破線)の様に、TCP の「Window 制御」は、送信が成功するたびにWindow サイズを順次拡大し、上限値を維持する。エラーが発生すると、「スロースタート」が働き、Window サイズを小さくし、通信が成功する度に再び順次増加させる。
ポリシングによる廃棄が上限値の 1/2 で発生した場合、Window サイズは赤線の様に変化する。この例では、バースト量は上限値の 1/2 に、送信データ量は約 1/3 になる。しかし、実際の動作は TCP タイムアウトが発生するため、性能は極端に悪くなる。TCP のタイムアウト検出時間は OS により異なるが、初回のタイムアウト時間は 1 ~ 3 秒程度だ。連続してタイムアウトが発生すると、更にタイムアウト検出時間は長くなる。Window 制御やスロースタートによる速度低下より、タイムアウトの影響は遥かに大きい。
図4 のモデルは TCP の初期モデル(TCP Tahoe版:1988年)だ。TCP のWindow 制御には多数のモデルがあり、Window サイズの増加曲線やエラー時のWindow 縮小幅が異なる。

TCP パケットのポリシングの影響は前節で説明したとおりだが、TCP パケットのポリシングは再送を頻発させ危険だ。一般的には、想定外のトラフィック受信や不正アタックの影響を軽減するためにポリシングを行うことが多い。図5 は、送信元 2 が故障や誤設定等で、想定した帯域を超えるストリームが発生したケースだ。過大トラフィックが正常なトラフィックを妨害している。入力側でポリシングを行うことで、正常なトラフィックを守ることができる。状況によっては、帯域を抑制するポリシングではなく、ストリームを遮断するブロッキングを行うこともある。Ethernet TSN では、 IEEE802.1Qci/ Per-Stream Filtering and Policing でポリシングとブロッキングを規定している。

ポリシングとシェーピングの違いは表2 を参照いただきたい。
ポリシング | シェーピング | |
---|---|---|
基本動作 | 設定帯域を超えるパケットを廃棄 | 設定帯域を超えるパケットを蓄積 蓄積したパケットは遅延 |
トラフィック | 鋸歯状 | フラット |
処理場所 | 受信部/送信部 | 送信部 |
バースト対応 | バーストを伝搬し、平滑化しない | 設定帯域に平滑化する |
長所 | TCP のバースト量/データ量を削減 遅延が発生しない | 設定帯域超過パケットの廃棄がない TCP、UDP いずれにも適用できる |
短所 | TCP の送信レートが極端に悪化再送によりトラフィックが増大する UDP には使えない | 蓄積したパケットの遅延が増大する キューを構成するメモリーが必要 |
QoS
-
2-4.QoS(Quality of Service)
QoS(1)概要・歴史
QoS はなぜ必要? QoS( Quality of Service)は、ネットワーク上のサービスを効率よく安定して運用できるように、データ送信量や順序を調整する技術だ。ネットワークには様々なデータが混在している。用途や […] -
2-4.QoS(Quality of Service)
QoS(2)産業用イーサネット の QoS
産業用イーサネット の QoS 産業用イーサネットには、Ethernet/IP、PROFINET、EtherCAT や Ethernet TSN などがある。 「バス共有」の考え方を持ち込んだ産業用イーサネットは、優先制 […] -
2-4.QoS(Quality of Service)
QoS(3)QoS はなぜ必要? 要件の変化・輻輳の発生
Internet 技術に思うこと Internet の基幹技術は TCP/IP とイーサネットだが、イーサネット以外の様々な通信網(物理層)とも一体となり発展と変化を遂げてきた。ARPANET のパケット交換、Rober […] -
2-4.QoS(Quality of Service)
QoS(4)QoS 評価項目
図1 のQoSの評価項目について解説をする。 帯域/帯域幅 帯域は、通信などで使用する電波や光の周波数の幅、つまり「最高周波数」と「最低周波数」の差だ。さらに厳密にいえば、図1 のように最大レベルから 3dB 下がった点 […] -
2-4.QoS(Quality of Service)
QoS(5)QoS 体系と優先制御
QoS には3つのカテゴリがある。Best Effort/優先制御/帯域制御だ。最初に登場したのは、QoS 機能を全く持たない 「Best Effort」、次に「優先制御」が登場した。優先度の高いパケットを先に送信する制 […] -
2-4.QoS(Quality of Service)
QoS(6)優先制御 マーキング /キューイング/スケジューリングと輻輳回避
マーキング クラス分類したパケットにキュー番号などのキュー識別コードを割り付ける。マーキングは装置内部処理のため、ユーザはあまり意識する必要はない。 キューイング マーキングされた識別コードと一致するキューにパケットを格 […] -
2-4.QoS(Quality of Service)
QoS(7)優先制御の限界
現在の QoS(Quality of Service)は、優先制御と帯域制御で実現している。QoS 登場以前は Best Effort で、パケットは到着順にキューに格納され、キューが溢れると廃棄される。この問題を解消す […] -
2-4.QoS(Quality of Service)
QoS(8)帯域制御
優先制御の欠点を補完するため帯域制御が登場した。帯域制御は、帯域に敏感な音声・映像やインタラクティブな通信に必要な帯域を確保するとともに、バーストを抑制することで限られた帯域を有効に使うためのツールだ。 スイッチやルータ […] -
2-4.QoS(Quality of Service)
QoS(9)帯域制御の制御方法 トークンバケット/リーキーバケット/万能リーキーバケットモデルとは
優先制御とポリシングでは「トークンバケット」、シェーピングでは「リーキーバケット」と呼ばれる制御方法を使用することが多い。幾つかの例を交え、トークンバケットとリーキーバケットの説明をしたい。ちなみに、Backet はバケ […]