一种数据流控制方法和系统与流程

文档序号:13736950阅读:119来源:国知局
技术领域本发明涉及网络领域,具体地,涉及一种数据流控制方法和系统。

背景技术:
软件定义网络SDN中,交换设备在数据平面根据流表进行高速的数据转发,控制器在控制平面负责进行路由计算、流表生成和维护等工作,从而使得能够更加合理地分配网络资源。SDN旨在实现网络互联和网络行为的定义和开放式的接口,从而支持未来各种新型网络体系结构和新型业务的创新。与原有TCP/IP的细腰架构不同,SDN将控制功能从传统的分布式网络设备中迁移到可控的计算设备中,最终通过开放可编程的软件模式来实现网络的自动化控制功能。在SDN网络中,当到达交换机的数据流没有匹配的流表项时,会将该数据流的第一个数据包发送给控制器。控制器计算转发路径,并下发给相应的交换机。交换机安装转发规则需要一定的时间,当数据量很大时,由于交换机的流表安装速度和控制器的流表处理能力有限,可能在交换机和控制器同时出现瓶颈。为了解决该问题,现有技术中提供了如下的技术方案:通过采用聚类或模糊匹配的方法把数据流归类,控制器可以同时处理一类数据流,而不是单个流,来减轻负担。数据流匹配规则越宽松,例如采用位数更少的掩码,被划分的类型越少,控制器负担越轻。但是当该技术方案采用更短的子网掩码进行数据流匹配时,网络中数据流的粒度增大。网络管理员对数据流管控的精确度下降,难以进行精确的数据过滤、访问控制等操作。同时,也增加了网络中链路、存储空间等资源的分配粒度,无法实现网络资源的高效利用。动态流调整策略,其关注通过交换机的“大象流”。控制器为超过特定速率的流估计数据传输请求,计算最优路径,并安装基于特定流的转发流表项。该技术需要交换机实时的针对每个流进行统计,检测并分析是否符合“大象流”的特点。如果发现“大象流”,再通知控制器行针对性的处理。在网络负载较重的情况下,这些实时监测和额外计算工作将进一步加重交换机和控制器的负担,不利于提高网络性能。

