1588V2的问题
2.Delay_Req报文是接收到SYN报文后立即发送,还是有一定是时间间隔(与SYN是相互独立的?)时间间隔是多少?
一年多没有再碰1588了,不知道记忆还有没有偏差:
1、是收到sync后,就可以调整。
2、delay-req也有自己的发送周期,不是说收到sync后立即发送。
按1588对等模型原理来说,offset和delay都是要通过t1 t2 t3 t4四个时间戳解一个二元一次方程组才能算出线路时延delay和从时钟与主时钟的时间偏差offset,所以我觉得应该是收到delay-response报文后才能解出offset值做调整,offset到底要调整多少又与slave具体算法有关,需要多个样本值做处理。
同时这个公式还可证明delay和offset只与t2-t1 以及t4-t3 有关,与t3-t2无关,所以delay-request和sync是独立的,1588报文协议中规定了各种通用报文和事件报文的发送间隔,可以参看一下。
btw,在g.826x标准中规定了只收到sync报文可调整slave与master的频偏,但我觉得只通过sync无法调整offset,至于是收到几次sync和delay-response做的调整和算法有关。
是在收到delay-resp后同步的
snyc 报文是进行偏移量测量的
delay_resp 是进行延时测量的
如果没有delay 没有算出来 那么时间是没法同步的
1588时间同步原理: 首先master发送snyc报文,我们记为T1,slave受到snyc报文后,我们记录时间为T2 那么我们就可以计算出偏移量 offset=t2-t1+delay
delay为主从传输时延, 为了计算出时延,所以master在t3时刻发送delay req报文,slave受到delay req报文之后 会在t4时刻答复req resp报文 一计算出时延 delay=t4-t3-delay
计算出时延之后 slave才会对时间进行调整 同步于master时间