NTP時間校準

名稱: NTP (NET TIME PROTOCOL) 網絡時間校準協議

原理:

過程: 1.假設 Device A : 10:00:00      Device B: 11:00:00  A到B的傳輸時延爲1s

          2.A發送報文給b 加上A此刻的時間戳(TimeStamp) 10:00:00 [T1],

          3.B接受到報文後立馬加上自己的時間戳 11:00:01 [T2];

          4.B在返回該報文後加上此刻的時間戳 11:00:02 [T3];

          5.A在接受到B發會來的報文 記下此刻的時間 10:00:03 [T4];


計算: 1. 在客戶端A看來 , 和 NTP 服務器的通路之間的時間延時爲 (T4 - T1) - (T3 - T2)

          2. A與B之間的時間間隔(TimeSetoff) 爲    ((T2 - T1) + (T3 - T4))/2

              理解: T2 - T1 若把這個式子當作最後 的結果 會大於真實值 (當B收到報文後 A的實際時間是會比報文中記載的T1大一個延時)

                        即真實值爲 T2 - (T1 + T[delay]) ,所以要補償這個T[delay_go] 。

  引入T3 - T4, 若把這個式子當作最後的偏差,會比真實值大 ,此刻的真實值爲 T3 + T[delay_back] - T4。

   如果假設 數據報來回的時間延時是相等的 即T[delay_go] = T[delay_back] ,那麼 真實值爲  ((T2 - T1) + (T3 - T4))/2;


NTP的報文格式:

   NTP時鐘校準報文,基於UDP報文進行傳輸,使用的UDP報文端口爲123,時鐘同步報文封裝在UDP報文中,格式如下:


主要字段解釋:

 LI(Leap Indicator):長度爲2比特,值爲“11”時表示告警狀態,時鐘未被同步。爲其他值時NTP本身不做處理。
VN(Version Number):長度爲3比特,表示NTP的版本號,目前的最新版本爲3。
Mode:長度爲3比特,表示NTP的工作模式。不同的值所表示的含義分別是:0未定義、1表示主動對等體模式、2表示被動對等體模式、3表示客戶模式、4表示服務器模式、5表示廣播模式或組播模式、6表示此報文爲NTP控制報文、7預留給內部使用。
Stratum:系統時鐘的層數,取值範圍爲1~16,它定義了時鐘的準確度。層數爲1的時鐘準確度最高,準確度從1到16依次遞減,層數爲16的時鐘處於未同步狀態,不能作爲參考時鐘。
Poll:輪詢時間,即兩個連續NTP報文之間的時間間隔。
Precision:系統時鐘的精度。
Root Delay:本地到主參考時鐘源的往返時間。
Root Dispersion:系統時鐘相對於主參考時鐘的最大誤差。
Reference Identifier:參考時鐘源的標識。
Reference Timestamp:系統時鐘最後一次被設定或更新的時間。
Originate Timestamp:NTP請求報文離開發送端時發送端的本地時間。
Receive Timestamp:NTP請求報文到達接收端時接收端的本地時間。
Transmit Timestamp:應答報文離開應答者時應答者的本地時間。
Authenticator:驗證信息。















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章