NTP(网络时间协议)

网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。

原理

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)适用于运行在计算机上的和客户端/服务器程序和协议,程序由作为NTP客户端、服务器端或两者的用户编写,在基本条件下,NTP客户端发出时间请求,与时间服务器交换时间,这个交换的结果是,客户端能计算出时间的延迟,它的弥补值,并调整与服务器时间同步。通常情况下,在设置的初始,在5至10分钟有内6次交换。 一旦同步后,每10分钟与服务器时间进行一次同步,通常要求单一信息交换。冗余服务器和不同的网络路径用于保证可靠性的精确度,除了客户端/服务器商的同步以外,NTP还支持同等计算机的广播同步。NTP在设计上是高度容错和可升级的。

发展

网络时间协议(NTP)的首次实现记载在Internet Engineering Note之中,其精确度为数百毫秒。稍后出现了首个时间协议的规范,即RFC-778,它被命名为DCNET互联网时间服务,而它提供这种服务还是借助于Internet control Message Protocol (ICMP),即互联网控制消息协议中的时间戳和时间戳应答消息作为NTP。

NTP的名称的首次出现是在RFC-958之中,该版本也被称为NTP v0,其目的是为ARPA网提供时间同步。它已完全脱离ICMP,是作为独立的协议以完成更高要求的时间同步,它对于如本地时钟的误差估算和精密度等基本运算、参考时钟的特性、网络上的分组数据包及其消息格式进行了描述。但是不对任何频率误差进行补偿,也没有规定滤波和同步的算法。

美国特拉华大学(University of Delaware)的David L .Mills主持了由美国国防部高级研究计划局DARPA、美国国家科学基金NSF和美国海军水面武器中心NSWC资助的网络时间同步项目,成功的开发出了NTP协议的第1, 2, 3版。

NTP version 1 出现于1988年6月,在RFC-1059中描述了首个完整的NTP的规范和相关算法。这个版本已经采用了client/server模式以及对称操作,但是它不支持授权鉴别和NTP的控制消息。

1989年9月推出了取代RFC-958和RFC-1059的NTP v2版本即RFC-1119。

几乎同时,DEC公司也推出了一个时间同步协议,数字时间同步服务DTSS(Digital Time Synchronization Service)。在1992 年3月,NTP v3版本RFC-1305问世,该版本总结和综合了NTP先前版本和DTSS,正式引入了校正原则,并改进了时钟选择和时钟滤波的算法,而且还引入了时间消息发送的广播模式,这个版本取代了NTP的先前版本。NTP v 3 发布后,一直在不断地进行改进,NTP实现的一个重要功能是对计算机操作系统的时钟调整。在NTP v3研究和推出的同时,有关在操作系统核心中改进时间保持功能的研究也在并行地进行。1994年推出了RFC-1589,名为A KernelModel for Precision Time keening,即精密时01保持的核心模式,这个实现可以把计算机操作系统的时间精确度保持在微秒数量级。几乎同时,改进建议。对本地时钟调整算法,通信模式,新的时钟驱动器,又提出了NTP v4适配规则等方面的改进描述了具体方向。

截止到2010年6月,最新的NTP版本是第4版(NTPv4),其标准化文档为 RFC 5905,它继承自RFC 1305所描述的NTP v3。网络时间同步技术也将向更高精度、更强的兼容性和多平台的适应性方向发展。网络时间协议NTP是用于互联网中时间同步的标准之一,它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在Internet上绝大多数的地方其精度可以达到1- 50ms .值得提一下的是,简单的NTP(SNTP)version4已经在RFC2030描述了。主要NTP产品供应商:GlobalTime & Symmetricom。

系统结构

为适应Internet的层次结构,NTP采用层次氏时间分布模型。NTP系统的网络结构包括主时间服务器、从时间服务器及客户与节点间的传输路径。主时间服务器与高精度同步时钟源。从时间服务器经由主服务器或从其它服务器获得同步。在正常情况下节点(包括从时间服务器及客户)只用最可靠、最准确的服务器及传输路径来进行同步,因此通常的同步路径呈现为一个层次结构。在该层次结构中,主服务器位于根节点,而其它服务器随同步精度的增加而位于逐渐靠近叶子节点的层上。

