时间敏感网络中时间触发流量的路由与调度方法、装置及可读存储介质与流程

文档序号:33713166发布日期:2023-04-01 01:15阅读:232来源:国知局
时间敏感网络中时间触发流量的路由与调度方法、装置及可读存储介质与流程

1.本发明属于时间敏感网络领域,涉及一种时间敏感网络中时间触发流量的路由与调度方法、装置及可读存储介质。


背景技术:

2.现代工业系统当中,对于工业设备的实时数据与运营管理等网络应用信息的传输具有了更高的实时性要求,基于对端到端确定性时延的需求,发展出了基于标准以太网的实时通信技术。实时通信技术能够满足高实时性和确定性时延的需求,然而不同的技术之间互相不兼容,这就大大增加了集成和部署设备的成本,严重限制了行业的发展。当前的工厂网络中,工业设备数据一般通过现场总线或工业以太网传输,而应用信息数据则依赖于传统以太网。为了解决工业设备数据与应用信息数据的互联互通问题,ieee 802.1小组提出了时间敏感网络(time-sensitive networking,tsn)的概念,以建立一个统一的数据链路层协议,实现多源异构数据的统一化,并能够通过以太网提供确定性服务,包括:低时延、低抖动和高可靠的数据传输。
3.时间敏感网络中兼容时间触发(time-triggered,tt)流和非tt流如音视频桥接(audio video bridging,avb)流、尽力而为(best effort,be)流,其中tt流是时间敏感网络中负责传输实时数据的关键流量。在路径控制方面,tsn相关协议支持显式的路径控制,即获取全局的网络信息后对每个tt流的进行路径选择,利用网络资源对全局进行优化。tsn实现低时延、低抖动数据传输的关键是对数据流的严格管理与网络资源合理配置,即传输调度机制与路径控制机制。在ieee 802.1qbv标准中规定了一种基于门控调度表的调度机制,时间触发流的传输严格遵循门控调度表,避免了其他流量的干扰,从而实现及时而可靠的传输。
4.路由问题在传统的网络解决方案中占据重要的地位,其目的是找到一条从源地址至目标地址的最优路径。路由算法的结果根据不同度量标准而异,通常包括可调度性、路径长度、流时延、传输可靠性等,通常会在可接受的时间内找到一个近似解,而不是一个精确解。在tsn的标准协议中,推荐使用带约束的最短路径路由方法,该算法能够对路径长度进行优化,从而缩短端对端传输时延,却会导致过多的流量在相同的链路上传输,产生流量拥塞的情况。为了减少拥塞,可以使用负载平衡的路由算法尽可能让各个流的负载均匀地分配到网络的各条链路。当前的负载平衡算法均只考虑了负载的平均分配,没有考虑tsn网络中周期性发送的tt流在传输过程中产生冲突的可能性。
5.针对时间敏感网络中tt流的确定性实时传输调度问题,目前在复杂的网络拓扑中,若采用传统的最短路径算法容易造成某条链路中的负载过高,网络中能容纳时间触发流的数量相当有限。现有的研究大多现有路由方法只关注每条链路上的总负载,而未考虑不同周期时间触发流共享带宽时,发生冲突的可能性是有差别的。
6.综上所述,在多路径多输入输出的时间敏感网络中,关于如何提升时间触发流在
网络中的可调度性的问题,在tsn标准的调度机制中还没有得到解决,且国内外对该方面的研究也相对较少。
7.随着工业互联网的深入发展,工厂中智能设备的类型和数量呈现高速增长的态势,意味着时间敏感网络中tt流的种类和数量也越来越多,这对时间敏感网络容纳时间触发流的能力提出了新的挑战。
8.在现有的时间敏感网络的传输结构体系中,一般只考虑网络的发送端到接收端的最短路径,当该路径一旦确定,大量的tsn流量都将通过该路径进行传输,很有可能会造成不同周期的tt流之间或者tt流与非tt流之间在通信链路中产生冲突和拥塞,导致网络的时延和丢包率增大。因此,单路径的传输模型不能够充分利用网络资源,如链路资源和队列资源。


技术实现要素:

9.有鉴于此,本发明的目的在于提供一种时间触发流量的路由和调度方法、装置及可读存储介质,考虑因传输链路重叠造成的流量冲突问题和流量低时延、低抖动和高可靠的传输要求,为tt流规划最优传输路径并基于最优传输路径计算tt流调度方案,增加网络中能够容纳tt流的数量,提升网络的调度能力。
10.为达到上述目的,本发明提供如下技术方案:
11.一方面,本发明提供一种时间敏感网络中时间触发流量的路由与调度方法,包括以下步骤:
12.s1:cnc根据链路发现协议发现tsn网络拓扑并抽象为网络有向图,利用q学习算法,将所述网络有向图中的每个交换机节点作为状态,将每个交换机节点的邻接节点集合作为该交换机节点的动作空间,从而构建出tsn网络拓扑的二维q值矩阵并将其初始化;
13.s2:cnc获取各个终端设备通过cuc发送的tsn流的信息;
14.s3:cnc根据获得的tsn流的信息计算所有tt流中任一两两tt流之间发生冲突的冲突系数,并将tt流按照冲突系数之和的大小进行排序;
15.s4:cnc按照tt流按照冲突系数之和的大小的排序结果,根据任一两两tt流之间发生冲突的系数,确定每一tt流的源节点和目的节点,分别作为q学习模型的初始状态和目标状态,利用所述q学习模型的初始状态和目标状态更新二维q值矩阵;根据各节点的邻接节点信息,计算网络中除源节点外其他节点距离目的节点的最短路径跳数;
16.s5:cnc基于q学习的路由算法对tsn网络中的状态信息进行转换,,对二维q值矩阵进行多层次更新,得到当前tt流从源节点到目的节点的最佳决策q值矩阵;
17.s6:cnc根据最佳决策q值矩阵为所有tt流选择最优转发路径;
18.s7:根据tt流的最优传输路径、时延和无冲突传输的情况,确定每一条tt流的最优调度门控列表;
19.s8:cnc将最优调度门控列表配置到tsn交换机,并将流量起始传输时刻和最优调度门控列表通过cuc发送到tsn终端设备,以使tsn终端设备根据最优调度门控列表将业务数据发送至对应tsn交换机。
20.进一步,步骤s1中,利用q学习算法构建tsn网络拓扑的二维q值矩阵,具体包括:对于互相连接的交换机节点之间q值为1,非连接的交换机节点之间的q值为-1,交换机节点与
自身的q值则为0。
21.进一步,步骤s1中,cnc通过网络建模方法将tsn网络拓扑抽象为网络有向图g,g=(v,e),其中v是节点集合,e是节点之间链路ei的集合;v=(sw∪es),其中sw是tsn交换机的集合,es是终端设备的集合;链路e={(vi,vj)|vi,vj∈v,i≠j且vi和vj之间存在连接关系};每条链路(vi,vj)存在与其相关联的状态,每条链路对应的状态为二元组其中表示链路(vi,vj)的剩余带宽,表示经过该链路的tt流的集合。
22.进一步,步骤s2中,将所有的tsn流的集合记为f,tsn流的参数包括源节点src、目的节点dst、帧的大小si、发送周期p,每个tt流f
itt
用f
itt
=(src,dst,si,p,td
max
)来表示,用交换机节点发送帧时所占用的时间长度来衡量帧的大小,tt流到达接收端的时刻与在发送端传输开始时刻之间的时间间隔即为端到端时延,td
max
为该流能容忍的最大端到端时延;cuc通过用户配置协议从发送端获得需要发送的tsn流的信息;对于tsn流集合中所有tt流,cuc获得其源节点、目的节点、帧的大小、发送周期和能容忍的最大端到端时延,并将连接需求和tsn流信息通过用户网络接口uni发送到cnc。
23.进一步,步骤s3中,存在tt流集合根据tt流的帧的大小si和发送周期p,cnc计算tt流集合中处于同一链路中两两tt流进行传输时可能发生冲突的程度,并用f
itt
与f
jtt
之间的冲突系数c
(i,j)
表示,其中i,j∈[0,n]且i≠j;冲突系数c
(i,j)
定义为:
[0024][0025]
其中,f
itt
与f
jtt
的最大公约数表示为gcd(f
itt
.p,f
jtt
.p),当gcd(f
itt
.p,f
jtt
.p)为1时,表征两条tt流在同一链路上传输时存在冲突,此时冲突系数为当gcd(f
itt
.p,f
jtt
.p)不为1时,表征两条tt流在同一链路上传输时不存在冲突,其冲突系数为0;f
itt
.si和f
jtt
.si分别为tt流f
itt
和f
jtt
的帧大小,f
itt
.p与f
jtt
.p分别为tt流f
itt
和f
jtt
的传输周期;
[0026]
设网络需要调度n条tt流,计算f
itt
与网络中其他n-1条tt流的冲突系数c
(i,j)
,并分别将与tt流f
itt
相关的冲突系数c
(i,j)
进行求和,得到在该集合中每一条f
itt
的冲突系数之和ci:
[0027][0028]
按照从大到小的顺序,将tt流根据ci进行排序,生成排序后的时间触发流集合
[0029]
进一步,冲突系数ci计算与排序算法具体执行步骤如下:
[0030]
s31:输入初始tt流集合
[0031]
s32:遍历tt流集合中的第i条tt流f
itt
,在每一次遍历中计算并累加f
itt
与网络中
其他tt流的冲突系数c
(i,j)
,得到所有f
itt
的ci;
[0032]
s33:获得所有f
itt
的ci后,选取tt流集合中的第1、第n和第(n-1)/2条tt流,求得三条流对应三个ci之中的中位数作为tt流集合f
tt
的枢轴元素值pivkey;
[0033]
s34:基于快速排序算法,将ci大于pivkey的f
itt
放置在tt流集合的低位子集中,将ci小于pivkey的f
itt
放置在tt流集合的高位子集中,递归地,在pivkey元素两侧的tt流子集中,按照步骤s33的方法分别求得上一层排序后pivkey元素两侧tt流子集的pivkey,并继续将tt流根据ci和pivkey大小关系进行排序,获得按照ci从大到小排列的tt流集合;
[0034]
s35:输出排序后的tt流集合
[0035]
进一步,步骤s4中,cnc在中依次选取tt流,将与其发送端和接收端相邻的交换机作为源节点和目的节点,将源节点和目的节点分别作为q学习模型的初始状态和目标状态,更新二维q值矩阵;根据广度优先搜索的方法,计算网络中除源节点外其他节点距离目的节点的最短路径跳数具体执行步骤如下:
[0036]
s41:通过网络有向图g、每一tt流中的目的节点dst,初始化一个队列que;
[0037]
s42:从图中目的节点dst出发,将目的节点dst入队,将目的节点出队并获取其邻接节点信息,将目的节点的邻接节点的计为1,将所有邻接节点入队并标志已访问过;
[0038]
s43:若队列非空,进入步骤s44,若队列为空则结束;
[0039]
s44:队列首位节点出队,获取出队节点的邻接节点信息;
[0040]
s45:若不存在邻接节点,返回步骤s43,若存在邻接节点,进入步骤s46;
[0041]
s46:将该节点未被访问过的邻接节点入队,并将未被访问过的邻接节点的计为返回步骤s43,其中swj为swi的邻接节点。
[0042]
进一步,步骤s5中所述的cnc利用tsn网络中的状态信息的转换对二维q值矩阵进行多层次更新,得到当前tt流从源节点到目的节点的最佳决策q值矩阵,是通过基于q学习的路由算法实现的,
[0043]
所述基于q学习的路由算法具体包括以下步骤:
[0044]
s51:输入初始化的二维q值矩阵;
[0045]
s52:设置初始化的最大回合数eps
max
、学习率α、折扣因子γ、跳数权重系数ω1,带宽权重系数ω2和冲突度权重系数ω3;
[0046]
s53:确定当前回合数episodes是否小于eps
max
,若小于则进入步骤s54,否则终止迭代;
[0047]
s54:智能体根据ε-greedy策略和当前状态s
t
选择执行动作a
t
,所述s
t
和a
t
分别为状态空间和动作空间中的一个常量;
[0048]
s55:执行动作后智能体状态转移到新的状态s
t+1
,获得奖励r
t
,更新q值矩阵;
[0049]
s56:判断当前状态是否目的状态,若是目的状态进入步骤s57,否则返回步骤s54;
[0050]
s57:回合数episodes=episodes+1;
[0051]
s58:若q值矩阵收敛则终止迭代,否则返回步骤s53。
[0052]
进一步,步骤s5所述的基于q学习的路由算法中,智能体选择节点过程中的奖励值
由节点距离目的节点的最短跳数链路剩余带宽链路冲突系数决定;在状态s=swi下,若采取a=swj动作,奖励函数r如下所示:
[0053][0054]
式中,ω1为跳数权重系数,ω2为带宽权重系数,ω3为冲突度权重系数,且ω1+ω2+ω3=1,h
max
为距离目的节点最远节点的跳数,为两个节点之间链路最大带宽,为链路剩余带宽,为该链路中tt流f
itt
冲突系数之和ci的总和,由如下公式表示:
[0055][0056]csum
为所有tt流的ci之和,c
sum
由如下公式表示:
[0057][0058]
其中n为tt流总数量。
[0059]
进一步,步骤s5所述的基于q学习的路由算法中,根据奖励函数计算当前状态下采取不同动作的奖励值并根据ε-greedy策略,通过设置一个参数ε∈[0,1],使得智能体在选择动作时有ε概率随机选择动作,有1-ε的概率选择价值最大的动作,利用ε-greedy策略能够平衡对于状态空间探索和利用之间的关系;在某一状态s下,动作空间大小为a(s),选择动作a的概率表示为:
[0060][0061]
在迭代的时候,q学习算法基于ε-greedy策略从当前状态s选择动作a,从当前状态转移到下一个状态,并得到即时奖励r;
[0062]
根据公式(7)中q学习算法中对q函数的定义,通过转移状态,智能体在更新q值矩阵,直到当前状态转移至目的状态为止;
[0063][0064]
在公式(7)中,s
t+1
和a为选择的变量,α∈[0,1]为学习率,决定后续动作对q值矩阵数值影响程度;γ∈[0,1]为折扣因子,决定该动作未来的奖励对于当前奖励的重要程度;q
new
(s
t
,a
t
)为q值矩阵更新后智能体在s
t
状态下采取a
t
动作的期望值;q
t
(s
t
,a
t
)为q值矩阵更新前智能体在s
t
状态下采取a
t
动作的期望值;r
t
为智能体从状态s
t
转移到状态s
t+1
时的奖励;为智能体从状态s
t
转移到状态s
t+1
时能够获得的最大奖励;
[0065]
通过状态转移对q值矩阵进行更新,直到当前状态转移至目的节点为止,称为完成一个回合的路径选择过程;经过多个回合的路径选择过程后,若q值矩阵在一定精度下保持
不变,说明q值矩阵收敛,得到当前tt流从源节点到目的节点的最佳决策q值矩阵,对于当前tt流的路径选择迭代终止并进入步骤s6,否则返回初始状态,重新开始迭代更新q值矩阵直到收敛;若迭代回合次数大于最大回合数eps
max
,对于当前tt流的路径选择迭代终止并进入步骤s6。
[0066]
进一步,步骤s7中,整个网络中tt流的调度周期即为tt流集合f
tt
中所有tt流传输周期的最小公倍数,称为超周期,其计算公式如下所示:
[0067][0068]
tt流f
itt
在一个超周期内循环发送的次数为mi=hp/f
itt
.p;考虑一个超周期内tt流f
itt
第n帧在链路e上的起始传输时刻φ(f
itt
,n,e)和tt流f
itt
在链路e出口端口的队列号ρ(f
itt
,e)作为调度方案设计阶段需要计算的变量;根据约束条件和目标函数,为每一条tt流在其传输路径上求得满足所有约束条件的φ(f
itt
,n,e)和ρ(f
itt
,e),并生成门控列表。
[0069]
进一步,步骤s7中φ(f
itt
,n,e)和ρ(f
itt
,e)满足以下五个约束条件:
[0070]
帧约束:发送时延为对于tt流第一帧的发送时间φ(f
itt
,n,(esi,swi))的约束写成如下形式:
[0071][0072]
链路约束:在链路(v
x
,vy)上存在两条tt流f
itt
和f
jtt
,其每个帧的发送时延分别为和对于对于且i≠j,链路约束为:
[0073][0074][0075]
在同一链路中的两个帧传输时需满足公式(10)或公式(11),其中α和β均为整数,表示在大小为lcm(pi,pj)的周期内,f
itt
和f
jtt
除第一次发送外后续发送的次数;
[0076]
流传输约束:对于流传输约束为:
[0077][0078]
其中,δ为网络中时钟偏差的最大值,其作用是在时钟同步存在误差时保证链路传输的时序;
[0079]
帧隔离约束:对于且i≠j,帧隔离约束为:
[0080][0081][0082]
ρ(f
itt
,(va,vb))≠ρ(f
jtt
,(va,vb))
ꢀꢀ
(34)
[0083]
当有多条流的帧在同一时刻到达节点入口队列,需要满足公式(13)或公式(14)或公式(15),ρ(f
itt
,(va,vb))∈[1,8]表示f
itt
在与链路(va,vb)相连的出端口上八个优先级队列的队列分配;
[0084]
传输时延约束:
[0085][0086]
目标函数:变量k
x,y
为链路(v
x
,vy)∈e出口端口分配给tt流的队列数,则定义k为交换机节点出口端口分配给tt流的额外队列数的总和:
[0087][0088]
定义δ为所有tt流的端到端时延之和,δ值越小则调度效果越优:
[0089][0090]
以最小化k和δ为调度目标,目标函数为:
[0091]
obj=ck·
k+cd·
δ
ꢀꢀ
(38)
[0092]
其中ck+cd=1,通过设置不同的ck和cd调整调度目标的首要目标。
[0093][0094]
另一方面,本发明提供一种时间敏感网络中时间触发流量的路由与调度装置,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上任一项所述的时间敏感网络中时间触发流量的路由与调度方法。
[0095]
再一方面,本发明提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上任一项所述的时间敏感网络中时间触发流量的路由与调度方法。
[0096]
本发明的有益效果在于:本方案考虑tsn网络中tt流传输时存在产生冲突的可能,将tt流按照冲突系数之和的大小进行排序,并根据顺序依次使用基于q学习的路由算法为每一条tt流进行端到端路径的计算。相比于现有的路由算法,本方案的基于q学习的路由算法能够在负载的平均分配的同时,提升流量的可调度性,降低流量的端到端时延抖动。本方案针对时间敏感网络中的tt流的实时性和周期性传输的特性,为保证tt流的低时延和高可靠的确定性要求,优先为不同周期的tt流计算端到端传输路径,最后为网络中的tt流计算调度方案,增加网络中能够容纳tt流的数量,提升网络的调度能力。
[0097]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可
以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0098]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0099]
图1为时间敏感网络体系架构图;
[0100]
图2为tt流路由与调度算法流程图;
[0101]
图3为tt流排序算法流程图;
[0102]
图4为距离目的节点的最短路径跳数算法流程图;
[0103]
图5为基于q学习的路由算法流程图。
具体实施方式
[0104]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0105]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0106]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0107]
本方案针对时间敏感网络中的tt流和非tt流的传输特征,为保证tt流的时延和确定性要求,优先为不同周期的tt流计算端到端传输路径,最后为网络中的tt流计算调度方案,增加网络中能够容纳tt流的数量,提升网络的调度能力。
[0108]
根据tsn标准ieee 802.1qcc中的完全集中式网络配置模型,本方案提出的网络架构如图1所示。其中时间敏感网络体系架构中主要功能组件有:
[0109]
(1)tsn流:tsn终端设备之间需要以有限的时延传递的数据帧流;
[0110]
(2)tsn交换机:用于传输和接收带有tsn特性以太网帧的交换机,;
[0111]
(3)集中式用户配置器(centralized user configuration,cuc):用于发现终端设备数量、检索终端设备功能和用户需求,并配置终端设备时间敏感网络参数的集中式组件。
[0112]
(4)集中式网络配置器(centralized network configuration,cnc):应用程序(用户)配置时间敏感网络资源的集中式组件。
[0113]
图1描述了本方案提出的时间敏感网络体系架构。当发送端需要向接收端发送tsn流时,该架构工作流程如下:
[0114]
(1)发送端应用使用用户配置协议向cuc发送tsn连接需求,cuc发现和检索终端设备的能力和需求;
[0115]
(2)cnc发现物理网络拓扑并读取每个交换机的tsn能力;
[0116]
(3)cuc根据发送端的tsn连接需求,将配置信息以文本或二进制形式与cnc通过用户网络接口(uni)进行交换;
[0117]
(4)cnc在收到tsn连接需求后,使用本方案中的tt流路由算法与调度算法来计算满足需求的最优传输路径和可行的调度表作为传输计划;
[0118]
(5)如果存在满足需求的传输计划,cnc根据计算所得的路径和调度表,为每条tsn流传输路径中沿途的所有tsn交换机配置tsn特性;
[0119]
(6)cnc将传输计划和tsn流的配置状态返回给cuc。cuc根据tsn流配置状态,对每个终端设备进行配置以进行数据的发送。
[0120]
本方案基于完全集中式模型,通过集中式用户配置系统收集用户需求和网络信息,并根据获得需求和信息,为tsn流量计算路由与调度方案。集中式用户配置管理系统包括了cuc和cnc两个部分:cuc通过用户配置协议将tsn流配置信息下发到tsn网络的终端设备,cnc通过netconf/yang模型感知tsn网络的资源信息,并下发配置信息。cnc中包括了tsn网络拓扑发现模块、tsn网络配置模块、tsn网络更新模块、路由模块和调度方案求解模块,其中tsn网络拓扑发现模块主要是生成tsn网络的网络拓扑,tsn网络配置模块的主要功能是配置tsn域设备数据,并将配置数据添加到数据库,tsn网络更新模块的主要功能是更新tsn域的所有设备配置数据,并将更新操作在数据库中保存,路由模块和调度方案求解模块依次执行路由与调度算法,为tsn流量计算路由与调度方案。
[0121]
基于上述的架构和流程,本方案所提方法的创新在于上述的步骤(4)中,提出了tt流的路由与调度算法。cnc根据用户需求使用该算法计算tt流的路由与调度方案。该方法的执行分为以下四个阶段,依次分别为网络建模阶段、tt流排序阶段、路径选择阶段和调度方案计算阶段。
[0122]
首先在网络建模阶段,cnc根据网络拓扑和tsn流量特征进行网络建模。其次tt流排序阶段,cnc根据周期和帧长计算tt流两两之间的冲突系数并分别对每条流相关的冲突系数进行求和,将tt流按照冲突系数之和的大小进行排序。上述阶段工作为后续阶段的正常执行提供基础,排序结果与网络拓扑将作为路径选择阶段的输入。在路径选择阶段,接收到tsn连接需求后,cnc利用基于q学习的路由算法,按照tt流冲突系数从大到小的顺序依次为所有tt流选择出最佳路径。该算法的执行过程为,根据交换机节点和链路状态,q学习智能体基于ε-greedy策略执行动作,并感知状态的改变,计算拓扑的q值并寻求最大奖励的路径。cnc完成tt流路由的计算后,得到的tt流路径结果作为调度方案计算阶段的输入。在调度方案计算阶段,通过定义调度约束和目标函数,求得目标函数最优解,并根据所得的解设计网络中所有交换机的门控列表。最后,cnc将传输计划和门控列表下发到tsn交换机。
[0123]
cnc使用链路发现协议(lldp)发现tsn网络拓扑并读取交换机的tsn能力。为满足
网络的实时传输需求,终端设备会将tsn网络连接需求通过用户配置协议将tsn连接请求发送到cuc。cuc根据tsn连接需求将网络的配置信息通过uni以文本或二进制形式与cnc进行交换。cnc根据tsn网络拓扑信息和配置信息,将路径跳数、链路剩余带宽、链路中tsn流信息等作为交换机节点和链路的状态,以在当前状态选择下一跳的节点作为动作空间,每个节点的动作空间大小不同,这取决于它的邻接节点数量。q学习算法智能体在根据给定策略进行路径选择行动后,智能体从所处状态转移到新的状态。通过不断与网络进行交互,可以获得新的状态并计算得到该动作的奖励,更新拓扑的q值。根据拓扑的q值,以寻求最大奖励路径为目标,依次为所有tt流选择出最佳路径。为解决tt流传输过程中因传输链路重叠造成的流量冲突问题,本方案考虑时延和无冲突传输的情况为tt流传输设置约束条件,以最小化端到端时延、最小化tt流占用队列数为调度目标定义目标函数,为tt流求解最优调度方案。求解得到最优调度方案后,cnc利用netconf协议将调度表下发到tsn交换机,完成对tsn网络的配置管理。
[0124]
本方案提出的tt流路由与调度方法流程如图2所示。本方案的路由与调度算法执行步骤如下所示:
[0125]
第一步:cnc通过链路发现协议(lldp)发现tsn网络拓扑,并通过网络建模方法将tsn网络拓扑抽象为网络有向图。q学习算法属于强化学习中的一种,而强化学习通常具有如下关键要素:
[0126]
(1)环境:将整个时间敏感网络定义为环境,其中包括tsn流量信息、网络节点和网络链路组成的tsn网络有向图;
[0127]
(2)智能体:在完全集中式模型中,cnc作为智能体,在路径选择阶段根据每一条tsn流量信息为其进行路径的选择;
[0128]
(3)状态空间:每一个携带tsn流量的节点可以看作tsn流量的某个状态,因此,网络中所有可以传输tsn流量的节点定义为状态空间s;
[0129]
(4)动作空间:网络中某一节点的邻接节点定义为动作空间a,即智能体在当前节点能够选择下一跳的节点,每个节点的动作空间大小不同,这取决于它的邻接节点数量;
[0130]
(5)策略:智能体处于某一状态下,在动作空间内选择动作的依据,即在路径选择过程中,cnc选择下一跳交换机的决策依据;
[0131]
(6)奖励:智能体在某一状态下根据策略采取了动作后,会得到环境反馈的奖励,而强化学习的目标是智能体在每个离散状态采取最优动作以获得最大期望奖励。
[0132]
cnc将网络中的每个交换机节点作为状态,同时将每个交换机的邻接节点集合作为该节点的动作空间,利用状态和动作空间构建tsn网络拓扑的二维q值矩阵并将其初始化:对于互相连接的交换机节点之间q值为1,非连接的交换机节点之间的q值为-1,交换机节点与自身的q值则为0。
[0133]
本方案中tsn路径选择的主要任务是为tsn流找到合适的传输路径,在考虑网络负载的平均分配的同时,减少链路中tt流发生冲突的可能性,达到提升tsn网络调度性能的目的,所以在此过程中还需要考虑tsn流量模型。
[0134]
对于本方案中的术语的定义如表1所示:
[0135]
表1
[0136][0137][0138]
tsn的网络拓扑表示为有向图g=(v,e),其中v是节点集合,e是节点之间链路的集合。v=(sw∪es),其中sw是tsn交换机的集合,es是终端设备的集合。e是一组二元组,代表网络中的链路,使得e={(vi,vj)|vi,vj∈v,i≠j且vi和vj之间存在连接关系}。
[0139]
在本方案中,每个链路(vi,vj)存在与其相关联的状态,每条链路对应的状态为二元组其中表示链路(vi,vj)的剩余带宽,单位为mbps,表示经过该链路的tt流的集合。
[0140]
本方案规定把从发送端开始,按照一定要求传输到接收端的有序数据序列称为流,将所有的tsn流的集合记为f。对于tsn流量,其中的主要参数包括了源节点src、目的节点dst、帧的大小si和发送周期p。每个tt流f
itt
用一个五元组f
itt
=(src,dst,si,p,td
max
)来表示。一般地,以太网帧的单位为byte,每个帧的最大长度为1518byte。对于tt流的帧大小si,当tsn网络交换机的最大带宽为1000mbps时,在转发最大帧长的以太网帧时,发送时延为μs级别,且发送时延与帧长成正比的线性关系,因此,本方案中用交换机节点发送该帧时所占用的时间长度来衡量帧的大小,并使用μs作为衡量tt流帧大小的单位。对于tt流的帧周期,网络中的终端种类、信息用途等存在区别,各tt流的帧周期常常是不同的,其单位为μs。tt流到达接收端的时刻与在发送端传输开始时刻之间的时间间隔即为端到端时延,td
max
为该流能容忍的最大端到端时延,单位一般为μs。
[0141]
第二步:cuc通过用户配置协议从发送端获得需要发送的tsn流的信息。对于tsn流
集合中所有tt流,cuc获得其源节点、目的节点、帧的大小、发送周期和能容忍的最大端到端时延,并将连接需求和tsn流信息通过用户网络接口uni发送到cnc。
[0142]
第三步:因为q学习算法本质上是贪婪策略的一种,解决子问题的顺序会对优化效果造成影响,为保证q学习算法的优化效果,需要提前对tt流进行排序,将排序后的tt流集合作为路径选择阶段的输入。存在tt流集合f
tt
≡{f
1tt
,f
2tt
,
……
,f
ntt
},根据tt流的帧的大小si和发送周期p,cnc计算tt流集合中的流量在同一链路中两两组合传输时可能发生冲突的程度,并用f
itt
与f
jtt
之间的冲突系数c
(i,j)
表示,其中i,j∈[0,n]且i≠j。当链路中存在两条tt流时,因为tt流具有周期的性质,其帧大小和发送周期决定这两条tt流是否会在一定时间点产生冲突。在各种tt流中,帧长较大且周期较短的更容易和其他tt流产生冲突,造成排队时延,而帧长较小且周期较长的tt流则与其他tt流产生冲突的可能性则较低。特别地,存在两个tt流能够在同一链路中实现无冲突传输的情况:存在两条不同的tt流的两个周期存在不为1的最大公约数(greatest common divisor,gcd),则上述两条tt流能够在同一链路中无冲突地组合传输。对于上述情况,符合该条件的两条tt流可能发生冲突的程度为零。根据两个tt流的帧大小和周期,为体现两个tt流之间的冲突程度,定义冲突系数c
(i,j)
为:
[0143][0144]
通过上式,说明了冲突系数与两个tt流自身性质之间的关系,其中,f
itt
与f
jtt
的最大公约数表示为gcd(f
itt
.p,f
jtt
.p),当gcd为1时,两条流在同一链路上传输时存在冲突的可能性,而gcd不为1时,两条流在同一链路上能无冲突地组合传输,因此冲突系数定义为0。f
itt
.si和f
jtt
.si分别为tt流f
itt
和f
jtt
的帧大小,f
itt
.p与f
jtt
.p分别为tt流f
itt
和f
jtt
的传输周期,可知冲突系数c
(i,j)
与tt流的帧大小成正比关系,与周期大小成反比关系。设网络需要调度n条tt流,为比较网络中tt流f
itt
(i=1,2,3,...,n)与其他n-1条tt流产生冲突的可能性的大小,需要计算f
itt
与网络中其他tt流的冲突系数c
(i,j)
,并分别将与tt流f
itt
相关的冲突系数c
(i,j)
进行求和,得到在该集合中每一条f
itt
的冲突系数之和ci:
[0145][0146]
按照从大到小的顺序,将tt流根据ci进行排序,生成排序后的时间触发流集合f
rtt
,如图3所示,冲突系数ci计算与排序算法具体执行步骤如下:
[0147]
3.1:输入初始tt流集合
[0148]
3.2:遍历tt流集合中的第i(i=1,2,...,n)条tt流f
itt
,在每一次遍历中计算并累加f
itt
与网络中其他tt流的冲突系数c
(i,j)
,得到所有f
itt
的ci;
[0149]
3.3:获得所有f
itt
的ci后,选取tt流集合中的第1、第n和第(n-1)/2条tt流,求得三条流对应三个ci之中的中位数作为tt流集合f
tt
的枢轴元素值pivkey;
[0150]
3.4:基于快速排序算法,将ci大于pivkey的f
itt
放置在tt流集合的低位子集中,将ci小于pivkey的f
itt
放置在tt流集合的高位子集中,递归地,在pivkey元素两侧的tt流子集中,按照步骤3.3的方法分别求得上一层排序后pivkey元素两侧tt流子集的pivkey,并继续
将tt流根据ci和pivkey大小关系进行排序,获得按照ci从大到小排列的tt流集合;
[0151]
3.5:输出排序后的tt流集合
[0152]
第四步:cnc将第三步中排序后的tt流集合作为本阶段的输入。在中依次选取tt流,将与其发送端和接收端相邻的交换机作为源节点和目的节点,将源节点和目的节点分别作为q学习模型的初始状态和目标状态,更新q值矩阵。根据广度优先搜索的方法,计算网络中除源节点外其他节点距离目的节点的最短路径跳数如图4所示,距离目的节点的最短路径条数算法具体执行步骤如下:
[0153]
4.1:输入网络有向图g、目的节点dst;
[0154]
4.2:初始化一个队列que;
[0155]
4.3:从图中目的节点dst出发,将目的节点dst入队,将目的节点出队并获取其邻接节点信息,将目的节点的邻接节点的计为1,将所有邻接节点入队并标志已访问过;
[0156]
4.4:若队列非空,进入步骤4.5,若队列为空则结束;
[0157]
4.5:队列首位节点出队,获取出队节点的邻接节点信息;
[0158]
4.6:若不存在邻接节点,返回步骤4.4,若存在邻接节点,进入步骤4.7;
[0159]
4.7:将该节点未被访问过的邻接节点入队,并将未被访问过的邻接节点的(swj为swi的邻接节点)计为返回步骤4.4。
[0160]
第五步:基于q学习的路由算法不仅需要网络建模阶段的环境、智能体、状态空间、动作空间和策略这五个基础元素,还在优化选择路径的过程当中需要计算不同动作的奖励r,奖励r由q学习算法中的奖励函数计算而来。
[0161]
本方案提出了基于q学习的路由算法,其目的是在选择路径的过程中最大化智能体可以获得的奖励r。奖励函数r是基于q学习的路由算法的核心机制,该函数决定在不同状态下执行不同动作后,智能体可以从环境获取何种奖励,因此决定了算法的优化目标。在本方案中,智能体选择节点过程中的奖励值主要由节点距离目的节点的最短跳数链路剩余带宽链路冲突系数决定。
[0162]
在状态s=swi下,若采取a=swj动作,奖励函数r如下所示:
[0163][0164]
在上式中,ω1为跳数权重系数,ω2为带宽权重系数,ω3为冲突度权重系数,且ω1+ω2+ω3=1。通过设置不同的ω值,可改变智能体在选择执行动作时的倾向,为满足不同应用场景和网络需求提供灵活性。和h
max
由第四步获得,h
max
为距离目的节点最远节点的跳数。为两个节点之间链路最大带宽,为链路剩余带宽,由cnc读取交换机状态获得。其中为该链路中tt流f
itt
冲突系数之和ci的总和,由如下公式表示:
[0165][0166]csum
为所有tt流的ci之和,c
sum
由如下公式表示:
[0167][0168]
其中n为tt流总数量。
[0169]
根据奖励函数计算当前状态下采取不同动作的奖励值并根据ε-greedy策略,通过设置一个参数ε(ε∈[0,1]),使得智能体在选择动作时有ε概率随机选择动作,有1-ε的概率选择价值最大的动作。利用ε-greedy策略能够平衡对于状态空间探索和利用之间的关系。在某一状态s下,动作空间大小为a(s),选择动作a的概率可以表示为:
[0170][0171]
在迭代的时候,q学习算法基于ε-greedy策略从当前状态s选择动作a,
[0172]
从当前状态转移到下一个状态,并得到即时奖励r。根据公式(7)中q学习算法中对q函数的定义,通过转移状态,智能体在更新q值矩阵,直到当前状态转移至目的状态为止。
[0173][0174]
在公式(7)中,s
t
和a
t
为状态空间和动作空间中的一个常量,s
t+1
和a为可以选择的变量,α∈[0,1]为学习率(learning rate),决定后续动作对q值矩阵数值影响程度;γ∈[0,1]为折扣因子(discount factor),决定该动作未来的奖励对于当前奖励的重要程度;q
new
(s
t
,a
t
)为q值矩阵更新后智能体在s
t
状态下采取a
t
动作的期望值;q
t
(s
t
,a
t
)为q值矩阵更新前智能体在s
t
状态下采取a
t
动作的期望值;r
t
为智能体从状态s
t
转移到状态s
t+1
时的奖励;为智能体从状态s
t
转移到状态s
t+1
时能够获得的最大奖励。
[0175]
通过状态转移对q值矩阵进行更新,直到当前状态转移至目的节点为止,称为完成一个回合(episode)的路径选择过程。经过多个回合的路径选择过程后,若q值矩阵在一定精度下保持不变,说明q值矩阵收敛,得到当前tt流从源节点到目的节点的最佳决策q值矩阵,对于当前tt流的路径选择迭代终止并进入下一步,否则返回初始状态,重新开始迭代更新q值矩阵直到收敛。若迭代回合次数大于最大回合数eps
max
,对于当前tt流的路径选择迭代终止并进入下一步。如图5所示,基于q学习的路由算法的具体流程如下所示。
[0176]
5.1:输入初始化的q值矩阵;
[0177]
5.2:初始化最大回合数eps
max
、学习率α、折扣因子γ、跳数权重系数ω1,带宽权重系数ω2和冲突度权重系数ω3;
[0178]
5.3:当前回合数episodes是否小于eps
max
,若小于则进入步骤5.4,否则终止迭代;
[0179]
5.4:智能体根据ε-greedy策略和当前状态s
t
选择执行动作a
t

