CN102546548A - 一种分层协议的识别方法和装置 - Google Patents

一种分层协议的识别方法和装置 Download PDF

Info

Publication number
CN102546548A
CN102546548A CN2010106017366A CN201010601736A CN102546548A CN 102546548 A CN102546548 A CN 102546548A CN 2010106017366 A CN2010106017366 A CN 2010106017366A CN 201010601736 A CN201010601736 A CN 201010601736A CN 102546548 A CN102546548 A CN 102546548A
Authority
CN
China
Prior art keywords
protocol
application
application layer
upper layer
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010106017366A
Other languages
English (en)
Other versions
CN102546548B (zh
Inventor
朱娜
吴锦花
刘晓波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhongxing Software Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201010601736.6A priority Critical patent/CN102546548B/zh
Publication of CN102546548A publication Critical patent/CN102546548A/zh
Application granted granted Critical
Publication of CN102546548B publication Critical patent/CN102546548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分层协议的识别方法和装置,包括:匹配引擎将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;利用应用层协议分层关系进行应用层协议判定处理,判定所述应用层协议是否存在上层应用协议;当不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议;当存在上层应用协议时,进行暂缓识别,并对后续报文进行正则表达式匹配处理和应用层协议判定处理,直至对后续报文进行协议归类处理。本发明使用暂缓识别机制,将网络流量归为更上层应用协议,提高了分层协议的识别精度。

Description

一种分层协议的识别方法和装置
技术领域
本发明涉及通信领域的一种协议识别技术,尤其涉及一种应用层分层协议的识别技术。
背景技术
协议识别目的是识别网络传输中所使用的应用层协议类型。准确识别网络传输中的应用层协议类型,对提高网络服务质量、进行入侵检测、带宽控制和计费管理等都具有重要意义。
传统的协议识别是基于端口映射机制实现,这种识别能达到较高的速率,但是随着网络的发展,其缺陷也越来越明显。目前,大量协议采用动态端口通信,此类协议的产生,使得基于端口映射机制的传统协议识别已无能无力。随着协议识别研究的不断深入,协议识别越来越趋向于采用正则表达式。基于正则表达式的协议识别是基于Payload特征识别的一种,它首先基于报文体的检测需要,分析报文中的内容,根据预先定义的正则表达式,对报文体中的内容进行匹配,寻找匹配项,并确定报文所属的应用层协议,从而判定整个流所属的应用协议类型,对于较复杂的协议需要通过多个报文的匹配来完成协议识别过程。
图1是根据正则表达式进行协议识别的架构示意图。首先通过分析报文的应用层数据,统计网络实际通信过程中该协议出现频率最高且特有的字段作为该协议的特征,然后把提取的协议特征转换为正则表达式,将报文与正则表达式进行匹配,匹配成功后直接归为某种协议。
随着网络应用和私有协议的发展,衍生出很多基于标准应用协议的更深层应用协议,形成了应用协议的分层关系,如图2所示,将应用层协议由浅至深分为底层应用协议、上层应用协议等多个层次。在一次交互过程中,常需要多个应用层协议相互协作,完成数据传输。而原有的正则表达式匹配协议识别方法是在报文与正则表达式匹配成功后直接将整个流归为某种应用协议,即该流只能归为底层应用协议,对于分层协议而言,因为上层应用协议特征一般存在于后续报文中,这就造成协议误识别率的增大。例如STUN协议(Simple Traversal of UserDatagram Protocol through Network Address Translators(NATs),NAT的UDP简单穿越)是一种网络协议,用于两个同时处于NAT路由器之后的主机之间建立UDP通信,很多VoIP服务采用NAT协议进行NAT网关以及防火墙穿越。因为VoIP服务需要进行多包正则表达式匹配,STUN只需要单包正则表达式匹配,如果使用现有的正则表达式匹配机制,第一个报文到达后进行正则表达式匹配,报文匹配成功后,该流归类为STUN协议,后续报文不再进行正则表达式匹配,因此,无法进行深层的VoIP协议匹配识别,造成协议识别的不精确。
发明内容
本发明的目的在于提供一种分层协议的识别方法和装置,通过分层协议的暂缓识别机制,解决了协议识别不精确的技术问题。
根据本发明的一个方面,提供的一种分层协议的识别方法包括:
A)匹配引擎将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
B)利用应用层协议分层关系进行应用层协议判定处理,判定所述应用层协议是否存在上层应用协议;
C)当不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议;
D)当存在上层应用协议时,进行暂缓识别,并对后续报文进行正则表达式匹配处理和应用层协议判定处理,直至对后续报文进行协议归类处理。
其中,所述步骤D)包括:
D1)将接收的后续报文进行正则表达式匹配处理,若存在的上层应用协议匹配失败,则进行协议归类处理,将后续报文归类到前一报文所属的应用层协议,否则,进行应用层协议判定处理,判定匹配成功的所述上层应用协议是否仍存在上层应用协议;
D2)若不存在,仅进行协议归类处理,将后续报文归类为匹配成功的所述上层应用协议;
D3)若存在,则重复执行步骤D1和D2。
其中,执行所述步骤A前,还包括:
根据应用层协议的特征和关系,建立应用层协议分层关系,并将所述应用层协议分层关系保存至所述匹配引擎。
上述应用层协议分层关系的分层协议包括STUN协议和/或MSN VoIP协议和/或HTTP协议。
根据本发明的另一个方面,提供的一种分层协议的识别装置包括:
匹配模块,用于将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
判定模块,用于利用应用层协议分层关系进行应用层协议判定处理,判定应用层协议是否存在上层应用协议;
识别模块,用于在所述应用层协议不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议,并在所述应用层协议存在上层应用协议时,进行暂缓识别。
其中,所述匹配模块还用于对接收的后续报文进行正则表达式匹配处理,并将匹配消息送入所述判定模块或所述识别模块。
其中,所述判定模块还用于判定后续报文所属的上层应用协议是否仍存在上层应用协议,并将判定消息送入所述识别模块和所述匹配模块。
其中,所述识别模块还应用根据所述匹配模块传递的匹配失败的匹配消息或所述判定模块传递的不存在上层应用协议的判定消息进行协议归类处理,或根据所述判定模块传递的存在上层应用协议的判定消息进行暂缓识别。
上述应用层协议分层关系的分层协议包括STUN协议和/或MSN VoIP协议和/或HTTP协议。
与现有技术相比,本发明的有益效果在于:本发明通过分层协议的暂缓识别机制,提供了应用层分层协议的精确识别技术,提高了应用层分层协议的识别精度。
附图说明
图1是现有技术中正则表达式协议识别的架构示意图;
图2是现有技术中应用层协议的分层关系示意图;
图3是本发明提供的分层协议的识别方法流程图;
图4是本发明提供的分层协议的识别装置框图;
图5是本发明第一实施例提供的分层协议的识别方法流程图;
图6是本发明第二实施例提供的分层协议的识别方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限制本发明。
图3显示了本发明提供的分层协议的识别方法流程图,如图3所示,具体实施步骤如下:
S301:匹配引擎接收报文;
S302:将接收的报文进行正则表达式匹配处理,若匹配,则得到报文所属的应用层协议,并执行S303,否则,执行S304;
S303:利用应用层协议分层关系,进行应用层协议判定处理,判定所述应用层协议是否存在上层应用协议,若存在,则暂缓识别,重复执行S301,否则,则行S304;
S304:进行协议归类处理,识别应用层协议。
具体地说,本发明提供的分层协议的识别方法包括以下步骤:
A)匹配引擎将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
B)利用应用层协议分层关系进行应用层协议判定处理,判定所述应用层协议是否存在上层应用协议;
C)当不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议;
D)当存在上层应用协议时,进行暂缓识别,并对后续报文进行正则表达式匹配处理和应用层协议判定处理,直至对后续报文进行协议归类处理。
所述步骤D包括:
D1)将接收的后续报文进行正则表达式匹配处理,若存在的上层应用协议匹配失败,则进行协议归类处理,将后续报文归类到前一报文所属的应用层协议,否则,进行应用层协议判定处理,判定匹配成功的所述上层应用协议是否仍存在上层应用协议;
D2)若不存在,仅进行协议归类处理,将后续报文归类为匹配成功的所述上层应用协议;
D3)若存在,则重复执行步骤D1和D2。
其中,执行所述步骤A前,还包括:根据应用层协议的特征和关系,建立应用层协议分层关系,并将所述应用层协议分层关系保存至所述匹配引擎。
上述应用层协议分层关系的分层协议包括但不限于STUN协议和/或MSNVoIP协议和/或HTTP协议。
所述应用层协议的特征包括协议通信端口特征、协议负载内容特征和协议关联特征等。
图4显示了本发明提供的分层协议的识别装置框图,如图4所示,包括:
匹配模块,用于将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
判定模块,用于利用应用层协议分层关系进行应用层协议判定处理,判定应用层协议是否存在上层应用协议;
识别模块,用于在所述应用层协议不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议,并在所述应用层协议存在上层应用协议时,进行暂缓识别。
其中,所述匹配模块还用于对接收的后续报文进行正则表达式匹配处理,并将匹配消息送入所述判定模块或所述识别模块。
其中,所述判定模块还用于判定后续报文所属的上层应用协议是否仍存在上层应用协议,并将判定消息送入所述识别模块和所述匹配模块。
其中,所述识别模块还应用根据所述匹配模块传递的匹配失败的匹配消息或所述判定模块传递的不存在上层应用协议的判定消息进行协议归类处理,或根据所述判定模块传递的存在上层应用协议的判定消息进行暂缓识别。
图5显示了本发明第一实施例提供的分层协议的识别方法流程图,如图5所示。客户端使用MSN软件进行MSN语音聊天,MSN软件首先使用STUN协议穿越防火墙进行两端协商,匹配引擎检测到协商报文后,将所述协商报文进行正则表达式匹配处理,匹配成功STUN协议的正则特征,并利用应用层协议分层关系进行应用层协议判定处理,判定STUN协议存在上层应用协议,因此,进行暂缓识别。MSN软件使用STUN协议成功协商建立链接后,在协商链路上进行VoIP语音数据流传输。协议匹配引擎检测到语音数据流后,进行正则表达式匹配处理,MSN VoIP协议的正则特征匹配成功,并且所述MSN VoIP协议不存在上层应用协议,则进行协议归类处理,将语音数据流归类为MSN VoIP协议。具体步骤如下:
S501:客户端使用MSN软件进行MSN语音聊天,MSN软件利用STUN协议穿越防火墙进行两端协商;
S502:匹配引擎检测到协商报文,并将所述协商报文进行正则表达式匹配处理;
S503:匹配引擎匹配成功STUN协议的正则特征,即所述协商报文所属的应用层协议为STUN协议;
S504:利用应用层协议分层关系,进行应用层协议判定处理,并判定所述STUN协议存在上层应用协议,进行暂缓识别;
S505:MSN软件利用STUN协议在两端成功协商建立链接后,在协商链路上进行VoIP语音数据流传输;
S506:匹配引擎检测到语音数据流,进行正则表达式匹配处理,MSN VoIP协议的正则特征匹配成功,并且根据所述应用层协议分层关系判断所述MSN VoIP协议不存在上层应用协议后,进行协议归类处理,将VoIP语音数据流归类为MSNVoIP协议。
图6显示了本发明第二实施例提供的分层协议的识别方法流程图,如图6所示。客户端进行HTTP网页浏览,匹配引擎检测到网页请求报文,将所述网页请求报文进行正则表达式匹配处理,匹配成功HTTP协议的正则特征,利用应用层协议分层关系进行应用层协议判定处理,判断HTTP协议存在上层应用协议,进行暂缓识别。服务器响应所述网页请求报文,发送响应报文,以传输网页内容;匹配引擎检测到响应报文,并与正则表达式匹配,上层应用协议的正则特征匹配失败,进行协议归类处理,归类为HTTP协议。具体步骤如下:
S601:客户端进行HTTP网页浏览;
S602:匹配引擎检测到网页请求报文,并进行正则表达式匹配处理;
S603:匹配成功HTTP协议的正则特征,即所述网页请求报文所属的应用层协议为HTTP协议;
S604:利用应用层协议分层关系,进行应用层协议判定处理,找到HTTP协议存在上层应用协议,进行暂缓识别。
S605:服务器发送响应报文,以传输网页内容;
S606:匹配引擎检测到响应报文,并进行正则表达式匹配处理,上层应用协议正则特征匹配失败,进行协议归类处理,归类为HTTP协议。
本发明第一实施例和第二实施例提供的STUN协议、MSN VoIP协议和HTTP协议仅用于说明和解释本发明,本发明所述技术方案的应用不限于上述几种应用层协议。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所做的修改,都应当理解为落入本发明的保护范围。

