在網(wǎng)絡(luò)中可以使用幾種時間同步機制。最常見的標(biāo)準(zhǔn)是網(wǎng)絡(luò)時間協(xié)議 (NTP)和精確時間協(xié)議 (PTP)。 NTP(Network TimeProtocol,網(wǎng)絡(luò)時間)是由美國德拉瓦大學(xué)的David L. Mills教授于1985年提出,由時間協(xié)議、ICMP時間戳消息及IP時間戳選項發(fā) 展而來,主要是為了實現(xiàn)亞毫秒范圍內(nèi)的精度而開發(fā)的,并被廣泛用于網(wǎng)絡(luò)計時。
但由于 NTP 是是基于無連接的IP協(xié)議和UDP協(xié)議的應(yīng)用層協(xié)議,即基于軟件時間戳 ,達(dá)到以毫秒精度同步時鐘,因此對于某些需要高級同步的工業(yè)應(yīng)用來說,精度度可能達(dá)不在要求。因此為了滿足更高精確時鐘需求,出現(xiàn)了精確時間協(xié)議 (PTP)。 什么是 PTP?精確時間協(xié)議 (PTP) 是一種基于網(wǎng)絡(luò)的時間同步標(biāo)準(zhǔn),旨在通過基于數(shù)據(jù)包的網(wǎng)絡(luò)從時鐘源分配精確的時間和頻率。PTP使用硬件時間戳,并考慮了同步時間時的設(shè)備延遲。因此,PTP可以使交換機和路由器能夠以比 NTP 更高的精度提供同步。 PTP也稱為IEEE 1588。1588分為1588v1和1588v2兩個版本,1588v1只能達(dá)到亞毫秒級的時間同步精度,而1588v2可以達(dá)到亞微秒級同步精度。注意:后文我們說PTP一般指1588v2。2020年6月正式發(fā)布了 IEEE1588-2019 D2.1版本。據(jù)了解,1588v3應(yīng)該還沒有。
PTP 時鐘類型PTP主要支持如下幾種時鐘類型:普通時鐘(Ordinary Clock,OC),邊界時鐘(Boundary Clock, BC),透明時鐘(Transparent Clock,TC)。其中 透明時鐘又可分為E2E(End to End)透明時鐘,也叫E2E-TC;以及P2P(Pear to Pear)透明時鐘,也叫P2P-TC。時鐘類型如下圖所示。 - 邊界時鐘BC (Boundary Clock):一種網(wǎng)絡(luò)設(shè)備,它作為其主設(shè)備的從設(shè)備和作為其從設(shè)備的主設(shè)備。
- 普通時鐘 OC(Ordinary Clock):作為主時鐘或從時鐘運行的時鐘。在從屬的情況下,時鐘被同步的端點(通常是主機/服務(wù)器)。
- 透明時鐘TC(Transparent Clock):計算PTP事件報文的停留時間并在轉(zhuǎn)發(fā)消息之前更新事件消息的校正字段(CF)的設(shè)備。端口不處于任何特定狀態(tài)。
同時,在PTP中還包括了最高級時鐘GMC(Grandmaster Clock)和主時鐘 MC(Master Clock)。GMC是來源于精確時鐘的參考時間源,例如 GNSS 驅(qū)動時鐘(即 GPS、GLONASS、GALILEO)等。而MC作為主時鐘運行的時鐘,其時序能力從時鐘鏈一直到 GMC。它通常用作 BC 上的端口,連接到作為從屬運行的主機。邊界時鐘 (BC) 在連接到主時鐘的端口上充當(dāng)輔助時鐘,并將時間分配給所有其他下游設(shè)備。輔助端口從上游 PTP 設(shè)備同步時間。透明時鐘 (TC) 在更新 PTP 事件消息的駐留時間后轉(zhuǎn)發(fā) PTP 消息。上圖是各個時鐘類型在PTP域中的位置。在整個PTP網(wǎng)絡(luò)中,所有時鐘都會按照主從(Master-Slave)層次關(guān)系組織在一起,各節(jié)點逐級同步時鐘,最終完成與系統(tǒng)的最優(yōu)時鐘Grandmaster的同步
PTP 時間戳TimeStamp主時鐘提供同步消息,從時鐘用于校正其本地時鐘。在主時鐘和從時鐘上捕獲精確的時間戳。這些時間戳用于確定將 Slave 同步到 Master 所需的網(wǎng)絡(luò)延遲。通常每兩秒鐘從 Master 發(fā)送一條同步消息,從 Slave 發(fā)送一條延遲請求消息的頻率較低,大約每分鐘一個請求。在主時鐘和從時鐘之間捕獲四個時間戳。Slave偏移量計算需要時間戳。時間戳通常稱為 T1、T2、T3 和 T4。我們必須計算兩條延遲路徑:Master-Slave 和 Slave - Master。第一個時間戳是T1,是來自 Master 的同步消息的精確時間。該時間戳在后續(xù)消息中發(fā)送,因為在以太網(wǎng)端口上傳輸同步消息時采樣了 T1 的時間。第二個時間戳是 T2。它是從設(shè)備接收到的同步消息的準(zhǔn)確時間。 一旦 T1 和 T2 在 Slave 上可用,就可以計算 Master-Slave 的差異: 第三個時間戳是T3,是來自從站的延遲請求消息的準(zhǔn)確時間。第四個時間戳是 T4,它是在 Master 收到延遲請求消息的準(zhǔn)確時間。一旦 T3 和 T4 在從站可用,就可以計算Slave - Master的差異:一旦在從站獲得Master-Slave 和 Slave - Master的差異,就可以計算單向延遲:單向延遲 = (Master - Slave 差異 + Slave - Master 差異) / 2Offset = ((T2 - T1) - (T4 - T3)) / 2PTP的基本原理和NTP相同。NTP 協(xié)議運行在應(yīng)用層,測量出來的時間差除了在實際物理網(wǎng)絡(luò)上的時間,還包括軟件系統(tǒng)的處理時間。而PTP報文是在物理芯片上打時間戳,而不是在上層網(wǎng)絡(luò),這樣能最大程度上保證時間戳的準(zhǔn)確。因此,與傳統(tǒng)的應(yīng)用層協(xié)議NTP相比,PTP的精度更高。PTP同步實現(xiàn)機制 接口方式
PTP時間同步的實現(xiàn)可以分為帶內(nèi)(1588協(xié)議接口)和帶外(1PPS+ToD接口)兩種接口。 - 帶內(nèi)(1588協(xié)議接口,以太網(wǎng)業(yè)務(wù)接口)接口通過交換1588報文,并實現(xiàn)1588協(xié)議棧。
其中: PTP 報文該協(xié)議定義了事件報文和通用報文。事件報文是定時消息,其中在發(fā)送和接收時間都生成準(zhǔn)確的時間戳。通用報文不需要準(zhǔn)確的時間戳。事件報文:在離開和到達(dá)一臺設(shè)備時必須打時標(biāo)(記錄本地時間) (1) Sync (2) Delay_Req (3) Pdelay_Req (4) Pdelay_Resp 通用報文(General 報文):不需要打時間戳 (1) Announce (2) Follow_Up (3) Delay_Resp (4) Pdelay_Resp_Follow_Up (5) Management (可選,本規(guī)范暫不作規(guī)定具體報文內(nèi)容) (6) Signaling (可選,本規(guī)范暫不作規(guī)定具體報文內(nèi)容) BMC算法 最優(yōu)時間源算法BMC(Best Master Clock )是1588時間同步的應(yīng)用層技術(shù),能夠自動選擇時間同步網(wǎng)中的最優(yōu)時間源,自動選擇同步路徑,在時間源故障和鏈路故障時,自動實現(xiàn)時間源和同步路徑的切換。
|