第三章、 一個以 RTCP 為基礎的 VoIP 數位簽章機制
3.4 根據 RTCP 動態調整參數的機制
3.4.1 預估 number_of_hash
1. Number of edges per node(number_of_hash) 2. Length and distribution of edges(distribution) 3. Frequency of signature nodes(interval)
4. Number of incoming edges in signature nodes(N)
為方便說明,我們分別給予這些參數括號中的簡稱,在已知distribution、
Interval、N 的情況之下,我們可以利用封包遺失模型及統計學上的假設檢定[23]
來幫助我們估計出:『當封包的平均遺失率為x 時,為滿足驗證率不小於 γ,所 需要的最小number_of_hash 為多少』。
在2.2.2 節裡,我們介紹過三種可以利用的模型:Bernoulli Model、Gilbert Model、m-order Markov Model。m-order Markov Model 雖然對遺失封包之間的相 依性提供最詳細的描述,但我們不需要這些過於細節的資訊。我們可以使用
Gilbert Model,因為它對封包的連續性遺失(bursty)做了不錯的描述,我們以下圖 表示Gilbert Model 的參數範圍:
圖 46 以座標軸展開 Gilbert Model
由於真實世界裡的封包遺失通常具有短暫的相依性,所以clp 的值總是大於 或等於ulp[8]。為了縮小問題範圍,我們進一步將圖形切割如下:(1)假設當網路 狀況落在ulp=0.4 這條線的右邊時,使用者會因為無法接受通話品質而掛斷電話 (2)根據文獻所測量(表一),VoIP 的數據值約是(ulp=0.16,clp=0.42),我們假設 VoIP 運行在大部份網路的clp 值都不會超過 0.8。依上述三項原則將 Gilbert Model 切 割如下圖所示:
圖 47 以座標軸展開 Gilbert Model,限定環境參數
我們的假設是真實世界的VoIP 會落在這個梯形裡,而我們的目標是要估計 出,『給定另外三項參數N、distribution、interval,當封包平均遺失率為 x 時,
為滿足驗證率不小於 γ,所需要的number_of_hash 最小值為何』
首先只考慮這個梯形上的某一點(ex.ulp=0.1,clp=0.5),如果網路的狀況落在 這點,那我們可以用統計[17]的假設檢定方法做如下估計:
Step1:設定該點為網路的環境參數。
Step2:給定 distribution、N、interval。
Step3:給定驗證率的門檻值 γ。
Step4:令 number_of_hash 的值為 i,分別執行 n 組數據後,計算樣本平均數 及樣本標準差 ,在母體未知的情況下,根據統計學的中央極限定理[17],
當樣本數n>=30 時,未知母體可視為常態分配,並可用樣本平均數 估計母 體平均數 。
Step5:給定拒絕域 α,利用 p-value 右尾檢定法,找出為滿足驗證率 γ 時 所需的number_of_hash 最小值為何。檢定步驟如下:
令虛無假設 H0:μi≦γ vs 對立假設 H1:μi>γ 計算
√
給定 α,查表求得拒絕域的 z 值為何,若 p-value 大 於 z,則拒絕 H0,表示該 number_of_hash 可以滿足 γ。
Step6:依序令 i=2、3、4、5、6…,分別執行(4)、(5),可求出最小的 i 值為何。
若是針對單一點的情況,我們可以用這種方法來檢定最小的number_of_hash 為 多少,但考慮到這個梯形上有無限多點,我們不可能在每一點都做相同的實驗。
所以我們可以用另一種計算趨近值的方法:
Step1:將這塊梯形按橫軸等距切割成 m 個區塊(切割的區塊越多,估計得越 精準)。
Step2:分別用這 m 個區塊裡的最差點(所謂最差,指的是在其它參數都相同 的情況下,該點會造成最低的驗證率,即表示若在該點滿足門檻值 γ,則 該區塊的所有點也會滿足 γ)去估計『給定 N、distribution、interval,為滿 足 γ 時,這個區塊所需要number_of_hash 的最小值為何』。
要找出區塊裡最差的一點,我們可以從下面兩個性質著手:
z 在給定相同 clp 的情況下,當要維持驗證率值在某程度時,若 ulp 越大,
需要的number_of_hash 就會越多。我們可以依此推斷:給定相同 clp,越
number_of_hash 最小值為何。
Step3:在對每個區塊都做相同的檢定之後,我們可以得到類似圖 48 的結果:
圖48 的解讀方式如下:給定 interval、N、distribution,當封包的平均遺失 率為0.05 時,為維持驗證率在 γ,我應該讓 number_of_hash 為 a;在平均遺失 率為0.15 時,number_of_hash 應該為 b…以下依此類推。