一种基于DPI的P2P流量控制系统的设计与实现

一种基于DPI的P2P流量控制系统的设计与实现
一种基于DPI的P2P流量控制系统的设计与实现
(Department of Computer Science and Technology,Huazhong University of Science and Technology,Wuhan Hubei 430074, China)Abstract:Based on the urgent requirements to control P2P communication, this paper gives the design and implementation of a DPI-based P2P traffic control system. This paper first describes some technologies to identify P2P communication and analyses the P2P integrated control model. Then recombination the actual situation, a DPI-based traffic control model and its simple implementation is present. Finally we carry on the performance analysis and appraisal to this model. The experiments prove its efficiency to control P2P traffic.Keywords:P2P;DPI;Traffic identification;Traffic control1 引言P2P(Peer-to-Peer)以其独特的技术优势在近几年内迅速发展,涌现出了大量的应用软件,如BitTorrent、eDonkey、FastTrack、Skype、Kugoo(酷狗)、ezPeer(易载)、迅雷、QQ等。

P2P是一种用于文件交换的新技术,它允许终端用户利用Internet架构一个动态、匿名、分布式网络相互传递信息,颠覆了传统的C/S信息服务模式,允许终端用户相互直接搜索和共享信息资源。

据统计,P2P业务已占据了互联网业务总量的60%~80%,成为网络带宽较大的消费者。

P2P业务不断增加,造成了网络资源的巨大消耗,甚至引起网络拥塞,对其它正常网络业务,如Web、FTP、Email等的性能造成极大的影响;对企业用户来说,P2P业务不仅会造成IT资源的巨大浪费,并且可能为企业安全防护打开一扇后门,使得病毒和恶意代码得以躲过安全审查潜入企业内部网络。

因此,实现分类、标识和控制P2P流量越来越成为企业、网络运营商急需解决的问题。

2 P2P流量控制系统的结构2.1 关键技术要控制P2P通信,就必须对P2P通信进行有效的识别。

然而,许多P2P协议不使用固定的端口,而是动态地使用端口,包括使用一些知名服务的端口。

比如,KaZaA就可以使用端口80来通信,从而穿透传统的基于IP和端口的防火墙和包过滤器。

所以,传统的基于IP和端口的分类技术(分析IP包头、IP地址、端口号等)很难识别、跟踪或控制这类通信。

目前有几种可用于控制P2P通信的方法。

这几种方法在控制P2P通信上都有一定的效果,但都有缺陷。

下面对这几种方法作简单的描述: (1)传统的封杀IP和端口。

对于BT,可以封杀一些比较活跃的BT论坛和tracker服务器的IP;封杀所有端口,只开放一些必须的端口。

这种方法可以在一定程度上阻断某些P2P通信,但如上所述,这种方法存在很多缺陷。

(2)URL过滤。

如,对于BT,可以禁止扩展名为.torrent的文件的下载。

这种方法显然也有很大的局限性,因为torrent文件完全可以通过别的方式(如ftp)获得,也可以换一个扩展名[1]。

(3)基于流量特征的检测技术[2]。

P2P应用作为一种充分利用客户端资源的新型应用,它在传输层表现出来的流量特征相对于其它应用,如HTTP、FTP、DNS等,有许多不同的地方。

基于流量特征的检测技术即是通过检测这些新的流量特征来发现P2P应用。

其优点有:①由于P2P应用具有普遍适用的流量特征,新的P2P应用也符合这一特征,所以这种技术有发现新的P2P应用的能力;②有检测加密P2P应用的能力。

其缺点有:①由于传输层流量特征一般不能明确指示应用层协议类型,所以这种方法对P2P应用分类的能力较弱,而应用分类对于QoS的实施是非常重要的;②由于不对称路由和丢包、重传现象的存在,导致无法精确确定流量特征,从而有可能P2P流量检测的精确度造成影响;③很多流量特征都不是P2P流量唯一的,其它应用也有可能表现出这种流量特征,需要结合其它一些技术如端口检测来排除其它应用。

