1. 程式人生 > >網路時間協議NTP

網路時間協議NTP

NTP是什麼?

NTP是網路時間協議Network Time Protocol)的簡稱,是用來使網路中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC(即NTP時間同步報文中包含的時間,它是從1900年開始計算的秒數),其精度在區域網內可達0.1ms,在網際網路上絕大多數的地方其精度可以達到1-50ms。

NTP基本知識

1、該協議通常描述為一種主從式架構,但它也可以用在點對點網上中,對等體雙方可將另一端認定為潛在的時間源。傳送和接收時間戳採用使用者資料報協議(UDP)的通訊埠123實現。

2、當前協議為版本4(NTPv4),這是一個RFC 5905文件中的建議標準。它

向下相容指定於RFC 1305的版本3。

3、NTP使用一個分層、半分層的時間源系統。該層次的每個級別被稱為“stratum”,頂層分配為數字0。一個通過階層n同步的伺服器將執行在階層n + 1。數字表示與參考時鐘的距離,用於防止層次結構中的迴圈依賴性。階層並不總是指示質量或可靠性;在階層3的時間源得到比階層2時間源更高的時間質量也很常見。電信系統對時鐘層使用不同的定義。以下提供了階層0、1、2、3的簡要描述。

  • 階層0(Stratum 0)這些是高精度計時裝置,例如原子鐘(如銫、銣)、GPS時鐘或其他無線電時鐘。它們生成非常精確的脈衝秒訊號,觸發所連線計算機上的中斷和時間戳。階層0裝置也稱為參考(基準)時鐘。
  • 階層1 (Stratum 1)這些與階層0裝置相連、在幾微秒誤差內同步系統時鐘的計算機。階層1伺服器可能與其他階層1伺服器對等相連,以進行完整性檢查和備份。它們也被稱為主要(primary)時間伺服器
  • 階層2 (Stratum 2) 這些計算機通過網路與階層1伺服器同步。提供階層2的計算機將查詢多個階層1伺服器。階層2計算機也可能與其他階層2計算機對等相連,為對等組中的所有裝置提供更穩定和魯棒的時間。
  • 階層3(Stratum 3) 這些計算機與階層2的伺服器同步。它們使用與階層2相同的演算法進行對等和資料取樣,並可以自己作為伺服器擔任階層4計算機,以此類推。
  • Stratum 1在頂層,有外部UTC接入,而Stratum 2則從Stratum 1獲取時間,Stratum 3Stratum 2獲取時間;階層的上限為15;階層16被用於標識裝置未同步。

4、NTP的時間戳。

  • NTP使用64位元的時間戳,其中32位表示秒,32位表示秒的小數,給出一個每2**32秒(136年)才會翻轉的時間尺度,理論解析度2**−32秒(233皮秒)。NTP以1900年1月1日作為開始時間,因此第一次翻轉將在2036年2月7日發生。
  • NTP的未來版本可能將時間表示擴充套件到128位:其中64位表示秒,64位表示秒的小數。當前的NTPv4格式支援“時代數字”(Era Number)和“時代偏移”(Era Offset),正確使用它們應該有助於解決日期翻轉問題。據Mills稱:“64位的秒小數足以分辨光子光速通過電子所需的時間。64位的秒足以提供明確的時間表示,直到宇宙變暗。”

5、計算機主機一般同多個時間伺服器連線,利用統計學的演算法過濾來自不同伺服器的時間,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間伺服器相聯絡的情況下,NTP服務依然有效運轉。

  • 以Server為NTP時間伺服器,即Client將使自己的時間與Server的時間同步。資料包在Client和Server之間單向傳輸所需要的時間為1秒。若要同步時間,至少應知道兩個資訊,即:Client與Server之間的時間差為多少,可稱為offset。Client與Server同步過程中,在路途上的損耗,可稱為delay。獲得這兩個訊息,Client即可順利計算出如果要同步到Server,應修改多少時間量。NTP協議約定的實際上是如何計算出Client與Server之間的Offset和Delay值。

  • 因此,假設來回網路鏈路是對稱的,即傳輸時延相等,那麼可以計算Client與Server之間的時間誤差Delta為:
    Delta = t1-t0-δ/2=((t1-t0)+(t2-t3))/2客戶端調整自身的時間Delta,即可完成一次時間同步

