用語辞典・速度・品質

トラフィックシェーピング

トラフィックシェーピングとは

トラフィックシェーピングは、通信量や速度を設定した規則に合わせて調整し、急激な送信や混雑を抑える処理です。英語はtraffic shaping(トラフィック・シェーピング)です。

設定比率を超えたパケットをすぐ捨てず、有限の待ち行列へ入れて後で送ります。突発的な集中を時間方向へ広げ、下流リンクや契約プロファイルへ適合させます。待ち行列が満杯なら廃棄は起こり得ます。

Shapingは平均送信量を滑らかにする代わり、待たせた分の遅延を加えます。「制限なし」から「一定間隔」へ変える処理で、データを高速化するものではありません。

急に到着したパケットをトークンと有限待ち行列で調整し、等間隔へ近づけて送り出す待たせてプロファイルへ合わせるシェーピングと、超過を捨てるポリシングを分ける
多数のパケットが一度に流入し、蛇口から補充されるトークンバケットと待ち行列付きゲートを通って時計に合わせた等間隔の列となる一方、別枝では超過分がポリシングで廃棄されるトラフィックシェーピングの図解
図1Tokenバケットは概念モデルです。実装によりバイト・パケット単位、複数バケット、階層スケジューラーなどが使われます。

Token、比率、突発的な集中、待ち行列を別々に設定する

送信許可をトークンとして蓄え、突発的な集中を許しながら長期平均を比率へ戻す速さ・瞬間量・待ち容量・廃棄条件を一つの数値へまとめない
Rateトークン補充率

長い時間で許す平均送信率をビット/s・バイト/sなどで決める

Burstトークン蓄積上限

空いていた時間に貯め、短時間だけ平均比率を超えて送れる量

Meterプロファイル適合を判定

パケット大きさ分のトークンがあるかを見て、送信可能時刻を計算する

Queue超過分を待たせる

今送れないパケットを有限バッファーへ置き、順序・クラスを保って待つ

Schedule送信時刻を決める

トークンとクラスのスケジューラーから次のパケットを選び、ペーシングする

Overflow限界時の処理

待ち行列満杯、最大待ち時間超過で破棄・再マーキングなどの方針を使う

図2Burst上限が大きすぎると下流に一時集中し、小さすぎると短い通信まで不要に待たせます。

Shapingは待たせ、ポリシングはプロファイル外を直ちに扱う

shaperはプロファイルを超えるパケットをバッファーへ入れ、適合する時刻まで遅延させます。ポリサーは測定時点でプロファイル外なら廃棄、低いクラスへ再マーキングなどを行い、通常は後で送るため保持しません。

ポリシングは契約境界の保護に向きますが、TCPパケットを急に落とすと再送と送信量低下を招きます。送信側で先にshapeして、下流ポリサーの破棄を避ける構成が使われます。

Rateだけでなく突発的な集中許容量が、短い通信の体感を左右する

平均10 Mbpsでも突発的な集中トークンを持てば、小さなWeb応答を一時的に高い比率で完了できます。長い転送はトークンを使い切り、設定比率へ落ち着きます。

Burst量は下流バッファー、RTT、MTU、契約プロファイルと合わせます。単位をビットとバイトで取り違えると八倍ずれます。比率、突発的な集中大きさ、測定間隔を一組で記録します。

Egressシェーピングは自分が送る順番を制御しやすい

装置は外向き通信で送信前パケットを保持し、自分の出口比率を正確に調整できます。家庭の上りはルーターWAN外向き通信でshapeしやすく、クラウドアップロードによる待ち行列膨張を抑えられます。

Ingressではパケットはすでに狭い回線を通って到着しているため、受信側で遅らせても上流帯域を取り戻せません。下りを制御するには上流送信へ効くTCP/QUIC信号や、実ボトルネック手前のshaperが必要です。

Pacingはパケット間隔、シェーピングはトラフィックプロファイル全体を扱う

Pacingはパケットを一塊で出さず、計算した送信比率へ沿って間隔を空けます。TCP・QUICの輻輳制御が求める比率を滑らかに線へ出し、microburstを減らします。

Shapingはクラス・利用者・インターフェース全体へ契約比率や階層プロファイルを適用する広いトラフィックconditioningです。両方とも時間調整しますが、制御主体と目的が違います。

階層シェーピングで、全体上限とクラス配分を同時に守る

親shaperで回線全体を900 Mbpsへ抑え、子クラスへ音声最低量、業務上限、バックアップ余剰分などを配る構成があります。子が使わない余地を他クラスへ貸すかも方針です。

階層の各段に待ち行列を持つと遅延が重なるため、どこで待たせるかを最小化します。優先度、公平な待ち行列、AQMと組み合わせ、全体比率だけでなくクラス別待ち行列遅延を監視します。

実回線より少し低い値へ整形し、管理できる待ち行列を最狭部にする

事業者側やモデムの待ち行列を直接管理できない場合、手前ルーターで実効容量よりわずかに低くshapeすると、パケットを自分のAQM・公平な待ち行列へ留められます。

方向別の安定容量を測り、負荷時RTTとスループットを見ながら設定し、回線が時間変動する場合は定期再評価します。公称最大値をそのままshaper比率へ入れません。

仕様の確認資料:RFC 2475「Differentiated Services Architecture」RFC 3290「Diffserv Informal Management Model」RFC 2697「Single Rate Three Color Marker」

関連用語