计算机网络中的时间同步

2018-07-19 14:53王文韬
科技传播 2018年13期
关键词:配置计算机

王文韬

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

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

中图分类号 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.

猜你喜欢
配置计算机
计算机操作系统
穿裙子的“计算机”
信息系统审计中计算机审计的应用
简析电力系统继电保护技术及配置应用
一种智能家居系统自学习免配置方法
论高校网络防火墙的配置与管理
计算机Linux网络操作系统特点及服务器配置研究
Fresnel衍射的计算机模拟演示