NTP同步原理
NTP基本工作原理,客戶端A和服務器B通過網絡相連,它們都有自己獨立的系統時鐘,要實現各自系統時鐘的自動同步,作如下假設:
客戶端A和B的系統時鐘同步之前,客戶端A的時鐘設定為10:50:00am,服務器B的時鐘設定為11:00:00am。以服務器B為NTP時間服務器,即客戶端A將使自己的時鐘與服務器B的時鐘同步。數據包在客戶端A和B之間單向傳輸所需要的時間為1秒。
系統時鐘同步的工作過程如下:
客戶端A發送一個NTP消息包給服務器B,該消息包帶有它離開客戶端A時的時間戳,該時間戳為10:50:00am(T1)。
當此NTP消息包到達服務器B時,服務器B加上自己的時間戳,該時間戳為11:00:01am(T2)。
當此NTP消息包離開服務器B時,服務器B再加上自己的時間戳,該時間戳為11:00:02am(T3)。
當客戶端A接收到該響應消息包時,加上一個新的時間戳,該時間戳為10:00:03am(T4)。
至此,客戶端A 擁有足夠信息來計算以下兩個重要參數:
NTP 消息來回一個周期的時延:Delay=(T4-T1)-(T3-T2)。
RouterA 相對RouterB 的時間差:Offset=((T2-T1)+(T3-T4))/2。
RouterA 根據這些信息來設定自己的時鐘,實現與RouterB 的時鐘同步。
NTP使用端口以下兩幅圖為NTP的抓包,10.121.35.26為一臺HJ210-BDRBP時鐘服務器,10.121.35.1為一臺客戶端。
10.121.35.1為一臺客戶端
由抓包分析,客戶端通過一個隨機端口向服務器的123端口發送NTP查詢包,服務器在接受到查詢包后,通過123端口到達服務器的發送端口,來實現同步。
日常抓包中常見的是源端口和目的端口都是123的數據包。如下圖:
授時功能的完成
在日常網絡策略開放中,為實現授時功能的完成,需開放客戶端和服務器雙向的UDP123端口。有時只開發單向UDP123端口仍可以授時,是應為部分防火墻默認是對相同方向UDP數據包如果一路開放,另外一路默認準許通行,其并不是只開發單向鏈路就可以實現校時功能。
掃一掃咨詢微信客服