Claims (9)

1.一种分层协议的识别方法,其特征在于,包括:
A)匹配引擎将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
B)利用应用层协议分层关系进行应用层协议判定处理,判定所述应用层协议是否存在上层应用协议;
C)当不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议;
D)当存在上层应用协议时,进行暂缓识别,并对后续报文进行正则表达式匹配处理和应用层协议判定处理,直至对后续报文进行协议归类处理。
2.根据权利要求1所述的识别方法,其特征在于,所述步骤D)包括:
D1)将接收的后续报文进行正则表达式匹配处理,若存在的上层应用协议匹配失败,则进行协议归类处理,将后续报文归类到前一报文所属的应用层协议,否则,进行应用层协议判定处理,判定匹配成功的所述上层应用协议是否仍存在上层应用协议;
D2)若不存在,仅进行协议归类处理,将后续报文归类为匹配成功的所述上层应用协议;
D3)若存在,则重复执行步骤D1和D2。
3.根据权利要求1所述的识别方法,其特征在于,执行所述步骤A)前,还包括:
根据应用层协议的特征和关系,建立应用层协议分层关系,并将所述应用层协议分层关系保存至所述匹配引擎。
4.根据权利要求1-3任意一项所述的识别方法,其特征在于,
所述应用层协议分层关系的分层协议包括STUN协议和/或MSN VoIP协议和/或HTTP协议。
5.一种分层协议的识别装置,其特征在于,包括:
匹配模块,用于将接收的报文进行正则表达式匹配处理,得到报文所属的应用层协议;
判定模块,用于利用应用层协议分层关系进行应用层协议判定处理,判定应用层协议是否存在上层应用协议;
识别模块,用于在所述应用层协议不存在上层应用协议时,进行协议归类处理,将报文归类为所述应用层协议,并在所述应用层协议存在上层应用协议时,进行暂缓识别。
6.根据权利要求5所述的识别装置,其特征在于,所述匹配模块还用于对接收的后续报文进行正则表达式匹配处理,并将匹配消息送入所述判定模块或所述识别模块。
7.根据权利要求6所述的识别装置,其特征在于,所述判定模块还用于判定后续报文所属的上层应用协议是否仍存在上层应用协议,并将判定消息送入所述识别模块和所述匹配模块。
8.根据权利要求7所述的识别装置,其特征在于,所述识别模块还应用根据所述匹配模块传递的匹配失败的匹配消息或所述判定模块传递的不存在上层应用协议的判定消息进行协议归类处理,或根据所述判定模块传递的存在上层应用协议的判定消息进行暂缓识别。
9.根据权利要求5述的识别装置,其特征在于,所述应用层协议分层关系的分层协议包括STUN协议和/或MSN VoIP协议和/或HTTP协议。
CN201010601736.6A 2010-12-22 2010-12-22 一种分层协议的识别方法和装置 Active CN102546548B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010601736.6A CN102546548B (zh) 2010-12-22 2010-12-22 一种分层协议的识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010601736.6A CN102546548B (zh) 2010-12-22 2010-12-22 一种分层协议的识别方法和装置

