4 . 1 實驗網路架構
本文的網路模擬架構,如圖 4.1。由於在 VoIP 的通訊中,為了獲 得較好的服務品質,除了頻寬需求之外,選擇一個適當的語音編碼是不 可或缺的。所以,本文中實驗模擬三組較為常用的語音編碼來進行模擬 比較,主要實驗模擬的部份可分成為三個方案,分別去比較目前較廣泛 被使用的標準語音編碼格式 G.711、G.729 及 G.723.1 在加入本文提出的 允入控制機制之後,在效能上的差異。在模擬產生語音封包的部份則使 用 ns2VoIP 語音模組以及使用 ns2measure 模組作為資料分析工具來進行 模擬。最後,我們也會進行模擬比較計算阻塞機率演算法及阻塞機率立 即回饋演算法在效能上的表現。
10 Mbps 10 Mbps
1 Mbps 1 Mbps
ingress egress
dest. 2 dest. 1
DiffServ domain
app. 1
app. 2
圖 4.1 網路模擬架構
下列表 4.1 為目前一般較為常見的標準語音編碼格式的基本參數 [15],更詳細資訊請參考附錄 A。
表 4.1 標準語音編碼格式
Codec Information Bandwidth Calculations Codec & Bit
Rate
Codec Sample Size
Codec
Packet per second
** Code bit-rate is always maintained
** Bandwidth = total packet size * PPS
本文為了使分析數據結果較為準確,假設第一次實驗 𝑆 1,第二次 為 𝑆 2,本文重覆了 10 次之後,就有 𝑆 1, 𝑆 2, 𝑆 3, … , 𝑆 10 個數據,再去 求出全部數據的平均。因為 VoIP packet size 是由固定大小標頭(fixed size header)40 bytes 及可變動大小資料承載量(variable size payload)
二個部份所組成,如圖 4.2。 header 40 bytes
Payload variable size Depending on codec
圖 4.2 VoIP packet size
32
為 erlang,即平均每分鐘 call 的持續時間,模擬參數匯整如表 4.2:
表 4.2 模擬參數設定
Run time 10 sec
VoIP flow’s type G.711, G.729, G.723.1 VoIP flow’s send interval 20 ms
VoIP flow’s average hold duration 180 sec.
Background load traffic density 20-30 erlang
在實驗模擬結束之後,必頇去判斷語音服務的品質。因此,我們可 以參考表 4.3 來當作模擬分析的觀察指標:
表 4.3 Quality of Service Metrics [16]
e2e delay Packet loss rate Mean Opinion Score less than 150 ms
(good)
less than 3 %
(good)
MOS = 5
(imperceptible errors)
between 150 ms and 400 ms(average)
between 3 % and 5 %
(slightly annoying)
4 . 2 網路模擬器(Network Simulator, version-2)
網路模擬器(Network Simulator, version-2)[17]是一套開放原始碼
(open source)物件導向的網路模擬器,主要是由 VINT project(UC Berkerly)所研發完成及維謢。ns2 它能模擬真實網路系統的架構及特 性,在網路架構的方面,有網路路由器(router)、鏈結(link)及網路 節點(end point)…等;網路特性的方面,則有封包延遲(packet delay)
或封包丟棄(packet drop)…等模擬。模擬程式語言的部份,可以使用 C++ 或 TCL 來修改模組、網路參數設定及產生腳本(script)來進行網 路情境模擬。ns2 主要還可以額外增加網路模組來增強模擬的功能。
本文主要使用 ns2VoIP[18]模組來模擬產生語音封包,目前最新的版 本為 ns2voip-2.31-070906.patch.gz,它包含了許多標準的語音格式編碼 及分析工具 ns2measure 模組。本文為了使此 patch 可以順利在 ns2 上面 執行,我們必頇修改它的程式碼 voip_decoder.cc 及 voip_encoder.cc 二個 檔案,否則在 compile 的時候會出現錯誤訊息,詳細修改內容請參考附 錄 B。
4 . 3 模擬結果分析
本文實驗模擬方案可分為三種量測方式,各實驗量測的 QoS 參數如 表 4.4 所示:
表 4.4 量測 QoS 參數
QoS 參數 blocking probability
average packet
loss rate e2e delay utilization 實驗一
traffic density 實驗二 number of
nodes 實驗三 number of blocking nodes
實驗模擬可藉由阻塞機率(blocking probability)、平均封包遺失率
(average packet loss rate)及 end-to-end delay 來看出使用本文提出的允 入控制方法是否能在傳輸過程中提供較好效能,一旦能有效的降低阻塞 機率、平均封包遺失率及 end-to-end delay,便可以改善語音在傳輸過程 時的效能。同時在可擴充性、網路利用率(utilization)及復原性的部份 則分別使用節點數量(number of nodes)、流量密度(traffic density)及 阻塞節點數量(number of blocking nodes)來進行觀察。我們會再去特
34
別去觀察本文提出的計算阻塞機率演算法(BPC)及阻塞機率立即回饋 演算法(BPC-IF)的模擬分析結果。
4 . 3 . 1 實驗一:使用不同流量密度(traffic density)量測
圖 4.3 為 G.711 新連線的阻塞機率,圖中我們可以看到在 traffic density 一開始在四者之間並沒有明顯的差異,但是當 traffic density 到了 25 之後,本文提出的方法阻塞機率 BPC 及 BPC-IF 上升幅度變得較為趨 緩,而探測式允入控制(PBAC)則在 traffic density 為 27 之後才逐漸趨 緩。這可以表示為當 traffic density 愈大時,我們提出的主軸演算法愈能 有效的降低新連線被阻塞的機會;換句話說,就是新連線通過連結傳輸 成功的機會愈大。接著,我們再去觀察主軸演算法(BPC)及阻塞機率 立即回饋演算法(BPC-IF)在阻塞機率的表現,由圖中可以看到 traffic density 在 27 之前,BPC-IF 能比 BPC 更有效的降低阻塞機率;反之,
blocking probability(%)
traffic density (erlang) BPC
BPC-IF PBAC original
圖 4.4 及 4.5 分別表示為 G.729 和 G.723.1 新連線的阻塞機率。由圖 上面顯示的數據結果,二個圖的整個走向幾乎與圖 4.3 類似,一旦 traffic density 到達了一定的數值,四者相較之下,BPC 及 BPC-IF 能已 較趨緩的速度上升。接著再去觀察 BPC 及 BPC-IF 的差異,不難看出 traffic density 在 27 之前,BPC-IF 仍然能有效的降低阻塞機率;反之,
一旦 traffic density 在 27 之後,就如圖 4.3 一樣上升幅度便開始增加,反 而在 BPC 的部份上升幅度變得較為趨緩且更有效的降低阻塞機率,會 造成這種現象的原因,是由於 BPC-IF 在計算阻塞機率時為了維持立即 更新必頇一直反覆進行計算。因此,一旦 traffic density 過高時,它的計 算效率將會逐漸下降。我們可以從上述的結果得知在網路負載較重及阻 塞機率均偏高的情況下,BPC 依然可以優於 BPC-IF、PBAC 及 original,
即使在使用不同標準的語音編碼,本文提出的方法仍可適用。這無疑也 是使用機率方式的允入控制機制的優點之一。
圖 4.4 阻塞機率在不同流量密度的變化(G.729)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
20 22 23 24 25 26 27 28 29 30
blocking probability(%)
traffic density (erlang) BPC
BPC-IF PBAC original
36 模擬分析結果顯示,成功連結傳輸的平均封包遺失率無論 traffic density 數值如何變化,它的平圴封包遺失率與 PBAC 及 original 相必較下,都
blocking probability(%)
traffic density (erlang) BPC
BPC-IF PBAC original
圖 4.6 平均封包遺失率在不同流量密度的變化(G.711)
圖 4.7 及 4.8 分別為語音編碼 G.729 和 G.723.1 的模擬分析結果。由 於語音封包的頻寬需求會因各標準語音編碼而有所不同,因此模擬顯示 出來的結果除了在平均封包遺失率有些微的不同,三組圖的走向都呈現 類似情況,值得一提的是無論採用何種標準語音編碼格式,本文主軸的 BPC 在平均封包遺失率的部份與 BPC-IF、PBAC 及 original 進行比較,
能更有效的降低平均封包遺失率。
average packets loss rate(%)
traffic density (erlang) BPC
average packets loss rate(%)
traffic density (erlang) BPC
BPC-IF PBAC original
38
圖 4.8 平均封包遺失率在不同流量密度的變化(G.723.1)
圖 4.9 ~ 4.11 分別是三種不同語音編碼在不同流量密度上,end-to-end delay 的變化及表現。由圖 4.9 來進行分析,我們可以看到四種方法 在進行比較之後,BPC 及 BPC-IF 在 e2e delay 的表現上比另外二種方法 要來得較佳。由 traffic density 來進行觀察,可以看到本文主軸的 BPC 上升幅度與另外三種方法相較之下,明顯比較趨緩。接著再去比較 BPC 與 BPC-IF 在 e2e delay 的表現上有什麼差異,圖中可以看到在 traffic density 為 24 之前 BPC-IF 能有效降低 e2e delay;反之,在 traffic density 為 24 之後 BPC-IF 上升幅度便開始加劇,而本文主軸的 BPC 則仍維持 較趨緩上升幅度,因此在 e2e delay 的表現上是要比 BPC-IF 來得佳。
0 0.5 1 1.5 2 2.5
20 22 23 24 25 26 27 28 29 30
average packets loss rate(%)
traffic density (erlang) BPC
BPC-IF PBAC original
圖 4.9 不同流量密度的 end-to-end delay(G.711)
圖 4.10 及 4.11 分別表示為 G.729 和 G.723.1 在不同流量密度上 end-to-end delay 的模擬分析結果。從二個圖中來進行觀察分析,可以看到除 了在 end-to-end delay 的數值上有些微不同,從整個圖面走向來看,三組 圖的走向都呈現類似情況。而在 BPC 及 BPC-IF 的部份,我們可以看到 G.729 及 G.723.1 與 G.711 不同的地方是在 traffic density 為 25 之後,
BPC-IF 的上升幅度才會開始加劇,而一樣的結果是 BPC 還是能維持較 趨緩的上升幅度上升,所以 BPC 在 end-to-end delay 表現上的最終結果 是可以比 BPC-IF 要來得佳,也就是效能更好。
0 50 100 150 200 250
20 22 23 24 25 26 27 28 29 30
e2e delay(sec)
traffic density (erlang) BPC BPC-IF PBAC original
40
圖 4.10 不同流量密度的 end-to-end delay(G.729)
圖 4.11 不同流量密度的 end-to-end delay(G.723.1)
圖 4.12 ~ 4.14 分別是三種不同語音編碼在不同流量密度上,網路利 用率(utilization)的變化及表現。由圖 4.12 來進行分析,除了網路利用 率數值大小之外,還有幾個觀察指標。首先,我們先看在 traffic density 的值為多少時,網路利用率則會開始下降。其次,我們去計算從開始下
traffic density (erlang) BPC
traffic density (erlang) BPC BPC-IF PBAC original
能之外,它們的下降幅度都比 PBAC 及 original 要來得小。同時 BPC 在 traffic density 為 25 之後網路利用率才逐漸下降,這一點又比其它三種方 法表現來得較佳。
圖 4.12 網路利用率在不同流量密度的變化(G.711)
圖 4.13 及 4.14 分別為語音編碼 G.729 和 G.723.1 的模擬分析結果。
從二個圖中來進行觀察分析,除了網路利用率大小、網路利用率何時下 降及下降幅度大小在數值上有些微的不一樣,三組圖的走向大部份呈現 類似情況。同時也發現在觀察指標中不同語音編碼效能表現也截然不同,
BPC 在 G.711 模擬中 traffic density 為 25 之後才開始下降,這點是比另 二種語音編碼要表現得較佳,而在下降幅度方面則是 G.723.1 為最小。
50 55 60 65 70 75 80 85 90 95 100
20 22 23 24 25 26 27 28 29 30
utilization(%)
traffic density (erlang) BPC
BPC-IF PBAC original
42 數值上表現得比 original 要來得佳,但它的下降幅度幾乎與 original 一樣 大,這也就表示 PBAC 在網路利用率的表現不好。
traffic density (erlang) BPC
traffic density (erlang) BPC
BPC-IF PBAC original
4 . 3 . 2 實驗二:使用不同節點數目(number of nodes)量測 是 BPC、BPC-IF、PBAC 及 original,且 BPC 及 BPC-IF 直到節點數大 於 25 之後,上升幅度才開始變得較為明顯。另一個觀察指標可以看到
blocking probability (%)
number of nodes
BPC BPC-IF PBAC original
44
blocking probability (%)
number of nodes
BPC
blocking probability (%)
number of nodes
BPC BPC-IF PBAC original
(3%)。分析圖中平均封包遺失率的值是取自於該節點數量 traffic density 為 30 時。
首先,從圖 4.18 顯示出來的結果,我們可以看到本文主軸的 BPC 在語音編碼(G.711)平均封包遺失率的成效表現比另外三種方法較佳,
且一直到節點數量超過 25 之後,它的平均封包遺失率才超越 3%,也就 代表此時語音品質為可接受但有雜音。若平均封包遺失率超過 5%,聽
且一直到節點數量超過 25 之後,它的平均封包遺失率才超越 3%,也就 代表此時語音品質為可接受但有雜音。若平均封包遺失率超過 5%,聽