一种负载分担方法及装置的制作方法

文档序号:7551289阅读:104来源:国知局
专利名称:一种负载分担方法及装置的制作方法
技术领域
本发明涉及网络通信中的负载分担技术,尤其涉及一种负载分担方法及装置。
背景技术
网络地址转换(NAT, Network Address Translation)是一种将私有地址转化为合法因特网协议(IP,Internet Protocol)地址的转换技术,它被广泛应用于各种类型的国际互联网(Internet)接入方式和各种类型的网络中。NAT可以使多台私网计算机共享Internet连接,很好地解决公共IP地址资源紧缺的问题。运营商级网络地址转换(CGN, Carrier Grade NAT)是一种在运营商中部署的设备,通过集成包括隧道和NAT在内的多种演进机制,来改善互联网协议第4版(IPv4,Internet Protocol Version4)和互联网协议第 6版(IPv6, Internet Protocol Version6)的平滑过渡和推进演进过程。CGN的转换形式有:私网IPv4到公网IPv4地址、私网IPv4到IPv6地址、IPv6到公网IPv4地址等。为了提高CGN的性能,目前多采用独立的处理单元,处理单元可以为单核处理单元或多核处理单元,多核处理单元目前采用负载分担的形式,使得多核处理单元的中央处理器(CPU, Central Processing Unit)性能达到最优。负载分担包括公网地址资源的负载分担和用户端设备的负载分担,为了使公网地址资源和用户端设备的分配达到均衡负载分担的效果,可以采用哈希(HASH)的方式把公网地址资源随机的散列到不同CPU,但是,如果以单个公网地址资源进行散列,对CGN的转发单元和处理单元的性能要求较高;如果以固定公网地址块进行散列,随着CGN的处理单元个数的不同,以及各个处理单元中包含的CPU的个数的不同,CGN进行地址转换的性能差距较大,且存在负载分担较差的问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种负载分担方法及装置,能解决NAT在多个CPU上负载分担不均的问题。为达到上述目的,本发明的技术方案是这样实现的:本发明提供了一种负载分担方法,所述方法包括:以地址池形式配置公网地址;接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各个CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;每个用户组包括多个用户块,每个用户块对应一个CPU。上述方案中,所述方法还包括:根据地址池对应的地址资源数据链生成公网地址资源负载分担标记表,根据用户组对应的用户数据链生成用户端设备负载分担标记表;所述地址资源数据链根据配置的地址池生成;所述用户数据链根据配置的用户组生成;根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息发送给CPU ;相应的,所述CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换为:所述CPU根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。上述方案中,所述各个CPU在每个地址池中对应的公网地址数基本相同;具体实现方法为:将当前地址池的公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU ;若还有公网地址剩余,则将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU;若还有公网地址剩余,则将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,使各个CPU对应的公网地址数基本相同。上述方案中,所述各个CPU分担的用户端设备数基本相同;具体实现方法为:将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU ;若还有用户端设备剩余,则将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU ;若还有用户端设备剩余,则将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同。上述方案中,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点分为块标记和尾标记。上述方案中,每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点包括块标记、尾标记。本发明还提供了一种负载分担装置,所述装置包括负载分担配置模块、负载分担控制模块、CPU ;其中,所述负载分担配置模块,用于以地址池形式配置对公网地址;根据所述用户端设备发送的流量模型对用户端设备进行分组;其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;每个用户组包括多个用户块,每个用户块对应一个CPU ;所述负载分担控制模块,将负载分担控制信息发送给CPU ;所述CPU,用于根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。上述方案中,所述负载分担控制模块,具体用于根据公网地址资源数据链生成公网地址资源负载分担标记表;以及,根据用户数据链生成用户端设备负载分担标记表;并将根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息下发到CPU。上述方案中,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点分为块标记和尾标记;每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点包括块标记、尾标记。
上述方案中,所述负载分担配置模块、负载分担控制模块设置于CGN设备中。本发明所提供的负载分担方法及装置,对公网地址以地址池的形式进行配置,以使各个CPU在每个地址池中对应的公网地址数基本相同;接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,使各个CPU分担的用户端设备数基本相同;并由各个CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。如此,解决了 NAT在不同CPU上的公网地址资源和用户端设备负载分担不均问题,同时也减小了部分公网地址资源和用户端设备的增删对CGN整体性能的影响问题。本发明的技术方案,既能提高CPU处理地址转换的速度,又能实现在不同CPU负载均衡的效果。


