欢迎光临
我们一直在努力

802.1AS时间同步协议原理、验证与抓包

前提提要:采用飞凌 嵌入式 的OK1028A-C开发板进行TSN相关功能的测试,OK1028A-C开发板基于NXP LS1028A处理器设计,双核 ARM Cortex-A72,原生支持6个千兆以太网接口,并内置一个支持TSN的4端口switch,后续TSN的相关子协议功能测试都将基于该开发板展开。

时间同步原理

报文类型分类

在这里插入图片描述

最优主时钟算法

PTP域内的各时钟节点在通过BMC协议动态选举最优时钟时,会依据Announce报文中所携带的时钟的第一优先级、时间等级、时间精度和第二优先级的次序依次进行比较,获胜者将成为最优时钟。比较规则如下:

  • 第一优先级高者获胜;
  • 如果第一优先级相同,则时钟等级高者获胜;
  • 如果时钟等级也相同,则时钟精度高者获胜;
  • 如果时钟精度还相同,则第二优先级高者获胜;
  • 如果第二优先级依然相同,则接口标识(由时钟编号和接口号共同构成)小者获胜。
  • 选出最优时钟并确认主从关系之后,根据主时钟的端口,域内的各个节点端口分配相应的端口类型 ,PTP域内的节点将会进行时钟同步。
  • 此后,主节点会定期发送Announce报文给从节点,如果在一段时间内,从节点没有收到主节点发来的Announce报文,便认为该主节点失效,于是重新进行最优时钟的选择。
    在这里插入图片描述
    图:时间同步报文中参与最优主时钟算法的相关字段
    在这里插入图片描述
    图:最优主时钟选举后的各网络端口角色分配
  • 时间同步

    PTP同步的基本原理如下:确认了时钟之间的主从关系之后,主、从时钟之间交互PTP协议报文并记录报文的收发时间,通过计算PTP协议报文往返的时间差来计算主、从时钟之间的往返总延时。如果两个方向的传输延时相同,则往返总延时的一半就是单向延时。从时钟根据这个单向延时、主时钟上Sync报文的发送时间和从时钟上接收Sync报文的时间差计算时间偏差,从时钟按照该时间偏差来调整本地时间,就可以实现从时钟与主时钟的同步。

    时延测量

    E2E(End-to-End)时延测量

    在这里插入图片描述

    主、从时钟间的往返总延时 = (t2 – t1) + (t4 – t3)
    主、从时钟间的单向延时 = [(t2 – t1) + (t4 – t3)] / 2 = [(t4 – t1) – (t3 – t2)] / 2
    注:这里的形式变化是有原因的,因为等式左边的计算方式的前提是主、从时钟的频率一致才能进行计算,如果主从时钟的频率不一致,那么可以将等式右边的式子中将(t4 – t1)乘上主时钟相对于从时钟的时钟频率比,当主从时钟的设备不同时,这点需要特别注意
    其他细节:单步同步与两步同步,延时计算滤波(滑动平均、指数滤波),主从时钟频率比计算、时延非对称

    P2P(Peer-to-Peer)时延测量

    在这里插入图片描述

    时延测量方式同E2E,时钟间的单向延时 = [(t4 – t1) – (t3 – t2)] / 2
    注:以上两端时钟不是master与slave的关系,而是对等的clock A与clock B,任何一个节点都可以是发起端。

    E2E与P2P的差异

    PTP域中时钟节点使用的链路时延测量机制必须相同,对于时钟节点类型全为BC(边界时钟)和OC(普通时钟)的PTP网络,使用端到端时延请求应答机制和点到点时延机制基本没有区别。
    E2E(End-to-End)时延测量是指从数据的源头到目的地的整个路径上测量时延。它涵盖了数据在网络中的传输、处理和传递的所有环节,包括发送端、中间节点和接收端。E2E时延测量可以提供整个通信链路的总体时延信息,帮助评估网络的性能和效率。允许链路中间存在不支持PTP协议的网络设备。
    P2P(Peer-to-Peer)时延测量是指在点对点通信中测量时延。它主要关注两个直接通信的节点之间的时延,不涉及中间节点的传输和处理。
    总结来说,E2E时延测量是全路径的时延测量,包括了数据在网络中的传输和处理过程,而P2P时延测量是点对点的时延测量,只关注两个直接通信节点之间的时延。

    频率同步

    由于时间同步域中网络设备之间存在差异,且时钟源存在温漂等,将会导致主从时钟之间的时钟频率存在差异,所以在进行时钟同步时需要进行频率校正。时钟间的单向延时 = [r * (t4 – t1) – (t3 – t2)] /2,其中r即主从时钟之间的频率比。一般的计算方式为:
    在这里插入图片描述

    r = (T(n+1)-Tn)/(T(n+1)‘-Tn’)
    时间偏差测量:主时钟按周期向从时钟发送Sync报文,并记录它的发送时间Tn’。从时钟接收到Sync报文时立刻把当前时刻Tn记下,于是得到主从时钟的“时间偏差=(Tn-Tn’)-单向链路延时”。

    验证步骤

  • 在两块飞凌开发板上安装linuxptp
  • 按照下图所示进行网络搭建,两块开发板分别命名为A板/B板,
  • 在这里插入图片描述

    其中A板的eno0端口IP设置为192.168.1.10,命令为

    ifconfig eno0 192.168.1.10

    B板的创建网桥br0,并将4个QGMII端口绑定到br0上,并设置br0端口IP,然后设置swp3端口IP和MAC,命令为

    brctl addbr br0 //创建网桥br0
    brctl addif br0 swp0 //将端口swp0绑定到br0
    brctl addif br0 swp1
    brctl addif br0 swp2
    brctl addif br0 swp3
    ifconfig br0 up //打开网桥br0
    ifconfig swp0 up //打开端口swp0
    ifconfig swp1 up
    ifconfig swp2 up
    ifconfig swp3 up
    ifconfig br0 192.168.1.1 //设置网桥br0 IP地址
    ifconfig swp3 192.168.1.13 //设置端口swp3 IP地址,正常来说交换机端口没有IP地址一说,这里是为了方便PC抓包
    ifconfig swp3 hw ether <MAC地址> //设置端口swp3 MAC地址,需与eno2 MAC地址不同
    ifconfig setageing br0 0 //将老化时间设置为0,方便抓包

  • 将PC的网络防火墙关闭,并将其以太网端口设置为192.168.1.111
  • 搭建完毕后测试A板能否ping通192.168.1.1以及192.168.1.13,确认链路连通性
  • 经过以上的网络配置,就可以在PC端打开wireshark准备抓包
  • 在A板执行命令:
  • ptp4l -i eno0 -m -2

    在B板执行命令:

    ptp4l -i swp0 -m -2

  • 终端界面显示主时钟的选取,以及主从时钟之间的链路延迟、时间偏移等信息,结果如下: A板被选择为主时钟
    在这里插入图片描述
    B板被选择为从时钟,B板的终端界面中可以看到其与主时钟的时钟偏移,以及链路延迟等状态。
    master offset值表示从主设备测量的偏移量(以纳秒为单位);
    s0,s1,s2表示时钟伺服器的不一样状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃性同步,只是缓慢调整;
    当从端口状态改变UNCALIBRATED 到SLAVE时,表示已经成功地与一个PTP主时钟同步。
    状态稳定后的时钟偏移在20ns以内,链路延迟在940ns左右
    在这里插入图片描述
  • ptp4l默认时间同步协议为1588,若要执行802.1AS时间同步协议,需指定配置文件
    首先将A板和B板中/usr/share/doc/linuxptp/gPTP.cfg文件中的neighborPropDelayThresh参数注释掉
    在这里插入图片描述
  • 然后A板和B板分别执行以下命令

    ptp4l -i eno0 -f /usr/share/doc/linuxptp/1 gPTP.cfg -m -2

    ptp4l -i swp0 -f /usr/share/doc/linuxptp/gPTP.cfg -m -2

    执行结果如下:
    在这里插入图片描述
    在这里插入图片描述

    抓包

    因为开发板无法进行端口镜像,采用将网桥br0的老化时间设置为0的方式进行抓包,这种抓包方式只能抓取单方向的数据包,即A板发送B板的数据包,所以按照最优主时钟算法,B板只能作为从时钟使用,在这种情况下,PC端只能抓取从时钟发送给主时钟的时间同步报文,可以通过以下命令指强制A板为从时钟的方式,使B板成为主时钟,此时再进行时间同步时,PC端即可抓取主时钟发送给从时钟的时间同步报文

    ptp4l 1 -i eno0 -m -2 -s

    如果对你有帮助,欢迎点赞收藏,后续将继续更新该系列。

    赞(0)
    未经允许不得转载:171主机测评 » 802.1AS时间同步协议原理、验证与抓包
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址