APP下载

基于行为关联的有状态P2P识别方法

2012-06-01河北科技大学信息与工程学院魏春花杨奎河

电子世界 2012年21期
关键词:数据流数据包端口

河北科技大学信息与工程学院 魏春花 杨奎河

基于行为关联的有状态P2P识别方法

河北科技大学信息与工程学院 魏春花 杨奎河

P2P软件的广泛使用虽然给大家带来了很大的方便,但同时也出现了一系列问题。如:网络拥堵,网络服务质量问题,带宽分配不均衡等。所以,实现对P2P软件的识别及控制显得尤为重要。本文根据P2P网络出现的问题,提出了一种新的识别方法---基于行为关联的有状态的识别方法。该方法根据P2P数据流的行为状态特征来获取本地端口,然后对该本地端口加以控制,从而实现对P2P数据流的识别与控制。该方法有两种获取端口的方式:DNS获取端口方式、DPI获取端口方式。初步实验表明该方法对P2P应用的UDP连接是有效可行的。

P2P;行为关联;深度包检测技术(DPI);深度流检测技术(DFI)

1.引言

P2P即端到端网络应用,又称为对等连接或对等网络,是一种新的通信模式。P2P网络中的节点是对等的,且每个peer能同时充当服务器和客户端。相对于传统C/S模式,对等网络(Peer-to-Peer,P2P)技术充分发挥以往被忽略的众多个人计算机(Peer节点)的作用,使服务分散化,具有很大的优势。近年来,P2P的用户规模、应用类型和流量均呈爆发式增长。腾迅日前发布最新数据显示,基于P2P技术的QQ聊天软件同时在线人数日均4000万。同样,中国互联网实际流量模式分析报告表明,P2P流量已占整个互联网流量的60%。德国互联网调研机构ipoque称,P2P已经彻底统治了当今的互联网,其中50%~90%的总流量都来自P2P程序。

随着P2P技术的发展和成熟,人们在享受这项技术便利的同时,也出现了许多问题。据最新的统计显示,累计端到端业务已占互联网业务总量的60%以上,这无疑会引起网络带宽的巨大消耗,造成网络拥塞,降低网络性能。因此,对P2P应用实现识别及控制是亟待解决的问题。

2.几种常用的P2P识别方法

随着P2P技术的迅猛发展,P2P软件的越来越多,快速高效的识别P2P流量数据包越来越困难。现在比较常用的P2P检测方式有:端口识别方法、深度包检测识别方法和深度流检测识别方法。

表1 几种常用P2P应用默认端口号

表2 几种常用P2P协议负载特征

图1 迅雷.pcap

2.1 端口检测识别方法

端口检测识别方法是一种很简单的识别方法,它具有简单、高效、易实现的优点。该方法在早期的一些P2P控制管理软件中经常被使用,此时,网络管理员只需要将源或目的端口与P2P应用的默认端口(如表1)进行匹配即可,如果匹配成功表明这个流是P2P应用产生的流量,否则就不是P2P应用产生的流量。这种方法的精确度和实时性都很好,但是随着P2P技术的发展,P2P软件经常使用动态端口或伪装端口,有时为了躲避防火墙的封堵,还用一些常用端口,如80端口就被很多非web应用程序使用,以躲避那些不过滤80端口的防火墙。因此,不能再单纯的依赖端口来识别这些协议,而要结合其他的方式一起来识别,如表1所示。

2.2 基于深度包检测的识别方法

图2 PPS.pcap

DPI(Deep Packet Inspection,深度包检测)技术是近年来出现的一种协议识别技术,DPI技术在分析包头的基础上,增加了对应用层的分析,是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流经过基于DPI技术的网络设备时,DPI引擎通过深入读取IP包载荷来对OSI 7层协议中的应用层信息进行重组,从识别出IP包中的应用层协议。

不同的应用通常会采用不同的协议,而各种协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者是特定的Bit序列。基于特征字的识别技术,正是通过识别数据报文中的指纹信息来确定业务所承载的应用。根据具体检测方式的不同,基于特征字的识别技术又可细分为固定特征位置匹配、变动特征位置匹配和状态特征字匹配三种分支技术。通过对指纹信息的升级,基于特征字的识别技术可以方便的扩展到对新协议的检测。

这种识别方法对大部分的常规协议都是适用的,但是对加密协议和扩展协议还有困难,需要通过其他方法来识别。表2中是几种常见协议的举例,用该方法识别及控制都很好,几种常用P2P协议负载特征见表2。

2.3 基于深度流检测的识别方法

与DPI进行应用层的载荷匹配不同,DFI采用的是一种基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态各有不同。例如,网上IP语音流量体现在流状态上的特征就非常明显:RTP流的包长相对固定,一般在130~220byte,连接速率较低,为20~84kbit/s,同时会话持续时间也相对较长;而基于P2P下载应用的流量模型的特点为平均包长都在450byte以上、下载时间长、连接速率高、首选传输层协议为TCP协议等。DFI技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与流量模型对比,进一步识别应用类型。该方法对P2P加密协议和扩展协议类有效果,但是针对具体协议不是很准确。当使用DPI技术不能识别时,可考虑使用该方法。该方法还有待进一步的研究。

3.基于行为关联的有状态的检测方法

一个典型的P2P是由许多终端构成的,每个终端都是一个服务器,这个终端可以同时为其它终端提供服务。基于行为关联的有状态识别技术的基本思想是从终端双方的通信过程中寻找特征数据,这些特征数据不限于某条特定的连接,如果特征匹配,那么系统将记录该终端的行为,而不是某条连接。一旦该终端的行为被识别出来,那么后续同该终端通信的数据流量无须重新验证,就可以被识别为相同的应用。这种方法不但提高了识别效率,同时也极大的提高了系统的性能。

