网络效用最大化的SDN负载均衡方法与流程

文档序号:11156397阅读:555来源:国知局
网络效用最大化的SDN负载均衡方法与制造工艺

本发明涉及软件定义网络(Software Defined Network,SDN),特别涉及网络效用最大化的SDN负载均衡方法。



背景技术:

软件定义网络(Software Defined Network,SDN)是美国斯坦福大学Clean Slate计划中的一部分,是一种革命式新型网络架构,最初为校园网络研究人员设计创新网络架构并提供真实的实验平台,后经McKeown等研究者的推广逐渐在学术界和产业界普及。在SDN网络中,SDN利用分层的思想将网络数据平面与控制平面分离,由软件驱动的集中控制器对整个SDN网络进行逻辑上的控制及管理,负责制定转发路径,为网络上层应用和服务提供可编程接口,具有全局网络视图,能灵活地使用网络资源。而数据平面仅需要根据控制平面生成的转发规则进行单纯的数据流转发,降低了底层传输设备功能的复杂性。OpenFlow协议用于控制平面与数据平面之间通信,改变了传统网络中数据包转发的方式。数据平面通过OpenFlow协议向集中控制器发送流请求数据包,控制器利用全局网络视图向数据平面下发转发规则。与传统网络架构相比,SDN这种控制转发分离的网络架构通过集中控制器,能够实时地监测全局网络状态,非常适合用于解决目前互联网面临的网络资源利用率低、链路负载不均衡以及网络服务质量保证等问题。SDN目前已经在校园网、数据中心网络领域取得了不少的成果,如斯坦福大学计算机系部署的Plug-n-Serve负载均衡模型以及谷歌数据中心B4网络。

负载均衡技术通过在网络中实施均衡,可有效地提高网络的吞吐率和数据处理能力,使其可用性得到了增强。负载均衡是一种将计算机网络中的负载进行分担的技术,负载均衡的主要目的是将外部发来的大量请求,根据一定的算法,均匀地分散到网络的各个节点当中,使得现有的链路以及网络中的计算资源得到充分利用。这样就能缩短响应时间并提高了整个网络的吞吐率。

传统互联网虽然能够利用综合服务(Integrated Services,简称IntServ)或区分服务(Differentiated Service,简称DiffServ)提供一定程度的服务质量(Quality of Service,简称QoS)保障,但由于他们都是建立在分布式互联网架构上,收集全局网络状态信息难度巨大,因此无法在全球范围内得到推广。SDN架构通过将控制平面和数据平面分离,周期性地向交换机发送状态请求信息,能够得到最新的网络状态信息。因此,SDN能够根据实时的链路负载情况分配流量,提高网络资源利用率,减轻负载过重时的网络拥塞,保证QoS。目前根据调度的分配对象,基于SDN的负载均衡技术主要可以分为基于大流(超过一定大小且持续时间较长的流)识别的调度算法、面向QoS的调度以及其他算法。基于大流识别的调度算法将实时探测网络大流,当网络链路发生拥塞时,系统将优先为大流计算一条合理的转发路径,从而解决链路拥塞,保证链路负载均衡。面向QoS的流量调度则是在保证服务质量的同时实现网络负载均衡,主要针对网络中的实时不同业务流,为其计算一条满足QoS需求的的路径,当网络发生拥塞时,控制器将结合业务流量需求和实时网络状态重新为业务选择合适的后续路径,从而保证业务的QoS需求。

上述两类方法都是在控制器Floodlight中采用迪杰斯特拉Dijkstra最短路径算法为服务选择一条从源节点到目标节点最短的路径进行数据转发,采用传统的“最小跳数”作为链路权重,在整个网络运行过程中,链路的权重值将恒定不变,不能有效地反映链路的实时状态和质量,无法满足用户的QoS要求,即网络吞吐量、端到端时延和丢包率等QoS影响因子不能达到理想的要求,且不能根据链路的实际负载动态调整网络流量分布,无法实现动态负载均衡。



技术实现要素:

为解决以上技术问题,本发明提出了一种网络效用最大化的软件定义网络负载均衡方法,综合考虑业务QoS特点和链路负载情况实时为数据流进行路径选择,在保证网络负载均衡的同时保证最大化的业务QoS。

