CN113014502A - 基于线卡的负载均衡方法及装置 - Google Patents
基于线卡的负载均衡方法及装置 Download PDFInfo
- Publication number
- CN113014502A CN113014502A CN202110172066.9A CN202110172066A CN113014502A CN 113014502 A CN113014502 A CN 113014502A CN 202110172066 A CN202110172066 A CN 202110172066A CN 113014502 A CN113014502 A CN 113014502A
- Authority
- CN
- China
- Prior art keywords
- effective
- ports
- group
- unselected
- selecting
- 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.)
- Granted
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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于线卡的负载均衡方法及装置,该方法包括:接收到线卡间转发的待转发报文后,采用预设的哈希算法确定待转发报文的哈希值;选取哈希值中的第一设定位数得到第一索引值,选取哈希值的第二设定位数得到第二索引值;从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口;通过第一出口转发待转发报文。该方案可以确保当前线卡的各个有效端口负载均衡。
Description
技术领域
本发明涉及通信技术领域,尤指一种基于线卡的负载均衡方法及装置。
背景技术
分布式网络设备通常包括多张线卡,这些线卡可以分为两类:至少两个业务卡和至少一个交换卡,至少两个业务卡之间不直接相连,而是通过交换卡连接。如图1所示是分布式网络设备包括的各个线卡的连接关系示意图,其中包括两张业务卡,分别用LC1、LC2表示,每张业务卡包含一个转发芯片,分别用chip1、chip2表示,还包括两张交换卡分别用FE1、FE2表示,每张交换卡包含一个转发芯片,分别用chip3、chip4表示,两张业务卡均与两张交换卡相连。各个线卡与其他线卡连接的有效端口组成等价多路径出口,共同承担跨芯片的报文转发。
由于各个线卡存在多个等价多路径出口,在转发报文时,可以根据预先设定的指定中继成员表(Designated Trunk member Table)确定出口。具体为,线卡根据报文计算出一个32bit位的哈希值,然后从哈希值中截取6bit位作为索引值,从自身的指定中继成员表中获取与索引值对应的出口转发报文,指定中继成员表的每个表项包括一个出口。
上述方案只有在指定中继成员表的容量与等价多路径出口的个数成倍数关系时,能够实现负载均衡,如果不成倍数关系则等价多路径出口的负载不均衡,由于指定中继成员表的容量是固定的,而线卡的等价多路径出口会根据线卡连接的其他线卡的情况而变化,所以在线卡中时常会出现指定中继成员表的容量与等价多路径出口的个数不成倍数的情况,这就导致线卡的等价多路径出口的负载不均衡。以一个实例进行说明,指定中继成员表有最大容量,可以表示为N,线卡的等价多路径出口的个数可以表示为M,M通常会小于N,假设N为64,M为48,可以在第一轮将每个表项依次填充一个不同的出口,第一轮结束后还有16个表项未填充出口,可以再进行第二轮,从48个等价多路径出口中挑出16个填入指定中继成员表中未填充出口的表项,这样64个表项全部填充了出口。从上述过程可以看出,有16个出口被填充了两次,那么在转发报文时,这16个出口被选中的概率会比其他32个出口大很多,相应地,这16个出口的流量会比其他32个出口大很多,这就导致了线卡的各个等价多路径出口的负载不均衡。
发明内容
本发明实施例提供一种基于线卡的负载均衡方法及装置,用以解决现有技术中存在的线卡的各个等价多路径出口的负载不均衡的问题。
根据本发明实施例,提供一种基于线卡的负载均衡方法,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口,所述方法包括:
接收到线卡间转发的待转发报文后,采用预设的哈希算法确定所述待转发报文的哈希值;
选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值;
从当前线卡的链路聚合组表中查找所述第一索引值对应的第一链路聚合组,从指定中继成员表中查找所述第二索引值对应的属于所述第一链路聚合组的第一出口,所述链路聚合组表是将所述当前线卡的各个有效端口分组得到的,所述链路聚合组表的各个链路聚合组均包括第一个数的有效端口,所述指定中继成员表的每个表项包括各个链路聚合组的一个端口,所述当前线卡的各个有效端口在所述指定中继成员表出现的次数相同,所述指定中继成员表的容量是所述第一个数的整数倍;
通过所述第一出口转发所述待转发报文。
具体的,选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值,具体包括:
选取所述哈希值的高六位得到第一索引值;
选取所述哈希值的低六位得到第二索引值。
可选的,还包括:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取所述指定中继成员表的容量与所述第二个数的公约数;
将所述第二个数的有效端口按照所述公约数进行分组,并采用所述哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中,并删除选取的各个有效端口携带的所述未被选取标识;
确定所述指定中继成员表是否存在空白表项;
若确定所述指定中继成员组存在空白表项,则确定各个分组是否包括携带所述未被选取标识的有效端口,若确定各个分组包括携带所述未被选取标识的有效端口,则执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带所述未被选取标识的有效端口,则在各个分组的有效端口添加所述未被选取标识,执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤。
具体的,将所述第二个数的有效端口按照所述公约数进行分组,具体包括:
按照设定顺序依次从所述第二个数的有效端口中选取所述公约数的有效端口;
确定所述第二个数的有效端口中是否包括未被选取的有效端口;
若确定所述第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取所述公约数的有效端口,执行所述确定所述第二个数的有效端口中是否包括未被选取的有效端口的步骤。
根据本发明实施例,还提供一种基于线卡的负载均衡装置,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口,所述装置包括:
确定模块,用于接收到线卡间转发的待转发报文后,采用预设的哈希算法确定所述待转发报文的哈希值;
选取模块,用于选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值;
查找模块,用于从当前线卡的链路聚合组表中查找所述第一索引值对应的第一链路聚合组,从指定中继成员表中查找所述第二索引值对应的属于所述第一链路聚合组的第一出口,所述链路聚合组表是将所述当前线卡的各个有效端口分组得到的,所述链路聚合组表的各个链路聚合组均包括第一个数的有效端口,所述指定中继成员表的每个表项包括各个链路聚合组的一个端口,所述当前线卡的各个有效端口在所述指定中继成员表出现的次数相同,所述指定中继成员表的容量是所述第一个数的整数倍;
转发模块,用于通过所述第一出口转发所述待转发报文。
具体的,所述选取模块,用于选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值,具体用于:
选取所述哈希值的高六位得到第一索引值;
选取所述哈希值的低六位得到第二索引值。
可选的,还包括处理模块,用于:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取所述指定中继成员表的容量与所述第二个数的公约数;
将所述第二个数的有效端口按照所述公约数进行分组,并采用所述哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中,并删除选取的各个有效端口携带的所述未被选取标识;
确定所述指定中继成员表是否存在空白表项;
若确定所述指定中继成员组存在空白表项,则确定各个分组是否包括携带所述未被选取标识的有效端口,若确定各个分组包括携带所述未被选取标识的有效端口,则执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带所述未被选取标识的有效端口,则在各个分组的有效端口添加所述未被选取标识,执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤。
具体的,所述处理模块,用于将所述第二个数的有效端口按照所述公约数进行分组,具体用于:
按照设定顺序依次从所述第二个数的有效端口中选取所述公约数的有效端口;
确定所述第二个数的有效端口中是否包括未被选取的有效端口;
若确定所述第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取所述公约数的有效端口,执行所述确定所述第二个数的有效端口中是否包括未被选取的有效端口的步骤。
根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。
根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明有益效果如下:
本发明实施例提供一种基于线卡的负载均衡方法及装置,通过接收到线卡间转发的待转发报文后,采用预设的哈希算法确定所述待转发报文的哈希值;选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值;从当前线卡的链路聚合组表中查找所述第一索引值对应的第一链路聚合组,从指定中继成员表中查找所述第二索引值对应的属于所述第一链路聚合组的第一出口,所述链路聚合组表是将所述当前线卡的各个有效端口分组得到的,所述链路聚合组表的各个链路聚合组均包括第一个数的有效端口,所述指定中继成员表的每个表项包括各个链路聚合组的一个端口,所述当前线卡的各个有效端口在所述指定中继成员表出现的次数相同,所述指定中继成员表的容量是所述第一个数的整数倍;通过所述第一出口转发所述待转发报文。该方案中,在接收到线卡间转发的待转发报文后,选取待转发报文的哈希值中的第一设定位数得到第一索引值,选取待转发报文的哈希值的第二设定位数得到第二索引值,从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,并通过第一出口转发待转发报文,由于链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,指定中继成员表的容量是第一个数的整数倍,当前线卡的各个有效端口在指定中继成员表出现的次数相同,从而可以确保当前线卡的各个有效端口被选中的概率相同,进而可以确保当前线卡的各个有效端口负载均衡。
附图说明
图1为现有技术中一种分布式网络设备包括的各个线卡的连接关系示意图;
图2为本发明实施例中一种基于线卡的负载均衡方法的流程图;
图3为本发明实施例中链路聚合组表与指定中继成员表的示意图;
图4本发明实施例中一种基于线卡的负载均衡装置的结构示意图;
图5为本申请示出的一种电子设备的结构示意图。
具体实施方式
针对现有技术中存在的线卡的各个等价多路径出口的负载不均衡的问题,本发明实施例提供一种基于线卡的负载均衡方法,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口。其中,各个线卡有两种应用场景,第一种应用场景是各个线卡包括至少两个业务卡和至少一个交换卡,至少两个业务卡分别与至少一个交换卡连接,也就是说业务卡之间不是直连,而是都连接到交换卡上;第二种应用场景是各个线卡包括至少两个业务卡,至少两个业务卡互相连接,也就是说业务卡之间是直连的。该方法的流程如图2所示,具体执行步骤如下:
S21:接收到线卡间转发的待转发报文后,采用预设的哈希算法确定待转发报文的哈希值。
线卡在接收到报文后,有些报文是需要在线卡间进行转发的,这些报文可以定义为线卡间转发的待转发报文。可以采用预设的哈希算法确定待转发报文的哈希值,具体可以采用预设的哈希算法对报文的五元组信息进行计算,得到待转发报文的哈希值。
S22:选取哈希值中的第一设定位数得到第一索引值,选取哈希值的第二设定位数得到第二索引值。
第一设定位数与第二设定位数可以根据实际需要进行设定,哈希值中的第一设定位数可以定义为第一索引值,哈希值中的第二设定位数可以定义为第二索引值。
S23:从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口。
其中,链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,也就是说,将当前线卡的所有有效端口进行等分,得到各个链路聚合组,指定中继成员表的每个表项包括各个链路聚合组的一个端口,当前线卡的各个有效端口在指定中继成员表出现的次数相同,指定中继成员表的容量是第一个数的整数倍。
S24:通过第一出口转发待转发报文。
该方案中,在接收到线卡间转发的待转发报文后,选取待转发报文的哈希值中的第一设定位数得到第一索引值,选取待转发报文的哈希值的第二设定位数得到第二索引值,从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,并通过第一出口转发待转发报文,由于链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,指定中继成员表的容量是第一个数的整数倍,当前线卡的各个有效端口在指定中继成员表出现的次数相同,从而可以确保当前线卡的各个有效端口被选中的概率相同,进而可以确保当前线卡的各个有效端口负载均衡。
具体的,上述S22中的选取哈希值中的第一设定位数得到第一索引值,选取哈希值的第二设定位数得到第二索引值,具体实现过程包括:
选取哈希值的高六位得到第一索引值;
选取哈希值的低六位得到第二索引值。
也就是说,第一设定位数是高六位,第二设定位数是低六位,当然还可以是其他的位数,这里不再一一赘述。
一种可选的实施方式,上述方法还包括:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取指定中继成员表的容量与第二个数的公约数;
将第二个数的有效端口按照公约数进行分组,并采用哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中,并删除选取的各个有效端口携带的未被选取标识;
确定指定中继成员表是否存在空白表项;
若确定指定中继成员组存在空白表项,则确定各个分组是否包括携带未被选取标识的有效端口,若确定各个分组包括携带未被选取标识的有效端口,则执行从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带未被选取标识的有效端口,则在各个分组的有效端口添加未被选取标识,执行从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤。
当前线卡上电后或者检测到有效端口发生改变后,会检测改变后的有效端口的个数,该个数可以定义为第二个数,然后获取指定中继成员表的容量与第二个数的公约数,将第二个数的有效端口按照公约数进行分组,并采用哈希算法为每个分组添加索引值,就可以得到链路聚合组表;从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中,并删除选取的各个有效端口携带的未被选取标识,确定指定中继成员表是否存在空白表项,若确定指定中继成员组存在空白表项,说明指定中继成员表未被填满,则进一步确定各个分组是否包括携带未被选取标识的有效端口,若确定各个分组包括携带未被选取标识的有效端口,则继续执行上述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带未被选取标识的有效端口,则在各个分组的有效端口添加未被选取标识,再执行从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤,若确定指定中继成员组不存在空白表项,说明指定中继成员组已被填满,流程结束即可。如图3所示为建立的链路聚合组表(图中示为trunk表)和指定中继成员表,其中,trunk表包括六个链路聚合组,分别为trunk1、trunk2、trunk3、trunk4、trunk5、trunk6,指定中继成员表共包括64个表项,每个链路聚合组和每个表项对应的端口(port)如图3所示。
具体的,上述将第二个数的有效端口按照公约数进行分组,实现过程具体包括:
按照设定顺序依次从第二个数的有效端口中选取公约数的有效端口;
确定第二个数的有效端口中是否包括未被选取的有效端口;
若确定第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取公约数的有效端口,执行确定第二个数的有效端口中是否包括未被选取的有效端口的步骤。
一种优选的实施方案中,公约数是最大公约数的情况,此时,可以确保第二个数的有效端口分组是最少的,由于链路聚合组表占用线卡的硬件资源,分组越少,在转发报文时查找的速度越快。
基于同一发明构思,本发明实施例提供一种基于线卡的负载均衡装置,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口,该装置的结构如图4所示,包括:
确定模块41,用于接收到线卡间转发的待转发报文后,采用预设的哈希算法确定待转发报文的哈希值;
选取模块42,用于选取哈希值中的第一设定位数得到第一索引值,选取哈希值的第二设定位数得到第二索引值;
查找模块43,用于从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,当前线卡的各个有效端口在指定中继成员表出现的次数相同,指定中继成员表的容量是第一个数的整数倍;
转发模块44,用于通过第一出口转发待转发报文。
该方案中,在接收到线卡间转发的待转发报文后,选取待转发报文的哈希值中的第一设定位数得到第一索引值,选取待转发报文的哈希值的第二设定位数得到第二索引值,从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,并通过第一出口转发待转发报文,由于链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,指定中继成员表的容量是第一个数的整数倍,当前线卡的各个有效端口在指定中继成员表出现的次数相同,从而可以确保当前线卡的各个有效端口被选中的概率相同,进而可以确保当前线卡的各个有效端口负载均衡。
具体的,选取模块42,用于选取哈希值中的第一设定位数得到第一索引值,选取哈希值的第二设定位数得到第二索引值,具体用于:
选取哈希值的高六位得到第一索引值;
选取哈希值的低六位得到第二索引值。
可选的,还包括处理模块,用于:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取指定中继成员表的容量与第二个数的公约数;
将第二个数的有效端口按照公约数进行分组,并采用哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中,并删除选取的各个有效端口携带的未被选取标识;
确定指定中继成员表是否存在空白表项;
若确定指定中继成员组存在空白表项,则确定各个分组是否包括携带未被选取标识的有效端口,若确定各个分组包括携带未被选取标识的有效端口,则执行从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带未被选取标识的有效端口,则在各个分组的有效端口添加未被选取标识,执行从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到指定中继成员表的空白表项中的步骤。
具体的,处理模块,用于将第二个数的有效端口按照公约数进行分组,具体用于:
按照设定顺序依次从第二个数的有效端口中选取公约数的有效端口;
确定第二个数的有效端口中是否包括未被选取的有效端口;
若确定第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取公约数的有效端口,执行确定第二个数的有效端口中是否包括未被选取的有效端口的步骤。
本申请实施例还提供了一种电子设备,请参见图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。
存储器530,用于存放计算机程序;
处理器510,用于执行存储器530上所存放的程序时,实现上述实施例中任一所述的基于线卡的负载均衡方法。
通信接口520用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
该方案中,在接收到线卡间转发的待转发报文后,选取待转发报文的哈希值中的第一设定位数得到第一索引值,选取待转发报文的哈希值的第二设定位数得到第二索引值,从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,并通过第一出口转发待转发报文,由于链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,指定中继成员表的容量是第一个数的整数倍,当前线卡的各个有效端口在指定中继成员表出现的次数相同,从而可以确保当前线卡的各个有效端口被选中的概率相同,进而可以确保当前线卡的各个有效端口负载均衡。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于线卡的负载均衡方法。
该方案中,在接收到线卡间转发的待转发报文后,选取待转发报文的哈希值中的第一设定位数得到第一索引值,选取待转发报文的哈希值的第二设定位数得到第二索引值,从当前线卡的链路聚合组表中查找第一索引值对应的第一链路聚合组,从指定中继成员表中查找第二索引值对应的属于第一链路聚合组的第一出口,并通过第一出口转发待转发报文,由于链路聚合组表是将当前线卡的各个有效端口分组得到的,链路聚合组表的各个链路聚合组均包括第一个数的有效端口,指定中继成员表的每个表项包括各个链路聚合组的一个端口,指定中继成员表的容量是第一个数的整数倍,当前线卡的各个有效端口在指定中继成员表出现的次数相同,从而可以确保当前线卡的各个有效端口被选中的概率相同,进而可以确保当前线卡的各个有效端口负载均衡。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于线卡的负载均衡方法,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口,其特征在于,所述方法包括:
接收到线卡间转发的待转发报文后,采用预设的哈希算法确定所述待转发报文的哈希值;
选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值;
从当前线卡的链路聚合组表中查找所述第一索引值对应的第一链路聚合组,从指定中继成员表中查找所述第二索引值对应的属于所述第一链路聚合组的第一出口,所述链路聚合组表是将所述当前线卡的各个有效端口分组得到的,所述链路聚合组表的各个链路聚合组均包括第一个数的有效端口,所述指定中继成员表的每个表项包括各个链路聚合组的一个端口,所述当前线卡的各个有效端口在所述指定中继成员表出现的次数相同,所述指定中继成员表的容量是所述第一个数的整数倍;
通过所述第一出口转发所述待转发报文。
2.如权利要求1所述的方法,其特征在于,选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值,具体包括:
选取所述哈希值的高六位得到第一索引值;
选取所述哈希值的低六位得到第二索引值。
3.如权利要求1或2所述的方法,其特征在于,还包括:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取所述指定中继成员表的容量与所述第二个数的公约数;
将所述第二个数的有效端口按照所述公约数进行分组,并采用所述哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中,并删除选取的各个有效端口携带的所述未被选取标识;
确定所述指定中继成员表是否存在空白表项;
若确定所述指定中继成员组存在空白表项,则确定各个分组是否包括携带所述未被选取标识的有效端口,若确定各个分组包括携带所述未被选取标识的有效端口,则执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带所述未被选取标识的有效端口,则在各个分组的有效端口添加所述未被选取标识,执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤。
4.如权利要求3所述的方法,其特征在于,将所述第二个数的有效端口按照所述公约数进行分组,具体包括:
按照设定顺序依次从所述第二个数的有效端口中选取所述公约数的有效端口;
确定所述第二个数的有效端口中是否包括未被选取的有效端口;
若确定所述第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取所述公约数的有效端口,执行所述确定所述第二个数的有效端口中是否包括未被选取的有效端口的步骤。
5.一种基于线卡的负载均衡装置,应用于分布式网络设备包括的各个线卡中,各个线卡与其他线卡连接的各个有效端口组成对应的线卡的等价多路径出口,其特征在于,所述装置包括:
确定模块,用于接收到线卡间转发的待转发报文后,采用预设的哈希算法确定所述待转发报文的哈希值;
选取模块,用于选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值;
查找模块,用于从当前线卡的链路聚合组表中查找所述第一索引值对应的第一链路聚合组,从指定中继成员表中查找所述第二索引值对应的属于所述第一链路聚合组的第一出口,所述链路聚合组表是将所述当前线卡的各个有效端口分组得到的,所述链路聚合组表的各个链路聚合组均包括第一个数的有效端口,所述指定中继成员表的每个表项包括各个链路聚合组的一个端口,所述当前线卡的各个有效端口在所述指定中继成员表出现的次数相同,所述指定中继成员表的容量是所述第一个数的整数倍;
转发模块,用于通过所述第一出口转发所述待转发报文。
6.如权利要求5所述的装置,其特征在于,所述选取模块,用于选取所述哈希值中的第一设定位数得到第一索引值,选取所述哈希值的第二设定位数得到第二索引值,具体用于:
选取所述哈希值的高六位得到第一索引值;
选取所述哈希值的低六位得到第二索引值。
7.如权利要求5或6所述的装置,其特征在于,还包括处理模块,用于:
上电或者检测到有效端口发生改变后,检测改变后的有效端口的第二个数;
获取所述指定中继成员表的容量与所述第二个数的公约数;
将所述第二个数的有效端口按照所述公约数进行分组,并采用所述哈希算法为每个分组添加索引值得到链路聚合组表;
从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中,并删除选取的各个有效端口携带的所述未被选取标识;
确定所述指定中继成员表是否存在空白表项;
若确定所述指定中继成员组存在空白表项,则确定各个分组是否包括携带所述未被选取标识的有效端口,若确定各个分组包括携带所述未被选取标识的有效端口,则执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤;若确定各个分组不包括携带所述未被选取标识的有效端口,则在各个分组的有效端口添加所述未被选取标识,执行所述从各个分组携带未被选取标识的有效端口中选取一个有效端口填充到所述指定中继成员表的空白表项中的步骤。
8.如权利要求7所述的装置,其特征在于,所述处理模块,用于将所述第二个数的有效端口按照所述公约数进行分组,具体用于:
按照设定顺序依次从所述第二个数的有效端口中选取所述公约数的有效端口;
确定所述第二个数的有效端口中是否包括未被选取的有效端口;
若确定所述第二个数的有效端口中包括未被选取的有效端口,则从未被选取的有效端口中选取所述公约数的有效端口,执行所述确定所述第二个数的有效端口中是否包括未被选取的有效端口的步骤。
9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110172066.9A CN113014502B (zh) | 2021-02-08 | 2021-02-08 | 基于线卡的负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110172066.9A CN113014502B (zh) | 2021-02-08 | 2021-02-08 | 基于线卡的负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014502A true CN113014502A (zh) | 2021-06-22 |
CN113014502B CN113014502B (zh) | 2022-08-19 |
Family
ID=76384385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110172066.9A Active CN113014502B (zh) | 2021-02-08 | 2021-02-08 | 基于线卡的负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014502B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852547A (zh) * | 2021-09-10 | 2021-12-28 | 锐捷网络股份有限公司 | 一种报文转发方法、装置、线卡及存储介质 |
WO2023280170A1 (zh) * | 2021-07-07 | 2023-01-12 | 中兴通讯股份有限公司 | 报文转发方法、线卡、主控卡、框式设备、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263697A (zh) * | 2011-08-03 | 2011-11-30 | 杭州华三通信技术有限公司 | 一种聚合链路流量分担方法和装置 |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
CN104683255A (zh) * | 2013-11-29 | 2015-06-03 | 华为技术有限公司 | 物理端口的均衡负载分担方法、装置和链路聚合系统 |
CN109218179A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 负载分担方法及装置、交换机及计算机可读存储介质 |
CN109347623A (zh) * | 2018-10-18 | 2019-02-15 | 盛科网络(苏州)有限公司 | 一种链路负载均衡应用中进行会话保持的方法及装置 |
CN110838974A (zh) * | 2019-11-14 | 2020-02-25 | 苏州盛科科技有限公司 | 一种实现负载均衡的方法和装置 |
CN111585909A (zh) * | 2020-04-03 | 2020-08-25 | 北京星网锐捷网络技术有限公司 | Tcp报文的负载均衡方法及装置 |
-
2021
- 2021-02-08 CN CN202110172066.9A patent/CN113014502B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263697A (zh) * | 2011-08-03 | 2011-11-30 | 杭州华三通信技术有限公司 | 一种聚合链路流量分担方法和装置 |
WO2013017017A1 (en) * | 2011-08-03 | 2013-02-07 | Hangzhou H3C Technologies Co., Ltd | Load balancing in link aggregation |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
CN104683255A (zh) * | 2013-11-29 | 2015-06-03 | 华为技术有限公司 | 物理端口的均衡负载分担方法、装置和链路聚合系统 |
CN109218179A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 负载分担方法及装置、交换机及计算机可读存储介质 |
CN109347623A (zh) * | 2018-10-18 | 2019-02-15 | 盛科网络(苏州)有限公司 | 一种链路负载均衡应用中进行会话保持的方法及装置 |
CN110838974A (zh) * | 2019-11-14 | 2020-02-25 | 苏州盛科科技有限公司 | 一种实现负载均衡的方法和装置 |
CN111585909A (zh) * | 2020-04-03 | 2020-08-25 | 北京星网锐捷网络技术有限公司 | Tcp报文的负载均衡方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023280170A1 (zh) * | 2021-07-07 | 2023-01-12 | 中兴通讯股份有限公司 | 报文转发方法、线卡、主控卡、框式设备、电子设备及计算机可读存储介质 |
CN113852547A (zh) * | 2021-09-10 | 2021-12-28 | 锐捷网络股份有限公司 | 一种报文转发方法、装置、线卡及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113014502B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014502B (zh) | 基于线卡的负载均衡方法及装置 | |
CN113132249A (zh) | 一种负载均衡方法和设备 | |
CN106161256A (zh) | 一种边界网关协议bgp路由的处理方法及装置 | |
CN108259328B (zh) | 报文转发方法及装置 | |
CN112425131B (zh) | 一种acl的规则分类方法、查找方法和装置 | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
CN103338152A (zh) | 一种组播报文转发方法和主控板 | |
US10469368B2 (en) | Distributed routing table system with improved support for multiple network topologies | |
CN110602001B (zh) | 远端环回测试装置及方法 | |
CN101599910B (zh) | 报文发送的方法及设备 | |
CN111654437A (zh) | 基于数据中心的报文转发方法及装置 | |
CN110472216A (zh) | 字段的确定方法、装置、存储介质及电子装置 | |
CN112187636B (zh) | Ecmp路由的存储方法及装置 | |
CN104601645A (zh) | 一种数据包处理方法及装置 | |
CN114640553A (zh) | 一种报文处理方法及装置 | |
CN108093047B (zh) | 数据发送方法、装置、电子设备及中间件系统 | |
CN101980487B (zh) | 一种路由选择出口的方法和装置 | |
CN112751791B (zh) | 报文转发及信息处理方法、装置、电子设备及存储介质 | |
WO2021238628A1 (en) | Packet forwarding incorporating partial sorting of path costs or utilities | |
CN111762552A (zh) | 一种货物分拣方法、装置及系统 | |
EP3166273A1 (en) | Method and apparatus for processing service node ability, service classifier and service controller | |
CN113271223B (zh) | 充电模块的统一通讯管理的方法及终端设备 | |
CN115514702A (zh) | 快速切换链路的方法、装置、电子设备及存储介质 | |
CN112637053B (zh) | 路由的备份转发路径的确定方法及装置 | |
CN105162725B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |