一种工业实时网络中基于价格机制的多路径负载均衡方法与流程

文档序号:14267354阅读:284来源:国知局
一种工业实时网络中基于价格机制的多路径负载均衡方法与流程

本发明涉及工业网络环境,具体涉及一种工业实时网络中基于价格机制的多路径负载均衡方法



背景技术:

internet实际上是在无数数据中心的支持下运转的,数据中心、提供了internet所必须的智能处理和信息存储功能。经过几十年的发展,数据中心己经成为像交通、能源一样的经济基础设施。近年来,随着虚拟化、云计算等新兴技术的迅速发展,智能手机和4g网络的普及,以及各行业对带宽、流量的需求迅猛増长,数据中心市场正处于高速扩张中,2017年中国idc整体市场规模预计将超过900亿。根据中国idc圈数据,未来几年中国idc市场规模将保持在每年30%+的增长速度,未来80%以上的网络流量都将通过数据中心。

传统网络的工作方式是:网络设备之间通过不同的协议各自独立地学习整个网络拓扑,根据不同的交互机制自行做出决策并转发数据,当设备感知到网络中节点发生变化时,将会各自重新建立邻居关系,学习全局拓扑,并计算路由路径。传统网络设备这种分散决策的方式一直沿用至今,但随着网络规模越来越大,传统网络架构本身存在着的某些局限性渐渐暴露出来,以下这些问题难以得到根本上的解决:

(1)运行维护的压力不断増大。数据中心包含了大量的交换机、路由器、防火墙、服务器等设备,这些网络设备类型丰富多样,操作方式各不相同,导致运维和管理复杂,版本更新、业务变更等变得困难,网络管理员则难以对全局网络进行实时地监控调整。

(2)各数据中心对设备的性能要求不断提高。低级的设备承载高负荷的流量时,极容易造成丢包、时延大、cpu高等问题,影响了网络性能。而购买更高配置的高级设备又大大増加了成本。

(3)网络规模増大后,二层网络的可靠性及扩展性等问题成为了新的瓶颈。为了防止单点故障,网络中一般会存在大量的冗余备份,会产生大量的环路,造成广播风暴等问题。传统网络中,二层网络使用生成树协议(spanningtreeprotocol,stp)通过阻塞交换机端口来防止网络环路问题,使得两个节点之间只存在一条可行路径。但是stp选出来的路径未必是当前网络状态的最优路径,且存在着收敛时间唱、根桥压力大、浪费冗余链路资源等问题。

(4)传统网络设备所具备的功能都由厂商定义,管理员只能根据已有功能进行配置应用。传统网络中通常使用acl及qos等策略来进行流量管控,这些策略都是通过预先对流量运行进行假设,从而提前配置设备来达到既定效果。而实际网络中业务流量瞬息万变,预先设置的策略与现实复杂的网络状况常常不符,从而无法达到预期效果。

综合以上问题得出,仅仅通过改善传统网络架构已经无法满足人们对未来数据中心网络的需求。近几年来,sdn的出现与发展为解决数据中心的这些难题提供了可行的解决方案。sdn提出将网络中控制平面和数据平面分离的理念,它通过集中的控制器来实现对整网设备的监控和管理,而下层设备只需要基本的转发功能,大大地节约了设备及网络维护的成本。

随着近几年sdn的迅速发展,研究人员对基于sdn的流量工程和负载均衡等方面不断深入研究。主要的研究目标就是提高网络资源利用率、减少拥塞,我们可以从三个方面进行改善;第一,提高整个网络的链路带宽利用率,改善路由算法;第二,降低算法时间复杂度,提高计算效率,降低cpu资源消耗;第三,实现更好的流量策略,比如实现多路径负载均衡。

在工业环境下,现有的硬件技术可以支持链路在一定的低负载率中进行信息传输,因此,通过价格调节,以高价来限制链路的使用率是一种值得尝试的方法。在大流传输中,主要采用价格多路径的策略。所谓的价格多路径,就是指控制器在选择传输的时候,采取价格相对便宜的路径。这种策略的前提是,当前环境中路径的价格和路径的负载有关,因为负载高越高则说明资源越好,其拍卖的价格也会越高。为了实现负载均衡,负载率越高的资源,其价格也是指数型上升到。当价格超过控制器可以接受的范围,控制器会放弃选择当前资源路径,选择其他价格较便宜的资源路径,从而降低当前资源分负载,达到负载均衡的效果。