6、為防止對時間伺服器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的資訊是否是真正來自所宣稱的伺服器並檢查資料的返回路徑,以提供對抗干擾的保護機制。

NTP配置相關

  • rpm -qa |grep ntp          #檢測是否安裝了NTP,沒有則需要安裝NTP
  • netstat -tlunp | grep ntp #查詢NTP服務及監聽埠資訊
  • nc -vuz IP                      #檢查UDP協議,123埠號埠是否正常
  • nmap -sU IP    -p 123    #檢查UDP協議,123埠號埠是否正常
  • ntpq -p                           #檢視網路中的NTP伺服器,同時顯示客戶端和每個伺服器的關係

NTP伺服器地址

  • Windows系統自帶:
    time.windows.com 和 time.nist.gov
  • MacOS系統自帶:
    time.apple.com 和 time.asia.apple.com
  • NTP授時快速域名服務
    cn.ntp.org.cn
  • 國內可用的時間伺服器
    1.cn.pool.ntp.org
    2.cn.pool.ntp.org
    3.cn.pool.ntp.org
    0.cn.pool.ntp.org
    cn.pool.ntp.org
    tw.pool.ntp.org
    0.tw.pool.ntp.org
    1.tw.pool.ntp.org
    2.tw.pool.ntp.org
    3.tw.pool.ntp.org
  • 阿里雲授時伺服器
    #NTP伺服器
    ntp1.aliyun.com
    ntp2.aliyun.com
    ntp3.aliyun.com
    ntp4.aliyun.com
    ntp5.aliyun.com
    ntp6.aliyun.com
    ntp7.aliyun.com
    
    #Time伺服器
    time1.aliyun.com
    time2.aliyun.com
    time3.aliyun.com
    time4.aliyun.com
    time5.aliyun.com
    time6.aliyun.com
    time7.aliyun.com
    
  • 國內大學授時伺服器

    ntp.sjtu.edu.cn 202.120.2.101 (上海交通大學網路中心NTP伺服器地址)
    s1a.time.edu.cn 北京郵電大學
    s1b.time.edu.cn 清華大學
    s1c.time.edu.cn 北京大學
    s1d.time.edu.cn 東南大學
    s1e.time.edu.cn 清華大學
    s2a.time.edu.cn 清華大學
    s2b.time.edu.cn 清華大學
    s2c.time.edu.cn 北京郵電大學
    s2d.time.edu.cn 西南地區網路中心
    s2e.time.edu.cn 西北地區網路中心
    s2f.time.edu.cn 東北地區網路中心
    s2g.time.edu.cn 華東南地區網路中心
    s2h.time.edu.cn 四川大學網路管理中心
    s2j.time.edu.cn 大連理工大學網路中心
    s2k.time.edu.cn CERNET桂林主節點
    s2m.time.edu.cn 北京大學
  • 國外授時伺服器

    #蘋果提供的授時伺服器   
    time1.apple.com
    time2.apple.com
    time3.apple.com
    time4.apple.com
    time5.apple.com
    time6.apple.com
    time7.apple.com
    
    #Google提供的授時伺服器   
    time1.google.com
    time2.google.com
    time3.google.com
    time4.google.com
    
  • 騰訊伺服器
    time1.cloud.tencent.com
    time2.cloud.tencent.com
    time3.cloud.tencent.com
    
  •  

 

參考

1、維基百科

2、計算機網路時間同步技術原理介紹

3、NTP 時間伺服器實戰

4、國內常用NTP伺服器地址

5、國內常用NTP伺服器地址及IP