ntp客户端

ntp在linux中的用法

我们主要介绍ntp client端

1、在client端,首先配置ntpd.conf文件,添加server ip(时间服务提供商的ip或者主机名),可以指定多个

启动ntpd服务:/etc/init.d/ntpd start

此时ntp服务启动,通过udp的123端口与server端通信,开始时间同步

2、client和server的时间同步有两种情况:时间跳变(time step)和渐变(time slew)

跳变是指在client和server间时间差过大时(默认128ms),瞬间调整client端的系统时间。

渐变是指时间差较小时,通过改变client端的时钟频率,进而改变client端中“1秒”的“真实时间”,保持client端时间连续性。

举个例子,如果client端比server端慢10s,通过ntpd,client端的中每1秒现实时间是1.0005秒!虽然client端的时间仍然是1秒1秒增加的,通过调整每秒的实际时间,直到与serrver的时间相同。在这个例子中,10s/0.0005s=20000s,20000s/60/60=5.55555小时,即需要5个多小时才能消除10s的误差。

在linux中,很多应用软件依赖系统的时间连续性来正确工作,系统时间的跳变将导致软件出现意想不到的问题,所以时间渐变才是ntpd的主要应用场景。

3、那么怎么禁止ntpd的时间跳变,只采用时间渐变呢?

刚开始通过man ntpd,尝试在ntpd启动配置(/etc/sysconfig/ntpd)中加-x选项:

-x

Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold. This option forces the time to be slewed in all cases. If the step threshold is set to zero, all offsets are stepped, regardless of value and regardless of the -x option. In general, this is not a good idea, as it bypasses the clock state machine which is designed to cope with large time and frequency errors Note: Since the slew rate is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s. Thus, an adjustment of many seconds can take hours or days to amortize. This option can be used with the -q option.

结果发现-x只是提高了时间跳变的阈值,在client与server时间差小于600秒时,时间的调整使用渐变,大于600秒,时间调整使用跳变形式。

查了很多资料,最后确定在ntp配置文件/etc/ntp.conf中添加字段:

tinker panic 600


这句话的意思是在时间差大于600秒的情况下,ntpd进程自动关闭,ntpd退出时会向/var/log/messages中写入log

在时间差过大时,应该由用户手动设置系统时间或者调用ntpdate命令,这样能避免因为时间跳变出现的问题。

总结:

渐变的话,在偏差600s以内系统会很慢(slew)的方式追赶,超过600s后系统系统会跳跃式调整(step),这样不安全,所以要在/etc/ntp.conf中添加tinker panic 600(默认tpanic threshold值是是1000s,让偏差在超过600s后ntpd进程自动关闭)

 

Offset(与服务器的时间差)

0-128ms

128ms-600s

600s-1000s

1000s以上

使用-X参数(slew mode)

微调

微调(速度大约是0.5ms/s,调整600秒要14天左右)

跳跃

退出(加-g参数可忽略)

不使用-X参数(step mode)

微调

跳跃

跳跃

退出(加-g参数可忽略)

参考http://blog.csdn.net/judwenwen2009/article/details/51661239

 

 

 

转载于:https://www.cnblogs.com/dotagg/p/6363134.html

SNTP协议客户端实现以及数据包格式: LI:跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。 VN:版本号。 Mode:工作模式。该字段包括以下值:0-预留;1-对称行为;3-客户机;4-服务器;5-广播;6-NTP控制信息。NTP协议具有3种工作模式,分别为主/被动对称模式、客户/服务器模式、广播模式。在主/被动对称模式中,有一对一的连接,双方均可同步对方或被对方同步,先发出申请建立连接的一方工作在主动模式下,另一方工作在被动模式下; 客户/服务器模 式与主/被动模式基本相同,惟一区别在于客户方可被服务器同步,但服务器不能被客户同步;在广播模式中,有一对多的连接,服务器不论客户工作 在何种模式下,都会主动发出时间信息,客户根据此信息调整自己的时间。 Stratum:对本地时钟级别的整体识别。 Poll:有符号整数表示连续信息间的最大间隔。 Precision:有符号整数表示本地时钟精确度。 Root Delay:表示到达主参考源的一次往复的总延迟,它是有15~16位小数部分的符号定点小 数。 Root Dispersion:表示一次到达主参考源的标准误差,它是有15~16位小数部分的无符号 定点小数。 Reference Identifier:识别特殊参考源。 Originate Timestamp:这是向服务器请求分离客户机的时间,采用64位时标格式。 Receive Timestamp:这是向服务器请求到达客户机的时间,采用64位时标格式。 Transmit Timestamp:这是向客户机答复分离服务器的时间,采用64位时标格式。 Authenticator(Optional):当实现了NTP认证模式时,主要标识符和信息数字域就 包括已定义的信息认证代码(MAC)信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值