CN102420830A - 一种p2p协议类型识别方法 - Google Patents

一种p2p协议类型识别方法 Download PDF

Info

Publication number
CN102420830A
CN102420830A CN2011104218882A CN201110421888A CN102420830A CN 102420830 A CN102420830 A CN 102420830A CN 2011104218882 A CN2011104218882 A CN 2011104218882A CN 201110421888 A CN201110421888 A CN 201110421888A CN 102420830 A CN102420830 A CN 102420830A
Authority
CN
China
Prior art keywords
fingerprint
network packet
bag
protocol
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
Application number
CN2011104218882A
Other languages
English (en)
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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN2011104218882A priority Critical patent/CN102420830A/zh
Publication of CN102420830A publication Critical patent/CN102420830A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种P2P协议类型识别方法,属于计算机网络技术领域。本方法采用监督机器学习的思路,具体分为线下(学习)和线上(检测)两个部分,其中线下学习是对事先标定应用协议种类的网络包,通过自动学习和人工修正相结合,生成标定协议的指纹;而线上检测是利用线下学习得到的指纹,实时判定当前网络环境中的主机是否运行上述协议,从而得到目标宿主机运行的协议。与现有技术相比,本发明识别效率更高,而且更符合P2P流量的特性。

Description

一种P2P协议类型识别方法
技术领域
本发明涉及一种基于网络TCP流量识别P2P协议类型的方法,属于计算机网络流量业务种类识别领域。
背景技术
P2P是英文peer-to-peer(对等)的简称,与传统的服务器-客户端计算模式的不同点在于P2P网络中各个节点根据各自的计算能力和带宽,同时提供和接受服务。目前这种计算模式广泛应用于文件共享、语音通讯、即时讯息、流媒体、网络游戏等领域,人们比较熟悉的P2P应用包括BitTorrent、eDonkey、Skype、QQ、PPlive等。P2P应用常常占用大量的带宽资源,而且当今的互联网中相当部分的流量都来自P2P应用,例如,据著名的德国互联网调研机构ipoque估计,这个比重在50%至90%之间。因此管理P2P流量已成为计算机网络流量管理中的一项基本任务;这就首先需要识别P2P流量,进一步,根据管理粒度的需要,乃至识别具体的P2P协议,如上述的BitTorrent、eDonkey协议等。
P2P发展到今天,其流量特征主要体现在网络应用层,传统的P2P协议类型识别方法采用基于网络包中数据部分(称为净荷)特征码的匹配方法,其主要优点是对于已知的非加密P2P协议具有较高的检测率;然而该方法需要分析网络流中每个数据包的净荷,提取目标协议独有的字符串作为该协议的特征码,在特征提取和实际检测时占用的存储空间较大,而且检测时很可能计算量较大;此外,目前很多P2P协议在数据传输时采取了加密措施,使得其特征码的提取和匹配工作变得几乎不可能;最后,提取网络包的载荷信息也有可能触犯了用户的隐私。
针对上述不足,基于网络包中与净荷无关信息的P2P协议类型识别方法便应运而生:它们提取反映一个网络流中网络包的统计信息,如包长、包之间的间隔时间等作为特征,通过某种监督机器学习方法得到这些特征所必须满足的一些约束,以作为协议的判别条件,也称为指纹。但是目前大多数此类方法在识别流量的协议类型时都需要首先提取一个网络流中所有包的相关特征,然后才能计算指纹,这样就有两个弊端:(1)实时性较弱;(2)如果检测对象的一些包丢失了,就很有可能得到不准确的指纹信息。
发明内容
针对现有技术中存在的技术问题,本发明目的在于提供一种与网络包净荷无关的P2P协议类型识别方法,主要用于识别网络中一台宿主机(节点)是否运行相关的P2P协议,它只需要部分相邻的网络包头特征即可做出判断。
该方法采用网络TCP流的包长序列来刻画流量的P2P协议种类,与其它利用TCP网络包长序列的识别方法相比,其独创性有以下两点:(1)首先将TCP网络流中的网络包按其功能分为三种类型:数据传输(Bulk Transfer)、命令交互(Command Exchange)和扫描探测(Probe),本发明只从其中的命令交互包长序列提取作为识别P2P协议类型所依据的指纹;由于命令交互包序列通常都较短,而且在一个网络流中常会重复出现,因此如果检测对象属于需要识别的P2P协议类型,即使发生丢包现象,本发明也会在流的中间发现协议的指纹。(2)根据P2P应用的特点——涉及多个节点,节点之间的通讯可能涉及控制命令或数据传输,在判定网络中一台宿主机(节点)上运行的P2P协议类别时汇聚了该宿主机与多台主机之间网络流的指纹匹配结果,提高了识别的准确性。
本发明提供的技术方案如下:
采用监督机器学习的思路,具体分为线下(学习)和线上(检测)两个部分,其中线下学习是对事先人工标定应用协议种类的网络包,通过自动学习和人工修正相结合,生成标定协议的指纹;而线上检测是利用线下学习得到的指纹,实时判定当前网络环境中的主机是否运行上述协议。
“线下学习”分为5个步骤:
步骤1流整理:按照(源/客户端地址,目的/服务器端地址,源端口,目的端口,协议)五元组把原始的网络数据包整理成流,只考虑TCP协议的网络包。
步骤2时序特征序列提取:每个TCP流中的网络包,可以按照它们的功能大致分为:数据传输、命令交互和扫描探测三种模式。对于每个整理完毕的TCP流,先按照功能将网络包划分为若干个子序列,然后提取命令交互包子序列中各个包的包长作为指纹学习的对象。注意这里的包长带有方向,其中“+”表示方向是从客户端到服务器端,“-”表示相反方向。
具体的子流划分算法用伪码表示如下:
Figure BDA0000120789170000021
Figure BDA0000120789170000031
步骤3时序特征指纹学习:对上述得到的网络包长序列学习得到相应协议标签的指纹库,其中每个指纹都是原有包长序列的一个子序列(注意包长带有正负号)。
步骤4指纹权重学习:一个协议可能得到多个指纹,我们给每个指纹分配一个权重,它和该指纹在用于学习的标明该协议的网络包中出现的频率成正比。
步骤5阈值确定:在判定网络中一台宿主机当前是否运行一个目标P2P应用(协议)时,需要汇聚该主机所涉及的所有网络流的判断结果。整个汇聚过程需要两个阈值:Th(W)和Th(C),每个协议根据经验而定。只有当与该宿主机连接的IP地址数大于Th(C),而且在这些连接中打上目标P2P协议标签的指纹权重之和大于Th(W)时,该宿主机才被判定为运行目标P2P协议。
“线上检测”分为4个步骤:
步骤1步骤2和线下学习相应阶段类似,这里不再重复。
步骤3指纹匹配:经过前两个阶段而得到的命令交互包长序列和先前线下学习得到的指纹库进行匹配,以便标定该序列属于何种P2P协议。一个序列可以标为多种协议,但一种协议只有一个权重,即所有匹配上的同一协议指纹中最大权重指纹的权重。
步骤4网络流指纹匹配结果(加权)汇聚:当与目标宿主机连接的IP地址数大于Th(C),而且在这些连接中打上目标P2P协议标签的指纹权重之和大于Th(W)时,判定该宿主机运行目标P2P协议。
和其它与净荷无关的应用流量分类方法相比,本方法的主要优点有:
1)即使我们在一个网络流的中间开始截包,也有可能判断出该网络流是否运行目标P2P协议;
2)在宿主机层面判断P2P协议类型,比在网络流层面判断,更符合P2P流量的特性。
附图说明
图1为本发明方法的方案框架图;
图2为具体实施方案的示意图;
图3为集中管理监控平台和综合安全网关之间的协作过程示意图。
具体实施方式
首先参照附图2、3对本发明线上、线下两部分的初始步骤“流整理”给出具体实施方式。
本发明方法的具体实施方案如图2所示,整个系统主要由以下部分构成:
1.集中管理监控平台:负责对综合安全网关下发配置和指令,接收从综合安全网关发回的数据,并对数据进行处理。
2.综合安全网关:负责接收并执行从集中管理监控平台发出的指令,收集通过网关的流量信息,并将流量信息处理后形成日志发送给集中管理监控平台。
3.内网主机:本发明方法所监测的宿主机。
集中管理监控平台和综合安全网关之间的协作过程如图3所示,具体的说明如下:
1.集中管理平台首先将需要抓取流量的目标主机地址发送给综合安全网关。
2.综合安全网关在收到目标主机地址后将它存入一个哈希表,保存成功后,将执行成功信息发送给集中管理平台。
3.集中管理平台接到执行成功消息之后,发送“开始抓包”命令给综合安全网关。
4.综合安全网关在接收到“抓包”命令之后,解析命令的参数,设定定时器并开始一个新的抓包线程,将“执行成功”信息发送给集中管理平台。抓包线程负责抓取含有目标主机地址的网络包,并把需要的信息(如时间戳、TCP标志位、TCP包长度等)以日志格式存入缓冲区。设定定时器的目的是经过一个时间段之后便开始将该时间段内的包整理成流;如果不设定时器,则会等到缓冲区满后再处理,但这样有可能延迟太久。
5.待缓冲区满或者定时器到时,综合安全网关把日志发送给集中管理平台。集中管理平台接收到包日志信息后,将之整理成流,然后存入外存。
两者之间的通讯按照以下的TCP应用协议规范进行,所有的消息(Msg)包都统一采取以下的格式
Figure BDA0000120789170000051
即固定长度的消息头加上不固定长度的数据部分,其中消息头(MsgHead)的设计如下:
Figure BDA0000120789170000052
通讯的规则均采用一问一答的形式,即客户端向服务端发送一个Msg格式的消息,服务器在解析并执行接收到的消息之后,向客户端同样发送一个Msg格式的消息汇报执行状态。消息的类型(type)有以下几种:
Figure BDA0000120789170000053
当消息的类型(type)为MSG_REPORT_PACKET即发送包日志信息时,这时消息(Msg)中的数据部分(data)是具体的一个包的日志信息。本文实验采用的日志具体格式如下:
Figure BDA0000120789170000061
然后对本发明“线下学习“部分2、3步骤给出具体实施方式:
步骤2遵循“发明内容”中阐述的子流划分算法,其中数据块的阈值取TCP数据传输中网络包的最大净荷数(Maximum Segment Size,简称MSS)的常见取值1460(字节)的约90%——1260(字节),时间阈值取5秒。
步骤3按以下方式产生指纹:(1)对由步骤2得到的命令交互网络包长子序列,取其最初和最末5项(如果不够5项,就取到所能取的最多项为止),分别称之为前缀和后缀特征子序列;(2)利用机器学习中经典的K-means算法对前缀和后缀特征序列进行聚类,然后对得到的每一类中心进行人工修正(比如把同一类中的多个中心合并一起,用区间来表示,这样扩大了能匹配上的范围),将修正的结果作为相应网络包(协议)标签的指纹。例如(-15±10,15±10,-,-,-)表示一个只有2项的前缀指纹,其中“±”代表一个范围,-15±10等价于区间[-25,-5]。
“线上检测”中步骤4、5涉及的权重、阈值的选择取决于用于学习的网络包数据。
“线上检测”中的步骤2同“线下学习”的步骤2,步骤3、4则完全依赖于“线下学习”中产生的指纹及其权重、以及两个阈值:Th(W)和Th(C)。
如上所述,本发明可以用来判断局域网内各宿主机是否运行P2P应用,其P2P协议指纹库可根据实际P2P应用协议种类进行相应的增减。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (7)

