一种基于Netfilter防火墙的数据流处理方法及装置转让专利

申请号 : CN201410357385.7

文献号 : CN104243447B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周明明

申请人 : 深圳市共进电子股份有限公司

摘要 :

本发明适用于防火墙技术领域,提供了一种基于Netfilter防火墙的数据流处理方法及装置,所述方法包括:确定Netfilter防火墙数据流加速模式;接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。本发明由于跳过了所述Netfilter防火墙中相关的检测点,减少了代码量,因此提高了netfilter防火墙的数据流处理能力,解决了在Netfilter防火墙功能正常生效的情况下,数据流的处理时间长,数据流的处理效率低的问题,既保证了Netfilter防火墙功能正常生效,也提高了数据流的处理效率。

权利要求 :

1.一种基于Netfilter防火墙的数据流处理方法,其特征在于,包括:确定Netfilter防火墙数据流加速模式;

接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;

根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;

当所述Netfilter防火墙数据流加速模式为UDP数据流加速模式时,所述根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点,具体为:连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;

在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;

当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

2.根据权利要求1所述的方法,其特征在于,所述Netfilter防火墙数据流加速模式包括TCP数据流加速模式以及UDP数据流加速模式。

3.根据权利要求2所述的方法,其特征在于,当所述Netfilter防火墙数据流加速模式为TCP数据流加速模式时,所述根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点,具体为:连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;

在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;

检测所述数据流是否握手成功;

当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;

当检测到所述数据流握手不成功时,且统计出的数据包个数大于第二预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

4.根据权利要求1所述的方法,其特征在于,所述当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点,具体为:当统计出的数据包个数大于第三预设值时,在所述数据流中,将所述加速标识的值配置为加速值;

根据所述加速值,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

5.一种基于Netfilter防火墙的数据流处理装置,其特征在于,包括:确定模块,用于确定Netfilter防火墙数据流加速模式;

获取模块,用于接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;

跳过模块,用于根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;

所述跳过模块包括:

第二配置单元,用于连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;

第二统计单元,用于在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;

第三跳过单元,用于当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

6.根据权利要求5所述的装置,其特征在于,所述Netfilter防火墙数据流加速模式包括TCP数据流加速模式以及UDP数据流加速模式。

7.根据权利要求6所述的装置,其特征在于,所述跳过模块包括:第一配置单元,用于连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;

第一统计单元,用于在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;

握手单元,用于检测所述数据流是否握手成功;

第一跳过单元,用于当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;

第二跳过单元,用于当检测到所述数据流握手不成功时,且统计出的数据包个数大于第二预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

8.根据权利要求5所述的装置,其特征在于,所述第三跳过单元还包括:配置子单元,用于当统计出的数据包个数大于第三预设值时,在所述数据流中,将所述加速标识的值配置为加速值;

跳过子单元,用于根据所述加速值,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。

说明书 :

一种基于Netfilter防火墙的数据流处理方法及装置

技术领域

[0001] 本发明属于防火墙技术领域,尤其涉及一种基于Netfilter防火墙的数据流处理方法及装置。

背景技术

[0002] Netfilter是新一代的Linux防火墙机制。Netfilter防火墙在整个网络流程的若干位置放置了多个检测点,并在检测点中加入的子链与规则,通过网络内核处理数据流,保护内部网络免受非法用户的侵入。
[0003] 然而,现有基于Netfilter防火墙的数据流处理方法,在Netfilter防火墙功能正常生效的情况下,数据流的处理时间长,数据流的处理效率低。Netfilter防火墙在检测点加入的子链与规则越多,当前数据流额外增加的代码量也就越多,处理时间也就越长,数据流的处理效率也就越低。
[0004] 为便于说明,参考图1,图1是数据流与处理时间的对应关系图。
[0005] 其中,当前数据流在没有Netfilter防火墙的情况下经过的代码量为D0,对应处理时间为T0。当前数据流在有Netfilter防火墙的情况下,经过的子链或规则后,额外增加了代码量Dx,对应处理时间额外增加了时间Tx,由于当前数据流的源数据不变,额外增加了时间Tx,因此降低了数据流的处理效率。

发明内容

[0006] 本发明实施例的目的在于提供一种基于Netfilter防火墙的数据流处理方法,旨在解决现有基于Netfilter防火墙的数据流处理方法,在Netfilter防火墙功能正常生效的情况下,数据流的处理时间长,数据流的处理效率低的问题。
[0007] 本发明实施例是这样实现的,一种基于Netfilter防火墙的数据流处理方法,包括:
[0008] 确定Netfilter防火墙数据流加速模式;
[0009] 接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;
[0010] 根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0011] 本发明实施例的另一目的在于提供一种基于Netfilter防火墙的数据流处理装置,包括:
[0012] 确定模块,用于确定Netfilter防火墙数据流加速模式;
[0013] 获取模块,用于接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;
[0014] 跳过模块,用于根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0015] 在本发明实施例中,由于跳过了所述Netfilter防火墙中相关的检测点,减少了代码量,因此提高了netfilter防火墙的数据流处理能力,解决了在Netfilter防火墙功能正常生效的情况下,数据流的处理时间长,数据流的处理效率低的问题,既保证了Netfilter防火墙功能正常生效,也提高了数据流的处理效率。

