2007.08.28 23:32 bruce:
协议还是标准的好。
cisco网络设备,aix solaris unix linux,以及windows上的时间同步,都采用了标准的ntp协议。
但不知道为什么配置就那么麻烦,那么简单那么老的东西,怎么就那么的麻烦
基础知识:
http://ntp.buptnet.edu.cn/ntp_chinese/index.htm
Day Time Protocol(RFC-867)
Time Protocol(RFC-868) 这个我以前用delphi的indy组件实现过
Network Time Protocol (RFC-1305)
Simple Network Time Protocol(RFC-2030)
Network Time Protocol使用port 123,64 bits的binary number,前32 bits和Time Protocol一样,后32 bits用以表示秒以下的部份,并加上网络延时量的估计.理论上可以精确到到2的-32次方秒,实际使用大约只有50ms(广域网)左右,在局域网可达1ms。在实际中您应找最近而且最稳定的Server作时间源。
SNTP算是NTP的一个子集,它不像NTP可以同時和多个Server对时, 一般在Client端下使用。
htj告诉我说SNTP实现简单一些。也有很好的实现代码
ntp.org是ntpd的网站,提供gpl的ntpd各种组件。当然都是跨平台的。新的版本都加了openssl做认证什么的。
windows版编译的也有:http://www.meinberg.de/english/sw/ntp.htm#ntp_nt (新版4.2.0)
http://www.five-ten-sg.com/util/ntp4172.zip(老版NTP 4.1.72 for NT)
ntpd可以做授时。
经多次验证,要在windows上开启ntpd服务,能让windows自己的时间同步、其他os的ntpdate成功连上,还真不是容易的事情。总结如下:
1:新版4.2.0不灵,得老版本才行4.1.72的那个比较顺利,不知道是向下兼容问题还是什么问题
一般就是一直报错,windows时间同步报错:”对等机器的层次比主机层次少”,
Linux下ntpdate报错:no server suitable for synchronization found
2:如果ntpd服务不设置自身时间同步来源,则需要改配置文件 %win%/ntp.conf或启用服务是带配置文件参数:ntpd.exe -M -g -c “C:\NTP\etc\ntp.conf”
配置文件里面描述:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
这里改为127.0.0.1居然还不灵
用ntpq -p 来查询状态
3:启动后,需要好几分钟后才起作用,大约3-5分钟
不然一开始就测试的话,ntpdate一直会报错no server suitable for synchronization found
怎么可能会这样呢,大部分人都栽在这个上面了。
4:
有待修改和纠正。
