时间那点事儿
一、UTC 闰秒
润秒,是指为保持协调世界时接近于世界时时刻,由国际计量局统一规定在年底或年中(也可能在季末)对协调世界时增加或减少 1 秒的调整。
通俗一点说,就是某一年会凭空多出一秒来。
举个实际的例子,2012年7月1日早8点,23:59:59的下一秒记为23:59:60,然后才是第二天的00:00:00。目前,最近一次润秒时间发生在2017年1月1日7时59分59秒。
为什么会这样?首先得了解原子时,世界时,协调世界时。
原子时
以物质的原子内部发射的电磁振荡频率为基准的时间计量系统。原子时的秒长定义为铯133原子基态的两个超精细能级间在零磁场下跃迁辐射9192631770周所持续的时间。这种计时精度对于我们来说是最值得信赖的。
世界时
即格林尼治平太阳时,是表示地球自转速率的一种形式。以地球自转一圈的耗时来表示一天。地球自转速率并不均匀,一般来说是越来越慢的,十年前的一天比今天的一天要时间多几秒。
UTC(Coordinated Universal Time,协调世界时)
协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。这是目前最流行的时间。
润秒
地球的一天并不是固定86400秒。由于地球自转的不均匀性和长期变慢性(主要由潮汐摩擦引起的),在世界时和原子时之间相差超过到±0.9秒时,人们就把协调世界时向前拨1秒(负闰秒,最后一分钟为59秒)或向后拨1秒(正闰秒,最后一分钟为61秒);
二、NTP
NTP (Network Time Protocol) 简介
NTP 用于计算机的时间同步,用来将计算机的时间校准同步到 UTC。NTP 服务器获得 UTC 的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
特性
NTP 底层使用 UDP 协议。为啥不是 TCP? TCP 的重传机制反而对 NTP 协议没啥好处,可能会增加延迟或者是其他错误。
Reliable message delivery such as TCP [RFC0793] can actually make the delivered NTP packet less reliable since retries would increase the delay value and other errors.
另一个有趣的特性是,如果和 NTP 服务端时间差距过大,自动校准就会罢工,只能工程师手动操作。
误差
推荐阅读:
blog.sina.com.cn/s/blog_73e3544101016nsv.html#page=1
https://coolshell.cn/articles/5075.html