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