トラフィックシェーピングとは
トラフィックシェーピングは、通信量や速度を設定した規則に合わせて調整し、急激な送信や混雑を抑える処理です。英語はtraffic shaping(トラフィック・シェーピング)です。
設定比率を超えたパケットをすぐ捨てず、有限の待ち行列へ入れて後で送ります。突発的な集中を時間方向へ広げ、下流リンクや契約プロファイルへ適合させます。待ち行列が満杯なら廃棄は起こり得ます。
Shapingは平均送信量を滑らかにする代わり、待たせた分の遅延を加えます。「制限なし」から「一定間隔」へ変える処理で、データを高速化するものではありません。

Token、比率、突発的な集中、待ち行列を別々に設定する
長い時間で許す平均送信率をビット/s・バイト/sなどで決める
空いていた時間に貯め、短時間だけ平均比率を超えて送れる量
パケット大きさ分のトークンがあるかを見て、送信可能時刻を計算する
今送れないパケットを有限バッファーへ置き、順序・クラスを保って待つ
トークンとクラスのスケジューラーから次のパケットを選び、ペーシングする
待ち行列満杯、最大待ち時間超過で破棄・再マーキングなどの方針を使う
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」