APP下载

一种基于时间感知整形器的TAS-WRR调度算法研究与实现

2021-05-10尹震宇刘浩林1张飞青1艾1岳1

小型微型计算机系统 2021年5期
关键词:实时性周期性队列

尹震宇,刘浩林1,,张飞青1,,谷 艾1,,李 岳1,

1(中国科学院大学,北京 100049)

2(中国科学院 沈阳计算技术研究所,沈阳 110168)

1 引 言

随着工业制造领域智能化和信息化的不断发展,应用于工业自动控制系统的工业以太网不仅要满足基本的通信需求,还应能保证数据通信的实时性与确定性.工业以太网中的数据根据通信需求可分为周期性实时数据、非周期性实时数据和非实时数据.周期性实时数据负责周期性控制和采样,非周期性实时数据用于传输报警信息和运维信息,非实时性数据用于系统管理及状态维护[1].当不同类型的数据流汇聚到网络中的交换设备上进行转发时,数据会因网络拥塞而造成冲突,导致实时性数据的通信延迟过大,周期性数据的周期性难以保证[2].因此,传统工业以太网难以满足工业自动生产对通信网络的实时性和周期性要求.

时间敏感网络是在IEEE 802.1标准框架下,基于特定应用需求制定的一组“子标准”,其目的在于为以太网协议建立“通用”的时间敏感机制,以确保网络数据传输的时间确定性[3].由于时间敏感网络可以提高网络的通信性能,已成为国内外研究的热点,并应用到多个领域中.吴源等人中运用TSN基于信用的流量整形器对不同数据流进行隔离,解决网络中低优先级数据的饥饿问题[4].Nsaibi等人在串行通信协议的基础上对TSN标准子协议进行扩展,应用在工业以太网中[5].

将TSN引入工业以太网中,可以隔离网络中的时间敏感数据和非时间敏感数据,使时间敏感流交换延迟得到保证.本文通过对数据划分优先级,在TSN时间感知整形器的基础上,结合改进的加权轮询调度算法,提出一种TAS-WRR调度算法,以保证时间敏感数据通信的实时性和延迟确定性.

2 相关理论基础

2.1 基于报文交换的时间同步技术

TSN调度算法的前提是需要网络中的各个设备具有同步的时钟,对时间有一致理解.时间同步机制是指网络中各个设备时钟之间的同步,而不是指网络中的时钟同外部的原子钟进行同步[6].TSN协议组中的802.1AS协议可以对网络中的设备进行时钟同步.

网络中的时钟根据相互之间的通信关系,分为主时钟和从时钟,对应的节点为主从节点[7].从时钟需要与主时钟进行校准,从时钟的校准过程是通过交换带有时间戳的数据报文来实现的.报文中携带着数据报文发送时的时间戳信息,从时钟根据时间戳来计算与主时钟的频率和相位偏差,从而纠正本地时钟,同时保证主从节点间的传输时间要一致[8].802.1AS协议允许在网络中分布的各个时钟精确同步到误差在1微秒内[9].

2.2 基于802.1Q协议的优先级划分机制

根据工业以太网中数据的通信需求,时间敏感网络采用IEEE 802.1Q协议中的优先级字段来对不同数据流划分优先级,以保证不同类型数据的通信质量.TSN中传输的数据帧是在普通以太网数据帧的基础上添加802.1Q标签,而在802.1Q标签中则可以对数据的优先级进行标定.数据帧的格式如图1所示.

图1 IEEE 802.1Q数据帧结构

802.1Q定义了数据帧的具体格式,允许在以太网数据帧头部中添加一个32位的域,该域位于源地址和以太网类型长度字段之间[10].该域包含16位的标签协议识别符(TPID)、3位的优先权代码点(PCP)、1位的标准格式指示(CFI)和12位预留位.其中,TPID的数值设置为0x8100,标识以太网帧支持802.1Q标签.PCP的长度为3比特,数值范围是从0到7,用来作为数据流的优先级.

