專利名稱:分段可靠的時鐘相位差檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)和通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種分段可靠的時鐘相位差的檢測方法。
背景技術(shù):
時鐘是網(wǎng)絡(luò)性能測量的基礎(chǔ),許多測量方法都需要獲得事件所消耗的時間,如固定大小的包在網(wǎng)絡(luò)中傳輸?shù)臅r間,服務(wù)器處理請求的時間等等,因此精確的時間度量對這些測量方法來說是至關(guān)重要的。由于Internet路由的不對稱性,越來越多的研究轉(zhuǎn)向單向指標(biāo)的測量。單向測量中通常需要源端和目的端分別記錄數(shù)據(jù)包到達(dá)或離開的時刻,絕大多數(shù)情況下我們需要的是兩個時刻之間的差值,而不是時刻本身,因此兩端時鐘的同步成為了單向測量中的一個重要問題。
網(wǎng)絡(luò)時鐘協(xié)議NTP是目前Internet中使用最廣的同步協(xié)議。使用NTP,被同步主機(jī)和服務(wù)器之間的時鐘偏移通??删S持在數(shù)十毫秒量級。網(wǎng)絡(luò)時鐘協(xié)議的設(shè)計(jì)目的是時間保持,使用該協(xié)議進(jìn)行同步的時鐘可能會出現(xiàn)短暫的相位差修正,這些修正會大大影響測量結(jié)果。另外NTP的精確性很大程度上受到客戶端和服務(wù)器之間路徑特性的影響。因此對于網(wǎng)絡(luò)測量來說,NTP并非一個好的選擇。
借助全球定位系統(tǒng)GPS接收器等輔助設(shè)備,可以使兩端時鐘在某個時刻的讀數(shù)在十微秒量級上保持一致。因此目前許多現(xiàn)有的網(wǎng)絡(luò)測量工程項(xiàng)目在測量點(diǎn)上使用GPS進(jìn)行時鐘同步。但對于網(wǎng)絡(luò)內(nèi)部延遲的測量來說,在路徑上的所有路由器布置同步設(shè)備或?qū)浖M(jìn)行升級幾乎是一件不可能的事情。
時間戳的事后處理是另一種可以采用的手段。這種方法首先利用測量結(jié)果估計(jì)出相位差,然后從結(jié)果中消除相位差的影響,從而得到包在網(wǎng)絡(luò)中所經(jīng)歷的真實(shí)延遲。Paxson首先提出了使用逐段最小的方法來對獲得的延遲測量值進(jìn)行降噪,并使用降噪后的延遲值進(jìn)行相位差估算;Moon等人使用一條直線去逼近延遲測量值;Zhang等人首先計(jì)算延遲測量值的凸函數(shù),然后給出在不同的最優(yōu)條件下不同的skew估計(jì)值。這些算法要求正常運(yùn)行的條件較為苛刻,因此Paxson和Zhang分別提出了檢測時鐘調(diào)整的算法,然后對于沒有發(fā)生調(diào)整的部分運(yùn)行相位差估計(jì)算法。但是,他們的時鐘檢測算法也有較大的局限性,如Paxson假設(shè)測量過程中只發(fā)生一次時鐘調(diào)整,Zhang假設(shè)兩次時鐘調(diào)整的間隔小于給定的區(qū)間長度w,同時,w還要足夠大以至于能夠在w大小的區(qū)間內(nèi)明顯觀察到延遲測量值的基線。除了時鐘調(diào)整外,網(wǎng)絡(luò)擁塞、路由變化和移動節(jié)點(diǎn)切換接入位置等也會給上述相位差估計(jì)算法造成較大的影響。
上述時間戳事后處理主要存在以下問題第一、適應(yīng)性差。網(wǎng)絡(luò)自身出現(xiàn)異常或端時鐘本身出現(xiàn)異常時,上述方法可能給出錯誤的估計(jì)結(jié)果。第二、忽略了時鐘相位差的非常數(shù)效應(yīng)。對于較長時間的測量,時鐘相位差多為非常數(shù)簡單的認(rèn)為時鐘相位差是常數(shù)經(jīng)常會導(dǎo)致荒謬的結(jié)論。
發(fā)明內(nèi)容
本發(fā)明的目的是為了給網(wǎng)絡(luò)測量系統(tǒng)提供時間戳的相位差檢測和消除的能力。為了實(shí)現(xiàn)該目的,分段可靠的時鐘相位差檢測方法包括下列步驟計(jì)算給定時間段內(nèi)的時鐘相位差;判斷相位差估計(jì)結(jié)果是否可信;如果相位差估計(jì)結(jié)果可信,則輸出該時間段內(nèi)的相位差估計(jì)結(jié)果;如果相位差估計(jì)結(jié)果不可信,且時間段足夠大,則把該時間段從中間分為兩個時間段,對每個時間段計(jì)算時鐘相位差并判斷計(jì)算結(jié)果。如果不可信,則繼續(xù)拆分;如果相位差估計(jì)結(jié)果不可信,且時間段不夠大,則標(biāo)記該時間段內(nèi)相位差估計(jì)結(jié)果無效,并使用臨近時間段內(nèi)的可信估計(jì)結(jié)果作為該時間段的估計(jì)結(jié)果。
對每個區(qū)間的估計(jì)結(jié)果進(jìn)行可靠性判斷。
采用假設(shè)檢驗(yàn)的方法判定估計(jì)結(jié)果是否可靠。
對于不被接受的估計(jì)結(jié)果,將對相應(yīng)區(qū)間進(jìn)行拆分,并對拆分后的區(qū)間進(jìn)行遞歸估計(jì)和判斷。
無需給定時鐘的穩(wěn)定性參數(shù)就可以對非線性時鐘相位差進(jìn)行估計(jì)。
無效估計(jì)結(jié)果的區(qū)間采用臨近時間段內(nèi)的可靠估計(jì)結(jié)果作為該時間段的估計(jì)結(jié)
圖1本發(fā)明的兩個節(jié)點(diǎn)發(fā)送數(shù)據(jù)包示意圖。
圖2本發(fā)明的相位差檢測模型示意圖。
圖3本發(fā)明的相位差檢測過程圖示之一。
圖4本發(fā)明的相位差檢測過程圖示之二。
圖5本發(fā)明的相位差檢測過程圖示之三。
圖6本發(fā)明的相位差檢測過程圖示之四。
圖7本發(fā)明的相位差檢測結(jié)果流程圖。
圖8本發(fā)明的時鐘發(fā)生異常的相位差檢測結(jié)果圖。
圖9本發(fā)明的非線性時鐘相位差情況下的檢測結(jié)果圖。
具體實(shí)施例方式
本部分將首先給出相位差檢測的模型,然后給出計(jì)算給定時間段內(nèi)時鐘相位差的方法和相位差估計(jì)結(jié)果的判定方法;接著,本部分將使用一個例子表明本發(fā)明方法的實(shí)際應(yīng)用;最后,還將給出時鐘發(fā)生異常和非線性時鐘相位差情況下的檢測結(jié)果。
下文中,節(jié)點(diǎn)指一臺具有通信功能的網(wǎng)絡(luò)設(shè)備,可以是一臺PC機(jī),路由器或服務(wù)器。
設(shè)Ca(t)表示節(jié)點(diǎn)a上的時鐘在t時刻的時鐘讀數(shù),其中Ca為除了在有限個點(diǎn)之外2次可微的函數(shù)。設(shè)C(t)代表標(biāo)準(zhǔn)時鐘,即對于t,C(t)=t。對于節(jié)點(diǎn)s和r上的時鐘Cs和Cr,定義如下術(shù)語●偏移(offset)時鐘Cs在t時刻相對于時鐘Cr的偏移被定義成t時刻Cs和Cr讀數(shù)之差Cs(t)-Cr(t)。
●相位差(skew)時鐘Cs在t時刻相對于時鐘Cr的相位差被定義成t時刻Cs和Cr導(dǎo)數(shù)之差Cs′(t)-Cr′(t)。
●漂移(drift)時鐘Cs在t時刻相對于時鐘Cr的漂移被定義成t時刻Cs和Cr二階導(dǎo)數(shù)之差Cs″(t)-Cr″(t)。
特別地,當(dāng)Cs和標(biāo)準(zhǔn)時鐘C相比較時,我們通常省略“相對于標(biāo)準(zhǔn)時鐘C”。即t時刻時鐘Cs的偏移、相位差和漂移分別為Cs(t)-t、Cs′(t)-1和Cs″(t)。
在一次測量中,設(shè)節(jié)點(diǎn)s向節(jié)點(diǎn)r發(fā)送了n個數(shù)據(jù)包,如圖1所示。令li*表示對于時鐘C*而言第i個包離開s的時刻,ai*表示對于時鐘C*而言第i個包到達(dá)r的時刻,其中*為通配符。令di和Di分別代表第i個包在網(wǎng)絡(luò)中經(jīng)歷的延遲真實(shí)值和延遲測量值,顯然有di=ai-li,Di=air-lis.]]>圖2給出了上述參數(shù)之間的關(guān)系圖,圖中橫軸從上到下分別代表時鐘Cs,Cr和標(biāo)準(zhǔn)時鐘C的時間軸。從Cs到Cr時間軸的兩條帶箭頭斜線分別代表第i個包和第i+k個包的發(fā)送過程,斜線和Cs的交點(diǎn)代表數(shù)據(jù)包的發(fā)送時刻,和Cr的交點(diǎn)代表包的接收時刻。圖中Di表示斜線的兩個端點(diǎn)所在時間軸上的數(shù)值相減,并非斜線的長度。
在網(wǎng)絡(luò)測量中,我們更關(guān)心兩個時鐘之間的同步問題,而不是和標(biāo)準(zhǔn)時鐘的同步。因此我們假設(shè)源端時鐘為標(biāo)準(zhǔn)時鐘,即令Cs(t)≡C(t)=t,同時可以得到lis=li,ais=ai.]]>計(jì)算給定時間段內(nèi)時鐘相位差的方法可以采用線性回歸方法。具體的來說,n次測量后可以得到數(shù)組(l1s,D1),...,(lns,Dn)。使用測量時刻作為橫軸,測量得到的延遲作為縱軸,則上述數(shù)組可以轉(zhuǎn)化為二維平面上的n個數(shù)據(jù)點(diǎn)。對這n個點(diǎn)進(jìn)行線性回歸,所得到直線的斜率加上1即為該時間段內(nèi)相位差的估計(jì)值。
下面我們將給出判斷相位差估計(jì)結(jié)果是否可信的方法(即相位差估計(jì)結(jié)果的判定方法)。目前的許多研究表明延遲的最小值代表著網(wǎng)絡(luò)空閑時的測量結(jié)果,一次測量中,最小延遲多次出現(xiàn)。如果相位差估計(jì)算法給出的結(jié)果是正確的,那么當(dāng)我們使用斜率為相位差減1的直線去靠近延遲測量值底部的過程中,必將會有許多點(diǎn)落在直線上。這一條性質(zhì)成為了我們判斷估計(jì)結(jié)果是否正確的主要依據(jù)。令q為某個數(shù)據(jù)包經(jīng)歷最小延遲的概率,對于n次測量,在延遲之間不存在相關(guān)性的情況下,經(jīng)歷最小延遲的數(shù)據(jù)包數(shù)目m服從二項(xiàng)分布。令R(k)=Σi=0Cni·qi·(1-q)n-i]]>則R(k)表示最小延遲的數(shù)據(jù)包數(shù)目小于或等于k的概率。如果R(m)較小,那么我們拒絕相位差估計(jì)算法給出正確結(jié)果的零假設(shè),從而接受相位差估計(jì)算法是錯誤的備擇假設(shè)(alternative hypothesis)。
下面我們給出檢驗(yàn)方法中參數(shù)的取值。根據(jù)經(jīng)驗(yàn),我們?nèi)=0.05,拒絕和接受零假設(shè)的閾值p0=0.05。
下面結(jié)合
本方法的處理過程。其詳細(xì)步驟如下步驟1、圖1中節(jié)點(diǎn)s向節(jié)點(diǎn)r發(fā)送了n個數(shù)據(jù)包,并在每個包中記錄了該包發(fā)送時刻;節(jié)點(diǎn)r對于接收到的一個包,記錄下該包的接收時刻;步驟2、節(jié)點(diǎn)r使用線性回歸法對兩個節(jié)點(diǎn)的時鐘之間的相位差進(jìn)行估計(jì),其估計(jì)結(jié)果如圖3所示。圖3中橫軸為測量時刻,豎軸為測量所得到的延遲值,為了更為清楚的顯示結(jié)果,坐標(biāo)軸經(jīng)過了平移,使得延遲的最小值為0,測量的開始時刻為零。圖中黑色的線為測量所得到的數(shù)組(l1s,D1),...,(lns,Dn)中臨近兩點(diǎn)相連所構(gòu)成的線,黑色線下部的虛線代表本次相位差估計(jì)的結(jié)果;步驟3、節(jié)點(diǎn)r計(jì)算R(m),發(fā)現(xiàn)過小。由此認(rèn)為本次估計(jì)結(jié)果不可信而拒絕接受;步驟4、節(jié)點(diǎn)r把整個區(qū)間分為兩個相同大小的時間段,并對這兩個時間段分別估算相位差,圖4給出了本次估計(jì)結(jié)果。圖4中淺色的豎線為兩個時間段的分割線,左邊時間段黑色線下部的虛線和右邊時間段黑色線下部的粗實(shí)線分別代表著兩個時間段內(nèi)相位差估計(jì)結(jié)果;(虛線和實(shí)線分別代表拒絕接受和接受)步驟5、節(jié)點(diǎn)r對圖4中的左右兩個區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左邊區(qū)間的R(m)值過小,因此拒絕接受左邊的估計(jì)結(jié)果;右邊的R(m)值達(dá)到了要求,接受右邊區(qū)間的估計(jì)結(jié)果;步驟6、節(jié)點(diǎn)r繼續(xù)對圖4中的左邊的區(qū)間進(jìn)行劃分,稱之為左左區(qū)間和左右區(qū)間。并分別在這兩個區(qū)間進(jìn)行相位差估算,如圖5所示;
步驟7、節(jié)點(diǎn)r對圖5中的左左區(qū)間和左右區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左左區(qū)間的R(m)值過小,因此拒絕接受左左區(qū)間的估計(jì)結(jié)果;左右區(qū)間的R(m)值達(dá)到了要求,接受左右區(qū)間的估計(jì)結(jié)果;步驟8、節(jié)點(diǎn)r對圖5中左左區(qū)間進(jìn)行劃分,稱之為左左左區(qū)間和左左右區(qū)間。并分別在這兩個區(qū)間進(jìn)行相位差估算,如圖6所示;步驟9、節(jié)點(diǎn)r對圖6中的左左左區(qū)間和左左右區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左左左區(qū)間的R(m)值和左左右區(qū)間的R(m)值均達(dá)到了要求,因此接受這兩個區(qū)間的估計(jì)結(jié)果。至此,本方法運(yùn)行結(jié)束。圖7給出了本處理過程的流程圖。
圖8給出了發(fā)生時鐘異常情況下的相位差檢測結(jié)果??梢钥吹綍r鐘發(fā)生異常的相關(guān)區(qū)間內(nèi),本方法拒絕了錯誤的檢測結(jié)果。而在其他區(qū)間內(nèi)本方法接受正確的檢測結(jié)果。如果使用現(xiàn)有的其他方法,將會給出非常錯誤的結(jié)果。
圖9給出了時鐘相位差非常數(shù)情況下的檢測結(jié)果??梢钥闯雒總€區(qū)間內(nèi)檢測結(jié)果均非常好的逼近了該區(qū)間內(nèi)的真實(shí)相位差。
權(quán)利要求
1.一種分段可靠的時鐘相位差檢測方法,包括步驟計(jì)算給定時間段內(nèi)的時鐘相位差;判斷相位差估計(jì)結(jié)果是否可靠;如果相位差估計(jì)結(jié)果可靠,則輸出該時間段內(nèi)的相位差估計(jì)結(jié)果;如果相位差估計(jì)結(jié)果不可靠,且時間段足夠大,則把該時間段從中間分為兩個時間段,對每個時間段計(jì)算時鐘相位差并判斷計(jì)算結(jié)果,如果不可靠,則繼續(xù)拆分;如果相位差估計(jì)結(jié)果不可靠,且時間段不夠大,則標(biāo)記該時間段內(nèi)相位差估計(jì)結(jié)果無效,并使用臨近時間段內(nèi)的可靠估計(jì)結(jié)果作為該時間段的估計(jì)結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,對每個區(qū)間的估計(jì)結(jié)果進(jìn)行可靠性判斷。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,采用假設(shè)檢驗(yàn)的方法判定估計(jì)結(jié)果是否可靠。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,對于不被接受的估計(jì)結(jié)果,將對相應(yīng)區(qū)間進(jìn)行拆分,并對拆分后的區(qū)間進(jìn)行遞歸估計(jì)和判斷。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,無需給定時鐘的穩(wěn)定性參數(shù)就可以對非線性時鐘相位差進(jìn)行估計(jì)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,無效估計(jì)結(jié)果的區(qū)間采用臨近時間段內(nèi)的可靠估計(jì)結(jié)果作為該時間段的估計(jì)結(jié)果。
7.根據(jù)權(quán)利要求1的分段可靠的時鐘相位差檢測方法,其具體步驟如下步驟1、節(jié)點(diǎn)s向節(jié)點(diǎn)r發(fā)送了n個數(shù)據(jù)包,并在每個包中記錄了該包發(fā)送時刻,節(jié)點(diǎn)r對于接收到的一個包,記錄下該包的接收時刻;步驟2、節(jié)點(diǎn)r使用線性回歸法對兩個節(jié)點(diǎn)的時鐘之間的相位差進(jìn)行估計(jì);步驟3、節(jié)點(diǎn)r計(jì)算R(m),發(fā)現(xiàn)過小,由此認(rèn)為本次估計(jì)結(jié)果不可信而拒絕接受;步驟4、節(jié)點(diǎn)r把整個區(qū)間分為兩個相同大小的時間段,并對這兩個時間段分別估算相位差;步驟5、節(jié)點(diǎn)r的左右兩個區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左邊區(qū)間的R(m)值過小,因此拒絕接受左邊的估計(jì)結(jié)果;右邊的R(m)值達(dá)到了要求,接受右邊區(qū)間的估計(jì)結(jié)果;步驟6、節(jié)點(diǎn)r繼續(xù)對左邊的區(qū)間進(jìn)行劃分,稱之為左左區(qū)間和左右區(qū)間,并分別在這兩個區(qū)間進(jìn)行相位差估算;步驟7、節(jié)點(diǎn)r對左左區(qū)間和左右區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左左區(qū)間的R(m)值過小,因此拒絕接受左左區(qū)間的估計(jì)結(jié)果;左右區(qū)間的R(m)值達(dá)到了要求,接受左右區(qū)間的估計(jì)結(jié)果;步驟8、節(jié)點(diǎn)r對左左區(qū)間進(jìn)行劃分,稱之為左左左區(qū)間和左左右區(qū)間,并分別在這兩個區(qū)間進(jìn)行相位差估算;步驟9、節(jié)點(diǎn)r對左左左區(qū)間和左左右區(qū)間分別計(jì)算R(m),發(fā)現(xiàn)左左左區(qū)間的R(m)值和左左右區(qū)間的R(m)值均達(dá)到了要求,因此接受這兩個區(qū)間的估計(jì)結(jié)果,至此,本方法運(yùn)行結(jié)束。
全文摘要
本發(fā)明涉及計(jì)算機(jī)和通信網(wǎng)絡(luò)技術(shù)領(lǐng)域的一種分段可靠的時鐘相位差檢測方法。包括步驟計(jì)算給定時間段內(nèi)的時鐘相位差;判斷相位差估計(jì)結(jié)果是否可信;如果相位差估計(jì)結(jié)果可信,則輸出該時間段內(nèi)的相位差估計(jì)結(jié)果;如果相位差估計(jì)結(jié)果不可信,且時間段足夠大,則把該時間段從中間分為兩個時間段,對每個時間段計(jì)算時鐘相位差并判斷計(jì)算結(jié)果。如果相位差估計(jì)結(jié)果不可信,且時間段不夠大,則標(biāo)記該時間段內(nèi)相位差估計(jì)結(jié)果無效。并使用臨近時間段內(nèi)的可信估計(jì)結(jié)果作為該時間段的估計(jì)結(jié)果。本發(fā)明提供了時間戳的相位差檢測和消除的能力。目前的消除方法均不支持非常數(shù)相位差的檢測和消除,同時這些方法的適應(yīng)性較差。
文檔編號H04L7/00GK1558583SQ20041000402
公開日2004年12月29日 申請日期2004年2月4日 優(yōu)先權(quán)日2004年2月4日
發(fā)明者吳起, 畢經(jīng)平, 吳 起 申請人:中國科學(xué)院計(jì)算技術(shù)研究所