專利名稱::將分布式計算機網絡中的本地時鐘同步的方法將分布式計算機網絡中的本地時鐘同步的方法
背景技術:
:本發明涉及將分布式計算機網絡中的本地時鐘同步。本發明尤其感興趣的是通過在網絡中的組件之間的通信鏈路上發送信息來交換資訊的計算機網絡。在不對本發明的具體實現作為限制下,我們使用標準的以太網作為說明例子。在標準的以太網中,終端系統通過雙向通信鏈路經由網絡交換機連接。終端系統會通過把信息發送到交換機而與第二終端系統或一組終端系統通信,然后該交換機會把信息轉播到接收的終端系統或其他終端系統。同樣地,終端系統能通過雙向通信鏈路相互直接連接,這使得終端系統和交換機之間的明顯分別在某些結構中是難以區分的。因此,我們通常使用組件這個術語來稱呼可能是終端系統或交換機的實體裝置。組件之所以被稱為終端系統或交換機是由其用途而非其實體外觀來決定的。時鐘同步的問題是使不同組件的本地時鐘達至接近一致的問題。由于容錯的原因,多個組件可被設置成產生同步信息。將本地時鐘同步的問題具有長久的歷史,已知很多聲稱即使有失效出現也可將本地時鐘同步的算法(拜占庭時鐘同步,蘭波特L和梅利亞-史密斯PM,美國計算機學會作業系統專業組綜論(ACMSIGOPSOperatingSystemsReview),第20卷,第3期,第10-16頁,1986,美國計算機學會紐約(ACMNew^rk),NY,美國;最佳時鐘同步,斯瑞肯思TK和圖格S,美國計算機學會期刊(JACM),第34卷,第3期,第擬6-645頁,1987,美國計算機學會紐約(ACMNew^rk),NY,美國;可靠時鐘同步范例,施奈德FB,計算機科學系技術報告TR,第86-735頁;分布式實時系統中的時鐘同步,柯匹茲H和歐施森雷特W,IEEE計算機匯刊(IEEETransactionsonComputers),第36卷,第8期,第933-940頁,1987,IEEE計算機學會華盛頓(IEEEComputerSocietyWashington),DC,美國;容錯的時間觸發通信的啟動和恢復以基于總線和基于交換機的網絡拓撲結構為中心,斯泰納W,2008,Vdm出版社穆勒博士)。
發明內容本發明在其容錯性質方面從上述協議中區別出來。■本發明是可擴展的本發明能被設置成作為例如用于工業控制的簡單的主從時鐘同步協議運行。另一方面,本發明能被設置成作為例如用于載人航天應用中的多主導裝置(Multi-Master)時鐘同步協議運行。這種可擴展性提供了巨大的經濟利益由于本發明能用于不同的應用領域,因此能顯著地降低實現本發明的成本。同樣地,本發明被跨領域地使用增加了可探測到在實現本發明中的潛在失效(failure)的可能性,并由此大大完善了本發明的實現。依循正確概率(probabilityofcorrectness)是其實現數量(numberofimplementations)的直接函數這一概念,這也被稱為“百萬證明”(“proof-by-million”)。■本發明容忍多個不一致的錯誤(inconsistentfaults)當本發明被設置成多主導裝置模式時,其在同一時間點上容忍完全不一致-遺漏(inconsistent-omission)的錯誤的通信路徑甚至錯誤的終端系統。這失效模式意味著各個錯誤的組件對各個信息有著潛在不一致的撤銷行為在任何其輸入通信鏈路和任何其送出通信鏈路上任意地撤銷信息。盡管發明家們在容錯時鐘同步上有豐富的經驗,但他們并不知道任何現有的容錯同步算法會容忍這一程度的容錯。因此,本發明允許更具有成本效益地實現需要容忍系統中多種失效的系統結構。例如,甚至能在僅由兩個獨立的通信信道組成的系統結構中容忍所述不一致的失效模式。以前實現容忍所述失效的通信結構需要至少三個獨立的通信信道。■即使有永久失效出現本發明也可容忍任意的暫時干擾。除了所述容錯之外,本發明還提供自穩定性質。自穩定意味著在分布式計算機系統的多個組件中的暫時擾動之后還會重新確立同步。本發明通過使用形式化方法(formalmethods)(模型檢測研究(model-checkingstudies))從任意的系統狀態穩定為同步系統狀態。隨著計算機芯片的特征尺寸減小從而造成組件內的暫時擾動增多,這一自穩定性質變得越來越重要。今后設計可靠的分布式計算機網絡要依靠本發明提供的對多個暫時擾動的有效而合理的容限。盡管發明家們在容錯時鐘同步上有豐富的經驗,但他們并不知道任何現有的容錯同步算法會容忍這一程度的容錯。本發明基于以下創新性步驟■容錯握手程序的新概念,以在系統一開機就確立同步以及一旦總體同步消失時重新獲得同步。與以前的協議相比,只要有至少一個無錯誤的通信信道,容錯握手即使在同一時間點有不一致的通信信道及甚至是有錯誤的終端系統出現也可保證端對端的一致性。容錯握手保證冷啟動信息或所產生的冷啟動應答信息(或者上述兩者)在系統中是一致的。■不同類型的探測團集機制的新概念,其既用于兩者與預定組件同步的終端系統的數量,以及被識別出不與所述組件同步的終端系統的數量,又用于該兩者之間的關系。■多個同步狀態的新概念,其允許為不同的同步狀態指定不同的探測團集機制;因為時間觸發的協議在一旦確立同步時就比在啟動程序期間能容忍范圍廣得多的失效模式。能使用不同的同步狀態來追蹤同步程序的運行歷史。在早期和容易達到的同步狀態中,探測團集機制被設置得非常脆弱,以捕捉所有可能的團集情況,而在較后的同步狀態(如組件看到終端系統數量足夠,或者同步通信在可配置數目的同步輪次中是成功的話,就進入該狀態)中,探測團集機制被設置得較為寬松,以致無需執行重設同步就能容忍范圍更廣的失效模式。■中央監護功能的新概念,如提供同步信息的終端系統是不被信任,則能在交換機中啟用該功能。同樣地,如提供該同步的終端系統是被信任,則能把中央監護功能減至最小功能。■重新使用按照高完整性(high-integrity)設計實現部分(subset)設備的概念;按照高完整性設計原理實施的組件能被假定在受限制的失效模式中失效。信任按照高完整性原理實現的組件是工程學上的通常做法,然而受限制的失效模式并不意味著故障沉默(fail-silent)。本發明還允許高完整性組件在完全不一致遺漏的失效模式。該失效模式意味著各個錯誤的組件能按各個信息的潛在不一致的撤銷行為在任何其輸入通信鏈路和任何其送出通信鏈路上任意地撤銷信息。圖1描述了分布式計算機網絡的例子。圖2描述了同步信息的數據結構的例子。圖3描述了同步信息從終端系統到交換機的流動和在該交換機內執行的同步壓縮功能。圖4描述了同步操作中同步程序的三個迭代。圖5描述了同步的探測團集程序。圖6描述了非同步的探測團集程序。圖7描述了在終端系統中執行的協議狀態機。圖8描述了如該終端系統被假定為信任時在交換機中執行的協議狀態機。圖9描述了如該終端系統被假定為不信任時在交換機中執行的協議狀態機,該交換機正在執行廣泛的監護功能。圖10描述了所述分布式計算機網絡的無錯誤的和無碰撞的啟動情況。圖11描述了所述分布式計算機網絡的無錯誤的啟動碰撞情況。圖12描述了所述分布式計算機網絡在出現錯誤的終端系統101和錯誤的交換機201時的啟動情況。具體實施例方式圖1描述了由5個終端系統101-105和2個交換機201,202組成的分布式計算機網絡。終端系統101-105中各個通過雙向通信鏈路110連接至交換機201并通過另一雙向通信鏈路120連接至交換機202。因此,該分布式計算機網絡提供兩個多余通信信道以供任何兩個終端系統101-105之間通信。終端系統101-105產生被交換機201,202消費的一些同步信息。交換機201,202從接收來自終端系統101-105的一些同步信息去產生一些新的同步信息。一旦終端系統101-105被同步,終端系統101-105會在同一預先排定的瞬間發布該些同步信息。發布是指在終端系統101-105中的內部信號,其顯示信息已準備好被傳輸。信息在通信鏈路110,120上傳輸的實際啟動是可以被延遲的。這種延遲的一個原因是已有另一信息正在傳輸中。該新發布的信息會因此被延遲,直至在通信鏈路110,120上該進行傳輸中的信息完成。除了這些終端系統101-105之外,在分布式計算機網絡中可以存在另一些終端系統,其僅是同步信息的消費者而并不發布同步信息。發布同步信息的終端系統101-105被稱為同步主導裝置。圖2描述了同步信息的數據結構的例子。在一個實現中,集成周期域401被用來顯示在時間觸發的通信排程中的位置。在一個實現中,成員新域402被用來顯示各個信息的發送器。在一個實現中,優先同步域403被用來實現同步信息上的優先機制。在一個實現中,區域同步域404被用來實現相互同步的獨立的組件組不同獨立組中的組件的同步信息會有不同的數值分配給區域同步域404。在一個實現中,類型域405被用來實現不同的同步信息類型同步協議通常使用不同的類型來區分開機時所使用的同步信息和一旦確立組件之外的同步時所執行的同步信息。在一個實現中,透明時鐘域406被用來追蹤在信息橫跨分布式計算機網絡時終端系統和交換機所施加的動態延遲。在一個實現中,引起信息延遲的各個組件會把該延遲加至透明時鐘域406的數值中。圖3描述了分布式計算機網絡中同步信息301-304,380的信息流,從左到右描述了實時的進展。終端系統101-104產生同步信息301-304,把這些信息發送至交換機201。交換機201記錄同步信息301-304的到達時間點并計算這些信息的時間持久點791-794。交換機201從時間持久點791-794計算壓縮同步信息380的發布時間點,然后壓縮同步信息被發送至終端系統101-104。同樣地,交換機201能轉發各個同步信息301-304而非壓縮同步信息380。當這些交換機壓縮同步信息時會在壓縮同步信息的成員新域402中設定一些位元,該些位元與提供同步信息以用來計算壓縮同步信息的發布時間點的終端系統有關聯。術語“持久”與單個信息有關,并以一時間點為參考,接收器能從這一時間點開始使用該信息,以保證接收器不會在這一時間點之后接收到先于所述第一信息發送的另一信肩、ο依照交換機的協議狀態,交換機可阻擋某些同步信息。我們稱這種阻擋同步信息為中央監護功能。除了產生或轉播同步信息外,交換機使用同步信息本身來同步。在進一步描述一實現中,我們將會討論在交換機中執行的協議狀態機(圖8-圖9),其也把壓縮同步信息當作為輸入。描述了僅在一個通信信道(信道包括交換機201)上的信息流。在一個實現中,終端系統101-104同時或依次把同步信息301-304在一些復制的通信信道上發送。圖4描述了在同步運行期間,即一旦成功地將終端系統101-105和交換機201-202的足夠部分(subset)的本地時鐘同步,該同步程序的三個迭代。從左到右描述了實時的進展。在預先排定的時間點,一些終端系統發布同步信息5101-5105。交換機201-202使用該些同步信息將其本地時鐘同步,并各自產生壓縮同步信息5201。然后,交換機201-202的同步信息會被用來將終端系統101-105的本地時鐘同步。終端系統101-105的同步信息5101-5105被用于交換機201-202的時鐘同步以及用于交換機201-202的集成或重新集成。交換機201-202的該些同步信息5201被用于終端系統101-105的時鐘同步以及集成或重新集成。在同步操作期間,該些同步信息是以一段INC的時間作為時間單位排程。終端系統使用變量本地集成周期(LocaUntegrationCycle)循環地點算始于0直至指定最大值的集成周期。終端系統使用本地集成周期(LocanntegrationCycle)值去設定其傳輸的集成幀內的集成周期域401,并去檢查其接收到的集成周期域401。僅在一個通信信道(信道包括交換機201)上的信息流被描述。在一個實現中,終端系統101-105同時或依次把同步信息5101-5105在一些復制的通信信道上發送。圖5描述了同步的探測團集程序。同步的探測團集程序使用本地變量來跟蹤當前有多少終端系統與各自的終端系統同步。在預定的集成幀的排定接收時間點前后的接收窗口RW過期時,終端系統會更新可變本地成員組件(varLocalMembershipComp)。如果接收到的集成幀內的集成周期域401與本地集成周期(LocaUntegrationCycle)的值相配,其會把可變本地成員組件(varLocalMembershipComp)設定成在接收窗口RW期間接收到的集成幀中的最大成員新域402。能獨立地為各個同步狀態(終端系統_嘗試同步狀態1060、終端系統_同步狀態1070、終端系統_穩定狀態1080,見圖7)啟用或停止同步的探測團集機制。如在同步狀態下啟用同步的探測團集機制,則在同步評價時間點SEV更新可變本地成員組件(varLocalMembershipComp)之后,以狀態相關閾值(嘗試同步閾值同步(TentativeSyncThresholdSync)、同步閾值同步(SyncThresholdSync)、或穩定閾值同步(StableThresholdSync))來測試可變本地成員組件(varLocalMembershipComp)。如設定在可變本地成員組件(varLocalMembershipComp)中的位元的數量少于各自的閾值,則測試是成功的,否則就是不成功的。還與終端系統類似的是,交換機在啟用時也可在同步狀態(交換機_嘗試同步狀態2060、交換機_同步狀態2070、以及交換機_穩定狀態2080,見圖8)執行同步的探測團集算法。圖6描述了非同步的探測團集程序。非同步的探測團集的程序使用本地變量可變本地非同步成員計數(varLocalAsyncMembCount)來跟蹤當前有多少終端系統不與各自的組件同步,但是可運行的(從而排除了已關機的終端系統)。該變量可變本地非同步成員計數(varLocalAsyncMembCount)是具有從位元到終端系統的一對一關系的位元向量。能獨立地為各個同步狀態(終端系統_嘗試同步狀態1060、終端系統_同步狀態1070、終端系統_穩定狀態1080)啟用或停止非同步的探測團集機制。如在同步狀態下啟用非同步的探測團集機制,則在非同步評價時間點AEV以狀態相關閾值(嘗試同步閾值非同步(TentativeSyncThresholdAsync)、同步閾值非同步(SyncThresholdAsync)、或穩定閾值非同步(MablelliresholdAsync)來測試可變本地非同步成員計數(varLocalAsyncMembCount)。終端系統在各自的接收窗口RW以外接收到集成幀時會更新可變本地非同步成員計數(varLocalAsyncMembCount),這也被稱為排程外接收。如圖6所示,排程外接收可以是在任何接收窗口RW外接收集成幀(如集成幀5211所描述),或者可以是在接收窗口內接收集成幀,但在接收窗口內接收到的集成幀帶有錯誤的集成周期域401(如集成幀5221所描述)O當終端系統接收到排程外的集成幀時,設定在集成幀的成員新域402中的所有位元也會被設定在可變本地非同步成員計數(varLocalAsyncMembCount)中。在非同步的評價時間點AEV時,評價可變本地非同步成員計數(varLocalAsyncMembCount)。如設定在可變本地成員組件(varLocalMembershipComp)中的位元數量等于或多于各自的狀態相關閾值,則測試是成功的。當可變本地成員組件(varLocalMembershipComp)少于2個(意味著交換機目前僅和單個終端系統同步或根本不和任何終端系統同步)而可變本地非同步成員計數(varLocalAsyncMembCount)至少為1個時,測試同樣是成功的。在所有其他情況下,非同步探測團集程序是不成功的。與終端系統類似,交換機在啟用時也會在同步狀態(交換機_嘗試同步狀態2060、交換機_同步狀態2070、以及交換機_穩定狀態2080)下執行非同步的探測團集算法。然而,非同步的評價時間點AEV會緊接在同步的評價時間點SEV之前。圖7描述了終端系統中執行的協議狀態機。終端系統將非同步狀態和同步狀態區分。終端系統_集成狀態1010、終端系統_等待周期開始狀態1020、終端系統_非同步狀態1030、終端系統_泛濫狀態1040、以及終端系統_等待周期開始_冷啟動狀態1050屬于非同步狀態。終端系統_嘗試同步狀態1060、終端系統_同步狀態1070、終端系統_穩定狀態1080屬于同步狀態。終端系統能通過接收集成幀從非同步狀態進入同步狀態,在這種情況下我們稱從非同步到同步的轉換為集成程序。而且,終端系統能通過成功執行容錯握手而從非同步狀態進入同步狀態。在這第二種情況下,我們談到冷啟動或重設程序。接下來,假設所有的終端系統是時鐘同步主導裝置,我們討論圖7中描述的狀態機。在另一實現中,僅部分終端系統可被設置為時鐘同步主導裝置。未被設置為時鐘同步主導裝置的終端系統僅通過集成程序進入同步狀態,從而在狀態機中僅執行部分轉換。終端碰集成狀杰1010和終端系統等待周期開始狀杰1020終端系統在一開機時就以終端系統_集成狀態1010開始。當終端系統接收到在成員新域402中設有位元數量足夠多的集成幀時,其能從終端系統_集成狀態1010進入同步狀態終端系統_同步狀態1070(轉換1011)。同樣地,如終端系統接收到的集成幀帶有足夠多的位元數量被設定在集成幀中,但帶有的位元數量不夠多到設定轉換到終端系統_同步狀態1070(轉換1011)時,其就能通過終端系統_等待周期開始狀態1020進入終端系統_嘗試同步狀態1060(轉換1012,1021)。當終端系統在終端系統_集成狀態1010中接收到冷啟動應答幀時,其轉換到等待周期開始_冷啟動狀態1050(轉換1013)。當終端系統在一段可設定的時間內接收不到帶有為轉換1011或1012設定的足夠位元數量的集成幀時,該終端系統進入終端系統_非同步狀態1030(轉換1014)。終端系統非同步狀杰1030當終端系統在終端系統_非同步狀態1030時,其在某已被配置的時期內在所有復制信道上傳輸冷啟動幀。只要終端系統接收到帶有為轉換1032或轉換1033設定的足夠位元數量的集成幀(集成程序),就再次允許其從終端系統_非同步狀態進入終端系統_嘗試同步狀態1060或終端系統_同步狀態1070。當終端系統在終端系統_非同步狀態中并接收到冷啟動應答幀時,其轉換到終端系統_等待周期開始_冷啟動狀態(轉換1031)。此外,在終端系統_非同步狀態1030中,終端系統還能夠啟動容錯握手程序。當在終端系統_非同步狀態的終端系統接收到冷啟動幀時,其進入終端系統_泛濫狀態1040(轉換1034),容錯握手可被說成已被啟動。終端系統泛濫狀態1040:在終端系統_泛濫狀態1040中,終端系統等待一段時間CS0,當CSO過時時,終端系統在所有復制的通信信道上傳輸冷啟動應答幀。當終端系統在CSO逾時過期之前接收到冷啟動幀時,則重啟CSO逾時。在終端系統_泛濫狀態1040中,所有集成幀都被丟棄。當CSO逾時過期,終端系統發送冷啟動應答幀時,終端系統會等待接收冷啟動應答幀。如其在預期的到達窗口內接收到冷啟動應答幀,則結論為該容錯握手是成功的,并進入終端系統_等待周期開始_冷啟動狀態1050(轉換1041)。太早接收到的冷啟動應答幀會被丟棄。當終端系統發送冷啟動應答幀,但未在預期的到達窗口中接收到冷啟動應答幀時,結論為該容錯握手是不成功的,并轉換回終端系統_非同步狀態1030(轉換1042)。該容錯握手允許容忍冷啟動幀的啟動/重啟碰撞以及在出現錯誤的組件時啟動。圖10-圖12描述了這兩種情況。終端碰m^mmm^7令啟云加犬杰1050在終端系統_等待周期開始_冷啟動狀態1050中,終端系統等待冷啟動應答逾時CAO(見圖10、圖11)。當終端系統在CAO過時前接收到冷啟動應答幀時,重啟CAO逾時。當終端系統接收到冷啟動幀時,終端系統會轉換到終端系統_泛濫狀態1050,并啟動容錯握手(轉換1052)。當CAO逾時過期時,終端系統轉換到終端系統_嘗試同步狀態1060(轉換1051)。終端系統嘗試同步狀杰1060:當該些探測團集算法中的任一算法被啟用并且成功返回時,終端系統會轉換到終端系統_非同步狀態1030(轉換1063)。當終端系統接收到冷啟動幀時,其轉換到終端系統_泛濫狀態1040(轉換1064),并啟動容錯握手。當終端系統接收到冷啟動應答幀時,其轉換到終端系統_等待周期開始_冷啟動狀態1050(轉換1065)。當設定在用于同步的探測團集算法的可變本地成員組件(varLocalMembershipComp)變量中的位元數量增長超過可配置閾值時,則終端系統轉換到終端系統_同步狀態1070(轉換1062)。當終端系統在終端系統_嘗試同步狀態1060停留某可配置數目的集成周期INC時,如可設置的旗標已被設定的話,終端系統可轉換到終端系統_穩定狀態1080。終端系統同步狀杰1070當探測團集算法中的任一個被啟用并且成功返回時,終端系統能被設置成轉換到終端系統_非同步狀態1030(轉換107或終端系統_集成狀態1010(轉換1072)。當終端系統接收到冷啟動應答幀時,其轉換到終端系統_等待周期開始_冷啟動狀態1050(轉換1074)。當終端系統在終端系統_同步狀態1070停留某可配置數目的集成周期INC時,如可設置旗標被設定,終端系統可轉換到終端系統_穩定狀態1080。終端系統穩定狀態1080當非同步的探測團集算法被啟用并且成功返回時,終端系統轉換到終端系統_集成狀態1010(轉換1081)。而且,當同步的探測團集算法被啟用并且在某可配置數目或順序的集成周期INC中成功返回時,終端系統也轉換到終端系統_集成狀態1010(轉換1081)。當終端系統接收到冷啟動應答幀時,其轉換到終端系統_等待周期開始_冷啟動狀態。圖8描述了如假定終端系統是被信任,在交換機中執行的協議狀態機。這種情況下的交換機狀態機與終端系統狀態機是非常相似的。在一個實現中,終端系統和交換機的狀態機是統一的,以致能通過設定來選擇終端系統和交換機的行為。交換機集成狀態2010和交換機等待周期開始狀態2020交換機狀態機在一開機時就以交換機_集成狀態2010開始。當交換機接收到在成員新域402中設有位元數量足夠多的集成幀時,其能從交換機_集成狀態2010進入同步狀態交換機_同步狀態2070(轉換2011)。而且,如交換機接收到的集成幀帶有足夠多位元數量被設定在集成幀中,但位元數量不夠多到設定成轉換到交換機_同步狀態2070(轉換2011),交換機就能通過交換機_等待周期開始狀態2020進入交換機_嘗試同步狀態2060(轉換2012,2021)。當交換機在一段可設定時段內沒有接收到帶有為轉換2011或2012而設定的足夠位元數量的集成幀時,交換機進入交換機_非同步狀態2030(轉換2013)。交換機非同步狀態2030:只要交換機接收到帶有為轉換2032或轉換2033而設定的足夠位元數量的集成幀,就允許其從交換機_非同步狀態進入交換機_嘗試同步狀態2060或交換機_同步狀態2070(集成程序)。交換機嘗試同步狀杰2060:當探測團集算法中的任一個被啟用并且成功返回時,交換機會轉換到交換機_非同步狀態2030(轉換2063)。當設定在用于同步的探測團集算法中的可變本地成員組件(varLocalMembershipComp)變量中位元數量的增長超過可配置的閾值時,交換機轉換到交換機_同步狀態2070(轉換206。當交換機在交換機_嘗試同步狀態2060停留某可配置數目的集成周期INC時,如可設置旗標已被設定,交換機就可轉換到交換機_穩定狀態2080(轉換2061)。交換機同步狀杰2070當非同步的探測團集算法被啟用并且成功返回時,交換機轉換到交換機_集成狀態2010(轉換2072)。當同步的探測團集算法被啟用并且成功返回時,交換機依交換機的設定而轉換到交換機_集成狀態2010(轉換207或交換機_嘗試同步狀態2060(轉換2073)。當交換機在交換機_同步狀態2070停留某可配置數目的集成周期INC時,如可設置旗標已被設定,交換機就可轉換到交換機_穩定狀態2080(轉換2071)。在交換機_同步狀態2070中,交換機不會轉發冷啟動幀。交換機穩定狀態2080當非同步的探測團集算法被啟用并且成功返回時,交換機轉換到交換機_集成狀態2010(轉換2081)。而且,當同步的探測團集算法被啟用并且在某可配置數目或順序的集成周期INC中成功返回時,交換機也轉換到交換機_集成狀態2010(轉換2081)。在交換機_穩定狀態2080中,交換機不會轉發冷啟動幀。圖9描述了如假定終端系統不被信任,在交換機中執行的協議狀態機。交換機狀態機又與終端系統狀態機非常相似。在一個實現中,終端系統和交換機的狀態機是統一的,以致能通過設定來選擇終端系統和交換機的行為。當交換機在交換機_非同步狀態2030時,與不信任的終端系統一起運行的交換機轉播冷啟動幀并阻擋所有其它狀態的冷啟動幀。當交換機在交換機_非同步狀態2030時,只要成員新域402的值足夠高,或者當交換機在交換機_冷啟動應答啟用狀態2040時,與不被信任的終端系統一起運行的交換機會轉播冷啟動應答幀并阻擋所有其它狀態的冷啟動應答幀。如交換機帶有轉換,而該轉換在其協議狀態機中被限定為使用該集成幀或該集成幀被用于時鐘同步程序的話,與不被信任的終端系統一起運行的交換機會轉播在交換機_集成狀態2010、交換機_非同步狀態2030、交換機_等待進入狀態2040、交換機_同步狀態2070、以及交換機_穩定狀態2080中的集成幀。所有其它集成幀都被阻擋。交換機會阻擋不是用于交換機協議狀態機的集成幀。例如,這種集成幀可以是由單個錯誤的終端系統發送的錯誤的集成幀。交換機集成狀態2010:交換機狀態機在一開機時就以交換機_集成狀態2010開始。當交換機接收到在成員新域402中設有位元數量足夠多的集成幀時,交換機能從交換機_集成狀態2010進入同步狀態交換機_同步狀態2070(轉換2011)。當交換機在一段可設定的時段內沒有接收到帶有足夠為轉換2011或2012而設定的位元數量的集成幀時,就進入交換機_非同步狀態2030(轉換2013)。交換機非同步狀杰2030:只要交換機接收到帶有為轉換2033而設定的足夠位元數量的集成幀,就允許交換機從交換機_非同步狀態進入交換機_同步狀態2070(集成程序)。當交換機接收到冷啟動幀或足夠數量的冷啟動應答幀時,就轉換到交換機_冷啟動應答啟用狀態2040(轉換2034)。交換機冷啟動應答啟用狀杰2040在可配置的逾時過期后,交換機轉換到交換機_等待進入狀態2050(轉換2041)。交換機等待講入狀杰2050:在交換機_等待進入狀態2050中,交換機等待至接收到在成員新域402中設有位元數量足夠多的集成幀時轉換到交換機_同步狀態2070(轉換2051)。如交換機在可配置的逾時時間內未接收到這種集成幀,交換機就轉換回交換機_非同步狀態2030(轉換2052)。交換機同步狀杰2070當非同步的探測團集算法被啟用并且成功返回時,交換機轉換到交換機_集成狀態2010(轉換2072)。當同步探測團集算法被啟用并且成功返回時,交換機轉換到交換機_集成狀態2010(轉換2072)。當交換機在交換機_同步狀態2070停留某可配置數目的集成周期INC時,如可設置旗標被設定,交換機就可轉換到交換機_穩定狀態2080(轉換2071)。交換機穩定狀態2080:當非同步的探測團集算法被啟用并且成功返回時,交換機轉換到交換機_集成狀態2010(轉換2081)。而且,當同步的探測團集算法被啟用并且在某可配置數目或順序的集成周期INC內成功返回時,交換機也轉換到交換機_集成狀態2010(轉換2081)。圖10描述了分布式計算機網絡的無錯誤的和無碰撞的啟動情況,從左到右描述了實時的進展。描述了僅在一個通信信道(信道包括交換機201)上的信息流。本發明區分了不同類型的信息冷啟動幀3101、冷啟動應答幀4102-4105和集成幀5101-5105。集成幀在同步操作期間使用,也就是一旦成功確立同步時。冷啟動幀用于啟動容錯握手階段。冷啟動應答幀用于確認和結束容錯握手程序并在容錯握手階段之外接收到時用于進行同步。圖10描述了以接受冷啟動幀3101開始,到接收到冷啟動應答幀4201結束的容錯握手FTH。各個終端系統101-105會發送冷啟動應答幀至其接受的冷啟動幀。終端系統會接受在FTH期間接收到發送自其它終端系統的所有冷啟動幀(終端系統能被設置成對自己的冷啟動幀作出反應或不作出反應),并會重啟CS0。當冷啟動偏移CSO過時時,終端系統會發送冷啟動應答幀。當終端系統接收來自交換機的冷啟動應答幀時,其結論是容錯握手FTH是成功的并朝同步狀態前進。在FTH期間僅這些回應的冷啟動應答幀被使用。在FTH期間太早接收到的冷啟動應答幀會被丟棄。當終端系統沒有接受到冷啟動應答幀回來至其自己發送的冷啟動應答幀時,其結論是容錯握手FTH是不成功的并且進入非同步狀態。圖10中的情況始于終端系統101發送冷啟動幀3101。在一個實現中,冷啟動幀被交換機201轉播回到所有終端系統101-105。轉播時交換機就在與冷啟動幀各自的發送器有關的成員新域402中設定位元,在這一情況是終端系統101,并清除所有其他位元。這意味著各個接收終端系統能通過成員新域402識別出冷啟動幀的發送器。在這一情況中,各個終端系統把終端系統101識別為冷啟動幀3101的原本發送器。在一個實現中,所有終端系統101-105被設置成其不會對自己的冷啟動幀(即各個終端系統原本發送的冷啟動幀)作出反應。終端系統102-105會啟動冷啟動偏移逾時CSO0當逾時過期時,終端系統102-105會發送冷啟動應答幀4102-4105。在一個實現中,交換機壓縮冷啟動應答幀4102-4105并產生新的冷啟動應答幀4201。然后壓縮冷啟動應答幀4201被發送至終端系統。終端系統101-105—接收到冷啟動應答幀4201就會啟動冷啟動應答逾時CA0。當逾時過期時,終端系統101-105會進入同步狀態并發送集成幀5101-5105。在另一個實現中,冷啟動應答幀不被壓縮,但交換機201-202轉發所有冷啟動應答幀。圖11描述了無錯誤的帶碰撞的啟動情況,從左到右描述了實時的進展。由于容錯的原因,多個終端系統101-105被設置成提供同步信息,以致就算在部分終端系統有失效的情況下,那些無錯誤的終端系統仍會產生同步信息。特別是,多個終端系統101-105可被設置成提供冷啟動信息,冷啟動信息被用于初始同步。由于這些信息是在還未確立同步信息時所發送的第一批同步信息,所以在我們稱為碰撞區域(collisiondomain)⑶的間隔期間,兩個或更多個終端系統可決定在大體相同的時間點發送其冷啟動幀。原則上,有可能像初始同步事件般地使用碰撞。然而,在這種情況下,由于兩個不同的終端系統101-105可決定使用不同的冷啟動幀來同步,所以該初始同步是碰撞區域CD的直接函數。在存儲和轉發網絡中,碰撞區域⑶是很大的。因此,為了提高初始同步,本發明指定了決定性地解決碰撞情況的機制。圖11中描述的情況描述了如何在無錯誤的情況下解決碰撞的情況的例子。所述情況始于終端系統102發送冷啟動幀3102。在冷啟動幀開始傳輸后的碰撞時段⑶之內,終端系統101也開始發送冷啟動幀3101,引起碰撞。冷啟動幀3102是交換機201-202轉播及終端系統101-105接收到的第一個冷啟動幀。終端系統101,103-105會使用該冷啟動幀3102啟動冷啟動偏差逾時CSO(終端系統102被設置成不使用其自己的冷啟動幀)。然而,在接收到冷啟動幀3102后,冷啟動幀3101由交換機201-202轉播到終端系統101-105。終端系統102-105會使用冷啟動幀3102來重設冷啟動偏差逾時CS0。因為終端系統101也被設置成不對自己的冷啟動幀作出反應,所以其不會對冷啟動幀3101作出反應。因此,終端系統101是第一個過時并發送冷啟動應答幀4101的終端系統。因為終端系統102-105冷啟動偏差逾時CSO發生得較后,其接著發送其冷啟動應答幀4102-4105。交換機首先處理來自終端系統101的冷啟動應答幀4101,和把所產生的冷啟動應答幀4201發送回終端系統101-105。僅終端系統101會通過啟動冷啟動應答偏差逾時CAO對該冷啟動應答幀作出反應。終端系統102-105不會使用冷啟動應答幀4201,因為在其容錯握手FTH中是太早接收到冷啟動應答幀4201。一旦終端系統101-105接收到冷啟動應答幀4211時,所有終端系統101-105會接受這冷啟動應答終端系統102-105接受是因為其時間上符合其容錯握手FTH階段,終端系統102接受是因為其已經結束其FTH。圖12描述了在啟動期間包括錯誤的終端系統101和錯誤的交換機201的失效情況,從左到右描述了實時的進展。該情況始于錯誤的終端系統101把冷啟動幀3101僅發送至交換機201(正確的終端系統總會在所有復制信道上發送同步幀)。錯誤的交換機201把冷啟動幀3101僅轉播到終端系統103(正確的交換機總會把同步發送至所有的終端系統)。終端系統103接收到冷啟動幀3101并通過設定冷啟動偏差逾時CSO來啟動其容錯握手。當CTO過期時,終端系統103在所有復制信道上發送冷啟動應答幀。從而錯誤的交換機201和正確的交換機202接收到冷啟動應答幀4103。正確的交換機202會把冷啟動應答幀4103作為冷啟動應答幀4202轉播到所有的終端系統101-104。終端系統103會接收到該與其容錯握手FTH相配的冷啟動應答幀4202,并其結論是該FTH是成功的。終端系統102和104在FTH之外接收到冷啟動應答幀,從而用其同步。從而所有正確的終端系統會通過接收冷啟動應答幀4202來啟動冷啟動應答偏差CA0,并會進行到同步操作。權利要求1.用于將分布式計算機網絡中的本地時鐘同步的方法,其中所述計算機網絡由多個終端系統和至少兩個交換機組成,各個終端系統通過雙向通信鏈路連接至至少兩個交換機,并且已設置的部分終端系統和交換機以同步狀態機的形式執行該方法,其特征在于a)所述狀態機使用至少三種不同的幀類型(冷啟動幀類型、冷啟動應答幀類型、和集成幀類型),以及b)所述狀態機中的狀態可被說成是屬于非同步狀態的一組或屬于同步狀態的一組,以及c)被設置成同步主導裝置的所有終端系統在所述其中一個非同步狀態中周期性地發送冷啟動幀,以及d)被設置為同步主導裝置的所有終端系統在接收到冷啟動幀之后一段可配置的第一逾時(CSO)時間通過在所有復制的通信通道上發送冷啟動應答幀以對接收到的冷啟動幀作出反應,條件是只要終端系統處于同步狀態機為冷啟動幀限定的轉換的狀態中,并且在所述冷啟動應答發送之前接收到連續的冷啟動幀時,重設所述第一逾時(CSO),以及e)所有被設置成同步主導裝置的終端系統通過啟動可配置的第二逾時(CAO)來對接收到的冷啟動應答幀作出反應,條件是該些終端系統還未執行所述第一逾時(CSO),并且在所述第二逾時(CAO)過期時進入同步狀態。2.按照權利要求1所述的方法,其特征在于終端系統不會對自己的冷啟動幀作出反應。3.按照權利要求1或2所述的方法,其特征在于在其中一個同步狀態中的被設置成同步主導裝置的終端系統會周期性地發送集成幀,所述集成幀被那些已經在同步狀態中的終端系統用于時鐘同步,并被那些在其中一個非同步狀態中的終端系統用于集成。4.按照權利要求1至3中其中一項權利要求所述的方法,其特征在于信息發送器由設定在同步信息中的位元識別。5.按照權利要求1至4中其中一項權利要求所述的方法,其特征在于所述終端系統和/或交換機在至少其中一個同步狀態中執行同步的探測團集算法。6.按照權利要求5所述的方法,其特征在于所述同步的探測團集算法通過以下方法實現組件(終端系統或交換機)監測與所述組件同步的終端系統,并且如與所述組件同步的終端系統的數量低于在某個數量的通信周期的閾值,則該組件進入非同步狀態。7.按照權利要求6的方法,其特征在于對每個同步狀態能獨立地設定用于同步的團集探測算法的閾值。8.按照權利要求1至7中任一權利要求所述的方法,其特征在于所述終端系統和/或交換機在至少一個同步狀態中執行非同步的團集探測算法。9.如權利要求8所述的方法中,其特征在于實現非同步的團集探測算法,以致組件(終端系統或交換機)監測不與所述組件同步但可運行的終端系統,并且如不與所述組件同步的終端系統的數量增長至超過在某個數量的通信周期中的狀態相關閾值,則該組件進入非同步狀態。10.按照權利要求9所述的方法,其特征在于對每個同步狀態能獨立地設定用于非同步的團集探測算法的閾值。11.按照權利要求1至10中其中一項權利要求所述的方法,其特征在于終端系統101-105實現以下的方法去點算未同步的組件通過在某段長過一個集成周期INC的時間,記錄在排程外接收到的集成幀組中的被設定在同步信息中的位元(成員新域40,并且不與所述組件同步的終端系統的數量是被設定在所記錄的數據結構中的位元的位元和。12.按照權利要求1至11中其中一項權利要求所述的方法,其特征在于當所述組件是在可配置的時間中處于同步狀態時,從另一同步狀態(同步狀態)進入其中一個同步狀態(穩定狀態)。13.按照權利要求1至12中其中一項所述的方法,其特征在于當同步的團集探測機制顯示所述同步的終端系統的數量少于在一段可配置數目的順序集成周期(INC)而非依第一顯示時所設定的狀態相關的閾值,終端系統或交換機從其中一個同步狀態(穩定狀態)轉換到其中一個非同步狀態。14.按照權利要求1至13中其中一項權利要求所述的方法,其特征在于所述交換機是能根據狀態來設定的,以僅轉播帶有可設置的某些類型組的信息。15.用于按照權利要求1至14中其中一項權利要求所述的方法的終端系統。16.用于按照權利要求1至14中其中一項權利要求所述的方法的交換機。17.由多個按照權利要求15所述的終端系統組成的網絡,其中各個終端系統通過雙向通信鏈路連接至至少兩個按照權利要求16所述的交換機。全文摘要本發明涉及用于將分布式計算機網絡中的本地時鐘同步的方法,其中所述計算機網絡由多個終端系統和至少兩個交換機組成,各個終端系統通過雙向通信鏈路連接至至少兩個交換機,并且已設置的部分終端系統和交換機以同步狀態機的形式執行該方法,其特征在于a)所述狀態機使用至少三種不同的幀類型(冷啟動幀類型、冷啟動應答幀類型、和集成幀類型),以及b)所述狀態機中的狀態可被說成是屬于非同步狀態的一組或屬于同步狀態的一組,以及c)被設置成同步主導裝置的所有終端系統在所述其中一個非同步狀態中周期性地發送冷啟動幀,以及d)被設置為同步主導裝置的所有終端系統在接收到冷啟動幀之后一段可配置的第一逾時(CSO)時間通過在所有復制的通信通道上發送冷啟動應答幀以對接收到的冷啟動幀作出反應,條件是只要終端系統處于同步狀態機為冷啟動幀限定的轉換的狀態中,并且在所述冷啟動應答發送之前接收到連續的冷啟動幀時,重設所述第一逾時(CSO),以及e)所有被設置成同步主導裝置的終端系統通過啟動可配置的第二逾時(CAO)來對接收到的冷啟動應答幀作出反應,該些終端系統還未執行所述第一逾時(CSO),并且在所述第二逾時(CAO)過期時進入同步狀態。文檔編號H04J3/06GK102282787SQ200880130705公開日2011年12月14日申請日期2008年6月2日優先權日2008年6月2日發明者岡瑟·鮑爾,威爾弗里德·施泰納,布倫達·霍爾,邁克爾·珀利什,馬蒂亞斯·韋希特爾申請人:Tttech電腦技術股份公司,霍尼韋爾國際公司