计算机的时钟(一):NTP 协议

计算机的时钟(一):NTP 协议,第1张

本系列文章主要介绍计算机系统中时钟的处理。主要内容包含NTP,Lamport逻辑时钟,向量时钟,TrueTime等。本文是第一篇,介绍NTP协议。

不知道你注意过没有,假如隔了好几天打开你的电脑,任务栏的时间依然是显示正确的,即使你的电脑没有联网,这是如何做到的?

计算机的主板上有一个石英晶体振荡器和一个纽扣电池。石英晶体振荡器的频率是32768Hz每秒。在通电的时候,石英晶体每振动32768次,电路就会传出信息,表示1秒钟到了,通过这种方式来记录时间。但是石英晶体会有误差,正常情况下,每天的计时误差在正负1秒钟。而且在极端温度下,比如零下二十度,误差会变大。

正是因为石英晶体误差比较大,所以1985年特拉华大学的David L Mills设计了网络时间协议NTP(Network Time Protocol)来同步不同计算机系统之间的时钟。

NTP协议的目标是将所有计算机的时间同步到几毫秒误差内。实际上广域网可以达到几十毫秒的误差,局域网误差可以在1毫米内。NTP协议是一种主从式架构协议,使用分层的时钟源系统,每一层称为Stratum,阶层的上限是15,阶层16表示未同步设备。常见的阶层如下:

参考(基准)时钟,主要由高精度计时设备,比如铯或铷原子钟、GPS时钟、无线电时钟。它们生成非常精确的脉冲信号,触发计算机上的中断和时间戳。

主时间服务器,这些服务器与阶层0设备相连,在几微秒误差内同步系统时钟。阶层1服务器之间可以互相连接,进行完整性检查和备份。

这些计算机通过网络和阶层1服务器同步。每个计算机可以查询多个阶层1服务器,阶层2计算机之间也可以互相连接。

这些计算机与阶层2的服务器同步。

NTP协议的时钟同步过程如下:

从上面的流程中可以很容易地计算出:

AB之间的网络往返时间RTT(Round Trip Time):δ = (T4 - T1) - (T3 - T2)

AB之间的时间偏移:θ = ( (T2 - T1) + (T3 - T4) ) / 2

推导过程:A从发送请求消息到收到响应的时间间隔是 T4 - T1,其中 T3 - T2 是B的处理时间,所以网络往返时间

δ = (T4 - T1) - (T3 - T2)。

假设A和B的时间偏差为θ,那么 T3 - θ = T3`。

T4和T3` 的间隔是半个RTT:T4 - T3` = δ / 2

把T3`和δ代入上面这个等式,得到:θ = ( (T2 - T1) + (T3 - T4) ) / 2。

NTP协议使用UDP协议来传输,端口为123,报文格式如下:

各个字段的含义如下:

NTP协议在广域网可以达到几十毫秒的误差,局域网误差可以在1毫米内。误差最大的一个原因是发送请求和接收响应这两个阶段的网络时间可能是不一样的。前面我们推导时间偏移公式的时候,假设网络往返发送和接收阶段的时间是一样的,但是实际网络中,这两个阶段走的路由可能是不一样的,所花的时间也可能不一样,计算的时间偏移也不准确,这样就造成了广域网的误差可能达到几十毫秒甚至更高。局域网中因为网络比较稳定,经过的路由器也比较少,所以误差可以到1毫米内。

rfc5905

网络时间协议

NTP 协议简单分析

windows系统自带了同步internet时间的功能,但是这一功能没有打开,需要手动设置。在时间栏里找到“internet时间”这一选项,打开这一功能,然后选择一个公共的时间服务器地址去同步时间。但是公共的时间服务器时间精度有限,只能满足那些对时间要求不高(如精确到秒)的用户,而且受网络影响较大。如果你在工作中需要计算机同步,建议采购专业的网络时间服务器。

北斗时间频率技术有限公司就是一家多年专注于时间同步设备的公司,公司产品在医疗、教育、交通、公安、交警、政府机构、科研、金融投资、银行等众多领域得到广泛应用。

那个是时钟插件。

你可以选择系统的或者下载其它的时钟插件

1、用系统时钟为例:打开控制面板——桌面小工具(可以看到时钟图标)-拖到桌面就可以了。

2、下载的时钟插件,安装就可以了

在连接Internet的情况下,可以在时间属性里选择“Internet时间”,勾选“自动与Internet时间服务器同步”,两台机器的服务器地址填写一致。保持更新即可。
在没有与Internet连接的情况下,应当组成局域网。选择其中一台作为时间服务器,另一台在服务器地址中填前一台的ip地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13505226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-20
下一篇 2023-08-20

发表评论

登录后才能评论

评论列表(0条)

保存