目录

网络通信专题之获取ntp时间

网络通信专题之获取ntp时间

大纲:

|NTP是什么? |哪些地方用到了NTP? |准确获取NTP时间的重要性? |如何准确获取NTP时间?

#NTP是什么?

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。

它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。

NTP时间同步报文中包含的时间是格林威治时间,是从1900年开始计算的秒数。

#哪些地方用到了NTP?

如设置闹钟、HTTPS证书的有效时间鉴定

#准确获取NTP时间的重要性?

就拿"HTTPS证书的有效时间鉴定"这个例子来说,假如在HTTPS握手的过程中报告的时间有误,这样就会导致证书校验失败,通信失败。

#如何准确获取NTP时间?

NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

计算机主机一般同多个时钟服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源以便校正主机时间。即使在主机长时间无法与某一时钟服务器联系的情况下,NTP服务依然可以有效运转。

所以,准确获取NTP时间需要参考多个可靠的NTP服务器,而且还需要对这些服务进行筛选。

获取ntp时间有三种通信模式:

客户端/服务端、广播模式、symmetric

关于获取ntp时间的三种通信模式的详细介绍以及协议的内容

可以参考:

对于以上三种模式时间信息的传输都采用UDP协议,端口号123

实现的过程中需要注意的问题:

是否需要时间补偿(传输过程中时间延迟、本地处理报文所需时间)

常用的ntp服务器域名:

“fr.pool.ntp.org”

“pool.ntp.org'

“ch.pool.ntp.org”

“us.pool.ntp.org”

参考文献:

UTC 和 GMT的区别是什么啊?

NTP介绍与分析