NTP協(xié)議為了提高授時(shí)的精度,在選擇時(shí)鐘源,選擇時(shí)鐘源數(shù)據(jù),以及在使用這些數(shù)據(jù)得到精確時(shí)間的過(guò)程中應(yīng)用了幾種算法。
首先是選擇算法,選擇算法包括三部分,首先是選擇時(shí)鐘源,NTP只對(duì)活性時(shí)間源進(jìn)行檢測(cè)(活性源執(zhí)行ntpq –p命令時(shí)reach不為0),如NTP時(shí)鐘源和客戶偏差超過(guò)1000秒,算法會(huì)將時(shí)間源識(shí)別為不可信時(shí)間源。其次是選擇數(shù)據(jù),就是時(shí)鐘濾波,定義了對(duì)單個(gè)時(shí)鐘采樣的滑動(dòng)窗口是8個(gè),圖一說(shuō)明了濾波的原因,延時(shí)過(guò)大的時(shí)候也會(huì)導(dǎo)致時(shí)間誤差加大, 二說(shuō)明了濾波前后的區(qū)別,采樣數(shù)據(jù)被處理后,波形平滑很多,由于延時(shí)導(dǎo)致的高誤差的數(shù)據(jù)被過(guò)濾了。
濾波算法說(shuō)明來(lái)自NTP協(xié)議發(fā)明人mills教授官網(wǎng)消息:
https://www.eecis.udel.edu/~mills/ntp/html/filter.html
或者,是在濾波后的數(shù)據(jù)中對(duì)多個(gè)源再一次進(jìn)行選擇
這一次的判斷標(biāo)準(zhǔn)是每個(gè)時(shí)間源的殘存的數(shù)據(jù)都有個(gè)別分布范圍,分布范圍重疊較大的區(qū)域被認(rèn)為是時(shí)間真值可能存在的區(qū)域,沒(méi)有和其他源重疊的將被剔除,如圖三中時(shí)間源D。兩個(gè)時(shí)間服務(wù)器可能造成失鎖也是因?yàn)閿?shù)據(jù)沒(méi)有重疊區(qū)域,導(dǎo)致算法失真,算不出不來(lái)結(jié)果。這個(gè)在NTPQ查看時(shí)被剔除的會(huì)顯示“-”。
選擇算法說(shuō)明來(lái)自:https://www.eecis.udel.edu/~mills/ntp/html/select.html 的官網(wǎng)說(shuō)明。
第二是聚類(群集)算法,是把選擇后幸存的時(shí)間源的數(shù)據(jù)拿來(lái)處理,找到分布最密集的區(qū)域,不斷迭代消減,選擇出最可能的真值區(qū)間。
聚合算法
聚合算法來(lái)自:https://www.eecis.udel.edu/~mills/ntp/html/cluster.html 的詳細(xì)說(shuō)明。
第三是組合算法,它是處理聚類算法剩下的數(shù)據(jù)的過(guò)程,會(huì)給每個(gè)時(shí)間源一個(gè)權(quán)重,每個(gè)時(shí)間源的權(quán)重取決于網(wǎng)絡(luò)延時(shí)和根誤差。這時(shí)體現(xiàn)在NTPQ中的狀態(tài)是主用時(shí)間服務(wù)器是“*”,輔助的時(shí)間服務(wù)器是“+”。這樣出來(lái)的誤差值并不等同于任何一個(gè)時(shí)間服務(wù)器的誤差值,在有多個(gè)時(shí)間服務(wù)器的情況下會(huì)更精確。