面对工业化环境,多路径的设置能够保证大流传输,不会因为部分路径出错而导致信息传输延迟的问题。与传统多路径路由方法不同的是,本文将价格因素作为多路径选择的重要参数。另外,在工业环境中,某个控制器的控制范围中在一定时间内接受的流量类型及流量数可能是相似的,因此可以在对以往流量分析的情况下,预测应用的资源进行资源预留,以满足qos需求。



技术实现要素:

本发明的目的是克服现有技术的不足,提供一种工业实时网络中基于价格机制的多路径负载均衡方法。利用sdn控制器对数据中心整网进行监控,根据当前网络实时状况选择转发路径,实现动态的多路径负载均衡。

本发明的目的是通过以下技术方案来实现的:一种工业实时网络中基于价格机制的多路径负载均衡方法,包括如下步骤:

a1.ryu控制器发送数据包到所有openflow交换机,感知网络全局拓扑;

a2.ryu控制器利用openflow协议实时监测网络带宽、网络时延参数;

a3.通过ksp算法从可行路径中计算出k条最短路径作为备选路径;

a4.以路径价格和流量负载为评估因素并设置权重,对k条备选路径进行链路评估,选出当前链路状态最优的一条作为转发路径,状态次优的一条作为预留路径;

a5.ryu控制器将当前网络流的转发路径,即转发策略下发给对应交换机的流表;

a6.ryu控制器实时监控链路状态,当链路利用率大于阈值时,再次选择除当前路径以外的最优路径,并下发流表至交换机。

进一步地,所述的步骤a1具体为:ryu控制器将lldp数据包封装在packet-out消息里,并发送到所有openflow交换机上,交换机接收到消息后转发给相连设备,相连设备把lldp数据包封装在packet-in消息里发送给ryu控制器;ryu控制器遍历交换机信息列表,确定全局环境中的每条可用路径,再遍历每条可用路径,获取每条可用路径的价格,将所有链路信息汇聚之后得到网络全局拓扑。

进一步地,所述的步骤a2具体为:ryu控制器通过openflow协议获取交换机各个端口的统计信息,对各网络设备端口流量和流表项流量进行监控,周期性的获取到流量带宽的相关信息;通过取交换机之间发送报文时延的平均值来得到网络时延。

进一步地,所述的步骤a3具体为:首先利用dijkstra算法算出第1条最短路径p(1),然后在此基础上依次算出其他的k-1条最短路径;在求p(i+1)时,将p(i)上除了终止节点外的所有节点都视为偏离节点,并计算每个偏离节点到终止节点的最短路径,再与之前的p(i)上起始节点到偏离节点的路径拼接,构成候选路径,进而求得最短偏离路径;最终计算出k条最短路径。

进一步地,所述的步骤a4具体为:使用ksp算法选出k条最优路径后,对这k条路径进行综合评估并排列出优先级;首先确定路径价格和流量负载为评估因素;然后对各个因素建立关系矩阵,根据每个因素的重要程度来设置每个因素的权重,权重之和为1;最后计算出每条路径的评估值,根据评估值排列出优先级,分别确定一条转发路径和一条预留路径;预留路径是指在选择价格路径时,提前购买一条优质路径作为预留,当控制器所在路口传输出现问题时,立即切换到预留路径,保证数据传输的实时可靠性。

进一步地,所述的步骤a6具体为:ryu控制器实时监测网络带宽,当链路带宽达到阈值时,将链路信息返回并进行下一步的处理,阈值可根据实际情况自行指定;当链路实时传输带宽超过阈值时,重新选择除去该链路后的优先级最高的另一条路径,若重新选择的路径的剩余带宽大于当前链路剩余带宽,则对当前正在传输的大数据流进行重路由,将这些大数据流重路由至新的链路上;若不满足条件,则保持路径不变,直到满足条件为止;最后选择出新的转发路径后重新将流表下发至openflow交换机。

本发明的有益效果是:本发明为提高网络资源利用率、减少网络拥塞,提供一种工业实时网络中基于价格机制的多路径负载均衡方法。利用sdn控制器对数据中心整网进行监控,根据当前网络实时状况选择转发路径,实现动态的多路径负载均衡。

附图说明

图1是多路径负载均衡方法流程图;

图2是拓扑探测过程原理图;

图3是网络拓扑图;

图4是多路径负载均衡k取不同值时平均带宽利用率对比图;

图5是多路径负载均衡k取不同值时平均传输时延对比图;

图6是三种算法平均带宽利用率比较图;

图7是三种算法平均传输时延比较图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细说明,本发明的目的和效果将更加明显。

