PTP是什么?——局域網(wǎng)內(nèi)的“原子鐘精度傳遞者”
PTP,由IEEE 1588標(biāo)準(zhǔn)定義,是一種專(zhuān)門(mén)設(shè)計(jì)用于在分布式系統(tǒng)中通過(guò)網(wǎng)絡(luò)(主要是以太網(wǎng))同步時(shí)鐘的協(xié)議。其核心目標(biāo)是提供比NTP更高的時(shí)間同步精度。
如果NTP是讓城市里的大鐘樓(服務(wù)器)為市民的手表(客戶端)提供大致準(zhǔn)確的報(bào)時(shí),那么PTP則更像是在一個(gè)精密的實(shí)驗(yàn)室或工廠車(chē)間里,用一套高度校準(zhǔn)的儀器,確保每一個(gè)關(guān)鍵設(shè)備上的“秒表”都與中央的“原子鐘”達(dá)到幾乎完全一致。
PTP的關(guān)鍵特征
- 高精度: 這是PTP最顯著的特點(diǎn)。通過(guò)優(yōu)化協(xié)議設(shè)計(jì)和依賴硬件時(shí)間戳等技術(shù),PTP能夠?qū)崿F(xiàn)亞微秒級(jí)(sub-microsecond)甚至納秒級(jí)(nanosecond)的同步精度。
- 局域網(wǎng)優(yōu)化: PTP主要針對(duì)局域網(wǎng)環(huán)境設(shè)計(jì),充分考慮了局域網(wǎng)的拓?fù)浣Y(jié)構(gòu)和傳輸特性。
- 硬件輔助: 為了達(dá)到極致精度,PTP強(qiáng)烈推薦(在很多高精度場(chǎng)景下是必須)使用硬件時(shí)間戳,即在物理層(PHY)或MAC層捕獲PTP消息的發(fā)送和接收時(shí)刻。
- 最佳主時(shí)鐘算(BMCA): 自動(dòng)選舉網(wǎng)絡(luò)中的最佳時(shí)間源。容錯(cuò)能力強(qiáng)(如果當(dāng)前主時(shí)鐘故障,BMCA會(huì)自動(dòng)重新選舉出新的最佳主時(shí)鐘,確保同步不中斷)
- 多種消息類(lèi)型: 通過(guò)精確定義的消息交換來(lái)實(shí)現(xiàn)時(shí)間同步和延遲測(cè)量。
PTP網(wǎng)絡(luò)中的“交通協(xié)管員”——透明時(shí)鐘 (TC) 與邊界時(shí)鐘 (BC)
在復(fù)雜的網(wǎng)絡(luò)中,PTP消息可能會(huì)經(jīng)過(guò)多個(gè)交換機(jī)。這些交換機(jī)如果不能正確處理PTP消息,就會(huì)引入額外的延遲,降低同步精度。為此,PTP定義了特殊的PTP感知交換機(jī):
透明時(shí)鐘 (Transparent Clock, TC):
作用: PTP消息穿過(guò)TC時(shí),TC會(huì)精確測(cè)量消息在其內(nèi)部的駐留時(shí)間 (對(duì)于E2E TC) 或其出端口到下一跳的鏈路延遲 (對(duì)于P2P TC)。
補(bǔ)償方式: TC會(huì)將這個(gè)測(cè)量到的延遲值累加到PTP消息的correctionField字段中。
效果: 從時(shí)鐘在計(jì)算時(shí),可以將correctionField中的值從總延遲中減去,從而消除了TC引入的延遲對(duì)同步精度的影響,使TC對(duì)于PTP同步而言如同“透明”。
邊界時(shí)鐘 (Boundary Clock, BC):
作用: BC通常用在網(wǎng)絡(luò)的邊界或連接不同PTP域(或需要隔離的網(wǎng)段)。它的一端作為從時(shí)鐘同步到上游的主時(shí)鐘(或另一個(gè)BC),另一端則作為主時(shí)鐘為下游的設(shè)備提供時(shí)間同步。
效果: BC有效地將一個(gè)大的PTP網(wǎng)絡(luò)劃分成多個(gè)更小的、獨(dú)立的同步段,有助于提高整個(gè)網(wǎng)絡(luò)的穩(wěn)定性和可管理性。它會(huì)終結(jié)上游的PTP消息,并重新生成新的PTP消息向下游廣播。
PTP如何工作?——精密的“四次握手”與硬件賦能
PTP實(shí)現(xiàn)高精度的核心在于其精密的測(cè)量機(jī)制和對(duì)網(wǎng)絡(luò)延遲的細(xì)致處理。我們以常見(jiàn)的端到端 (End-to-End, E2E) 延遲請(qǐng)求-響應(yīng)機(jī)制為例,來(lái)剖析PTP的“對(duì)表”藝術(shù):

