1. 概念
1.1 基本概念
時(shí)間,對(duì)于我們來說很重要,什么時(shí)候做什么?什么時(shí)候發(fā)生什么?沒有時(shí)間的概念,生活就亂了。
在日常的運(yùn)維當(dāng)中,我們更關(guān)注告警的時(shí)間:什么時(shí)候發(fā)生、什么事故、影響范圍、什么時(shí)候解決,都是有關(guān)聯(lián)性的,所以時(shí)間的準(zhǔn)確性是非常非常的重要。
你可能會(huì)好奇,時(shí)間到底是怎么來的呢?作為網(wǎng)工的你,可能你也不是很清楚吧?
原子鐘和GPS是作為標(biāo)準(zhǔn)參考時(shí)鐘,全世界都以它為時(shí)鐘源。
從你手表或電腦的時(shí)間同步到時(shí)鐘源,中間可能經(jīng)過多層級(jí),每一層叫做 'stratum' ,只是精確度不一樣而已。當(dāng)然,我們肯定不是直接和原子鐘同步,我們可以選擇最近的主時(shí)鐘源,比如中國(guó)/香港等等。
或者,你們公司內(nèi)網(wǎng)可能是同步到內(nèi)網(wǎng)的主時(shí)鐘服務(wù)器,然后同步到互聯(lián)網(wǎng)去。
說完了時(shí)鐘源,那么得有一個(gè)時(shí)間標(biāo)準(zhǔn)吧,全世界每個(gè)國(guó)家時(shí)區(qū)都不一樣,不能用一個(gè)時(shí)間給全地球用吧。
GMT(Greenwich Mean Time): 格林尼治標(biāo)準(zhǔn)時(shí)間,以太陽橫穿格林尼治子午線(本初子午線)來計(jì)算,現(xiàn)不推薦;
UTC( Universal Time Coordinated ):協(xié)調(diào)世界時(shí)間 , 以原子時(shí)秒長(zhǎng)為基礎(chǔ) ,接近GMT,作為世界標(biāo)準(zhǔn)時(shí)間。
為了統(tǒng)一世界的時(shí)間,1884年的國(guó)際經(jīng)度會(huì)議規(guī)規(guī)定將全球劃分為24個(gè)時(shí)區(qū)(東、西各12個(gè)時(shí)區(qū))。規(guī)定英國(guó)(格林尼治天文臺(tái)舊址)為零時(shí)區(qū)(GMT+00),東1-12區(qū),西1-12區(qū),中國(guó)北京處于東8區(qū)(GMT+08)
舉個(gè)栗子:
UTC 時(shí)間:2019-11-10 16:00:00
北京時(shí)間:2019-11-11 00:00:00 (UTC + 8個(gè)小時(shí))
時(shí)鐘源和標(biāo)準(zhǔn)時(shí)間說完了,那么接下來講下時(shí)間同步通信機(jī)制。
1.2 版本演進(jìn)
版本 | 時(shí)間 | 協(xié)議號(hào) | 描述 |
---|---|---|---|
NTPv1 | 1988年6月 | RFC 1059 | 首次提出了完整的NTP規(guī)則以及算法,但是NTPv1不支持認(rèn)證和控制消息 |
NTPv2 | 1989年9月 | RFC 1119 | 支持認(rèn)證和控制消息 |
NTPv3 | 1992年3月 | RFC 1305 | 正式引入了校正原則,并改進(jìn)了時(shí)鐘選擇和時(shí)鐘過濾算法。NTPv3目前應(yīng)用較為廣泛,僅支持IPv4 |
NTPv4 | 2010年6月 | RFC 5905 | 支持IPv4和IPv6,安全性更高。 |
2. 示例演示
2.1 前提條件
準(zhǔn)備好三方庫(kù):ntplib
安裝方法:
pip3 install -i [https://pypi.douban.com/simple/](https://pypi.douban.com/simple/) ntplib