支持精确时间同步协议的分布式交换机Linux驱动研究

来源:优秀文章 发布时间:2023-03-10 点击:

鲍中,鲍广建,刘娇

(中科芯集成电路有限公司,江苏无锡,214072)

在现代通信网络中,无论是汽车电子还是电信行业中的通信终端设备之间频率、时间差异都要求保持在严格要求的范围内,甚至达到ns级别,即时钟同步。精确时间协议PTP(Precision Time Protocol)是一种对标准以太网终端设备进行时间和频率同步的成熟协议,行业内也称IEEE 1588 协议。

通信网络中如果需要实现时钟同步,一定需要支持精确时钟同步协议的分布式(DSA)交换机。在linux驱动体系中,分布式交换机驱动是linux内核的一个子系统,主要用于支持使用Linux系统的特定供应商的交换机。分布式交换机设计的理念就是能够使用不需要经修改的常用Linux网络工具,如bridge、ifconfig等。

时钟同步网网络架构由GM(Grand master)、BC(Boundary Clock)和OC(Ordinary Clock)组成,至少需要分为2级,2级节点以下被分为端节点,网络架构示意图如图1所示。

图1 分级时钟同步网络架构图

在时间同步协议网络中,所有节点按照主从关系进行划分,下一级的节点为上一级节点地从,上一级节点为下一级节点的主,最高等级的节点为Grandmaster,即所有节点的主时钟,整个同步网络中所有节点都参照Grandmaster的时钟。时间同步网络中的各个节点之间主从关系要么人为设置,要么采用 BMC(Best Master Clock)算法进行实时的选举。

OC(Ordinary Clock)普通时钟一般为端节点,即需要同步的各个终端设备;
BC(Boundary Clock)一般为网络中的交换设备,负责网络Grandmaster时钟的下发。Grandmaster时钟主要通过PTP报文进行下发数据。IEEE 1588 v2定义了PTP报文基于IPv4 和 Ethernet的报文格式,具体格式见图2和图3。

图2 基于 IPv4 的 PTP 报文

图3 基于Ethernet的PTP报文

2.1 建立主从关系

精确时间同步协议网络通过端口收发Announce(通告)报文,实现了端口数据集与端口状态机之间的信息交互。为了在不增加系统开销的情况下提高协议处理能力,需要对端口状态进行控制。BMC(Best Master Clock)算法将端口数据集与端口状态机进行对比,实现时钟的主从关系。主从关系通常按照如下步骤实现主从关系的建立:

1)接收和解析来自网络设备中的Announce报文;

2)利用BMC(最佳主时钟)算法,对最优时钟和端口的推荐状态进行决策,包括Master(主), Slave(从)或者是Passive(被动)状态 ;

3)基于端口协商后的状态对端口数据集合进行更新;

4)根据所述推荐状态及所述状态进行事件决策,基于所述端口状态机,确定端口的真实状态,实现了时钟同步网络。状态判定事件包括Announce(通告)报文的接收事件和接收Announce(通告)报文的超时结束事件,接口收到Announce(通告)消息的间隔时间大于超时时间间隔时,将此精确时间同步协议接口的状态设置为Master。

2.2 频率同步:实现从节点频率与主节点同步

当主从关系建立后,即可以进行频率同步和时间同步。PTP本来只是用户设备之间的高精度时间同步,但也可以被用来进行设备之间的频率同步。

精确时间同步协议记录了主从设备间在事件报文交换过程中生成的时间戳,对主从设备间路径延迟及时间偏移进行计算,实现了主从设备在时间与频率上的同步,设备需要支持2种模式搭载时间戳,分别是单步(One step)时钟模式和两步(Two step)时钟模式。

2.3 时间同步:实现从主节点与从节点时间同步

PTP根据计算路径延时机制划分可以分为两种方式:Delay以及Pdelay方式

1)E2E(End to End)延时请求 - 请求响应 :基于主从时钟之间的总体路径延时时间,计算时间差;

