欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。
在IEEE 1588中,报文的单步时间戳应用于Sync报文和Pdelay_resp报文。这两种报文的单步时间戳的实现有着不同的定义。本文介绍的是Sync报文的单步时间戳,这是单步时间戳最常见的应用,而支持Pdelay_resp报文的单步时间戳的网络硬件非常少见,目前的linux内核中,都没有一种硬件设备支持它。
什么是单步时间戳
什么叫两步时间戳,什么叫单步时间戳?我们结合Sync报文的发送来看一下。
Master在发送Sync报文时,记录发送时间戳t1,紧接着通过发送一个Follow_up报文,把t1告诉slave。所以说对slave而言,接收Sync报文并且拿到Sync报文的发送时间戳t1,是需要master的两步发送。这种情况下的时间戳,就叫做两步时间戳。
单步时间戳实际上省去了发送Follow_up报文的步骤,在Sync报文从master的网络硬件发出来的同时,网络硬件会直接在报文上插入t1的时间信息。这样slave在收到Sync报文的时候,报文上已经包含了t1的信息。这种情况下的时间戳,就叫做单步时间戳。
显然,使用单步时间戳必须要网络硬件支持才行。
Sync报文的格式
在进一步了解单步时间戳如何将发送时间信息插入到Sync报文上之前,我们不得不先看看Sync报文的格式。IEEE 1588除了对1588报文分配了指定的以太网层&