基于蚁群算法的SDN数据中心负载均衡流调度方法

未命名 10-09 阅读:111 评论:0

基于蚁群算法的sdn数据中心负载均衡流调度方法
技术领域
1.本发明涉及软件定义网络(software defined network,sdn)技术领域,具体涉及一种基于蚁群算法的sdn数据中心负载均衡流调度方法。


背景技术:

2.随着网络规模、结构和负载的日益庞大,传统网络架构流量调度不均,容易造成网络拥塞。软件定义网络作为新型网络架构,将网络的控制平面和数据平面分离,具有全局网络视图、细粒度流控制、开放可编程和逻辑集中等优点,越来越多地应用于数据中心网络流调度中。
3.在数据中心网络中,将数量只有10%却造成90%的总数据量拥塞的数据流称为“大象流”,将数量巨大但字节小的文本或命令字等数据流称为“老鼠流”。大象流对带宽比较敏感,持续时间较长,是造成网络拥塞排队延迟增加的主要原因,其具体场景包括视频监控、电视电话会议和服务器数据备份迁移等。老鼠流代表了大部分的即时通信应用,对时延和丢包率很敏感,对用户的体验有极大的影响,其具体场景包括oa邮件、网站门户和防病毒服务等。由于数据中心网络中大小流共存,难以保障不同数据流对网络服务质量的不同约束要求,因此同时保障好大象流和老鼠流的传输,对网络的负载均衡有重要意义。
4.数据中心网络中大象流和老鼠流共存是流调度的一大挑战,目前sdn数据中心仍存在流量负载分配不均衡等问题。刘铁军(刘铁军,sdn网络的交换机安全控制技术研究[d],北京:北京邮电大学,2017:1-75,)提出了一种面向sdn的交换机控制技术,使用restfulapi上传并安装服务程序,但它限制了sdn交换机的数量,一些大象流可能存在上传失败的风险。由彬(由彬,基于sdn负载均衡系统的研究[d],上海:东华大学,2018:1-71,)选择链路的带宽信息作为dijkstra算法的负载权重信息实现链路负载均衡,但是网络拓扑结构较大时,算法的计算量增加。唐宏等(唐宏,王欣欣,刘亦星,面向带宽碎片最小化和qos保障的数据中心网络流量调度算法[j],电子与信息学报,2019,41(04):987-994,)0提出一种面向带宽碎片最小化流量调度算法,根据路径的剩余带宽信息和老鼠流的应用需求,采用概率方法为大象流选择路径,但无法适应流量的动态变化。李道全等(李道全,黄泰铭,于波,王雪,基于流量分配倾向度的sdn多路径负载均衡[j],计算机工程与设计,2020,41(10):2718-2723,)提出了一种基于流量分配倾向度的算法,根据定义的流量分布趋势将流量分配到可用的路径上,但忽略了实际网络带宽时延的差异。姚赞(姚赞,基于sdn的数据中心网络高能效路由和流调度机制[d],北京:北京邮电大学,2021:1-111,)提出一种基于业务优先级的大象流调度算法,结合业务优先级调度和路径选择进行大象流调度,但是网络流量是突发性的,流量大小不能反映整体链路负载情况。由此可见,只有同时保障大象流和老鼠流的调度策略,实现多优化目标的流调度,才能更好地利用资源,提高数据中心的流量处理效率,保障数据中心网络的稳定运行。


技术实现要素:

