[发明专利]用于网络数据处理的方法和装置在审
申请号: | 201210551542.9 | 申请日: | 2012-11-29 |
公开(公告)号: | CN103856474A | 公开(公告)日: | 2014-06-11 |
发明(设计)人: | 丁冠军 | 申请(专利权)人: | 北京千橡网景科技发展有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅 |
地址: | 100041 北京市石*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 网络 数据处理 方法 装置 | ||
技术领域
本发明的实施例总体上涉及计算机网络领域,并且更具体地,涉及用于网络数据处理的方法和装置。
背景技术
存在诸多网络应用可能需要对通过网络接收的数据进行处理。例如,在网络入侵检测系统中,特定的用户应用可能需要对经由网络适配器接收到的网络数据进行检测,以确定这些网络数据中是否含有攻击性字符、垃圾广告等恶意或非法信息。而且,这种数据常常是大量的。
本领域技术人员知道,在诸如Unix、Linux等很多操作系统中,任务或进程分为内核态和用户态。当一个任务执行系统调用而进入内核代码中执行时,就称该进程处于内核运行态(或简称为内核态)。反之,当进程在执行用户应用自己的代码时,则称其处于用户运行态(用户态)。
传统上,经由网络适配器接收到的网络数据以数据包(例如,SKB包)的形式存储在系统内核的缓冲区中。当用户应用需要对这些网络数据进行检测时,应用需要借助于系统调用而进行从内核层到应用层的数据拷贝,并且相应地发生内核态与用户态之间的状态切换。当存在大量网络数据需要处理和检查时,频繁的系统调用和状态切换将显著降低系统性能。
而且,现有技术中用于保存网络数据的内核缓冲区通常是队列形式。当出现大数据流时,可能由于缓冲区满而导致丢包。这导致上层应用无法准确地检测和/或阻止潜在的网络入侵。
发明内容
鉴于现有技术中存在的上述问题,本领域中需要一种更为有效的网络数据处理方案。
在本发明的第一方面,提供一种用于处理网络数据的方法。该方法包括:将通过网络适配器从网络接收的数据存储在系统内核的第一缓冲区中;将所述数据在所述第一缓冲区中的地址信息存储在所述内核的第二缓冲区中;以及向处于用户态的应用提供所述第二缓冲区中的地址信息,以便所述应用访问所述第一缓冲区中的数据以供处理。
在本发明的第二方面,提供一种用于处理网络数据的装置。该装置包括:数据存储单元,被配置为将通过网络适配器从网络接收的数据存储在系统内核的第一缓冲区中;地址存储单元,被配置为将所述数据在所述第一缓冲区中的地址信息存储在所述内核的第二缓冲区中;以及地址映射单元,被配置为向处于用户态的应用提供所述第二缓冲区中的地址信息,以便所述应用访问所述第一缓冲区中的数据以供处理。
通过下文详细描述将会理解,根据本发明的实施例,能够有效减少应用在内核态与用户态之间的切换,减少数据拷贝的次数,从而有效地提高网络数据处理的性能。而且,本发明的实施例能够有效避免因缓冲区溢出而导致的数据丢包。
附图说明
通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中:
图1示出了根据本发明一个示例性实施例的用于处理网络数据的方法100的流程图;
图2示出了根据本发明一个示例性实施例的用于处理网络数据的装置200的框图;以及
图3示出了适于用来实现本发明实施例的示例性计算机系统300的框图。
在附图中,相同或相似的标号表示相同或相似的元素。
具体实施方式
下面将参考附图中示出的若干示例性实施例来描述本发明的原理和精神。应当理解,给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
在下文描述中,可能将接收网络数据的系统描述为基于Linux或者Unix,但是这仅仅是示例性的。实际上,本发明的实施例能够适用于任何目前已知或者将来开发的适当系统。
首先参考图1,其示出了根据本发明一个示例性实施例的用于处理网络数据的方法100的流程图。
方法100开始之后,在步骤S101,将通过网络适配器从网络接收的数据存储在系统内核的第一缓冲区中。
传统上在诸如基于Linux的系统中,从网络适配器接收到的网络数据被存储在内核的缓冲区(称为“固有缓冲区”)中,以便用户态的应用通过系统调用以数据拷贝的方式访问。根据本发明的实施例,在步骤S101中用于存储数据的第一缓冲区可以独立于系统固有协议簇用来存储数据的缓冲区。
根据本发明的某些实施例,方法100可以借助于新的协议簇实现。该协议簇可以与Linux系统的固有协议簇共存。在这种情况下,从网络适配器接收到的数据将被存储在第一缓冲区和固有缓冲区二者中。备选地,实现方法100的协议簇也可以替代Linux系统的固有协议簇。在这种情况下,数据仅被保存在第一缓冲区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京千橡网景科技发展有限公司,未经北京千橡网景科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210551542.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于提供验证的方法和设备
- 下一篇:具有互联语音通话功能的信息发布系统的设计