最新消息: 热烈祝贺铁翔电子商务部成立

公司logo 合成闸瓦-铁路配件-锯轨机-钢轨支撑架-钢轨钻孔机-液压复轨器-铁路设备-铁路施工-地铁设备-济宁市铁翔机械设备有限公司

设为首页|加入收藏|网站地图


联系方式

电话:0537-2171596
手机:18853736667(许)
地址:济宁共青团路西鑫声玉城
网址:www.hczhawa.com

最新产品

+ MORE

行业新闻

现在位置: 首页 > 新闻资讯 > 行业新闻 >

P2P网络流量识别方法研究

发表时间:2014-11-01 20:22 作者: 来源: 浏览:
P2P网络流量识别方法研究

 

周雄飞
本文分析了各种P2P网络模型,研究比较了多种P2P流量识别方法,在此基础之上,结合目前的P2P网络特点、衡量了各种P2P流量识别方法的利弊,
同时对未来的P2P流量识别研究提出了建议。本文的研究成果,为实现后续的网络流量实时动态质量保证管理系统提供了基础条件。
关键词: P2P,流量识别,网络行为分析,深度流检测


0引言
随着网络的发展,新一代网络技术P2P得到了广泛应用。它最直接的功能就是让用户可以直接连接到网络上的其它计算机,进行文件共享与交换。由于它是对等的网络结构,每个节点既是服务器又是客户端,所以应用广泛,不易控制,同时占用了大量的网络带宽,加重了网络的负担。为了保证网络能正常有序地运行,有必要对流量进行识别控制。但随着加密数据和动态端口的出现,P2P流量识别技术也面临着挑战。
总体而言,P2P流量的识别可以被认为是模式识别范畴中的一个子类。但要达到识别的效果,其方法是多种多样的。就目前的P2P流量识别的研究现状来讲,识别的方法总体地可以分为传统检测、深度包检测和网络行为分析三种。
P2P流量识别方法分类
1.1传统检测模型
传统的检测模型一般是基于固定会话流的IP地址和端口号来识别P2P业务的。
P2P业务出现的早期,在整个P2P链接和传输过程中,通常会存在Track服务器。系统可以通过分析已经被识别的数据而找出一些P2P应用中的Track服务器的IP地址。通过屏蔽所有与此IP地址进行通信的数据包,就可以达到屏蔽P2P的效果。
同样地,早期P2P网络的应用软件都是以固定端口的形式进行传输的。如表1.1。基于这一特征,传统的检测方法就是根据监测数据流的端口号来进行P2P流量的检测和识别的。
以上这些识别方法的实现需要在被监测的网络中安放监测节点。被动地收集网络上的数据包,然后监测数据包的IP层以及传输层首部信息,如果IP地址或者端口号和某些特定的IP地址和端口号相匹配,则说明该数据包属于P2P业务,可以按照预设的动作对其进行后续的处理。
这种识别方法最大的优点就是简单易行,它不需要进行复杂的数据预处理,也没有复杂的算法,系统实现也相对简单。
表1.1 P2P系统对应端口表

P2P系统
常用的服务器端口
edonkey(eMule,xMule)
TCP 2323,3306,4242,4500,4501
FastTrack(older KaZaA)
TCP 4661-4674,4677,4678,7778
BitTorrent
TCP 6881-6889
Gnutella
TCP 6346,6347
MP2P
TCP 41170,10240-20480,22321
DirectConnect
TCP 411,412,1364-1383,4702,4703,4662
ShareShare
TCP 6399;UDP 6388,6733,6777
Freenet
TCP 19114,8081
Napster
TCP 5555,6666,6677,6688,6699-6701
SoulSeek
TCP 2234,5534
Blubster
TCP 41170
Morpheus
TCP/UDP 6346/6347