本发明一种网络效用最大化的软件定义网络负载均衡方法,根据数据包的源IP地址和目的IP地址找到源节点s到目的节点d之间的路径集合;若路径集合不为空,则区分数据流的业务类型,给定满足业务QoS的影响因子权值,计算满足业务QoS的影响因子值,根据影响因子权值和影响因子值计算路径满足业务QoS的效用值,计算路径的负载;当网络不拥塞时,选择能为业务带来最大效用的路径,当网络拥塞时,选择效用值与负载差值最大的路径。

优选地,所述根据数据包的源IP地址和目的IP地址找到源节点s到目的节点d之间的路径集合采用k最短路径算法。

优选地,所述区分数据流的业务类型采用数据包头部的Tos域的前6bits。

优选地,所述根据影响因子权值和影响因子值计算路径满足业务QoS的效用值包括:

表示路径r的效用值;

Uij=∑wnun(xn)表示链路(i,j)的效用值,其中n∈(u,d,p),wu、wd、wp分别为带宽利用率loadij的效用值的权重值、链路时延delayij的效用值的权重值和链路丢包率lossij的效用值的权重值;表示带宽利用率loadij的效用值,表示链路时延delayij的效用值,表示链路丢包率lossij的效用值;

表示带宽利用率loadij归一化值,表示链路时延delayij归一化值,表示链路丢包率lossij归一化值;表示平均带宽利用率,表示路径r的平均时延,表示网络链路平均丢包率;E是网络中链路(i,j)的集合,m是所有链路条数。

优选地,所述链路丢包率计算方式包括每个测量周期统计链路两端交换机相应端口的统计数据,用两者端口的发送字节数与接收的字节数之差除以总的发送字节数。

优选地,所述链路时延计算方式包括:

treceive表示控制器收到交换机j发送的PACKET_IN消息时的时间,tsent表示控制器发送探测报文给交换机i的时间,RTTi是控制器到交换机i的往返时延,RTTj则表示控制器到交换机j的往返时延。

优选地,所述计算路径的负载,包括根据链路带宽利用率loadij计算路径r的负载,包括:

Load(r)=Max(loadij)

MaxBandij为链路(i,j)的最大带宽,BandWidtht-interface表示t时刻采集接口interface流入方向已经占用的带宽,packet_size为采集接口interface数据包大小,Δt为流量采集间隔周期,T为采样持续时间。

优选地,根据链路带宽利用率loadij判断网络是否拥塞,包括如果loadij>0.7,则认为交换机i和交换机j之间的链路发生拥塞,否则为不拥塞。

本发明与现有技术相比包括以下优点:

本发明为满足业务QoS的不同属性,赋予QoS的影响因子不同的权重,克服了现有技术中链路的权重值恒定不变,不能有效地反映链路的实时状态和质量的问题,有效地满足用户的QoS要求;本发明通过结合其相应权重计算路径集中每条路径的效用值,并考虑网络负载的实时情况;在网络负载较好时,选在效用值最大的路径为最佳路径,在网络发生拥塞时,选择效用与路径负载差值最大的路径为最佳路径。从而能够在保证网络负载均衡的同时,还能最大程度上的满足业务的QoS要求。

附图说明

图1为本发明网络效用最大化的SDN负载均衡方法优选实施例流程示意图;

图2为本发明选择路由的影响因子采集图;

图3为本发明中满足业务QoS的效用值计算流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例进一步详细说明。

本发明网络效用最大化的软件定义网络负载均衡方法,优选实施例如图1所示基于效用最大化的负载均衡方法优选实施例算法流程示意图,可以描述为:根据数据包的源IP地址和目的IP地址找到源节点s到目的节点d之间的路径集合;若路径集合不为空,则区分数据流的业务类型,给定满足业务QoS的影响因子权值,计算满足业务QoS的影响因子值,根据影响因子权值和影响因子值计算路径满足业务QoS的效用值,计算路径的负载;当网络不拥塞时,选择能为业务带来最大效用的路径,当网络拥塞时,选择效用值与负载差值最大的路径。

本发明包括以下几个主要步骤:寻找源节点到目的节点之间的多条路径(路径集合);区分数据流的业务类型;计算满足业务QoS的影响因子值;根据影响因子权值和影响因子值计算路径满足业务QoS的效用值;计算路径的负载;考虑全局信息并选择最佳路由。下面对各主要步骤分别进行说明。