(4)深度包检测技术(DPI:Deep Packet Inspection)。

深层数据包检测技术通过对数据包应用层协议的检测发现P2P应用。

这种技术使用一个payload特征库存储payload特征信息,符合payload特征的数据包即视为P2P数据包。

对于BT,如果IP包的数据区包含BT协议的特征串“BitTorrent protocol”,那么就禁止该数据包通过,这样,BT对等连接的握手无法建立,下载也无法继续。

这种检测方法易于理解、升级方便、维护简单,是目前运用较普遍的方法。

其缺点是:①对新P2P应用的检测具有滞后性,即在未升级特征库前无法检测新的P2P应用,必须找到新应用的payload特征后才能对该应用实施有效检测;②对加密P2P应用的检测能力非常有限;③算法性能与payload特征的复杂度有关,payload特征越复杂,则检测代价越高,算法性能越差。

此外,Subhabrata Sen等人于2004年初提出基于应用签名的P2P流量检测方法,实际上是深度数据包检测方法的一种,该方法在性能和精度上都取得了令人满意的效果[3]。

James Won - Ki Hong等人于2003年提出一种基于传输层特征的P2P流量检测方法,但没有给出性能参数[4]。

国内王逸欣、王锐等人提出了一种把深度包检测技术和基于流量特征的检测技术相结合的技术[5]。

2.2 总体设计2.2.1 P2P流量综合控制模型 由于P2P应用协议类型、实现机理的多样性,为了彻底监管和控制P2P流,需采取综合性解决方案。

文献[6] 提出了一种流量综合控制模型. 该模型主要由三大功能模块组成,包括P2P识别模块、管理模块以及执行模块,每个模块又包含若干部件。

识别模块:主要负责P2P流量识别功能,分别从不同的角度识别P2P流量,包括:报头识别、流状态识别、数字签名识别、DPI识别。

该模块接收来自管理模块的策略信息,可以选择和调整识别手段。

管理模块:主要负责与网络管理者的交互。

管理模块应当提供良好的人机交互界面,以帮助网络管理者更好地了解和管理网络资源;同时,根据管理策略调整相应的P2P流量识别方式以及P2P流量控制方式。

执行模块:负责P2P流量控制策略的执行,同时负责收集流量使用信息,缓存该信息并上报到管理模块。

该综合模型给出了P2P流量控制系统的整体架构,但实现起来过于复杂。

因此,文献[6] 又结合企业级P2P流量控制需求和运营商级P2P流量控制需求,对该综合模型做了必要的修改,提出了两套简化的模型。

同样,我们也根据实际情况,对该模型做了修改,提出了一套可用于中小企业的简化模型。

2.2.2 简化模型的设计要求 我们对简化模型提出了以下主要设计要求: (1)P2P通信的识别是一个非常耗时的过程,有必要在无需此功能的时候关闭该模块。

因此,我们用开关方式实现了P2P通信处理模块。

(2)P2P通信的识别是一个非常复杂的过程,特别是对一些未公开的P2P协议更是如此。

因此我们不要求识别率达到100%,只需达到一个允许的范围即可,我们的设计目标是达到95%以上。

(3)可以按照时间段来设置封禁和流量控制两种处理方式。

比如可以设置在工作时间封禁P2P通信,在非工作时间对P2P通信进行流量控制。

(4)对其它非P2P通信的影响尽量小。

我们的设计要求是尽量减少对正常通信吞吐量的影响。

2.2.3 简化模型 下面对简化模型做一个简单描述。

该系统是我们防火墙系统的一个子系统,因此其中有部分与防火墙有关的模块。

该模型主要由三大功能模块组成,包括防火墙模块、管理模块和P2P通信处理模块,每个模块又由若干部件组成。

防火墙模块:该模块是整个我们防火墙系统的主体模块,主要负责报头处理、连接跟踪处理等。

主要包括两个模块:* 规则匹配模块:主要负责防火墙规则的匹配,并对匹配的报文按规则进行处理。

