NTP協議詳解

2022-08-19 15:42:10 字數 1545 閱讀 2308

前言

ntp(network time protocol)網路時間協議基於udp,用於網路時間同步的協議,使網路中的計算機時鐘同步到utc,再配合各個時區的偏移調整就能實現精準同步對時功能。提供ntp對時的伺服器有很多,比如微軟的ntp對時伺服器,利用ntp伺服器提供的對時功能,可以使我們的裝置時鐘系統能夠正確執行。

ntp報文格式

li 閏秒標識器,占用2個bit

vn 版本號,占用3個bits,表示ntp的版本號,現在為3

mode 模式,占用3個bits,表示模式

stratum(層),占用8個bits

poll 測試間隔,占用8個bits,表示連續資訊之間的最大間隔

precision 精度,占用8個bits,,表示本地時鐘精度

root delay根時延,占用8個bits,表示在主參考源之間往返的總共時延

root dispersion根離散,占用8個bits,表示在主參考源有關的名義錯誤

reference identifier參考時鐘識別符號,占用8個bits,用來標識特殊的參考源    

參考時間戳,64bits時間戳,本地時鐘被修改的最新時間。

原始時間戳,客戶端傳送的時間,64bits。

接受時間戳,服務端接受到的時間,64bits。

傳送時間戳,服務端送出應答的時間,64bits。

認證符(可選項)

拋開複雜的協議報文,我們來理解一下ntp客戶端與伺服器的互動過程,進而理解參考時間戳、原始時間戳、接受時間戳、傳送時間戳的關係。如圖,客戶端和服務端都有乙個時間軸,分別代表著各自系統的時間,當客戶端想要同步服務端的時間時,客戶端會構造乙個ntp協議包傳送到ntp服務端,客戶端會記下此時傳送的時間t0,經過一段網路延時傳輸後,伺服器在t1時刻收到資料報,經過一段時間處理後在t2時刻向客戶端返回資料報,再經過一段網路延時傳輸後客戶端在t3時刻收到ntp伺服器資料報。特別宣告,t0和t3是客戶端時間系統的時間、t1和t2是ntp服務端時間系統的時間,它們是有區別的。對於時間要求不那麼精準裝置,直接使用ntp伺服器返回t2時間也沒有太大影響。但是作為乙個標準的通訊協議,它是精益求精且容不得過多誤差的,於是必須計算上網路的傳輸延時。客戶端與服務端的時間系統的偏移定義為θ、網路的往返延遲定義為δ,基於此,可以對t2進行精確的修正,已達到相關精度要求,它們的計算公式如下:

式中:t0是請求資料報傳輸的客戶端時間戳

t1是請求資料報回覆的伺服器時間戳

t2是響應資料報傳輸的伺服器時間戳

t3是響應資料報回覆的客戶端時間戳

對此,我們只需將ntp服務端返回的時間t2加上網路延時δ的一半就可以了(t2+δ/2)。

————————————————

常用的ntp服務端站點

time.windows.com

time.nist.gov

s1a.time.edu.cn

s1c.time.edu.cn

time-nw.nist.gov

time-a.nist.gov

time-b.nist.gov

s1b.time.edu.cn

nist1.aol-ca.truetime.com

NTP 網路時間協議

gmt 格林威治標準時間 utc 世界協調時間 屬於原子時鐘 cts 北京標準時間 不停地時間同步,可以保證時間的相對準確,但是永遠無法精確 網路通訊延遲影響時間同精度 ntp通過網路進行時間同步,提供時間服務和協議。ntp協議分為17層 第0層 第16層,0代表時間源。和0層時間伺服器同步的是1層...

NTP網路時間協議

網路時間協議,英文名稱 network time protocol ntp 是用來使計算機時間同步化的一種協議,它可以使計算機對其伺服器或時鐘源 如石英鐘,gps等等 做同步化,它可以提供高精準度的時間校正 lan上與標準間差小於1毫秒,wan上幾十毫秒 且可介由加密確認的方式來防止惡毒的協議攻擊。...

NTP 網路時間協議

前言 搭建了乙個linux虛擬機器,發現跑著跑著時間有差異,查資料發現這個是正常的,因為系統時間和硬體時間是本地時間,會因各種原因導致跟標準時間utc時間有差異,所以計算機界的牛人發明了ntp協議,專門用來解決時間差異問題。概念 ntp,網路時間協議,專門用於不同主機間的時間同步,他是乙個層級結構,...