[0005]
本发明所要解决的是数据中心网络中大小流共存,难以保障不同数据流对网络服务质量的不同约束要求的问题,提供一种基于蚁群算法的sdn数据中心负载均衡流调度方法。
[0006]
为解决上述问题,本发明是通过以下技术方案实现的:
[0007]
基于蚁群算法的sdn数据中心负载均衡流调度方法,包括步骤如下:
[0008]
步骤1、初始化禁忌表为空;初始化路径库为空,将所有的链路信息素浓度初始化为信息素总量q,令当前迭代次数n=0;
[0009]
步骤2、根据当前数据流的类型为带宽权重b、时延权重d和丢包率权重l进行赋值;
[0010]
步骤3、让当前迭代次数n加1;令当前蚂蚁数k=0;
[0011]
步骤4、让当前蚂蚁数k加1;
[0012]
步骤5、令当前交换机为源交换机;
[0013]
步骤6、计算当前交换机与其可选下一跳交换机的链路综合评分;其中交换机i和交换机j的链路综合评分η
ij
为:
[0014][0015]
步骤7、基于链路综合评分,计算当前交换机与其可选下一跳交换机的转移概率;
[0016]
步骤8、将转移转移概率最高的可选下一跳交换机选定为当前交换机的下一跳交换机,并将所选定的下一跳交换机视为当前交换机;
[0017]
步骤9、判断当前交换机是否为目的交换机:如果是,则将源交换机到交换机所经过的路径存入禁忌表,并将该路径的所有链路的链路综合评分之和作为该路径的路径综合评分;否则,返回步骤6;
[0018]
步骤10、判断当前蚂蚁数k是否达到最大蚂蚁数k:如果k<k,则返回步骤4;否则,将禁忌表中路径综合评分最高的路径存入路径库,清空禁忌表,并转至步骤11;
[0019]
步骤11、计算所有的链路信息素增量;其中交换机i和交换机j的链路信息素增量δτ
ij
为:
[0020][0021]
步骤12、基于链路信息素增量,更新所有的链路信息素浓度;
[0022]
步骤13、判断当前迭代次数n是否达到最大迭代次数n:如果n<n,则返回步骤3;否则,将当前路径库中路径综合评分最高的路径作为最优解输出;
[0023]
式中,b为带宽权重,d为时延权重,l为丢包率权重,bw
ij
为交换机i和交换机j的链路剩余带宽,bw
u_ij
为交换机i和交换机j的链路已用带宽,delay
ij
为交换机i和交换机j的链路传输时延,loss
ij
为交换机i和交换机j的链路丢包率,next为交换机i的所有可选下一跳交换机集合,q为信息素总量。
[0024]
上述步骤2的具体过程如下:
[0025]
步骤2.1、计算数据流字节与最大带宽的比值flow:
[0026][0027]
步骤2.2、将数据流字节与最大带宽的比值flow与数据量分类参数f进行比较:当flow>f时,则将数据流归类为大象流;否则,将数据流归类为老鼠流;
[0028]
步骤2.3、若数据流为大象流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l中的最大值;若数据流为老鼠流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l中的最小值;
[0029]
式中,t1为开始监测的时间点,t2为结束监测的时间点,byte1为t1时刻接收到的总数据流字节,byte2为t2时刻接收到的总数据流字节,bw
max
为监测链路的最大带宽。
[0030]
上述步骤7中,交换机i和交换机j的转移概率p
ij
为:
[0031][0032]
式中,τ
ij
为交换机i和交换机j的链路信息素浓度,η
ij
为交换机i和交换机j的链路综合评分,α为依赖系数,β为偏好系数,next为交换机i的所有可选下一跳交换机集合。
[0033]
上述步骤12中,链路信息素浓度的更新公式为:
[0034]
τ
ij更新后
=(1-ρ)*τ
ij更新前
+δτ
ij
[0035]
式中,τ
ij更新后
为更新后的交换机i和交换机j的链路信息素浓度,τ
ij更新前
为更新前的交换机i和交换机j的链路信息素,ρ为信息素的挥发系数,δτ
ij
为交换机i和交换机j的链路信息素增量。
[0036]
与现有技术相比,本发明提出一种基于蚁群算法(aco)的sdn数据中心网络动态流量调度机制,对数据流进行有区别的调度。通过sdn控制器获得网络信息,识别大象流和老鼠流,并基于网络流量特征即数据流的类型,设置不同的链路带宽、时延和丢包率权重,进而优化链路综合评价机制。根据链路综合评价机制,优化链路信息素增量,从而优化链路信息素更新规则,动态选择满足业务qos约束的综合评分的最高路径,实现大象流和老鼠流的差异化调度。实验结果表明,本发明算法可根据实时状态调整流量分配,保障不同数据流对网络服务质量的不同约束要求,避免链路拥塞,实现多路径负载均衡。
附图说明
[0037]
图1为总体设计架构。
[0038]
图2为实验拓扑图。
[0039]
图3为三种算法下s8-s5端口数据包转发比较。
[0040]
图4为三种算法下s8-s6端口数据包转发比较。
[0041]
图5为三种算法下s8-s7交换机数据包转发比较。
[0042]
图6为s8交换机端口转发数据包占比。
[0043]
图7为某行网络拓扑图。
[0044]
图8为s7交换机端口转发数据包占比。
具体实施方式
[0045]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
[0046]
sdn网络架构包括openflow交换机和floodlight控制器两部分,如图1所示。openflow交换机收集接口信息,并实现路由转发。floodlight控制器是核心,管理数据转发层的交换设备,实现方便、高效的网络运维和管理。本发明从应用场景出发,结合sdn网络的特点,在floodlight控制器的模块化架构中加入满足多qos约束的蚁群优化算法,利用floodlight控制器和支持openflow协议的交换机,制定满足负载均衡的流量调度策略。
[0047]
本发明的floodlight控制器包括内部功能模块、链路监测模块和路由计算模块。
[0048]
(1)内部功能模块
[0049]
内部功能模块包括拓扑管理模块、链路发现模块和设备管理模块。内部功能模块主要完成包括拓扑管理、链路发现、设备管理、web访问、计数器存储(openflow计数器)和状态存储等功能。内部功能模块包括拓扑管理模块、链路发现模块和设备管理模块等,通过模块查询和控制底层openflow网络,流表控制数据转发规则,实现不同的功能以满足用户数据流量通信多样化的需求。
[0050]
拓扑管理模块:主要用于控制器的拓扑信息维护,以根据获取的链路信息进行路径计算。当前网络的拓扑信息存储在拓扑实例中,属于不可修改的数据结构。当网络拓扑发生变化时,会生成一个新的拓扑实例来覆盖之前的拓扑实例。当某个模块需要获取拓扑变化时,可通过拓扑管理的itopologylistener接口,接收拓扑变化的通知消息。
[0051]
链路发现模块:主要关注两种消息:packet_in和port_status,从而分析链路的变更,增加或更新链路状态。链路发现模块发送features_request请求交换机的特征信息,交换机查找流表并发送packet_in和port_status回复交换机端口的数据包及状态信息。交换机的增加或者移除活动会带来链路信息的改变,linkdiscoverymanager将packet_in解包后,获得lldp消息,通过获取lldp中设备信息建立起链路的关系,存入本地内存中的数据结构中。
[0052]
设备管理模块:主要用于管理控制器所连接的设备,通过packet_in消息获取设备信息,并对设备实体进行分类。缺省情况下,获取vlan id和mac地址用于唯一标识设备,也可获取设备的其他属性,如端口号和ip地址等。如果控制器收到来自某个设备的packet_in消息,则为该设备创建一个连接点。根据时间戳控制清除过程,连接超时会清除连接点、ip地址等信息。
[0053]
(2)链路监测模块
[0054]
链路监测模块包括大小流监测模块、时延监测模块、带宽监测模块、和丢包率监测模块。链路监测模块运用sflow技术在floodlight控制器上周期性记录openflow交换机网络中传输的数据流和接口状态信息(包括带宽,延时,丢包率)。
[0055]
大小流监测模块:负责监测数据流。设t1表示大小流监测模块开始监测的时间点,t2表示大小流监测模块结束监测的时间点,t1时刻接收到的总数据流字节为byte1,t2时刻接收到的总数据流字节为byte2,当前链路的最大带宽为bw
max
,则数据流字节与最大带宽的比值flow为:
[0056][0057]
当比值flow大于f时,将数据流归类为大象流;反之则数据流为老鼠流。数据量分类参数f为一个可调整的参数,取值范围通常设置为10%~30%,根据实际需求进行调整,例如当前链路的带宽、硬件性能以及所需保证的服务质量等因素。在某些场景下,需要更细致地判断数据流的大小和链路带宽的利用情况,可以将f的取值调整得更小;而在另一些场景下,可以将f的取值调整得更大,以便更好地满足业务需求。
[0058]
时延监测模块:负责计算交换机之间的时延。
[0059]
设t3表示时延监测模块开始监测的时间点,t4表示时延监测模块结束监测的时间点,t3时刻交换机i收到报文后,将数据包转发给交换机j,交换机j将数据包发送给floodlight控制器。控制器监听到消息的时刻为t4,则总传输时延delay
total
为:
[0060]
delay
total
=t
4-t3(2)
[0061]
控制器分别向交换机i和交换机j发送request消息,发送时间分别记为t
qi
和t
qj
。交换机i和j收到request消息后,立即将reply消息回复给floodlight控制器。控制器收到交换机i和j的reply消息的时刻分别为t
pi
和t
pj
。一对报文截取的时间差值即该报文在控制器到交换机链路上往返的时间,因此floodlight控制器到交换机的链路时延为时间差的一半,交换机i和j之间链路的链路时延delay
ij
为:
[0062][0063]
带宽监测模块:负责计算带宽。使用openflow协议对交换机i和交换机j相连的链路端口进行监测,并汇总得到的信息。
[0064]
设t5表示带宽监测模块开始监测的时间点,t6表示带宽监测模块结束监测的时间点,rbyte
ij
为交换机i和j之间链路接收的字节数,tbyte
ij
为交换机i和j之间链路发送的字节数,t5至t6时间间隔内交换机i发送与交换机j接收的数据流字节数相加,再除以时间差,得到交换机i和j之间链路的链路已用带宽bw
u_ij