1、最佳主時(shí)鐘算法 - BMCA
網(wǎng)絡(luò)中所有PTP設(shè)備(時(shí)鐘)通過(guò)交換Announce Message (通告消息),運(yùn)行BMCA。
比較的依據(jù)包括用戶配置的優(yōu)先級(jí) (Priority1, Priority2) 和時(shí)鐘自身的質(zhì)量參數(shù) (ClockClass, ClockAccuracy, OffsetScaledLogVariance),最后以唯一的時(shí)鐘身份 (ClockIdentity,通?;贛AC地址) 作為決勝局。
專(zhuān)業(yè)數(shù)據(jù): Priority1/2是0-255的整數(shù),越小越優(yōu)先。ClockClass指示時(shí)鐘的可追溯性,如6代表同步到GPS,248代表未同步。ClockAccuracy和OffsetScaledLogVariance則更細(xì)致地描述了時(shí)鐘的精度和穩(wěn)定性。
最終,網(wǎng)絡(luò)中所有設(shè)備會(huì)一致地選舉出一個(gè)最佳主時(shí)鐘 (Grandmaster Clock, GM)。
2、主時(shí)鐘“發(fā)令” (Sync & Follow_Up)
GM開(kāi)始周期性地向網(wǎng)絡(luò)中的從時(shí)鐘(Slave Clocks)發(fā)送Sync Message (同步消息)。
關(guān)鍵點(diǎn): Sync消息中(或緊隨其后的Follow_Up Message中)攜帶了GM發(fā)送該Sync消息的精確發(fā)送時(shí)間戳 t1。
硬件時(shí)間戳的應(yīng)用: 為了獲得精確的t1,這個(gè)時(shí)間戳必須在數(shù)據(jù)包即將離開(kāi)GM網(wǎng)卡的物理層時(shí)由硬件捕獲。(軟件捕獲會(huì)引入操作系統(tǒng)調(diào)度等不確定延遲。)
單步 vs. 兩步:
- 單步時(shí)鐘 (One-Step Clock): 硬件能力強(qiáng),t1 直接在Sync消息中。
- 兩步時(shí)鐘 (Two-Step Clock): 先發(fā)Sync(可能含近似時(shí)間),再發(fā)Follow_Up攜帶精確t1。
從時(shí)鐘“接收并記錄”:從時(shí)鐘接收到Sync消息,同樣在硬件層面記錄下精確的接收時(shí)間戳 t2。
3、從時(shí)鐘“請(qǐng)求測(cè)量距離” (Delay_Req)
從時(shí)鐘向GM發(fā)送一個(gè)Delay_Req Message (延遲請(qǐng)求消息),并硬件記錄其精確的發(fā)送時(shí)間戳 t3。
4、主時(shí)鐘“回應(yīng)距離測(cè)量” (Delay_Resp)
GM接收到Delay_Req消息,硬件記錄其精確的接收時(shí)間戳 t4。
GM將t4封裝在Delay_Resp Message (延遲響應(yīng)消息)中回復(fù)給從時(shí)鐘。
5、從時(shí)鐘“計(jì)算并校準(zhǔn)”
從時(shí)鐘集齊了t1, t2, t3, t4四個(gè)關(guān)鍵時(shí)間戳。
核心假設(shè):路徑延遲對(duì)稱 (Master到Slave的延遲 ≈ Slave到Master的延遲)。
6、計(jì)算平均單向路徑延遲 (Mean Path Delay)
MeanPathDelay = [(t2 - t1) + (t4 - t3) - correctionField_sum] / 2
(這里的 correctionField_sum 是Sync/Follow_Up和Delay_Resp消息中correctionField字段的累加值,用于補(bǔ)償路徑上透明時(shí)鐘引入的延遲)
7、計(jì)算時(shí)間偏差 (Offset From Master, OFM)
OFM = (t2 - t1) - MeanPathDelay - correctionField_Sync
集成PTP模塊的高性能開(kāi)放網(wǎng)絡(luò)硬件
精度范圍:從亞微秒到納秒級(jí)
軟件部署(普通服務(wù)器+普通交換機(jī)):微秒級(jí)(μs) 到 數(shù)百微秒
(這是最基礎(chǔ)的部署方式,精度受操作系統(tǒng)調(diào)度、協(xié)議棧處理、網(wǎng)絡(luò)擁堵等不確定因素影響很大。)
硬件時(shí)間戳(支持PTP的網(wǎng)卡+普通交換機(jī)):百納秒級(jí)(100+ ns) 到 微秒級(jí)(μs)
(通過(guò)在網(wǎng)絡(luò)接口硬件上打時(shí)間戳,消除了操作系統(tǒng)的大部分抖動(dòng),精度顯著提升。)
全PTP網(wǎng)絡(luò)(硬件時(shí)間戳+邊界時(shí)鐘/透明時(shí)鐘交換機(jī)):幾十納秒(ns) 到 百納秒級(jí)
(這是實(shí)現(xiàn)高精度的標(biāo)準(zhǔn)方式。網(wǎng)絡(luò)中的交換機(jī)作為邊界時(shí)鐘(BC) 或透明時(shí)鐘(TC),可以終止或補(bǔ)償網(wǎng)絡(luò)抖動(dòng),將誤差累積降到最低。)
沒(méi)有硬件時(shí)間戳,PTP的精度會(huì)大幅下降到NTP的水平。
在無(wú)擁塞、無(wú)干擾的專(zhuān)用網(wǎng)絡(luò)中,使用最先進(jìn)的硬件,可以達(dá)到的極限精度。
SONiC(AsterNOS) PTP
下圖是 企業(yè)級(jí) SONiC 發(fā)行版AsterNOS內(nèi)的 PTP 子系統(tǒng)示意圖,包含一個(gè)運(yùn)行 Linux PTP / ptp4l 并與 RedistDB 和底層硬件驅(qū)動(dòng)程序交互的 PTP 容器。此外這套系統(tǒng)還支持多種網(wǎng)絡(luò)管理協(xié)議,例如 RESTful API、RESTconf 和 Netconf,給到更優(yōu)的系統(tǒng)集成和互操作性。

