1、 方案概述
PTP(Precision Time Protocol,精確時間協(xié)議)是一種時間同步的協(xié)議,其協(xié)議標(biāo)準(zhǔn)為IEEE1588,IEEE1588的全稱是“網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時鐘同步協(xié)議標(biāo)準(zhǔn)”;由網(wǎng)絡(luò)時間協(xié)議(NTP)發(fā)展而來,但NTP的同步準(zhǔn)確度最好只能達到200us,隨著測量儀器和工業(yè)控制對準(zhǔn)確度的要求越來越高,為了解決測量和控制應(yīng)用的分布網(wǎng)絡(luò)定時同步的需要。
2、 方案原理
PTP同步的基本原理如下:主、從時鐘之間交互同步報文并記錄報文的收發(fā)時間,通過計算報文往返的時間差來計算主、從時鐘之間的往返總延時,如果網(wǎng)絡(luò)是對稱的(即兩個方向的傳輸延時相同),則往返總延時的一半就是單向延時,這個單向延時便是主、從時鐘之間的時鐘偏差,從時鐘按照該偏差來調(diào)整本地時間,就可以實現(xiàn)其與主時鐘的同步。
PTP 協(xié)議定義了兩種傳播延時測量機制:
? 請求應(yīng)答(Request-Response)機制,即E2E延時機制。
? 端延時(Peer-Delay)機制,即P2P延時機制。
1.1 請求應(yīng)答機制
請求應(yīng)答機制實現(xiàn)過程(雙步模式)
(1) 主時鐘向從時鐘發(fā)送Sync報文,并在本地記錄發(fā)送時間t1;從時鐘收到該報文后,記錄接收時間t2。
(2) 主時鐘發(fā)送Sync報文之后,緊接著發(fā)送一個攜帶有t1的Follow_Up報文。
(3) 從時鐘向主時鐘發(fā)送Delay_Req報文,用于發(fā)起反向傳輸延時的計算,并在本地記錄發(fā)送時間t3;主時鐘收到該報文后,記錄接收時間t4。
(4) 主時鐘收到Delay_Req報文之后,回復(fù)一個攜帶有t4的Delay_Resp報文。
此時,從時鐘便擁有了t1~t4這四個時間戳,由此可計算出主、從時鐘間的往返總延時為[(t2 – t1) +(t4 – t3)],由于網(wǎng)絡(luò)是對稱的,所以主、從時鐘間的單向延時為[(t2 – t1) + (t4 – t3)] / 2。因此,從時鐘相對于主時鐘的時鐘偏差為:Offset = (t2 – t1) - [(t2 – t1) + (t4 – t3)] / 2 = [(t2 – t1) - (t4 – t3) ] /2。
此外,根據(jù)是否需要發(fā)送Follow_Up報文,請求應(yīng)答機制又分為單步模式和雙步模式兩種:
? 單步模式下,Sync報文的發(fā)送時間戳t1由Sync報文自己攜帶,不發(fā)送Follow_Up 報文。
? 雙步模式下,Sync報文的發(fā)送時間戳t1由Follow_Up報文攜帶。
1.2 端延時機制
圖表 SEQ 圖表 \* ARABIC 3 端延時機制實現(xiàn)過程(雙步模式)
與請求應(yīng)答機制相比,端延時機制不僅對轉(zhuǎn)發(fā)延時進行扣除,還對上游鏈路的延時進行扣除。如圖“端延時機制實現(xiàn)過程”所示,其實現(xiàn)過程如下:
(1) 主時鐘向從時鐘發(fā)送Sync 報文,并記錄發(fā)送時間t1;從時鐘收到該報文后,記錄接收時間t2。
(2) 主時鐘發(fā)送Sync 報文之后,緊接著發(fā)送一個攜帶有t1 的Follow_Up報文。
(3) 從時鐘向主時鐘發(fā)送Pdelay_Req報文,用于發(fā)起反向傳輸延時的計算,并記錄發(fā)送時間t3,主時鐘收到該報文后,記錄接收時間t4。
(4) 主時鐘收到Pdelay_Req報文之后,回復(fù)一個攜帶有t4 的Pdelay_Resp報文,并記錄發(fā)送時間t5;從時鐘收到該報文后,記錄接收時間t6。
(5) 主時鐘回復(fù)Pdelay_Resp報文之后,緊接著發(fā)送一個攜帶有t5的Pdelay_Resp_Follow_Up報文。
此時,從時鐘便擁有了t1~t6 這六個時間戳,由此可計算出主、從時鐘間的往返總延時為[(t4 – t3) + (t6 – t5)],由于網(wǎng)絡(luò)是對稱的,所以主、從時鐘間的單向延時為[(t4 – t3) + (t6 – t5)] / 2。因此,從時鐘相對于主時鐘的時鐘偏差為:Offset = (t2 – t1) - [(t4 – t3) + (t6 – t5)] / 2。
此外,根據(jù)是否需要發(fā)送Follow_Up報文,端延時機制也分為單步模式和雙步模式兩種:
? 單步模式下,Sync報文的發(fā)送時間戳t1由Sync報文自己攜帶,不發(fā)送Follow_Up 報文;而t5和t4的差值由Pdelay_Resp報文攜帶,不發(fā)送Pdelay_Resp_Follow_Up 報文。
? 雙步模式下,Sync報文的發(fā)送時間戳t1由Follow_Up報文攜帶,而t4和t5則分別由Pdelay_Resp報文和Pdelay_Resp_Follow_Up報文攜帶。