[0065][0066]
链路最大带宽bw
max
减去链路已用带宽bw
u_ij
即为交换机i和j之间链路的链路剩余带宽bw
ij

[0067]
bw
ij
=bw
max-bw
u_ij
(5)
[0068]
丢包率监测模块:与链路带宽监测方法类似,丢包率监测模块通过定期主动查询交换机i上与和交换机j相连的端口统计信息来计算链路的丢包率。floodlight控制器发送portstatsreq消息查询交换机接收到其他交换机发送的数据包数量设为rbyte
ij
,丢失的数据包数量为rbyte
loss_ij
;发送的数据包数量为tbyte
ij
,丢失的数据包数量为tbyte
loss_ij
。交换机i和j之间链路的链路丢包率loss
ij
为:
[0069][0070]
链路剩余带宽、时延和丢包率作为链路状态变量存储。
[0071]
(3)路由计算模块
[0072]
路由计算模块是本系统的核心模块,根据当前网络拓扑结构和网络中的状态信息来计算路由。交换机将数据流封装成packet_in消息并发送给控制器。控制器接收到信息后,启动路由计算模块,从所有可访问路径中计算出最优路径。本发明设计多约束qos蚁群优化算法进行路由计算,根据从链路监测模块中获取实时状态信息,识别大小流,并计算带宽、时延和丢包率等状态信息,选择一条顺畅、高效的路径来转发数据流,实现数据中心流量调度和链路优化选择。
[0073]
考虑到大象流对带宽很敏感,而队列延迟和丢包则是导致老鼠流传输时间增加的主要原因。本发明的多约束qos蚁群优化算法,通过floodlight控制器实现信息收集和多路径选择,并根据大象流对高带宽需求和老鼠流对低时延要求的不同需求特性,选择带宽、时延和丢包率这3个参数来评价链路的综合价值,避免链路处于频繁调度状态。通过对信息素更新方式和启发函数进行优化,动态更新链路权重,计算最优路径,保障大象流的高带宽需求和老鼠流的实时性,降低丢包率,避免链路拥塞,提升链路利用率。
[0074]
蚁群优化算法中,蚂蚁会在所经过的路径上留下信息素,其他蚂蚁感知信息素的浓度,根据信息素浓度和链路的综合评分,以一定的转移概率选择路径。蚂蚁从交换机i选择交换机j的转移概率p
ij
为:
[0075][0076]
式中:α为蚂蚁对信息素的依赖系数,其值越大,表示对信息素的依赖程度越高,α通常取值1-4。β为链路偏好系数,其值越大,表示蚂蚁对路径越感兴趣,β通常取值0-5。集合
next
为交换机i上可选择的下一跳交换机集合。τ
ij
为交换机i和交换机j之间链路的链路信息素浓度。η
ij
是交换机i与交换机j之间的链路综合评分。
[0077]
交换机i与下一跳交换机j之间的链路综合评分η
ij
作为启发函数,其分值越高,下一只蚂蚁选择该链路的概率就越大。η
ij
的具体计算公式见式(8),时延和丢包率使用倒数形式以统一属性维度。
[0078][0079]
式中,bw
ij
、delay
ij
和loss
ij
分别是交换机i和交换机j之间链路上剩余带宽、时延和丢包率。b、d和l分别是带宽权重、时延权重和丢包率权重。
[0080]
根据业务qos需求,带宽、时延和丢包率权重b、d和l,分别根据大象流的高带宽和老鼠流的低延迟需求特性设置不同的评分权重值,以保证大象流和老鼠流的最优路径都满足各自的要求,提高整体链路利用率。
[0081]
当数据流被识别为大象流时,b较大,且大于d和l中的较大值。b应当取值较大,通常在5-10之间;d应当取值较小,通常在1-5之间;l的取值范围较广,通常在1-10之间。
[0082]
当数据流被识别为老鼠流时,b较小,且小于d和l中的较小值。b应当取值较小,通常在1-3之间;d应当取值较大,通常在7-10之间;l的取值范围较广,通常在10-20之间。
[0083]
结合式(7)分析,蚂蚁选择链路的偏好与其剩余带宽成正比,与时延和丢包率成反比,随流量的大小而变化。蚂蚁完成一次循环后,按式(9)更新信息素浓度。
[0084]
τ
ij更新后
=(1-ρ)*τ
ij更新前
+δτ
ij
(9)
[0085]
式中:,τ
ij更新后
为更新后的交换机i和交换机j的链路信息素浓度,τ
ij更新前
为更新前的交换机i和交换机j的链路信息素,ρ为信息素的挥发系数,其影响蚁群算法的收敛速度和搜索能力,ρ通常取值0.3-0.6。δτ
ij
为链路的信息素增量,计算公式如式(10)。
[0086][0087]
式中:q为蚂蚁经过路径时留下的信息素总量,该值在一定程度上会影响算法的收敛速度,可设为常数;bw
u_ij
为交换机i和交换机j之间链路的链路已用带宽。
[0088]
蚂蚁放在起点,从起点开始探索,根据式(7)选择要穿过的交换机,确定概率最大的交换机为下一交换机。在前往目的地途中蚂蚁所释放的信息素浓度,会影响后面蚂蚁选择交换机的概率。蚂蚁完成链路选择后,将计算出的路径交换机暂存到禁忌表tabu中,按式(9)动态更新各路径信息素含量。全部蚂蚁完成寻路后,将禁忌表中得分最高的路径存储到路径库route中。多次迭代后,从路径库中选择链路综合评分最高者作为最优路径。
[0089]
基于上述sdn网络架构,本发明所提出的一种基于蚁群算法的sdn数据中心负载均衡流调度方法,具体过程如下:
[0090]
步骤1、初始化禁忌表为空;初始化路径库为空,将所有的链路信息素浓度τ
ij
初始化为信息素总量q,令当前迭代次数n=0。
[0091]
步骤2、根据当前数据流的类型为带宽权重b、时延权重d和丢包率权重l进行赋值。
[0092]
步骤2.1、计算数据流字节与最大带宽的比值flow:
[0093][0094]
式中,t1为开始监测的时间点,t2为结束监测的时间点,byte1为t1时刻接收到的总数据流字节,byte2为t2时刻接收到的总数据流字节,bw
max
为监测链路的最大带宽;
[0095]
步骤2.2、将数据流字节与最大带宽的比值flow与数据量分类参数f进行比较:当flow>f时,则将数据流归类为大象流;否则,将数据流归类为老鼠流;
[0096]
步骤2.3、若数据流为大象流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l中的最大值;若数据流为老鼠流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l中的最小值。
[0097]
步骤3、更新当前迭代次数n,令n=n+1;令当前蚂蚁数k=0。
[0098]
步骤4、更新当前蚂蚁数k,令k=k+1。
[0099]
步骤5、令当前交换机为源交换机。
[0100]
步骤6、计算当前交换机与其可选下一跳交换机的链路综合评分;其中交换机i和交换机j的链路综合评分η
ij
为:
[0101][0102]
式中,b为带宽权重,bw
ij
为交换机i和交换机j的链路剩余带宽,d为时延权重,
delay
ij
为交换机i和交换机j的链路传输时延,l为丢包率权重,loss
ij
为交换机i和交换机j的链路丢包率,next为交换机i的所有可选下一跳交换机集合。
[0103]
步骤7、基于链路综合评分,计算当前交换机与其可选下一跳交换机的转移概率;其中交换机i和交换机j的转移概率p
ij
为:
[0104][0105]
式中,τ
ij
为交换机i和交换机j的链路信息素浓度,η
ij
为交换机i和交换机j的链路综合评分,α为依赖系数,β为偏好系数,next为交换机i的所有可选下一跳交换机集合。
[0106]
步骤8、将转移转移概率最高的可选下一跳交换机选定为当前交换机的下一跳交换机,并将所选定的下一跳交换机视为当前交换机。
[0107]
步骤9、判断当前交换机是否为目的交换机:
[0108]
如果是,则将源交换机到交换机所经过的路径存入禁忌表,并将该路径的所有链路的链路综合评分之和作为该路径的路径综合评分;
[0109]
否则,返回步骤6。
[0110]
步骤10、判断当前蚂蚁数k是否达到最大蚂蚁数k:
[0111]
如果k<k,则返回步骤4;
[0112]
否则,将禁忌表中路径综合评分最高的路径存入路径库,清空禁忌表,并转至步骤11。
[0113]
步骤11、计算所有的链路信息素增量;其中交换机i和交换机j的链路信息素增量δτ
ij
为:
[0114][0115]
式中,q为信息素总量,b为带宽权重,bw
u_ij
为交换机i和交换机j的链路已用带宽,d为时延权重,delay
ij
为交换机i和交换机j的链路传输时延,l为丢包率权重,loss
ij
为交换机i和交换机j的链路丢包率。
[0116]
步骤12、基于链路信息素增量,更新所有的链路信息素浓度,即令τ
ij
=(1-ρ)*τ
ij
+δτ
ij
;ρ为信息素的挥发系数。
[0117]
步骤13、判断当前迭代次数n是否达到最大迭代次数n:
[0118]
如果n<n,则返回步骤3;
[0119]
否则,将当前路径库中路径综合评分最高的路径作为最优解输出。
[0120]
下面将实验部署在mininet和floodlight控制器上,通过在mininet上运行自定义的拓扑,并连接到控制器floodlight来搭建实验环境,模拟客户端与数据中心之间的通信。在floodlight中计算新数据流的路径转发策略,并以流表的形式传递到各个交换机。使用支持openflow协议的open vswitch交换机,iperf用于模拟网络流量。实验网络拓扑如图2所示,包括8个openflow交换机s1-s8;4台主机h1-h4,h1和h2为发送端,h3和h4为接收端。s5

