NTP與PTP

來源:互聯網
上載者:User

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有兩種不同類型的報文,一種是時鐘同步報文,另一種是控制報文。控制報文僅用於需要網路管理的場合,它對於時鐘同步功能來說並不是必需的,這裡不做介紹。

 

主要欄位的解釋如下:

l              LI(Leap Indicator):長度為2位元,值為“11”時表示警示狀態,時鐘未被同步。為其他值時NTP本身不做處理。

l              VN(Version Number):長度為3位元,表示NTP的版本號碼,目前的最新版本為3。

l              Mode:長度為3位元,表示NTP的工作模式。不同的值所表示的含義分別是:0未定義、1表示主動對等體模式、2表示被動對等體模式、3表示客戶模式、4表示伺服器模式、5表示廣播模式或組播模式、6表示此報文為NTP控制報文、7預留給內部使用。

l              Stratum:系統時鐘的層數,取值範圍為1~16,它定義了時鐘的準確度。層數為1的時鐘準確度最高,準確度從1到16依次遞減,層數為16的時鐘處於未同步狀態,不能作為參考時鐘。

l              Poll:輪詢時間,即兩個連續NTP報文之間的時間間隔。

l              Precision:系統時鐘的精度。

l              Root Delay:本地到主參考時鐘源的往返時間。

l              Root Dispersion:系統時鐘相對於主參考時鐘的最大誤差。

l              Reference Identifier:參考時鐘源的標識。

l              Reference Timestamp:系統時鐘最後一次被設定或更新的時間。

l              Originate Timestamp:NTP請求報文離開發送端時發送端的本地時間。

l              Receive Timestamp:NTP請求報文到達接收端時接收端的本地時間。

l              Transmit Timestamp:應答報文離開應答者時應答者的本地時間。

l              Authenticator:驗證資訊。

NTP的工作模式

 裝置可以採用多種NTP工作模式進行時間同步:

             用戶端/伺服器模式

             對等體模式

            廣播模式

            組播模式

使用者可以根據需要選擇合適的工作模式。在不能確定伺服器或對等體IP地址、網路中需要同步的裝置很多等情況下,可以通過廣播或組播模式實現時鐘同步;用戶端/伺服器和對等體模式中,裝置從指定的伺服器或對等體獲得時鐘同步,增加了時鐘的可靠性。
1. 用戶端/伺服器模式

在用戶端/伺服器模式中,用戶端向伺服器發送時鐘同步報文,報文中的Mode欄位設定為3(客戶模式)。伺服器端收到報文後會自動工作在伺服器模式,並發送應答報文,報文中的Mode欄位設定為4(伺服器模式)。用戶端收到應答報文後,進行時鐘過濾和選擇,並同步到優選的伺服器。

在該模式下,用戶端能同步到伺服器,而伺服器無法同步到用戶端。

2. 對等體模式

 在對等體模式中,主動對等體和被動對等體之間首先互動Mode欄位為3(用戶端模式)和4(伺服器模式)的NTP報文。之後,主動對等體向被動對等體發送時鐘同步報文,報文中的Mode欄位設定為1(主動對等體),被動對等體收到報文後自動工作在被動對等體模式,並發送應答報文,報文中的Mode欄位設定為2(被動對等體)。經過報文的互動,對等體模式建立起來。主動對等體和被動對等體可以互相同步。如果雙方的時鐘都已經同步,則以層數小的時鐘為準

3. 廣播模式

在廣播模式中,伺服器端周期性地向廣播位址255.255.255.255發送時鐘同步報文,報文中的Mode欄位設定為5(廣播模式)。用戶端偵聽來自伺服器的廣播報文。當用戶端接收到第一個廣播報文後,用戶端與伺服器互動Mode欄位為3(客戶模式)和4(伺服器模式)的NTP報文,以獲得用戶端與伺服器間的網路延遲。之後,用戶端就進入廣播用戶端模式,繼續偵聽廣播報文的到來,根據到來的廣播報文對系統時鐘進行同步。

4. 組播模式

在組播模式中,伺服器端周期性地向使用者配置的組播地址(若使用者沒有配置組播地址,則使用預設的NTP組播地址224.0.1.1)發送時鐘同步報文,報文中的Mode欄位設定為5(組播模式)。用戶端偵聽來自伺服器的組播報文。當用戶端接收到第一個組播報文後,用戶端與伺服器互動Mode欄位為3(客戶模式)和4(伺服器模式)的NTP報文,以獲得用戶端與伺服器間的網路延遲。之後,用戶端就進入組播客戶模式,繼續偵聽組播報文的到來,根據到來的組播報文對系統時鐘進行同步。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.