一种用于网络数据流识别的协议特征库维护使用方法技术

技术编号:11371256 阅读:62 留言:0更新日期:2015-04-30 04:13
一种用于网络数据流识别的协议特征库维护使用方法,其特征在于:利用Lua语言描述协议特征库,业务识别系统的业务线程获取网络数据包,识别网络数据流量,所述业务线程包括业务线程0和其他业务线程;协议特征库支持两个实例,分别记为特征库实例0和特征库实例1,每个业务线程保持一个特征库实例的句柄;业务线程特征匹配时,使用对应的特征库实例进行匹配;协议特征库更新时,利用信号通知方式重新加载协议特征库。本发明专利技术利用运行时动态加载的方式实现应用协议特征库的升级,对于日益增多和变化的应用协议可以基本做到实时跟进,从而达到对各种应用协议的准确判断。

【技术实现步骤摘要】
一种用于网络数据流识别的协议特征库维护使用方法
本专利技术涉及通信网络流量识别领域,更具体的,本专利技术涉及一种协议特征库的维护使用方法。
技术介绍
伴随着网络流量的暴增,新的网络业务类型层出不穷,为了掌握通信网络的业务流量分布和用户对各种业务的使用情况,从而更好地发现促进业务发展和影响网络正常运营的因素,必须首先对通信网络中的数据流量进行有效的识别。DPI(DeepPacketInspection)深度包检测技术是当前流量识别的主流技术。DPI是一种基于应用层的流量检测技术,通过识别报文负载中的特征字段来捕捉相应的业务流量。该方法使用一个协议特征库存储网络数据流特征信息,以网络流为单位进行判定,将网络数据流与协议特征库进行匹配,其负载包含某个应用的特征字段,则判定该网络流属于这个应用。协议特征库是网络中协议特征规范化描述的集合,对于每个协议都有多条规则组成,一条规则可以确定一个协议,而每条规则又由几个特征签名组成。协议特征库中包含P2P类软件、IM软件、VoIP类软件、视频类软件、炒股类软件、下载以及游戏类等常用软件特征。协议特征库需要不断的更新升级,根据应用流量的变化而经常变化,否则就会识别失败。面对日趋复杂的协议特征库文件情况,如何有效地组织应用协议特征库提高通信网络中的数据流量识别效率显得十分重要。但目前尚未有相关技术方案出现。
技术实现思路
为了适应多种多样的协议特征,同时便于提取各个种类的协议,以满足针对特定协议类型识别的要求,本专利技术提出了一种用于网络数据流识别的协议特征库维护使用方法。本专利技术技术方案提供一种用于网络数据流识别的协议特征库维护使用方法,利用Lua语言描述协议特征库,业务识别系统的业务线程获取网络数据包,识别网络数据流量,所述业务线程包括业务线程0和其他业务线程;协议特征库支持两个实例,分别记为特征库实例0和特征库实例1,每个业务线程保持一个特征库实例的句柄;业务线程特征匹配时,使用对应的特征库实例进行匹配;系统进程的处理方式如下,首先,系统进程启动并加载协议特征库,同时保存协议特征库的修改时间;每个业务线程都使用特征库实例0,特征库实例1空闲;业务线程0维护一个数值consist_num,标识当前和业务线程0使用相同特征库实例的线程数目,启动时consist_num为业务线程总数目;然后,系统进程注册SIGHUP信号处理程序,启动所有业务线程,其中SIGHUP是自定义的信号名称,用于在协议特征库更新后通知重新加载协议特征库;SIGHUP信号处理程序捕获到SIGHUP信号后,设置g_reload_cfg_flag标志,其中g_reload_cfg_flag是自定义的标志名称,用于标识是否重新加载协议特征库;业务线程周期性的进行心跳检查,在业务线程0心跳检查时,若g_reload_cfg_flag标志被设置并且协议特征库的修改时间与保存的不一样,而且consist_num等于业务线程总数目,则进行如下操作,更新协议特征库修改时间;设置consist_num为1;重新加载协议特征库到空闲的特征库实例中;将业务线程0的特征库句柄切换到空闲的特征库实例;通知其他业务线程重新加载协议特征库,包括发出“重新加载特征库消息”;其它业务线程心跳检查时不做处理,收到“重新加载特征库消息”后,才将特征库句柄切换到空闲的特征库实例,并通知业务线程0“特征库重新加载完毕”;业务线程0收到其它业务线程发送来的“特征库重新加载完毕”的消息后,累加consist_num,当consist_num等于业务线程数目时,所有的业务线程都已经切换到新的协议特征库了,此时业务线程0释放空闲的特征库实例;重新加载协议特征库完成,其它线程将网络数据流与协议特征库进行匹配,判定该网络流所属的协议类型。而且,协议特征库的字段包含name、id、grp和rules,name为协议名称,id为协议ID,grp为协议所属协议组,rules为特征匹配规则。而且,遍历协议特征库中的每一个协议,读取协议特征库的字段grp,根据获取的grp判断所属的协议组,根据协议所属的协议组统计各组的协议个数,输出指定协议组类型的所有协议形成独立的特征库文件,用于指定类别协议的识别。而且,所述特征匹配规则由12种表达式组成,描述如下,其中,off指特征的位置,width指特征由几个字节组成,diff指特征与实际长度的差值,endian指特征的字节序,data指序列的数据。本专利技术针对通信网络业务数据的特性,提供用于网络数据流识别的协议特征库维护使用方法,可以灵活地修改更新特征,易于维护。本专利技术利用运行时动态加载的方式实现应用协议特征库的升级,并提出协议特征库规范化的描述方式,对于日益增多和变化的应用协议可以基本做到实时跟进,从而达到对各种应用协议的准确判断。附图说明图1为本专利技术实施例的特征库统计和定制流程图。图2为本专利技术实施例针对特征库重新加载的进程处理流程图。图3为本专利技术实施例针对特征库重新加载的业务线程处理流程图。具体实施方式以下根据附图和实施例对本专利技术具体实现进行说明。本专利技术通过研究网络数据流,将协议的特征转化成计算机可以识别的模式。本专利技术实施例利用Lua的标准库提供的模式匹配和字串处理的功能作文本处理,从而维护协议特征库。本专利技术在运行时动态加载协议特征库,这样,协议特征库可以实时更新,而不会导致数据流量识别过程中途停止。Lua是一种小巧而简单的语言,可以用少量的代码解决关键问题。具体实施时,可以预先设定利用Lua语言描述协议特征库,例如协议特征库字段包含name(协议名称)、id(协议ID)、grp(协议所属协议组)、rules(特征匹配规则)等,其中特征匹配规则由11种表达式组成,用来表示传递给数据流量识别过程处理时负载的承载协议、服务器端口、移动台端口等特征。按照上述语法描述各协议,最终形成协议特征库。本专利技术实施例利用Lua语言描述协议特征库,协议特征库字段如下:字段说明name协议名称alias协议中文别名ealias协议英文别名id协议IDgrp协议所属协议组(web网页浏览、im即时通信、email邮件、game游戏等)rules特征匹配规则,每个特征匹配规则由若干个字段表示,见下文host_rules域名匹配规则,每个域名匹配规则由若干个字段表示,见下文ip_rulesIP匹配规则,每个IP匹配规则由若干个字段表示,见下文http_rulesHTTP特征匹配规则,每个HTTP特征匹配规则由若干个字段表示,见下文detail对协议、协议识别的描述history协议规则修订记录特征匹配规则由11种表达式组成,描述如下:域名匹配规则,描述如下:字段说明ids原协议IDhosts域名IP匹配规则,描述如下:字段说明ids原协议IDipsIP以HTTP协议的特征为例,描述如下:解释成自然语言,即协议名称是http,协议ID是10001,协议所属协议组是appgrp.web(网页浏览),特征匹配规则:第一条规则表示http负载的承载协议是TCP,服务器端口是80或3128;第二条规则表示http负载的承载协议是TCP,负载中从0开始的字节序列匹配“GET/”;第三条和第四条规则与第二条类似,表示http负载的承载协议是TCP,负载中从0开始的本文档来自技高网...
一种用于网络数据流识别的协议特征库维护使用方法