1.一种P2P协议类型识别方法,其步骤为:
1)将用于机器学习的TCP协议网络数据包整理成TCP流;
2)提取TCP流中的命令交互网络包,得到一命令交互网络包子序列;
3)将所述命令交互网络包子序列的包长作为指纹学习对象采用机器学习算法进行学习,得到相应协议标签的指纹库,其中每一指纹对应一个包长子序列;
4)为每一指纹设置一权重,并为每一协议设置一连接数阈值Th(C)和一指纹权重阈值Th(W);
5)将在线抓取的目标宿主机TCP协议网络数据包整理成TCP流,提取命令交互网络包的包长序列并将其与所述指纹库进行匹配,得到该包长序列的目标协议;
6)当与该目标宿主机连接的IP地址数大于目标协议的Th(C),而且在这些连接中具有目标协议标签的指纹权重之和大于Th(W),则将该目标宿主机判定为运行目标协议。
2.如权利要求1所述的方法,其特征在于将用于机器学习的TCP协议网络数据包按照(源/客户端地址,目的/服务器端地址,源端口,目的端口,协议)五元组整理成TCP流。
3.如权利要求1或2所述的方法,其特征在于步骤2)中,提取并标记TCP流中的命令交互网络包,得到所述命令交互网络包子序列;其中,从客户端到服务器端的交互命令网络包包长方向标记为正方向“+”,反之则标记为负方向“-”。
4.如权利要求1所述的方法,其特征在于所述为每一指纹设置一权重的方法为:设指纹i对应协议为Pi,所述命令交互网络包子序列中,用于学习标明该协议Pi的网络包为N个网络包;则指纹i的权重与指纹i在N个网络包中出现的频率成正比。
5.如权利要求1所述的方法,其特征在于步骤5)中,提取命令交互网络包的包长序列与所述指纹库中每一指纹对应的包长子序列进行匹配,得到该包长序列的目标协议。
6.如权利要求1或4或5所述的方法,其特征在于所述指纹的生成方法为:1)取所述命令交互网络包子序列的包长序列中最初N项和最末N项,分别称之为前缀和后缀特征子序列;2)利用机器学习算法对前缀和后缀特征子序列进行聚类,然后对得到的每一类中心进行修正,将修正的结果作为相应协议标签的指纹;其中,N为自然数。
7.如权利要求1所述的方法,其特征在于网关内设置一定时器,网关对设定时间长度内在线抓取的目标宿主机TCP协议网络数据包进行缓存,然后发送给集中管理平台将其整理成TCP流。
CN2011104218882A 2010-12-16 2011-12-15 一种p2p协议类型识别方法 Pending CN102420830A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104218882A CN102420830A (zh) 2010-12-16 2011-12-15 一种p2p协议类型识别方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010593043 2010-12-16
CN201010593043.7 2010-12-16
CN2011104218882A CN102420830A (zh) 2010-12-16 2011-12-15 一种p2p协议类型识别方法

