LED時鐘之NTP時間同步服務器架設成功
【大
中
小】
點擊9456次
發布:2011-12-8
為了讓計算機系統時間可以一直保持正確的狀態(時間同步),我們經常需要調整時間。要調整時間,自然就會有一個可以對照著調整的“準確時間”!在實際生活中,我們可以通過電視臺、廣播電臺等來調整我們的手表或LED時鐘。那么在網絡上,我們該如何讓主機隨時保持正確的時間?顯然,我們可通過NTP服務器來校準時間,讓LED時鐘實現自動時間同步,為此我們成功搭建NTP服務器。另外,整個地球被劃分為24個時區,什么是GMT(格林威治時間),我們所在的時區又是哪一時區呢?讓我們來簡單地談談!
1、時鐘同步原理
時間就是金錢!在 Internet 上,時間同樣也非常重要!有些計算機需要同步時間才能夠正常的運行!在開始NTP服務器的介紹之前,先來簡單地談談關于“時區”的概念!
1.1時區
因為地球是圓的,所以同一個時刻,在地球的一邊是白天,一邊是黑夜。人類將一天分為24小時,所以,在地球對角的兩邊就差 12 小時。在同一個時刻,整個地球的時間都不一樣,為了解決這個問題,人們就將地球分成24個時區! 人類以經緯度坐標來定位地球,經度為零的地點在英國格林威治市所在的縱剖面上,繞地球一圈為 360 度角,將 360度角分為 24 個時區,一個時區就是 15 度。因為國際
上以格林威治時間(Greenwich Mean Time,GMT時間)為標準時間,加上地球自轉的關系,因此,在格林威治以東的區域時間比較早(+小時),而以西的地方比較晚!
1.2協和標準時間與系統時間的誤差(NTP時鐘同步的必要性)
了解了一些時區的概念之后,這里要談的是“正確的時間”。在計算時間時,最準確的計算應該是使用原子震蕩周期所計算的物理時鐘(Atomic Clock,也稱為原子鐘),也被定義為標準時間(International Atomic Time)。我們常??匆姷腢TC(Coordinated Universal
Time,協和標準時間)就是利用這種物理時鐘為基準所定義出來的正確時間。例如1999年在美國啟用的原子鐘 NIST F-1,它所產生的時間誤差每兩千年才差一秒!UTC標準時間是以GMT 時區為主的!所以本地時間與UTC時間的時差就是本地時間與GMT 時間的時差! 事實上,我們身邊有很多原子鐘。例如石英表,還有計算機主機上的 BIOS 也是一個原子鐘!不過,由于原子鐘主要是利用計算芯(crystal)的原子震蕩周期去計時的,但是每種芯片都有自己的獨特的震蕩周期,而震蕩周期在不同的芯片之間多少都會有點差異,甚至同一批芯片也可能會有些許的差異(就連溫度也可能造成這樣的誤差),因此,也就造成了BIOS的時間會經??鞄酌牖蛘呗龓酌?。 或許您會認為,BIOS定時器每天快5秒也沒有什么了不起的,不過如果您再仔細算算,會發現,一天快5秒,那么一個月快 2.5 分鐘,一年就快了75分鐘!所以,真的存在時間差!如果您的計算機真有這樣的情況,就需要網絡校時(Network Time Protocol, NTP)的功能了!
2、NTP服務器同步及搭建
那么如何讓時間同步化呢?如果選擇幾臺主要主機(Primary 服務器)調校時間,讓這些主要主機的時間同步之后,再開放網絡服務來讓 Client 端連接并且提供 Client 端調整自己的時間,就可以達到全部的計算機時間同步化的目的了!Network Time Protocol 和Digital Time Synchronization Protocol(DTSS)協議可以達到這樣的功能。 不過,到底NTP這個daemon是如何讓Server與Client的時間保持同步呢?
a. 首先,主機需要啟動這個daemon
b. 然后Client 會向NTP Server發送出調校時間的message
c. 然后NTP Server 會把當前的標準時間返回給Client
d. Client 接收了來自 Server的時間后,會以此調整自己的時間,這就實現了網絡校時同步了!
如何搭建一臺“合格”的NTP服務器供同步時鐘同步時間尤為重要了。
在上面的步驟中可能會發生一個問題,那就是Client到Server 的信息傳送時間過長!例如,我在中國臺灣以ADSL連接到美國的NTP Server 主機進行時間同步化請求,美國NTP Server 收到我的請求之后,就發送當時的正確時間給我,但從美國將數據傳送回我的PC時,時間可能已經延遲了 10秒鐘,這樣我的PC校正的時間是10秒鐘前的標準時間!此外,如果有太多的人上美國的那個NTP主機進行網絡校時,就會導致負荷太重,致使信息的傳遞又延遲得更為嚴重! 為了解決這些延遲的問題,有一些程序已經可以自動計算傳送過程時間的誤差,以更準確的校準自己的時間!當然,在daemon 的部分,也同時以 server/client 及 master/slave的架構來提供用戶進行網絡校時的操作!所謂的master/slave有點類似DNS的系統!例如,中國臺灣的標準時間主機去國際標準時間的主機校時,然后各大專院??紙鲠t院車站再到中國臺灣的標準時間校時,然后我們再到各大專院??紙鲠t院車站的標準時間校時!這樣一來,那幾臺國際標準時間主機Time服務器)的負荷就不至于太大,而我們也可以很快速地達到正確的網絡校時的目的!
中國臺灣常見的Time服務器為:time.stdtime.gov.tw
clock.stdtime.gov.tw
freq_f.stdtime.gov.tw
tick.stdtime.gov.tw
time.chttl.com.tw
ntp 這個daemon是以端口 123 為鏈接端口的(使用UDP數據包),所以我們要利用Time服務器來進行時間的同步更新,就得要使用 NTP 包提供的ntpdate來鏈接端口 123端口!
|