Dec 3, 2008

How to calculate fragment size or fragment delay (FRF.12 or MLPPP)?

Serialization Delay = frame size (bits) / link bandwidth (bits per second [bps])

在QoS中我們可以利用LLQ(Low Latency Queueing)來提供VoIP封包低延遲(delay)及減少抖動(jitter)發生的情況。雖然VoIP封包總是傳送到software queue的前端,serialization delay(Layer 2 Frame encoded into Layer 1 Bits)的問題仍無可避免。一個大型封包可能正在hardware queue中使用FIFO。當VoIP封包被傳送至software queue的前端,在hardware transmit queue中的大型封包進行serialization時會導致VoIP封包必須等待一段較長的時間之後才能被傳送出去。

這時我們就可以使用fragment將大型封包切割成許多的小型封包,同時搭配interleaving的方式,將VoIP封包穿插在這些被切割之後的小型封包之間,藉此減少抖動(jitter)情況的發生。

當你在某鏈結上要設置適合的fragment size(切割尺寸)時,比較常見的目標是使得最大serialization delay維持在10~15ms之間。

假設實體連接埠線路速度為512Kpbs,所需要的serialization delay不應該超過10ms(記住,fragment size是根據實體連接埠線路速度而計算出來的!),fragment size(切割尺寸)必須設定為:
512000(bps)/8*0.01(sec)=640 bytes

我們可以使用下列指令來進行設置:
Router(config-if)# ppp multilink fragment 640
or
Router(config-map-class)# frame-relay fragment 640



如果在Cisco IOS CLI上如果今天要使用的是fragment delay數值(milliseconds),那就必須再乘上所使用的interface頻寬(假設MLPPP virtual-template上的頻寬為384Kbps)。

因此,我們使用virtual-template interface上的頻寬(384Kpbs)並且調整delay來確保fragment size 符合實體介面速度(512Kpbs)。在此例中,有效延遲數值應該被設定為:
640*8/384 = 13ms (Fragment_Size/CIR*8)

我們可以使用下列指令來進行設置:
Router(config-if)# ppp multilink fragment delay 13
or
Router(config-map-class)# frame-relay fragment delay 13
Post a Comment