• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

37

第四章 調整封包大小的壅塞控制方法

很多時效性應用必頇以固定間隔時間送出封包,縮短封包在網路中的延遲時間。目 前的 VoIP 在通話前會先設定好傳輸速率,固定其 bit-rate,在整個傳輸的過程中不再改 變,可變速率方法(Flexible Bit-rate)能在通話的過程中,在網路頻寬足夠時使用較低的縮 率提高語音品質,在網路頻寬不足的情況下使用較高的壓縮率來調整 bit-rate 以避免網 路壅塞。

圖 34 中 original packet stream 是編碼器以固定時間間隔(例如 30 毫秒)送出一系列的 語音封包,第二個 change inter-packet time 表示將編碼器產生的封包置於 buffer 中,在 壅塞控制的指揮下送出資料流,因為 buffer 的緣故,inter-packet time 是變動的;第三個 是採用固定封包間隔而變動封包大小的方法送出之資料流,圖中顯示其送出時間與編碼 器產生封包的時間幾乎同步,因此可知 change inter-packet time 的方式會導致延遲時間 拉長,但 change packet size 則否。

圖 34 調整發送間隔與調整封包大小之壅塞控制方式比較

0

2 1 0

2 1 0

3 4

4 3 2 1

Change inter-packet time Original packet stream

Change packet size

Time Time Time

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

38

4.1 設計目標

目前 DCCP 無法取代 UDP 成為不可靠傳輸協議的主流,且現行的壅塞控制機制不 適用於即時性網路應用程式,但我們仍可以配合應用程式來改變語音封包的大小,藉此 調整傳輸速率。

4.1.1 手動調整方法

我們提出一套網路電話架構,讓使用者能在網路電話通進行中,藉由自身對於通話 品質的感受,手動的調整語音壓縮 bit-rate 來適應網路情況。

4.1.2 自動調整方法

我們提出一套網路電話架構,讓系統能在通話進行中偵測到網路壅塞的情況,當網 路壅塞時自動降低語音壓縮 bit-rate 來舒緩頻寬,等到網路回復順暢時自動提高語音壓 縮 bit-rate 提升通話品質。

4.2 Bit-rate 調整演算法

4.2.1 壅塞偵測方法

網路電話是使用定位元速率(Constants Bit-rate)方式傳送語音封包,封包傳送到接收 端時,連續收到兩個封包的間隔時間應該在一個固定的時間範圍之內;當頻寬不足時,

接收端連續兩個封包的間隔會拉長,偵測到此現象時視為網路壅塞,如圖 35 所示。

圖 35 改變 Bit-rate 以適應網路情況

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

40

圖 36 常態分配之經驗法則 4.2.1 降低 Bit-rate 演算法

利用常態分配之經驗法則,並避免不斷的調整 bit-rate,我們設計下一個封包間隔時 間 小於[ ̅ ]視為網路狀況正常,如果 超過[ ̅ ]則判斷為網路壅塞,連 續超過 次則送出降低 bit-rate 一個等級的指令給發話端,演算法如下。

𝑤ℎ𝑒𝑛 𝑟𝑒𝑐𝑒𝑖𝑣𝑒 𝑎 𝑛𝑒𝑤 𝑝𝑎𝑐𝑘𝑒𝑡 𝑎𝑡 𝑇𝑖 𝑇ℎ𝑒𝑛 𝑡𝑛𝑒𝑤 𝑇𝑖 𝑇𝑖 𝑖𝑓 𝑡𝑛𝑒𝑤 ≥ 𝑡̅ σ𝑡 𝑎𝑛𝑑 𝑐𝑜𝑛𝑔𝑒𝑠𝑡𝑖𝑜𝑛 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 ≥ α

𝑠𝑒𝑛𝑑 𝑑𝑒𝑐𝑟𝑒𝑎𝑠𝑒 𝑏𝑖𝑡𝑟𝑎𝑡𝑒 𝑐𝑜𝑚𝑚𝑎𝑛𝑑 𝑡𝑜 𝑠𝑒𝑛𝑑𝑒𝑟 𝑐𝑜𝑛𝑔𝑒𝑠𝑡𝑖𝑜𝑛 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦

𝑐𝑜𝑛𝑔𝑒𝑠𝑡𝑖𝑜𝑛 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑐𝑜𝑛𝑔𝑒𝑠𝑡𝑖𝑜𝑛 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑒𝑙𝑠𝑒

𝑓𝑖

𝑒𝑙𝑠𝑒 𝑖𝑓 𝑡𝑛𝑒𝑤 ≥ 𝑡̅ σ𝑡

𝑐𝑜𝑛𝑔𝑒𝑠𝑡𝑖𝑜𝑛 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒 𝑛𝑒𝑤 𝑡̅ 𝑎𝑛𝑑 𝑛𝑒𝑤 σ𝑡

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

41

4.2.2 提升 Bit-rate 演算法

當發話端收到受話端傳來的降低 bit-rate 指令後,此時發話端會進入 Low Bit-rate 狀 態。為了避免發話端始終維持 Low Bit-rate 狀態,此時發話端每間隔 秒會提升發送語音 bit-rate 一個等級,直到 bit-rate 回到通話初始時的標準。

4.2.3 調整 Bit-rate 範例

舉例而言,表 8 為十筆接收端收到語音封包的間隔時間,則在時間點 時可計算出 平均間隔時間 ̅ 、標準差 、 ̅ ,我們看到在時 間點 時出現超過 ̅ 的間隔時間,此時若 設定為 3,則受話端會向發話 端送出降低 bit-rate 的命令。

表 8 以封包間隔時間調整 Bit-rate 範例

Time Spot Inter-Packet Arrival Time

32.98

35.02

32.59

33.61

32.92

32.52

32.56

39.41

38.58

38.58

𝑤ℎ𝑒𝑛 𝑠𝑒𝑛𝑑𝑒𝑟 𝑒𝑛𝑡𝑟𝑦 𝑙𝑜𝑤 𝑏𝑖𝑡𝑟𝑎𝑡𝑒 𝑠𝑡𝑎𝑡𝑒 𝑢𝑛𝑡𝑖𝑙 [𝑏𝑖𝑡𝑟𝑎𝑡𝑒𝑛𝑜𝑤 𝑏𝑖𝑡𝑟𝑎𝑡𝑒𝑠𝑡𝑎𝑟𝑡] 𝑑𝑜

𝑆𝑙𝑒𝑒𝑝 β)

𝑖𝑛𝑐𝑟𝑒𝑎𝑠𝑒 𝑏𝑖𝑡𝑟𝑎𝑡𝑒 𝑑𝑜𝑛𝑒

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

42

相關文件