本发明提供的一种工业实时网络中基于价格机制的多路径负载均衡方法,包括以下步骤:

1)ryu控制器发送数据包到所有openflow交换机,感知网络全局拓扑;

2)ryu控制器利用openflow协议实时监测网络带宽、网络时延等参数;

3)通过ksp算法从可行路径中计算出k条最短路径作为备选路径;

4)以路径价格和流量负载为评估因素并设置权重,对k条备选路径进行链路评估,选出当前链路状态最优的一条作为转发路径,状态次优的一条作为预留路径;

5)ryu控制器将当前网络流的转发路径,即转发策略下发给对应交换机的流表;

6)ryu控制器实时监控链路状态,当链路利用率大于阈值时,再次选择除当前路径以外的最优路径,并下发流表至交换机。

进一步地,所述的步骤1)具体为:ryu控制器将lldp数据包封装在packet-out消息里,并发送到所有openflow交换机上,交换机接收到消息后转发给相连设备,相连设备把lldp数据包封装在packet-in消息里发送给ryu控制器;ryu控制器遍历交换机信息列表,确定全局环境中的每条可用路径,再遍历每条可用路径,获取每条可用路径的价格,将所有链路信息汇聚之后得到网络全局拓扑。

网络拓扑是描述网络中节点和链路以及节点之间的连接关系的信息。网络拓扑通常由节点对象、接口对象、链路对象三个对象组成。通过控制器拓扑探测来学习网络中节点、链路、主机的状态,为后续转发决策提供基础信息。

本发明使用链路层发现协议(lldp)作为交换机发现协议,它的将设备的相关信息封装在lldp数据单元中,并在需要时发布给与自己直连的网络设备。邻居设备收到lldp数据包之后将其保存起来,以供需要的时候查询。本发明利用ryu控制器进行拓扑探测的过程如图2所示。ryu控制器在执行链路探测时,首先会将lldp数据包封装在packet-out消息里,并发送到所有的openflow交换机上。openflow交换机接收到从控制器发送过来的packet-out消息之后,会转发给所有与它相连的邻居设备。邻居设备接收到lldp数据包后首先查找自身是否存在相匹配的流表项。由于openflow交换机中没有专门用来处理lldp数据包的流表项,所以它会把lldp数据包封装在packet-in消息里并发送给ryu控制器。最后,ryu控制器接收到这些数据包,根据报文中的dpid和端口号解析出这条链路的信息。将所有这些链路信息汇聚之后就得到了网络全局拓扑。

进一步地,所述的步骤2)具体为:ryu控制器通过openflow协议获取交换机各个端口的统计信息,对各网络设备端口流量和流表项流量进行监控,周期性的获取到流量带宽的相关信息;通过取交换机之间发送报文时延的平均值来得到网络时延。

获得全局拓扑之后,还需要监控网络状态,根据实时的链路状态来分配流量负载、处理网络故障、优化网络等。ryu控制器能够通过openflow协议获取交换机各个端口的统计信息,通过这些统计信息来计算出所需要的参数。

本发明通过openflow协议来周期性获取带宽这个网络状态中的重要数据。openflow协议可以实现对各网络设备端口流量和流表项流量的监控,获取到流量带宽的相关信息,例如交换机端口收发的包数、收发字节数、以及这个统计持续的时间等等,并可在终端中输出这些信息。链路两端设备的两个端口的能力决定了这条链路的带宽,两个不同时间统计的消息字节数之差除以统计时间差,可以得到统计流量速率。端口可达到的最大带宽与当前流量带宽之差即为端口剩余带宽。

要衡量网络的性能除了带宽信息以外,网络时延参数也十分重要。通过简单的ping命令就可以测量终端之间的网络时延,主要研究如何测量交换机节点之间的链路时延,其主要思想是计算交换机之间发送报文时延的平均值。

本发明用以下步骤测量交换机之间链路的时延。

(1)控制器向交换机a发送一个携带时间戳的lldp报文,交换机a收到后传送给邻居交换机b,由于交换机b中没有匹配的操作,又将该报文打包到控制器,将发送和收到的消息中携带的时间戳相减得到t1,同理可得出反向的时延t2。

(2)控制器向交换机a和交换机b分别发送带有时间戳的回应请求消息。交换机收到之后立即回复携带回应请求时间戳的回复消息。所控制器可以通过回复的时间戳减去回应请求的时间戳,从而得到对应交换机和控制器之间的往返时间。通过这种方法可测得控制器到交换机a,b的往返时间分别为ta,tb。

