「NTP」- Network Time Protocol

  CREATED BY JENKINSBOT

问题描述

随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟,不仅工作量巨大,而且时钟的准确性也无法得到保证;

当今企业园区网络中很多场景都需要所有设备保持时钟一致:
1)网络管理:对从不同路由器采集来的日志信息、调试信息进行分析时,需要以时间作为参照依据;
2)计费系统:要求所有设备的时钟保持一致;
3)多个系统协同处理同一个复杂事件:为保证正确的执行顺序,多个系统必须参考同一时钟;
4)备份服务器和客户机之间进行增量备份:要求备份服务器和所有客户机之间的时钟同步;
5)系统时间:某些应用程序需要知道用户登录系统的时间以及文件修改的时间;

解决方案

NTP 的出现就是为了解决网络内设备系统时钟的同步问题。为此可以使用 NTP(Network Time Protocol) 技术来同步设备的时钟;

网络时间协议 NTP(Network Time Protocol)是 TCP/IP 协议族里面的一个应用层协议。NTP 用于在一系列分布式时间服务器与客户端之间同步时钟。NTP 的实现基于 IP 和 UDP。NTP 报文通过 UDP 传输,端口号是 123;

通过网络进行时间同步的网络协议。通过分组交换、可变延迟数据网络在计算机系统之间进行时钟同步。自 1985 年以来,NTP 就是目前使用最早的互联网协议之一;

NTP 是由特拉华大学的 David L. Mills 设计的。NTP 旨在在协调世界时(UTC)的几毫秒内同步所有参与的计算机。它使用「交集算法」(Marzullo 算法的修改版本)来选择用于准确的时间服务器,并且旨在减轻可变网络延迟的影响。NTP 通常可以在公共互联网上维持几十毫秒的时间,在理想情况下可以达到局域网内一毫秒以上的精度。不对称路由和网络拥塞可能导致 100ms 或更多的错误;

原理简述

协议特性

能够通过单播、组播、广播完成时间同步;

应用场景

时间同步,NTP 主要应用于网络中所有设备时钟需要保持一致的场合

网络管理:对从不同路由器采集来的日志信息、调试信息进行分析时,需要以时间作为参照依据;
计费系统:要求所有设备的时钟保持一致;
多个系统协同处理同一个复杂事件:为保证正确的执行顺序,多个系统必须参考同一时钟;
备份服务器和客户机之间进行增量备份:要求备份服务器和所有客户机之间的时钟同步;
系统时间:某些应用程序需要知道用户登录系统的时间以及文件修改的时间;

配置使用

NTP 的软件实现

常用 NTP 服务器

可以去网上搜索 NTP Server,有些可能已经失效了,还要挨个试。舒服的姿势是去官方的Server Pool Project查找全球 NTP Server 的分布。选择自己需要的 NTP Server,然后使用 ntpupdate 命令来更新时间;

比如,国内的 NTP Server:0.cn.pool.ntp.org,1.cn.pool.ntp.org,2.cn.pool.ntp.org,3.cn.pool.ntp.org

参考文献

Wikipedia/Network Time Protocol: https://en.wikipedia.org/wiki/Network_Time_Protocol
Doc:https://www.eecis.udel.edu/~mills/ntp/html/index.html
Homepage: http://support.ntp.org/
NTP: The Network Time Protocol: http://ntp.org/