【技术保护点】
一种用于网络数据流识别的协议特征库维护使用方法,其特征在于:利用Lua语言描述协议特征库,业务识别系统的业务线程获取网络数据包,识别网络数据流量,所述业务线程包括业务线程0和其他业务线程;协议特征库支持两个实例,分别记为特征库实例0和特征库实例1,每个业务线程保持一个特征库实例的句柄;业务线程特征匹配时,使用对应的特征库实例进行匹配;系统进程的处理方式如下,首先,系统进程启动并加载协议特征库,同时保存协议特征库的修改时间;每个业务线程都使用特征库实例0,特征库实例1空闲;业务线程0维护一个数值consist_num,标识当前和业务线程0使用相同特征库实例的线程数目,启动时consist_num为业务线程总数目;然后,系统进程注册SIGHUP信号处理程序,启动所有业务线程,其中SIGHUP是自定义的信号名称,用于在协议特征库更新后通知重新加载协议特征库;SIGHUP信号处理程序捕获到SIGHUP信号后,设置g_reload_cfg_flag标志,其中g_reload_cfg_flag是自定义的标志名称,用于标识是否重新加载协议特征库;业务线程周期性的进行心跳检查,在业务线程0心跳检查时,若g_reload_cfg_flag标志被设置并且协议特征库的修改时间与保存的不一样,而且consist_num等于业务线程总数目,则进行如下操作,更新协议特征库修改时间;设置consist_num为1;重新加载协议特征库到空闲的特征库实例中;将业务线程0的特征库句柄切换到空闲的特征库实例;通知其他业务线程重新加载协议特征库,包括发出“重新加载特征库消息”;其它业务线程心跳检查时不做处理,收到“重新加载特征库消息”后,才将特征库句柄切换到空闲的特征库实例,并通知业务线程0“特征库重新加载完毕”;业务线程0收到其它业务线程发送来的“特征库重新加载完毕”的消息后,累加consist_num,当consist_num等于业务线程数目时,所有的业务线程都已经切换到新的协议特征库了,此时业务线程0释放空闲的特征库实例;重新加载协议特征库完成,其它线程将网络数据流与协议特征库进行匹配,判定该网络流所属的协议类型。...

