NTP 協議介紹


NTP協議

NTP(Network Time Protocol,網絡時間協議)是由RFC 1305定義的時間同步協議,用來在分布式時間服務器和客戶端之間進行時間同步。NTP基於UDP報文進行傳輸,使用的UDP端口號為123。使用NTP的目的是對網絡內所有具有時鍾的設備進行時鍾同步,使網絡內所有設備的時鍾保持一致,從而使設備能夠提供基於統一時間的多種應用。

對於運行NTP的本地系統,既可以接收來自其他時鍾源的同步,又可以作為時鍾源同步其他的時鍾,並且可以和其他設備互相同步。

NTP工作原理

NTP的基本工作原理如圖所示。Device A和Device B通過網絡相連,它們都有自己獨立的系統時鍾,需要通過NTP實現各自系統時鍾的自動同步。為便於理解,作如下假設:

Device A和Device B的系統時鍾同步之前,Device A的時鍾設定為10:00:00am,Device B的時鍾設定為11:00:00am。

Device B作為NTP時間服務器,即Device A將使自己的時鍾與Device B的時鍾同步。

NTP報文在Device A和Device B之間單向傳輸所需要的時間為1秒。

 

系統時鍾同步的工作過程如下:

Device A發送一個NTP報文給Device B,該報文帶有它離開Device A時的時間戳,該時間戳為10:00:00am(T1)。

當此NTP報文到達Device B時,Device B加上自己的時間戳,該時間戳為11:00:01am(T2)。

當此NTP報文離開Device B時,Device B再加上自己的時間戳,該時間戳為11:00:02am(T3)。

Device A接收到該響應報文時,Device A的本地時間為10:00:03am(T4)。

至此,Device A已經擁有足夠的信息來計算兩個重要的參數:

NTP報文的往返時延Delay=(T4-T1)-(T3-T2)=2秒。

Device A相對Device B的時間差offset=((T2-T1)+(T3-T4))/2=1小時。

這樣,Device A就能夠根據這些信息來設定自己的時鍾,使之與Device B的時鍾同步。

 

NTP的報文格式

NTP有兩種不同類型的報文,一種是時鍾同步報文,另一種是控制報文。控制報文僅用於需要網絡管理的場合,它對於時鍾同步功能來說並不是必需的。

 

主要字段的解釋如下:

LI(Leap Indicator):為2比特,值為“11”時表示告警狀態,時鍾未被同步。為其他值時NTP本身不做處理。

VN(Version Number):長度為3比特,表示NTP的版本號。

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:驗證信息。

參考:https://www.cnblogs.com/panhongqing/p/6292348.html


免責聲明!

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



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