多媒體、即時通訊與服務品質

流量塑形(traffic shaping)

假設一條消防水管以爆發的方式湧出,但下游的管子只能承受穩定的細流。與其把超量的水噴到地上(那是管制做的事),你可以把那些湧流導入一個儲水箱,讓它以平順、受控的速率流出。流量塑形就是封包的那個儲水箱:它不丟棄一條流的超量,而是緩衝那些超量,稍後再釋放封包,好讓這條流以符合約定設定檔、平順而受控的速率離開。它把一股爆發的串流捏塑成均勻的一股。

在機制上,塑形也常建立在權杖桶上,但用法和管制不同。一個不符合的封包(抵達時沒有可用權杖的那種)不會被丟棄——它被排入佇列、保留到累積出一個權杖,再送出。於是一陣抵達的爆發,會以權杖滴入速率分散到時間中流出,最大爆發量由桶子深度設定。漏桶的意象抓住了最簡單的版本:封包倒進一個桶子,再以固定速率漏出,不管它們抵達得多麼不均勻,產生一股完全穩定的輸出串流(純漏桶完全不允許爆發;權杖桶允許一個有界的爆發)。

為什麼重要:塑形是發送端或邊緣裝置用來當個好公民的方式——把自己的流量維持在下一個網路承諾承載的速率內,好讓下游的管制不必丟棄任何東西。它比管制溫和,因為在有緩衝空間時不損失任何資料。誠實的取捨:塑形增加延遲(封包在塑形器的緩衝區中等待)且需要記憶體做那個緩衝,而若緩衝區溢位,它終究還是得丟棄。所以塑形是撫平與延遲,管制則是直接丟棄——同樣的目標,不同的代價。

一個應用一口氣爆發出 100 個封包,但它的連結被塑形成每秒 10 個封包。塑形器把這個爆發排入佇列,並以穩定的每 100 毫秒一個釋放封包。沒有任何東西被丟棄(緩衝區留住了它們),但最後一個封包比它抵達時晚了約 10 秒才離開。

塑形緩衝一個爆發並平順地計量送出——無遺失,但增加延遲。

只要緩衝區裝得下,塑形就不損失資料——但那個緩衝區增加延遲,且它本身也可能溢位。所以「較平順」並非免費:塑形把爆發性轉換成延遲,過度塑形會讓互動式流量感覺遲鈍。

又稱
shapingrate shaping流量塑形流量整形