由于传统检测的出现,P2P的识别在那个时代变得相对简单。而相应地,P2P的应用也就随之发展。为了避免被传统的检测方式所识别,逐渐出现了随机端口、信息隐藏等技术。因此,传统的识别方式存在着严重的漏报问题。
1.2 深度包检测模型
由于新一代的P2P业务出现了随机端口和信息隐藏等技术,使得简单地通过分析数据包首部的IP地址和端口号信息来识别P2P流量已经不能适应这样的变化。第二代的P2P业务不仅运用了动态端口的技术,有时甚至伪装其它应用层协议的端口通信。比如利用HTTP的80端口和SMTP的25端口传输P2P信息。这对P2P流量的识别带来了很大的难度。
同时,人们也发现了另一种检测P2P流量的手段。理论上说,每种应用都应该携带其特定的报文信息。这就类似于人的指纹。例如HTTP协议报文会出现GET、PUT、POST等报文信息。与之类似的,P2P的应用中也应该存在这样的标识出P2P应用的独特的信息段。因此,人们提出了通过检查分组内部携带的载荷信息进行分组识别的方法。
由于这种方法是通过检测数据包应用层的数据,而达到识别P2P流量识别的目的的,所以通常把这种方法叫深度包检测法(DPI, Deep Packet Inspection)。这种方法的关键在于提取匹配样本和将样本与实际数据进行匹配。
前者需要通过协议分析以及还原技术,对具体的P2P协议及其对应的P2P系统的载荷进行特性提取,并建立特征库。最后还需要将提取出的数据特征化,将其转换成符合一定规范和语法的正则表达式。因为,对于提取出的数据而言,通常情况下并不需要严格匹配一连串的字符串。而是选择性地匹配其中几个固定位置的字符,或者给出的需要匹配的字符的范围就算匹配成功了。例如正则表达式:
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)\.)以上正则表达式中。2[0-4]\d。表示第一位数据为2,第二位可以是0-4这个范围内的值,第三位则是一个数字的匹配。“|”这个符号表示或者的逻辑关系。表示前面的表达式和后面的表达式的关系是逻辑或,只需要满足一条就算匹配成功。后面的表达式类似。“?”表示前面的字符串可以重复1次,而“\.”表示字符:“.”。这个表达式表示的是一个符合要求的IP地址。所以,可以有很多匹配的结果。
在127.0.0.1;255.255.255.255;300.123.555.666这些字符串中前两条都是可以被匹配到的。
后者的工作则是完成正则表达式和应用层数据的匹配。通常而言,正则表达式的写法、匹配算法、固件配置等各方面因素都会影响到匹配的速度。但在这些因素中,匹配算法占主导的地位。高效的字符串匹配算法可以提高程序的相应性能。匹配算法多种多样,最常用的是朴素字符串匹配算法、Krap-Rabin算法、字符串匹配自动机和KMP算法。这些算法都有各自的特点,在不同的需求和环境下需要加以选择。但总地来说,朴素字符串匹配算法的平均性能很好,而且不需要预处理时间。而Krap-Rabin算法则往往用于单个模式字符串在多个目标字符串中的同时查找。因为这样可以省去模式字符串的预处理时间。状态机则是目前运用最广泛的匹配算法。由于其高效的特性,在各个领域内都是无处不见的。
对于P2P业务而言,由于DPI的出现,使得原本的动态端口的隐秘性荡然无存。应运而生的是新的防识别的技术:加密。对于加密的P2P流量而言,深度包检测法几乎是束手无策的。
1.3 网络行为分析模型
网络行为分析(NBA)是一种相对传统检测和DPI技术而言新兴的技术。顾名思义,就是针对端与端之间的网络用户的行为模式来识别这些行为所对应的网络应用。对于网络上的不同应用而言,都具有各自的统计特性,而网络行为分析就是以这些特性为出发点的。上述的行为主要是一些数据流的特性,对于P2P应用而言,由于其传输理念上革命性的变化,致使在网络拓扑结构、传输特性和时间特性上都异于传统的网络应用。这些区别往往能够体现在网络行为的统计特性上。而对于依赖于P2P应用的最本质的传输原理和网络架构的统计特性,是不随动态端口或是信息加密等技术而改变的。所以,网络行为分析模型是一种很好的识别P2P流量的方法。从识别手段上而言,也是对原先识别方法的颠覆和突破。
1 P2P流特征
相对于传统的Internet业务而言,P2P流量表现出以下特性:
1.高速传输。由于P2P网络架构上的优势,使得P2P用户抢占了60%-80%的网络带宽。
2.超大容量。由于P2P的分布式存储,其网络存储资源可以认为是无限的。
3.在线时间跨度大。P2P用户的一个特点就是在线时间跨度非常大。由于网络资源的无限性和不存在服务器的特点,P2P业务提供的服务时间可以说是全天候24小时的。疯狂的用户善于利用这样的资源来满足资源共享的要求。
4.上下行流量对称。由于P2P架构上不存在服务器和客户端的特点,使得每个节点都是平等的。这导致每个节点在下载的同时也有上传的义务。上下行流量对称是P2P的产物。
5.业务点分布广泛。P2P应用提供端到端的数据传输,每个节点都可以是网络资源的存储点。参与P2P的用户从地域上看分布相当广泛。
这些异于其它网络应用的特性就像一把双刃剑,可能给整个网络带来很大的负担和危害,但同时也可以很好地帮助系统识别P2P的流量。
2 网络行为分析的几种方法
总体而言,以网络行为分析为基础的P2P识别方法可以归结如下:
1. 网络直径分析技术。网络直径分析技术利用了P2P系统所组成的逻辑网络具有网络直径大这一特点。在P2P系统中,节点之间需要建立连接。与物理连接不同,P2P系统中的连接是逻辑连接,因此所形成的P2P网络属于逻辑网络。研究结果表明,与其它网络应用所形成的逻辑网络相比,P2P系统所形成的逻辑网络具有更大的直径。因此,可以首先通过记录网络中每个节点与其它节点建立连接的情况而得到P2P系统的逻辑连接拓扑图,并计算网络直径。图3.1说明了网络尺度的定义方法。
图1.1 测量网络直径方法示意图
首先,本机的级别初始化为0。如果有一台主机连接了本机,则那台主机的级别比本机小1。若是本机主动连接了某台主机,则那台主机的级别比本机大1。直到最后,使用最大的级别减去最小的级别,就得出了整个网络的范围。
2. TCP/UDP协议对分析技术。对于绝大多数P2P应用而言,都是同时使用TCP和UDP协议的。实践表明:P2P往往是通过UDP协议来传输数据而采用TCP协议来传输信令的。对于普通的应用而言,很少出现同时使用TCP和UDP协议的情况。当然也有例外:DNS就是一种同时运用TCP和UDP协议的特例。不过这些普通应用一般都具有固定端口的特点,可以进一步排除。所以,通过判断同一会话流中运用的TCP层的协议种类来识别P2P应用是一种不错的手段。
3. 双向识别。当某个方向的流被识别为P2P流,则其反方向的流必然也是P2P流。
4. 时间跨度均衡。此方法是针对使用P2P业务用户的长时间在线的行为特点而言的。系统也可以通过比较可疑流量存在时间跨度的变量T来判断流量的性质。
以上方法都是比较常见的P2P流检测方法。方法1的着眼点是P2P的业务点分布广泛特性,方法3利用的是P2P上下行流量对称的特性。方法4对应着P2P的在线时间跨度特性。至于方法2,可是说是深度流检测的识别方法中的一种。
所谓深度流检测法,就是利用不同的网络数据包宏观上的基于流的行为统计特性的区别,通过与已建立的各种业务类型的数据流的数据模型比对,而判别出数据流所对应的具体业务类型的。深度流检测法将各种应用的连接数、对应IP地址数、端口数、数据包发送频率等行为参数作为特征指标与DFI检测模型进行匹配,以此来判断一个流所属的应用层协议。
DFI的特点是无需实时升级,只需在设计时根据P2P协议的传输特性来生成规则(阀值)。同时,对P2P应用的适应性强,能够发现未知的P2P应用,具有对新P2P应用的感知能力。对加密文件也几乎没有影响,时间复杂度低,相对容易实现。DFI将是本文介绍的P2P识别系统的主要理论依据。
2.P2P流量识别方法利弊分析
从技术层面来看,常规业务一般通过常用的端口来进行识别。然而P2P技术不断地发展演进,其拓扑结构从最初的集中式发展到纯分布式再到目前的混和式架构,其端口特性也由最初的固定端口发展到随机动态端口再到伪装端口。
在传统检测失去原先的有效性,漏报和误报率也相应提高的同时,深度包检测技术应运而生。深度包检测能够忽略TCP和IP层的信息,直接对应用层数据进行检测,实现识别的目的。从某种程度上来说,弥补了这一领域的空白。实验证明该方法的识别准确度可以达到95%。其优点有:
1. 通过使用各种优化措施和发现更多的Payload特征技术,可以达到非常高的检测精度和令人满意的性能。
2. 易于理解、升级方便、维护简单,是目前运用最普遍的方法。
3. 具有分类功能是由于深层数据包检测技术可以依据不同P2P应用的载荷特征来准确分类应用,因此可以为实施P2P流量监管策略提供准确的信息。
然而其最大的缺点是:
1. 每次都要把整个IP解开,进行协议层的分析。计算量比较大,速度比较慢。
2. 随着P2P应用的发展,用于识别的关键字也在变化。基于匹配的静态识别需要新的识别关键字,因此检测新的P2P应用具有一定的滞后性,同时也有高成本和大投资的约束。
3. 对加密P2P应用的检测能力非常有限。比如应用SSL,使得协议分析变得十分困难。
4. 算法性能与Payload特征的复杂度有关,Payload特征越复杂,则检测代价越高,算法性能越差。对于跨包的Payload特征,仅仅靠深入单包进行深度包检测一般不能解决问题。需要进行多包联合检测,这同样具有较大的难度。
5. DPI同时还涉及到查看应用层的内容涉及隐私的问题。
从以上的分析看,传统的基于数据包的网络业务识别不但存在着先天的缺陷,在实现的过程中也遇到了几个瓶颈。
1. 单一的数据包识别无法识别完整、准确的识别数据的具体应用业务。
2. 处理所有的数据包需要巨大的处理开销,软件根本无法实现,硬件也需要极高的代价。
而网络行为分析识别方法的出现相应地解决了以上的问题,是比较有效和可行的。和DPI相比较,基于网络行为分析的DFI体现出以下优势:
1. 可扩展性好,该方法仅利用了P2P应用所具有普适性流量特征,不仅可以发现已有的P2P流量,也可以识别新的、符合普适性流量特征的P2P流量。
2. 性能高,由于不需要对协议进行解析和还原,且也无需对P2P应用载荷进行分析,因此计算开销和存储开销小,识别算法性能高。
3. 可识别加密P2P流量,由于基于流量特征的检测技术,不依赖具体的应用载荷,因此,数据是否加密对检测算法没有影响。
但是,基于流量特征的P2P流量识别技术也具有很多不足,其主要缺点包括准确性差、健壮性差、缺乏流量分类功能等。
1. 有两个因素决定了基于流量特征的P2P流量识别技术存在准确性差的缺点。第一个因素是P2P流量特征不一定唯一。其它应用也有可能表现出这种流量特征。因此该方法存在误判问题,即把非P2P流量的网络流,误认为P2P流量。
2. 健壮性差是指由于不能处理数据包丢失、重组等,因此不能适应复杂的P2P应用。
3. 缺乏流量分类功能是指由于传输层流量特征一般不能明确指示应用层协议类型,所以这种方法对P2P应用分类的能力较弱。而对P2P应用进行细分类,对于执行P2P流量监管措施(如阻止、限速、提供服务质量QoS等)非常重要。
表3.1 P2P业务识别方法对比表

