System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及网络通信,具体涉及一种网卡限速方法、装置、可读存储介质及计算机程序产品。
技术介绍
1、在当前云计算服务中,为保证多租户的服务质量,通常需要对单个云主机进行网络带宽及转发率的限制处理,目前数据处理器(data processing unit,dpu)等智能网卡已将限速功能卸载到专用芯片或现场可编程逻辑门阵列(field-programmable gate array,fpga)等硬件处理,因为很多网络应用场景对于延迟十分敏感,所以降低网卡数据包处理时延也是网络流量处理重要的实现目标。为了给客户更好的使用体验,网络流量的限速精度也要保证在一定的误差范围之内。
2、当前网络限速需求主要集中在根据网络限速值和待转发数据包的长度,合理规划发送序列,使得每个单位传输时间内的带宽被最大程度利用,而不会超出网络限速值规定的带宽,避免网络的抖动,使网络流量传输平滑,常见的限速处理功能都有较大的缓存模块,用于流量缓存同时实现流量整形及均衡,因此也有以下几个缺点:缺点1:处理过程中因为过多的缓存和处理会导致较大的网络延迟;缺点2:过多的缓存会占用系统存储资源;缺点3:很多情况下网络数据包需要进行包长相关的处理,例如剥除或添加外层虚拟扩展局域网(vxlan)协议,如果不在数据出口处对数据包进行统计限速,则忽略了该误差,会导致限速精度下降。
技术实现思路
1、本申请的至少一个实施例提供了一种网卡限速方法、装置、可读存储介质及计算机程序产品,用于解决现有技术中过多的数据包缓存会导致硬件
2、为了解决上述技术问题,本申请是这样实现的:
3、第一方面,本申请实施例提供了一种网卡限速方法,包括:
4、获取待限速处理的分组数据流,将所述分组数据流分别输入第一路径和第二路径;
5、在所述第一路径中,计算所述分组数据流所对应的分组限速结果,并将所述分组限速结果进行缓存,形成限速缓存结果集合;所述分组限速结果为丢弃分组数据的结果或保留分组数据的结果;
6、在所述第二路径中,根据所述限速缓存结果集合中当前分组数据对应的缓存结果,执行相应的限速处理。
7、可选的,在所述第一路径中,计算所述分组数据流所对应的分组限速结果,并将所述分组限速结果进行缓存,形成限速缓存结果集合,包括:
8、在所述第一路径中,对所述分组数据流中的分组数据进行分组数据统计,确定统计结果;
9、计算所述统计结果中每组数据包所对应的分组限速结果;
10、将每组所述分组限速结果进行缓存,形成限速缓存结果集合。
11、可选的,将所述分组限速结果进行缓存,形成限速缓存结果集合后,所述方法还包括:
12、对所述限速缓存结果集合所有的分组限速结果或目标分组限速结果设置定时清除;所述定时清除用于将当前结果设置为保留分组数据的结果;所述目标分组限速结果为所有的分组限速结果中的一个分组结果;
13、在所述定时清除后,在所述限速缓存结果集合中更新对应的分组限速结果。
14、可选的,对所述第二分组数据进行分组数据统计,确定统计结果,包括:
15、根据输出速率,对所述分组数据流中的分组数据,按照包数据和包长进行分组数据统计,确定所述统计结果;所述统计结果包括实时输出结果或预设时长输出结果;
16、其中,所述实时输出结果用于表示含有包数量和实际包长的统计结果;所述预设时长输出结果用于表示预设时长内的分组数据的统计结果,且不含有实际数据包。
17、可选的,计算所述统计结果中每组数据包所对应的分组限速结果,包括:
18、计算每组数据包的速率和带宽是否超出预设配置限速值;
19、在超过所述预设配置限速值,确定当前数据包的分组限速结果为丢弃分组数据的结果;
20、在未超过所述预设配置限速值,确定当前数据包的分组限速结果为保留分组数据的结果。
21、可选的,获取待限速处理的分组数据流,将所述分组数据流分别输入第一路径和第二路径,包括:
22、获取待限速处理的分组数据流;
23、依据所述待限速处理的分组数据流中每组数据所属网络设备编号进行映射,获取映射后的分组信息;所述分组信息包括组编号和组编号对应的组数据;
24、将所述分组信息分别输入第一路径和第二路径。
25、可选的,在所述第二路径中,根据所述限速缓存结果集合中当前分组数据对应的缓存结果,执行相应的限速处理,包括:
26、在所述第二路径中,若所述当前分组数据为第一组数据,则确定所述当前分组数据对应的第一缓存结果为保留分组数据的结果,执行输出所述当前分组数据的操作;或者,
27、在所述第二路径中,若所述当前分组数据为非第一组数据,根据所述限速缓存结果集合中确定所述当前分组数据对应的第二缓存结果;
28、在所述第二缓存结果指示为丢弃分组数据的结果,执行丢弃所述第二缓存结果所对应的当前分组数据的操作;
29、在所述第二缓存结果指示为保留分组数据的结果,执行输出所述第一缓存结果所对应的当前分组数据的操作。
30、第二方面,本申请实施例还提供一种网卡限速装置,包括:
31、第一获取模块,用于获取待限速处理的分组数据流,将所述分组数据流分别输入第一路径和第二路径;
32、第一处理模块,用于在所述第一路径中,计算所述分组数据流所对应的分组限速结果,将所述分组限速结果进行缓存,形成限速缓存结果集合;所述分组限速结果为丢弃分组数据的结果或保留分组数据的结果;
33、第二处理模块,用于在所述第二路径中,根据所述限速缓存结果集合中当前分组数据对应的缓存结果,执行相应的限速处理。
34、第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的网卡限速方法的步骤。
35、第四方面,本申请实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上所述的网卡限速方法的步骤。
36、与现有技术相比,本申请实施例提供的网卡限速方法、装置、可读存储介质及计算机程序产品,该方法包括获取待限速处理的分组数据流,将分组数据流分别输入第一路径和第二路径,在第一路径中,计算分组数据流所对应的分组限速结果,并将分组限速结果进行缓存,形成限速缓存结果集合,在第二路径中,根据限速缓存结果集合中当前分组数据对应的缓存结果,执行相应的限速处理,本申请将计算路径与处理路径隔离设计,第一路径为计算路径,第二路径为处理路径,两个路径均是独立处理的,计算路径不影响处理路径延迟,对于降低网络路径延迟极为可观。
本文档来自技高网...【技术保护点】
1.一种网卡限速方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述第一路径中,计算所述分组数据流所对应的分组限速结果,并将所述分组限速结果进行缓存,形成限速缓存结果集合,包括:
3.根据权利要求1所述的方法,其特征在于,将所述分组限速结果进行缓存,形成限速缓存结果集合后,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,在所述第一路径中,对所述分组数据流中的分组数据进行分组数据统计,确定统计结果,包括:
5.根据权利要求2所述的方法,其特征在于,计算所述统计结果中每组数据包所对应的分组限速结果,包括:
6.根据权利要求1所述的方法,其特征在于,获取待限速处理的分组数据流,将所述分组数据流分别输入第一路径和第二路径,包括:
7.根据权利要求1所述的方法,其特征在于,在所述第二路径中,根据所述限速缓存结果集合中当前分组数据对应的缓存结果,执行相应的限速处理,包括:
8.一种网卡限速装置,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的网卡限速方法的步骤。
...【技术特征摘要】
1.一种网卡限速方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述第一路径中,计算所述分组数据流所对应的分组限速结果,并将所述分组限速结果进行缓存,形成限速缓存结果集合,包括:
3.根据权利要求1所述的方法,其特征在于,将所述分组限速结果进行缓存,形成限速缓存结果集合后,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,在所述第一路径中,对所述分组数据流中的分组数据进行分组数据统计,确定统计结果,包括:
5.根据权利要求2所述的方法,其特征在于,计算所述统计结果中每组数据包所对应的分组限速结果,包括:
6.根据权利要求1所述的方法...
【专利技术属性】
技术研发人员:王立,牛广,谢友玲,周昱杰,温涛华,
申请(专利权)人:中移苏州软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。