王文韬

摘 要 每台计算机都有自己的硬件时钟,并由主板上的电池保证在关机情况下也能计时。通常情况下,计算机每次开机会从硬件时钟读取时间,并且使用自己的时钟进行计时,但是在单个时钟之间不可避免的会有计时误差,在长时间使用后,时间误差会积累到比较大的数值。这在一般应用中不会造成太大的麻烦,但是在某些应用中,比如集群服务、数据库等,则会发生宕机、系统无法启动等严重后果,所以就必须要配置时间服务器为网络提供时间服务,保证整个网络中的时间在所有计算机中都是一致的。

关键词 计算机;时钟同步;配置

中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2018)214-0133-02

1 Windows下的时间同步

Windows系统下的时间同步由windows time服务完成,使用SNTP协议进行通信,可以达到秒级的时间同步精度,能够满足对时间精度要求不太高的情况下的需求。SNTP协议采用客户端/服务器工作方式,服务器接收GPS信号或使用自带的原子钟作为系统的时间基准,客户机按照预先设定的时间间隔定期访问服务器,获得准确的时间信息,并调整自己的系统时钟,来同步自己的时间。一台服务器同时也可以是客户端,从上层的时间服务器获得高精度时间,并向自己的客户端进行授时。

windows中的客户端,平时使用自己的硬件时钟计时,在访问服务器获得准确时间后,如果时间偏移较大,会直接调整系统时间,所以系统时间在同步时会发生跳变。如果时间偏移较小,会逐渐调整自己的时钟,直到与时间源同步,不会发生大幅度的时间跳变。

Windows时间同步配置可以通过修改注册表来进行,配置服务器的相关注册表项如下。

2 Windows时间服务器配置

1)H K E Y _ L O C A L _ M A C H I N E \ S Y S T E M \ CurrentControlSet\Services\W32Time\Config

\AnnounceFlags,将键值改为a(十六进制)。

该键值的参数含义如下:

0 不作为时间服务器;

1 始终为时间服务器;

2 自动为时间服务器,代表由Windows时间服务来决定角色;

4 始终为可靠时间服务器;

8 自動为可靠时间服务器,代表由Windows时间服务来决定角色。

键值a表示同时选择了2和8,也是系统的默认设置。

在这个键值设置为a时,如果时间服务器配置了自己的时间源服务器,但是又无法从时间源服务器同步时间,会认为自己的时间不可靠而有可能停止授时,所以最好将配置改为5,强制在自己失去时间源的时候仍然进行授时服务

2)H K E Y _ L O C A L _ M A C H I N E \ S Y S T E M \ CurrentControlSet\services\W32Time\ TimeProviders\NtpServer

将Enabled键值改为1,允许服务器进行授时服务。重启windows time 服务后便可开始对客户端授时。

3 Windows时间服务客户端配置

Windows时间同步客户端在域环境下,默认从域控制器同步时间,同步的“type”配置为“NT5DS”。独立客户端,可以打开系统的“日期和时间”,其中有一个“Internet时间”页签,更改里面的服务器地址为自己的授时服务器地址即可。如果需要设置的机器太多,可以将下面的内容编辑到注册表文件中,然后导入注册表进行设置。

Windows Registry Editor Version 5.00

[ H K E Y _ L O C A L _ M A C H I N E \ S Y S T E M \ CurrentControlSet\services\W32Time\ Parameters]

"Type"="NTP"

"NtpServer"="time.windows.com,0x9"

Type设置为NT5DS时,"NtpServer"设置不起作用。

将上面的time.windows.com替换为自己的授时服务器ip地址或机器名即可。该设置在时间服务器名称后必须指定0x9或其它参数,否则本设置无效。默认0x9=SpecialInterval+Client

可选的参数:

0x01 SpecialInterval以SpecialInterval中指定的时间间隔同步时间,不使用MaxPollInterval和MinPollInterval中的配置。0x02 UseAsFallbackOnly 仅作为备用时间源

0x04 SymmatricActive 使用动态轮询模式0x08 Client 客户端模式。

4 Windows缓慢校时

如果满足一定条件,windows将会采取缓慢校时的策略同步时间,下面是相关的设置。

进行缓慢校时,需要满足两个公式。

1)| C u r r e n t T i m e O f f s e t | < MaxAllowedPhaseOffset

CurrentTimeOffset是本机和时间源的时差,单位是时钟周期。在windows中,1ms=10000时钟周期。MaxAllowedPhaseOffset缺省设置为300秒。

假设本机时间和时间源相差3分钟。

CurrentTimeOffset=3×60×1000×10000 =1800000000

MaxAllowedPhaseOffset=300×1000×10000 =3000000000

满足| C u r r e n t T i m e O f f s e t | < MaxAllowedPhaseOffset的条件

2)|CurrentTimeOffset| / (PhaseCorrectRa te*UpdateInterval) < SystemClockRate / 2

SystemClockRate是系统的时钟周期,可以使用w32tm命令查看本机的ClockRate,然后算出时钟周期。

C:\>w32tm /query /status /verbose

ClockRate: 0.0155995s

SystemClockRate=0.0155995×1000×10000 =155995

PhaseCorrectRate默认为1

UpdateInterval域成员默认为30000带入公式计算:

1800000000/(1×30000)=60000

155995/2=77998

60000<77998,所以系统会缓慢校时。

4.1 下面是对缓慢校时过程的跟踪

数据分为三列,第一列是本机的当前时间,第二列是本機时间和时间源之间的误差,第三列是第二列中相邻两次误差之间的差值,反应了本地时钟和时间源时钟之间的走时误差。

10:12:13修改了本地时间,使之和时间源有了222秒的误差,可以看到现在并未校时。

4.2 Windows和linux之间的时间同步