在支持802.1Q的以太网交换设备中,可在端口缓冲区设置优先级队列,被转发到输出端口的数据帧根据优先级进入对应的队列中,优先级队列的数量设置为8个.

2.3 TSN时间感知整形器调度机制

TSN协议组中的IEEE 802.1Qbv子协议定义了时间感知整形器(Time Awareness Shaper,TAS).TAS通过预测并计算传输时间来对以太网帧的传输进行优化,并以此来保证数据在规定的时间内进行转发和送达[11].TAS在交换设备的缓冲队列后添加了门结构,门的开关状态随着时间的变化进行周期性变化,用门的开关状态来控制队列出队操作[12].门的开启关闭状态通过门控制列表(Cate Control List,GCL)来维护.

时间感知整形器的思想是将以太网上的通信划分固定周期,对不同优先级队列分配不同的门状态,将不同优先级的数据通信划分在同一周期内的不同时间片中[13].通过隔离高优先级的时间敏感流和低优先级的非时间敏感流,TAS可以保证时间敏感数据的通信质量.

3 TAS-WRR调度算法的设计

本文使用IEEE 802.1Q协议的优先级字段将不同类型数据划分为8个优先级.周期性实时数据由于对通信的实时性和周期性有较高要求,所以被标记为最高优先级.非周期性实时数据要求具有较低的通信延迟,被标记为第6优先级.非周期非实时数据根据流量类型和数据用途标记被为剩下的优先级.不同优先级的数据对应不通过的优先级缓冲队列.

针对不同类型数据在工业以太网交换设备中转发调度时存在的周期性和实时性问题,本文提出了TAS-WRR调度算法.该算法在将不同类型数据划分优先级的基础上,对数据通信时间进行划分,隔离高优先级的时间敏感性数据和低优先级的非时间敏感性数据,保证实时性数据的通信带宽.同时为了解决低优先级数据由于长时间得不到发送而造成的饥饿现象,算法采用加权轮询(Weighted Round Robin,WRR)的方法对不同优先级的非实时性数据进行调度转发.总体算法流程如图2所示.

图2 TAS-WRR调度算法流程

3.1 基于时间感知通信时间划分的设计

时间感知整形器利用门结构控制不同优先级数据的发送,当优先级队列的门为开启状态时,允许数据在该时间段内进行转发通信.门控制列表维护门的开关信息,门状态是由8位二进制数组成,分别对应8个优先级队列,0代表对应缓冲队列的关闭状态,1代表对应缓冲队列的开启状态,门状态随着同步时钟的变化而进行周期性变化.

利用门控制列表,将通信时间进行周期性划分,同时每个周期又划分为两个时间片.最高优先级队列在第1个时间片内将门状态设置为开启,允许周期性实时数据进行转发通信;优先级0~5的队列在第2个时间片内将门状态设置为开启,允许非实时性进行转发通信;非周期性实时数据不受门状态的控制,在周期性实时数据的发送间隔内进行转发通信,并可以抢占低优先级非实时性数据的发送.在每个周期的末尾设置一个保护带,在保护带里禁止发送任何数据,避免因上个周期数据帧传送未完成而对下个周期数据传送造成影响.通信时间的划分如图3所示.

图3 通信周期的划分

最高优先级的周期性实时数据进入缓冲队列后,根据门状态和预留的传输带宽进行转发通信,在每个周期的第1个时间片内进行转发通信.同时,其转发通信时间记录在流预流信息表内.

非周期性数据在转发时,首先获取流预留信息表,在周期性数据的通信空闲时进行转发.如果发送端口有低优先级的非实时数据进行转发,非周期性实时数据会打断其通信,进行抢占式发送.

进入第2个时间片后,不同优先级的非实时性数据初始化缓冲队列的权重,进行加权优先级的调度.

3.2 基于加权轮询的门控制调度算法的设计

