基于STM32控制器的SNTP授時服務(wù)器的研究與設(shè)計
2 SNTP協(xié)議分析
SNTP即簡單網(wǎng)絡(luò)時間協(xié)議,它是一個用于局域網(wǎng)子網(wǎng)末端的時間同步協(xié)議,其要求在操作過程中只允許存在一個可靠的同步時鐘源,是
NTP協(xié)議的一個簡化版本。
2.1 SNTP的同步原理
SNTP協(xié)議主要通過同步算法來交換時間服務(wù)器和客戶端的時間戳,從而估算出數(shù)據(jù)包在網(wǎng)絡(luò)上的往返延遲,進(jìn)而獨(dú)立地估算系統(tǒng)的時鐘偏差。它的時間同步原理的傳輸模型如圖2所示。
圖2中,T1為客戶方發(fā)送查詢請求時間(以客戶方時間系統(tǒng)為參照),T2為服務(wù)器收到查詢請求時間(以服務(wù)器時間系統(tǒng)為參照),T3為服務(wù)器回復(fù)時間信息包時間(以服務(wù)器時間系統(tǒng)為參照),T4為客戶方收到時間信息包時間(以客戶方時間系統(tǒng)為參照),D1為請求信息在網(wǎng)上傳播所消耗的時間,D2為回復(fù)信息在網(wǎng)上傳播所消耗的時間。假設(shè)請求和回復(fù)在網(wǎng)上的傳播時間相同,即:δ1=δ2,則可得出如下公式:
式中,θ為客戶端時間與標(biāo)準(zhǔn)時間之差,δ為信息在網(wǎng)上傳播的時間??梢钥吹?,θ、δ只與T2、T1的差值和T4、T3的差值相關(guān),而與T2、T3的差值無關(guān),即最終的結(jié)果與服務(wù)器處理請求所需的時間無關(guān)。據(jù)此,客戶端(CLIENT)即可通過T1、T2、T3、T4十算出的時差0去調(diào)整本地時鐘。
2.2 SNTP協(xié)議格式
SNTP消息一般封裝在UDP報文中,UDP的端口號是123,UDP頭中的源端口和目的端口是一樣的。SNTP消息緊跟在IP和UDP報頭之后,其協(xié)
議格式如圖3所示。
圖3中,U為跳躍指示器,可警告在當(dāng)月最后一天的最終時刻插入的迫近閨秒(閨秒)。VN表示版本號。Mode為模式,該字段包括以下值:
O(預(yù)留);1(對稱行為);3(客戶機(jī));4(服務(wù)器);5(廣播);6(NTP控制信息)。Stratum用于對本地時鐘級別的整體識別。Poll表示有符號整
數(shù)表示連續(xù)信息間的最大間隔。Precision表示有符號整數(shù),表示本地時鐘精確度。Root Delay為有符號固定點(diǎn)序號,表示主要參考源的總延遲,如很短時間內(nèi)的15到16間的分段點(diǎn)。Root Dispersion為無符號固定點(diǎn)序號表示相對于主要參考源的正常差錯,如很短時間內(nèi)的位15到16間的分段點(diǎn)。
評論