识别方法类型
准确性
可扩展
健壮性
性能
分类功能
数据加密分析
基于流特征的P2P流量识别技术
较差
支持
基于应用层检测的P2P流量识别技术
较差
较好
不支持

表3.1具体列出了两个主流的P2P识别方法的性能对比。从以上分析来看,DPI和DFI技术各有利弊。要完成一套有效的基于DFI的P2P流量识别系统,需要克服多种该方法的缺陷。因此,必须要对数据包进行预处理,同时,在DFI的基础上,引入辅助的识别方法来提高系统的识别精度。
3.P2P流量识别综合方案
根据上述分析,不难发现,一套成熟、标准的P2P检测系统一般包含传统检测、深度包检测和深度流检测三个模块。如图3.2,通过不同模块的联合检测,来抵消单一检测方式的缺陷,从而实现整个系统检测的高效和高速性。
图3.2 检测流程图
传统检测包括端口检测和IP地址检测两部分,虽然现在的P2P应用通常能够逃过传统检测的识别,但这一模块任然是必须的。对于整个系统而言,完成网络上高速流量的实时检测并非易事。这对系统的硬件和软件都是一个非常大的挑战。同时也是成本上的提升。所以,相对廉价和逻辑简单的传统检测能够做到初步的数据过滤,减少后两个模块的检测负荷。同时,也可以在这里进行必须的数据预处理。
深度流检测模块接受传统检测模块所不能识别的网络数据流,进行第二步的检测。通常,这一模块需要兼并几种不同的网络行为分析算法,进行联合检测,来提高这一模块的识别率和识别的准确性。
深度包检测是整个系统的最后一个检测模块。之所以放在最后,是因为这部分对系统的配置要求最高,对高速数据的处理过程最复杂。通过前两模块的过滤,流经这一模块的数据相对要减少很多,这就为深度包检测提供了良好的环境。通过这部分的检测,不但可以识别出P2P的流量,还能够精确地对P2P的具体应用加以定位,这为后期的流控和QoS创造了很好的条件。
以上三部分完成了P2P网络流量的实时检测。但对于精度要求高的系统而言,短期的检测往往不能达到高识别率的要求。可以通过对数据的备份、旁路和长时间的相关检测和分析,来完善整个系统的识别率。
另外,对于一个识别系统而言,引进自学机制能减少很多后期的维护和更新的成本。通过建立自学模型的识别系统,使系统在识别P2P流量的基础上,对流量的特性进行自动地分析,得出一套统计学上的模型。通过将学习生成的模型加入到整个检测流程中,将新数据和统计模型进行比对来识别更多的P2P流量,实现将自学方法融入检测系统的目的。自学系统,同样也是一个非常精深的研究领域,由于这一部分并非本论文的主要研究方向,所以仅仅作了简单的介绍。本文的模型参考了一般的IDS的系统体系架构。如图3.3:
图3.3 基于数据挖掘的入侵检测系统模型图
图3.3为一个具有学习功能的IDS系统的架构图。和IDS系统相似,P2P流量识别系统也是通过对网络数据流和行为的挖掘来实现识别数据特性和网络行为的目的的。它们之间的共性为具有学习功能的P2P识别系统提供了参考和启发。所不同的是,IDS的识别对象更为宽泛,包括各种病毒,网络攻击,系统漏洞等等,而P2P流量识别系统需要识别的仅仅是P2P的网络流量。图3.3中用户实时数据对应P2P识别系统中的网络实时流量,而用户历史行为数据对应了系统中备份和旁路的数据。用户实时数据通过IDS的检测系统后,通过简单规则和深度挖掘并比对规则库后生成检测报告。在做出响应的同时,将检测结果存储系统生成用户历史行为数据,并提交训练数据集。这一模块就是整个系统的自学模块。通过数据的预处理、分类、模拟挖掘等步骤,生成新的规则,并提交给规则库。供以比对新的用户实时数据。
对于一个自学系统而言,预处理、分类、模拟挖掘的算法是其关键。当然,自学还包括遗传算法、自动机等人工智能的技术。
以上,对P2P现有的识别技术和识别系统作了具体的分析。提出一种以深度流检测为基础,结合其它识别方法的P2P流量识别综合方案。
4. 结束语
网络技术飞速发展的今天,传统的客户机服务器的模式逐渐被点对点的通信模式所取代。由于以P2P为基础的互连网应用层协议充斥着整个网络,在人们享受P2P带来的高效和便捷的同时,它们也正在慢慢侵蚀着我们的网络资源。P2P流量的迅猛发展已经对运营商的网络产生了巨大压力。如何实现P2P业务的正确有效的识别对网络管理来说是非常重要的课题。
P2P流量识别的应用角度出发,目前的网络带宽中的P2P部分中用于文件传输的流量占了很大一部分,即时通信占用的带宽相对而言非常少。所以, 能正确的选择一种行之有效的,相对而言易于实现的P2P流量检测方法有效地抑制P2P的网络带宽,实现网络带宽更高效的利用,其意义也是非常显而易见的。