(3)交换机a到交换化b之间的往返时间为t1+t2-ta-tb,交换机a到交换机b的链路平均时延t=(t1+t2-ta-tb)/2。

进一步地,所述的步骤3)具体为:首先利用dijkstra算法算出第1条最短路径p(1),然后在此基础上依次算出其他的k-1条最短路径。在求p(i+1)时,将p(i)上除了终止节点外的所有节点都视为偏离节点,并计算每个偏离节点到终止节点的最短路径,再与之前的p(i)上起始节点到偏离节点的路径拼接,构成候选路径,进而求得最短偏离路径。最终计算出k条最短路径。

传统的路由算法都是获取一条最短路径进行路由转发,其中常用的最短路径算法有floyd算法和dijkstra算法等。

如图3所示,源节点c,目的节点h,k为3,b为偏离路径集合,节点间数字为路径价格。k条最短路径算法的步骤如下:

1.通过dijkstra算法计算得到最短路径a^1:c-e-f-h,花费为5,a[1]=c-e-f-h;

2.将a[1]作为迭代路径,进行第一次迭代:

(1)以部分迭代路径(即a[1])c路径中,c点为起点,将c-e路径之间的权值设为无穷大,进行一次dijkstra,得到路径a^2-1:c-d-f-h,花费为8,将a^2-1路径加入b;

(2)以部分迭代路径(即a[1])c-e路径中,e为起点,将e-f路径之间的权值设为无穷大,进行一次dijkstra,得到路径a^2-2:c-e-g-h,花费为7,将a^2-2路径加入b;

(3)以部分迭代路径(即a[1])c-e-f路径中,f为起点,将f-h路径之间的权值设为无穷大,进行一次dijkstra,得到路径a^2-3:c-e-f-g-h,花费为8,将a^2-3路径加入b;

迭代完成,b集合中有三条路径:c-d-f-h,c-e-g-h,c-e-f-g-h;选出花费最小的偏离路径c-e-g-h,a[2]=c-e-g-h,移出b集合。

3.将a[2]作为迭代路径,进行第二次迭代:

(1)以部分迭代路径(即a[2])c路径中,c点为起点,将c-e路径之间的权值设为无穷大,进行一次dijkstra,得到路径a^3-1:c-d-f-h,但b集合已存在该路径,故不存在偏移路径;

(2)以部分迭代路径(即a[2])c-e路径中,e点为起点,将e-g、e-f路径之间的权值设为无穷大,进行一次dijkstra,得到路径a^3-2:c-e-d-f-h,花费为8,将a^3-2加入b;

(3)以部分迭代路径(即a[2])c-e-g路径中,g点为起点,将c-h路径之间的权值设为无穷大,不存在偏移路径。

迭代完成,b集合中有三条路径:c-d-f-h,c-e-f-g-h,c-e-d-f-h;由于三条路径花费均为8,则根据最小节点数进行判断,选出偏离路径c-d-f-h,a[3]=c-d-f-h。

如此,计算出了三条最短路径,分别是:

a[1]=c-e-f-h

a[2]=c-e-g-h

a[3]=c-d-f-h

进一步地,所述的步骤4)具体为:使用ksp算法选出k条最优路径后,对这k条路径进行综合评估并排列出优先级;首先确定路径价格和流量负载为评估因素;然后对各个因素建立关系矩阵,根据每个因素的重要程度来设置每个因素的权重,权重之和为1;最后计算出每条路径的评估值,根据评估值排列出优先级,分别确定一条转发路径和一条预留路径;预留路径是指在选择价格路径时,提前购买一条优质路径作为预留,当控制器所在路口传输出现问题时,立即切换到预留路径,保证数据传输的实时可靠性。

使用ksp算法选出k条最短路径之后,对这k条路径进行综合评估并排列出优先级,具体分为以下几个步骤:

(1)确定链路中被评估的因素,令路径评估的因素域为:

f=(f1,f2,...,fn)

本发明主要考虑路径的两个指标:一个是路径价格,另一个是交换机和链路上的流量负载。统计报文数量和字节数量来衡量交换机的负载,链路的负载通过端口的转发率来体现。因此对每条路径的路径评估因素域可表示为:

f=(h,p,b,r)

其中,h表示路径价格,p表示交换机传输的报文数量,b表示交换机传输的字节数量,r表示端口转发速率。

(2)评估每条路径的各个因素,建立关系矩阵r。

对各参数进行归一化变换:

rh=1.0/eh