Publications (2)

Publication Number Publication Date
CN102546548A true CN102546548A (zh) 2012-07-04
CN102546548B CN102546548B (zh) 2015-04-01

Family

ID=46352519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010601736.6A Active CN102546548B (zh) 2010-12-22 2010-12-22 一种分层协议的识别方法和装置

Country Status (1)

Country Link
CN (1) CN102546548B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036773A (zh) * 2012-12-21 2013-04-10 清华大学 网络即时通信工具流量识别系统及识别方法
CN105357082A (zh) * 2014-12-22 2016-02-24 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105991373A (zh) * 2015-04-30 2016-10-05 杭州迪普科技有限公司 一种应用协议识别方法及装置
CN111756686A (zh) * 2020-05-18 2020-10-09 武汉思普崚技术有限公司 防火墙设备正则匹配方法、装置及计算机可读存储介质
CN117579525A (zh) * 2023-11-20 2024-02-20 北京思存通信技术有限公司 一种网络协议特征识别系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020049462A (ko) * 2000-12-19 2002-06-26 노병희 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101262491A (zh) * 2008-04-02 2008-09-10 王京 应用层网络分析方法及系统
CN101741644A (zh) * 2009-12-16 2010-06-16 成都市华为赛门铁克科技有限公司 流量检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020049462A (ko) * 2000-12-19 2002-06-26 노병희 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101262491A (zh) * 2008-04-02 2008-09-10 王京 应用层网络分析方法及系统
CN101741644A (zh) * 2009-12-16 2010-06-16 成都市华为赛门铁克科技有限公司 流量检测方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036773A (zh) * 2012-12-21 2013-04-10 清华大学 网络即时通信工具流量识别系统及识别方法
CN103036773B (zh) * 2012-12-21 2015-08-12 清华大学 网络即时通信工具流量识别系统及识别方法
CN105357082A (zh) * 2014-12-22 2016-02-24 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105357082B (zh) * 2014-12-22 2019-01-29 成都科来软件有限公司 一种网络流量的识别方法及装置
CN105991373A (zh) * 2015-04-30 2016-10-05 杭州迪普科技有限公司 一种应用协议识别方法及装置
CN105991373B (zh) * 2015-04-30 2019-06-25 杭州迪普科技股份有限公司 一种应用协议识别方法及装置
CN111756686A (zh) * 2020-05-18 2020-10-09 武汉思普崚技术有限公司 防火墙设备正则匹配方法、装置及计算机可读存储介质
CN111756686B (zh) * 2020-05-18 2022-04-26 武汉思普崚技术有限公司 防火墙设备正则匹配方法、装置及计算机可读存储介质
CN117579525A (zh) * 2023-11-20 2024-02-20 北京思存通信技术有限公司 一种网络协议特征识别系统
CN117579525B (zh) * 2023-11-20 2024-06-11 北京思存通信技术有限公司 一种网络协议特征识别系统

Also Published As

Publication number Publication date
CN102546548B (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
CN103023670B (zh) 基于dpi的报文业务类型识别方法及装置
CN106815112B (zh) 一种基于深度包检测的海量数据监控系统及方法
CN104320304B (zh) 一种易扩展的多方式融合的核心网用户流量应用识别方法
CN101360054B (zh) 数据传输系统及数据传输方法
CN101176306B (zh) 通信业务分析系统以及检查网络通信业务流的方法
US20070160073A1 (en) Packet communications unit
US20130294449A1 (en) Efficient application recognition in network traffic
CN102546548B (zh) 一种分层协议的识别方法和装置
CN111294399B (zh) 一种数据传输方法和装置
CN110636151B (zh) 一种报文处理方法、装置、防火墙及存储介质
CN101510873B (zh) 基于支持向量机的混合式点对点流量检测方法
CN102739457A (zh) 一种基于dpi和svm技术的网络流量识别系统及方法
CN103873356A (zh) 基于家庭网关的应用识别方法、系统和家庭网关
US7889760B2 (en) Systems and methods for sending binary, file contents, and other information, across SIP info and text communication channels
CN101184089A (zh) 一种基于端口与内容混杂检测的协议识别方法
CN101854330A (zh) 互联网的网络应用采集与分析方法及系统
CN103001966B (zh) 一种私网ip的处理、识别方法及装置
US10541985B2 (en) Coordinated packet delivery of encrypted session
CN113382039B (zh) 一种基于5g移动网络流量分析的应用识别方法和系统
CN102332999A (zh) 一种基于共享nat的网络管理交互系统及交互方法
US9077662B2 (en) Service linkage control system and method
CN110798461B (zh) 非对称路由网络下VoIP关联方法、装置及可读存储介质
CN102480503B (zh) P2p流量识别方法和装置
CN1551569A (zh) 网络传输多媒体数据的方法
CN104348675A (zh) 双向业务数据流识别方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200720

Address after: 210012 Nanjing, Yuhuatai District, South Street, Bauhinia Road, No. 68

Patentee after: Nanjing Zhongxing Software Co.,Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

TR01 Transfer of patent right