【技术特征摘要】
1.一种用于网络数据流识别的协议特征库维护使用方法,其特征在于:利用Lua语言描述协议特征库,业务识别系统的业务线程获取网络数据包,识别网络数据流量,所述业务线程包括业务线程0和其他业务线程;协议特征库支持两个实例,分别记为特征库实例0和特征库实例1,每个业务线程保持一个特征库实例的句柄;业务线程特征匹配时,使用对应的特征库实例进行匹配;系统进程的处理方式如下,首先,系统进程启动并加载协议特征库,同时保存协议特征库的修改时间;每个业务线程都使用特征库实例0,特征库实例1空闲;业务线程0维护一个数值consist_num,标识当前和业务线程0使用相同特征库实例的线程数目,启动时consist_num为业务线程总数目;然后,系统进程注册SIGHUP信号处理程序,启动所有业务线程,其中SIGHUP是自定义的信号名称,用于在协议特征库更新后通知重新加载协议特征库;SIGHUP信号处理程序捕获到SIGHUP信号后,设置g_reload_cfg_flag标志,其中g_reload_cfg_flag是自定义的标志名称,用于标识是否重新加载协议特征库;业务线程周期性的进行心跳检查,在业务线程0心跳检查时,若g_reload_cfg_flag标志被设置并且协议特征库的修改时间与保存的不一样,而且consist_num等于业务线程总数目,则进行如下操作,更新协议特征库修改时间;设置consist_num为1;重新加载协议特征库到空闲的特征库实例中;将业务线程0的特征库句柄切换到空闲的特征库实...

【专利技术属性】
技术研发人员:陈丹李磊肖伟明余道敏陈亮
申请(专利权)人:武汉虹信技术服务有限责任公司
类型:发明
国别省市:湖北;42

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

1