[发明专利]数据连接的识别方法和装置在审
申请号: | 201510669942.3 | 申请日: | 2015-10-13 |
公开(公告)号: | CN105391688A | 公开(公告)日: | 2016-03-09 |
发明(设计)人: | 王永峰;万月亮;火一莽 | 申请(专利权)人: | 北京锐安科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 胡彬;孟金喆 |
地址: | 100044 北京市海淀区西小口*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 连接 识别 方法 装置 | ||
技术领域
本发明实施例涉及网络通信技术领域,尤其涉及一种数据连接的识别方法和装置。
背景技术
L7-filter是一个Linux内核Netfilter子系统的协议分类器,它可以识别应用层(OSIlayer7)的数据包。L7-filter作为Linux上的数据包识别分类器,和其他大多数分类器不同,它并不只是查看数据包的端口号、IP地址等简单属性,而是使用正则表达式来匹配应用层协议(如HTTP、FTP等),从而得知当前数据包术语何种协议并打上标记。因此,L7-filter能够按不同应用层协议对数据包分类,特别是能对P2P协议高效识别。目前L7-filter不仅默认能识别实际网络中的上百中协议,还可以通过添加匹配模式文件方便的进行扩展。
L7-filter主要用于哪些不能基于端口来处理包信息的情况:分析端口不固定、无法预知的协议(如P2P);非标准端口的数据包(如HTTP使用8080、442端口);多种协议共享一个端口(如P2P共用80端口)。
L7-filter是用正则表达式的字符匹配方式辨别数据包的。表1给出了用于辨别几种协议的正则表达式的实例。参见表1,如果数据包中开头是“220”之后有“ftp”字样,并且之后数据包中包含“331”和“password”字样,则可以判断此链接是FTP服务。如果数据包中包含“http”、“connection:”、“content-type:”、“content-length”的内容时,则可以判断此链接是HTTP服务。
表1
数据包传递给L7-filter处理后,会在内核等待L7-filter反馈分析结果。L7-filter创建了两个线程,一个连接跟踪线程,如图1中虚线部分所示,一个是队列跟踪线程,如图1中实线部分所示。
所述连接跟踪线程依赖于内核的连接跟踪实现,如果信道数据包,内核创建连接跟踪并给L7-filter发送新建连接跟踪时间,L7-filter在用户空间创建连接跟踪。所述队列跟踪线程主要缓存收到的数据包到相应的连接跟踪的队列中,分析缓存中的内容,然后给内核反馈分析结果。具体的详细流程如下:
获取数据包中应用层数据的偏移,因为nf_queue基于Netfilter,而Netfilter工作于网络层,网络层中的数据包包含有传输层头部,必须将其移除。
在用户空间也有连接跟踪,每个连接跟踪都对应了一个缓存,可以存放一个链接的前10个数据包。
如果应用已经被识别,则可以直接返回。如果应用没有被识别,则继续识别。识别之前需要判断,连接跟踪对应缓存中的数据包数量是否达到10个,如果已经有10个数据包了,则标记连接无法被识别,以后也不需要识别了,所以直接释放缓存。如果数据包个数小于10,则可以继续识别数据包。
数据包拷贝至对应的连接缓存中,调用正则表达式匹配。如果和所有正则表达式都匹配失败,则直接给内核反馈分析结果,如果匹配成功则获取相应的mark值,然后释放缓存,以后都不再需要分析该连接的数据了。
现有的L7-filter采用单线程对数据包进行模式匹配。由于基于正则表达式方式的模式匹配会消耗比较多的资源,尤其是CPU资源,所以这里就会成为L7-filter的瓶颈,导致L7-filter的处理容量比较小。
发明内容
针对上述技术问题,本发明实施例提供了一种数据连接的识别方法和装置,以提高L7-filter的处理容量。
第一方面,本发明实施例提供了一种数据连接的识别方法,所述方法包括:
获取网络上传输的,分属于不同数据连接的数据包;
启动至少两个模式匹配线程,对所述数据包进行并行的模式匹配;
根据所述模式匹配的结果识别所述数据连接的协议类别。
第二方面,本发明实施例还提供了一种数据连接的识别装置,所述装置包括:
数据包获取模块,用于获取网络上传输的,分属于不同数据连接的数据包;
并行匹配模块,用于启动至少两个模式匹配线程,对所述数据包进行并行的模式匹配;
识别模块,用于根据所述模式匹配的结果识别所述数据连接的协议类别。
本发明实施例提供的数据连接的识别方法和装置,通过获取网络上传输的,分属于不同数据连接的数据包,启动至少两个模式匹配线程,对所述数据包进行并行的模式匹配,根据所述模式匹配的结果识别所述数据连接的协议类别,从而提高L7-filter的处理容量。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐安科技有限公司,未经北京锐安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510669942.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置