s8为低带宽高时延及高丢包率链路,其他链路为默认参数。
[0121]
根据大象流的高带宽和老鼠流的低延迟需求特性,设置不同的环境参数、权重值
和系数值,如表1所示。
[0122]
表1实验参数设置
[0123][0124]
在主机h1和h2上启动iperf客户端,将udp数据流发送到主机h3和h4。数据流量持续存在,初始时仅有老鼠流,从第10秒开始有大象流注入到链路。使用open vswitch命令:sh ovs-ofctl dump-flows s8,记录交换机s8的三个端口转发的数据包数量变化情况,并与dijkstra路由算法和fdp路由算法进行负载均衡效果比较如图3所示。
[0125]
交换机s8与s6相连的端口转发数据包数量比较如图4所示。第10秒,网络链路上注入大流量时,dijkstra算法只能转发103个数量级的报文,负载较低。fdp算法转发的数据包数量出现明显振动。蚁群优化算法选择剩余带宽较大的路径模式调度大象流,老鼠流通过多条链路转发,数据包转发数量仅有轻微的波动,网络在20秒后趋于平稳。
[0126]
交换机s8与s7相连的端口转发数据包数量比较如图5所示。随着网络数据流的增加,大象流的数量逐渐增加,加剧了对带宽资源的竞争。dijkstra算法中,大象流长时间占用最短链路,老鼠流无法选择其他路径转发,造成超时导致业务失败。fdp路由算法中,流量负载增加,占用更多带宽和增加时延,大象流和老鼠流碰撞发生链路拥塞,导致端口转发数量不稳定。蚁群优化算法中,大象流没有长期占用链路资源,降低了大象流的碰撞概率,链路端口转发平稳,老鼠流没有因数量庞大而发生拥塞,实现基于多路径负载均衡。
[0127]
交换机s8端口转发数据包的百分比如图6所示。dijkstra算法三个转发端口转发的数据包比例约为97.78:1.27:0.95;fdp算法转发的数据包比例约为15.49:67.23:17.28;蚁群优化算法转发比例约为32.99:43.92:23.09,与dijkstra和fdp算法相比,蚁群优化算法通过多路径传输网络流量,很好地满足大小流不同的传输需求,实现了更好的负载均衡效果。
[0128]
近年来,随着银行业务的发展,银行业出现大量新兴业务,业务种类越来越多,数据流量也越来越大。这些业务对带宽、时延、丢包率等性能参数都有不同的要求。银行业务多样性和大流量突发,数据处理的及时性决定了其业务效率和有效性,服务质量保障越发重要。下面结合央行某省分行及地市中心支行对业务流量数据实时处理的需求,研究sdn网络在银行业的应用。
[0129]
基于sdn技术的银行业数据中心网络架构通信过程如下:地市客户端向省数据中心服务器端发送业务请求,控制器通过解析数据包,提取服务请求的初始交换机和交换机,算法根据链路状态等信息得到最优路径。网络拓扑如图7所示,主机h1和h2为地市客户端,主机h3和h4为省数据中心主备服务器。
[0130]
各端口数据包转发数量比例实验结果如图8所示。与dijkstra和fdp算法相比,蚁群优化算法各端口数据包转发数量比例实现了近1:2:1,说明蚁群优化算法在大流量突发时,能在短时间内对流量进行分类,平衡不同链路负载。经过实际测试,使用本发明蚁群优
化算法的控制器,能够根据网络链路实时状态,充分利用网络资源对数据中心网络流量进行合理调度,实现差异化的业务路由和业务报文调度转发,满足不同类型业务的qos要求。
[0131]
本发明提出一种基于蚁群算法的sdn数据中心负载均衡流调度方案,通过sdn控制器实现信息采集,基于网络流量特征,优化大小流的链路评价指标权重,改进链路信息素更新方式,实现流量差异化调度。
[0132]
实验结果表明,与迪杰斯特拉(dijkstra)最短路径算法及基于流量分配倾向度(fdp)的多路径负载均衡算法0相比,本发明的多约束qos蚁群优化算法可根据实时状态调整流量分配,保障不同数据流对网络服务质量的不同约束要求,可降低丢包率,避免链路拥塞,合理分配网络资源,实现多路径负载均衡,增强了对突发大流量的应对能力,保障不同类型流量的公平传输。本发明在银行业的实际应用中,有效提高了网络资源管理的灵活性和可扩展性,保障不同流量的公平传输,实现数据中心网络的平稳运行。
[0133]
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

