NTP详解(网络时间协议)
NTP是網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol),它是用來同步網(wǎng)絡(luò)中各個計(jì)算機(jī)的時間的協(xié)議。
在計(jì)算機(jī)的世界里,時間非常地重要,例如對于火箭發(fā)射這種科研活動,對時間的統(tǒng)一性和準(zhǔn)確性要求就非常地高,是按照A這臺計(jì)算機(jī)的時間,還是按照B這臺計(jì)算機(jī)的時間?NTP就是用來解決這個問題的,NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)是用來使網(wǎng)絡(luò)中的各個計(jì)算機(jī)時間同步的一種協(xié)議。它的用途是把計(jì)算機(jī)的時鐘同步到世界協(xié)調(diào)時UTC,其精度在局域網(wǎng)內(nèi)可達(dá)0.1ms,在互聯(lián)網(wǎng)上絕大多數(shù)的地方其精度可以達(dá)到1-50ms。
它可以使計(jì)算機(jī)對其服務(wù)器或時鐘源(如石英鐘,GPS等等)進(jìn)行時間同步,它可以提供高精準(zhǔn)度的時間校正,而且可以使用加密確認(rèn)的方式來防止病毒的協(xié)議攻擊。
原理
標(biāo)準(zhǔn)時間,是由原子鐘報時的國際標(biāo)準(zhǔn)時間UTC(Universal Time Coordinated,世界協(xié)調(diào)時)。所以NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛(wèi)星,也可以從Internet上獲取。
有了準(zhǔn)確而可靠的的時間源,那這個時間如何傳播呢?在NTP中,定義了時間按照服務(wù)器的等級傳播,按照離外部UTC源遠(yuǎn)近將所有的服務(wù)器歸入不同的Stratum(層)中,例如把通過GPS(Global Positioning System,全球定位系統(tǒng))取得發(fā)送標(biāo)準(zhǔn)時間的服務(wù)器叫Stratum-1的NTP服務(wù)器,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數(shù)限制在15以內(nèi)。所有這些服務(wù)器在邏輯上形成階梯式的架構(gòu)相互連接,而Stratum-1的時間服務(wù)器是整個系統(tǒng)的基礎(chǔ),
1、C/S合一
ntpd對下層client來說是service server,對于上層server來說它是client,也就是說新版的NTP服務(wù)程序已經(jīng)不對服務(wù)端和客戶端進(jìn)行區(qū)分了,統(tǒng)一叫做ntpd。ntpd根據(jù)配置文件的參數(shù)決定是要為其他服務(wù)器提供時鐘服務(wù)或者是從其他服務(wù)器同步時鐘。所有的配置都在/etc/ntp.conf文件中。
2、NTP客戶端同步間隔
NTP服務(wù)會間隔多長時間想時鐘服務(wù)器請求一次時鐘同步呢?默認(rèn)最小時間間隔為64s,默認(rèn)最大時間間隔是1024s(17分鐘左右)。64s是比較合理的,默認(rèn)間隔也是可調(diào)的(Note that most device drivers will not operate properly if the poll interval is less than 64 s and that the broadcast server and manycast client associations will also use the default, unless overridden.)。
3、容忍誤差范圍
NTP服務(wù)并不是在任何情況下都會進(jìn)行同步的。當(dāng)時鐘服務(wù)器時間和本地時間相差大于1000s時,NTP服務(wù)就會認(rèn)為是人為調(diào)整了時鐘或出現(xiàn)了硬件故障,例如CMOS電池?fù)p壞等。此時,NTP服務(wù)就會退出,需要人工(ntpdate …)進(jìn)行時鐘同步。
采用-g選項(xiàng)可以讓ntpd忽略1000s或更大誤差,設(shè)置時鐘到server system time, 但是ntpd還是會因此退出。
4、層次(strata)
stratum根據(jù)上層server的層次而設(shè)定(+1)。
對于提供network time service provider的主機(jī)來說,stratum的設(shè)定要盡可能準(zhǔn)確。
而作為局域網(wǎng)的time service provider,通常將stratum設(shè)置為10 (Stratum 10 is conventional for unsynchronized local clocks; it is high enough that nobody is likely to mistake it for a desirable clock to synchronize with.),如下:
server? 127.127.1.0???? # local clock
fudge?? 127.127.1.0???? stratum 10
#stratum設(shè)置為其它值也是可以的,其范圍為0~15
聲明:此博文借鑒了網(wǎng)洛技術(shù)大佬的博文內(nèi)容,知識無界,若有侵權(quán),請留言刪除,謝謝。
總結(jié)
以上是生活随笔為你收集整理的NTP详解(网络时间协议)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(619):变量的小案例二
- 下一篇: Oracle数据库的下载地址