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