作为本发明可实现方式,所述寻找源节点到目的节点之间的多条路径,具体描述如下:

当一个新的流到达OpenFlow交换机时,流表中没有匹配的流表项,交换机将通过PACKET_IN消息将数据包转发给控制器。控制器收到交换机的PACKET_IN消息时,路由计算模块会提取相应的包头信息,如源地址、目标地址、端口信息等来计算相应的路径。根据提取到的源节点和目的节点的IP地址,使用k最短路径算法计算两节点之间可能存在的多条路由。

本发明k最短路径算法使用最小堆来存储候选路径,通过预先处理各链路的简化费用,用邻接链表存储从各节点出发链路的简化花费并按照大小进行排序,每次扩展候选路径时只选取从偏离点出发的简化费用最小的链路,并与偏离路径组成第k短路径。

作为本发明可实现方式,所述区分数据流的业务类型,具体描述如下:

在OpenFlow标准协议中定义了十元组作为流表的包头域,其中IP数据包头部的Tos域中前6bits为十元组中的一元,利用Tos域可以区分数据流的业务属性。Tos(Type of service,业务类型)域是指上层应用对数据包所期望的服务质量,是IP数据包包头的一部分。

不同的网络业务对QoS有不同的需求,因此需要考虑到达网络中数据流的业务属性。根据IP数据包头部的Tos域可以区分数据流的业务属性,并根据影响业务满足其QoS的影响因子的重要程度赋予相应的权重。可以把网络业务分为会话类业务、流媒体业务、交互类业务、背景类业务等。

作为本发明可实现方式,所述给定满足业务QoS的影响因子权值,具体描述如下:

不同业务对QoS影响因子的要求不同:

对时延的要求从高到低:会话类业务>流媒体业务>交互类业务>背景类业务;

对丢包率的要求从高到低:背景类业务>交互类业务>流媒体业务>会话类业务。

作为本发明可实现方式,所述计算满足业务QoS的影响因子值,具体包括:

本发明QoS的影响因子包括链路宽带利用率、丢包率和时延等QoS相关参数。根据这些参数,路由计算模块才能根据效用函数为业务计算出一条满足业务和网络效用最大化的路径,并且通过获取链路带宽利用率可以监视网络链路拥塞状况以实现动态流量调度,缓解网络拥塞。

首先,通过控制器获取网络中各交换机的实时数据,并通过采集到的数据计算链路之间的带宽利用率、时延和丢包率等。

然后,对这些数据进行归一化的处理,并结合不同业务满足其QoS的不同影响因子的相应权重,计算各路径的效用值。同时,计算网络的平均负载度和每条路径的负载。

OpenFlow协议虽然提供一些功能读取网络状态,但是时延、丢包率等这些QoS影响因子无法直接获取,所以需要具体的网络状态信息采集工具和评估方法获取QoS相关影响因子。

为了获取保证全局网络装填信息的实时性和准确性,本发明优选采用主动式信息采集方法,即由控制器定期向交换机发起查询请求信息获取每个交换机端口信息,从而根据所述端口信息计算QoS相关影响因子。

1)关于链路利用率的计算

本发明采用sFlow技术监控网络中OpenFlow交换机的流量,并根据统计的流量信息计算链路带宽利用率,从而避免控制器频繁向交换机发送STATS_REQUEST信息,减少网络开销。sFlow技术提出的基于“统计采样方式”的网络级实时流量监测技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,使用户能够实时地掌握网络传输流的性能跟和状况。sFlow监控工具由sFlow Agent和sFlowCollector两部分组成。

本发明提出的负载均衡机制将sFlow Agent作为客户端安装在OpenFLow交换机中,获取进入交换机接口的数据包信息并封装成sFlow报文,发送给集成在Floodlight中的sFlow Collector。sFlow Collector可以同时接收多个sFlow Agent发来的sFlow报文,并对sFlow报文进行统计分析处理。然后控制器则根据sFlow Collector统计的交换机接口数据,由下式计算出每个交换机接口的带宽。

式中,BandWidtht-interface表示t时刻采集接口interface流入方向已经占用的带宽,packet_size为sFlow Agent采集接口interface数据包大小,Δt为流量采集间隔周期,T为采样持续时间。

