柴安颖,马 跃,尹震宇,李明时,李成蒙,高珊珊
(中国科学院大学,北京 100049) (中国科学院 沈阳计算技术研究所,沈阳 110168)
工业生产过程中,不同种类传感信息对数据传输量、传输实时性等要求均有不同,保障工业网络传输的实时性,提高传感数据传输效率,确保突发敏感数据的实时传输,是工业物联网通信领域亟待解决的重要问题.随着网络技术的不断发展,传感器网络近年来引起了广泛关注.文献[1]针对资源受限传感器网络中实时与非实时数据混合传输问题,提出了一种动态多优先级分组调度方法,降低通信过程端到端数据传输的延迟,并提升数据通信的实时性[1].文献[2]提出了一种优先感知多通道自适应框架,该框架引入优先感知调度方法,有效提高了实时流量和动态通道的配置效率,并保证了网络数据优先级的动态灵活调整和传输的低延迟[2].文献[3]针对无线网络中链路带宽资源缺乏导致的数据传输性能的瓶颈,提出了一种多优先级自适应的接纳控制算法,降低了无线网络通信的阻塞率、丢弃率以及未完成率[3].文献[4]针对CPS中传统调度策略无法满足系统任务多样性传输的问题,提出了一种动态多优先级调度算法,混合了抢占式调度和非抢占式调度方法,减少了数据传输时延,提高了系统稳定性[4].文献[5]利用无线传感网中差异化调度策略,提出了一种基于多优先级的数据分组调度机制,解决了网络中重要控制类信息高质量传输问题,保障了高优先级数据的传输性能,提高了系统利用率[5].文献[6]针对传感器网络各节点间数据传输无法实现超可靠性通信的问题,提出了一种基于最小控制开销和反馈机制的实时路由协议,降低了传感器数据传输的时间延迟,实现了数据的超可靠性实时传输[6].文献[7]提出了一种实时高效的资源调度和优化框架,建立了高效的资源调度优化模型,实现了大数据流的高能效和低响应时间传输,降低了数据传输时延[7].上述方法虽然在一定程度上提高了网络数据通信实时性,但在工业物联网的大数据量传输条件下[8],依然无法满足工业网络中各类感知信息传输的实时性要求.
基于以上问题,本文在利用IEEE802.15.4e时隙传输机制的基础上,提出一种基于服务区分的实时数据传输调度模型,将模型动态队列中各类通信数据分为不同优先级进行传输,利用多优先级感知时隙数据传输方法,实现多个时隙组合为一个感知时隙,并根据业务的不同优先级完成感知时隙的合理分配,提高时间敏感数据的实时传输,保证了不同时延容忍度感知信息传输的实时性要求.
本文所提出的一种基于服务区分的实时数据传输调度模型包含两部分,模型总体架构如图1所示.首先模型将动态队列中的报警、状态、图像以及视频四类通信数据分为4种优先级进行传输[9],根据数据的不同类型,建立不同优先级缓冲队列,加入动态控制策略[10],实现多优先级队列空间的动态管理.
图1 模型结构图Fig.1 Model structure diagram
同时设计多优先级感知时隙数据传输方法,采用感知时隙传输结构,将时隙组合传输不同类别数据,优先级越高的数据,时隙分配越靠前,优先级越低的数据,时隙分配越靠后.在该模型中队列服务采用ACQS(Analyze,Classification, Queuing,Scheduling)服务模式,完成数据的优先级划分以及队列分类,在传输过程中利用多优先级感知时隙数据传输方法,对高优先级数据优先处理,保障突发敏感数据的实时传输,实现了模型数据调度的高效性.
在本模型起始阶段,采用多优先级队列动态控制方法动态控制缓冲队列空间,在传统的CQS(Classification,Queuing,Scheduling)架构基础上,提出一种ACQS(Analyze,Classification, Queuing,Scheduling)服务结构,设计并增加了数据分析模块,能够分析数据流传输过程中各类数据转发量及转发概率,为动态调整队列结构提供可靠保证,图2为ACQS多队列服务结构图.
图2 ACQS多队列服务结构Fig.2 ACQS Multi-queue service structure
在图2中,ACQS服务结构包含P1、P2和P33类队列管理器,其中P1代表数据分类与分析器,根据优先级服务顺序,对各类型数据包进行区分和归类,在传统CQS队列结构基础上,增加分组队列数据分析,统计各优先级数据流转发量及转发概率,优化队列转发结构,保证优先级队列长度动态调整的准确性.
P2代表分组队列管理器,以P1提供的数据分析以及当前各分组缓冲队列占用比为基础,动态调整各队列长度,提高各优先级队列对突发性数据流的处理能力,避免洪峰效应造成的网络拥塞,减少实时数据传输的网络延迟,同时在数据量减小情况下可缩短队列长度,节省服务器内存开销[11].
P3:队列调度器,采用感知时隙数据传输方法,将4组队列内的缓冲数据按照服务类型不同,分配到不同优先级时隙进行传输.
本模型所采用的多优先级队列动态控制方法,能够感知数据流中各优先级传输量,通过一定时间内数据量变化趋势,预测各类数据发送量,从而实现队列的动态调整,保证数据传输的可靠性.其中Qm代表需要传输的数据流,Qi(i=1,2,3,4)表示不同优先级数据缓冲队列长度,该队列空间长度动态可变,CM代表各缓冲队列占用总存储空间,具体计算公式如公式(1)所示.
(1)
基于服务区分的实时数据传输调度模型以ACQS多队列服务结构为基础,将设备数据划分为4种优先级,分别传输报警、状态、图像以及视频4类信息.多优先级队列动态控制方法对应4类数据分别建立4种缓冲队列Qi(i=1,2,3,4) ,Qmax代表各队列最大空间长度,每个队列由固定列长QC和动态列长QVi组成,其中i=1,2,3,4,见公式(2).
Qi=QC+QVi
(2)
令Qyi为已占用队列空间,在网络初始状态下,Qyi值为零,同时各优先级队列Qi与固定列长QC相等,队列初始状态表示见公式(3),M为常数,表示固定列长设定值.
(3)
在数据传输过程中,P1根据优先级顺序将数据分类,为保障数据实时性传输,本文采用指数平均预测算法计算各优先级数据流预测发生概率,算法复杂度低易于实现.当数据流经过时间段T时,由公式(4)可计算本时间段内各优先级数据流概率Pb{X=i},其中B为T时间段内数据流总量,Bi为该时间段内优先级为i数据流量,i=1,2,3,4.
Pb{X=i}=Bi/B
(4)
假设存在n个时间周期为T的时间段,第j个时间段内优先级为i的数据量为Bij,第j时间段内数据总流量为Bj,由公式(5)可得第j时间段内优先级为i的数据流传输概率P{X=i,Y=j}.
P{X=i,Y=j}=Bij/Bj
(5)
在n个时间周期内,执行指数平均预测算法,i=1,2,3,4,如公式(6)所示.
(6)
然后预测优先级为i的数据流发生概率P{X=i},μ为预测权重系数,i=1,2,3,4,如图3所示.
P{X=i}=μ*P{X=i,Y=1}+μ(1-μ) *P{X=i,Y=2}+…+(1-μ)n-2 *P{X=i,Y=n-1}+μ(1-μ)n-1*P{X=i,Y=n}
图3 数据流发送概率原理图
Fig.3 Sending probability schematic diagram
由于报警类信息实时性要求高于其他3类信息,且只在设备运行异常时触发产生报警数据,所以通常情况下报警类数据处于非饱和传输状态,动态调整队列长度能够节省队列资源开销,减轻服务器数据处理压力,其他3类队列根据时段内数据量大小调整队列空间长度,避免了突发数据流流量过大导致的网络拥塞问题.
P2判断各优先级队列拥塞情况,首先计算队列Qi未占用长度Qu,如公式(7)所示,当Qu低于Congest阈值时,认为该队列即将出现拥塞[12].
Qu=Qi-Qyi (7) 多优先级队列动态控制方法将已被检测符合拥塞要求的Qi,以优先级从高到低进行队列空间调整,扩增各调整队列动态列长QVi,如公式(8)所示,QVAi为扩增后各队列的动态列长,调整后队列长度为Qi=QCi+QVAi. QVAi=QVi+(QC+QVi)*P{X=i} (8) 在k段时间内,当各队列中空闲长度Qu与总长度Qi比值Rl高于Leisure阈值,且P{X=i}预测发生概率始终低于Prob,Prob为可调概率阈值,且Rl>Prob,对队列长度进行缩减,公式(9)计算队列长度缩减值Var. Var=(QC+QVi)*Leisure*(1-Prob) (9) 然后计算动态列长调整后长度QVAi,如公式(10)所示. (10) 由公式(9)和公式(10)可推倒出调整后Qi队列长度Li,如公式(11)所示. (11) 因此,当报警类数据或其他3类数据的传输量减小时,多优先级队列动态控制方法对各优先级缓冲队列空间实时作出调整,动态管理缓存空间,节省内存资源;当各类数据传输量突发性增大时,模型实时扩大缓存队列长度,适应大数据量缓存要求,减少数据包传输时延,满足各类数据差异化的QoS传输需求. 基于服务区分的实时数据传输调度模型采用感知时隙(Perception of Time Slot)传输结构,以下简称PTS结构.在数据传输过程中,时隙划分过多会导致媒介访问延迟的增长,本文规定一个感知时隙由4个单一时隙(mini-slot)组合而成,不同单一时隙分别传输不同优先级数据,如图4所示. 图4 PTS结构图Fig.4 PTS structure diagram 在PTS结构中,优先级越高的数据,时隙分配越靠前,优先级最低的数据,时隙分配在最后,按照传输需求在模型队列调度器P3内,利用感知时隙数据传输算法进行数据调度,具体如下: 已知网络中存在n个站点数据流f1,f2,f3,…,fn,分别向该模型传递数据,对于各数据流fi(i=1,2,3,…,n)而言,假设其帧长固定,数据周期发送,由公式(12)和公式(13)分别可得各数据流发送周期Ti以及模型调度周期Tl,其中Dfi代表帧长,Vi代表数据流的传输速度. Ti=Dfi/Vi (12) Tl=LCM(T1,T2,T3,…,Tn) (13) 在调度周期Tl内,存在m个等待传输数据的缓冲队列,感知时隙数据传输算法已设定PTS所包含的mini-slot数量,为每个时隙分配了固定的时间片,Ns即代表一个调度周期内的mini-slot时隙数.将PTS中所有mini-slot初始化为空闲,按序号顺次排列,由公式(14)可得各mini-slot时间长度Lst. (14) 各队列从传输开始到结束的时间段称为该队列的传输窗口,用wi表示.在初始状态下,各队列传输窗口wi时长与mini-slot时长Lst相等,对于不同类型的数据,分配相等的时隙长度,但高优先级数据在PTS内优先发送,初始条件设置见公式(15). (15) 当生产线设备触发报警,生成报警类数据传输,同时其他3类数据均正常发送时,各队列Qi均存在等待传输的数据.此时,各队列传输窗口wi值与Lst值相等,见公式(16). wi=Lst (16) 模型队列调度器P3按照优先级先后顺序,计算一个调度周期内各队列Qi的传输窗口,并实时分配到每个队列.模型根据wi值对Tl内Qi所要传输的数据长度进行有序调度,在PTS内寻找到未被占用并且时长为wi的mini-slot,该时隙在PTS中编号最小,并标记为占用.设Tstart.wtransmit(i,j)为第i个队列被分配的第j个mini-slot的开始时间,Wtransmit(i,j)代表队列i的第j个传输窗口,ti为各队列时间戳,公式(17)记录了各队列的在调度周期Tl内传输的起始时间. (17) 按照队列优先级,高优先级时隙分配完毕后检查下一优先级队列,直到网络中所有缓冲队列都分配完毕. 如图5所示,当各队列皆处于饱和状态时,模型实时调度在Tl周期内所有传输的数据包,调度器以传输窗口wi为基础,将各队列Qi数据包集合(data block)分配于不同时隙传输,充分利用PTS时隙长度,保证数据传输的高效性. 图5 队列饱和状态下模型调度原理图Fig.5 Schematic diagram of model scheduling in queue saturation 当各队列处于非饱和状态时,模型实时调度在Tl周期内所有传输的数据包,由于队列数据的非饱和性,调度器在传输窗口wi时间内,将各队列Qi在该时间段内到达的数据分配到PTS中进行传输,传输过程如图6所示. 在数据传输过程中,当生产线设备未触发报警时,队列Q1会长时间处于无缓存数据状态,PTS中分配传输Q1数据的mini-slot在调度周期内存在空闲,大大降低了时隙资源利用率.本模型采用多优先级动态调整时隙传输算法,根据各队列Qi缓存数据长度Li,调整时隙内数据传输类型,具体实现方法如算法1所示. 图6 队列非饱和状态下模型调度原理图Fig.6 Schematic diagram of model scheduling in queue unsaturated State 算法 1.多优先级动态调整时隙传输算法(TSDA) 输入:时隙传输开始时间Tstart.wtransmit,队列长度L,队列数n,固定传输窗口w,各队列时间戳ti 输出:调整后队列传输窗口Wtransmit,队列被分配时隙的传输开始时间Tstart.wtransmit 1.给定初始值μi←0,i←1; 2.fori←1tondo 3.μi←Extract(Li);//在ACQS中提取各队列长度 4.endfor 5.fori←1tondo 6.ifμi=0andi=0 then//报警类队列无数据传输 7.Wtransmit(i,j)←0; 8.Wtransmit(i+1,j)←Wtransmit(i+1,j)+wi 9.Tstart.wtransmit(i,j)←NULL 10.Tstart.wtransmit(i+1,j)←Tstart.wtransmit(i,j) 11.i←i+1 12.else//高优先级报警类队列正常传输 13.Wtransmit(i,j)←wi 14.Tstart.wtransmit(i,j)←ti 15.endif 16.endfor 当队列中存在高优先级报警数据传输时,多优先级动态调整时隙传输算法为各队列正常分配时隙进行传输,当队列中不存在高优先级报警数据传输时,为充分利用时隙资源,队列Q2将抢占队列Q1在本次调度周期Tl内所分配的时隙长度,此时PTS中mini-slot实际分配方案,如图7所示. 图7Q1队列无传输数据时隙分配图 模型实时检测队列数据长度,当调度器检测到队列Q1中产生数据缓存,算法立刻做出决策,由队列Q1抢占队列Q2所分配的原属于队列Q1的时隙,保证了PTS的高效利用,避免了感知时隙在调度周期内的资源浪费. 本文通过omnet++仿真实验,首先在网络不同数据量传输条件下,针对模型的多优先级队列动态控制方法的队列实时调整能力做出分析,保证队列空间的动态可调性.然后分析该模型在充分利用感知时隙传输数据过程中,不同优先级数据的吞吐情况,从而确定模型是否满足实时性要求,验证基于服务区分的实时数据传输调度模型在不同时延容忍度数据传输调度方面的优越性. 本实验通过运行4种业务数据进行仿真,来分析本文网络模型中多优先级队列动态控制方法在队列空间调控的性能.在仿真实验中,按照本文所提出的网络模型,将报警、状态、图像以及视频4类业务数据分为不同优先级,设定传感器网络每个通信数据包大小为100 byte,队列CM值为4×105byte,Congest阈值为0.2,4种不同优先级队列最大空间Qmax为105byte,以及各队列固定列长QC均为2×104byte. 在多优先级动态队列性能评估过程中,本文为适应工业场景下数据产生情况,对4种业务数据发包量有所区分.在测试前30s,模型没有产生报警类信息,随后进行发包并逐渐增加发包量,在60s-90s期间发送数据量趋于平稳,随后逐渐下降为零,符合工业环境中突发敏感数据的传输情况.状态、图像以及视频类信息数据量随着时间的增加而逐渐增加,在80s左右达到峰值,随后数据量逐渐下降并趋于平稳. 图8呈现了运行本模型得出的各数据类型数据传输量与对应动态队列的空间长度.图中Queue 1在没有报警数据产生的前提下,队列长度始终维持在2×104byte,当产生警报数据而且数据量随之增加时,模型队列空间随之增加,然后随着传输数据量的稳定而趋于平缓,最后在100s左右时,根据数据量的减小队列动态变小,直至数据传输量为0,动态队列稳定在2×104byte.Queue 2、Queue 3和Queue 4数据发送量变化大体相同,在0-30s之间数据发送量较小,模型队列空间较为稳定,此后数据量增加同时动态队列空间迅速增长,当模型在80s左右时数据发送量达到峰值,在此之前的60s左右模型已经分配最大队列空间来防止队列溢出,并随着传输数据量的减小而逐渐减小最后趋于稳定. 图8 各队列空间变化图Fig.8 Diagram of changes in the size of each queue 经实验验证得出,本模型所设计的动态队列控制方法具有一定的队列长度可预测性,能够适应大数据量及突发数据传输要求,满足数据差异化的QoS传输需求,能够保证模型的稳定性. 图9是对4种优先级数据网络有效吞吐率测试结果.本文依然沿用上述动态队列测试参数,并选取100s作为测试时长.在模型测试过程中,20s之前网络中无高优先级报警类信息进行传输,该类数据有效吞吐率没有显示,状态、图像以及视频类信息数据量始终按照相同趋势,随时间增加而逐渐增加.在0-20s之间,图像和视频两类低优先级数据有效吞吐率随发送数据量的增加而逐渐降低,而状态类数据并无太大变化,20s之后该类数据迅速下降,证明状态类数据在报警类数据没有传输之前,占用其感知时隙发送数据,当高优先级报警类数据存在时,进行抢占操作,导致单位时间内状态类数据有效吞吐率迅速降低. 图9 各优先级数据有效吞吐率变化图Fig.9 Diagram of effective throughput for each priority data 在实验测试过程中,高优先级报警类数据在20s-70秒期间,随数据量增长其有效吞吐率几乎不受其他优先级数据发送量的影响,在70s之后由于数据量增长过大导致吞吐性能下降明显,但相比中低优先级数据有效吞吐率下降较小,低优先数据有效吞吐率在整个测试过程中下降十分明显.实验证明,本模型所设计的多优先级感知时隙数据传输方法可以动态调整时隙占用情况,充分利用PTS时隙资源,对于模型本身来讲,能够将各优先级数据进行实时传输调度,保证了突发敏感数据的实时传输. 本文针对当前工业物联网中时延敏感数据传输实时性低,无法根据各类数据不同时延容忍度采取合理调度方法的问题,提出一种基于服务区分的实时数据传输调度模型,以报警、状态、图像以及视频4类故障运维数据为优先级划分条件,在传感信息多样化及大数据量传输条件下,采用多优先级队列动态控制方法,利用ACQS服务结构对多优先级队列进行动态管理,提高了各优先级队列对突发性数据流的处理能力.同时运用模型中多优先级感知时隙数据传输方法,提高了时间敏感数据传输的实时性.实验结果表明,本模型能够保证时延敏感数据传输的实时性,同时队列长度能够根据不同数据传输量进行实时调整,保证工业生产环境下,突发敏感数据的实时传输,满足各类数据差异化的QoS传输需求.在未来的工作中,我们要续扩展模型的数据传输方法,在提升高优先级数据传输实时性的同时,减少低优先级数据在传输过程中的拥塞程度,保证各类数据能够按要求到达服务器.2.2 多优先级感知时隙数据传输方法
Fig.7 Time slot allocation graph forQ1queue without transmission data3 仿真实验分析
3.1 多优先级动态队列性能评估
3.2 模型综合性能评估与分析
4 总 结