NTP将传输路径区分为主动同步路径(Active SynchronizationPaths)与备份同步路径(Backup Synchronization Paths)两者都进行时间消息包的传输,但节点只用主动同步路径的数据进行同步处理。图1显示了上述结构。图1中的每一个节点代表一个子网的服务器,数字为节点的stratum号。带箭头的实线代表主动同步路径及同步信息的流动方向;虚线代表被动同步路径;标有x的路径是可能出错的。图1(a)是初始的情形,图1(b) x 是标有的路径出错时的情形。由这两个图可以看到,当上述标有x的路径出错时,节点c由stratum2降级为stratum3 且启用与节点的备份同步路径为主动同步路径;同时,由于节点c的stratum数不再比节点f的低,而且这时有一个stratum 数比节点f低的节点b存在,因此节点与c与f间的路径降为被动的,而节点与b与f间的路径升为主动同步路径。

时间处理过程

下图显示了NTP在一个同步节点上的处理流程。

NTP对时间的处理主要包括以下4部分。

1、针对一个时间服务器的数据过滤处理。这种处理的目的是改善通过一个时间服务器获得的网络延迟和时钟偏差的估计精确度。

2、针对多个时间服务器的对等选择与组合处理。NTP是通过利用多个服务器及多条网络路径来获得高准确度与可靠性。

3、本地时钟校正。为维持时钟的单调性,NTP并不将前两步处理得到的时钟偏差直接用来调整本地时钟,而是通过一个环路滤波器转换为一个对可变频率振荡器的控制量,来控制振荡器的振荡频率,间接调整系统时钟。

软件实现

NTP首次实现是在1980年,当时同步精度只有几百ms。1989年,Toronto大学的Dennis Fergusson开发了基于NTP第2版(RFC 1119)的一个实现,称为xntp。xntp是目前可公开获得的NTP的一个主要实现版本,目前已发展到第3.5版。xntp支持大多数UNIX系统,如:AIX,HP-UX,Irix,Linux,SCO UNIX,Solaris 等。目前最新的3.5.93版已开始支持Windows2000/NT。Widnows2000/NT本身也提供了一个基于SNTP的时间服务。但是Widnows2000/NT的时间服务只是用来为其身份验证过程提供时间基准的,其同步精度只有2s。

xntp有如下主要特点:(1)实现了NTP的所有功能; (2) 即使网络连接暂时不可用xntp也可以用过去的数据计算时钟的漂移并自动进行校正;(3)xntp可获得对本地时钟质量的一个估计;(4)xntp 还包含了用于实现计算机时钟与外部时钟(GPS接收机、Mode 接收机等) 进行同步的系统接口及多种驱动程序。

xntp的配置包括设置工作模式、设置服务器地址、是否启用身份验证、配置频率漂移数据文件及调整本地时钟用到的参数等。具体方法及配置过程可参见xntp的文档。

具体搭建过程

windows时间服务器的搭建非常简单。

开始-运行中输入gpedit.msc,回车,打开组策略编辑器。如图所示:

定位到 计算机配置—管理模板—系统—Windows时间服务,双击"全局时间配置",选择"已启用"。

修改MaxNegPhaseCorrection的值为900(即为900秒,15分钟)

修改MaxPosPhaseCorrection的值为900(即为900秒,15分钟)

修改AnnounceFlags的值为5

计算机配置—管理模板—系统—Windows时间服务—时间提供程序,"启用Windows NTP服务端",选择"已启用"。

在服务中找到Windows Time服务,设置启动类型为自动即可。

注意事项:

w32ntp采用udp协议,使用123端口。所以如果服务器开了防火墙的情况下,一定要在入站规则中运行udp协议123端口通过。

客户端配置如下图:

在服务器(E)后面的文本框中输入刚才搭建的时间服务器的IP,点击立即更新,几秒后自动完成与时间服务器的同步。

