PTP同步的触发和PathDelay流程的触发
Transmission of a Sync message
除非另外说明,否则port在不满足以下条件时不应该发送Sync message。
MASTER状态下的port应周期性地发送Sync message,类型为多播。
这样的Sync message发送的mean interval(以秒为单位),以2为基的对数,应与portDS.logSyncInterval的值相当。
节点应有90%的把握,消息发送的间隔在portDS.logSyncInterval对应的间隔的±30%范围内。
对于two-step clock,当有Sync message发出时,应尽快发送对应的Follow_Up message。
Transmission of a Delay_Req message
只有满足以下条件时,clock才能发送Delay_Req message(除非特别说明,否则Delay_Req message一般也是多播):
- port in SLAVE or UNCALIBRATED state
- 设备被配置为实行delay request-response mechanism。
- 满足以下时间要求:
- 初始的Delay_Req message应在需要的时候传输。
- 后续的Delay_Req messages传输的 mean interval(以秒为单位),以2为底的对数,应有90%的把握不小于portDS.logMinDelayReqInterval。
在满足以上的时间要求的同时,Delay_Req messages的发送时间也需要满足以下选项之一:
- Delay_Req messages的发送时间之间的interval的值,应该取自一个随机分布。若非特别说明,则此随机分布应是一个均匀随机分布,最小值为0,最大值为秒。
当一条message被发出时,计算出一个新的随机值。
此分布的粒度(granularity)取决于具体实现,但不应大于秒(也就是说在取值区间内,可以取的值应该大于16个)。
此选项一般被用在multicast communication model下,不过unicast model也可以用。 - Delay_Req message应该在收到Sync message后尽快发出。
此选项一般用在unicast model中。除非在profile中特别指定,否则一般不用在multicast model。
Delay_Resp message应该在收到Delay_Req message后尽快发出。
根据7.7.2.4,portDS.logMinDelayReqInterval的值是由master clock根据自己处理Delay_Req message的能力来确定并广播给slave clock的。此值的最小值为portDS.logSyncInterval,最大值为logSyncInterval+5,即每32条Sync messages发一条Delay_Req。
portDS.logDelayReqInterval的取值,是路径延迟更改的响应性与这些消息的传输所施加的通信和计算负荷之间的折衷。
Transmission of a Pdelay_Req message
只有满足以下条件时,一个clock才能产生Pdelay_Req message:
- 此设备被配置为实行peer delay mechanism。
- 此设备满足以下的时间需求:
- 初始的Pdelay_Req message应在需要的时候发送。
- 之后的Pdelay_Req messages,其发送的mean interval(以秒为单位),以2为底的对数,不小于portDS.logMinPdelayReqInterval。
Pdelay_Resp messages应该在收到Pdelay_Req后尽快发出。
Pdelay_Resp_Follow_Up messages应该在发出Pdelay_Resp后尽快发出。
portDS.logMinPdelayReqInterval的取值,是链路延迟和启动时间的波动,与这些消息的传输所施加的通信和计算负载之间的折衷。