数据包处理的方法及装置制造方法及图纸

技术编号:8803065 阅读:163 留言:0更新日期:2013-06-13 07:08
本发明专利技术公开了一种数据包处理的方法及装置,其中,该方法包括:通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理;目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;在数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;以及获取数据包的优先级标识,并根据数据包的优先级标识控制数据包的输出顺序。数据包在内核空间中仅需通过三个钩子函数的处理,相对于现有技术有效减少了数据包通过钩子函数的数量,其次可通过数据包的优先级标识来控制数据包的输出顺序。

【技术实现步骤摘要】

本专利技术属于计算机
,尤其涉及一种数据包处理的方法及装置
技术介绍
连接跟踪(conntrack),就是跟踪并且记录连接状态。Linux (是一种自由和开放源码的类Unix操作系统)为每一个经过网络堆栈的数据包,生成一个新的连接记录项(Connection entry),该连接记录可由ip_conntrack结构表示。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT(Source Network Address Translation,源地址转换)和 DNAT (Destination Network Address Translation,目的地址转换)的前提。目前应用协议(例如P2P协议、頂协议、Email协议等)控制的通常方法是基于连接状态的数据包检测。数据包从网卡进来后被分割为独立的连接,通过识别该连接属于何种应用层协议之后,再对这条连接上所有的数据包打上对应的标签(mark)。通过维护此条连接的上下行数据包以及字节计数,实现对该协议类型的流量统计。然而,现有技术没有实现在不同的应用环境中使用不同的优先级配置进行数据包的输出,例如:在协议识别时确保数据量较大的协议的输出顺序的优先级较高,数据量小并且使用不广泛的协议的输出顺序的优先级较低。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据包处理的方法及装置,以实现根据数据包的优先级标识来控制数据包的输出顺序。依据本专利技术的一个方面,提供了一种数据包处理的方法,通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理;目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;在所述数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;以及获取所述数据包的优先级标识,并根据所述数据包的优先级标识控制所述数据包的输出顺序。根据本专利技术的另一方面,提供了一种数据包处理的装置,目的地址转换模块,用于通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理;路由模块,用于在源地址转换处理后目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;源地址转换模块,用于在所述数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;以及输出模块,用于获取所述数据包的优先级标识,并根据所述数据包的优先级标识控制所述数据包的输出顺序。根据本专利技术的数据包处理的方法和数据包处理的装置,数据包在输出之前在内核空间中仅需通过三个钩子函数的处理,相对于现有技术中需经过五个钩子函数的处理,有效减少了数据包通过钩子函数的数量,其次可通过数据包的优先级标识来控制数据包的输出顺序,例如数据量较大的数据包的输出顺序的优先级较高,数据量小且使用不广泛的数据包的输出顺序的优先级较低,最后,本专利技术实施例的可扩展性较强,可根据识别数据包的需求配置协议识别模块。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的数据包处理的方法100的流程图;图2示出了根据本专利技术一个实施例的数据包的处理示意图;图3示出了根据本专利技术一个实施例的ip NAC协议识别模块的包处理的流程示意图;图4示出了根据本专利技术一个实施例的链表数据管理各模块的示意图;图5示出了根据本专利技术一个实施例的协议识别模块注册的示意图;以及图6示出了根据本专利技术又一个实施例数据包处理的装置600结构示意图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术的实施例提出的数据包处理的方法,通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理;目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;在数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;最后获取数据包的优先级标识,并根据数据包的优先级标识控制数据包的输出顺序。下面结合图1具体说明根据本专利技术一个实施例的、适于解决上述问题的数据包处理的方法100的流程图。如图1所示,本专利技术的方法100的步骤始于步骤SI 10,在步骤SI 10中,通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理。在本专利技术的一些实施例中,Netfilter是Linux内核中的一个通用架构,由一系列基于协议栈的钩子(Hook)函数组成,这些钩子都对应于某一具体的协议。Netfilter防火墙的内核模块为了对内核TCP/IP协议栈的不同类型的数据包能够以多种手段的控制和处理,在数据包经过协议栈的游历路线之中,可设置三个挂载点,该三个挂载点可分别命名为PREROUTING (路由前)、F0RWARD和P0STR0UTING (路由后),其中每个挂载点上可挂载一个钩子函数,由于本专利技术实施例中数据包仅经过三个钩子函数的处理,相对于现有技术中的五个钩子函数,有效减少了数据包通过的钩子函数的数量。可选地,在第一个挂载点(PREROUTING)上挂载的第一钩子函数为NF_IP_PRE_ROUTING函数。在本专利技术实施例中从网卡进入系统的数据包首先到达第一挂载点,由NF_IP_PRE_R0UTING函数对进入网络层的数据包进行目的地址转换。随后,在步骤S130中,目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理。可选地,在第二挂载点(FORWARD)上挂载的第二钩子函数为NF_IP_F0RWARD函数。在本专利技术实施例中该NF_IP_F0RWARD函数可对数据包进行路由处理,使得数据包到达另外另一个接口。具体地,首先获取数据包的路由规则,然后根据路由规则,通过第二钩子函数对数据包进行路由处理。在步骤S130之前,可选地,将用于协议识别的ip_NAC协议识别模块挂载在内核空间中的ip_c0nntrack连接跟踪模块上,路由规则可设置在ip_NAC协议识别模块中,例如路由规则可通过ip_table模块传递到ip_NAC协议识别模块中。上述ip_table模块作为Linux内核防火墙netfilter的用户管理工具,用于对模块添加、移动或编辑规则。这些规则通过netfilter框架及其相关模块发生作用。ip_table模块提供了三种策略规则表:用于数据包过滤的filter表、用于网络地址转换的nat和用于数据包重构的managle表。可选地,通过注册函数(例如ipt_dissecoR_registor)将用于识别本文档来自技高网...