windows时间服务器搭建相关推荐

  1. 让VMware ESXi 5.5与Windows时间服务器同步

    让VMware ESXi 5.5与Windows时间服务器同步 在使用VMware ESXi 5.x的时候,如果你配置Windows Active Directory做时间服务器.让ESXi使用该时间 ...

  2. 【Linux部署】NTP时间服务器搭建及Linux+Windows客户端使用(一篇学会使用NTP服务)

    1.什么是NTP 百度百科:网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同 ...

  3. windows时间服务器状态,搭建window时间服务器:

    搭建window时间服务器:服务端配置 适用于Windows Server 2003以及Windows Sever 20081) 开放防火墙123 UDP端口:2) 运行中输入"gpedit ...

  4. Linuxwindows时间服务器搭建定时同步设置详细讲解

    目录 一.Linux关闭防火墙 二.ntp时间同步配置 二.chrony配置时间同步 1.服务端配置(192.168.65.188) 2.客户端配置(192.168.65.166) 三.windows ...

  5. NTP时间服务器搭建

    一,搭建时间服务器 NTP----------->时间服务器  (分层部署,不能超过15层)   1.  服务端 #yum -y install chrony(默认装好的)(客户端和服务端都是装 ...

  6. Hyper-V 2016 系列教程34 在局域网内架设Windows时间服务器

    在企业局域网环境中,一般都会有独立的时间服务器(NTP),一般企业会用以Linux平台的CentOS架设成时间服务器,我们这里介绍一个更实用,更节省系统资源的方法,就是在企业的Windows Serv ...

  7. 【ntp】Linux Windows时间服务器NTP配置

    更多内容请点击 我的博客 查看,欢迎来访. Windows Server2012配置NTP服务 打开注册表 Win+R输入regedit,打开注册表 设定成为NTP服务器类型 找到HKEY_LOCAL ...

  8. windows NTP服务器搭建方法/步骤

    一.在开始菜单栏中,点击"运行"(WIN+ R),输入regedit,打开Windows 注册表 二.设定成为NTP 服务器类型 注册表路径: HKEY_LOCAL_MACHINE ...

  9. 配置windows时间服务器

    来源:网络 如何在 Windows Server 2003 中配置权威时间服务器 http://support.microsoft.com/kb/816042/zh-cn 在 Windows Serv ...

  10. 【基础服务】NTP时间服务器搭建

    文章目录 1. NTP服务简介 2. NTP服务搭建 2.1. 环境准备 2.2. 安装NTP服务 2.3. 配置NTP服务 2.4. 启动NTP服务 3. 客户机时间同步 4. 注意事项 1. NT ...

最新文章

  1. 另一个git进程似乎在这个存储库中运行
  2. 实现DUBBO服务环境隔离
  3. 前端要凉?微软开源Sketch2Code,草图秒变代码
  4. mysql char和varchar_MySQL char与varchar的差异
  5. 账户的配置使您无法使用该计算机,2个方法解决“user profile service服务未能登录无法加载用户配置文件”...
  6. C/C++中near和far的区别
  7. css3图标悬停导航菜单
  8. 专家点评Science | 朱冰/许瑞明合作团队报道CpG岛结合蛋白BEND3作用机制
  9. redis系列(一):安装配置
  10. [转载] 利用Python构建股票交易策略 !
  11. 关系数据库标准语言SQL——详解版2
  12. C语言 空气质量优良率
  13. 2019 CSP-J 游记(CQ LNBS考场 的退役之战)
  14. 机器人阿郎_机械人阿郎
  15. 网络基础 — IP地址和子网掩码
  16. 华为鸿蒙推送机型,华为鸿蒙系统开始推送,这15款机型可率先升级,有你的吗?...
  17. Mac系统下连接阿里云并运行java程序
  18. Java学习笔记之基础语法(一)
  19. 语音识别入门第七节:语言模型
  20. 楼天成 男人八题 多重背包问题O(VN)

热门文章

  1. 2022年java开发面试题整理合集
  2. v8声卡调音软件_V8声卡调试:软件音效、变声效果及消除电流降噪教程
  3. Vulkan----Mac环境搭建
  4. ExcelToSQLServer-批量导入Excel文件到SQL Server数据库
  5. excel计算机快捷键大全,excel表格使用技巧快捷键大全
  6. VC2010 Tab控件使用
  7. 你关注过浏览器最小字体为多大吗?
  8. 通过代码下载全国范围详细区县行政区Shp数据
  9. 程序员基础(自学)适合入门,大一
  10. VHDL 四选一数据选择器