一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文的过滤方法及装置、存储介质、电子装置与流程

2022-02-20 06:56:26 来源:中国专利 TAG:


1.本发明涉及通信领域,具体而言,涉及一种报文的过滤方法及装置、存储介质、电子装置。


背景技术:

2.在通信网络中,随着网络设备的不停添加,导致网络报文呈爆发式增长,在带宽受限的情况下,导致网络经常出现拥塞或者风暴。在网络拥塞的情况下,有选择的接受报文,丢弃不必要的报文,控制报文接收速率等抑制网络报文接收的方法,成了一种保证设备正常工作的重要手段。
3.传统的抑制网络报文接收的方法,在设备接收端开启计数器,在一定的时间窗口内对要限定的报文进行统计,超过限定值则对报文进行缓存或者丢包。但是,对报文数量超过限定值后,立即进行丢包处理,导致正在处理该报文的业务异常,从而影响设备的正常运行。
4.针对相关技术中,终端因为接收到大量的报文,超出其处理能力,从而导致设备进入严重的异常状态等问题,尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种报文的过滤方法及装置、存储介质、电子装置,以至少解决相关技术中,终端因为接收到大量的报文,超出其处理能力,从而导致设备进入严重的异常状态等问题。
6.根据本发明的一个实施例,提供了一种报文的过滤方法,包括:在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
7.在一个示例性实施例中,在确定所述所有过滤表的过滤表项中不存在一个或多个目标过滤表的情况下,解析所述终端的缓存表队列中的所有缓存表,其中,所述缓存表包括:所述缓存表项包括:报文类型,优先级;遍历所有缓存表的缓存表项,确定所述所有缓存表的缓存表项中是否存在一个或多个目标缓存表,其中,所述目标缓存表的目标报文类型与所述目标报文的报文类型一致;在确定所述所有缓存表的缓存表项中存在一个或多个目标缓存表的情况下,确定所述目标报文类型对应的目标缓存表,并将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
8.在一个示例性的实施例中,将所述目标报文缓存到所述目标缓存表对应的目标报
文缓存区,包括:确定所述目标报文缓存区的容量是否满足预设条件;在满足预设条件的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
9.在一个示例性的实施例中,确定所述目标报文缓存区的容量是否满足预设条件,包括:确定所述目标报文缓存区缓存的第二报文的数量是否等于第一预设阈值,其中,所述第一预设阈值用于指示所述目标报文缓存区缓存的报文最大数量;在所述目标报文缓存区缓存的第二报文数量小于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量满足预设条件。
10.在一个示例性的实施例中,确定所述目标报文缓存区的容量是否满足预设条件之后,所述方法还包括:在所述目标缓存数据库缓存的第二报文的数量等于所述第一预设阈值的情况下,确定所述目标缓存数据库中缓存的所述第二报文的优先级是否大于所述目标报文的优先级;在所述第二报文的优先级小于所述目标报文的优先级的情况下,丢弃所述第二报文,缓存所述目标报文。
11.在一个示例性的实施例中,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表之前,所述方法还包括:确定接收到的监控报文的数量;在所述监控报文的数量大于过滤水线的情况下,建立所述监控报文对应的过滤表,并将所述监控报文对应的过滤表添加到所述过滤表队列中。
12.在一个示例性实施例中,确定接收到的监控报文的数量之后,所述方法还包括:在所述监控报文的数量小于过滤水线,且所述监控报文的数量大于缓存水线的情况下,建立所述监控报文对应的缓存表,并将所述监控报文对应的缓存表添加到所述缓存表队列中;获取所述监控报文对应的缓存表中的告警通知地址,向所述告警通知地址对应的源端发送告警信息,其中,告警信息用于指示所述告警通知地址对应的源端以预设策略发送所述目标报文。
13.在一个示例性实施例中,确定接收到的监控报文的数量之后,所述方法还包括:在所述监控报文的数量小于所述缓存水线的情况下,确定所述缓存表队列中是否存在所述监控报文对应的缓存表;在所述缓存表队列中是否存在所述监控报文对应的缓存表的情况下,确定所述目标缓存表的延时接收时间;根据所述延时接收时间将所述目标缓存数据中的目标报文写入目标报文对应的网络协议栈。
14.根据本发明的另一个实施例,还提供了一种报文的过滤装置,解析模块,用于在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;确定模块,用于遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;过滤模块,用于在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
15.根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
16.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述
存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
17.通过本发明,提供了一种报文的过滤方法,包括:在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;遍历所有过滤表的过滤表项,确定所述所有过滤表的过滤表项中是否存在与所述目标报文的报文类型一致的目标报文类型;在确定所述所有过滤表的过滤表项中存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文,采用上述方案,解决了相关技术中,终端因为接收到大量的报文,超出其处理能力,从而导致设备进入严重的异常状态等问题,进而在报文流量突发时可以防止报文丢包,在报文流量过大时可以防止对终端产生的冲击性破坏。
附图说明
18.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
19.图1是本发明实施例的一种报文的过滤方法的计算机终端的硬件结构框图;
20.图2是根据本发明实施例的报文的过滤方法的流程图;
21.图3为根据本发明可选实施例的报文的过滤方法的示意图;
22.图4为根据本发明可选实施例的报文的过滤方法的计数器处理流程图;
23.图5是根据本发明实施例的一种报文的过滤装置的结构框图。
具体实施方式
24.下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
25.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“历史”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
26.本技术实施例所提供的方法实施例可以在计算机终端,或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种报文的过滤方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
27.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的计算机终端的报文的过滤方法对应的计算机程序,处理器102通过运行存储
在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
29.在本实施例中提供了一种报文的过滤方法,应用于上述计算机终端,图2是根据本发明实施例的报文的过滤方法的流程图,该流程包括如下步骤:
30.步骤s202,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;
31.需要说明的是,所述过滤表包括:过滤表名,丢包优先级,过滤表项(报文类型,优先级)。
32.步骤s204,遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;
33.步骤s206,在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
34.通过上述步骤,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标报文类型对应的目标过滤表;确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文,采用上述方案,解决了相关技术中,终端因为接收到大量的报文,超出其处理能力,从而导致设备进入严重的异常状态等问题,进而在报文流量突发时可以防止报文丢包,在报文流量过大时可以防止对终端产生的冲击性破坏。
35.在一个示例性实施例中,在确定所述所有过滤表的过滤表项中不存在一个或多个目标过滤表的情况下,解析所述终端的缓存表队列中的所有缓存表,其中,所述缓存表包括:所述缓存表项包括:报文类型,优先级;遍历所有缓存表的缓存表项,确定所述所有缓存表的缓存表项中是否存在一个或多个目标缓存表,其中,所述目标缓存表的目标报文类型与所述目标报文的报文类型一致;在确定所述所有缓存表的缓存表项中存在一个或多个目标缓存表的情况下,确定所述目标报文类型对应的目标缓存表,并将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
36.需要说明的是,确定所述所有缓存表的缓存表项中是否存在与所述目标报文的报文类型一致的目标报文类型,可以理解为:确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型是否一致,在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型一致的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区;在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型不一致的情况下,根据报文优先级确定是否缓存所述目标报文。
37.在一个示例性的实施例中,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区,包括:确定所述目标报文缓存区的容量是否满足预设条件;在满足预设条件的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
38.也就是说,判断目标报文缓存区的容量与预设条件之间的关系,在目标报文缓存区的容量满足预设条件的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
39.具体地,确定所述目标报文缓存区缓存的第二报文的数量是否等于第一预设阈值,其中,所述第一预设阈值用于指示所述目标报文缓存区缓存的报文最大数量;在所述目标报文缓存区缓存的第二报文数量小于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量满足预设条件。
40.也就是说,判断目标报文缓存区的容量与预设条件之间的关系,具体通过以下方式:在目标报文缓存区缓存的第二报文的数量小于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量满足预设条件;在目标报文缓存区缓存的第二报文的数量等于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量不满足预设条件。
41.在一个示例性的实施例中,确定所述目标报文缓存区的容量是否满足预设条件之后,在所述目标缓存数据库缓存的第二报文的数量等于所述第一预设阈值的情况下,确定所述目标缓存数据库中缓存的所述第二报文的优先级是否大于所述目标报文的优先级;在所述第二报文的优先级小于所述目标报文的优先级的情况下,丢弃所述第二报文,缓存所述目标报文。进一步地,在目标报文缓存区缓存的第二报文的数量等于所述第一预设阈值的情况下,即在所述目标报文缓存区的容量不满足预设条件的情况下,确定第二报文的优先级和目标报文的优先级,比较所述第二报文的优先级和目标报文的优先级的大小关系,在大小关系指示所述第二报文的优先级大于目标报文的优先级的情况下,丢弃所述目标报文;在大小关系指示所述第二报文的优先级小于目标报文的优先级的情况下,丢弃所述第二报文,缓存目标报文。
42.进一步的,在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型不一致,且在所述目标报文的报文类型与所述目标过滤表中的目标报文类型不一致的情况下,正常处理目标报文。
43.在一个示例性的实施例中,解析过滤表队列中的目标过滤表之前,确定接收到的监控报文的数量;在所述监控报文的数量大于过滤水线的情况下,建立所述监控报文对应的过滤表,并将所述监控报文对应的过滤表添加到所述过滤表队列中。
44.也就是说,确定接收到的监控报文的数量,在接收到的监控报文的数量大于过滤水线的情况下,为所述监控报文建立过滤表,将过滤表添加到过滤表队列中,并将过滤表的丢包优先级设置为小于第二预设阈值的优先级,若过滤表队列中已经存在过滤表的情况
下,将过滤表的丢包优先级加一,在过滤表的优先级大于第三预设阈值的情况下,将过滤表对应的报文全部丢弃。
45.在一个示例性的实施例中,在所述监控报文的数量小于过滤水线,且所述监控报文的数量大于缓存水线的情况下,建立所述监控报文对应的缓存表,并将所述监控报文对应的缓存表表添加到所述缓存表队列中;获取所述监控报文对应的缓存表中的告警通知地址,向所述告警通知地址对应的源端发送告警信息,其中,告警信息用于指示所述告警通知地址对应的源端以预设策略发送所述目标报文。
46.进一步的,监控报文的数量小于过滤水线,且所述监控报文的数量大于缓存水线的情况下,建立监控报文对应的缓存表,并将所述监控报文对应的缓存表添加到所述缓存表队列中,并确定所述监控报文对应的缓存表中的告警通知地址,将告警信息通过udp报文发送给告警通知地址对应的源端,被通知的源端收到告警信息后,根据告警信息中的缓存表的内容和预定的策略进行报文流控制,若缓存表队列中已经存在所述监控报文对应的缓存表的情况下,直接将告警信息通过udp报文发送给告警通知地址对应的源端。
47.在一个示例性实施例中,确定接收到的监控报文的数量之后,在所述监控报文的数量小于所述缓存水线的情况下,确定所述缓存表队列中是否存在所述监控报文对应的缓存表;在所述缓存表队列中是否存在所述监控报文对应的缓存表的情况下,确定所述监控报文对应的缓存表的延时接收时间;根据所述延时接收时间将所述监控报文对应的缓存表中的目标报文写入目标报文对应的网络协议栈。
48.即读取所述监控报文对应的缓存表的延时接收时间,根据读取的延时接收时间开启延时任务处理工作队列,将所述监控报文对应的缓存表对应的目标报文缓存区中的报文,读入网络协议栈,同时将该监控报文对应的缓存表的缓存状态置为空,将所述监控报文对应的缓存表移出缓存队列。
49.进一步的,在关闭目标过滤表的情况下,将目标过滤表的丢包优先级调整到低于第二预设阈值的优先级,同时将目标过滤表移出过滤表队列。根据内存使用率或者中央处理器的使用率,动态调整过滤水线和缓存水线。
50.为了更好的理解上述报文的过滤方法的过程,以下结合可选实施例对上述报文的过滤方法流程进行说明,但不用于限定本发明实施例的技术方案。
51.本发明实施例提供了一种报文的过滤方法,该方法通过报文接收处理流程和报文监控计数器处理流程,基于预先设置的过滤水线、缓存水线和对应的缓存表、过滤表,实现对中央处理器的接收报文的缓存,告警通知,丢弃。从而实现对报文接收的控制,可以根据不同的应用场景灵活的控制网络报文对设备的冲击。详细过程,如下所示:
52.图3为根据本发明可选实施例的报文的过滤方法的示意图,如图3所示,报文接收处理流程的具体步骤如下:
53.步骤s301:对接收到的监控报文(相当于上述实施例中的目标报文)进行计数;
54.步骤s302:读取过滤表队列中的所有过滤表,并解析所有过滤表;
55.步骤s303:确定过滤表队列中过滤表的过滤表项是否存在与监控报文的报文类型一致的目标报文类型,如果存在且满足过滤条件的情况下,执行步骤s304;如果不存在或不满足过滤条件的情况下,执行步骤s305;
56.其中,所述过滤条件为:目标过滤表的第二报文的优先级大于监控报文的报文优
先级。
57.步骤s304:丢弃监控报文,终止剩余的报文接收流程;
58.步骤s305:读取缓存表队列中的所有缓存表,并解析所有缓存表;
59.步骤s306:确定所有缓存表中缓存表的缓存表项是否存在与监控报文的报文类型一致的目标报文类型,如果存在且满足缓存条件的情况下,执行步骤s307;如果不存在或不满足缓存条件的情况下,执行步骤s308;
60.其中,预设条件为:目标缓存表对应的目标报文缓存区的容量有剩余或者监控报文的报文优先级大于目标报文缓存区中第一报文的报文优先级。
61.步骤s307:缓存监控报文,终止剩余的报文接收流程;
62.步骤s308:在监控报文不匹配缓存表且不匹配过滤表的情况下,进入正常的收报流程。
63.上述步骤s305中,通过以下方式解析目标缓存表:
64.读取目标缓存表保存的通知地址(相当于上述实施例中的告警通知地址),向通知地址发送告警信息,信息的内容为该缓存表的内容,被通知的设备(相当于上述实施例中的源端)接收到告警信息后,根据缓存表的内容和预定的策略进行报文流控制,以使被通知的设备减少报文的发送。其次,在接收到监控报文的情况下,匹配监控报文与目标缓存表的报文类型,将匹配的监控报文缓存到目标缓存表分配的缓存中。最后,在目标报文保存到目标缓存表分配的缓存的过程中,先读取目标缓存表保存的缓存报文数大小,判断为该内部缓存表分配的缓存数目是否已经达到上限。如果分配的缓存数目已经达到上限,判断已保存的报文的优先级与目标报文的优先级的大小关系,在大小关系指示所述已保存的报文的优先级小于的目标报文的优先级,释放空间给目标报文,如果已保存的报文的优先级大于的目标报文的优先级,则丢弃该目标报文。
65.上述步骤s302中,通过以下方式解析目标过滤表:
66.根据目标过滤表的报文的优先级,先丢弃优先级最低的报文,下一个周期,继续丢弃优先级最低的报文进行丢弃,直到目标过滤表里面的保存的报文都被丢弃。
67.图4为根据本发明可选实施例的报文的过滤方法的计数器处理流程图,如图4所示,计数器处理流程可以通过以下步骤实现:
68.步骤s401:对监控报文计数,读取监控报文计数器,判断监控报文计数值;
69.步骤s402:判断监控报文计数值是否大于过滤水线;在监控报文计数值大于过滤水线的情况下,执行步骤s403,在监控报文计数值小于过滤水线的情况下,执行步骤s404;
70.步骤s403:将监控报文对应的目标过滤表添加到过滤表队列中,将过滤表的丢包优先级设置为小于第二预设阈值的优先级,若监控报文对应的目标过滤表已经在过滤表队列中,将目标过滤表的丢包优先级加一,直至大于第三预设阈值,将目标过滤表对应的报文丢弃;
71.步骤s404:判断监控报文计数值是否大于缓存水线;在监控报文计数值大于缓存水线的情况下,执行步骤s405,在监控报文计数值小于缓存水线的情况下,执行步骤s406;
72.步骤s405:将监控报文对应的目标缓存表添加到缓存表队列中,将告警信息通过udp报文发送给告警通知地址对应的源端,若监控报文对应的目标缓存表已经在缓存表队列中,直接将告警信息通过udp报文发送给告警通知地址对应的源端;
73.步骤s406:若监控报文对应的目标缓存表已经在缓存表队列中,将目标缓存表从缓存表队列中取出,关闭目标缓存表;
74.步骤s407:若监控报文对应的目标过滤表已经在过滤表队列中,将目标过滤表从过滤表队列中取出,关闭目标过滤表;
75.步骤s408:对监控报文计数器进行清零。
76.具体的,步骤s406中关闭目标缓存表的方式如下:
77.读取目标缓存表的延时接收时间,根据读取的延时接收时间开启延时任务处理工作队列,将目标缓存表中的报文,读入网络协议栈,同时将目标缓存表的缓存状态置为空,将目标缓存表移出缓存表队列。
78.具体的,步骤s407中关闭目标过滤表的方式如下:
79.将目标过滤表的丢包优先级调整到低于第二预设阈值的优先级,同时将目标过滤表移出过滤表队列。
80.进一步的,还可以根据内存使用率或者中央处理器的使用率,动态调整过滤水线和缓存水线。
81.综上,通过开启定时器对特定报文数量进行统计,当超过设置的缓存水线触发报文缓存动作和告知远端设备抑制动作,当超过报文过滤水线触发报文过滤动作。利用本发明实施例,在报文流量突发时可以防止报文丢包,在报文流量过大时可以防止对设备产生的冲击性破坏。
82.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
83.在本实施例中还提供了一种报文的过滤装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
84.图5是根据本发明实施例的一种报文的过滤装置的结构框图;如图5所示,包括:
85.解析模块52,用于在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;
86.需要说明的是,目标缓存表包括:缓存表名,告警通知地址,报文缓存大小,缓存报文延时接收时间,缓存表项(报文类型,优先级)。
87.确定模块54,用于遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;
88.需要说明的是,所述过滤表包括:过滤表名,丢包优先级,过滤表项(报文类型,优先级)
89.过滤模块56,用于在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
90.通过上述模块,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;遍历所有过滤表的过滤表项,确定所述所有过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标报文类型对应的目标过滤表;确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文,采用上述方案,解决了相关技术中,终端因为接收到大量的报文,超出其处理能力,从而导致设备进入严重的异常状态等问题,进而在报文流量突发时可以防止报文丢包,在报文流量过大时可以防止对终端产生的冲击性破坏。
91.在一个示例性实施例中,上述装置还包括:缓存模块,用于解析所述终端的缓存表队列中的所有缓存表,其中,所述缓存表包括:所述缓存表项包括:报文类型,优先级;遍历所有缓存表的缓存表项,确定所述所有缓存表的缓存表项中是否存在一个或多个目标缓存表,其中,所述目标缓存表的目标报文类型与所述目标报文的报文类型一致;在确定所述所有缓存表的缓存表项中存在一个或多个目标缓存表的情况下,确定所述目标报文类型对应的目标缓存表,并将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
92.需要说明的是,确定所述所有缓存表的缓存表项中是否存在与所述目标报文的报文类型一致的目标报文类型,可以理解为:确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型是否一致,在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型一致的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区;在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型不一致的情况下,根据报文优先级确定是否缓存所述目标报文。
93.在一个示例性的实施例中,缓存模块,还用于确定所述目标报文缓存区的容量是否满足预设条件;在满足预设条件的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
94.也就是说,判断目标报文缓存区的容量与预设条件之间的关系,在目标报文缓存区的容量满足预设条件的情况下,将所述目标报文缓存到所述目标缓存表对应的目标报文缓存区。
95.具体地,确定模块,还用于确定所述目标报文缓存区缓存的第二报文的数量是否等于第一预设阈值,其中,所述第一预设阈值用于指示所述目标报文缓存区缓存的报文最大数量;在所述目标报文缓存区缓存的第二报文数量小于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量满足预设条件。
96.也就是说,判断目标报文缓存区的容量与预设条件之间的关系,具体通过以下方式:在目标报文缓存区缓存的第二报文的数量小于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量满足预设条件;在目标报文缓存区缓存的第二报文的数量等于所述第一预设阈值的情况下,确定所述目标报文缓存区的容量不满足预设条件。
97.在一个示例性的实施例中,缓存模块,还用于在所述目标缓存数据库缓存的第二报文的数量等于所述第一预设阈值的情况下,确定所述目标缓存数据库中缓存的所述第二报文的优先级是否大于所述目标报文的优先级;在所述第二报文的优先级小于所述目标报文的优先级的情况下,丢弃所述第二报文,缓存所述目标报文。
98.进一步地,在目标报文缓存区缓存的第二报文的数量等于所述第一预设阈值的情况下,即在所述目标报文缓存区的容量不满足预设条件的情况下,确定第二报文的优先级和目标报文的优先级,比较所述第二报文的优先级和目标报文的优先级的大小关系,在大小关系指示所述第二报文的优先级大于目标报文的优先级的情况下,丢弃所述目标报文;在大小关系指示所述第二报文的优先级小于目标报文的优先级的情况下,丢弃所述第二报文,缓存目标报文。
99.进一步的,上述装置还包括,处理模块,用于在确定所述目标报文的报文类型与所述目标缓存表中的目标报文类型不一致,且在所述目标报文的报文类型与所述目标过滤表中的目标报文类型不一致的情况下,正常处理目标报文。
100.在一个示例性的实施例中,上述装置还包括,建立模块,用于解析过滤表队列中的目标过滤表之前,确定接收到的监控报文的数量;在所述监控报文的数量大于过滤水线的情况下,建立所述监控报文对应的过滤表,并将监控报文对应的目标过滤表添加到所述过滤表队列中。
101.也就是说,确定接收到的监控报文的数量,在接收到的监控报文的数量大于过滤水线的情况下,为所述监控报文建立对应的过滤表,将监控报文对应的过滤表添加到过滤表队列中,并将监控报文对应的过滤表的丢包优先级设置为小于第二预设阈值的优先级,若过滤表队列中已经存在监控报文对应的过滤表的情况下,将监控报文对应的过滤表的丢包优先级加一,在监控报文对应的过滤表的优先级大于第三预设阈值的情况下,将监控报文对应的过滤表对应的报文全部丢弃。
102.在一个示例性的实施例中,建立模块,还用于在所述监控报文的数量小于过滤水线,且所述监控报文的数量大于缓存水线的情况下,建立所述监控报文对应的缓存表,并将所述监控报文对应的缓存表添加到所述缓存表队列中;获取监控报文对应的缓存表中的告警通知地址,向所述告警通知地址对应的源端发送告警信息,其中,告警信息用于指示所述告警通知地址对应的源端以预设策略发送所述目标报文。
103.进一步的,监控报文的数量小于过滤水线,且所述监控报文的数量大于缓存水线的情况下,建立监控报文对应的缓存表,并将所述监控报文对应的缓存表添加到所述缓存表队列中,并确定监控报文对应的缓存表中的告警通知地址,将告警信息通过udp报文发送给告警通知地址对应的源端,被通知的源端收到告警信息后,根据告警信息中的缓存表的内容和预定的策略进行报文流控制,若缓存表队列中已经存在监控报文对应的缓存表的情况下,直接将告警信息通过udp报文发送给告警通知地址对应的源端。
104.在一个示例性实施例中,处理模块,还用于在所述监控报文的数量小于所述缓存水线的情况下,确定所述缓存表队列中是否存在所述监控报文对应的缓存表;在所述缓存表队列中是否存在所述监控报文对应的缓存表的情况下,确定所述监控报文对应的缓存表的延时接收时间;根据所述延时接收时间将所述目标缓存数据中的目标报文写入目标报文对应的网络协议栈。
105.即读取目标缓存表的延时接收时间,根据读取的延时接收时间开启延时任务处理工作队列,将监控报文对应的缓存表对应的目标报文缓存区中的报文,读入网络协议栈,同时将该监控报文对应的缓存表的缓存状态置为空,将监控报文对应的缓存表移出缓存队列。
106.进一步的,在关闭目标过滤表的情况下,将监控报文对应的过滤表的丢包优先级调整到低于第二预设阈值的优先级,同时将监控报文对应的过滤表移出过滤表队列。根据内存使用率或者中央处理器的使用率,动态调整过滤水线和缓存水线。
107.为了更好的理解上述报文的过滤方法的过程,以下结合可选实施例对上述报文的过滤方法流程进行说明,但不用于限定本发明实施例的技术方案。
108.本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
109.在一个示例性实施例中,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
110.s1,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;
111.s2,遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;
112.s3,在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
113.在一个示例性实施例中,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
114.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
115.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
116.在一个示例性实施例中,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
117.s1,在终端接收到目标报文的情况下,解析所述终端的过滤表队列中的所有过滤表,其中,所述过滤表包括:过滤表项,所述过滤表表项包括:报文类型,报文优先级;
118.s2,遍历所有所述过滤表的过滤表项,确定所有所述过滤表的过滤表项中是否存在一个或多个目标过滤表,其中,所述目标过滤表的目标报文类型与所述目标报文的报文类型一致;
119.s3,在确定所有所述过滤表的过滤表项中存在一个或多个目标过滤表的情况下,确定所述目标过滤表中的第一报文的优先级是否小于目标报文的报文优先级,在所述第一报文的优先级小于目标报文的报文优先级的情况下,丢弃所述第一报文。
120.在一个示例性实施例中,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
121.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在一个示例性实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
122.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献