【技术保护点】
一种数据包处理的方法,其特征在于,包括:通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理;目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;在所述数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;以及获取所述数据包的优先级标识,并根据所述数据包的优先级标识控制所述数据包的输出顺序。

【技术特征摘要】
1.一种数据包处理的方法,其特征在于,包括: 通过内核空间中注册的第一钩子函数对数据包进行目的地址转换处理; 目的地址转换处理后,通过内核空间中注册的第二钩子函数对数据包进行路由处理;在所述数据包路由处理之后,通过内核空间中注册的第三钩子函数对数据包进行源地址转换处理;以及 获取所述数据包的优先级标识,并根据所述数据包的优先级标识控制所述数据包的输出顺序。2.根据权利要求1所述的方法,其特征在于,所述数据包路由之前,所述方法还包括: 将用于协议识别的ip_NAC协议识别模块挂载在内核空间中的ip_conntrack连接跟踪模块上,路由规则设置在所述ip_NAC协议识别模块上。3.根据权利要求2所述的方法,其特征在于,所述通过内核空间中注册的第二钩子函数对数据包进行路由处理的步骤包括: 获取所述ip_NAC协议识别模块上的路由规则; 所述第二钩子函数根据所述路由规则对数据包进行路由处理。4.根据权利要求2所述的方法,其特征在于,所述方法还包括: 通过注册函数将用于识别P2P协议的P2P协议识别模块、用于识别IM协议的IM协议识别模块和/或用于识别电子邮件协议的电子邮件协议识别模块挂载到所述ip_NAC协议识别模块上。5.根据权利要求4所述的方法,其特征在于,所述通过注册函数将用于识别P2P协议的P2P协议识别模块、用于识别IM协议的IM协议识别模块和用于识别电子邮件协议的电子邮件协议识别模块挂载到所述ip_NAC协议识别模块上的步骤包括: 获取用户自定义以及系统初始化默认的配置信息; 将所述配置信息导入到所述ip_NAC协议识别模块中; 所述ip_NAC协议识...

【专利技术属性】
技术研发人员:李伟邓振波苏云琳
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1