NTP工作原理
NTP的基本工作原理如下图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:
- 在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时钟设定为11:00:00am。
- Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。
- NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。
- Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。
- 当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。
- 当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。
- 当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。
至此,Device A已经拥有足够的信息来计算两个重要的参数:
- NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。
- Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。
Server 端设置(Run --> regedit):
1、修改以下选项的键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的「Enabled」设定为1.
该设置打开NTP服务器功能(默认是不开启NTP Server服务,除非电脑升级成为域控制站)
2、修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5.
该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。
如果要采用外面的时间服务器就用默认的 a 值即可.
3、重启Win32Time服务: net stop w32Time && net start w32Time
Client 端设置(Run --> regedit):
1、修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
SpecialPollInterval 值修改成十进制43200 (单位为秒,43200为12小时)
SpecialPollTimeRemaining 值修改成[时间同步服务器],0 如:192.168.1.1,0
2、更改默认更新服务器
HKEY_LoCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\DATETIME\SERVERS\default
3、重启Win32Time服务: net stop w32Time && net start w32Time