通過(guò)硬件加速和軟件算法優(yōu)化的星融元 PTP 交換機(jī)的時(shí)間同步精度分布在 20ns 以內(nèi),并且不同延遲測(cè)量模式獲得的偏差結(jié)果幾乎相同。

星融元 CX-M 交換機(jī)產(chǎn)品已經(jīng)系列化地支持了 PTP ,兼容 E2E 和 P2P 模式和多種配置文件。

可在GNS3設(shè)備模擬器體驗(yàn) PTP 功能特性。
-
交換機(jī)
+關(guān)注
關(guān)注
23文章
2889瀏覽量
104158 -
時(shí)間同步
+關(guān)注
關(guān)注
1文章
221瀏覽量
10594 -
PTP
+關(guān)注
關(guān)注
0文章
94瀏覽量
9668
發(fā)布評(píng)論請(qǐng)先 登錄
深入理解和實(shí)現(xiàn)RTOS_連載
深入理解和實(shí)現(xiàn)RTOS_連載
深入理解STM32
對(duì)棧的深入理解
為什么要深入理解棧
專(zhuān)家研討會(huì):理解高精度Sigma-Delta模擬數(shù)字轉(zhuǎn)換器
兆越打造 | GPS/北斗高精度時(shí)間同步網(wǎng)絡(luò)方案
深入理解PTP:高精度時(shí)間同步的核心原理
評(píng)論