在周期的第2个时间片,控制所有非实时数据优先级队列的门状态都设置为开启转态,允许非实时性数据进行转发通信.对不同优先级的缓冲队列分配权重,进行加权轮询调度,只有符合发送条件的队列才允许发送数据.算法所用到的参数:priority[i]表示第i个队列的优先级;weight[i]表示第i个队列的权重值;Head_size[i]表示第i个队列队头数据帧的字节数;num表示队列的总个数;Max_byte[i]表示第i个队列允许连续发送的最大字节数.Send_byte[i]表示该队列当前已连续发送的字节数.

首先,将每个队列的Send_byte[i]初始化为0,表示当前该队列没有发送数据.队列的初始权重值和优先级别有关,优先级别越大,队列的权重便越大.权重和优先级的关系公式为:

weight[i]=priority[i]×2+1

(1)

为了保证高优先级的数据优先发送,所以连续发送的最大字节数也和优先级别有关,优先级别越高的队列,能够连续发送的字节数就越多.由于802.1Q数据帧的最大长度为1522字节,所以连续发送的最大字节数和优先级别的关系公式为:

Max_byte[i]=1522×(priority[i]+1)

(2)

对队列进行轮询,比较队列的权重大小,选择出权重最大的队列,同时比较当前的已发送的字节数和最大连续发送字节数Send_byte[i]和最大连续发送字节数Max_byte[i].如果Send_byte[i]

Send_byte[i]=Send_byte[i]+Head_size[i]

(3)

weight[i]=weight[i]-1

(4)

如果Send_byte[i]>Max_byte[i],则表示当前优先级别的队列已经发送了足够多的字节,不能过多的占用通信资源,转而查询出去该队列的权重最大的队列,同时初始化Send_byte[i]的值为0.当队列的权重值都为0是,则重新初始化队列的权重值.

3.3 TAS-WRR调度机制的设计与实现

本文在交换设备网络协议栈的基础上,根据TAS-WRR调度算法,设计并实现了TAS-WRR调度模型.

交换设备的软件实现环境为Linux系统,数据发送和接收端口的网卡型号为Intel e1000.不同类型的数据由交换设备的接收端口进入,根据MAC表信息转发进入发送端口.

首先,设计并实现发送端口的数据帧分类器,运用frame_classify()函数读取IEEE 802.1Q标签中的3位VLAN优先权代码,从而获取到该数据帧的优先级,并根据优先级推入到不同的优先级缓冲队列中进行排队等待发送.

其次,将发送端口的存储结构进行修改,设置成多级队列结构,来对不同优先级的数据进行分类存储.

最后,设计并实现数据调度模块,数据调度模块又分为门控制列表、流预留信息表和WRR数据调度子模块.修改网卡驱动的发送函数,利用门控制列表将通信时间划分调度周期;根据流预留对对周期性数据进行调度转发;利用WRR数据调度子模块对非实时性数据进行加权轮询调度.

整体的调度模型如图4所示.

图4 TAS-WRR调度模型

网卡驱动修改后,进行模块化的编译,生成e1000.ko文件.并将生成e1000模块重新加载如内核.

4 实验测试与分析

4.1 测试平台的搭建

测试平台由多网口服务器和PC机组成.多网口服务器作为交换设备对数据进行调度转发;3台PC机分别作为周期性实时数据、非周期性实时数据和非实时性数据的发送端.2台PC机作为数据的接收端.设备配置如表1所示.

表1 设备配置

数据接收端和数据发送端通过交换设备进行连接通信,组成工业以太网.交换设备的5个网口分别连接一个数据发送端或数据接收端.3个数据发送端通过交换设备,同时向两个数据接收端发送数据.整体网络搭建如图5所示.

图5 测试网络的搭建

4.2 测试及分析

数据报文的通信延迟是指从数据发送端到数据接收端所用的时间,可以对网络通信的实时性进行判断.通信延迟是通过在数据接收端获取数据报文时间戳中记录的发送时间,并根据当前系统时间进行计算的.周期性实时数据多用于携带控制信息,其数据负载较小,数据包大小设置为68字节,进行周期性连续发送.非周期性实时数据多用于携带报警和运维信息,数据负载小,数据包大小设置为68字节,且随机进行发送.非实时性数据携带的信息量较大,设置为1022字节,不同优先级数据随机进行发送.