LiJuan Zhou, ZhiTong Li and Bin Liu, “P2P Traffic Identification by Tcp Flow Analysis”, Proceedings of International Workshop on Networking, Architecture and Storages, Shenyang, Dec. 2006.
於建华,繆祥,孙莉. P2P流量识别方法的研究及实现. 广东通信技术,2007.4
杨凌霄,阎卫杰,张锴. P2P流量控制技术分析. 邮电设计技术,2007.5:5
郭华. IP流量控制算法浅谈. 电子元器件应用,2006.4:90-93
君,王攀,孙雁飞,王浩云. P2P业务流量识别、分析和控制技术. 计算机工程,2006.6,第11期,第32卷
余 荣,孙智,陈嘉,梅顺良,戴一奇. 高速网络入侵检测系统流量分配器. 清华大学学报, 2005年, 第10期,第45卷
韦安明,王洪波,程时端,林宇. 高速网络中P2P流量检测及控制方法. 北京邮电大学学报,2007.10,第5期,第30卷
沈红雨. 基于P2P的流媒体传输技术及应用. 应用技术,2006.9
耿庆田,赵宏伟,于繁华. 基于SNMP 的网络流量数据采集研究与实现. 长春师范学院学报,2007.6,第3期,第26卷
姚永江. 基于精确流量控制的网关管理策略. 现代计算机,2007.7:139-141
黄伟波. 基于精确流量控制的网络出口管理策略的研究与实践. 中国教育技术装备,2007年,第2期
郭长金. 基于网络流量控制策略的研究与实现. 现场总线技术应用,2007年,第23卷,第10-3期
杨锐. 特征字符串匹配在P2P流量控制中的应用. 计算机与网络:158-159
柳斌,李之棠,李佳. 一种基于流特征的P2P流量实时识别方法. 厦门大学学报,2007.11,第46卷
於建华,徐艳萍,吴素芹. 基于流传输特性的P2P流量识别方法研究. 通信技术. 2007年,第11期,第40卷

 

发表评论



销售总监

销售一部

销售二部

全国服务热线

188-5373-6667

1556-2319-667