一种数据处理方法、装置、设备及可读存储介质与流程

文档序号:26697396发布日期:2021-09-18 02:27阅读:143来源:国知局
一种数据处理方法、装置、设备及可读存储介质与流程

1.本发明涉及信息安全技术领域,特别是涉及一种数据处理方法、装置、设备及可读存储介质。


背景技术:

2.ipsec协议是一种在ip层实现网络数据安全的一整套体系结构,数据流通过匹配安全策略sp的规则实现ip数据包的保护。安全策略sp的规则,由五元组构成(源ip、目的ip、源端口、目的端口、协议)。当tcp/udp包未分片时,具备完整的五元组信息,可直接匹配安全策略sp实现数据保护。
3.当tcp/udp包为分片包时,只有首片分片包具备完整的五元组信息,剩余分片包不具备完整的五元组信息,无法匹配到安全策略sp。可在协议栈收到全部分片包后,将分片包重组,然后匹配安全策略sp,最后再将数据包分片进行加密。但是,数据包在协议栈进行重组和分片过程中将耗费较多的时间,会影响数据包的传输时延,甚至会导致高丢包率。
4.综上所述,如何有效地加快协议栈对分片包处理效率等问题,是目前本领域技术人员急需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种数据处理方法、装置、设备及可读存储介质,提供存储首片包的流信息,可无需等待分片包、重组分片包,以及重组后分片,基于首片包流信息便可对剩余分片包安全处理,能够提高协议栈的分片包处理效率。
6.为解决上述技术问题,本发明提供如下技术方案:
7.一种数据处理方法,包括:
8.接收数据包的分片包;
9.判断所述分片包是否为首片包;
10.如果是,则将所述分片包中的首片包流信息存入哈希链表;
11.如果否,则从所述哈希链表中,获取与所述分片包对应的首片包流信息;
12.利用与所述首片包流信息对应的安全处理策略,对所述分片包进行处理;所述安全处理策略为ipsec协议中的安全策略。
13.优选地,判断所述分片包是否为首片分片包,包括:
14.获取所述分片包头部的分片标识;
15.若所述分片标识为首片标识,则确定所述分片包为首片分片包;
16.若所述分片标识为中间分片标识或最后分片标识,则确定所述分片包为从分片包。
17.优选地,从所述哈希链表中,获取与所述分片包对应的首片包流信息,包括:
18.利用所述分片包的流信息,从所述哈希链表中获取所述首片包流信息。
19.优选地,将所述分片包中的首片包流信息存入哈希链表,包括:
20.利用所述首片包流信息,确定关键字;
21.在流节点存储所述关键字,所述数据包的总长度、所述分片包的接收长度、流节点匹配时间和流节点指针;
22.将所述流节点存储到哈希链表。
23.优选地,在流节点存储所述关键字,包括:
24.若不同的分片包关键字相同映射到哈希表的同一位置,则采用拉链法对所述关键字进行挂链操作。
25.优选地,还包括:
26.利用哈希链表存储最大值和/或流节点保持时间,对所述流节点进行回收处理。
27.优选地,所述利用与所述首片包流信息对应的安全处理策略,对所述分片包进行处理,包括:
28.利用所述首片包流信息还原所述分片包对应的源端口和目的端口;
29.利用所述源端口和所述目的端口,确定所述安全处理策略;
30.按照所述安全处理策略对所述分片包进行处理。
31.一种数据处理装置,包括:
32.分片包接送模块,用于接收数据包的分片包;
33.判断模块,用于判断所述分片包是否为首片包;
34.流信息存储模块,用于如果所述分片包为首片包,则将所述分片包中的首片包流信息存入哈希链表;
35.流信息获取模块,用于如果所述分片包非首片包,则从所述哈希链表中,获取与所述分片包对应的首片包流信息;
36.分片包安全处理模块,用于利用与所述首片包流信息对应的安全处理策略,对所述分片包进行处理;所述安全处理策略为ipsec协议中的安全策略。
37.一种数据处理设备,包括:
38.存储器,用于存储计算机程序;
39.处理器,用于执行所述计算机程序时实现上述数据处理方法的步骤。
40.一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的步骤。
41.应用本发明实施例所提供的方法,接收数据包的分片包;判断分片包是否为首片包;如果是,则将分片包中的首片包流信息存入哈希链表;如果否,则从哈希链表中,获取与分片包对应的首片包流信息;利用与首片包流信息对应的安全处理策略,对分片包进行处理;安全处理策略为ipsec协议中的安全策略。
42.在本方法中,当接收到的分片包为首片包,则直接基于分片包的首片包流信息匹配安全处理策略,并直接进行安全处理,无需等到剩余分片,与此同时还在哈希链表中存储首片包流信息。当接收到的分片包非首片包时,则从哈希链表中获取与分片包对应的首片包流信息,也可快速确定与该分片包匹配的安全处理策略,且无需等待其他剩余分片,也无需与首片包进行重组,便可直接基于安全处理策略对该分片包进行处理。可见,在本方法中,基于ipsec协议对分片包进行处理时,无需再等待所有分片包,也无需进行分片包重组,便可直接基于首片包流信息来确定出匹配的安全处理策略,省去等待分片包的时间,重组
分片包以及重组分片包后的再分片处理步骤,可实现接收分片包后便可立即处理的效果,可加快分片包处理效率,可降低丢包率,保证数据传输的可靠性。
43.相应地,本发明实施例还提供了与上述数据处理方法相对应的数据处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本发明实施例中一种数据处理方法的实施流程图;
46.图2为本发明实施例中一种流信息哈希链表存储结构示意图;
47.图3为本发明实施例中一种流信息存储结构示意图;
48.图4为本发明实施例中一种从分片包处理示意图;
49.图5为本发明实施例中一种数据处理方法的具体实施流程图;
50.图6为本发明实施例中一种数据处理装置的结构示意图;
51.图7为本发明实施例中一种数据处理设备的结构示意图;
52.图8为本发明实施例中一种数据处理设备的具体结构示意图。
具体实施方式
53.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.实施例一:
55.请参考图1,图1为本发明实施例中一种数据处理方法的流程图,该方法能够解决解决分片数据流匹配安全策略效率低的问题。该方法包括以下步骤:
56.s101、接收数据包的分片包。
57.需要说明的是,该数据包可以为udp数据包也可以为tcp数据包。
58.该分片包既然可以为一个完整数据包的首片包,也可以为一个完整数据包的从分片包。
59.s102、判断分片包是否为首片包。
60.由于首片分片包中的流信息包括了完整的五元组信息,而从分片包中的流信息没有包括完整的五元组信息。因此,可以通过读取分片包的流信息判断该分片包是否首片包。具体来说,判断过程可包括:
61.步骤一、获取分片包的流信息;
62.步骤二、判断流信息是否具备完整的五元组信息;
63.步骤三、如果是,则确定分片包为首片分片包;
64.步骤四、如果否,则确定分片包为从分片包。
65.其中,完整五元组包括:源ip、目的ip、源端口、目的端口、协议信息。当tcp/udp数据包为分片包时,只有首片分片包具备完整的五元组信息,剩余分片包(从分片包)仅有源ip、目的ip和协议信息。
66.当然,除了采用流信息中的五元组信息来进行分片包判断,还可根据分片包头部的分片标识来进行判断是否为首片包。具体判断过程,包括:
67.步骤一、获取分片包头部的分片标识;
68.步骤二、若分片标识为首片标识,则确定分片包为首片分片包;
69.步骤三、若分片标识为中间分片标识或最后分片标识,则确定分片包为从分片包。
70.具体的,可根据分片包头部的ip_mf和ip_offset两个字段判断分片包的状态,分片包标识的定义如下:
71.首片分片包,ip_mf=1,ip_offset=0;
72.中间分片包,ip_mf=1,ip_offset=1;
73.最后分片包,ip_mf=0,ip_offset=1。
74.在得到分片包判断结果之后,便可基于判断结果执行后续处理操作。具体的,如果判断结果为是,则执行步骤s103的操作;如果判断结果为否,则执行步骤s104的操作。
75.s103、将分片包中的首片包流信息存入哈希链表。
76.确定接收到的分片包为首片分片包之后,为便于处理与该分片包对应的剩余分片包,可将分片包中的首片包流信息存入哈希链表中。
77.具体存储过程,包括:
78.步骤一、利用首片包流信息,确定关键字;
79.步骤二、在流节点存储关键字,数据包的总长度、分片包的接收长度、流节点匹配时间和流节点指针;
80.步骤三、将流节点存储到哈希链表。
81.为便于描述,下面将上述三个步骤结合起来进行说明。
82.特别地,若不同的分片包关键字相同映射到哈希表的同一位置,则采用拉链法对关键字进行挂链操作。请参考图2,图2为本发明实施例中一种流信息哈希链表存储结构示意图。也就是说,首片包的流信息采用哈希链表存储,哈希链表由哈希表和多个链表组成,哈希表的长度可定义为n+1。可具体将分片包的源ip、目的ip、协议号和id信息作关键字(key),若不同的分片包key相同映射到哈希表的同一位置时,则采用拉链法对元素进行挂链操作。
83.流信息存储节点(即流节点)的定义如图3所示,可见,流节点存储了哈希表的关键字(key)、数据流的端口信息、数据包的总长度、分片包的接收长度、流节点匹配时间和流节点指针。
84.s104、从哈希链表中,获取与分片包对应的首片包流信息。
85.若接收到分片包非首片包,则可从哈希链表中获取与分片包对应的首片包流信息。具体的,即利用分片包的流信息,从哈希链表中获取首片包流信息。即,从分片包的流信息会与其对应的首片包的流信息具有重合一致的情况,因此可基于从分片包的流信息,从哈希链表中得到对应的首片包流信息。
86.具体来说,同一个分片包的id信息唯一,因此通过存储首片包的流信息,剩余分片
包可以根据源ip、目的ip、协议号和id信息查找到首片包的流信息,进而快速的恢复源端口和目的端口信息。
87.s105、利用与首片包流信息对应的安全处理策略,对分片包进行处理。
88.安全处理策略为ipsec协议中的安全策略。
89.得到与分片包对应的首片包流信息之后,按照ipsec协议,基于首片包流信息便可快速确定出对于的安全处理策略,并基于安全处理策略对分片包进行处理。其中,安全处理策略可以具体包括:丢弃,直接转发(绕过ipsec)进行ipsec处理。其中,ipsec既可以只对数据包进行加密,或只进行认证,也可以同时实施二者,但无论是进行加密还是进行认证,ipsec都有两种工作模式,一种是隧道模式,另一种是传输模式。
90.具体实现过程,可包括:
91.步骤一、利用首片包流信息还原分片包对应的源端口和目的端口;
92.步骤二、利用源端口和目的端口,确定安全处理策略;
93.步骤三、按照安全处理策略对分片包进行处理。
94.为便于描述,下面将上述三个步骤结合起来进行说明。
95.除首片分片包外的剩余分片包(即从分片包),不具有源端口和目的端口信息。可根据数据流的源ip、目的ip、协议和id号哈希运算的关键字key,从数据流哈希链表中查找源端口和目的端口。剩余分片包包括中间片和最后片,在最后片中包括完整数据包的总长度信息。
96.剩余分片包的处理过程,如图4所示,按照如下步骤完成剩余分片包状态的还原:
97.步骤1、根据分片包头部的标识判断分片包是否为最后一片,如果为最后一片则计算整个数据包的总长度total_len,然后将流信息key做哈希运算。
98.步骤2、从数据流哈希链表中查询流节点,如果未查询到流节点,则退出;如果查询到流节点,则使用流节点中的信息还原数据流的源端口和目的端口。
99.步骤3、计算分片包的接收总长度recv_len,如果分片包已经接收到最后一片,并且分片包的接收总长度recv_len大于等于分片包的总长度total_len,则将流节点从哈希链表中删除。
100.应用本发明实施例所提供的方法,接收数据包的分片包;判断分片包是否为首片包;如果是,则将分片包中的首片包流信息存入哈希链表;如果否,则从哈希链表中,获取与分片包对应的首片包流信息;利用与首片包流信息对应的安全处理策略,对分片包进行处理;安全处理策略为ipsec协议中的安全策略。
101.在本方法中,当接收到的分片包为首片包,则直接基于分片包的首片包流信息匹配安全处理策略,并直接进行安全处理,无需等到剩余分片,与此同时还在哈希链表中存储首片包流信息。当接收到的分片包非首片包时,则从哈希链表中获取与分片包对应的首片包流信息,也可快速确定与该分片包匹配的安全处理策略,且无需等待其他剩余分片,也无需与首片包进行重组,便可直接基于安全处理策略对该分片包进行处理。可见,在本方法中,基于ipsec协议对分片包进行处理时,无需再等待所有分片包,也无需进行分片包重组,便可直接基于首片包流信息来确定出匹配的安全处理策略,省去等待分片包的时间,重组分片包以及重组分片包后的再分片处理步骤,可实现接收分片包后便可立即处理的效果,可加快分片包处理效率,可降低丢包率,保证数据传输的可靠性。
102.需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
103.优选地,为了避免占用过多存储资料,且哈希链表过长也会导致分片包处理时,获取首片包流信息比对耗时。因此,在上述实施例的基础上提出对哈希链表进行有效维护,对流节点需进行回收处理。具体的,可利用哈希链表存储最大值和/或流节点保持时间,对流节点进行回收处理。
104.对于回收处理的时机可具体参考图5。可设置哈希链表存储最大值为max_node,流节点的保持时间为hold_time。具体的回收处理方式包括但不限于以下几种方式实现流节点的回收,保证无效的流节点快速得到释放:
105.方式1:数据包长度检查:分片包的最后一片接收到,并且流节点中保持的分片包的接收长度大于分片包总长度,即recv_len>=total_len,此时立即将对应流节点从哈希链表中删除。
106.方式2:流节点匹配时间检查:数据流连接状态跟踪模块中开启定时器,检查当前时间cur_time与流节点的匹配时间use_time是否大于保持时间hold_time,当(cur_time

use_time)>=hold_time,此时强制将对应流节点从哈希链表中删除。其中,保持时间hold_time可设置为六百赫兹(与丢包时间对应)。
107.方式3、流节点总数检查:当哈希链表中的流节点数大于max_node时,强制删除流节点到max_node/2的数量。
108.在实际应用中,可任选其中一种回收方式,也可三种方式结合使用。
109.采用数据包长度检查、流节点匹配时间检查和流节点总数检查三种方式的结合,实现快速、高效的回收无效的流节点信息。
110.相应于上面的方法实施例,本发明实施例还提供了一种数据处理装置,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
111.参见图6所示,该装置包括以下模块:
112.分片包接送模块101,用于接收数据包的分片包;
113.判断模块102,用于判断分片包是否为首片包;
114.流信息存储模块103,用于如果分片包为首片包,则将分片包中的首片包流信息存入哈希链表;
115.流信息获取模块104,用于如果分片包非首片包,则从哈希链表中,获取与分片包对应的首片包流信息;
116.分片包安全处理模块105,用于利用与首片包流信息对应的安全处理策略,对分片包进行处理;安全处理策略为ipsec协议中的安全策略。
117.应用本发明实施例所提供的装置,接收数据包的分片包;判断分片包是否为首片包;如果是,则将分片包中的首片包流信息存入哈希链表;如果否,则从哈希链表中,获取与分片包对应的首片包流信息;利用与首片包流信息对应的安全处理策略,对分片包进行处理;安全处理策略为ipsec协议中的安全策略。
118.在本装置中,当接收到的分片包为首片包,则直接基于分片包的首片包流信息匹配安全处理策略,并直接进行安全处理,无需等到剩余分片,与此同时还在哈希链表中存储
首片包流信息。当接收到的分片包非首片包时,则从哈希链表中获取与分片包对应的首片包流信息,也可快速确定与该分片包匹配的安全处理策略,且无需等待其他剩余分片,也无需与首片包进行重组,便可直接基于安全处理策略对该分片包进行处理。可见,在本装置中,基于ipsec协议对分片包进行处理时,无需再等待所有分片包,也无需进行分片包重组,便可直接基于首片包流信息来确定出匹配的安全处理策略,省去等待分片包的时间,重组分片包以及重组分片包后的再分片处理步骤,可实现接收分片包后便可立即处理的效果,可加快分片包处理效率,可降低丢包率,保证数据传输的可靠性。
119.在本发明的一种具体实施方式中,判断模块102,具体用于获取分片包头部的分片标识;若分片标识为首片标识,则确定分片包为首片分片包;若分片标识为中间分片标识或最后分片标识,则确定分片包为从分片包。
120.在本发明的一种具体实施方式中,流信息获取模块104,具体用于利用分片包的流信息,从哈希链表中获取首片包流信息。
121.在本发明的一种具体实施方式中,流信息存储模块103,具体用于利用首片包流信息,确定关键字;在流节点存储关键字,数据包的总长度、分片包的接收长度、流节点匹配时间和流节点指针;将流节点存储到哈希链表。
122.在本发明的一种具体实施方式中,流信息存储模块103,具体用于若不同的分片包关键字相同映射到哈希表的同一位置,则采用拉链法对关键字进行挂链操作。
123.在本发明的一种具体实施方式中,流信息存储模块103,还用于利用哈希链表存储最大值和/或流节点保持时间,对流节点进行回收处理。
124.在本发明的一种具体实施方式中,分片包安全处理模块105,具体用于利用首片包流信息还原分片包对应的源端口和目的端口;利用源端口和目的端口,确定安全处理策略;按照安全处理策略对分片包进行处理。
125.相应于上面的方法实施例,本发明实施例还提供了一种数据处理设备,下文描述的一种数据处理设备与上文描述的一种数据处理方法可相互对应参照。
126.参见图7所示,该数据处理设备包括:
127.存储器332,用于存储计算机程序;
128.处理器322,用于执行计算机程序时实现上述方法实施例的数据处理方法的步骤。
129.具体的,请参考图8,为本实施例提供的一种数据处理设备的具体结构示意图,该数据处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332中存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在数据处理设备301上执行存储器332中的一系列指令操作。
130.数据处理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等。
131.上文所描述的数据处理方法中的步骤可以由数据处理设备的结构实现。
132.相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述
的一种可读存储介质与上文描述的一种数据处理方法可相互对应参照。
133.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据处理方法的步骤。
134.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
135.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1