時間同步絕對是一個大問題
假設(shè)A電腦時間和B電腦時間不同,當(dāng)他們兩個電腦的用戶在使用電腦的時候就會存在問題,比如A電腦的用戶說,我們下午5:00 去打球,然后A電腦到了5:00就去打球了,但是可能這個時候B電腦的時間才到4:00,他們的信息就不能對齊。
還有一些問題的追溯,如果出現(xiàn)問題后,本地時間存在差異,那么我們根據(jù)日志時間來排查問題就會有問題。
NTP 時鐘
NTP(Network TimeProtocol,網(wǎng)絡(luò)時間)是由美國德拉瓦大學(xué)的David L. Mills教授于1985年提出,由時間協(xié)議、ICMP時間戳消息及IP時間戳選項(xiàng)發(fā) 展而來。NTP用于將計算機(jī)客戶或服務(wù)器的時間同步到另一服務(wù)器或參考時鐘源。它使用UTC作為時間標(biāo)準(zhǔn),是基于無連接的IP協(xié)議和UDP協(xié)議的應(yīng)用層協(xié)議,使用層次式時間分布模型,所能取得的準(zhǔn)確度依賴于本地時鐘硬件的精確度和對設(shè)備及進(jìn)程延遲的嚴(yán)格控制。
PTP 時鐘
NTP 時鐘是不準(zhǔn)確時鐘,人們?yōu)榱双@得更加精準(zhǔn)的時鐘對齊,所以就出現(xiàn)了PTP時鐘。
PTP(PrecisionTime Protocol)是一種對標(biāo)準(zhǔn)以太網(wǎng)終端設(shè)備進(jìn)行時間和頻率同步的協(xié)議,也稱為IEEE 1588,簡稱為1588。1588分為1588v1和1588v2兩個版本,1588v1只能達(dá)到亞毫秒級的時間同步精度,而1588v2可以達(dá)到亞微秒級同步精度。1588v2被定義為時間同步的協(xié)議,最初只是用于設(shè)備之間的高精度時間同步,隨著技術(shù)的發(fā)展,1588v2也具備頻率同步的功能。
理論上任何PTP時鐘都能實(shí)現(xiàn)主時鐘和從時鐘的功能,但一個PTP通信子網(wǎng)內(nèi)只能有一個主時鐘。整個系統(tǒng)中的最優(yōu)時鐘為最高級時鐘GMC(Grandmaster Clock),有著最好的穩(wěn)定性、精確性、確定性等。根據(jù)各節(jié)點(diǎn)上時鐘的精度和級別以及UTC(通用協(xié)調(diào)時間)的可追溯性等 特性,由最佳主時鐘算法(Best MasterClock)來自動選擇各子網(wǎng)內(nèi)的主時鐘;在只有一個子網(wǎng)的系統(tǒng)中,主時鐘就是最高級時鐘GMC。每個系統(tǒng)只有一個GMC,且每個子網(wǎng)內(nèi)只有一個主時鐘,從時鐘與主時鐘保持同步。
整個PTP網(wǎng)絡(luò)中,所有時鐘都會按照主從(Master-Slave)層次關(guān)系組織在一起,各節(jié)點(diǎn)逐級同步時鐘,最終完成與系統(tǒng)的最優(yōu)時鐘Grandmaster的同步。整個同步的過程是通過交換1588v2報文來完成的。從時鐘通過1588v2報文中攜帶的時間戳信息計算與主時鐘之間的時間偏移和路徑延遲,據(jù)此調(diào)整本地時鐘達(dá)到與主時鐘的同步。
1588v2報文是在物理芯片上打時間戳,而不是在上層網(wǎng)絡(luò),這樣能最大程度上保證時間戳的準(zhǔn)確。因此,與傳統(tǒng)的應(yīng)用層協(xié)議NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)相比,1588v2的精度更高。
時間同步的原理
1588V2時間同步的基本原理和NTP相同,都是主從設(shè)備之間雙向收發(fā)時間同步報文,根據(jù)報文的收發(fā)時間戳,計算得到兩個設(shè)備之間往返的總時間T。
如果兩個方向的時延相同,T/2 就是單向時延。
根據(jù)單向時延就可以得到主設(shè)備和從設(shè)備的時間偏差,從設(shè)備根據(jù)這個時間偏差來調(diào)整自身的時間,就可以完成主從設(shè)備之間的時間同步。
PTP 與NTP的區(qū)別
NTP 協(xié)議運(yùn)行在應(yīng)用層,測量出來的時間差除了在實(shí)際物理網(wǎng)絡(luò)上的時間,還包括操作系統(tǒng)的處理時間,比如你在發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的時候,被更高優(yōu)先級的任務(wù)中斷了,又或者緩存阻塞了等等。
所以NTP的抖動相對PTP來說大得非常非常多。
1588v2 的優(yōu)勢在于,它的時間戳是在物理層發(fā)送前加上去的,就撇開了操作系統(tǒng)對它和影響。
因?yàn)樽罱ぷ餍枰芯康囊恍┲R點(diǎn),我們要解決的問題是在兩個網(wǎng)絡(luò)設(shè)備上保證他們時間是完全對齊的,這個完全對齊一定是要求非常非常高的。如果也是在從事這方面研究的同學(xué),歡迎一起討論。
END
來源:嵌入式Linux版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。
▍