将网络中的设备进行同步,保证不同设备间对时间有一致的理解,通信周期设置为2ms.3个数据发送端同时开启,向两个数据接收端发送数据,并在接收端对数据通信延迟进行计算统计.

对周期性数据在标准工业以太网和运用TAS-WRR调度算法改进后工业以太网中的通信延迟进行对比测试.周期性数据每个周期连续发送50个数据包,截取两个通信周期的数据,进行统计如表2所示.

表2 周期性数据通信延迟统计

周期性实时数据在标准工业以太网和运用TAS-WRR调度算法改进后的工业以太网中的通信延迟详细统计如图6所示.

图6 周期性数据延迟统计

同样,对非周期性实时数据在标准工业以太网和运用TAS-WRR调度算法改进后工业以太网中的通信延迟进行对比测试.非周期性实时数据根据周期性数据预留信息表,在周期性数据发送的空闲时间段进行随机发送,统计100个非周期性实时数据如表3所示.

表3 非周期性实时数据延迟统计

非周期性实时数据在标准工业以太网和运用TAS-WRR调度算法改进后的工业以太网中的通信延迟详细统计如图7所示.

图7 非周期性实时数据延迟统计

对非实时数据在标准工业以太网和运用TAS-WRR调度算法改进后工业以太网中的通信延迟进行对比测试.非实时性数据源对不同的优先级数据进行随机发送,截取每个优先级100个数据包进行统计分析,如表4所示.

表4 非实时数据延迟统计

通过周期性数据、非周期性实时数据和非实时数据在标准工业以太网和运用TAS-WRR调度算法改进后的工业以太网中通信的对比测试,本文进行如下分析:

周期性数据在运用TAS-WRR调度算法改进后的网络中具有较小的通信延迟,并且数据的抖动较小.分析来看,由于改进后的网络为周期性数据预留了带宽,使其不再进行抢占式的传输,避免了因抢占操作带来的时间开销造成通信延迟增加和波动.

非周期性实时数据在改进后的网络中具有较小延迟.这是由于非周期性实时数据在改进的网络中进行发送时,提前获取了周期性数据的发送信息,在其发送空闲时间内进行发送,避免了在交换设备中的排队等待现象.同时,由于发送端口存储结构改为多级缓冲队列,数据帧在队列中查询和出队操作更高的效率.

不同优先级的非实时数据在原始网络中具有较高的通信延迟,并且低优先级数据包通信延迟过高,出现饥饿现象.而在改进后的网络中,不同优先级的转发调度采用加权轮询算法,低优先级数据包的通信延迟有了很大的减少,有效地解决了因长时间等待而造成的饥饿现象.

综上所述,将TAS-WRR调度算法应用于交换式工业以太网,可以很好的提高网络通信的实时性和确定性.

5 结 论

为了提高不同类型数据在工业以太网交换设备中转发通信的实时性和确定性,本文将时间敏感网络引入工业以太网,提出了TAS-WRR调度算法,根据该调度算法设计并实现了TAS-WRR调度机制.通过对不同类型数据在原始工业以太网和运用TAS-WRR调度算法的工业以太网中通信进行对比测试,结果表明TAS-WRR调度算法可以很好的保证周期性实时数据的实时性和周期性,减小非周期性实时数据的通信延迟,并能有效的提高非实时数据的通信质量.在本文试验研究的基础上,下一步的研究工作应放在提高具有多级交换设备复杂工业以太网的通信性能上.

猜你喜欢

实时性周期性队列
智能网联车辆队列紧急工况控制策略设计*
队列队形体育教案
一般函数的周期性与三角函数相结合的两个重要结论
计算机控制系统实时性的提高策略
磁场周期性问题的剖析
青春的头屑
如何快速解答抽象函数对称性与周期性的问题
可编程控制器的实时处理器的研究
基于B/S的实时用户行为检测管理系统设计与实现
队列操练