因此,对于交换机i与交换机j之间的链路(i,j)的带宽利用率loadij计算如下式所示:

式中,MaxBandij为链路(i,j)的最大带宽。因此,网络状态采集模块则可以定期获取网络中每条链路的使用情况。

拥塞监测模块通过检查链路利用率判定链路是否发生拥塞,如果load(i,j)>0.7,则认为交换机i与交换机j之间的链路发生拥塞,拥塞监测模块将发送拥塞信号给路由计算模块。

2)关于时延的计算

时延是QoS中非常重要的服务影响因子,尤其是对实时性要求很高的多媒体业务,如VoIP和交互性视频业务,要求端到端的时延不能超过150ms,一旦超过,用户的服务体验将严重下降。

本发明采用OpenNetMon给出的网络参数测量方法来计算链路时延和丢包。如图3所示,具体包括以下过程:

OpenNetMon方案中控制器通过PACKET_OUT消息定期向交换机i注入链路层发现协议LLDP广播包,记录发送时间tsend,LLDP广播包将在交换机i中安装一个新的流表,表明将包发送给交换机j。

当交换机j收到该LLDP包时,由于交换机j中没有与之匹配的流表,故交换机j将向控制器发送PACKET_IN消息。

当控制器收到交换机j发送的PACKET_IN消息后,记录接收时间trecieve,则可以得出从控制器发送探测报文到收到PACKET_IN消息的总时间。由于控制器始终与网络中的交换机保持恒定的连接,控制器可以记录从发送FEATURE_REQUEST消息给交换机到收到相应FEATURE_REPLY消息时的往返时延,从而获知自己与交换机之间的时延。

所以交换机i与交换机j之间链路(i,j)的时延delayij由下式得出:

式中,treceive表示控制器收到交换机j发送的PACKET_IN消息时的时间,tsent表示控制器发送探测报文给交换机i的时间,RTTi是控制器到交换机i的往返时延,RTTj则表示控制器到交换机j的往返时延。其中,控制器到交换机的往返时延RTTswitch通过下式计算得到:

RTTswitch=tr-ts

其中,ts表示控制器发送STATS_REQUEST消息给交换机的时间,而tr则表示控制器收到STATS_REPLY消息的时间。

3)关于计算链路丢包率

OpenNetMon中对丢包率的统计不是以流为单位,而是计算一条链路两端的交换机的统计数据,控制器周期性地分别询问链路两端的交换机,获取两个交换机相连的端口计数器的统计数据。现有技术OpenNetMon是对每个周期统计链路丢包率,即用测量周期中的两端交换机计数器的增量相减的绝对值除以测量周期就是该条链路的丢包率。

特别地,本发明对OpenNetMon丢包测量方法进行改进,每个测量周期统计链路两端交换机相应端口的统计数据,用两者端口的发送字节数与接收的字节数之差除以总的发送字节数就是该条链路的丢包率,其计算公式如下:

式中,receivei、receivej分别表示交换机i,j在链路lij上发送的字节数,sendi、sendj分别表示交换机i,j在链路(i,j)上接收的字节数。

本发明关于计算路径的效用值和网络实时负载,采用以下方式。

首先本发明将网络表示为一个加权图G(N,E),例如图2所示,其中,N={node1,node2,...,noden}表示网络中的交换机集合,E为图2中边的集合,表示交换机之间的链路(网络中链路的集合),并设置节点个数为n,边数为m(链路的数量)。因此边eij表示交换机i与交换机j之间的链路。根据采集的网络状态信息,图G(N,E)中每条边eij用一个3维向量表示其链路状态,即xij=(delayij,lossij,loadij),其中delayij,lossij,loadij分别表示交换机i与交换机j之间的时延、丢包率以及链路利用率。将从源节点s到目标节点d之间的某条路径记作r,r∈E,则QoS的影响因子的形式化表示如下:

(1)路径r的时延

(2)路径r的平均时延

(3)路径r的丢包率

(4)网络链路平均丢包率

(5)平均带宽利用率

(6)链路负载抖动