可进行IP地址匹配、端口匹配、时间匹配等。

* 连接跟踪模块:当报文匹配规则后建立连接跟踪信息,该连接跟踪信息可供后面的P2P通信处理模块使用。

管理模块:与综合模型中的管理模块功能类似,主要负责与网络管理者的交互,去掉了计费模块。

P2P通信处理模块:主要负责识别P2P通信,再根据识别结果对P2P通信执行相应的控制策略。

主要包括三个模块:* 连接跟踪检查模块:主要负责查找报文在连接跟踪表中是否有对应的连接跟踪信息,然后再根据P2P识别模块识别的结果对连接跟踪相应的域进行设置。

经上述处理后,当后续报文到达时,就无需再次进行DPI识别,只需按照连接跟踪进行处理即可。

按这种方法,可以极大地提高P2P通信处理的效率。

* 识别模块:与综合模型中的识别模块功能类似,但只进行DPI识别。

* 执行模块:与综合模型中的执行模块功能类似,但不包括内容缓存器。

3 性能测试 按照上述简化模型,我们给出了一个可用于中小企业的实现。

该实现基于Linux 2.4.18内核,基本上实现了上述设计目标,可以对BT和eMule进行控制。

下面我们对该系统进行了测试,测试环境如下:Linux 2.4.18-3 内核;BitComet 0.71; CPU Celeron 1GHz;内存128M;100M以太网接口;NuStreams-600测试仪。

(1)BT封禁测试 在bt.5qzone.net同时下载五个种子数超过100的文件,P2P控制策略选择封禁。

试验证明,我们的P2P流控系统可以阻断P2P客户端得到种子后对服务器的连接,同时也可以阻断P2P客户端之间的相互连接,使得P2P通信流量始终为0。

(2)BT流量整形测试 与(1)类似,只是P2P控制策略选择流量整形。

每5s对下载速率采样一次,共采样100次。

测试结果如表1:表1 BT速率测试限制速率(KB/s)低于限制速率采样数高于限制速率采样数高于限制速率采样数/100 从上述测试结果可以看出,我们的流量整形器还是可以有效的控制P2P流量的,但识别模块的识别率还未达到100%,存在无法识别的情况。

(2)非P2P通信在关闭和开启P2P流控系统时吞吐率测试 可以看出,在开启P2P流控系统后系统的吞吐率略有降低,这也表明了我们的P2P流控系统对整个系统性能的影响还是比较小的。

4 结束语P2P流量控制是一个不断发展的过程,传统的基于IP地址和端口的方法已不再有效。

为了有效地控制P2P流量,不断有人提出各种方法。

这些方法针对P2P通信不同方面的特点来进行控制,都有一定的效果,但都存在很多不足。

目前,DPI技术是控制P2P流量比较主流的技术,本文也正是采用此技术。

随着P2P技术的不断发展,相信不久的将来,一定会出现更好的控制技术。

参考文献[1]柳斌,李之棠.基于访问控制列表的 BitTorrent流量控制策略.计算机应用与软件 2006第5期[2]Thomas Karagiannis,“Transport layer identification of p2p traffic”,Internet Measurement Conference (IMC),Taormina,Sicily,Italy,October 25-27,2004[3]Subhabrata Sen,Oliver Spatscheck,Dongmei Wang,“Accurate,Scalable In-Network Identification of P2P Traffic Using Application Signatures”,International World Wide Web Conference 2004[4]Se-Hee Han,James Won-Ki Hong,“The Architecture of NG-MON:A Passive Network Monitoring System for High-Speed IP Networks”,Lecture Notes In Computer Science;Vol. 2506,2002[5]王逸欣,王锐等.P2P流量检测技术初探.计算机与数字工程 2006第6期[6]李江涛,姜永玲.P2P流量识别与管理技术.电信科学 2005第3期

未经允许不得转载: 深圳维创信息技术有限公司 » 一种基于DPI的P2P流量控制系统的设计与实现

赞 ()
'); })();