[发明专利]一种网络数据包协议识别方法及系统有效
申请号: | 201210567370.4 | 申请日: | 2012-12-24 |
公开(公告)号: | CN103023909A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 罗鹰;伍宏宁 | 申请(专利权)人: | 成都科来软件有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/70 |
代理公司: | 四川力久律师事务所 51221 | 代理人: | 熊晓果;林辉轮 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络 数据包 协议 识别 方法 系统 | ||
技术领域
本发明涉及网络技术领域,特别涉及一种网络数据包协议识别方法及系统。
背景技术
数据包(Packet)是在封包交换网络(例如,因特网)中的最小传输数据单元。网络传输协议(简称协议)是为计算机网络中进行数据交换而建立的规则、标准或约定的集合,是数据包中信息格式的规定。网络设备在收到网络数据包后,需要解析出数据包的内容才能完成相应的处理功能,首先需要识别数据包使用的网络协议才能正确解析出数据包的内容。随着网络技术的不断发展,新的网络协议不断涌现,要求数据包协议识别需要具有较好的扩展性。目前通常采用的数据包协议识别方法是:针对所有协议配置一套通用的识别模块,提取每种协议的特征编写为一个插件,加入到通用识别模块中以完成识别,添加新协议时只需要将新协议的特征编写为一个插件添加到通用识别模块即可,扩展性好。但是通用识别模块适用于所有协议,输入待识别的数据包后,需要加载每一种协议的插件,然后将数据包中的关键字与通用识别模块中的每一种协议插件中协议的特征值进行比较。一种协议有一个插件,与每一个插件进行比较都需要提取一次数据包中的关键字,运行效率低,每秒只能处理数万个数据包。而且,协议越多,识别时需要进行比较的操作就越多,消耗的时间也就越长。随着网络容量的不断扩大,在网络流量分析等应用场合,需要对大量的数据包进行分析和处理,因此目前的数据包协议识别方法不能同时满足扩展性和处理效率的要求。
发明内容
本发明的目的在于克服现有技术中所存在的扩展性和处理效率不能兼顾的不足,提供一种网络数据包协议识别方法,该方法不但具有较好的扩展性,还具有较高的处理效率。本发明的另一目的是提供一种网络数据包协议识别系统。
为了实现上述发明目的,本发明提供了以下技术方案:
一种网络数据包协议识别方法,包括协议配置步骤和数据包协议识别步骤,其中,所述协议配置步骤包括:
A.输入协议的协议特征信息,并存储;
B.根据协议特征信息建立协议树;
C.根据协议特征信息建立特征值表和判断逻辑;
所述数据包协议识别步骤包括:
a.获取待识别的数据包;
b.根据获取数据包的物理介质,选取用于识别数据包协议的协议树;
c.从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议。
根据本发明实施例,步骤A中所述协议特征信息包括:所述协议的名称、所述协议的下级协议名称、所述协议的关键字、特征值、关键字定义和比较方式,所述比较方式包括大于、等于、小于。
根据本发明实施例,所述步骤B中建立协议树的方法是:根据协议特征信息,将一个协议作为一个协议节点,所有具有相同下级协议的协议组成一个节点层,再按照协议的上、下级关系,连接所有协议节点组成协议树,组成同一个节点层的协议节点位于协议树的同一个节点层,所述协议树的入口为物理介质。
根据本发明实施例,步骤C中所述建立特征值表的方法是:遍历存储的所有协议的协议特征信息,选取所有比较方式为等于的协议,一个关键字建立一张特征值表,特征值表中记录该关键字的所有特征值及各特征值对应的协议名称;所述判断逻辑由所有比较方式为大于或小于的协议的名称及该协议的判断条件构成。
根据本发明实施例,所述协议配置步骤中还包括步骤D.将所有特征值表和判断逻辑组织成执行代码,然后对执行代码进编译,生成识别引擎。
根据本发明实施例,所述步骤c从数据包中读取用于识别数据包协议的关键字的数值,并将读取到的关键字的数值与特征值表和判断逻辑进行比对,识别数据包协议包括:
c1.进入协议树的根节点;
c2.从数据包中读取当前节点层中所有的协议节点的关键字在数据包中的数值;
c3.查询当前节点层中所有的协议节点的关键字的特征值表,如果从数据包中读取到的关键字的数值与特征值表中的某个特征值相同,则得出当前协议节点的协议为特征值表中该特征值对应的协议,并进入步骤c5,如果与特征值表中的所有特征值均不同则进入步骤c4;
c4.执行判断逻辑,如果读取的关键字的数值满足判断逻辑中的某判断条件,则得出当前节点协议为该判断条件对应的协议,并进入步骤b5,如果不满足判断逻辑中的任何判断条件,则输出识别结果;
c5.进入协议树中当前节点层的下一个节点层,循环步骤c2~c4。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都科来软件有限公司,未经成都科来软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210567370.4/2.html,转载请声明来源钻瓜专利网。