本发明涉及数据处理,特别是涉及一种数据包的处理方法、系统、设备及存储介质。
背景技术:
1、近年来,随着各种协议的发展,包括网络、蓝牙、usb(universal serial bus,通用串行总线)设备等各种物联网设备需要处理的协议越来越多,导致软件代码的空间越来越大,与soc(system on chip,片上系统)的有限存储空间形成矛盾。
2、目前,嵌入式soc的固件代码一般放在非易失的flash或者rom(read-onlymemory,只读存储器)上,其特点是断电可保存,但是速度较慢,因此,在上电后,需要把固件代码拷贝到速度更快的ram(random access memory,随机存取存储器)上运行,ram的特点是速度快,但是面积较大,面积大意味着成本更高,但是在soc中由于体积受限,使得ram的空间都比较小。在网络协议不断发展的情况下,固件需要支持新的协议时,固件的代码大小就需要不断扩展,最终导致无法完全拷贝到ram运行。对此,在目前的方案中,通常是修改编译选项,对固件所支持的协议或者其他功能进行删减,使得删减之后的固件代码可以完全拷贝到ram中运行,但是这样的方案会牺牲固件代码的功能全面性。
3、综上所述,如何在存储空间受限的情况下,有效地实现不同协议的数据包的处理,是目前本领域技术人员急需解决的技术问题。
技术实现思路
1、本发明的目的是提供一种数据包的处理方法、系统、设备及存储介质,以存储空间受限的情况下,有效地实现不同协议的数据包的处理。
2、为解决上述技术问题,本发明提供如下技术方案:
3、第一方面,本发明提供了一种数据包的处理方法,包括:
4、接收待处理的数据包;
5、确定出所述数据包的数据包类型以及应用层协议类型;
6、判断在内存中的为所述数据包类型所配置的存储空间中,是否存在用于处理具有所述应用层协议类型的数据包的协议解析文件;
7、如果是,则基于所述协议解析文件处理所述数据包;
8、如果否,则从预设的非易失性存储器中读取用于处理具有所述应用层协议类型的数据包的协议解析文件,并写入为所述数据包类型所配置的存储空间中,并基于写入的所述协议解析文件处理所述数据包;
9、其中,对于任意一种数据包类型,在内存中为所述数据包类型所配置的存储空间的容量,低于在所述非易失性存储器中被属于所述数据包类型的各个应用层协议类型所对应的协议解析文件所占用的容量总和。
10、在一种实施方式中,在确定出所述数据包的数据包类型以及应用层协议类型之后,还包括:
11、判断所述应用层协议类型是否属于指定的协议类型库中的应用层协议类型;
12、如果是,则基于在内存的主存储区域中存储的协议解析文件处理所述数据包。
13、在一种实施方式中,至少一种所述数据包类型的存储空间,为预先通过第一配置方式所得到的存储空间,且通过所述第一配置方式得到存储空间的操作包括:
14、预先确定出为所述数据包类型所配置的存储空间的容量x;
15、确定出属于所述数据包类型的n个应用层协议类型所对应的n种协议解析文件各自的容量;其中,n表示的是属于所述数据包类型的应用层协议类型的总数量;
16、在容量x的存储空间中划分出容量y的子存储空间,以使得当从所述非易失性存储器中读取出第1协议解析文件时,将所述第1协议解析文件写入至容量y的子存储空间中;其中,所述第1协议解析文件表示的是所述数据包类型的n个应用层协议类型所对应的n种协议解析文件中,容量最大的协议解析文件;y表示的是所述第1协议解析文件的容量;
17、对于剩余的容量为x-y的存储空间,按照存储剩余的n-1种协议解析文件中的最多种协议解析文件的原则,将容量为x-y的存储空间划分为1个或多个子存储空间,以使得对于任意1种参与划分的协议解析文件,当从所述非易失性存储器中读取出该种协议解析文件时,将该种协议解析文件写入至为该种协议解析文件所划分的子存储空间中,并且使得对于任意1种未参与划分的协议解析文件,当从所述非易失性存储器中读取出该种协议解析文件时,将该种协议解析文件写入至容量不低于该种协议解析文件的子存储空间中。
18、在一种实施方式中,至少一种所述数据包类型的存储空间,为预先通过第二配置方式所得到的存储空间,且通过所述第二配置方式得到存储空间的操作包括:
19、预先确定出为所述数据包类型所配置的存储空间的容量x;
20、确定出属于所述数据包类型的n个应用层协议类型所对应的n种协议解析文件各自的容量;其中,n表示的是属于所述数据包类型的应用层协议类型的总数量;
21、按照优先存储更大容量的协议解析文件的原则,将容量为x的存储空间划分为1个或多个子存储空间,以使得对于任意1种参与划分的协议解析文件,当从所述非易失性存储器中读取出该种协议解析文件时,将该种协议解析文件写入至为该种协议解析文件所划分的子存储空间中,并且使得对于任意1种未参与划分的协议解析文件,当从所述非易失性存储器中读取出该种协议解析文件时,将该种协议解析文件写入至容量不低于该种协议解析文件的子存储空间中。
22、在一种实施方式中,至少一种所述数据包类型的存储空间,为预先通过第三配置方式所得到的存储空间,且通过所述第三配置方式得到存储空间的操作包括:
23、预先确定出为所述数据包类型所配置的存储空间的容量x;
24、通过仿真的方式或者实际数据监测的方式,获取一组时间上连续的,且类型均符合所述数据包类型的数据包,作为一组待分析数据包;
25、确定出所述一组待分析数据包中的各个数据包各自的应用层协议类型,并进行统计分析,确定出不同应用层协议类型的交替情况;
26、基于所述交替情况,按照如果接收到所述一组待分析数据包,在处理所述一组待分析数据包时,从所述非易失性存储器中读取协议解析文件的次数达到最低为划分原则,将容量为x的存储空间划分为1个或多个子存储空间,以使得进行了划分之后,当从所述非易失性存储器中读取属于所述数据包类型的各个应用层协议类型所对应的协议解析文件时,将该种协议解析文件写入至对应于该种协议解析文件的子存储空间中。
27、在一种实施方式中,还包括:
28、确定出所述一组待分析数据包中的各个数据包各自的应用层协议类型,并进行统计分析,确定出出现概率最高的应用层协议类型;
29、在容量x的存储空间中设置独占空间,以使得所述独占空间为出现概率最高的应用层协议类型所对应的协议解析文件所独占的子存储空间。
30、在一种实施方式中,还包括:
31、通过仿真的方式或者实际数据监测的方式,获取一组时间上连续的,且类型均符合所述数据包类型的数据包,作为一组待分析数据包;
32、确定出所述一组待分析数据包中的各个数据包各自的应用层协议类型,并进行统计分析,确定出发生概率超过第一阈值的全部a-b情况的类型;其中,a-b情况表示的是如果前一个数据包的应用层协议类型所对应的协议解析文件为a,则后一个数据包的应用层协议类型所对应的协议解析文件为b;
33、对于全部a-b情况的类型,当协议解析文件为a与协议解析文件为b对应的是同一子存储空间时,将该种a-b情况进行删除;
34、对于剩余的各个a-b情况,当从预设的非易失性存储器中读取协议解析文件a,且当前的内存中不存在协议解析文件b时,从预设的非易失性存储器中读取协议解析文件b,并将协议解析文件b写入对应于协议解析文件b的子存储空间中。
35、第二方面,本发明提供了一种数据包的处理系统,包括:
36、接收模块,用于接收待处理的数据包;
37、类型确定模块,用于确定出所述数据包的数据包类型以及应用层协议类型;
38、判断模块,用于判断在内存中的为所述数据包类型所配置的存储空间中,是否存在用于处理具有所述应用层协议类型的数据包的协议解析文件;
39、如果是,则触发第一执行模块,用于基于所述协议解析文件处理所述数据包;
40、如果否,则触发第二执行模块,用于从预设的非易失性存储器中读取用于处理具有所述应用层协议类型的数据包的协议解析文件,并写入为所述数据包类型所配置的存储空间中,并基于写入的所述协议解析文件处理所述数据包;
41、其中,对于任意一种数据包类型,在内存中为所述数据包类型所配置的存储空间的容量,低于在所述非易失性存储器中被属于所述数据包类型的各个应用层协议类型所对应的协议解析文件所占用的容量总和。
42、第三方面,本发明提供了一种数据包的处理设备,包括:
43、存储器,用于存储计算机程序;
44、处理器,用于执行所述计算机程序以实现如上述所述的数据包的处理方法的步骤。
45、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据包的处理方法的步骤。
46、应用本发明实施例所提供的技术方案,以一种叫做overlay的方式,动态地将非易失性存储器中的协议解析文件加载至内存,从而可以在内存的存储空间受限的情况下,有效地实现不同协议的数据包的处理。具体的,考虑到不同数据包可能有不同的数据包类型,而在同一种数据包类型下,会有属于该种数据包类型的若干个应用层协议类型,对此,为了保障动态加载的有序性,不容易出错,本技术的方案中,在内存的存储空间中,为不同的数据包类型配置了不同的存储空间。当然,对于任意一种数据包类型,在内存中为数据包类型所配置的存储空间的容量,低于在非易失性存储器中被属于该种数据包类型的各个应用层协议类型所对应的协议解析文件所占用的容量总和,即对于任意一种数据包类型而言,在内存中为该数据包类型所配置的存储空间的容量是受限的,对此本技术的方案会进行协议解析文件的动态加载。以某一种数据包类型为例,接收待处理的数据包之后,可以确定出该数据包的数据包类型以及应用层协议类型,进而判断在内存中的为该数据包类型所配置的存储空间中,是否存在用于处理具有应用层协议类型的数据包的协议解析文件,如果存在,则可以直接基于协议解析文件处理数据包,反之,如果不存在,由于预设的非易失性存储器中存储了全部的协议解析文件,因此,需要从预设的非易失性存储器中读取用于处理具有该应用层协议类型的数据包的协议解析文件,进而写入为该种数据包类型所配置的存储空间中,以基于写入的协议解析文件处理数据包,实现了协议解析文件的动态加载。
47、综上所述,本技术的方案可以在内存的存储空间受限的情况下,有效地实现具有不同应用层协议类型的数据包的处理。
1.一种数据包的处理方法,其特征在于,包括:
2.根据权利要求1所述的数据包的处理方法,其特征在于,在确定出所述数据包的数据包类型以及应用层协议类型之后,还包括:
3.根据权利要求1所述的数据包的处理方法,其特征在于,至少一种所述数据包类型的存储空间,为预先通过第二配置方式所得到的存储空间,且通过所述第二配置方式得到存储空间的操作包括:
4.根据权利要求1所述的数据包的处理方法,其特征在于,至少一种所述数据包类型的存储空间,为预先通过第三配置方式所得到的存储空间,且通过所述第三配置方式得到存储空间的操作包括:
5.根据权利要求4所述的数据包的处理方法,其特征在于,还包括:
6.根据权利要求3至5任一项所述的数据包的处理方法,其特征在于,还包括:
7.一种数据包的处理系统,其特征在于,包括:
8.一种数据包的处理设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据包的处理方法的步骤。