技术实现要素:
本发明的目的是提供一种数据流控制方法和系统,以均衡SDN中各个交换机的数据流。为了实现上述目的,本发明提供一种种数据流控制方法,该方法包括:计算软件定义网络SDN中各交换机节点的数据流表请求量;根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值,以均衡各个交换机节点的数据流;其中第n个交换机的汇聚代价Φ(Load(n))=ΣiΦ(Matchi)×Loadi(n),]]>Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi),Load(n)为第n个交换机的数据转发速率,Loadi(n)为第n个交换机采用数据流表匹配方式Matchi的数据转发速率,Fup(Matchb)为采用基准数据流表匹配方式Matchb的数据流表请求量,Fup(Matchi)为采用匹配方式Matchi的数据流表请求量,n为整数,i为整数,γb为预设的交换机转发1比特数据的汇聚代价。优选地,根据下式计算Loadi(n):其中MatchP为最精确的数据流表匹配方式,MatchK为最宽松的数据流表匹配方式,P为整数,K为整数,K大于或等于P+1,Fup(n)为第n个交换机的数据流表请求量的上限,Fup(i)为数据流表的超时时间T内的流表请求量,Fi(n)为超时时间T内第n个交换机转发的数据流个数,Fsize为平均单个数据流的大小。优选地,第n个交换机节点的数据流表请求量其中αb为单位时间内第n个交换机采用基准匹配方式Matchb的数据流表请求量与交换机转发的数据流总数的比值。优选地,根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值包括根据所述各交换机节点的汇聚代价并以所述各交换机节点的数据流表请求量小于或等于所述各交换机节点的数据流表请求量上限UB为边界条件最优化SDN中各个链路的权值。优选地,根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值包括根据下式最优化SDN中各个链路的权值:{min(Σn∈NΦ(Load(n)))Σi≤KαbLoadi(n)/Conv(Matchi)≤UB.]]>优选地,根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值包括通过遗传算法求解最短路径来最优化SDN中各个链路的权值。相应地,本发明提供了一种数据流控制系统,该系统包括软件定义网络SDN中各交换机节点和网络控制器,该网络控制器包括:计算模块,用于计算软件定义网络SDN中各交换机节点的数据流表请求量;均衡模块,用于根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值,以均衡各交换机节点的数据流;其中第n个交换机的汇聚代价Φ(Load(n))=ΣiΦ(Matchi)×Loadi(n),]]>Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi),Load(n)为第n个交换机的数据转发速率,Loadi(n)为第n个交换机采用数据流表匹配方式Matchi的数据转发速率,Fup(Matchb)为采用基准数据流表匹配方式Matchb的数据流表请求量,Fup(Matchi)为采用匹配方式Matchi的数据流表请求量,n为整数,i为整数,γb为预设的交换机转发1比特数据的汇聚代价。优选地,计算模块根据下式计算Loadi(n):其中MatchP为最精确的数据流表匹配方式,MatchK为最宽松的数据流表匹配方式,P为整数,K为整数,K大于或等于P+1,Fup(n)为第n个交换机的数据流表请求量的上限,Fup(i)为数据流表的超时时间T内的流表请求量,Fi(n)为超时时间T内第n个交换机转发的数据流个数,Fsize为平均单个数据流的大小。优选地,第n个交换机节点的数据流表请求量其中αb为单位时间内第n个交换机采用基准匹配方式Matchb的数据流表请求量与交换机转发的数据流总数的比值。优选地,均衡模块还用于根据各交换机节点的汇聚代价并以所述各交换机节点的数据流表请求量小于或等于所述各交换机节点的数据流表请求量上限UB为边界条件最优化SDN中各个链路的权值。优选地,均衡模块还用于根据下式最优化SDN中各个链路的权值:{min(Σn∈NΦ(Load(n)))Σi≤KαbLoadi(n)/Conv(Matchi)≤UB.]]>优选地,均衡模块还用于通过遗传算法求解最短路径来最优化SDN中各个链路的权值。本方法从SDN中交换机和控制器负载均衡的角度出发,以节点性能作为主要限制因素,通过链路权值调整进行流量工程。本发明通过对网路数据流进行路由优化,实现网络中交换机之间的负载均衡,充分利用有限的流表处理能力和流表缓存空间,提高网络资源的利用效率,在网络有突发流量等重负载场景下,避免或减轻交换机和控制器的过载现象,提高网络吞吐量,减小数据包的端到端时延,优化网络性能。本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:图1是SDN中流量工程示意图;图2是遗传算法求解路由优化问题流程图;图3是数据流表请求量和平均匹配精度示意图;图4是代价函数与负载量关系示意图;图5是网络控制器示意图。附图标记说明100计算模块200均衡模块具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。在SDN网络中,有数据到达交换机时,交换机会查找其数据流表缓存中的路由表项。如果有匹配的数据流表项,则按照对应的动作进行操作,例如转发给特定的端口。如果没有匹配项,则会第一个包发送给控制器。控制器根据全局视图计算转发路径,并下发给该路径涉及到的所有交换机。对于该数据流、或者同类数据流的后续数据包,转发路径中的各个交换机会根据其安装的数据流表项进行转发。数据流表中的数据流表项具有一定的生存时间,超时的数据流表项将被删除。根据数据流表进行处理时,会将数据包与该数据流表中的数据流表项进行匹配和选择。其中,匹配字段(MatchFields)可以从数据包中提取,包括源MAC地址,目的MAC地址,Vlanid,Vlan优先级,源IP地址,目的IP地址,TCP/UDP的源端口号和目的端口号等共计12个域。每一个域可以是确定值或任意,或通过掩码实现精确匹配。2-4层的数据流表精确匹配,使网络的管理更加简化和灵活。但由于控制器和交换机的性能有限,也面临着较大的挑战。例如,当交换机的数量增加时,发往控制器的数据流表请求量会呈指数级增加。目前NOX控制器的处理分组进入(packet-in)消息的能力是30K/s。单个控制器的集中控制可能会造成系统的性能瓶颈。这使得交换机发送给控制器的数据流表请求量受到限制,一般每秒不超过60-330条。在一定的数据流表更新数量限制下,交换机转发的数据量越大,需要的数据流表请求量越多。为了不超过控制器的性能极限,需要减小数据流表请求量。另外,对于交换机来说,每个数据流表的安装大约需要10ms时延,数据流表项更新的性能极限在800-1000条/秒。交换机中的数据流表分为线性表和哈希表,其中线性表按照通配符进行查找,遍历方式,时间复杂度为O(n),哈希表按照确定的匹配值进行匹配,也就是数据流表中的12元组,时间复杂度为O(1)。由于OpenFlow设备需要支持这种多元组查找的数据流表转发方式,也需要支持该架构的网络芯片。虽然现有TCAM技术能够支持这种特性,但大容量TCAM的价格极其昂贵,使得数据流表空间有限。线性表的数据流表容量一般为100,单个哈希表的数据流表容量为8K,64K或128K。在实际应用中,难以应对灵活和大规模的网络流量。对于SDN网络来说,如果数据流的路由规划不够合理,随着网络中数据请求量的增加,难免有些控制器会负载量过大。此时,会出现数据流表无法及时请求和更新。造成导致网络拥塞、数据传输时延增加、网络吞吐量和QoS下降。如果仅通过降低数据流表匹配精确度解决问题,又将影响网络的流控性能。使得仍有大量交换机处于轻负载状态,造成转发能力、缓存空间等网络资源的浪费。如图1所示,存在交换机A-E,图1的(a)中,由于A->B->C的数据请求过多,造成交换机A、交换机B和交换机C的过载。图1的(b)中通过进行流量工程,将部分流量的路由改为A->D->E->C,达到交换机之间的负载均衡。不同精确度的数据流表匹配方式将显著影响交换机的数据流表请求量和数据流表空间使用量。本发明首先对数据流表项的匹配精确度进行定义。数据流表项的匹配字段可以包括以太网源、目的地址,IP源、目的地址等共计12个域。在本发明中,主要考虑IP源地址(src),IP目的地址(dst)和目的端口号(port)这3个匹配项。不同的子网掩码组合出不同的匹配精度。如下表所示,定义如下4种数据流表匹配方式及其匹配精确度。表数据流表匹配方式和精确度表当交换机连接的网段或主机数量增加,网络流量波动较大,或网络初始化时,网络中数据流的数量和种类增加,数据流无法与交换机中缓存数据流表匹配的概率增大,交换机需要发送大量的packet-in消息,向控制器请求数据流表。由于控制器对packet-in的处理能力有限,所有相连交换机的数据流表请求数量Fup存在上限,Fup≤UB。随着交换机转发的数据量的增加,需要的数据流表请求量越多。为了不超过数据流表请求数量的限制,必须采用掩码长度更短的匹配方式。此时,控制器对网络中数据流的控制能力和管理的灵活性下降。为了体现精确匹配带来的收益,定义流的汇聚代价与该匹配模式对流的汇聚能力成正比。基准匹配方式可根据网络中的流量情况和交换机的性能确定。例如,接入交换机的基准匹配方式可选择/32src+/32dst+port,核心交换机的基准匹配方式可选择/24dst+/24src+port。基准匹配方式可以理解为,根据交换机流量统计数据,在流量最小的情况下,所有数据流能达到的最精确匹配程度。设交换机的转发数据流的平均速率为F个数据流每秒时,采用基准匹配方式Matchb时的数据流表请求量为Fup(Matchb)=αbF,定义此时交换机转发1比特数据的汇聚代价为γb,以及不同匹配模式Matchi对流的汇聚能力为Conv(Matchi)=Fup(Matchb)/Fup(Matchi)采用Matchi转发1比特数据时的汇聚代价为Φ(Matchi)=γbConv(Matchi)设网络中共有N个交换机节点,其中,第n个交换机总数据转发速率为Load(n)(Mbps),其中采用Matchi转发的数据量为Loadi(n)(Mbps),则下面在给定Load(n)的情况下,计算匹配方案Loadi(n)。设数据流的最宽松匹配方式为MatchK时,交换机能转发的最大数据量为MaxLoadK。为了实现尽可能精确的匹配,MatchK应满足以下条件的最小值。Load(n)≤MaxLoadK=Σi≤KLoadiFup=Σi≤KFup(Matchi)=Σi≤KαbLoadi(n)/Conv(Matchi)≤UB]]>设该交换机所转发数据流能达到的最精确匹配为MatchP。Loadi(n)为交换机n采用第i种匹配方式的数据流量;MaxLoadi为采用第i种匹配方式,流表请求量不超过限制情况下,交换机能够处理的最大流量负载;i=1,2,…,K。(1)MaxLoadi和P的解法举例假设网络中对交换机的流量监测数据已知。监测过程中,设定流表的超时时间为T=10s时,下面分析流表请求量与交换机转发数据量之间的比例关系。已知交换机单位时间平均数据转发总量Load(n)=689.45Mbps,则10秒转发的总数据量为LoadT(n)=Load(n)*T=689.45Mbit/s*10s=6.8945Gbit已知平均单个数据流的大小为Fsize=0.16Mbit,可求出10S转发的数据流总量,即FT(n)=LoadT(n)/Fsize=6.8945Gbit/0.16Mbit=43.09K个。其中,Fi(n)为超时时间T内第n个交换机转发的数据流个数,Fsize为平均单个数据流的大小。针对每一种匹配方式,已知10S的流表请求量Fup(i),则计算流表请求量与F10s的比例Pup(i)=Fup(i)/F10s如下表:类型MatchiMatch1Match2Match3Match4Fup(i)(条/秒)800500250220Pup(i)1.86%1.16%0.58%0.51%对于某个交换机来说,假设全部采用Matchi,计算能够容纳的最大吞吐量MaxLoadi(Mbps)。根据交换机流表更新性能的限制Fup≤330,则max(Fup)=(MaxLoadi×T/Fsize)×Pup(i)=330解得:MaxLoad1=283.8MbpsMaxLoad2=455MbpsMaxLoad3=910MbpsMaxLoad4=1035Mbps例如,已知某一交换所有端口数据转发总速率为Load(n)=800Mbps,则根据MaxLoad2<Load(n)≤MaxLoad3,解得P=2。在尽可能精确匹配的情况下,优先采用Match2匹配(P=2),剩余部分采用Match3匹配(K=3)。(2)Loadi(n)解法举例:假设其总吞吐量为Load(n)(Mbps),其中采用匹配方式Matchi转发的数据量为Loadi(n),则Load(n)=Load2(n)+Load3(n)=800交换机10S处理的数据流总数量为F10s(n)=Load(n)×10/0.16=50000其中,采用Matchi处理的数据流数量为Fi(n)=Loadi(n)×10/0.16则总的流表更新请求量为Fup(n)=Σi=2i=3Fi(n)×Pup(i)=F2(n)×Pup(2)+F3(n)×Pup(3)=F2(n)×1.16%+F3(n)×0.58%]]>根据Fup(n)≤330,得到以下方程组解得:F2(n)=6810F3(n)=43190]]>Load2(n)=108.96Load3(n)=691.04]]>此时,Fup(n)=330(3)总结Loadi(n)和P的解法对以上例子进行抽象,即根据以下方程组计算Loadi(n):其中MatchP为最精确的数据流表匹配方式,MatchK为最宽松的数据流表匹配方式,P为整数,K为整数。当交换机的Load(n)不超过MaxLoadP+1时,将尽量多的数据流采用MatchP进行匹配,剩余部分采用MatchP+1进行匹配。即P为满足方程的MaxLoadP<Load(n)≤MaxLoadP+1的最小正整数。在尽可能精确匹配的情况下,K=min(P+1,4);在匹配精确度要求最低的情况下,K=4。对该交换机节点的数据流表请求量估算为:Fup=Σi≤KFup(Matchi)=Σi≤KαbLoadi(n)/Conv(Matchi)]]>此时,定义交换机n∈N的平均匹配精确度为:Accu(n)=(ΣiAccui×Loadi(n))/Load(n)]]>定义网络的平均匹配精确度为:Accu=(Σn∈NAccu(n)×Load(n))/Σn∈NLoad(n)]]>本发明将通过对SDN中链路权值的设置,来进行路由优化,提高网络性能,实现交换机的负载均衡。建立SDN中的OSPF权值设置优化问题模型,得到系统的优化目标函数。假设用G=(N,A)表示一个SDN网络,其中n∈N表示SDN网络中的一个交换机,a∈A表示SDN网络中的一条链路。流量请求矩阵D是一个N×N的矩阵,对于每个节点对(s,t)∈N×N,dst=D(s,t)代表源-目的节点之间的流量请求。控制器生成的一条数据流表确定了dst如何通过网络中的交换机完成数据传输。而流量工程就是根据特定的目标函数,寻求一种选路规则,把流量请求D映射到网络中的各条链路上,使得目标函数取得最优值。例如以路径代价为目标函数的最短路径算法Dijkstra和Bellman-Ford。这些算法运算简便、使用广泛。链路权值设置问题就是将一个非负的整数权值wa∈[1,wmax],对应到每条边a∈A。对于给定的链路权值设置w,以及流量Demand矩阵D,可以求出各个交换机的总数据转发量Load(n)以及匹配方案Loadi(n)。根据汇聚代价Φ(Matchi),定义交换机的代价函数为Φ(Load(n))=ΣiΦ(Matchi)×Loadi(n)]]>则链路权值设置问题可以表示为:寻找最优的设置方案w*=<w1*,w2*,...,wA*>,其中wi*表示链路i∈1,2,...A的最优权值,使得ΦOSPF(w)最小。即系统的优化目标函数为:Φopt=ΦOSPF(w*)=minΦ=min(Σn∈NΦ(Load(n)))=min(Σn∈NAccessΦ(LoadAccess(n))+Σn∈NCoreΦ(LoadCore(n)))]]>其中边界条件为Fup=Σi≤KFup(Matchi)=Σi≤KαbLoadi(n)/Conv(Matchi)≤UB.]]>(1)接入交换机(AccessSwitch)该交换机处于网络边缘,负责将终端主机接入网络中。转发的数据量一般,连接的链路带宽不高。由于连接了大量的终端用户,接入交换机处理的流量种类较多,数据流的源地址、目的地址、端口号等经常发生变化。交换机无法匹配到已有流表项的情况较为频繁。由于接入交换机数量较多,为了减轻对控制器的负担,边界条件设定为:Fup≤UB=330(2)核心交换机(CoreSwitch)该交换机处于网络中心,负责大量数据的转发,连接的链路带宽较高。由于核心交换机数量较少,主要处理汇聚数据流,流量的种类和变化较少,则流表请求量较少,边界条件改为考虑安装控制器所下发的流表造成的时延,根据交换机的流表项安装时延,边界条件设定为:Fup≤UB=1000以上边界条件的数据来源均为交换机的性能指标,SDN交换机流表请求速率约为每秒60-330个,流表项安装时延约10毫秒。具体应用时,可根据实际参数进行相应调整。此外区分了接入网中的交换机数量NAccess和核心网中的交换机数量NCore及对应的代价函数。为了优化上述目标函数,本发明中使用遗传算法,如图2所示,具体描述如下。在可行域中,每一个个体被编码,用不同的基因表示。对于某一代种群,将个体的基因编码映射适应度函数值。然后根据一定的选择策略,挑选出适应度值达到要求的个体。通过遗传、变异和选择,逐渐接近优化问题的最优解。假设用P(t)代表第t代种群,算法的主要步骤包括:(1)创建由若干个体组成的初始种群P(0)。(2)在当前种群中,循环进行以下步骤,直到达到最大遗传代数。a、利用成本函数(costfunction),为每一个个体计算适应度函数值。b、从P(t)中选择父代个体。c、利用选择的父代个体,通过交叉和变异操作形成子代种群P(t+1)。d、计算子代种群中每个个体的适应度函数值,选出本次迭代过程的最优解。下面主要针对接入交换机进行讨论,不涉及到核心交换机。接入交换机主要负责将用户接入网络中。与控制器相连的接入交换机数量较多,例如十几至几十个。考虑控制器处理packet-in消息的能力限制,设单个交换机的Fup≤UB=330个每秒。根据交换机实测数据,设Matchb=/32src+/32dst+port、γb=1,不同匹配模式下的汇聚代价如下表。技术人员可以根据网络运行的实际流量统计数据,优化调整以上参数,已达到最好的网络性能。接入交换机匹配模式汇聚代价表接入交换机性能分析如图3所示。如图3中的(a)所示,在接入交换机的负载量不超过283.8Mbps时,数据流表请求量随着负载量的增加而增大。所有数据流表采用/32src+/32dst+port匹配,平均匹配精确度为1。如图3中的(b)所示,负载量超过283.8Mbps后,通过调整数据流的匹配方式,数据流表请求量保持在330个/秒。随着匹配方式逐渐模糊,匹配精确度逐渐下降。当负载量超过1035Mbps以后,所有数据流表采用/24dst的匹配,平均匹配精确度为0.3。根据,进而得出交换机的代价函数与负载量之间的分段线性函数关系如图4所示,其中Φ(Load(n))=Load(n),0Mbps≤Load(n)≤283.8Mbps2.6Load(n)-454.08,283.8Mbps≤Load(n)≤455Mbps4.8Load(n)-1455.08,455Mbps≤Load(n)≤910Mbps6.5Load(n)-3002.08,910Mbps≤Load(n)≤1035Mbps100Load(n)-99774,Load(n)>1035Mbps,n∈NAccess]]>下面,利用遗传算法求解链路的最优权值。(1)染色体编码。为了寻找最优的OSPF链路权值设置,可以把最优解表示为离散搜索域[1,wmax]A中的一个点。用w=<w1,w2,...,wA>表示一种权值设置方案,其中wi表示链路i∈1,2,...A的权值。搜索空间中的一个点代表一个可行解。为了减少算法计算量,这里不用65535作为权值的上界,而用wmax=20。(2)创建初始种群。设初始种群规模NIND=100。其中,前98个个体为搜索域[1,20]A中的随机点,用一个整数元素组成的向量表示。第99个个体的链路权值均设为1。第100个个体按照反比于链路带宽的方式设置链路权值,例如wi=1G/ca。当ca=100M时,wi=10;当ca=1000M时,wi=1。(3)个体适应度评价。对于每个可行解,计算其适应度函数值。具体步骤为:A、按照Floyd算法计算最短路径,并根据网络中的流量请求,确定每个交换机的负载。计算交换机n∈N的负载Load(n)具体步骤为foralldst>0do//根据floyd_Path计算出s,t之间的路由path_stforallq=1,2,...,length(path_st)-1dom1=path_st(q)m2=path_st(q+1)//第q段路径的两个端点Load(m1)=Load(m1)+dst//计算第1个端点的LoadLoad(m2)=Load(m2)+dst//计算第2个端点的LoadendendB、计算代价函数值ΦOSPF(w)=Σn∈NAccessΦ(LoadAccess(n))+Σn∈NCoreΦ(LoadCore(n))]]>C、计算适应度函数值按照个体的ΦOSPF(w)值由大到小线性排序,设某个个体在种群中的位置为Pos,种群规模为Nind,则其适应度值为FitnV(Pos)=2×Pos-1Nind-1]]>D、父代选择。从P(t)中选择父代个体。选择应该使适应度函数值大的个体参与繁殖的可能性更大。同时,选择具有一定的随机性,以避免局部贪婪导致的局部最优。这里采用随机遍历抽样,每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值之和的比例。E、形成子代种群。利用选择的父代个体,通过交叉和变异操作形成子代种群P(t+1)。交叉:对于随机选择的一对父代个体,采用离散重组进行交叉操作。对于每个基因,贡献给子代的变量值由父代以相同的概率随机挑选。变异:对于一个实值种群,使用给定的概率,变异每一个变量,返回变异后的新种群。F、循环进行(C)-(E),当种群的繁殖到最大遗传代数时,遗传算法结束。记录此时的最优链路权值设置方案w*=<w1*,w2*,...,wA*>。在获得最优链路权值之后,网络中的数据流根据最短路径优先进行路由,当各个链路的权值确定时,利用Floyd算法可计算出所有源节点-目的节点之间的最短路径,即各条链路权值之和最小的路径。当链路权值组合改变时,计算出的最短路径随之改变,网络中数据流的路由也随之改变,实现流量工程。下面简要介绍Floyd算法。设算法的接口为floyd(d,n,s,t),其中d为邻接矩阵,其中,若交换机i和交换机j相连(i≠j),则d(i,j)为i和j之间链路的权值;若不相连,则d(i,j)=∞;i=j时,d(i,j)=0。n为交换机节点的个数,s和t分别为源端和目的端交换机的dpid。利用floyd算法,不断对节点进行遍历,更新最短路径进行,将路径代价和各跳路由分别保存在cost和route矩阵中,其中cost矩阵初始化时等于d矩阵。给定源节点和目的节点的交换机编号,则返回对应的route和cost。其中,route为节点编号和“>”符号组成的字符串,例如“1>2>5”表示源节点1到目的节点5的路径为1-2-5。)相应地,本发明提供了一种数据流控制系统,该系统包括软件定义网络SDN中各交换机节点和网络控制器。如图5所示,该网络控制器包括:计算模块,用于计算软件定义网络SDN中各交换机节点的数据流表请求量;均衡模块,用于根据各交换机节点的汇聚代价以及所述各交换机节点的数据流表请求量最优化SDN中各个链路的权值,以均衡各交换机节点的数据流;其中汇聚代价Φ(Load(n))=ΣiΦ(Matchi)×Loadi(n),]]>Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi),Load(n)为第n个交换机的数据转发速率,Loadi(n)为采用数据流表匹配方式Matchi转发的数据量,Fup(Matchb)为采用基准数据流表匹配方式Matchb的数据流表请求量,Fup(Matchi)为采用匹配方式Matchi的数据流表请求量,n为整数,i为整数,γb为预设的交换机转发1比特数据的汇聚代价。关于计算模块符和均衡模块的功能与上述的方法基本上对应,在此不再赘述。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1