良许Linux教程网 干货合集 IEEE 1588 Sync报文单步时间戳

IEEE 1588 Sync报文单步时间戳

在IEEE 1588协议中,单步时间戳被应用于Sync报文和Pdelay_resp报文。这两种报文的单步时间戳实现具有不同的定义。本文将介绍Sync报文的单步时间戳,它是单步时间戳最常见的应用场景。而支持Pdelay_resp报文的单步时间戳的网络硬件非常罕见,目前在Linux内核中也没有一种硬件设备支持该功能。

单步时间戳的概念

让我们通过Sync报文的发送来理解什么是两步时间戳和单步时间戳。
image-20231015154438359
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报文分配了指定的以太网层,UDP/IP层的多播地址、端口和ethtype之外,还对报文的数据内容做了定义。
Sync报文的数据内容定义如下。它是由一个header和一个originTimestamp的字段组成。
image-20231015154444241
其header中的各个字段定义如下。
image-20231015154447541
我们在这里重点关注两个字段,一个是originTimestamp,一个是correctionField。因为Sync报文两步时间戳和单步时间戳的区别就在这两个字段的内容上。
originTimestamp字段代表对Sync报文发送时间的评估值。其格式定义如下。在两步时间戳的情况下,该字段为0。

struct Timestamp
{
 UInteger48 secondsField;
 UInteger32 nanosecondsField;
};

correctionFeild字段代表Sync报文从网络硬件发出之前,经历的链路延迟。它的类型是interger64,其数值是链路延迟的纳秒值乘以2^16。例如,2.5ns可以表示为0x0000000000028000。通常作为master构建的Sync报文发送时,两步时间戳的情况下该字段为0。

Sync报文单步时间戳插入

上面我们了解到,在两步时间戳的情况下,Sync报文的originTimestamp和correctionFeild字段的数值都是0。那么单步时间戳有什么不同呢。

  1. 在发送Sync报文之前,originTimestamp字段会被写入发送时间评估值,这个评估值和真正的发送时间戳要求误差要在1s之内。通常是软件读出1588 time写到这个字段内。
  2. Sync报文真正从硬件发送的时候,硬件会在correctionFeild字段加上一个延迟时间。

这样correctionFeild + originTimestamp的时间值就是真正的发送时间戳。如果报文是UDP报文的话,硬件还要修改UDP校验和。

我们用wireshark可以查看一个收到的单步时间戳的Sync报文。注意correctionFeild和originTimestamp两个字段。
correctionFeild
image-20231015154453350
originTimestamp
image-20231015154456981

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部