图1为本发明负载分担方法的实现流程示意图;图2为本发明实施例公网地址资源数据链结构示意图;图3为本发明实施例用户数据链示意图;图4为本发明负载分担装置的组成结构示意图;图5为本发明实施例CGN的负载分担的示意图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。图1为负载分担方法的实现流程示意图,如图1所示,该包括以下步骤:步骤101:以地址池形式配置公网地址;其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;本发明中,设置有多个地址池,地址池的数目可以根据实际需要确定;每个地址池中包括若干个公网地址,每个地址池中含有的公网地址数可以相同,也可以不同;且每个地址池中均包括对应每个CPU的公网地址,各个CPU在每个地址池中对应的公网地址数基本相同;举个例子来说,有地址池A、地址池B、地址池C三个地址池,CPUl和CPU2两个CPU,十二个公网地址,这里,地址池A、B、C中含有的公网地址数可灵活配置,也就是说,地址池
A、地址池B、地址池C中含有的公网地址数可不一样,比如:地址池A含有八个公网地址,地址池B含有三个公网地址,地址池C含有一个公网地址;理想情况下,地址池A、地址池B、地址池C各自会包括四个公网地址,且每个地址池中有两个公网地址对应CPU1、两个公网地址对应CPU2。步骤102:接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;其中,每个用户组包括多个用户块,每个用户块对应一个CPU ;所述流量模型可以是现有传输技术中所采用的流量模型。这里,在对用户端设备分组时,尽量使各个CPU分担的用户端设备数基本相同,以保证CPU的负载均衡;CPU为用户端设备分配的公网地址来自于各地址池中与自身对应的公网地址;
具体的,所述CPU根据负载分担控制信息为用户端设备分配公网地址;其中,所述负载分担控制信息包括:根据公网地址资源数据链生成的公网地址资源负载分担标记表,根据用户数据链生成的用户端设备负载分担标记表;这里,所述公网地址资源数据链是指用于记录各个CPU在各地址池中分配到的公网地址情况的链表结构;用户数据链是指用于包括用户端设备负载情况的链表结构。在实际应用中,以地址池形式配置公网地址如图2所示,将预配置的所有公网地址以地址池的形式进行划分;这里,各个地址池中包含的公网地址总数可以相同,也可以不同;但是,每个CPU对应多个地址池,各个CPU在每个地址池中对应的公网地址数要基本相同。具体的,对于每个地址池,选择一个地址池后,实现各个CPU对应的公网地址数基本相同的方法为:先进行首次公网地址分配,将当前地址池的公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU ;若还有公网地址剩余,再进行二次公网地址分配,将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU ;若还有公网地址剩余,则将所述剩余的公网地址进行单独处理;但是,每个CPU在分配过程中最多分配一个公网地址,即:每个CPU在第三次公网地址分配过程中分配到的公网地址数为O或I。所述将剩余的公网地地址进行单独处理为:将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,以使各个CPU对应的公网地址数基本相同;这里,之所以对所述剩余的公网地址按整体来处理,是因为,如果地址A、地址池
B、地址池C中剩余的公网地址数为1,若每个地址池均把剩余的I个公网地址数分配给CPUA;那么,CPU A承担的负荷较重,若把剩余的公网地址作为一个整体进行公网地址分配,那么地址池A可以把该地址池剩余的一个公网地址分配给CPU A,地址池B可以把该地址池剩余的一个公网地址分配给CPU B,地址池C可以把该地址池剩余的一个公网地址分配给CPUC ;如此,能够使各个CPU分配的公网地址数更加均衡。如图2所示,每个地址池都对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个公网地址资源数据链的节点与一个CPU相对应;每个节点包括块标记和尾标记,其中,所述块标记,用于记录与本节点对应的CPU首次分配的地址块及地址块数,以及,用于记录与本节点对应的CPU 二次分配的地址块及地址块数;所述尾标记,用于记录与本节点对应的CPU从第三次分配中获得的公网地址数,且从第三次分配中获得的公网地址数为O或1,也就是说,每个节点的尾标记为O或I。这里,所述地址池以地址块为单位,且所述地址块大小可变;所述地址块大小表示每个地址块中包含的公网地址的数量;首次分配的地址块大小与二次分配的地址块大小不同;其中,所述首次分配为:将当前地址池的公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU ;其中,首次分配的地址块大小为CPU的个数,每个CPU含有的地址块数为地址池内公网地址总数除以CPU数平方的整数值,以使每个CPU含有的地址块的个数相同;这里需要指明的是,此处首次分配的地址块大小,与CPU个数、地址池内公网地址总数等多个变量相关,因此,可将首次分配的地址块大小设为一个函数变量,所述首次分配的地址块大小可有多种变通方式。
所述二次分配为:若首次分配后还有公网地址剩余,则将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU ;其中,二次分配的地址块为首次分配后剩余的公网地址总数整除CPU数的整数值,每个CPU含有的二次分配的地址块的个数均为I ;若二次分配后还有公网地址剩余,则将剩余的公网地址进行单独处理;所述将剩余的公网地地址进行单独处理为:将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,使各个CPU对应的公网地址数基本相同;每个CPU在分配过程中最多分配一个公网地址,即:每个CPU在此次分配过程中分配到的公网地址数为O或I。具体的,所有地址池可以由一个数据链表维护,每个链表节点对应所有地址池、且对应一个CPU,链表节点数为CPU数,每个链表节点包含块和标记、尾和标记;这里,每个链表节点的块和标记,用于记录各个地址池中与所述CPU相对应的首次分配与二次分配的公网地址总数之和;即:用于记录各个地址池中与其相对应的CPU首次分配地址块数与地址块的乘积之和,以及,用于记录与其相对应的CPU的二次分配的地址块数与地址块的乘积之和;每个链表节点的尾和标记,用于记录各个地址池中与所述CPU相对应的尾标记之和。所述数据链表,用于对在哪个CPU上增加或删除公网地址进行判断,如果要增加公网地址,优先对尾和标记小的节点所对应的CPU进行增加,如果要删除公网地址,优先对尾和标记大的节点所对应的CPU进行删除,以保证公网地址分配以及CPU负载的均衡;具体的,对单个地址池进行维护时,如果要增加公网地址,优先对尾标记为O的节点所对应的CPU进行增加,如果要随机删除公网地址,优先对尾标记为I的所对应的CPU进行删除;所述对单个地址池进行维护时,如果要增加公网地址,优先对尾标记为O的节点所对应的CPU进行增加,如果要随机删除公网地址,优先对尾标记为I的所对应的CPU进行删除,包括:若地址池增加公网地址,则将所述二次分配后剩余的公网地址与增加的公网地址合并,将合并后的公网地址重新进行首次分配和二次分配;若地址池删除的公网地址数为1,则搜索预删除的公网地址所在的节点,检查该节点的尾标记是否为1,如果为1,则删除所述公网地址,并将所述节点的尾标记由I更新为O ;如果该节点的尾标记不为1,则执行若地址池删除的公网地址数 > 首次分配的地址块时的操作;若1〈地址池删除的公网地址数<首次分配的地址块,如果预删除的公网地址分布在不同的节点,且分布所述预删除的公网地址的节点的尾标记均为1,则删除所述预删除的公网地址,并将分布所述预删除的公网地址的节点的尾标记由I更新为O ;如果预删除的公网地址未完全分布在不同的节点上,或者分布所述预删除的公网地址的节点的尾标记不全为1,则执行若地址池删除的公网地址数 > 首次分配的地址块时的操作;若地址池删除的公网地址数 > 首次分配的地址块,则根据地址池原来的公网地址总数与预删除的公网地址数的差值,重新对公网地址进行分配。举例来说:如果只配置一个地址池,且该地址池所对应的公网地址总数为97,下面分别给出只有一个CPU或有两个CPU—CPU AXPU B情况下,公网地址资源数据链的生成和更新情况。只有一个CPU时,地址块大小为97,地址块数为I ;公网地址资源数据链的尾标记为O ;两个CPU时,地址块大小为2,设所述两个CPU所对应的节点为A和B;则CPU A对应的节点包括块标记A和尾标记A ;CPU B包括块标记B和尾标记B ;首次分配时,每个CPU所分配的地址块大小为2、地址块数为24 ;剩余I个地址,做二次分配。公网地址分配完后,块标记A和块标记B的地址块大小都为2,地址块数都为24,尾标记A为I,尾标记8为0;此时,如果删除一个公网地址,且预删除的公网地址在CPUA中,那么删除该公网地址,且将尾标记A修改为O ;如果删除两个公网地址,但预删除的两个公网地址都在CPU A上,则重新进行公网地址分配,即新的地址块大小为2,首次分配时,CPU A、CPU B的地址块大小均为2,地址块数均为23 ;二次分配时,CPU A、CPU B的地址块大小均为I,地址块数均为I ;尾标记A为I,尾标记B为O。由上可知,公网地址资源在不同的CPU上是负载均衡的,地址数相差最大为1,且不受处理单元个数的影响;这里,每个处理单元可以包含不同个数的CPU,用户数据链的生成和更新类似,不再赘述。在实际应用中,对用户端设备进行分组,如图3所示,将一定时间间隔内发送流量的所有用户端设备,根据所述用户端设备发送的流量模型对用户端设备进行分组;这里,各个用户组中包含的用户端设备总数可以不同,但是,每个CPU对应多个用户组,各个CPU在每个用户组中对应的用户端设备数基本相同。对于每个用户组,选择一个用户组后,实现各个CPU对应的用户端设备数基本相同的方法为:先进行首次分配,将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU ;若还有用户端设备剩余,再进行二次分配,将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU ;若还有用户端设备剩余,则进行单独处理;所述将剩余的用户端设备进行单独处理为:将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同;每个CPU在分配过程中最多分配I个用户端设备,即:每个CPU在第三次分配过程中分配到的用户端设备数为O或I。这里,所述用户组以一定时间间隔为单位进行划分。图3为本发明实施例用户数据示意图;如图3所示,将一定时间间隔内发送流量的用户终端分成多个用户组;每一个用户组都对应一个用户数据链,所述用户数据链的节点数为CPU数;所述用户数据链的节点与各个CPU相对应;每一个节点包括块标记和尾标记,其中,所述块标记,用于记录与本节点对应的CPU的首次分配的用户块及用户块数,以及,用于记录与本节点对应的CPU的二次分配的用户块及用户块数;所述尾标记,用于记录与本节点对应的CPU从第三次分配中获得的用户端设备数,且从第三次分配中获得的用户端设备数为O或I。这里,所述用户组以用户块为单位,且所述用户块大小可变;所述用户块大小表示每个用户块中包含的用户端设备数;首次分配的用户块大小与二次分配的用户块大小不同;
其中,所述首次分配为:将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU ;其中,首次分配的用户块大小为CPU的个数,每个CPU含有的用户块数为用户组内用户端设备总数除以CPU数平方的整数值,以使每个CPU分配的用户块的个数相同;所述二次分配为:若首次分配后还有用户端设备剩余,则将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU ;其中,二次分配的用户块为首次分配后剩余的用户端设备总数整除CPU数的整数值,每个CPU 二次分配的用户块的个数均为I。若二次分配后还有用户端设备剩余,则进行单独处理;所述将剩余的用户端设备进行单独处理为:将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同;每个CPU在分配过程中最多分配一个用户端设备,也就是说,每个CPU在第三次分配过程中分配到的用户端设备数为O或I。具体的,所有用户组可以由一个用户组数据链表维护,每个链表节点对应所有用户组、且对应一个CPU,链表节点数为CPU数,每个链表节点包含块和标记、尾和标记;其中,如果要增加用户端设备,则将以一定时间为单位为所述预增加的用户端设备划分为新的用户组;如果要删除用户端设备,优先对尾和标记大的节点所对应的CPU进行删除。每个链表节点的块和标记,用于记录各个用户组中与所述CPU相对应的首次分配与二次分配的用户端设备总数之和;即:用于记录各个地址池中与其相对应的CPU首次分配用户块数与用户块的乘积之和,以及,用于记录与其相对应的CPU的二次分配的用户块数与用户块的乘积之和。每个链表节点的尾和标记,用于记录各个用户组中与所述CPU相对应的尾标记之和。所述用户组数据链表,用于对在哪个CPU上删除用户端设备进行判断,如果要删除用户端设备,优先对尾和标记大的节点所对应的CPU进行删除;具体的,对单个用户组进行维护时,如果要随机删除用户端设备,优先对尾标记为I的所对应的CPU进行删除。所述对单个地址池进行维护时,如果要随机删除用户端设备,优先对尾标记为I的所对应的CPU进行删除,包括:若用户组删除的用户端设备数为1,则搜索预删除的用户端设备所在的节点,检查该节点的尾标记是否为1,如果为1,则删除所述用户端设备,并将所述节点的尾标记由I更新为O ;如果该节点的尾标记不为1,则执行用户组删除的户端设备数 > 首次分配的用户块时的操作;若I〈用户组删除的户端设备数<首次分配的用户块,如果预删除的用户端设备分布在不同的节点,且分布所述预删除的用户端设备的节点的尾标记均为1,则删除所述预删除的用户端设备,并将分布所述预删除的用户端设备的节点的尾标记由I更新为O ;如果预删除的用户端设备没有分布在不同的节点上,或者分布所述预删除的用户端设备的节点的尾标记不全为1,则执行用户组删除的户端设备数〉首次分配的用户块时的操作;若用户组删除的户端设备数 > 首次分配的用户块,则根据用户组原来的用户端设备总数与预删除的用户端设备数的差值,重新对用户端设备进行分配。由上可知,用户端设备资源在不同的CPU是负载均衡的,用户端设备数相差最大为1,用户数据链的生成和更新与公网地址资源数据链的生成和更新类似,不再赘述。
图4为本发明负载分担装置的组成结构示意图;如图4所示,所述装置包括负载分担配置模块41、负载分担控制模块42、CPU43 ;其中,所述负载分担配置模块41,用于以地址池形式配置公网地址;还用于根据所述用户端设备发送的流量模型对用户端设备进行分组;其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;每个用户组包括多个用户块,每个用户块对应一个CPU ;所述负载分担控制模块42,用于将负载分担控制信息发送给CPU43,以控制CPU进行负载分担;所述负载分担控制模块42,具体用于根据公网地址资源数据链生成公网地址资源负载分担标记表,根据用户数据链生成用户端设备负载分担标记表;并将根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息下发到CPU43 ;所述CPU43,用于根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。具体的,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点分为块标记和尾标记;每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点包括块标记、尾标记。实际应用中,所述负载分担配置模块41、负载分担控制模块42可以设置于CGN设备中。图5为本发明实施例CGN的负载分担的示意图,本实施例中,所述CGN设备的类型可以为Ds-1ite CGN、NAT44、Bras nat44、NAT64等;用户端设备对应的私网地址可以为私网IPv4、IPv6等;CGN设备为多业务处理单元,每个处理单元包含多个CPU。如图5所示,首先,负载分担配置模块以地址池形式配置公网地址,并将公网地址资源分担到CGN设备中不同处理单元的CPU上;其中,地址池的个数可根据实际需要进行设置。同时,可以配置用户的类型,所述用户的类型为用户端设备对应的私网地址类型;用户端设备也是采用动态的负载分担的形式分流,即:将用户端设备分担到不同的CPU上;由负载分担控制模块生成负载分担标记表,并将标记表信息发送到相应CPU ;经过上述处理后,每个CPU分担的公网地址数,是基本均衡的;每个CPU所处理的用户端设备的数目,也是基本均衡的。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种负载分担方法,其特征在于,所述方法包括: 以地址池形式配置公网地址; 接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各个中央处理器CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换; 其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;每个用户组包括多个用户块,每个用户块对应一个CPU。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 根据地址池对应的地址资源数据链生成公网地址资源负载分担标记表,根据用户组对应的用户数据链生成用户端设备负载分担标记表;所述地址资源数据链根据配置的地址池生成;所述用户数据链根据配置的用户组生成; 根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息发送给CPU ; 相应的,所述CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换为: 所述CPU根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。
3.根据权利要求1所述的方法,其特征在于,所述各个CPU在每个地址池中对应的公网地址数基本相同;具体实现方法为: 将当前地址池的 公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU ;若还有公网地址剩余,则将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU;若还有公网地址剩余,则将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,使各个CPU对应的公网地址数基本相同。
4.根据权利要求1所述的方法,其特征在于,所述各个CPU分担的用户端设备数基本相同;具体实现方法为: 将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU ;若还有用户端设备剩余,则将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU;若还有用户端设备剩余,则将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同。
5.根据权利要求1至4任一项所述的方法,其特征在于,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点分为块标记和尾标记。
6.根据权利要求1至4任一项所述的方法,其特征在于,每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点包括块标记、尾 己 O
7.一种负载分担装置,其特征在于,所述装置包括负载分担配置模块、负载分担控制模块、CPU ;其中, 所述负载分担配置模块,用于以地址池形式配置对公网地址;根据所述用户端设备发送的流量模型对用户端设备进行分组;其中,每个地址池包括多个地址块,每个地址块对应一个CPU ;每个用户组包括多个用户块,每个用户块对应一个CPU ; 所述负载分担控制模块,将负载分担控制信息发送给CPU ; 所述CPU,用于根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换。
8.根据权利要求7所述的装置,其特征在于,所述负载分担控制模块,具体用于根据公网地址资源数据链生成公网地址资源负载分担标记表;以及,根据用户数据链生成用户端设备负载分担标记表;并将根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息下发到CPU。
9.根据权利要求7或8所述的装置,其特征在于,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点分为块标记和尾标记; 每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU ;每个节点包括块标记、尾标记。
10.根据权利要求7或8所述的装置,其特征在于,所述负载分担配置模块、负载分担控制模块设置于 CGN设备中。
全文摘要
本发明公开了一种负载分担方法,以地址池形式配置公网地址;接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各个中央处理器CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;其中,每个地址池包括多个地址块,每个地址块对应一个CPU;每个用户组包括多个用户块,每个用户块对应一个CPU。本发明还同时公开了一种负载分担装置,采用本发明所述方法及装置,能够解决在多个CPU上的公网地址资源以及用户端设备负载分担不均问题,既能提高CPU处理地址转换的速度,又能实现较好的负载分担效果。
文档编号H04L12/803GK103117947SQ20131003214
公开日2013年5月22日 申请日期2013年1月28日 优先权日2013年1月28日
发明者王 锋, 陈贵香 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1