面向大规模时间敏感网络的调度方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及面向大规模时间敏感网络的调度方法、装置及电子设备。
背景技术
随着信息技术的飞速发展,在工厂自动化控制、自动驾驶和电力自动化等领域,对数据流传输的时延要求越来越高。而传统以太网并不能保证时延的确定性,导致对实时性和确定性要求较高的特定流量远远超出了传统以太网的可控范围。
为了解决传统以太网中实时数据的可靠传输这一问题,IEEE 802工作组提出了时间敏感网络(Time-sensitive Network,TSN)的概念。TSN网络中的流量可以分为时间敏感型和非时间敏感型。时延是TSN网络的主要专注点,其旨在提供一种机制来确保信息能够在一个确定的、可预测的时间范围内完成源主机至目的主机之间的传输。
TSN网络具有以下目标:针对交换网络的报文时延得到保障;时间敏感流量和非时间敏感流量可以混合传输,并且非时间敏感数据流的传输不会影响时间敏感数据流的传输时延;多种高层协议可以共享网络基础设施,即多种协议的负载可以同时在网络中传输;网络错误可以通过在源头获得精确的信息,从而快速地确诊和修复。时间敏感型的流量中有TT(Time-Triggered Traffic,时间触发流量):时间触发流量按照特定的时序进行周期性的传输,即,时间触发流量具有时间触发特性,例如工厂中有时需要间隔特定周期来采集设备的监控信息。
在TSN网络中,时间触发流量的调度问题引起了大量的研究。当前针对时间触发流量的调度问题提出了一些可行的方法,然而当网络的拓扑规模较大或者待调度的时间触发流量数目较多时,会导致求解的耗时急剧增加,从而无法满足TSN网络对时延的要求。
发明内容
本发明实施例的目的在于提供一种面向大规模时间敏感网络的调度方法、装置及电子设备,以实现解决在面向大规模时间敏感网络的调度问题时,减少求解时间,实现时延的确定性。具体技术方案如下:
在本发明实施例的第一方面,本发明实施例提供一种面向大规模时间敏感网络的调度方法,所述方法包括:
步骤A,针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合;其中,一所述传输路径集合包括至少一条传输路径,每条所述传输路径各自对应有链路信息;
步骤B,根据各所述传输路径集合,将各个所述时间触发流量进行分组,得到触发流量组;
步骤C,在各所述触发流量组中,选取一个未调度的触发流量组;
步骤D,针对当前选取的触发流量组,根据时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的整数线性规划ILP目标函数,其中,所述时隙是根据各所述时间触发流量的传输周期确定的;
步骤E,针对当前选取的触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;
步骤F,针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机;
步骤G,判断各所述触发流量组是否均调度完成,若否,则返回上述步骤C继续执行。
可选的,所述根据各所述传输路径集合,将各个所述时间触发流量进行分组,得到触发流量组,包括:
将各个所述时间触发流量进行预分组,得到多个预触发流量组方案,其中,一个所述预触发流量组方案用于将所有的时间触发流量进行分组,得到多个预触发流量组;一个所述预触发流量组中包括至少一个所述时间触发流量;
针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度;
针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中的特定两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度;所述特定两个时间触发流量分别属于不同的预触发流量组;
针对每一预触发流量组方案,根据所述第一相似度计算该预触发流量组方案的相似度;所述预触发流量组方案的相似度与各个所述第一相似度成正比,在所述预触发流量组方案的相似度的最小时,该预触发流量组方案中的预触发流量组为触发流量组。
可选的,在所述针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度的步骤之后,所述方法还包括:
根据每两个时间触发流量的传输路径集合的相似度,构建预设相似度矩阵;
基于谱聚类方法,按照预设相似度矩阵和预设触发流量组的组数,对各个所述时间触发流量,得到各个触发流量组。
其中,f
i和f
j表示时间触发流量;
表示f
i的传输路径集合,
表示f
j的传输路径集合;p
m为f
i的传输路径集合中的一条路径;p
n为f
j的传输路径集合中的一条路径;w(f
i,f
j)表征时间触发流量f
i和时间触发流量f
j的传输路径集的相似度。
可选的,根据以下公式计算预触发流量组方案的相似度:
w(G1,G2...Gmax-1,Gmax)表征预触发流量组方案的相似度,其中G1,G2…Gmax-1,Gmax表征一个预触发流量组方案中的各个预触发流量组;当w(G1,G2...Gmax-1,Gmax)最小时,G1,G2…Gmax-1,Gmax为最终的触发流量组。
可选的,所述ILP目标函数可以表示为:
其中,G
m表示触发流量组;f
i表示触发流量组G
m中的时间触发流量,f
i∈G
m;
表示时间触发流量f
i从源主机到目的主机的传输路径集合;p表示传输路径集合
中的路径,
t
i表示时隙,T为时隙集合;l表示链路,L为链路集合;
表示传输路径p与时隙t
i的映射关系,当在时隙t
i,存在时间触发流量按照传输路径p进行传输时,
为1,否则
为0;
表示传输路径p与时间触发流量f
i的映射关系,其中,若存在时间触发流量f
j的传输路径为p,则
为1,否则
为0;
Y(p,l)表示传输路径p与链路l的映射关系,其中,若传输路径p包括链路l,则Y(p,l)为1,否则Y(p,l)为0;
表示链路l与时隙的映射关系,其中,在时隙t
i,若已有任一时间触发流量调度到链路l,则
为1,否则
为0。
可选的,针对每一时间触发流量,该时间触发流量的传输路径集合为该时间触发流量的最短传输路径集合。
在本发明实施例的第二方面,本发明实施例提供一种面向大规模时间敏感网络的调度装置,所述装置包括:
获取模块,用于针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合;其中,一所述传输路径集合包括至少一条传输路径,每条所述传输路径各自对应有链路信息;
分组模块,用于根据各所述传输路径集合,将各个所述时间触发流量进行分组,得到触发流量组;
选取模块,用于在各所述触发流量组中,选取一个未调度的触发流量组;
函数建立模块,用于针对当前选取的触发流量组,根据预设时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP目标函数,其中,预设时隙是根据所述时间触发流量的产生周期和预设时隙步长确定的;
求解模块,用于针对当前选取的触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;
调度模块,用于针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机;
判断模块,用于判断各所述触发流量组是否均调度完成,若否,则返回上述选取模块继续执行。
在本发明实施例的又一方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的所述计算机程序时,实现上述第一方面任一所述的面向大规模时间敏感网络的调度方法。
在本发明实施例的又一方面,本发明实施例提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的面向大规模时间敏感网络的调度方法。
在本发明实施例的又一方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的面向大规模时间敏感网络的调度方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的面向大规模时间敏感网络的调度方法。
本发明实施例有益效果:
本发明实施例提供的面向大规模时间敏感网络的调度方法、装置及电子设备,通过针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合;根据各个传输路径集合,将各个时间触发流量进行分组,得到触发流量组;在各触发流量组中,选取一个未调度的触发流量组;针对当前选取的触发流量组,根据预设时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP目标函数,针对每一触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机。通过各个时间触发流量进行分组得到触发流量组,然后针对每一个触发流量组依次进行调度,如此可以减少求解ILP目标函数的耗时,实现时延的确定性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的面向大规模时间敏感网络的调度方法的一种流程示意图;
图2为本发明实施例提供的面向大规模时间敏感网络的调度方法中时延分析的示意图;
图3为本发明实施例提供的面向大规模时间敏感网络的调度方法中的无向图的一种示意图;
图4为本发明实施例提供的面向大规模时间敏感网络的调度方法中的拓扑图的一种示意图;
图5为本发明实施例提供的面向大规模时间敏感网络的调度装置的一种流程示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在TSN网络中,需要将时间触发流量按照特定的时序进行周期性的传输,将时间触发流量由源主机传输至目的主机,为了解决现有技术中在面向时间敏感网络中数量较多的时间触发流量的调度问题时,导致求解的耗时急剧增加,无法满足TSN网络对时延的要求问题,本发明实施例提供了一种面向大规模时间敏感网络的调度方法、装置、电子设备、存储介质及包含指令的计算机程序产品。
下面,首先对本发明实施例提供的面向大规模时间敏感网络的调度方法进行介绍。该方法应用于电子设备,具体的,该电子设备可以为任一可以提供存储任务的调度服务的电子设备,例如,个人计算机、服务器等。本发明实施例所提供的面向大规模时间敏感网络的调度方法可以被设置于电子设备中的软件、硬件电路和逻辑电路中的至少一种实现。
如图1所示,图1为本发明实施例提供的面向大规模时间敏感网络的调度方法的一种流程示意图,可以包括:
S110,针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合。
其中,上述传输路径集合包括至少一条传输路径,每条上述传输路径各自对应有链路信息。
时间触发流量用于从源主机到目的主机沿着指定的传输路径进行周期性的传输,其端到端时延包括传播时延(propagation delay)、发送时延(transmission delay)、处理时延(processing delay),当网络中发生拥塞时,还包括排队时延(queuing delay)。则从某个主机和下一主机之间的端到端时延可以通过以下公式表示:
D=dtrans+dprop+dproc+dqueu
如图2所示,图2为本发明实施例提供的面向大规模时间敏感网络的调度方法中时延分析的示意图。其中ti表示主机Vi的发送时刻,ti-1表示主机Vi-1的发送时刻,dtrans表示发送时延、dprop表示传输时延、dproc表示处理时延,dqueu来表示当发生排队时的排队时延。
在时间敏感网络中,包括多个主机,当确定时间触发流量的源主机和目的主机后,根据各个主机之间的连通关系,确定将时间触发流量由源主机传输到目的主机的传输路径,具体的时间触发流量由源主机传输到目的主机的传输路径可以包括多条传输路径。即,针对每一个待调度的时间触发流量,该时间触发流量包括传输路径集合。其中,每两个主机之间的链路为有向全双工链路。
示例性的,通过时间敏感网络中各个主机之间的连通关系,建立各个主机建立的拓扑,以此展示每两个主机之间是否可以连通,通过拓扑确定时间触发流量由源主机传输到目的主机的传输路径。
具体的,时间敏感网络的拓扑可以被建模为有向图G=(V,L),其中V=S∪H是时间敏感网络中所有主机的集合,S代表网络中的交换机,H代表终端的主机。
表示时间敏感网络中相互连接的两个主机之间的一条有向全双工链路。有序对(V
i,V
j)和(V
j,V
i)分别表示V
i和V
j两个主机间两条独立的传输链路。
S120,根据各上述传输路径集合,将各个上述时间触发流量进行分组,得到触发流量组。
在得到各个时间触发流量的传输路径集合后,可以将各个上述时间触发流量进行分组,得到触发流量组,然后将各个触发流量组依次进行调度,这样,将时间触发流量统一调度与分组调度相比,分组调度时计算量减少,使得调度的时间减少。
其中,将各个时间触发流量进行分组得到触发流量组的方式可以包括,根据时间触发流量的数量以及预设分组步长阈值进行分组,也可以按照各时间触发流量的传输路径集合进行分组,为了方案清楚以及布局清晰,关于将各个时间触发流量进行分组的具体过程,在下文进行详细介绍。
S130,在各上述触发流量组中,选取一个未调度的触发流量组。
触发流量组是逐一进行调度的,每组的调度结果会影响后续触发流量组的调度。
S140,针对当前选取的触发流量组,根据时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP(Integer Linear Programming,整数线性规划)目标函数,其中,上述时隙是根据各上述时间触发流量的传输周期确定的。
为了将时间触发流量由源主机传输到目的主机,则需要知道将时间触发流量由源主机传输到目的主机的传输路径,以及传输的时隙。即,在时间上可以在一个基本周期内为不同的时间触发流分配不同的时隙,在空间上可以为不同的时间触发流量分配不冲突的链路。通过在时间或空间上将不同时间触发流量分离的方式,可以使时间触发流量沿着特定的路径到达主机时,始终有一个空状态的队列为时间触发流量开放,从而避免排队情况的出现。
因此,针对每个触发流量组,需要依次建立ILP目标函数,而且,每组触发流量组的ILP函数的求解结果,都会影响后续的触发流量组约束的建立。因此,可以针对当前选取的触发流量组,根据时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP目标函数,通过求解ILP目标函数,得到该触发流量组中各时间触发流量的传输路径以及传输的时隙。
其中,因为时间触发流量用于从源主机到目的主机沿着指定的传输路径进行周期性的传输的,即,时间触发流量是周期性的生成的,为了将时间触发流量进行调度,则可以根据各个时间触发流量的生成周期确定传输各个时间触发流量的基本周期,以使周期性生成的时间触发流量在基本周期内调度完成。
其中基本周期是根据各个时间触发流量的生成周期确定的,具体的基本周期是各个时间触发流量的生成周期的最大公约数,例如,包括时间触发流量1,时间触发流量2,时间触发流量3,时间触发流量1的生成周期为5ms,时间触发流量1的生成周期为10ms,时间触发流量1的生成周期为50ms,则,基本周期确定为5ms。
然后将基本基本周期被分为多个时隙,具体的,可以将时隙从0开始编号到tmax,每个时隙被分给时间触发流量进行传输,其中,时隙的长度足以使最大传输单元大小的时间触发流量穿过最长的传输路径,根据经验设定,最大传输单元大小通常为1500字节。
S150,针对当前选取的触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙。
通过求解ILP目标函数,得到该触发流量组中各时间触发流量的传输路径以及传输的时隙。
S160,针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机。
针对每一时间触发流量,在得到该触发流量组中各时间触发流量的目标传输路径以及目标传输时隙后,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机,以此完成时间触发流量的调度。
S170,判断各上述触发流量组是否均调度完成,若否,则返回上述步骤S130,继续执行。
判断各触发流量组是否均调度完成,若否,返回至步骤S130继续执行。直至所有的触发流量组调度完成。
通过针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合,根据各个传输路径集合,将各个时间触发流量进行分组,得到触发流量组,在各触发流量组中,选取一个未调度的触发流量组,针对当前选取的触发流量组,根据预设时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP目标函数,针对每一触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机。通过各个时间触发流量进行分组得到触发流量组,然后针对每一个触发流量组依次进行调度,如此可以减少求解ILP目标函数的耗时,实现时延的确定性。
在一种可能的实施例中,上述步骤S120具体可以通过以下步骤实现:
获取待调度的时间触发流量的数量;
根据时间触发流量的数量以及预设分组步长阈值确定触发流量组的组数;
根据预设分组步长阈值和时间触发流量的数量,确定每组触发流量组中时间触发流量的个数。
其中,预设分组步长阈值表示的是一个触发流量组中最多可以包括的时间触发流量的数量,预设分组步长阈值可以根据实际经验进行确定。例如,时间触发流量的总数量为100个,预设分组步长阈值为10,即,分得的每个触发流量组中的时间触发流量最多为10。
示例性的,将时间触发流量的数量除以预设分组步长阈值向上取整,得到触发流量组的组数。
例如,时间触发流量的总数量为100个,预设分组步长阈值为10,则100/10=10,则一共有10组触发流量组。或者,时间触发流量的总数量为100个,预设分组步长阈值为9,则100/9向上取整后为12,则一共有12组触发流量组。
上述根据预设分组步长阈值和时间触发流量的数量,确定每组触发流量组中时间触发流量的个数,包括:
若未分组的时间触发流量的数量大于预设分组步长阈值,则将预设分组步长阈值个时间触发流量作为一组;
若未分组的时间触发流量的数量不于预设分组步长阈值,则将未分组的时间触发流量作为一组。
在一种可能的实施例中,根据时间触发流量的数量以及预设分组步长阈值确定触发流量组的组数,包括:
获取小于预设分组步长阈值中,时间触发流量的数量的最大公约数,将上述最大公约数作为每组触发流量组中时间触发流量的个数。
例如,时间触发流量的总数量为100个,预设分组步长阈值为11,则,100的最大公约数为10,则每组触发流量组中时间触发流量的个数为10,一共10组触发流量组。
在一种可能的实施例中,触发流量组的组数是预先设定的。
触发流量组的组数可以是根据经验数据预设进行设定的,也可以是计算的得到的,在此不作限定。
根据预设分组步长阈值和时间触发流量的数量,确定每组触发流量组中时间触发流量的个数,可以尽可能的将各组的时间触发流量均衡,以使得各组的时间触发流量的数量不会相差太大,在调度的求解时间减少。
在一种可能的实施例中,上述步骤S120具体可以通过以下步骤实现:
步骤一,将各个上述时间触发流量进行预分组,得到多个预触发流量组方案;
步骤二,针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度;
步骤三,针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中的特定两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度;上述特定两个时间触发流量分别属于不同的预触发流量组;
步骤四,针对每一预触发流量组方案,根据上述第一相似度计算该预触发流量组方案的相似度;上述预触发流量组方案的相似度与各个上述第一相似度成正比,在上述预触发流量组方案的相似度的最小时,该预触发流量组方案中的预触发流量组为触发流量组。
一个上述预触发流量组方案用于将所有的时间触发流量进行分组,得到多个预触发流量组,一个上述预触发流量组中包括至少一个上述时间触发流量。具体的预分组的方式可以参考上述实施例中分组的步骤方法,具体在此不再赘述。
例如,时间触发流量有4个,分别为A1,A2,A3,A4,其中每组的时间触发流量不少于1个,则预触发流量组方案可以参考表1。
表1
|
组1 |
组2 |
预触发流量组方案1 |
A1/A2 |
A3/A4 |
预触发流量组方案2 |
A1/A3 |
A2/A4 |
预触发流量组方案3 |
A1/A4 |
A2/A4 |
针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度,其中相似度的计算方法可以包括余弦相似度计算方法,欧几里得评价方法,或者皮尔逊相关系数等方法。具体的,分别将时间触发流量的传输路径集合形式化为传输路径特征向量,则余弦相似度计算方法计算两个时间触发流量的特征向量的相似度,以此得到每两个时间触发流量的传输路径集合的相似度。
根据上述每两个时间触发流量的传输路径集合的相似度,计算每一预触发流量组方案中的每两个预触发流量组的第一相似度;其中,每两个预触发流量组的第一相似度是根据两个预触发流量组中的特定两个时间触发流量的传输路径集合的相似度,其中,特定两个时间触发流量分别属于不同的预触发流量组;针对每一预触发流量组方案,根据第一相似度计算该预触发流量组方案的相似度;预触发流量组方案的相似度与各个第一相似度成正比,在预触发流量组方案的相似度的最小时,该预触发流量组方案中的预触发流量组为触发流量组。
例如:时间触发流量有9个,分别为,F为时间触发流量集,F={f1,f2…f8,f9},即一共包括9个时间触发流量,f1,f2…f8,f9,一共分为3组,分别为G1,G2,G3,其中,G1={f1,f2,f8},G2={f3,f4,f9},G3={f5,f6,f7},即,f1,f2,f8在触发流量组G1中;f3,f4,f9在触发流量组G2中;f5,f6,f7在触发流量组G3中;其中,触发流量组G1和触发流量组G2的第一相似度,根据触发流量组G1的时间触发流量的传输路径集合和触发流量组G2的时间触发流量的传输路径集合的相似度进行计算;即,触发流量组G1和触发流量组G2的第一相似度可以是以下几个相似度之和:
f1的传输路径集合与f3的传输路径集合的相似度,f1的传输路径集合与f4的传输路径集合的相似度,f1的传输路径集合与f9的传输路径集合的相似度,f2的传输路径集合与f3的传输路径集合的相似度,f2的传输路径集合与f4的传输路径集合的相似度,f2的传输路径集合与f9的传输路径集合的相似度,f8的传输路径集合与f3的传输路径集合的相似度,f8的传输路径集合与f4的传输路径集合的相似度,f8的传输路径集合与f9的传输路径集合的相似度。
通过降低各个触发流量组之间路径集的相似度,使得各个触发流量组之间的时间触发流量可以通过不同的传输路径进行传输,减少重叠链路的发生,使分组调度之后的总体调度成功率尽可能的高,不仅可以减少求解时间,实现时延的确定性,还可以提高调度的成功率。
为了更直观的理解,通过以下方式解释针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中的特定两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度的实施方法。
在一种可能的实施例中,在针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度的步骤之后,上述方法还包括;
根据每两个时间触发流量的传输路径集合的相似度,建立无向图;其中上述无向图的顶点为各个上述时间触发流量;上述无向图的边为每两个时间触发流量的传输路径集合的相似度;针对每两个时间触发流量,若该两个时间触发流量的传输路径集合的相似度大于预设相似度阈值时,将该两个时间触发流量的顶点连接,若该两个时间触发流量的传输路径集合的相似度不大于上述预设相似度阈值时,将该两个时间触发流量的顶点不连接;
基于上述无向图对各个上述时间触发流量进行预分组;得到多个预触发流量组方案,其中,一个上述预触发流量组方案用于将所有的时间触发流量进行分组,得到多个预触发流量组;一个上述预触发流量组中包括至少一个上述时间触发流量;
针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中连接的顶点对应的两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度;
若上述预触发流量组方案中的上述第一相似度之和最小时,该预触发流量组方案中的预触发流量组为触发流量组。
在获得每两个时间触发流量的传输路径集合的相似度后,基于时间触发流量之间的路径集相似度来建立无向图ξ=(F,W),其中顶点集F由所有时间触发流量组成,边集W=F×F的权重表示时间触发流量fi和时间触发流量fj之间的路径集相似度w(fi,fj)。两个顶点之间相连表示对应的两个流之间的路径集存在一定的相似度,如果这两个时间触发流量之间的路径集不存在重复链路,即路径集相似度为0,则对应的顶点之间不连接。其中预设相似度阈值可以为0,即,只要两个时间触发流量之间的路径集存在重复链路,两个时间触发流量对应的顶点之间连接;预设相似度阈值也可以为任0至1之间的任意数值,具体可以根据实际情况进行设定。
如图3所示,图3为本发明实施例提供的面向大规模时间敏感网络的调度方法中的无向图的一种示意图。其中,K为时间触发流量集,K={f1,f2…f8,f9},即一共包括9个时间触发流量,f1,f2…f8,f9,一共分为3组,分别为G1,G2,G3,其中,G1={f1,f2,f8},G2={f3,f4,f9},G3={f5,f6,f7}。图中虚线的权重之和表示该预触发流量组方案的总路径集相似度。
即,针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中连接的顶点对应的两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度,如图中所示,G1和G2中具有相似度超过预设相似度阈值的是f2和f3,f8和f9,则G1和G2的第一相似度是根据f2的传输路径集合和f3的传输路径集合的相似度,f8的传输路径集合和f9的传输路径集合的相似度确定得到的。具体的,G1和G2的第一相似度是f2的传输路径集合和f3的传输路径集合的相似度和f8的传输路径集合和f9的传输路径集合的相似度的和。
针对每一个预触发流量组方案,当预触发流量组方案中的上述第一相似度之和最小时,该预触发流量组方案中的预触发流量组为触发流量组。通过降低各个触发流量组之间路径集的相似度,使得各个触发流量组之间的时间触发流量可以通过不同的传输路径进行传输,减少重叠链路的发生,使分组调度之后的总体调度成功率尽可能的高,不仅可以减少求解时间,实现时延的确定性,还可以提高调度的成功率。
在一种可能的实施例中,在上述针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度的步骤之后,上述方法还包括:
根据每两个时间触发流量的传输路径集合的相似度,构建预设相似度矩阵;
基于SC(Spectral Clustering,谱聚类)聚类方法,按照预设相似度矩阵和预设触发流量组的组数,对各个上述时间触发流量,得到各个触发流量组。
对于两个待调度的时间触发流量而言,如果它们各自可能传输的路径之间具有较多重叠的链路,则它们同时进行传输的难度也越大。同理,对于两个触发流量组而言,如果它们中所有的时间触发流量可能传输的路径集之间具有较多重叠的链路,则这两个触发流量组之间进行同时传输的难度也越大。因此,为了使分组调度之后的总体调度成功率尽可能的高,分组之后得到的各个触发流量组之间路径集的相似度应当尽可能的低。SC聚类方法是一种基于图论的聚类方法,可以将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量的远,所得的结果是一个均匀划分,即各个划分所包含的节点数目相近。
在针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度之后,构建预设相似度矩阵,根据预设相似度矩阵以及预设触发流量的组数,通过SC谱聚类方法将各个时间触发流量进行分组。
具体的,在获得每两个时间触发流量的传输路径集合的相似度之后,在Python中调用SC谱聚类方法,基于预设相似度矩阵和预设触发流量的组数,通过SC谱聚类方法来获得触发流量组。其中触发流量的组数可以通过上述实施例计算得到,也可以是根据实际情况进行设定的。
通过降低各个触发流量组之间路径集的相似度,使得各个触发流量组之间的时间触发流量可以通过不同的传输路径进行传输,减少重叠链路的发生,使分组调度之后的总体调度成功率尽可能的高,不仅可以减少求解时间,实现时延的确定性,还可以提高调度的成功率。
在一种可能的实施例中,根据以下公式计算每两个时间触发流量的传输路径集合的相似度;
其中,f
i和f
j表示时间触发流量;
表示f
i的传输路径集合,
表示f
j的传输路径集合;p
m为f
i的传输路径集合中的一条路径;p
n为f
j的传输路径集合中的一条路径;w(f
i,f
j)表征时间触发流量f
i和时间触发流量f
j的传输路径集的相似度。
根据以下公式计算预触发流量组方案的相似度:
w(G1,G2...Gmax-1,Gmax)表征预触发流量组方案的相似度,其中G1,G2…Gmax-1,Gmax表征一个预触发流量组方案中的各个预触发流量组;当w(G1,G2...Gmax-1,Gmax)最小时,G1,G2…Gmax-1,Gmax为最终的触发流量组。
其中,fo是预触发流量组Gi中的任意一个时间触发流量,fp是预触发流量组Gj中的任意一个时间触发流量。
所有的时间触发流量按照特定的分组方案被分组为:G1,G2…Gmax-1,Gmax。一组触发流量组Gm中所有时间触发流量可能的传输路径的集合用以下公式表示:
其中fj表示触发流量组Gm中的一个时间触发流量,Pfj表示时间触发流量fj可能通过的路径的集合。
在一种可能的实施例中,上述ILP目标函数可以表示为:
其中,G
m表示触发流量组;f
i表示触发流量组G
m中的时间触发流量,f
i∈G
m;
表示时间触发流量f
i从源主机到目的主机的传输路径集合;p表示传输路径集合
中的路径,
t
i表示时隙,T为时隙集合;l表示链路,L为链路集合;
表示传输路径p与时隙t
i的映射关系,当在时隙t
i,存在时间触发流量按照传输路径p进行传输时,
为1,否则
为0;
表示传输路径p与时间触发流量f
i的映射关系,其中,若存在时间触发流量f
j的传输路径为p,则
为1,否则
为0;
Y(p,l)表示传输路径p与链路l的映射关系,其中,若传输路径p包括链路l,则Y(p,l)为1,否则Y(p,l)为0;
表示链路l与时隙的映射关系,其中,在时隙t
i,若已有任一时间触发流量调度到链路l,则
为1,否则
为0。
通过求解ILP目标函数,可以获得各个时间触发流量的传输时隙和传输路径。
在一种可能的实施例中,针对每一时间触发流量,该时间触发流量的传输路径集合为该时间触发流量的最短传输路径集合。
通过最短传输路径传输时间触发流量,可以缩小传输时间,以此实现时延的确定性。
示例性的,针对每一个触发流量组,建立当前选取的触发流量组的整数线性规划ILP目标函数的之前,通过拓扑修剪的方式将该组时间触发流量调度时的网络拓扑进行删减,剔除掉不会发生冲突的链路部分。
在获取各个时间触发流量的传输路径集合后,根据该触发流量组中的时间触发流量的传输路径集合,建立该触发流量组的拓扑结构。
如图4所示,图4为本发明实施例提供的面向大规模时间敏感网络的调度方法中的拓扑图的一种示意图,时间敏感网络中存在两个待调度的时间触发流量:flow1=(S7,S5)、flow2=(S3,S5)。flow1是从主机S7传输至主机S5,flow1是从主机S3传输至主机S5,flow1从源主机到目标主机有两条最短路径:path1和path2,而flow2从源主机到目标主机有两条最短路径:path3和path4。这四条路径所包含的链路是本组调度可能占用的链路资源,每条链路都会为模型的求解添加约束条件。
flow1和flow2的最短传输路径都不会经过主机S2,因此可以将与S2相连接的传输路径删除,减少路径约束;拓扑修剪之后的结果如图(b)所示,链路的减少使得模型的约束条件减少,从而降低了问题的求解规模。而且,由于拓扑修剪策略不会影响最终的调度结果,保证了调度成功率保持不变。
基于上述方法实施例,本发明实施例提供了一种面向大规模时间敏感网络的调度装置,如图5所示,图5为本发明实施例提供的面向大规模时间敏感网络的调度装置的一种流程示意图,该装置可以包括:
获取模块510,用于针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合;其中,一上述传输路径集合包括至少一条传输路径,每条上述传输路径各自对应有链路信息;
分组模块520,用于根据各上述传输路径集合,将各个上述时间触发流量进行分组,得到触发流量组;
选取模块530,用于在各上述触发流量组中,选取一个未调度的触发流量组;
函数建立模块540,用于针对当前选取的触发流量组,根据预设时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的ILP目标函数,其中,预设时隙是根据上述时间触发流量的产生周期和预设时隙步长确定的;
求解模块550,用于针对当前选取的触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;
调度模块560,用于针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机;
判断模块570,用于判断各上述触发流量组是否均调度完成,若否,则返回上述选取模块继续执行。
在一种可能的实施例中,上述分组模块520包括:
预分组子模块,用于将各个上述时间触发流量进行预分组,得到多个预触发流量组方案,其中,一个上述预触发流量组方案用于将所有的时间触发流量进行分组,得到多个预触发流量组;一个上述预触发流量组中包括至少一个上述时间触发流量;
第一计算子模块,用于针对每两个时间触发流量,计算该两个时间触发流量的传输路径集合的相似度;
第二计算子模块,用于针对每一预触发流量组方案中的每两个预触发流量组,根据该两个预触发流量组中的特定两个时间触发流量的传输路径集合的相似度,计算该两个预触发流量组的第一相似度;上述特定两个时间触发流量分别属于不同的预触发流量组;
确定子模块,用于针对每一预触发流量组方案,根据上述第一相似度计算该预触发流量组方案的相似度;上述预触发流量组方案的相似度与各个上述第一相似度成正比,在上述预触发流量组方案的相似度的最小时,该预触发流量组方案中的预触发流量组为触发流量组。
在一种可能的实施例中,上述分组模块520还包括:
构建子模块,用于根据每两个时间触发流量的传输路径集合的相似度,构建预设相似度矩阵;
谱聚类子模块,用于基于谱聚类方法,按照预设相似度矩阵和预设触发流量组的组数,对各个上述时间触发流量,得到各个触发流量组。
可选的,上述第一计算子模块具体用于:
其中,f
i和f
j表示时间触发流量;
表示f
i的传输路径集合,
表示f
j的传输路径集合;p
m为f
i的传输路径集合中的一条路径;p
n为f
j的传输路径集合中的一条路径;w(f
i,f
j)表征时间触发流量f
i和时间触发流量f
j的传输路径集的相似度。
在一种可能的实施例中,上述第二计算子模块具体用于:
根据以下公式计算预触发流量组方案的相似度:
w(G1,G2...Gmax-1,Gmax)表征预触发流量组方案的相似度,其中G1,G2…Gmax-1,Gmax表征一个预触发流量组方案中的各个预触发流量组;当w(G1,G2...Gmax-1,Gmax)最小时,G1,G2…Gmax-1,Gmax为最终的触发流量组。
在一种可能的实施例中,上述ILP目标函数可以表示为:
其中,G
m表示触发流量组;f
i表示触发流量组G
m中的时间触发流量,f
i∈G
m;
表示时间触发流量f
i从源主机到目的主机的传输路径集合;p表示传输路径集合
中的路径,
t
i表示时隙,T为时隙集合;l表示链路,L为链路集合;
表示传输路径p与时隙t
i的映射关系,当在时隙t
i,存在时间触发流量按照传输路径p进行传输时,
为1,否则
为0;
表示传输路径p与时间触发流量f
i的映射关系,其中,若存在时间触发流量f
j的传输路径为p,则
为1,否则
为0;
Y(p,l)表示传输路径p与链路l的映射关系,其中,若传输路径p包括链路l,则Y(p,l)为1,否则Y(p,l)为0;
表示链路l与时隙的映射关系,其中,在时隙t
i,若已有任一时间触发流量调度到链路l,则
为1,否则
为0。
在一种可能的实施例中,针对每一时间触发流量,该时间触发流量的传输路径集合为该时间触发流量的最短传输路径集合。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
步骤A,针对每一个待调度的时间触发流量,获取该时间触发流量的传输路径集合;其中,一上述传输路径集合包括至少一条传输路径,每条上述传输路径各自对应有链路信息;
步骤B,根据各上述传输路径集合,将各个上述时间触发流量进行分组,得到触发流量组;
步骤C,在各上述触发流量组中,选取一个未调度的触发流量组;
步骤D,针对当前选取的触发流量组,根据时隙、已获得的各ILP目标函数,以及当前选取的触发流量组中各个时间触发流量的传输路径,建立当前选取的触发流量组的整数线性规划ILP目标函数,其中,上述时隙是根据各上述时间触发流量的传输周期确定的;
步骤E,针对当前选取的触发流量组,求解该触发流量组的ILP目标函数,得到该触发流量组中的各个时间触发流量的目标传输路径和目标传输时隙;
步骤F,针对每一时间触发流量,按照该时间触发流量的目标传输时隙和该时间触发流量的目标传输路径,在目标传输时隙将该时间触发流量由源主机传输到目的主机;
步骤G,判断各上述触发流量组是否均调度完成,若否,则返回上述步骤C继续执行。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一面向大规模时间敏感网络的调度方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一面向大规模时间敏感网络的调度方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本发明实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。