IEEE1588V1-V2理解

IEEE 1588協議簡單理解

? IEEE 1588 是一個精密時間協議 (PTP),用于同步計算機網絡中的時鐘。 在局域網中,它能將時鐘精確度控制在亞微秒范圍內,使其適于測量和控制系統。 IEEE 1588 標準為時鐘分配定義了一個主從式架構,由一個或多個網段及一個或多個時鐘組成。
? TSN 網絡中時間同步協議使用 IEEE 802.1AS 協議,它基于 IEEE 1588 協議進行精簡和修改,也稱為 gPTP 協議。
? IEEE 1588 協議簡稱精確時鐘協議 PTP(Precision Timing Protocol),它的全稱是“網絡測量和控制系統的精密時鐘同步協議標準”(IEEE 1588 Precision Clock Synchronization Protocol)。其工作的基本原理,是通過主從節點之間進行同步數據幀的發送,記錄數據幀的發送時間和接收時間信息進行,并且將該時間信息添加到該數據幀中。從節點獲取這些時間信息,并計算從節點本地時鐘與主時鐘的時間偏差和網絡節點之間的傳輸延時,對本地時鐘進行糾正,使之與主節點時鐘同步。一個 PTP 網絡只能存在一個主時鐘。
? PTP 協議主要分為兩大部分來實現時鐘同步功能:
? 1、建立同步體系:
? 協議使用最佳主時鐘算法(Best Master Clock Algorithm,BMCA),通過選取主時鐘,建立主從拓撲關系,進而在整個 PTP 網絡中建立起同步體系。
? 2、同步本地時鐘:
? 協議使用本地時鐘同步算法(Local Clock Synchronization Algorithm,LCS),通過 PTP 數據報文在網絡主從節點之間的交換,計算各從節點本地時鐘與主時鐘間的時間偏差,調整本地時鐘,使之與主時鐘同步。

IEEE 1588v1

? 整個 PTP 網絡內的時鐘可按照其上 PTP 通信端口的數目來劃分成普通時鐘(Ordinary Clock,OC)與邊界時鐘(Boundary Clock,BC):普通時鐘只存在一個,而邊界時鐘則存在多個。一般在確定性不高的網絡節點處使用邊界時鐘,例如交換機或者路由器一般用作邊界時鐘,如下圖所示。在每個端口上,PTP 通信都是獨立進行的。

邊界時鐘的引入.png

? 1、邊界時鐘:
? 邊界時鐘上只允許存在一個從端口,與上級節點的主端口通信,將其本地時鐘與級主端口進行同步。其余端口為主端口,與下游節點的從端口進行通信。邊界時鐘可以連接不同的網絡協議。
? 2、同步體系建立流程:
? (1)初始狀態,各個節點端口會在指定的時間內偵聽網絡中的 Sync 數據幀; 若接收到 Sync 數據幀,節點端口將根據最佳主時鐘算法決定端口狀態。若沒有收到 Sync 數據幀,該節點狀態變更為 Pre_Master,并將自己假定為主時鐘節點。此時節點端口狀態表現為主時鐘,但是并不發送 Sync 幀。
? (2)端口狀態在一定時間內保持 Pre_Master:
若在端口指定時間內接收到 Sync 數據幀,則該端口狀態由最佳主時鐘算法決定。
若判定端口為主時鐘,則將周期性地發送 Sync 幀;若判定為從時鐘,則接受 Sync 幀,并計算偏差,糾正本地時鐘。
? 若在該時間段內端口沒有收到 Sync 數據幀,則將狀態變更為主時鐘,并且開始定時發送 Sync 數據幀。
? (3)主時鐘和從時鐘的狀態隨著時鐘性能與運行狀態的變化而變化。下圖展示了 BMCA 中狀態轉移。

時鐘同步狀態轉移.png

? 3、時間同步建立流程:

? 如下圖PTP同步原理

PTP同步原理.png

? 如圖所示,Master為網路中的同步時鐘源,可以認為其與UTC或者GPS時無限接近。Slave為網絡中需要被同步設備。假設從Master到Slave的路徑符合對稱路徑,那么路徑上的延時我們設Delay,然后設備Master和設備Slave之間待同步的時間差值為Offset,即Slave比Master在同一時刻慢Offset。

T2=Offset+Delay+T1

T4=T3-Offset+Delay

? 可以算出

Delay=[(T2-T1)+(T4-T3)]/2

Offset=[(T2-T1)-(T4-T3)]/2

? Slave設備根據算出的Offset即可以進行本地時鐘校準。但是1588V1協議依賴于鏈路的對稱性,即Master到Slave與Slave到Master時延一致,這在實際網絡狀況下很難滿足,故需要額外的不對稱算法進行鏈路延時差計算和補償校準。

IEEE 1588v2

? IEEE1588V2在IEEE1588V1版本上做了改進和擴展。主要包括:

? 1.新增點到點路徑延時測量的獨立消息模式。