rp=1.0/log(p+0.1)

rb=1.0/log(b+0.1)

rr=1.0/e-r/50.0

每条路径的关系矩阵r用下面的纵向量表示:

(3)设置每个因素的权重向量

a=(a1,a2,…,an),a1+a2+…+an=1。

a表示因素域f中各个因素的重要程度。本发明设置权重向量a=(0.4,0.2,0.2,0.2)。其中路径价格因素权重设置为0.4以体现其重要程度,其余三个因素平均设置为0.2。

(4)将a和r进行合成,计算出评估结果:

p=(p1,p2,…,pn)

最终的评估结果可表示为:

pi=0.4×rhi+0.2×rpi+0.2×rbi+0.2×rri

pi表示路径i最后的评估值,然后根据计算出来的评估值排列出优先级。通过比较优先级的高低,确定一条转发路径和一条预留路径。

进一步地,所述的步骤5)具体为:根据实时选择出来的当前最优路径封装成流表项并下发流表至openflow交换机,交换机按照新安装的流表项进行匹配并转发数据。

进一步地,所述的步骤6)具体为:实时监测网络带宽,当链路带宽达到阈值时,将链路信息返回并进行下一步的处理,阈值可根据实际情况自行指定,本实施例拥塞阈值设置为75%。当链路实时传输带宽超过阈值时,重新选择除去该链路后的优先级最高的另一条路径,若重新选择的路径的剩余带宽大于当前链路剩余带宽,则对当前正在传输的大数据流进行重路由,将这些大数据流重路由至新的链路上;若不满足条件,则保持路径不变,直到满足条件为止,以免在新路径上再次产生拥塞。最后选择出新的转发路径后重新将流表下发至openflow交换机。

图4显示了本发明中参数k取不同值时的平均带宽利用率对比。当链路中负载较小时,k的取值对平均带宽利用率的影响不大;而随着流量负载不断加大,k的取值越大,平均带宽利用率越高,当k=4时达到的效果最好,k取值越大时,负载分担的路径条数越多,缓解了链路负载压力。

图5显示了本发明中参数k取不同值时的平均时延对比。当k值越大时,平均传输时延越低,k=4时效果最好。

图6显示了3种算法的平均带宽利用率的对比情况。流量负载低于500mbits/s时,3种算法的平均带宽利用率比较接近。这是因为链路剩余带宽较大,链路没有出现拥塞,有足够的带宽容纳同时传输的数据流。当流量负载处于500mbits/s到800mbits/s之间时,3种算法的平均带宽利用率仍然是上升趋势,但可以看到本发明的平均带宽利用率最大,ecmp算法略低,dijkstra算法最低,这是因为当流量负载增加时,dijkstra算法仍然只根据路径的跳数来选择最短的一条路径,而ecmp算法和本发明都有相应的机制实现负载分担,提高了链路利用率。当负载超过800mbits/s后,3种算法的平均带宽利用率趋于平稳并稍有下降的趋势,本发明的平均带宽利用率最高,dijkstra算法最低,这是因为在重负荷之下dijkstra和ecmp算法容易造成网络的局部拥塞,降低了数据流的带宽利用率,而本发明既通过全局路径负载情况选择路径降低了产生拥塞的概率,又有在拥塞发生后进行重路由疏通链路的拥塞处理机制,大大增加了带宽利用率。

图7显示了3种算法的平均传输时延的对比情况。从整体上来看平均传输时延随着负载的增加而增大,尤其是当负载超过500mbits/s后,3种算法的平均传输时延明显增大,这是因为当负载较大时,网络中开始产生拥塞,导致了较高的传输时延。流量负载低于500mbits/s时,三种算法的传输时延相差不多,dijkstra算法时延相对较低,这是因为链路负载较低时,dijkstra算法相对较简单,只需选出一条跳数最短的路径,而本发明需要监测数据流量并周期性地向控制器发送网络状态信息,利用了一定的网络资源。但是随着负载的増加,dijkstra算法仍然只能选择一条最短路径进行转发,而ecmp算法和本发明都能实现多链路负载分担,时延较低,尤其是本发明还具有拥塞处理机制,有效地降低了网络中的平均时延。考虑到数据传输的实时性要求以及链路购买不及时的情况,本发明提出的链路预留保证了数据传输的实时可靠性。

最终通过实验对比得出,本发明实现了更低的平均时延,和更高的平均带宽利用率,尤其是网络流量较高时,能够有效改善网络性能,达到更好的链路负载均衡效果。

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