一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种负载均衡算法确定方法及网络设备与流程

2021-10-19 19:48:00 来源:中国专利 TAG:地说 网络设备 算法 负载均衡 通信


1.本技术涉及通信技术领域,更具体地说,涉及负载均衡算法确定方法及网络设备。


背景技术:

2.目前,在以太网链路聚合(eth-trunk)或等价多路径(equal cost multi pathrouting,ecmp)等技术场景中,在网络设备为接收到的多条数据流分配端口时,通常会根据网络设备内预先配置好的哈希算法和数据流的源ip地址等信息确定多条数据流与多个端口的映射关系,并根据该映射关系将多条数据流分配给网络设备的多个端口。
3.例如,假设交换机a包括端口a1和端口a2,交换机a内预先配置好哈希算法crc16-lower。假设在某一时刻交换机a接收到数据流l1和数据流l2,数据流l1的数据量和数据流l2的数据量均为10mb/s。假设交换机a利用哈希算法crc16-lower、数据流l1的源ip地址和数据流l2的源ip地址,确定数据流l1和数据流l2均对应端口a1。即数据流l1和数据流l2均分配给端口a1,端口a1传输的数据量为20mb/s,端口a2处于空闲状态,从而导致交换机a的端口a1和端口a2的数据量负载不均衡。
4.通过上述示例可以了解到,利用网络设备内预先配置好的哈希算法来确定每条数据流对应的端口具有较强的随机性,很有可能使得网络设备的多个端口的数据量负载不均衡。因此,如何保证网络设备的多个端口的数据量负载更加均衡,成为目前亟需解决的技术问题。


技术实现要素:

5.本技术提供一种负载均衡算法确定方法及网络设备,以保证网络设备的多个端口的数据量负载更加均衡。
6.第一方面,本技术提供了一种负载均衡算法确定方法,该方法包括:网络设备获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,链路组对应m个端口,m大于等于2;网络设备根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,负载均衡算法集合包括n个负载均衡算法,n大于等于2,i∈[1,n];当均衡系数yi符合负载均衡条件时,网络设备确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0007]
在第一方面中,网络设备可以根据多条数据流中每条数据流的信息和m个端口,在负载均衡算法集合中选择出第i个负载均衡算法作为新的负载均衡算法。利用第i个负载均衡算法为m个端口分配网络设备后续接收到的数据流,可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0008]
在第一方面的一种可能的实现方式中,均衡系数yi符合负载均衡条件包括:均衡系数yi为n个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的;或均衡系数yi为n个负载均衡算法的均衡系数中最优的。
[0009]
其中,如果均衡系数yi为n个负载均衡算法的均衡系数中第一个符合设定的负载
均衡阈值的均衡系数,那么网络设备可以更快的在n个负载均衡算法中确定出符合负载均衡阈值的均衡系数yi对应的第i个负载均衡算法,以使第i个负载均衡算法可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0010]
其中,如果均衡系数yi为n个负载均衡算法的均衡系数中最优的均衡系数,那么网络设备可以在n个负载均衡算法中确定出最优的均衡系数yi对应的第i个负载均衡算法,以使第i个负载均衡算法可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0011]
在第一方面的一种可能的实现方式中,数据流的信息包括数据流的标识和设定时间段内数据流的数据量。
[0012]
在第一方面的一种可能的实现方式中,网络设备根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi包括:网络设备根据第i个负载均衡算法以及多条数据流中每条数据流的标识计算每条数据流的分配值;网络设备根据每条数据流的分配值从m个端口中确定数据流对应的端口;网络设备根据m个端口中每个端口对应的数据流和设定时间段内数据流的数据量,确定端口的数据量;网络设备根据m个端口的数据量计算均衡系数yi。
[0013]
在第一方面的一种可能的实现方式中,均衡系数yi为变异系数,网络设备根据m个端口的数据量计算均衡系数yi包括:网络设备计算m个端口的数据量的平均值ui;网络设备计算m个端口的数据量的方差fi;网络设备根据方差fi计算m个端口的数据量的标准差bi;网络设备根据标准差bi和平均值ui计算m个端口的变异系数以得到均衡系数yi。
[0014]
其中,变异系数用于表示m个端口的数据量是否均衡,变异系数越大,说明m个端口的数据量越不均衡。变异系数越小,说明m个端口的数据量越均衡。在变异系数为0时,说明m个端口的数据量处于完全均衡的状态。所以通过变异系数可以衡量对应的负载均衡算法是否可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0015]
在第一方面的一种可能的实现方式中,均衡系数yi为极差,网络设备根据m个端口的数据量计算均衡系数yi包括:网络设备确定m个端口中的第一端口和第二端口,第一端口具有最大的带宽利用率,第二端口具有最小的带宽利用率,一个端口的带宽利用率为该端口的数据量与该端口的带宽之商;网络设备计算第一端口的带宽利用率和第二端口的带宽利用率之差以得到均衡系数yi。
[0016]
其中,极差用于表示m个端口的带宽利用率是否均衡,极差越大,说明m个端口的带宽利用率越不均衡。极差越小,说明m个端口的带宽利用率越均衡。在极差为0时,说明m个端口的带宽利用率处于完全均衡的状态。所以通过极差可以衡量对应的负载均衡算法是否可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0017]
在第一方面的一种可能的实现方式中,均衡系数yi为极差,网络设备根据m个端口的数据量计算均衡系数yi包括:网络设备确定m个端口中的第一端口和第二端口,第一端口具有最大的数据量,第二端口具有最小的数据量;网络设备计算第一端口的数据量和第二端口的数据量之差以得到均衡系数yi。
[0018]
其中,极差用于表示m个端口的带宽利用率是否均衡,极差越大,说明m个端口的带宽利用率越不均衡。极差越小,说明m个端口的带宽利用率越均衡。在极差为0时,说明m个端口的带宽利用率处于完全均衡的状态。所以通过极差可以衡量对应的负载均衡算法是否可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0019]
在第一方面的一种可能的实现方式中,数据流的信息还包括设定时间段内转发数据流的端口,在网络设备获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息以后,方法还包括:网络设备根据设定时间段内转发数据流的端口和设定时间段内数据流的数据量,确定设定时间段内m个端口的数据量是否均衡;在设定时间段内m个端口的数据量不均衡时,执行网络设备根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi的步骤。
[0020]
第二方面,本技术提供了一种网络设备,包括:获取模块,用于获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,链路组对应m个端口,m大于等于2;计算模块,用于根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,负载均衡算法集合包括n个负载均衡算法,n大于等于2,i∈[1,n];第一确定模块,用于在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0021]
在第二方面的一种可能的实现方式中,均衡系数yi符合负载均衡条件包括:均衡系数yi为n个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的;或均衡系数yi为n个负载均衡算法的均衡系数中最优的。
[0022]
在第二方面的一种可能的实现方式中,数据流的信息包括数据流的标识和设定时间段内数据流的数据量。
[0023]
在第二方面的一种可能的实现方式中,计算模块,用于根据第i个负载均衡算法以及多条数据流中每条数据流的标识计算每条数据流的分配值;根据每条数据流的分配值从m个端口中确定数据流对应的端口;根据m个端口中每个端口对应的数据流和设定时间段内数据流的数据量,确定端口的数据量;根据m个端口的数据量计算均衡系数yi。
[0024]
在第二方面的一种可能的实现方式中,计算模块,用于计算m个端口的数据量的平均值ui;计算m个端口的数据量的方差fi;根据方差fi计算m个端口的数据量的标准差bi;根据标准差bi和平均值ui计算m个端口的变异系数以得到均衡系数yi。
[0025]
在第二方面的一种可能的实现方式中,计算模块,用于确定m个端口中的第一端口和第二端口,第一端口具有最大的带宽利用率,第二端口具有最小的带宽利用率,一个端口的带宽利用率为该端口的数据量与该端口的带宽之商;计算第一端口的带宽利用率和第二端口的带宽利用率之差以得到均衡系数yi。
[0026]
在第二方面的一种可能的实现方式中,计算模块,用于确定m个端口中的第一端口和第二端口,第一端口具有最大的数据量,第二端口具有最小的数据量;计算第一端口的数据量和第二端口的数据量之差以得到均衡系数yi。
[0027]
在第二方面的一种可能的实现方式中,网络设备还包括第二确定模块,用于根据设定时间段内转发数据流的端口和设定时间段内数据流的数据量,确定设定时间段内m个端口的数据量是否均衡;在设定时间段内m个端口的数据量不均衡时,调用计算模块。
[0028]
第三方面,本技术提供了一种网络设备,包括控制器、转发器和m个端口,m大于等于2,该m个端口对应m条链路,该m条链路形成链路组。控制器用于从转发器获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,并根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0029]
第四方面,本技术提供了一种网络设备,包括转发器和m个端口,m大于等于2,该m个端口对应m条链路,该m条链路形成链路组。转发器用于获取设定时间段内通过该链路组转发的多条数据流中每条数据流的信息,并根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0030]
第五方面,本技术实施例提供了一种网络设备,网络设备包括处理器、存储器和m个端口,m大于等于2,该m个端口对应m条链路,该m条链路形成链路组。其中,处理器用于读取存储在存储器中的软件代码并执行上述第一方面或第一方面的任一种可能实现方式中的方法。
附图说明
[0031]
图1所示的为本技术实施例提供的以太网链路聚合的场景示意图;
[0032]
图2所示的为本技术实施例提供的等价多路径的场景示意图;
[0033]
图3所示的为本技术实施例提供的一种负载均衡算法确定方法的流程图;
[0034]
图4所示的为本技术实施例提供的另一种负载均衡算法确定方法的流程图;
[0035]
图5所示的为本技术实施例提供的又一种负载均衡算法确定方法的流程图;
[0036]
图6所示的为本技术实施例提供的又一种负载均衡算法确定方法的流程图;
[0037]
图7所示的为本技术实施例提供的一种网络设备的结构示意图;
[0038]
图8所示的为本技术实施例提供的另一种网络设备的结构示意图;
[0039]
图9所示的为本技术实施例提供的又一种网络设备的结构示意图;
[0040]
图10所示的为本技术实施例提供的又一种网络设备的结构示意图。
具体实施方式
[0041]
请参见图1所示,图1所示的为本技术实施例提供的以太网链路聚合的场景示意图。在图1所示的实施例中,交换机a的端口a1通过物理链路x1与交换机b的端口b1相连,交换机a的端口a2通过物理链路x2与交换机b的端口b2相连。为了实现交换机a与交换机b之间的链路聚合,需要将物理链路x1和物理链路x2聚合在一起形成一条逻辑链路s1。
[0042]
请参见图2所示,图2所示的为本技术实施例提供的等价多路径的场景示意图。在图2所示的实施例中,交换机c的端口c1通过物理链路y1与交换机d相连,交换机c的端口c2通过物理链路y2与交换机e相连,交换机d通过物理链路z1与交换机f相连,交换机e通过物理链路z2与交换机f相连。其中,物理链路y1和物理链路z1构成路径1,物理链路y2和物理链路z2构成路径2。
[0043]
本技术将逻辑链路中的多条链路或等价多路径的多条路径统称为链路组,例如,图1中的x1和x2组成一个链路组,图2中的路径1和路径2组成另一个链路组。本技术实施例提供了一种负载均衡算法确定方法,以在一个链路组对应的多个端口中实现负载均衡。例如,在图1所示的实施例中,可以利用本技术实施例提供的负载均衡算法确定方法,来保证交换机a的端口a1的数据量和端口a2的数据量的负载更加均衡。在图2所示的实施例中,可以利用本技术实施例提供的负载均衡算法确定方法,来保证交换机c的端口c1的数据量和端口c2的数据量的负载更加均衡。
[0044]
请参见图3所示,图3所示的为本技术实施例提供的一种负载均衡算法确定方法的流程图,图3所示的方法包括以下步骤。
[0045]
s101、网络设备获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息。
[0046]
其中,网络设备可以为交换机或路由器等设备,网络设备具有m个端口,网络设备的m个端口与m个链路相连,m个链路为一个链路组,该链路组与m个端口对应,m是大于等于2的正整数。
[0047]
链路组可以为等价多路径的场景中的链路组,也可以是以太网链路聚合的场景中的链路组,还可以是其他场景中实现负载分担的链路组。
[0048]
设定时间段指的是过去的历史时间段,设定时间段的时间长度可以根据实际情况来设定。
[0049]
例如,可以将当前时间的前一秒至当前时间之间的时间段确定为设定时间段。示例的,假设当前时间为2020年4月1日20点20分10秒,那么可以将2020年4月1日20点20分9秒至2020年4月1日20点20分10秒确定为设定时间段。
[0050]
在s101以前,网络设备在设定时间段内通过链路组转发了多条数据流。为了确定如何利用m个端口转发多条数据流会使得m个端口的数据量负载均衡,网络设备需要在s101中获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息。其中,数据流的信息包括数据流的标识和设定时间段内数据流的数据量。
[0051]
s102、网络设备根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi。
[0052]
其中,负载均衡算法集合包括n个负载均衡算法,n大于等于2,i∈[1,n]。均衡系数yi用于说明利用第i个负载均衡算法将多条数据流分配给m个端口以后,m个端口的数据量负载是否均衡。
[0053]
负载均衡算法集合中的n个负载均衡算法可以为多种不同类型的哈希算法,保证负载均衡算法集合中的任意两个负载均衡算法均不相同。例如,负载均衡算法可以为低16位循环冗余校验(cyclic redundancy check,crc)算法、高16位循环冗余校验算法、低32位循环冗余校验算法或高32位循环冗余校验算法等哈希算法。当然,负载均衡算法还可以为其他类型的算法,例如,负载均衡算法为取余数。
[0054]
在网络设备获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息以后,网络设备会获取预先存储的n个负载均衡算法中的第i个负载均衡算法。然后,网络设备会执行步骤s102并得到第i个负载均衡算法对应的均衡系数yi,网络设备会判断均衡系数yi是否符合负载均衡条件。如果均衡系数yi符合负载均衡条件,说明第i个负载均衡算法更适合网络设备将多条数据流分配给m个端口,即第i个负载均衡算法可以保证网络设备的m个端口的数据量负载更加均衡;如果均衡系数yi不符合负载均衡条件,说明第i个负载均衡算法不适合网络设备将多条数据流分配给m个端口。
[0055]
s103、当均衡系数yi符合负载均衡条件时,网络设备确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0056]
其中,均衡系数yi符合负载均衡条件存在两种情况,下面分别介绍这两种情况。
[0057]
第一种情况,均衡系数yi符合负载均衡条件可以为:均衡系数yi为n个负载均衡算
法的均衡系数中第一个符合设定的负载均衡阈值的。
[0058]
在第一种情况中,网络设备内预先存储了n个负载均衡算法,网络设备会按照预先设定的顺序利用n个负载均衡算法中的负载均衡算法对多条数据流中每条数据流的信息和m个端口进行计算并得到均衡系数。在网络设备计算的过程中,将首次计算出的符合负载均衡阈值的均衡系数yi对应的第i个负载均衡算法确定为网络设备的新负载均衡算法。在网络设备将第i个负载均衡算法确定为网络设备的新负载均衡算法以后,网络设备便会停止计算n个负载均衡算法中剩余的负载均衡算法。
[0059]
示例的,假设网络设备内预先存储了10个负载均衡算法a1-a10,网络设备会按照预先设定的顺序在10个负载均衡算法中选择第一个负载均衡算法a1。假设网络设备利用负载均衡算法a1对多条数据流中每条数据流的信息和m个端口进行计算并得到均衡系数y1,网络设备判断均衡系数y1是否符合设定的负载均衡阈值,如果均衡系数y1符合设定的负载均衡阈值,那么网络设备会确定均衡系数y1对应的负载均衡算法a1为网络设备的新负载均衡算法;如果均衡系数y1不符合设定的负载均衡阈值,那么网络设备会会按照预先设定的顺序在10个负载均衡算法中选择其他的负载均衡算法进行计算,直到被选中的第i个负载均衡算法对应的均衡系数yi符合设定的负载均衡阈值,那么网络设备便会确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0060]
第二种情况,均衡系数yi符合负载均衡条件还可以为:均衡系数yi为n个负载均衡算法的均衡系数中最优的。
[0061]
在第二种情况中,网络设备内预先存储了n个负载均衡算法,网络设备会利用n个负载均衡算法对多条数据流中每条数据流的信息和m个端口进行计算并得到n个均衡系数。在网络设备计算出n个均衡系数以后,网络设备会将n个均衡系数中最优的均衡系数yi对应的第i个负载均衡算法确定为网络设备的新负载均衡算法。
[0062]
其中,n个均衡系数中最优的均衡系数yi对应的第i个负载均衡算法可以保证网络设备的m个端口的数据量负载处于最均衡的状态。
[0063]
示例的,假设网络设备内预先存储了10个负载均衡算法a1-a10,网络设备会利用10个负载均衡算法对多条数据流中每条数据流的信息和m个端口进行计算并得到10个均衡系数y1-y10。在网络设备计算出10个均衡系数y1-y10以后,网络设备会将10个均衡系数y1-y10中最优的均衡系数yi对应的第i个负载均衡算法确定为网络设备的新负载均衡算法。
[0064]
在图3所示的实施例中,网络设备可以根据多条数据流中每条数据流的信息和m个端口,在负载均衡算法集合中选择出第i个负载均衡算法作为新的负载均衡算法。利用第i个负载均衡算法为m个端口分配网络设备后续接收到的数据流,可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0065]
可选的,在图3所示的实施例中,在s101以后,s102以前,网络设备还可以执行以下步骤:网络设备根据设定时间段内转发数据流的端口和设定时间段内数据流的数据量,确定设定时间段内m个端口中每个端口的数据量;根据设定时间段内m个端口中每个端口的数据量确定设定时间段内m个端口的数据量是否均衡;在设定时间段内m个端口的数据量不均衡时,执行s102。
[0066]
其中,数据流的信息还包括设定时间段内转发数据流的端口,即一条数据流的信息中含有在设定时间段内转发该数据流的端口。
[0067]
示例的,请参见图1所示,假设在设定时间段内交换机a的端口a1转发了数据流l1和数据流l3,交换机a的端口a2转发了数据流l2,那么数据流l1的信息中包括设定时间段内转发数据流l1的端口a1,数据流l3的信息中包括设定时间段内转发数据流l3的端口a1,数据流l2的信息中包括设定时间段内转发数据流l2的端口a2,假设在设定时间段内数据流l1的数据量为20mb/s,在设定时间段内数据流l2的数据量为40mb/s,在设定时间段内数据流l3的数据量为50mb/s,交换机a便可以确定端口a1的数据量为70mb/s和端口a2的数据量为40mb/。然后,交换机a判断设定时间段内端口a1的数据量与端口a2的数据量是否均衡。假设交换机a确定设定时间段内端口a1的数据量与端口a2的数据量不均衡,那么交换机a便会执行步骤s102,以寻找能够保证端口a1的数据量与端口a2的数据量的负载处于均衡状态的负载均衡算法。
[0068]
请参见图4所示,图4所示的为本技术实施例提供的另一种负载均衡算法确定方法的流程图,图4所示的实施例为图3中的步骤s102的细化方案,图4所示的方法包括以下步骤。
[0069]
s201、网络设备根据第i个负载均衡算法以及多条数据流中每条数据流的标识计算每条数据流的分配值。
[0070]
其中,数据流的标识可以包括数据流的源ip地址、目的ip地址、源端口号、目的端口号、协议类型信息中的一种或多种,数据流的标识还可以包括上述信息外的其他信息,例如,序列号,校验和等。
[0071]
s202、网络设备根据每条数据流的分配值从m个端口中确定数据流对应的端口。
[0072]
其中,网络设备会预先设定分配值与端口的映射关系,在网络设备计算出每条数据流的分配值以后,网络设备可以利用分配值与端口的映射关系确定每条数据流的分配值对应的端口,从而可以确定数据流对应的端口。需要说明的是,这里数据流对应的端口是指如果根据第i个负载均衡算法转发该数据流时,该数据流理论上经过的端口,并不是实际转发该数据流的端口。
[0073]
示例的,请结合图1、表1和表2所示,假设交换机a在设定时间段内通过链路组转发了数据流l1、数据流l2和数据流l3,交换机a根据第i个负载均衡算法以及3条数据流的标识计算3条数据流的分配值如表1所示,交换机a预先设定的分配值与端口的映射关系如表2所示。
[0074]
数据流分配值l10l21l30
[0075]
表1
[0076]
分配值端口0a11a2
[0077]
表2
[0078]
结合图1、表1和表2所示,在交换机a计算出3条数据流的分配值以后,便可以利用表2中的分配值与端口的映射关系确定3条数据流对应的端口。具体的,数据流l1和数据流
l3均对应端口a1,数据流l2对应端口a2。
[0079]
s203、网络设备根据m个端口中每个端口对应的数据流和设定时间段内数据流的数据量,确定端口的数据量。
[0080]
其中,数据流的数据量可以为数据流的报文数或数据流的字节数等,端口的数据量可以为端口的报文数或端口的字节数等。
[0081]
示例的,请结合图1、表1至表4所示,假设交换机a已经确定了端口a1与数据流l1和数据流l3对应,端口a2与数据流l2对应,如表3所示。假设数据流l1的数据量为20mb/s,数据流l2的数据量为40mb/s,数据流l3的数据量为50mb/s,那么便可以得知端口a1的数据量为70mb/s,端口a2的数据量为40mb/s。
[0082]
端口数据流a1l1,l3a2l2
[0083]
表3
[0084]
端口数据量a170mb/sa240mb/s
[0085]
表4
[0086]
s204、网络设备根据m个端口的数据量计算均衡系数yi。
[0087]
其中,网络设备根据m个端口的数据量计算均衡系数yi存在多种计算方式,下面分别介绍这几种计算方式。
[0088]
第一种计算方式包括以下步骤:网络设备计算m个端口的数据量的平均值ui,计算m个端口的数据量的方差fi,根据方差fi计算m个端口的数据量的标准差bi,根据标准差bi和平均值ui计算m个端口的变异系数以得到均衡系数yi。
[0089]
其中,在概率论和统计学中,变异系数又称“离散系数”(coefficient ofvariation),是概率分布离散程度的一个归一化量度,其定义为标准差与平均值之比。
[0090]
在本技术实施例提供的第一种计算方式中,变异系数用于表示m个端口的数据量是否均衡,变异系数越大,说明m个端口的数据量越不均衡。变异系数越小,说明m个端口的数据量越均衡。在变异系数为0时,说明m个端口的数据量处于完全均衡的状态。
[0091]
示例的,请结合图1、表1至表4所示,假设交换机a已经确定端口a1的数据量为70mb/s,端口a2的数据量为40mb/s。
[0092]
首先,交换机a计算端口a1的数据量与端口a2的数据量的平均数u1
[0093]
=(端口a1的数据量 端口a2的数据量)
÷
端口的数量=(70mb/s 40mb/s)
÷
2=55mb/s。
[0094]
然后,交换机a计算端口a1的数据量与端口a2的数据量的方差f1
[0095]
=[(端口a1的数据量-平均数u1)2 (端口a2的数据量-平均数u1)2]
÷
端口的数量=[(70mb/s-55mb/s)2 (40mb/s-55mb/s)2]
÷
2=(225 225)
÷
2=225mb/s。
[0096]
其次,交换机a计算端口a1的数据量与端口a2的数据量的标准差b1
[0097]
=sqrt((1
÷
端口的数量)
×
方差f1)=sqrt((1
÷
2)
×
225)≈10.6mb/s。
[0098]
最后,交换机a计算端口a1的数据量与端口a2的数据量的变异系数
[0099]
=标准差b1
÷
平均数u1=10.6
÷
55≈0.19。
[0100]
第二种计算方式包括以下步骤:所述网络设备确定所述m个端口中的第一端口和第二端口,所述第一端口具有最大的带宽利用率,所述第二端口具有最小的带宽利用率;所述网络设备计算所述第一端口的带宽利用率和第二端口的带宽利用率之差(又称为极差)以得到所述均衡系数yi。端口的带宽利用率为端口的数据量与端口的带宽之商。
[0101]
其中,极差又称范围误差或全距(range),用来表示多个数据中的最大值与最小值之间的差距,即最大值减最小值后所得的数值。
[0102]
在本技术实施例提供的第二种计算方式中,极差用于表示m个端口的带宽利用率是否均衡,极差越大,说明m个端口的带宽利用率越不均衡。极差越小,说明m个端口的带宽利用率越均衡。在极差为0时,说明m个端口的带宽利用率处于完全均衡的状态。
[0103]
示例的,请结合图1、表1至表4所示,假设交换机a已经确定端口a1的数据量为70mb/s,端口a2的数据量为40mb/s,端口a1的带宽为100mb/s,端口a2的带宽均为50mb/s。
[0104]
首先,交换机a计算端口a1的带宽利用率h1=端口a1的数据量
÷
端口a1的带宽=70mb/s
÷
100mb/s=0.7。
[0105]
其次,交换机a计算端口a2的带宽利用率h2=端口a2的数据量
÷
端口a2的带宽=40mb/s
÷
50mb/s=0.8。
[0106]
最后,交换机a计算端口a2的带宽利用率h2与端口a1的带宽利用率h1的极差j1=端口a2的带宽利用率h2-端口a1的带宽利用率h1=0.8-0.7=0.1。
[0107]
第三种计算方式包括以下步骤:网络设备确定m个端口中的第一端口和第二端口,第一端口具有最大的数据量,第二端口具有最小的数据量。网络设备计算第一端口的数据量和第二端口的数据量之差(极差)以得到均衡系数yi。其中,第一端口为m个端口中数据量最大的端口,第二端口为m个端口中数据量最小的端口。
[0108]
在本技术实施例提供的第三种计算方式中,极差用于表示m个端口的数据量是否均衡。极差越大,说明m个端口的数据量越不均衡。极差越小,说明m个端口的数据量越均衡。在极差为0时,说明m个端口的数据量处于完全均衡的状态。
[0109]
示例的,请结合图1、表1至表4所示,假设交换机a已经确定端口a1的数据量为70mb/s,端口a2的数据量为40mb/s。
[0110]
首先,交换机a确定2个端口中的端口a1具有最大的数据量,端口a2具有最小的数据量。
[0111]
然后,交换机a计算端口a1的数据量与端口a2的数据量的极差j1=端口a1的数据量-端口a2的数据量=70mb/s-40mb/s=30mb/s。
[0112]
为了完整的展示本技术实施例的执行过程,下面通过2个应用例来详细说明。
[0113]
请参见图1和图5所示,图5所示的为本技术实施例提供的又一种负载均衡算法确定方法的流程图。在图1和图5所示的实施例中,假设交换机a内预先存储有3个负载均衡算法,分别为负载均衡算法a1、负载均衡算法a2和负载均衡算法a3。假设交换机a在设定时间段内通过端口a1转发了数据流l1和数据流l3,通过端口a2转发了数据流l2,数据流l1的数据量为20mb/s,数据流l2的数据量为40mb/s,数据流l3的数据量为50mb/s,端口a1的带宽为100mb/s,端口a2的带宽为50mb/s。图5所示的方法包括以下步骤。
[0114]
s301、交换机a获取设定时间段内通过链路组转发的数据流l1的标识、数据流l2的
标识和数据流l3的标识。
[0115]
示例的,数据流l1的标识为数据流l1的源ip地址,数据流l2的标识为数据流l2的源ip地址,数据流l3的标识为数据流l3的源ip地址。
[0116]
s302、交换机a根据负载均衡算法a1、数据流l1的标识、数据流l2的标识和数据流l3的标识,计算数据流l1的分配值、数据流l2的分配值和数据流l3的分配值。
[0117]
示例的,数据流l1的分配值为0,数据流l2的分配值为1,数据流l3的分配值为0。交换机a内预先存储有负载均衡算法a1、负载均衡算法a2和负载均衡算法a3,交换机a每次会选取一个负载均衡算法。在本例的步骤s302中,交换机a首次选择负载均衡算法a1进行计算。
[0118]
s303、交换机a根据数据流l1的分配值、数据流l2的分配值和数据流l3的分配值,从端口a1和端口a2中确定数据流l1、数据流l2和数据流l3对应的端口。
[0119]
示例的,数据流l1和数据流l3均对应端口a1,数据流l2对应端口a2。
[0120]
s304、交换机a根据数据流l1对应端口a1、数据流l2对应端口a2、数据流l3对应端口a1和设定时间段内数据流的数据量,确定端口a1的数据量和端口a2的数据量。
[0121]
示例的,端口a1的数据量为70mb/s,端口a2的数据量为40mb/s。
[0122]
s305、交换机a计算端口a2的带宽利用率h2和端口a1的带宽利用率h1之差以得到负载均衡算法a1对应的均衡系数y1。
[0123]
示例的,交换机a计算端口a1的带宽利用率h1=端口a1的数据量
÷
端口a1的带宽=70mb/s
÷
100mb/s=0.7。
[0124]
交换机a计算端口a2的带宽利用率h2=端口a2的数据量
÷
端口a2的带宽=40mb/s
÷
50mb/s=0.8。
[0125]
负载均衡算法a1对应的均衡系数y1=交换机a计算端口a2的带宽利用率h2与端口a1的带宽利用率h1的极差j1=端口a2的带宽利用率h2-端口a1的带宽利用率h1=0.8-0.7=0.1。
[0126]
s306、交换机a判断均衡系数y1是否为3个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的均衡系数。
[0127]
示例的,设定的负载均衡阈值为在0至0.3之间的带宽利用率。
[0128]
s307、如果均衡系数y1为3个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的均衡系数,交换机a确定负载均衡算法a1为交换机a的新负载均衡算法。
[0129]
其中,由于负载均衡算法a1对应的均衡系数y1为3个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的均衡系数,即均衡系数y1∈(0,0.3),所以交换机a确定负载均衡算法a1为交换机a的新负载均衡算法。
[0130]
请参见图1和图6所示,图6所示的为本技术实施例提供的又一种负载均衡算法确定方法的流程图。在图1和图6所示的实施例中,假设交换机a内预先存储有3个负载均衡算法,分别为负载均衡算法a1、负载均衡算法a2和负载均衡算法a3。假设交换机a在设定时间段内通过端口a1转发了数据流l1和数据流l3,通过端口a2转发了数据流l2,数据流l1的数据量为20mb/s,数据流l2的数据量为40mb/s,数据流l3的数据量为50mb/s,端口a1的带宽为100mb/s,端口a2的带宽均为50mb/s。图6所示的方法包括以下步骤。
[0131]
s401、交换机a获取设定时间段内通过链路组转发的数据流l1的标识、数据流l2的
标识和数据流l3的标识。
[0132]
示例的,数据流l1的标识为数据流l1的源ip地址,数据流l2的标识为数据流l2的源ip地址,数据流l3的标识为数据流l3的源ip地址。
[0133]
s402、交换机a根据数据流l1的标识、数据流l2的标识、数据流l3的标识、端口a1和端口a2,计算负载均衡算法a1对应的均衡系数y1、负载均衡算法a2对应的均衡系数y2和负载均衡算法a3对应的均衡系数y3。
[0134]
示例的,假设根据负载均衡算法a1得到的分配结果为:数据流l1和数据流l3均对应端口a1,数据流l2对应端口a2。从而可以得知,端口a1的数据量为70mb/s,端口a2的数据量为40mb/s。
[0135]
其中,交换机a计算端口a1的带宽利用率h1=端口a1的数据量
÷
端口a1的带宽=70mb/s
÷
100mb/s=0.7。
[0136]
交换机a计算端口a2的带宽利用率h2=端口a2的数据量
÷
端口a2的带宽=40mb/s
÷
50mb/s=0.8。
[0137]
负载均衡算法a1对应的均衡系数y1=交换机a计算端口a2的带宽利用率h2与端口a1的带宽利用率h1的极差j1=端口a2的带宽利用率h2-端口a1的带宽利用率h1=0.8-0.7=0.1。
[0138]
示例的,假设根据负载均衡算法a2得到的分配结果为:数据流l2和数据流l3均对应端口a1,数据流l1对应端口a2。从而可以得知,端口a1的数据量为90mb/s,端口a2的数据量为20mb/s。
[0139]
其中,交换机a计算端口a1的带宽利用率h3=端口a1的数据量
÷
端口a1的带宽=90mb/s
÷
100mb/s=0.9。
[0140]
交换机a计算端口a2的带宽利用率h4=端口a2的数据量
÷
端口a2的带宽=20mb/s
÷
50mb/s=0.4。
[0141]
负载均衡算法a2对应的均衡系数y2=交换机a计算端口a1的带宽利用率h3与端口a2的带宽利用率h4的极差j2=端口a1的带宽利用率h3-端口a2的带宽利用率h4=0.9-0.4=0.5。
[0142]
示例的,假设根据负载均衡算法a3得到的分配结果为:数据流l1和数据流l2均对应端口a1,数据流l3对应端口a2。从而可以得知,端口a1的数据量为60mb/s,端口a2的数据量为50mb/s。
[0143]
其中,交换机a计算端口a1的带宽利用率h5=端口a1的数据量
÷
端口a1的带宽=60mb/s
÷
100mb/s=0.6。
[0144]
交换机a计算端口a2的带宽利用率h6=端口a2的数据量
÷
端口a2的带宽=50mb/s
÷
50mb/s=1。
[0145]
负载均衡算法a3对应的均衡系数y3=交换机a计算端口a2的带宽利用率h6与端口a1的带宽利用率h5的极差j2=端口a2的带宽利用率h6-端口a1的带宽利用率h5=1-0.6=0.4。
[0146]
s403、交换机a在均衡系数y1、均衡系数y2和均衡系数y3中确定最优的均衡系数对应的负载均衡算法为交换机a的新负载均衡算法。
[0147]
示例的,在均衡系数为端口a1的带宽利用率与端口a2的带宽利用率的极差时,那
么均衡系数越小,说明端口a1的带宽利用率与端口a2的带宽利用率的负载越均衡。经过步骤s402的计算可以得知,负载均衡算法a1对应的均衡系数y1为0.1,负载均衡算法a2对应的均衡系数y2为0.5,负载均衡算法a3对应的均衡系数y3为0.4,那么负载均衡算法a1对应的均衡系数y1为最优的均衡系数,所以交换机a会确定负载均衡算法a1为交换机a的新负载均衡算法。
[0148]
请参见图7所示,图7所示的为本技术实施例提供的一种网络设备的结构示意图。该网络设备包括以下模块:
[0149]
获取模块11,用于获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息。其中,链路组对应m个端口,m大于等于2。具体详细的实现方式,请参考上述图3所示的方法实施例中步骤s101对应的详细描述。
[0150]
计算模块12,用于根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi。其中,负载均衡算法集合包括n个负载均衡算法,n大于等于2,i∈[1,n]。具体详细的实现方式,请参考上述图3所示的方法实施例中步骤s102对应的详细描述。
[0151]
第一确定模块13,用于在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。具体详细的实现方式,请参考上述图3所示的方法实施例中步骤s103对应的详细描述。
[0152]
在一种可实现的实施例中,均衡系数yi符合负载均衡条件包括:均衡系数yi为n个负载均衡算法的均衡系数中第一个符合设定的负载均衡阈值的;或均衡系数yi为n个负载均衡算法的均衡系数中最优的。
[0153]
在一种可实现的实施例中,数据流的信息包括数据流的标识和设定时间段内数据流的数据量。
[0154]
在一种可实现的实施例中,计算模块12,用于根据第i个负载均衡算法以及多条数据流中每条数据流的标识计算每条数据流的分配值;根据每条数据流的分配值从m个端口中确定数据流对应的端口;根据m个端口中每个端口对应的数据流和设定时间段内数据流的数据量,确定端口的数据量;根据m个端口的数据量计算均衡系数yi。具体详细的实现方式,请参考上述图4所示的方法实施例中步骤s201至s204对应的详细描述。
[0155]
在一种可实现的实施例中,计算模块12,用于计算m个端口的数据量的平均值ui;计算m个端口的数据量的方差fi;根据方差fi计算m个端口的数据量的标准差bi;根据标准差bi和平均值ui计算m个端口的变异系数以得到均衡系数yi。具体详细的实现方式,请参考上述图4所示的方法实施例中步骤s204对应的详细描述。
[0156]
在一种可实现的实施例中,计算模块12,用于确定m个端口中的第一端口和第二端口,第一端口具有最大的带宽利用率,第二端口具有最小的带宽利用率,端口的带宽利用率为端口的数据量与端口的带宽之商;计算第一端口的带宽利用率和第二端口的带宽利用率之差以得到均衡系数yi。具体详细的实现方式,请参考上述图4所示的方法实施例中步骤s204对应的详细描述。
[0157]
在一种可实现的实施例中,计算模块12,用于确定m个端口中的第一端口和第二端口,第一端口具有最大的数据量,第二端口具有最小的数据量;计算第一端口的数据量和第二端口的数据量之差以得到均衡系数yi。具体详细的实现方式,请参考上述图4所示的方法
实施例中步骤s204对应的详细描述。
[0158]
在一种可实现的实施例中,网络设备还包括第二确定模块14。第二确定模块14,用于根据设定时间段内转发数据流的端口和设定时间段内数据流的数据量,确定设定时间段内m个端口的数据量;判断设定时间段内m个端口的数据量是否均衡;在设定时间段内m个端口的数据量不均衡时,调用计算模块12。
[0159]
请参见图8所示,图8所示的为本技术实施例提供的另一种网络设备的结构示意图。该网络设备包括控制器21、转发器22和m个端口(端口a1,

,端口am),该m个端口对应m条链路,该m条链路形成链路组,m大于等于2。
[0160]
其中,控制器21用于从转发器22获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,并根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0161]
在图8所示的实施例中,控制器21可以为中央处理器(central processing unit,cpu),转发器22可以为专用集成电路(application specific integrated circuit,asic),控制器21与转发器22可以通过高速串行计算机扩展总线标准(peripheralcomponent interconnect express,pcie)类型的总线相连。
[0162]
请参见图9所示,图9所示的为本技术实施例提供的又一种网络设备的结构示意图。该网络设备包括转发器31和m个端口(端口a1,

,端口am),该m个端口对应m条链路,该m条链路形成链路组,m大于等于2。
[0163]
其中,转发器31用于获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,并根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0164]
在图9所示的实施例中,转发器31可以为专用集成电路(application-specificintegrated circuit,asic)。
[0165]
请参见图10所示,图10所示的为本技术实施例提供的又一种网络设备的结构示意图。图10所示的网络设备包括处理器41、存储器42和m个端口(端口a1,

,端口am),该m个端口对应m条链路,该m条链路形成链路组,m大于等于2。
[0166]
其中,处理器41用于获取设定时间段内通过链路组转发的多条数据流中每条数据流的信息,并根据多条数据流中每条数据流的信息和m个端口,计算负载均衡算法集合中的第i个负载均衡算法对应的均衡系数yi,在均衡系数yi符合负载均衡条件时,确定第i个负载均衡算法为网络设备的新负载均衡算法。
[0167]
通过本发明上述实施例,网络设备可以根据多条数据流中每条数据流的信息和m个端口,在负载均衡算法集合中选择出第i个负载均衡算法作为新的负载均衡算法。利用第i个负载均衡算法为m个端口分配网络设备后续接收到的数据流,可以保证网络设备的m个端口的数据量负载处于均衡状态。
[0168]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0169]
上述实施例提供的网络设备仅以上述各功能模块的划分进行举例说明,实际应用
中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0170]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