本技术涉及芯片,特别是涉及一种报文处理方法、装置、芯片、设备、存储介质及程序产品。
背景技术:
1、可编程拥塞控制(pcc,programmable congestion control)框架允许用户结合实际应用场景,使能pcc框架所包含的各种事件信号,自行设计和实现拥塞控制算法,从而给予用户巨大的灵活性以实现最优拥塞控制解决方案,来处理服务器集群的拥塞问题。
2、相关技术中,支持pcc框架的设备基于事件-响应模型工作,然而,当前pcc事件上报全部集中在源端,接收端pcc框架不运行,报文处理事件对应的处理算法的可扩展性较低,用户难以灵活地开发接收端驱动的拥塞控制算法。
技术实现思路
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、若所述提交子队列中的事件数量小于第一数量阈值时,所述过滤模块将所述活动子队列中的事件请求发送至所述提交子队列,以使所述算法执行模块读取所述提交子队列中的事件请求。
37、在其中一个实施例中,在所述过滤模块通过所述活动子队列对所述事件请求进行聚合之后,所述方法还包括:
38、所述过滤模块根据所述事件聚合的类型,生成聚合后的事件请求的事件信息;其中,所述事件聚合的类型包括累加型和覆盖型。
39、在其中一个实施例中,所述方法还包括:
40、若所述事件请求队列中的事件数量已满,所述过滤模块根据事件丢弃配置信息,丢弃所述事件请求队列中的事件请求,或者,所述过滤模块向所述接收模块发送指示信息,所述指示信息用于指示所述接收模块停止向所述过滤模块发送所述报文处理事件。
41、在其中一个实施例中,所述通过热升级启动所述算法执行模块中的算法进程,包括:
42、管控模块将所述处理算法对应的编译文件存放在目标存储位置,以使所述报文处理设备的处理器通过在所述目标存储位置中获取并加载所述编译文件,启动所述算法进程。
43、第二方面,本技术提供了一种报文处理装置。所述报文处理装置包括接收模块、发送模块、过滤模块和算法执行模块;
44、所述接收模块,用于接收待处理报文,并根据所述待处理报文的类型,触发所述待处理报文对应的报文处理事件;
45、所述过滤模块,用于根据预置的事件使能信息,过滤所述报文处理事件中的未使能事件,并向所述算法执行模块发送事件请求,所述事件请求中包括有过滤后的报文处理事件的事件信息;
46、所述算法执行模块,用于根据所述事件信息,执行所述过滤后的报文处理事件的处理算法,得到事件响应信息,并通过所述过滤模块将所述事件响应信息发送给所述发送模块;
47、所述发送模块,用于根据所述事件响应信息调节报文发送行为。
48、第三方面,本技术还提供了一种芯片,所述芯片包括如第二方面所述的报文处理装置。
49、第四方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的报文处理方法。
50、第五方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的报文处理方法。
51、第六方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面的报文处理方法。
52、上述报文处理方法、装置、芯片、设备、存储介质及程序产品,该报文处理方法应用于报文处理设备,报文处理设备包括接收模块、发送模块、过滤模块和算法执行模块。接收模块接收待处理报文,并根据待处理报文的类型,触发待处理报文对应的报文处理事件。过滤模块根据预置的事件使能信息,过滤报文处理事件中的未使能事件,并向算法执行模块发送事件请求,事件请求中包括有过滤后的报文处理事件的事件信息。算法执行模块根据事件信息,执行过滤后的报文处理事件的处理算法,得到事件响应信息,并通过过滤模块将事件响应信息发送给发送模块。发送模块根据事件响应信息调节报文发送行为。该报文处理设备可以为报文接收端,由于在报文接收端进行事件的处理,从而使得报文接收端支持可编程拥塞控制框架,具备事件上报与响应能力,从而有效提高了报文处理事件对应的处理算法的可扩展性。