1.面向最小化网络拥塞和Qos保障的数据中心网络流量调度方法,其特征在于,包括如下步骤:步骤1,当边缘层交换机收到由主机发送的数据包时,依据数据包目的地址判断是否与当前边缘层交换机直接连接,如果直接连接则下发流表完成调度,否则转入步骤2;
步骤2,控制器利用链路发现协议LLDP(Link Layer Discovery Protocol),采取主动测量的方式,周期性的下发LLDP数据包,根据各个交换机端口返回的数据包,计算出当前整个网络的拓扑情况;
步骤3,通过使用控制器向交换机发送多重请求(MULTIPART_REQUEST)消息,周期性查询交换机各个端口和流条目的统计信息,交换机则使用多重回复(MULTIPART_REPLY)消息回复控制器,进而得到各个交换机的端口数据;
步骤4,对各个交换机的端口数据进行大小流的判断,将传输速率大于设定阈值的数据流定义为大流,数据流如为大流则转入步骤5,否则采取等价多路径算法完成调度;
步骤5,控制器为数据流使用基于跳数的K条最短路径算法找到数据源与目的地址主机之间的最短路径集合;
步骤5的具体实现方式如下;
初始化整个网络拓扑为一个无向图G=(V,E),其中V表示网络中交换机的集合,E表示网络中链路集合,利用networkx中集成的最短路径算法,找到两个主机之间经过交换机V最少的路径集合Paths={path1...pathn},即最短路径集合,其中path1代表一条跳数最短的路径,n为跳数最短的路径的数量,Paths中每条路径都包括了无向图中多条链路;
步骤6,使用麻雀搜索算法从最短路径集合中获取最优路径,控制器根据最优路径将数据流转发至目的主机,完成大流的调度;
步骤6的具体实现方式如下;
步骤6.1,初始化算法参数,包括最大迭代次数MaxIter、预警值R2、安全阈值ST;
步骤6.2,构造基于线性加权法的适应度函数;
步骤6.3,将基于跳数的k条最短路径算法求得的解集合,作为麻雀搜索算法的初始输入,随机生成初始种群,所有麻雀的位置X可以通过以下公式表示:其中,m为麻雀的个数,xi即待定最优路径的第i个可行解;
步骤6.4,依据适应度函数公式计算出每只麻雀对应的适应度值,并对其进行排序,根据适应度值的大小将种群分为发现者和加入者,同时找到适应度值最高和最低的麻雀以及当前所处位置;
步骤6.5,从适应度值较低的麻雀中,挑选前Pu麻雀作为发现者,发现者根据公式更新位置:其中,t表示当前迭代数,i为麻雀的编号, 表示第t+1次迭代时,第i只麻雀的位置,MaxIter为最大迭代次数,α∈(0,1]为一个随机数,R2∈[0,1]为警戒信号值,ST∈[0.5,1]为安全阈值,Q是服从正态分布的随机数,L表示一个1×d的矩阵,矩阵内每个元素全部为1;
当R2
步骤6.6,种群中的剩余麻雀均作为加入者,并按照公式更新位置:
其中, 是t代麻雀适应值最优的位置, 表示t代麻雀适应值最差的位置,A=(a1,+ T T ‑1a2),其中a1,a2随机取值为1或‑1,且A =A (AA) ,若 时,表示编号为i的加入者没有获得食物源,麻雀的适应值处于较低状态;
步骤6.7,从麻雀种群中随机挑选Su只麻雀作为预警者,并按照公式更新位置:其中, 表示在t次迭代中发现者发现了最佳适应度值的位置,β~N(0,1)表示每一次麻雀所能移动的距离参数;K∈[‑1,1]表示麻雀的位移参数,fi表示编号i麻雀的适应度+值,fg与fw分别表示当前具有全局适应值最好与最坏的麻雀,ε→0是非常小的常数;当fi>fg时,表示麻雀处于危险区域,需要回到安全区域,当fi=fg时,表明正处在某一较为安全区域的麻雀意识到了危险,需要寻求麻雀群体的庇护;
步骤6.8,得到当前更新后的位置,如果新位置的适应度值优于旧位置,则更新旧位置;
步骤6.9,若当前迭代次数小于最大迭代次数MaxIter,则不断进行迭代操作,最终得到全局最佳适应度值和最优流量调度路径,其中全局最佳适应度值对应的调度路径就是最优调度路径。
2.如权利要求1所述的面向最小化网络拥塞和Qos保障的数据中心网络流量调度方法,其特征在于:步骤4中大小流的判断的具体实现方式如下;
在对数据流进行大小流的判断时,为了适应不同的Fat‑tree网络链路带宽,当数据流超过链路带宽的5%时,就认定该流为一个大流,计算方式如下:其中,B为设置的链路最大带宽,flow为流速率占链路带宽的比例,b(t2)是交换机在t2时刻接收到的字节数,b(t1)是交换机在t1时刻接收到的字节数。
3.如权利要求1所述的面向最小化网络拥塞和Qos保障的数据中心网络流量调度方法,其特征在于:步骤6.2中基于路径实时负载、大流数目以及时延构造麻雀搜索算法的适应度函数,具体实现方式如下;
(1).链路实时负载,通过使用控制器向交换机发送轮询请求,周期性的检测所有链路的流量情况并且计算出各个链路上的实际网络负载,每条链路的网络负载Lz,o(y)公式为:z,o表示交换机z与交换机o之间的链路,Loadz,o(y)表示链路(z,o)在y时刻的传输数据流所占用带宽的大小,Bz,o表示链路(z,o)上最大带宽的大小,即最大传输速率;
如一个可行解x1包括了链路(z,o),…,(c,d),则该可行解在y时刻的路径负载Lx1(y)公式如下:Lx1(y)=MAX[Lz,o(y),…,Lc,d(y)]
(2).统计路径上的大流数目,如可行解x1中包含了l条链路,第h条链路上有Numh条大流,则可行解x1上的大流数目为:Num=MAX[Num1,Num2,…Numl]
(3).通过LLDP和Echo数据包的时延计算得到可行解x1上每条链路的传输时延,时延计算公式如下:其中T1为控制器下发数据包至交换机A+交换机A将数据包转发至交换机B+交换机B到控制器的时延,同理T2为控制器下发数据包至交换机B+交换机B将数据包转发至交换机A+交换机A到控制器的时延;
控制器到交换机的时延计算是通过控制器向交换机A和交换机B发送带有时间戳的Echo request消息,交换机在收到之后立刻回复带有时间戳的Echo reply消息;最后控制器将两者相减得到控制器到交换机的往返时延(rtt),分别是Ta,Tb,所以T1+T2‑Ta‑Tb为交换机A到交换机B+交换机B到交换机A的时延,这里假设往返时间一致,则 为交换机A到交换机B的时延;
如可行解x1中包含了n条链路,第i条链路上的传输时延为delayh,则可行解x1的传输时延为:(4).适应度函数f(xi)的定义如下:
其中α,β,γ是影响因子,影响因子的大小说明各参数的重要性;第一项Lxi是可行解x1的最大链路负载情况,可以在一定程度上反应该路径的网络负载情况;第二项Num为大流数目,该项结合第一项可以较为准确的评估链路在某一时刻的负载情况,大流数目越多,路径负载越大;第三项delay为链路的传输时延;适应度函数f(xi)的值越大,则说明该路径上的路径负载越大,更容易发生因流碰撞而导致的局部链路拥塞情况;适应度函数f(xi)的值越小,说明该路径的网络负载相对较小,与其他路径相比较为空闲,应该选此路径作为流量调度的路径。