技术特征:
1.基于蚁群算法的sdn数据中心负载均衡流调度方法,其特征是,包括步骤如下:步骤1、初始化禁忌表为空;初始化路径库为空,将所有的链路信息素浓度初始化为信息素总量q,令当前迭代次数n=0;步骤2、根据当前数据流的类型为带宽权重b、时延权重d和丢包率权重l进行赋值;步骤3、让当前迭代次数n加1;令当前蚂蚁数k=0;步骤4、让当前蚂蚁数k加1;步骤5、令当前交换机为源交换机;步骤6、计算当前交换机与其可选下一跳交换机的链路综合评分;其中交换机i和交换机j的链路综合评分η
ij
为:步骤7、基于链路综合评分,计算当前交换机与其可选下一跳交换机的转移概率;步骤8、将转移转移概率最高的可选下一跳交换机选定为当前交换机的下一跳交换机,并将所选定的下一跳交换机视为当前交换机;步骤9、判断当前交换机是否为目的交换机:如果是,则将源交换机到交换机所经过的路径存入禁忌表,并将该路径的所有链路的链路综合评分之和作为该路径的路径综合评分;否则,返回步骤6;步骤10、判断当前蚂蚁数k是否达到最大蚂蚁数k:如果k<k,则返回步骤4;否则,将禁忌表中路径综合评分最高的路径存入路径库,清空禁忌表,并转至步骤11;步骤11、计算所有的链路信息素增量;其中交换机i和交换机j的链路信息素增量δτ
ij
为:步骤12、基于链路信息素增量,更新所有的链路信息素浓度;步骤13、判断当前迭代次数n是否达到最大迭代次数n:如果n<n,则返回步骤3;否则,将当前路径库中路径综合评分最高的路径作为最优解输出;式中,b为带宽权重,d为时延权重,l为丢包率权重,bw
ij
为交换机i和交换机j的链路剩余带宽,bw
u_ij
为交换机i和交换机j的链路已用带宽,delay
ij
为交换机i和交换机j的链路传输时延,loss
ij
为交换机i和交换机j的链路丢包率,next为交换机i的所有可选下一跳交换机集合,q为信息素总量。2.根据权利要求1所述的基于蚁群算法的sdn数据中心负载均衡流调度方法,其特征是,步骤2的具体过程如下:步骤2.1、计算数据流字节与最大带宽的比值flow:步骤2.2、将数据流字节与最大带宽的比值flow与数据量分类参数f进行比较:当flow>f时,则将数据流归类为大象流;否则,将数据流归类为老鼠流;步骤2.3、若数据流为大象流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l
中的最大值;若数据流为老鼠流,则在赋值时让带宽权重b大于时延权重d和丢包率权重l中的最小值;式中,t1为开始监测的时间点,t2为结束监测的时间点,byte1为t1时刻接收到的总数据流字节,byte2为t2时刻接收到的总数据流字节,bw
max
为监测链路的最大带宽。3.根据权利要求1所述的基于蚁群算法的sdn数据中心负载均衡流调度方法,其特征是,步骤7中,交换机i和交换机j的转移概率p
ij
为:式中,τ
ij
为交换机i和交换机j的链路信息素浓度,η
ij
为交换机i和交换机j的链路综合评分,α为依赖系数,β为偏好系数,next为交换机i的所有可选下一跳交换机集合。4.根据权利要求1所述的基于蚁群算法的sdn数据中心负载均衡流调度方法,其特征是,步骤12中,链路信息素浓度的更新公式为:τ
ij更新后
=(1-ρ)*τ
ij更新前
+δτ
ij
式中,τ
ij更新后
为更新后的交换机i和交换机j的链路信息素浓度,τ
ij更新前
为更新前的交换机i和交换机j的链路信息素,ρ为信息素的挥发系数,δτ
ij
为交换机i和交换机j的链路信息素增量。

技术总结
本发明公开一种基于蚁群算法的SDN数据中心负载均衡流调度方法,通过SDN控制器获得网络信息,识别大象流和老鼠流,并基于网络流量特征即数据流的类型,设置不同的链路带宽、时延和丢包率权重,进而优化链路综合评价机制。根据链路综合评价机制,优化链路信息素增量,从而优化链路信息素更新规则,动态选择满足业务QoS约束的综合评分的最高路径,实现大象流和老鼠流的差异化调度。实验结果表明,本发明算法可根据实时状态调整流量分配,保障不同数据流对网络服务质量的不同约束要求,避免链路拥塞,实现多路径负载均衡。实现多路径负载均衡。实现多路径负载均衡。


技术研发人员:陈秋莲 陈永聪 王成栋
受保护的技术使用者:广西大学
技术研发日:2023.06.05
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