为了满足在保证网络负载均衡的同时满足业务数据传输所需的QoS要求,需要考虑链路的时延、丢包以及利用率等相关影响因子,以选择当前网络环境最优的转发路径。从数据转发平面来看,转发链路的时延反映了当前链路的传输效率,而转发链路的丢包率则反映了链路数据传输的可靠性,根据不同业务的不同QoS需求,应尽量选择时延小、丢包率较低的链路,从而保障了QoS。同时,为了保证网络流量负载均衡,业务应该选择可用带宽较大的链路进行数据转发。因此,本发明提出的基于效用最大化的负载均衡方法考虑不同业务可以从路径集合中获取的每条路径的网络效用值。基于不同业务属性QoS感知的网络效用值U(x)可以描述交换机之间链路质量优劣的链路权重,其值越大,表示链路能最大化地保证业务的QoS需求。

对于新数据流而言,把效用函数定义为U(x),其中x代表影响业务流QoS的各个因素组成的向量,通过U(x)的值来衡量业务流从网络中获得的满意度。效用计算模型如图3所示。关于多属性的效用函数的选择其定义如下式所示:

式中,x为n个属性组成的向量,ui(xi)为属性xi对应的效用值,wi为相应的权重,权重可根据实际业务的QoS要求动态调整,由于网络中链路丢包率在0到1之间,而链路时延与链路利用率相比属于大数,在数量级上差异很大,因此在进行链路权重计算时需要先进行归一化处理。本发明采用分别对链路带宽利用率、时延、丢包归一化处理,其计算如下式所示:

uij,dij,pij表示链路带宽利用率loadij、链路时延delayij和链路丢包率lossij进行归一化处理后的数值。

针对业务流,它在链路上时延越小,丢包率越小,带宽利用率越小,满足业务的QoS效用值就越好,因此带宽利用率loadij、链路时延delayij和链路丢包率lossij的效用值分别为:

针对不同业务流和要求的不同QoS体验,本发明可以动态的更改三者的权重,以满足业务获得最大的效用。所以链路(i,j)的效用值Uij

Uij=∑wnun(xn)其中n∈(u,d,p)

其中wu、wd、wp分别为带宽利用率loadij、链路时延delayij和链路丢包率lossij的效用值对应的权重值。

因此,本发明定义在路径r上能获得的总效用U(r)为路径上用户能获得满足业务QoS的效用,由每段链路的QoS效用之和来表示,如下式所示:

根据前面计算的到的链路带宽利用率loadij,可以计算路径r的负载,如下式所示:

Load(r)=Max(loadij),(i,j)∈r

本发明对于判断网络是否发生拥塞,并利用所述路径的效用值和负载,选择最佳路径,优选采用以下方式:

根据前面计算得到的链路带宽利用率loadij,可以判定链路是否发生拥塞,如果loadij>0.7,则认为交换机i和交换机j之间的链路发生拥塞,否则为不拥塞。

最后考虑以上全局信息,选择出最佳路径:判断网络不拥塞,选择路径集中效用值最大的路径。判断网络产生拥塞,选择路径集中效用值与负载差值最大的路径。

在网络不拥塞时,选择路径集中效用最大的路径,这样可以满足用户的最大QoS。在网络产生拥塞,选择集中效用值与负载差值最大的路径的原因是,负载是根据链路带宽利用率得来的,如果链路带宽利用率高,在计算效用的时候取其倒数值,它的效用就会变小。因此,再减去大的负载,路径的差值肯定是会变小的。相反地,差值大就证明负载小。那么选择差值最大的路径就等于选择了一条既满足负载均衡,又满足QoS最大化的路径。

本发明当网络的负载标准方差没有超过阈值时,即均衡度较好时,选择能为业务带来最大效用max(U(r))的路径。当网络均衡度较差,即网络负载不均衡时,本发明选择效用与负载差值最大的路径。这样,当网络负载较为均衡时,满足了业务的QoS,为网络提供了最好的体验。当网络发生拥塞时,同时考虑了业务QoS和网络负载,在保证网络负载均衡的同时,获得最大化的业务QoS。

本发明首先确定从源节点到目的节点之间存在的多条路径,根据数据流业务属性的不同,赋予满足服务质量的影响因子的不同的权重,然后通过采集交换机的信息,获取网络中的服务质量的影响因子值,包括链路利用率、时延和丢包率等,接着计算路径集中每条路径的效用值和负载,最后结合全局考虑,为数据流选择最佳路径。本发明能够在保证网络动态负载均衡的同时,最大程度上满足业务的服务质量。

以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1