Windows和linux之间,由于windows使用的windows time服务采用了SNTP协议,所以windows可以将linux作为时间源同步时间,却不能向linux系统授时,如果需要为liunx系统授时,就要通过第三方软件,比如ntp-4.2.8p10-win32。

软件安装后在“C:\Program Files (x86)\ NTP\etc”路径下会有ntp.conf配置文件,配置完成后重启服务即可。如果想要查看NTP同步状态,需要再安装ntp-time-server-monitor,之后就可以在软件中完成查看NTP同步状态、调整配置文件、重启NTP服务等工作。

在安装ntp-4.2.8p10-win32软件时,安装软件会在本地用户中增加“NTP”用户,并在系统中安装“Network Time Protocol Daemon”服务。windows自己的windows time服务会被禁用。配置完成后重启NTP服务,就可以开始向linux系统授时了。

参考文献

[1]刘曙琴,陈珍萍,黄友锐,等.无线传感器网络中带延时的一致性时间同步[J].传感器与微系统,2017(1):64-66,74.

使用计算机读取其时钟值,计算机网络中的时间同步相关推荐

  1. 计算机网络时钟同步怎么理解,时钟与计算机网络中的时钟同步.pdf

    时钟与计算机网络中的时钟同步.pdf 时钟与计算机网络中的时钟同步 冯 积 社 (西安交通大学软件学院 陕西西安 710049) 计算机中的时钟 的时钟都会产生 几乎所有的计算机中都会有专用线路用于计 ...

  2. 计算机基础(笔记)——计算机网络(计算机网络中的安全)

    计算机网络中的安全 什么是网络安全 接人通信所需的资源).考虑了这些问题后,我们能够指出安全通信( secure communication) 具有下列所需要的特性: 机密性( confidentia ...

  3. springboot取yml中的值_SpringBoot 中从yml配置文件中读取常用的参数值

    SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将ym ...

  4. 服务器和交换机之间网络协议,网络协议是计算机网络中服务器,计算机,交换机.doc...

    网络协议是计算机网络中服务器,计算机,交换机 篇一:计算机网络-参考答案 (1)不能保证所有题目都在里面,但能保证大部分题目都在这里. (2)建议用快捷方式ctrl+f 进行答案的查找,关键字只需复制 ...

  5. 在计算机网络中服务器必不可少,2020年全国计算机一级Ms Office试题(总)

    只要你选择了一条路,别人肯定会为你让路.只要你坚持认真做一级Ms Office试题,成功的道路才会为你打开. 一级Ms Office试题 [1] 1.Internet网中不同网络和不同计算机相互通讯的 ...

  6. 在计算机网络中 使用术语 来表示,计算机一级填空题复习资料

    1.计算机技术和_________相结合形成了计算机网络.[通信技术] 2.数据压缩算法可分为无损压缩和__________压缩两种.[有损] 3.OSI将网络体系结构分为物理层.数据链路层.网络层. ...

  7. 计算机高层应用,计算机网络中高层应用.ppt

    计算机网络中高层应用 1999-11-29 第四章 计算机网络中的高层应用 掌握C/S模式和B/S模式 熟练掌握常用的网络高层服务: WWW.Telnet .FTP.EMAIL.DNS等 了解其它网络 ...

  8. 计算机网络钟提供并管理,在计算机网络中通常把提供并管理共享资源的计算机称为...

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 在计算机网络中通常把提供并管理共享资源的计算机称为服务器.在微机网络中,服务器是提供并管理共享资源的计算机. 目前,网络中客户机/ ...

  9. 在网络上提供资源的计算机,在计算机网络中通常把提供并管理共享资源的计算机称为...

    在计算机网络中通常把提供并管理共享资源的计算机称为服务器.在微机网络中,服务器是提供并管理共享资源的计算机. 目前,网络中客户机/服务器(Client/Server)方式是典型的工作模式.由客户机(C ...

最新文章

  1. 还没用上 JDK 11吧,JDK 12 早期访问构建版使用
  2. 很强的PHP图片处理类
  3. Arduino各开发板针脚示意图
  4. asp.net添加电子地图
  5. FPGA大数据之我认为的明天
  6. docker安装 kuboard v3 - 内建用户库
  7. 线程池是如何重复利用空闲的线程来执行任务的?
  8. jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
  9. 关于小微商户反欺诈监控指标的内容参考
  10. day12【过渡】SpringCloud
  11. stata进行空间自相关检验
  12. java功能模块_系统功能模块详解 java应该学习什么?
  13. 【梳理】离散数学 第10章 群与环 10.2 子群与群的陪集分解
  14. 高中数学竞赛和信息学竞赛_将数学竞赛变成编码竞赛
  15. 实体门店营销,抽奖系统为何独占鳌头
  16. 好好讲一讲:到底什么是Java架构师(含福利放送)
  17. 我以为你懂的。懂得我是特别的
  18. java文件读写之Channel策略
  19. c语言 计算子网掩码位数,子网数、主机数与子网掩码的关系
  20. 逆分布函数法生成随机数(以指数分布和双指数分布为例)

热门文章

  1. Machine Learning introduction
  2. 不要把学习技术当做任务、攀比和终极目标。 [IT傻博士原创]
  3. [Jeremy Wu]冒险之路,平凡之路(C++) kkmd66
  4. 云鲸扫拖一体机器人说明书_云鲸小白鲸扫拖一体机器人 真实的测评带你走进智能化家居时代...
  5. Hadoop势微,云原生上位——传统大数据平台的云原生化改造
  6. 解决 cnpm : 无法加载文件 C:\Users\hp\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
  7. 10 EPC与物联网
  8. 各大财经网站股票数据接口
  9. 当我们谈BIM的时候,我们在谈什么?
  10. RabbitMQ原理名词解释