哈希负载均衡方法、装置、设备及介质制造方法及图纸

技术编号:39321006 阅读:13 留言:0更新日期:2023-11-12 16:01
本公开涉及一种哈希负载均衡方法、装置、设备及介质。其中,哈希负载均衡方法包括:获取目标数据包,并提取目标数据包的包头信息;根据包头信息并行计算目标数据包针对不同元组集合对应的多个哈希结果;基于预设流表,在多个哈希结果中确定目标哈希结果和多队列参数;根据目标哈希结果和多队列参数计算目标数据包对应的队列值信息。根据本公开实施例,能够降低数据包处理延迟,提高处理性能。提高处理性能。提高处理性能。

【技术实现步骤摘要】
哈希负载均衡方法、装置、设备及介质


[0001]本公开涉及计算机
,尤其涉及一种哈希负载均衡方法、装置、设备及介质。

技术介绍

[0002]负载均衡是高并发、高可用系统必不可少的关键组件,目标是尽力将网络流量均衡分流到多个服务器或多个处理单元上,以提高系统整体的响应速度和可用性。从支持负载均衡的载体来看,可以将负载均衡分为两类:硬件负载均衡、软件负载均衡。
[0003]相关技术中,硬件负载均衡一般在定制的处理器上运行独立的负载均衡服务器,功能强大,吞吐量高,但是成本昂贵,可扩展性差,软件负载均衡是从软件层面实现负载均衡,成本低廉,可扩展性好,但是延迟较高,处理性能较差,资源占用较多。

技术实现思路

[0004]为了解决上述技术问题,本公开提供了一种哈希负载均衡方法、装置、设备及介质。
[0005]第一方面,本公开提供了一种哈希负载均衡方法,包括:
[0006]获取目标数据包,并提取目标数据包的包头信息;
[0007]根据包头信息并行计算目标数据包针对不同元组集合对应的多个哈希结果;
[0008]基于预设流表,在多个哈希结果中确定目标哈希结果和多队列参数;
[0009]根据目标哈希结果和多队列参数计算目标数据包对应的队列值信息。
[0010]第二方面,本公开提供了一种哈希负载均衡装置,包括:
[0011]数据获取模块,用于获取目标数据包,并提取目标数据包的包头信息;
[0012]第一计算模块,用于根据包头信息并行计算目标数据包针对不同元组集合对应的多个哈希结果;
[0013]数据确定模块,用于基于预设流表,在多个哈希结果中确定目标哈希结果和多队列参数;
[0014]第二计算模块,用于根据目标哈希结果和多队列参数计算目标数据包对应的队列值信息。
[0015]第三方面,本公开提供了一种哈希负载均衡设备,包括:
[0016]处理器;
[0017]存储器,用于存储可执行指令;
[0018]其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现第一方面的哈希负载均衡方法。
[0019]第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面的哈希负载均衡方法。
[0020]本公开实施例提供的技术方案与现有技术相比具有如下优点:
[0021]本公开实施例的哈希负载均衡方法、装置、设备及介质,能够获取目标数据包,并提取目标数据包的包头信息,接着根据包头信息并行计算目标数据包针对不同元组集合对应的多个哈希结果,然后基于预设流表,在多个哈希结果中确定目标哈希结果和多队列参数,最后根据目标哈希结果和多队列参数计算目标数据包对应的队列值信息,由此,可以并行计算得到多个哈希结果,并基于预设流表,确定目标哈希结果和多队列参数,最后计算对应的队列值信息,从而降低数据包处理延迟,提高处理性能。
附图说明
[0022]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0023]图1为本公开实施例提供的一种哈希负载均衡方法的流程示意图;
[0024]图2为本公开实施例提供的另一种哈希负载均衡方法的流程示意图;
[0025]图3为本公开实施例提供的一种哈希负载均衡装置的结构示意图;
[0026]图4为本公开实施例提供的一种哈希负载均衡设备的结构示意图。
具体实施方式
[0027]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0028]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0029]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0030]需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0031]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0032]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0033]基于数据平面开发工具集(Data Plane Development Kit,DPDK)的接收端调整(Receive Side Scaling,RSS)实现是一种纯软件实现的负载均衡方法,通过计算网络数据报文中网络层和传输层不同元组的哈希(hash)值,取hash值的最低有效位,结合中央处理器(Central Processing Unit,CPU)的多队列参数计算数据包的最终队列值,从而将数据包分流到不同的收包队列,以提高收包性能。但是该实现方式是基于纯软件的处理,数据包
处理延迟较大,且处理过程要占用大量资源,处理性能较差。
[0034]为了解决上述问题,本公开实施例提供了一种哈希负载均衡方法、装置、设备及介质。下面结合图1至图2对本公开实施例提供的哈希负载均衡方法进行详细说明。
[0035]图1示出了本公开实施例提供的一种哈希负载均衡方法的流程示意图。
[0036]在本公开实施例中,该哈希负载均衡方法可以由电子设备执行。例如电子设备可以为现场可编程门阵列(Field

Programmable Gate Array,FPGA)网卡设备。
[0037]如图1所示,该哈希负载均衡方法可以包括如下步骤。
[0038]S110、获取目标数据包,并提取目标数据包的包头信息。
[0039]在本公开实施例中,电子设备可以获取目标数据包,并提取目标数据包的包头信息。
[0040]可选地,目标数据包可以为需要进行处理的数据包。
[0041]可选地,包头信息可以为目标数据包的包头包括的信息。其中,包头信息可以包括目标处理单元地址信息、包类型信息和元组信息中的至少一种。
[0042]可选地,目标处理单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种哈希负载均衡方法,其特征在于,包括:获取目标数据包,并提取所述目标数据包的包头信息;根据所述包头信息并行计算所述目标数据包针对不同元组集合对应的多个哈希结果;基于预设流表,在所述多个哈希结果中确定目标哈希结果和多队列参数;根据所述目标哈希结果和所述多队列参数计算所述目标数据包对应的队列值信息。2.根据权利要求1所述的方法,其特征在于,所述包头信息包括目标处理单元地址信息、包类型信息和元组信息中的至少一种。3.根据权利要求1所述的方法,其特征在于,在所述获取目标数据包,并提取所述目标数据包的包头信息之前,所述方法还包括:通过目标软件配置键值和所述预设流表,所述预设流表包括哈希规则和所述多队列参数。4.根据权利要求3所述的方法,其特征在于,所述多队列参数包括队列起始值、队列数目中的至少一种。5.根据权利要求3所述的方法,其特征在于,所述根据所述包头信息并行计算所述目标数据包针对不同元组集合对应的多个哈希结果,包括:根据所述键值,并行计算所述包头信息中的元组信息针对不同元组集合对应的所述多个哈希结果。6.根据权利要求3所述的方法,其特征在于,所述基于预设流表,在所述多个哈希结果中确定目标哈希结果和多队列参数,包括:基于所述预设流表,确定所述包头信息中的包类型信息对应的目标哈希规则,以及所述包头信息中的目标处理单元地址信息对应的所述多队...

【专利技术属性】
技术研发人员:赵博强袁晓飞张昊
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1