Publications (1)

Publication Number Publication Date
CN102420830A true CN102420830A (zh) 2012-04-18

Family

ID=45945065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104218882A Pending CN102420830A (zh) 2010-12-16 2011-12-15 一种p2p协议类型识别方法

Country Status (1)

Country Link
CN (1) CN102420830A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067369A (zh) * 2012-12-24 2013-04-24 华为技术有限公司 一种报文切割指示方法、系统及报文分析方法和系统
CN105938562A (zh) * 2016-04-13 2016-09-14 中国科学院信息工程研究所 一种自动化网络应用指纹提取方法及系统
CN109409381A (zh) * 2018-09-18 2019-03-01 北京居然之家云地汇新零售连锁有限公司 基于人工智能的家具顶视图的分类方法及系统
CN113037749A (zh) * 2021-03-08 2021-06-25 中国科学院信息工程研究所 一种c&c信道判别方法及系统
CN114513369A (zh) * 2022-04-18 2022-05-17 远江盛邦(北京)网络安全科技股份有限公司 基于深度报文检测的物联网行为分析方法及系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997007A (zh) * 2006-09-30 2007-07-11 华为技术有限公司 一种实现业务感知的系统、方法及设备
CN101035111A (zh) * 2007-04-13 2007-09-12 北京启明星辰信息技术有限公司 一种智能协议解析方法及装置
CN101094234A (zh) * 2007-07-20 2007-12-26 北京启明星辰信息技术有限公司 一种基于行为特征的p2p协议精确识别方法及系统
CN101282331A (zh) * 2008-05-09 2008-10-08 西安交通大学 基于传输层特征的p2p网络流量识别方法
CN101282251A (zh) * 2008-05-08 2008-10-08 中国科学院计算技术研究所 一种应用层协议识别特征挖掘方法
CN101287006A (zh) * 2008-05-12 2008-10-15 华为软件技术有限公司 一种信息提示方法、系统及装置
CN101510873A (zh) * 2009-03-20 2009-08-19 扬州永信计算机有限公司 基于支持向量机的混合式点对点流量检测方法
CN101645806A (zh) * 2009-09-04 2010-02-10 东南大学 Dpi和dfi相结合的网络流量分类系统及分类方法
CN101668035A (zh) * 2009-09-28 2010-03-10 中国人民解放军理工大学指挥自动化学院 一种实时识别多种p2p-tv应用视频流的方法
CN101741744A (zh) * 2009-12-17 2010-06-16 东南大学 一种网络流量识别方法
CN101814977A (zh) * 2010-04-22 2010-08-25 北京邮电大学 利用数据流头部特征的tcp流量在线识别方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997007A (zh) * 2006-09-30 2007-07-11 华为技术有限公司 一种实现业务感知的系统、方法及设备
CN101035111A (zh) * 2007-04-13 2007-09-12 北京启明星辰信息技术有限公司 一种智能协议解析方法及装置
CN101094234A (zh) * 2007-07-20 2007-12-26 北京启明星辰信息技术有限公司 一种基于行为特征的p2p协议精确识别方法及系统
CN101282251A (zh) * 2008-05-08 2008-10-08 中国科学院计算技术研究所 一种应用层协议识别特征挖掘方法
CN101282331A (zh) * 2008-05-09 2008-10-08 西安交通大学 基于传输层特征的p2p网络流量识别方法
CN101287006A (zh) * 2008-05-12 2008-10-15 华为软件技术有限公司 一种信息提示方法、系统及装置
CN101510873A (zh) * 2009-03-20 2009-08-19 扬州永信计算机有限公司 基于支持向量机的混合式点对点流量检测方法
CN101645806A (zh) * 2009-09-04 2010-02-10 东南大学 Dpi和dfi相结合的网络流量分类系统及分类方法
CN101668035A (zh) * 2009-09-28 2010-03-10 中国人民解放军理工大学指挥自动化学院 一种实时识别多种p2p-tv应用视频流的方法
CN101741744A (zh) * 2009-12-17 2010-06-16 东南大学 一种网络流量识别方法
CN101814977A (zh) * 2010-04-22 2010-08-25 北京邮电大学 利用数据流头部特征的tcp流量在线识别方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067369A (zh) * 2012-12-24 2013-04-24 华为技术有限公司 一种报文切割指示方法、系统及报文分析方法和系统
CN103067369B (zh) * 2012-12-24 2016-03-30 华为技术有限公司 一种报文切割指示方法、系统及报文分析方法和系统
CN105938562A (zh) * 2016-04-13 2016-09-14 中国科学院信息工程研究所 一种自动化网络应用指纹提取方法及系统
CN105938562B (zh) * 2016-04-13 2019-06-11 中国科学院信息工程研究所 一种自动化网络应用指纹提取方法及系统
CN109409381A (zh) * 2018-09-18 2019-03-01 北京居然之家云地汇新零售连锁有限公司 基于人工智能的家具顶视图的分类方法及系统
CN113037749A (zh) * 2021-03-08 2021-06-25 中国科学院信息工程研究所 一种c&c信道判别方法及系统
CN114513369A (zh) * 2022-04-18 2022-05-17 远江盛邦(北京)网络安全科技股份有限公司 基于深度报文检测的物联网行为分析方法及系统
CN114513369B (zh) * 2022-04-18 2022-07-08 远江盛邦(北京)网络安全科技股份有限公司 基于深度报文检测的物联网行为分析方法及系统

