NTP報文解析及對時原理


參考:https://blog.csdn.net/dosthing/article/details/81588219

NTP(Network Time Protocol)網絡時間協議基於UDP,默認端口為123。

1、NTP報文示例

其中192.10.10.189為NTP的server端,192.10.10.32為client端。



2、NTP服務端與客戶端的交互過程

示意圖
客戶端和服務端都有一個時間軸,分別代表着各自系統的時間,當客戶端想要同步服務端的時間時,客戶端會構造一個NTP協議包發送到NTP服務端,客戶端會記下此時發送的時間t0,經過一段網絡延時傳輸后,服務器在t1時刻收到數據包,經過一段時間處理后在t2時刻向客戶端返回數據包,再經過一段網絡延時傳輸后客戶端在t3時刻收到NTP服務器數據包。t0和t3是客戶端時間系統的時間、t1和t2是NTP服務端時間系統的時間,它們是有區別的。
t0、t1、t2分別對應着server->cient NTP報文中的三個參數:
t0:origin timestamp
t1: receive timestamp
t2: transmit timestamp
t3為client收到回復報文時本地的時間。

3、延時和時間偏差計算

假設:客戶端與服務端的時間系統的偏差定義為θ、網絡的往/返延遲(單程延時)定義為δ。
推導過程:
1)根據交互原理,可以列出方程組:
t0+θ+δ=t1
t2-θ+δ=t3
2)求解方程組,得到以下結果:
θ=(t1-t0+t2-t3)/2
δ=(t1-t0+t3-t2)/2
記憶時可以采用極限法,分別假設延時和偏差為0.

4、client時間校准:

對於時間要求不那么精准設備,client端可把server端的返回時間t2固化為本地時間。但是作為一個標准的通信協議,必須計算上網絡的傳輸延時,需要把t2+δ 固化為本地時間。
以上client時間校准算法只為理解過程,不代表真實做法

5、報文中其他參數說明

mode:工作模式

服務器 / 客戶模式(server / client)
對等體模式(symmetric active / symmetric passive)
廣播模式(broadcast server / broadcast client)
組播模式(multicast server / multicast client)

關於NTP的層數

層數(取值范圍 1-15): 層數是NTP中一個比較重要的概念,它基本上可以說是代表了一個時鍾的准確度,層數為1的時鍾准確度最高,從1到15依次遞減.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM