CN105007194A - 一种自动识别网络协议的方法 - Google Patents
一种自动识别网络协议的方法 Download PDFInfo
- Publication number
- CN105007194A CN105007194A CN201510271692.8A CN201510271692A CN105007194A CN 105007194 A CN105007194 A CN 105007194A CN 201510271692 A CN201510271692 A CN 201510271692A CN 105007194 A CN105007194 A CN 105007194A
- Authority
- CN
- China
- Prior art keywords
- packet
- characteristic vector
- protocol
- characteristic
- agreement
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种自动识别网络协议的方法,属于网络协议识别。本方法首先设计协议的特征向量,设置特征向量中的特征值种类,选定各特征值的获取方法,并针对不同协议,为特征值设置权重;然后,针对各已知协议,抓取协议的数据包,确定已知协议的特征向量;抓取网络数据流,确定各网络数据包的特征值,构造网络数据流的特征向量,将网络数据流的特征向量与已知协议的特征向量进行比对,根据比对结果判断网络数据流的协议类型。本发明只需要根据特征向量的比对结果,即可确定数据流协议的类型,对于新出现的协议,也可以自动进行标识、归类,大大提高了新协议的识别速度,也提高了协议识别的灵活性和稳定性。
Description
技术领域
本发明涉及网络协议识别领域,尤其是Internet网络协议的识别领域。
背景技术
自从计算机网络诞生以来,尤其是互联网的问世,网络,正以改变一切的力量,在全球范围掀起一场影响人类所有层面的深刻变革,极大地拓展了人们活动的空间、交互方式,是IT领域的一场革命,使传统IT行业中以主机为中心的模式,转向了以网络为中心的模式。
然而,随着互联网技术的发展,涉及的领域越来越多,复杂性也越来越高,互联网的去中心化、扁平化、自组织等特性,增加了互联网潜在的风险,对互联网加强管理的要求逐渐提向日程。而对网络进行管理的一项基础性的工作就是识别出网络上传输的各种数据包的身份,传统的识别方法是针对每种不同的协议,分析特定的数据包,提取其中的特征码,将特征码转化为某种特定的文件进行加载。随着互联网应用的不断发展,协议种类数越来越多,这样一来,使用传统方式的弱点则开始暴露出来,主要表现在以下几点:
(1)对于新出现的协议,不能立即发现,有一个滞后的时间;
(2)当新协议出现时,需要针对该新协议进行数据包的分析、协议特征的提取,有时还需要编写专用的代码,所以新协议开发的效率低下;
(3)灵活性差:针对新协议,往往需要调整原有系统的配置、部署,甚至对原有的功能产生影响,给系统的稳定性带来一定的风险;
(4)可维护性差:针对每种协议,使用不同的特征串,当特征串数量增多时,各协议间可能会产生干扰,影响协议识别的准确性。
发明内容
针对现有网络识别出现的问题,本发明提出了一种自动识别网络协议的方法,通过对数据包进行多个特征值提取,构造出对应的一个特征向量,通过比较特征向量之间的距离,对应用进行分类,从而达到识别协议的目的。
本发明提供的自动识别网络协议的方法,实现步骤为:
步骤1,设计协议的特征向量,获取规则如下:
(1.1)设置特征向量中的特征值种类;
特征向量中的特征值种类包括其中至少两种以上:数据包的长度、数据包的收发间隔、上下行数据包的比率、数据包中可打印字符的比例、以及特殊字符出现的位置和次数。
(1.2)将每个特征值表示为长度M的向量,并选定各特征值的M个数值的获取方法;
(1.3)针对不同协议,为特征向量中的特征值设置权重。
步骤2,针对各已知协议,抓取协议的数据包,根据步骤1特征向量的获取规则来确定已知协议的特征向量。
步骤3,对抓取的网络数据包进行协议判断,具体如下:
(3.1)抓取网络数据流,根据步骤1特征向量的获取规则,来确定各网络数据包的特征值,构造网络数据流的特征向量;
(3.2)将网络数据流的特征向量与协议特征向量库中的特征向量进行比对,根据比对结果判断网络数据流的协议类型。
相对于现有技术,本发明的优点和积极效果在于:利用本发明方法,将协议识别的过程转化为特征值的计算及特征向量的比对过程,这样不同的协议处理过程都是一样的,对于已知的协议,只需要根据特征向量的比对结果,即可确定数据流协议的类型,对于新出现的协议,也可以自动进行标识、归类,并可以很快发现新协议的出现,并提供数据以便后续的人工分析,从而大大提高了新协议的识别速度,同时也提高了协议识别的灵活性和稳定性。
附图说明
图1是本发明的自动识别网络协议的方法图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
互联网上的应用纷繁复杂,差异万千,每种不同的协议携带的数据包,都有着各自独特的特征,就像每个人都有不同的指纹一样,因此本发明方法的实现原理是:先根据已知的协议,设置好需要计算的特征值,对每个收到的数据包进行特征值的计算,将特征值组成特征向量;将数据包的特征向量与标准协议的特征向量比对,从而判断数据包的协议类型。
如图1所示,本发明提供的自动识别网络协议的方法,实现步骤为:
步骤1,设计协议的特征向量。
特征向量中特征值的选择,是采用离线方式完成,通过对大量互联网上报文的分析,多种应用报文的对比,选择一组有代表性的特征值。特征值的选择要求满足:同种协议每个包的特征值接近,不同种协议之间数据包的特征值相差较大。特征值的选择对协议识别的结果紧密相关,需要经过大量的分析后再确定。特征值一旦确定,将保持相对稳定。
本发明实施例中,选择特征向量中的特征值种类包括:数据包的长度、数据包的收发间隔、上下行数据包的比率、数据包中可打印字符的比例、以及特殊字符出现的位置和次数。通过大量的实际网络包的统计,比如在网络视频流应用中,下行数据包的长度、下行数据包的时间间隔具有较强的规律性,大致是在一个较小的范围波动,而网页浏览时产生的数据包,则明显不同,其下行的数据包、时间间隔则带有明显的突发性的特征,变化范围较大。再比如可打印字符的比例,在视频应用中没有明显的规律,杂乱无章,且位置不连续,但对于浏览类业务则明显比例较高,且分布连续,因此通过这些特征,可以比较容易地区分出不同的应用,这样的值就可选择作为识别时使用的特征值。
选择好特征值之后,还需要确定每个协议中,特征值的权重。不同的协议,它的网络流特征是不同的,不同的特征值,对其意义也是不一样的,如视频类应用,数据包的长度、数据包的收发间隔这两个特征值对其意义较大,而可打印字符分布这个特征值对其基本没有意义,因此可以对不同的协议,确定每个特征值的权重,以更好地反应出协议的特点。
本发明实施例中设计的特征向量中的每个特征值都表示为一个具有相同长度M的向量,M为正整数。特征值中的M个数值,可以直接通过统计分析该协议下的M个数据包来获得。例如数据包的长度这一特征值,包括M个同一协议下的数据包长度,M个值可以通过直接抓取该协议下的M个数据包来获取。特征值中的M个数值,也可以通过统计更多数据包来获得,例如在不同场景或应用状况下抓取多个数据包计算平均值来获取M个值。
对于数据包的长度、数据包的收发间隔、上下行数据包的比率以及数据包中可打印字符的比例,特殊字符出现的次数等都可以采用上面统计分析方法,通过统计分析多个数据包来获取特征值中的M个具体数值。
特殊地,对于特殊字符出现的位置这一特征值,可通过抓取某个协议的一个数据包,对该数据包中每个字节进行取模运算来获得特征值的M个值。例如,特征值种类为字符值分布,抓取一个内容为“2D3F457E8A6C143F”的数据包,分别取该数据包中的每个字节,将字节值映射到特征值的取值范围内,例如取值范围为0~31,对每个字节进行32取模,可得该数据包的特征值:0D,1F,05,1E,0A,0C,14,1F。在该例中,M取值为8。
步骤2,针对各已知协议,确定已知协议的特征向量。
针对各已知协议,抓取该协议的数据包,根据步骤1获取特征向量的方式来确定已知协议的特征向量。在步骤1中,确定了特征向量包含的特征值种类,以及各特征值的获取方法,在本步骤中,依据步骤1设定的方法来获取各已知协议的特征向量。
在进行特征值提取时,抓取已知协议的网络数据包,分析数据包的特征,根据步骤1设定方法从数据包提取特征值,为了使得结果更加准确,需要根据经验来验证所提取的特征值的准确性,并根据验证结果调整特征值的选择,直到选择的特征值能满足要求为止。
最后,将所有已知协议的特征向量加入协议特征向量库中。
步骤3,对抓取的网络数据包进行协议判断。
首先,抓取网络数据流,根据步骤1确定的特征向量中包含的特征值种类,以及各特征值的获取方法,来获取各网络数据包的特征值,构造网络数据流的特征向量。
然后,将网络数据流的特征向量与协议特征向量库中的特征向量进行比对,通过特征向量相似度计算,根据比对结果判断网络数据流的协议类型。
通常,比对的结果有两种:一种是网络数据流的特征向量与协议特征向量库中的某个协议的特征向量匹配,则该网络数据流为该协议的数据。
还有一种是网络数据流的特征向量与协议特征向量库中的每个协议都有一定的差距,这意味着出现了新协议,对于这种情况,可以将这种新协议的特征向量加入到协议特征向量库中。
新加入协议特征向量库的特征向量,虽然不能确定协议的名称,但可以将该协议的所有数据包识别出来,也可以将这种新识别的数据包保存成离线方式进行人工分析,以便准确确定协议的名称,并添加到标准协议库中。
采用本发明提供的协议比对方法,在实验网络环境下,在一台x86_64的环境下进行试验,CPU主频2.4G,2core,内存64G,协议库加载256种协议,经试验证明,本方法可以处理到10G的网络流量,识别的准确性达到95%,远高于采用常规方式进行协议识别的系统或方法,采用本发明方法可以方便、快速、准确地进行协议识别。
相较于现有技术,本发明将网络协议的识别工作,转换成特征值的计算和特征向量的比对,使可以自适应地识别出新出现的协议类型,并可以及时地提供新协议的特征向量,方便后续的离线分析,因此大大加快了新协议的发现时间,同时对所有协议使用统一的方式来进行分析和处理,也大大提高了协议识别的灵活性和稳定性。
Claims (2)
1.一种自动识别网络协议的方法,其特征在于,实现步骤如下:
步骤1,设计协议的特征向量,获取规则如下:
(1.1)设置特征向量中的特征值种类;
(1.2)将每个特征值表示为长度M的向量,并选定各特征值的M个数值的获取方法;M为正整数;
(1.3)针对不同协议,为协议特征向量中的特征值设置权重;
步骤2,针对各已知协议,抓取协议的数据包,根据步骤1特征向量的获取规则来确定已知协议的特征向量;
步骤3,对抓取的网络数据包进行协议判断,具体步骤如下:
(3.1)抓取网络数据流,根据步骤1特征向量的获取规则,来确定各网络数据包的特征值,构造网络数据流的特征向量;
(3.2)将网络数据流的特征向量与协议特征向量库中的特征向量进行比对,根据比对结果判断网络数据流的协议类型。
2.根据权利要求1所述的一种自动识别网络协议的方法,其特征在于,所述的步骤1中,设置特征向量中的特征值种类包括其中至少两种以上:数据包的长度、数据包的收发间隔、上下行数据包的比率、数据包中可打印字符的比例、以及特殊字符出现的位置和次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510271692.8A CN105007194A (zh) | 2015-05-25 | 2015-05-25 | 一种自动识别网络协议的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510271692.8A CN105007194A (zh) | 2015-05-25 | 2015-05-25 | 一种自动识别网络协议的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105007194A true CN105007194A (zh) | 2015-10-28 |
Family
ID=54379721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510271692.8A Pending CN105007194A (zh) | 2015-05-25 | 2015-05-25 | 一种自动识别网络协议的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105007194A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120355A1 (zh) * | 2016-12-27 | 2018-07-05 | 盛科网络(苏州)有限公司 | 以太网芯片低延时模式下提取数据流信息的方法及装置 |
CN110417608A (zh) * | 2018-04-26 | 2019-11-05 | 深圳金智凌轩视讯技术有限公司 | 一种协议自动匹配的装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741908A (zh) * | 2009-12-25 | 2010-06-16 | 青岛朗讯科技通讯设备有限公司 | 一种应用层协议特征的识别方法 |
CN102164182A (zh) * | 2011-04-18 | 2011-08-24 | 北京神州绿盟信息安全科技股份有限公司 | 一种网络协议识别设备和方法 |
WO2011143817A1 (zh) * | 2010-05-19 | 2011-11-24 | 阿尔卡特朗讯 | 应用协议识别方法及装置 |
CN102739457A (zh) * | 2012-07-23 | 2012-10-17 | 武汉大学 | 一种基于dpi和svm技术的网络流量识别系统及方法 |
CN103532908A (zh) * | 2012-07-02 | 2014-01-22 | 清华大学 | 一种基于二级决策树的p2p协议识别方法 |
-
2015
- 2015-05-25 CN CN201510271692.8A patent/CN105007194A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741908A (zh) * | 2009-12-25 | 2010-06-16 | 青岛朗讯科技通讯设备有限公司 | 一种应用层协议特征的识别方法 |
WO2011143817A1 (zh) * | 2010-05-19 | 2011-11-24 | 阿尔卡特朗讯 | 应用协议识别方法及装置 |
CN102164182A (zh) * | 2011-04-18 | 2011-08-24 | 北京神州绿盟信息安全科技股份有限公司 | 一种网络协议识别设备和方法 |
CN103532908A (zh) * | 2012-07-02 | 2014-01-22 | 清华大学 | 一种基于二级决策树的p2p协议识别方法 |
CN102739457A (zh) * | 2012-07-23 | 2012-10-17 | 武汉大学 | 一种基于dpi和svm技术的网络流量识别系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120355A1 (zh) * | 2016-12-27 | 2018-07-05 | 盛科网络(苏州)有限公司 | 以太网芯片低延时模式下提取数据流信息的方法及装置 |
CN110417608A (zh) * | 2018-04-26 | 2019-11-05 | 深圳金智凌轩视讯技术有限公司 | 一种协议自动匹配的装置和方法 |
CN110417608B (zh) * | 2018-04-26 | 2021-04-06 | 深圳金智凌轩视讯技术有限公司 | 一种协议自动匹配的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571486B (zh) | 一种基于BoW模型和统计特征的流量识别方法 | |
CN101252541B (zh) | 一种网络流量分类模型的建立方法及相应系统 | |
EP2849384B1 (en) | Approximate matching method and related device, and communication system | |
CN102202064B (zh) | 基于网络数据流分析的木马通信行为特征提取方法 | |
CN102315974B (zh) | 基于层次化特征分析的tcp、udp流量在线识别方法和装置 | |
CN107770263A (zh) | 一种基于边缘计算的物联网终端安全接入方法及系统 | |
CN105024993A (zh) | 一种基于向量运算的协议比对方法 | |
US20200211721A1 (en) | METHOD AND APPARATUS FOR DETERMINING AN IDENTITY OF AN UNKNOWN INTERNET-OF-THINGS (IoT) DEVICE IN A COMMUNICATION NETWORK | |
CN101841440B (zh) | 基于支持向量机与深层包检测的对等网络流量识别方法 | |
CN105871832A (zh) | 一种基于协议属性的网络应用加密流量识别方法及其装置 | |
CN109299742A (zh) | 自动发现未知网络流的方法、装置、设备及存储介质 | |
CN101605067A (zh) | 网络行为主动分析诊断方法 | |
CN110048962A (zh) | 一种网络流量分类的方法、系统及设备 | |
CN111611280A (zh) | 一种基于cnn和sae的加密流量识别方法 | |
CN104348741A (zh) | 基于多尺度分析和决策树的p2p流量检测方法和系统 | |
CN110458205A (zh) | 一种改进的基于wlan室内定位的pca聚类方法 | |
CN106470435B (zh) | 识别WiFi群的方法及系统 | |
CN105007194A (zh) | 一种自动识别网络协议的方法 | |
CN101854330A (zh) | 互联网的网络应用采集与分析方法及系统 | |
CN112633353B (zh) | 基于包长概率分布与k近邻算法的物联网设备识别方法 | |
CN111917665A (zh) | 一种终端应用数据流识别方法及系统 | |
CN1612135B (zh) | 一种基于训练分类的协议识别方法 | |
CN116170212A (zh) | 一种对抗概念漂移的IoT恶意流量检测装置 | |
CN103746867B (zh) | 一种基于基函数的网络协议分析方法 | |
CN110263810B (zh) | 一种LoRa信号源识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151028 |