CN113132249A - 一种负载均衡方法和设备 - Google Patents
一种负载均衡方法和设备 Download PDFInfo
- Publication number
- CN113132249A CN113132249A CN201911417080.XA CN201911417080A CN113132249A CN 113132249 A CN113132249 A CN 113132249A CN 201911417080 A CN201911417080 A CN 201911417080A CN 113132249 A CN113132249 A CN 113132249A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- member port
- network device
- port
- mapping relationship
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- 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
-
- 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/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Abstract
本申请实施例公开了一种负载均衡方法和设备,网络设备对第一业务流进行哈希计算获得其对应的第一哈希值,根据第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定第一业务流的出端口为第一成员端口;该网络设备确定该第一成员端口当前的第一带宽,并根据该第一带宽,将第一映射关系调整为第一哈希值和第二成员端口之间的第二映射关系,从而采用该第二成员端口转发后续接收到的第一业务流。这样,能够克服目前链路聚合组中各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口更加合理且均衡的承载业务流,实现链路聚合组中各个成员端口的负载均衡,从而使网络设备能够满足高带宽的需求。
Description
技术领域
本申请涉及安全通信技术领域,特别是涉及一种负载均衡方法和设备,该方法用于存在链路聚合的网络场景中,对该链路聚合组中的多个成员端口进行负载均衡。
背景技术
网络设备通常具有多个物理端口,而由于单个物理端口能够承载的物理带宽有限,为了使得网络设备具有高带宽的能力,可以在网络设备上采用链路聚合的方式,即,将其上多个物理端口组成一个逻辑端口,该多个物理端口对应的多条物理链路可以称为一个链路聚合组,每个物理端口称为该链路聚合组的一个成员端口。由于该逻辑端口可承载的带宽为多个物理端口承载的物理带宽之和,例如:假设配置交换机上的10个10G带宽的物理端口汇聚为一个逻辑端口,那么,该逻辑端口具有100G的带宽,所以,网络设备采用链路聚合的方式能够实现高带宽的需求。
目前,网络设备通过链路聚合组转发业务流时,通常依据哈希值和链路聚合组中的成员端口之间固定的映射关系,确定该业务流对应的哈希值在链路聚合组中的成员端口,并利用所确定的该成员端口转发该业务流,导致链路聚合组中各成员端口的负载不均衡,从而使得该链路聚合组实际提供的带宽大大降低,链路聚合在网络设备上所发挥的作用大打折扣。
发明内容
基于此,本申请实施例提供了一种负载均衡方法和设备,通过链路聚合组中各成员端口的实际负载情况,动态的调整分担到各成员端口的负载,实现链路聚合组中各个成员端口的负载均衡,从而使得网络设备上链路聚合组能够提供尽可能高的带宽。
第一方面,提供了一种负载均衡方法,该方法应用网络设备上,该网络设备可以通过和另一网络设备之间的链路聚合组,向该另一网络设备转发业务流,该网络设备上进行负载均衡的过程具体可以包括:网络设备对所接收的第一业务流进行哈希计算,得到第一业务流对应的第一哈希值;该网络设备根据该第一哈希值以及第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定该第一业务流的出端口为第一成员端口;此时,该网络设备可以确定该第一成员端口当前的第一带宽,并根据该第一带宽将所述第一映射关系调整为第一哈希值和第二成员端口之间的映射关系,并采用该第二成员端口转发后续接收到的第一业务流。可见,通过本申请实施例提供的方法,在使用链路聚合的网络设备中,能够根据链路聚合组中各成员端口的实际承载的带宽情况,动态的调整各成员端口和哈希值的对应关系,克服了依据固定不变的哈希值和成员端口之间的映射关系转发业务流,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口可以按照调整后的映射关系进行业务流的负载分担,实现了链路聚合组中各个成员端口的负载均衡,从而使网络设备能够满足高带宽的需求。
在一些具体的实现方式中,第一成员端口满足第一条件时,将所述第一映射关系调整为所述第二映射关系。其中,该第一条件,用于表征链路聚合组中存在负载不均衡的状况,具体包括但不限于以下至少一项:所述第一带宽大于或者等于第一阈值;所述第一带宽占有率大于或者等于第二阈值,所述第一带宽占有率为所述第一带宽与所述链路聚合组对应的逻辑端口的带宽的比值;或者,所述第一带宽与所述第二带宽的差值与所述链路聚合组中单个成员端口的带宽的比值大于或者等于第三阈值,所述第二带宽为网络设备将所述第一映射关系调整为所述第二映射关系之前,所述第二成员端口的带宽。若第一条件包括上述三个中的至少两个,那么,满足任意一个可以视作满足第一条件,或者,全部满足才可以视作满足第一条件,具体可以根据实际需求进行灵活设计。而且,网络设备能够周期性的获取各成员端口的带宽,一旦发现某个成员端口满足预先配置的第一条件,则确定该链路聚合组存在负载不均衡的问题,需要通过本申请实施例提供的负载均衡方法进行处理,从而使得链路聚合组中各成员端口的负载达到相对均衡。
在另一些可能的实现方式中,当确定第一成员端口满足第一条件,需要对第一成员端口当前的第一带宽进行调整时,可以选择流量切换的目标成员端口,具体可以选择链路聚合组中当前带宽最小的成员端口,例如:本申请实施例中选择的目标成员端口为第二成员端口,而该第二成员端口为在网络设备将所述第一映射关系调整为所述第二映射关系之前,链路聚合组的各成员端口中当前带宽最小的成员端口。
在再一些具体的实现方式中,成员端口可以作为目标成员端口分担第一成员端口切出的带宽,还需要该目标成员端口满足第二条件。例如:当目标成员端口为第二成员端口时,该第二成员端口满足第二条件时网络设备才可以将第一映射关系调整为第二映射关系。该第二条件,用于表征能够为第一成员端口分担流量以改善链路聚合组中负载不均衡的状况,具体包括但不限于以下至少一项:第五带宽小于或等于第一阈值,所述第五带宽为所述网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽;所述第五带宽占有率小于或等于第二阈值,所述第五带宽为所述网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽,所述第五带宽占有率为所述第五带宽与所述链路聚合组对应的逻辑端口的带宽的比值;或者,所述第五带宽与所述第六带宽的差值与所述链路聚合组中单个成员端口的带宽的比值小于或等于第三阈值,所述第五带宽为网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽,所述第六带宽为网络设备将所述第一映射关系调整为所述第二映射关系之后所述第一成员端口的带宽。这样,确保将第一成员端口的不部分带宽分分担至第二成员端口后,第二成员端口当前的带宽还不会导致链路聚合组出现负载不均衡的问题,保证两个成员端口之间不会出现彼此往复调整而不能改善负载不均问题,使得该负载均衡方法更加有效。
在又一些可能的实现方式中,本申请实施例还可以包括:网络设备获取所述第一映射关系和第三映射关系,第一映射关系包括所述第一成员端口、所述第一哈希值和第一流量统计单元之间的映射关系,第三映射关系包括所述第一成员端口、第二哈希值和第二流量统计单元之间的映射关系,其中,所述第二哈希值为根据第二业务流进行哈希计算得到的哈希值;所述网络设备根据所述第一流量统计单元的统计结果确定所述第一业务流占用所述第一成员端口的第三带宽;所述网络设备根据所述第二流量统计单元的统计结果,确定所述第二业务流占用所述第一成员端口的第四带宽;所述网络设备根据所述第三带宽和所述第四带宽,确定所述第一带宽。其中,流量统计单元具体可以是计数器或者令牌桶,用于统计经过其对应的哈希值映射到其对应的成员端口,利用该成员端口转发的字节数。需要说明的是,在映射关系中增加与哈希值一一对应的流量统计单元,为同一成员端口的负载调整提供了更细的粒度,即,可以将映射到同一成员端口但是哈希值不同的业务流进行划分并选择性的切走部分流量,扩大了本申请实施例中对同一成员端口映射至少两个哈希值的作用,使得负载均衡效果更好。举例来说,第一映射关系,可以是指第一成员端口、第一哈希值与所述第一流量统计单元统计的第一成员端口带宽之间的映射关系;或者,也可以是第一成员端口、第一哈希值与第一流量统计单元的标识之间的映射,而网络设备通过所述第一流量单元的标识确定所述流量统计单元,进而确定所述第一流量统计单元的流量统计结果。
作为一个示例,当第一带宽满足第一条件时,第一成员端口对应第一映射关系和第三映射关系,那么,可以选择承载较大带宽的映射关系进行调整。一种情况下,如果根据所述第一流量统计单元的统计结果确定的第三带宽,大于根据所述第二流量统计单元的统计结果确定的第四带宽,则,选择将第一哈希值和第一成员端口之间的第一映射关系进行调整,从而影响后续对第一业务流的转发;另一种情况下,如果第三带宽小于第四带宽,则,选择将第二哈希值和第一成员端口之间的第三映射关系进行调整,从而影响后续对第二业务流的转发。如此,能够灵活的实现对第一成员端口上部分带宽对应的映射关系进行调整,使得链路聚合组快速的实现负载均衡。
作为一个具体的实现方式,本申请实施例还可以在调整映射关系之后,通过调整哈希算法的方式继续改善链路聚合组中的负载不均衡问题。具体可以包括:网络设备接收第三业务流,确定映射关系表中记录的转发所述第三业务流的出端口为所述链路聚合组中的第三成员端口,其中,该映射关系表中记录了第三哈希值与所述第三成员端口的映射关系,第三哈希值为通过第一哈希算法对所述第三业务流进行哈希计算得到的哈希值;接着,该网络设备确定所述第三成员端口当前的第七带宽大于或者等于第四阈值,则将所述第一哈希算法调整为第二哈希算法;那么,该网络设备即可根据所述第二哈希算法对所述第三业务流进行哈希计算,得到第四哈希值,并根据所述映射关系表中记录的所述第四哈希值与第四成员端口的映射关系,确定通过所述第四成员端口转发所述第三业务流。
其中,网络设备将所述第一哈希算法调整为第二哈希算法,包括但不限于下述方式的至少一种:调整所述第一业务流中至少一个特征参数的字节顺序;调整所述第一业务流中各特征参数的排列顺序;或,调整哈希因子的值。其中,特征参数包括所述第一业务流的目的地址DA、源地址SA、目的互联网协议地址DIP和源互联网协议地址SIP中的至少一个。
该实现方式下,作为一个示例,第三成员端口可以为所述第一成员端口;第四成员端口可以为所述第二成员端口。
可见,该实现方式下,在使用链路聚合的网络设备中,能够根据链路聚合组中各成员端口的实际承载的带宽情况,将两种动态的调整方式进行结合,既可以动态的调整映射关系中哈希值对应的成员端口;也可以动态的调整计算业务流的哈希值的哈希算法(例如:哈希因子的值),改变业务流对应的哈希值,从而原本映射到同一成员端口的多个业务流映射到不同的成员端口上。从而,通过该实现方式,克服了依据固定不变的计算业务流哈希值的哈希算法,以及哈希值和成员端口之间的确定好的映射关系,进行业务流转发,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口在一定程度上保持负载均衡成为可能,从而使网络设备能够满足高带宽的需求。
需要说明的是,本申请实施例中,也可以先执行通过调整计算业务流的哈希值的哈希算法实现负载均衡方法,再执行通过调整映射关系中哈希值对应的成员端口实现负载均衡的方法,两者之间的执行顺序在本实施例中不做具体限定,具体的执行顺序可以根据实际负载情况或者预先配置确定。
需要说明的是,本申请实施例中,对业务流进行哈希计算获得该业务流对应的哈希值,具体过程可以包括:提取业务流的特征参数,对特征参数(或特征参数和哈希因子)进行哈希计算,获得32位的哈希值;取32位哈希值的低N位,作为该业务流对应的哈希值,其中,N为正整数,链路聚合组包括的成员端口数量小于2的N次方。这样,确保每个成员端口至少有两个对应的哈希值,即,每个成员端口有至少两条对应的映射关系,使得执行本申请实施例进行负载均衡更加灵活和有效。
第二方面,提供了一种负载均衡方法,该方法应用网络设备上,该网络设备可以通过和另一网络设备之间的链路聚合组,向该另一网络设备转发业务流,该网络设备上进行负载均衡的过程具体可以包括:网络设备通过第一哈希算法对所接收的第一业务流进行哈希计算,得到第一业务流对应的第一哈希值;该网络设备根据映射关系表中记录的第一哈希值和链路聚合组中的第一成员端口之间的映射关系,确定该第一业务流的出端口为第一成员端口;此时,该网络设备可以确定该第一成员端口当前的第一带宽,在确定第一带宽大于或等于预设阈值时,将第一哈希算法调整为第二哈希算法;那么,该网络设备就通过第二哈希算法对后续再接收到第一业务流进行哈希计算,得到第二哈希值,该网络设备根据映射关系表中第二哈希值和链路聚合组中的第二成员端口之间的映射关系,确定通过第二成员端口转发该第一业务流。可见,通过本申请实施例提供的方法,在使用链路聚合的网络设备中,能够根据链路聚合组中各成员端口的实际承载的带宽情况,动态的调整计算业务流的哈希值的哈希算法(例如:哈希因子的值),改变业务流对应的哈希值,从而原本映射到同一成员端口的多个业务流映射到不同的成员端口上,克服了依据固定不变的计算业务流哈希值的哈希算法,以及哈希值和成员端口之间的确定好的映射关系,进行业务流转发,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口在一定程度上保持负载均衡成为可能,从而使网络设备能够满足高带宽的需求。
第三方面,本申请还提供了网络设备,包括收发单元和处理单元。其中,收发单元用于执行上述第一方面或第二方面提供的方法中的收发操作;处理单元用于执行上述第一方面或第二方面中除了收发操作以外的其他操作。例如:当所述网络设备执行所述第一方面所述的方法时,所述收发单元用于接收第一业务流,所述收发单元还用于采用第二成员端口转发第一业务流;所述处理单元用于对所接收的第一业务流进行哈希计算,得到第一业务流对应的第一哈希值;所述处理单元还用于根据该第一哈希值以及第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定该第一业务流的出端口为第一成员端口;所述处理单元还用于确定该第一成员端口当前的第一带宽;所述处理单元还用于根据该第一带宽将所述第一映射关系调整为第一哈希值和第二成员端口之间的映射关系。又例如:当所述网络设备执行所述第二方面所述的方法时,所述收发单元用于接收第一业务流,所述收发单元还用于采用第二成员端口转发第一业务流;所述处理单元用于通过第一哈希算法对所接收的第一业务流进行哈希计算,得到第一业务流对应的第一哈希值;所述处理单元还用于根据映射关系表中记录的第一哈希值和链路聚合组中的第一成员端口之间的映射关系,确定该第一业务流的出端口为第一成员端口;所述处理单元还用于确定该第一成员端口当前的第一带宽;所述处理单元还用于确定第一带宽大于或等于预设阈值时,将第一哈希算法调整为第二哈希算法;所述处理单元还用于通过第二哈希算法对后续再接收到第一业务流进行哈希计算,得到第二哈希值,其中该网络设备根据映射关系表中第二哈希值和链路聚合组中的第二成员端口之间的映射关系。
第四方面,本申请实施例还提供了一种网络设备,包括通信接口和处理器。其中,通信接口用于执行前述第一方面或第二方面提供的方法中的收发操作;处理器,用于执行前述第一方面或第二方面提供的方法中除所述收发操作以外的其他操作。
第五方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器。其中,存储器用于存储程序代码;处理器用于运行所述程序代码中的指令,使得该网络设备执行以上第一方面或第二方面提供的方法。
第六方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面或第二方面提供的所述的负载均衡方法。
第七方面,本申请实施例还提供了计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面或第二方面提供的所述的负载均衡方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景所涉及的网络系统框架示意图;
图2为本申请实施例中图1所示场景中一负载分担示例的示意图;
图3为本申请实施例中图1所示场景中PTN设备106的一结构示意图;
图4为本申请实施例中一种负载均衡方法100的流程示意图;
图5为本申请实施例中另一种负载均衡方法200的流程示意图;
图6为本申请实施例中一种第一哈希算法中哈希键值的示意图;
图7为本申请实施例中另一种第一哈希算法中哈希键值的示意图;
图8a为本申请实施例中一种第二哈希算法中哈希键值的示意图;
图8b为本申请实施例中另一种第二哈希算法中哈希键值的示意图;
图8c为本申请实施例中再一种第二哈希算法中哈希键值的示意图;
图9a为本申请实施例中又一种第二哈希算法中哈希键值的示意图;
图9b为本申请实施例中另一种第二哈希算法中哈希键值的示意图;
图10为本申请实施例中一种网络设备1000的结构示意图;
图11为本申请实施例中一种网络设备1100的结构示意图;
图12为本申请实施例中一种网络设备1200的结构示意图。
具体实施方式
随着对网络设备上端口承载带宽的需求的不断提高,通常在网络设备上采用链路聚合的方式,即,将网络设备的至少两个物理端口组成一个逻辑端口,该逻辑端口可承载的带宽为其对应的各物理端口承载的带宽的和,可见,采用链路聚合的方式,能够有效的增加网络设备承载带宽的能力。需要说明的是,链路聚合组是指采用链路聚合方式连接的两个网络设备之间,参与链路聚合的多条物理链路的集合;网络设备上聚合为逻辑端口的物理端口均可以称为该链路聚合组的成员端口。
例如:以图1所示的分组传送网(英文:packet transport network,简称:PTN)场景为例,该场景中,基站101-基站105分别直接或间接的接入PTN设备106,通过该PTN设备106汇聚到核心网设备107。由于多个基站发送的业务流,均需要由PTN设备106汇聚到核心网侧,所以,需要网络设备106能够承载较大的带宽,故,可以将在PTN设备106和核心网设备107之间设置链路聚合组,即,将PTN设备106上的端口1、端口2、端口3和端口4汇聚成一个逻辑端口A,将核心网设备107上的端口5、端口6、端口7和端口8也汇聚成一个逻辑端口B,通过四条光纤分别连接端口1和端口5、端口2和端口6、端口3和端口7、以及端口4和端口8。假设上述每条光纤的可承载带宽(也称为光纤连接的物理端口的最大允许的物理带宽)为1G,那么,该PTN设备106和核心网设备107之间的该链路聚合组具有4G的带宽,即,该PTN设备106能够承载较大的带宽。
作为一种示例,网络设备上接收到出端口为链路聚合组的业务流时,首先,提取该业务流的特征参数(例如:该业务流中报文的目的地址(英文:Destination Address,简称:DA)、源地址(英文:Source Address,简称:SA)、目的互联网协议地址(英文:DestinationInternet Protocol Address,简称:DIP)和源互联网协议地址(英文:Source InternetProtocol Address,简称:SIP)中的至少一个),依据该特征参数计算该业务流的哈希值,并依据哈希值和链路聚合组中的成员端口之间固定的映射关系,确定计算所得的哈希值对应的成员端口,并利用该成员端口转发该业务流。
仍以上述图1所示的场景为例,假设PTN设备106上预先保存有4组映射关系:哈希值1和端口1之间的映射关系1、哈希值2和端口2之间的映射关系2、哈希值3和端口3之间的映射关系3、以及哈希值4和端口4之间的映射关系4。如图2所示,假设PTN设备106接收到业务流1-8,且业务流1-8的出端口均为链路聚合组,那么,根据上述方式在该链路聚合组中进行负载分担的过程具体可以包括:PTN设备106分别提取业务流1-8的特征参数并计算出:哈希值2、3、3、3、1、3、3和2;PTN设备106上保存有4组映射关系,例如参见下述表1所示,PTN设备106基于表1可以确定业务流1和8通过端口3发送给核心网设备107,业务流2、3、4、6和7通过端口4发送给核心网设备107,业务流5通过端口2发送给核心网设备107。这样,端口1-端口4上的带宽分别为0M、500M、110M和700M。
表1 映射表
哈希值 | 成员端口 |
0 | 1 |
1 | 2 |
2 | 3 |
3 | 4 |
可见,采用上述方式进行负载分担,很可能出现多条业务流计算出一个相同的哈希值,从而该多条业务流映射到同一个成员端口上,造成该成员端口的负载过重,而且,即使各业务流可以均匀的分散到不同的成员端口上,也可能由于每条业务流的流量差异较大,导致链路聚合组中各成员端口的负载不均衡。即,依据该固定不变的哈希值和成员端口之间的映射关系进行负载分担,很可能使得链路聚合组中各成员端口出现负载不均衡的问题,从而大大降低该链路聚合组实际提供的带宽,例如:PTN设备106上,由于端口4承载700M的带宽,超过了1G的50%(预设值),导致该PTN设备106无法再通过该链路聚合组承载其他业务流,这样,该链路聚合组才一共承载了(0M+500M+110M+700M)=1310M的带宽,远远小于该链路聚合组的逻辑端口总带宽(即,4G)的50%。
基于此,本申请实施例提供了一种负载均衡方法,通过链路聚合组中各成员端口的实际负载情况,动态的调整分担到各成员端口的负载,实现链路聚合组中各个成员端口的负载均衡,具体过程可以包括:网络设备对第一业务流进行哈希计算获得其对应的第一哈希值,根据该第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定该第一业务流的出端口为第一成员端口;此时,该网络设备确定该第一成员端口当前的第一带宽,并根据该第一带宽,将第一映射关系调整为第一哈希值和第二成员端口之间的第二映射关系,从而采用该第二成员端口转发后续接收到的第一业务流。这样,能够克服目前依据固定不变的哈希值和成员端口之间的映射关系转发业务流,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口可以按照基于当前实际负载情况调整出更加合理的映射关系进行业务流的负载分担,实现了链路聚合组中各个成员端口的负载均衡,从而使网络设备能够满足高带宽的需求。
举例来说,仍然以图1所示的场景为例,在本申请实施例中,参见图3,PTN设备106上可以包括:接收模块1061、特征提取模块1062、哈希计算模块1063、映射模块1064、流量统计模块1065、流量调整模块1066和成员端口转发模块1067。其中,具体的负载均衡过程可以包括:S11,PTN设备106的接收模块1061接收基站101-基站105发送的业务流;S12,特征提取模块1062提取各业务流的DA和SA,并发送给哈希计算模块1063;S13,哈希计算模块1063基于各业务流的DA和SA计算出各业务流对应的32位哈希值,并取32位哈希值的低4位作为业务流最终对应的哈希值,发送映射模块1064;S14,映射模块1064根据当前的映射表1为各业务流确定对应的出端口,并由成员端口转发模块1067按照所确定的出端口转发对应的业务流到核心网设备107;S15,流量统计模块1065中的端口性能监测单元和成员端口转发模块1067相连,监测各成员端口实际转发的流量,该PTN设备106通过软件每秒采集一次该端口性能监测单元的值,并计算各成员端口的带宽;S16,流量统计模块1065中的流量统计单元和映射模块1604相连,统计各成员端口实际转发的流量,该PTN设备106通过软件每秒读取一次映射模块1604中映射表2中各流量统计器单元的值,并计算各成员端口的带宽,通常,对于相同成员端口,相同情况下根据端口性能监测单元获得的带宽和根据流量统计单元获得的带宽一致;S17,流量调整模块1066根据流量统计模块1065获得的各成员端口当前的带宽,确定成员端口1的总带宽为900M,超过单端口的最大物理带宽的80%;S18,流量调整单元1066根据流量统计单元0、4、8和12中的值:100M、200M、300M和200M,确定将带宽最大(即,每秒300M)的流量统计单元8对应的映射项作为待调整映射项(即,映射表1中加粗显示的映射项);S19,流量调整单元1066从当前带宽不超过单端口的最大物理带宽(即:1G带宽)的80%成员端口中,选择带宽最小的成员端口2,并确定如果将待调整映射项中的业务流切换到成员端口2,该成员端口2的带宽也不超过单端口的最大物理带宽的80%;S20,流量调整单元1066将映射模块1064中映射表1的待调整映射项的成员端口1修改为成员端口2,即,将映射模块1064中映射表1更新为映射表2;S21,当PTN设备106的接收模块1061再接收到哈希值为8对应的业务流时,即按照映射表2,将该业务流从成员端口2转发至核心网设备107上,且在该成员端口2对应的流量统计单元8上增加该业务流的带宽。可见,通过本申请实施例提供的方法,实现了链路聚合组中各个成员端口的负载均衡。
其中,作为示例,映射表1和映射表2可以参见下述表2和表3:
表2 映射表1
表3 映射表2
哈希值 | 成员端口 | 流量统计单元 | 哈希值 | 成员端口 | 流量统计单元 |
0 | 1 | 0(100M) | 8 | 2 | 8(300M) |
1 | 2 | 1 | 9 | 2 | 9 |
2 | 3 | 2 | 10 | 3 | 10 |
3 | 4 | 3 | 11 | 4 | 11 |
4 | 1 | 4(200M) | 12 | 1 | 12(200M) |
5 | 2 | 5 | 13 | 2 | 13 |
6 | 3 | 6 | 14 | 3 | 14 |
7 | 4 | 7 | 15 | 4 | 15 |
其中,映射表中的流量统计单元0-15,可以是流量统计单元的标识,用于指示到对应的流量统计单元中,例如:网络设备接收到业务流1,其哈希值为0,带宽为100M,那么,网络设备依据映射表1或2,确定业务流1的出端口为成员端口1,流量统计单元为标识为0的流量统计单元,那么,该网络设备在利用成员端口1转发业务流1的同时,在标识为0的流量统计单元中增加100M字节;又例如:在一个获取的周期下,网络设备确定成员端口1的当前带宽时,可以查看映射表1或2,确定成员端口1对应的流量统计单元分别为标识为0、4、8和12的流量统计单元,那么,网络设备可以查找标识为0、4、8和12的4个流量统计单元,并读取其中的值,将4个读取到的值进行相加,得到的和即为成员端口1的当前带宽。
需要说明的是,作为另一个示例,映射表中的流量统计单元,也可以直接存储所统计的转发字节数,例如:在调整之前,参见下表4,成员端口1对应的映射关系可以为:
表4 映射表1中成员端口1对应的部分
哈希值 | 成员端口 | 流量统计单元 |
0 | 1 | 100M |
4 | 1 | 200M |
8 | 1 | 300M |
12 | 1 | 400M |
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
需要说明的是,本申请实施例中的网络设备具体可以是交换机、路由器或PTN设备等。链路聚合可以应用在任何带宽需求较大的网络设备之间,例如:在连接核心网的服务器或服务器群上,使用链路聚合的方式连接核心网设备。
需要说明的是,本申请实施例中,链路聚合组中各成员端口的最大物理带宽均一致,例如:各成员端口能够承载的最大物理带宽均为1G。
下面结合附图,通过实施例来详细说明本申请实施例中一种负载均衡方法的具体实现方式。
图4为本申请实施例中的一种负载均衡方法100的流程示意图。参见图4,该方法100应用于其上设置有链路聚合组的网络设备上,该网络设备上预先建立并保存有该链路聚合组的映射关系,该映射关系指示该链路聚合组中用于转发该业务流的成员端口。例如:在图1所示的网络中,对于由基站向核心网发送的业务流,该方法100可以应用在PTN设备106上;对于由核心网向基站发送的业务流,该方法100也可以应用在核心网设备107上。该方法100例如可以包括下述S101~S104:
S101,网络设备根据第一业务流对应的第一哈希值,以及第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定第一业务流的出端口为第一成员端口,其中,该第一哈希值为根据第一业务量进行哈希计算得到的哈希值。
为了实现网络设备上链路聚合组中各成员端口的负载分担,通常预先在该网络设备上配置有链路聚合组的映射关系。该映射关系可以表征哈希值和成员端口之间的对应关系,也可以表征哈希值、成员端口和流量统计单元之间的对应关系。该映射关系可以以映射表的形式配置并保存在网络设备上。
在本申请实施例中,为了让不同的业务流分散对应到不同的出端口上,增加了映射关系的映射项数量,即,映射关系中,每个成员端口至少对应两个映射项,且映射关系中的每个映射项对应的哈希值均不同,即,一个哈希值在链路聚合组的映射关系中仅出现一次。由于根据业务流的特征参数进行哈希计算得到的是32位的计算结果,那么,可以提取低N位作为业务流对应的哈希值,共2N个可能的哈希值,该N为正整数,且满足2N>链路聚合组包括的成员端口数量。例如:若网络设备的链路聚合组中包括16个成员端口,那么,N需要取大于4的整数,当N=5,则该网络设备上预先配置的映射关系包括25=32条映射项,每个成员端口和2个不同的哈希值对应;当N=8,则该网络设备上预先配置的映射关系包括28=256条映射项,每个成员端口和16个不同的哈希值对应。需要说明的是,N为用户根据实际需求设置的值,N越大,发生不同业务流对应到同一哈希值的概率越小,网络设备上的负载越均衡。
例如,假设网络设备上包括4个成员端口,N取4,那么,预先配置的映射关系可以包括0-15共16个哈希值对应的16条映射关系(下文中也称一个哈希值对应的一条映射关系为一个映射项),每个成员端口对应4个不同的哈希值,具体可以参见下述表5所示。
表5 映射关系
又例如,为了让该映射关系可以体现通过某个具体哈希值映射到各成员端口上的业务流的带宽,还可以在表5的基础上,为每个映射项增加一个流量统计单元,即,增加流量统计单元0-流量统计单元15,具体参见上述表2或表3。
在本申请实施例中,网络设备上的链路聚合组,至少包括第一成员端口和第二成员端口,关于第一成员端口的映射项至少包括:第一映射关系和第三映射关系,作为一个示例,第一映射关系表征第一成员端口和第一哈希值之间的关系,第三映射关系表征第一成员端口和第二哈希值之间的关系。作为另一个示例,第一映射关系表征第一成员端口、第一哈希值之间、第一流量统计单元的关系。第三映射关系表征第一成员端口、第二哈希值之间的关系和第二流量统计单元之间的关系。作为示例,映射关系可以是指成员端口、哈希值与流量统计单元统计的成员端口带宽之间的映射关系;或者,映射关系也可以是成员端口、哈希值与流量统计单元的标识之间的映射,而网络设备通过所述流量单元的标识确定所述流量统计单元,进而确定所述流量统计单元的流量统计结果。
具体实现时,当网络设备接收到第一业务流时,S101具体可以包括:网络设备根据该第一业务流获得哈希键值,基于哈希键值计算获得哈希值A,该哈希值A是32位的数;接着,网络设备选择该哈希值A的低N位,记作第一哈希值;然后,网络设备根据预先配置的映射关系,确定第一哈希值对应的映射项(也即第一映射关系),将该映射项中的第一成员端口作为该第一业务流的出端口。
作为一个示例,第一业务流的哈希键值可以包括第一业务流的特征参数,即,第一业务流的DA、SA、DIP和SIP中的至少一个。那么,网络设备可以将特征参数作为哈希键值,计算获得32位的哈希值A。
作为另一个示例,第一业务流的哈希键值除了包括第一业务流的特征参数,还可以包括网络设备上定义的哈希因子,即,将哈希因子和特征参数均作为哈希键值,计算获得32位的哈希值A。其中,该哈希因子可以是用户在网络设备上为链路聚合组对应设置的变量,具体可以是生成的随机数或者用户指定的数值。
例如:假设S101中的网络设备为PTN设备106,其上配置的映射关系为映射表1,该PTN设备106接收到业务流1,提取业务流1的特征参数为DA1和SA1,该PTN设备106中定义的哈希因子为5,那么,该PTN设备106可以基于DA1、SA1和5进行哈希计算,获得32位的哈希值X;该PTN设备106提取哈希值X的低4位0011,获得哈希值3;该PTN设备106根据表1中第5行前3列,确定业务流1的出端口为成员端口4。与该实例对应,S101中的第一业务流即为业务流1,第一哈希值即为哈希值3,第一成员端口即为端口4。
S102,网络设备确定第一成员端口当前的第一带宽。
第一带宽,是指当前单位时间内通过第一成员端口转发的流量,用于表征该第一成员端口当前的负载情况。本申请实施例中,网络设备可以通过软件周期性的获取到链路聚合组中各成员端口的流量,并基于获取的周期和转发的流量计算对应的带宽,从而确定各成员端口的实际负载情况。以第一成员端口为例,说明本申请实施例中确定各成员端口当前的带宽的方法。
作为一个示例,网络设备内可以包括与各哈希值一一对应的流量统计单元,而网络设备可以通过软件周期性的获取与第一成员端口对应的各个流量统计单元的统计结果(即,转发的字节数),从而网络设备可以基于获取的周期和统计结果,确定第一成员端口当前的第一带宽。
对于流量统计单元,用于统计各哈希值对应的成员端口的流量。例如用于统计各哈希值对应的成员端口所转发的报文的字节数。作为示例,流量统计单元可以是计数器或者令牌桶。
对于计数器作为流量统计单元的实现方式中,一种情况下,该流量统计单元可以是不断累加的计数器,而网络设备每个周期读取计数器的值后,需要用当前读取到的值减去上一个周期读取到的值,获得该周期内该流量统计单元统计的其对应成员端口转发的字节数;另一种情况下,该流量统计单元也可以是同步清零的计数器,网络设备每个周期读取计数器值的同时,该计数器也执行清零操作,确保每次读取的值均为该周期内该流量统计单元统计的其对应成员端口转发的字节数。
对于令牌桶作为流量统计单元的实现方式中,每个哈希值对应一个令牌桶,且各个令牌桶的最多可容纳的令牌数量相同,例如:800M个令牌;那么,当网络设备接收到100M字节的第一业务流时,产生100M个令牌,且通过S101确定其出端口为第一哈希值对应的第一成员端口时,在第一哈希值对应的令牌桶中用800M个令牌中删除100M,剩余700M个令牌,以此类推实现令牌递减。而每个获取的周期时,读取令牌桶当其剩余的令牌数,并用其最多可容纳的令牌数减去该剩余的令牌数,即为统计结果,并用统计结果除以获取的周期,即可获得该哈希值对应的带宽。需要说明的是,每个获取的周期读取剩余令牌数的同时,还需要将令牌桶置位(即,将令牌桶恢复到最多可容纳的令牌数量),以便下一个获取的周期也可以使用该令牌桶完成对成员端口带宽的统计。
具体实现时,当第一成员端口对应第一映射关系和第三映射关系,其中,第一映射关系为第一成员端口、第一哈希值和第一流量统计单元之间的关系,第三映射关系为第一成员端口、第二哈希值和第二流量统计单元之间的关系,其中,第二哈希值为根据第二业务流进行哈希计算得到的哈希值;那么,网络设备可以在每个获取的周期(例如:1秒),分别读取第一流量统计单元和第二流量统计单元的统计结果,并根据第一流量统计单元的统计结果确定第三带宽,根据第二流量统计单元的统计结果确定第四带宽,从而根据第三带宽和第四带宽,确定第一带宽。其中,网络设备根据第一流量统计单元的统计结果确定第三带宽,具体可以包括:网络设备根据第一流量统计单元的统计结果除以获取的周期,获得第三带宽;网络设备根据第二流量统计单元的统计结果确定第四带宽,具体可以包括:网络设备根据第二流量统计单元的统计结果除以获取的周期,获得第四带宽;当第一成员端口仅对应第一映射关系和第三映射关系,那么,第一带宽等于第三带宽与第四带宽的和;或者,当第一成员端口除了对应第一映射关系和第三映射关系,还对应其他一个或多个映射关系,那么,第一带宽等于第三带宽、第四带宽以及根据其他一个或多个映射关系对应的流量统计单元获得的其他一个或多个带宽的和。
作为另一个示例,网络设备内还可以包括端口性能监测单元,该端口性能监测单元可以实时监测第一成员端口上单位时间转发的字节数,而网络设备可以通过软件周期性的获取端口性能监测单元的记录的转发字节数,从而网络设备可以基于获取的周期和转发字节数,确定第一成员端口当前的第一带宽。
作为再一个示例,网络设备也可以同时启用端口性能监测单元和流量统计单元,而网络设备可以通过软件周期性的获取端口性能监测单元的值,以及与第一成员端口对应的各个流量统计单元的统计结果,从而基于获取的周期以及获取的具体值,确定第一成员端口当前的第一带宽。需要说明的是,采用相同的获取周期时,对于同一成员端口在同一周期内,端口性能监测单元监测到的转发字节数和流量统计单元统计得到的转发字节数通常一致,同时启用两者,可以相互验证两种获取带宽方法的准确性和可靠性。
S103,网络设备根据第一带宽,将第一哈希值和第一成员端口之间的第一映射关系调整为第一哈希值和第二成员端口之间的第二映射关系。
需要说明的是,为了能够根据各成员端口的实际负载情况灵活的调整链路聚合组对应的映射关系,实现链路聚合组中各成员端口的负载均衡,本申请实施例中,对于各成员端口,均周期性的获取其带宽。当确定某个成员端口当前的带宽满足第一条件时,即执行该S103。该第一条件具体可以包括下述条件中的至少一个:条件一、第一带宽大于或者等于第一阈值;条件二、第一带宽占有率大于或者等于第二阈值,该第一带宽占有率为所述第一带宽与所述链路聚合组对应的逻辑端口的带宽的比值;条件三、第一带宽与第二带宽的差值与所述链路聚合组中单个成员端口的带宽的比值大于或者等于第三阈值,其中,第二带宽为网络设备将第一映射关系调整为所述第二映射关系之前,所述第二成员端口的带宽。
作为一个示例,第一条件为上述条件一,则,第一成员端口当前的第一带宽大于第一阈值,即可执行S103。其中,第一阈值为预先设置的带宽阈值,用于指示最大允许单个成员端口承载的带宽,例如:各成员端口的物理带宽为1G,预设的第一阈值则可以是小于等于1G的任何带宽值,如:800M。
作为另一个示例,第一条件为上述条件二,即,第一成员端口当前的第一带宽占有率大于或者等于第二阈值,即可执行S103。其中,第二阈值为预先设置的占有率阈值,用于指示最大允许单个成员端口承载的带宽占其所在的链路聚合组的逻辑端口带宽的比值。例如:该网络设备的链路聚合组的逻辑端口的带宽为100G,而第一带宽为8.5G,第二阈值预设为8%,那么,由于8.5G>100G*8%,确定第一成员端口上的负载过重,需要对第一成员端口对应的映射关系进行调整。
该示例下,网络设备可以进行下述操作具体确定出调整的内容:S31,网络设备从第一成员端口对应的多个映射项中,选择一个待调整映射项;S32,网络设备从链路聚合组中除第一成员端口以外的其他成员端口中,为第一成员端口中与待调整映射项对应的流量,确定即将切换至的目标成员端口。
若网络设备上配置的映射关系包括有哈希值、成员端口和流量统计单元三者之间的对应关系,那么,S31具体可以是:网络设备查看第一成员端口对应的多个映射项中对应的流量统计单元所统计的转发字节数,从转发字节数从多到少的顺序依次选择对应的流量统计单元所在的映射项作为待调整映射项,直到调整后第一成员端口的带宽占逻辑端口带宽的比例不超过第二阈值为止,例如:第一成员端口对应两条映射项,分别为:映射项1“第一哈希值-第一成员端口-第一流量统计单元”、映射项2“第二哈希值-第一成员端口-第二流量统计单元”,那么,网络设备查看第一流量统计单元和第二流量统计单元的值,分别为300M和100M,网络设备即可先将值较大的第一流量统计单元所在的映射项1作为待调整映射项,若该次调整之后第一成员端口的带宽占逻辑端口带宽的比例不超过第二阈值,则不再选择映射项2为待调整映射项。此时,S32为S31所确定的待调整映射项确定目标成员端口时,不仅需要该目标成员端口当前的带宽占逻辑端口带宽的比例不超过第二阈值,而且,还需要该目标成员端口承载该映射项对应的流量后,其上的带宽仍然小于逻辑端口带宽和第二阈值的乘积。需要说明的是,若存在满足上述条件的多个目标成员端口,则,该多个目标成员端口中的任意一个均可以作为S32中的目标成员端口,优选地,S32可以从多个目标成员端口中选择当前带宽最小的,作为最终确定的目标成员端口;若不存在满足上述条件的目标成员端口,则在当前的获取周期内不对该第一成员端口进行负载均衡的处理,即,不执行S103~S104,并且,上报告警消息,用于指示该网络设备的链路聚合组中各成员端口均超负载运行,无法完成安全的业务流转发。
若网络设备上配置的映射关系不包括流量统计单元,只包括哈希值和成员端口之间的对应关系,那么,S31具体可以是网络设备从第一成员端口对应的多个映射项中,随机选择一个作为待调整映射项;此时,S32为S31所确定的待调整映射项确定目标成员端口时,仅需要该目标成员端口当前的带宽占逻辑端口带宽的比例不超过第二阈值。需要说明的是,若存在满足上述条件的多个目标成员端口,则,该多个目标成员端口中的任意一个均可以作为S32中的目标成员端口;若不存在满足上述条件的目标成员端口,则在当前的获取周期内不对该第一成员端口进行负载均衡的处理,即,不执行S103~S104,并且上报告警消息,用于指示该网络设备的链路聚合组中各成员端口均超负载运行,无法完成安全的业务流转发。
作为又一个示例,第一条件为上述条件三,则,第一成员端口当前的第一带宽与第二带宽的差值与所述链路聚合组中单个成员端口的带宽的比值大于或者等于第三阈值,即可执行S103。其中,第二带宽是指网络设备将第一映射关系调整为所述第二映射关系之前,所述第二成员端口的带宽;第三阈值为预先设置的阈值,用于指示最大允许两个成员端口的差值占单个成员端口带宽的比例。例如:该网络设备的链路聚合组中各成员端口的最大允许的物理带宽为10G,而第一带宽为8.5G,第二带宽为6G,第三阈值为10%,那么,由于(8.5G-6G)>10G*10%,确定第二成员端口和第一成员端口的负载差值过大,为了使该链路聚合组的各成员端口承载的业务流达到更加均衡的状态,需要对第一成员端口对应的映射关系进行调整。
该示例下,网络设备可以进行下述操作具体确定出调整的内容:S41,网络设备从第一成员端口对应的多个映射项中,选择一个待调整映射项;S42,网络设备将第二成员端口确定为该待调整映射项即将切换至的目标成员端口。
若网络设备上配置的映射关系包括有哈希值、成员端口和流量统计单元三者之间的对应关系,那么,S41具体可以是:网络设备查看第一成员端口对应的多个映射项中,对应的流量统计单元所统计的转发字节数,将转发字节数最多的流量统计单元所在的映射项作为待调整映射项。如果网络设备的链路聚合组中存在多个成员端口的当前带宽和第一带宽的差值,不大于单个成员端口带宽和第三阈值的乘积,那么,S42可以从该多个成员端口中,选择一个作为目标成员端口,该目标成员端口需要满足:第一成员端口将待调整映射项对应的流量切换给目标成员端口后该第一成员端口的带宽,与目标成员端口承载待调整映射项对应的流量后的带宽的差值,不大于单个成员端口带宽和第三阈值的乘积;优选地,S42可以从该多个成员端口中选择当前带宽最小的,判断其是否满足上述选择目标成员端口的条件,若不满足,则选择当前带宽次小的,判断其是否满足上述选择目标成员端口的条件,以此类推,直到选取出满足上述选择目标成员端口条件的成员端口,作为S42选定的目标成员端口;若不存在满足上述选择目标成员端口条件的目标成员端口,则在当前的获取周期内不对该第一成员端口进行负载均衡的处理,即,不执行S103~S104,并且,上报告警消息,用于指示该网络设备的链路聚合组中各成员端口均超负载运行,无法完成安全的业务流转发。
若网络设备上配置的映射关系只包括哈希值和成员端口之间的对应关系,那么,S41具体可以是网络设备从第一成员端口对应的多个映射项中,随机选择一个作为待调整映射项。S42为S41所确定的待调整映射项确定目标成员端口时,仅需要该目标成员端口当前的带宽和第一带宽的差值,不大于单个成员端口带宽和第三阈值的乘积。需要说明的是,若存在满足上述条件的多个目标成员端口,则,该多个目标成员端口中的任意一个均可以作为S42中的目标成员端口;若不存在满足上述条件的目标成员端口,则在当前的获取周期内不对该第一成员端口进行负载均衡的处理,即,不执行S103~S104并且,上报告警消息,用于指示该网络设备的链路聚合组中各成员端口均超负载运行,无法完成安全的业务流转发。
该示例下,若带宽最大的成员端口和带宽最小的成员端口经过该示例的调整,无法使得该链路聚合组的成员端口均不满足该示例所指切换条件,则,可以不对带宽最大的成员端口进行调整,而是对带宽第二大的成员端口和带宽最小的成员端口进行调整,以此类推,直到调整使得该链路聚合组的成员端口均不满足该示例所指条件三。
需要说明的是,本申请实施例中的第一条件,用于表征链路聚合组中存在负载不均衡的状况,具体包括但不限于上述三个示例中所指出内容。若第一条件包括上述条件一、二和三中的至少两个,那么,满足任意一个可以视作满足第一条件,或者,全部满足才可以视作满足第一条件,具体可以根据实际需求进行灵活设计。而且,网络设备能够周期性的获取各成员端口的带宽,一旦发现某个成员端口满足预先配置的第一条件,则确定该链路聚合组存在负载不均衡的问题,需要通过本申请实施例提供的负载均衡方法进行处理,从而使得链路聚合组中各成员端口的负载达到相对均衡。
具体实现时,S103可以包括:S51,网络设备确定第一成员端口当前的第一带宽满足第一条件;S52,网络设备从该第一成员端口对应的多个映射项中,确定待调整映射项为第一哈希值和第一成员端口之间的第一映射关系;S53,网络设备确定该待调整映射项对应的目标成员端口为第二成员端口;S54,网络设备将第一哈希值和第一成员端口之间的第一映射关系,调整为第一哈希值和第二成员端口之间的第二映射关系,即,将第一哈希值和第一成员端口之间的第一映射关系中的第一成员端口修改为第二成员端口。
其中,根据第一哈希值和第一成员端口的第一映射关系中对应的流量统计单元确定的第三带宽,可以是第一成员端口对应的所有映射项对应的流量统计单元的值中的最大值,即,第三带宽大于第四带宽;第二成员端口可以是网络设备的链路聚合组中当前的带宽最小的成员端口。而且,经过S103后,第二成员端口当前的第五带宽等于执行S103之前该第二成员端口的第二带宽与第一成员端口切换来的第三带宽(即,通过第一哈希值映射到第一成员端口的流量产生的带宽)的和,而且,该第五带宽满足第二条件,该第二条件包括下述条件中的至少一个:条件四、第五带宽小于或等于第一阈值,该第五带宽为网络设备将第一映射关系调整为第二映射关系之后第二成员端口的带宽;条件五、第五带宽占有率小于或等于第二阈值,该第五带宽为网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽,第五带宽占有率为所述第五带宽与所述链路聚合组对应的逻辑端口的带宽的比值;条件六、第五带宽与第六带宽的差值与所述链路聚合组中单个成员端口的带宽的比值小于或等于第三阈值,第六带宽为网络设备将第一映射关系调整为第二映射关系之后第一成员端口的带宽。需要说明的是,上述第二条件可以与前述第一条件对应,当第一条件为条件一,那么,第二条件可以是对应的条件四;当第一条件为条件二,那么,第二条件可以是对应的条件五,当第一条件为条件三,那么,第二条件可以是对应的条件四。
这样,将通过第一哈希值映射到第一成员端口上的流量分担给负载较轻的第二成员端口,减轻第一成员端口的负载,使得链路聚合组中各成员端口的负载达到相对的均衡,从而提高该链路聚合组实际所提供的带宽。
需要说明的是,在本申请实施例中,网络设备可以在一个获取的周期内,仅对各成员端口进行一次第一条件的判断,也仅对第一成员端口对应的一个映射项进行调整;在下一个获取的周期内,如果发现同一成员端口仍然满足第一条件,再对该成员端口对应的另一个映射项进行调整,如此往复,直到网络设备获取不到需要进行调整的映射项,表征该链路聚合组中各成员端口的负载相对均衡。或者,网络设备也可以在一个获取的周期内,对各成员端口进行多次第一条件的判断,并进行一次或多次映射项的调整,直至不存在成员端口满足第一条件或存在满足第一条件的待调整成员端口但无法确定满足第二条件的目标成员端口,调整次数和判断的次数,取决于将成员端口调整到不满足第一条件的次数;需要说明的是,一些情况下,也可能无论如何调整,调整多少次,均不能使得所有的成员端口均不满足第一条件,此时,网络设备还可以设置调整上限,例如:10次,那么,在一个获取的周期内,如果调整10次还存在成员端口满足第一条件,就停止调整,上报告警消息,或者,采用其他方式进行调整,例如:采用下述图5所示实施例提供的方法进行继续调整。
S104,网络设备采用第二成员端口转发第一业务流。
具体实现时,在S103之前,网络设备接收到出端口为链路聚合组的第一业务流,获得该第一业务流对应的哈希值为第一哈希值,那么,可以根据网络设备上配置的映射关系中包括的第一哈希值和第一成员端口的第一映射关系,确定第一业务流的具体出端口为第一成员端口,并利用第一成员端口转发给第一业务流。但是,执行完S103之后,网络设备上配置的映射关系进行了更新,其包括第一哈希值和第二成员端口的第二映射关系,当网络设备再接收到第一业务流时,获得该第一业务流对应的哈希值为第一哈希值,可以根据网络设备上配置的映射关系中包括的第一哈希值和第二成员端口的第二映射关系,确定第一业务流的具体出端口为第二成员端口,并利用第二成员端口转发给第一业务流。
作为一个示例,S104具体可以包括:S61,网络设备根据第一业务流,获得哈希值B;S62,网络设备选择哈希值B的低N位,获得第一哈希值,其中,N为正整数,链路聚合组包括的成员端口数量小于2的N次方;S63,网络设备根据第一哈希值和第二成员端口之间的第二映射关系,确定通过第二成员端口转发第一业务流。其中,N为网络设备上配置的常数,和配置映射关系时的N一致。例如:网络设备在配置映射关系时,选择32位计算结果的低5位作为哈希值,那么,该网络设备在接收到业务流后,以该业务流的特征参数(或特征参数和哈希因子)作为哈希键值,计算出32位的二进制数,并选择该32位的二进制数的低5位为该业务流对应的哈希值。
假设网络设备根据哈希键值计算出第一业务流的32位二进制数为00100011110000010100111000001011,获取低5位为该第一业务流的第一哈希值:01011,转换为十进制即为11。那么,网络设备即可查找该二进制数01011(或十进制数11)所在的映射关系,并利用该映射关系中的第二成员端口发送第一业务流。其中,该网络设备上包括:二进制数01011(或十进制数11)和第二成员端口的映射关系。需要说明的是,本申请实施例中,网络设备配置的映射关系中,哈希值可以是以二进制数值体现,也可以是以低N位二进制数对应的十进制数体现。
可见,通过本申请实施例提供的方法,在使用链路聚合的网络设备中,能够根据链路聚合组中各成员端口的实际承载的带宽情况,动态的调整各成员端口和哈希值的对应关系,克服了依据固定不变的哈希值和成员端口之间的映射关系转发业务流,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口可以按照调整后的映射关系进行业务流的负载分担,实现了链路聚合组中各个成员端口的负载均衡,从而使网络设备能够满足高带宽的需求。
此外,图5为本申请实施例中的另一种负载均衡方法200的流程示意图。参见图5,该方法200应用于其上设置有链路聚合组的网络设备上,该网络设备上预先建立并保存有该链路聚合组的映射关系,该映射关系指示该链路聚合组中用于转发该业务流的成员端口。例如:在图1所示的网络中,对于由基站向核心网发送的业务流,该方法200可以应用在PTN设备106上。对于由核心网向基站发送的业务流,该方法200也可以应用在核心网设备107上。该方法200例如可以包括下述S201~S206:
S201,网络设备接收第三业务流。
S202,网络设备确定映射关系表中记录的转发该第三业务流的出端口为该链路聚合组中的第三成员端口,该映射关系表中记录了第三哈希值与第三成员端口的映射关系,第三哈希值为通过第一哈希算法对第三业务流进行哈希计算得到的哈希值。
其中,该方法200中S201~S202的具体实现方式以及相关描述,可以参见方法100中的S101~S102。
需要说明的是,网络设备上预先配置有第一哈希算法,该第一哈希算法用于在S203之前,在网络设备上获得该网络设备所接收的业务流对应的哈希值。该第一哈希算法用于指示:计算业务流的哈希值时使用的哈希键值、各哈希键值的内部排序、各哈希键值之间的排序、部分哈希键值的取值、以及具体使用的哈希算法等。例如:参见图6,第一哈希算法指示:使用业务流的DIP、SIP和哈希因子作为哈希键值,具体顺序分别为DIP->SIP->哈希因子,DIP和SIP均为4字节,哈希因子为5,采用具体的哈希算法为第五版消息摘要算法(英文:Message Digest Algorithm,简称:MD5)。又例如:参见图7,第一哈希算法指示:使用业务流的DIP和SIP作为哈希键值,具体顺序分别为DIP->SIP,DIP和SIP均为4字节且分别为第0字节、第1字节、第2字节和第3字节,采用具体的哈希算法为MD5。
可以理解的是,网络设备在接收到第三业务流后,可以先根据该网络设备上配置的第一哈希算法,计算出第三业务流对应的哈希值C;接着,还可以根据该网络设备上配置的N,提取哈希值C的低N位,获得第三哈希值;那么,即可基于本地的映射关系表中记录的第三哈希值和第三成员端口的映射关系,利用第三成员端口转发第一业务流。
S203,网络设备确定第三成员端口当前的第七带宽大于或等于第四阈值。
S204,网络设备调整第一哈希算法为第二哈希算法。
当网络设备根据第三成员端口当前的第七带宽,确定第三成员端口满足了第三条件,则,可以执行该S203。其中,第三条件包括但不限于下述条件中的至少一个:第七带宽大于或者等于第四阈值;第七带宽占有率大于或者等于第五阈值,其中,该第七带宽占有率为所述第七带宽与所述链路聚合组对应的逻辑端口的带宽的比值;第七带宽与第八带宽的差值与所述链路聚合组中单个成员端口的带宽的比值大于或者等于第六阈值,其中,第八带宽为网络设备执行S204之前其他成员端口的最小带宽。具体可以参见方法100中关于第一条件的相关描述,在本申请实施例中不再赘述。
作为一个示例,调整第一哈希算法为第二哈希算法,可以是指调整哈希键值中业务流的特征参数内部字节的顺序。例如:假设哈希键值包括DIP,原来DIP中分别为第0字节、第1字节、第2字节和第3字节,那么,调整后DIP中分别可以是第2字节、第3字节、第0字节和第1字节。
作为另一个示例,调整第一哈希算法为第二哈希算法,可以是指调整哈希键值中业务流的特征参数之间的顺序。例如:假设哈希键值包括DIP和SIP,原来DIP和SIP在哈希键值中的顺序分别为:DIP->SIP,那么,调整后DIP和SIP在哈希键值中的顺序分别为:SIP->DIP。
作为再一个示例,若哈希键值包括哈希因子,那么,调整第一哈希算法为第二哈希算法,还可以是指调整哈希键值中哈希因子的数值大小。例如:假设原来哈希键值中哈希因子为5,那么,调整后哈希键值中的哈希因子可以是10。
作为又一个示例,调整第一哈希算法为第二哈希算法,还可以是指具体使用的哈希算法。例如:假设原来第一哈希算法中具体使用的哈希算法为MD5,那么,调整后第二哈希算法中具体使用的哈希算法可以是安全哈希算法(英文:SHA-1)。
需要说明的是,网络设备将第一哈希算法调整为第二哈希算法,包括但不限于上述四种可能的调整方式。而且,上述四种调整方式,可以单独使用,也可以结合使用,具体根据实际需求在网络设备上进行配置。
例如:对于图6所示的第一哈希算法,调整到的第二哈希算法具体可以参见图8a-图8c,第二哈希算法可以指示:哈希键值的顺序分别为SIP->DIP->哈希因子,参见图8a;第二哈希算法也可以指示:DIP中分别可以是第2字节、第3字节、第0字节和第1字节,SIP中分别可以是第2字节、第3字节、第0字节和第1字节,参见图8b;第二哈希算法还可以指示:哈希因子调整为10,参见图8c。又例如:对于图7所示的第一哈希算法,调整到的第二哈希算法具体可以参见图9a-图9b,第二哈希算法可以指示:哈希键值的顺序分别为SIP->DIP,参见图9a;第二哈希算法也可以指示:DIP中分别可以是第2字节、第3字节、第0字节和第1字节,SIP中分别可以是第2字节、第3字节、第0字节和第1字节,参见图9b。
可见,通过S204中的调整第一哈希算法为第二哈希算法,能够在当前映射关系表中的映射关系无法使得链路聚合组中成员端口负载均衡的情况下,实现对业务流在各成员端口的重新分散,一定程度上能够将业务流均衡的分散到各个成员端口上,使得链路聚合组中各成员端口的负载均衡成为可能。
S205,网络设备根据第二哈希算法,对第三业务流进行哈希计算获得第四哈希值。
S206,网络设备根据映射关系表中记录的第四哈希值与第四成员端口的映射关系,确定通过第四成员端口转发第三业务流。
具体实现时,在S204之前,网络设备接收到出端口为链路聚合组的第三业务流,根据第一哈希算法获得该第三业务流对应的哈希值为第三哈希值,那么,可以根据网络设备上配置的映射关系表中包括的第三哈希值和第三成员端口的映射关系,确定第三业务流的具体出端口为第三成员端口,并利用第三成员端口转发给第三业务流。但是,执行完S204之后,网络设备将第一哈希算法调整为第二哈希算法,当网络设备再接收到第三业务流时,根据第二哈希算法获得该第三业务流对应的哈希值为第四哈希值,可以根据网络设备上配置的映射关系表中记录的的第四哈希值和第四成员端口的映射关系,确定第三业务流的具体出端口为第四成员端口,并利用第四成员端口转发给第三业务流。
作为一个示例,S205~S206具体可以包括:S71,网络设备根据第二哈希算法,计算第三业务流对应的哈希值D;S72,网络设备选择哈希值D的低N位,获得第四哈希值,其中,N为正整数,链路聚合组包括的成员端口数量小于2的N次方;S73,网络设备根据第四哈希值和第四成员端口之间的映射关系,确定通过第四成员端口转发第三业务流。
需要说明的是,该方法200无需调整网络设备中配置的映射关系表,只是通过调整第一哈希算法为第二哈希算法,即可改变业务流对应的哈希值,从而改变业务流映射到的成员端口,实现流量的重新散列,使得各成员端口上的负载均衡成为可能。
在一些可能的实现方式中,该方法200中的第三成员端口,可以是方法100中的第一成员端口;方法200中的第四成员端口,可以是方法100中的第二成员端口;方法200中的第三业务流,可以是方法100中的第一业务流。
可见,通过本申请实施例提供的方法,在使用链路聚合的网络设备中,能够根据链路聚合组中各成员端口的实际承载的带宽情况,动态的调整计算业务流的哈希值的哈希算法(例如:哈希因子的值),改变业务流对应的哈希值,从而将业务流重新映射到不同的成员端口上,克服了依据固定不变的计算业务流哈希值的哈希算法,以及哈希值和成员端口之间的确定好的映射关系,进行业务流转发,导致各成员端口的负载不均衡的问题,使得链路聚合组中各成员端口在一定程度上保持负载均衡成为可能,从而使网络设备能够满足高带宽的需求。
在一些可能的实现方式中,本申请实施例还提供了一种负载均衡方法,该方法可以结合上述方法100和方法200对网络设备上的链路聚合组进行负载均衡。
作为一个示例,本申请实施例可以先执行方法100,通过调整满足第一条件的成员端口对应的该成员端口和哈希值的映射关系,解决链路聚合组负载不均衡的问题,当无法再通过执行方法100克服某些成员端口满足第一条件的问题时,可以继续执行方法200,通过调整网络设备上的哈希算法,从而改变业务流对应的哈希值,将原本映射到同一成员端口的不同业务流打散到不同的成员端口上,从而解决负载不均衡的问题。
作为另一个示例,本申请实施例可以先执行方法200,通过不断调整网络设备上的哈希算法,尽量使得业务流分散映射到不同成员端口,每个成员端口上的负载一定程度上保持均衡;接着,再执行方法100,当部分成员端口满足第一条件时,通过该成员端口对应的该成员端口和哈希值的映射关系,将该业务流对应的哈希值映射到其他成员端口上,从而解决负载不均衡的问题。
作为又一个示例,本申请实施例可以先执行方法200,通过不断调整网络设备上的哈希算法,尽量使得业务流分散映射到不同成员端口,每个成员端口上的负载一定程度上保持均衡;接着,再执行方法100,当部分成员端口满足第一条件时,通过该成员端口对应的该成员端口和哈希值的映射关系,将该业务流对应的哈希值映射到其他成员端口上;当无法再通过执行方法100克服该某些成员端口满足第一条件的问题时,再可以继续执行方法200,通过调整网络设备上的哈希算法,从而改变业务流对应的哈希值,将原本映射到同一成员端口的不同业务流分散到不同的成员端口上,从而解决负载不均衡的问题。
通过上述方法100、方法200、以及三个示例,网络设备均可以实现对其中链路聚合组各成员端口的负载均衡,从而确保该链路聚合组发挥更大的功能,在使用过程中提供更大的带宽。
此外,本申请实施例还提供了一种网络设备1000,参见图10所示。该网络设备1000包括收发单元1001和处理单元1002。其中,收发单元1001用于执行上述图4所示的方法100中的收发操作或图5所示的方法200中的收发操作;处理单元1002用于执行上述图4所示的方法100中除了收发操作以外的其他操作,或执行上述图5所示的方法200中除了收发操作以外的其他操作。例如:当所述网络设备1000执行所述方法100时,所述收发单元1001用于采用第二成员端口转发第一业务流;所述处理单元1002用于根据第一业务流对应的第一哈希值,以及第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定第一业务流的出端口为第一成员端口;所述处理单元1002还用于确定第一成员端口当前的第一带宽;所述处理单元1002还用于根据第一带宽,将第一哈希值和第一成员端口之间的第一映射关系调整为第一哈希值和第二成员端口之间的第二映射关系。又例如:当所述网络设备1000执行所述方法200时,所述收发单元1001用于接收第三业务流;所述处理单元1002用于确定映射关系表中记录的转发该第三业务流的出端口为该链路聚合组中的第三成员端口;所述处理单元1002还用于确定第三成员端口当前的第七带宽大于或等于第四阈值;所述处理单元1002还用于调整第一哈希算法为第二哈希算法;所述处理单元1002还用于根据第二哈希算法,对第三业务流进行哈希计算获得第四哈希值,并根据映射关系表中记录的第四哈希值与第四成员端口的映射关系,确定通过第四成员端口转发第三业务流。
此外,本申请实施例还提供了一种网络设备1100,参见图11。该网络设备1100包括通信接口1101和处理器1102。其中,通信接口1101用于执行上述图4所示的方法100中的收发操作或图5所示的方法200中的收发操作;处理器1102用于执行上述图4所示的方法100中除了收发操作以外的其他操作,或执行上述图5所示的方法200中除了收发操作以外的其他操作。例如:当所述网络设备1100执行所述方法100时,所述通信接口1101用于采用第二成员端口转发第一业务流;所述处理器1102用于根据第一业务流对应的第一哈希值,以及第一哈希值和链路聚合组中的第一成员端口之间的第一映射关系,确定第一业务流的出端口为第一成员端口;所述处理器1102还用于确定第一成员端口当前的第一带宽;所述处理器1102还用于根据第一带宽,将第一哈希值和第一成员端口之间的第一映射关系调整为第一哈希值和第二成员端口之间的第二映射关系。又例如:当所述网络设备1100执行所述方法200时,所述通信接口1101用于接收第三业务流;所述处理器1102用于确定映射关系表中记录的转发该第三业务流的出端口为该链路聚合组中的第三成员端口;所述处理器1102还用于确定第三成员端口当前的第七带宽大于或等于第四阈值;所述处理器1102还用于调整第一哈希算法为第二哈希算法;所述处理器1102还用于根据第二哈希算法,对第三业务流进行哈希计算获得第四哈希值,并根据映射关系表中记录的第四哈希值与第四成员端口的映射关系,确定通过第四成员端口转发第三业务流。
此外,本申请实施例还提供了一种网络设备1200,参见图12所示。该网络设备1200包括存储器1201和处理器1202。其中,存储器1201用于存储程序代码;处理器1202用于运行所述程序代码中的指令,使得该网络设备1200执行以上图4所示实施例中方法100,或者图5所示实施例中的方法200。
可以理解的是,上述实施例中,处理器可以是中央处理器(英文:centralprocessing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器还可以是专用集成电路(英文:application-specific integratedcircuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logicdevice,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。处理器可以是指一个处理器,也可以包括多个处理器。存储器可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。存储器可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器根据所述软件模块的指示而执行的操作。处理器执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行网络设备可以执行的全部操作。
可以理解的是,上述实施例中,网络设备1100的通信接口1101,具体可以被用作网络设备1000中的收发单元1001,实现网络设备和其他网络设备之间的数据通信。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上图4或图5所示实施例中的所述负载均衡方法。
此外,本申请实施例还提供了计算机程序产品,当其在计算机上运行时,使得计算机执行前述图4或图5所示实施例中的所述负载均衡方法。
本申请实施例中提到的“第一业务流”、“第一哈希值”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (16)
1.一种负载均衡方法,其特征在于,包括:
网络设备根据第一业务流对应的第一哈希值,以及所述第一哈希值和所述链路聚合组中的第一成员端口之间的第一映射关系,确定所述第一业务流的出端口为所述第一成员端口,其中,所述第一哈希值为根据所述第一业务流进行哈希计算得到的哈希值;
所述网络设备确定所述第一成员端口当前的第一带宽;
所述网络设备根据所述第一带宽,将所述第一映射关系调整为所述第一哈希值和所述链路聚合组中的第二成员端口之间的第二映射关系;
所述网络设备采用所述第二成员端口转发所述第一业务流。
2.根据权利要求1所述的方法,其特征在于,所述第一成员端口满足第一条件时将所述第一映射关系调整为所述第二映射关系。
3.根据权利要求2所述的方法,其特征在于,所述第一条件包括以下至少一项:
所述第一带宽大于或者等于第一阈值;
所述第一带宽占有率大于或者等于第二阈值,所述第一带宽占有率为所述第一带宽与所述链路聚合组对应的逻辑端口的带宽的比值;或者
所述第一带宽与所述第二带宽的差值与所述链路聚合组中单个成员端口的带宽的比值大于或者等于第三阈值,所述第二带宽为网络设备将所述第一映射关系调整为所述第二映射关系之前,所述第二成员端口的带宽。
4.根据权利要求1-3任一项所述的方法,其特征在于,在网络设备将所述第一映射关系调整为所述第二映射关系之前,在所述链路聚合组的各成员端口中,所述第二成员端口为当前带宽最小的成员端口。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备获取所述第一映射关系和第三映射关系,所述第一映射关系包括所述第一成员端口、所述第一哈希值和第一流量统计单元之间的映射关系,所述第三映射关系包括所述第一成员端口、第二哈希值和第二流量统计单元之间的映射关系,其中,所述第二哈希值为根据第二业务流进行哈希计算得到的哈希值;
所述网络设备根据所述第一流量统计单元的统计结果确定所述第一业务流占用所述第一成员端口的第三带宽;
所述网络设备根据所述第二流量统计单元的统计结果,确定所述第二业务流占用所述第一成员端口的第四带宽;
所述网络设备根据所述第三带宽和所述第四带宽,确定所述第一带宽。
6.根据权利要5所述的方法,其特征在于,所述第三带宽大于所述第四带宽。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第二成员端口满足第二条件时,将所述第一映射关系调整为所述第二映射关系。
8.根据权利要求7所述的方法,其特征在于,所述第二条件包括以下至少一项:
第五带宽小于或者等于第一阈值,所述第五带宽为所述网络设备将所述第一映射关系调整为所述第二映射关系之后,所述第二成员端口的带宽;
所述第五带宽占有率小于或者等于第二阈值,所述第五带宽为所述网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽,所述第五带宽占有率为所述第五带宽与所述链路聚合组对应的逻辑端口的带宽的比值;或者
所述第五带宽与所述第六带宽的差值与所述链路聚合组中单个成员端口的带宽的比值小于或者等于第三阈值,所述第五带宽为网络设备将所述第一映射关系调整为所述第二映射关系之后所述第二成员端口的带宽,所述第六带宽为网络设备将所述第一映射关系调整为所述第二映射关系之后所述第一成员端口的带宽。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备接收第三业务流;
所述网络设备确定映射关系表中记录的转发所述第三业务流的出端口为所述链路聚合组中的第三成员端口,所述映射关系表中记录了第三哈希值与所述第三成员端口的映射关系,所述第三哈希值为通过第一哈希算法对所述第三业务流进行哈希计算得到的哈希值;
所述网络设备确定所述第三成员端口当前的第七带宽大于或者等于第四阈值;
所述网络设备将所述第一哈希算法调整为第二哈希算法;
所述网络设备根据所述第二哈希算法对所述第三业务流进行哈希计算,得到第四哈希值;
所述网络设备根据所述映射关系表中记录的所述第四哈希值与第四成员端口的映射关系,确定通过所述第四成员端口转发所述第三业务流。
10.根据权利要求9所述的方法,其特征在于,所述网络设备将所述第一哈希算法调整为第二哈希算法,包括下述方式的至少一种:
调整所述第一业务流中至少一个特征参数的字节顺序;
调整所述第一业务流中各特征参数的排列顺序;或
调整哈希因子的值。
11.根据权利要求10所述的方法,其特征在于,所述特征参数包括所述第一业务流的目的地址DA、源地址SA、目的互联网协议地址DIP和源互联网协议地址SIP中的至少一个。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述第三成员端口为所述第一成员端口。
13.根据权利要求9-12任一项所述的方法,其特征在于,所述第四成员端口为所述第二成员端口。
14.一种网络设备,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述网络设备用于执行前述权利要求1-13任一项所述的方法。
15.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述网络设备执行以上权利要求1-13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-13任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417080.XA CN113132249A (zh) | 2019-12-31 | 2019-12-31 | 一种负载均衡方法和设备 |
EP20910438.9A EP4072083A4 (en) | 2019-12-31 | 2020-09-21 | LOAD BALANCING METHOD AND DEVICE |
PCT/CN2020/116534 WO2021135416A1 (zh) | 2019-12-31 | 2020-09-21 | 一种负载均衡方法和设备 |
US17/851,371 US20220329525A1 (en) | 2019-12-31 | 2022-06-28 | Load balancing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417080.XA CN113132249A (zh) | 2019-12-31 | 2019-12-31 | 一种负载均衡方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113132249A true CN113132249A (zh) | 2021-07-16 |
Family
ID=76686386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911417080.XA Pending CN113132249A (zh) | 2019-12-31 | 2019-12-31 | 一种负载均衡方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220329525A1 (zh) |
EP (1) | EP4072083A4 (zh) |
CN (1) | CN113132249A (zh) |
WO (1) | WO2021135416A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645145A (zh) * | 2021-08-02 | 2021-11-12 | 迈普通信技术股份有限公司 | 负载均衡方法、装置、网络设备及计算机可读存储介质 |
CN113672665A (zh) * | 2021-08-18 | 2021-11-19 | Oppo广东移动通信有限公司 | 数据处理方法、数据采集系统、电子设备和存储介质 |
CN113709053A (zh) * | 2021-08-03 | 2021-11-26 | 杭州迪普科技股份有限公司 | 一种基于流定义的分流方法及装置 |
CN114866473A (zh) * | 2022-02-25 | 2022-08-05 | 网络通信与安全紫金山实验室 | 一种转发装置及流量输出接口调节方法 |
WO2023011153A1 (zh) * | 2021-08-03 | 2023-02-09 | 华为技术有限公司 | 负载均衡的哈希算法信息的确定方法、装置及存储介质 |
CN115883469A (zh) * | 2023-01-04 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 一种数据流负载平衡方法、装置、网络拓扑及数据中心 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10608957B2 (en) * | 2017-06-29 | 2020-03-31 | Cisco Technology, Inc. | Method and apparatus to optimize multi-destination traffic over etherchannel in stackwise virtual topology |
US11582642B2 (en) * | 2020-11-16 | 2023-02-14 | At&T Intellectual Property I, L.P. | Scaling network capability using baseband unit pooling in fifth generation networks and beyond |
US11540330B2 (en) | 2020-11-25 | 2022-12-27 | At&T Intellectual Property I, L.P. | Allocation of baseband unit resources in fifth generation networks and beyond |
CN113890847B (zh) * | 2021-09-26 | 2023-04-25 | 新华三信息安全技术有限公司 | 一种流量转发方法和装置 |
CN114936087B (zh) * | 2021-09-29 | 2023-06-02 | 华为技术有限公司 | 一种嵌入向量预取的方法、装置、系统及相关设备 |
CN114827016B (zh) * | 2022-04-12 | 2023-03-24 | 珠海星云智联科技有限公司 | 切换链路聚合方案的方法、装置、设备及存储介质 |
US20230379254A1 (en) * | 2022-05-18 | 2023-11-23 | Microsoft Technology Licensing, Llc | Feedback-based dynamic network flow remapping |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070039190A (ko) * | 2005-10-07 | 2007-04-11 | 엘지노텔 주식회사 | 링크통합 기능에서 로드밸런싱 방법 |
US20080298236A1 (en) * | 2007-06-01 | 2008-12-04 | Cisco Technology, Inc. | Dynamic link aggregation |
US20140198656A1 (en) * | 2013-01-15 | 2014-07-17 | Brocade Communications Systems, Inc. | Adaptive link aggregation and virtual link aggregation |
CN106302223A (zh) * | 2016-09-20 | 2017-01-04 | 杭州迪普科技有限公司 | 一种聚合组流量分流的方法和装置 |
CN109218216A (zh) * | 2017-06-29 | 2019-01-15 | 中兴通讯股份有限公司 | 链路聚合流量分配方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8995277B2 (en) * | 2012-10-30 | 2015-03-31 | Telefonaktiebolaget L M Ericsson (Publ) | Method for dynamic load balancing of network flows on LAG interfaces |
US9007906B2 (en) * | 2013-01-25 | 2015-04-14 | Dell Products L.P. | System and method for link aggregation group hashing using flow control information |
US9565112B2 (en) * | 2013-11-15 | 2017-02-07 | Broadcom Corporation | Load balancing in a link aggregation |
CN109039938A (zh) * | 2017-06-12 | 2018-12-18 | 中兴通讯股份有限公司 | 负载均衡方法及装置 |
CN109379297B (zh) * | 2018-11-26 | 2023-01-10 | 锐捷网络股份有限公司 | 一种实现流量负载均衡的方法和装置 |
CN109547341B (zh) * | 2019-01-04 | 2021-12-21 | 烽火通信科技股份有限公司 | 一种链路聚合的负载分担方法及系统 |
-
2019
- 2019-12-31 CN CN201911417080.XA patent/CN113132249A/zh active Pending
-
2020
- 2020-09-21 WO PCT/CN2020/116534 patent/WO2021135416A1/zh unknown
- 2020-09-21 EP EP20910438.9A patent/EP4072083A4/en active Pending
-
2022
- 2022-06-28 US US17/851,371 patent/US20220329525A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070039190A (ko) * | 2005-10-07 | 2007-04-11 | 엘지노텔 주식회사 | 링크통합 기능에서 로드밸런싱 방법 |
US20080298236A1 (en) * | 2007-06-01 | 2008-12-04 | Cisco Technology, Inc. | Dynamic link aggregation |
US20140198656A1 (en) * | 2013-01-15 | 2014-07-17 | Brocade Communications Systems, Inc. | Adaptive link aggregation and virtual link aggregation |
CN106302223A (zh) * | 2016-09-20 | 2017-01-04 | 杭州迪普科技有限公司 | 一种聚合组流量分流的方法和装置 |
CN109218216A (zh) * | 2017-06-29 | 2019-01-15 | 中兴通讯股份有限公司 | 链路聚合流量分配方法、装置、设备及存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645145A (zh) * | 2021-08-02 | 2021-11-12 | 迈普通信技术股份有限公司 | 负载均衡方法、装置、网络设备及计算机可读存储介质 |
CN113709053A (zh) * | 2021-08-03 | 2021-11-26 | 杭州迪普科技股份有限公司 | 一种基于流定义的分流方法及装置 |
WO2023011153A1 (zh) * | 2021-08-03 | 2023-02-09 | 华为技术有限公司 | 负载均衡的哈希算法信息的确定方法、装置及存储介质 |
CN113709053B (zh) * | 2021-08-03 | 2023-05-26 | 杭州迪普科技股份有限公司 | 一种基于流定义的分流方法及装置 |
CN113672665A (zh) * | 2021-08-18 | 2021-11-19 | Oppo广东移动通信有限公司 | 数据处理方法、数据采集系统、电子设备和存储介质 |
CN114866473A (zh) * | 2022-02-25 | 2022-08-05 | 网络通信与安全紫金山实验室 | 一种转发装置及流量输出接口调节方法 |
CN114866473B (zh) * | 2022-02-25 | 2024-04-12 | 网络通信与安全紫金山实验室 | 一种转发装置及流量输出接口调节方法 |
CN115883469A (zh) * | 2023-01-04 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 一种数据流负载平衡方法、装置、网络拓扑及数据中心 |
Also Published As
Publication number | Publication date |
---|---|
EP4072083A1 (en) | 2022-10-12 |
US20220329525A1 (en) | 2022-10-13 |
EP4072083A4 (en) | 2023-01-11 |
WO2021135416A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113132249A (zh) | 一种负载均衡方法和设备 | |
US10742722B2 (en) | Server load balancing | |
CN107005485B (zh) | 一种确定路由的方法、对应装置及系统 | |
CN107579923B (zh) | 一种sdn网络的链路负载均衡方法和sdn控制器 | |
US9083710B1 (en) | Server load balancing using minimally disruptive hash tables | |
US7940661B2 (en) | Dynamic link aggregation | |
US9197564B2 (en) | Methods and apparatus for load balancing across member ports for traffic egressing out of a port channel | |
CN106713182B (zh) | 一种处理流表的方法及装置 | |
US20130010636A1 (en) | Three dimensional fat tree networks | |
CN104756451A (zh) | 用于lag接口上网络流的动态负载平衡的方法 | |
CN111726299B (zh) | 流量均衡方法及装置 | |
CN110191064B (zh) | 流量负载均衡方法、装置、设备、系统及存储介质 | |
US9444756B2 (en) | Path aggregation group monitor | |
CN110798400B (zh) | 报文转发方法及装置 | |
CN105745874B (zh) | 一种确定服务功能路径的方法及装置 | |
CN107846341B (zh) | 调度报文的方法、相关装置和系统 | |
CN114006863A (zh) | 一种多核负载均衡协同处理方法、装置及存储介质 | |
CN113542145A (zh) | 以太网链路聚合组负载分担的方法以及网络设备 | |
CN111163015A (zh) | 报文发送方法、装置及汇聚分流设备 | |
WO2016145737A1 (zh) | 一种实现负荷分担的方法及装置 | |
CN108337183B (zh) | 一种数据中心网络流负载均衡的方法 | |
CN107046503B (zh) | 一种报文传输方法、系统及其装置 | |
WO2019084805A1 (zh) | 一种分发报文的方法及装置 | |
CN113890855A (zh) | 一种报文转发方法、系统、设备以及介质 | |
CN115914234A (zh) | 负载均衡的哈希算法信息的确定方法、装置及存储介质 |
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 |