初级入门IT网络工程师?收下这份关于NTP网络时间协议解读 纯干货
网络时间协议 , 英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议 , 它可以使计算机对其服务器或时钟源做同步化 , 它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒 , WAN上几十毫秒) , 且可介由加密确认的方式来防止恶毒的协议攻击 。
NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务 。用来在分布式时间服务器和客户端之间进行时间同步 。NTP基于UDP报文进行传输 , 使用的UDP端口号为123 。
文章插图
对于网络中的各台设备来说 , 如果依靠管理员手工输入命令来修改系统时钟是不可能的 , 不但工作量巨大 , 而且也不能保证时钟的精确性 。通过NTP , 可以很快将网络中设备的时钟同步 , 同时也能保证很高的精度 。
NTP主要应用在如下场合:
1、在网络管理中 , 对于从不同设备采集来的日志信息、调试信息进行分析的时候 , 需要以时间作为参照依据 。
2、计费系统要求所有设备的时钟保持一致 。
3、完成某些功能 , 如定时重启网络中的所有设备 , 此时要求所有设备的时钟保持一致 。
4、多个系统协同处理同一个比较复杂的事件时 , 为保证正确的执行顺序 , 多个系统必须参考同一时钟 。
5、在备份服务器和客户端之间进行增量备份时 , 要求备份服务器和所有客户端之间的时钟同步 。
NTP提供准确时间 , 首先要有准确的时间来源 , 这一时间应该是国际标准时间UTC 。NTP获得UTC的时间来源可以是原子钟、天文台、卫星 , 也可以从Internet上获取 。这样就有了准确而可靠的时间源 。时间按NTP服务器的等级传播 。
按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中 。Stratum-1在顶层 , 有外部UTC接入 , 而Stratum-2则从Stratum-1获取时间 , Stratum-3从Stratum-2获取时间 , 以此类推 , 但Stratum层的总数限制在15以内 。
所有这些服务器在逻辑上形成阶梯式的架构相互连接 , 而Stratum-1的时间服务器是整个系统的基础 。计算机主机一般同多个时间服务器连接 , 利用统计学的算法过滤来自不同服务器的时间 , 以选择最佳的路径和来源来校正主机时间 。即使主机在长时间无法与某一时间服务器相联系的情况下 , NTP服务依然有效运转 。
为防止对时间服务器的恶意破坏 , NTP使用了识别(Authentication)机制 , 检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径 , 以提供对抗干扰的保护机制 。NTP时间同步报文中包含的时间是格林威治时间 , 是从1900年开始计算的秒数 。
UTC时间是使用多种不同的方法得到的 , 包括无线电和卫星系统 。一些国家的用于高级服务的特别可以使用特别的接收机 , 包括GPS 。但是 , 在每台计算机都安装这些接收机一是不实际 , 也是经济的 。
作为替代 , 指定的时间服务器的计算机上安装这种接收机 , 并使用如NTP的协议来同步时间 , 从UTC分开的程度是被定义为层 , 一个无线电钏(从指定的发射机或卫星导航设备上接收信息)是0层 , 直接与无线电钟连接的是1层 , 从1层计算机上接收时间的是2层 , 依次如此 。
网络时间协议(NTP)的首次实现记载在Internet Engineering Note之中 , 其精确度为数百毫秒 。稍后出现了首个时间协议的规范 , 即RFC-778 , 它被命名为DCNET互联网时间服务 , 而它提供这种服务还是借助于Internet control Message Protocol (ICMP) , 即互联网控制消息协议中的时间戳和时间戳应答消息作为NTP 。
NTP的名称的首次出现是在RFC-958之中 , 该版本也被称为NTP v0 , 其目的是为ARPA网提供时间同步 。它已完全脱离ICMP , 是作为独立的协议以完成更高要求的时间同步 , 它对于如本地时钟的误差估算和精密度等基本运算、参考时钟的特性、网络上的分组数据包及其消息格式进行了描述 。但是不对任何频率误差进行补偿 , 也没有规定滤波和同步的算法 。
推荐阅读
- 一起了解网络域名的由来
- 网络知识扫盲,一文搞懂 DNS
- 科普中国回应:美国并不能通过根服务器让中国网络“瘫痪”
- linux下高并发服务器实现
- 四个使用率最高的网络命令,你get了吗?
- 6款免费网络延迟测试工具
- 计算机网络命令详解ping、arp、ipconfig、tracert、route详解
- 小提琴入门须知 小提琴入门教程
- 茶叶入门知识,茶叶知识解答优势?
- 实战!一次网络问题排查