对于时间准确性要求佷高的证券行业来说,整个网络系统的服务器、工作站的时间保持一致是一个比较头大的问题。比如,如果把委托报向交易所的报盘工作站的时间比交易数据库服务器的时间快1秒的话,就有一、二百笔的委托送不到交易所主机,也就意味着百万、千万元的交易没有被完成--真正是1秒值千万金啊!
基于以上的要求,部署SNTP(NTP的子集)时间同步网络已成了证券公司的必要之举,见下图《时间同步网络流程图》。
时间同步网络流程图
一、对《时间同步网络流程图》的说明:
1、 对于NTP网络来说,首先是选取可靠的时间源 :
在证券公司,唯一的时间标准是交易所的交易主机时间,所以这里选取了由上海证券交易所主机进行自动校时的“上海报盘工作站”(10.10.0.1)作为一级 SNTP时间服务器,为二级SNTP时间服务器、内网三级SNTP客户端提供时间同步服务;同时,由深圳证券交易所主机进行自动校时的“深圳高单/报盘工作站”作为一级 SNTP时间服务器的备份。
2、基于系统安全的考虑,证券公司都划分了内、外网等几个VLAN,由此产生了跨内外网的二级SNTP时间服务器、内网/外网三级SNTP客户端。
选取一台跨内外网的工作站(10.20.0.1/sntp2)作为使用外部时间源--“上海报盘工作站”(10.10.0.1)的二级SNTP时间服务器,为外网三级SNTP客户端提供时间同步服务;同时,同样使用外部时间源--“上海报盘工作站”的交易服务器PDC、BDC和报盘SQL Server服务器作为二级SNTP时间服务器的备份。
注意,对PDC/BDC来说,BDC默认每分钟一次与PDC进行时间同步。
3、二级SNTP时间服务器、内网三级SNTP客户端的操作:
因为交易所交易时间从9:15am开始,所以每周一~五9:00(Windows计划任务)或电脑重启后自动执行
net time /SETSNTP:10.10.0.1 && w32tm -s
4、外网三级SNTP客户端的操作:
每周一~五9:05(Windows计划任务)或电脑重启后自动执行
net time /SETSNTP:10.20.0.1 && w32tm -s
5、由于NT4自身没有集成NTP功能,所以利用了Windows系统的netbios协议 (需要密码认证):
电脑重启后自动执行
Net time \\sntp2 /set /yes
6、手工设置SNTP时间同步网络内的电脑i时间时,请注意:
(1)时间同步的层次关系;
(2)时间同步的周期:
Windows2000的缺省设置“Period”=“SpecialSkew“(每 45 分钟一次,直到出现三次良好同步,然后每 8 小时一次(每天三次))。
7、使用系统日志查看W32Time服务时间同步情况 :
但请注意:
No eventlog messages since time difference is 0 <1 minute
(对于时间差小于1秒的时间同步操作将不产生系统日志信息)
二、Windows2000 SNTP的时间同步服务器、客户端的技术实现:
1、 WINDOWS2000下有关SNTP时间服务的有w32time.dll(w32time服务(服务端与客户端程序)),w32tm.exe客户端程序,net time(设置与查询w32time服务注册表的) “LocalNTP”=项目所以 WINDOWS2000下不管是服务器还是客户端,都要把WINDOWS w32time服务设置为”自动”
2、 Windows2000 SNTP时间服务器
(1)Windows2000域控制器自动为NT5DS时间服务器,在设置SNTP外部时间源
net time /SETSNTP:10.10.0.1 && w32tm -s 重启后成为 SNTP时间服务器
(2)Windows2000服务器与工作站手工修改注册表,重启后,使之成为SNTP时间服务器
使用内部硬件时钟
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
“LocalNTP”=dword:00000000 改为 "LocalNTP"=dword:00000001
"type"="Nt5DS“ "type"="NTP“
使用外部时间源
A) “LocalNTP”=dword:00000000 "LocalNTP"=dword:00000001
B) net time /SETSNTP:10.10.0.1 && w32tm -s
3、 Windows2000 SNTP客户端
执行
net time /SETSNTP:10.10.0.1 && w32tm –s
或
net time /SETSNTP:10.20.0.1 && w32tm –s
三、Windows 时间服务SNTP客户端 的时间同步过程:
1、SNTP客户端启动
1)客户端发数据包到时间服务器的UDP123端口。
(a)交换数据包,以确定客户端、服务 器之间的通讯滞后时间。
(b)W32Time 确定“目标时间“。
2)客户端调整本地时间。
(a)如果目标时间早于本地时间,本地时间将立即设为目标时间。
(b)如果目标时间晚于本地时间,除了本地时间超出同步范围多于两分钟时会即刻设置时间外,其它情况下,在接下来的 20 分钟内,本地时钟将被调慢(回拨),以使两个时间一致。
2、间隔检查
1)客户端执行定期检查的时间。
(a)客户在每个“周期”连接到时间服务器一次。
(b)最初的周期为八小时。
2)如果本地时间与目标时间相差超过两秒钟:
(1)间隔检查周期将减少一半。
(2)此过程在下一次间隔检查时会重复进行,直到:
本地和目标时间彼此相差保持在两秒钟以内,或间隔频率已减至最小设置:45 分钟。
3)如果时间精确维持在两秒以内,间隔检查周期将加倍,但不会超过最大周期:八小时。
3、时间同步层次结构
1)一个域中的所有客户端和域控制器,都将主域控制器 (PDC) 作为他们的时间服务器,并遵从域的层次结构。
2)PDC可以手动设为与外部时间源同步。
Windows SNTP时间同步在证券行业的应用 (3)
四、W32Time 服务注册表值
AvoidTimeSyncOnWan :REG_DWORD(可选)
防止计算机与其他站点中的计算机同步。
0 = 忽略时间源站点[默认]
1 = 计算机不与其他站点中的时间源同步
GetDcBackoffMaxTimes :REG_DWORD(可选)
在连续尝试查找域控制器不成功时使回退间隔加倍的最大次数。每次出现最长等待时记录一次事件。
0 = 连续尝试之间的等待始终是最小值,且不记录事件
7 = [默认]
GetDcBackoffMinutes :REG_DWORD(可选)
如果最后一次尝试未成功,在查找域控制器之前初始的等待分钟数。
15 = [默认]
LocalNTP :REG_DWORD
用于启动 SNTP 服务器。
0 = 除非该计算机是域控制器,否则不启动 SNTP 服务器[默认]
1 = 始终启动 SNTP 服务器
NtpServer :REG_SZ(可选)
用于手动配置时间源。将该值设为要与其同步的 NTP 服务器的 DNS 名称或 IP 地址。可以从命令行使用 net time 命令来对其进行修改。默认情况下值为空注意:如果输入多个 NTP 项,必须用空格隔开这些项。例如,如果您为两个不同的 NTP 服务器输入了两个不同的 IP 地址,必须用空格隔开这些项。请不要使用逗号隔开多个 IP 地址或多个完全限定的域名 。
Period :REG_DWORD 或 REG_SZ
用于控制时间服务同步的频率。如果指定一个字符串值,它必须是下面列出的特定值之一。如果使用数字(如 65535)指定字符串值,请将该值创建为 REG_DWORD。如果使用单词(如 BiDaily)来指定字符串值,该项应被创建为 REG_SZ。
0 = 每天一次
65535, “BiDaily” = 每两天一次
65534,“Tridaily” = 每三天一次
65533,“Weekly” = 每周(7 天)一次
65532,“SpecialSkew” = 每 45 分钟一次,直到出现三次良好同步,然后每 8 小时一次(每天三次)[默认]
65531, “DailySpecialSkew” = 每 45 分钟一次,直到出现一次良好同步,然后每天一次freq = 每天 freq 次
ReliableTimeSource :REG_DWORD(可选)
用于指示该计算机有可靠的时间。
0 = 不将该计算机标记为有可靠的时间[默认]
1 = 将该计算机标记为有可靠的时间(这只在域控制器上有用)
Type :REG_SZ
用于控制计算机进行同步的方式。
Nt5DS = 与域层级同步[默认]
NTP = 与手动配置的源同步
NoSync = 不进行时间同步
Nt5DS 设置可能不使用手动配置的源。
Adj 和 msSkewPerDay 值用于保留有关在两次重启间计算机的时钟信息。请不要手动编辑这些值。
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com |
关注天下网吧微信,了解网吧网咖经营管理,安装维护:
本文来源:赛迪网 作者:佚名