首页 > 应用开发 > IT综合 > 基于GPS北斗双系统的NTP网络时间服务器的开发
基于GPS北斗双系统的NTP网络时间服务器的开发
基于GPS北斗双系统的NTP网络时间服务器的开发
设计思路:
在通用的麒麟服务器内部固定一块北斗卫星接收模块并引出卫星天线接口,卫星模块接收北斗卫星数据并解码输出时间数据(NMEA0183 串口数据),并将时间数据输入到系统主板的串口上;麒麟系统串口接收时间数据解码时间信息并同步麒麟系统时间,确保麒麟系统的时间与准确。为了实现麒麟系统的NTP 授时服务,需要在系统内运行NTPD 授时程序。
重点:
(1) 内置北斗卫星接收模块;
(2) 串口输入到麒麟操作系统
(3) 麒麟操作系统的时间同步
(4) 麒麟系统的NTP 授时服务

图 常见拓扑结构
在中心机房配置1 台麒麟系统NTP 服务器,麒麟NTP 服务器直接获取北斗卫星时间数据实现本地系统的时间同步,通过NTP 网络时间同步协议对外提供授时服务。系统内的办公设备、堡垒机、防火墙、虚拟化集群、容灾备份系统、存储服务器及其他终端设备通过NTP 时间协议同步到麒麟NTP 服务器。麒麟NTP 服务器和北斗卫星直接同步,这就保证了整个系统的时间准确、稳定和可靠性。
在实际的项目使用中,推荐使用2 台或3 台NTP 服务器,在NTP 客户端配置多个NTP 服务器IP 地址,NTP 实时访问各个NTP 服务器,通过内部时间同步算法自动切换时间基准,任何一台NTP 服务器故障不影响NTP 客户端的时间同步,这种做法可以规避单点故障。
NTP C/S 授时原理
网络时延:
delay=(T4-T2)+(T3-T1)
客户端计算机时间偏差:
offset = ((T3-T1)-(T4-T2) )/2
客户机修正时间为T+offset
(Device A 为客户端,Device B 为NTP 服务器)
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 小时。
大部分服务器在出厂时都安装了NTP 协议,在NTP 实施时只需将NTP 源指向现有NTP 服务即可。
AIX 、Solaris 、HP-UNIX 等UNIX 和Linux 系统使用系统自带的NTP 服务。在原有配置文件(/etc/ntp.conf ),增加如下语句,重新启动NTP 进程即可。
server 主时钟IP minpoll 4 maxpoll 4 prefer
server 备时钟IP minpoll 4 maxpoll 4
server 备时钟IP minpoll 4 maxpoll 4
tinker step 0 #linux 使用
其中, Linux 使用tinker step 0 配置缓慢调整,Aix 使用slewalways yes 配置缓慢调整,缓慢调整可规避闰秒时间调整对系统产生的影响。
备注:麒麟系统需包含串口的相关驱动程序!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69969420/viewspace-2937512/ ,如需转载,请注明出处,否则将追究法律责任。