网络设备及其处理封包的方法

文档序号:7930471阅读:275来源:国知局
专利名称:网络设备及其处理封包的方法
技术领域
本发明涉及一种网络设备,尤指一种网络设备及其处理封包的方法。
背景技术
Li皿x作为较早的源代码开放操作系统,具有低廉成本与高度可设定性的优点,得到越 来越广泛的利用,如Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等
网络过滤器(Netfilter)为Li皿x系统中的重要元件,其可用于从网络中获取包括用户 所需求讯息的封包,然,其只能处理ACCEPT/DROP/REJECT等动作,无法将封包与应用程序联 系起来
发明内容
有鉴于此,需提供一种网络设备,用于处理封包。 此外,还需提供一种处理封包的方法。
一种网络设备,用于处理封包,包括用户守护进程及内核模块。用户守护进程包括多个 功能子进程。内核模块包括规则表、网络过滤子模块及目标扩展子模块。规则表包括多个匹 配条件、与所述匹配条件对应的多个目标及多个执行动作。网络过滤子模块用于接收封包, 査询该规则表内同该封包对应的匹配条件,并发送该封包至该匹配条件对应的目标。目标扩 展子模块用于接收该网络过滤子模块所传送的封包,从该规则表获取与该封包对应的匹配条 件对应的执行动作,并传送该封包与该执行动作至该用户守护进程。其中,该用户守护进程 用于根据该执行动作传送该封包至对应的功能子进程进行处理。
一种处理封包的方法,用于网络设备中,该处理封包的方法包括接收封包,査询规则 表内同该封包对应的匹配条件,并发送该封包至该匹配条件对应的目标;接收网络过滤子模 块所传送的封包,从该规则表获取与该封包对应的匹配条件对应的执行动作,并传送该封包 与该执行动作至用户守护进程;及根据该执行动作传送该封包至对应的功能子进程进行处理
所述网络设备通过设定规则及目标扩展子模块,将封包与相应的程序/进程关联起来, 从而可将封包传送至用户端程序进行处理,如此减少了内核模块的负担。