Similar Documents

Publication Publication Date Title
CN107665191B (zh) 一种基于扩展前缀树的私有协议报文格式推断方法
CN102045363B (zh) 网络流量特征识别规则的建立方法、识别控制方法及装置
Wang et al. Inferring protocol state machine from network traces: a probabilistic approach
CN106815112B (zh) 一种基于深度包检测的海量数据监控系统及方法
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
CN111464485A (zh) 一种加密代理流量检测方法和装置
CN101841440B (zh) 基于支持向量机与深层包检测的对等网络流量识别方法
Hullár et al. Early identification of peer-to-peer traffic
CN102420830A (zh) 一种p2p协议类型识别方法
CN102571946B (zh) 一种基于对等网络的协议识别与控制系统的实现方法
US20190356564A1 (en) Mode determining apparatus, method, network system, and program
Yin et al. Network traffic classification via HMM under the guidance of syntactic structure
CN103747003A (zh) 对等僵尸网络核心节点检测方法及检测装置
CN103281158A (zh) 深度网络通信粒度检测方法及其检测设备
Bashir et al. Classifying P2P activity in Netflow records: A case study on BitTorrent
Li et al. High performance flow feature extraction with multi-core processors
CN102480503B (zh) P2p流量识别方法和装置
Cordero et al. Community-based collaborative intrusion detection
Yuan et al. Harvesting unique characteristics in packet sequences for effective application classification
Li et al. Composite lightweight traffic classification system for network management
He et al. Fine-grained P2P traffic classification by simply counting flows
Gu et al. Multi-levels traffic classification technique
JP5287898B2 (ja) フロー監視装置、フロー監視方法およびプログラム
Trivedi A self-learning stateful application identification method for Deep Packet Inspection
Yildirim et al. A framework for tunneled traffic analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120418