シェーピング【shaping】トラフィックシェーピング
別名 :traffic shaping/パケットシェーピング/packet shaping

ネットワークでは、複数の利用者やアプリケーションが同時に通信を行うため、特定のタイミングで大量のデータが集中すると回線が混雑し、通信品質が低下することがある。シェーピングはこうした混雑を未然に防ぐ手段の一つで、データの送出タイミングや速度を調整することで、回線全体のトラフィックを平準化する。
シェーピングの仕組みとして広く用いられるのが「トークンバケット」と呼ばれる方式である。一定の速度でトークン(通過許可の単位)を補充する仮想的なバケツを用意し、データの送出にはトークンの消費を要求する。トークンが枯渇した際はデータをキューに蓄え、トークンが補充されるまで送出を待機させることで、送信レートを一定の範囲内に収める。
シェーピングは通信品質を一定の範囲内に収める「QoS」(Quality of Service)の実装においても活用される。映像通話やVoIPのようにリアルタイム性が高く遅延に敏感な通信を優先し、ファイルのダウンロードのような遅延許容度の高い通信を後回しにすることで、利用者の体感品質を向上させる。インターネットサービスプロバイダ(ISP)が契約プランごとに速度上限を設ける際にも、この技術が用いられることがある。
シェーピングに似た技術に「ポリシング」(policing)がある。こちらは規定速度を超えたパケットを即座に破棄したり、優先度を低下させたりする方式である。シェーピングは超過分をバッファに蓄えて後から送出するためパケット損失を抑えられ、アプリケーション側の再送発生を抑えやすい効果がある一方、バッファへの蓄積によって遅延が生じやすくなる。