附图说明

[0016] 图1是数据流与处理时间的对应关系图;
[0017] 图2是本发明实施例提供的基于Netfilter防火墙的数据流处理方法的实现流程图;
[0018] 图3是本发明实施例提供的当所述Netfilter防火墙数据流加速模式为TCP数据流加速模式时,基于Netfilter防火墙的数据流处理方法步骤S203的具体实现流程图;
[0019] 图4是实施例二在实际应用中较佳的实施流程图;
[0020] 图5是本发明实施例提供的当所述Netfilter防火墙数据流加速模式为UCP数据流加速模式时,基于Netfilter防火墙的数据流处理方法步骤S203的具体实现流程图;
[0021] 图6是实施例三在实际应用中较佳的实施流程图;
[0022] 图7是本发明实施例提供的基于Netfilter防火墙的数据流处理装置的结构框图;
[0023] 图8是本发明实施例提供的跳过模块73的第一结构框图;
[0024] 图9是本发明实施例提供的跳过模块73的第二结构框图;
[0025] 图10是本发明实施例提供的第三跳过单元738的结构框图。

具体实施方式

[0026] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0027] 实施例一
[0028] 图2是本发明实施例提供的一种基于Netfilter防火墙的数据流处理方法的实现流程图,详述如下:
[0029] 在步骤S201中,确定Netfilter防火墙数据流加速模式;
[0030] 其中,所述Netfilter防火墙数据流加速模式包括传输控制协议TCP数据流加速模式以及用户数据报协议UDP数据流加速模式。
[0031] 其中,传输控制协议(Transmission Control Protocol,TCP)数据流加速模式的内容为:
[0032] 当数据流握手成功,且统计出的通过所述Netfilter防火墙的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过Netfilter防火墙中的检测点;
[0033] 当数据流握手不成功,且统计出的通过所述Netfilter防火墙的数据包个数大于第二预设值时,对所述数据流中的数据包进行加速,跳过Netfilter防火墙中的检测点。
[0034] 其中,用户数据报协议(User Datagram Protocol,UDP)数据流加速模式的内容为:
[0035] 当统计出的通过所述Netfilter防火墙的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0036] 在步骤S202中,接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;
[0037] 需要进行说明的是,本发明实施例不限定步骤S201和步骤S202的执行顺序。具体地,可以是先执行步骤S201,再执行步骤S202;也可以先执行步骤S202,再执行步骤S201;还可以是同时执行步骤S201和步骤S202。
[0038] 在步骤S203中,根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0039] 其中,检测点为包括处理函数的点。
[0040] 其中,Netfilter防火墙中相关的检测点可以为用户自设,也可以为系统默认,在此不做限制。其中,根据数据流采用的传输协议,选择Netfilter防火墙数据流加速模式,根据选择的Netfilter防火墙数据流加速模式,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0041] 例如,当数据流采用的传输协议为TCP时,选择TCP数据流加速模式,根据选择的TCP数据流加速模式,对所述TCP数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0042] 例如,当数据流采用的传输协议为UDP时,选择UDP数据流加速模式,根据选择的UDP数据流加速模式,对所述UDP数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0043] 在本发明实施例中,由于跳过了所述Netfilter防火墙中相关的检测点,减少了代码量,因此提高了netfilter防火墙的数据流处理能力,解决了在Netfilter防火墙功能正常生效的情况下,数据流的处理时间长,数据流的处理效率低的问题,既保证了Netfilter防火墙功能正常生效,也提高了数据流的处理效率。
[0044] 实施例二
[0045] 参考图3,图3是本发明实施例提供的当所述Netfilter防火墙数据流加速模式为TCP数据流加速模式时,基于Netfilter防火墙的数据流处理方法步骤S203的具体实现流程图,详述如下:
[0046] 在步骤S301中,连接跟踪数据流中的数据包,并为所述数据流配置加速标识;
[0047] 其中,所述数据流为TCP数据流。
[0048] 在步骤S302中,在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;
[0049] 在步骤S303中,检测所述数据流是否握手成功;
[0050] 在步骤S304中,当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;
[0051] 其中,第一预设值的选值范围为[32~128]。
[0052] 在步骤S305中,当检测到所述数据流握手不成功时,且统计出的数据包个数大于第二预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0053] 其中,第二预设值的选值范围为[64~512]。
[0054] 其中,所述当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点,具体为:
[0055] 当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,在所述数据流中,将加速标识的值配置为加速值;
[0056] 根据所述加速值,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0057] 其中,加速标识和加速值可以用户自设,也可以为系统默认,在此不做限制。
[0058] 优选地,加速标识为canFast和加速值1。
[0059] 为便于说明,参考图4,图4是实施例二在实际应用中较佳的实施流程图,详述如下:
[0060] 在步骤S401中,在连接跟踪的数据包中,采用confirmPkts统计出通过所述Netfilter防火墙的数据包个数;
[0061] 在步骤S402中,检测所述数据流是否握手成功,是则执行S403,否则执行S404;
[0062] 在步骤S403中,判断confirmPkts统计出的数据包个数是否大于32,是则执行步骤S405,否则不进行处理;
[0063] 在步骤S404中,判断confirmPkts统计出的数据包个数是否大于128,是则执行步骤S405,否则不进行处理;
[0064] 在步骤S405中,将加速标识canFast的值配置为1,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;
[0065] 在本发明实施例中,由于跳过了所述Netfilter防火墙中相关的检测点,减少了代码量,因此保证了Netfilter防火墙功能正常生效,也提高了处理TCP数据流的效率。
[0066] 实施例三
[0067] 参考图5,图5是本发明实施例提供的当所述Netfilter防火墙数据流加速模式为UDP数据流加速模式时,基于Netfilter防火墙的数据流处理方法步骤S203的具体实现流程图,详述如下:
[0068] 在步骤S501中,连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;
[0069] 在步骤S502中,在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;
[0070] 在步骤S503中,当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0071] 其中,第三预设值的选值范围为[16~256]。
[0072] 其中,所述当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点,具体为:
[0073] 当统计出的数据包个数大于第三预设值时,在所述数据流中,将加速标识的值配置为加速值;
[0074] 根据所述加速值,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0075] 其中,加速标识和加速值可以用户自设,也可以为系统默认,在此不做限制。
[0076] 优选地,加速标识为canFast和加速值1。
[0077] 为便于说明,参考图6,图6是实施例三在实际应用中较佳的实施流程图,详述如下:
[0078] 在步骤S601中,在连接跟踪的数据包中,采用confirmPkts统计出通过所述Netfilter防火墙的数据包个数;
[0079] 在步骤S602中,判断confirmPkts统计出的数据包个数是否大于32,是则执行步骤S603,否则不进行处理;
[0080] 在步骤S603中,将加速标识canFast的值配置为1,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;
[0081] 在本发明实施例中,由于跳过了所述Netfilter防火墙中相关的检测点,减少了代码量,因此保证了Netfilter防火墙功能正常生效,也提高了处理UDP数据流的效率。
[0082] 实施例四
[0083] 图7是本发明实施例提供的一种基于Netfilter防火墙的数据流处理装置的结构框图,该装置可以运行于Netfilter防火墙。为了便于说明,仅示出了与本实施例相关的部分。
[0084] 参照图7,该基于Netfilter防火墙的数据流处理装置,包括:
[0085] 确定模块71,用于确定Netfilter防火墙数据流加速模式;
[0086] 获取模块72,用于接收数据流,获取所述数据流采用的传输协议以及所述数据流中的数据包;
[0087] 跳过模块73,用于根据所述Netfilter防火墙数据流加速模式以及所述数据流采用的传输协议,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0088] 在本实施例的一种实现方式中,所述Netfilter防火墙数据流加速模式包括TCP数据流加速模式以及UDP数据流加速模式。
[0089] 在本实施例的一种实现方式中,参考图8,图8是本发明实施例提供的跳过模块73的第一结构框图,在该基于Netfilter防火墙的数据流处理装置中,所述跳过模块73包括:
[0090] 第一配置单元731,用于连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;
[0091] 第一统计单元732,用于在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;
[0092] 握手单元733,用于检测所述数据流是否握手成功;
[0093] 第一跳过单元734,用于当检测到所述数据流握手成功,且统计出的数据包个数大于第一预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点;
[0094] 第二跳过单元735,用于当检测到所述数据流握手不成功时,且统计出的数据包个数大于第二预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0095] 在本实施例的一种实现方式中,参考图9,图9是本发明实施例提供的跳过模块73的第二结构框图,在该基于Netfilter防火墙的数据流处理装置中,所述跳过模块73包括:
[0096] 第二配置单元736,用于连接跟踪所述数据流中的数据包,并为所述数据流配置加速标识;
[0097] 第二统计单元737,用于在连接跟踪的数据包中,统计出通过所述Netfilter防火墙的数据包个数;
[0098] 第三跳过单元738,用于当统计出的数据包个数大于第三预设值时,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0099] 在本实施例的一种实现方式中,参考图10,图10是本发明实施例提供的第三跳过单元738的结构框图,在该基于Netfilter防火墙的数据流处理装置中,所述第三跳过单元738包括:
[0100] 配置子单元7381,用于当统计出的数据包个数大于第三预设值时,在所述数据流中,将所述加速标识的值配置为加速值;
[0101] 跳过子单元7382,用于根据所述加速值,对所述数据流中的数据包进行加速,跳过所述Netfilter防火墙中相关的检测点。
[0102] 本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。
[0103] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。
[0104] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。