4图1是本发明 一实施方式中网络设备的模块图。 图2是本发明 一实施方式中处理封包的方法的流程图。
具体实施例方式
请参阅图l,所示为本发明一实施方式中网络设备10的模块图。在本实施方式中,网络 设备10用于处理封包,其为具有Li皿x系统的设备,包括计算机、机顶盒等。网络设备10包 括用户守护进程30及内核模块20。内核模块20用于提供网络设备10的工作程序,如驱动程序 等,其包括网络过滤子模块(netfilter) 200、目标扩展子模块210及规则表220。
规则表220包括多个匹配条件、与所述匹配条件对应的目标及执行动作。在本实施方式 中,该匹配条件为封包的来源因特网地址,在本发明的其它实施方式中,该匹配条件也可为 封包的来源端口、目的因特网地址等。该目标包括该目标扩展子模块210,目标扩展子模块 21 O对应的执行动作为执行该执行动作的命令。在本实施方式中,规则表220可由用户根据需 要设定。
网络过滤子模块200用于接收封包,并根据该规则表220传送该封包。网络过滤子模块 200接收封包,査询该规则表220内同该封包对应的匹配条件,并发送该封包至该匹配条件对 应的目标。若该封包符合与该目标扩展子模块210对应的匹配条件,该网络过滤子模块200传 送该封包至该目标扩展子模块210。
目标扩展子模块210用于接收该网络过滤子模块200所传送的封包,从该规则表220获取 与该封包的匹配条件对应的执行动作,并传送该封包与该执行动作至用户守护进程30。在本 实施方式中,用户守护进程30为用户空间程序(User Space Program),其通过netlink与 目标扩展子模块210通讯。用户守护进程30包括多个功能子进程,如第一功能子进程40、第 二功能子进程50及第N功能子进程60,其用于接收目标扩展子模块210传送的封包及执行动作 ,并根据该执行动作传送该封包至对应的功能子进程进行处理。用户守护进程30还用于判断 是否存在同该执行动作对应的功能子进程,若有,则发送该封包至对应的功能子进程进行处 理;若无,则根据该执行动作创建新的功能子进程,并把封包传送至新的功能子进程进行处 理。该等功能子进程用于处理不同的封包及执行不同的动作。
图2所示为本发明一实施方式中网络设备10处理封包的方法的流程图。首先,在步骤 S200,网络过滤子模块200接收封包,并根据该规则表220传送该封包。在本实施方式中,网 络过滤子模块200査询规则表220内同该封包对应的匹配条件,并发送该封包至该匹配条件对 应的目标。在步骤S202,目标扩展子模块210接收该网络过滤子模块200所传送的封包,从该 规则表220获取与该封包对应的执行动作,并传送该封包与该执行动作至用户守护进程30。
5在步骤S204,用户守护进程30接收目标扩展子模块210传送的封包及执行动作,并根据 该执行动作传送该封包至对应的功能子进程进行处理。在本实施方式中,用户守护进程30判 断是否存在同该执行动作对应的功能子进程,若有,则发送该封包至对应的功能子进程进行 处理;若无,则根据该执行动作创建新的功能子进程,并把封包传送至新的功能子进程进行 处理。
网络设备10通过设定规则,将封包与相应的程序/进程关联起来,从而可将封包传送至 用户空间程序进行处理,如此减少了内核模块20的负担,且用户可用不同的程序语言编写应 用程序30,灵活性较高,此外,即使应用程序30出现错误,也不会对内核模块20产生影响, 不会引起网络设备10崩溃。
权利要求
1.一种网络设备,用于处理封包,其特征在于包括用户守护进程,包括多个功能子进程;及内核模块,包括规则表,包括多个匹配条件、与所述匹配条件对应的多个目标及多个执行动作;网络过滤子模块,用于接收封包,查询所述规则表内同所述封包对应的匹配条件,并发送所述封包至所述匹配条件对应的目标;及目标扩展子模块,用于接收所述网络过滤子模块所传送的封包,从所述规则表获取与所述封包对应的匹配条件对应的执行动作,并传送所述封包与所述执行动作至所述用户守护进程;其中,所述用户守护进程用于根据所述执行动作传送所述封包至对应的功能子进程进行处理。
2.如权利要求l所述的网络设备,其特征在于,所述目标包括所述目 标扩展子模块。
3.如权利要求2所述的网络设备,其特征在于,所述目标扩展子模块 对应的执行动作为执行所述执行动作的命令。
4.如权利要求l所述的网络设备,其特征在于,所述用户守护进程为 用户空间程序,通过netlink与所述目标扩展子模块通讯。
5.如权利要求l所述的网络设备,其特征在于,所述用户守护进程还 用于判断是否存在同所述执行动作对应的功能子进程。
6.如权利要求5所述的网络设备,其特征在于,所述用户守护进程还 用于当不存在同所述执行动作对应的功能子进程时,根据所述执行动作创建新的功能子进程 ,并把所述封包传送至所述新的功能子进程进行处理。
7. 一种处理封包的方法,用于网络设备中,其特征在于,所述处理 封包的方法包括接收封包,査询规则表内同所述封包对应的匹配条件,并发送所述封包至所述匹配条 件对应的目标;接收网络过滤子模块所传送的封包,从所述规则表获取与所述封包对应的匹配条件对 应的执行动作,并传送所述封包与所述执行动作至用户守护进程;及根据所述执行动作传送所述封包至对应的功能子进程进行处理。
8.如权利要求7所述的处理封包的方法,其特征在于,根据所述执行 动作传送所述封包至对应的功能子进程进行处理的步骤还包括以下步骤判断是否存在同所述执行动作对应的功能子进程;及若有,则发送所述封包至所述对应的功能子进程进行处理。
9.如权利要求8所述的处理封包的方法,其特征在于,根据所述执行 动作传送所述封包至对应的功能子进程进行处理的步骤还包括以下步骤若无,则根据所述执行动作创建新的功能子进程,并把封包传送至所述新的功能子进 程进行处理。
全文摘要
一种网络设备,包括用户守护进程及内核模块。内核模块包括规则表、网络过滤子模块及目标扩展子模块。规则表包括多个匹配条件、与这些匹配条件对应的多个目标及多个执行动作。网络过滤子模块用于接收封包,查询规则表内同该封包对应的匹配条件,并发送该封包至该匹配条件对应的目标。目标扩展子模块用于接收网络过滤子模块所传送的封包,从规则表获取与该封包对应的匹配条件对应的执行动作,并传送封包与执行动作至用户守护进程。用户守护进程用于根据执行动作传送封包至对应的功能子进程进行处理。所述网络设备通过设定规则及目标扩展子模块,将封包与相应的程序/进程关联起来,从而可将封包传送至用户端程序进行处理,如此减少内核模块的负担。
文档编号H04L29/06GK101651672SQ20081030377
公开日2010年2月17日 申请日期2008年8月14日 优先权日2008年8月14日
发明者李庆辉, 杜耀宏 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1