2)P2P(Peer to Peer)对端延时 :根据主从时钟之间的整条链路延时时间计算时间差。

3.1 分布式驱动体系分析

以太网交换机一般由多个前置面板接口,一个CPU管理接口。DSA子系统在硬件上依赖于管理接口。管理接口从交换机中接收以太网帧,经过Linux网络协议栈的分析处理。对于每个前面板端口,DSA子系统创建专门的以太网节点(可设置IP地址),使用Linux网络协议栈控制端节点,这些虚拟出来的网络节点被称为“从属”节点。

分布式交换机硬件需要支持“交换机标签”,这些标签的插入位置由交换机芯片厂商决定。这些标签是为了让CPU管理接口获取信息:

(1)帧来自的物理端口

(2)帧转发原因

(3)CPU发起的流量转发到特定端口

DSA实现的软硬件拓扑如图4所示。

图4 Linux DSA 拓扑图

3.2 支持时钟同步的Linux驱动开发

交换机会把图5中的以太网PTP报文发到管理端口上,其中标签协议的确切格式是特定于交换机提供商,但是一般Tag包含以太网帧来自/应该发送到哪个端口等信息。

图5 switch on PTP over Ethernet

在Linux DSA分布式子系统中,所有的标记协议都在net/dsa/tag_*.c文件中。为了处理包含Tag的网络帧需要在协议栈中添加Hook函数,Hook对于接收到的网络数据帧处理如图6所示。

图6 Hook 处理流程图

在应用层进行ptp测试的软件主要采用开源的ptpd、ptp4l或者gptp软件,三者在ubuntu下都可以方便地通过apt安装。数据帧在Linux下的数据帧流向如图7所示。

图7 DSA子系统驱动原理图

目前支持PTP协议的标准协议栈有3种:gptp, ptp4l和ptpd,三者主要工作在linux系统下,其中ptpd较早也容易移植到裸机下,此次采用ptpd进行测试验证:

图8 实验网络架构图

图9 实验记录

在linux 系统下,使用PTPd协议栈进行时钟同步验证,同步10秒后,时钟端节点和主时钟节点实现了时钟同步,同步精度可达到35ns,小于MAC层规定的100ns,实验取得了预期的效果。

本文对现代通信网络中常用的PTP(Precision Time Protocol)协议进行了综合分析,分别对基本的时钟同步原理及主从关系建立的步骤进行了分析。接着对时钟同步网络中的关键节点交换机在Linux下的驱动程序进行了分析,包括数据帧的格式和数据帧的流向,最后运用PTPd协议栈对PTP协议进行了时钟同步验证,通过主时钟向在交换机的作用下向从节点发送同步消息,成功进行了网络时钟同步。

猜你喜欢 以太网交换机报文 基于J1939 协议多包报文的时序研究及应用汽车电器(2022年9期)2022-11-07基于1500以太网养猪场的智能饲喂控制系统的设计与实现装备制造技术(2020年1期)2020-12-25CTCS-2级报文数据管理需求分析和实现铁道通信信号(2020年4期)2020-09-21浅析反驳类报文要点中国外汇(2019年11期)2019-08-27更换汇聚交换机遇到的问题网络安全和信息化(2019年7期)2019-07-10基于地铁交换机电源设计思考电子制作(2019年24期)2019-02-23缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机中国公共安全(2017年11期)2017-02-06谈实时以太网EtherCAT技术在变电站自动化中的应用电子制作(2017年24期)2017-02-02ATS与列车通信报文分析铁道通信信号(2016年8期)2016-06-01浅谈EPON与工业以太网在贵遵高速公路中的应用中国交通信息化(2015年11期)2015-06-06推荐访问:分布式 交换机 精确
上一篇:基于GSM的试验船安全防护报警系统设计
下一篇:挣扎于城市边缘的蜉蝣——双雪涛《平原上的摩西》中李守廉人物形象分析

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有