[0180]
5.5:执行动作后智能体状态转移到新的状态s
t+1
,获得奖励r
t
,根据公式(7)更新q值矩阵;
[0181]
5.6:判断当前状态是否目的状态,若是目的状态进入步骤5.7,否则返回步骤5.4;
[0182]
5.7:回合数episodes=episodes+1;
[0183]
5.8:若q值矩阵收敛则终止迭代,否则返回步骤5.3。
[0184]
第六步:在tt流从发送端esi到接收端es
′i的过程中,tt流可能会经过节点有sw1,sw2,

,swn,共n个,因此可以将第i条tt流发送端到接收端之间的路径表示为ri={esi,sw1,sw2,

,swn,es
′i}。根据q值选择出tt流所选节点形成的最优转发路径确定交换机的转发端口从而决定tt流传输路径中的每一跳交换机,将tt流最优转发路径信息ri封装存入tt流路径信息表中。
[0185]
若存在尚未选择路径的tt流,返回第四步直到为所有tt流选择路径,否则执行第七步。
[0186]
第七步:经过路径选择阶段计算出每条tt流的最优路径后,cnc将路径信息表作为该阶段的输入,求解调度方案保证所有帧在网络中无冲突传输,并对传输指标进行优化。tt流的大小若超出mtu,则分为多个帧进行传输,则tt流f
itt
包含帧的数量为ni=f
itt
.si/mtu,此时si使用byte作为单位。
[0187]
tt流的传输具有周期性,因此对于tt流在网络中的调度方案也应该具有周期性,整个网络中tt流的调度周期即为tt流集合f
tt
中所有tt流传输周期的最小公倍数(least common multiple,lcm),称为超周期(hyper period,hp),其计算公式如下所示:
[0188][0189]
因此,tt流f
itt
在一个超周期内循环发送的次数为mi=hp/f
itt
.p。根据ieee 802.1qbv标准定义的门控机制,主要考虑一个超周期内tt流f
itt
第n帧在链路e上的起始传输时刻φ(f
itt
,n,e)和tt流f
itt
在链路e出口端口的队列号ρ(f
itt
,e)作为调度方案设计阶段需要计算的变量。为保证所有帧在tsn中无冲突传输并能够对传输指标进行优化,根据约束条件和目标函数,为每一条tt流在其传输路径上求得满足所有约束条件的φ(f
itt
,n,e)和ρ(f
itt
,e),并生成门控列表。
[0190]
本方案中cnc在求解调度方案时只需关注一个超周期内tt流的发送状态,就能够在多个超周期内循环执行调度方案。本调度方案的调度目标为在满足端到端时延的约束的前提下,最小化tt流量占用队列数,为avb流和be流等低优先级流量流出更多队列,提升整个网络的调度性能。
[0191]
为保证所有帧在网络中正确、按序、无冲突地传输,φ(f
itt
,n,e)和ρ(f
itt
,e)需要满足以下五个约束条件:
[0192]
(1)帧约束
[0193]
tt流从源节点被周期性地发送时,第一帧必须在帧周期内完全传输,否则会破坏周期性发送的属性,使得cnc在调度周期不能对tt流有效地进行调度。因为tt流f
itt
在交换机节点间传播速度接近光速,可以忽略tt流在链路中传播时延,发送时延为对于tt流第一帧的发送时间φ(f
itt
,n,(esi,swi))的约束可写成如下形式:
[0194][0195]
(2)链路约束
[0196]
该约束为tt流无冲突传输的核心约束,要求同一链路上两个帧的传输在时间上不能重叠。为满足该约束,当两个帧需要在同一链路上传输时,其中一个帧的发送时刻必须大于等于另一个帧的发送完成时刻。在链路(v
x
,vy)上存在两条tt流f
itt
和f
jtt
,其每个帧的发送时延分别为和对于对于且i≠j,本约束可写成如下形式:
[0197][0198][0199]
在同一链路中的两个帧传输时需要满足公式(10)或公式(11),其中α和β均为整数,表示在大小为lcm(pi,pj)的周期内,f
itt
和f
itt
除第一次发送外后续发送的次数。
[0200]
(3)流传输约束
[0201]
该约束规定了tt流的帧通过选定路径上每条链路的时序。即同一帧在后继链路(va,vb)上传输实例的开始时刻必须大于等于前驱链路(v
x
,va)上传输实例的完成时刻,d
proc
为交换机节点的处理时延。因此,对于本约束可写成如下形式:
[0202][0203]
其中,δ为网络中时钟偏差的最大值,其作用是在时钟同步存在误差时保证链路传输的时序。
[0204]
(4)帧隔离约束
[0205]
若有多条流的帧同时到达同一队列,则帧进入队列的顺序不确定,导致链路出口的发送序列也不确定。为保证端到端时延的确定性,避免tt流传输过程中帧丢失的问题,帧隔离约束规定一条队列中同一时刻只能存储一条流的帧,即其中一个帧必须在另一个帧进入队列之前调度完毕。
[0206]
设当前有f
itt
和f
jtt
两条tt流分别从链路(v
x
,va)和链路(vy,va)同时到达节点va的入口端口,则只有在f
itt
或f
jtt
的帧全部离开队列后,另一条流的帧才能开始进入队列,若两条流被分配至不同队列中则不需要该约束,在发送时满足链路约束即可。因此,对于条流被分配至不同队列中则不需要该约束,在发送时满足链路约束即可。因此,对于且i≠j,且i≠j,本约束可写成如下形式:
[0207]
[0208][0209]
ρ(f
itt
,(va,vb))≠ρ(f
jtt
,(va,vb))
ꢀꢀ
(53)
[0210]
因此,当有多条流的帧在同一时刻到达节点入口队列,需要满足公式(13)或公式(14)或公式(15)。ρ(f
itt
,(va,vb))∈[1,8]表示f
itt
在与链路(va,vb)相连的出端口上八个优先级队列的队列分配。
[0211]
(5)传输时延约束
[0212]
该约束规定了tt流的端到端时延,对于tt流f
itt
=(src,dst,si,p,td
max
),经过路径ri={esi,sw1,sw2,

,swn,es
′i}后,其端到端时延应该不大于tt流能容忍的最大端到端时延该约束可表示为:
[0213][0214]
目标函数:
[0215]
在满足端到端时延的约束的前提下,本方案的调度目标为最小化tt流量占用队列数,因此目标函数应该关注tt流端到时延的大小和tt流使用的队列数。
[0216]
变量k
x,y
为链路(v
x
,vy)∈e出口端口分配给tt流的队列数,则定义k为交换机节点出口端口分配给tt流的额外队列数的总和,其定义式如公式(17)所示:
[0217][0218]
tt流f
itt
的端到端时延为一个传输周期内第ni个帧在路径中最后一个交换机的发送时刻与第1个帧在源节点的发送时刻之差加上第ni个帧的发送时延,定义δ为所有tt流的端到端时延之和,该值越小则调度效果越优,其定义式如公式(18)所示:
[0219][0220]
采用系数加权的方法,以最小化以上两个指标为调度目标,本方案给出的优化目标函数如公式(19)所示,其中ck+cd=1,可通过设置不同的ck和cd调整调度目标的首要目标:
[0221]
obj=ck·
k+cd·
δ
ꢀꢀ
(57)
[0222]
基于tt流的最优传输路径,根据以上的约束条件进行建模并使用求解器求解令目标函数obj最小化的φ(f
itt
,n,e)和ρ(f
itt
,e),计算出每一条tt流传输路径上交换机的门控列表,周期性控制各队列出口门的开闭,在减少低优先级流量对tt流影响的同时,实现尽可能最小化端到端时延和tt流占用队列数的流量调度。
[0223]
第八步:cnc将计算的结果封装为xml文件,利用netconf协议将基于xml的门控调度表配置到tsn交换机,并将流量传输计算结果通过cuc发送到tsn终端设备。
[0224]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明
的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1