網路時鐘
出自 MBA智库百科(https://wiki.mbalib.com/)
網路時鐘(Network Clock,NCLK)
目錄 |
什麼是網路時鐘[1]
網路時鐘是一個邏輯時鐘。它用於時間戳的賦值。它保證所產生的時間戳是唯一的,並且以單調遞增的順序賦值。時鐘也可跳過若幹中間時間戳,轉到某一特定時間,但不能倒轉。為了保證在全網範圍內時間戳值是唯一的,在時間戳的低位端接上場所編號。
為了保證併發控制的有效運行,各場所的時鐘應儘可能地同步。為此,系統維持一個實時時鐘。各場所的實時時鐘是同步的。
邏輯時鐘總是超前實時時鐘一定時間。其工作過程是這樣的:實時時鐘以一定的最小時間間隔離散地打點行進。當它每次打點到某一時刻時,邏輯時鐘也跟著跳到該時刻。從實時時鐘每次打點起,邏輯時鐘以更小的時間增量給時間戳賦值。因此,每場所的邏輯時鐘與實時時鐘之差為上次實時時鐘打點以後的時間戳個數。如果邏輯時鐘的增量定的足夠小,為實時時鐘兩次打點間隔的很小一部分,那麼兩種時鐘可以非常接近。以下說到時鐘都是指邏輯時鐘。
各場所的邏輯時鐘是這樣協調的:當每一消息發送時它被本場所按當時邏輯時鐘賦以一個時間戳。接收場所讀到此時間戳時其本地邏輯時鐘便至少跳到此相同的值。利用這一技術,可以保證;若一個消息在邏輯上取決於另一個消息,則前者時間戳將大於後者。
傳統網路時鐘同步演算法[2]
在傳統網路中,已經提出了多種網路同步機制,C/S模式是主要的時鐘同步模式。客戶端產生時鐘同步請求消息,伺服器回應時鐘同步應答消息,通過測試這兩個消息的發送和接收時間來估計兩者的時間偏差,獲得相對較精確的時鐘同步。採用上述思想的典型例子就是網路時間協議NTP,被網際網路用作網路時鐘同步協議,NTPv4精確度已達到毫秒級。實現方案是在網路上指定若幹時鐘源伺服器,為用戶提供授時服務,並且這些伺服器之間能夠相互比較校正,以提高準確度。
NTP協議採用層次型樹型結構,整個體繫結構中有多棵樹,每棵樹的父節點都是一級時間基準伺服器。NTP協議要將時間信息從這些一級時間伺服器傳輸到分散式系統的二級時間伺服器成員和客戶端,第三級時間伺服器從第二級伺服器獲得時間信息,以此類推,伺服器級數越小,越接近一級伺服器,時間就越準確。由於NTP協議設計對象為網際網路和電腦,設計重點為協議的可靠性和同步精度。該協議要求能夠始終占用CPU資源,以便它可以執行連續的操作,使時鐘一直保持同步,沒有考慮能耗和計算能力問題,無法直接應用於無線感測器網路中。
在無線感測器網路應用中,節點對功耗有嚴格的要求,並且要求儘可能保持較小的外形尺寸和低廉的成本使其能夠被大量部署,其部署環境經常是常人難以接近的惡劣環境,這使得部署後的維護通常是不可能的;顯然將GPS和NTP用於無線感測器網路的時間同步是不可取的。分散式系統中對時間同步也有大量研究,但這些方法都沒有考慮感測器網路的特點,需要較大的資源開銷,所以不適合感測器網路的時間同步。鑒於時間同步在無線感測器網路應用中的基礎性作用,必須研究適用於無線感測器網路的時間同步演算法。