CN103117947B - 一种负载分担方法及装置 - Google Patents

一种负载分担方法及装置 Download PDF

Info

Publication number
CN103117947B
CN103117947B CN201310032141.7A CN201310032141A CN103117947B CN 103117947 B CN103117947 B CN 103117947B CN 201310032141 A CN201310032141 A CN 201310032141A CN 103117947 B CN103117947 B CN 103117947B
Authority
CN
China
Prior art keywords
public network
cpu
address
user
network address
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
Application number
CN201310032141.7A
Other languages
English (en)
Other versions
CN103117947A (zh
Inventor
王�锋
陈贵香
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201310032141.7A priority Critical patent/CN103117947B/zh
Publication of CN103117947A publication Critical patent/CN103117947A/zh
Priority to US14/763,276 priority patent/US9332067B2/en
Priority to BR112015017876-6A priority patent/BR112015017876B1/pt
Priority to RU2015133461A priority patent/RU2613528C2/ru
Priority to EP13872335.8A priority patent/EP2942914B1/en
Priority to AU2013375618A priority patent/AU2013375618B2/en
Priority to PCT/CN2013/083587 priority patent/WO2014114097A1/zh
Application granted granted Critical
Publication of CN103117947B publication Critical patent/CN103117947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2532Clique of NAT servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种负载分担方法,以地址池形式配置公网地址;接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各个中央处理器CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;其中,每个地址池包括多个地址块,每个地址块对应一个CPU;每个用户组包括多个用户块,每个用户块对应一个CPU。本发明还同时公开了一种负载分担装置,采用本发明所述方法及装置,能够解决在多个CPU上的公网地址资源以及用户端设备负载分担不均问题,既能提高CPU处理地址转换的速度,又能实现较好的负载分担效果。

Description

一种负载分担方法及装置
技术领域
本发明涉及网络通信中的负载分担技术,尤其涉及一种负载分担方法及装置。
背景技术
网络地址转换(NAT,NetworkAddressTranslation)是一种将私有地址转化为合法因特网协议(IP,InternetProtocol)地址的转换技术,它被广泛应用于各种类型的国际互联网(Internet)接入方式和各种类型的网络中。NAT可以使多台私网计算机共享Internet连接,很好地解决公共IP地址资源紧缺的问题。
运营商级网络地址转换(CGN,CarrierGradeNAT)是一种在运营商中部署的设备,通过集成包括隧道和NAT在内的多种演进机制,来改善互联网协议第4版(IPv4,InternetProtocolVersion4)和互联网协议第6版(IPv6,InternetProtocolVersion6)的平滑过渡和推进演进过程。CGN的转换形式有:私网IPv4到公网IPv4地址、私网IPv4到IPv6地址、IPv6到公网IPv4地址等。为了提高CGN的性能,目前多采用独立的处理单元,处理单元可以为单核处理单元或多核处理单元,多核处理单元目前采用负载分担的形式,使得多核处理单元的中央处理器(CPU,CentralProcessingUnit)性能达到最优。
负载分担包括公网地址资源的负载分担和用户端设备的负载分担,为了使公网地址资源和用户端设备的分配达到均衡负载分担的效果,可以采用哈希(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三个地址池,CPU1和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在第三次公网地址分配过程中分配到的公网地址数为0或1。
所述将剩余的公网地地址进行单独处理为:将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,以使各个CPU对应的公网地址数基本相同;
这里,之所以对所述剩余的公网地址按整体来处理,是因为,如果地址A、地址池B、地址池C中剩余的公网地址数为1,若每个地址池均把剩余的1个公网地址数分配给CPUA;那么,CPUA承担的负荷较重,若把剩余的公网地址作为一个整体进行公网地址分配,那么地址池A可以把该地址池剩余的一个公网地址分配给CPUA,地址池B可以把该地址池剩余的一个公网地址分配给CPUB,地址池C可以把该地址池剩余的一个公网地址分配给CPUC;如此,能够使各个CPU分配的公网地址数更加均衡。
如图2所示,每个地址池都对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个公网地址资源数据链的节点与一个CPU相对应;每个节点包括块标记和尾标记,其中,所述块标记,用于记录与本节点对应的CPU首次分配的地址块及地址块数,以及,用于记录与本节点对应的CPU二次分配的地址块及地址块数;
所述尾标记,用于记录与本节点对应的CPU从第三次分配中获得的公网地址数,且从第三次分配中获得的公网地址数为0或1,也就是说,每个节点的尾标记为0或1。
这里,所述地址池以地址块为单位,且所述地址块大小可变;所述地址块大小表示每个地址块中包含的公网地址的数量;首次分配的地址块大小与二次分配的地址块大小不同;
其中,所述首次分配为:将当前地址池的公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU;其中,首次分配的地址块大小为CPU的个数,每个CPU含有的地址块数为地址池内公网地址总数除以CPU数平方的整数值,以使每个CPU含有的地址块的个数相同;
这里需要指明的是,此处首次分配的地址块大小,与CPU个数、地址池内公网地址总数等多个变量相关,因此,可将首次分配的地址块大小设为一个函数变量,所述首次分配的地址块大小可有多种变通方式。
所述二次分配为:若首次分配后还有公网地址剩余,则将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU;其中,二次分配的地址块为首次分配后剩余的公网地址总数整除CPU数的整数值,每个CPU含有的二次分配的地址块的个数均为1;
若二次分配后还有公网地址剩余,则将剩余的公网地址进行单独处理;所述将剩余的公网地地址进行单独处理为:将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,使各个CPU对应的公网地址数基本相同;每个CPU在分配过程中最多分配一个公网地址,即:每个CPU在此次分配过程中分配到的公网地址数为0或1。
具体的,所有地址池可以由一个数据链表维护,每个链表节点对应所有地址池、且对应一个CPU,链表节点数为CPU数,每个链表节点包含块和标记、尾和标记;
这里,每个链表节点的块和标记,用于记录各个地址池中与所述CPU相对应的首次分配与二次分配的公网地址总数之和;即:用于记录各个地址池中与其相对应的CPU首次分配地址块数与地址块的乘积之和,以及,用于记录与其相对应的CPU的二次分配的地址块数与地址块的乘积之和;
每个链表节点的尾和标记,用于记录各个地址池中与所述CPU相对应的尾标记之和。
所述数据链表,用于对在哪个CPU上增加或删除公网地址进行判断,如果要增加公网地址,优先对尾和标记小的节点所对应的CPU进行增加,如果要删除公网地址,优先对尾和标记大的节点所对应的CPU进行删除,以保证公网地址分配以及CPU负载的均衡;
具体的,对单个地址池进行维护时,如果要增加公网地址,优先对尾标记为0的节点所对应的CPU进行增加,如果要随机删除公网地址,优先对尾标记为1的所对应的CPU进行删除;
所述对单个地址池进行维护时,如果要增加公网地址,优先对尾标记为0的节点所对应的CPU进行增加,如果要随机删除公网地址,优先对尾标记为1的所对应的CPU进行删除,包括:
若地址池增加公网地址,则将所述二次分配后剩余的公网地址与增加的公网地址合并,将合并后的公网地址重新进行首次分配和二次分配;
若地址池删除的公网地址数为1,则搜索预删除的公网地址所在的节点,检查该节点的尾标记是否为1,如果为1,则删除所述公网地址,并将所述节点的尾标记由1更新为0;如果该节点的尾标记不为1,则执行若地址池删除的公网地址数>首次分配的地址块时的操作;
若1<地址池删除的公网地址数≤首次分配的地址块,如果预删除的公网地址分布在不同的节点,且分布所述预删除的公网地址的节点的尾标记均为1,则删除所述预删除的公网地址,并将分布所述预删除的公网地址的节点的尾标记由1更新为0;如果预删除的公网地址未完全分布在不同的节点上,或者分布所述预删除的公网地址的节点的尾标记不全为1,则执行若地址池删除的公网地址数>首次分配的地址块时的操作;
若地址池删除的公网地址数>首次分配的地址块,则根据地址池原来的公网地址总数与预删除的公网地址数的差值,重新对公网地址进行分配。
举例来说:如果只配置一个地址池,且该地址池所对应的公网地址总数为97,下面分别给出只有一个CPU或有两个CPU--CPUA、CPUB情况下,公网地址资源数据链的生成和更新情况。
只有一个CPU时,地址块大小为97,地址块数为1;公网地址资源数据链的尾标记为0;
两个CPU时,地址块大小为2,设所述两个CPU所对应的节点为A和B;则CPUA对应的节点包括块标记A和尾标记A;CPUB包括块标记B和尾标记B;首次分配时,每个CPU所分配的地址块大小为2、地址块数为24;剩余1个地址,做二次分配。公网地址分配完后,块标记A和块标记B的地址块大小都为2,地址块数都为24,尾标记A为1,尾标记B为0;
此时,如果删除一个公网地址,且预删除的公网地址在CPUA中,那么删除该公网地址,且将尾标记A修改为0;如果删除两个公网地址,但预删除的两个公网地址都在CPUA上,则重新进行公网地址分配,即新的地址块大小为2,首次分配时,CPUA、CPUB的地址块大小均为2,地址块数均为23;二次分配时,CPUA、CPUB的地址块大小均为1,地址块数均为1;尾标记A为1,尾标记B为0。
由上可知,公网地址资源在不同的CPU上是负载均衡的,地址数相差最大为1,且不受处理单元个数的影响;这里,每个处理单元可以包含不同个数的CPU,用户数据链的生成和更新类似,不再赘述。
在实际应用中,对用户端设备进行分组,如图3所示,将一定时间间隔内发送流量的所有用户端设备,根据所述用户端设备发送的流量模型对用户端设备进行分组;这里,各个用户组中包含的用户端设备总数可以不同,但是,每个CPU对应多个用户组,各个CPU在每个用户组中对应的用户端设备数基本相同。对于每个用户组,选择一个用户组后,实现各个CPU对应的用户端设备数基本相同的方法为:
先进行首次分配,将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU;若还有用户端设备剩余,再进行二次分配,将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU;若还有用户端设备剩余,则进行单独处理;所述将剩余的用户端设备进行单独处理为:将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同;每个CPU在分配过程中最多分配1个用户端设备,即:每个CPU在第三次分配过程中分配到的用户端设备数为0或1。
这里,所述用户组以一定时间间隔为单位进行划分。
图3为本发明实施例用户数据示意图;如图3所示,将一定时间间隔内发送流量的用户终端分成多个用户组;每一个用户组都对应一个用户数据链,所述用户数据链的节点数为CPU数;所述用户数据链的节点与各个CPU相对应;每一个节点包括块标记和尾标记,其中,
所述块标记,用于记录与本节点对应的CPU的首次分配的用户块及用户块数,以及,用于记录与本节点对应的CPU的二次分配的用户块及用户块数;
所述尾标记,用于记录与本节点对应的CPU从第三次分配中获得的用户端设备数,且从第三次分配中获得的用户端设备数为0或1。
这里,所述用户组以用户块为单位,且所述用户块大小可变;所述用户块大小表示每个用户块中包含的用户端设备数;首次分配的用户块大小与二次分配的用户块大小不同;
其中,所述首次分配为:将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU;其中,首次分配的用户块大小为CPU的个数,每个CPU含有的用户块数为用户组内用户端设备总数除以CPU数平方的整数值,以使每个CPU分配的用户块的个数相同;
所述二次分配为:若首次分配后还有用户端设备剩余,则将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU;其中,二次分配的用户块为首次分配后剩余的用户端设备总数整除CPU数的整数值,每个CPU二次分配的用户块的个数均为1。
若二次分配后还有用户端设备剩余,则进行单独处理;所述将剩余的用户端设备进行单独处理为:将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同;每个CPU在分配过程中最多分配一个用户端设备,也就是说,每个CPU在第三次分配过程中分配到的用户端设备数为0或1。
具体的,所有用户组可以由一个用户组数据链表维护,每个链表节点对应所有用户组、且对应一个CPU,链表节点数为CPU数,每个链表节点包含块和标记、尾和标记;其中,如果要增加用户端设备,则将以一定时间为单位为所述预增加的用户端设备划分为新的用户组;如果要删除用户端设备,优先对尾和标记大的节点所对应的CPU进行删除。
每个链表节点的块和标记,用于记录各个用户组中与所述CPU相对应的首次分配与二次分配的用户端设备总数之和;即:用于记录各个地址池中与其相对应的CPU首次分配用户块数与用户块的乘积之和,以及,用于记录与其相对应的CPU的二次分配的用户块数与用户块的乘积之和。
每个链表节点的尾和标记,用于记录各个用户组中与所述CPU相对应的尾标记之和。
所述用户组数据链表,用于对在哪个CPU上删除用户端设备进行判断,如果要删除用户端设备,优先对尾和标记大的节点所对应的CPU进行删除;具体的,对单个用户组进行维护时,如果要随机删除用户端设备,优先对尾标记为1的所对应的CPU进行删除。
所述对单个地址池进行维护时,如果要随机删除用户端设备,优先对尾标记为1的所对应的CPU进行删除,包括:
若用户组删除的用户端设备数为1,则搜索预删除的用户端设备所在的节点,检查该节点的尾标记是否为1,如果为1,则删除所述用户端设备,并将所述节点的尾标记由1更新为0;如果该节点的尾标记不为1,则执行用户组删除的户端设备数>首次分配的用户块时的操作;
若1<用户组删除的户端设备数≤首次分配的用户块,如果预删除的用户端设备分布在不同的节点,且分布所述预删除的用户端设备的节点的尾标记均为1,则删除所述预删除的用户端设备,并将分布所述预删除的用户端设备的节点的尾标记由1更新为0;如果预删除的用户端设备没有分布在不同的节点上,或者分布所述预删除的用户端设备的节点的尾标记不全为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-liteCGN、NAT44、Brasnat44、NAT64等;用户端设备对应的私网地址可以为私网IPv4、IPv6等;CGN设备为多业务处理单元,每个处理单元包含多个CPU。
如图5所示,首先,负载分担配置模块以地址池形式配置公网地址,并将公网地址资源分担到CGN设备中不同处理单元的CPU上;其中,地址池的个数可根据实际需要进行设置。同时,可以配置用户的类型,所述用户的类型为用户端设备对应的私网地址类型;用户端设备也是采用动态的负载分担的形式分流,即:将用户端设备分担到不同的CPU上;由负载分担控制模块生成负载分担标记表,并将标记表信息发送到相应CPU;经过上述处理后,每个CPU分担的公网地址数,是基本均衡的;每个CPU所处理的用户端设备的数目,也是基本均衡的。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (8)

1.一种负载分担方法,其特征在于,所述方法包括:
以地址池形式配置公网地址;
接收到用户端设备发送的流量后,根据所述用户端设备发送的流量模型对用户端设备进行分组,由各个中央处理器CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;
其中,每个地址池包括多个地址块,每个地址块对应一个CPU;每个用户组包括多个用户块,每个用户块对应一个CPU;
所述方法还包括:
根据地址池对应的公网地址资源数据链生成公网地址资源负载分担标记表,根据用户组对应的用户数据链生成用户端设备负载分担标记表;所述地址资源数据链根据配置的地址池生成;所述用户数据链根据配置的用户组生成;其中,所述公网地址资源数据链是指用于记录各个CPU在各地址池中分配到的公网地址情况的链表结构;所述用户数据链是指用于包括用户端设备负载情况的链表结构;
根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息发送给CPU;
相应的,所述CPU为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换为:
所述CPU根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;
其中,在对用户端设备分组时,尽量使各个CPU分担的用户端设备数基本相同,以保证CPU的负载均衡;CPU为用户端设备分配的公网地址来自于各地址池中与自身对应的公网地址;其中,每个CPU对应多个地址池,各个CPU在每个地址池中对应的公网地址数要基本相同。
2.根据权利要求1所述的方法,其特征在于,所述各个CPU在每个地址池中对应的公网地址数基本相同;具体实现方法为:
将当前地址池的公网地址总数除以CPU数平方的整数值与CPU数的乘积个公网地址分配给各个CPU;若还有公网地址剩余,则将剩余的公网地址除以CPU数的整数值个公网地址分配给各个CPU;若还有公网地址剩余,则将各个地址池中所述剩余的公网地址作为一个整体进行公网地址分配,使各个CPU对应的公网地址数基本相同。
3.根据权利要求1所述的方法,其特征在于,所述各个CPU分担的用户端设备数基本相同;具体实现方法为:
将当前用户组的用户端设备总数除以CPU数平方的整数值与CPU数的乘积个用户端设备分配给各个CPU;若还有用户端设备剩余,则将剩余的用户端设备除以CPU数的整数值个用户端设备分配给各个CPU;若还有用户端设备剩余,则将各个用户组中剩余的用户端设备作为一个整体进行用户端设备分配,使各个CPU分配的用户端设备数基本相同。
4.根据权利要求1至3任一项所述的方法,其特征在于,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU;每个节点分为块标记和尾标记。
5.根据权利要求1至3任一项所述的方法,其特征在于,每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU;每个节点包括块标记、尾标记。
6.一种负载分担装置,其特征在于,所述装置包括负载分担配置模块、负载分担控制模块、CPU;其中,
所述负载分担配置模块,用于以地址池形式配置对公网地址;根据用户端设备发送的流量模型对用户端设备进行分组;
其中,每个地址池包括多个地址块,每个地址块对应一个CPU;每个用户组包括多个用户块,每个用户块对应一个CPU;
所述负载分担控制模块,将负载分担控制信息发送给CPU;
所述CPU,用于根据收到的负载分担控制信息为用户端设备分配公网地址,并为用户端设备的私网地址做公网地址转换;其中,在对用户端设备分组时,尽量使各个CPU分担的用户端设备数基本相同,以保证CPU的负载均衡;CPU为用户端设备分配的公网地址来自于各地址池中与自身对应的公网地址;其中,每个CPU对应多个地址池,各个CPU在每个地址池中对应的公网地址数要基本相同;
所述负载分担控制模块,具体用于根据公网地址资源数据链生成公网地址资源负载分担标记表;以及,根据用户数据链生成用户端设备负载分担标记表;并将根据公网地址资源负载分担标记表和用户端设备负载分担标记表生成的负载分担控制信息下发到CPU;其中,所述公网地址资源数据链是指用于记录各个CPU在各地址池中分配到的公网地址情况的链表结构;所述用户数据链是指用于包括用户端设备负载情况的链表结构。
7.根据权利要求6所述的装置,其特征在于,每个地址池对应一个公网地址资源数据链,所述公网地址资源数据链的节点数为CPU数,且每个节点对应一个CPU;每个节点分为块标记和尾标记;
每个用户组对应一个用户数据链,所述用户数据链的节点数为CPU数,且每个节点对应一个CPU;每个节点包括块标记、尾标记。
8.根据权利要求6所述的装置,其特征在于,所述负载分担配置模块、负载分担控制模块设置于CGN设备中。
CN201310032141.7A 2013-01-28 2013-01-28 一种负载分担方法及装置 Active CN103117947B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201310032141.7A CN103117947B (zh) 2013-01-28 2013-01-28 一种负载分担方法及装置
US14/763,276 US9332067B2 (en) 2013-01-28 2013-09-16 Load sharing method and apparatus
BR112015017876-6A BR112015017876B1 (pt) 2013-01-28 2013-09-16 Método de partilha de carga e dispositivo de partilha de carga
RU2015133461A RU2613528C2 (ru) 2013-01-28 2013-09-16 Способ и устройство для разделения нагрузки
EP13872335.8A EP2942914B1 (en) 2013-01-28 2013-09-16 Load sharing method and apparatus
AU2013375618A AU2013375618B2 (en) 2013-01-28 2013-09-16 Load sharing method and apparatus
PCT/CN2013/083587 WO2014114097A1 (zh) 2013-01-28 2013-09-16 一种负载分担方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310032141.7A CN103117947B (zh) 2013-01-28 2013-01-28 一种负载分担方法及装置

Publications (2)

Publication Number Publication Date
CN103117947A CN103117947A (zh) 2013-05-22
CN103117947B true CN103117947B (zh) 2016-06-29

Family

ID=48416225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310032141.7A Active CN103117947B (zh) 2013-01-28 2013-01-28 一种负载分担方法及装置

Country Status (7)

Country Link
US (1) US9332067B2 (zh)
EP (1) EP2942914B1 (zh)
CN (1) CN103117947B (zh)
AU (1) AU2013375618B2 (zh)
BR (1) BR112015017876B1 (zh)
RU (1) RU2613528C2 (zh)
WO (1) WO2014114097A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117947B (zh) * 2013-01-28 2016-06-29 中兴通讯股份有限公司 一种负载分担方法及装置
CN104426794B (zh) * 2013-08-23 2018-06-26 华为技术有限公司 一种报文转发方法及装置
EP3189681A4 (en) * 2014-09-02 2017-07-19 Telefonaktiebolaget LM Ericsson (publ) Method and system for handling a traffic flow between local service clouds
CN105791448B (zh) * 2014-12-18 2019-10-25 华为技术有限公司 一种地址分配方法、cgn设备及cgn双主系统
CN108259632B (zh) * 2017-05-24 2020-02-11 新华三技术有限公司 一种cgn实现方法及装置
CN109067667B (zh) * 2018-07-13 2022-03-18 哈尔滨工程大学 一种基于报文分类的动态负载均衡方法
CN109218219A (zh) * 2018-10-15 2019-01-15 迈普通信技术股份有限公司 一种负载均衡方法、装置、网络设备及存储介质
CN109639580B (zh) * 2019-02-03 2021-05-14 新华三信息安全技术有限公司 一种报文转发方法及装置
CN109787914B (zh) * 2019-03-28 2022-07-01 新华三技术有限公司 负载分担方法、装置及网络设备
CN110086727B (zh) * 2019-04-30 2022-07-01 新华三技术有限公司 一种cgn板间负载分担方法及装置
CN113472676B (zh) * 2020-03-31 2024-09-06 华为技术有限公司 一种网络接入控制方法、sdf、cp、up以及网络系统
CN112104565B (zh) * 2020-09-15 2024-03-29 东软集团股份有限公司 一种实现报文转发的方法、系统及设备
CN115766652A (zh) * 2021-09-01 2023-03-07 华为技术有限公司 网络地址转换的方法和装置
CN116192806A (zh) * 2023-01-13 2023-05-30 北京信而泰科技股份有限公司 一种基于测试仪的ip分配方法、系统、终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553341A (zh) * 2003-06-08 2004-12-08 华为技术有限公司 基于客户端的网络地址分配方法
CN101227398A (zh) * 2008-01-31 2008-07-23 中兴通讯股份有限公司 网络地址转换的自动调整应用的系统及方法
CN102694873A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 一种地址池分配系统及方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888836B1 (en) * 1999-05-26 2005-05-03 Hewlett-Packard Development Company, L.P. Method for allocating web sites on a web hosting cluster
US7127504B2 (en) * 2002-11-21 2006-10-24 Sun Microsystems, Inc. System and method of applying power laws in optimizing network traffic
RU2387002C2 (ru) * 2003-06-30 2010-04-20 Майкрософт Корпорейшн Выравнивание сетевой нагрузки с помощью управления соединением
US7430614B2 (en) * 2003-10-31 2008-09-30 Redback Networks, Inc. Use of IP address blocks with default interfaces in a router
KR20060115876A (ko) 2003-11-18 2006-11-10 에어 브로드밴드 커뮤니케이션스, 인코포레이티드 모바일 환경에서의 dhcp 풀 공유 매커니즘
KR100929914B1 (ko) * 2007-12-18 2009-12-04 한국전자통신연구원 애드 혹 네트워크를 위한 동적 주소 할당 방법
US20100223466A1 (en) * 2009-02-27 2010-09-02 Third Iris Corp Shared scalable server to control confidental event traffic among recordation terminals, analysis engines, and a storage farm coupled via a public network
US20110235788A1 (en) * 2010-03-01 2011-09-29 Mary Jesse Method and system for efficient use of address resources within an automated communications system
US8560658B2 (en) * 2010-03-23 2013-10-15 Juniper Networks, Inc. Managing distributed address pools within network devices
US8289968B1 (en) 2010-10-27 2012-10-16 Juniper Networks, Inc. Distributed network address translation in computer networks
US8429257B2 (en) * 2011-03-03 2013-04-23 Verizon Patent And Licensing Inc. Optimizing use of internet protocol addresses
CN102158569A (zh) * 2011-06-02 2011-08-17 杭州华三通信技术有限公司 一种基于地址转换的数据传输方法及其设备
US9137198B2 (en) * 2011-10-21 2015-09-15 Hewlett-Packard Development Company, L.P. Centralized configuration with dynamic distributed address management
CN102594933B (zh) 2011-12-20 2015-04-08 华为技术有限公司 一种公网地址分配的方法、装置及系统
CN102821165B (zh) * 2012-04-13 2016-08-03 中兴通讯股份有限公司 Ip地址转换方法及装置
CN103117947B (zh) 2013-01-28 2016-06-29 中兴通讯股份有限公司 一种负载分担方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553341A (zh) * 2003-06-08 2004-12-08 华为技术有限公司 基于客户端的网络地址分配方法
CN101227398A (zh) * 2008-01-31 2008-07-23 中兴通讯股份有限公司 网络地址转换的自动调整应用的系统及方法
CN102694873A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 一种地址池分配系统及方法

Also Published As

Publication number Publication date
WO2014114097A1 (zh) 2014-07-31
EP2942914A1 (en) 2015-11-11
CN103117947A (zh) 2013-05-22
RU2613528C2 (ru) 2017-03-16
RU2015133461A (ru) 2017-03-06
US20150373094A1 (en) 2015-12-24
EP2942914B1 (en) 2019-01-02
AU2013375618A1 (en) 2015-08-13
EP2942914A4 (en) 2016-03-02
US9332067B2 (en) 2016-05-03
BR112015017876A2 (pt) 2017-07-11
AU2013375618B2 (en) 2016-05-05
BR112015017876B1 (pt) 2022-09-27

Similar Documents

Publication Publication Date Title
CN103117947B (zh) 一种负载分担方法及装置
CN108924268B (zh) 一种容器云服务系统及pod创建方法、装置
CN102882973B (zh) 基于p2p技术的分布式负载均衡系统和方法
CN112965824A (zh) 报文的转发方法及装置、存储介质、电子设备
US9602331B2 (en) Shared interface among multiple compute units
CN109729115B (zh) 实现分布式计算的方法、装置、代理服务器、终端设备
US20120185487A1 (en) Method, device and system for publication and acquisition of content
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
US20220166715A1 (en) Communication system and communication method
CN106131244A (zh) 一种报文传送方法及装置
CN104954155B (zh) 具有多个业务板的网络设备以及多业务板分担方法
CN114050998A (zh) 实现远程直接内存访问的方法、装置、电子设备及介质
US9628439B2 (en) Systems and methods for managing network address information
US20170195261A1 (en) Apparatus and method for virtual switching
CN102572012A (zh) 一种消息处理方法、交换机及系统
CN104333612A (zh) 转换网络地址的方法和装置
CN105306387A (zh) 一种分区方法及设备
CN114827781B (zh) 网络协同方法、装置、设备及存储介质
CN103051544A (zh) 实现IPv4私网接入IPv6网络的方法及接入设备
US10791088B1 (en) Methods for disaggregating subscribers via DHCP address translation and devices thereof
CN105357332A (zh) 一种网络地址转换方法及装置
CN104506668A (zh) 一种独享云主机的路由配置方法及装置
CN104092558A (zh) 多处理器设备的ip配置方法及多处理器设备
CN110519169B (zh) 一种应用层复用网络报文头部的方法
CN114553879A (zh) 分布式任务处理方法、系统及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant