專利名稱:用于計算時鐘偏移和時鐘脈沖相位差的方法和系統的制作方法
技術領域:
本發明總體涉及計算機系統,并且尤其涉及計算機系統內的時間同步。更為明確地,本發明涉及用于計算一個計算機系統內的兩個時鐘之間的時鐘偏移和時鐘脈沖相位差的方法和系統。
背景技術:
現代計算機出于許多目的使用時鐘,包括確保許多操作按正確順序發生或同步發生。因此,時鐘自身按緊密同步操作是重要的。典型地,兩個時鐘通常不是處于完全同步,并且時鐘之間存在定時差異。另外,兩個時鐘可能不是以精確相同的頻率操作,從而時鐘之間的定時差異隨時間而改變。時鐘間定時差異的這種改變被稱為時鐘脈沖相位差(clock skew)。
許多計算機定時協議需要諸如關于兩個時鐘之間脈沖相位差和偏移的估計之類的信息。這兩個時鐘可以是例如本地時鐘及其源時鐘。例如,服務器定時協議(STP)需要對本地時鐘和該時鐘源之間的脈沖相位差和偏移的估計。這種估計的精確度對于該協議的同步精確度是至關重要的。盡管測量時鐘脈沖相位差的方法以及系統是公知的,但這些公知過程趨向于相當復雜,在某些情況下不可靠,或二者皆有。
發明內容
本發明的一個目的是提供一種用于對計算機系統內兩個時鐘之間的時鐘脈沖相位差和時鐘偏移進行估計的改進的過程。
本發明的另一個目的是同時使用前向延遲和反向延遲來估計在計算機系統內兩個時鐘之間的脈沖相位差和偏移。
這些和其他目的通過一種用于計算在計算機系統內兩個時鐘之間的時鐘偏移和時鐘脈沖相位差的方法和系統而實現。所述方法包括步驟從計算機系統中的第一處理單元向計算機系統中的第二處理單元發送數據分組,以及從第二處理單元向第一處理單元發送所述數據分組。第一時間戳被提供用于指示該分組離開所述第一處理單元的時間,第二時間戳被提供用于指示該分組到達所述第二處理單元的時間,第三時間戳被提供用于指示該分組離開所述第二處理單元的時間,第四時間戳被提供用于指示該分組到達所述第一處理單元的時間。
所述方法進一步包括步驟使用所述第四時間戳定義反向延遲點的集合,以及使用所述反向延遲點的集合來計算所述第一處理單元和第二處理單元上的時鐘之間的時鐘偏移以及所述時鐘的時鐘脈沖相位差。優選地,反向延遲點的集合包括{T4(i),-BD(i)},其中T4(i)是第四時間戳,并且-BD(i)是反向延遲的值。
本發明進一步的有益效果和優勢將通過考慮下面的參考附圖給出的詳細描述而變得明顯,其中所述附圖指定和示出了本發明的優選實施方式。
圖1示出了在其中可以實現本發明的數據處理系統的網絡。
圖2示出了在圖1的網絡中的時鐘裝置B與時鐘服務器A之間的分組交換。
圖3示出了當時鐘A的運行比時鐘B快10%時,時鐘裝置B與時鐘服務器A之間的分組交換。
圖4示出了當僅使用T1時間戳時反向延遲的延遲圖。
圖5示出了當使用T4時間戳時反向延遲的延遲圖。
具體實施例方式
圖1示出了計算機網絡100,其包括服務器102、客戶端104以及數據存儲單元106。網絡100還包括用于在這些網絡裝置之間傳輸數據的數據連接110。網絡100可以例如是國際互聯網,但也可以是企業內部互聯網、局域網、廣域網、點對點鏈路或其他網絡。
正如上文所述,包括服務器定時協議(STP)的各種計算機定時協議需要計算在計算機系統或在例如網絡100的網絡中兩個時鐘之間的脈沖相位差和偏移。本發明的目的在于獲得所述時鐘脈沖相位差以及時鐘偏移。
首先參考圖3,其示出了在本地裝置B與時鐘服務器A之間的分組交換。根據B的時鐘,分組于T1時刻離開B。根據A的時鐘該分組于T2時刻到達A。隨即裝置A根據A的時鐘于T3時刻發送回復分組。該回復消息根據B的時鐘于T4時刻到達B。通過規律地發送這類交換消息并記錄T1、T2、T3、T4的時間戳序列,能夠獲得對裝置B的時鐘與裝置A的時鐘之間的相對偏移和速度差的估計。
根據T1、T2、T3、T4的時間戳序列計算前向延遲和反向延遲(FD和BD)序列的過程是公知的。舉例而言,在美國專利申請09/920,138和10/157,610以及美國專利6,661,810中描述了這些過程。特別地,FD=T2-T1,BD=T4-T3。
使用T1(i)、T2(i)、T3(i)、T4(i)、FD(i)以及BD(i)來表示用于第i次分組交換的時間戳和延遲。現有技術構造了兩個在二維平面中的延遲點集合,{(T1(i),FD(i))|i=1,...}以及{(T1(i),BD(i))|i=1,...}。美國專利6,661,810獨立地考慮這兩個點集合,可能無法產生本發明這樣的精確結果。美國專利申請09/920,138和10/157,610共同地考慮這兩個延遲點集合,產生比美國專利6,661,810更好的精確性。
使用T4值的反向延遲根據本發明,所述T4時間戳被用于定義所述反向延遲點的集合,即{(T4(i),-BD(i))|i=1,...}。同時,共同地考慮所述兩個延遲點集合,以獲得對時鐘偏移和離散度的更好估計。更進一步,以對稱的方式共同地考慮這兩個延遲點集合。這種對稱的處理是對美國專利申請No.09/920,138以及No.10/157,610中方法的一個進步。
盡管該分組延遲在現實中應該是非負的,但如果僅使用T1時間戳,有可能使延遲估計為負。由表面上為負的延遲所造成的可能的問題能夠通過針對所述反向延遲使用T4時間戳而緩解。這種有益效果將通過一個例子加以描述。在這個例子中,在T3和T2之間存在相當長的延遲。
參考圖3,假使時鐘A的運行比時鐘B快10%。所有的前向或反向延遲根據時鐘B都為1秒,或等價地,根據時鐘A都為1.1秒。則對于第一分組,前向延遲為2.2-1=1.2秒以及反向延遲為101-110=-9秒。對于第二分組,前向延遲為為3.3-2=1.3秒以及反向延遲為102-111.1=-9.1秒。在這種情況下,所估計的往返延遲為1.2+(-9)=1.3+(-9.1)=-7.8秒。
在美國專利申請No.09/920,138以及No.10/157610所描述的過程中,當僅使用T1時間戳時,所述延遲圖如圖4所示。
在正常的情況下,該-BD線應當低于FD線,所述往返延遲的估計值為這兩條線之間的垂直距離。對于這個例子,所述往返延遲的估計值為-7.8秒。
如果T4時間戳被用于反向延遲,則延遲圖如圖5所示。
現在所述-BD線低于FD線,原因是反向延遲點隨著T4的值向右平移了。第101個分組的所述前向延遲為11.2秒。則往返延遲的估計值為11.2+(-9)=2.2秒,是一個正值。
當分組處理的延遲,或T3-T2顯著長于實際分組延遲,并且所述時鐘以差異很大的速度運行時,這種類型的消極影響變得尤為突出。使用T4時間戳提供了對偏移和延遲的值的更精確的估計。
本領域技術人員將容易明白,本發明可以以硬件形式、軟件形式或硬件和軟件的組合的形式來實現。任何類型的計算機/服務器系統,或其他適用于實現在此所描述的本方法的任何設備,都是適合的。硬件和軟件的一種典型的組合可以是帶有計算機程序的通用計算機系統,當該計算機程序被加載和執行時,該計算機程序實現本文所描述的各個方法。可選地,可以利用包括用于實現本發明的一個或多個功能任務的特定硬件的特殊用途計算機。
本發明還能夠包含于計算機程序產品中,該計算機程序產品包括所有支持在此所描述方法的實現的各個特征,并且當加載于計算機系統時,該程序產品能夠實現這些方法。計算機程序、軟件程序、程序或軟件,在本文中指以任意語言、代碼或符號對一組指令進行的任意表達,這組指令的目的是直接或在以下任一或兩者之后使具有信息處理能力的系統執行特定功能(a)轉換成另一種語言、代碼或符號;和/或(b)以一種不同的材料形式再現。
盡管很明顯此處披露的本發明非常適合于實現前述目的,但是應該理解本領域技術人員可以設計出許多修改和實施方式,并且這意味著隨附的權利要求覆蓋了落入本發明的真實精神和范圍內的全部這樣的修改和實施方式。
權利要求
1.一種計算在計算機系統內的時鐘偏移以及時鐘脈沖相位差的方法,所述方法包括以下步驟從該計算機系統內的第一處理單元向該計算機系統內的第二處理單元發送數據分組;從所述第二處理單元向所述第一處理單元發送所述數據分組;提供第一時間戳用以指示所述分組離開所述第一處理單元的時間;提供第二時間戳用以指示所述分組到達所述第二處理單元的時間;提供第三時間戳用以指示所述分組離開所述第二處理單元的時間;提供第四時間戳用以指示所述分組到達所述第一處理單元的時間;使用所述第四時間戳定義一個反向延遲點的集合;以及使用所述反向延遲點的集合計算所述第一處理單元和第二處理單元上的時鐘之間的時鐘偏移以及所述時鐘的時鐘脈沖相位差。
2.根據權利要求1所述的方法,其中所述第四時間戳指定所述反向延遲點的集合在圖上的位置。
3.根據權利要求1所述的方法,其中所述反向延遲點的集合包括{T4(i),-BD(i)},其中T4(i)為所述第四時間戳,并且-BD(i)為反向延遲值;以及每個反向延遲值使用相應的一組所述時間戳計算。
4.根據權利要求1所述的方法,進一步包括使用所述時間戳定義一個前向延遲點的集合的步驟,并且其中所述計算步驟包括使用所述反向延遲值的集合以及所述前向延遲值的集合二者來計算所述時鐘偏移和時鐘脈沖相位差的步驟。
5.根據權利要求1所述的方法,其中所述定義反向延遲點的集合的步驟包括使用所述第四時間戳定義一個負反向延遲點的集合的步驟。
6.根據權利要求1所述的方法,其中所述第一處理單元提供所述第一和第三時間戳,以及所述第二處理單元提供所述第二和第四時間戳。
7.一種用于計算在計算機系統內的時鐘偏移和時鐘脈沖相位差的計算系統,在這種類型的計算機系統中,數據分組從所述計算機系統內的第一處理單元向所述計算機系統內的第二處理單元發送,以及所述數據分組從所述第二處理單元向所述第一處理單元發送,以及其中提供第一時間戳用于指示所述分組離開所述第一處理單元的時間,提供第二時間戳用于指示所述分組到達所述第二處理單元的時間,提供第三時間戳用于指示所述分組離開所述第二處理單元的時間,以及提供第四時間戳用于指示所述分組到達所述第一處理單元的時間,所述計算系統包括用于使用所述第四時間戳定義一個反向延遲點的集合的裝置;以及用于使用所述反向延遲點的集合計算所述第一處理單元和第二處理單元上的時鐘之間的時鐘偏移和所述時鐘的時間脈沖相位差的裝置。
8.根據權利要求7所述的計算系統,其中所述第四時間戳指定所述反向延遲點的集合在圖上的位置。
9.根據權利要求7所述的計算系統,其中所述反向延遲點的集合包括{T4(i),-BD(i)},其中T4(i)為所述第四時間戳,并且-BD(i)為反向延遲值。
10.根據權利要求9所述的計算系統,其中每個所述反向延遲值使用相應的一組所述時間戳計算。
11.根據權利要求7所述的計算系統,進一步包括用于使用所述時間戳定義一個前向延遲點的集合的裝置,以及其中所述計算裝置使用所述反向延遲值的集合以及所述前向延遲值的集合二者來計算所述時鐘偏移和時鐘脈沖相位差。
12.根據權利要求7所述的計算系統,其中所述對一個反向延遲點的集合的定義包括一個負反向延遲點的集合。
13.一種機器可讀的程序存儲裝置,其具體地包含可由機器執行的指令程序,以完成用于計算在計算機系統內的時鐘偏移和時鐘脈沖相位差的方法步驟,所述方法是依照上述方法權利要求中的任意一項的方法。
全文摘要
本發明公開了一種用于計算在計算機系統內的兩個時鐘之間的時鐘偏移和時鐘脈沖相位差的方法以及系統。該方法包括從該計算機系統內的第一處理單元向該計算機系統內的第二處理單元發送數據分組的步驟,以及從該計算機系統內的第二處理單元向該計算機系統內的第一處理單元發送該數據分組的步驟。第一、第二、第三和第四時間戳被分別提供用于指示該分組離開第一處理單元、到達第二處理單元、離開第二處理單元以及到達第一處理單元的時間。該方法進一步包括使用第四時間戳定義一個反向延遲點的集合的步驟,以及使用所述反向延遲點的集合計算第一和第二處理單元上的時鐘之間的時鐘偏移以及所述時鐘的時鐘脈沖相位差的步驟。
文檔編號H04L7/10GK1929366SQ20061011578
公開日2007年3月14日 申請日期2006年8月17日 優先權日2005年9月9日
發明者張立, 米歇爾·亨利·西奧多·哈克, 斯科特·M·卡爾森 申請人:國際商業機器公司