E2E和P2P
上一篇文章介紹了1588的E2E鏈路延遲
測量機制,本文順帶把P2P的鏈路延遲測量機制也一起介紹一下,這也便于以后介紹E2E透明時鐘和P2P透明時鐘。E2E就是End-to-End,它是由Slave clock發(fā)起的測量鏈路延遲的機制,而P2P(Peer-to-Peer)則是把每一個clock看作是對等的,每一個clock都會發(fā)起的鏈路延遲測量機制。說白了就是E2E的機制下,只有slave clock測量鏈路延遲,而P2P的機制下,每個clock都會測量鏈路延遲。
P2P鏈路延遲測量機制
P2P鏈路延遲的測量,使用了和E2E不同的報文。E2E使用的是Delay_req和Delay_resp,而P2P使用了Pdelay_req,Pdelay_resp和Pdelay_resp_follow_up??聪聢D。

整個過程是這樣的:
- 發(fā)起端發(fā)送報文Pdelay_req,并記錄發(fā)送時間戳t1。響應(yīng)端收到后,記錄接收時間戳t2。
- 響應(yīng)端立即回復(fù)報文Pdelay_resp,把t2寫在Pdelay_resp報文上,告訴發(fā)起端。同時記錄發(fā)送時間戳t3。
- 發(fā)起端收到Pdelay_resp,記錄接收時間戳t4。
- 緊隨Pdelay_resp報文,響應(yīng)端又發(fā)送一個叫作Pdelay_resp_follow_up的報文,將t3寫在該報文上,告訴發(fā)起端。
完成整個過程后,發(fā)起端已經(jīng)知道t1,t2,t3和t4這四個時間戳。和E2E類似,我們又得到兩個等式。
t2 - t1 = delay - offset
t4 - t3 = delay offset
t2和t1的時間差值包含了鏈路延遲delay和兩個clock的時間偏差。t4和t3的時間差值包含了鏈路延遲delay和剛提到的時間偏差的相反數(shù)。于是鏈路延遲和時間偏差可以被計算出來了。
2 * delay = (t2 - t1) (t4 - t3)
2 * offset = (t4 - t3) - (t2 - t1)
時鐘同步的實現(xiàn)
通過上面的介紹我們又學(xué)習到了P2P鏈路延遲的測量機制,上面的兩個等式可以計算出鏈路延遲和時間偏差。然而真正的1588軟件就是用這個時間偏差值來調(diào)整clock的嗎?答案并不是這樣。不要忘了,P2P機制下,1588同步還有Sync和Follow_up報文的參與。

對于P2P機制下的時鐘同步,1588軟件通常是怎么做的呢?重點來了。1588軟件通常把時鐘同步解耦成兩個任務(wù):
- 第一個任務(wù)是通過P2P機制測鏈路延遲。
- 第二個任務(wù)就是通過Sync/Follow_up報文同步時鐘。
這兩個任務(wù)獨立執(zhí)行,并可以以不同的周期定時運行。第一個任務(wù)周期性的測量鏈路延遲,并可以輔助一些濾波算法,降低一些偶然的抖動帶來的影響。第二個任務(wù)中,Slave clock收到Sync/Follow_up后,即可利用第一個任務(wù)最新計算出的鏈路延遲的值delay,來計算時間偏差offset,調(diào)整Slave clock與Master clock同步。別忘了下面等式。同樣,對offset的值也可以使用一些濾波算法。
t2 - t1 = delay offset
結(jié)束語
至此,P2P的鏈路
測量機制也介紹完了,是不是就是這么回事,就是這么簡單。其實越深入越復(fù)雜,以后了解到報文的格式,P2P透明時鐘,尤其是不局限于1588還想了解802.1AS協(xié)議的Time-aware bridge,你就不這么想了。
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。