首頁 > 軟體

NTP網路時間協定是如何工作的

2020-06-16 16:25:56

什麼是NTP?

網路時間協定(NTP)是RFC 1305定義的時間同步協定。它用於在分散式時間伺服器和用戶端之間同步時間。 NTP基於UDP隔離,並使用UDP埠號123。

使用NTP的目的是使所有裝置的時鐘與網路上的時鐘同步,以使網路上所有裝置的時鐘保持一致,以便裝置可以基於統一時間提供多個應用程式。

對於執行NTP的本地系統,它可以接受來自其他時鐘源的同步,還可以用作同步其他時鐘的時鐘源,並且其他裝置可以彼此同步。

NTP如何工作

該圖顯示了NTP的基本工作原理。裝置A和裝置B通過網路連線。它們都有各自獨立的系統時鐘,並且它們需要通過NTP實現其系統時鐘的自動同步。為了便於理解,進行以下假設:

  1. 裝置A向裝置B傳送NTP訊息。訊息離開裝置A時帶有時間戳。時間戳為10:00:00 am(T1)。
  2. 當此NTP訊息到達裝置B時,裝置B新增其自己的時間戳。時間戳是11:00:01 am(T2)。
  3. 當此NTP訊息離開裝置B時,裝置B新增其自己的時間戳並將時間戳更改為11:00:02(T3)。
  4. 裝置A收到響應訊息後,裝置A的本地時間為上午10:00:03(T4)。
  5. 此時,裝置A具有足夠的資訊來計算兩個重要引數:
    1. NTP封包的往返延遲為Delay =(T4-T1)-(T3-T2)= 2秒。
    2. 裝置A和裝置B之間的時間差為offset =((T2-T1)+(T3-T4))/ 2 = 1小時。

這樣,裝置A可以根據該資訊設定自己的時鐘,並將其與裝置B的時鐘同步。以上內容只是對NTP工作原理的粗略描述。有關更多詳細資訊,請參閱RFC 1305。

NTP工作模式

  1. 以客戶-伺服器為基礎;
  2. 在對等模式下;
  3. 使用廣播/多播傳送時間。

使用者可以根據自己的需要選擇合適的工作模式。當無法確定伺服器或對端的IP地址,並且網路上需要同步很多裝置時,可以通過廣播或組播方式實現時鐘同步。在伺服器和對等方模式下,裝置從指定的伺服器或對等方啟動。

Linux實戰部署系列之NTP伺服器  https://www.linuxidc.com/Linux/2013-11/92275.htm


IT145.com E-mail:sddin#qq.com