在基于行为关联的有状态识别技术的基础上向智能方面进一步发展,该技术可以从多条连接中自动根据某种统计规律来识别某些特征不明显或者被加密了的通信协议(如SkyPe、百度影音、迅雷下载等),在保证性能的同时,提高了系统识别的准确性。这种技术针对P2P应用尤其有效。

使用该方法对迅雷,快车,PPstream及各类P2P下载软件进行实践分析,发现大部分P2P软件都是通过UDP连接进行下载的。且P2P软件使用UDP进行下载时,都有一种行为特征:本地端口虽然是不确定的,却有个共同的特点,即端口一旦生成,后续所有UDP数据包均会通过该端口进行传输。此时就需要寻找一种行为或状态特征来将这种行为特征具体化---找到本地下载端口,便可控制所有的UDP连接。根据P2P软件的行为或状态特征有以下两种获取端口的方式:

①DNS获取端口方式

P2P软件的行为特征:终端通过DNS(域名解析)请求得到服务器IP地址,终端IP地址请求域名解析得到的IP地址,建立UDP连接。根据以上行为特征,通过连接关联性,得到终端端口,该方法即为DNS获取端口方式。

以迅雷为例加以说明,如图1所示。

第一步:迅雷软件通过域名解析得到hub5pnc.sandai.net的IP地址:222.141.53.2。

第二步:本地IP地址请求服务器IP地址:222.141.53.2,其IP地址对应的目的端口为8000,通过该目的端口得到的源端口为11371,在后续的UDP数据包中均会使用11371端口。但是这个本地端口不是唯一的,还有其他域名得到的端口,需将所有端口记录下来,但是只有一个是主要流量下载端口;

此外,迅雷还有一个特点:每隔5-10秒会向两个服务器进行心跳,这样可以保持端口的生命值。

第三步:对以上得到的目的地址和源端口在一定时间内进行封锁,即可对UDP数据包进行控制。

②DPI获取端口方式

P2P软件的状态特征:即P2P数据包负载的共同特征。从具有该共同特征的数据包中提取终端端口的方法即为DPI获取端口方式。

以pps为例加以说明,如图2所示。

第一步:找出数据包的共同特征:数据包DATA部分偏移1byte为起始位置的2byte为“00 43”,且数据包中包含字符串”pps://”。

第二步:具有该特征的数据包的源端口为1594,在后续的UDP数据包中均会使用1594端口进行请求。该源端口并不是唯一的,也还有其他的端口,需要将所有的端口都记录下来。

第三步:将上述得到的原端口在一定时间内封锁,即可对UDP数据包进行控制。

通过以上两种方式即可识别控制P2P的UDP连接。剩下的TCP连接可以结合使用DPI方式或DFI的方式进行解决。如:通过迅雷数据包负载内容的8byte开始的4bits为其长度特征来识别控制其TCP连接;PPStream数据包的TCP流则有以下特征:“vodguide.pps.tv”、“stat.ppstream.com”和“pl.pps.tv”特征,可通过这些负载特征对其TCP流进行识别和控制。

4.总结

通过以上分析可知,基于行为关联的有状态的识别方法是在方法2.1和方法2.2的基础上加上特定的行为特征而提出的的一种高效的识别方法,对P2P应用有很高的识别效率,大部分P2P应用都可以通过该方法得到有效的控制。优点如下:

1)该方法沿用了基于端口匹配技术简单、高效的特点;

2)具有深度包检测技术的高可靠性、高准确度的特点;

3)由于该方法具有一定的行为特征,所有能够识别一些加密的数据流。

综上可知,本方案是将端口匹配方法、负载匹配方法及数据的一些行为特征融合在一起而形成的一种新的高效的识别方法,该方法既提高了整个P2P识别系统的识别率、精确度,且减小了误报率,还能有效地识别一些扩展协议和加密数据流。所以,该方法是一种比较好的识别方法。

虽然基于行为关联的有状态的识别方法是一种不错的识别方法,但它也有自身的局限性,即该方法只能用于UDP连接,对TCP连接无效。为了更好的识别控制P2P流量,下一步的工作重点是研究TCP连接。具有明显负载特征的TCP数据流,可用深度包检测方式来识别;而无明显负载特征的TCP数据流主要考虑使用DFI技术来实现。所以,接下来的主要任务是研究DFI技术,通过使用该技术来识别P2P中无明显负载特征的TCP数据流,其主要包括P2P加密协议和扩展协议。

[1]周维,刘芳好,罗宇,谈子龙,赵留涛,刘东映.P2P应用特征检测与识别[J].计算机应用,2009,29.

[2]刁娜.P2P流量识别技术研究[J].电信快报,2009(2).[3]温超,郑雪峰,戚翔,于真.基于流量分析的P2P协议识别方法的研究[J].微计算机应用,2007,28(7):1-2.

[4]龙坤,陈庶樵,董永吉.P2P流量识别方法比较研究[J].信息工程大学学报,2009,10(2).

[5]鲁刚,张宏莉,叶麟.P2P流量识别[J].软件学报,2011,22(6).

魏春花(1983—),女,山东单县人,河北科技大学硕士研究生,软件设计师,在北京天融信科技有限公司实习。

猜你喜欢

数据流数据包端口
二维隐蔽时间信道构建的研究*
基于Jpcap的网络数据包的监听与分析
一种端口故障的解决方案
汽车维修数据流基础(上)
汽车维修数据流基础(下)
SmartSniff
端口阻塞与优先级
基于数据流聚类的多目标跟踪算法
8端口IO-Link参考设计套件加快开发速度
北医三院 数据流疏通就诊量