點對點延時測量原理.png

端口 A 與端口 B 間的路徑延遲時間 Delay 為
Delay=(tab+tba)/2

Delay=(T4-T1-(T3-T2))/2

? 在 PTPv1 中,平均路徑延遲測量時通過 Sync 幀與 Delay_Req 幀配合使用的,但是在 PTPv2 中卻不需要 Sync 幀的參與,僅通過 PDelay_Req 數據幀系列來進行測量。這是一個獨立的延遲測量過程,不依賴 Sync 幀和同步體系建立的參與,使得測量精度有所提高,并且可以經過多次測量求得平均值得到更為準確的路徑延遲。另一方面,如果網絡中的同步體系發生改變,這時不需要重新計算該節點間的路徑延遲,直接使用之前已測得的延遲數據,大大增強了協議執行的效率,使得協議更為方便靈活。在PTPv2 中,利用 PDelay_req 數據幀系列已成為主要的測量路徑延遲方法。
? 2、新增透明時鐘模型
? 在 PTPv1 中,網絡中間節點均采用邊界時鐘模型。與網絡中唯一的主時鐘,即一個普通時鐘連接的邊界時鐘,其上唯一的從端口接收主節點發送的同步數據幀,與主時鐘實現同步,其余的主端口和與之相連的其他邊界時鐘發送同步數據幀,最后同步到網絡邊緣的普通時鐘,這樣便實現了整個網絡的時間同步。這種方法雖然可行,但是由于這種方式是逐級同步,所以距離主時鐘越遠的節點,同步精度越低。
? 當網絡中的一些節點不需要進行時鐘同步或者不具備同步功能時,便可采用透明時鐘模型。透明時鐘不像 BC/OC 模式那樣,需要每個節點都與主時鐘進行同步,它的端口只對協議數據幀進行轉發,并將計算出的數據幀滯留時間添加在校正域中。這種方式將 PTP 數據幀的處理變得更為簡單,降低了網絡中 PTP 協議的實施難度,同時提高了各從節點的同步精度。
? 透明時鐘有模型兩種:端對端透明時鐘,和點對點透明時鐘。
? (1)端對端(E2E)透明時鐘
? E2E 透明時鐘對網絡中普通數據幀不做任何處理,僅進行轉達讓其正常通過。但是對于 PTP 事件數據幀,則將他們從接收端口到發送端口間的駐留延遲時間累加到數據幀中的修正域,用以彌補 PTP 數據幀在經過其自身所帶來的延遲誤差。
? (2)點對點(P2P)透明時鐘
? 點對點(P2P)透明時鐘只轉發特定的 PTP 報文,包括 Sync 幀、Follo_Up 幀和Announce 幀等。并且會采用 Pdelay_Req 數據幀系列計算每個端口與所連接的端口間的路徑延遲時間,再與端口間延遲時間合并添加到時間修正域,來補償數據幀從源端口到點對點透明時鐘出端口的時間延遲。
? 3、增加單步時鐘模型
? 單步時鐘模型解決了 Follow_Up 幀與 Sync 幀匹配問題。PTP 協議基本的同步過程采用雙步模式,即主時鐘節點發送 Sync 幀,和帶有 Sync 幀發送時間的Follow_Up幀。這種方式雖然能提高 Sync 幀時間戳標記的精度,提高同步效果,但是在網絡負載較大的情況下,數據幀很有可能發生丟失或者阻塞,造成兩種數據幀的匹配出現差錯。
? 在 PTP 數據幀中設置一個標志,來使用單步模式,將 Sync 幀的發送時間與數據幀中的時間標簽的差值作為傳輸延遲,并將其累加到修正域中。這樣主時鐘便通過單獨的 Sync 幀而不需要 Follow_Up 進行時間的同步校準工作。
? 單步模式可以減少網絡流量,提高網絡負載較大時同步的可靠性。單步模式需要額外的輔助硬件,來幫助計算時間修正值并將其累加到校正域中,這對網絡的實時性有比較高的要求。

BMCA

? BMCA,即最佳主時鐘算法,它選擇網絡中性能最佳的時鐘作為主時鐘,并以
此建立網絡拓撲,生成同步體系,進而實現時鐘同步功能。
? 最佳主時鐘的選取是通過Announce幀在網絡中各節點的傳輸,比較各個節點上的時鐘屬性(比如是否將時鐘指定為主或者從時鐘),用于標識精度的時鐘等級,以及用于標識時鐘源類型的時鐘類型(比如銣鐘、銫鐘等),還有表示時鐘偏移、方差等的時鐘特性、時鐘地址以及時鐘端口號等特征來選擇最佳主時鐘,當其他時鐘特征都一樣是,協議會將端口號最小的節點時鐘作為主時鐘。IEEE 1588協議會以主時鐘節點作為根節點形成樹形拓撲結構,并且為避免生成回路,那些競爭失敗的節點端口,協議將他們定義為被動或者禁用狀態。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容