CN112087397B - 一种基于多通道协议的负载均衡方法与装置 - Google Patents
一种基于多通道协议的负载均衡方法与装置 Download PDFInfo
- Publication number
- CN112087397B CN112087397B CN202011078087.6A CN202011078087A CN112087397B CN 112087397 B CN112087397 B CN 112087397B CN 202011078087 A CN202011078087 A CN 202011078087A CN 112087397 B CN112087397 B CN 112087397B
- Authority
- CN
- China
- Prior art keywords
- channel
- load weight
- weight
- load
- channels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于多通道协议的负载均衡方法与装置,方法包括:根据通道带宽比例配置各通道的初始负载权重,并配置基准包长对应的基准负载权重扣减因子;当接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个可用通道按对应负载权重占有不同的子样本空间;在动态样本空间内取一随机数,根据随机数所在的子样本空间选择对应通道发送数据包,并在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,完成该通道的负载权重更新。上述负载均衡方法在可变包长、不同带宽通道和可变路由的复杂场景下,均能实现良好的负载均衡效果。
Description
技术领域
本发明属于通信和信息处理技术领域,更具体地,涉及一种基于多通道协议的负载均衡方法与装置。
背景技术
在通信领域,负载均衡技术常见于交换和传输网络中,用于多通道之间的仲裁调度。负载均衡方法对发送通道间的负载比重和发包延迟有直接影响,一个好的负载均衡方法要能够获得较好的负载均衡效果:各发送通道的负载比重均匀性好,通过各通道的延迟较小。
目前传统的负载均衡方法主要是针对相同包长的数据包(即信元)和相同带宽通道的负载均衡。而在多通道协议下,需要兼容不同的数据包长和通道带宽,此时如果使用传统方法则无法均匀地分配各通道的负载比重,不能获得良好的负载均衡效果。具体存在以下问题:
1)多通道协议要求支持不同带宽通道的接入和传输,在不同带宽的通道之间实现负载均衡,即高带宽的通道发送的数据流量大,低带宽的通道发送的数据流量小,越近似的负载比重,负载均衡效果越好。对于问题1),传统方法只能实现相同带宽通道间的负载均衡,不能根据通道带宽调整通道间的负载比例,也就不能有效解决多种带宽通道间的负载均衡。
2)多通道协议要求支持不同包长数据包的发送和接收,在多通道间实现不同包长数据包的负载均衡,即不同包长的数据包通过数据通道后,各通道间仍具有近似的负载比重。对于问题2),传统方法大多是针对相同包长的数据包,当针对不同包长的数据包时,一般是基于随机矩阵选择发送通道:通道数为N,每发送N个包,随机选择1个预设的N*N矩阵,矩阵的每行每列只有一个数为1,其他为0;发包时逐行取出数据,1的位置对应通道发包。通过随机选择矩阵,每轮发包可以在所有通道间按随机顺序各发一个包,对不同包长的数据包,获得长时间统计结果的平均。但这种随机矩阵方法实时性能较差,发包效率较低,而且对于不同带宽的场景,平均化的通道选择仍不能实现负载均衡。
3)通常情况下,在通信系统中,到达不同目的地的路由是不一样的,或者到达一个目的地的路由经常发生变更,因此,发送数据的可用通道(即可用路由)是经常变化的。传统的负载均衡方法仅可以解决全通道可用场景下的负载均衡和可用通道不变场景下的局部负载均衡,但是对于可变通道场景,各通道间的负载均衡效果通常是不理想的。
基于上述问题,需要提供一种方案,在可变包长和不同带宽的通道间,都能具有良好的负载均衡效果;同时,在可变路由的场景下,各通道间也能实现良好的负载均衡效果。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于多通道协议的负载均衡方法与装置,其目的在于在可变包长、不同带宽通道和可变路由的复杂场景下,实现良好的负载均衡效果,由此解决传统方法只能实现相同包长数据包、相同带宽通道、全通道可用场景和可用通道不变场景下负载均衡的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于多通道协议的负载均衡方法,包括:
根据通道带宽比例配置各通道的初始负载权重,并配置基准包长对应的基准负载权重扣减因子;
当接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个可用通道按对应负载权重占有不同的子样本空间;
在动态样本空间内取一随机数,根据随机数所在的子样本空间选择对应通道发送数据包,并在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,完成该通道的负载权重更新。
优选地,在多通道中,任意第i个通道的初始负载权重W0i=Wi*M;其中,Wi表示第i个通道的负载权重因子,M表示通道初始化系数M。
优选地,当接收到发包请求时,所述构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个通道按对应负载权重占有不同的子样本空间,具体为:
获取可用通道信息进行通道过滤,以便将当前不可用通道的负载权重过滤掉;
优选地,在所述根据通道带宽比例配置各通道的初始负载权重之前或之后,所述方法还包括:根据通道带宽比例配置各通道的负载权重因子,并对各通道的负载权重因子求和计算得到总配置负载权重值;
在所述完成该通道的负载权重更新之后,所述方法还包括:
在已发送负载权重上累加数据包长对应的负载权重扣减因子;
比较已发送负载权重与总配置负载权重值的大小,如果已发送负载权重≥总配置负载权重值,则在各通道的负载权重上增加对应通道的负载权重因子完成更新,并在已发送负载权重上扣减总配置负载权重值。
优选地,所述数据包长对应的负载权重扣减因子Wp根据发送的数据包长、基准包长以及基准负载权重扣减因子Wp0计算得到,具体为:Wp=Wp0*(数据包长/基准包长)。
优选地,在进行配置时,各通道的初始负载权重大于等于最大数据包长对应的负载权重扣减因子;其中,最大数据包长对应的负载权重扣减因子=Wp0*(最大数据包长/基准包长)。
优选地,如果通道的负载权重在更新后高于权重溢出上门限,则触发通道权重上溢保护,将该通道的负载权重设置为与所述权重溢出上门限相等;
如果通道的负载权重在更新后低于权重溢出下门限,则触发通道权重下溢保护,将该通道的负载权重设置为与所述权重溢出下门限相等。
优选地,当存在超过预设数量的通道触发通道权重上溢保护或权重下溢保护时,触发通道权重初始化,使各通道的负载权重恢复为对应初始值。
按照本发明的另一方面,提供了一种基于多通道协议的负载均衡装置,其特征在于,包括权重配置模块、通道过滤模块、权重计算模块、随机数生成模块和通道选择模块;
所述权重配置模块用于对各通道的负载权重因子、各通道的初始负载权重、基准包长对应的基准负载权重扣减因子、权重溢出上门限和权重溢出下门限进行配置;
通道过滤模块用于获取可用通道信息进行通道过滤,进而将当前不可用的通道过滤掉;
所述权重计算模块用于在接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个通道按对应负载权重占有不同的子样本空间;并对各通道的负载权重和已发送负载权重进行更新;
所述随机数生成模块用于生成随机数并对随机数进行处理,使输出的随机数的取值范围在所述动态样本空间内;
所述通道选择模块用于根据随机数所在的子样本空间选择对应通道发送数据包。
优选地,还包括权重溢出保护模块,用于根据权重溢出上门限对各通道的负载权重进行上溢保护,以及根据权重溢出下门限对各通道的负载权重进行下溢保护。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明基于通道带宽比例为各通道分配不同的负载权重,可在不同带宽的通道间实现负载均衡;选择通道发送数据包后,在通道的负载权重上扣减数据包长对应的负载权重扣减因子,可针对不同包长的数据包在各通道间实现负载均衡;另外,根据各可用通道负载权重和构建动态样本空间,并根据随机数对应的子样本空间选择发送通道,可实时调整每个通道的随机概率,在各通道间实现良好的负载均衡效果。综上所述,本发明提供的负载均衡方法在可变包长、不同带宽通道和可变路由的复杂场景下,均能实现良好的负载均衡效果。
附图说明
图1是本发明实施例提供的一种基于多通道协议的负载均衡方法的流程图;
图2是本发明实施例提供的另一种基于多通道协议的负载均衡方法的流程图;
图3是本发明实施例提供的一种动态样本空间和子样本空间在调度中各通道的负载权重变化示例图;
图4是本发明实施例提供的一种基于多通道协议的负载均衡装置结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
为解决传统方法只能实现相同包长数据包、相同带宽通道、全通道可用场景和可用通道不变场景下负载均衡的技术问题,本发明实施例提供了一种基于多通道协议的负载均衡方法,如图1所示,主要包括以下步骤:
步骤101,根据通道带宽比例配置各通道的初始负载权重,并配置基准包长对应的基准负载权重扣减因子。
假设以n表示通道总数量,以W0i表示任意第i个通道的负载权重,i∈[1,N],则需要根据通道带宽比例配置n个通道的负载权重W01、W02、...、W0n的初始值,即初始负载权重。在可选的实施例中,以Wi表示任意第i个通道的负载权重因子,也可根据通道带宽比例配置n个通道的负载权重因子W1、W2、...、Wn以及通道初始化系数M(通常大于1),则各通道的初始负载权重可通过对应负载权重因子Wi与通道初始化系数M相乘计算得到,即W0i=Wi*M。上述两种方法都可以得到各通道的初始负载权重,但通过配置负载权重因子Wi和通道初始化系数M需要进行计算才能得到初始负载权重,因此为了方便操作,优选采用直接配置通道的负载权重W0i初始值的方法。
同时,配置基准包长对应的基准负载权重扣减因子Wp0,以便后续选择某个通道发送数据包后,在该通道的负载权重上扣减数据包长对应的负载权重扣减因子。其中,所述数据包长对应的负载权重扣减因子Wp根据发送的数据包长、基准包长以及基准负载权重扣减因子Wp0计算得到,即Wp=Wp0*(数据包长/基准包长)。因此,在配置各通道的初始负载权重时,无论采用哪种方法,均需保证各通道的初始负载权重大于等于最大数据包长对应的负载权重扣减因子;其中,最大数据包长对应的负载权重扣减因子=Wp0*(最大数据包长/基准包长)。
步骤102,当接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个可用通道按对应负载权重占有不同的子样本空间。
结合前述介绍可知,在通信系统中,到达不同目的地的路由是不一样的,或者到达一个目的地的路由经常发生变更,因此发送数据的可用通道是经常变化的。在这种可变路由的场景下,步骤102的具体实现过程如下:当接收到发包请求时,首先获取可用通道信息进行通道过滤,以便将当前不可用的通道过滤掉,仅保留当前可用通道;然后根据当前各可用通道的负载权重和构造动态样本空间S,以当前n个通道全部可用为例,以W0i表示n个可用通道中任意第i个通道的负载权重,则有 最后根据每个可用通道的负载权重大小,确定每个可用通道对应占有的子样本空间Si,使得其中Si表示n个可用通道中任意第i个通道占有的子样本空间,动态样本空间S为各子样本空间Si的加和。由此,最终得到n个可用通道对应占有的子样本空间分别为:
[0,W01)、[W01,W01+W02)、[W01+W02,W01+W02+W03)、...、[W01+W02+W03+...+W0n-1,W01+W02+W03+...+W0n)。
在上述实施例中,动态样本空间S以及各子样本空间Si的区间范围均为左闭右开的形式,但并不用以限制本发明;在可选的实施例中,也可设计成左开右闭的形式,即 保证动态样本空间S为各子样本空间Si的加和即可,在此不做赘述。
步骤103,在动态样本空间内取一随机数,根据随机数所在的子样本空间选择对应通道发送数据包,并在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,完成该通道的负载权重更新。
在动态样本空间S内取一随机数,当随机数落在其中某个通道的子样本空间内时,选择该通道发送数据包。由于选择了该通道进行数据包发送,为实现通道间的负载均衡,需要根据发送的数据包长对该通道的负载权重进行扣减,即在该通道的负载权重上扣减数据包长对应的负载权重扣减因子Wp,从而完成该通道的负载权重更新。
当下一次收到发包请求时,需要根据各可用通道最新的负载权重求和,然后构造动态样本空间,不断重复循环步骤102和103,不断随机选取发送通道,实现各通道负载均衡。考虑到重复循环若干次对通道负载权重进行扣减后,通道的负载权重可能会扣减为0或为负,此时就会影响通道选择,无法实现长时间工作,因此需要定时对通道的负载权重重新进行初始化操作,即恢复为初始负载权重,避免负载权重扣减为0或负。或者,也可以设置一个较小的负载权重下门限值,当超过预设数量的通道负载权重低于所述负载权重下门限值时,触发对各通道的负载权重进行初始化,从而保证各通道的长时间工作。
需要说明的是,为方便计算,本发明实施例中所涉及的负载权重、负载权重因子、基准包长对应的基准负载权重扣减因子、数据包长对应的负载权重扣减因子、随机数等均取整;其中,数据包长对应的负载权重扣减因子Wp取整的方式为:Wp=Wp0*{(数据包长/基准包长)向上取整}。
本发明实施例提供的上述负载均衡方法中,采用了基于通道带宽的负载权重和基于数据包长的负载权重扣减因子,构建了一个动态样本空间,并根据随机数对应的子样本空间选择发送通道,更新通道权重值,不断重复该过程实现负载均衡。由于使用了通道带宽和数据包长对应的权重因子来更新通道的负载权重,所以在可变包长和多带宽的复杂场景下,都具有良好的负载均衡效果;同时,本方法在具有相同包长、相同带宽情况下也同样有良好的负载均衡效果。
另外,由步骤102可知,每次接收到发包请求时,都会先获取可用通道信息进行通道过滤,将当前不可用的通道过滤掉,然后基于当前所有可用通道的负载权重构造动态样本空间和子样本空间,这就充分考虑可用通道经常变化的情况;因此在可变路由的场景下,本方法的各通道间也能实现良好的负载均衡效果。
实施例2
在上述实施例1的基础上,本发明实施例从两个方面对负载均衡方法进一步优化:一是每次在选择通道发送数据包之后统计已发送的数据量,每当已发送数据量超过某个预设门限值时,重新下发一次授权,即重新配置一次各通道的负载权重,从而维持总授权的基本稳定。二是对各通道的负载权重进行溢出保护,即每次更新通道的负载权重之后,如果某个通道的负载权重过高或过低,则触发权重溢出保护;具体地,如果通道的负载权重在更新后高于权重溢出上门限,则触发通道权重上溢保护,将该通道的负载权重设置为与所述权重溢出上门限相等;如果通道的负载权重在更新后低于权重溢出下门限,则触发通道权重下溢保护,将该通道的负载权重设置为与所述权重溢出下门限相等,从而改善各可用通道的负载均衡效果。
如图2所示,本发明实施例提供的负载均衡方法主要包括以下步骤:
步骤201,根据通道带宽比例配置各通道的负载权重因子,同时配置各通道的初始负载权重或通道初始化系数,配置基准包长对应的基准负载权重扣减因子,并对各通道的负载权重因子求和得到总配置负载权重值。
配置各通道的负载权重因子Wi以及计算总配置负载权重值Wsum均是为了后续重新配置各通道的负载权重时使用,总配置负载权重值 对各通道的初始负载权重以及基准负载权重扣减因子Wp0的配置原则可参考实施例1中的步骤101,在此不做赘述。其中,配置各通道的负载权重因子Wi之后,可以直接配置各通道的初始负载权重,也可以配置一个通道初始化系数M,通过W0i=Wi*M计算得到各通道的初始负载权重。
步骤202,当接收到发包请求时,获取可用通道信息进行通道过滤,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个可用通道按对应负载权重占有不同的子样本空间。具体实现过程可参考实施例1中的步骤102,在此不做赘述。
步骤203,在动态样本空间内取一随机数,根据随机数所在的子样本空间选择对应通道发送数据包,并在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,在已发送负载权重上累加数据包长对应的负载权重扣减因子。
其中,已发送负载权重即表示已发送数据量,初始为0,后续不断按照本次数据包长对应的负载权重扣减因子进行累加,所述数据包长对应的负载权重扣减因子Wp根据发送的数据包长、基准包长以及基准负载权重扣减因子Wp0计算得到,即Wp=Wp0*(数据包长/基准包长)。
步骤204,比较已发送负载权重与总配置负载权重值的大小,即判断是否有已发送负载权重≥总配置负载权重值。如果已发送负载权重≥总配置负载权重值,则执行步骤205;如果已发送负载权重<总配置负载权重值,则跳转至步骤202,等待下一次发包。
步骤205,在各通道负载权重上增加对应的负载权重因子,并在已发送负载权重上扣减总配置负载权重值。
如果已发送负载权重≥总配置负载权重值,代表到目前为止已发送数据量已经较多,此时需要重新下发一次授权以维持总授权的稳定性,具体是在各通道负载权重上分别增加对应的负载权重因子,并在已发送负载权重上扣减掉前面增加的这部分负载权重因子,也就是扣减掉总配置负载权重值。
通过重复循环步骤202-205可不断选出发送通道,实现各通道负载均衡。
如果需要进行权重溢出保护,则步骤201中还需要根据实际情况配置权重溢出上门限和权重溢出下门限,每次在步骤203中对通道的负载权重进行扣减后,还需要判断完成扣减后的负载权重是否低于权重溢出下门限;每次在步骤205中对通道的负载权重进行增加后,还需要判断完成增加后的负载权重是否高于权重溢出上门限。如果通道的负载权重在扣减数据包长对应的负载权重扣减因子后低于权重溢出下门限,则触发通道权重下溢保护,将该通道的负载权重设置为与所述权重溢出下门限相等,实现通道下溢保护。如果通道的负载权重在增加对应的负载权重因子后高于权重溢出上门限,则触发通道权重上溢保护,将该通道的负载权重设置为与所述权重溢出上门限相等,实现通道上溢保护。
通道上溢保护是为了防止通道之前因为不可用而积累过多权重,在变为可用时发生巨大流量突发的情况;通道下溢保护是为了防止通道发送数据过多时通道的负载权重扣减后出现零值或负值,进而在其他通道不可用或拥塞时减轻系统拥塞。这两种保护都可以改善短时间内各可用通道的负载均衡效果。更进一步地,当存在超过预设数量的通道触发通道权重上溢保护或触发通道权重下溢保护时,还可触发通道权重初始化,使各通道的负载权重恢复为对应初始值,从而使系统更好地工作。
实施例3
本发明实施例以通道总数量N=4、初始时配置通道初始化系数M而非各通道的初始负载权重为例,动态样本空间S以及各子样本空间Si的区间范围均采用左闭右开的形式,结合图3进一步对实施例1和实施例2中的负载均衡方法具体说明:
1)初始化:
根据通道带宽比例配置各通道的负载权重因子W1、W2、W3、W4,同时配置通道初始化系数M,配置基准包长对应的基准负载权重扣减因子Wp0。各通道的初始负载权重分别为:W01=W1*M、W02=W2*M、W03=W3*M、W04=W4*M,总配置负载权重值Wsum=W1+W2+W3+W4。
2)通道0发包:
当接收到发包请求时,获取可用通道信息进行通道过滤,假设此时所有通道可用,则构造一个大小为所有4个可用通道的负载权重和的动态样本空间S以及每个可用通道根据其负载权重大小占有的子样本空间S1、S2、S3、S4(分别对应图3中通道0、1、2、3,即第1、第2、第3、第4通道),分别如下:
S=[0,(W1+W2+W3+W4)*M);
S1=[0,W1*M);
S2=[W1*M,W1*M+W2*M);
S3=[W1*M+W2*M,W1*M+W2*M+W3*M);
S4=[W1*M+W2*M+W3*M,W1*M+W2*M+W3*M+W4*M)。
在动态样本空间S内取一随机数,假设随机数落在通道0的子样本空间S1内时,即随机数∈[0,W01)时,则选中通道0作为发送数据通道。假设经计算得到此时数据包长对应的负载权重扣减因子为Wp1,则在通道0的负载权重上扣减Wp1,其余通道的负载权重不变,扣减后各通道的负载权重分别为:W01=W1*M-Wp1、W02=W2*M、W03=W3*M、W04=W4*M;同时在已发送负载权重(初始为0)上累加Wp1,累加后已发送负载权重=Wp1。
判断已发送负载权重Wp1≥总配置负载权重值Wsum是否成立,假设此处不成立,则继续执行上述过程。
3)通道2发包:
当接收到发包请求时,获取可用通道信息进行通道过滤,假设此时仍是所有通道可用,即当前可用通道并未发生变化,则构造一个大小为所有4个可用通道的负载权重和的动态样本空间S以及每个可用通道根据其负载权重大小占有的子样本空间S1、S2、S3、S4,分别如下:
S=[0,(W1+W2+W3+W4)*M-Wp1);
S1=[0,W1*M-Wp1);
S2=[W1*M-Wp1,W1*M+W2*M-Wp1);
S3=[W1*M+W2*M-Wp1,W1*M+W2*M+W3*M-Wp1);
S4=[W1*M+W2*M+W3*M-Wp1,W1*M+W2*M+W3*M+W4*M-Wp1]。
在动态样本空间S内取一随机数,假设随机数落在通道2的子样本空间S3内,即随机数∈S3,则选中通道2作为发送数据通道。假设经计算得到此时数据包长对应的负载权重扣减因子为Wp3,则在通道2的负载权重上扣减Wp3,其余通道的负载权重不变,扣减后各通道的负载权重分别为:W01=W1*M-Wp1、W02=W2*M、W03=W3*M-Wp3、W04=W4*M;同时在已发送负载权重上累加Wp3,累加后已发送负载权重=Wp1+Wp3。
4)下发负载权重:
判断已发送负载权重Wp1+Wp3≥总配置负载权重值Wsum是否成立,假设此处成立,则在各通道的负载权重上增加对应的负载权重因子,增加后各通道的负载权重分别为:W01=W1*M-Wp1+W1=W1*(M+1)-Wp1、W02=W2*M+W2=W2*(M+1)、W03=W3*M-Wp3+W3=W3*(M+1)-Wp3、W04=W4*M+W4=W4*(M+1);同时在已发送负载权重上扣减总配置负载权重值Wsum,扣减后已发送负载权重=Wp1+Wp3-Wsum。
5)通道1过滤:
当接收到发包请求时,获取可用通道信息进行通道过滤,假设此时通道1不可用被过滤,即当前可用通道发生变化,通道1由“可用”变为“不可用”,需要过滤掉;而其余通道未发生变化,仍为“可用”,被保留下来,则构造一个大小为当前所有可用通道(即除通道1以外的其他所有通道)的负载权重和的动态样本空间S以及每个可用通道根据其负载权重大小占有的子样本空间S1、S3、S4,分别如下:
S=[0,(W1+W3+W4)*(M+1)-Wp1-Wp3);
S1=[0,W1*(M+1)-Wp1);
S3=[W1*(M+1)-Wp1,W1*(M+1)+W3*(M+1)-Wp1-Wp3);
S4=[W1*(M+1)+W3*(M+1)-Wp1-Wp3,W1*(M+1)+W3*(M+1)+W4*(M+1)-Wp1-Wp3]。
随机数选择发送通道的过程和前述方法一致,不再赘述。
由上可知,每次接收到发包请求时,都会先将当前不可用的通道过滤掉,进而基于当前所有可用通道的负载权重构造动态样本空间和子样本空间,使得在可变路由的场景下,各通道间也能实现良好的负载均衡效果。
6)权重上下溢保护:
参考实施例2中介绍,如果某个通道的负载权重在更新后低于权重溢出下门限,则触发通道权重下溢保护,将该通道的负载权重设置为与所述权重溢出下门限相等,实现通道下溢保护。如果某个通道的负载权重在更新后高于权重溢出上门限,则触发通道权重上溢保护,将该通道的负载权重设置为与所述权重溢出上门限相等,实现通道上溢保护。更进一步地,当存在多个通道触发通道权重上溢保护或触发通道权重下溢保护时,还可触发通道权重初始化,使各通道的负载权重恢复为对应初始值,从而使系统更好地工作。
实施例4
为实现实施例1-实施例3中的负载均衡方法,进而解决传统方法只能实现相同包长数据包、相同带宽通道、全通道可用场景和可用通道不变场景下负载均衡的技术问题,本发明实施例提供了一种基于多通道协议的负载均衡装置,如图4所示,包括权重配置模块、通道过滤模块、权重计算模块、随机数生成模块、通道选择模块和权重溢出保护模块。其中,所述权重计算模块分别与所述权重配置模块、所述通道过滤模块、所述通道选择模块和所述权重溢出保护模块连接,所述随机数生成模块与所述通道选择模块连接。各模块的功能具体如下:
所述权重配置模块用于对各通道的负载权重因子、各通道的初始负载权重或通道初始化系数、基准包长对应的基准负载权重扣减因子、权重溢出上门限和权重溢出下门限进行配置。其中,所述权重配置模块配置的各参数值可直接被所述权重计算模块调用,如图4所示。
通道过滤模块用于获取可用通道信息进行通道过滤,进而将当前不可用的通道过滤掉,仅保留当前可用的通道。
所述权重计算模块用于在接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个通道按对应负载权重占有不同的子样本空间;并对各通道的负载权重以及已发送负载权重进行计算更新,一方面是在选择通道发送数据包之后更新,另一方面是在已发送负载权重≥总配置负载权重值更新;其中,所述发包请求来自发包调度输入模块,当有数据包需要发送时,发包调度输入模块就会向所述权重计算模块发送发包请求。具体地,当选择某一通道发送数据包之后,所述权重计算模块在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,在已发送负载权重上累加数据包长对应的负载权重扣减因子;当已发送负载权重≥总配置负载权重值时,所述权重计算模块在各通道负载权重上增加对应的负载权重因子,并在已发送负载权重上扣减总配置负载权重值。其中,各样本空间的构建方法以及各权重值更具体的更新方法可参考实施例1-实施例3中的相关介绍,在此不做赘述。
所述通道选择模块用于根据随机数所在的子样本空间选择对应通道发送数据包,并发送通道标志给发包调度输出模块,使数据包经过指定的通道进行发送。其中,所述通道选择模块选出发送通道后,还会将结果反馈给所述权重计算模块,以便所述权重计算模块根据通道选择结果对各通道的负载权重以及已发送负载权重进行更新。
所述权重溢出保护模块用于根据权重溢出上门限对各通道的负载权重进行上溢保护,根据权重溢出下门限对各通道的负载权重进行下溢保护,具体的溢出保护过程可参考实施例2和实施例3,在此不做赘述。
通过本发明实施例提供的上述负载均衡装置,可基于通道带宽比例为各通道分配不同的负载权重,在不同带宽的通道间实现负载均衡;选择通道发送数据包后,在通道的负载权重上扣减数据包长对应的负载权重扣减因子,可针对不同包长的数据包在各通道间实现负载均衡;另外,根据各可用通道负载权重和构建动态样本空间,并根据随机数对应的子样本空间选择发送通道,可实时调整每个通道的随机概率,在可用通道和全通道间都有良好的负载均衡效果。因此,上述负载均衡装置在可变包长、不同带宽通道和可变路由的复杂场景下,均能实现良好的负载均衡效果。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于多通道协议的负载均衡方法,其特征在于,包括:
根据通道带宽比例配置各通道的初始负载权重,并配置基准包长对应的基准负载权重扣减因子;
当接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个可用通道按对应负载权重占有不同的子样本空间;
在动态样本空间内取一随机数,根据随机数所在的子样本空间选择对应通道发送数据包,并在该通道的负载权重上扣减数据包长对应的负载权重扣减因子,完成该通道的负载权重更新。
2.如权利要求1所述的基于多通道协议的负载均衡方法,其特征在于,在多通道中,任意第i个通道的初始负载权重W0i=Wi*M;其中,Wi表示第i个通道的负载权重因子,M表示通道初始化系数M。
4.如权利要求1所述的基于多通道协议的负载均衡方法,其特征在于,在所述根据通道带宽比例配置各通道的初始负载权重之前或之后,所述方法还包括:根据通道带宽比例配置各通道的负载权重因子,并对各通道的负载权重因子求和计算得到总配置负载权重值;
在所述完成该通道的负载权重更新之后,所述方法还包括:
在已发送负载权重上累加数据包长对应的负载权重扣减因子;
比较已发送负载权重与总配置负载权重值的大小,如果已发送负载权重≥总配置负载权重值,则在各通道的负载权重上增加对应通道的负载权重因子完成更新,并在已发送负载权重上扣减总配置负载权重值。
5.如权利要求1或4所述的基于多通道协议的负载均衡方法,其特征在于,所述数据包长对应的负载权重扣减因子Wp根据发送的数据包长、基准包长以及基准负载权重扣减因子Wp0计算得到,具体为:Wp=Wp0*(数据包长/基准包长)。
6.如权利要求5所述的基于多通道协议的负载均衡方法,其特征在于,在进行配置时,各通道的初始负载权重大于等于最大数据包长对应的负载权重扣减因子;其中,最大数据包长对应的负载权重扣减因子=Wp0*(最大数据包长/基准包长)。
7.如权利要求4所述的基于多通道协议的负载均衡方法,其特征在于,如果通道的负载权重在更新后高于权重溢出上门限,则触发通道权重上溢保护,将该通道的负载权重设置为与所述权重溢出上门限相等;
如果通道的负载权重在更新后低于权重溢出下门限,则触发通道权重下溢保护,将该通道的负载权重设置为与所述权重溢出下门限相等。
8.如权利要求7所述的基于多通道协议的负载均衡方法,其特征在于,当存在超过预设数量的通道触发通道权重上溢保护或权重下溢保护时,触发通道权重初始化,使各通道的负载权重恢复为对应初始值。
9.一种基于多通道协议的负载均衡装置,其特征在于,包括权重配置模块、通道过滤模块、权重计算模块、随机数生成模块和通道选择模块;
所述权重配置模块用于对各通道的负载权重因子、各通道的初始负载权重、基准包长对应的基准负载权重扣减因子、权重溢出上门限和权重溢出下门限进行配置;
通道过滤模块用于获取可用通道信息进行通道过滤,进而将当前不可用的通道过滤掉;
所述权重计算模块用于在接收到发包请求时,构造一个大小为当前各可用通道负载权重和的动态样本空间,使每个通道按对应负载权重占有不同的子样本空间;并对各通道的负载权重和已发送负载权重进行更新;
所述随机数生成模块用于生成随机数并对随机数进行处理,使输出的随机数的取值范围在所述动态样本空间内;
所述通道选择模块用于根据随机数所在的子样本空间选择对应通道发送数据包。
10.如权利要求9所述的基于多通道协议的负载均衡装置,其特征在于,还包括权重溢出保护模块,用于根据权重溢出上门限对各通道的负载权重进行上溢保护,以及根据权重溢出下门限对各通道的负载权重进行下溢保护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011078087.6A CN112087397B (zh) | 2020-10-10 | 2020-10-10 | 一种基于多通道协议的负载均衡方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011078087.6A CN112087397B (zh) | 2020-10-10 | 2020-10-10 | 一种基于多通道协议的负载均衡方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112087397A CN112087397A (zh) | 2020-12-15 |
CN112087397B true CN112087397B (zh) | 2022-03-25 |
Family
ID=73731192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011078087.6A Active CN112087397B (zh) | 2020-10-10 | 2020-10-10 | 一种基于多通道协议的负载均衡方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112087397B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101312464B (zh) * | 2008-07-11 | 2012-06-13 | 烽火通信科技股份有限公司 | 一种在自动交换光网络中实现负载均衡的方法 |
WO2012006595A2 (en) * | 2010-07-09 | 2012-01-12 | Nicolas Girard | Transparent proxy architecture for multi-path data connections |
CN105337860B (zh) * | 2014-06-23 | 2018-10-30 | 华为技术有限公司 | 一种数据包传输路径的确定方法、装置及系统 |
CN105743786B (zh) * | 2016-03-04 | 2019-03-22 | 北京邮电大学 | 一种软件定义无线网络映射方法及装置 |
CN107332729A (zh) * | 2017-06-16 | 2017-11-07 | 西安万像电子科技有限公司 | 可用带宽的测量方法和装置 |
-
2020
- 2020-10-10 CN CN202011078087.6A patent/CN112087397B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112087397A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | On path selection for traffic with bandwidth guarantees | |
US4475192A (en) | Data packet flow control scheme for switching networks | |
EP0568477B1 (en) | Method and apparatus for optimum path selection in packet transmission networks | |
JP3347926B2 (ja) | メモリ割り付けを改善したパケット通信システム及び方法 | |
EP1170908A2 (en) | Apportioning bandwidth capacity in communication switching systems | |
JP4959970B2 (ja) | ギガビット受動光ネットワークの厳密優先度重み付けラウンドロビンスケジューリング機構 | |
CN102238068B (zh) | 一种报文的传输方法和系统 | |
CN113543209B (zh) | 一种基于令牌调度的拥塞控制方法及装置 | |
CN109586785B (zh) | 基于k最短路径算法的低轨卫星网络路由策略 | |
CN104348751B (zh) | 虚拟输出队列授权管理方法及装置 | |
Qian et al. | A novel radio admission control scheme for multiclass services in LTE systems | |
Oida et al. | An agent-based routing system for QoS guarantees | |
US6249819B1 (en) | Method for flow controlling ATM traffic | |
CN100583808C (zh) | 在具有通信量分布的分组网中将分布权重分配给连接段 | |
CN112005528B (zh) | 一种数据交换方法、数据交换节点及数据中心网络 | |
CN112087397B (zh) | 一种基于多通道协议的负载均衡方法与装置 | |
CN111294406B (zh) | 软件定义网络控制器混合映射方法 | |
EP1158732A2 (en) | Improvements in or relating to packet switching | |
Shao et al. | Scheduling heavy-tailed data traffic over the wireless internet | |
US7039011B1 (en) | Method and apparatus for flow control in a packet switch | |
KR20090108520A (ko) | 네트워크에서 파일을 분배하는 방법 | |
Alonso et al. | On the use of priorities in ATM switching structures | |
JP5795972B2 (ja) | 通信装置および通信方法 | |
Dangi et al. | Performance based mixed bias efficient algorithms for wireless mesh networks with multiple gateway | |
Wang et al. | Load Balancing Routing Algorithm for LEO Satellite Networks Based on Ant Colony Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |